5 // Created by Killery on 2013/02/22.
6 // Copyright (c) 2013年 Killery. All rights reserved.
11 @implementation FieldScene
15 [CAttackListTV setTarget:self];
16 [CAttackListTV setDoubleAction:@selector(doubleClickCAL:)];
17 [CAttackListTV setTarget:self];
18 [CAttackListTV setAction:@selector(clickCAL:)];
20 [CResearchListTV setTarget:self];
21 [CResearchListTV setDoubleAction:@selector(doubleClickCRL:)];
22 [CResearchListTV setTarget:self];
23 [CResearchListTV setAction:@selector(clickCRL:)];
25 [BCreateListTV setTarget:self];
26 [BCreateListTV setDoubleAction:@selector(doubleClickBCL:)];
27 [BCreateListTV setTarget:self];
28 [BCreateListTV setAction:@selector(clickBCL:)];
30 [CSummonListTV setTarget:self];
31 [CSummonListTV setDoubleAction:@selector(doubleClickCSL:)];
32 [CSummonListTV setTarget:self];
33 [CSummonListTV setAction:@selector(clickCSL:)];
35 [loadFileOutputListTV setTarget:self];
36 [loadFileOutputListTV setAction:@selector(clickLFOL:)];
38 [saveGameListTV setTarget:self];
39 [saveGameListTV setAction:@selector(clickSGL:)];
41 [STequipListTV setTarget:self];
42 [STequipListTV setAction:@selector(clickSTE:)];
44 CAttackListMA = [NSMutableArray new];
45 CResearchListMA = [NSMutableArray new];
46 BCreateListMA = [NSMutableArray new];
47 CSummonListMA = [NSMutableArray new];
48 saveFileInputListMA = [NSMutableArray new];
49 loadFileOutputListMA = [NSMutableArray new];
50 saveGameListMA = [NSMutableArray new];
52 STequipListMA = [NSMutableArray new];
53 STskillListMA = [NSMutableArray new];
54 STjoinListMA = [NSMutableArray new];
56 SAV = [NSMutableArray new];
58 [IVimage setHidden:YES];
59 [TFname setHidden:YES];
60 [TFmessage setHidden:YES];
61 [BXname setHidden:YES];
62 [BXmessage setHidden:YES];
63 [IVimage setEnabled:NO];
64 [TFname setEnabled:NO];
65 [TFmessage setEnabled:NO];
73 scheduledTimerWithTimeInterval:1.0/30
75 selector:@selector(EventLoopFS:)
81 fieldSceneSelfFlag = true;
84 P[0].name = [@"青軍" retain];
90 P[1].name = [@"赤軍" retain];
96 P[2].name = [@"黄軍" retain];
111 -(void)writeInt:(FILE*)fp val:(int)val{
114 for(counter = INT_MAX;counter > 0;counter>>=8){
115 unsigned char nowData = val&0xFF;
117 fwrite(&nowData, sizeof(unsigned char), 1, fp);
121 -(void)writeNSString:(FILE*)fp str:(NSString*)str{
122 int length = (int)[str length];
123 [self writeInt:fp val:length];
124 fwrite([str UTF8String], sizeof(str), length, fp);
127 -(void)writeNSImage:(FILE*)fp str:(NSImage*)img adCnt:(int*)adCnt adFix:(int*)adFix{
130 NSString *directoryPath;
132 directoryPath = [[NSBundle mainBundle] bundlePath];
133 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
135 NSString* Cpath = @"Contents/Resources/";
136 [[NSFileManager defaultManager] changeCurrentDirectoryPath:Cpath];
139 NSData *imgData = [img TIFFRepresentation];
140 NSBitmapImageRep *brep = [NSBitmapImageRep imageRepWithData:imgData];
141 imgData = [brep representationUsingType:NSPNGFileType properties:nil];
142 [imgData writeToFile:@INSTANT_IMG atomically:YES];
144 fpx = fopen(INSTANT_IMG, "rb");
145 [self fcopy:fpx wfp:fp adCnt:adCnt adFix:adFix];
153 -(int)fcopy:(FILE *)rfp wfp:(FILE *)wfp adCnt:(int*)adCnt adFix:(int*)adFix{
155 unsigned char in_buf[1024], out_buf[1024];
164 rinf = (int)fread((void*)in_buf, 1, 1024, rfp);
168 memcpy((void*)out_buf, (void*)in_buf, 1024);
169 rinf = (int)fwrite((void*)out_buf, 1, rinf, wfp);
177 fpt -= ((*adCnt)-1)*1024;
179 [self writeInt:wfp val:*adCnt];
180 [self writeInt:wfp val:*adFix];
185 rinf = (int)fread((void*)in_buf, 1, 1024, rfp);
189 memcpy((void*)out_buf, (void*)in_buf, 1024);
190 rinf = (int)fwrite((void*)out_buf, 1, rinf, wfp);
199 -(void)writeMapScript:(FILE*)fp{
201 [self writeInt:fp val:(int)sdd.MS.EGClight.endType1];
202 [self writeInt:fp val:(int)sdd.MS.EGClight.endType2];
204 for(int i = 0;i < 64;i++)
205 [self writeNSString:fp str:sdd.MS.EGClight.etValue1[i]];
206 for(int i = 0;i < 64;i++)
207 [self writeNSString:fp str:sdd.MS.EGClight.etValue2[i]];
209 [self writeInt:fp val:(int)sdd.MS.EGCdark.endType1];
210 [self writeInt:fp val:(int)sdd.MS.EGCdark.endType2];
212 for(int i = 0;i < 64;i++)
213 [self writeNSString:fp str:sdd.MS.EGCdark.etValue1[i]];
214 for(int i = 0;i < 64;i++)
215 [self writeNSString:fp str:sdd.MS.EGCdark.etValue2[i]];
218 [self writeInt:fp val:(int)sdd.MS.playerSet1];
219 [self writeInt:fp val:(int)sdd.MS.playerSet2];
220 [self writeInt:fp val:(int)sdd.MS.battleSetMode];
221 [self writeInt:fp val:(int)sdd.MS.employAllowedFlag];
222 [self writeInt:fp val:(int)sdd.MS.buildAllowedFlag];
223 [self writeInt:fp val:(int)sdd.MS.summonAllowedFlag];
225 [self writeInt:fp val:(int)sdd.MS.scenarioSetMode];
226 [self writeInt:fp val:(int)sdd.MS.scenarioNumbCrnt];
227 [self writeInt:fp val:(int)sdd.MS.scenarioNumbNext];
229 for(int i = 0;i < 4096;i++)
230 [self writeInt:fp val:sdd.MS.guildListRegist[i]];
231 [self writeInt:fp val:(int)sdd.MS.guildListRegistNum11];
232 [self writeInt:fp val:(int)sdd.MS.guildListRegistNum12];
234 for(int i = 0;i < 4096;i++)
235 [self writeInt:fp val:sdd.MS.guildListRegist2[i]];
236 [self writeInt:fp val:(int)sdd.MS.guildListRegistNum21];
237 [self writeInt:fp val:(int)sdd.MS.guildListRegistNum22];
240 sdd.MS.SCRPTnameCnt = (int)[sdd.MS.SCRPTname count];
242 [self writeInt:fp val:(int)sdd.MS.SCRPTnameCnt];
243 for(int i = 0;i < sdd.MS.SCRPTnameCnt;i++)
244 [self writeNSString:fp str:sdd.MS.SCRPTname[i]];
246 MAPSCRIPTD *SMSDtop = sdd.MS.D;
251 sdd.MS.D = sdd.MS.D->next;
253 [self writeInt:fp val:(int)sdd.MS.Dcnt];
255 for (int i = 0;i < sdd.MS.Dcnt;i++) {
257 sdd.MS.D->SCRPTcnt = (int)[sdd.MS.D->SCRPT count];
258 [self writeInt:fp val:(int)sdd.MS.D->SCRPTcnt];
259 for(int j = 0;j < sdd.MS.D->SCRPTcnt;j++)
260 [self writeNSString:fp str:sdd.MS.D->SCRPT[j]];
262 [self writeInt:fp val:(int)sdd.MS.D->endFlag];
263 [self writeInt:fp val:(int)sdd.MS.D->index];
264 [self writeInt:fp val:(int)sdd.MS.D->x];
265 [self writeInt:fp val:(int)sdd.MS.D->y];
266 [self writeInt:fp val:(int)sdd.MS.D->type];
267 [self writeInt:fp val:(int)sdd.MS.D->ET1];
268 [self writeInt:fp val:(int)sdd.MS.D->ET2];
269 [self writeInt:fp val:(int)sdd.MS.D->ET3];
270 [self writeInt:fp val:(int)sdd.MS.D->ET4];
271 [self writeInt:fp val:(int)sdd.MS.D->ETtype];
272 [self writeInt:fp val:(int)sdd.MS.D->onlyInitialDeley];
273 [self writeInt:fp val:(int)sdd.MS.D->initialDeleyedFlag];
274 [self writeInt:fp val:(int)sdd.MS.D->switch1f];
275 [self writeInt:fp val:(int)sdd.MS.D->switch2f];
277 sdd.MS.D->switch1cnt = 0;
278 if(sdd.MS.D->switch1)
279 for(int j = 0;*(sdd.MS.D->switch1 + j) > 0;j++) {
280 sdd.MS.D->switch1cnt++;
281 }[self writeInt:fp val:(int)sdd.MS.D->switch1cnt];
283 sdd.MS.D->switch2cnt = 0;
284 if(sdd.MS.D->switch2)
285 for(int j = 0;*(sdd.MS.D->switch2 + j) > 0;j++) {
286 sdd.MS.D->switch2cnt++;
287 }[self writeInt:fp val:(int)sdd.MS.D->switch2cnt];
289 for(int j = 0;j < sdd.MS.D->switch1cnt;j++) {
290 [self writeInt:fp val:(int)*(sdd.MS.D->switch1 + j)];
293 for(int j = 0;j < sdd.MS.D->switch2cnt;j++) {
294 [self writeInt:fp val:(int)*(sdd.MS.D->switch2 + j)];
298 MAPSCRIPT0 *SMSPtop = sdd.MS.D->P;
301 while (sdd.MS.D->P) {
303 sdd.MS.D->P = sdd.MS.D->P->next;
304 }sdd.MS.D->P = SMSPtop;
305 [self writeInt:fp val:(int)sdd.MS.D->Pcnt];
307 for (int j = 0;j < sdd.MS.D->Pcnt;j++) {
309 [self writeInt:fp val:sdd.MS.D->P->endFlag];
310 [self writeInt:fp val:sdd.MS.D->P->succeessfulFlag];
311 [self writeInt:fp val:sdd.MS.D->P->indent];
312 [self writeInt:fp val:sdd.MS.D->P->val];
313 [self writeInt:fp val:sdd.MS.D->P->valCnt];
314 [self writeInt:fp val:sdd.MS.D->P->timerMin];
315 [self writeInt:fp val:sdd.MS.D->P->timerSec];
316 [self writeInt:fp val:sdd.MS.D->P->timerEntire];
318 [self writeInt:fp val:sdd.MS.D->P->timerFlag];
319 [self writeInt:fp val:sdd.MS.D->P->timerVisible];
320 [self writeInt:fp val:sdd.MS.D->P->timerRun];
321 [self writeInt:fp val:sdd.MS.D->P->timerMode];
322 [self writeInt:fp val:sdd.MS.D->P->wait];
323 [self writeInt:fp val:sdd.MS.D->P->titleBack];
325 [self writeNSString:fp str:sdd.MS.D->P->label];
326 [self writeNSString:fp str:sdd.MS.D->P->labelJump];
327 [self writeNSString:fp str:sdd.MS.D->P->memo];
331 sdd.MS.D->P->switch1cnt = 0;
332 if(sdd.MS.D->P->switch1)
333 for(int k = 0;*(sdd.MS.D->P->switch1 + k) > 0;k++) {
334 sdd.MS.D->P->switch1cnt++;
335 }[self writeInt:fp val:(int)sdd.MS.D->P->switch1cnt];
337 sdd.MS.D->P->switch2cnt = 0;
338 if(sdd.MS.D->P->switch2)
339 for(int k = 0;*(sdd.MS.D->P->switch2 + k) > 0;k++) {
340 sdd.MS.D->P->switch2cnt++;
341 }[self writeInt:fp val:(int)sdd.MS.D->P->switch2cnt];
343 for(int k = 0;k < sdd.MS.D->P->switch1cnt;k++) {
344 [self writeInt:fp val:(int)*(sdd.MS.D->P->switch1 + k)];
347 for(int k = 0;k < sdd.MS.D->P->switch2cnt;k++) {
348 [self writeInt:fp val:(int)*(sdd.MS.D->P->switch2 + k)];
351 [self writeMapScriptBGM:fp];
352 [self writeMapScriptSE:fp];
353 [self writeMapScriptSC:fp];
354 [self writeMapScriptGAOV:fp];
356 [self writeInt:fp val:sdd.MS.D->P->type];
358 if(sdd.MS.D->P->type == 0)
359 [self writeMapScript1:fp];
361 if(sdd.MS.D->P->type == 1){
362 MAPSCRIPT2 *SMSP2top = sdd.MS.D->P->S2;
364 sdd.MS.D->P->S2cnt = 0;
365 while (sdd.MS.D->P->S2) {
366 sdd.MS.D->P->S2cnt++;
367 sdd.MS.D->P->S2 = sdd.MS.D->P->S2->next;
368 }sdd.MS.D->P->S2 = SMSP2top;
369 [self writeInt:fp val:sdd.MS.D->P->S2cnt];
372 for (int k = 0;k < sdd.MS.D->P->S2cnt;k++) {
373 [self writeMapScript2:fp];
374 sdd.MS.D->P->S2 = sdd.MS.D->P->S2->next;
375 }sdd.MS.D->P->S2 = SMSP2top;
378 if(sdd.MS.D->P->type == 22){
379 MAPSCRIPT3 *SMSP3top = sdd.MS.D->P->S3;
381 sdd.MS.D->P->S3cnt = 0;
382 while (sdd.MS.D->P->S3) {
383 sdd.MS.D->P->S3cnt++;
384 sdd.MS.D->P->S3 = sdd.MS.D->P->S3->next;
385 }sdd.MS.D->P->S3 = SMSP3top;
386 [self writeInt:fp val:sdd.MS.D->P->S3cnt];
389 for (int k = 0;k < sdd.MS.D->P->S3cnt;k++) {
390 [self writeMapScript3:fp];
391 sdd.MS.D->P->S3 = sdd.MS.D->P->S3->next;
392 }sdd.MS.D->P->S3 = SMSP3top;
396 if(sdd.MS.D->P->type == 6)
397 [self writeMapScript4:fp];
399 if(sdd.MS.D->P->type == 23){
400 MAPSCRIPT5 *SMSP5top = sdd.MS.D->P->S5;
402 sdd.MS.D->P->S5cnt = 0;
403 while (sdd.MS.D->P->S5) {
404 sdd.MS.D->P->S5cnt++;
405 sdd.MS.D->P->S5 = sdd.MS.D->P->S5->next;
406 }sdd.MS.D->P->S5 = SMSP5top;
407 [self writeInt:fp val:sdd.MS.D->P->S5cnt];
409 for (int k = 0;k < sdd.MS.D->P->S5cnt;k++) {
410 [self writeMapScript5:fp];
411 sdd.MS.D->P->S5 = sdd.MS.D->P->S5->next;
412 }sdd.MS.D->P->S5 = SMSP5top;
416 if(sdd.MS.D->P->type == 10)
417 [self writeMapScript6:fp];
419 if(sdd.MS.D->P->type == 15)
420 [self writeMapScript7:fp];
422 sdd.MS.D->P = sdd.MS.D->P->next;
423 }sdd.MS.D->P = SMSPtop;
426 sdd.MS.D = sdd.MS.D->next;
431 -(void)writeMapScript1:(FILE*)fp{
433 if(!sdd.MS.D->P->S1.name)
434 sdd.MS.D->P->S1.name = [@"" retain];
435 if(!sdd.MS.D->P->S1.str)
436 sdd.MS.D->P->S1.str = [@"" retain];
437 if(!sdd.MS.D->P->S1.iName)
438 sdd.MS.D->P->S1.iName = [@"" retain];
439 if(!sdd.MS.D->P->S1.nameID)
440 sdd.MS.D->P->S1.nameID = [@"" retain];
442 [self writeNSString:fp str:sdd.MS.D->P->S1.name];
443 [self writeNSString:fp str:sdd.MS.D->P->S1.str];
444 [self writeNSString:fp str:sdd.MS.D->P->S1.iName];
445 [self writeNSString:fp str:sdd.MS.D->P->S1.nameID];
456 -(void)writeMapScript2:(FILE*)fp{
458 [self writeNSString:fp str:sdd.MS.D->P->S2->selection];
459 [self writeNSString:fp str:sdd.MS.D->P->S2->labelJump];
462 //struct _MAPSCRIPT2 *next;
469 -(void)writeMapScript3:(FILE*)fp{
471 [self writeInt:fp val:sdd.MS.D->P->S3->x];
472 [self writeInt:fp val:sdd.MS.D->P->S3->y];
473 [self writeInt:fp val:sdd.MS.D->P->S3->flag];
475 [self writeInt:fp val:sdd.MS.D->P->S3->type];
476 [self writeInt:fp val:sdd.MS.D->P->S3->team];
478 [self writeInt:fp val:sdd.MS.D->P->S3->unitNum];
479 [self writeInt:fp val:sdd.MS.D->P->S3->loadInt];
482 //struct _MAPSCRIPT3 *next;
498 -(void)writeMapScript4:(FILE*)fp{
500 [self writeInt:fp val:sdd.MS.D->P->S4.lagFixFlag];
501 [self writeNSString:fp str:sdd.MS.D->P->S4.COMPrabel];
502 [self writeNSString:fp str:sdd.MS.D->P->S4.FAILrabel];
504 [self writeInt:fp val:sdd.MS.D->P->S4.suicchiFlag];
506 sdd.MS.D->P->S4.suicchiCnt = 0;
507 if(sdd.MS.D->P->S4.suicchi)
508 for(int l = 0;*(sdd.MS.D->P->S4.suicchi + l) > 0;l++) {
509 sdd.MS.D->P->S4.suicchiCnt++;
510 }[self writeInt:fp val:(int)sdd.MS.D->P->S4.suicchiCnt];
512 for(int l = 0;l < sdd.MS.D->P->S4.suicchiCnt;l++) {
513 [self writeInt:fp val:(int)*(sdd.MS.D->P->S4.suicchi + l)];
516 [self writeInt:fp val:sdd.MS.D->P->S4.suicchiONOFF];
519 [self writeInt:fp val:sdd.MS.D->P->S4.hensuFlag];
520 [self writeInt:fp val:sdd.MS.D->P->S4.hensu1];
521 [self writeInt:fp val:sdd.MS.D->P->S4.teisuFlag];
522 [self writeInt:fp val:sdd.MS.D->P->S4.teisuValue];
523 [self writeInt:fp val:sdd.MS.D->P->S4.hensu2flag];
524 [self writeInt:fp val:sdd.MS.D->P->S4.hensu2];
525 [self writeInt:fp val:sdd.MS.D->P->S4.hensuType];
527 [self writeInt:fp val:sdd.MS.D->P->S4.timerFlag];
528 [self writeInt:fp val:sdd.MS.D->P->S4.timerMin];
529 [self writeInt:fp val:sdd.MS.D->P->S4.timerSec];
530 [self writeInt:fp val:sdd.MS.D->P->S4.timerType];
532 [self writeInt:fp val:sdd.MS.D->P->S4.unitNumFlag];
533 [self writeInt:fp val:sdd.MS.D->P->S4.team];
534 [self writeInt:fp val:sdd.MS.D->P->S4.unitNum];
535 [self writeInt:fp val:sdd.MS.D->P->S4.unitType];
536 [self writeInt:fp val:sdd.MS.D->P->S4.unitTypeFlag];
539 UNIT2 *subjTop = sdd.MS.D->P->S4.subj;
541 sdd.MS.D->P->S4.subjCnt = 0;
542 while (sdd.MS.D->P->S4.subj) {
543 sdd.MS.D->P->S4.subjCnt++;
544 sdd.MS.D->P->S4.subj = sdd.MS.D->P->S4.subj->next;
545 }sdd.MS.D->P->S4.subj = subjTop;
546 [self writeInt:fp val:sdd.MS.D->P->S4.subjCnt];
548 for (int k = 0;k < sdd.MS.D->P->S4.subjCnt;k++) {
549 [self writeMapScript4subj:fp];
550 sdd.MS.D->P->S4.subj = sdd.MS.D->P->S4.subj->next;
551 }sdd.MS.D->P->S4.subj = subjTop;
556 [self writeInt:fp val:sdd.MS.D->P->S4.placeFlag];
557 PLACEMENT *waypTop = sdd.MS.D->P->S4.wayp;
559 sdd.MS.D->P->S4.waypCnt = 0;
560 while (sdd.MS.D->P->S4.wayp) {
561 sdd.MS.D->P->S4.waypCnt++;
562 sdd.MS.D->P->S4.wayp = sdd.MS.D->P->S4.wayp->next;
563 }sdd.MS.D->P->S4.wayp = waypTop;
564 [self writeInt:fp val:sdd.MS.D->P->S4.waypCnt];
566 for (int k = 0;k < sdd.MS.D->P->S4.waypCnt;k++) {
567 [self writeMapScript4wayp:fp];
568 sdd.MS.D->P->S4.wayp = sdd.MS.D->P->S4.wayp->next;
569 }sdd.MS.D->P->S4.wayp = waypTop;
571 [self writeInt:fp val:sdd.MS.D->P->S4.unitCMDflag];
572 [self writeInt:fp val:sdd.MS.D->P->S4.unitCMD];
575 [self writeInt:fp val:sdd.MS.D->P->S4.objeFlag];
576 UNIT2 *objeTop = sdd.MS.D->P->S4.obje;
578 sdd.MS.D->P->S4.objeCnt = 0;
579 while (sdd.MS.D->P->S4.obje) {
580 sdd.MS.D->P->S4.objeCnt++;
581 sdd.MS.D->P->S4.obje = sdd.MS.D->P->S4.obje->next;
582 }sdd.MS.D->P->S4.obje = objeTop;
583 [self writeInt:fp val:sdd.MS.D->P->S4.objeCnt];
585 for (int k = 0;k < sdd.MS.D->P->S4.objeCnt;k++) {
586 [self writeMapScript4obje:fp];
587 sdd.MS.D->P->S4.obje = sdd.MS.D->P->S4.obje->next;
588 }sdd.MS.D->P->S4.obje = objeTop;
590 [self writeInt:fp val:sdd.MS.D->P->S4.objeRange];
594 [self writeInt:fp val:sdd.MS.D->P->S4.buildFlag];
595 BUILD2 *buildTop = sdd.MS.D->P->S4.build;
597 sdd.MS.D->P->S4.buildCnt = 0;
598 while (sdd.MS.D->P->S4.build) {
599 sdd.MS.D->P->S4.buildCnt++;
600 sdd.MS.D->P->S4.build = sdd.MS.D->P->S4.build->next;
601 }sdd.MS.D->P->S4.build = buildTop;
602 [self writeInt:fp val:sdd.MS.D->P->S4.buildCnt];
604 for (int k = 0;k < sdd.MS.D->P->S4.buildCnt;k++) {
605 [self writeMapScript4build:fp];
606 sdd.MS.D->P->S4.build = sdd.MS.D->P->S4.build->next;
607 }sdd.MS.D->P->S4.build = buildTop;
612 -(void)writeMapScript4subj:(FILE*)fp{
614 [self writeInt:fp val:sdd.MS.D->P->S4.subj->team];
615 [self writeInt:fp val:sdd.MS.D->P->S4.subj->x];
616 [self writeInt:fp val:sdd.MS.D->P->S4.subj->y];
619 //struct _UNIT2 *next;
628 -(void)writeMapScript4wayp:(FILE*)fp{
630 [self writeInt:fp val:sdd.MS.D->P->S4.wayp->type];
631 [self writeInt:fp val:sdd.MS.D->P->S4.wayp->x];
632 [self writeInt:fp val:sdd.MS.D->P->S4.wayp->y];
633 [self writeInt:fp val:sdd.MS.D->P->S4.wayp->z];
634 [self writeInt:fp val:sdd.MS.D->P->S4.wayp->x2];
635 [self writeInt:fp val:sdd.MS.D->P->S4.wayp->y2];
638 //struct _PLACEMENT *next;
649 -(void)writeMapScript4obje:(FILE*)fp{
651 [self writeInt:fp val:sdd.MS.D->P->S4.obje->team];
652 [self writeInt:fp val:sdd.MS.D->P->S4.obje->x];
653 [self writeInt:fp val:sdd.MS.D->P->S4.obje->y];
656 //struct _UNIT2 *next;
665 -(void)writeMapScript4build:(FILE*)fp{
667 [self writeInt:fp val:sdd.MS.D->P->S4.build->team];
668 [self writeInt:fp val:sdd.MS.D->P->S4.build->x];
669 [self writeInt:fp val:sdd.MS.D->P->S4.build->y];
672 //struct _BUILD2 *next;
673 //struct _BUILDCHIP *C;
681 -(void)writeMapScript5:(FILE*)fp{
683 [self writeInt:fp val:sdd.MS.D->P->S5->x];
684 [self writeInt:fp val:sdd.MS.D->P->S5->y];
685 [self writeInt:fp val:sdd.MS.D->P->S5->type];
686 [self writeInt:fp val:sdd.MS.D->P->S5->team];
687 [self writeInt:fp val:sdd.MS.D->P->S5->unitNum];
688 [self writeInt:fp val:sdd.MS.D->P->S5->saveInt];
691 //struct _MAPSCRIPT5 *next;
707 -(void)writeMapScript6:(FILE*)fp{
709 [self writeInt:fp val:sdd.MS.D->P->S6.team];
711 [self writeInt:fp val:sdd.MS.D->P->S6.RCsupply];
712 [self writeInt:fp val:sdd.MS.D->P->S6.RCfood];
713 [self writeInt:fp val:sdd.MS.D->P->S6.RCmoney];
715 [self writeInt:fp val:sdd.MS.D->P->S6.RCsupplyAdd];
716 [self writeInt:fp val:sdd.MS.D->P->S6.RCfoodAdd];
717 [self writeInt:fp val:sdd.MS.D->P->S6.RCmoneyAdd];
719 [self writeInt:fp val:sdd.MS.D->P->S6.RCsupplyValue];
720 [self writeInt:fp val:sdd.MS.D->P->S6.RCfoodValue];
721 [self writeInt:fp val:sdd.MS.D->P->S6.RCmoneyValue];
723 [self writeInt:fp val:sdd.MS.D->P->S6.RCsupplySelect];
724 [self writeInt:fp val:sdd.MS.D->P->S6.RCfoodSelect];
725 [self writeInt:fp val:sdd.MS.D->P->S6.RCmoneySelect];
727 [self writeInt:fp val:sdd.MS.D->P->S6.RCsupplyS];
728 [self writeInt:fp val:sdd.MS.D->P->S6.RCfoodS];
729 [self writeInt:fp val:sdd.MS.D->P->S6.RCmoneyS];
733 -(void)writeMapScript7:(FILE*)fp{
735 [self writeInt:fp val:sdd.MS.D->P->S7.type];
737 [self writeInt:fp val:sdd.MS.D->P->S7.maxFlag];
738 [self writeInt:fp val:sdd.MS.D->P->S7.percentFlag];
739 [self writeInt:fp val:sdd.MS.D->P->S7.extendFlag];
741 [self writeInt:fp val:sdd.MS.D->P->S7.fluctuate];
742 [self writeInt:fp val:sdd.MS.D->P->S7.valueType];
744 [self writeNSString:fp str:sdd.MS.D->P->S7.value];
746 [self writeInt:fp val:sdd.MS.D->P->S7.rdm];
749 [self writeInt:fp val:sdd.MS.D->P->S7.teamFlag];
750 [self writeInt:fp val:sdd.MS.D->P->S7.team];
752 [self writeInt:fp val:sdd.MS.D->P->S7.unitFlag];
753 [self writeInt:fp val:sdd.MS.D->P->S7.valueFlag];
755 MS7Atop = sdd.MS.D->P->S7.A;
756 while (sdd.MS.D->P->S7.A) {
757 sdd.MS.D->P->S7.S7Acnt++;
758 sdd.MS.D->P->S7.A = sdd.MS.D->P->S7.A->next;
759 }sdd.MS.D->P->S7.A = MS7Atop;
761 MS7Btop = sdd.MS.D->P->S7.B;
762 while (sdd.MS.D->P->S7.B) {
763 sdd.MS.D->P->S7.S7Bcnt++;
764 sdd.MS.D->P->S7.B = sdd.MS.D->P->S7.B->next;
765 }sdd.MS.D->P->S7.B = MS7Btop;
767 [self writeInt:fp val:sdd.MS.D->P->S7.S7Acnt];
768 [self writeInt:fp val:sdd.MS.D->P->S7.S7Bcnt];
771 MS7Atop = sdd.MS.D->P->S7.A;
772 for(int i = 0;i < sdd.MS.D->P->S7.S7Acnt;i++){
774 [self writeInt:fp val:sdd.MS.D->P->S7.A->x];
775 [self writeInt:fp val:sdd.MS.D->P->S7.A->y];
776 [self writeInt:fp val:sdd.MS.D->P->S7.A->team];
777 [self writeInt:fp val:sdd.MS.D->P->S7.A->unitNum];
779 sdd.MS.D->P->S7.A = sdd.MS.D->P->S7.A->next;
780 }sdd.MS.D->P->S7.A = MS7Atop;
782 MS7Btop = sdd.MS.D->P->S7.B;
783 for(int i = 0;i < sdd.MS.D->P->S7.S7Bcnt;i++){
785 [self writeInt:fp val:sdd.MS.D->P->S7.B->x];
786 [self writeInt:fp val:sdd.MS.D->P->S7.B->y];
787 [self writeInt:fp val:sdd.MS.D->P->S7.B->team];
788 [self writeInt:fp val:sdd.MS.D->P->S7.B->unitNum];
789 [self writeInt:fp val:sdd.MS.D->P->S7.B->saveInt];
791 sdd.MS.D->P->S7.B = sdd.MS.D->P->S7.B->next;
792 }sdd.MS.D->P->S7.B = MS7Btop;
796 -(void)writeMapScriptBGM:(FILE*)fp{
798 [self writeNSString:fp str:sdd.MS.D->P->BGM.name];
799 [self writeNSString:fp str:sdd.MS.D->P->BGM.fName];
808 -(void)writeMapScriptSE:(FILE*)fp{
810 [self writeNSString:fp str:sdd.MS.D->P->SE.name];
811 [self writeNSString:fp str:sdd.MS.D->P->SE.fName];
820 -(void)writeMapScriptSC:(FILE*)fp{
822 [self writeInt:fp val:sdd.MS.D->P->sc.scFlag];
823 [self writeInt:fp val:sdd.MS.D->P->sc.edcdFlag];
831 -(void)writeMapScriptGAOV:(FILE*)fp{
833 [self writeNSString:fp str:sdd.MS.D->P->gaov.fNname];
834 [self writeInt:fp val:sdd.MS.D->P->gaov.gaovFlag];
835 [self writeInt:fp val:sdd.MS.D->P->gaov.edcdFlag];
845 -(int)readInt:(FILE*)fp{
850 for(counter= INT_MAX;counter > 0;counter >>= 8){
851 unsigned char nowData = 0;
852 fread(&nowData, sizeof(unsigned char), 1, fp);
853 result |= (int)nowData << shiftLen;
860 -(NSString*)readNSString:(FILE*)fp strOut:(NSString*)strOut{
861 int length = [self readInt:fp];
863 fread(strOutcc, sizeof(strOut), length, fp);
864 strOut = [[NSString stringWithUTF8String:strOutcc] retain];
869 -(NSImage*)readNSImage:(FILE*)fp imgOut:(NSImage*)imgOut dcnt:(int)dcnt dfix:(int)dfix{
870 unsigned char idat[1024];
873 NSMutableData *binaryData = [NSMutableData dataWithCapacity:sizeof(idat)];
876 for(int i = 0;i < dcnt;i++){
877 size += fread(idat, 1, 1024, fp);
886 NSMutableData* data = [NSMutableData dataWithBytes:idat length:sizeof(unsigned char)*1024];
887 [binaryData appendData:data];
891 imgOut = [[[NSImage alloc] initWithData:binaryData] retain];
896 -(void)readBiuldD:(FILE*)fp row:(int)r{
898 sdd2[datRow].dB[r].number = (int)[self readInt:fp];
899 sdd2[datRow].dB[r].team = (int)[self readInt:fp];
900 sdd2[datRow].dB[r].chipNumber = (int)[self readInt:fp];
901 sdd2[datRow].dB[r].makeLv = (int)[self readInt:fp];
903 sdd2[datRow].dB[r].x = (int)[self readInt:fp];
904 sdd2[datRow].dB[r].y = (int)[self readInt:fp];
905 sdd2[datRow].dB[r].z = (int)[self readInt:fp];
907 sdd2[datRow].dB[r].dead = (int)[self readInt:fp];
909 sdd2[datRow].dB[r].imgAdCnt = (int)[self readInt:fp];
910 sdd2[datRow].dB[r].imgAdFix = (int)[self readInt:fp];
911 sdd2[datRow].dB[r].img = [self readNSImage:fp imgOut:sdd2[datRow].dB[r].img dcnt:sdd2[datRow].dB[r].imgAdCnt dfix:sdd2[datRow].dB[r].imgAdFix];
913 [self readBuildChipD:fp val:&sdd2[datRow].dB[r].C];
916 -(void)readBuildChipD:(FILE*)fp val:(BUILDCHIPD*)val{
918 val->chipNumb = (int)[self readInt:fp];
919 val->name = [[self readNSString:fp strOut:val->name] retain];
920 val->nameID = [[self readNSString:fp strOut:val->nameID] retain];
922 fread(&val->S_C, sizeof(BSTATUS), 1, fp);
924 //NSLog(@"awww man...");
929 -(void)readUnitD:(FILE*)fp row:(int)r{
931 sdd2[datRow].dU[r].CPU = (int)[self readInt:fp];
932 sdd2[datRow].dU[r].number = (int)[self readInt:fp];
933 sdd2[datRow].dU[r].team = (int)[self readInt:fp];
934 sdd2[datRow].dU[r].chipNumber = (int)[self readInt:fp];
935 sdd2[datRow].dU[r].chipNumberL = (int)[self readInt:fp];
937 sdd2[datRow].dU[r].x = (int)[self readInt:fp];
938 sdd2[datRow].dU[r].y = (int)[self readInt:fp];
939 sdd2[datRow].dU[r].z = (int)[self readInt:fp];
941 sdd2[datRow].dU[r].ix = (int)[self readInt:fp];
942 sdd2[datRow].dU[r].iy = (int)[self readInt:fp];
943 sdd2[datRow].dU[r].iz = (int)[self readInt:fp];
945 sdd2[datRow].dU[r].dead = (int)[self readInt:fp];
947 sdd2[datRow].dU[r].loadChipFlag = (int)[self readInt:fp];
949 sdd2[datRow].dU[r].unControlable = (int)[self readInt:fp];
950 sdd2[datRow].dU[r].joinArmyFromNext = (int)[self readInt:fp];
951 sdd2[datRow].dU[r].persuasion = (int)[self readInt:fp];
953 sdd2[datRow].dU[r].targType1L = (int)[self readInt:fp];
954 sdd2[datRow].dU[r].targType2L = (int)[self readInt:fp];
955 sdd2[datRow].dU[r].targType1D = (int)[self readInt:fp];
956 sdd2[datRow].dU[r].targType2D = (int)[self readInt:fp];
958 sdd2[datRow].dU[r].army = [[self readNSString:fp strOut:sdd2[datRow].dU[r].army] retain];
961 sdd2[datRow].dU[r].imgAdCnt = (int)[self readInt:fp];
962 sdd2[datRow].dU[r].imgAdFix = (int)[self readInt:fp];
963 sdd2[datRow].dU[r].img = [self readNSImage:fp imgOut:sdd2[datRow].dU[r].img dcnt:sdd2[datRow].dU[r].imgAdCnt dfix:sdd2[datRow].dU[r].imgAdFix];
966 [self readUnitChipD:fp val:&sdd2[datRow].dU[r].C];
967 [self readUnitChipLD:fp val:&sdd2[datRow].dU[r].CL];
971 -(void)readUnitChipD:(FILE*)fp val:(UNITCHIPD*)val{
973 val->chipNumb = (int)[self readInt:fp];
974 val->name = [[self readNSString:fp strOut:val->name] retain];
975 val->nameNick = [[self readNSString:fp strOut:val->nameNick] retain];
976 val->nameClass = [[self readNSString:fp strOut:val->nameClass] retain];
977 val->nameID = [[self readNSString:fp strOut:val->nameID] retain];
981 fread(&val->R_C, sizeof(RESIST), 1, fp);
982 fread(&val->S_C, sizeof(STATUS), 1, fp);
984 //NSLog(@"creepy jude...");
987 -(void)readUnitChipLD:(FILE*)fp val:(LOADCHIPD*)val{
989 val->chipNumb = (int)[self readInt:fp];
990 val->name = [[self readNSString:fp strOut:val->name] retain];
991 val->nameID = [[self readNSString:fp strOut:val->nameID] retain];
995 fread(&val->R_C, sizeof(RESIST), 1, fp);
996 fread(&val->S_C, sizeof(STATUS2), 1, fp);
998 //NSLog(@"creepy jude...2");
1001 -(void)readMapScript:(FILE*)fp{
1003 sdd2[datRow].MS.EGClight.endType1 = (int)[self readInt:fp];
1004 sdd2[datRow].MS.EGClight.endType2 = (int)[self readInt:fp];
1005 for(int i = 0;i < 64;i++)
1006 sdd2[datRow].MS.EGClight.etValue1[i] = [[self readNSString:fp strOut:sdd2[datRow].MS.EGClight.etValue1[i]] retain];
1007 for(int i = 0;i < 64;i++)
1008 sdd2[datRow].MS.EGClight.etValue2[i] = [[self readNSString:fp strOut:sdd2[datRow].MS.EGClight.etValue2[i]] retain];
1010 sdd2[datRow].MS.EGCdark.endType1 = (int)[self readInt:fp];
1011 sdd2[datRow].MS.EGCdark.endType2 = (int)[self readInt:fp];
1012 for(int i = 0;i < 64;i++)
1013 sdd2[datRow].MS.EGCdark.etValue1[i] = [[self readNSString:fp strOut:sdd2[datRow].MS.EGCdark.etValue1[i]] retain];
1014 for(int i = 0;i < 64;i++)
1015 sdd2[datRow].MS.EGCdark.etValue2[i] = [[self readNSString:fp strOut:sdd2[datRow].MS.EGCdark.etValue2[i]] retain];
1017 sdd2[datRow].MS.playerSet1 = (int)[self readInt:fp];
1018 sdd2[datRow].MS.playerSet2 = (int)[self readInt:fp];
1019 sdd2[datRow].MS.battleSetMode = (int)[self readInt:fp];
1020 sdd2[datRow].MS.employAllowedFlag = (int)[self readInt:fp];
1021 sdd2[datRow].MS.buildAllowedFlag = (int)[self readInt:fp];
1022 sdd2[datRow].MS.summonAllowedFlag = (int)[self readInt:fp];
1024 sdd2[datRow].MS.scenarioSetMode = (int)[self readInt:fp];
1025 sdd2[datRow].MS.scenarioNumbCrnt = (int)[self readInt:fp];
1026 sdd2[datRow].MS.scenarioNumbNext = (int)[self readInt:fp];
1028 for(int i = 0;i < 4096;i++)
1029 sdd2[datRow].MS.guildListRegist[i] = (int)[self readInt:fp];
1030 sdd2[datRow].MS.guildListRegistNum11 = (int)[self readInt:fp];
1031 sdd2[datRow].MS.guildListRegistNum12 = (int)[self readInt:fp];
1033 for(int i = 0;i < 4096;i++)
1034 sdd2[datRow].MS.guildListRegist2[i] = (int)[self readInt:fp];
1035 sdd2[datRow].MS.guildListRegistNum21 = (int)[self readInt:fp];
1036 sdd2[datRow].MS.guildListRegistNum22 = (int)[self readInt:fp];
1039 sdd2[datRow].MS.SCRPTnameCnt = (int)[self readInt:fp];
1040 sdd2[datRow].MS.SCRPTname = [NSMutableArray new];
1041 for(int j = 0;j < sdd2[datRow].MS.SCRPTnameCnt;j++)
1042 [sdd2[datRow].MS.SCRPTname addObject:@""];
1043 for(int i = 0;i < sdd2[datRow].MS.SCRPTnameCnt;i++)
1044 sdd2[datRow].MS.SCRPTname[i] = [[self readNSString:fp strOut:sdd2[datRow].MS.SCRPTname[i]] retain];
1047 MAPSCRIPTD *SMSDtop = sdd2[datRow].MS.D;
1049 sdd2[datRow].MS.Dcnt = (int)[self readInt:fp];
1051 for (int i = 0;i < sdd2[datRow].MS.Dcnt;i++) {
1054 sdd2[datRow].MS.D = calloc(1, sizeof(MAPSCRIPTD));
1055 if(i + 1 < sdd2[datRow].MS.Dcnt)
1056 sdd2[datRow].MS.D->next = calloc(1, sizeof(MAPSCRIPTD));
1057 SMSDtop = sdd2[datRow].MS.D;
1059 }else if(i + 1 < sdd2[datRow].MS.Dcnt)
1060 sdd2[datRow].MS.D->next = calloc(1, sizeof(MAPSCRIPTD));
1062 sdd2[datRow].MS.D->SCRPTcnt = (int)[self readInt:fp];
1063 sdd2[datRow].MS.D->SCRPT = [NSMutableArray new];
1064 for(int j = 0;j < sdd2[datRow].MS.D->SCRPTcnt;j++)
1065 [sdd2[datRow].MS.D->SCRPT addObject:@""];
1066 for(int j = 0;j < sdd2[datRow].MS.D->SCRPTcnt;j++)
1067 sdd2[datRow].MS.D->SCRPT[j] = [[self readNSString:fp strOut:sdd2[datRow].MS.D->SCRPT[j]] retain];
1070 sdd2[datRow].MS.D->endFlag = (int)[self readInt:fp];
1071 sdd2[datRow].MS.D->index = (int)[self readInt:fp];
1072 sdd2[datRow].MS.D->x = (int)[self readInt:fp];
1073 sdd2[datRow].MS.D->y = (int)[self readInt:fp];
1074 sdd2[datRow].MS.D->type = (int)[self readInt:fp];
1075 sdd2[datRow].MS.D->ET1 = (int)[self readInt:fp];
1076 sdd2[datRow].MS.D->ET2 = (int)[self readInt:fp];
1077 sdd2[datRow].MS.D->ET3 = (int)[self readInt:fp];
1078 sdd2[datRow].MS.D->ET4 = (int)[self readInt:fp];
1079 sdd2[datRow].MS.D->ETtype = (int)[self readInt:fp];
1080 sdd2[datRow].MS.D->onlyInitialDeley = (int)[self readInt:fp];
1081 sdd2[datRow].MS.D->initialDeleyedFlag = (int)[self readInt:fp];
1082 sdd2[datRow].MS.D->switch1f = (int)[self readInt:fp];
1083 sdd2[datRow].MS.D->switch2f = (int)[self readInt:fp];
1085 sdd2[datRow].MS.D->switch1cnt = (int)[self readInt:fp];
1086 sdd2[datRow].MS.D->switch2cnt = (int)[self readInt:fp];
1088 if(sdd2[datRow].MS.D->switch1cnt > 0)
1089 sdd2[datRow].MS.D->switch1 = calloc(sdd2[datRow].MS.D->switch1cnt, sizeof(int));
1090 for(int j = 0;j < sdd2[datRow].MS.D->switch1cnt;j++) {
1091 *(sdd2[datRow].MS.D->switch1 + j) = (int)[self readInt:fp];
1093 if(sdd2[datRow].MS.D->switch2cnt > 0)
1094 sdd2[datRow].MS.D->switch2 = calloc(sdd2[datRow].MS.D->switch2cnt, sizeof(int));
1095 for(int j = 0;j < sdd2[datRow].MS.D->switch2cnt;j++) {
1096 *(sdd2[datRow].MS.D->switch2 + j) = (int)[self readInt:fp];
1100 MAPSCRIPT0 *SMSPtop = sdd2[datRow].MS.D->P;
1102 sdd2[datRow].MS.D->Pcnt = (int)[self readInt:fp];
1104 for (int j = 0;j < sdd2[datRow].MS.D->Pcnt;j++) {
1107 sdd2[datRow].MS.D->P = calloc(1, sizeof(MAPSCRIPT0));
1108 if(j + 1 < sdd2[datRow].MS.D->Pcnt)
1109 sdd2[datRow].MS.D->P->next = calloc(1, sizeof(MAPSCRIPT0));
1110 SMSPtop = sdd2[datRow].MS.D->P;
1111 }else if(j + 1 < sdd2[datRow].MS.D->Pcnt)
1112 sdd2[datRow].MS.D->P->next = calloc(1, sizeof(MAPSCRIPT0));
1114 sdd2[datRow].MS.D->P->endFlag = (int)[self readInt:fp];
1115 sdd2[datRow].MS.D->P->succeessfulFlag = (int)[self readInt:fp];
1116 sdd2[datRow].MS.D->P->indent = (int)[self readInt:fp];
1117 sdd2[datRow].MS.D->P->val = (int)[self readInt:fp];
1118 sdd2[datRow].MS.D->P->valCnt = (int)[self readInt:fp];
1119 sdd2[datRow].MS.D->P->timerMin = (int)[self readInt:fp];
1120 sdd2[datRow].MS.D->P->timerSec = (int)[self readInt:fp];
1121 sdd2[datRow].MS.D->P->timerEntire = (int)[self readInt:fp];
1123 sdd2[datRow].MS.D->P->timerFlag = (int)[self readInt:fp];
1124 sdd2[datRow].MS.D->P->timerVisible = (int)[self readInt:fp];
1125 sdd2[datRow].MS.D->P->timerRun = (int)[self readInt:fp];
1126 sdd2[datRow].MS.D->P->timerMode = (int)[self readInt:fp];
1127 sdd2[datRow].MS.D->P->wait = (int)[self readInt:fp];
1128 sdd2[datRow].MS.D->P->titleBack = (int)[self readInt:fp];
1130 sdd2[datRow].MS.D->P->label = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->label] retain];
1131 sdd2[datRow].MS.D->P->labelJump = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->labelJump] retain];
1132 sdd2[datRow].MS.D->P->memo = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->memo] retain];
1134 sdd2[datRow].MS.D->P->switch1cnt = (int)[self readInt:fp];
1135 sdd2[datRow].MS.D->P->switch2cnt = (int)[self readInt:fp];
1137 if(sdd2[datRow].MS.D->P->switch1cnt > 0)
1138 sdd2[datRow].MS.D->P->switch1 = calloc(sdd2[datRow].MS.D->P->switch1cnt, sizeof(int));
1139 for(int k = 0;k < sdd2[datRow].MS.D->P->switch1cnt;k++) {
1140 *(sdd2[datRow].MS.D->P->switch1 + k) = (int)[self readInt:fp];
1143 if(sdd2[datRow].MS.D->P->switch2cnt > 0)
1144 sdd2[datRow].MS.D->P->switch2 = calloc(sdd2[datRow].MS.D->P->switch2cnt, sizeof(int));
1145 for(int k = 0;k < sdd2[datRow].MS.D->P->switch2cnt;k++) {
1146 *(sdd2[datRow].MS.D->P->switch2 + k) = (int)[self readInt:fp];
1149 [self readMapScriptBGM:fp];
1150 [self readMapScriptSE:fp];
1151 [self readMapScriptSC:fp];
1152 [self readMapScriptGAOV:fp];
1154 sdd2[datRow].MS.D->P->type = (int)[self readInt:fp];
1157 if(sdd2[datRow].MS.D->P->type != 7)
1158 sdd2[datRow].MS.D->P->label = NULL;
1159 if(sdd2[datRow].MS.D->P->type != 8)
1160 sdd2[datRow].MS.D->P->labelJump = NULL;
1161 if(sdd2[datRow].MS.D->P->type != 9)
1162 sdd2[datRow].MS.D->P->memo = NULL;
1164 if(sdd2[datRow].MS.D->P->type == 0)
1165 [self readMapScript1:fp];
1167 if(sdd2[datRow].MS.D->P->type == 1){
1168 MAPSCRIPT2 *SMSP2top = sdd2[datRow].MS.D->P->S2;
1170 sdd2[datRow].MS.D->P->S2cnt = (int)[self readInt:fp];
1172 for (int k = 0;k < sdd2[datRow].MS.D->P->S2cnt;k++) {
1174 sdd2[datRow].MS.D->P->S2 = calloc(1, sizeof(MAPSCRIPT2));
1175 if(k + 1 < sdd2[datRow].MS.D->P->S2cnt)
1176 sdd2[datRow].MS.D->P->S2->next = calloc(1, sizeof(MAPSCRIPT2));
1177 SMSP2top = sdd2[datRow].MS.D->P->S2;
1178 }else if(k + 1 < sdd2[datRow].MS.D->P->S2cnt)
1179 sdd2[datRow].MS.D->P->S2->next = calloc(1, sizeof(MAPSCRIPT2));
1180 [self readMapScript2:fp];
1181 sdd2[datRow].MS.D->P->S2 = sdd2[datRow].MS.D->P->S2->next;
1183 if(sdd2[datRow].MS.D->P->S2)
1184 sdd2[datRow].MS.D->P->S2->next = NULL;
1185 sdd2[datRow].MS.D->P->S2 = SMSP2top;
1189 if(sdd2[datRow].MS.D->P->type == 22){
1190 MAPSCRIPT3 *SMSP3top = sdd2[datRow].MS.D->P->S3;
1192 sdd2[datRow].MS.D->P->S3cnt = (int)[self readInt:fp];
1194 for (int k = 0;k < sdd2[datRow].MS.D->P->S3cnt;k++) {
1196 sdd2[datRow].MS.D->P->S3 = calloc(1, sizeof(MAPSCRIPT3));
1197 if(k + 1 < sdd2[datRow].MS.D->P->S3cnt)
1198 sdd2[datRow].MS.D->P->S3->next = calloc(1, sizeof(MAPSCRIPT3));
1199 SMSP3top = sdd2[datRow].MS.D->P->S3;
1200 }else if(k + 1 < sdd2[datRow].MS.D->P->S3cnt)
1201 sdd2[datRow].MS.D->P->S3->next = calloc(1, sizeof(MAPSCRIPT3));
1202 [self readMapScript3:fp];
1203 sdd2[datRow].MS.D->P->S3 = sdd2[datRow].MS.D->P->S3->next;
1204 }sdd2[datRow].MS.D->P->S3 = SMSP3top;
1206 if(sdd2[datRow].MS.D->P->type == 6)
1207 [self readMapScript4:fp];
1209 if(sdd2[datRow].MS.D->P->type == 23){
1210 MAPSCRIPT5 *SMSP5top = sdd2[datRow].MS.D->P->S5;
1212 sdd2[datRow].MS.D->P->S5cnt = (int)[self readInt:fp];
1214 for (int k = 0;k < sdd2[datRow].MS.D->P->S5cnt;k++) {
1216 sdd2[datRow].MS.D->P->S5 = calloc(1, sizeof(MAPSCRIPT5));
1217 if(k + 1 < sdd2[datRow].MS.D->P->S5cnt)
1218 sdd2[datRow].MS.D->P->S5->next = calloc(1, sizeof(MAPSCRIPT5));
1219 SMSP5top = sdd2[datRow].MS.D->P->S5;
1220 }else if(k + 1 < sdd2[datRow].MS.D->P->S5cnt)
1221 sdd2[datRow].MS.D->P->S5->next = calloc(1, sizeof(MAPSCRIPT5));
1222 [self readMapScript5:fp];
1223 sdd2[datRow].MS.D->P->S5 = sdd2[datRow].MS.D->P->S5->next;
1224 }sdd2[datRow].MS.D->P->S5 = SMSP5top;
1227 if(sdd2[datRow].MS.D->P->type == 10)
1228 [self readMapScript6:fp];
1232 sdd2[datRow].MS.D->P = sdd2[datRow].MS.D->P->next;
1234 if(sdd2[datRow].MS.D->P)
1235 sdd2[datRow].MS.D->P->next = NULL;
1237 sdd2[datRow].MS.D->P = SMSPtop;
1240 sdd2[datRow].MS.D = sdd2[datRow].MS.D->next;
1242 if(sdd2[datRow].MS.D)
1243 sdd2[datRow].MS.D->next = NULL;
1245 sdd2[datRow].MS.D = SMSDtop;
1252 -(void)readMapScript1:(FILE*)fp{
1254 sdd2[datRow].MS.D->P->S1.name = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->S1.name] retain];
1255 sdd2[datRow].MS.D->P->S1.str = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->S1.str] retain];
1256 sdd2[datRow].MS.D->P->S1.iName = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->S1.iName] retain];
1257 sdd2[datRow].MS.D->P->S1.nameID = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->S1.nameID] retain];
1259 for(int k = 0; k < UCN;k++){
1260 if(sdd2[datRow].MS.D->P->S1.nameID)
1261 if([sdd2[datRow].MS.D->P->S1.nameID isEqualToString:UC[k].nameID]){
1262 sdd2[datRow].MS.D->P->S1.img = [UC[k].imgb retain];
1266 for(int k = 0; k < LCN;k++){
1267 if(sdd2[datRow].MS.D->P->S1.nameID)
1268 if([sdd2[datRow].MS.D->P->S1.nameID isEqualToString:LC[k].nameID]){
1269 sdd2[datRow].MS.D->P->S1.img = [LC[k].imgb retain];
1275 if(sdd2[datRow].MS.D->P->S1.nameID)
1276 if([sdd2[datRow].MS.D->P->S1.nameID isEqualToString:EIMG->name]){
1277 sdd2[datRow].MS.D->P->S1.img = [EIMG->img retain];
1292 -(void)readMapScript2:(FILE*)fp{
1294 sdd2[datRow].MS.D->P->S2->selection = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->S2->selection] retain];
1295 sdd2[datRow].MS.D->P->S2->labelJump = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->S2->labelJump] retain];
1298 //struct _MAPSCRIPT2 *next;
1300 NSString *selection;
1301 NSString *labelJump;
1305 -(void)readMapScript3:(FILE*)fp{
1307 sdd2[datRow].MS.D->P->S3->x = (int)[self readInt:fp];
1308 sdd2[datRow].MS.D->P->S3->y = (int)[self readInt:fp];
1309 sdd2[datRow].MS.D->P->S3->flag = (int)[self readInt:fp];
1311 sdd2[datRow].MS.D->P->S3->type = (int)[self readInt:fp];
1312 sdd2[datRow].MS.D->P->S3->team = (int)[self readInt:fp];
1314 sdd2[datRow].MS.D->P->S3->unitNum = (int)[self readInt:fp];
1315 sdd2[datRow].MS.D->P->S3->loadInt = (int)[self readInt:fp];
1317 sdd2[datRow].MS.D->P->S3->U = UC[sdd2[datRow].MS.D->P->S3->unitNum];
1320 //struct _MAPSCRIPT3 *next;
1336 -(void)readMapScript4:(FILE*)fp{
1338 sdd2[datRow].MS.D->P->S4.lagFixFlag = (int)[self readInt:fp];
1339 sdd2[datRow].MS.D->P->S4.COMPrabel = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->S4.COMPrabel] retain];
1340 sdd2[datRow].MS.D->P->S4.FAILrabel = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->S4.FAILrabel] retain];
1342 sdd2[datRow].MS.D->P->S4.suicchiFlag = (int)[self readInt:fp];
1344 sdd2[datRow].MS.D->P->S4.suicchiCnt = (int)[self readInt:fp];
1346 if(sdd2[datRow].MS.D->P->S4.suicchiCnt > 0)
1347 sdd2[datRow].MS.D->P->S4.suicchi = calloc(sdd2[datRow].MS.D->P->S4.suicchiCnt, sizeof(int));
1348 for(int l = 0;l < sdd2[datRow].MS.D->P->S4.suicchiCnt;l++) {
1349 *(sdd2[datRow].MS.D->P->S4.suicchi + l) = (int)[self readInt:fp];
1352 sdd2[datRow].MS.D->P->S4.suicchiONOFF = (int)[self readInt:fp];
1354 sdd2[datRow].MS.D->P->S4.hensuFlag = (int)[self readInt:fp];
1355 sdd2[datRow].MS.D->P->S4.hensu1 = (int)[self readInt:fp];
1356 sdd2[datRow].MS.D->P->S4.teisuFlag = (int)[self readInt:fp];
1357 sdd2[datRow].MS.D->P->S4.teisuValue = (int)[self readInt:fp];
1358 sdd2[datRow].MS.D->P->S4.hensu2flag = (int)[self readInt:fp];
1359 sdd2[datRow].MS.D->P->S4.hensu2 = (int)[self readInt:fp];
1360 sdd2[datRow].MS.D->P->S4.hensuType = (int)[self readInt:fp];
1362 sdd2[datRow].MS.D->P->S4.timerFlag = (int)[self readInt:fp];
1363 sdd2[datRow].MS.D->P->S4.timerMin = (int)[self readInt:fp];
1364 sdd2[datRow].MS.D->P->S4.timerSec = (int)[self readInt:fp];
1365 sdd2[datRow].MS.D->P->S4.timerType = (int)[self readInt:fp];
1367 sdd2[datRow].MS.D->P->S4.unitNumFlag = (int)[self readInt:fp];
1368 sdd2[datRow].MS.D->P->S4.team = (int)[self readInt:fp];
1369 sdd2[datRow].MS.D->P->S4.unitNum = (int)[self readInt:fp];
1370 sdd2[datRow].MS.D->P->S4.unitType = (int)[self readInt:fp];
1371 sdd2[datRow].MS.D->P->S4.unitTypeFlag = (int)[self readInt:fp];
1375 UNIT2 *subjTop = sdd2[datRow].MS.D->P->S4.subj;
1377 sdd2[datRow].MS.D->P->S4.subjCnt = (int)[self readInt:fp];
1379 for (int k = 0;k < sdd2[datRow].MS.D->P->S4.subjCnt;k++) {
1381 sdd2[datRow].MS.D->P->S4.subj = calloc(1, sizeof(UNIT2));
1382 if(k + 1 < sdd2[datRow].MS.D->P->S4.subjCnt)
1383 sdd2[datRow].MS.D->P->S4.subj->next = calloc(1, sizeof(UNIT2));
1384 subjTop = sdd2[datRow].MS.D->P->S4.subj;
1385 }else if(k + 1 < sdd2[datRow].MS.D->P->S4.subjCnt)
1386 sdd2[datRow].MS.D->P->S4.subj->next = calloc(1, sizeof(UNIT2));
1387 [self readMapScript4subj:fp];
1388 sdd2[datRow].MS.D->P->S4.subj = sdd2[datRow].MS.D->P->S4.subj->next;
1389 }sdd2[datRow].MS.D->P->S4.subj = subjTop;
1393 sdd2[datRow].MS.D->P->S4.placeFlag = (int)[self readInt:fp];
1394 PLACEMENT *waypTop = sdd2[datRow].MS.D->P->S4.wayp;
1396 sdd2[datRow].MS.D->P->S4.waypCnt = (int)[self readInt:fp];
1398 for (int k = 0;k < sdd2[datRow].MS.D->P->S4.waypCnt;k++) {
1400 sdd2[datRow].MS.D->P->S4.wayp = calloc(1, sizeof(PLACEMENT));
1401 if(k + 1 < sdd2[datRow].MS.D->P->S4.waypCnt)
1402 sdd2[datRow].MS.D->P->S4.wayp->next = calloc(1, sizeof(PLACEMENT));
1403 waypTop = sdd2[datRow].MS.D->P->S4.wayp;
1404 }else if(k + 1 < sdd2[datRow].MS.D->P->S4.waypCnt)
1405 sdd2[datRow].MS.D->P->S4.wayp->next = calloc(1, sizeof(PLACEMENT));
1406 [self readMapScript4wayp:fp];
1407 sdd2[datRow].MS.D->P->S4.wayp = sdd2[datRow].MS.D->P->S4.wayp->next;
1408 }sdd2[datRow].MS.D->P->S4.wayp = waypTop;
1410 sdd2[datRow].MS.D->P->S4.unitCMDflag = (int)[self readInt:fp];
1411 sdd2[datRow].MS.D->P->S4.unitCMD = (int)[self readInt:fp];
1414 sdd2[datRow].MS.D->P->S4.objeFlag = (int)[self readInt:fp];
1415 UNIT2 *objeTop = sdd2[datRow].MS.D->P->S4.obje;
1417 sdd2[datRow].MS.D->P->S4.objeCnt = (int)[self readInt:fp];
1419 for (int k = 0;k < sdd2[datRow].MS.D->P->S4.objeCnt;k++) {
1421 sdd2[datRow].MS.D->P->S4.obje = calloc(1, sizeof(UNIT2));
1422 if(k + 1 < sdd2[datRow].MS.D->P->S4.objeCnt)
1423 sdd2[datRow].MS.D->P->S4.obje->next = calloc(1, sizeof(UNIT2));
1424 objeTop = sdd2[datRow].MS.D->P->S4.obje;
1425 }else if(k + 1 < sdd2[datRow].MS.D->P->S4.objeCnt)
1426 sdd2[datRow].MS.D->P->S4.obje->next = calloc(1, sizeof(UNIT2));
1427 [self readMapScript4obje:fp];
1428 sdd2[datRow].MS.D->P->S4.obje = sdd2[datRow].MS.D->P->S4.obje->next;
1429 }sdd2[datRow].MS.D->P->S4.obje = objeTop;
1432 sdd2[datRow].MS.D->P->S4.objeRange = (int)[self readInt:fp];
1435 sdd2[datRow].MS.D->P->S4.buildFlag = (int)[self readInt:fp];
1436 BUILD2 *buildTop = sdd2[datRow].MS.D->P->S4.build;
1438 sdd2[datRow].MS.D->P->S4.buildCnt = (int)[self readInt:fp];
1440 for (int k = 0;k < sdd2[datRow].MS.D->P->S4.buildCnt;k++) {
1442 sdd2[datRow].MS.D->P->S4.build = calloc(1, sizeof(BUILD2));
1443 if(k + 1 < sdd2[datRow].MS.D->P->S4.buildCnt)
1444 sdd2[datRow].MS.D->P->S4.build->next = calloc(1, sizeof(BUILD2));
1445 buildTop = sdd2[datRow].MS.D->P->S4.build;
1446 }else if(k + 1 < sdd2[datRow].MS.D->P->S4.buildCnt)
1447 sdd2[datRow].MS.D->P->S4.build->next = calloc(1, sizeof(BUILD2));
1448 [self readMapScript4build:fp];
1449 sdd2[datRow].MS.D->P->S4.build = sdd2[datRow].MS.D->P->S4.build->next;
1450 }sdd2[datRow].MS.D->P->S4.build = buildTop;
1455 -(void)readMapScript4subj:(FILE*)fp{
1458 sdd2[datRow].MS.D->P->S4.subj->team = (int)[self readInt:fp];
1459 sdd2[datRow].MS.D->P->S4.subj->x = (int)[self readInt:fp];
1460 sdd2[datRow].MS.D->P->S4.subj->y = (int)[self readInt:fp];
1463 //struct _UNIT2 *next;
1472 -(void)readMapScript4wayp:(FILE*)fp{
1474 sdd2[datRow].MS.D->P->S4.wayp->type = (int)[self readInt:fp];
1475 sdd2[datRow].MS.D->P->S4.wayp->x = (int)[self readInt:fp];
1476 sdd2[datRow].MS.D->P->S4.wayp->y = (int)[self readInt:fp];
1477 sdd2[datRow].MS.D->P->S4.wayp->z = (int)[self readInt:fp];
1478 sdd2[datRow].MS.D->P->S4.wayp->x2 = (int)[self readInt:fp];
1479 sdd2[datRow].MS.D->P->S4.wayp->y2 = (int)[self readInt:fp];
1482 //struct _PLACEMENT *next;
1493 -(void)readMapScript4obje:(FILE*)fp{
1495 sdd2[datRow].MS.D->P->S4.obje->team = (int)[self readInt:fp];
1496 sdd2[datRow].MS.D->P->S4.obje->x = (int)[self readInt:fp];
1497 sdd2[datRow].MS.D->P->S4.obje->y = (int)[self readInt:fp];
1500 //struct _UNIT2 *next;
1509 -(void)readMapScript4build:(FILE*)fp{
1511 sdd2[datRow].MS.D->P->S4.build->team = (int)[self readInt:fp];
1512 sdd2[datRow].MS.D->P->S4.build->x = (int)[self readInt:fp];
1513 sdd2[datRow].MS.D->P->S4.build->y = (int)[self readInt:fp];
1516 //struct _BUILD2 *next;
1517 //struct _BUILDCHIP *C;
1525 -(void)readMapScript5:(FILE*)fp{
1527 sdd2[datRow].MS.D->P->S5->x = (int)[self readInt:fp];
1528 sdd2[datRow].MS.D->P->S5->y = (int)[self readInt:fp];
1529 sdd2[datRow].MS.D->P->S5->type = (int)[self readInt:fp];
1530 sdd2[datRow].MS.D->P->S5->team = (int)[self readInt:fp];
1531 sdd2[datRow].MS.D->P->S5->unitNum = (int)[self readInt:fp];
1532 sdd2[datRow].MS.D->P->S5->saveInt = (int)[self readInt:fp];
1534 sdd2[datRow].MS.D->P->S5->U = UC[sdd2[datRow].MS.D->P->S5->unitNum];
1537 //struct _MAPSCRIPT5 *next;
1553 -(void)readMapScript6:(FILE*)fp{
1555 sdd2[datRow].MS.D->P->S6.team = (int)[self readInt:fp];
1557 sdd2[datRow].MS.D->P->S6.RCsupply = (int)[self readInt:fp];
1558 sdd2[datRow].MS.D->P->S6.RCfood = (int)[self readInt:fp];
1559 sdd2[datRow].MS.D->P->S6.RCmoney = (int)[self readInt:fp];
1561 sdd2[datRow].MS.D->P->S6.RCsupplyAdd = (int)[self readInt:fp];
1562 sdd2[datRow].MS.D->P->S6.RCfoodAdd = (int)[self readInt:fp];
1563 sdd2[datRow].MS.D->P->S6.RCmoneyAdd = (int)[self readInt:fp];
1565 sdd2[datRow].MS.D->P->S6.RCsupplyValue = (int)[self readInt:fp];
1566 sdd2[datRow].MS.D->P->S6.RCfoodValue = (int)[self readInt:fp];
1567 sdd2[datRow].MS.D->P->S6.RCmoneyValue = (int)[self readInt:fp];
1569 sdd2[datRow].MS.D->P->S6.RCsupplySelect = (int)[self readInt:fp];
1570 sdd2[datRow].MS.D->P->S6.RCfoodSelect = (int)[self readInt:fp];
1571 sdd2[datRow].MS.D->P->S6.RCmoneySelect = (int)[self readInt:fp];
1573 sdd2[datRow].MS.D->P->S6.RCsupplyS = (int)[self readInt:fp];
1574 sdd2[datRow].MS.D->P->S6.RCfoodS = (int)[self readInt:fp];
1575 sdd2[datRow].MS.D->P->S6.RCmoneyS = (int)[self readInt:fp];
1579 -(void)readMapScript7:(FILE*)fp{
1581 sdd2[datRow].MS.D->P->S7.type = (int)[self readInt:fp];
1583 sdd2[datRow].MS.D->P->S7.maxFlag = (int)[self readInt:fp];
1584 sdd2[datRow].MS.D->P->S7.percentFlag = (int)[self readInt:fp];
1585 sdd2[datRow].MS.D->P->S7.type = (int)[self readInt:fp];
1587 sdd2[datRow].MS.D->P->S7.fluctuate = (int)[self readInt:fp];
1588 sdd2[datRow].MS.D->P->S7.valueType = (int)[self readInt:fp];
1590 sdd2[datRow].MS.D->P->S7.value = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->S7.value] retain];
1592 sdd2[datRow].MS.D->P->S7.rdm = (int)[self readInt:fp];
1594 sdd2[datRow].MS.D->P->S7.teamFlag = (int)[self readInt:fp];
1595 sdd2[datRow].MS.D->P->S7.team = (int)[self readInt:fp];
1597 sdd2[datRow].MS.D->P->S7.unitFlag = (int)[self readInt:fp];
1598 sdd2[datRow].MS.D->P->S7.valueFlag = (int)[self readInt:fp];
1601 sdd2[datRow].MS.D->P->S7.S7Acnt = (int)[self readInt:fp];
1602 sdd2[datRow].MS.D->P->S7.S7Bcnt = (int)[self readInt:fp];
1604 for (int k = 0;k < sdd2[datRow].MS.D->P->S7.S7Acnt;k++) {
1606 sdd2[datRow].MS.D->P->S7.A = calloc(1, sizeof(MAPSCRIPT7A));
1607 if(k + 1 < sdd2[datRow].MS.D->P->S7.S7Acnt)
1608 sdd2[datRow].MS.D->P->S7.A->next = calloc(1, sizeof(MAPSCRIPT7A));
1609 MS7Atop = sdd2[datRow].MS.D->P->S7.A;
1610 }else if(k + 1 < sdd2[datRow].MS.D->P->S7.S7Acnt)
1611 sdd2[datRow].MS.D->P->S7.A->next = calloc(1, sizeof(MAPSCRIPT7A));
1613 sdd2[datRow].MS.D->P->S7.A->x = (int)[self readInt:fp];
1614 sdd2[datRow].MS.D->P->S7.A->y = (int)[self readInt:fp];
1615 sdd2[datRow].MS.D->P->S7.A->team = (int)[self readInt:fp];
1616 sdd2[datRow].MS.D->P->S7.A->unitNum = (int)[self readInt:fp];
1618 sdd2[datRow].MS.D->P->S7.A = sdd2[datRow].MS.D->P->S7.A->next;
1619 }sdd2[datRow].MS.D->P->S7.A = MS7Atop;
1622 for (int k = 0;k < sdd2[datRow].MS.D->P->S7.S7Bcnt;k++) {
1624 sdd2[datRow].MS.D->P->S7.B = calloc(1, sizeof(MAPSCRIPT7B));
1625 if(k + 1 < sdd2[datRow].MS.D->P->S7.S7Bcnt)
1626 sdd2[datRow].MS.D->P->S7.B->next = calloc(1, sizeof(MAPSCRIPT7B));
1627 MS7Btop = sdd2[datRow].MS.D->P->S7.B;
1628 }else if(k + 1 < sdd2[datRow].MS.D->P->S7.S7Bcnt)
1629 sdd2[datRow].MS.D->P->S7.B->next = calloc(1, sizeof(MAPSCRIPT7B));
1631 sdd2[datRow].MS.D->P->S7.B->x = (int)[self readInt:fp];
1632 sdd2[datRow].MS.D->P->S7.B->y = (int)[self readInt:fp];
1633 sdd2[datRow].MS.D->P->S7.B->team = (int)[self readInt:fp];
1634 sdd2[datRow].MS.D->P->S7.B->unitNum = (int)[self readInt:fp];
1635 sdd2[datRow].MS.D->P->S7.B->saveInt = (int)[self readInt:fp];
1637 sdd2[datRow].MS.D->P->S7.B = sdd2[datRow].MS.D->P->S7.B->next;
1638 }sdd2[datRow].MS.D->P->S7.B = MS7Btop;
1642 -(void)readMapScriptBGM:(FILE*)fp{
1644 NSString *directoryPath;
1646 directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
1647 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
1650 NSString* Cpath = @"data/BGM/";
1651 [[NSFileManager defaultManager] changeCurrentDirectoryPath:Cpath];
1653 sdd2[datRow].MS.D->P->BGM.name = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->BGM.name] retain];
1654 sdd2[datRow].MS.D->P->BGM.fName = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->BGM.fName] retain];
1656 sdd2[datRow].MS.D->P->BGM.snd = [[[NSSound alloc] initWithContentsOfURL:
1657 [NSURL fileURLWithPath:sdd2[datRow].MS.D->P->BGM.fName] byReference:NO] retain];
1666 -(void)readMapScriptSE:(FILE*)fp{
1668 NSString *directoryPath;
1670 directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
1671 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
1674 NSString* Cpath = @"data/BGM/";
1675 [[NSFileManager defaultManager] changeCurrentDirectoryPath:Cpath];
1677 sdd2[datRow].MS.D->P->SE.name = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->SE.name] retain];
1678 sdd2[datRow].MS.D->P->SE.fName = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->SE.fName] retain];
1680 sdd2[datRow].MS.D->P->SE.snd = [[[NSSound alloc] initWithContentsOfURL:
1681 [NSURL fileURLWithPath:sdd2[datRow].MS.D->P->SE.fName] byReference:NO] retain];
1690 -(void)readMapScriptSC:(FILE*)fp{
1692 sdd2[datRow].MS.D->P->sc.scFlag = (int)[self readInt:fp];
1693 sdd2[datRow].MS.D->P->sc.edcdFlag = (int)[self readInt:fp];
1701 -(void)readMapScriptGAOV:(FILE*)fp{
1704 sdd2[datRow].MS.D->P->gaov.fNname = [[self readNSString:fp strOut:sdd2[datRow].MS.D->P->gaov.fNname] retain];
1705 sdd2[datRow].MS.D->P->gaov.gaovFlag = (int)[self readInt:fp];
1706 sdd2[datRow].MS.D->P->gaov.edcdFlag = (int)[self readInt:fp];
1716 -(void)inputFileData{
1725 NSString *directoryPath;
1727 directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
1728 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
1731 NSString* Cpath = @"SaveData/";
1732 [[NSFileManager defaultManager] changeCurrentDirectoryPath:Cpath];
1734 NSString *path = [[NSString alloc] initWithUTF8String:datFilePath];
1736 if(0 && [[NSFileManager defaultManager] fileExistsAtPath:path]){
1744 sdd.name = [sdd2[datRow].name retain];
1745 sdd.imgAdressCnt = sdd2[datRow].imgAdressCnt;
1746 sdd.imgAdressFix = sdd2[datRow].imgAdressFix;
1747 sdd.img = sdd2[datRow].img;
1749 sdd.MFselectedRow = sdd2[datRow].MFselectedRow;
1750 sdd.storyNumb = sdd2[datRow].storyNumb;
1751 sdd.scenarioNumb = sdd2[datRow].scenarioNumb;
1753 sdd.mapfileName = [sdd2[datRow].mapfileName retain];
1754 sdd.levelName = [sdd2[datRow].levelName retain];
1755 sdd.levelName = [sdd2[datRow].scenarioName retain];
1757 sdd.chipHeight = sdd2[datRow].chipHeight;
1758 sdd.chipWidth = sdd2[datRow].chipWidth;
1760 sdd.posX = sdd2[datRow].posX;
1761 sdd.posY = sdd2[datRow].posY;
1763 sdd.eSlctX = sdd2[datRow].eSlctX;
1764 sdd.eSlctY = sdd2[datRow].eSlctY;
1766 sdd.registerNum = sdd2[datRow].registerNum;
1767 sdd.registerNumB = sdd2[datRow].registerNumB;
1769 sdd.esSceneProc = sdd2[datRow].esSceneProc;
1771 sdd.endGameCondition = sdd2[datRow].endGameCondition;
1772 sdd.initMapFlag = sdd2[datRow].initMapFlag;
1773 sdd.initStatusFlag = sdd2[datRow].initStatusFlag;
1774 sdd.TeamCountFlag = sdd2[datRow].TeamCountFlag;
1775 sdd.battleBegin = sdd2[datRow].battleBegin;
1776 sdd.startES = sdd2[datRow].startES;
1778 sdd.cpuAImodeflag = sdd2[datRow].cpuAImodeflag;
1779 sdd.cpuModeATTACKflag = sdd2[datRow].cpuModeATTACKflag;
1780 sdd.cpuModeMOVEflag = sdd2[datRow].cpuModeMOVEflag;
1781 sdd.cpuTurnEndFlag = sdd2[datRow].cpuTurnEndFlag;
1782 sdd.waitSwtichFlag = sdd2[datRow].waitSwtichFlag;
1783 sdd.battleReadyUpFlag = sdd2[datRow].battleReadyUpFlag;
1784 sdd.setBattleModeFlag = sdd2[datRow].setBattleModeFlag;
1786 sdd.wtRdy = sdd2[datRow].wtRdy;
1787 sdd.wtRdy2 = sdd2[datRow].wtRdy2;
1788 sdd.wtRdy3 = sdd2[datRow].wtRdy3;
1790 sdd.wtMovedFlag = sdd2[datRow].wtMovedFlag;
1791 sdd.wtAttackedFlag = sdd2[datRow].wtAttackedFlag;
1792 sdd.unitMoveEndFlag = sdd2[datRow].unitMoveEndFlag;
1793 sdd.battleSetUp = sdd2[datRow].battleSetUp;
1794 sdd.pushStanbyFlag = sdd2[datRow].pushStanbyFlag;
1795 sdd.battleEndFlag = sdd2[datRow].battleEndFlag;
1796 sdd.wtUnitNum = sdd2[datRow].wtUnitNum;
1797 sdd.messageDialog = sdd2[datRow].messageDialog;
1800 for(int i = 0;i < 1002;i++)
1801 for(int j = 0;j < 1002;j++)
1802 sdd.chipNum[i][j] = sdd2[datRow].chipNum[i][j];
1803 for(int i = 0;i < 1002;i++)
1804 for(int j = 0;j < 1002;j++)
1805 sdd.buildNum[i][j] = sdd2[datRow].buildNum[i][j];
1806 for(int i = 0;i < 1002;i++)
1807 for(int j = 0;j < 1002;j++)
1808 sdd.unitNum[i][j] = sdd2[datRow].unitNum[i][j];
1809 for(int i = 0;i < 1002;i++)
1810 for(int j = 0;j < 1002;j++)
1811 sdd.loadNum[i][j] = sdd2[datRow].loadNum[i][j];
1812 for(int i = 0;i < 1002;i++)
1813 for(int j = 0;j < 1002;j++)
1814 sdd.buildTeam[i][j] = sdd2[datRow].buildTeam[i][j];
1815 for(int i = 0;i < 1002;i++)
1816 for(int j = 0;j < 1002;j++)
1817 sdd.unitTeam[i][j] = sdd2[datRow].unitTeam[i][j];
1819 for(int i = 0;i < sdd.registerNum;i++)
1820 sdd.dU[i] = sdd2[datRow].dU[i];
1821 for(int i = 0;i < sdd.registerNumB;i++)
1822 sdd.dB[i] = sdd2[datRow].dB[i];
1824 for(int i = 0;i < 3;i++)
1825 sdd.P[i] = sdd2[datRow].P[i];
1828 for(int i = 0;i < 9999;i++)
1829 sdd.Suicchi[i] = sdd2[datRow].Suicchi[i];
1831 sdd.HensuuNum = sdd2[datRow].HensuuNum;
1832 for(int i = 0;i < 65000;i++)
1833 sdd.Hensuu[i] = [sdd2[datRow].Hensuu[i] retain];
1834 for(int i = 0;i < 65000;i++)
1835 sdd.HensuuName[i] = [sdd2[datRow].HensuuName[i] retain];
1837 sdd.MS = sdd2[datRow].MS;
1841 datExistFlag = true;
1843 datExistFlag = false;
1849 fpo = fopen(datFilePath, "wb");
1854 [self writeNSString:fpo str:sdd.name];
1855 [self writeNSImage:fpo str:sdd.img adCnt:&sdd.imgAdressCnt adFix:&sdd.imgAdressFix];
1858 [self writeInt:fpo val:sdd.MFselectedRow];
1859 [self writeInt:fpo val:sdd.storyNumb];
1860 [self writeInt:fpo val:sdd.scenarioNumb];
1861 [self writeNSString:fpo str:sdd.mapfileName];
1862 [self writeNSString:fpo str:sdd.levelName];
1863 [self writeNSString:fpo str:sdd.scenarioName];
1865 [self writeInt:fpo val:sdd.chipHeight];
1866 [self writeInt:fpo val:sdd.chipWidth];
1867 [self writeInt:fpo val:sdd.posX];
1868 [self writeInt:fpo val:sdd.posY];
1869 [self writeInt:fpo val:sdd.eSlctX];
1870 [self writeInt:fpo val:sdd.eSlctY];
1871 [self writeInt:fpo val:sdd.registerNum];
1872 [self writeInt:fpo val:sdd.registerNumB];
1873 [self writeInt:fpo val:sdd.esSceneProc];
1874 [self writeInt:fpo val:sdd.endGameCondition];
1876 [self writeInt:fpo val:sdd.initMapFlag];
1877 [self writeInt:fpo val:sdd.initStatusFlag];
1878 [self writeInt:fpo val:sdd.TeamCountFlag];
1879 [self writeInt:fpo val:sdd.battleBegin];
1880 [self writeInt:fpo val:sdd.startES];
1882 [self writeInt:fpo val:sdd.cpuAImodeflag];
1883 [self writeInt:fpo val:sdd.cpuModeATTACKflag];
1884 [self writeInt:fpo val:sdd.cpuModeMOVEflag];
1885 [self writeInt:fpo val:sdd.cpuTurnEndFlag];
1886 [self writeInt:fpo val:sdd.waitSwtichFlag];
1887 [self writeInt:fpo val:sdd.battleReadyUpFlag];
1888 [self writeInt:fpo val:sdd.setBattleModeFlag];
1890 [self writeInt:fpo val:sdd.wtRdy];
1891 [self writeInt:fpo val:sdd.wtRdy2];
1892 [self writeInt:fpo val:sdd.wtRdy3];
1894 [self writeInt:fpo val:sdd.wtMovedFlag];
1895 [self writeInt:fpo val:sdd.wtAttackedFlag];
1896 [self writeInt:fpo val:sdd.unitMoveEndFlag];
1897 [self writeInt:fpo val:sdd.battleSetUp];
1898 [self writeInt:fpo val:sdd.pushStanbyFlag];
1899 [self writeInt:fpo val:sdd.battleEndFlag];
1900 [self writeInt:fpo val:sdd.wtUnitNum];
1901 [self writeInt:fpo val:sdd.messageDialog];
1903 /*//これやると容量が重くなる(24MB超えるので保存しない)
1904 for(int i = 0;i < 1002;i++)
1905 for(int j = 0;j < 1002;j++)
1906 [self writeInt:fpo val:sdd.chipNum[i][j]];
1907 for(int i = 0;i < 1002;i++)
1908 for(int j = 0;j < 1002;j++)
1909 [self writeInt:fpo val:sdd.buildNum[i][j]];
1910 for(int i = 0;i < 1002;i++)
1911 for(int j = 0;j < 1002;j++)
1912 [self writeInt:fpo val:sdd.unitNum[i][j]];
1913 for(int i = 0;i < 1002;i++)
1914 for(int j = 0;j < 1002;j++)
1915 [self writeInt:fpo val:sdd.loadNum[i][j]];
1916 for(int i = 0;i < 1002;i++)
1917 for(int j = 0;j < 1002;j++)
1918 [self writeInt:fpo val:sdd.buildTeam[i][j]];
1919 for(int i = 0;i < 1002;i++)
1920 for(int j = 0;j < 1002;j++)
1921 [self writeInt:fpo val:sdd.unitTeam[i][j]];
1924 for(int i = 0;i < sdd.registerNum;i++)
1925 [self writeUnitD:fpo row:i];
1926 for(int i = 0;i < sdd.registerNumB;i++)
1927 [self writeBiuldD:fpo row:i];
1928 NSLog(@"\n(保存)%@:IMGADRESS %p\n", sdd.name,sdd.img);
1930 for(int i = 0;i < 3;i++){
1931 fwrite(&sdd.P[i], sizeof(PLAYER), 1, fpo);
1932 [self writeNSString:fpo str:P[i].name];
1935 for(int i = 0;i < 9999;i++)
1936 [self writeInt:fpo val:sdd.Suicchi[i]];
1938 [self writeInt:fpo val:sdd.HensuuNum];
1939 for(int i = 0;i < 65000;i++)
1940 [self writeNSString:fpo str:sdd.Hensuu[i]];
1941 for(int i = 0;i < 65000;i++)
1942 [self writeNSString:fpo str:sdd.HensuuName[i]];
1945 [self writeMapScript:fpo];
1956 -(void)writeBiuldD:(FILE*)fp row:(int)r{
1958 [self writeInt:fp val:sdd.dB[r].number];
1959 [self writeInt:fp val:sdd.dB[r].team];
1960 [self writeInt:fp val:sdd.dB[r].chipNumber];
1961 [self writeInt:fp val:sdd.dB[r].makeLv];
1963 [self writeInt:fp val:sdd.dB[r].x];
1964 [self writeInt:fp val:sdd.dB[r].y];
1965 [self writeInt:fp val:sdd.dB[r].z];
1967 [self writeInt:fp val:sdd.dB[r].dead];
1969 //[self writeBuildDimage:fp row:r];
1970 [self writeBuildChipD:fp val:sdd.dB[r].C];
1973 -(void)writeBuildChipD:(FILE*)fp val:(BUILDCHIPD)val{
1975 [self writeInt:fp val:val.chipNumb];
1976 [self writeNSString:fp str:val.name];
1977 [self writeNSString:fp str:val.nameID];
1979 fwrite(&val.S_C, sizeof(BSTATUS), 1, fp);
1981 NSLog(@"gj folks...");
1984 -(void)writeBuildDimage:(FILE*)fp row:(int)r{
1987 NSString *directoryPath;
1989 directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
1990 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
1992 NSString* Cpath = @"Awars IV.app/Contents/Resources/";
1993 [[NSFileManager defaultManager] changeCurrentDirectoryPath:Cpath];
1995 NSString *path2 = @INSTANT_IMG;
1998 NSData *imgData = [sdd.dB[r].img TIFFRepresentation];
1999 NSBitmapImageRep *brep = [NSBitmapImageRep imageRepWithData:imgData];
2000 imgData = [brep representationUsingType:NSPNGFileType properties:nil];
2001 [imgData writeToFile:path2 atomically:YES];
2003 fpx = fopen(INSTANT_IMG, "rb");
2005 unsigned char in_buf[1024], out_buf[1024];
2008 sdd.dB[r].imgAdCnt = 0;
2009 sdd.dB[r].imgAdFix = 0;
2012 while (!feof(fpx)) {
2014 rinf = (int)fread((void*)in_buf, 1, 1024, fpx);
2018 memcpy((void*)out_buf, (void*)in_buf, 1024);
2019 rinf = (int)fwrite((void*)out_buf, 1, rinf, fp);
2023 sdd.dB[r].imgAdCnt++;
2024 sdd.dB[r].imgAdFix = rinf;
2027 fpt -= (sdd.dB[r].imgAdCnt-1)*1024;
2029 [self writeInt:fp val:(int)sdd.dB[r].imgAdCnt];
2030 [self writeInt:fp val:(int)sdd.dB[r].imgAdFix];
2034 while (!feof(fpx)) {
2035 rinf = (int)fread((void*)in_buf, 1, 1024, fpx);
2039 memcpy((void*)out_buf, (void*)in_buf, 1024);
2040 rinf = (int)fwrite((void*)out_buf, 1, rinf, fp);
2052 -(void)writeUnitD:(FILE*)fp row:(int)r{
2054 [self writeInt:fp val:sdd.dU[r].CPU];
2055 [self writeInt:fp val:sdd.dU[r].number];
2056 [self writeInt:fp val:sdd.dU[r].team];
2057 [self writeInt:fp val:sdd.dU[r].chipNumber];
2058 [self writeInt:fp val:sdd.dU[r].chipNumberL];
2060 [self writeInt:fp val:sdd.dU[r].x];
2061 [self writeInt:fp val:sdd.dU[r].y];
2062 [self writeInt:fp val:sdd.dU[r].z];
2064 [self writeInt:fp val:sdd.dU[r].ix];
2065 [self writeInt:fp val:sdd.dU[r].iy];
2066 [self writeInt:fp val:sdd.dU[r].iz];
2068 [self writeInt:fp val:sdd.dU[r].dead];
2070 [self writeInt:fp val:sdd.dU[r].loadChipFlag];
2072 [self writeInt:fp val:sdd.dU[r].unControlable];
2073 [self writeInt:fp val:sdd.dU[r].joinArmyFromNext];
2074 [self writeInt:fp val:sdd.dU[r].persuasion];
2076 [self writeInt:fp val:sdd.dU[r].targType1L];
2077 [self writeInt:fp val:sdd.dU[r].targType2L];
2078 [self writeInt:fp val:sdd.dU[r].targType1D];
2079 [self writeInt:fp val:sdd.dU[r].targType2D];
2081 [self writeNSString:fp str:sdd.dU[r].army];
2082 //[self writeUnitDimage:fp row:r];
2085 [self writeUnitChipD:fp val:sdd.dU[r].C];
2086 [self writeUnitChipLD:fp val:sdd.dU[r].CL];
2090 -(void)writeUnitChipD:(FILE*)fp val:(UNITCHIPD)val{
2092 [self writeInt:fp val:val.chipNumb];
2093 [self writeNSString:fp str:val.name];
2094 [self writeNSString:fp str:val.nameNick];
2095 [self writeNSString:fp str:val.nameClass];
2096 [self writeNSString:fp str:val.nameID];
2100 fwrite(&val.R_C, sizeof(RESIST), 1, fp);
2101 fwrite(&val.S_C, sizeof(STATUS), 1, fp);
2103 NSLog(@"oops is right youre supposed to get...");
2106 -(void)writeUnitChipLD:(FILE*)fp val:(LOADCHIPD)val{
2108 [self writeInt:fp val:val.chipNumb];
2109 [self writeNSString:fp str:val.name];
2110 [self writeNSString:fp str:val.nameID];
2114 fwrite(&val.R_C, sizeof(RESIST), 1, fp);
2115 fwrite(&val.S_C, sizeof(STATUS2), 1, fp);
2117 NSLog(@"oops is right youre supposed to get...2");
2120 -(void)writeUnitDimage:(FILE*)fp row:(int)r{
2123 NSString *directoryPath;
2125 directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
2126 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
2128 NSString* Cpath = @"Awars IV.app/Contents/Resources/";
2129 [[NSFileManager defaultManager] changeCurrentDirectoryPath:Cpath];
2131 NSString *path2 = @INSTANT_IMG;
2134 NSData *imgData = [sdd.dU[r].img TIFFRepresentation];
2135 NSBitmapImageRep *brep = [NSBitmapImageRep imageRepWithData:imgData];
2136 imgData = [brep representationUsingType:NSPNGFileType properties:nil];
2137 [imgData writeToFile:path2 atomically:YES];
2139 fpx = fopen(INSTANT_IMG, "rb");
2141 unsigned char in_buf[1024], out_buf[1024];
2144 sdd.dU[r].imgAdCnt = 0;
2145 sdd.dU[r].imgAdFix = 0;
2148 while (!feof(fpx)) {
2150 rinf = (int)fread((void*)in_buf, 1, 1024, fpx);
2154 memcpy((void*)out_buf, (void*)in_buf, 1024);
2155 rinf = (int)fwrite((void*)out_buf, 1, rinf, fp);
2159 sdd.dU[r].imgAdCnt++;
2160 sdd.dU[r].imgAdFix = rinf;
2163 fpt -= (sdd.dU[r].imgAdCnt-1)*1024;
2165 [self writeInt:fp val:(int)sdd.dU[r].imgAdCnt];
2166 [self writeInt:fp val:(int)sdd.dU[r].imgAdFix];
2170 while (!feof(fpx)) {
2171 rinf = (int)fread((void*)in_buf, 1, 1024, fpx);
2175 memcpy((void*)out_buf, (void*)in_buf, 1024);
2176 rinf = (int)fwrite((void*)out_buf, 1, rinf, fp);
2193 NSString *directoryPath;
2195 directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
2196 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
2199 NSString* Cpath = @"SaveData/";
2200 [[NSFileManager defaultManager] changeCurrentDirectoryPath:Cpath];
2207 fpi = fopen(datFilePath, "rb");
2212 sdd2[datRow].name = [[self readNSString:fpi strOut:sdd2[datRow].name] retain];
2214 sdd2[datRow].imgAdressCnt = (int)[self readInt:fpi];
2215 sdd2[datRow].imgAdressFix = (int)[self readInt:fpi];
2216 sdd2[datRow].img = [[self readNSImage:fpi imgOut:sdd2[datRow].img dcnt:sdd2[datRow].imgAdressCnt dfix:sdd2[datRow].imgAdressFix] retain];
2218 sdd2[datRow].MFselectedRow = (int)[self readInt:fpi];
2219 sdd2[datRow].storyNumb = (int)[self readInt:fpi];
2220 sdd2[datRow].scenarioNumb = (int)[self readInt:fpi];
2221 sdd2[datRow].mapfileName = [[self readNSString:fpi strOut:sdd2[datRow].mapfileName] retain];
2222 sdd2[datRow].levelName = [[self readNSString:fpi strOut:sdd2[datRow].levelName] retain];
2223 sdd2[datRow].scenarioName = [ [self readNSString:fpi strOut:sdd2[datRow].scenarioName] retain];
2225 sdd2[datRow].chipHeight = (int)[self readInt:fpi];
2226 sdd2[datRow].chipWidth = (int)[self readInt:fpi];
2227 sdd2[datRow].posX = (int)[self readInt:fpi];
2228 sdd2[datRow].posY = (int)[self readInt:fpi];
2229 sdd2[datRow].eSlctX = (int)[self readInt:fpi];
2230 sdd2[datRow].eSlctY = (int)[self readInt:fpi];
2231 sdd2[datRow].registerNum = (int)[self readInt:fpi];
2232 sdd2[datRow].registerNumB = (int)[self readInt:fpi];
2233 sdd2[datRow].esSceneProc = (int)[self readInt:fpi];
2234 sdd2[datRow].endGameCondition = (int)[self readInt:fpi];
2236 sdd2[datRow].initMapFlag = (int)[self readInt:fpi];
2237 sdd2[datRow].initStatusFlag = (int)[self readInt:fpi];
2238 sdd2[datRow].TeamCountFlag = (int)[self readInt:fpi];
2239 sdd2[datRow].battleBegin = (int)[self readInt:fpi];
2240 sdd2[datRow].startES = (int)[self readInt:fpi];
2242 sdd2[datRow].cpuAImodeflag = (int)[self readInt:fpi];
2243 sdd2[datRow].cpuModeATTACKflag = (int)[self readInt:fpi];
2244 sdd2[datRow].cpuModeMOVEflag = (int)[self readInt:fpi];
2245 sdd2[datRow].cpuTurnEndFlag = (int)[self readInt:fpi];
2246 sdd2[datRow].waitSwtichFlag = (int)[self readInt:fpi];
2247 sdd2[datRow].battleReadyUpFlag = (int)[self readInt:fpi];
2248 sdd2[datRow].setBattleModeFlag = (int)[self readInt:fpi];
2250 sdd2[datRow].wtRdy = (int)[self readInt:fpi];
2251 sdd2[datRow].wtRdy2 = (int)[self readInt:fpi];
2252 sdd2[datRow].wtRdy3 = (int)[self readInt:fpi];
2254 sdd2[datRow].wtMovedFlag = (int)[self readInt:fpi];
2255 sdd2[datRow].wtAttackedFlag = (int)[self readInt:fpi];
2256 sdd2[datRow].unitMoveEndFlag = (int)[self readInt:fpi];
2257 sdd2[datRow].battleSetUp = (int)[self readInt:fpi];
2258 sdd2[datRow].pushStanbyFlag = (int)[self readInt:fpi];
2259 sdd2[datRow].battleEndFlag = (int)[self readInt:fpi];
2260 sdd2[datRow].wtUnitNum = (int)[self readInt:fpi];
2261 sdd2[datRow].messageDialog = (int)[self readInt:fpi];
2263 /*//saveStructとワンセット容量の関係で読み込まない
2264 for(int i = 0;i < 1002;i++)
2265 for(int j = 0;j < 1002;j++)
2266 sdd2[datRow].chipNum[i][j] = (int)[self readInt:fpi];
2267 for(int i = 0;i < 1002;i++)
2268 for(int j = 0;j < 1002;j++)
2269 sdd2[datRow].buildNum[i][j] = (int)[self readInt:fpi];
2270 for(int i = 0;i < 1002;i++)
2271 for(int j = 0;j < 1002;j++)
2272 sdd2[datRow].unitNum[i][j] = (int)[self readInt:fpi];
2273 for(int i = 0;i < 1002;i++)
2274 for(int j = 0;j < 1002;j++)
2275 sdd2[datRow].loadNum[i][j] = (int)[self readInt:fpi];
2276 for(int i = 0;i < 1002;i++)
2277 for(int j = 0;j < 1002;j++)
2278 sdd2[datRow].buildTeam[i][j] = (int)[self readInt:fpi];
2279 for(int i = 0;i < 1002;i++)
2280 for(int j = 0;j < 1002;j++)
2281 sdd2[datRow].unitTeam[i][j] = (int)[self readInt:fpi];
2283 for(int i = 0;i < sdd2[datRow].registerNum;i++)
2284 [self readUnitD:fpi row:i];
2285 for(int i = 0;i < sdd2[datRow].registerNumB;i++)
2286 [self readBiuldD:fpi row:i];
2288 NSLog(@"\n(読み込み)%@:IMGADRESS %p\n",sdd2[datRow].name,sdd2[datRow].img);
2290 for(int i = 0;i < 3;i++){
2291 fread(&sdd2[datRow].P[i], sizeof(PLAYER), 1, fpi);
2292 sdd2[datRow].P[i].name = [[self readNSString:fpi strOut:sdd2[datRow].P[i].name] retain];
2296 for(int i = 0;i < 9999;i++)
2297 sdd2[datRow].Suicchi[i] = (int)[self readInt:fpi];
2299 sdd2[datRow].HensuuNum = (int)[self readInt:fpi];
2300 for(int i = 0;i < 65000;i++)
2301 sdd2[datRow].Hensuu[i] = [[self readNSString:fpi strOut:sdd2[datRow].Hensuu[i]] retain];
2302 for(int i = 0;i < 65000;i++)
2303 sdd2[datRow].HensuuName[i] = [[self readNSString:fpi strOut:sdd2[datRow].HensuuName[i]] retain];
2305 [self readMapScript:fpi];
2312 -(void)loadOptionMenu{
2313 NSString *directoryPath;
2315 directoryPath = [[NSBundle mainBundle] bundlePath];
2316 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
2319 NSString* Cpath = @"Contents/Resources/";
2320 [[NSFileManager defaultManager] changeCurrentDirectoryPath:Cpath];
2324 fpi = fopen(OPTIONFILE_NAME, "rb");
2328 wtfom.nameTitle = [@"" retain];
2329 NSLog(@"%@", wtfom.nameTitle);
2330 wtfom.nameTitle = [[self readNSString:fpi strOut:wtfom.nameTitle] retain];
2331 wtfom.nameVersion = [[self readNSString:fpi strOut:wtfom.nameVersion] retain];
2332 wtfom.nameOpening = [[self readNSString:fpi strOut:wtfom.nameOpening] retain];
2333 wtfom.nameBGM = [[self readNSString:fpi strOut:wtfom.nameBGM] retain];
2335 wtfom.allowMapEditor = (int)[self readInt:fpi];
2336 wtfom.allowScenarioEditor = (int)[self readInt:fpi];
2337 wtfom.onlyOnceOpening = (int)[self readInt:fpi];
2338 wtfom.newOpeningIsShown = (int)[self readInt:fpi];
2340 wtfom.adCntIT = (int)[self readInt:fpi];
2341 wtfom.adFixIT = (int)[self readInt:fpi];
2342 wtfom.imgTitle = [[self readNSImage:fpi imgOut:wtfom.imgTitle dcnt:wtfom.adCntIT dfix:wtfom.adFixIT] retain];
2345 directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
2346 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
2348 Cpath = @"data/Movie";
2352 [[NSFileManager defaultManager] fileExistsAtPath:Cpath isDirectory:&isDirectory];
2355 [[NSFileManager defaultManager] createDirectoryAtPath:Cpath withIntermediateDirectories:YES attributes:nil error:nil];
2358 [[NSFileManager defaultManager] changeCurrentDirectoryPath:Cpath];
2360 if([[NSFileManager defaultManager] fileExistsAtPath:wtfom.nameOpening])
2361 openingAVP = [[AVPlayer playerWithURL:[NSURL fileURLWithPath:wtfom.nameOpening]] retain];
2365 directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
2366 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
2368 Cpath = @"data/BGM/";
2369 [[NSFileManager defaultManager] changeCurrentDirectoryPath:Cpath];
2373 cwd = getcwd(NULL, 0);
2378 titleBGM = [[[NSSound alloc] initWithContentsOfURL:[NSURL fileURLWithPath:wtfom.nameBGM] byReference:NO] retain];
2383 -(void)openingAVPVfunc{
2385 if(openingAVP && openingAVPVisActive){
2386 openingAVPV.player = openingAVP;
2387 openingAVPV.videoGravity = AVLayerVideoGravityResize;
2390 if(openingAVPVisHidden)
2391 [openingAVPV setHidden:YES];
2393 [openingAVPV setHidden:NO];
2397 -(void)saveOptionMenu{
2398 NSString *directoryPath;
2400 directoryPath = [[NSBundle mainBundle] bundlePath];
2401 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
2404 NSString* Cpath = @"Contents/Resources/";
2405 [[NSFileManager defaultManager] changeCurrentDirectoryPath:Cpath];
2409 cwd = getcwd(NULL, 0);
2416 fpo = fopen(OPTIONFILE_NAME, "wb");
2420 [self writeNSString:fpo str:wtfom.nameTitle];
2421 [self writeNSString:fpo str:wtfom.nameVersion];
2422 [self writeNSString:fpo str:wtfom.nameOpening];
2423 [self writeNSString:fpo str:wtfom.nameBGM];
2425 [self writeInt:fpo val:wtfom.allowMapEditor];
2426 [self writeInt:fpo val:wtfom.allowScenarioEditor];
2427 [self writeInt:fpo val:wtfom.onlyOnceOpening];
2428 [self writeInt:fpo val:wtfom.newOpeningIsShown];
2430 [self writeNSImage:fpo str:wtfom.imgTitle adCnt:&wtfom.adCntIT adFix:&wtfom.adFixIT];
2440 -(void)clickSGL:(id)sender{
2442 datRow = (int)[saveGameListTV clickedRow];
2445 -(void)clickSTE:(id)sender{
2447 STErow = (int)[STequipListTV clickedRow];
2450 -(void)clickLFOL:(id)sender{
2452 if([loadFileOutputListTV selectedRow] < 0){
2453 [loadFileOutputTF setStringValue:@""];
2457 LFOLrow = (int)[loadFileOutputListTV selectedRow];
2461 for(int i = 1;i <= saveNumb;i++){
2463 for(int j = 0;j < [loadFileOutputListMA count];j++){
2465 if([SDL[j+1].name isEqualToString:[loadFileOutputListMA[LFOLrow] valueForKey:@"name"]]){
2468 [loadFileOutputTF setStringValue:[NSString stringWithFormat:@"%@ まで", SDL[SDLrow+1].scenarioName]];
2474 [loadFileOutputTF setStringValue:[NSString stringWithFormat:@""]];
2478 -(void)doubleClickBCL:(id)sender{
2499 for(int i = 0;i < slctedUnitNum;i++){
2503 if (MC[chipNum[possionX][possionY]].type == MC_ANTEI) {
2505 if(BC[U->C.S->list[crBCL]-1].type == BC_ANTEI){
2511 if (MC[chipNum[possionX][possionY]].type == MC_CHIKURIN) {
2513 if(BC[U->C.S->list[crBCL]-1].type == BC_CHIKURIN){
2519 if (MC[chipNum[possionX][possionY]].type == MC_ASASE) {
2521 if(BC[U->C.S->list[crBCL]-1].type == BC_ASASE){
2527 if(BC[U->C.S->list[crBCL]].type == BC_SONOTA){
2533 if(buildNum[possionX][possionY] >= 0){
2539 if(P[0].resource >= BC[U->C.S->list[crBCL]-1].Csupply){
2540 if(P[0].food >= BC[U->C.S->list[crBCL]-1].Cfood){
2541 if (P[0].money >= BC[U->C.S->list[crBCL]-1].Cmoney) {
2542 P[0].resource -= BC[U->C.S->list[crBCL]-1].Csupply;
2543 P[0].food -= BC[U->C.S->list[crBCL]-1].Cfood;
2544 P[0].money -= BC[U->C.S->list[crBCL]-1].Cmoney;
2546 buildNum[possionX][possionY] = U->C.S->list[crBCL]-1;
2548 buildTeam[possionX][possionY] = 0;
2551 [self addBuildStatus];
2559 if(P[1].resource >= BC[U->C.S->list[crBCL]-1].Csupply){
2560 if(P[1].food >= BC[U->C.S->list[crBCL]-1].Cfood){
2561 if (P[1].money >= BC[U->C.S->list[crBCL]-1].Cmoney) {
2562 P[1].resource -= BC[U->C.S->list[crBCL]-1].Csupply;
2563 P[1].food -= BC[U->C.S->list[crBCL]-1].Cfood;
2564 P[1].money -= BC[U->C.S->list[crBCL]-1].Cmoney;
2566 buildNum[possionX][possionY] = U->C.S->list[crBCL]-1;
2568 buildTeam[possionX][possionY] = 2;
2570 [self addBuildStatus];
2576 [createPanel close];
2582 -(void)clickBCL:(id)sender{
2583 crBCL = (int)[BCreateListTV clickedRow];
2590 -(void)doubleClickCSL:(id)sender{
2593 for(int i = 0;i < slctedUnitNum;i++){
2598 SKILL *sTop = U->C.S;
2600 if(U->C.S->type == 2) break;
2601 U->C.S = U->C.S->next;
2610 if(U->C.S->cost[crCSL] <= U->C.S_C.MP){
2611 //U->C.S_C.MP -= U->C.S->cost[crCSL];
2612 CSLUC = UC[U->C.S->list[crCSL]-1];
2616 [summonPanel close];
2617 //unitColorInitFlag = true;
2620 if(U->C.S->cost[crCSL] <= U->C.S_C.MP){
2622 //U->C.S_C.MP -= U->C.S->cost[crCSL];
2623 CSLUC = UC[U->C.S->list[crCSL]-1];
2627 [summonPanel close];
2628 //unitColorInitFlag = true;
2635 -(void)clickCSL:(id)sender{
2636 crCSL = (int)[CSummonListTV clickedRow];
2641 -(void)doubleClickCAL:(id)sender{
2643 if([CAttackListTV clickedRow] < 0) return;
2648 int postCAL1 = crCAL1;
2649 int postCAL2 = crCAL2;
2651 if(!battleSet1Flag && !battleSet2Flag){
2653 while (!(AUN[1] == U->number)) {
2659 if(U->chipNumberL < 0){
2661 ATTACK *aTop = U->C.A;
2663 crCAL = (int)[CAttackListTV clickedRow];
2664 crCAL1 = (int)[CAttackListTV clickedRow];
2665 for(int i = 0;i < crCAL;i++){
2666 U->C.A = U->C.A->next;
2669 costMP = U->C.A->MP + floor(U->C.A->pMP*U->C.S_M.MP/100 + 0.5);
2670 costVIG = U->C.A->vigor;
2672 if(costMP <= U->C.S_C.MP && costVIG <= U->C.S_C.vigor){
2673 if(U->C.A->extent > 0){
2674 atkExtentFlag = true;
2676 atkExtentFlag = false;
2684 [self setBattlePanel];
2687 ATTACK *aTop = U->CL.A;
2688 crCAL = (int)[CAttackListTV clickedRow];
2689 crCAL1 = (int)[CAttackListTV clickedRow];
2690 for(int i = 0;i < crCAL;i++){
2691 U->CL.A = U->CL.A->next;
2694 costMP = U->CL.A->EN + floor(U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5);
2695 costVIG = U->CL.A->vigor;
2697 if(costMP <= U->CL.S_C.EN && costVIG <= U->C.S_C.vigor){
2699 if(U->CL.A->extent > 0){
2700 atkExtentFlag = true;
2702 atkExtentFlag = false;
2709 [self setBattlePanel];
2714 if(battleSet1Flag && !battleSet2PushedFlag){
2718 while (!(AUN[1] == U->number)) {
2722 if(U->chipNumberL < 0){
2723 ATTACK *aTop = U->C.A;
2724 crCAL1 = (int)[CAttackListTV clickedRow];
2725 for(int i = 0;i < crCAL1;i++){
2726 U->C.A = U->C.A->next;
2729 costMP = U->C.A->MP + floor(U->C.A->pMP*U->C.S_M.MP/100 + 0.5);
2730 costVIG = U->C.A->vigor;
2733 if(costMP <= U->C.S_C.MP && U->atkRange >= U->C.A->rangeA
2734 && U->atkRange <= U->C.A->rangeB && costVIG >= U->C.S_C.vigor){
2739 [self setBattlePanel];
2745 [self setBattlePanel];
2747 ATTACK *aTop = U->CL.A;
2748 crCAL1 = (int)[CAttackListTV clickedRow];
2749 for(int i = 0;i < crCAL1;i++){
2750 U->CL.A = U->CL.A->next;
2753 costMP = U->CL.A->EN + floor(U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5);
2754 costVIG = U->C.A->vigor;
2756 if(costMP <= U->CL.S_C.EN && U->atkRange >= U->CL.A->rangeA
2757 && U->atkRange <= U->CL.A->rangeB && costVIG >= U->C.S_C.vigor){
2762 [self setBattlePanel];
2768 [self setBattlePanel];
2773 if(battleSet2Flag && battleSet2PushedFlag){
2775 while (!(AUN[1] == U->number)) {
2779 if(U->chipNumberL < 0){
2782 while (!(AUN[1] == U->number)) {
2786 int omgRange = U->atkRange;
2789 while (!(DUN[1] == U->number)) {
2793 U->atkRange = omgRange;
2795 ATTACK *aTop = U->C.A;
2796 crCAL2 = (int)[CAttackListTV clickedRow];
2797 for(int i = 0;i < crCAL2;i++){
2798 U->C.A = U->C.A->next;
2801 costMP = U->C.A->MP + floor(U->C.A->pMP*U->C.S_M.MP/100 + 0.5);
2802 costVIG = U->C.A->vigor;
2805 if(costMP <= U->C.S_C.MP && U->atkRange >= U->C.A->rangeA
2806 && U->atkRange <= U->C.A->rangeB && U->C.S_C.vigor){
2811 [self setBattlePanel];
2820 while (!(AUN[1] == U->number)) {
2824 int omgRange = U->atkRange;
2827 while (!(DUN[1] == U->number)) {
2831 U->atkRange = omgRange;
2833 ATTACK *aTop = U->CL.A;
2834 crCAL2 = (int)[CAttackListTV clickedRow];
2835 for(int i = 0;i < crCAL2;i++){
2836 U->CL.A = U->CL.A->next;
2839 costMP = U->CL.A->EN + floor(U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5);
2840 costVIG = U->C.A->vigor;
2842 if(costMP <= U->CL.S_C.EN && U->atkRange >= U->CL.A->rangeA
2843 && U->atkRange <= U->CL.A->rangeB && U->C.S_C.vigor){
2848 [self setBattlePanel];
2854 [self setBattlePanel];
2867 -(void)clickCAL:(id)sender{
2869 crCAL = (int)[CAttackListTV clickedRow];
2871 if(!battleSetFlag){crCAL = crCAL1;
2872 crCAL1 = (int)[CAttackListTV clickedRow];
2875 while (!(AUN[1] == U->number)) {
2878 }else if(battleSetFlag){crCAL = crCAL2;
2879 crCAL2 = (int)[CAttackListTV clickedRow];
2882 while (!(DUN[1] == U->number)) {
2888 if(U->chipNumberL >= 0) {
2890 [self initCAttackSelect2];
2892 else if(U->chipNumber >= 0) {
2894 [self initCAttackSelect];
2899 -(void)initCAttackSelect{
2903 while (!(AUN[1] == U->number)) {
2906 if(!battleSetFlag){crCAL = crCAL1;
2907 //crCAL1 = (int)[CAttackListTV clickedRow];
2910 while (!(AUN[1] == U->number)) {
2913 }else if(battleSetFlag){crCAL = crCAL2;
2914 //crCAL2 = (int)[CAttackListTV clickedRow];
2917 while (!(DUN[1] == U->number)) {
2925 [CAttackListAC setSelectionIndex:crCAL];
2926 crCAL = (int)[CAttackListTV clickedRow];
2927 ATTACK *aTop = U->C.A;
2928 for(int i = 0;i < crCAL;i++){
2929 U->C.A = U->C.A->next;
2933 [bullet setStringValue:[NSString stringWithFormat:@"---/---"]];
2934 [costP setStringValue:[NSString stringWithFormat:@"---(%g)", U->C.S_C.MP]];
2935 [costV setStringValue:[NSString stringWithFormat:@"---(%d)", U->C.S_C.vigor]];
2936 [region setStringValue:[NSString stringWithFormat:@"陸-- 宙-- 海-- 空--"]];
2937 [crytical setStringValue:@""];
2938 [atkProperty setStringValue:@""];
2943 if(U->C.A->bullet > 0) [bullet setStringValue:[NSString stringWithFormat:@"%d/%d", U->C.A->bulletC, U->C.A->bullet]];
2944 else [bullet setStringValue:[NSString stringWithFormat:@"---/---"]];
2945 if(U->C.A->MP > 0) [costP setStringValue:[NSString stringWithFormat:@"%g(%g)", U->C.A->MP + floor(U->C.A->pMP*U->C.S_M.MP/100+0.5), U->C.S_C.MP]];
2946 else [costP setStringValue:[NSString stringWithFormat:@"---(%g)", U->C.S_C.MP]];
2947 if(U->C.A->vigor > 0) [costV setStringValue:[NSString stringWithFormat:@"%d(%d)", U->C.A->vigor, U->C.S_C.vigor]];
2948 else [costV setStringValue:[NSString stringWithFormat:@"---(%d)", U->C.S_C.vigor]];
2950 NSString *Riku, *Chu, *Umi, *Sora;
2952 switch (U->C.A->riku) {
2954 Riku = [@"A" retain];
2957 Riku = [@"B"retain];
2960 Riku = [@"C"retain];
2963 Riku = [@"D"retain];
2966 Riku = [@"E"retain];
2969 Riku = [@"S"retain];
2972 Riku = [@"SS"retain];
2975 switch (U->C.A->chu) {
2977 Chu = [@"A" retain];
2980 Chu = [@"B" retain];
2983 Chu = [@"C" retain];
2986 Chu = [@"D" retain];
2989 Chu = [@"E" retain];
2992 Chu = [@"S" retain];
2995 Chu = [@"SS" retain];
2998 switch (U->C.A->umi) {
3000 Umi = [@"A" retain];
3003 Umi = [@"B" retain];
3006 Umi = [@"C" retain];
3009 Umi = [@"D" retain];
3012 Umi = [@"E" retain];
3015 Umi = [@"S" retain];
3018 Umi = [@"SS" retain];
3021 switch (U->C.A->sora) {
3023 Sora = [@"A" retain];
3026 Sora = [@"B" retain];
3029 Sora = [@"C" retain];
3032 Sora = [@"D" retain];
3035 Sora = [@"E" retain];
3038 Sora = [@"S" retain];
3041 Sora = [@"SS" retain];
3052 [region setStringValue:[NSString stringWithFormat:@"陸%@ 宙%@ 海%@ 空%@", Riku, Chu, Umi, Sora]];
3053 [crytical setStringValue:@""];
3054 [atkProperty setStringValue:@""];
3060 -(void)initCAttackSelect2{
3064 while (!(AUN[1] == U->number)) {
3068 //crCAL1 = (int)[CAttackListTV clickedRow];
3070 while (!(AUN[1] == U->number)) {
3075 //crCAL2 = (int)[CAttackListTV clickedRow];
3077 while (!(DUN[1] == U->number)) {
3083 ATTACK *aTop = U->CL.A;
3084 for(int i = 0;i < crCAL;i++){
3085 U->CL.A = U->CL.A->next;
3093 if(U->CL.A->bullet > 0) [bullet setStringValue:[NSString stringWithFormat:@"%d/%d", U->CL.A->bulletC, U->CL.A->bullet]];
3094 else [bullet setStringValue:[NSString stringWithFormat:@"---/---"]];
3095 if(U->CL.A->EN > 0) [costP setStringValue:[NSString stringWithFormat:@"%g(%g)", U->CL.A->EN + floor(U->CL.A->pEN*U->CL.S_M.EN/100+0.5), U->CL.S_C.EN]];
3096 else [costP setStringValue:[NSString stringWithFormat:@"---(%g)", U->CL.S_C.EN]];
3097 if(U->CL.A->vigor > 0) [costV setStringValue:[NSString stringWithFormat:@"%d(%d)", U->CL.A->vigor, U->C.S_C.vigor]];
3098 else [costV setStringValue:[NSString stringWithFormat:@"---(%d)", U->C.S_C.vigor]];
3100 NSString *Riku, *Chu, *Umi, *Sora;
3102 switch (U->CL.A->riku) {
3125 switch (U->CL.A->chu) {
3148 switch (U->CL.A->umi) {
3171 switch (U->CL.A->sora) {
3202 [region setStringValue:[NSString stringWithFormat:@"陸%@ 宙%@ 海%@ 空%@", Riku, Chu, Umi, Sora]];
3203 [crytical setStringValue:@""];
3204 [atkProperty setStringValue:@""];
3211 -(void)doubleClickCRL:(id)sender{
3213 if(crCRL == -1) return;
3215 if(unitBreak->team == 0)
3216 if(P[0].resource >= BRU->S_M.cSupply && P[0].food >= BRU->S_M.cFood && P[0].money >= BRU->S_M.cMoney){
3218 P[0].resource -= BRU->S_M.cSupply;
3219 P[0].food -= BRU->S_M.cFood;
3220 P[0].money -= BRU->S_M.cMoney;
3222 unitNum[possionX][possionY] = BRUindex;
3223 if(researchTeam == 0) unitTeam[possionX][possionY] = 0;
3224 if(researchTeam == 2) unitTeam[possionX][possionY] = 2;
3226 [self addUnitStatus];
3228 unitColorInitFlag = true;
3230 [researchPanel close];
3233 if(unitBreak->team == 2)
3234 if(P[1].resource >= BRU->S_M.cSupply && P[1].food >= BRU->S_M.cFood && P[1].money >= BRU->S_M.cMoney){
3236 P[1].resource -= BRU->S_M.cSupply;
3237 P[1].food -= BRU->S_M.cFood;
3238 P[1].money -= BRU->S_M.cMoney;
3240 unitNum[possionX][possionY] = BRUindex;
3241 if(researchTeam == 0) unitTeam[possionX][possionY] = 0;
3242 if(researchTeam == 2) unitTeam[possionX][possionY] = 2;
3244 [self addUnitStatus];
3246 unitColorInitFlag = true;
3248 [researchPanel close];
3253 -(void)clickCRL:(id)sender{
3255 crCRL = (int)[CResearchListTV clickedRow];
3260 B = &BC[buildNum[possionX][possionY]];
3270 for(int i = 0;i <= crCRL;i++){
3273 [researchATK setStringValue:[NSString stringWithFormat:@"攻撃力 %g", BU->S_M.ATK]];
3274 [researchDEF setStringValue:[NSString stringWithFormat:@"防御力 %g", BU->S_M.DEF]];
3275 [researchCAP setStringValue:[NSString stringWithFormat:@"演算力 %g", BU->S_M.CAP]];
3276 [researchACU setStringValue:[NSString stringWithFormat:@"命中値 %g", BU->S_M.ACU]];
3277 [researchEVA setStringValue:[NSString stringWithFormat:@"回避値 %g", BU->S_M.EVA]];
3278 [researchMOV setStringValue:[NSString stringWithFormat:@"移動力 %d", BU->S_M.MOV]];
3279 [researchIMG setImage:BU->imgb];
3280 [researchIMG setImageScaling:NSScaleToFit];
3286 for (int i = 0; BRU->nameID != UC[i].nameID && i < UCN;i++) {
3293 if(buildTeam[possionX][possionY] == 0 || buildTeam[possionX][possionY] == 1){
3302 for(int i = k;i <= crCRL;i++){
3304 [researchATK setStringValue:[NSString stringWithFormat:@"攻撃力 %g", UC[*(GuildDisp1 + i - k)-1].S_M.ATK]];
3305 [researchDEF setStringValue:[NSString stringWithFormat:@"防御力 %g", UC[*(GuildDisp1 + i - k)-1].S_M.DEF]];
3306 [researchCAP setStringValue:[NSString stringWithFormat:@"演算力 %g", UC[*(GuildDisp1 + i - k)-1].S_M.CAP]];
3307 [researchACU setStringValue:[NSString stringWithFormat:@"命中値 %g", UC[*(GuildDisp1 + i - k)-1].S_M.ACU]];
3308 [researchEVA setStringValue:[NSString stringWithFormat:@"回避値 %g", UC[*(GuildDisp1 + i - k)-1].S_M.EVA]];
3309 [researchMOV setStringValue:[NSString stringWithFormat:@"移動力 %d", UC[*(GuildDisp1 + i - k)-1].S_M.MOV]];
3310 [researchIMG setImage:UC[*(GuildDisp1 + i - k)-1].imgb];
3311 [researchIMG setImageScaling:NSScaleToFit];
3316 for (int i = 0; UC[*(GuildDisp1 + crCRL - k)-1].nameID != UC[i].nameID && i < UCN;i++) {
3318 }BRU = &UC[BRUindex];
3322 }else if(buildTeam[possionX][possionY] == 2 || buildTeam[possionX][possionY] == 3){
3331 for(int i = k;i <= crCRL;i++){
3333 [researchATK setStringValue:[NSString stringWithFormat:@"攻撃力 %g", UC[*(GuildDisp2 + i - k)-1].S_M.ATK]];
3334 [researchDEF setStringValue:[NSString stringWithFormat:@"防御力 %g", UC[*(GuildDisp2 + i - k)-1].S_M.DEF]];
3335 [researchCAP setStringValue:[NSString stringWithFormat:@"演算力 %g", UC[*(GuildDisp2 + i - k)-1].S_M.CAP]];
3336 [researchACU setStringValue:[NSString stringWithFormat:@"命中値 %g", UC[*(GuildDisp2 + i - k)-1].S_M.ACU]];
3337 [researchEVA setStringValue:[NSString stringWithFormat:@"回避値 %g", UC[*(GuildDisp2 + i - k)-1].S_M.EVA]];
3338 [researchMOV setStringValue:[NSString stringWithFormat:@"移動力 %d", UC[*(GuildDisp2 + i - k)-1].S_M.MOV]];
3339 [researchIMG setImage:UC[*(GuildDisp2 + i - k)-1].imgb];
3340 [researchIMG setImageScaling:NSScaleToFit];
3346 for (int i = 0; UC[*(GuildDisp2 + crCRL - k)-1].nameID != UC[i].nameID && i < UCN;i++) {
3348 }BRU = &UC[BRUindex];
3357 -(void)SetStatusFunc{
3366 double S, V, A, D, M, I;
3487 S = U->C.S_C.STR + STRfix;
3488 V = U->C.S_C.VIT + VITfix;
3489 A = U->C.S_C.AGI + AGIfix;
3490 D = U->C.S_C.DEX + DEXfix;
3491 M = U->C.S_C.MEN + MENfix;
3492 I = U->C.S_C.INT + INTfix;
3494 U->C.S_C.ATK = (S*5 + D*2 + A)/8;
3495 U->C.S_C.DEF = (V*5 + M*2 + S)/8;
3496 U->C.S_C.CAP = (I*4 + D*1 + M*2)/7;
3497 U->C.S_C.ACU = (D*4 + A*1 + M)/6;
3498 U->C.S_C.EVA = (A*4 + A*1 + M)/6;
3500 U->C.S_C.ATK += 0.5;
3501 U->C.S_C.DEF += 0.5;
3502 U->C.S_C.CAP += 0.5;
3503 U->C.S_C.ACU += 0.5;
3504 U->C.S_C.EVA += 0.5;
3506 U->C.S_C.ATK = floor(U->C.S_C.ATK);
3507 U->C.S_C.DEF = floor(U->C.S_C.DEF);
3508 U->C.S_C.CAP = floor(U->C.S_C.CAP);
3509 U->C.S_C.ACU = floor(U->C.S_C.ACU);
3510 U->C.S_C.EVA = floor(U->C.S_C.EVA);
3517 -(void)initMapscript{
3519 for(int i = 0;i < 9999;i++){
3523 MAPSCRIPT MS = MF[MFselectedRow+1].MS;
3524 MAPSCRIPTD *MSDtop = MS.D;
3527 MAPSCRIPT0 *MSDPt = MS.D->P;
3530 MS.D->endFlag = false;
3533 double deltaET = floor(MS.D->ET2) - floor(MS.D->ET1);
3535 if(deltaET < 0) deltaET = 0;
3537 if(MS.D->ET1 <= eventTime && MS.D->ET2 >= eventTime){
3538 if(deltaET > 0) deltaR = rand()%(int)deltaET;
3541 MS.D->ET3 = MS.D->ET1 + (double)deltaR;
3542 MS.D->ET4 = MS.D->ET3;
3546 MS.D->P->endFlag = false;
3547 MS.D->P = MS.D->P->next;
3556 MF[MFselectedRow+1].MS = MS;
3561 -(void)EventLoopFS:(NSTimer*)time{
3563 if(openingAVP && openingAVPVisActive){
3564 if(openingAVP.rate <= 0 || openingAVPisDeactive){
3566 openingAVPVisHidden = true;
3567 [self openingAVPVfunc];
3568 openingAVPVisActive = false;
3569 openingAVPisDeactive = false;
3570 if(titleBGM) [titleBGM play];
3572 }else if(!openingAVP && openingAVPVisActive){
3573 openingAVPVisActive = false;
3574 openingAVPisDeactive = false;
3575 if(titleBGM) [titleBGM play];
3579 //NSLog(@"msgCnt %d", msgCnt);
3581 if(stopByFSVmenuFlag){
3582 [FSMenu makeKeyAndOrderFront:nil];
3587 menuDisplayFlag = false;
3590 if(saveDataLoadedFlag)
3596 for(int i = 0;i < DUN[1];i++){
3601 //NSLog(@"%d, %d", MF[0].MS.playerSet1, sdd2[0].MS.playerSet1);
3603 //if(Utarget) NSLog(@"PX %d PY %d UX %d UY %d", possionX, possionY, Utarget->x, Utarget->y);
3618 if(!fuckingLoadBugFix){
3620 [battleWindow close];
3623 if(extentBattleFlag){
3626 attackingWait = true;
3629 if(!battleSetUpIgnore){
3632 battleSet1Flag = false;
3633 battleSet2Flag = false;
3634 battleSettingFlag = false;
3635 extentBattleFlag = false;
3636 extentBattleFlag2 = true;
3639 if(cpuAtkExtendFlag2){
3642 attackingWait = true;
3645 if(!battleSetUpIgnore){
3649 battleSet1Flag = false;
3650 battleSet2Flag = false;
3651 battleSettingFlag = false;
3652 extentBattleFlag = false;
3653 extentBattleFlag2 = true;
3654 cpuAtkExtendFlag2 = false;
3655 [battlePanel close];
3657 }if(extentBattleFlag2){
3662 if(setBattleModeFlag){
3663 if(!battleReadyUpFlag){battleReadyUpFlag = true;
3665 P[0].resource = 500;
3668 P[1].resource = 500;
3671 P[2].resource = 500;
3675 [battleReadyUpPN1 setStringValue:P[0].name];
3676 [battleReadyUpPN2 setStringValue:P[1].name];
3678 NSString *string = @"";
3679 string = [string stringByAppendingFormat:@"%@の勝利条件\n", P[0].name];
3680 if(MF[MFselectedRow+1].MS.EGClight.endType1 == 1){
3681 string = [string stringByAppendingString:@"敵の壊滅\n"];
3683 }else if(MF[MFselectedRow+1].MS.EGClight.endType1 == 2){
3684 string = [string stringByAppendingString:@"味方の壊滅\n"];
3688 string = [string stringByAppendingString:@"\n"];
3690 string = [string stringByAppendingFormat:@"%@の勝利条件\n", P[1].name];
3691 if(MF[MFselectedRow+1].MS.EGCdark.endType1 == 2){
3692 string = [string stringByAppendingString:@"敵の壊滅\n"];
3693 }else if(MF[MFselectedRow+1].MS.EGClight.endType1 == 1){
3694 string = [string stringByAppendingString:@"味方の壊滅\n"];
3699 [battleReadyUpSupply1 setIntValue:P[0].resource];
3700 [battleReadyUpFood1 setIntValue:P[0].food];
3701 [battleReadyUpMoney1 setIntValue:P[0].money];
3703 [battleReadyUpSupply2 setIntValue:P[1].resource];
3704 [battleReadyUpFood2 setIntValue:P[1].food];
3705 [battleReadyUpMoney2 setIntValue:P[1].money];
3707 if(MF[MFselectedRow+1].MS.playerSet1 == 1){
3708 [battleReadyUpMAN1A setEnabled:NO];
3709 [battleReadyUpMAN1B setEnabled:NO];
3710 [battleReadyUpMAN1A setState:1];
3711 [battleReadyUpMAN1B setState:0];
3712 }else if(MF[MFselectedRow+1].MS.playerSet1 == 2){
3713 [battleReadyUpMAN1A setEnabled:NO];
3714 [battleReadyUpMAN1B setEnabled:NO];
3715 [battleReadyUpMAN1A setState:0];
3716 [battleReadyUpMAN1B setState:1];
3718 MF[MFselectedRow+1].MS.playerSet1 = 1;
3719 [battleReadyUpMAN1A setEnabled:YES];
3720 [battleReadyUpMAN1B setEnabled:YES];
3721 [battleReadyUpMAN1A setState:1];
3722 [battleReadyUpMAN1B setState:0];
3725 if(MF[MFselectedRow+1].MS.playerSet2 == 1){
3726 [battleReadyUpMAN2A setEnabled:NO];
3727 [battleReadyUpMAN2B setEnabled:NO];
3728 [battleReadyUpMAN2A setState:1];
3729 [battleReadyUpMAN2B setState:0];
3730 }else if(MF[MFselectedRow+1].MS.playerSet2 == 2){
3731 [battleReadyUpMAN2A setEnabled:NO];
3732 [battleReadyUpMAN2B setEnabled:NO];
3733 [battleReadyUpMAN2A setState:0];
3734 [battleReadyUpMAN2B setState:1];
3736 MF[MFselectedRow+1].MS.playerSet2 = 1;
3737 [battleReadyUpMAN2A setEnabled:YES];
3738 [battleReadyUpMAN2B setEnabled:YES];
3739 [battleReadyUpMAN2A setState:1];
3740 [battleReadyUpMAN2B setState:0];
3746 if([battleReadyUpMAN1A state] != 0)
3747 MF[MFselectedRow+1].MS.playerSet1 = 1;
3749 MF[MFselectedRow+1].MS.playerSet1 = 2;
3750 retardhelp1 = false;
3753 if([battleReadyUpMAN2A state] != 0)
3754 MF[MFselectedRow+1].MS.playerSet2 = 1;
3756 MF[MFselectedRow+1].MS.playerSet2 = 2;
3757 retardhelp2 = false;
3765 if(buildNum[possionX][possionY] < 0){
3766 [selectMesh setImage:MC[chipNum[possionX][possionY]].img];
3767 [selectMesh setImageScaling:NSScaleToFit];
3768 [selectMeshText setStringValue:MC[chipNum[possionX][possionY]].name];
3769 [selectMeshValue setStringValue:[NSString stringWithFormat:@"%d%", MC[chipNum[possionX][possionY]].dmgfix]];
3771 [selectMesh setImage:BC[buildNum[possionX][possionY]].img];
3772 [selectMesh setImageScaling:NSScaleToFit];
3773 [selectMeshText setStringValue:BC[buildNum[possionX][possionY]].name];
3774 [selectMeshValue setStringValue:[NSString stringWithFormat:@"%d%", BC[buildNum[possionX][possionY]].dmgfix]];
3776 [self SetStatusFunc];
3784 if(buildNum[possionX][possionY] < 0){
3785 [dmgFixTF setStringValue:[NSString stringWithFormat:@"地形効果 %d%",MC[chipNum[possionX][possionY]].dmgfix]];
3788 [recoveryTF setStringValue:@""];
3791 [dmgFixTF setStringValue:[NSString stringWithFormat:@"地形効果 %d%",BC[buildNum[possionX][possionY]].dmgfix]];
3793 NSString *string = [@"" retain];
3795 if(BC[buildNum[possionX][possionY]].recHP > 0 || BC[buildNum[possionX][possionY]].recMP > 0)
3796 string = [string stringByAppendingString:@"回復 "];
3797 if(BC[buildNum[possionX][possionY]].recHP > 0)
3798 string = [string stringByAppendingFormat:@"HP%d%", BC[buildNum[possionX][possionY]].recHP];
3799 if(BC[buildNum[possionX][possionY]].recMP > 0)
3800 string = [string stringByAppendingFormat:@"MP%d%", BC[buildNum[possionX][possionY]].recMP];
3802 [recoveryTF setStringValue:string];
3806 if(Uselected->chipNumberL < 0){
3807 if(!Uselected->dead){
3809 if(Uselected->team == 0){
3810 [tfArmy setStringValue:[NSString stringWithFormat:@"%@", P[0].name]];
3812 if(Uselected->team == 2){
3813 [tfArmy setStringValue:[NSString stringWithFormat:@"%@", P[1].name]];
3815 if(Uselected->team == 1){
3816 [tfArmy setStringValue:[NSString stringWithFormat:@"%@", P[2].name]];
3819 [tfName setStringValue:[NSString stringWithFormat:@"%@", Uselected->C.nameNick]];
3820 [HPbarTF setStringValue:[NSString stringWithFormat:@"HP %g/%g", Uselected->C.S_C.HP, Uselected->C.S_M.HP]];
3821 [HPbarLI setIntValue:[[NSString stringWithFormat:@"%g", Uselected->C.S_C.HP/Uselected->C.S_M.HP*100 + 0.5] intValue]];
3822 [MPbarTF setStringValue:[NSString stringWithFormat:@"MP %g/%g", Uselected->C.S_C.MP, Uselected->C.S_M.MP]];
3823 [tfAttack setStringValue:[NSString stringWithFormat:@"攻撃力 %g", Uselected->C.S_C.ATK]];
3824 [tfDefence setStringValue:[NSString stringWithFormat:@"防御力 %g", Uselected->C.S_C.DEF]];
3825 [tfCalc setStringValue:[NSString stringWithFormat:@"演算力 %g", Uselected->C.S_C.CAP]];
3826 [tfHit setStringValue:[NSString stringWithFormat:@"命中値 %g", Uselected->C.S_C.ACU]];
3827 [tfDodge setStringValue:[NSString stringWithFormat:@"回避値 %g", Uselected->C.S_C.EVA]];
3828 [tfMove setStringValue:[NSString stringWithFormat:@"移動力 %d", Uselected->C.S_C.MOV]];
3829 [tfWait setStringValue:[NSString stringWithFormat:@"WT %g", Uselected->C.S_C.WT]];
3830 [selectChara setImage:Uselected->C.imgb];
3831 [selectChara setImageScaling:NSScaleToFit];
3836 [tfName setStringValue:[NSString stringWithFormat:@"----"]];
3837 [tfArmy setStringValue:[NSString stringWithFormat:@"----"]];
3838 [HPbarTF setStringValue:[NSString stringWithFormat:@"HP ----"]];
3839 [HPbarLI setIntValue:[[NSString stringWithFormat:@"0"] intValue]];
3840 [MPbarTF setStringValue:[NSString stringWithFormat:@"MP ----"]];
3841 [tfAttack setStringValue:[NSString stringWithFormat:@"攻撃力 ----"]];
3842 [tfDefence setStringValue:[NSString stringWithFormat:@"防御力 ----"]];
3843 [tfCalc setStringValue:[NSString stringWithFormat:@"演算力 ----"]];
3844 [tfHit setStringValue:[NSString stringWithFormat:@"命中値 ----"]];
3845 [tfDodge setStringValue:[NSString stringWithFormat:@"回避値 ----"]];
3846 [tfMove setStringValue:[NSString stringWithFormat:@"移動力 ----"]];
3847 [tfWait setStringValue:[NSString stringWithFormat:@"WT ----"]];
3848 [selectChara setImage:NULL];
3853 if(!Uselected->dead){
3855 if(Uselected->team == 0){
3856 [tfArmy setStringValue:[NSString stringWithFormat:@"%@", P[0].name]];
3858 if(Uselected->team == 2){
3859 [tfArmy setStringValue:[NSString stringWithFormat:@"%@", P[1].name]];
3862 [tfName setStringValue:[NSString stringWithFormat:@"%@", Uselected->CL.name]];
3863 [HPbarTF setStringValue:[NSString stringWithFormat:@"HP %g/%g", Uselected->CL.S_C.HP, Uselected->CL.S_M.HP]];
3864 [HPbarLI setIntValue:[[NSString stringWithFormat:@"%g", Uselected->CL.S_C.HP/Uselected->CL.S_M.HP*100 + 0.5] intValue]];
3865 [MPbarTF setStringValue:[NSString stringWithFormat:@"EN %g/%g", Uselected->CL.S_C.EN, Uselected->CL.S_M.EN]];
3866 [tfAttack setStringValue:[NSString stringWithFormat:@"移動力 %d", Uselected->CL.S_C.MOV]];
3867 [tfDefence setStringValue:[NSString stringWithFormat:@"運動性 %g", Uselected->CL.S_C.MOB]];
3868 [tfCalc setStringValue:[NSString stringWithFormat:@"装甲 %g", Uselected->CL.S_C.ARM]];
3869 [tfHit setStringValue:[NSString stringWithFormat:@"限界 %g", Uselected->CL.S_C.LIM]];
3870 [tfDodge setStringValue:[NSString stringWithFormat:@""]];
3871 [tfMove setStringValue:[NSString stringWithFormat:@""]];
3872 [tfWait setStringValue:[NSString stringWithFormat:@"WT %g", Uselected->CL.S_C.WT]];
3873 [selectChara setImage:Uselected->CL.imgb];
3874 [selectChara setImageScaling:NSScaleToFit];
3878 [tfName setStringValue:[NSString stringWithFormat:@"----"]];
3879 [tfArmy setStringValue:[NSString stringWithFormat:@"----"]];
3880 [HPbarTF setStringValue:[NSString stringWithFormat:@"HP ----"]];
3881 [HPbarLI setIntValue:[[NSString stringWithFormat:@"0"] intValue]];
3882 [MPbarTF setStringValue:[NSString stringWithFormat:@"MP ----"]];
3883 [tfAttack setStringValue:[NSString stringWithFormat:@"攻撃力 ----"]];
3884 [tfDefence setStringValue:[NSString stringWithFormat:@"防御力 ----"]];
3885 [tfCalc setStringValue:[NSString stringWithFormat:@"演算力 ----"]];
3886 [tfHit setStringValue:[NSString stringWithFormat:@"命中値 ----"]];
3887 [tfDodge setStringValue:[NSString stringWithFormat:@"回避値 ----"]];
3888 [tfMove setStringValue:[NSString stringWithFormat:@"移動力 ----"]];
3889 [tfWait setStringValue:[NSString stringWithFormat:@"WT ----"]];
3890 [selectChara setImage:NULL];
3898 [tfName setStringValue:[NSString stringWithFormat:@"----"]];
3899 [tfArmy setStringValue:[NSString stringWithFormat:@"----"]];
3900 [HPbarTF setStringValue:[NSString stringWithFormat:@"HP ----"]];
3901 [HPbarLI setIntValue:[[NSString stringWithFormat:@"0"] intValue]];
3902 [MPbarTF setStringValue:[NSString stringWithFormat:@"MP ----"]];
3903 [tfAttack setStringValue:[NSString stringWithFormat:@"攻撃力 ----"]];
3904 [tfDefence setStringValue:[NSString stringWithFormat:@"防御力 ----"]];
3905 [tfCalc setStringValue:[NSString stringWithFormat:@"演算力 ----"]];
3906 [tfHit setStringValue:[NSString stringWithFormat:@"命中値 ----"]];
3907 [tfDodge setStringValue:[NSString stringWithFormat:@"回避値 ----"]];
3908 [tfMove setStringValue:[NSString stringWithFormat:@"移動力 ----"]];
3909 [tfWait setStringValue:[NSString stringWithFormat:@"WT ----"]];
3910 [selectChara setImage:NULL];
3918 if(unitBreak->team == 0){
3919 [tfResource setStringValue:[NSString stringWithFormat:@"資源 %d", P[0].resource]];
3920 [tfFood setStringValue:[NSString stringWithFormat:@"食料 %d", P[0].food]];
3921 [tfMoney setStringValue:[NSString stringWithFormat:@"資金 %d", P[0].money]];
3922 }else if(unitBreak->team == 2){
3923 [tfResource setStringValue:[NSString stringWithFormat:@"資源 %d", P[1].resource]];
3924 [tfFood setStringValue:[NSString stringWithFormat:@"食料 %d", P[1].food]];
3925 [tfMoney setStringValue:[NSString stringWithFormat:@"資金 %d", P[1].money]];
3926 }else if(unitBreak->team == 1){
3927 [tfResource setStringValue:[NSString stringWithFormat:@"資源 %d", P[2].resource]];
3928 [tfFood setStringValue:[NSString stringWithFormat:@"食料 %d", P[2].food]];
3929 [tfMoney setStringValue:[NSString stringWithFormat:@"資金 %d", P[2].money]];
3933 if(menuDisplayFlag){
3935 [self initBCreateList];
3936 [self initCSummonList];
3939 if(initMapFlag && datFileLoadCompFromTitle && !saveDataLoadedFlag){
3941 mouseDoubleClickedCnt = 0;
3942 mouseDoubleClickedFlag = false;
3943 mouseClicked = false;
3944 messageDialog = false;
3946 for(int i = 0;i<=1000;i++){
3947 for(int j = 0;j<= 1000;j++){
3948 buildNum[i][j] = -1;
3951 buildTeam[i][j] = -1;
3952 unitTeam[i][j] = -1;
3956 [self initUnitStatusDat];
3957 //NSLog(@"%d, %d", unitNum[0][0], MF[MFselectedRow].MS.playerSet1);
3958 [self initBuildStatusDat];
3962 initImgFlag = false;
3963 initStringNum = false;
3964 bugFixFlag1 = false;
3965 bugFixFlag2 = false;
3966 bugFixFlag3 = false;
3975 //ここに進行したマップスクリプト値関数
3976 //NSLog(@"%d, %d", unitNum[0][0], MF[MFselectedRow].MS.playerSet1);
3977 [self setTargetListDat];
3978 [self initGuildList];
3980 for(int i = 0;i < 255;i++){
3984 cpuTurnEndFlag = false;
3985 mapChipDataLoadProc = 0;
3990 battleEndFlag = false;
3991 initStatusFlag = true;
3992 TeamCountFlag = true;
3993 cpuTurnEndFlag = false;
3994 unitColorInitFlag = true;
3995 initMapEventFlag = true;
3996 fieldViewBattleInitFlag = true;
3997 MF[MFselectedRow+1].MS = sdd2[datRow].MS;
3998 MF[MFselectedRow+1].MS.D = sdd2[datRow].MS.D;
3999 MSDTOPP = sdd2[datRow].MS.D;
4000 MSDTOP = sdd2[datRow].MS.D;
4001 msdtop = sdd2[datRow].MS.D;
4002 MSDTO = sdd2[datRow].MS.D;
4004 //if(UTop) NSLog(@"%d, %d, %d", UTop->CPU, unitNum[0][0], MF[MFselectedRow].MS.playerSet1);
4005 datFileLoadCompFromTitle = false;
4009 }else if (initMapFlag && !initStatusFlag) {
4012 mouseDoubleClickedCnt = 0;
4013 mouseDoubleClickedFlag = false;
4014 mouseClicked = false;
4019 battleEndFlag = false;
4022 [self initUnitStatus];
4023 [self initBuildStatus];
4025 //NSLog(@"%d", unitNum[1][1]);
4029 U->C.S_C.HP = U->C.S_M.HP;
4035 initStatusFlag = true;
4037 TeamCountFlag = true;
4039 unitColorInitFlag = true;
4042 for (int i = 1;i < 512;i++) {
4043 if([[SC[storyNumb].nameMAP objectAtIndex:scenarioNumb] isEqualToString:[NSString stringWithFormat:@"%@", MF[i].fileName]])
4046 }if(MFselectedRow > 510){
4048 mapChipDataLoadFail = true;
4051 [self initMapscript];
4054 initImgFlag = false;
4055 initStringNum = false;
4056 bugFixFlag1 = false;
4057 bugFixFlag2 = false;
4058 bugFixFlag3 = false;
4063 [self setTargetList];
4066 initMapEventFlag = true;
4067 fieldViewBattleInitFlag = true;
4070 for(int i = 0;i < 255;i++){
4075 [self initGuildList];
4076 cpuTurnEndFlag = false;
4077 mapChipDataLoadProc = 0;
4080 if(mapChipDataLoadFail){
4081 [endGamePanel close];
4083 endGameCondition = false;
4084 initMapFlag = false;
4085 TeamCountFlag = false;
4086 initStatusFlag = false;
4087 battleBegin = false;
4091 blueWinFlag = false;
4095 mapChipDataLoadFail = false;
4104 endGameCondition = false;
4105 initMapFlag = false;
4106 TeamCountFlag = false;
4107 initStatusFlag = false;
4108 battleBegin = false;
4111 cpuModeMOVEflag = false;
4112 cpuModeATTACKflag = false;
4115 blueWinFlag = false;
4116 cpuAImodeflag = false;
4117 cpuTurnEndFlag = true;
4118 stageClearFlag = false;
4119 waitSwtichFlag = false;
4120 battleReadyUpFlag = false;
4121 setBattleModeFlag = false;
4129 }else if(initMapFlag){
4130 mapChipDataLoadProc++;
4133 if(mapChipDataLoadProc > 2)
4134 mapChipDataLoadProc = 2;
4136 if(mapChipDataLoadProc == 1){
4137 [fsWindow makeKeyAndOrderFront:nil];
4139 [titleWindow close];
4140 mapChipDataLoadProc++;
4144 if(unitBreak->team == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2){
4145 unitBreak->CPU = true;
4146 cpuAImodeflag = true;
4148 }else if(unitBreak->team == 0 && MF[MFselectedRow+1].MS.playerSet1 == 2){
4149 unitBreak->CPU = true;
4150 cpuAImodeflag = true;
4152 }else if(unitBreak->team == 1){
4153 unitBreak->CPU = true;
4154 cpuAImodeflag = true;
4158 unitBreak->CPU = false;
4159 cpuAImodeflag = false;
4165 if(!cpuTurnEndFlag && unitBreak->C.S_C.WT == 0){
4166 [fieldView modeCPUturn];
4168 //NSLog(@"%d", U->x);
4178 //NSLog(@"%p", UTop);
4179 if(battleWindowFlag){battleFlag = true; battleWindowFlag = false;
4183 if(extentBattleFlag || cpuAtkExtendFlag2){
4184 if(!attackExtentFlag && !cpuAtkExtendFlag2)
4185 attackingWait = true;
4187 attackingWait = false;
4189 attackingWait = true;
4193 if(battleFlag && !battleSetUp){
4195 if(Utarget && !battleRdy)
4196 if((MF[MFselectedRow+1].MS.playerSet1 == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2) ||
4197 (unitBreak->team == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2) ||
4198 (unitBreak->team == 0 && MF[MFselectedRow+1].MS.playerSet1 == 2) ||
4199 (unitBreak->team == 1)
4206 [self battleStartCPU];//攻撃目標ウェイト
4207 attackingWait = true;
4211 if(attackExtentFlag || cpuAtkExtendFlag){
4212 attackingWait = false;
4223 if(initMapFlag && battleFlag)
4224 if((!attackExtentFlag && !cpuAtkExtendFlag))
4225 if(!battleSettingFlag && attackingWait){
4226 windowPoint.x = [mapWindow frame].origin.x;
4227 windowPoint.y = [mapWindow frame].origin.y;
4228 [battlePanel setFrameOrigin:windowPoint];
4229 [battlePanel makeKeyAndOrderFront:nil];
4230 [self setBattlePanel];
4233 if(Utarget && attackingWait){
4235 if(battleSetUp && ((MF[MFselectedRow+1].MS.playerSet1 == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2) ||
4236 (unitBreak->team == 2 && Utarget->team == 1 && MF[MFselectedRow+1].MS.playerSet2 == 2) || (unitBreak->team == 1 && Utarget->team == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2) ||
4237 (unitBreak->team == 0 && Utarget->team == 1 && MF[MFselectedRow+1].MS.playerSet1 == 2) || (unitBreak->team == 1 && Utarget->team == 0 && MF[MFselectedRow+1].MS.playerSet1 == 2) ||
4238 (unitBreak->team == 1 && Utarget->team == 1) ||
4239 (unitBreak->team == 2 && Utarget->team == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2) ||
4240 (unitBreak->team == 0 && Utarget->team == 0 && MF[MFselectedRow+1].MS.playerSet1 == 2)
4243 if(!animationFlag1 && !animationFlag2)
4248 oopsCnt = 30;//cpu攻撃設定
4251 //battleFlag = false;
4253 battleSet1Flag = false;
4254 battleSet2Flag = false;
4255 battleSettingFlag = false;
4256 attackingWait = false;
4263 if(battleRdy && ((MF[MFselectedRow+1].MS.playerSet1 == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2) || (unitBreak->team == 2 && Utarget->team == 1 && MF[MFselectedRow+1].MS.playerSet2 == 2) || (unitBreak->team == 1 && Utarget->team == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2) ||
4264 (unitBreak->team == 0 && Utarget->team == 1 && MF[MFselectedRow+1].MS.playerSet1 == 2) || (unitBreak->team == 1 && Utarget->team == 0 && MF[MFselectedRow+1].MS.playerSet1 == 2) ||
4265 (unitBreak->team == 1 && Utarget->team == 1) ||
4266 (unitBreak->team == 2 && Utarget->team == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2) ||
4267 (unitBreak->team == 0 && Utarget->team == 0 && MF[MFselectedRow+1].MS.playerSet1 == 2)
4272 if(!(AVpreview.rate > 0) && !animationFlag1 && !animationFlag2)
4283 damnitFixFlag = true;
4284 if(!datFileLoadCompFromTitle && initMapFlag && !battleIsProcFlag){
4285 [self EventFunc:true];
4287 crapBugFixFlag = false;
4293 if(battleSetUp && fuckingLoadBugFix && Uselected && !attackingWait){
4294 if(!battleSetUpIgnore && fuckingLoadBugFix){
4295 [self AttackDisplay];
4297 windowPoint.x = [mapWindow frame].origin.x;
4298 windowPoint.y = [mapWindow frame].origin.y;
4299 [battleWindow setFrameOrigin:windowPoint];
4300 [battleWindow makeKeyAndOrderFront:nil];
4301 }else if(battleSetUpIgnore){
4302 [mapWindow makeKeyAndOrderFront:nil];
4305 windowPoint.x = [mapWindow frame].origin.x;
4306 windowPoint.y = [mapWindow frame].origin.y;
4307 [battleWindow setFrameOrigin:windowPoint];
4308 [battleWindow makeKeyAndOrderFront:nil];*/
4316 if(battleRdy && battleSetUp && fuckingLoadBugFix && !battleSetUpIgnore){
4317 [self DisplayMessage];
4324 if(battleBegin && !wtRdy2 && !battleFlag)
4328 //NSLog(@"eventTime%g", eventTime);
4331 if(!U->dead && U->C.S_C.WT > 0) U->C.S_C.WT -= 1;
4333 U->C.S_C.WT = 999999;
4336 if(U->C.S_C.WT <= 0 && !U->dead){//WTターン周り
4337 battleEndFlag = false;
4341 wtUnitNum = U->number;
4348 possionX = unitBreak->x;
4349 possionY = unitBreak->y;
4352 wtMovedFlag = false;
4353 wtAttackedFlag = false;
4357 [fieldView scrollPoint:NSMakePoint((wtPx-8)*32, (wtPy-8)*32)];
4360 if(buildNum[U->x][U->y] >= 0){
4364 if(B->x == U->x && B->y == U->y){
4377 U->C.S_C.HP += floor(U->C.S_M.HP*B->C.recHP/100);
4378 if(U->C.S_C.HP >= U->C.S_M.HP) U->C.S_C.HP = U->C.S_M.HP;
4382 U->C.S_C.MP += floor(U->C.S_M.MP*B->C.recMP/100);
4383 if(U->C.S_C.MP >= U->C.S_M.MP) U->C.S_C.MP = U->C.S_M.MP;
4387 U->CL.S_C.EN += floor(U->CL.S_M.EN*B->C.recEN/100);
4388 if(U->CL.S_C.EN >= U->CL.S_M.EN) U->CL.S_C.EN = U->CL.S_M.EN;
4391 if(B->C.recHPL > 0){
4392 U->CL.S_C.HP += floor(U->CL.S_M.HP*B->C.recHPL/100);
4393 if(U->CL.S_C.HP >= U->CL.S_M.HP) U->CL.S_C.HP = U->CL.S_M.HP;
4403 [self EventFunc:false];
4404 pussyCumsOnlyOnceFlag = false;
4415 if(!B->dead) B->C.S_C.WTE -= 1;
4416 if(B->C.S_C.WTE <= 0){
4419 P[0].resource += B->C.Esupply;
4420 P[0].food += B->C.Efood;
4421 P[0].money += B->C.Emoney;
4424 P[1].resource += B->C.Esupply;
4425 P[1].food += B->C.Efood;
4426 P[1].money += B->C.Emoney;
4429 P[2].resource += B->C.Esupply;
4430 P[2].food += B->C.Efood;
4431 P[2].money += B->C.Emoney;
4434 B->C.S_C.WTE = B->C.S_M.WTE;
4443 //NSLog(@"%g", eventTime);
4444 [self EventFunc:false];
4446 pussyCumsOnlyOnceFlag = false;
4448 //NSLog(@"eventTime%g", eventTime);
4464 if(buildSelectedFlag){
4465 windowPoint.x = [mapWindow frame].origin.x;
4466 windowPoint.y = [mapWindow frame].origin.y;
4467 [researchPanel setFrameOrigin:windowPoint];
4468 if([self setBuildList]){
4469 [researchPanel makeKeyAndOrderFront:nil];
4471 buildSelectedFlag = false;
4474 if(TeamCountFlag && !endGameCondition){
4479 if((U->team == 0 || U->team == 1) && !U->dead){
4482 else if(U->team == 2 && !U->dead){
4490 if(targType1cnt[1] == 0 || targType2cnt[1] == 0){
4491 endGameCondition = true;
4493 [endGameText setStringValue:[NSString stringWithFormat:@"%@の勝利!", P[1].name]];
4496 if(targType1cnt[0] == 0 || targType2cnt[0] == 0){
4497 endGameCondition = true;
4499 [endGameText setStringValue:[NSString stringWithFormat:@"%@の勝利!", P[0].name]];
4504 endGameCondition = true;
4506 [endGameText setStringValue:[NSString stringWithFormat:@"%@の勝利!", P[1].name]];
4510 endGameCondition = true;
4512 [endGameText setStringValue:[NSString stringWithFormat:@"%@の勝利!", P[0].name]];
4516 if(TeamCount0 == 0 && (MF[MFselectedRow+1].MS.EGCdark.endType1 == 2 || MF[MFselectedRow+1].MS.EGCdark.endType2 == 2)){
4517 endGameCondition = true;
4519 [endGameText setStringValue:[NSString stringWithFormat:@"%@の勝利!", P[1].name]];
4521 if(TeamCount2 == 0 && (MF[MFselectedRow+1].MS.EGClight.endType1 == 1 || MF[MFselectedRow+1].MS.EGClight.endType2 == 1)){
4522 endGameCondition = true;
4524 [endGameText setStringValue:[NSString stringWithFormat:@"%@の勝利!", P[0].name]];
4530 static int endGamePanelWait = 100;
4532 if(endGameCondition && !battleRdy){
4534 if(redWinFlag && blueWinFlag){
4538 windowPoint.x = [mapWindow frame].origin.x+30;
4539 windowPoint.y = [mapWindow frame].origin.y+200;
4540 [endGamePanel setFrameOrigin:windowPoint];
4541 [endGamePanel makeKeyAndOrderFront:nil];
4543 if(endGamePanelWait > 0) return;
4546 [endGamePanel close];
4555 endGameCondition = false;
4556 initMapFlag = false;
4557 TeamCountFlag = false;
4558 initStatusFlag = false;
4559 battleBegin = false;
4562 cpuModeMOVEflag = false;
4563 cpuModeATTACKflag = false;
4566 blueWinFlag = false;
4567 cpuAImodeflag = false;
4568 cpuTurnEndFlag = true;
4569 waitSwtichFlag = false;
4575 endGamePanelWait = 100;
4576 stageClearFlag = false;
4577 stageClearFlag2 = false;
4578 battleReadyUpFlag = false;
4579 setBattleModeFlag = false;
4583 [titleWindow makeKeyAndOrderFront:nil];
4591 endGameCondition = false;
4592 initMapFlag = false;
4593 TeamCountFlag = false;
4594 initStatusFlag = false;
4595 battleBegin = false;
4598 cpuModeMOVEflag = false;
4599 cpuModeATTACKflag = false;
4602 blueWinFlag = false;
4603 cpuAImodeflag = false;
4604 cpuTurnEndFlag = true;
4605 backTitleFlag = false;
4606 backTitleFlag2 = true;
4607 waitSwtichFlag = false;
4608 battleReadyUpFlag = false;
4609 setBattleModeFlag = false;
4617 }if(stageClearFlag){
4619 if(stageClearFlag2){
4621 endGameCondition = true;
4623 [endGameText setStringValue:[NSString stringWithFormat:@"%@の勝利!", P[0].name]];
4637 endGameCondition = false;
4638 initMapFlag = false;
4639 TeamCountFlag = false;
4640 initStatusFlag = false;
4641 battleBegin = false;
4644 cpuModeMOVEflag = false;
4645 cpuModeATTACKflag = false;
4648 blueWinFlag = false;
4649 cpuAImodeflag = false;
4650 cpuTurnEndFlag = true;
4651 stageClearFlag = false;
4652 waitSwtichFlag = false;
4653 battleReadyUpFlag = false;
4654 setBattleModeFlag = false;
4667 [GameOverIV setImage:gaov.img];
4670 [GameOverWindow makeKeyAndOrderFront:nil];
4673 endGameCondition = false;
4674 initMapFlag = false;
4675 TeamCountFlag = false;
4676 initStatusFlag = false;
4677 battleBegin = false;
4680 cpuModeMOVEflag = false;
4681 cpuModeATTACKflag = false;
4684 blueWinFlag = false;
4685 cpuAImodeflag = false;
4686 cpuTurnEndFlag = true;
4687 backTitleFlag = false;
4688 gameOverFlag = false;
4689 gameOverFlag2 = true;
4690 waitSwtichFlag = false;
4691 battleReadyUpFlag = false;
4692 setBattleModeFlag = false;
4702 if(!Uselected->dead){
4706 while (U->number != wtUnitNum) {
4710 if(!wtMovedFlag && !wtAttackedFlag){
4711 U->C.S_C.WT = floor(U->C.S_M.WT/4 + 0.5);
4712 }else if(wtMovedFlag && wtAttackedFlag){
4713 U->C.S_C.WT = floor(U->C.S_M.WT + 0.5);
4714 }else if(wtMovedFlag){
4715 U->C.S_C.WT = floor(U->C.S_M.WT/2 + 0.5);
4716 }else if(wtAttackedFlag){
4717 U->C.S_C.WT = floor(U->C.S_M.WT/2 + 0.5);
4733 SKILL *sTop = U->C.S;
4736 if(U->C.S->type == 2) break;
4737 U->C.S = U->C.S->next;
4740 U->C.S_C.MP -= U->C.S->cost[crCSL];
4749 unitNum[possionX][possionY] = U->C.S->list[crCSL]-1;
4750 unitTeam[possionX][possionY] = 0;
4757 [self addSummonStatus];
4758 unitColorInitFlag = true;
4760 }else if(U->team == 2){
4762 SKILL *sTop = U->C.S;
4765 if(U->C.S->type == 2) break;
4766 U->C.S = U->C.S->next;
4769 U->C.S_C.MP -= U->C.S->cost[crCSL];
4777 unitNum[possionX][possionY] = U->C.S->list[crCSL]-1;
4778 unitTeam[possionX][possionY] = 2;
4781 unitColorInitFlag = true;
4784 [self addSummonStatus];
4785 unitColorInitFlag = true;
4788 summonRdyFlag = false;
4796 if(unitMoveEndFlag){
4797 //pussyLoopFlag = false;
4804 if(displayBattleCheckPanelFlag == 1){
4805 displayBattleCheckPanelFlag = 2;
4807 windowPoint.x = [mapWindow frame].origin.x;
4808 windowPoint.y = [mapWindow frame].origin.y;
4809 [atkPanel setFrameOrigin:windowPoint];
4822 -(void)EventFunc:(bool)eventLoopProcFlag{
4828 pussyLoopFlag = false;
4837 if(battleBegin && !pussyLoopFlag){
4839 bool proccessTrue = false;
4840 static bool onlyBigin = false;
4841 MAPSCRIPT MS = MF[MFselectedRow+1].MS;
4858 int proccesType = -1;
4860 bool EventFailFlag = false;
4861 static bool PtopFlag = false;
4891 if(MS.D->P->endFlag)
4892 MS.D->P = MS.D->P->next;
4898 if(!eventLoopProcFlag && MS.D->P->type == 0){
4899 proccessTrue = false;
4900 MS.D->P = MS.D->P->next;
4907 MS.D->endFlag = true;
4908 messageDialog = false;
4909 [self setMessage:NULL];
4914 MAPSCRIPT0 *MSDPT = MS.D->P;
4916 if(MS.D->ETtype == 0){
4918 }else if(MS.D->ETtype == 1){
4919 bool resultFailFlag = false;
4921 if(!MS.D->P->endFlag)
4922 resultFailFlag = true;
4923 MS.D->P = MS.D->P->next;
4928 MS.D->P->endFlag = false;
4929 MS.D->P = MS.D->P->next;
4932 }else if(MS.D->ETtype == 2){
4934 bool resultFailFlag = false;
4936 if(!MS.D->P->succeessfulFlag)
4937 resultFailFlag = true;
4938 MS.D->P = MS.D->P->next;
4943 MS.D->P->endFlag = false;
4944 MS.D->P = MS.D->P->next;
4946 }else if(MS.D->ETtype == 3){
4948 bool resultFailFlag = false;
4950 if(!MS.D->P->succeessfulFlag){
4951 resultFailFlag = false;
4954 MS.D->P = MS.D->P->next;
4955 resultFailFlag = true;
4960 MS.D->P->endFlag = false;
4961 MS.D->P = MS.D->P->next;
4963 //NSLog(@"%d", UTop->x);
4964 }else if(MS.D->ETtype == 4){
4966 MS.D->P->endFlag = false;
4967 MS.D->P = MS.D->P->next;
4983 for(int i = 0;*(MS.D->switch1+i)>0;i++){
4984 if(Suicchi[*(MS.D->switch1+i)])
4987 EventFailFlag = true;
4991 for(int i = 0;*(MS.D->switch2+i)>0;i++){
4992 if(!Suicchi[*(MS.D->switch2+i)])
4995 EventFailFlag = true;
4997 //NSLog(@"%g", eventTime);
4999 //if(!MS.D->endFlag)
5000 if(eventTime == MS.D->ET4 || MS.D->ET4 == 0 || MS.D->initialDeleyedFlag){
5002 if(MS.D->P->type == 6){
5003 if(eventTime == MS.D->ET4){
5004 MS.D->P->S4.lagFixFlag = false;
5006 else if(unitMoveEndFlag){
5007 MS.D->P->S4.lagFixFlag = false;
5009 else if(battleSetUp){
5010 MS.D->P->S4.lagFixFlag = false;
5012 else if(pushStanbyFlag){
5013 MS.D->P->S4.lagFixFlag = false;
5015 else if(battleEndFlag){
5016 MS.D->P->S4.lagFixFlag = false;
5018 else if(!MS.D->P->S4.lagFixFlag && MS.D->ET4 == 0){
5019 MS.D->P->S4.lagFixFlag = true;
5023 if(MS.D->P->S4.lagFixFlag){
5024 //NSLog(@"%g", eventTime);
5025 proccessTrue = false;
5029 proccessTrue = true;
5032 double deltaET = floor(MS.D->ET2) - floor(MS.D->ET1);
5034 if(deltaET < 0) deltaET = 0;
5036 if(MS.D->ET1 <= eventTime && MS.D->ET2 >= eventTime){
5037 if(deltaET > 0) deltaR = rand()%(int)deltaET;
5040 MS.D->ET3 = MS.D->ET1 + (double)deltaR;
5042 if(!MS.D->onlyInitialDeley) {
5043 MS.D->ET4 += MS.D->ET3;
5045 MS.D->initialDeleyedFlag = true;
5049 // NSLog(@"%g %d", eventTime, P[0].resource);
5053 proccessTrue = true;
5064 if(MS.D->type == -1 && !EventFailFlag)
5065 proccesType = ENTIRE_MAP;
5066 if(MS.D->type == 0 && pushStanbyFlag && (Uselected->x == MS.D->x && Uselected->y == MS.D->y) && !EventFailFlag)
5067 proccesType = CENTER_POINT;
5068 else if(MS.D->type == 0){
5069 proccesType = CENTER_POINT;
5070 proccessTrue = false;
5071 EventFailFlag = true;
5079 if(MS.D->ET4 != 0 && pussyCumsOnlyOnceFlag){
5080 EventFailFlag = true;
5084 if(EventFailFlag || !proccessTrue){
5090 if(!eventLoopProcFlag && MS.D->P->type == 0)
5091 proccessTrue = false;
5094 switch (proccesType) {
5096 MS.D->P = [self setEvent:MS.D->P];
5103 if(waitSwtichFlag) {
5112 }if(stageClearFlag){
5126 MS.D->P = [self setEvent:MS.D->P];
5132 if(waitSwtichFlag) {
5141 }if(stageClearFlag){
5163 bool PnextFlag = false;
5167 if(MS.D->P->endFlag){
5168 MS.D->P = MS.D->P->next;
5190 MAPSCRIPT0 *MSDPT = MS.D->P;
5191 if(MS.D->ETtype == 0){
5193 MS.D->P->succeessfulFlag = true;
5194 MS.D->endFlag = true;
5195 MS.D->P = MS.D->P->next;
5197 }else if(MS.D->ETtype == 1){
5198 bool resultFailFlag = false;
5200 if(!MS.D->P->endFlag)
5201 resultFailFlag = true;
5202 MS.D->P = MS.D->P->next;
5207 MS.D->P->succeessfulFlag = false;
5208 MS.D->endFlag = false;
5209 MS.D->P->endFlag = false;
5210 MS.D->P = MS.D->P->next;
5213 }else if(MS.D->ETtype == 2){
5215 bool resultFailFlag = false;
5217 if(!MS.D->P->succeessfulFlag)
5218 resultFailFlag = true;
5219 MS.D->P = MS.D->P->next;
5224 MS.D->P->succeessfulFlag = false;
5225 MS.D->endFlag = false;
5226 MS.D->P->endFlag = false;
5227 MS.D->P = MS.D->P->next;
5229 }else if(MS.D->ETtype == 3){
5231 bool resultFailFlag = false;
5233 if(!MS.D->P->succeessfulFlag){
5234 resultFailFlag = false;
5237 resultFailFlag = true;
5238 MS.D->P = MS.D->P->next;
5243 MS.D->P->succeessfulFlag = false;
5244 MS.D->endFlag = false;
5245 MS.D->P->endFlag = false;
5246 MS.D->P = MS.D->P->next;
5248 }else if(MS.D->ETtype == 4){
5250 MS.D->P->succeessfulFlag = false;
5251 MS.D->P->endFlag = false;
5252 MS.D->endFlag = false;
5253 MS.D->P = MS.D->P->next;
5265 MF[MFselectedRow+1].MS.D = MS.D;
5267 cpuTurnEndFlag = false;
5268 battleSetUpIgnore = false;
5269 if(!eventLoopProcFlag){
5270 pussyCumsOnlyOnceFlag = true;
5273 fuckingLoadBugFix = true;
5280 -(MAPSCRIPT0*)setEvent:(MAPSCRIPT0*)MS0{
5295 APPEARANCE_FLAG = 22,
5296 DISSAPPEARANCE_FLAG = 23,
5301 STAGECLEAR_FLAG = 36,
5308 Proc = MESSAGE_FLAG;
5310 Proc = SELECTION_FLAG;
5312 Proc = INPUTNUMBER_FLAG;
5324 Proc = LABELJUMP_FLAG;
5326 Proc = COMMENT_FLAG;
5328 Proc = RESOURCE_FLAG;
5332 Proc = APPEARANCE_FLAG;
5334 Proc = DISSAPPEARANCE_FLAG;
5342 Proc = GAMEOVER_FLAG;
5344 Proc = STAGECLEAR_FLAG;
5354 messageDialog = true;
5355 [self setMessage:MS0];
5357 fuckingLoadBugFix = false;
5359 case SELECTION_FLAG:
5361 MS0 = [self setSelection:MS0];
5364 case INPUTNUMBER_FLAG:
5365 MS0 = [self setDefault:MS0];
5370 MS0 = [self setSwitch:MS0];
5373 MS0 = [self setDefault:MS0];
5376 MS0 = [self setDefault:MS0];
5379 MS0 = [self setBranch:MS0];
5382 MS0 = [self setLabel:MS0];
5384 case LABELJUMP_FLAG:
5385 MS0 = [self setLabelJump:MS0];
5388 MS0 = [self setComment:MS0];
5391 MS0 = [self setResource:MS0];
5394 MS0 = [self setStatus:MS0];
5396 case APPEARANCE_FLAG:
5397 MS0 = [self setAppearance:MS0];
5399 case DISSAPPEARANCE_FLAG:
5400 MS0 = [self setDissappearance:MS0];
5403 MS0 = [self setWait:MS0];
5406 MS0 = [self setBGM:MS0];
5409 MS0 = [self setSE:MS0];
5412 MS0 = [self setGameOver:MS0];
5415 case STAGECLEAR_FLAG:
5416 MS0 = [self setStageClear:MS0];
5419 MS0 = [self setTitleBack:MS0];
5427 -(void)setTargetListDat{
5428 targType1cnt[0] = -1;
5429 targType1cnt[1] = -1;
5430 targType2cnt[0] = -1;
5431 targType2cnt[1] = -1;
5432 targType2Lflag = false;
5433 targType2Dflag = false;
5436 MAPSCRIPT MS = MF[MFselectedRow+1].MS;
5440 for (int i = 0;i < 64;i++) {
5441 if(!MS.EGClight.etValue1[i]) break;
5442 NSArray *array1 = [MS.EGClight.etValue1[i] componentsSeparatedByString:@"["];
5443 NSArray *array2 = [[array1 objectAtIndex:1] componentsSeparatedByString:@","];
5445 int Tx = [[array2 objectAtIndex:0] intValue];
5446 int Ty = [[array2 objectAtIndex:1] intValue];
5447 if(MS.EGClight.endType1 == 3){
5450 if(U->x == Tx && U->y == Ty){
5451 U->targType1L = true;
5452 if(targType1cnt[0] < 0)
5453 targType1cnt[0] = 0;
5460 if(MS.EGClight.endType1 == 4){
5463 if(U->x == Tx && U->y == Ty){
5464 U->targType2L = true;
5465 if(targType2cnt[0] < 0)
5466 targType2cnt[0] = 0;
5474 for (int i = 0;i < 64;i++) {
5475 if(!MS.EGClight.etValue2[i]) break;
5476 NSArray *array1 = [MS.EGClight.etValue2[i] componentsSeparatedByString:@"["];
5477 NSArray *array2 = [[array1 objectAtIndex:1] componentsSeparatedByString:@","];
5479 int Tx = [[array2 objectAtIndex:0] intValue];
5480 int Ty = [[array2 objectAtIndex:1] intValue];
5482 if(MS.EGClight.endType2 == 3){
5485 if(U->x == Tx && U->y == Ty){
5486 U->targType1L = true;
5487 if(targType1cnt[0] < 0)
5488 targType1cnt[0] = 0;
5495 if(MS.EGClight.endType2 == 4){
5498 if(U->x == Tx && U->y == Ty){
5499 U->targType2L = true;
5500 if(targType2cnt[0] < 0)
5501 targType2cnt[0] = 0;
5509 for (int i = 0;i < 64;i++) {
5510 if(!MS.EGCdark.etValue1[i]) break;
5511 NSArray *array1 = [MS.EGCdark.etValue1[i] componentsSeparatedByString:@"["];
5512 NSArray *array2 = [[array1 objectAtIndex:1] componentsSeparatedByString:@","];
5514 int Tx = [[array2 objectAtIndex:0] intValue];
5515 int Ty = [[array2 objectAtIndex:1] intValue];
5517 if(MS.EGCdark.endType1 == 3){
5520 if(U->x == Tx && U->y == Ty){
5521 U->targType1D = true;
5522 if(targType1cnt[1] < 0)
5523 targType1cnt[1] = 0;
5530 if(MS.EGCdark.endType1 == 4){
5533 if(U->x == Tx && U->y == Ty){
5534 U->targType2D = true;
5535 if(targType2cnt[1] < 0)
5536 targType2cnt[1] = 0;
5544 for (int i = 0;i < 64;i++) {
5545 if(!MS.EGCdark.etValue2[i]) break;
5546 NSArray *array1 = [MS.EGCdark.etValue2[i] componentsSeparatedByString:@"["];
5547 NSArray *array2 = [[array1 objectAtIndex:1] componentsSeparatedByString:@","];
5549 int Tx = [[array2 objectAtIndex:0] intValue];
5550 int Ty = [[array2 objectAtIndex:1] intValue];
5552 if(MS.EGCdark.endType2 == 3){
5555 if(U->x == Tx && U->y == Ty){
5556 U->targType1D = true;
5557 if(targType1cnt[1] < 0)
5558 targType1cnt[1] = 0;
5565 if(MS.EGCdark.endType2 == 4){
5568 if(U->x == Tx && U->y == Ty){
5569 U->targType2D = true;
5570 if(targType2cnt[1] < 0)
5571 targType2cnt[1] = 0;
5586 -(void)setTargetList{
5588 targType1cnt[0] = -1;
5589 targType1cnt[1] = -1;
5590 targType2cnt[0] = -1;
5591 targType2cnt[1] = -1;
5592 targType2Lflag = false;
5593 targType2Dflag = false;
5596 MAPSCRIPT MS = MF[MFselectedRow+1].MS;
5600 for (int i = 0;i < 64;i++) {
5601 if(!MS.EGClight.etValue1[i] || [MS.EGClight.etValue1[i] isEqualToString:@""]) break;
5602 NSArray *array1 = [MS.EGClight.etValue1[i] componentsSeparatedByString:@"["];
5603 NSArray *array2 = [[array1 objectAtIndex:1] componentsSeparatedByString:@","];
5605 int Tx = [[array2 objectAtIndex:0] intValue];
5606 int Ty = [[array2 objectAtIndex:1] intValue];
5607 if(MS.EGClight.endType1 == 3){
5610 if(U->x == Tx && U->y == Ty){
5611 U->targType1L = true;
5612 if(targType1cnt[0] < 0)
5613 targType1cnt[0] = 0;
5620 if(MS.EGClight.endType1 == 4){
5623 if(U->x == Tx && U->y == Ty){
5624 U->targType2L = true;
5625 if(targType2cnt[0] < 0)
5626 targType2cnt[0] = 0;
5634 for (int i = 0;i < 64;i++) {
5635 if(!MS.EGClight.etValue2[i] || [MS.EGClight.etValue2[i] isEqualToString:@""]) break;
5636 NSArray *array1 = [MS.EGClight.etValue2[i] componentsSeparatedByString:@"["];
5637 NSArray *array2 = [[array1 objectAtIndex:1] componentsSeparatedByString:@","];
5639 int Tx = [[array2 objectAtIndex:0] intValue];
5640 int Ty = [[array2 objectAtIndex:1] intValue];
5642 if(MS.EGClight.endType2 == 3){
5645 if(U->x == Tx && U->y == Ty){
5646 U->targType1L = true;
5647 if(targType1cnt[0] < 0)
5648 targType1cnt[0] = 0;
5655 if(MS.EGClight.endType2 == 4){
5658 if(U->x == Tx && U->y == Ty){
5659 U->targType2L = true;
5660 if(targType2cnt[0] < 0)
5661 targType2cnt[0] = 0;
5669 for (int i = 0;i < 64;i++) {
5670 if(!MS.EGCdark.etValue1[i] || [MS.EGCdark.etValue1[i] isEqualToString:@""]) break;
5671 NSArray *array1 = [MS.EGCdark.etValue1[i] componentsSeparatedByString:@"["];
5672 NSArray *array2 = [[array1 objectAtIndex:1] componentsSeparatedByString:@","];
5674 int Tx = [[array2 objectAtIndex:0] intValue];
5675 int Ty = [[array2 objectAtIndex:1] intValue];
5677 if(MS.EGCdark.endType1 == 3){
5680 if(U->x == Tx && U->y == Ty){
5681 U->targType1D = true;
5682 if(targType1cnt[1] < 0)
5683 targType1cnt[1] = 0;
5690 if(MS.EGCdark.endType1 == 4){
5693 if(U->x == Tx && U->y == Ty){
5694 U->targType2D = true;
5695 if(targType2cnt[1] < 0)
5696 targType2cnt[1] = 0;
5704 for (int i = 0;i < 64;i++) {
5705 if(!MS.EGCdark.etValue2[i] || [MS.EGCdark.etValue2[i] isEqualToString:@""]) break;
5706 NSArray *array1 = [MS.EGCdark.etValue2[i] componentsSeparatedByString:@"["];
5707 NSArray *array2 = [[array1 objectAtIndex:1] componentsSeparatedByString:@","];
5709 int Tx = [[array2 objectAtIndex:0] intValue];
5710 int Ty = [[array2 objectAtIndex:1] intValue];
5712 if(MS.EGCdark.endType2 == 3){
5715 if(U->x == Tx && U->y == Ty){
5716 U->targType1D = true;
5717 if(targType1cnt[1] < 0)
5718 targType1cnt[1] = 0;
5725 if(MS.EGCdark.endType2 == 4){
5728 if(U->x == Tx && U->y == Ty){
5729 U->targType2D = true;
5730 if(targType2cnt[1] < 0)
5731 targType2cnt[1] = 0;
5747 -(bool)setBuildList{
5751 [self willChangeValueForKey:@"CResearchListMA"];
5752 [CResearchListMA removeAllObjects];
5753 [self didChangeValueForKey:@"CResearchListMA"];
5755 [researchATK setStringValue:[NSString stringWithFormat:@"攻撃力 ----"]];
5756 [researchDEF setStringValue:[NSString stringWithFormat:@"防御力 ----"]];
5757 [researchCAP setStringValue:[NSString stringWithFormat:@"演算力 ----"]];
5758 [researchACU setStringValue:[NSString stringWithFormat:@"命中値 ----"]];
5759 [researchEVA setStringValue:[NSString stringWithFormat:@"回避値 ----"]];
5760 [researchMOV setStringValue:[NSString stringWithFormat:@"移動力 ----"]];
5761 [researchIMG setImage:NULL];
5767 while (B && B->x != possionX && B->y != possionY) {
5770 B0 = &BC[buildNum[possionX][possionY]];
5778 if(buildTeam[possionX][possionY] == 0 || buildTeam[possionX][possionY] == 1){
5788 else if(buildTeam[possionX][possionY] == 2 || buildTeam[possionX][possionY] == 3){
5802 if(B->makeLv >= B0->R->Lv){
5803 NSMutableDictionary* dict = [NSMutableDictionary new];
5804 [dict setValue:[NSString stringWithFormat:@"%@", BU->nameClass] forKey:@"name"];
5805 [dict setValue:[NSString stringWithFormat:@"%g", BU->S_M.HP] forKey:@"HP"];
5806 [dict setValue:[NSString stringWithFormat:@"資%d 食%d 金%d", BU->S_M.cSupply, BU->S_M.cFood, BU->S_M.cMoney] forKey:@"cost"];
5807 [dict setValue:BU->img forKey:@"img"];
5810 [self willChangeValueForKey:@"CResearchListMA"];
5811 [CResearchListMA addObject:dict];
5812 [self didChangeValueForKey:@"CResearchListMA"];
5814 B0->R = B0->R->next;
5822 B = &BC[buildNum[possionX][possionY]];
5831 for(int i = 0;i <= crCRL && B->R;i++){
5834 [researchATK setStringValue:[NSString stringWithFormat:@"攻撃力 %g", BU->S_M.ATK]];
5835 [researchDEF setStringValue:[NSString stringWithFormat:@"防御力 %g", BU->S_M.DEF]];
5836 [researchCAP setStringValue:[NSString stringWithFormat:@"演算力 %g", BU->S_M.CAP]];
5837 [researchACU setStringValue:[NSString stringWithFormat:@"命中値 %g", BU->S_M.ACU]];
5838 [researchEVA setStringValue:[NSString stringWithFormat:@"回避値 %g", BU->S_M.EVA]];
5839 [researchMOV setStringValue:[NSString stringWithFormat:@"移動力 %d", BU->S_M.MOV]];
5840 [researchIMG setImage:BU->imgb];
5841 [researchIMG setImageScaling:NSScaleToFit];
5848 MAPSCRIPT MS = MF[MFselectedRow+1].MS;
5850 if(B->GuildFlag &&( buildTeam[possionX][possionY] == 0 || buildTeam[possionX][possionY] == 1)){
5852 int a = MS.guildListRegistNum12 - MS.guildListRegistNum11;
5857 Gnum1 = MS.guildListRegistNum11 + arc4random()%(MS.guildListRegistNum12 - MS.guildListRegistNum11+1);
5859 Gnum1 = MS.guildListRegistNum12;
5861 if(Gnum1 > GCnum1+1)
5866 saveGuildList = calloc((GCnum1+1), sizeof(int));
5867 if(!guildRE1) GuildDisp1 = calloc(Gnum1, sizeof(int));
5868 for(int i = 0;i < Gnum1;i++){
5871 n = [self chooseGuildList:GuildChosen1 gcnum:GCnum1];
5874 *(GuildDisp1 + i) = *(GuildChosen1 + n);
5877 if(*(GuildDisp1 + i) <= 0)
5880 NSMutableDictionary* dict = [NSMutableDictionary new];
5881 [dict setValue:[NSString stringWithFormat:@"%@", UC[*(GuildDisp1 + i)-1].name] forKey:@"name"];
5882 [dict setValue:[NSString stringWithFormat:@"%g", UC[*(GuildDisp1 + i)-1].S_M.HP] forKey:@"HP"];
5883 [dict setValue:[NSString stringWithFormat:@"資%d 食%d 金%d", UC[*(GuildDisp1 + i)-1].S_M.cSupply, UC[*(GuildDisp1 + i)-1].S_M.cFood, UC[*(GuildDisp1 + i)-1].S_M.cMoney] forKey:@"cost"];
5884 [dict setValue:UC[*(GuildDisp1 + i)-1].img forKey:@"img"];
5887 [self willChangeValueForKey:@"CResearchListMA"];
5888 [CResearchListMA addObject:dict];
5889 [self didChangeValueForKey:@"CResearchListMA"];
5903 for(int i = k;i <= crCRL;i++){
5904 if(*(GuildDisp1 + i - k) <= 0)
5907 [researchATK setStringValue:[NSString stringWithFormat:@"攻撃力 %g", UC[*(GuildDisp1 + i - k)-1].S_M.ATK]];
5908 [researchDEF setStringValue:[NSString stringWithFormat:@"防御力 %g", UC[*(GuildDisp1 + i - k)-1].S_M.DEF]];
5909 [researchCAP setStringValue:[NSString stringWithFormat:@"演算力 %g", UC[*(GuildDisp1 + i - k)-1].S_M.CAP]];
5910 [researchACU setStringValue:[NSString stringWithFormat:@"命中値 %g", UC[*(GuildDisp1 + i - k)-1].S_M.ACU]];
5911 [researchEVA setStringValue:[NSString stringWithFormat:@"回避値 %g", UC[*(GuildDisp1 + i - k)-1].S_M.EVA]];
5912 [researchMOV setStringValue:[NSString stringWithFormat:@"移動力 %d", UC[*(GuildDisp1 + i - k)-1].S_M.MOV]];
5913 [researchIMG setImage:UC[*(GuildDisp1 + i - k)-1].imgb];
5914 [researchIMG setImageScaling:NSScaleToFit];
5919 }else if(B->GuildFlag && (buildTeam[possionX][possionY] == 2 || buildTeam[possionX][possionY] == 3)){
5921 int a = MS.guildListRegistNum22 - MS.guildListRegistNum21;
5926 Gnum2 = MS.guildListRegistNum21 + arc4random()%(MS.guildListRegistNum22 - MS.guildListRegistNum21+1);
5928 Gnum2 = MS.guildListRegistNum22;
5930 if(Gnum2 > GCnum2+1)
5936 saveGuildList = calloc((GCnum2+1), sizeof(int));
5937 if(!guildRE2) GuildDisp2 = calloc(Gnum2, sizeof(int));
5938 for(int i = 0;i < Gnum2;i++){
5940 n = [self chooseGuildList:GuildChosen2 gcnum:GCnum2];
5943 *(GuildDisp2 + i) = *(GuildChosen2 + n);
5946 if(*(GuildDisp2 + i) <= 0)
5949 NSMutableDictionary* dict = [NSMutableDictionary new];
5950 [dict setValue:[NSString stringWithFormat:@"%@", UC[*(GuildDisp2 + i)-1].name] forKey:@"name"];
5951 [dict setValue:[NSString stringWithFormat:@"%g", UC[*(GuildDisp2 + i)-1].S_M.HP] forKey:@"HP"];
5952 [dict setValue:[NSString stringWithFormat:@"資%d 食%d 金%d", UC[*(GuildDisp2 + i)-1].S_M.cSupply, UC[*(GuildDisp2 + i)-1].S_M.cFood, UC[*(GuildDisp2 + i)-1].S_M.cMoney] forKey:@"cost"];
5953 [dict setValue:UC[*(GuildDisp2 + i)-1].img forKey:@"img"];
5956 [self willChangeValueForKey:@"CResearchListMA"];
5957 [CResearchListMA addObject:dict];
5958 [self didChangeValueForKey:@"CResearchListMA"];
5968 for(int i = k;i <= crCRL;i++){
5969 if(*(GuildDisp2 + i - k) <= 0)
5973 [researchATK setStringValue:[NSString stringWithFormat:@"攻撃力 %g", UC[*(GuildDisp2 + i - k)-1].S_M.ATK]];
5974 [researchDEF setStringValue:[NSString stringWithFormat:@"防御力 %g", UC[*(GuildDisp2 + i - k)-1].S_M.DEF]];
5975 [researchCAP setStringValue:[NSString stringWithFormat:@"演算力 %g", UC[*(GuildDisp2 + i - k)-1].S_M.CAP]];
5976 [researchACU setStringValue:[NSString stringWithFormat:@"命中値 %g", UC[*(GuildDisp2 + i - k)-1].S_M.ACU]];
5977 [researchEVA setStringValue:[NSString stringWithFormat:@"回避値 %g", UC[*(GuildDisp2 + i - k)-1].S_M.EVA]];
5978 [researchMOV setStringValue:[NSString stringWithFormat:@"移動力 %d", UC[*(GuildDisp2 + i - k)-1].S_M.MOV]];
5979 [researchIMG setImage:UC[*(GuildDisp2 + i - k)-1].imgb];
5980 [researchIMG setImageScaling:NSScaleToFit];
5997 -(int)chooseGuildList:(int*)value gcnum:(int)gcnum{
6001 bool sameFlag = false;
6002 bool sameFlag2 = false;
6004 if(guildc >= gcnum+1){
6009 a = arc4random()%(gcnum+1);
6011 for(int i = 0;i < guildc;i++){
6012 if(*(saveGuildList+i) == a){
6021 *(saveGuildList+guildc) = a;
6027 if([UC[*(value + a)-1].nameID isEqualToString:U->C.nameID]){
6042 -(void)initGuildList{
6044 MAPSCRIPT MS = MF[MFselectedRow+1].MS;
6046 GuildChosen1 = calloc(UCN, sizeof(int));
6047 GuildChosen2 = calloc(UCN, sizeof(int));
6050 for (int i = 0;i < UCN;i++) {
6051 if(MS.guildListRegist[i]){
6053 *(GuildChosen1 + GCnum1) = i+1;
6057 for (int i = 0;i < UCN;i++) {
6058 if(MS.guildListRegist2[i]){
6060 *(GuildChosen2 + GCnum2) = i+1;
6069 [self setCommandPanel];
6070 [menuPanel makeKeyAndOrderFront:nil];
6073 -(IBAction)pushMove:(id)sender{menuDisplayFlag = false;
6080 -(IBAction)pushAttack:(id)sender{menuDisplayFlag = false;
6084 windowPoint.x = [mapWindow frame].origin.x;
6085 windowPoint.y = [mapWindow frame].origin.y;
6086 [atkPanel setFrameOrigin:windowPoint];
6089 while (!(AUN[1] == U->number)) {
6093 if(U->chipNumberL >= 0){
6095 [self initCAttackList2];
6096 [self initCAttackSelect2];
6098 else if(U->chipNumber >= 0) {
6100 [self initCAttackList];
6101 [self initCAttackSelect];
6104 [atkPanel makeKeyAndOrderFront:nil];
6106 -(IBAction)pushStandby:(id)sender{menuDisplayFlag = false;
6110 while (U->number != wtUnitNum) {
6114 if(!wtMovedFlag && !wtAttackedFlag){
6115 U->C.S_C.WT = floor(U->C.S_M.WT/4 + 0.5);
6116 }else if(wtMovedFlag && wtAttackedFlag){
6117 U->C.S_C.WT = floor(U->C.S_M.WT + 0.5);
6118 }else if(wtMovedFlag){
6119 U->C.S_C.WT = floor(U->C.S_M.WT/2 + 0.5);
6120 }else if(wtAttackedFlag){
6121 U->C.S_C.WT = floor(U->C.S_M.WT/2 + 0.5);
6126 if(B->x == possionX && B->y == possionY && B->C.capture){
6127 buildCaptureFlag = true;
6128 unitMoveEndFlag = true;
6138 pushStanbyFlag = true;
6139 pussyLoopFlag = false;
6142 -(IBAction)pushCreate:(id)sender{menuDisplayFlag = false;
6147 windowPoint.x = [mapWindow frame].origin.x;
6148 windowPoint.y = [mapWindow frame].origin.y;
6149 [createPanel setFrameOrigin:windowPoint];
6151 wtAttackedFlag = true;
6153 [self initBCreateList];
6154 [createPanel makeKeyAndOrderFront:nil];
6157 -(IBAction)pushSummon:(id)sender{menuDisplayFlag = false;
6162 windowPoint.x = [mapWindow frame].origin.x;
6163 windowPoint.y = [mapWindow frame].origin.y;
6164 [summonPanel setFrameOrigin:windowPoint];
6166 wtAttackedFlag = true;
6168 [self initCSummonList];
6169 [summonPanel makeKeyAndOrderFront:nil];
6174 -(void)initStatusWindow{
6178 [STIV setImage:Uselected->C.imgb];
6179 [STIV setImageScaling:NSScaleToFit];
6180 [STnameTF setStringValue:Uselected->C.name];
6181 [STclassTF setStringValue:Uselected->C.nameClass];
6182 [SThpTF setStringValue:[NSString stringWithFormat:@"HP %g/%g", Uselected->C.S_C.HP, Uselected->C.S_M.HP]];
6183 [STmpTF setStringValue:[NSString stringWithFormat:@"MP %g/%g", Uselected->C.S_C.MP, Uselected->C.S_M.MP]];
6184 [STatkTF setStringValue:[NSString stringWithFormat:@"ATK %g", Uselected->C.S_C.ATK]];
6185 [STdefTF setStringValue:[NSString stringWithFormat:@"DEF %g", Uselected->C.S_C.DEF]];
6186 [STcapTF setStringValue:[NSString stringWithFormat:@"CAP %g", Uselected->C.S_C.CAP]];
6187 [STacuTF setStringValue:[NSString stringWithFormat:@"ACU %g", Uselected->C.S_C.ACU]];
6188 [STevaTF setStringValue:[NSString stringWithFormat:@"EVA %g", Uselected->C.S_C.EVA]];
6189 [STstrTF setStringValue:[NSString stringWithFormat:@"STR %g", Uselected->C.S_C.STR]];
6190 [STvitTF setStringValue:[NSString stringWithFormat:@"VIT %g", Uselected->C.S_C.VIT]];
6191 [STagiTF setStringValue:[NSString stringWithFormat:@"AGI %g", Uselected->C.S_C.AGI]];
6192 [STdexTF setStringValue:[NSString stringWithFormat:@"DEX %g", Uselected->C.S_C.DEX]];
6193 [STmenTF setStringValue:[NSString stringWithFormat:@"MEN %g", Uselected->C.S_C.MEN]];
6194 [STintTF setStringValue:[NSString stringWithFormat:@"INT %g", Uselected->C.S_C.INT]];
6195 [STmelTF setStringValue:[NSString stringWithFormat:@"MEL %g", Uselected->C.S_C.MEL]];
6196 [STmisTF setStringValue:[NSString stringWithFormat:@"MIS %g", Uselected->C.S_C.MIS]];
6197 [SThitTF setStringValue:[NSString stringWithFormat:@"HIT %g", Uselected->C.S_C.HIT]];
6198 [STdodTF setStringValue:[NSString stringWithFormat:@"DOD %g", Uselected->C.S_C.DOD]];
6199 [STreaTF setStringValue:[NSString stringWithFormat:@"REA %g", Uselected->C.S_C.REA]];
6200 [STskiTF setStringValue:[NSString stringWithFormat:@"SKI %g", Uselected->C.S_C.SKI]];
6201 [STvigTF setStringValue:[NSString stringWithFormat:@"VIG %d", Uselected->C.S_C.vigor]];
6205 [self willChangeValueForKey:@"STequipListMA"];
6206 [STequipListMA removeAllObjects];
6207 [self didChangeValueForKey:@"STequipListMA"];
6209 if(Uselected->C.eHandRflag) {
6210 NSMutableDictionary* dict = [NSMutableDictionary new];
6211 [dict setValue:[NSString stringWithFormat:@"%@", Uselected->C.eHandR.name] forKey:@"name"];
6212 [self willChangeValueForKey:@"STequipListMA"];
6213 [STequipListMA addObject:dict];
6214 [self didChangeValueForKey:@"STequipListMA"];
6216 if(Uselected->C.eHandLflag) {
6217 NSMutableDictionary* dict = [NSMutableDictionary new];
6218 [dict setValue:[NSString stringWithFormat:@"%@", Uselected->C.eHandL.name] forKey:@"name"];
6219 [self willChangeValueForKey:@"STequipListMA"];
6220 [STequipListMA addObject:dict];
6221 [self didChangeValueForKey:@"STequipListMA"];
6223 if(Uselected->C.eHeadflag) {
6224 NSMutableDictionary* dict = [NSMutableDictionary new];
6225 [dict setValue:[NSString stringWithFormat:@"%@", Uselected->C.eHead.name] forKey:@"name"];
6226 [self willChangeValueForKey:@"STequipListMA"];
6227 [STequipListMA addObject:dict];
6228 [self didChangeValueForKey:@"STequipListMA"];
6230 if(Uselected->C.eBodyflag) {
6231 NSMutableDictionary* dict = [NSMutableDictionary new];
6232 [dict setValue:[NSString stringWithFormat:@"%@", Uselected->C.eBody.name] forKey:@"name"];
6233 [self willChangeValueForKey:@"STequipListMA"];
6234 [STequipListMA addObject:dict];
6235 [self didChangeValueForKey:@"STequipListMA"];
6237 if(Uselected->C.eFootflag) {
6238 NSMutableDictionary* dict = [NSMutableDictionary new];
6239 [dict setValue:[NSString stringWithFormat:@"%@", Uselected->C.eFoot.name] forKey:@"name"];
6240 [self willChangeValueForKey:@"STequipListMA"];
6241 [STequipListMA addObject:dict];
6242 [self didChangeValueForKey:@"STequipListMA"];
6244 if(Uselected->C.eArmflag) {
6245 NSMutableDictionary* dict = [NSMutableDictionary new];
6246 [dict setValue:[NSString stringWithFormat:@"%@", Uselected->C.eArm.name] forKey:@"name"];
6247 [self willChangeValueForKey:@"STequipListMA"];
6248 [STequipListMA addObject:dict];
6249 [self didChangeValueForKey:@"STequipListMA"];
6257 -(IBAction)pushStatus:(id)sender{menuDisplayFlag = false;
6259 [self initStatusWindow];
6261 windowPoint.x = [mapWindow frame].origin.x;
6262 windowPoint.y = [mapWindow frame].origin.y;
6263 [STwindow setFrameOrigin:windowPoint];
6264 [STwindow makeKeyAndOrderFront:nil];
6271 -(IBAction)STsubmit:(id)sender{
6276 -(IBAction)pushCancel:(id)sender{menuDisplayFlag = false;
6282 -(IBAction)pushCancelCAL:(id)sender{
6284 wtAttackedFlag = false;
6288 -(IBAction)pushCancelBCL:(id)sender{
6290 wtAttackedFlag = false;
6291 [createPanel close];
6294 -(IBAction)pushCancelCSL:(id)sender{
6296 wtAttackedFlag = false;
6297 [summonPanel close];
6300 -(void)addBuildStatus{
6305 if(registerNumB == 1){
6306 B = calloc(1, sizeof(BUILD));
6313 while (B->next) {omgCnt++;
6316 if(registerNumB != 1){
6317 B->next = calloc(1, sizeof(BUILD));
6318 if(registerNumB == 2)
6324 B->number = registerNumB;
6327 B->chipNumber = BC[buildNum[possionX][possionY]].chipNumb;
6330 B->C = BC[buildNum[possionX][possionY]];
6331 B->img = [BC[buildNum[possionX][possionY]].img retain];
6332 unitColorInitFlag = true;
6334 if(buildTeam[possionX][possionY] == 0 || buildTeam[possionX][possionY] == 1){
6336 if(unitTeam[possionX][possionY] == 0){
6337 U->joinArmyFromNext = true;
6338 U->persuasion = true;
6341 if(buildTeam[possionX][possionY] == 2 || buildTeam[possionX][possionY] == 3){
6344 if(buildTeam[possionX][possionY] == 4 || buildTeam[possionX][possionY] == 5){
6347 if(buildTeam[possionX][possionY] == -1){
6356 -(void)addUnitStatus{
6360 while (U->next) {omgCnt++;
6363 U->next = calloc(1, sizeof(UNIT));
6366 if(omgCnt == 0) U = UTop;
6367 U->number = registerNum;
6369 for(int i = 0;i < UCN;i++){
6370 if([U->C.nameID isEqualToString:UC[i].nameID])
6374 U->chipNumber = unitNum[possionX][possionY];
6375 U->chipNumberL = loadNum[possionX][possionY];
6376 U->C.chipNumb = unitNum[possionX][possionY];
6377 U->CL.chipNumb = loadNum[possionX][possionY];
6381 if(unitTeam[possionX][possionY] == 0 || unitTeam[possionX][possionY] == 1){
6383 if(unitTeam[possionX][possionY] == 1){
6384 U->joinArmyFromNext = true;
6385 U->persuasion = true;
6388 if(MF[MFselectedRow+1].MS.playerSet1 == 2){
6392 if(unitTeam[possionX][possionY] == 2 || unitTeam[possionX][possionY] == 3){
6394 if(unitTeam[possionX][possionY] == 3){
6395 U->joinArmyFromNext = true;
6396 U->persuasion = true;
6399 if(MF[MFselectedRow+1].MS.playerSet2 == 2){
6403 if(unitTeam[possionX][possionY] == 4 || unitTeam[possionX][possionY] == 5){
6405 if(unitTeam[possionX][possionY] == 5){
6406 U->joinArmyFromNext = true;
6407 U->persuasion = true;
6411 if(unitTeam[possionX][possionY] == -1){
6413 if(unitTeam[possionX][possionY] == 0){
6414 U->joinArmyFromNext = false;
6415 U->persuasion = true;
6421 [self SetUnitStatus:unitNum[possionX][possionY]];
6425 -(void)addSummonStatus{
6429 while (U->next) {omgCnt++;
6432 U->next = calloc(1, sizeof(UNIT));
6435 if(omgCnt == 0) U = UTop;
6437 U->chipNumber = unitNum[possionX][possionY];
6438 U->chipNumberL = -1;
6442 U->number = registerNum;
6445 if(unitTeam[CSLU->x][CSLU->y] == 0 || unitTeam[CSLU->x][CSLU->y] == 1){
6447 if(unitTeam[CSLU->x][CSLU->y] == 1){
6448 U->joinArmyFromNext = true;
6449 U->persuasion = true;
6452 if(unitTeam[CSLU->x][CSLU->y] == 2 || unitTeam[CSLU->x][CSLU->y] == 3){
6454 if(unitTeam[CSLU->x][CSLU->y] == 3){
6455 U->joinArmyFromNext = true;
6456 U->persuasion = true;
6459 if(unitTeam[CSLU->x][CSLU->y] == 4 || unitTeam[CSLU->x][CSLU->y] == 5){
6461 if(unitTeam[CSLU->x][CSLU->y] == 5){
6462 U->joinArmyFromNext = true;
6463 U->persuasion = true;
6466 if(unitTeam[CSLU->x][CSLU->y] == -1){
6468 if(unitTeam[CSLU->x][CSLU->y] == 0){
6469 U->joinArmyFromNext = false;
6470 U->persuasion = true;
6474 [self SetUnitStatus:unitNum[possionX][possionY]];
6476 for(int i = 0;i < UCN;i++){
6477 if([U->C.nameID isEqualToString:UC[i].nameID])
6480 for(int i = 0;i < LCN;i++){
6481 if([U->CL.nameID isEqualToString:LC[i].nameID])
6484 for(int i = 0;i < UCN;i++){
6485 if([U->C.nameID isEqualToString:UC[i].nameID])
6488 for(int i = 0;i < LCN;i++){
6489 if([U->CL.nameID isEqualToString:LC[i].nameID])
6497 -(void)initUnitStatusDat{
6500 for(int i = 0;i < sdd2[datRow].registerNum;i++){
6502 U = calloc(1, sizeof(UNIT));
6508 U->x = sdd2[datRow].dU[i].x;
6509 U->y = sdd2[datRow].dU[i].y;
6510 U->number = sdd2[datRow].dU[i].number;;
6511 U->chipNumber = sdd2[datRow].dU[i].chipNumber;
6512 U->chipNumberL = sdd2[datRow].dU[i].chipNumberL;
6513 U->C.chipNumb = sdd2[datRow].dU[i].C.chipNumb;
6514 U->CL.chipNumb = sdd2[datRow].dU[i].C.chipNumb;
6516 U->dead = sdd2[datRow].dU[i].dead;
6518 U->team = sdd2[datRow].dU[i].team;
6519 U->CPU = sdd2[datRow].dU[i].CPU;
6520 U->joinArmyFromNext = sdd2[datRow].dU[i].joinArmyFromNext;
6521 U->persuasion = sdd2[datRow].dU[i].persuasion;
6523 U->ix = sdd2[datRow].dU[i].ix;
6524 U->iy = sdd2[datRow].dU[i].iy;
6525 U->iz = sdd2[datRow].dU[i].iz;
6529 if(U->chipNumber >= 0) [self SetUnitStatus:U->chipNumber];
6530 if(U->chipNumberL >= 0) [self SetUnitStatus2:U->chipNumberL];
6532 U->C.S_C = sdd2[datRow].dU[i].C.S_C;
6533 U->C.R_C = sdd2[datRow].dU[i].C.R_C;
6535 if(U->chipNumberL >= 0) U->img = [LC[U->chipNumberL].img retain];
6536 else U->img = [UC[U->chipNumber].img retain];
6539 unitTeam[U->x][U->y] = U->team;
6540 unitNum[U->x][U->y] = U->chipNumber;
6541 loadNum[U->x][U->y] = U->chipNumberL;
6544 U->next = calloc(1, sizeof(UNIT));
6547 if(U) U->next = NULL;
6553 -(void)initUnitStatus{
6557 for(int i=1;i <= chipHeight;i++){
6558 for(int j=1;j<= chipWidth;j++){
6559 if(unitNum[j][i] >= 0 || loadNum[j][i] >= 0){
6561 if(registerNum == 1){
6562 U = calloc(1, sizeof(UNIT));
6569 U->number = registerNum;
6570 U->chipNumber = unitNum[j][i];
6571 U->chipNumberL = loadNum[j][i];
6572 U->C.chipNumb = U->chipNumber;
6573 U->CL.chipNumb = U->chipNumberL;
6575 if(unitTeam[j][i] == 0 || unitTeam[j][i] == 1){
6577 if(unitTeam[j][i] == 1){
6578 U->joinArmyFromNext = true;
6579 U->persuasion = true;
6581 if(MF[MFselectedRow+1].MS.playerSet1 == 2)
6584 if(unitTeam[j][i] == 2 || unitTeam[j][i] == 3){
6586 if(unitTeam[i][j] == 2){
6587 U->joinArmyFromNext = true;
6588 U->persuasion = true;
6590 if(MF[MFselectedRow+1].MS.playerSet2 == 2)
6593 if(unitTeam[j][i] == 4 || unitTeam[j][i] == 5){
6595 if(unitTeam[j][i] == 5){
6596 U->joinArmyFromNext = true;
6597 U->persuasion = true;
6601 if(unitTeam[j][i] == -1){
6603 if(unitTeam[j][i] == -1){
6604 U->joinArmyFromNext = false;
6605 U->persuasion = true;
6609 if(unitNum[j][i] >= 0) [self SetUnitStatus:unitNum[j][i]];
6610 if(loadNum[j][i] >= 0) [self SetUnitStatus2:loadNum[j][i]];
6612 U->next = calloc(1, sizeof(UNIT));
6623 if(Ucrnt->x == U->x && Ucrnt->y == U->y){
6635 if(U) U->next = NULL;
6640 -(void)initBuildStatusDat{
6643 for(int i = 0;i < sdd2[datRow].registerNumB;i++){
6645 B = calloc(1, sizeof(BUILD));
6651 B->x = sdd2[datRow].dB[i].x;
6652 B->y = sdd2[datRow].dB[i].y;
6653 B->team = sdd2[datRow].dB[i].team;
6654 B->number = sdd2[datRow].dB[i].number;
6655 B->chipNumber = sdd2[datRow].dB[i].chipNumber;
6656 B->makeLv = sdd2[datRow].dB[i].makeLv;
6657 B->dead = sdd2[datRow].dB[i].dead;
6659 B->C = BC[B->chipNumber];
6660 B->C.S_C = sdd2[datRow].dB[i].C.S_C;
6662 B->img = [BC[B->chipNumber].img retain];
6664 buildTeam[B->x][B->y] = B->team;
6665 buildNum[B->x][B->y] = B->chipNumber;
6667 B->next = calloc(1, sizeof(BUILD));
6669 if(B) B->next = NULL;
6675 -(void)initBuildStatus{
6678 for(int i=1;i <= chipHeight;i++){
6679 for(int j=1;j<= chipWidth;j++){
6680 if(buildNum[j][i] >= 0){
6682 if(registerNumB == 1){
6683 B = calloc(1, sizeof(BUILD));
6686 if(registerNumB > 1)
6690 B->number = registerNumB;
6691 B->chipNumber = buildNum[j][i];
6693 if(buildTeam[j][i] == 0 || buildTeam[j][i] == 1){
6697 if(buildTeam[j][i] == 2 || buildTeam[j][i] == 3){
6701 if(buildTeam[j][i] == 4 || buildTeam[j][i] == 5){
6705 if(buildTeam[j][i] == -1){
6709 //[self SetUnitStatus:unitNum[j][i]];
6711 B->C = BC[buildNum[j][i]];
6713 B->next = calloc(1, sizeof(BUILD));
6719 if(B) B->next = NULL;
6724 -(void)SetUnitStatus:(int)UN{
6727 U->C.S_C.vigor = 100;
6734 AtopE1 = UC[UN].eHandL.A;
6735 AtopE2 = UC[UN].eHandR.A;
6736 U->C.A = calloc(1, sizeof(ATTACK));
6742 while(UC[UN].eHandR.A != NULL){ow1 = true;
6743 *U->C.A = *UC[UN].eHandR.A;
6744 U->C.A->next = calloc(1, sizeof(ATTACK));
6745 U->C.A->next->next = NULL;
6746 if(UC[UN].eHandR.A->next != NULL) U->C.A = U->C.A->next;
6747 UC[UN].eHandR.A = UC[UN].eHandR.A->next;
6748 U->C.attackListNum++;
6750 UC[UN].eHandR.A = AtopE2;
6754 U->C.A = U->C.A->next;
6757 while(UC[UN].eHandL.A != NULL){ow2 = true;
6758 *U->C.A = *UC[UN].eHandL.A;
6759 U->C.A->next = calloc(1, sizeof(ATTACK));
6760 U->C.A->next->next = NULL;
6761 if(UC[UN].eHandL.A->next != NULL) U->C.A = U->C.A->next;
6762 UC[UN].eHandL.A = UC[UN].eHandL.A->next;
6763 U->C.attackListNum++;
6765 UC[UN].eHandL.A = AtopE1;
6768 U->C.A = U->C.A->next;
6771 while(UC[UN].A != NULL){
6772 *U->C.A = *UC[UN].A;
6773 U->C.A->next = calloc(1, sizeof(ATTACK));
6774 U->C.A->next->next = NULL;
6775 if(UC[UN].A->next != NULL) U->C.A = U->C.A->next;
6776 UC[UN].A = UC[UN].A->next;
6778 U->C.A->next = NULL;
6781 if(U->C.A) if(!U->C.A->name)
6786 -(void)SetUnitStatus2:(int)UN{
6793 U->CL.A = calloc(1, sizeof(ATTACK));
6795 while(LC[UN].A != NULL){
6796 *U->CL.A = *LC[UN].A;
6797 U->CL.A->next = calloc(1, sizeof(ATTACK));
6798 U->CL.A->next->next = NULL;
6799 if(LC[UN].A->next != NULL) U->CL.A = U->CL.A->next;
6800 LC[UN].A = LC[UN].A->next;
6802 U->CL.A->next = NULL;
6809 -(void)initCAttackList2{
6812 CAttackListMA = [NSMutableArray new];
6814 [self willChangeValueForKey:@"CAttackListMA"];
6815 [CAttackListMA removeAllObjects];
6816 [self didChangeValueForKey:@"CAttackListMA"];
6819 if(!battleSet2PushedFlag){
6821 while (!(AUN[1] == U->number)) {
6825 for(int i = 0;i < U->CL.attackListNum;i++){
6827 NSMutableDictionary* dict = [NSMutableDictionary new];
6828 [dict setValue:[NSString stringWithFormat:@"%@", U->CL.A->name] forKey:@"name"];
6829 [dict setValue:[NSString stringWithFormat:@"%g", U->CL.A->totalD] forKey:@"atk"];
6830 if(U->CL.A->rangeA != U->CL.A->rangeB){
6831 [dict setValue:[NSString stringWithFormat:@"%d-%d", U->CL.A->rangeA, U->CL.A->rangeB] forKey:@"range"];
6833 [dict setValue:[NSString stringWithFormat:@"%d", U->CL.A->rangeA] forKey:@"range"];
6835 [dict setValue:[NSString stringWithFormat:@"%d", U->CL.A->hitPercent] forKey:@"hit"];
6836 //[dict setValue:[NSString stringWithFormat:@"%d", U->C.A->bulletC] forKey:@"bullet"];
6838 [self willChangeValueForKey:@"CAttackListMA"];
6839 [CAttackListMA addObject:dict];
6840 [self didChangeValueForKey:@"CAttackListMA"];
6842 U->CL.A = U->CL.A->next;
6848 while (!(DUN[1] == U->number)) {
6852 for(int i = 0;i < U->CL.attackListNum;i++){
6855 U->CL.attackListNum = i;
6858 NSMutableDictionary* dict = [NSMutableDictionary new];
6859 [dict setValue:[NSString stringWithFormat:@"%@", U->CL.A->name] forKey:@"name"];
6860 [dict setValue:[NSString stringWithFormat:@"%g", U->CL.A->totalD] forKey:@"atk"];
6861 if(U->CL.A->rangeA != U->CL.A->rangeB){
6862 [dict setValue:[NSString stringWithFormat:@"%d-%d", U->CL.A->rangeA, U->CL.A->rangeB] forKey:@"range"];
6864 [dict setValue:[NSString stringWithFormat:@"%d", U->CL.A->rangeA] forKey:@"range"];
6866 [dict setValue:[NSString stringWithFormat:@"%d", U->CL.A->hitPercent] forKey:@"hit"];
6867 //[dict setValue:[NSString stringWithFormat:@"%d", U->C.A->bulletC] forKey:@"bullet"];
6869 [self willChangeValueForKey:@"CAttackListMA"];
6870 [CAttackListMA addObject:dict];
6871 [self didChangeValueForKey:@"CAttackListMA"];
6873 U->CL.A = U->CL.A->next;
6881 [CAttackListAC setSelectionIndex:crCAL];
6883 [self initCAttackSelect2];
6890 -(void)initCAttackList{
6892 CAttackListMA = [NSMutableArray new];
6894 [self willChangeValueForKey:@"CAttackListMA"];
6895 [CAttackListMA removeAllObjects];
6896 [self didChangeValueForKey:@"CAttackListMA"];
6899 if(!battleSet2PushedFlag){
6901 while (!(AUN[1] == U->number)) {
6905 for(int i = 0;i < U->C.attackListNum;i++){
6907 U->C.attackListNum = i;
6910 NSMutableDictionary* dict = [NSMutableDictionary new];
6911 [dict setValue:[NSString stringWithFormat:@"%@", U->C.A->name] forKey:@"name"];
6912 [dict setValue:[NSString stringWithFormat:@"%g", U->C.A->totalD] forKey:@"atk"];
6913 if(U->C.A->rangeA != U->C.A->rangeB){
6914 [dict setValue:[NSString stringWithFormat:@"%d-%d", U->C.A->rangeA, U->C.A->rangeB] forKey:@"range"];
6916 [dict setValue:[NSString stringWithFormat:@"%d", U->C.A->rangeA] forKey:@"range"];
6918 [dict setValue:[NSString stringWithFormat:@"%d", U->C.A->hitPercent] forKey:@"hit"];
6919 //[dict setValue:[NSString stringWithFormat:@"%d", U->C.A->bulletC] forKey:@"bullet"];
6921 [self willChangeValueForKey:@"CAttackListMA"];
6922 [CAttackListMA addObject:dict];
6923 [self didChangeValueForKey:@"CAttackListMA"];
6925 U->C.A = U->C.A->next;
6932 while (!(DUN[1] == U->number)) {
6936 for(int i = 0;i < U->C.attackListNum;i++){
6937 NSMutableDictionary* dict = [NSMutableDictionary new];
6938 [dict setValue:[NSString stringWithFormat:@"%@", U->C.A->name] forKey:@"name"];
6939 [dict setValue:[NSString stringWithFormat:@"%g", U->C.A->totalD] forKey:@"atk"];
6940 if(U->C.A->rangeA != U->C.A->rangeB){
6941 [dict setValue:[NSString stringWithFormat:@"%d-%d", U->C.A->rangeA, U->C.A->rangeB] forKey:@"range"];
6943 [dict setValue:[NSString stringWithFormat:@"%d", U->C.A->rangeA] forKey:@"range"];
6945 [dict setValue:[NSString stringWithFormat:@"%d", U->C.A->hitPercent] forKey:@"hit"];
6946 //[dict setValue:[NSString stringWithFormat:@"%d", U->C.A->bulletC] forKey:@"bullet"];
6948 [self willChangeValueForKey:@"CAttackListMA"];
6949 [CAttackListMA addObject:dict];
6950 [self didChangeValueForKey:@"CAttackListMA"];
6952 U->C.A = U->C.A->next;
6960 [CAttackListAC setSelectionIndex:crCAL];
6962 [self initCAttackSelect];
6965 -(void)initBCreateList{
6966 BCreateListMA = [NSMutableArray new];
6968 [self willChangeValueForKey:@"BCreateListMA"];
6969 [BCreateListMA removeAllObjects];
6970 [self didChangeValueForKey:@"BCreateListMA"];
6971 buildSkillFlag = false;
6975 while (!(AUN[1] == U->number)) {
6983 while (U->C.S->type != 1 && U->C.S->next) {
6984 U->C.S = U->C.S->next;
6986 if(U->C.S->type != 1) {
6991 for(int i = 0;U->C.S->list[i] > 0;i++){
6992 NSMutableDictionary* dict = [NSMutableDictionary new];
6993 [dict setValue:[NSString stringWithFormat:@"%@", BC[U->C.S->list[i]-1].name] forKey:@"name"];
6994 [dict setValue:[NSString stringWithFormat:@"資%d 食%d 金%d",
6995 BC[U->C.S->list[i]-1].Csupply, BC[U->C.S->list[i]-1].Cfood, BC[U->C.S->list[i]-1].Cmoney] forKey:@"cost"];
6996 [dict setValue:BC[U->C.S->list[i]-1].img forKey:@"img"];
6998 [self willChangeValueForKey:@"BCreateListMA"];
6999 [BCreateListMA addObject:dict];
7000 [self didChangeValueForKey:@"BCreateListMA"];
7002 buildSkillFlag = true;
7008 -(void)initCSummonList{
7009 CSummonListMA = [NSMutableArray new];
7011 [self willChangeValueForKey:@"CSummonListMA"];
7012 [CSummonListMA removeAllObjects];
7013 [self didChangeValueForKey:@"CSummonListMA"];
7015 summonSkillFlag = false;
7019 while (!(AUN[1] == U->number)) {
7027 while (U->C.S->type != 2 && U->C.S->next) {
7028 U->C.S = U->C.S->next;
7030 if(U->C.S->type != 2) {
7035 for(int i = 0;U->C.S->list[i] > 0;i++){
7036 NSMutableDictionary* dict = [NSMutableDictionary new];
7037 [dict setValue:[NSString stringWithFormat:@"%@", UC[U->C.S->list[i]-1].nameClass] forKey:@"name"];
7038 [dict setValue:[NSString stringWithFormat:@"%g", UC[U->C.S->list[i]-1].S_M.HP] forKey:@"HP"];
7039 [dict setValue:[NSString stringWithFormat:@"%g", U->C.S->cost[i]] forKey:@"cost"];
7040 [dict setValue:UC[U->C.S->list[i]-1].img forKey:@"img"];
7042 [self willChangeValueForKey:@"CSummonListMA"];
7043 [CSummonListMA addObject:dict];
7044 [self didChangeValueForKey:@"CSummonListMA"];
7046 summonSkillFlag = true;
7054 -(void)AttackDisplay{
7056 if(battleRdy) return;
7057 if(!battleSetUp) return;
7058 if(!fuckingLoadBugFix) return;
7061 while (!(AUN[1] == U->number)) {
7064 [bplayer1 setImage:U->C.imgb];
7065 [bplayer1 setImageScaling:NSScaleToFit];
7066 [nplayer1 setStringValue:U->C.nameNick];
7067 [tplayer1 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->C.S_C.HP, U->C.S_M.HP]];
7068 [lplayer1 setIntValue:U->C.S_C.HP/U->C.S_M.HP*100];
7069 [iplayer1 setImage:MC[chipNum[U->x][U->y]].img];
7070 [mplayer1 setStringValue:MC[chipNum[U->x][U->y]].name];
7071 [rplayer1 setStringValue:[NSString stringWithFormat:@"地形効果 %d%", MC[chipNum[U->x][U->y]].dmgfix]];
7077 while (!(DUN[1] == U->number)) {
7080 [bplayer2 setImage:U->C.imgb];
7081 [bplayer1 setImageScaling:NSScaleToFit];
7082 [nplayer2 setStringValue:U->C.nameNick];
7083 [tplayer2 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->C.S_C.HP, U->C.S_M.HP]];
7084 [lplayer2 setIntValue:U->C.S_C.HP/U->C.S_M.HP*100];
7085 [iplayer2 setImage:MC[chipNum[U->x][U->y]].img];
7086 [mplayer2 setStringValue:MC[chipNum[U->x][U->y]].name];
7087 [rplayer2 setStringValue:[NSString stringWithFormat:@"地形効果 %d%", MC[chipNum[U->x][U->y]].dmgfix]];
7090 [self AttackDisplay2];
7093 [battleDialog setStringValue:@"攻撃開始!!!!"];
7099 -(void)AttackDisplay2{
7103 while (!(DUN[1] == U->number)) {
7108 while (!(AUN[1] == U->number)) {
7113 if(U->chipNumberL >= 0 && U2->chipNumberL >= 0){U = UTop;
7116 while (!(AUN[1] == U->number)) {
7119 [bplayer1 setImage:U->CL.imgb];
7120 [bplayer1 setImageScaling:NSScaleToFit];
7121 [nplayer1 setStringValue:U->CL.name];
7122 [tplayer1 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
7123 [lplayer1 setIntValue:U->CL.S_C.HP/U->CL.S_M.HP*100];
7129 while (!(DUN[1] == U->number)) {
7132 [bplayer2 setImage:U->CL.imgb];
7133 [bplayer1 setImageScaling:NSScaleToFit];
7134 [nplayer2 setStringValue:U->CL.name];
7135 [tplayer2 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
7136 [lplayer2 setIntValue:U->CL.S_C.HP/U->CL.S_M.HP*100];
7140 }else if(U->chipNumberL >= 0 && U2->chipNumberL < 0){U = UTop;
7142 while (!(AUN[1] == U->number)) {
7145 [bplayer1 setImage:U->CL.imgb];
7146 [bplayer1 setImageScaling:NSScaleToFit];
7147 [nplayer1 setStringValue:U->CL.name];
7148 [tplayer1 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
7149 [lplayer1 setIntValue:U->CL.S_C.HP/U->CL.S_M.HP*100];
7155 while (!(DUN[1] == U->number)) {
7158 [bplayer2 setImage:U->C.imgb];
7159 [bplayer1 setImageScaling:NSScaleToFit];
7160 [nplayer2 setStringValue:U->C.name];
7161 [tplayer2 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->C.S_C.HP, U->C.S_M.HP]];
7162 [lplayer2 setIntValue:U->C.S_C.HP/U->C.S_M.HP*100];
7168 }else if(U->chipNumberL < 0 && U2->chipNumberL >= 0){U = UTop;
7170 while (!(AUN[1] == U->number)) {
7173 [bplayer1 setImage:U->C.imgb];
7174 [bplayer1 setImageScaling:NSScaleToFit];
7175 [nplayer1 setStringValue:U->C.name];
7176 [tplayer1 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->C.S_C.HP, U->C.S_M.HP]];
7177 [lplayer1 setIntValue:U->C.S_C.HP/U->C.S_M.HP*100];
7183 while (!(DUN[1] == U->number)) {
7186 [bplayer2 setImage:U->CL.imgb];
7187 [bplayer1 setImageScaling:NSScaleToFit];
7188 [nplayer2 setStringValue:U->CL.name];
7189 [tplayer2 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
7190 [lplayer2 setIntValue:U->CL.S_C.HP/U->CL.S_M.HP*100];
7198 -(bool)sortEcheck:(ATTACK*)AT opponent:(UNIT*)UT{
7200 if(AT->riku == FIELD_TYPE_E && UT->C.S_C.typeMOVE == MOVE_TYPE_RIKU)
7202 if(AT->umi == FIELD_TYPE_E && UT->C.S_C.typeMOVE == MOVE_TYPE_UMI)
7204 if(AT->chu == FIELD_TYPE_E && UT->C.S_C.typeMOVE == MOVE_TYPE_CHU)
7206 if(AT->sora == FIELD_TYPE_E && UT->C.S_C.typeMOVE == MOVE_TYPE_SORA)
7214 -(void)setBattlePanel{
7218 if(DUN[1] <= 0 || AUN[1] <= 0)
7221 while (!(DUN[1] == U->number)) {
7226 while (!(AUN[1] == U->number)) {
7230 if(U->chipNumberL >= 0 && U2->chipNumberL >= 0){
7232 [self setBattlePanelT2];
7234 }else if(U->chipNumberL >= 0 && U2->chipNumberL <= 0){
7236 [self setBattlePanelT3];
7238 }else if(U->chipNumberL <= 0 && U2->chipNumberL >= 0){
7240 [self setBattlePanelT4];
7245 while (!(AUN[1] == U->number)) {
7249 if(cpuModeBATTLEflag && (MF[MFselectedRow+1].MS.playerSet1 == 2 || MF[MFselectedRow+1].MS.playerSet2 == 2)){
7250 cpuModeBATTLEflag = false;
7256 ATTACK *aTop2 = U->C.A;
7268 double urSupposedToGet;
7270 if(U->C.A) urSupposedToGet = pow(8, log(3+U->C.A->totalD/16));
7274 if(U2) asItIs = 1/log(3+U2->C.S_C.DEF/64);
7277 double oopsIsRight = 0;
7281 oopsIsRight = U->C.S_C.MEL;
7283 oopsIsRight = U->C.S_C.MIS;
7285 oopsIsRight = oopsIsRight/100;
7287 mpCost = U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5;
7289 if(!U2->C.aura && U->C.A->D){
7290 if(U->C.A->D->type == 0) mostDmg2 = ((U->C.S_C.ATK*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7291 - U2->C.S_C.DEF*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7292 if(U->C.A->D->type == 1) mostDmg2 = ((U->C.S_C.DEF*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7293 - U2->C.S_C.ATK*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7294 if(U->C.A->D->type == 2) mostDmg2 = ((U->C.S_C.ACU*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7295 - U2->C.S_C.EVA*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7296 if(U->C.A->D->type == 3) mostDmg2 = ((U->C.S_C.EVA*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7297 - U2->C.S_C.ACU*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7298 if(U->C.A->D->type == 4) mostDmg2 = ((U->C.S_C.CAP*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7299 - U2->C.S_C.CAP*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7300 if(U->C.A->D->type == 5) mostDmg2 = U->C.A->totalD;
7301 }else if(U->C.A->D){
7302 double val = val = 1/log(3+U2->C.S_C.MP/64);
7303 if(U->C.A->D->type == 0) mostDmg2 = ((U->C.S_C.ATK*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7304 - U2->C.S_C.DEF*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
7305 if(U->C.A->D->type == 1) mostDmg2 = ((U->C.S_C.DEF*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7306 - U2->C.S_C.ATK*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
7307 if(U->C.A->D->type == 2) mostDmg2 = ((U->C.S_C.ACU*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7308 - U2->C.S_C.EVA*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
7309 if(U->C.A->D->type == 3) mostDmg2 = ((U->C.S_C.EVA*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7310 - U2->C.S_C.ACU*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
7311 if(U->C.A->D->type == 4) mostDmg2 = ((U->C.S_C.CAP*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7312 - U2->C.S_C.CAP*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
7313 if(U->C.A->D->type == 5) mostDmg2 = U->C.A->totalD*val;
7315 double val2 = log(3+U2->C.S_C.MP/64);
7317 mostDmg2 = mostDmg2*val2;
7320 if(U->C.A->D->fix == 2){
7321 mostDmg2 = mostDmg2/2 + (U->C.S_C.HIT/2*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight;
7323 if(U->C.A->D->type == 0) mostDmg2 -= (U2->C.S_C.DEF/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7324 if(U->C.A->D->type == 1) mostDmg2 -= (U2->C.S_C.ATK/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7325 if(U->C.A->D->type == 2) mostDmg2 -= (U2->C.S_C.EVA/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7326 if(U->C.A->D->type == 3) mostDmg2 -= (U2->C.S_C.ACU/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7327 if(U->C.A->D->type == 4) mostDmg2 -= (U2->C.S_C.CAP/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7330 }else if(U->C.A->D->fix == 1){
7331 mostDmg2 = mostDmg2/2 + ((U->C.S_C.ATK/2+U->C.S_C.HIT/2)/2*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight;
7333 if(U->C.A->D->type == 0) mostDmg2 -= (U2->C.S_C.DEF/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7334 if(U->C.A->D->type == 1) mostDmg2 -= (U2->C.S_C.ATK/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7335 if(U->C.A->D->type == 2) mostDmg2 -= (U2->C.S_C.EVA/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7336 if(U->C.A->D->type == 3) mostDmg2 -= (U2->C.S_C.ACU/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7337 if(U->C.A->D->type == 4) mostDmg2 -= (U2->C.S_C.CAP/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7339 }else if(U->C.A->D->fix == 0){
7346 costVIG = U->C.A->vigor;
7349 mostDmg2 = [self dmgResist:mostDmg2];
7351 //NSLog(@"crCAL1 %d", crCAL1);
7352 if(mostDmg2 < 0) mostDmg2 = 1;
7355 if(mostDmg < mostDmg2 && U->C.A->rangeA <= unitBreak->atkRange && U->C.A->rangeB >= unitBreak->atkRange && mpCost <= U->C.S_C.MP && U->C.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->C.A opponent:U2]){
7359 //mostDmg = U->C.A->totalD;
7363 if(mostHit < U->C.A->hitPercent && hit < 50 && mostDmg/2 < mostDmg2 && U->C.A->rangeA <= unitBreak->atkRange && U->C.A->rangeB >= unitBreak->atkRange && mpCost <= U->C.S_C.MP && U->C.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->C.A opponent:U2]){
7364 //mostDmg = U->C.A->totalD;
7365 mostHit = U->C.A->hitPercent;
7368 U->C.A = U->C.A->next;
7373 if(U->C.A->extent == 0 && mostNum >= 0 && !CPUmostDmgChoice){
7377 for(int i = 0;i < mostNum;i++){
7378 U->C.A = U->C.A->next;
7384 for(int i = 0;i < crCAL1;i++){
7385 U->C.A = U->C.A->next;
7389 CPUmostDmgChoice = false;
7392 mostNumSub = mostNum;
7395 mpCost = U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5;
7396 costVIG = U->C.A->vigor;
7398 if(U->C.A->rangeA <= unitBreak->atkRange && U->C.A->rangeB >= unitBreak->atkRange
7399 && mpCost <= U->C.S_C.MP && costVIG <= U->C.S_C.vigor){
7409 while (!(AUN[1] == U->number)) {
7414 ATTACK *aTop = U->C.A;
7417 for(int i = 0;i < crCAL1;i++){
7418 U->C.A = U->C.A->next;
7421 //NSLog(@"%@", U->C.A->name);
7425 for (int i = 0;i < crCAL1;i++) {
7426 U->C.A = U->C.A->next;
7431 [combatNAME1 setStringValue:[NSString stringWithFormat:@"%@", U->C.name]];
7432 [combatHP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.HP, U->C.S_M.HP]];
7433 [combatMP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.MP, U->C.S_M.MP]];
7434 //NSLog(@"crCAL1 %d", crCAL1);
7436 [combatATK1 setStringValue:[NSString stringWithFormat:@"%@", U->C.A->name]];
7439 [combatVIG1 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
7440 [combatAP1 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
7441 double oops = U->C.S_C.HP/U->C.S_M.HP*100;
7442 [combatLHP1 setIntValue:(int)oops];
7443 oops = U->C.S_C.MP/U->C.S_M.MP*100;
7444 [combatLMP1 setIntValue:(int)oops];
7446 hit = U->C.S_C.ACU*U->C.S_C.HIT/100*U->C.S_C.HP/U->C.S_M.HP;
7447 //NSLog(@"mostNumSub %d crCAL1 %d", mostNumSub, crCAL1);
7448 hitFix = U->C.A->hitPercent;
7454 [combatNAME1 setStringValue:[NSString stringWithFormat:@"%@", U->C.name]];
7455 [combatHP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.HP, U->C.S_M.HP]];
7456 [combatMP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.MP, U->C.S_M.MP]];
7457 [combatATK1 setStringValue:[NSString stringWithFormat:@"防御耐性"]];
7458 [combatVIG1 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
7459 [combatAP1 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
7460 [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
7463 [combatNAME1 setStringValue:[NSString stringWithFormat:@"%@", U->C.name]];
7464 [combatHP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.HP, U->C.S_M.HP]];
7465 [combatMP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.MP, U->C.S_M.MP]];
7466 [combatATK1 setStringValue:[NSString stringWithFormat:@"回避耐性"]];
7467 [combatVIG1 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
7468 [combatAP1 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
7469 [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
7480 while (!(DUN[1] == U->number)) {
7484 double hit2 = U->C.S_C.EVA*U->C.S_C.DOD/100*U->C.S_C.HP/U->C.S_M.HP;
7486 double hi = U->C.S_C.LUK - U2->C.S_C.LUK;
7489 hit = 60 + hit/hit2*10 - hit2/hit*10 + hitFix - log(hi/10+1)*hit2/hit*10;
7491 if(battleDod2Flag) hit = hit / 2;
7494 if(hit > 100) hit = 100;
7495 if(hit < 0) hit = 0;
7497 if(u2A->D->sort == 1){
7501 if([self sortEcheck:u2A opponent:U])
7503 [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 %g", hit]];
7504 if(battleDef1Flag || battleDod1Flag) [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
7513 ATTACK *aTop2 = U->C.A;
7519 double urSupposedToGet;
7521 if(U->C.A) urSupposedToGet = pow(8, log(3+U->C.A->totalD/16));
7524 if(U2) asItIs = 1/log(3+U2->C.S_C.DEF/64);
7526 double oopsIsRight = 0;
7530 oopsIsRight = U->C.S_C.MEL;
7532 oopsIsRight = U->C.S_C.MIS;
7534 oopsIsRight = oopsIsRight/100;
7536 mpCost = U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5;
7538 if(!U2->C.aura && U->C.A->D){
7539 if(U->C.A->D->type == 0) mostDmg2 = ((U->C.S_C.ATK*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7540 - U2->C.S_C.DEF*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7541 if(U->C.A->D->type == 1) mostDmg2 = ((U->C.S_C.DEF*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7542 - U2->C.S_C.ATK*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7543 if(U->C.A->D->type == 2) mostDmg2 = ((U->C.S_C.ACU*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7544 - U2->C.S_C.EVA*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7545 if(U->C.A->D->type == 3) mostDmg2 = ((U->C.S_C.EVA*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7546 - U2->C.S_C.ACU*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7547 if(U->C.A->D->type == 4) mostDmg2 = ((U->C.S_C.CAP*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7548 - U2->C.S_C.CAP*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7549 if(U->C.A->D->type == 5) mostDmg2 = U->C.A->totalD;
7550 }else if(U->C.A->D){
7551 double val = val = 1/log(3+U2->C.S_C.MP/64);
7552 if(U->C.A->D->type == 0) mostDmg2 = ((U->C.S_C.ATK*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7553 - U2->C.S_C.DEF*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
7554 if(U->C.A->D->type == 1) mostDmg2 = ((U->C.S_C.DEF*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7555 - U2->C.S_C.ATK*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
7556 if(U->C.A->D->type == 2) mostDmg2 = ((U->C.S_C.ACU*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7557 - U2->C.S_C.EVA*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
7558 if(U->C.A->D->type == 3) mostDmg2 = ((U->C.S_C.EVA*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7559 - U2->C.S_C.ACU*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
7560 if(U->C.A->D->type == 4) mostDmg2 = ((U->C.S_C.CAP*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
7561 - U2->C.S_C.CAP*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
7562 if(U->C.A->D->type == 5) mostDmg2 = U->C.A->totalD*val;
7564 double val2 = log(3+U2->C.S_C.MP/64);
7566 mostDmg2 = mostDmg2*val2;
7569 if(U->C.A->D->fix == 2){
7570 mostDmg2 = mostDmg2/2 + (U->C.S_C.HIT/2*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight;
7572 if(U->C.A->D->type == 0) mostDmg2 -= (U2->C.S_C.DEF/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7573 if(U->C.A->D->type == 1) mostDmg2 -= (U2->C.S_C.ATK/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7574 if(U->C.A->D->type == 2) mostDmg2 -= (U2->C.S_C.EVA/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7575 if(U->C.A->D->type == 3) mostDmg2 -= (U2->C.S_C.ACU/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7576 if(U->C.A->D->type == 4) mostDmg2 -= (U2->C.S_C.CAP/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7579 }else if(U->C.A->D->fix == 1){
7580 mostDmg2 = mostDmg2/2 + ((U->C.S_C.ATK/2+U->C.S_C.HIT/2)/2*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight;
7582 if(U->C.A->D->type == 0) mostDmg2 -= (U2->C.S_C.DEF/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7583 if(U->C.A->D->type == 1) mostDmg2 -= (U2->C.S_C.ATK/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7584 if(U->C.A->D->type == 2) mostDmg2 -= (U2->C.S_C.EVA/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7585 if(U->C.A->D->type == 3) mostDmg2 -= (U2->C.S_C.ACU/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7586 if(U->C.A->D->type == 4) mostDmg2 -= (U2->C.S_C.CAP/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
7588 }else if(U->C.A->D->fix == 0){
7597 mostDmg2 = [self dmgResist:mostDmg2];
7600 costVIG = U->C.A->vigor;
7603 if(mostDmg < mostDmg2 && U->C.A->rangeA <= U2->atkRange && U->C.A->rangeB >= U2->atkRange && mpCost <= U->C.S_C.MP && U->C.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->C.A opponent:U2]){
7607 //mostDmg = U->C.A->totalD;
7611 if(mostHit < U->C.A->hitPercent && hit < 50 && mostDmg/2 < mostDmg2 && U->C.A->rangeA <= U2->atkRange && U->C.A->rangeB >= U2->atkRange && mpCost <= U->C.S_C.MP && U->C.A->D->sort != 1 &&costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->C.A opponent:U2]){
7612 //mostDmg = U->C.A->totalD;
7613 mostHit = U->C.A->hitPercent;
7616 U->C.A = U->C.A->next;
7624 mostNumSub = mostNum;
7626 for(int i = 0;i < mostNum;i++){
7627 U->C.A = U->C.A->next;
7629 mpCost = U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5;
7632 costVIG = U->C.A->vigor;
7635 if(U->C.A->rangeA <= U2->atkRange && U->C.A->rangeB >= U2->atkRange && mpCost <= U->C.S_C.MP && costVIG <= U->C.S_C.vigor){
7637 }else while(U->C.A){
7638 U->C.A = U->C.A->next;
7647 //NSLog(@"%@", U->C.name);
7648 for (int i = 0;i < crCAL2;i++) {
7649 U->C.A = U->C.A->next;
7654 [combatNAME2 setStringValue:[NSString stringWithFormat:@"%@", U->C.name]];
7655 [combatHP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.HP, U->C.S_M.HP]];
7656 [combatMP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.MP, U->C.S_M.MP]];
7657 [combatVIG2 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
7658 [combatAP2 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
7659 double oops2 = U->C.S_C.HP/U->C.S_M.HP*100;
7660 [combatLHP2 setIntValue:(int)oops2];
7661 oops2 = U->C.S_C.MP/U->C.S_M.MP*100;
7662 [combatLMP2 setIntValue:(int)oops2];
7667 mpCost2 = U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5;
7668 costVIG = U->C.A->vigor;
7671 if(U->C.A && U->C.A->D){
7672 if(U->C.A && !(u2A->D->sort == 1) && U->C.A->D->sort != 1 && mpCost2 <= U->C.S_C.MP && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->C.A opponent:U]){
7673 [combatATK2 setStringValue:[NSString stringWithFormat:@"%@", U->C.A->name]];
7674 hit = U->C.S_C.ACU*U->C.S_C.HIT/100*U->C.S_C.HP/U->C.S_M.HP;
7675 hitFix = U->C.A->hitPercent;
7677 }else if(u2A->D->sort == 1 || !U->C.A || U->C.A->D->sort == 1 || [self sortEcheck:U->C.A opponent:U]){
7678 [combatATK2 setStringValue:[NSString stringWithFormat:@"反撃不可能"]];
7681 [combatATK2 setStringValue:[NSString stringWithFormat:@"反撃不可能"]];
7687 [combatNAME2 setStringValue:[NSString stringWithFormat:@"%@", U->C.name]];
7688 [combatHP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.HP, U->C.S_M.HP]];
7689 [combatMP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.MP, U->C.S_M.MP]];
7690 [combatVIG2 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
7691 [combatATK2 setStringValue:[NSString stringWithFormat:@"防御態勢"]];
7692 [combatAP2 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
7693 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
7697 [combatNAME2 setStringValue:[NSString stringWithFormat:@"%@", U->C.name]];
7698 [combatHP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.HP, U->C.S_M.HP]];
7699 [combatMP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.MP, U->C.S_M.MP]];
7700 [combatVIG2 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
7701 [combatATK2 setStringValue:[NSString stringWithFormat:@"回避耐性"]];
7702 [combatAP2 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
7703 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
7707 while (!(DUN[1] == U->number)) {
7713 while (!(AUN[1] == U->number)) {
7719 double hit2 = U->C.S_C.EVA*U->C.S_C.DOD/100*U->C.S_C.HP/U->C.S_M.HP;
7722 double hi = U->C.S_C.LUK - U2->C.S_C.LUK;
7725 hit = 60 + hit/hit2*10 - hit2/hit*10 + hitFix - log(hi/10+1)*hit2/hit*10;
7726 if(battleDod1Flag) hit /= 2;
7729 if(hit > 100) hit = 100;
7730 if(hit < 0) hit = 0;
7732 if([self sortEcheck:U2A opponent:U])
7735 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 %g", hit]];
7736 if(battleDef2Flag || battleDod2Flag) [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
7739 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
7744 if(CPUAttackSubmitFlag){
7745 if(unitCPUAttackFlag){
7746 [battleCancelBtn setEnabled:NO];
7747 [battleCancelBtn setTransparent:YES];
7749 [battleCancelBtn setEnabled:YES];
7750 [battleCancelBtn setTransparent:NO];
7752 if(displayBattleCheckPanelFlag == 0) displayBattleCheckPanelFlag = 1;
7754 [battleCancelBtn setEnabled:YES];
7755 [battleCancelBtn setTransparent:NO];
7759 while (!(AUN[1] == U->number)) {
7764 [battleAttackBtn1 setEnabled:NO];
7765 [battleAttackBtn1 setTransparent:YES];
7766 [battleGuardBtn1 setEnabled:NO];
7767 [battleGuardBtn1 setTransparent:YES];
7768 [battleDodgeBtn1 setEnabled:NO];
7769 [battleDodgeBtn1 setTransparent:YES];
7771 [battleAttackBtn1 setEnabled:YES];
7772 [battleAttackBtn1 setTransparent:NO];
7773 [battleGuardBtn1 setEnabled:YES];
7774 [battleGuardBtn1 setTransparent:NO];
7775 [battleDodgeBtn1 setEnabled:YES];
7776 [battleDodgeBtn1 setTransparent:NO];
7780 while (!(DUN[1] == U->number)) {
7784 [battleAttackBtn2 setEnabled:NO];
7785 [battleAttackBtn2 setTransparent:YES];
7786 [battleGuardBtn2 setEnabled:NO];
7787 [battleGuardBtn2 setTransparent:YES];
7788 [battleDodgeBtn2 setEnabled:NO];
7789 [battleDodgeBtn2 setTransparent:YES];
7791 [battleAttackBtn2 setEnabled:YES];
7792 [battleAttackBtn2 setTransparent:NO];
7793 [battleGuardBtn2 setEnabled:YES];
7794 [battleGuardBtn2 setTransparent:NO];
7795 [battleDodgeBtn2 setEnabled:YES];
7796 [battleDodgeBtn2 setTransparent:NO];
7803 for (int i = 1; i < DUN[1]; i++) {
7809 if((MF[MFselectedRow+1].MS.playerSet1 == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2) ||
7810 unitBreak->team == 1 || (unitBreak->team == 2 && U->team == 1)
7817 [battleStartBtn setEnabled:YES];
7818 [battleStartBtn setTransparent:NO];
7823 avPlayerFlag1 = false;
7824 avPlayerFlag2 = false;
7827 -(void)setBattlePanelT2{
7831 ATTACK *aTop2 = U->CL.A;
7832 while (!(AUN[1] == U->number)) {
7836 if(cpuModeBATTLEflag && (MF[MFselectedRow+1].MS.playerSet1 == 2 || MF[MFselectedRow+1].MS.playerSet2 == 2)){
7837 cpuModeBATTLEflag = false;
7844 mpCost = U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5;
7845 costVIG = U->C.A->vigor;
7846 if(mostDmg < U->CL.A->totalD && U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && mpCost <= U->CL.S_C.EN && U->CL.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->CL.A opponent:U2]){
7847 mostDmg = U->CL.A->totalD;
7850 if(mostHit < U->CL.A->hitPercent && mostDmg/2 < U->CL.A->totalD && U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && mpCost <= U->CL.S_C.EN && U->CL.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->CL.A opponent:U2]){
7851 //mostDmg = U->C.A->totalD;
7852 mostHit = U->CL.A->hitPercent;
7855 U->CL.A = U->CL.A->next;
7860 for(int i = 0;i < crCAL1;i++){
7861 U->CL.A = U->CL.A->next;
7864 ATTACK *ua = U->CL.A;
7868 mostNumSub = mostNum;
7872 for(int i = 0;i < mostNum;i++){
7873 U->C.A = U->CL.A->next;
7875 if(U->CL.A->extent == 0){
7879 for(int i = 0;i < mostNum;i++){
7880 U->CL.A = U->CL.A->next;
7886 for(int i = 0;i < crCAL1;i++){
7887 U->CL.A = U->CL.A->next;
7895 mpCost = U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5;
7896 costVIG = U->C.A->vigor;
7899 if(U->CL.A->rangeA <= unitBreak->atkRange && U->CL.A->rangeB >= unitBreak->atkRange && mpCost <= U->CL.S_C.EN && costVIG <= U->C.S_C.vigor){
7901 }else while(U->CL.A){
7902 U->CL.A = U->CL.A->next;
7909 while (!(AUN[1] == U->number)) {
7914 ATTACK *aTop = U->CL.A;
7920 for(int i = 0;i < crCAL1;i++){
7921 U->CL.A = U->CL.A->next;
7928 for (int i = 0;i < crCAL1;i++) {
7929 U->CL.A = U->CL.A->next;
7934 [combatNAME1 setStringValue:[NSString stringWithFormat:@"%@", U->CL.name]];
7935 [combatHP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
7936 [combatMP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.EN, U->CL.S_M.EN]];
7937 [combatATK1 setStringValue:[NSString stringWithFormat:@"%@", U->CL.A->name]];
7938 [combatVIG1 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
7939 [combatAP1 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
7940 double oops = U->CL.S_C.HP/U->CL.S_M.HP*100;
7941 [combatLHP1 setIntValue:(int)oops];
7942 oops = U->CL.S_C.EN/U->CL.S_M.EN*100;
7943 [combatLMP1 setIntValue:(int)oops];
7945 hit = U->CL.S_C.MOB + U->C.S_C.HIT*U->C.S_C.HP/U->C.S_M.HP;
7946 hitFix = U->CL.A->hitPercent;
7952 [combatNAME1 setStringValue:[NSString stringWithFormat:@"%@", U->CL.name]];
7953 [combatHP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
7954 [combatMP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.EN, U->CL.S_M.EN]];
7955 [combatATK1 setStringValue:[NSString stringWithFormat:@"防御耐性"]];
7956 [combatVIG1 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
7957 [combatAP1 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
7958 [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
7961 [combatNAME1 setStringValue:[NSString stringWithFormat:@"%@", U->CL.name]];
7962 [combatHP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
7963 [combatMP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.EN, U->CL.S_M.EN]];
7964 [combatATK1 setStringValue:[NSString stringWithFormat:@"回避耐性"]];
7965 [combatVIG1 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
7966 [combatAP1 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
7967 [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
7978 while (!(DUN[1] == U->number)) {
7982 hit = 60 + hit/(U->CL.S_C.MOB*U->C.S_C.DOD/100)*10 - (U->CL.S_C.MOB*U->C.S_C.DOD/100)/hit*10 + hitFix;
7983 if(battleDod2Flag) hit = hit / 2;
7986 if(hit > 100) hit = 100;
7987 if(hit < 0) hit = 0;
7989 if(u2A->D->sort == 1){
7993 if([self sortEcheck:u2A opponent:U])
7995 [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 %g", hit]];
7996 if(battleDef1Flag || battleDod1Flag) [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8004 costVIG = U->C.A->vigor;
8006 mpCost = U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5;
8007 if(mostDmg < U->CL.A->totalD && U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && mpCost <= U->CL.S_C.EN && U->CL.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->CL.A opponent:U2]){
8008 mostDmg = U->CL.A->totalD;
8011 if(mostHit < U->CL.A->hitPercent && mostDmg/2 < U->CL.A->totalD && U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && mpCost <= U->CL.S_C.EN && U->CL.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->CL.A opponent:U2]){
8012 //mostDmg = U->C.A->totalD;
8013 mostHit = U->CL.A->hitPercent;
8016 U->CL.A = U->CL.A->next;
8022 mostNumSub = mostNum;
8025 for(int i = 0;i < mostNum;i++){
8026 U->CL.A = U->CL.A->next;
8033 mpCost = U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5;
8034 costVIG = U->C.A->vigor;
8037 if(U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && mpCost <= U->CL.S_C.EN && costVIG <= U->C.S_C.vigor){
8039 }else while(U->CL.A){
8040 U->CL.A = U->CL.A->next;
8050 for (int i = 0;i < crCAL2;i++) {
8051 U->CL.A = U->CL.A->next;
8057 [combatNAME2 setStringValue:[NSString stringWithFormat:@"%@", U->CL.name]];
8058 [combatHP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
8059 [combatMP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.EN, U->CL.S_M.EN]];
8060 [combatVIG2 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8061 [combatAP2 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8062 double oops2 = U->CL.S_C.HP/U->CL.S_M.HP*100;
8063 [combatLHP2 setIntValue:(int)oops2];
8064 oops2 = U->CL.S_C.EN/U->CL.S_M.EN*100;
8065 [combatLMP2 setIntValue:(int)oops2];
8069 if(U->CL.A && U->CL.A->D){
8073 mpCost2 = U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5;
8076 if(U->CL.A && !(u2A->D->sort == 1) && U->CL.A->D->sort != 1 && mpCost2 <= U->CL.S_C.EN && ![self sortEcheck:U->CL.A opponent:U2]){
8077 [combatATK2 setStringValue:[NSString stringWithFormat:@"%@", U->CL.A->name]];
8078 hit = U->CL.S_C.MOB + U->C.S_C.HIT;
8079 hitFix = U->CL.A->hitPercent;
8081 }else if(u2A->D->sort == 1 || !U->CL.A || U->CL.A->D->sort == 1 || [self sortEcheck:U->CL.A opponent:U2]){
8082 [combatATK2 setStringValue:[NSString stringWithFormat:@"反撃不可能"]];
8086 [combatATK2 setStringValue:[NSString stringWithFormat:@"反撃不可能"]];
8089 [combatATK2 setStringValue:[NSString stringWithFormat:@"反撃不可能"]];
8095 [combatNAME2 setStringValue:[NSString stringWithFormat:@"%@", U->CL.name]];
8096 [combatHP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
8097 [combatMP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.EN, U->CL.S_M.EN]];
8098 [combatVIG2 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8099 [combatATK2 setStringValue:[NSString stringWithFormat:@"防御態勢"]];
8100 [combatAP2 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8101 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8105 [combatNAME2 setStringValue:[NSString stringWithFormat:@"%@", U->CL.name]];
8106 [combatHP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
8107 [combatMP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.EN, U->CL.S_M.EN]];
8108 [combatVIG2 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8109 [combatATK2 setStringValue:[NSString stringWithFormat:@"回避耐性"]];
8110 [combatAP2 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8111 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8115 while (!(AUN[1] == U->number)) {
8120 hit = 60 + hit/(U->CL.S_C.MOB*U->C.S_C.DOD/100)*10 - (U->CL.S_C.MOB*U->C.S_C.DOD/100)/hit*10 + hitFix;
8121 if(battleDod1Flag) hit /= 2;
8124 if(hit > 100) hit = 100;
8125 if(hit < 0) hit = 0;
8126 if([self sortEcheck:U2A opponent:U])
8128 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 %g", hit]];
8129 if(battleDef2Flag || battleDod2Flag) [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8132 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8136 while (!(AUN[1] == U->number)) {
8141 [battleAttackBtn1 setEnabled:NO];
8142 [battleAttackBtn1 setTransparent:YES];
8143 [battleGuardBtn1 setEnabled:NO];
8144 [battleGuardBtn1 setTransparent:YES];
8145 [battleDodgeBtn1 setEnabled:NO];
8146 [battleDodgeBtn1 setTransparent:YES];
8148 [battleAttackBtn1 setEnabled:YES];
8149 [battleAttackBtn1 setTransparent:NO];
8150 [battleGuardBtn1 setEnabled:YES];
8151 [battleGuardBtn1 setTransparent:NO];
8152 [battleDodgeBtn1 setEnabled:YES];
8153 [battleDodgeBtn1 setTransparent:NO];
8157 while (!(DUN[1] == U->number)) {
8161 [battleAttackBtn2 setEnabled:NO];
8162 [battleAttackBtn2 setTransparent:YES];
8163 [battleGuardBtn2 setEnabled:NO];
8164 [battleGuardBtn2 setTransparent:YES];
8165 [battleDodgeBtn2 setEnabled:NO];
8166 [battleDodgeBtn2 setTransparent:YES];
8168 [battleAttackBtn2 setEnabled:YES];
8169 [battleAttackBtn2 setTransparent:NO];
8170 [battleGuardBtn2 setEnabled:YES];
8171 [battleGuardBtn2 setTransparent:NO];
8172 [battleDodgeBtn2 setEnabled:YES];
8173 [battleDodgeBtn2 setTransparent:NO];
8178 for (int i = 1; i < DUN[1]; i++) {
8183 if((MF[MFselectedRow+1].MS.playerSet1 == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2) ||
8184 unitBreak->team == 1 || (unitBreak->team == 2 && U->team == 1)
8187 [battleStartBtn setEnabled:NO];
8188 [battleStartBtn setTransparent:YES];
8191 [battleStartBtn setEnabled:YES];
8192 [battleStartBtn setTransparent:NO];
8197 avPlayerFlag1 = false;
8198 avPlayerFlag2 = false;
8201 -(void)setBattlePanelT3{
8205 while (!(AUN[1] == U->number)) {
8209 if(cpuModeBATTLEflag && (MF[MFselectedRow+1].MS.playerSet1 == 2 &&MF[MFselectedRow+1].MS.playerSet2 == 2)){
8210 cpuModeBATTLEflag = false;
8215 ATTACK *aTop2 = U->C.A;
8218 mpCost = U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5;
8220 costVIG = U->C.A->vigor;
8222 if(mostDmg < U->C.A->totalD && U->C.A->rangeA <= U2->atkRange && U->C.A->rangeB >= U2->atkRange && mpCost <= U->C.S_C.MP && U->C.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->C.A opponent:U2]){
8223 mostDmg = U->C.A->totalD;
8227 if(mostHit < U->C.A->hitPercent && mostDmg/2 < U->C.A->totalD && U->C.A->rangeA <= U2->atkRange && U->C.A->rangeB >= U2->atkRange && mpCost <= U->C.S_C.MP && U->C.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->C.A opponent:U2]){
8228 //mostDmg = U->C.A->totalD;
8229 mostHit = U->C.A->hitPercent;
8232 U->C.A = U->C.A->next;
8237 for(int i = 0;i < crCAL1;i++){
8238 U->C.A = U->C.A->next;
8241 ATTACK *ua = U->C.A;
8245 mostNumSub = mostNum;
8248 for(int i = 0;i < mostNum;i++){
8249 U->C.A = U->C.A->next;
8251 if(U->C.A->extent == 0 && mostNum > 0){
8255 for(int i = 0;i < mostNum;i++){
8256 U->C.A = U->C.A->next;
8262 for(int i = 0;i < crCAL1;i++){
8263 U->C.A = U->C.A->next;
8266 mpCost = U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5;
8267 costVIG = U->C.A->vigor;
8270 if(U->C.A->rangeA <= unitBreak->atkRange && U->C.A->rangeB >= unitBreak->atkRange && mpCost <= U->C.S_C.MP && costVIG <= U->C.S_C.vigor){
8279 while (!(AUN[1] == U->number)) {
8285 ATTACK *aTop = U->CL.A;
8291 for(int i = 0;i < crCAL1;i++){
8292 U->CL.A = U->CL.A->next;
8298 for (int i = 0;i < crCAL1;i++) {
8299 U->CL.A = U->CL.A->next;
8304 [combatNAME1 setStringValue:[NSString stringWithFormat:@"%@", U->CL.name]];
8305 [combatHP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
8306 [combatMP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.EN, U->CL.S_M.EN]];
8307 [combatATK1 setStringValue:[NSString stringWithFormat:@"%@", U->CL.A->name]];
8308 [combatVIG1 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8309 [combatAP1 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8310 double oops = U->CL.S_C.HP/U->CL.S_M.HP*100;
8311 [combatLHP1 setIntValue:(int)oops];
8312 oops = U->CL.S_C.EN/U->CL.S_M.EN*100;
8313 [combatLMP1 setIntValue:(int)oops];
8315 hit = U->CL.S_C.MOB + U->C.S_C.HIT;
8316 hitFix = U->CL.A->hitPercent;
8322 [combatNAME1 setStringValue:[NSString stringWithFormat:@"%@", U->CL.name]];
8323 [combatHP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
8324 [combatMP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.EN, U->CL.S_M.EN]];
8325 [combatATK1 setStringValue:[NSString stringWithFormat:@"防御耐性"]];
8326 [combatVIG1 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8327 [combatAP1 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8328 [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8331 [combatNAME1 setStringValue:[NSString stringWithFormat:@"%@", U->CL.name]];
8332 [combatHP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
8333 [combatMP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.EN, U->CL.S_M.EN]];
8334 [combatATK1 setStringValue:[NSString stringWithFormat:@"回避耐性"]];
8335 [combatVIG1 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8336 [combatAP1 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8337 [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8346 while (!(AUN[1] == U->number)) {
8352 while (!(DUN[1] == U->number)) {
8356 double hit2 = U->C.S_C.EVA*U->C.S_C.DOD/100*U->C.S_C.HP/U->C.S_M.HP;
8358 double hi = U->C.S_C.LUK - U2->C.S_C.LUK;
8361 hit = 60 + hit/hit2*10 - hit2/hit*10 + hitFix - log(hi/10+1)*hit2/hit*10;
8362 if(battleDod2Flag) hit = hit / 2;
8365 if(hit > 100) hit = 100;
8366 if(hit < 0) hit = 0;
8368 if(u2A->D->sort == 1){
8371 if([self sortEcheck:u2A opponent:U])
8373 [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 %g", hit]];
8374 if(battleDef1Flag || battleDod1Flag) [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8382 ATTACK *aTop2 = U->C.A;
8386 costVIG = U->C.A->vigor;
8388 mpCost = U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5;
8390 if(mostDmg < U->C.A->totalD && U->C.A->rangeA <= U2->atkRange && U->C.A->rangeB >= U2->atkRange && mpCost <= U->C.S_C.MP && U->C.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->C.A opponent:U2]){
8391 mostDmg = U->C.A->totalD;
8395 if(mostHit < U->C.A->hitPercent && mostDmg/2 < U->C.A->totalD && U->C.A->rangeA <= U2->atkRange && U->C.A->rangeB >= U2->atkRange && mpCost <= U->C.S_C.MP && U->C.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->C.A opponent:U2]){
8396 //mostDmg = U->C.A->totalD;
8397 mostHit = U->C.A->hitPercent;
8400 U->C.A = U->C.A->next;
8406 mostNumSub = mostNum;
8408 for(int i = 0;i < mostNum;i++){
8409 U->C.A = U->C.A->next;
8411 mpCost = U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5;
8412 costVIG = U->C.A->vigor;
8414 if(U->C.A->rangeA <= U2->atkRange && U->C.A->rangeB >= U2->atkRange && mpCost <= U->C.S_C.MP && costVIG <= U->C.S_C.vigor){
8416 }else while(U->C.A){
8417 U->C.A = U->C.A->next;
8425 for (int i = 0;i < crCAL2;i++) {
8426 U->C.A = U->C.A->next;
8432 [combatNAME2 setStringValue:[NSString stringWithFormat:@"%@", U->C.name]];
8433 [combatHP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.HP, U->C.S_M.HP]];
8434 [combatMP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.MP, U->C.S_M.MP]];
8435 [combatVIG2 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8436 [combatAP2 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8437 double oops2 = U->C.S_C.HP/U->C.S_M.HP*100;
8438 [combatLHP2 setIntValue:(int)oops2];
8439 oops2 = U->C.S_C.MP/U->C.S_M.MP*100;
8440 [combatLMP2 setIntValue:(int)oops2];
8445 mpCost2 = U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5;
8446 costVIG = U->C.A->vigor;
8449 if(U->C.A &&U->C.A->D){
8450 if(U->C.A && !(u2A->D->sort == 1) && U->C.A->D->sort != 1 && mpCost2 <= U->C.S_C.MP && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->C.A opponent:U2]){
8451 [combatATK2 setStringValue:[NSString stringWithFormat:@"%@", U->C.A->name]];
8452 hit = U->C.S_C.ACU*U->C.S_C.HIT/100*U->C.S_C.HP/U->C.S_M.HP;
8453 hitFix = U->C.A->hitPercent;
8455 }else if(u2A->D->sort == 1 || !U->C.A || U->C.A->D->sort == 1 || [self sortEcheck:U->C.A opponent:U2]){
8456 [combatATK2 setStringValue:[NSString stringWithFormat:@"反撃不可能"]];
8458 [combatATK2 setStringValue:[NSString stringWithFormat:@"反撃不可能"]];
8464 [combatNAME2 setStringValue:[NSString stringWithFormat:@"%@", U->C.name]];
8465 [combatHP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.HP, U->C.S_M.HP]];
8466 [combatMP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.MP, U->C.S_M.MP]];
8467 [combatVIG2 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8468 [combatATK2 setStringValue:[NSString stringWithFormat:@"防御態勢"]];
8469 [combatAP2 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8470 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8474 [combatNAME2 setStringValue:[NSString stringWithFormat:@"%@", U->C.name]];
8475 [combatHP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.HP, U->C.S_M.HP]];
8476 [combatMP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.MP, U->C.S_M.MP]];
8477 [combatVIG2 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8478 [combatATK2 setStringValue:[NSString stringWithFormat:@"回避耐性"]];
8479 [combatAP2 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8480 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8484 while (!(AUN[1] == U->number)) {
8489 hit = 60 + hit/(U->CL.S_C.MOB*U->C.S_C.DOD/100)*10 - (U->CL.S_C.MOB*U->C.S_C.DOD/100)/hit*10 + hitFix;
8490 if(battleDod1Flag) hit /= 2;
8493 if(hit > 100) hit = 100;
8494 if(hit < 0) hit = 0;
8495 if([self sortEcheck:U2A opponent:U])
8497 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 %g", hit]];
8498 if(battleDef2Flag || battleDod2Flag) [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8501 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8505 while (!(AUN[1] == U->number)) {
8510 [battleAttackBtn1 setEnabled:NO];
8511 [battleAttackBtn1 setTransparent:YES];
8512 [battleGuardBtn1 setEnabled:NO];
8513 [battleGuardBtn1 setTransparent:YES];
8514 [battleDodgeBtn1 setEnabled:NO];
8515 [battleDodgeBtn1 setTransparent:YES];
8517 [battleAttackBtn1 setEnabled:YES];
8518 [battleAttackBtn1 setTransparent:NO];
8519 [battleGuardBtn1 setEnabled:YES];
8520 [battleGuardBtn1 setTransparent:NO];
8521 [battleDodgeBtn1 setEnabled:YES];
8522 [battleDodgeBtn1 setTransparent:NO];
8526 while (!(DUN[1] == U->number)) {
8530 [battleAttackBtn2 setEnabled:NO];
8531 [battleAttackBtn2 setTransparent:YES];
8532 [battleGuardBtn2 setEnabled:NO];
8533 [battleGuardBtn2 setTransparent:YES];
8534 [battleDodgeBtn2 setEnabled:NO];
8535 [battleDodgeBtn2 setTransparent:YES];
8537 [battleAttackBtn2 setEnabled:YES];
8538 [battleAttackBtn2 setTransparent:NO];
8539 [battleGuardBtn2 setEnabled:YES];
8540 [battleGuardBtn2 setTransparent:NO];
8541 [battleDodgeBtn2 setEnabled:YES];
8542 [battleDodgeBtn2 setTransparent:NO];
8548 for (int i = 1; i < DUN[1]; i++) {
8552 if((MF[MFselectedRow+1].MS.playerSet1 == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2) ||
8553 unitBreak->team == 1 || (unitBreak->team == 2 && U->team == 1)
8556 [battleStartBtn setEnabled:NO];
8557 [battleStartBtn setTransparent:YES];
8560 [battleStartBtn setEnabled:YES];
8561 [battleStartBtn setTransparent:NO];
8566 avPlayerFlag1 = false;
8567 avPlayerFlag2 = false;
8570 -(void)setBattlePanelT4{
8574 while (!(AUN[1] == U->number)) {
8578 if(cpuModeBATTLEflag && (MF[MFselectedRow+1].MS.playerSet1 == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2)){
8579 cpuModeBATTLEflag = false;
8584 ATTACK *aTop2 = U->CL.A;
8587 mpCost = U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5;
8588 costVIG = U->C.A->vigor;
8589 if(mostDmg < U->CL.A->totalD && U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && mpCost <= U->CL.S_C.EN && U->CL.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self :U->CL.A opponent:U2]){
8590 mostDmg = U->CL.A->totalD;
8593 if(mostHit < U->CL.A->hitPercent && mostDmg/2 < U->CL.A->totalD && U->CL.A->rangeA <= unitBreak->atkRange && U->CL.A->rangeB >= unitBreak->atkRange && mpCost <= U->CL.S_C.EN && U->CL.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->CL.A opponent:U2]){
8594 //mostDmg = U->C.A->totalD;
8595 mostHit = U->CL.A->hitPercent;
8598 U->CL.A = U->CL.A->next;
8603 mostNumSub = mostNum;
8606 for(int i = 0;i < mostNum;i++){
8607 U->CL.A = U->CL.A->next;
8609 if(U->CL.A->extent == 0){
8613 for(int i = 0;i < mostNum;i++){
8614 U->CL.A = U->CL.A->next;
8620 for(int i = 0;i < crCAL1;i++){
8621 U->CL.A = U->CL.A->next;
8624 mpCost = U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5;
8625 costVIG = U->C.A->vigor;
8626 if(U->CL.A->rangeA <= unitBreak->atkRange && U->CL.A->rangeB >= unitBreak->atkRange && mpCost <= U->CL.S_C.EN && costVIG <= U->C.S_C.vigor){
8628 }else while(U->CL.A){
8629 U->CL.A = U->CL.A->next;
8636 while (!(AUN[1] == U->number)) {
8641 ATTACK *aTop = U->C.A;
8647 for(int i = 0;i < crCAL1;i++){
8648 U->C.A = U->C.A->next;
8654 for (int i = 0;i < crCAL1;i++) {
8655 U->C.A = U->C.A->next;
8660 [combatNAME1 setStringValue:[NSString stringWithFormat:@"%@", U->C.name]];
8661 [combatHP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.HP, U->C.S_M.HP]];
8662 [combatMP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.MP, U->C.S_M.MP]];
8663 [combatATK1 setStringValue:[NSString stringWithFormat:@"%@", U->C.A->name]];
8664 [combatVIG1 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8665 [combatAP1 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8666 double oops = U->C.S_C.HP/U->C.S_M.HP*100;
8667 [combatLHP1 setIntValue:(int)oops];
8668 oops = U->C.S_C.MP/U->C.S_M.MP*100;
8669 [combatLMP1 setIntValue:(int)oops];
8671 hit = U->C.S_C.ACU*U->C.S_C.HIT/100*U->C.S_C.HP/U->C.S_M.HP;
8672 hitFix = U->C.A->hitPercent;
8678 [combatNAME1 setStringValue:[NSString stringWithFormat:@"%@", U->C.name]];
8679 [combatHP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.HP, U->C.S_M.HP]];
8680 [combatMP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.MP, U->C.S_M.MP]];
8681 [combatATK1 setStringValue:[NSString stringWithFormat:@"防御耐性"]];
8682 [combatVIG1 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8683 [combatAP1 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8684 [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8687 [combatNAME1 setStringValue:[NSString stringWithFormat:@"%@", U->C.name]];
8688 [combatHP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.HP, U->C.S_M.HP]];
8689 [combatMP1 setStringValue:[NSString stringWithFormat:@"%g/%g", U->C.S_C.MP, U->C.S_M.MP]];
8690 [combatATK1 setStringValue:[NSString stringWithFormat:@"回避耐性"]];
8691 [combatVIG1 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8692 [combatAP1 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8693 [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8704 while (!(DUN[1] == U->number)) {
8708 hit = 60 + hit/(U->CL.S_C.MOB*U->C.S_C.DOD/100)*10 - (U->CL.S_C.MOB*U->C.S_C.DOD/100)/hit*10 + hitFix;
8709 if(battleDod2Flag) hit = hit / 2;
8712 if(hit > 100) hit = 100;
8713 if(hit < 0) hit = 0;
8715 if(u2A->D->sort == 1){
8718 if([self sortEcheck:u2A opponent:U])
8720 [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 %g", hit]];
8721 if(battleDef1Flag || battleDod1Flag) [combatHIT1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8729 ATTACK *aTop2 = U->CL.A;
8732 mpCost = U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5;
8733 costVIG = U->C.A->vigor;
8734 if(mostDmg < U->CL.A->totalD && U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && mpCost <= U->CL.S_C.EN && U->CL.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->CL.A opponent:U2]){
8735 mostDmg = U->CL.A->totalD;
8738 if(mostHit < U->CL.A->hitPercent && mostDmg/2 < U->CL.A->totalD && U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && mpCost <= U->CL.S_C.EN && U->CL.A->D->sort != 1 && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->CL.A opponent:U2]){
8739 //mostDmg = U->C.A->totalD;
8740 mostHit = U->CL.A->hitPercent;
8743 U->CL.A = U->CL.A->next;
8747 mostNumSub = mostNum;
8751 for(int i = 0;i < mostNum;i++){
8752 U->CL.A = U->CL.A->next;
8754 mpCost = U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5;
8755 costVIG = U->C.A->vigor;
8756 if(U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && mpCost <= U->CL.S_C.EN && costVIG <= U->C.S_C.vigor){
8758 }else while(U->CL.A){
8759 U->CL.A = U->CL.A->next;
8767 for (int i = 0;i < crCAL2;i++) {
8768 U->CL.A = U->CL.A->next;
8774 [combatNAME2 setStringValue:[NSString stringWithFormat:@"%@", U->CL.name]];
8775 [combatHP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
8776 [combatMP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.EN, U->CL.S_M.EN]];
8777 [combatVIG2 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8778 [combatAP2 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8779 double oops2 = U->CL.S_C.HP/U->CL.S_M.HP*100;
8780 [combatLHP2 setIntValue:(int)oops2];
8781 oops2 = U->CL.S_C.EN/U->CL.S_M.EN*100;
8782 [combatLMP2 setIntValue:(int)oops2];
8787 mpCost2 = U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5;
8790 if(U->CL.A && U->CL.A->D){
8791 if(U->CL.A && !(u2A->D->sort == 1) && U->CL.A->D->sort != 1 && mpCost2 <= U->CL.S_C.EN && ![self sortEcheck:U->CL.A opponent:U2]){
8792 [combatATK2 setStringValue:[NSString stringWithFormat:@"%@", U->CL.A->name]];
8793 hit = U->CL.S_C.MOB + U->C.S_C.HIT;
8794 hitFix = U->CL.A->hitPercent;
8796 }else if(u2A->D->sort == 1 || !U->CL.A || U->CL.A->D->sort == 1 || [self sortEcheck:U->CL.A opponent:U2]){
8797 [combatATK2 setStringValue:[NSString stringWithFormat:@"反撃不可能"]];
8799 [combatATK2 setStringValue:[NSString stringWithFormat:@"反撃不可能"]];
8805 [combatNAME2 setStringValue:[NSString stringWithFormat:@"%@", U->CL.name]];
8806 [combatHP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
8807 [combatMP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.EN, U->CL.S_M.EN]];
8808 [combatVIG2 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8809 [combatATK2 setStringValue:[NSString stringWithFormat:@"防御態勢"]];
8810 [combatAP2 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8811 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8815 [combatNAME2 setStringValue:[NSString stringWithFormat:@"%@", U->CL.name]];
8816 [combatHP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
8817 [combatMP2 setStringValue:[NSString stringWithFormat:@"%g/%g", U->CL.S_C.EN, U->CL.S_M.EN]];
8818 [combatVIG2 setStringValue:[NSString stringWithFormat:@"気力 %d", U->C.S_C.vigor]];
8819 [combatATK2 setStringValue:[NSString stringWithFormat:@"回避耐性"]];
8820 [combatAP2 setStringValue:[NSString stringWithFormat:@"%g", U->C.S_C.AP]];
8821 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8826 while (!(DUN[1] == U->number)) {
8832 while (!(AUN[1] == U->number)) {
8838 double hit2 = U->C.S_C.EVA*U->C.S_C.DOD/100*U->C.S_C.HP/U->C.S_M.HP;
8840 double hi = U->C.S_C.LUK - U2->C.S_C.LUK;
8843 hit = 60 + hit/hit2*10 - hit2/hit*10 + hitFix - log(hi/10+1)*hit2/hit*10;
8844 if(battleDod1Flag) hit /= 2;
8847 if(hit > 100) hit = 100;
8848 if(hit < 0) hit = 0;
8849 if([self sortEcheck:U2A opponent:U])
8851 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 %g", hit]];
8852 if(battleDef2Flag || battleDod2Flag) [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8855 [combatHIT2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8859 while (!(AUN[1] == U->number)) {
8864 [battleAttackBtn1 setEnabled:NO];
8865 [battleAttackBtn1 setTransparent:YES];
8866 [battleGuardBtn1 setEnabled:NO];
8867 [battleGuardBtn1 setTransparent:YES];
8868 [battleDodgeBtn1 setEnabled:NO];
8869 [battleDodgeBtn1 setTransparent:YES];
8871 [battleAttackBtn1 setEnabled:YES];
8872 [battleAttackBtn1 setTransparent:NO];
8873 [battleGuardBtn1 setEnabled:YES];
8874 [battleGuardBtn1 setTransparent:NO];
8875 [battleDodgeBtn1 setEnabled:YES];
8876 [battleDodgeBtn1 setTransparent:NO];
8880 while (!(DUN[1] == U->number)) {
8884 [battleAttackBtn2 setEnabled:NO];
8885 [battleAttackBtn2 setTransparent:YES];
8886 [battleGuardBtn2 setEnabled:NO];
8887 [battleGuardBtn2 setTransparent:YES];
8888 [battleDodgeBtn2 setEnabled:NO];
8889 [battleDodgeBtn2 setTransparent:YES];
8891 [battleAttackBtn2 setEnabled:YES];
8892 [battleAttackBtn2 setTransparent:NO];
8893 [battleGuardBtn2 setEnabled:YES];
8894 [battleGuardBtn2 setTransparent:NO];
8895 [battleDodgeBtn2 setEnabled:YES];
8896 [battleDodgeBtn2 setTransparent:NO];
8902 for (int i = 1; i < DUN[1]; i++) {
8906 if((MF[MFselectedRow+1].MS.playerSet1 == 2 && MF[MFselectedRow+1].MS.playerSet2 == 2) ||
8907 unitBreak->team == 1 || (unitBreak->team == 2 && U->team == 1)
8910 [battleStartBtn setEnabled:NO];
8911 [battleStartBtn setTransparent:YES];
8914 [battleStartBtn setEnabled:YES];
8915 [battleStartBtn setTransparent:NO];
8920 avPlayerFlag1 = false;
8921 avPlayerFlag2 = false;
8924 -(void)DisplayMessage{
8927 attackExtentFlag = false;
8928 attackingWait = false;
8930 if(!battleSetUp) return;
8931 if(!fuckingLoadBugFix) return;
8933 if(!battleVeryBegunFlag){
8934 [btHITtf1 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8935 [btDMGtf1 setStringValue:[NSString stringWithFormat:@"ダメージ値 ----"]];
8936 [btHITtf2 setStringValue:[NSString stringWithFormat:@"命中率 ----"]];
8937 [btDMGtf2 setStringValue:[NSString stringWithFormat:@"ダメージ値 ----"]];
8939 battleVeryBegunFlag = true;
8940 pussyLoopFlag = true;
8942 if(AVpreview.rate > 0){
8943 //[battleWindow setIgnoresMouseEvents:YES];
8944 [battleWindow makeKeyAndOrderFront:nil];
8945 //NSLog(@"%g", AVpreview.rate);
8948 //[battleWindow setIgnoresMouseEvents:NO];
8949 //NSLog(@"%g", AVpreview.rate);
8953 [AVPV setHidden:YES];
8955 else if(avPlayerFlag2){
8956 [AVPV setHidden:YES];
8962 animationFlag1 = false;
8967 animationFlag2 = false;
8969 U->C.A = attackTop2;
8973 if(animationFlag1 || animationFlag2){
8978 double def2 = (double)31/32;
8979 NSString *message = @"";
8997 static bool extentbool = false;
8998 static bool extentbool2 = false;
9001 if(cpuAtkExtendFlag){
9002 extentBattleFlag2 = true;
9005 if(!extentbool && extentBattleFlag2){
9007 extentMPcostFlag = false;
9011 assholeLoadBugFix = true;
9013 switch (messageProcess) {
9015 if(bLoopFlag) break;
9020 while (!(DUN[DUNnum] == U->number)) {
9026 while (!(AUN[1] == U->number)) {
9030 if(U->number == U2->number){
9031 btSelfAction = true;
9033 btSelfAction = false;
9039 [battleDialog setStringValue:@"攻撃開始!"];
9040 if(!baseDistanceCompFlag)
9045 battleIsProcFlag = true;
9050 if(bLoopFlag) break;
9056 btHitExtendFlag1 = true;
9058 if(btHitExtendProc1 >= 3){
9059 btHitExtendProc1 = 0;
9063 BTunitAttackFlag1 = true;
9064 if(battleDef1Flag || battleDod1Flag)
9065 BTunitAttackFlag1 = false;
9068 while (!(DUN[DUNnum] == U->number)) {
9074 while (!(AUN[1] == U->number)) {
9079 if(U->number == U2->number){
9080 btSelfAction = true;
9082 btSelfAction = false;
9085 if(U->chipNumberL >= 0 && U2->chipNumberL >= 0){
9087 [self DisplayMessageMod1A];
9089 }else if(U->chipNumberL >= 0 && U2->chipNumberL < 0){
9091 [self DisplayMessageMod2A];
9093 }else if(U->chipNumberL < 0 && U2->chipNumberL >= 0){
9095 [self DisplayMessageMod3A];
9101 if(bLoopFlag) break;
9104 while (!(AUN[1] == U->number)) {
9107 ATTACK *aTop = U->C.A;
9109 for(int i = 0;i < crCAL1;i++){
9110 U->C.A = U->C.A->next;
9115 if(attackCR->magic){
9116 btAttackType1 = BT_TYPE_MAGIC;
9118 btAttackType1 = BT_TYPE_NORMAL;
9121 if(BTunitAttackFlag1)
9122 if((btAttackType1 == BT_TYPE_NORMAL && btAttackMoveValue1 < 2)
9123 || (btAttackType1 == BT_TYPE_MAGIC && btAttackMoveValue1 < 5)
9124 || (btAttackType1 == BT_TYPE_ABILITY && btAttackMoveValue1 < 2)){
9126 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@の%@\n", U->C.nameNick, U->C.A->name]];
9128 [battleDialog setStringValue:message];
9135 if(btHitExtendFlag1 && btHitExtendProc1 < 2){
9146 if(!battleDef1Flag && !battleDod1Flag) message = [message stringByAppendingString:[NSString stringWithFormat:@"%@の%@\n", U->C.nameNick, U->C.A->name]];
9149 [bplayer2 setImage:U2->C.imgb];
9150 [bplayer2 setImageScaling:NSScaleToFit];
9151 [nplayer2 setStringValue:U2->C.nameNick];
9152 [tplayer2 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U2->C.S_C.HP, U2->C.S_M.HP]];
9153 [lplayer2 setIntValue:U2->C.S_C.HP/U2->C.S_M.HP*100];
9154 [iplayer2 setImage:MC[chipNum[U2->x][U2->y]].img];
9155 [mplayer2 setStringValue:MC[chipNum[U2->x][U2->y]].name];
9156 [rplayer2 setStringValue:[NSString stringWithFormat:@"地形効果 %d%", MC[chipNum[U2->x][U2->y]].dmgfix]];
9158 if(!battleDef1Flag && !battleDod1Flag && !battleDef1Flag && !battleDod1Flag && !avPlayerFlag1 && ![U->C.A->AN.movName isEqualToString:@""] && ![U->C.A->AN.movName isEqualToString:@"(null)"] && U->C.A->AN.movName != NULL && DUNnum == 1){
9159 [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]];
9161 NSString *path = @"data/AttackList/ALdata";
9163 path = [path stringByAppendingFormat:@"%dE", U->chipNumber+1];
9165 path = [path stringByAppendingFormat:@"/"];
9167 path = [path stringByAppendingString:U->C.A->AN.movName];
9169 NSData *AVData = [NSData dataWithContentsOfFile:path];
9172 AVpreview = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
9177 NSString *path = @"data/AttackList3/IALdata";
9179 path = [path stringByAppendingFormat:@"%dE", U->C.A->indexE];
9181 path = [path stringByAppendingFormat:@"/"];
9183 path = [path stringByAppendingString:U->C.A->AN.movName];
9186 NSData *AVData = [NSData dataWithContentsOfFile:path];
9189 AVpreview = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
9195 AVPV.player = [AVpreview retain];
9196 AVPV.videoGravity = AVLayerVideoGravityResize;
9202 [AVPV setHidden:NO];
9204 [battleDialog setStringValue:message];
9206 avPlayerFlag1 = true;
9212 }else if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag1 && !animationFlag1 && U->C.A->AN.ANI && !animationFlag3 && DUNnum == 1){
9214 [battleDialog setStringValue:message];
9215 animationFlag1 = true;
9222 double urSupposedToGet;
9224 if(U->C.A) urSupposedToGet = pow(8, log(3+U->C.A->totalD/16));
9227 if(U2) asItIs = 1/log(3+U2->C.S_C.DEF/64);
9231 if(U->C.A->melee) oopsIsRight = U->C.S_C.MEL;
9232 else oopsIsRight = U->C.S_C.MIS;
9234 oopsIsRight = oopsIsRight/100;
9236 if(!U2->C.aura && U->C.A->D){
9237 if(U->C.A->D->type == 0) dmg = ((U->C.S_C.ATK*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9238 - U2->C.S_C.DEF*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9239 if(U->C.A->D->type == 1) dmg = ((U->C.S_C.DEF*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9240 - U2->C.S_C.ATK*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9241 if(U->C.A->D->type == 2) dmg = ((U->C.S_C.ACU*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9242 - U2->C.S_C.EVA*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9243 if(U->C.A->D->type == 3) dmg = ((U->C.S_C.EVA*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9244 - U2->C.S_C.ACU*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9245 if(U->C.A->D->type == 4) dmg = ((U->C.S_C.CAP*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9246 - U2->C.S_C.CAP*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9247 if(U->C.A->D->type == 5) dmg = U->C.A->totalD;
9248 }else if(U->C.A->D){
9249 val = 1/log(3+U2->C.S_C.MP/64);
9250 if(U->C.A->D->type == 0) dmg = ((U->C.S_C.ATK*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9251 - U2->C.S_C.DEF*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9252 if(U->C.A->D->type == 1) dmg = ((U->C.S_C.DEF*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9253 - U2->C.S_C.ATK*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9254 if(U->C.A->D->type == 2) dmg = ((U->C.S_C.ACU*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9255 - U2->C.S_C.EVA*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9256 if(U->C.A->D->type == 3) dmg = ((U->C.S_C.EVA*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9257 - U2->C.S_C.ACU*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9258 if(U->C.A->D->type == 4) dmg = ((U->C.S_C.CAP*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9259 - U2->C.S_C.CAP*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9260 if(U->C.A->D->type == 5) dmg = U->C.A->totalD*val;
9262 double val2 = log(3+U2->C.S_C.MP/64);
9268 if(U->C.A->D->fix == 2){
9269 dmg = dmg/2 + (U->C.S_C.HIT/2*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight;
9271 if(U->C.A->D->type == 0) dmg -= (U2->C.S_C.DEF/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9272 if(U->C.A->D->type == 1) dmg -= (U2->C.S_C.ATK/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9273 if(U->C.A->D->type == 2) dmg -= (U2->C.S_C.EVA/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9274 if(U->C.A->D->type == 3) dmg -= (U2->C.S_C.ACU/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9275 if(U->C.A->D->type == 4) dmg -= (U2->C.S_C.CAP/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9278 }else if(U->C.A->D->fix == 1){
9279 dmg = dmg/2 + ((U->C.S_C.ATK/2+U->C.S_C.HIT/2)/2*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight;
9281 if(U->C.A->D->type == 0) dmg -= (U2->C.S_C.DEF/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9282 if(U->C.A->D->type == 1) dmg -= (U2->C.S_C.ATK/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9283 if(U->C.A->D->type == 2) dmg -= (U2->C.S_C.EVA/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9284 if(U->C.A->D->type == 3) dmg -= (U2->C.S_C.ACU/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9285 if(U->C.A->D->type == 4) dmg -= (U2->C.S_C.CAP/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9287 }else if(U->C.A->D->fix == 0){
9291 costMP = U->C.A->MP + floor(U->C.A->pMP*U->C.S_M.MP/100 + 0.5);
9293 if(extentMPcostFlag && extentBattleFlag2){
9296 U->C.S_C.MP -= costMP;
9297 extentMPcostFlag = true;
9300 hit = U->C.S_C.ACU*U->C.S_C.HIT/100*U->C.S_C.HP/U->C.S_M.HP;
9301 hitFix = U->C.A->hitPercent;
9307 while (!(AUN[1] == U->number)) {
9313 while (!(DUN[DUNnum] == U->number)) {
9317 double hit2 = U->C.S_C.EVA*U->C.S_C.DOD/100*U->C.S_C.HP/U->C.S_M.HP;
9319 double hi = U->C.S_C.LUK - U2->C.S_C.LUK;
9322 hit = 60 + hit/hit2*10 - hit2/hit*10 + hitFix - log(hi/10+1)*hit2/hit*10;
9323 if(hit > 100) hit = 100;
9324 if(hit < 0) hit = 0;
9325 if(U2A->D->sort == 1){
9328 if([self sortEcheck:U2A opponent:U])
9334 if(battleDod2Flag) hit /= 2;
9335 if(hit - rand()%wtf > 0 && !battleDef1Flag && !battleDod1Flag){
9337 if(U2A->D->sort == 0){
9338 if(U2A->D->type == 0) NSLog(@"計算式:((%g+%g)*%g-%g)*%g*%g", U2->C.S_C.ATK,U2A->totalD,oopsIsRight,U->C.S_C.DEF, val, val2);
9339 if(U2A->D->type == 4) NSLog(@"計算式:((%g+%g)*%g-%g)*%g*%g", U2->C.S_C.CAP,U2A->totalD,oopsIsRight,U->C.S_C.CAP, val, val2);
9340 NSLog(@"修正前のダメージ:%g", dmg);
9341 dmg = [self dmgResist:dmg];
9342 NSLog(@"属性後のダメージ:%g", dmg);
9343 def2 = pow(def2, U->C.S_C.DEF);
9344 int omfg = rand()%100;
9345 NSLog(@"ダメージ幅:%g〜%g", floor(dmg), floor(dmg + dmg/10));
9346 dmg = (dmg*omfg/100/10 + dmg);
9347 NSLog(@"地形効果:%g - %g", dmg, dmg*MC[chipNum[possionX][possionY]].dmgfix/100);
9348 if(buildNum[possionX][possionY] < 0) dmg -= dmg*MC[chipNum[possionX][possionY]].dmgfix/100 - 0.5;
9349 else dmg -= dmg*BC[buildNum[possionX][possionY]].dmgfix/100 - 0.5;
9351 if(U->C.S_C.typeMOVE == RIKU){
9352 if(U2A->riku == A) dmg = dmg*1.2;
9353 if(U2A->riku == B) dmg = dmg*1.0;
9354 if(U2A->riku == C) dmg = dmg*0.6;
9355 if(U2A->riku == D) dmg = dmg*0.2;
9356 if(U2A->riku == E) dmg = 0;
9357 if(U2A->riku == S) dmg = dmg*1.5;
9358 if(U2A->riku == SS) dmg = dmg*2.0;
9359 } if(U->C.S_C.typeMOVE == UMI &&
9360 (MC[chipNum[possionX][possionY]].type == 3 || MC[chipNum[possionX][possionY]].type == 4)){
9361 if(U2A->umi == A) dmg = dmg*1.2;
9362 if(U2A->umi == B) dmg = dmg*1.0;
9363 if(U2A->umi == C) dmg = dmg*0.6;
9364 if(U2A->umi == D) dmg = dmg*0.2;
9365 if(U2A->umi == E) dmg = 0;
9366 if(U2A->umi == S) dmg = dmg*1.5;
9367 if(U2A->umi == SS) dmg = dmg*2.0;
9368 }else if(U->C.S_C.typeMOVE == UMI){
9369 if(U2A->riku == A) dmg = dmg*1.2;
9370 if(U2A->riku == B) dmg = dmg*1.0;
9371 if(U2A->riku == C) dmg = dmg*0.6;
9372 if(U2A->riku == D) dmg = dmg*0.2;
9373 if(U2A->riku == E) dmg = 0;
9374 if(U2A->riku == S) dmg = dmg*1.5;
9375 if(U2A->riku == SS) dmg = dmg*2.0;
9377 } if(U->C.S_C.typeMOVE == CHU){
9378 if(U2A->chu == A) dmg = dmg*1.2;
9379 if(U2A->chu == B) dmg = dmg*1.0;
9380 if(U2A->chu == C) dmg = dmg*0.6;
9381 if(U2A->chu == D) dmg = dmg*0.2;
9382 if(U2A->chu == E) dmg = 0;
9383 if(U2A->chu == S) dmg = dmg*1.5;
9384 if(U2A->chu == SS) dmg = dmg*2.0;
9385 } if(U->C.S_C.typeMOVE == SORA){
9386 if(U2A->sora == A) dmg = dmg*1.2;
9387 if(U2A->sora == B) dmg = dmg*1.0;
9388 if(U2A->sora == C) dmg = dmg*0.6;
9389 if(U2A->sora == D) dmg = dmg*0.2;
9390 if(U2A->sora == E) dmg = 0;
9391 if(U2A->sora == S) dmg = dmg*1.5;
9392 if(U2A->sora == SS) dmg = dmg*2.0;
9395 NSLog(@"ユニットの地形適用後:%g", dmg);
9396 if(battleDef2Flag) NSLog(@"防御後のダメージ:%g", dmg/2);
9397 graze = U->C.S_C.MEN/U2->C.S_C.MEN*U->C.S_C.LUK/3;
9401 if(graze > omfg && !healFlag) {dmg = dmg/5;
9404 if(battleDef2Flag) dmg -= dmg*0.5;
9405 battleDef2Flag = false;
9407 if(dmg < 0) dmg = 0;
9411 [btHITtf1 setStringValue:[NSString stringWithFormat:@"命中率 %g%", floor(hit)]];
9412 [btDMGtf1 setStringValue:[NSString stringWithFormat:@"ダメージ値 %g", dmg]];
9416 }else if(U2A->D->sort == 1){
9417 dmg = dmg + rand()%5*dmg/10 - rand()%5*dmg/10;
9421 if(U->C.S_C.HP > U->C.S_M.HP) U->C.S_C.HP = U->C.S_M.HP;
9426 if(U->C.S_C.HP <= 0) {
9428 U2->C.S_C.vigor += 5;
9439 targType2Lflag = true;
9446 targType2Dflag = true;
9454 [tplayer2 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->C.S_C.HP, U->C.S_M.HP]];
9455 [lplayer2 setIntValue:U->C.S_C.HP/U->C.S_M.HP*100];
9457 if(![U2A->msg isEqualToString:@""]){
9459 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@\n",
9460 [self originalMessage:U2A->msg subj:U2->C.nameNick obje:U->C.nameNick]]];
9464 if(grazeFlag) message = [message stringByAppendingString:[NSString stringWithFormat:@"かすりヒット!\n"]];
9466 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は%gのダメージを受けた!", U->C.nameNick, dmg]];
9470 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@はHPが%g回復した!", U->C.nameNick, dmg]];
9473 }else if(battleDef1Flag){
9477 while (!(AUN[1] == U->number)) {
9482 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は身構えている", U->C.nameNick]];
9486 }else if(battleDod1Flag){
9489 while (!(AUN[1] == U->number)) {
9493 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は様子をうかがっている", U->C.nameNick]];
9498 message = [message stringByAppendingString:[NSString stringWithFormat:@"ミス!%@はダメージを受けていない!", U->C.nameNick]];
9502 [battleDialog setStringValue:message];
9504 [btHITtf1 setStringValue:[NSString stringWithFormat:@"命中率 %g%", floor(hit)]];
9510 if(!extentBattleFlag2){
9515 }else if(extentBattleFlag2){
9516 if(btHitExtendProc1 == 2)
9517 btHitExtendProc1 = 3;
9518 if(btHitExtendProc1 >= 2)
9519 btHitExtendFix1 = 1;
9524 if(DUN[DUNnum] <= 0){
9527 extentBattleFlag2 = false;
9529 extentMPcostFlag = false;
9533 avPlayerFlag1 = false;
9534 animationFlag3 = false;
9535 btAtattckMoveEnd = false;
9541 if(bLoopFlag) break;
9542 BTunitAttackFlag1 = false;
9543 BTunitAttackFlag2 = true;
9544 if(battleDef2Flag || battleDod2Flag)
9545 BTunitAttackFlag2 = false;
9550 while (!(DUN[1] == U->number)) {
9555 while (!(AUN[1] == U->number)) {
9560 if(U->number == U2->number){
9561 btSelfAction = true;
9563 btSelfAction = false;
9566 if(U->chipNumberL >= 0 && U2->chipNumberL >= 0){
9568 [self DisplayMessageMod1B];
9570 }else if(U->chipNumberL >= 0 && U2->chipNumberL < 0){
9572 [self DisplayMessageMod2B];
9574 }else if(U->chipNumberL < 0 && U2->chipNumberL >= 0){
9576 [self DisplayMessageMod3B];
9581 if(bLoopFlag) break;
9584 while (!(AUN[1] == U->number)) {
9591 while (!(DUN[1] == U->number)) {
9595 ATTACK *aTop2 = U->C.A;
9603 if(!U->C.A) goto SKIP3;
9607 if(U->C.A) urSupposedToGet = pow(8, log(3+U->C.A->totalD/16));
9609 if(U2) asItIs = 1/log(3+U2->C.S_C.DEF/64);
9612 if(U->C.A->melee) oopsIsRight = U->C.S_C.MEL;
9613 else oopsIsRight = U->C.S_C.MIS;
9615 oopsIsRight = oopsIsRight/100;
9618 mpCost = floor(U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5);
9621 mpCost = floor(U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5);
9622 if(!U2->C.aura && U->C.A->D){
9623 if(U->C.A->D->type == 0) mostDmg2 = ((U->C.S_C.ATK*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9624 - U2->C.S_C.DEF*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9625 if(U->C.A->D->type == 1) mostDmg2 = ((U->C.S_C.DEF*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9626 - U2->C.S_C.ATK*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9627 if(U->C.A->D->type == 2) mostDmg2 = ((U->C.S_C.ACU*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9628 - U2->C.S_C.EVA*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9629 if(U->C.A->D->type == 3) mostDmg2 = ((U->C.S_C.EVA*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9630 - U2->C.S_C.ACU*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9631 if(U->C.A->D->type == 4) mostDmg2 = ((U->C.S_C.CAP*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9632 - U2->C.S_C.CAP*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9633 if(U->C.A->D->type == 5) mostDmg2 = U->C.A->totalD;
9634 }else if(U->C.A->D){
9635 val = 1/log(3+U2->C.S_C.MP/64);
9636 if(U->C.A->D->type == 0) mostDmg2 = ((U->C.S_C.ATK*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9637 - U2->C.S_C.DEF*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9638 if(U->C.A->D->type == 1) mostDmg2 = ((U->C.S_C.DEF*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9639 - U2->C.S_C.ATK*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9640 if(U->C.A->D->type == 2) mostDmg2 = ((U->C.S_C.ACU*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9641 - U2->C.S_C.EVA*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9642 if(U->C.A->D->type == 3) mostDmg2 = ((U->C.S_C.EVA*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9643 - U2->C.S_C.ACU*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor)*asItIs*val;
9644 if(U->C.A->D->type == 4) mostDmg2 = ((U->C.S_C.CAP*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9645 - U2->C.S_C.CAP*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9646 if(U->C.A->D->type == 5) mostDmg2 = U->C.A->totalD*val;
9648 double val2 = log(3+U2->C.S_C.MP/64);
9650 mostDmg2 = mostDmg2*val2;
9653 if(U->C.A->D->fix == 2){
9654 mostDmg2 = mostDmg2/2 + (U->C.S_C.HIT/2*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight;
9656 if(U->C.A->D->type == 0) mostDmg2 -= (U2->C.S_C.DEF/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9657 if(U->C.A->D->type == 1) mostDmg2 -= (U2->C.S_C.ATK/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9658 if(U->C.A->D->type == 2) mostDmg2 -= (U2->C.S_C.EVA/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9659 if(U->C.A->D->type == 3) mostDmg2 -= (U2->C.S_C.ACU/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9660 if(U->C.A->D->type == 4) mostDmg2 -= (U2->C.S_C.CAP/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9663 }else if(U->C.A->D->fix == 1){
9664 mostDmg2 = mostDmg2/2 + ((U->C.S_C.ATK/2+U->C.S_C.HIT/2)/2*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight;
9666 if(U->C.A->D->type == 0) mostDmg2 -= (U2->C.S_C.DEF/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9667 if(U->C.A->D->type == 1) mostDmg2 -= (U2->C.S_C.ATK/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9668 if(U->C.A->D->type == 2) mostDmg2 -= (U2->C.S_C.EVA/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9669 if(U->C.A->D->type == 3) mostDmg2 -= (U2->C.S_C.ACU/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9670 if(U->C.A->D->type == 4) mostDmg2 -= (U2->C.S_C.CAP/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9672 }else if(U->C.A->D->fix == 0){
9680 mostDmg2 = [self dmgResist:mostDmg2];
9683 costVIG = U->C.A->vigor;
9685 if(mostDmg < mostDmg2 && U->C.A->rangeA <= U2->atkRange && U->C.A->rangeB >= U2->atkRange && U->C.A->D->sort != 1 && mpCost <= U->C.S_C.MP && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->C.A opponent:U2]){
9691 //mostDmg = U->C.A->totalD;
9694 U->C.A = U->C.A->next;
9700 if(!battleSet2PushedFlag){
9701 for(int i = 0;i < mostNumSub;i++){
9702 U->C.A = U->C.A->next;
9706 for(int i = 0;i < crCAL2;i++){
9707 U->C.A = U->C.A->next;
9713 if(U->C.A->rangeA <= U2->atkRange && U->C.A->rangeB >= U2->atkRange && U->C.A->D->sort != 1 && ![self sortEcheck:U->C.A opponent:U2]){
9715 }else while(U->C.A){
9716 U->C.A = U->C.A->next;
9722 BTunitAttackFlag2 = false;
9723 message = [message stringByAppendingString:[NSString stringWithFormat:@"射程外\n"]];
9729 if(attackCR2->magic){
9730 btAttackType2 = BT_TYPE_MAGIC;
9732 btAttackType2 = BT_TYPE_NORMAL;
9735 if(BTunitAttackFlag2)
9736 if((btAttackType2 == BT_TYPE_NORMAL && btAttackMoveValue2 < 2)
9737 || (btAttackType2 == BT_TYPE_MAGIC && btAttackMoveValue2 < 5)
9738 || (btAttackType2 == BT_TYPE_ABILITY && btAttackMoveValue2 < 2)){
9741 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@の%@\n", U->C.nameNick, U->C.A->name]];
9743 [battleDialog setStringValue:message];
9750 if(!battleDef2Flag && !battleDod2Flag) message = [message stringByAppendingString:[NSString stringWithFormat:@"%@の%@\n", U->C.nameNick, U->C.A->name]];
9752 if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag2 && ![U->C.A->AN.movName isEqualToString:@""] && ![U->C.A->AN.movName isEqualToString:@"(null)"] && U->C.A->AN.movName != NULL){
9753 [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]];
9755 NSString *path = @"data/AttackList/ALdata";
9757 path = [path stringByAppendingFormat:@"%dE", U->chipNumber+1];
9759 path = [path stringByAppendingFormat:@"/"];
9761 path = [path stringByAppendingString:U->C.A->AN.movName];
9764 AVpreview = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
9767 AVPV.player = [AVpreview retain];
9768 AVPV.videoGravity = AVLayerVideoGravityResize;
9773 [AVPV setControlsStyle:0];
9774 [AVPV setHidden:NO];
9776 [battleDialog setStringValue:message];
9778 avPlayerFlag2 = true;
9783 }else if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag1 && !animationFlag2 && U->C.A->AN.ANI && !animationFlag3){
9786 animationFlag2 = true;
9796 if(U->C.A->D->type == 0) dmg = U->C.S_C.ATK + U->C.A->totalD;
9797 if(U->C.A->D->type == 1) dmg = U->C.S_C.DEF + U->C.A->totalD;
9798 if(U->C.A->D->type == 2) dmg = U->C.S_C.ACU + U->C.A->totalD;
9799 if(U->C.A->D->type == 3) dmg = U->C.S_C.EVA + U->C.A->totalD;
9800 if(U->C.A->D->type == 4) dmg = U->C.S_C.CAP + U->C.A->totalD;
9801 if(U->C.A->D->type == 5) dmg = U->C.A->totalD;
9806 while (!(AUN[1] == U->number)) {
9811 while (!(DUN[1] == U->number)) {
9814 NSString *string = [U2A->name retain];
9815 while (![U->C.A->name isEqualToString:string] && U->C.A) {
9816 U->C.A = U->C.A->next;
9819 if(!U->C.A) U->C.A = aTop2;
9821 if(U->C.A) urSupposedToGet = pow(8, log(3+U->C.A->totalD/16));
9823 if(U2) asItIs = 1/log(3+U2->C.S_C.DEF/64);
9826 if(U->C.A->melee) oopsIsRight = U->C.S_C.MEL;
9827 else oopsIsRight = U->C.S_C.MIS;
9829 oopsIsRight = oopsIsRight/100;
9832 if(!U2->C.aura && U->C.A->D){
9833 if(U->C.A->D->type == 0) dmg = ((U->C.S_C.ATK*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9834 - U2->C.S_C.DEF*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9835 if(U->C.A->D->type == 1) dmg = ((U->C.S_C.DEF*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9836 - U2->C.S_C.ATK*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9837 if(U->C.A->D->type == 2) dmg = ((U->C.S_C.ACU*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9838 - U2->C.S_C.EVA*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9839 if(U->C.A->D->type == 3) dmg = ((U->C.S_C.EVA*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9840 - U2->C.S_C.ACU*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9841 if(U->C.A->D->type == 4) dmg = ((U->C.S_C.CAP*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9842 - U2->C.S_C.CAP*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9843 if(U->C.A->D->type == 5) dmg = U->C.A->totalD;
9844 }else if(U->C.A->D){
9845 double val = val = 1/log(3+U2->C.S_C.MP/64);
9846 if(U->C.A->D->type == 0) dmg = ((U->C.S_C.ATK*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9847 - U2->C.S_C.DEF*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9848 if(U->C.A->D->type == 1) dmg = ((U->C.S_C.DEF*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9849 - U2->C.S_C.ATK*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9850 if(U->C.A->D->type == 2) dmg = ((U->C.S_C.ACU*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9851 - U2->C.S_C.EVA*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9852 if(U->C.A->D->type == 3) dmg = ((U->C.S_C.EVA*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9853 - U2->C.S_C.ACU*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9854 if(U->C.A->D->type == 4) dmg = ((U->C.S_C.CAP*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight
9855 - U2->C.S_C.CAP*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs*val;
9856 if(U->C.A->D->type == 5) dmg = U->C.A->totalD*val;
9858 val2 = log(3+U2->C.S_C.MP/64);
9863 if(U->C.A->D->fix == 2){
9864 dmg = dmg/2 + (U->C.S_C.HIT/2*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight;
9866 if(U->C.A->D->type == 0) dmg -= (U2->C.S_C.DEF/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9867 if(U->C.A->D->type == 1) dmg -= (U2->C.S_C.ATK/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9868 if(U->C.A->D->type == 2) dmg -= (U2->C.S_C.EVA/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9869 if(U->C.A->D->type == 3) dmg -= (U2->C.S_C.ACU/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9870 if(U->C.A->D->type == 4) dmg -= (U2->C.S_C.CAP/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9873 }else if(U->C.A->D->fix == 1){
9874 dmg = dmg/2 + ((U->C.S_C.ATK/2+U->C.S_C.HIT/2)/2*U->C.S_C.HP/U->C.S_M.HP+urSupposedToGet*U->C.S_C.vigor/100)*oopsIsRight;
9876 if(U->C.A->D->type == 0) dmg -= (U2->C.S_C.DEF/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9877 if(U->C.A->D->type == 1) dmg -= (U2->C.S_C.ATK/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9878 if(U->C.A->D->type == 2) dmg -= (U2->C.S_C.EVA/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9879 if(U->C.A->D->type == 3) dmg -= (U2->C.S_C.ACU/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9880 if(U->C.A->D->type == 4) dmg -= (U2->C.S_C.CAP/2*U2->C.S_C.HP/U2->C.S_M.HP/2*U2->C.S_C.vigor/100)*asItIs;
9882 }else if(U->C.A->D->fix == 0){
9886 costMP = U->C.A->MP + floor(U->C.A->pMP*U->C.S_M.MP/100 + 0.5);
9887 U->C.S_C.MP -= costMP;
9889 hit = U->C.S_C.ACU*U->C.S_C.HIT/100*U->C.S_C.HP/U->C.S_M.HP;
9890 hitFix = U->C.A->hitPercent;
9897 while (!(DUN[1] == U->number)) {
9903 while (!(AUN[1] == U->number)) {
9907 hit2 = U->C.S_C.EVA*U->C.S_C.DOD/100*U->C.S_C.HP/U->C.S_M.HP;
9909 hi = U->C.S_C.LUK - U2->C.S_C.LUK;
9912 hit = 60 + hit/hit2*10 - hit2/hit*10 + hitFix - log(hi/10+1)*hit2/hit*10;
9913 if(hit > 100) hit = 100;
9914 if(hit < 0) hit = 0;
9915 if([self sortEcheck:U2A opponent:U])
9918 battleDod1Flag = false;
9921 while (!(DUN[1] == U->number)) {
9927 while (!(AUN[1] == U->number)) {
9932 if(battleDod1Flag) hit /= 2;
9934 if(hit - rand()%omg > 0 && !battleDef2Flag && !battleDod2Flag){
9935 if(U2A->D->type == 0) NSLog(@"計算式:((%g+%g)*%g-%g)*%g*%g", U2->C.S_C.ATK,U2A->totalD,oopsIsRight,U->C.S_C.DEF, val, val2);
9936 if(U2A->D->type == 4) NSLog(@"計算式:((%g+%g)*%g-%g)*%g%g", U2->C.S_C.CAP,U2A->totalD,oopsIsRight,U->C.S_C.CAP, val, val2);
9937 NSLog(@"修正前のダメージ:%g", dmg);
9938 dmg = [self dmgResist:dmg];
9939 NSLog(@"属性後のダメージ:%g", dmg);
9940 def2 = pow(def2, U->C.S_C.DEF);
9941 int omfg = rand()%100;
9942 NSLog(@"ダメージ幅:%g〜%g", floor(dmg), floor(dmg + dmg/10));
9943 dmg = (dmg*omfg/100/10 + dmg);
9944 NSLog(@"地形効果:%g - %g", dmg, dmg*MC[chipNum[possionX][possionY]].dmgfix/100);
9945 if(buildNum[possionX][possionY] < 0) dmg -= dmg*MC[chipNum[possionX][possionY]].dmgfix/100 - 0.5;
9946 else dmg -= dmg*BC[buildNum[possionX][possionY]].dmgfix/100 - 0.5;
9948 if(U->C.S_C.typeMOVE == RIKU){
9949 if(U2A->riku == A) dmg = dmg*1.2;
9950 if(U2A->riku == B) dmg = dmg*1.0;
9951 if(U2A->riku == C) dmg = dmg*0.6;
9952 if(U2A->riku == D) dmg = dmg*0.2;
9953 if(U2A->riku == E) dmg = 0;
9954 if(U2A->riku == S) dmg = dmg*1.5;
9955 if(U2A->riku == SS) dmg = dmg*2.0;
9956 } if(U->C.S_C.typeMOVE == UMI &&
9957 (MC[chipNum[possionX][possionY]].type == 3 || MC[chipNum[possionX][possionY]].type == 4)){
9958 if(U2A->umi == A) dmg = dmg*1.2;
9959 if(U2A->umi == B) dmg = dmg*1.0;
9960 if(U2A->umi == C) dmg = dmg*0.6;
9961 if(U2A->umi == D) dmg = dmg*0.2;
9962 if(U2A->umi == E) dmg = 0;
9963 if(U2A->umi == S) dmg = dmg*1.5;
9964 if(U2A->umi == SS) dmg = dmg*2.0;
9965 }else if(U->C.S_C.typeMOVE == UMI){
9966 if(U2A->riku == A) dmg = dmg*1.2;
9967 if(U2A->riku == B) dmg = dmg*1.0;
9968 if(U2A->riku == C) dmg = dmg*0.6;
9969 if(U2A->riku == D) dmg = dmg*0.2;
9970 if(U2A->riku == E) dmg = 0;
9971 if(U2A->riku == S) dmg = dmg*1.5;
9972 if(U2A->riku == SS) dmg = dmg*2.0;
9974 } if(U->C.S_C.typeMOVE == CHU){
9975 if(U2A->chu == A) dmg = dmg*1.2;
9976 if(U2A->chu == B) dmg = dmg*1.0;
9977 if(U2A->chu == C) dmg = dmg*0.6;
9978 if(U2A->chu == D) dmg = dmg*0.2;
9979 if(U2A->chu == E) dmg = 0;
9980 if(U2A->chu == S) dmg = dmg*1.5;
9981 if(U2A->chu == SS) dmg = dmg*2.0;
9982 } if(U->C.S_C.typeMOVE == SORA){
9983 if(U2A->sora == A) dmg = dmg*1.2;
9984 if(U2A->sora == B) dmg = dmg*1.0;
9985 if(U2A->sora == C) dmg = dmg*0.6;
9986 if(U2A->sora == D) dmg = dmg*0.2;
9987 if(U2A->sora == E) dmg = 0;
9988 if(U2A->sora == S) dmg = dmg*1.5;
9989 if(U2A->sora == SS) dmg = dmg*2.0;
9992 NSLog(@"ユニットの地形適用後:%g", dmg);
9995 graze = U->C.S_C.MEN/U2->C.S_C.MEN*U->C.S_C.LUK/3;
9999 if(graze > omfg && !healFlag) {dmg = dmg/5;
10003 if(battleDef1Flag) dmg -= dmg*0.5;
10004 battleDef1Flag = false;
10006 if(dmg < 0) dmg = 0;
10007 U->C.S_C.HP -= dmg;
10010 [btHITtf2 setStringValue:[NSString stringWithFormat:@"命中率 %g%", floor(hit)]];
10011 [btDMGtf2 setStringValue:[NSString stringWithFormat:@"ダメージ値 %g", dmg]];
10014 if(U->C.S_C.HP <= 0) {
10016 U2->C.S_C.vigor += 5;
10018 messageProcess = 2;
10025 if(U->targType2L) {
10027 targType2Lflag = true;
10032 if(U->targType2D) {
10034 targType2Dflag = true;
10044 [tplayer1 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->C.S_C.HP, U->C.S_M.HP]];
10046 [lplayer1 setIntValue:U->C.S_C.HP/U->C.S_M.HP*100];
10048 if(![U2A->msg isEqualToString:@""]){
10049 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@\n",
10050 [self originalMessage:U2A->msg subj:U2->C.nameNick obje:U->C.nameNick]]];
10056 message = [message stringByAppendingString:[NSString stringWithFormat:@"かすりヒット!\n"]];
10058 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は%gのダメージを受けた!", U->C.nameNick, dmg]];
10061 }else if(battleDef2Flag){
10065 while (!(DUN[1] == U->number)) {
10070 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は身構えている", U->C.nameNick]];
10071 btHitFlag2 = false;
10073 }else if(battleDod2Flag){
10076 while (!(DUN[1] == U->number)) {
10080 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は様子をうかがっている", U->C.nameNick]];
10082 btHitFlag2 = false;
10085 message = [message stringByAppendingString:[NSString stringWithFormat:@"ミス!%@はダメージを受けていない!", U->C.nameNick]];
10086 btHitFlag2 = false;
10089 [battleDialog setStringValue:message];
10092 [btHITtf2 setStringValue:[NSString stringWithFormat:@"命中率 %g%", floor(hit)]];
10096 avPlayerFlag2 = false;
10097 animationFlag3 = false;
10098 btAtattckMoveEnd = false;
10103 if(bLoopFlag) break;
10104 if(cpuAImodeflag && !cpuTurnEndFlag) {
10109 fuckingLoadBugFix = false;
10111 battleSetUp = false;
10112 battleSetFlag = false;
10113 battleFlag = false;
10115 battleSet2PushedFlag = false;
10116 cpuModeBATTLEendFlag = true;
10119 [battleWindow close];
10120 pussyLoopFlag = false;
10121 cpuAtkExtendFlag3 = false;
10122 cpuOMFGmoveATKfixFlag = false;
10123 unitNoMoveFlag = false;
10126 CPUmostDmgChoice = false;
10128 cpuIsAttackingFlag = false;
10129 for(int g = 0;g < chipWidth;g++){
10130 for(int k = 0;k < chipHeight;k++){
10131 g_attackRangeExtent[g][k] = 0;
10137 BTunitAttackFlag1 = false;
10138 BTunitAttackFlag2 = false;
10139 BTunitAttackFlag1 = false;
10140 btAttackMoveValue1 = 0;
10141 btAttackMoveValue2 = 0;
10142 btHitFlag1 = false;
10143 btHitFlag2 = false;
10146 btHitExtendFlag1 = false;
10147 btHitExtendProc1 = 0;
10148 btHitExtendMove1 = 0;
10149 btHitExtendFlag2 = false;
10150 btHitExtendProc2 = 0;
10151 btHitExtendMove2 = 0;
10152 battleDef1Flag = false;
10153 battleDef2Flag = false;
10154 battleDod1Flag = false;
10155 battleDod2Flag = false;
10156 baseDistanceCompFlag = false;
10157 battleVeryBegunFlag = false;
10158 CPUAttackSubmitFlag = false;
10159 battleSetUp = false;
10160 displayBattleCheckPanelFlag = 0;
10161 battleEndFlag = true;
10162 assholeLoadBugFix = false;
10164 cpuOMFGmoveATKfixFlag = true;
10165 battleIsProcFlag = false;
10173 UCselected = UC[-1];
10178 -(void)DisplayMessageMod1A{//両方モビール
10180 double def2 = (double)31/32;
10181 NSString *message = @"";
10202 if(bLoopFlag) return;
10204 while (!(AUN[1] == U->number)) {
10208 ATTACK *aTop = U->CL.A;
10209 for(int i = 0;i < crCAL1;i++){
10210 U->CL.A = U->CL.A->next;
10214 if(!battleDef1Flag && !battleDod1Flag) message = [message stringByAppendingString:[NSString stringWithFormat:@"%@の%@\n", U->CL.name, U->CL.A->name]];
10216 if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag1 && ![U->CL.A->AN.movName isEqualToString:@""] && ![U->CL.A->AN.movName isEqualToString:@"(null)"] && U->CL.A->AN.movName != NULL){
10217 [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]];
10219 NSString *path = @"data/AttackList/ALdata";
10221 path = [path stringByAppendingFormat:@"%dE", U->chipNumber+1];
10223 path = [path stringByAppendingFormat:@"/"];
10225 path = [path stringByAppendingString:U->CL.A->AN.movName];
10227 NSData *AVData = [NSData dataWithContentsOfFile:path];
10230 AVpreview = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
10235 NSString *path = @"data/AttackList3/IALdata";
10237 path = [path stringByAppendingFormat:@"%dE", U->CL.A->indexE];
10239 path = [path stringByAppendingFormat:@"/"];
10241 path = [path stringByAppendingString:U->CL.A->AN.movName];
10244 NSData *AVData = [NSData dataWithContentsOfFile:path];
10247 AVpreview = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
10253 AVPV.player = [AVpreview retain];
10254 AVPV.videoGravity = AVLayerVideoGravityResize;
10260 [AVPV setHidden:NO];
10262 [battleDialog setStringValue:message];
10264 avPlayerFlag1 = true;
10270 }else if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag1 && !animationFlag1 && U->CL.A->AN.ANI && !animationFlag3){
10272 [battleDialog setStringValue:message];
10273 animationFlag1 = true;
10280 dmg = U->CL.A->totalD;
10282 costMP = U->CL.A->EN + floor(U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5);
10283 U->CL.S_C.EN -= costMP;
10285 hit = U->CL.S_C.MOB+U->C.S_C.HIT;
10286 hitFix = U->CL.A->hitPercent;
10292 while (!(DUN[1] == U->number)) {
10295 hit = 60 + hit/(U->CL.S_C.MOB*U->C.S_C.DOD/100)*10 - (U->CL.S_C.MOB*U->C.S_C.DOD/100)/hit*10 + hitFix;
10296 if(hit > 100) hit = 100;
10297 if(U2A->D->sort == 1){
10300 if([self sortEcheck:U2A opponent:U])
10306 if(battleDod2Flag) wtf = 50;
10307 if(hit - rand()%wtf > 0 && !battleDef1Flag && !battleDod1Flag){
10309 if(U2A->D->sort == 0){
10310 NSLog(@"修正前のダメージ:%g", dmg);
10311 dmg = [self dmgResist:dmg];
10312 NSLog(@"属性後のダメージ:%g", dmg);
10313 def2 = pow(def2, U->CL.S_C.ARM);
10314 int omfg = rand()%100;
10315 NSLog(@"計算式:(%g + %g - %g)", dmg*omfg/100, dmg, U->CL.S_C.ARM);
10317 NSLog(@"ダメージ幅:%g〜%g", (0 + dmg - U->CL.S_C.ARM), (dmg + dmg - U->CL.S_C.ARM));
10318 dmg = (dmg*omfg/100 + dmg - U->CL.S_C.ARM);
10319 NSLog(@"地形効果:%g - %g", dmg, dmg*MC[chipNum[possionX][possionY]].dmgfix/100);
10320 if(buildNum[possionX][possionY] < 0) dmg -= dmg*MC[chipNum[possionX][possionY]].dmgfix/100 - 0.5;
10321 else dmg -= dmg*BC[buildNum[possionX][possionY]].dmgfix/100 - 0.5;
10323 if(U->CL.S_C.typeMOVE == RIKU){
10324 if(U2A->riku == A) dmg = dmg*1.2;
10325 if(U2A->riku == B) dmg = dmg*1.0;
10326 if(U2A->riku == C) dmg = dmg*0.6;
10327 if(U2A->riku == D) dmg = dmg*0.2;
10328 if(U2A->riku == E) dmg = 0;
10329 if(U2A->riku == S) dmg = dmg*1.5;
10330 if(U2A->riku == SS) dmg = dmg*2.0;
10331 } if(U->CL.S_C.typeMOVE == UMI &&
10332 (MC[chipNum[possionX][possionY]].type == 3 || MC[chipNum[possionX][possionY]].type == 4)){
10333 if(U2A->umi == A) dmg = dmg*1.2;
10334 if(U2A->umi == B) dmg = dmg*1.0;
10335 if(U2A->umi == C) dmg = dmg*0.6;
10336 if(U2A->umi == D) dmg = dmg*0.2;
10337 if(U2A->umi == E) dmg = 0;
10338 if(U2A->umi == S) dmg = dmg*1.5;
10339 if(U2A->umi == SS) dmg = dmg*2.0;
10340 }else if(U->CL.S_C.typeMOVE == UMI){
10341 if(U2A->riku == A) dmg = dmg*1.2;
10342 if(U2A->riku == B) dmg = dmg*1.0;
10343 if(U2A->riku == C) dmg = dmg*0.6;
10344 if(U2A->riku == D) dmg = dmg*0.2;
10345 if(U2A->riku == E) dmg = 0;
10346 if(U2A->riku == S) dmg = dmg*1.5;
10347 if(U2A->riku == SS) dmg = dmg*2.0;
10349 } if(U->CL.S_C.typeMOVE == CHU){
10350 if(U2A->chu == A) dmg = dmg*1.2;
10351 if(U2A->chu == B) dmg = dmg*1.0;
10352 if(U2A->chu == C) dmg = dmg*0.6;
10353 if(U2A->chu == D) dmg = dmg*0.2;
10354 if(U2A->chu == E) dmg = 0;
10355 if(U2A->chu == S) dmg = dmg*1.5;
10356 if(U2A->chu == SS) dmg = dmg*2.0;
10357 } if(U->CL.S_C.typeMOVE == SORA){
10358 if(U2A->sora == A) dmg = dmg*1.2;
10359 if(U2A->sora == B) dmg = dmg*1.0;
10360 if(U2A->sora == C) dmg = dmg*0.6;
10361 if(U2A->sora == D) dmg = dmg*0.2;
10362 if(U2A->sora == E) dmg = 0;
10363 if(U2A->sora == S) dmg = dmg*1.5;
10364 if(U2A->sora == SS) dmg = dmg*2.0;
10367 NSLog(@"ユニットの地形適用後:%g", dmg);
10368 if(battleDef2Flag) NSLog(@"防御後のダメージ:%g", dmg/2);
10369 graze = U->C.S_C.MEN/U2->C.S_C.MEN*U->C.S_C.LUK/3;
10373 if(graze > omfg && !healFlag) {dmg = dmg/5;
10376 if(battleDef2Flag) dmg -= dmg*0.5;
10377 battleDef2Flag = false;
10379 if(dmg < 0) dmg = 0;
10380 U->CL.S_C.HP -= dmg;
10383 }else if(U2A->D->sort == 1){
10384 dmg = dmg + rand()%5*dmg/10 - rand()%5*dmg/10;
10387 U->CL.S_C.HP += dmg;
10389 if(U->CL.S_C.HP > U->CL.S_M.HP) U->CL.S_C.HP = U->CL.S_M.HP;
10394 if(U->CL.S_C.HP <= 0) {
10396 U2->C.S_C.vigor += 5;
10398 messageProcess = 2;
10405 if(U->targType2L) {
10407 targType2Lflag = true;
10412 if(U->targType2D) {
10414 targType2Dflag = true;
10422 [tplayer2 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
10423 [lplayer2 setIntValue:U->CL.S_C.HP/U->CL.S_M.HP*100];
10425 if(![U2A->msg isEqualToString:@""]){
10427 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@\n",
10428 [self originalMessage:U2A->msg subj:U2->CL.name obje:U->CL.name]]];
10432 if(grazeFlag) message = [message stringByAppendingString:[NSString stringWithFormat:@"かすりヒット!\n"]];
10433 if(!healFlag) message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は%gのダメージを受けた!", U->CL.name, dmg]];
10434 else message = [message stringByAppendingString:[NSString stringWithFormat:@"%@はHPが%g回復した!", U->CL.name, dmg]];
10435 }else if(battleDef1Flag){
10439 while (!(AUN[1] == U->number)) {
10444 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は身構えている", U->CL.name]];
10447 }else if(battleDod1Flag){
10450 while (!(AUN[1] == U->number)) {
10454 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は様子をうかがっている", U->CL.name]];
10459 message = [message stringByAppendingString:[NSString stringWithFormat:@"ミス!%@はダメージを受けていない!", U->CL.name]];
10462 [battleDialog setStringValue:message];
10478 -(void)DisplayMessageMod1B{
10480 double def2 = (double)31/32;
10481 NSString *message = @"";
10501 if(bLoopFlag) return;
10504 while (!(AUN[1] == U->number)) {
10511 while (!(DUN[1] == U->number)) {
10515 ATTACK *aTop2 = U->CL.A;
10521 mpCost = floor(U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5);
10522 costVIG = U->C.A->vigor;
10525 mpCost = floor(U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5);
10526 if(mostDmg < U->CL.A->totalD && U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && U->CL.A->D->sort != 1 && mpCost <= U->CL.S_C.EN && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->CL.A opponent:U2]){
10527 mostDmg = U->CL.A->totalD;
10530 U->CL.A = U->CL.A->next;
10536 if(!battleSet2PushedFlag){
10537 for(int i = 0;i < mostNumSub;i++){
10538 U->CL.A = U->CL.A->next;
10542 for(int i = 0;i < crCAL2;i++){
10543 U->CL.A = U->CL.A->next;
10547 if(!U->CL.A->name){
10552 if(U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && U->CL.A->D->sort != 1 && ![self sortEcheck:U->CL.A opponent:U2]){
10553 }else while(U->CL.A){
10554 U->CL.A = U->CL.A->next;
10561 message = [message stringByAppendingString:[NSString stringWithFormat:@"射程外\n"]];
10565 if(!battleDef2Flag && !battleDod2Flag) message = [message stringByAppendingString:[NSString stringWithFormat:@"%@の%@\n", U->CL.name, U->CL.A->name]];
10568 if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag2 && ![U->CL.A->AN.movName isEqualToString:@""] && ![U->CL.A->AN.movName isEqualToString:@"(null)"] && U->CL.A->AN.movName != NULL){
10569 [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]];
10571 NSString *path = @"data/AttackList/ALdata";
10573 path = [path stringByAppendingFormat:@"%dE", U->chipNumber+1];
10575 path = [path stringByAppendingFormat:@"/"];
10577 path = [path stringByAppendingString:U->CL.A->AN.movName];
10580 AVpreview = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
10583 AVPV.player = [AVpreview retain];
10584 AVPV.videoGravity = AVLayerVideoGravityResize;
10589 [AVPV setControlsStyle:0];
10590 [AVPV setHidden:NO];
10592 [battleDialog setStringValue:message];
10594 avPlayerFlag2 = true;
10599 }else if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag1 && !animationFlag2 && U->CL.A->AN.ANI && !animationFlag3){
10602 animationFlag2 = true;
10610 dmg = U->CL.A->totalD;
10612 costMP = U->CL.A->EN + floor(U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5);
10613 U->CL.S_C.EN -= costMP;
10615 hit = U->CL.S_C.MOB + U->C.S_C.HIT;
10616 hitFix = U->CL.A->hitPercent;
10623 while (!(AUN[1] == U->number)) {
10628 hit = 60 + hit/(U->CL.S_C.MOB*U->C.S_C.DOD/100)*10 - (U->CL.S_C.MOB*U->C.S_C.DOD/100)/hit*10 + hitFix;
10629 if(hit > 100) hit = 100;
10631 if([self sortEcheck:U2A opponent:U])
10634 battleDod1Flag = false;
10637 if(battleDod1Flag) omg = 50;
10639 if(hit - rand()%omg > 0 && !battleDef2Flag && !battleDod2Flag){
10640 NSLog(@"修正前のダメージ:%g", dmg);
10641 dmg = [self dmgResist:dmg];
10642 NSLog(@"属性後のダメージ:%g", dmg);
10643 def2 = pow(def2, U->CL.S_C.ARM);
10644 int omfg = rand()%100;
10645 NSLog(@"計算式:(%g + %g - %g)", dmg*omfg/100, dmg, U->CL.S_C.ARM);
10646 NSLog(@"ダメージ幅:%g〜%g", (0 + dmg - U->CL.S_C.ARM), (dmg + dmg - U->CL.S_C.ARM));
10647 dmg = (dmg*omfg/100 + dmg - U->CL.S_C.ARM);
10650 NSLog(@"地形効果:%g - %g", dmg, dmg*MC[chipNum[possionX][possionY]].dmgfix/100);
10651 if(buildNum[possionX][possionY] < 0) dmg -= dmg*MC[chipNum[possionX][possionY]].dmgfix/100 - 0.5;
10652 else dmg -= dmg*BC[buildNum[possionX][possionY]].dmgfix/100 - 0.5;
10654 if(U->CL.S_C.typeMOVE == RIKU){
10655 if(U2A->riku == A) dmg = dmg*1.2;
10656 if(U2A->riku == B) dmg = dmg*1.0;
10657 if(U2A->riku == C) dmg = dmg*0.6;
10658 if(U2A->riku == D) dmg = dmg*0.2;
10659 if(U2A->riku == E) dmg = 0;
10660 if(U2A->riku == S) dmg = dmg*1.5;
10661 if(U2A->riku == SS) dmg = dmg*2.0;
10662 } if(U->CL.S_C.typeMOVE == UMI &&
10663 (MC[chipNum[possionX][possionY]].type == 3 || MC[chipNum[possionX][possionY]].type == 4)){
10664 if(U2A->umi == A) dmg = dmg*1.2;
10665 if(U2A->umi == B) dmg = dmg*1.0;
10666 if(U2A->umi == C) dmg = dmg*0.6;
10667 if(U2A->umi == D) dmg = dmg*0.2;
10668 if(U2A->umi == E) dmg = 0;
10669 if(U2A->umi == S) dmg = dmg*1.5;
10670 if(U2A->umi == SS) dmg = dmg*2.0;
10671 }else if(U->CL.S_C.typeMOVE == UMI){
10672 if(U2A->riku == A) dmg = dmg*1.2;
10673 if(U2A->riku == B) dmg = dmg*1.0;
10674 if(U2A->riku == C) dmg = dmg*0.6;
10675 if(U2A->riku == D) dmg = dmg*0.2;
10676 if(U2A->riku == E) dmg = 0;
10677 if(U2A->riku == S) dmg = dmg*1.5;
10678 if(U2A->riku == SS) dmg = dmg*2.0;
10680 } if(U->CL.S_C.typeMOVE == CHU){
10681 if(U2A->chu == A) dmg = dmg*1.2;
10682 if(U2A->chu == B) dmg = dmg*1.0;
10683 if(U2A->chu == C) dmg = dmg*0.6;
10684 if(U2A->chu == D) dmg = dmg*0.2;
10685 if(U2A->chu == E) dmg = 0;
10686 if(U2A->chu == S) dmg = dmg*1.5;
10687 if(U2A->chu == SS) dmg = dmg*2.0;
10688 } if(U->CL.S_C.typeMOVE == SORA){
10689 if(U2A->sora == A) dmg = dmg*1.2;
10690 if(U2A->sora == B) dmg = dmg*1.0;
10691 if(U2A->sora == C) dmg = dmg*0.6;
10692 if(U2A->sora == D) dmg = dmg*0.2;
10693 if(U2A->sora == E) dmg = 0;
10694 if(U2A->sora == S) dmg = dmg*1.5;
10695 if(U2A->sora == SS) dmg = dmg*2.0;
10698 NSLog(@"ユニットの地形適用後:%g", dmg);
10700 graze = U->C.S_C.MEN/U2->C.S_C.MEN*U->C.S_C.LUK/3;
10704 if(graze > omfg && !healFlag) {dmg = dmg/5;
10708 if(battleDef1Flag) dmg -= dmg*0.5;
10709 battleDef1Flag = false;
10711 if(dmg < 0) dmg = 0;
10712 U->CL.S_C.HP -= dmg;
10716 if(U->CL.S_C.HP <= 0) {
10718 U2->C.S_C.vigor += 5;
10720 messageProcess = 2;
10727 if(U->targType2L) {
10729 targType2Lflag = true;
10734 if(U->targType2D) {
10736 targType2Dflag = true;
10746 [tplayer1 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
10748 [lplayer1 setIntValue:U->CL.S_C.HP/U->CL.S_M.HP*100];
10750 if(![U2A->msg isEqualToString:@""]){
10751 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@\n",
10752 [self originalMessage:U2A->msg subj:U2->CL.name obje:U->CL.name]]];
10758 message = [message stringByAppendingString:[NSString stringWithFormat:@"かすりヒット!\n"]];
10760 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は%gのダメージを受けた!", U->CL.name, dmg]];
10762 }else if(battleDef2Flag){
10766 while (!(DUN[1] == U->number)) {
10771 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は身構えている", U->CL.name]];
10774 }else if(battleDod2Flag){
10777 while (!(DUN[1] == U->number)) {
10781 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は様子をうかがっている", U->CL.name]];
10786 message = [message stringByAppendingString:[NSString stringWithFormat:@"ミス!%@はダメージを受けていない!", U->CL.name]];
10789 [battleDialog setStringValue:message];
10798 -(void)DisplayMessageMod2A{//攻撃側モビール
10800 double def2 = (double)31/32;
10801 NSString *message = @"";
10821 if(bLoopFlag) return;
10824 while (!(DUN[1] == U->number)) {
10830 while (!(AUN[1] == U->number)) {
10834 ATTACK *aTop = U->CL.A;
10835 for(int i = 0;i < crCAL1;i++){
10836 U->CL.A = U->CL.A->next;
10840 if(!battleDef1Flag && !battleDod1Flag) message = [message stringByAppendingString:[NSString stringWithFormat:@"%@の%@\n", U->CL.name, U->CL.A->name]];
10842 if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag1 && ![U->CL.A->AN.movName isEqualToString:@""] && ![U->CL.A->AN.movName isEqualToString:@"(null)"] && U->CL.A->AN.movName != NULL){
10843 [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]];
10845 NSString *path = @"data/AttackList/ALdata";
10847 path = [path stringByAppendingFormat:@"%dE", U->chipNumber+1];
10849 path = [path stringByAppendingFormat:@"/"];
10851 path = [path stringByAppendingString:U->CL.A->AN.movName];
10853 NSData *AVData = [NSData dataWithContentsOfFile:path];
10856 AVpreview = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
10861 NSString *path = @"data/AttackList3/IALdata";
10863 path = [path stringByAppendingFormat:@"%dE", U->CL.A->indexE];
10865 path = [path stringByAppendingFormat:@"/"];
10867 path = [path stringByAppendingString:U->CL.A->AN.movName];
10870 NSData *AVData = [NSData dataWithContentsOfFile:path];
10873 AVpreview = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
10879 AVPV.player = [AVpreview retain];
10880 AVPV.videoGravity = AVLayerVideoGravityResize;
10886 [AVPV setHidden:NO];
10888 [battleDialog setStringValue:message];
10890 avPlayerFlag1 = true;
10896 }else if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag1 && !animationFlag1 && U->CL.A->AN.ANI && !animationFlag3){
10898 [battleDialog setStringValue:message];
10899 animationFlag1 = true;
10906 dmg = U->CL.A->totalD;
10907 double val = 1/log(3+U2->C.S_C.MP/64);
10912 costMP = U->CL.A->EN + floor(U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5);
10913 U->CL.S_C.EN -= costMP;
10915 hit = U->CL.S_C.MOB + U->C.S_C.HIT;
10916 hitFix = U->CL.A->hitPercent;
10922 while (!(DUN[1] == U->number)) {
10926 double hit2 = U->C.S_C.EVA*U->C.S_C.DOD/100*U->C.S_C.HP/U->C.S_M.HP;
10928 double hi = U->C.S_C.LUK - U2->C.S_C.LUK;
10931 hit = 60 + hit/hit2*10 - hit2/hit*10 + hitFix - log(hi/10+1)*hit2/hit*10;
10932 if(hit > 100) hit = 100;
10933 if(U2A->D->sort == 1){
10936 if([self sortEcheck:U2A opponent:U])
10942 if(battleDod2Flag) wtf = 50;
10943 if(hit - rand()%wtf > 0 && !battleDef1Flag && !battleDod1Flag){
10945 if(U2A->D->sort == 0){
10946 NSLog(@"修正前のダメージ:%g", dmg);
10947 dmg = [self dmgResist:dmg];
10948 NSLog(@"属性後のダメージ:%g", dmg);
10949 def2 = pow(def2, U->C.S_C.DEF);
10950 int omfg = rand()%100;
10951 NSLog(@"計算式:(%g + %g - %g)", dmg*omfg/100, dmg, U->C.S_C.DEF);
10952 NSLog(@"ダメージ幅:%g〜%g", (0 + dmg - U->C.S_C.DEF), (dmg/10 + dmg - U->C.S_C.DEF));
10953 dmg = (dmg*omfg/100/10 + dmg - U->C.S_C.DEF);
10954 NSLog(@"地形効果:%g - %g", dmg, dmg*MC[chipNum[possionX][possionY]].dmgfix/100);
10955 if(buildNum[possionX][possionY] < 0) dmg -= dmg*MC[chipNum[possionX][possionY]].dmgfix/100 - 0.5;
10956 else dmg -= dmg*BC[buildNum[possionX][possionY]].dmgfix/100 - 0.5;
10958 if(U->C.S_C.typeMOVE == RIKU){
10959 if(U2A->riku == A) dmg = dmg*1.2;
10960 if(U2A->riku == B) dmg = dmg*1.0;
10961 if(U2A->riku == C) dmg = dmg*0.6;
10962 if(U2A->riku == D) dmg = dmg*0.2;
10963 if(U2A->riku == E) dmg = 0;
10964 if(U2A->riku == S) dmg = dmg*1.5;
10965 if(U2A->riku == SS) dmg = dmg*2.0;
10966 } if(U->C.S_C.typeMOVE == UMI &&
10967 (MC[chipNum[possionX][possionY]].type == 3 || MC[chipNum[possionX][possionY]].type == 4)){
10968 if(U2A->umi == A) dmg = dmg*1.2;
10969 if(U2A->umi == B) dmg = dmg*1.0;
10970 if(U2A->umi == C) dmg = dmg*0.6;
10971 if(U2A->umi == D) dmg = dmg*0.2;
10972 if(U2A->umi == E) dmg = 0;
10973 if(U2A->umi == S) dmg = dmg*1.5;
10974 if(U2A->umi == SS) dmg = dmg*2.0;
10975 }else if(U->C.S_C.typeMOVE == UMI){
10976 if(U2A->riku == A) dmg = dmg*1.2;
10977 if(U2A->riku == B) dmg = dmg*1.0;
10978 if(U2A->riku == C) dmg = dmg*0.6;
10979 if(U2A->riku == D) dmg = dmg*0.2;
10980 if(U2A->riku == E) dmg = 0;
10981 if(U2A->riku == S) dmg = dmg*1.5;
10982 if(U2A->riku == SS) dmg = dmg*2.0;
10984 } if(U->C.S_C.typeMOVE == CHU){
10985 if(U2A->chu == A) dmg = dmg*1.2;
10986 if(U2A->chu == B) dmg = dmg*1.0;
10987 if(U2A->chu == C) dmg = dmg*0.6;
10988 if(U2A->chu == D) dmg = dmg*0.2;
10989 if(U2A->chu == E) dmg = 0;
10990 if(U2A->chu == S) dmg = dmg*1.5;
10991 if(U2A->chu == SS) dmg = dmg*2.0;
10992 } if(U->C.S_C.typeMOVE == SORA){
10993 if(U2A->sora == A) dmg = dmg*1.2;
10994 if(U2A->sora == B) dmg = dmg*1.0;
10995 if(U2A->sora == C) dmg = dmg*0.6;
10996 if(U2A->sora == D) dmg = dmg*0.2;
10997 if(U2A->sora == E) dmg = 0;
10998 if(U2A->sora == S) dmg = dmg*1.5;
10999 if(U2A->sora == SS) dmg = dmg*2.0;
11002 NSLog(@"ユニットの地形適用後:%g", dmg);
11003 if(battleDef2Flag) NSLog(@"防御後のダメージ:%g", dmg/2);
11004 graze = U->C.S_C.MEN/U2->C.S_C.MEN*U->C.S_C.LUK/3;
11008 if(graze > omfg && !healFlag) {dmg = dmg/5;
11011 if(battleDef2Flag) dmg -= dmg*0.5;
11012 battleDef2Flag = false;
11014 if(dmg < 0) dmg = 0;
11015 U->C.S_C.HP -= dmg;
11018 }else if(U2A->D->sort == 1){
11019 dmg = dmg + rand()%5*dmg/10 - rand()%5*dmg/10;
11022 U->CL.S_C.HP += dmg;
11024 if(U->CL.S_C.HP > U->CL.S_M.HP) U->CL.S_C.HP = U->CL.S_M.HP;
11029 if(U->C.S_C.HP <= 0) {
11031 U2->C.S_C.vigor += 5;
11033 messageProcess = 2;
11040 if(U->targType2L) {
11042 targType2Lflag = true;
11047 if(U->targType2D) {
11049 targType2Dflag = true;
11057 [tplayer2 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->C.S_C.HP, U->C.S_M.HP]];
11058 [lplayer2 setIntValue:U->C.S_C.HP/U->C.S_M.HP*100];
11060 if(![U2A->msg isEqualToString:@""]){
11062 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@\n",
11063 [self originalMessage:U2A->msg subj:U2->CL.name obje:U->C.name]]];
11067 if(grazeFlag) message = [message stringByAppendingString:[NSString stringWithFormat:@"かすりヒット!\n"]];
11068 if(!healFlag) message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は%gのダメージを受けた!", U->C.name, dmg]];
11069 else message = [message stringByAppendingString:[NSString stringWithFormat:@"%@はHPが%g回復した!", U->C.name, dmg]];
11070 }else if(battleDef1Flag){
11074 while (!(AUN[1] == U->number)) {
11079 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は身構えている", U->CL.name]];
11082 }else if(battleDod1Flag){
11085 while (!(AUN[1] == U->number)) {
11089 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は様子をうかがっている", U->CL.name]];
11094 message = [message stringByAppendingString:[NSString stringWithFormat:@"ミス!%@はダメージを受けていない!", U->C.name]];
11097 [battleDialog setStringValue:message];
11114 -(void)DisplayMessageMod2B{
11116 double def2 = (double)31/32;
11117 NSString *message = @"";
11137 if(bLoopFlag) return;
11140 while (!(AUN[1] == U->number)) {
11147 while (!(DUN[1] == U->number)) {
11151 ATTACK *aTop2 = U->C.A;
11157 mpCost = floor(U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5);
11158 costVIG = U->C.A->vigor;
11161 costVIG = U->C.A->vigor;
11163 mpCost = floor(U->C.A->MP + U->C.A->pMP*U->C.S_M.MP/100 + 0.5);
11165 if(mostDmg < U->C.A->totalD && U->C.A->rangeA <= U2->atkRange && U->C.A->rangeB >= U2->atkRange && U->C.A->D->sort != 1 && mpCost <= U->C.S_C.MP && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->C.A opponent:U2]){
11166 mostDmg = U->C.A->totalD;
11169 U->C.A = U->C.A->next;
11175 if(!battleSet2PushedFlag){
11176 for(int i = 0;i < mostNumSub;i++){
11177 U->C.A = U->C.A->next;
11180 if(mostNum < 0) U->C.A = NULL;
11182 for(int i = 0;i < crCAL2;i++){
11183 U->C.A = U->C.A->next;
11188 if(U->C.A->rangeA <= U2->atkRange && U->C.A->rangeB >= U2->atkRange && U->C.A->D->sort != 1 && ![self sortEcheck:U->C.A opponent:U2]){
11189 }else while(U->CL.A){
11190 U->C.A = U->C.A->next;
11196 message = [message stringByAppendingString:[NSString stringWithFormat:@"射程外\n"]];
11202 message = [message stringByAppendingString:[NSString stringWithFormat:@"射程外\n"]];
11206 if(!battleDef2Flag && !battleDod2Flag) message = [message stringByAppendingString:[NSString stringWithFormat:@"%@の%@\n", U->C.name, U->C.A->name]];
11209 if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag2 && ![U->C.A->AN.movName isEqualToString:@""] && ![U->C.A->AN.movName isEqualToString:@"(null)"] && U->C.A->AN.movName != NULL){
11210 [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]];
11212 NSString *path = @"data/AttackList/ALdata";
11214 path = [path stringByAppendingFormat:@"%dE", U->chipNumber+1];
11216 path = [path stringByAppendingFormat:@"/"];
11218 path = [path stringByAppendingString:U->C.A->AN.movName];
11221 AVpreview = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
11224 AVPV.player = [AVpreview retain];
11225 AVPV.videoGravity = AVLayerVideoGravityResize;
11230 [AVPV setControlsStyle:0];
11231 [AVPV setHidden:NO];
11233 [battleDialog setStringValue:message];
11235 avPlayerFlag2 = true;
11240 }else if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag1 && !animationFlag2 && U->C.A->AN.ANI && !animationFlag3){
11243 animationFlag2 = true;
11253 if(U->C.A->D->type == 0) dmg = U->C.S_C.ATK + U->C.A->totalD;
11254 if(U->C.A->D->type == 1) dmg = U->C.S_C.DEF + U->C.A->totalD;
11255 if(U->C.A->D->type == 2) dmg = U->C.S_C.ACU + U->C.A->totalD;
11256 if(U->C.A->D->type == 3) dmg = U->C.S_C.EVA + U->C.A->totalD;
11257 if(U->C.A->D->type == 4) dmg = U->C.S_C.CAP + U->C.A->totalD;
11258 if(U->C.A->D->type == 5) dmg = U->C.A->totalD;
11261 double urSupposedToGet;
11263 if(U->C.A) urSupposedToGet = pow(8, log(3+U->C.A->totalD/16));
11265 double oopsIsRight;
11266 bool lolFlag = false;
11268 if(U->C.A->melee) oopsIsRight = U->C.S_C.MEL;
11269 else oopsIsRight = U->C.S_C.MIS;
11272 if(U->C.A->D->type == 0) dmg = (U->C.S_C.ATK*U->C.S_C.HP/U->C.S_M.HP + urSupposedToGet)*oopsIsRight/100;
11273 if(U->C.A->D->type == 1) dmg = (U->C.S_C.DEF*U->C.S_C.HP/U->C.S_M.HP + urSupposedToGet)*oopsIsRight/100;
11274 if(U->C.A->D->type == 2) dmg = (U->C.S_C.ACU*U->C.S_C.HP/U->C.S_M.HP + urSupposedToGet)*oopsIsRight/100;
11275 if(U->C.A->D->type == 3) dmg = (U->C.S_C.EVA*U->C.S_C.HP/U->C.S_M.HP + urSupposedToGet)*oopsIsRight/100;
11276 if(U->C.A->D->type == 4) {
11278 dmg = (U->C.S_C.CAP + urSupposedToGet)*oopsIsRight/100;
11280 if(U->C.A->D->type == 5) dmg = U->C.A->totalD;
11282 costMP = U->C.A->MP + floor(U->C.A->pMP*U->C.S_M.MP/100 + 0.5);
11283 U->C.S_C.MP -= costMP;
11285 hit = U->C.S_C.ACU*U->C.S_C.HIT/100*U->C.S_C.HP/U->C.S_M.HP;
11286 hitFix = U->C.A->hitPercent;
11292 while (!(AUN[1] == U->number)) {
11296 hit = 60 + hit/(U->CL.S_C.MOB*U->C.S_C.DOD/100)*10 - (U->CL.S_C.MOB*U->C.S_C.DOD/100)/hit*10 + hitFix;
11297 if(hit > 100) hit = 100;
11299 if([self sortEcheck:U2A opponent:U])
11302 battleDod1Flag = false;
11305 if(battleDod1Flag) omg = 50;
11307 if(hit - rand()%omg > 0 && !battleDef2Flag && !battleDod2Flag){
11308 NSLog(@"修正前のダメージ:%g, %g", dmg, U2A->D->seed);
11310 dmg = [self dmgResist:dmg];
11311 NSLog(@"属性後のダメージ:%g", dmg);
11312 def2 = pow(def2, U->CL.S_C.ARM);
11313 int omfg = rand()%100;
11314 NSLog(@"計算式:(%g + %g - %g)", dmg*omfg/100, dmg, U->CL.S_C.ARM);
11315 NSLog(@"ダメージ幅:%g〜%g", (0 + dmg - U->CL.S_C.ARM), (dmg/10 + dmg - U->CL.S_C.ARM));
11316 if(lolFlag) dmg = (dmg*omfg/100/10 + dmg);
11317 else dmg = (dmg*omfg/100/10+ dmg - U->CL.S_C.ARM);
11320 NSLog(@"地形効果:%g - %g", dmg, dmg*MC[chipNum[possionX][possionY]].dmgfix/100);
11321 if(buildNum[possionX][possionY] < 0) dmg -= dmg*MC[chipNum[possionX][possionY]].dmgfix/100 - 0.5;
11322 else dmg -= dmg*BC[buildNum[possionX][possionY]].dmgfix/100 - 0.5;
11324 if(U->CL.S_C.typeMOVE == RIKU){
11325 if(U2A->riku == A) dmg = dmg*1.2;
11326 if(U2A->riku == B) dmg = dmg*1.0;
11327 if(U2A->riku == C) dmg = dmg*0.6;
11328 if(U2A->riku == D) dmg = dmg*0.2;
11329 if(U2A->riku == E) dmg = 0;
11330 if(U2A->riku == S) dmg = dmg*1.5;
11331 if(U2A->riku == SS) dmg = dmg*2.0;
11332 } if(U->CL.S_C.typeMOVE == UMI &&
11333 (MC[chipNum[possionX][possionY]].type == 3 || MC[chipNum[possionX][possionY]].type == 4)){
11334 if(U2A->umi == A) dmg = dmg*1.2;
11335 if(U2A->umi == B) dmg = dmg*1.0;
11336 if(U2A->umi == C) dmg = dmg*0.6;
11337 if(U2A->umi == D) dmg = dmg*0.2;
11338 if(U2A->umi == E) dmg = 0;
11339 if(U2A->umi == S) dmg = dmg*1.5;
11340 if(U2A->umi == SS) dmg = dmg*2.0;
11341 }else if(U->CL.S_C.typeMOVE == UMI){
11342 if(U2A->riku == A) dmg = dmg*1.2;
11343 if(U2A->riku == B) dmg = dmg*1.0;
11344 if(U2A->riku == C) dmg = dmg*0.6;
11345 if(U2A->riku == D) dmg = dmg*0.2;
11346 if(U2A->riku == E) dmg = 0;
11347 if(U2A->riku == S) dmg = dmg*1.5;
11348 if(U2A->riku == SS) dmg = dmg*2.0;
11350 } if(U->CL.S_C.typeMOVE == CHU){
11351 if(U2A->chu == A) dmg = dmg*1.2;
11352 if(U2A->chu == B) dmg = dmg*1.0;
11353 if(U2A->chu == C) dmg = dmg*0.6;
11354 if(U2A->chu == D) dmg = dmg*0.2;
11355 if(U2A->chu == E) dmg = 0;
11356 if(U2A->chu == S) dmg = dmg*1.5;
11357 if(U2A->chu == SS) dmg = dmg*2.0;
11358 } if(U->CL.S_C.typeMOVE == SORA){
11359 if(U2A->sora == A) dmg = dmg*1.2;
11360 if(U2A->sora == B) dmg = dmg*1.0;
11361 if(U2A->sora == C) dmg = dmg*0.6;
11362 if(U2A->sora == D) dmg = dmg*0.2;
11363 if(U2A->sora == E) dmg = 0;
11364 if(U2A->sora == S) dmg = dmg*1.5;
11365 if(U2A->sora == SS) dmg = dmg*2.0;
11368 NSLog(@"ユニットの地形適用後:%g", dmg);
11370 graze = U->C.S_C.MEN/U2->C.S_C.MEN*U->C.S_C.LUK/3;
11374 if(graze > omfg && !healFlag) {dmg = dmg/5;
11378 if(battleDef1Flag) dmg -= dmg*0.5;
11379 battleDef1Flag = false;
11381 if(dmg < 0) dmg = 0;
11382 U->CL.S_C.HP -= dmg;
11386 if(U->CL.S_C.HP <= 0) {
11388 U2->C.S_C.vigor += 5;
11390 messageProcess = 2;
11397 if(U->targType2L) {
11399 targType2Lflag = true;
11404 if(U->targType2D) {
11406 targType2Dflag = true;
11416 [tplayer1 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
11418 [lplayer1 setIntValue:U->CL.S_C.HP/U->CL.S_M.HP*100];
11420 if(![U2A->msg isEqualToString:@""]){
11421 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@\n",
11422 [self originalMessage:U2A->msg subj:U2->C.name obje:U->CL.name]]];
11428 message = [message stringByAppendingString:[NSString stringWithFormat:@"かすりヒット!\n"]];
11430 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は%gのダメージを受けた!", U->CL.name, dmg]];
11432 }else if(battleDef2Flag){
11436 while (!(DUN[1] == U->number)) {
11441 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は身構えている", U->C.name]];
11444 }else if(battleDod2Flag){
11447 while (!(DUN[1] == U->number)) {
11451 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は様子をうかがっている", U->C.name]];
11456 message = [message stringByAppendingString:[NSString stringWithFormat:@"ミス!%@はダメージを受けていない!", U->CL.name]];
11459 [battleDialog setStringValue:message];
11469 -(void)DisplayMessageMod3A{//防御側モビール
11471 double def2 = (double)31/32;
11472 NSString *message = @"";
11491 static bool extentbool3 = false;
11492 static bool extentbool4 = false;
11493 if(!extentbool3 && extentBattleFlag2){
11494 extentbool3 = true;
11495 extentMPcostFlag = false;
11498 if(!extentBattleFlag2){
11502 if(bLoopFlag) return;
11505 while (!(DUN[DUNnum] == U->number)) {
11511 while (!(AUN[1] == U->number)) {
11515 ATTACK *aTop = U->C.A;
11516 for(int i = 0;i < crCAL1;i++){
11517 U->C.A = U->C.A->next;
11521 if(!battleDef1Flag && !battleDod1Flag) message = [message stringByAppendingString:[NSString stringWithFormat:@"%@の%@\n", U->C.name, U->C.A->name]];
11524 [bplayer2 setImage:U2->CL.imgb];
11525 //[bplayer2 setImageScaling:NSScaleToFit];
11526 [nplayer2 setStringValue:U2->CL.name];
11527 [tplayer2 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U2->CL.S_C.HP, U2->CL.S_M.HP]];
11528 [lplayer2 setIntValue:U2->CL.S_C.HP/U2->CL.S_M.HP*100];
11529 [iplayer2 setImage:MC[chipNum[U2->x][U2->y]].img];
11530 [mplayer2 setStringValue:MC[chipNum[U2->x][U2->y]].name];
11531 [rplayer2 setStringValue:[NSString stringWithFormat:@"地形効果 %d%", MC[chipNum[U2->x][U2->y]].dmgfix]];
11533 if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag1 && ![U->C.A->AN.movName isEqualToString:@""] && ![U->C.A->AN.movName isEqualToString:@"(null)"] && U->C.A->AN.movName != NULL && DUN[DUNnum] == 1){
11534 [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]];
11536 NSString *path = @"data/AttackList/ALdata";
11538 path = [path stringByAppendingFormat:@"%dE", U->chipNumber+1];
11540 path = [path stringByAppendingFormat:@"/"];
11542 path = [path stringByAppendingString:U->C.A->AN.movName];
11544 NSData *AVData = [NSData dataWithContentsOfFile:path];
11547 AVpreview = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
11552 NSString *path = @"data/AttackList3/IALdata";
11554 path = [path stringByAppendingFormat:@"%dE", U->C.A->indexE];
11556 path = [path stringByAppendingFormat:@"/"];
11558 path = [path stringByAppendingString:U->C.A->AN.movName];
11561 NSData *AVData = [NSData dataWithContentsOfFile:path];
11564 AVpreview = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
11570 AVPV.player = [AVpreview retain];
11571 AVPV.videoGravity = AVLayerVideoGravityResize;
11577 [AVPV setHidden:NO];
11579 [battleDialog setStringValue:message];
11581 avPlayerFlag1 = true;
11587 }else if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag1 && !animationFlag1 && U->C.A->AN.ANI && !animationFlag3 && DUN[DUNnum] == 1){
11589 [battleDialog setStringValue:message];
11590 animationFlag1 = true;
11598 if(U->C.A->D->type == 0) dmg = U->C.S_C.ATK + U->C.A->totalD;
11599 if(U->C.A->D->type == 1) dmg = U->C.S_C.DEF + U->C.A->totalD;
11600 if(U->C.A->D->type == 2) dmg = U->C.S_C.ACU + U->C.A->totalD;
11601 if(U->C.A->D->type == 3) dmg = U->C.S_C.EVA + U->C.A->totalD;
11602 if(U->C.A->D->type == 4) dmg = U->C.S_C.CAP + U->C.A->totalD;
11603 if(U->C.A->D->type == 5) dmg = U->C.A->totalD;
11606 double urSupposedToGet;
11608 if(U->C.A) urSupposedToGet = pow(8, log(3+U->C.A->totalD/16));
11610 double oopsIsRight;
11612 if(U->C.A->melee) oopsIsRight = U->C.S_C.MEL;
11613 else oopsIsRight = U->C.S_C.MIS;
11614 bool lolflag = false;
11616 if(U->C.A->D->type == 0) dmg = (U->C.S_C.ATK*U->C.S_C.HP/U->C.S_M.HP + urSupposedToGet)*oopsIsRight/100;
11617 if(U->C.A->D->type == 1) dmg = (U->C.S_C.DEF*U->C.S_C.HP/U->C.S_M.HP + urSupposedToGet)*oopsIsRight/100;
11618 if(U->C.A->D->type == 2) dmg = (U->C.S_C.ACU*U->C.S_C.HP/U->C.S_M.HP + urSupposedToGet)*oopsIsRight/100;
11619 if(U->C.A->D->type == 3) dmg = (U->C.S_C.EVA*U->C.S_C.HP/U->C.S_M.HP + urSupposedToGet)*oopsIsRight/100;
11621 if(U->C.A->D->type == 4){
11623 dmg = (U->C.S_C.CAP + U->C.A->totalD)*oopsIsRight/100;
11626 if(U->C.A->D->type == 5) dmg = U->C.A->totalD;
11627 double val2 = log(3+U2->C.S_C.MP/64);
11632 costMP = U->C.A->MP + floor(U->C.A->pMP*U->C.S_M.MP/100 + 0.5);
11634 if(extentMPcostFlag && extentBattleFlag2){
11637 U->C.S_C.MP -= costMP;
11638 extentMPcostFlag = true;
11641 hit = U->C.S_C.ACU*U->C.S_C.HIT/100*U->C.S_C.HP/U->C.S_M.HP;
11642 hitFix = U->C.A->hitPercent;
11648 while (!(DUN[DUNnum] == U->number)) {
11651 hit = 60 + hit/(U->CL.S_C.MOB*U->C.S_C.DOD/100)*10 - (U->CL.S_C.MOB*U->C.S_C.DOD/100)/hit*10 + hitFix;
11652 if(hit > 100) hit = 100;
11653 if(U2A->D->sort == 1){
11656 if([self sortEcheck:U2A opponent:U])
11662 if(battleDod2Flag) wtf = 50;
11663 if(hit - rand()%wtf > 0 && !battleDef1Flag && !battleDod1Flag){
11665 if(U2A->D->sort == 0){
11666 NSLog(@"修正前のダメージ:%g", dmg);
11667 dmg = [self dmgResist:dmg];
11668 NSLog(@"属性後のダメージ:%g", dmg);
11669 def2 = pow(def2, U->CL.S_C.ARM);
11670 int omfg = rand()%100;
11671 NSLog(@"計算式:(%g + %g - %g)", dmg*omfg/100, dmg, (U->CL.S_C.ARM));
11672 NSLog(@"ダメージ幅:%g〜%g", (0 + dmg - U->CL.S_C.ARM), (dmg/10 + dmg - U->CL.S_C.ARM));
11673 if(lolflag) dmg = (dmg*omfg/100/10 + dmg);
11674 else dmg = (dmg*omfg/100/10 + dmg - U->CL.S_C.ARM);
11675 NSLog(@"地形効果:%g - %g", dmg, dmg*MC[chipNum[possionX][possionY]].dmgfix/100);
11676 if(buildNum[possionX][possionY] < 0) dmg -= dmg*MC[chipNum[possionX][possionY]].dmgfix/100 - 0.5;
11677 else dmg -= dmg*BC[buildNum[possionX][possionY]].dmgfix/100 - 0.5;
11679 if(U->CL.S_C.typeMOVE == RIKU){
11680 if(U2A->riku == A) dmg = dmg*1.2;
11681 if(U2A->riku == B) dmg = dmg*1.0;
11682 if(U2A->riku == C) dmg = dmg*0.6;
11683 if(U2A->riku == D) dmg = dmg*0.2;
11684 if(U2A->riku == E) dmg = 0;
11685 if(U2A->riku == S) dmg = dmg*1.5;
11686 if(U2A->riku == SS) dmg = dmg*2.0;
11687 } if(U->CL.S_C.typeMOVE == UMI &&
11688 (MC[chipNum[possionX][possionY]].type == 3 || MC[chipNum[possionX][possionY]].type == 4)){
11689 if(U2A->umi == A) dmg = dmg*1.2;
11690 if(U2A->umi == B) dmg = dmg*1.0;
11691 if(U2A->umi == C) dmg = dmg*0.6;
11692 if(U2A->umi == D) dmg = dmg*0.2;
11693 if(U2A->umi == E) dmg = 0;
11694 if(U2A->umi == S) dmg = dmg*1.5;
11695 if(U2A->umi == SS) dmg = dmg*2.0;
11696 }else if(U->CL.S_C.typeMOVE == UMI){
11697 if(U2A->riku == A) dmg = dmg*1.2;
11698 if(U2A->riku == B) dmg = dmg*1.0;
11699 if(U2A->riku == C) dmg = dmg*0.6;
11700 if(U2A->riku == D) dmg = dmg*0.2;
11701 if(U2A->riku == E) dmg = 0;
11702 if(U2A->riku == S) dmg = dmg*1.5;
11703 if(U2A->riku == SS) dmg = dmg*2.0;
11705 } if(U->CL.S_C.typeMOVE == CHU){
11706 if(U2A->chu == A) dmg = dmg*1.2;
11707 if(U2A->chu == B) dmg = dmg*1.0;
11708 if(U2A->chu == C) dmg = dmg*0.6;
11709 if(U2A->chu == D) dmg = dmg*0.2;
11710 if(U2A->chu == E) dmg = 0;
11711 if(U2A->chu == S) dmg = dmg*1.5;
11712 if(U2A->chu == SS) dmg = dmg*2.0;
11713 } if(U->CL.S_C.typeMOVE == SORA){
11714 if(U2A->sora == A) dmg = dmg*1.2;
11715 if(U2A->sora == B) dmg = dmg*1.0;
11716 if(U2A->sora == C) dmg = dmg*0.6;
11717 if(U2A->sora == D) dmg = dmg*0.2;
11718 if(U2A->sora == E) dmg = 0;
11719 if(U2A->sora == S) dmg = dmg*1.5;
11720 if(U2A->sora == SS) dmg = dmg*2.0;
11723 NSLog(@"ユニットの地形適用後:%g", dmg);
11724 if(battleDef2Flag) NSLog(@"防御後のダメージ:%g", dmg/2);
11725 graze = U->C.S_C.MEN/U2->C.S_C.MEN*U->C.S_C.LUK/3;
11729 if(graze > omfg && !healFlag) {dmg = dmg/5;
11732 if(battleDef2Flag) dmg -= dmg*0.5;
11733 battleDef2Flag = false;
11735 if(dmg < 0) dmg = 0;
11736 U->CL.S_C.HP -= dmg;
11739 }else if(U2A->D->sort == 1){
11740 dmg = dmg + rand()%5*dmg/10 - rand()%5*dmg/10;
11743 U->C.S_C.HP += dmg;
11744 if(U->C.S_C.HP > U->C.S_M.HP) U->C.S_C.HP = U->C.S_M.HP;
11749 if(U->CL.S_C.HP <= 0) {
11751 U2->C.S_C.vigor += 5;
11753 messageProcess = 2;
11760 if(U->targType2L) {
11762 targType2Lflag = true;
11767 if(U->targType2D) {
11769 targType2Dflag = true;
11777 [tplayer2 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->CL.S_C.HP, U->CL.S_M.HP]];
11778 [lplayer2 setIntValue:U->CL.S_C.HP/U->CL.S_M.HP*100];
11780 if(![U2A->msg isEqualToString:@""]){
11782 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@\n",
11783 [self originalMessage:U2A->msg subj:U2->C.name obje:U->CL.name]]];
11787 if(grazeFlag) message = [message stringByAppendingString:[NSString stringWithFormat:@"かすりヒット!\n"]];
11788 if(!healFlag) message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は%gのダメージを受けた!", U->CL.name, dmg]];
11789 else message = [message stringByAppendingString:[NSString stringWithFormat:@"%@はHPが%g回復した!", U->CL.name, dmg]];
11790 }else if(battleDef1Flag){
11794 while (!(AUN[1] == U->number)) {
11799 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は身構えている", U->C.name]];
11802 }else if(battleDod1Flag){
11805 while (!(AUN[1] == U->number)) {
11809 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は様子をうかがっている", U->C.name]];
11814 message = [message stringByAppendingString:[NSString stringWithFormat:@"ミス!%@はダメージを受けていない!", U->CL.name]];
11817 [battleDialog setStringValue:message];
11824 if(!extentBattleFlag2){
11829 }else if(extentBattleFlag2){
11831 messageProcess = 1;
11832 if(DUN[DUNnum] <= 0){
11836 extentBattleFlag2 = false;
11837 extentbool3 = false;
11838 extentMPcostFlag = false;
11845 -(void)DisplayMessageMod3B{
11848 double def2 = (double)31/32;
11849 NSString *message = @"";
11869 if(bLoopFlag) return;
11873 while (!(AUN[1] == U->number)) {
11879 while (!(DUN[1] == U->number)) {
11882 ATTACK *aTop2 = U->CL.A;
11888 mpCost = floor(U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5);
11889 costVIG = U->C.A->vigor;
11892 mpCost = floor(U->CL.A->EN + U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5);
11893 if(mostDmg < U->CL.A->totalD && U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && U->CL.A->D->sort != 1 && mpCost <= U->CL.S_C.EN && costVIG <= U->C.S_C.vigor && ![self sortEcheck:U->CL.A opponent:U2]){
11894 mostDmg = U->CL.A->totalD;
11897 U->CL.A = U->CL.A->next;
11901 if(mostNum < 0) U->C.A = NULL;
11905 if(!battleSet2PushedFlag){
11906 for(int i = 0;i < mostNumSub;i++){
11907 U->CL.A = U->CL.A->next;
11912 for(int i = 0;i < crCAL2;i++){
11913 U->CL.A = U->C.A->next;
11917 if(U->CL.A->rangeA <= U2->atkRange && U->CL.A->rangeB >= U2->atkRange && U->CL.A->D->sort != 1 && ![self sortEcheck:U->CL.A opponent:U2]){
11918 }else while(U->CL.A){
11919 U->CL.A = U->CL.A->next;
11926 message = [message stringByAppendingString:[NSString stringWithFormat:@"射程外\n"]];
11930 if(!battleDef2Flag && !battleDod2Flag) message = [message stringByAppendingString:[NSString stringWithFormat:@"%@の%@\n", U->CL.name, U->CL.A->name]];
11932 if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag2 && ![U->CL.A->AN.movName isEqualToString:@""] && ![U->CL.A->AN.movName isEqualToString:@"(null)"] && U->CL.A->AN.movName != NULL){
11933 [[NSFileManager defaultManager] changeCurrentDirectoryPath:[[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent]];
11935 NSString *path = @"data/AttackList/ALdata";
11937 path = [path stringByAppendingFormat:@"%dE", U->chipNumber+1];
11939 path = [path stringByAppendingFormat:@"/"];
11941 path = [path stringByAppendingString:U->CL.A->AN.movName];
11944 AVpreview = [AVPlayer playerWithURL:[NSURL fileURLWithPath:path]];
11947 AVPV.player = [AVpreview retain];
11948 AVPV.videoGravity = AVLayerVideoGravityResize;
11953 [AVPV setControlsStyle:0];
11954 [AVPV setHidden:NO];
11956 [battleDialog setStringValue:message];
11958 avPlayerFlag2 = true;
11963 }else if(!battleDef1Flag && !battleDod1Flag && !avPlayerFlag1 && !animationFlag2 && U->CL.A->AN.ANI && !animationFlag3){
11966 animationFlag2 = true;
11976 dmg = U->CL.A->totalD;
11978 costMP = U->CL.A->EN + floor(U->CL.A->pEN*U->CL.S_M.EN/100 + 0.5);
11979 U->CL.S_C.EN -= costMP;
11981 hit = U->CL.S_C.MOB + U->C.S_C.HIT;
11982 hitFix = U->CL.A->hitPercent;
11988 while (!(AUN[1] == U->number)) {
11992 double hit2 = U->C.S_C.EVA*U->C.S_C.DOD/100*U->C.S_C.HP/U->C.S_M.HP;
11994 double hi = U->C.S_C.LUK - U2->C.S_C.LUK;
11997 hit = 60 + hit/hit2*10 - hit2/hit*10 + hitFix - log(hi/10+1)*hit2/hit*10;
11998 if(hit > 100) hit = 100;
12000 if([self sortEcheck:U2A opponent:U])
12003 battleDod1Flag = false;
12006 if(battleDod1Flag) omg = 50;
12008 if(hit - rand()%omg > 0 && !battleDef2Flag && !battleDod2Flag){
12009 NSLog(@"修正前のダメージ:%g", dmg);
12010 dmg = [self dmgResist:dmg];
12011 NSLog(@"属性後のダメージ:%g", dmg);
12012 def2 = pow(def2, U->C.S_C.DEF);
12013 int omfg = rand()%100;
12014 NSLog(@"計算式:(%g + %g - %g)", dmg*omfg/100, dmg, U->C.S_C.DEF);
12015 NSLog(@"ダメージ幅:%g〜%g", (0 + dmg - U->C.S_C.DEF), (dmg/10 + dmg - U->C.S_C.DEF));
12016 dmg = (dmg*omfg/100/10 + dmg - U->C.S_C.DEF);
12019 NSLog(@"地形効果:%g - %g", dmg, dmg*MC[chipNum[possionX][possionY]].dmgfix/100);
12020 if(buildNum[possionX][possionY] < 0) dmg -= dmg*MC[chipNum[possionX][possionY]].dmgfix/100 - 0.5;
12021 else dmg -= dmg*BC[buildNum[possionX][possionY]].dmgfix/100 - 0.5;
12023 if(U->C.S_C.typeMOVE == RIKU){
12024 if(U2A->riku == A) dmg = dmg*1.2;
12025 if(U2A->riku == B) dmg = dmg*1.0;
12026 if(U2A->riku == C) dmg = dmg*0.6;
12027 if(U2A->riku == D) dmg = dmg*0.2;
12028 if(U2A->riku == E) dmg = 0;
12029 if(U2A->riku == S) dmg = dmg*1.5;
12030 if(U2A->riku == SS) dmg = dmg*2.0;
12031 } if(U->C.S_C.typeMOVE == UMI &&
12032 (MC[chipNum[possionX][possionY]].type == 3 || MC[chipNum[possionX][possionY]].type == 4)){
12033 if(U2A->umi == A) dmg = dmg*1.2;
12034 if(U2A->umi == B) dmg = dmg*1.0;
12035 if(U2A->umi == C) dmg = dmg*0.6;
12036 if(U2A->umi == D) dmg = dmg*0.2;
12037 if(U2A->umi == E) dmg = 0;
12038 if(U2A->umi == S) dmg = dmg*1.5;
12039 if(U2A->umi == SS) dmg = dmg*2.0;
12040 }else if(U->C.S_C.typeMOVE == UMI){
12041 if(U2A->riku == A) dmg = dmg*1.2;
12042 if(U2A->riku == B) dmg = dmg*1.0;
12043 if(U2A->riku == C) dmg = dmg*0.6;
12044 if(U2A->riku == D) dmg = dmg*0.2;
12045 if(U2A->riku == E) dmg = 0;
12046 if(U2A->riku == S) dmg = dmg*1.5;
12047 if(U2A->riku == SS) dmg = dmg*2.0;
12049 } if(U->C.S_C.typeMOVE == CHU){
12050 if(U2A->chu == A) dmg = dmg*1.2;
12051 if(U2A->chu == B) dmg = dmg*1.0;
12052 if(U2A->chu == C) dmg = dmg*0.6;
12053 if(U2A->chu == D) dmg = dmg*0.2;
12054 if(U2A->chu == E) dmg = 0;
12055 if(U2A->chu == S) dmg = dmg*1.5;
12056 if(U2A->chu == SS) dmg = dmg*2.0;
12057 } if(U->C.S_C.typeMOVE == SORA){
12058 if(U2A->sora == A) dmg = dmg*1.2;
12059 if(U2A->sora == B) dmg = dmg*1.0;
12060 if(U2A->sora == C) dmg = dmg*0.6;
12061 if(U2A->sora == D) dmg = dmg*0.2;
12062 if(U2A->sora == E) dmg = 0;
12063 if(U2A->sora == S) dmg = dmg*1.5;
12064 if(U2A->sora == SS) dmg = dmg*2.0;
12067 NSLog(@"ユニットの地形適用後:%g", dmg);
12069 graze = U->C.S_C.MEN/U2->C.S_C.MEN*U->C.S_C.LUK/3;
12073 if(graze > omfg && !healFlag) {dmg = dmg/5;
12077 if(battleDef1Flag) dmg -= dmg*0.5;
12078 battleDef1Flag = false;
12080 if(dmg < 0) dmg = 0;
12081 U->C.S_C.HP -= dmg;
12085 if(U->C.S_C.HP <= 0) {
12087 U2->C.S_C.vigor += 5;
12089 messageProcess = 2;
12096 if(U->targType2L) {
12098 targType2Lflag = true;
12103 if(U->targType2D) {
12105 targType2Dflag = true;
12115 [tplayer1 setStringValue:[NSString stringWithFormat:@"HP %g/%g", U->C.S_C.HP, U->C.S_M.HP]];
12117 [lplayer1 setIntValue:U->C.S_C.HP/U->C.S_M.HP*100];
12119 if(![U2A->msg isEqualToString:@""]){
12120 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@\n",
12121 [self originalMessage:U2A->msg subj:U2->CL.name obje:U->C.name]]];
12127 message = [message stringByAppendingString:[NSString stringWithFormat:@"かすりヒット!\n"]];
12129 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は%gのダメージを受けた!", U->C.name, dmg]];
12131 }else if(battleDef2Flag){
12135 while (!(DUN[1] == U->number)) {
12140 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は身構えている", U->CL.name]];
12143 }else if(battleDod2Flag){
12146 while (!(DUN[1] == U->number)) {
12150 message = [message stringByAppendingString:[NSString stringWithFormat:@"%@は様子をうかがっている", U->CL.name]];
12155 message = [message stringByAppendingString:[NSString stringWithFormat:@"ミス!%@はダメージを受けていない!", U->C.name]];
12158 [battleDialog setStringValue:message];
12167 -(NSString*)originalMessage:(NSString*)str subj:(NSString*)subj obje:(NSString*)obje{
12171 NSString *result = @"";
12173 string = [str copy];
12175 array = [string componentsSeparatedByString:@"$subj"];
12177 for(int i = 0;i < [array count];i++){
12179 result = [[result stringByAppendingString:[NSString stringWithFormat:@"%@", subj]] retain];
12181 result = [[result stringByAppendingString:[array objectAtIndex:i]] retain];
12184 string = [result copy];
12186 array = [string componentsSeparatedByString:@"$obje"];
12190 for(int i = 0;i < [array count];i++){
12192 result = [[result stringByAppendingString:[NSString stringWithFormat:@"%@", obje]] retain];
12194 result = [[result stringByAppendingString:[array objectAtIndex:i]] retain];
12197 //NSLog(@"%@", result);
12204 -(double)dmgResist:(double)DMG{
12208 sd[0] = U->C.R_C.blow + U->C.R_F.blow;
12209 sd[1] = U->C.R_C.slash + U->C.R_F.slash;
12210 sd[2] = U->C.R_C.stub + U->C.R_F.stub;
12211 sd[3] = U->C.R_C.arrow + U->C.R_F.arrow;
12212 sd[4] = U->C.R_C.gun + U->C.R_F.gun;
12213 sd[5] = U->C.R_C.shell + U->C.R_F.shell;
12215 sd[6] = U->C.R_C.flame + U->C.R_F.flame;
12216 sd[7] = U->C.R_C.cold + U->C.R_F.cold;
12217 sd[8] = U->C.R_C.electoric + U->C.R_F.electoric;
12218 sd[9] = U->C.R_C.air + U->C.R_F.air;
12219 sd[10] = U->C.R_C.water + U->C.R_F.water;
12220 sd[11] = U->C.R_C.gas + U->C.R_F.gas;
12221 sd[12] = U->C.R_C.holy + U->C.R_F.holy;
12222 sd[13] = U->C.R_C.dark + U->C.R_F.dark;
12223 sd[14] = U->C.R_C.explosion + U->C.R_F.explosion;
12224 sd[15] = U->C.R_C.blood + U->C.R_F.blood;
12226 sd[16] = U->C.R_C.paralysis + U->C.R_F.paralysis;
12227 sd[17] = U->C.R_C.confusion + U->C.R_F.confusion;
12228 sd[18] = U->C.R_C.poison + U->C.R_F.poison;
12229 sd[19] = U->C.R_C.sleep + U->C.R_F.sleep;
12230 sd[20] = U->C.R_C.charm + U->C.R_F.charm;
12231 sd[21] = U->C.R_C.silent + U->C.R_F.silent;
12235 for(int i = 0;i <= 21;i++)
12236 sd[i] &= ~(sd[i] >> 31);
12240 if(U2A->D->seed == 0) DMG = DMG * sd[0]/100;
12241 if(U2A->D->seed == 1) DMG = DMG * sd[1]/100;
12242 if(U2A->D->seed == 2) DMG = DMG * sd[2]/100;
12243 if(U2A->D->seed == 3) DMG = DMG * sd[3]/100;
12244 if(U2A->D->seed == 4) DMG = DMG * sd[4]/100;
12245 if(U2A->D->seed == 5) DMG = DMG * sd[5]/100;
12247 if(U2A->D->seed == 6) DMG = DMG * sd[6]/100;
12248 if(U2A->D->seed == 7) DMG = DMG * sd[7]/100;
12249 if(U2A->D->seed == 8) DMG = DMG * sd[8]/100;
12250 if(U2A->D->seed == 9) DMG = DMG * sd[9]/100;
12251 if(U2A->D->seed == 10) DMG = DMG * sd[10]/100;
12252 if(U2A->D->seed == 11) DMG = DMG * sd[11]/100;
12253 if(U2A->D->seed == 12) DMG = DMG * sd[12]/100;
12254 if(U2A->D->seed == 13) DMG = DMG * sd[13]/100;
12255 if(U2A->D->seed == 14) DMG = DMG * sd[14]/100;
12256 if(U2A->D->seed == 15) DMG = DMG * sd[15]/100;
12258 if(U2A->D->seed == 16) DMG = DMG * sd[16]/100;
12259 if(U2A->D->seed == 17) DMG = DMG * sd[17]/100;
12260 if(U2A->D->seed == 18) DMG = DMG * sd[18]/100;
12261 if(U2A->D->seed == 19) DMG = DMG * sd[19]/100;
12262 if(U2A->D->seed == 20) DMG = DMG * sd[20]/100;
12263 if(U2A->D->seed == 21) DMG = DMG * sd[21]/100;
12268 -(IBAction)battleStart:(id)sender{
12269 battleSetUp = true;
12270 battleSet1Flag = false;
12271 battleSet2Flag = false;
12272 battleSettingFlag = false;
12274 attackingWait = false;
12275 crapBugFixFlag = true;
12277 [battlePanel close];
12281 -(void)battleStartCPU{
12282 battleSetUp = true;
12283 battleSet1Flag = false;
12284 battleSet2Flag = false;
12285 battleSettingFlag = false;
12287 crapBugFixFlag = true;
12289 [battlePanel close];
12292 -(IBAction)battleSet1:(id)sender{
12293 battleSetFlag = false;
12294 battleSet1Flag = true;
12295 battleDef1Flag = false;
12296 battleDod1Flag = false;
12297 battleSettingFlag = true;
12298 battleSet2PushedFlag = false;
12301 while (!(AUN[1] == U->number)) {
12304 if(U->chipNumberL >= 0)
12307 [self initCAttackList2];
12308 [self initCAttackSelect2];
12310 else if(U->chipNumber >= 0) {
12312 [self initCAttackList];
12313 [self initCAttackSelect];
12317 [atkPanel makeKeyAndOrderFront:nil];
12319 -(IBAction)battleDef1:(id)sender{
12320 battleDef1Flag = true;
12321 battleSet1Flag = false;
12322 battleDod1Flag = false;
12323 [self setBattlePanel];
12325 -(IBAction)battleDod1:(id)sender{
12326 battleDod1Flag = true;
12327 battleDef1Flag = false;
12328 battleSet1Flag = false;
12329 [self setBattlePanel];
12331 -(IBAction)battleSet2:(id)sender{
12332 battleSetFlag = true;
12333 battleSet2Flag = true;
12334 battleDef2Flag = false;
12335 battleDod2Flag = false;
12336 battleSettingFlag = true;
12337 battleSet2PushedFlag = true;
12340 while (!(DUN[1] == U->number)) {
12344 if(U->chipNumberL >= 0){
12346 [self initCAttackList2];
12347 [self initCAttackSelect2];
12349 else if(U->chipNumber >= 0) {
12351 [self initCAttackList];
12352 [self initCAttackSelect];
12355 [atkPanel makeKeyAndOrderFront:nil];
12357 -(IBAction)battleDef2:(id)sender{
12358 battleDef2Flag = true;
12359 battleSet2Flag = false;
12360 battleDod2Flag = false;
12361 [self setBattlePanel];
12363 -(IBAction)battleDod2:(id)sender{
12364 battleDod2Flag = true;
12365 battleDef2Flag = false;
12366 battleSet2Flag = false;
12367 [self setBattlePanel];
12370 -(IBAction)battleCancel:(id)sender{
12371 battleFlag = false;
12372 battleSettingFlag = false;
12374 battleSet2PushedFlag = false;
12375 attackingWait = false;
12377 battleDef1Flag = false;
12378 battleDef2Flag = false;
12379 battleDod1Flag = false;
12380 battleDod2Flag = false;
12382 wtAttackedFlag = false;
12384 [battlePanel close];
12387 -(IBAction)researchCancel:(id)sender{
12388 [researchPanel close];
12391 -(void)setCommandPanel{
12393 menuPoint.x = [mapWindow frame].origin.x + possionLocalX*32;
12394 menuPoint.y = [mapWindow frame].origin.y + possionLocalY*32 - 180;
12397 if(buildSkillFlag) {
12398 cIncludeCreateFlag = true;
12400 }else cIncludeCreateFlag = false;
12401 if(summonSkillFlag) {
12402 cIncludeSummonFlag = true;
12404 }else cIncludeSummonFlag = false;
12405 int plusBtnValue = 0;
12406 int plusBtnValue2 = 0;
12407 int plusBtnValue3 = 0;
12409 if(Uselected != unitBreak){
12411 plusBtnValue = 160;
12412 plusBtnValue2 = plusBtnValue;
12414 plusBtnValue -= 10;
12417 plusBtnValue -= moveBtn.frame.size.height + 2;
12418 plusBtnValue2 -= moveBtn.frame.size.height + 2;
12419 plusBtnValue3 -= moveBtn.frame.size.height + 2;
12420 [moveBtn setTransparent: YES];
12421 [moveBtn setEnabled:NO];
12425 plusBtnValue -= attackBtn.frame.size.height + 2;
12426 plusBtnValue2 -= attackBtn.frame.size.height + 2;
12427 plusBtnValue3 -= attackBtn.frame.size.height + 2;
12428 [attackBtn setTransparent: YES];
12429 [attackBtn setEnabled:NO];
12432 plusBtnValue -= stanbyBtn.frame.size.height + 2;
12433 plusBtnValue2 -= stanbyBtn.frame.size.height + 2;
12434 plusBtnValue3 -= stanbyBtn.frame.size.height + 2;
12435 [stanbyBtn setTransparent: YES];
12436 [stanbyBtn setEnabled:NO];
12438 [createBtn setTransparent: YES];
12439 [createBtn setEnabled: NO];
12441 [summonBtn setTransparent: YES];
12442 [summonBtn setEnabled: NO];
12444 plusBtnValue -= statusBtn.frame.size.height + 2;
12445 [statusBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12446 [[commandPanel contentView] addSubview:statusBtn];
12448 plusBtnValue -= cancelBtn.frame.size.height + 2;
12449 [cancelBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12450 [[commandPanel contentView] addSubview:cancelBtn];
12452 [commandPanel setFrame:NSMakeRect(menuPoint.x, menuPoint.y - plusBtnValue3, 150, plusBtnValue2) display:YES];
12457 if(cIncludeCreateFlag && cIncludeSummonFlag && MF[MFselectedRow+1].MS.buildAllowedFlag && MF[MFselectedRow+1].MS.summonAllowedFlag){
12459 plusBtnValue = 200;
12460 plusBtnValue2 = plusBtnValue;
12461 //[commandPanel setFrame:NSMakeRect(menuPoint.x, menuPoint.y, 150, plusBtnValue) display:YES];
12463 plusBtnValue -= 10;
12466 plusBtnValue -= moveBtn.frame.size.height + 2;
12467 [moveBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12468 [[commandPanel contentView] addSubview:moveBtn];
12469 [moveBtn setTransparent: NO];
12470 [moveBtn setEnabled: YES];
12473 plusBtnValue -= moveBtn.frame.size.height + 2;
12474 plusBtnValue2 -= moveBtn.frame.size.height + 2;
12475 plusBtnValue3 -= moveBtn.frame.size.height + 2;
12476 [moveBtn setTransparent: YES];
12477 [moveBtn setEnabled:NO];
12480 if(!wtAttackedFlag){
12481 plusBtnValue -= attackBtn.frame.size.height + 2;
12482 [attackBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12483 [[commandPanel contentView] addSubview:attackBtn];
12484 [attackBtn setTransparent: NO];
12485 [attackBtn setEnabled: YES];
12487 plusBtnValue -= attackBtn.frame.size.height + 2;
12488 plusBtnValue2 -= attackBtn.frame.size.height + 2;
12489 plusBtnValue3 -= attackBtn.frame.size.height + 2;
12490 [attackBtn setTransparent: YES];
12491 [attackBtn setEnabled:NO];
12494 if(!wtAttackedFlag){
12495 plusBtnValue -= stanbyBtn.frame.size.height + 2;
12496 [stanbyBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12497 [[commandPanel contentView] addSubview:stanbyBtn];
12498 [stanbyBtn setTransparent: NO];
12499 [stanbyBtn setEnabled: YES];
12502 if(!wtAttackedFlag){
12503 [createBtn setTransparent: NO];
12504 [createBtn setEnabled: YES];
12505 plusBtnValue -= createBtn.frame.size.height + 2;
12506 [createBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12507 [[commandPanel contentView] addSubview:createBtn];
12509 plusBtnValue -= createBtn.frame.size.height + 2;
12510 plusBtnValue2 -= createBtn.frame.size.height + 2;
12511 plusBtnValue3 -= createBtn.frame.size.height + 2;
12512 [createBtn setTransparent: YES];
12513 [createBtn setEnabled: NO];
12516 if(!wtAttackedFlag){
12517 [summonBtn setTransparent: NO];
12518 [summonBtn setEnabled: YES];
12519 plusBtnValue -= summonBtn.frame.size.height + 2;
12520 [summonBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12521 [[commandPanel contentView] addSubview:summonBtn];
12523 plusBtnValue -= summonBtn.frame.size.height + 2;
12524 plusBtnValue2 -= summonBtn.frame.size.height + 2;
12525 plusBtnValue3 -= summonBtn.frame.size.height + 2;
12526 [summonBtn setTransparent: YES];
12527 [summonBtn setEnabled: NO];
12530 if(!wtMovedFlag && wtAttackedFlag){
12531 [moveBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12532 [[commandPanel contentView] addSubview:moveBtn];
12533 [moveBtn setTransparent: NO];
12534 [moveBtn setEnabled: YES];
12535 plusBtnValue -= stanbyBtn.frame.size.height + 2;
12536 [stanbyBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12537 [[commandPanel contentView] addSubview:stanbyBtn];
12538 [stanbyBtn setTransparent: NO];
12539 [stanbyBtn setEnabled: YES];
12542 if(wtMovedFlag && wtAttackedFlag){
12543 plusBtnValue -= stanbyBtn.frame.size.height + 2;
12544 [stanbyBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12545 [[commandPanel contentView] addSubview:stanbyBtn];
12546 [stanbyBtn setTransparent: NO];
12547 [stanbyBtn setEnabled: YES];
12552 plusBtnValue -= statusBtn.frame.size.height + 2;
12553 [statusBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12554 [[commandPanel contentView] addSubview:statusBtn];
12556 plusBtnValue -= cancelBtn.frame.size.height + 2;
12557 [cancelBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12558 [[commandPanel contentView] addSubview:cancelBtn];
12560 [commandPanel setFrame:NSMakeRect(menuPoint.x, menuPoint.y - plusBtnValue3, 150, plusBtnValue2) display:YES];
12562 else if(cIncludeCreateFlag && !cIncludeSummonFlag && MF[MFselectedRow+1].MS.buildAllowedFlag){
12563 plusBtnValue = 180;
12564 plusBtnValue2 = plusBtnValue;
12565 //[commandPanel setFrame:NSMakeRect(menuPoint.x, menuPoint.y, 150, plusBtnValue) display:YES];
12567 plusBtnValue -= 10;
12570 plusBtnValue -= moveBtn.frame.size.height + 2;
12571 [moveBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12572 [[commandPanel contentView] addSubview:moveBtn];
12573 [moveBtn setTransparent: NO];
12574 [moveBtn setEnabled: YES];
12576 plusBtnValue -= moveBtn.frame.size.height + 2;
12577 plusBtnValue2 -= moveBtn.frame.size.height + 2;
12578 plusBtnValue3 -= moveBtn.frame.size.height + 2;
12579 [moveBtn setTransparent: YES];
12580 [moveBtn setEnabled:NO];
12583 if(!wtAttackedFlag){
12584 plusBtnValue -= attackBtn.frame.size.height + 2;
12585 [attackBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12586 [[commandPanel contentView] addSubview:attackBtn];
12587 [attackBtn setTransparent: NO];
12588 [attackBtn setEnabled: YES];
12590 plusBtnValue -= attackBtn.frame.size.height + 2;
12591 plusBtnValue2 -= attackBtn.frame.size.height + 2;
12592 plusBtnValue3 -= attackBtn.frame.size.height + 2;
12593 [attackBtn setTransparent: YES];
12594 [attackBtn setEnabled:NO];
12597 if(!wtAttackedFlag){
12598 plusBtnValue -= stanbyBtn.frame.size.height + 2;
12599 [stanbyBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12600 [[commandPanel contentView] addSubview:stanbyBtn];
12601 [stanbyBtn setTransparent: NO];
12602 [stanbyBtn setEnabled: YES];
12605 if(!wtAttackedFlag){
12606 [createBtn setTransparent: NO];
12607 [createBtn setEnabled: YES];
12608 plusBtnValue -= createBtn.frame.size.height + 2;
12609 [createBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12610 [[commandPanel contentView] addSubview:createBtn];
12612 plusBtnValue -= createBtn.frame.size.height + 2;
12613 plusBtnValue2 -= createBtn.frame.size.height + 2;
12614 plusBtnValue3 -= createBtn.frame.size.height + 2;
12615 [createBtn setTransparent: YES];
12616 [createBtn setEnabled:NO];
12619 if(!wtMovedFlag && wtAttackedFlag){
12620 [moveBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12621 [[commandPanel contentView] addSubview:moveBtn];
12622 [moveBtn setTransparent: NO];
12623 [moveBtn setEnabled: YES];
12624 plusBtnValue -= stanbyBtn.frame.size.height + 2;
12625 [stanbyBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12626 [[commandPanel contentView] addSubview:stanbyBtn];
12627 [stanbyBtn setTransparent: NO];
12628 [stanbyBtn setEnabled: YES];
12631 if(wtMovedFlag && wtAttackedFlag){
12632 plusBtnValue -= stanbyBtn.frame.size.height + 2;
12633 [stanbyBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12634 [[commandPanel contentView] addSubview:stanbyBtn];
12635 [stanbyBtn setTransparent: NO];
12636 [stanbyBtn setEnabled: YES];
12639 [summonBtn setTransparent: YES];
12640 [summonBtn setEnabled: NO];
12642 plusBtnValue -= statusBtn.frame.size.height + 2;
12643 [statusBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12644 [[commandPanel contentView] addSubview:statusBtn];
12646 plusBtnValue -= cancelBtn.frame.size.height + 2;
12647 [cancelBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12648 [[commandPanel contentView] addSubview:cancelBtn];
12650 [commandPanel setFrame:NSMakeRect(menuPoint.x, menuPoint.y - plusBtnValue3, 150, plusBtnValue2) display:YES];
12651 }else if(cIncludeSummonFlag && !cIncludeCreateFlag && MF[MFselectedRow+1].MS.summonAllowedFlag){
12653 //[commandPanel setFrame:NSMakeRect(menuPoint.x, menuPoint.y, 150, 210) display:YES];
12655 plusBtnValue = 180;
12656 plusBtnValue2 = plusBtnValue;
12657 //[commandPanel setFrame:NSMakeRect(menuPoint.x, menuPoint.y, 150, plusBtnValue) display:YES];
12659 plusBtnValue -= 10;
12662 plusBtnValue -= moveBtn.frame.size.height + 2;
12663 [moveBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12664 [[commandPanel contentView] addSubview:moveBtn];
12665 [moveBtn setTransparent: NO];
12666 [moveBtn setEnabled: YES];
12668 plusBtnValue -= moveBtn.frame.size.height + 2;
12669 plusBtnValue2 -= moveBtn.frame.size.height + 2;
12670 plusBtnValue3 -= moveBtn.frame.size.height + 2;
12671 [moveBtn setTransparent: YES];
12672 [moveBtn setEnabled:NO];
12676 if(!wtAttackedFlag){
12677 plusBtnValue -= attackBtn.frame.size.height + 2;
12678 [attackBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12679 [[commandPanel contentView] addSubview:attackBtn];
12680 [attackBtn setTransparent: NO];
12681 [attackBtn setEnabled: YES];
12683 plusBtnValue2 -= attackBtn.frame.size.height + 2;
12684 plusBtnValue -= attackBtn.frame.size.height + 2;
12685 plusBtnValue3 -= attackBtn.frame.size.height + 2;
12686 [attackBtn setTransparent: YES];
12687 [attackBtn setEnabled:NO];
12690 if(!wtAttackedFlag){
12691 plusBtnValue -= stanbyBtn.frame.size.height + 2;
12692 [stanbyBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12693 [[commandPanel contentView] addSubview:stanbyBtn];
12694 [stanbyBtn setTransparent: NO];
12695 [stanbyBtn setEnabled: YES];
12698 [createBtn setTransparent: YES];
12699 [createBtn setEnabled: NO];
12701 if(!wtAttackedFlag){
12702 [summonBtn setTransparent: NO];
12703 [summonBtn setEnabled: YES];
12704 plusBtnValue -= summonBtn.frame.size.height + 2;
12705 [summonBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12706 [[commandPanel contentView] addSubview:summonBtn];
12708 plusBtnValue2 -= summonBtn.frame.size.height + 2;
12709 plusBtnValue -= summonBtn.frame.size.height + 2;
12710 plusBtnValue3 -= summonBtn.frame.size.height + 2;
12711 [summonBtn setTransparent: YES];
12712 [summonBtn setEnabled:NO];
12715 if(!wtMovedFlag && wtAttackedFlag){
12716 [moveBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12717 [[commandPanel contentView] addSubview:moveBtn];
12718 [moveBtn setTransparent: NO];
12719 [moveBtn setEnabled: YES];
12720 plusBtnValue -= stanbyBtn.frame.size.height + 2;
12721 [stanbyBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12722 [[commandPanel contentView] addSubview:stanbyBtn];
12723 [stanbyBtn setTransparent: NO];
12724 [stanbyBtn setEnabled: YES];
12727 if(wtMovedFlag && wtAttackedFlag){
12728 plusBtnValue -= stanbyBtn.frame.size.height + 2;
12729 [stanbyBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12730 [[commandPanel contentView] addSubview:stanbyBtn];
12731 [stanbyBtn setTransparent: NO];
12732 [stanbyBtn setEnabled: YES];
12735 plusBtnValue -= statusBtn.frame.size.height + 2;
12736 [statusBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12737 [[commandPanel contentView] addSubview:statusBtn];
12739 plusBtnValue -= cancelBtn.frame.size.height + 2;
12740 [cancelBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12741 [[commandPanel contentView] addSubview:cancelBtn];
12743 [commandPanel setFrame:NSMakeRect(menuPoint.x, menuPoint.y - plusBtnValue3, 150, plusBtnValue2) display:YES];
12746 plusBtnValue = 160;
12747 plusBtnValue2 = plusBtnValue;
12748 //[commandPanel setFrame:NSMakeRect(menuPoint.x, menuPoint.y, 150, plusBtnValue) display:YES];
12750 plusBtnValue -= 10;
12753 plusBtnValue -= moveBtn.frame.size.height + 2;
12754 [moveBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12755 [[commandPanel contentView] addSubview:moveBtn];
12756 [moveBtn setTransparent: NO];
12757 [moveBtn setEnabled: YES];
12759 plusBtnValue -= moveBtn.frame.size.height + 2;
12760 plusBtnValue2 -= moveBtn.frame.size.height + 2;
12761 plusBtnValue3 -= moveBtn.frame.size.height + 2;
12762 [moveBtn setTransparent: YES];
12763 [moveBtn setEnabled:NO];
12766 if(!wtAttackedFlag){
12767 plusBtnValue -= attackBtn.frame.size.height + 2;
12768 [attackBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12769 [[commandPanel contentView] addSubview:attackBtn];
12770 [attackBtn setTransparent: NO];
12771 [attackBtn setEnabled: YES];
12773 plusBtnValue -= attackBtn.frame.size.height + 2;
12774 plusBtnValue2 -= attackBtn.frame.size.height + 2;
12775 plusBtnValue3 -= attackBtn.frame.size.height + 2;
12776 [attackBtn setTransparent: YES];
12777 [attackBtn setEnabled:NO];
12780 if(!wtMovedFlag && wtAttackedFlag){
12781 [moveBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12782 [[commandPanel contentView] addSubview:moveBtn];
12783 [moveBtn setTransparent: NO];
12784 [moveBtn setEnabled: YES];
12787 plusBtnValue -= stanbyBtn.frame.size.height + 2;
12788 [stanbyBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12789 [[commandPanel contentView] addSubview:stanbyBtn];
12790 [stanbyBtn setTransparent: NO];
12791 [stanbyBtn setEnabled: YES];
12793 [createBtn setTransparent: YES];
12794 [createBtn setEnabled: NO];
12796 [summonBtn setTransparent: YES];
12797 [summonBtn setEnabled: NO];
12799 plusBtnValue -= statusBtn.frame.size.height + 2;
12800 [statusBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12801 [[commandPanel contentView] addSubview:statusBtn];
12803 plusBtnValue -= cancelBtn.frame.size.height + 2;
12804 [cancelBtn setFrame:NSMakeRect(25, plusBtnValue, 100, 23)];
12805 [[commandPanel contentView] addSubview:cancelBtn];
12807 [commandPanel setFrame:NSMakeRect(menuPoint.x, menuPoint.y - plusBtnValue3, 150, plusBtnValue2) display:YES];
12813 -(void)openMessage{
12814 [IVimage setHidden:NO];
12815 [TFname setHidden:NO];
12816 [TFmessage setHidden:NO];
12817 [BXname setHidden:NO];
12818 [BXmessage setHidden:NO];
12819 [IVimage setEnabled:YES];
12820 [TFname setEnabled:YES];
12821 [TFmessage setEnabled:YES];
12824 -(void)closeMessage{
12825 [IVimage setHidden:YES];
12826 [TFname setHidden:YES];
12827 [TFmessage setHidden:YES];
12828 [BXname setHidden:YES];
12829 [BXmessage setHidden:YES];
12830 [IVimage setEnabled:NO];
12831 [TFname setEnabled:NO];
12832 [TFmessage setEnabled:NO];
12835 -(MAPSCRIPT0*)setMessage:(MAPSCRIPT0*)MS0{
12838 if(!messageDialog){
12839 [self closeMessage];
12840 damnitFixFlag = true;
12841 }else if(MS0->S1.str){
12842 [self openMessage];
12843 damnitFixFlag = false;
12844 NSString *string = @"";
12846 string = [MS0->S1.str retain];
12848 MS0->endFlag = true;
12849 textInstantBugFixFlag = false;
12850 messageEndFlag = false;
12851 messageDialog = false;
12855 if(!initStringNum){
12858 initStringNum = true;
12859 textInstantBugFixFlag = true;
12862 msgMax = (int)[string length];
12868 initImgFlag = true;
12871 [IVimage setImage:MS0->S1.img];
12872 if(MS0->S1.name) [TFname setStringValue:MS0->S1.name];
12873 else [TFname setStringValue:@""];
12875 if(msgCnt <= msgMax){
12877 [TFmessage setStringValue:[string substringToIndex:msgCnt]];
12880 else [TFmessage setStringValue:@""];
12885 if(messageEndFlag){
12886 MS0->endFlag = true;
12887 messageEndFlag = false;
12888 initStringNum = false;
12889 messageDialog = false;
12890 MS0->succeessfulFlag = true;
12892 textInstantBugFixFlag = false;
12893 [self setMessage:NULL];
12898 MS0->endFlag = true;
12899 messageEndFlag = false;
12900 messageDialog = false;
12901 initStringNum = false;
12910 NSString *directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
12911 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
12913 NSString *path = @"Map/";
12914 NSString *fileData = nil;
12915 NSArray *fileDataArray;
12917 path = [path stringByAppendingFormat:@"%@" ,MF[MFselectedRow+1].fileName];
12919 fileData = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
12921 fileDataArray = [fileData componentsSeparatedByString:@"\n"];
12923 MAPSCRIPT0 *MS00 = MF[MFselectedRow+1].MS.D->P;
12924 MAPSCRIPT0 *m00Top = MS00;
12925 for (int i = 0; i < [fileDataArray count]; i++) {
12927 NSRange range = [[fileDataArray objectAtIndex:i] rangeOfString:@"◆"];
12928 if(range.location != NSNotFound){
12930 NSArray *array2 = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","];
12931 if(MS00->type == 1)
12933 MS00->S1.iName = [[array2 objectAtIndex:2] retain];
12935 for(int k = 0; k < UCN;k++){
12937 if([MS00->S1.iName isEqualToString:UC[k].nameClass]){
12938 MS00->S1.img = [UC[k].imgb retain];
12954 -(MAPSCRIPT0*)setSwitch:(MAPSCRIPT0*)MS0{
12957 for(int i = 0;*(MS0->switch1 + i) >0;i++){
12958 Suicchi[*(MS0->switch1+i)] = true;
12962 for(int i = 0;*(MS0->switch2 + i) >0;i++){
12963 Suicchi[*(MS0->switch2+i)] = false;
12967 MS0->succeessfulFlag = true;
12968 MS0->endFlag = true;
12972 -(MAPSCRIPT0*)setBranch:(MAPSCRIPT0*)MS0{
12974 MAPSCRIPT0 *CRMS0 = MS0;
12975 bool branchEndFlag = false;
12976 bool branchSuceedFlag = false;
12977 bool trueFlag = true;
12985 MS0->endFlag = true;
12991 if(MS0->S4.suicchiFlag){
12992 if(MS0->S4.suicchiONOFF == 0){
12993 if(MS0->S4.suicchi)
12994 for (int i = 0;*(MS0->S4.suicchi + i);i++) {
12995 if(!Suicchi[*(MS0->S4.suicchi + i)]){
13000 if(MS0->S4.suicchi)
13001 for (int i = 0;*(MS0->S4.suicchi + i);i++) {
13002 if(Suicchi[*(MS0->S4.suicchi + i)]){
13009 if(MS0->S4.hensuFlag){
13011 if(MS0->S4.teisuFlag){
13012 if(MS0->S4.hensuType == 0){
13013 if([Hensuu[MS0->S4.hensu1] intValue] == MS0->S4.teisuValue){
13018 }else if(MS0->S4.hensuType == 1){
13019 if([Hensuu[MS0->S4.hensu1] intValue] >= MS0->S4.teisuValue){
13024 }else if(MS0->S4.hensuType == 2){
13025 if([Hensuu[MS0->S4.hensu1] intValue] <= MS0->S4.teisuValue){
13030 }else if(MS0->S4.hensuType == 3){
13031 if([Hensuu[MS0->S4.hensu1] intValue] > MS0->S4.teisuValue){
13036 }else if(MS0->S4.hensuType == 4){
13037 if([Hensuu[MS0->S4.hensu1] intValue] < MS0->S4.teisuValue){
13042 }else if(MS0->S4.hensuType == 5){
13043 if([Hensuu[MS0->S4.hensu1] intValue] != MS0->S4.teisuValue){
13050 }if(MS0->S4.hensu2flag){
13051 if(MS0->S4.hensuType == 0){
13052 if([Hensuu[MS0->S4.hensu1] isEqualToString:Hensuu[MS0->S4.hensu2]]){
13057 }else if(MS0->S4.hensuType == 1){
13058 if([Hensuu[MS0->S4.hensu1] intValue] >= [Hensuu[MS0->S4.hensu2] intValue]){
13063 }else if(MS0->S4.hensuType == 2){
13064 if([Hensuu[MS0->S4.hensu1] intValue] <= [Hensuu[MS0->S4.hensu2] intValue]){
13069 }else if(MS0->S4.hensuType == 3){
13070 if([Hensuu[MS0->S4.hensu1] intValue] > [Hensuu[MS0->S4.hensu2] intValue]){
13075 }else if(MS0->S4.hensuType == 4){
13076 if([Hensuu[MS0->S4.hensu1] intValue] < [Hensuu[MS0->S4.hensu2] intValue]){
13081 }else if(MS0->S4.hensuType == 5){
13082 if(![Hensuu[MS0->S4.hensu1] isEqualToString:Hensuu[MS0->S4.hensu2]]){
13091 if(MS0->S4.timerFlag){
13093 if(MS0->S4.timerType == 0){
13094 if(MS0->S4.timerMin <= cntTimerMin){
13096 }else if(MS0->S4.timerSec <= cntTimerSec && MS0->S4.timerMin <= cntTimerMin){
13105 if(MS0->S4.timerMin >= cntTimerMin){
13107 }else if(MS0->S4.timerSec >= cntTimerSec && MS0->S4.timerMin >= cntTimerMin){
13118 if(MS0->S4.unitNumFlag){
13128 int objeSCSunitCnt = 0;
13130 if(MS0->S4.objeFlag){
13132 UNIT2 *objeT = MS0->S4.obje;
13134 while (MS0->S4.obje) {
13139 static bool okflag = true;
13141 for (int i = 0;i < 1002;i++) {
13142 for (int k = 0;k < 1002;k++) {
13149 if(U2->ix == MS0->S4.obje->x && U2->iy == MS0->S4.obje->y){
13160 [self checkPlaceHani:MS0->S4.objeRange+1 tX:U2->y tY:U2->x aMap:objeR u:U scsCnt:&objeSCSunitCnt];
13164 for(int bx=1;bx<=chipWidth;bx++){
13165 for(int by=1;by<=chipHeight;by++){
13166 if(objeR[bx][by] != 999 && objeR[bx][by] > 0){
13168 if(objeR[U->x][U->y] > 0){
13170 if(Unum < Cnum) goto omfgUnitOver2;
13184 if(UP->x == U->x && UP->y == U->y){
13197 if(!UP) UP = calloc(1, sizeof(UNITPOINT));
13199 while(UP->next) UP = UP->next;
13204 UP->next = calloc(1, sizeof(UNITPOINT));
13218 //NSLog(@"%@, %d, %d", U->C.name, objeSCSunitCnt, objeR[0][0]);
13223 MS0->S4.obje = MS0->S4.obje->next;
13225 MS0->S4.obje = objeT;
13229 if(MS0->S4.buildFlag){
13230 if(Uselected->x == MS0->S4.build->x && Uselected->y == MS0->S4.build->y){
13234 if(Uselected->ix == MS0->S4.subj->x && Uselected->iy == MS0->S4.subj->y && Uselected->iz == 1 &&
13235 BC[buildNum[Uselected->x][Uselected->y]].nameID == MS0->S4.build->C->nameID &&
13236 Uselected->x == MS0->S4.build->x && Uselected->y == MS0->S4.build->y){
13245 if(MS0->S4.team == 0){
13246 if(!MS0->S4.objeFlag && !MS0->S4.placeFlag){
13249 if(U->team == 0 && !U->dead)
13254 if(MS0->S4.unitType == 0){
13255 if(MS0->S4.objeFlag || MS0->S4.placeFlag) team0num = MS0->S4.unitNum;
13257 if((MS0->S4.unitNum == team0num) && (MS0->S4.unitNum == objeSCSunitCnt)){
13259 }else if((MS0->S4.unitNum == team0num) && !MS0->S4.objeFlag){
13264 }else if(MS0->S4.unitType == 1){
13265 if(MS0->S4.objeFlag || MS0->S4.placeFlag) team0num = 65000;
13267 if((MS0->S4.unitNum <= team0num) && (MS0->S4.unitNum <= objeSCSunitCnt)){
13269 }else if((MS0->S4.unitNum <= team0num) && !MS0->S4.objeFlag){
13274 }else if(MS0->S4.unitType == 2){
13275 if((MS0->S4.unitNum >= team0num) && (MS0->S4.unitNum >= objeSCSunitCnt)){
13277 }else if((MS0->S4.unitNum >= team0num) && !MS0->S4.objeFlag){
13285 }else if(MS0->S4.team == 1){
13286 if(!MS0->S4.objeFlag && !MS0->S4.placeFlag){
13289 if(U->team == 1 && !U->dead)
13294 if(MS0->S4.unitType == 0){
13295 if(MS0->S4.objeFlag || MS0->S4.placeFlag) team1num = MS0->S4.unitNum;
13297 if((MS0->S4.unitNum == team1num) && (MS0->S4.unitNum == objeSCSunitCnt)){
13299 }else if((MS0->S4.unitNum == team1num) && !MS0->S4.objeFlag){
13304 }else if(MS0->S4.unitType == 1){
13305 if(MS0->S4.objeFlag || MS0->S4.placeFlag) team1num = 65000;
13306 if((MS0->S4.unitNum <= team1num) && (MS0->S4.unitNum <= objeSCSunitCnt)){
13308 }else if((MS0->S4.unitNum <= team1num) && !MS0->S4.objeFlag){
13313 }else if(MS0->S4.unitType == 2){
13315 if((MS0->S4.unitNum >= team1num) && (MS0->S4.unitNum >= objeSCSunitCnt)){
13317 }else if((MS0->S4.unitNum >= team1num) && !MS0->S4.objeFlag){
13323 }else if(MS0->S4.team == 2){
13324 if(!MS0->S4.objeFlag && !MS0->S4.placeFlag){
13327 if(U->team == 2 && !U->dead)
13332 if(MS0->S4.unitType == 0){
13333 if(MS0->S4.objeFlag || MS0->S4.placeFlag) team2num = MS0->S4.unitNum;
13335 if((MS0->S4.unitNum == team2num) && (MS0->S4.unitNum == objeSCSunitCnt)){
13337 }else if((MS0->S4.unitNum == team2num) && !MS0->S4.objeFlag){
13342 }else if(MS0->S4.unitType == 1){
13343 if(MS0->S4.objeFlag || MS0->S4.placeFlag) team2num = 65000;
13345 if((MS0->S4.unitNum <= team2num) && (MS0->S4.unitNum <= objeSCSunitCnt)){
13347 }else if((MS0->S4.unitNum <= team2num) && !MS0->S4.objeFlag){
13352 }else if(MS0->S4.unitType == 2){
13353 if((MS0->S4.unitNum >= team2num) && (MS0->S4.unitNum >= objeSCSunitCnt)){
13355 }else if((MS0->S4.unitNum >= team2num) && !MS0->S4.objeFlag){
13367 if(MS0->S4.unitTypeFlag && MS0->S4.unitNumFlag){
13368 UNIT2 *sjt = MS0->S4.subj;
13369 UNIT *chosen = NULL;
13370 UNIT *chosenT = NULL;
13373 while(MS0->S4.subj){
13376 if(MS0->S4.subj->x == U->ix && MS0->S4.subj->y == U->iy && U->iz == 1){
13378 chosen->next = calloc(1, sizeof(UNIT));
13383 chosen = chosen->next;
13386 chosen = calloc(1, sizeof(UNIT));
13390 chosen->C.name = U->C.name;
13401 MS0->S4.subj = MS0->S4.subj->next;
13402 }MS0->S4.subj = sjt;
13405 int objeSCSunitCnt = 0;
13413 chosen = chosen->next;
13416 if(MS0->S4.unitTypeFlag && MS0->S4.objeFlag){
13418 UNIT2 *objeT = MS0->S4.obje;
13420 while (MS0->S4.obje) {
13425 static bool okflag = true;
13427 for (int i = 0;i < 1002;i++) {
13428 for (int k = 0;k < 1002;k++) {
13435 if(U2->ix == MS0->S4.obje->x && U2->iy == MS0->S4.obje->y){
13447 [self checkPlaceHani:MS0->S4.objeRange+1 tX:U2->y tY:U2->x aMap:objeR u:chosen scsCnt:&objeSCSunitCnt];
13451 for(int bx=1;bx<=chipWidth;bx++){
13452 for(int by=1;by<=chipHeight;by++){
13453 if(objeR[bx][by] != 999 && objeR[bx][by] > 0){
13455 if(objeR[chosen->x][chosen->y] > 0){
13457 if(Unum < Cnum) goto omfgUnitOver3;
13471 if(UP->x == chosen->x && UP->y == chosen->y){
13484 if(!UP) UP = calloc(1, sizeof(UNITPOINT));
13486 while(UP->next) UP = UP->next;
13491 UP->next = calloc(1, sizeof(UNITPOINT));
13505 //NSLog(@"%@, %d, %d", chosen->C.name, objeSCSunitCnt, objeR[0][0]);
13507 chosen = chosen->next;
13510 MS0->S4.obje = MS0->S4.obje->next;
13512 MS0->S4.obje = objeT;
13513 }else if(MS0->S4.objeFlag){
13515 UNIT2 *objeT = MS0->S4.obje;
13517 while (MS0->S4.obje) {
13522 static bool okflag = true;
13524 if(U->team != MS0->S4.team){
13528 for (int i = 0;i < 1002;i++) {
13529 for (int k = 0;k < 1002;k++) {
13536 if(U2->ix == MS0->S4.obje->x && U2->iy == MS0->S4.obje->y){
13547 [self checkPlaceHani:MS0->S4.objeRange+1 tX:U2->y tY:U2->x aMap:objeR u:U scsCnt:&objeSCSunitCnt];
13551 for(int bx=1;bx<=chipWidth;bx++){
13552 for(int by=1;by<=chipHeight;by++){
13553 if(objeR[bx][by] != 999 && objeR[bx][by] > 0){
13555 if(objeR[chosen->x][chosen->y] > 0){
13557 if(Unum < Cnum) goto omfgUnitOver30;
13571 if(UP->x == chosen->x && UP->y == chosen->y){
13584 if(!UP) UP = calloc(1, sizeof(UNITPOINT));
13586 while(UP->next) UP = UP->next;
13591 UP->next = calloc(1, sizeof(UNITPOINT));
13605 //NSLog(@"%@, %d, %d", chosen->C.name, objeSCSunitCnt, objeR[0][0]);
13607 chosen = chosen->next;
13610 MS0->S4.obje = MS0->S4.obje->next;
13612 MS0->S4.obje = objeT;
13620 if(MS0->S4.team == 0){
13621 if(!MS0->S4.unitTypeFlag){
13624 if(U->team == 0 && !U->dead)
13629 if(MS0->S4.unitType == 0){
13630 if(MS0->S4.unitTypeFlag) team0num = MS0->S4.unitNum;
13632 if((MS0->S4.unitNum == team0num) && (MS0->S4.unitNum == cntUnit)
13633 && (MS0->S4.unitNum == objeSCSunitCnt)){
13635 }else if((MS0->S4.unitNum == team0num) && (MS0->S4.unitNum == cntUnit) && !MS0->S4.objeFlag){
13640 }else if(MS0->S4.unitType == 1){
13641 if(MS0->S4.unitTypeFlag) team0num = 65000;
13643 if((MS0->S4.unitNum <= team0num) && (MS0->S4.unitNum <= cntUnit)
13644 && (MS0->S4.unitNum <= objeSCSunitCnt)){
13646 }else if((MS0->S4.unitNum <= team0num) && (MS0->S4.unitNum <= cntUnit) && !MS0->S4.objeFlag){
13651 }else if(MS0->S4.unitType == 2){
13652 if((MS0->S4.unitNum >= team0num) && (MS0->S4.unitNum >= cntUnit)
13653 && (MS0->S4.unitNum >= objeSCSunitCnt)){
13655 }else if((MS0->S4.unitNum >= team0num) && (MS0->S4.unitNum >= cntUnit) && !MS0->S4.objeFlag){
13663 }else if(MS0->S4.team == 1){
13664 if(!MS0->S4.unitTypeFlag){
13667 if(U->team == 1 && !U->dead)
13672 if(MS0->S4.unitType == 0){
13673 if(MS0->S4.unitTypeFlag) team1num = MS0->S4.unitNum;
13675 if((MS0->S4.unitNum == team1num) && (MS0->S4.unitNum == cntUnit)
13676 && (MS0->S4.unitNum == objeSCSunitCnt)){
13678 }else if((MS0->S4.unitNum == team1num) && (MS0->S4.unitNum == cntUnit) && !MS0->S4.objeFlag){
13683 }else if(MS0->S4.unitType == 1){
13684 if(MS0->S4.unitTypeFlag) team1num = 65000;
13686 if((MS0->S4.unitNum <= team1num) && (MS0->S4.unitNum <= cntUnit)
13687 && (MS0->S4.unitNum <= objeSCSunitCnt)){
13689 }else if((MS0->S4.unitNum <= team1num) && (MS0->S4.unitNum <= cntUnit) && !MS0->S4.objeFlag){
13694 }else if(MS0->S4.unitType == 2){
13695 if((MS0->S4.unitNum >= team1num) && (MS0->S4.unitNum >= cntUnit)
13696 && (MS0->S4.unitNum >= objeSCSunitCnt)){
13698 }else if((MS0->S4.unitNum >= team1num) && (MS0->S4.unitNum >= cntUnit) && !MS0->S4.objeFlag){
13704 }else if(MS0->S4.team == 2){
13705 if(!MS0->S4.unitTypeFlag){
13708 if(U->team == 2 && !U->dead)
13713 if(MS0->S4.unitType == 0){
13714 if(MS0->S4.unitTypeFlag) team2num = MS0->S4.unitNum;
13716 if((MS0->S4.unitNum == team2num) && (MS0->S4.unitNum == cntUnit)
13717 && (MS0->S4.unitNum == objeSCSunitCnt)){
13719 }else if((MS0->S4.unitNum == team2num) && (MS0->S4.unitNum == cntUnit) && !MS0->S4.objeFlag){
13724 }else if(MS0->S4.unitType == 1){
13725 if(MS0->S4.unitTypeFlag) team2num = 65000;
13727 if((MS0->S4.unitNum <= team2num) && (MS0->S4.unitNum <= cntUnit)
13728 && (MS0->S4.unitNum <= objeSCSunitCnt)){
13730 }else if((MS0->S4.unitNum <= team2num) && (MS0->S4.unitNum <= cntUnit) && !MS0->S4.objeFlag){
13735 }else if(MS0->S4.unitType == 2){
13736 if((MS0->S4.unitNum >= team2num) && (MS0->S4.unitNum >= cntUnit)
13737 && (MS0->S4.unitNum >= objeSCSunitCnt)){
13739 }else if((MS0->S4.unitNum >= team2num) && (MS0->S4.unitNum >= cntUnit) && !MS0->S4.objeFlag){
13757 if(MS0->S4.placeFlag && MS0->S4.unitNumFlag){
13767 UNIT2 *sjt = MS0->S4.subj;
13768 UNIT *chosen = NULL;
13769 UNIT *chosenT = NULL;
13772 if(MS0->S4.unitTypeFlag){
13773 while(MS0->S4.subj){
13776 if(MS0->S4.subj->x == U->ix && MS0->S4.subj->y == U->iy && U->iz == 1){
13778 chosen->next = calloc(1, sizeof(UNIT));
13783 chosen = chosen->next;
13786 chosen = calloc(1, sizeof(UNIT));
13790 chosen->C.name = U->C.name;
13801 MS0->S4.subj = MS0->S4.subj->next;
13802 }MS0->S4.subj = sjt;
13810 chosen = chosen->next;
13816 PLACEMENT *wpt = MS0->S4.wayp;
13818 int waypSCScnt = 0;
13819 bool waypSCS = false;
13820 int waypSCSunitCnt = 0;
13823 if(!MS0->S4.unitTypeFlag){
13825 while (MS0->S4.wayp) {
13831 if(MS0->S4.wayp->type == 0){
13834 if(U->team != MS0->S4.team){
13838 if(MS0->S4.wayp->x == U->x && MS0->S4.wayp->y == U->y){
13846 }else if(MS0->S4.wayp->type == 1){
13848 static bool okflag = true;
13850 if(U->team != MS0->S4.team){
13854 for (int i = 0;i < 1002;i++) {
13855 for (int k = 0;k < 1002;k++) {
13859 [self checkPlaceHani:MS0->S4.wayp->z+1 tX:MS0->S4.wayp->y tY:MS0->S4.wayp->x aMap:waypR u:U scsCnt:&waypSCSunitCnt];
13863 for(int bx=1;bx<=chipWidth;bx++){
13864 for(int by=1;by<=chipHeight;by++){
13865 if(waypR[bx][by] != 999 && waypR[bx][by] > 0){
13867 if(waypR[U->x][U->y] > 0){
13869 if(Unum < Cnum) goto omfgUnitOver;
13883 if(UP->x == U->x && UP->y == U->y){
13896 if(!UP) UP = calloc(1, sizeof(UNITPOINT));
13898 while(UP->next) UP = UP->next;
13903 UP->next = calloc(1, sizeof(UNITPOINT));
13916 // NSLog(@"%d", waypSCSunitCnt);
13924 }else if(MS0->S4.wayp->type == 2){
13926 waypSCSunitCnt = 0;
13927 static bool okflag = true;
13929 if(U->team != MS0->S4.team){
13933 if((MS0->S4.wayp->x <= U->x) && (MS0->S4.wayp->x2 >= U->x) &&
13934 (MS0->S4.wayp->y <= U->y) && (MS0->S4.wayp->y2 >= U->y)){
13941 if(Unum < Cnum) goto omfgUnitOver;
13955 if(UP->x == U->x && UP->y == U->y){
13968 if(!UP) UP = calloc(1, sizeof(UNITPOINT));
13970 while(UP->next) UP = UP->next;
13975 UP->next = calloc(1, sizeof(UNITPOINT));
13991 MS0->S4.wayp = MS0->S4.wayp->next;
13992 }MS0->S4.wayp = wpt;
13993 // NSLog(@"%d", waypSCSunitCnt);
13995 if(waypSCScnt >= waypCnt)
13998 }else if(MS0->S4.unitTypeFlag){
14000 while (MS0->S4.wayp) {
14006 if(MS0->S4.wayp->type == 0){
14009 if(MS0->S4.wayp->x == chosen->x && MS0->S4.wayp->y == chosen->y){
14014 chosen = chosen->next;
14017 }else if(MS0->S4.wayp->type == 1){
14019 static bool okflag = true;
14021 for (int i = 0;i < 1002;i++) {
14022 for (int k = 0;k < 1002;k++) {
14026 [self checkPlaceHani:MS0->S4.wayp->z+1 tX:MS0->S4.wayp->y tY:MS0->S4.wayp->x aMap:waypR u:chosen scsCnt:&waypSCSunitCnt];
14030 for(int bx=1;bx<=chipWidth;bx++){
14031 for(int by=1;by<=chipHeight;by++){
14032 if(waypR[bx][by] != 999 && waypR[bx][by] > 0){
14034 if(waypR[chosen->x][chosen->y] > 0){
14036 if(Unum < Cnum) goto omfgUnitOver5;
14050 if(UP->x == chosen->x && UP->y == chosen->y){
14063 if(!UP) UP = calloc(1, sizeof(UNITPOINT));
14065 while(UP->next) UP = UP->next;
14070 UP->next = calloc(1, sizeof(UNITPOINT));
14084 // NSLog(@"%d", waypSCSunitCnt);
14086 chosen = chosen->next;
14092 }else if(MS0->S4.wayp->type == 2){
14094 waypSCSunitCnt = 0;
14095 static bool okflag = true;
14097 if((MS0->S4.wayp->x <= chosen->x) && (MS0->S4.wayp->x2 >= chosen->x) &&
14098 (MS0->S4.wayp->y <= chosen->y) && (MS0->S4.wayp->y2 >= chosen->y)){
14105 if(Unum < Cnum) goto omfgUnitOver;
14119 if(UP->x == chosen->x && UP->y == chosen->y){
14132 if(!UP) UP = calloc(1, sizeof(UNITPOINT));
14134 while(UP->next) UP = UP->next;
14139 UP->next = calloc(1, sizeof(UNITPOINT));
14150 chosen = chosen->next;
14155 MS0->S4.wayp = MS0->S4.wayp->next;
14156 }MS0->S4.wayp = wpt;
14157 // NSLog(@"%d", waypSCSunitCnt);
14159 if(waypSCScnt >= waypCnt)
14171 if(MS0->S4.team == 0){
14172 if(!MS0->S4.placeFlag){
14175 if(U->team == 0 && !U->dead)
14180 if(MS0->S4.unitType == 0){
14181 if(MS0->S4.placeFlag) team0num = MS0->S4.unitNum;
14183 if((MS0->S4.unitNum == team0num) && (MS0->S4.unitNum == waypSCSunitCnt)){
14188 }else if(MS0->S4.unitType == 1){
14189 if(MS0->S4.placeFlag) team0num = 65000;
14191 if((MS0->S4.unitNum <= team0num) && (MS0->S4.unitNum <= waypSCSunitCnt)){
14196 }else if(MS0->S4.unitType == 2){
14197 if((MS0->S4.unitNum >= team0num) && (MS0->S4.unitNum >= waypSCSunitCnt)){
14205 }else if(MS0->S4.team == 1){
14206 if(!MS0->S4.placeFlag){
14209 if(U->team == 1 && !U->dead)
14214 if(MS0->S4.unitType == 0){
14215 if(MS0->S4.placeFlag) team1num = MS0->S4.unitNum;
14217 if((MS0->S4.unitNum == team1num) && (MS0->S4.unitNum = waypSCSunitCnt)){
14222 }else if(MS0->S4.unitType == 1){
14223 if(MS0->S4.placeFlag) team1num = 65000;
14225 if((MS0->S4.unitNum <= team1num) && (MS0->S4.unitNum <= waypSCSunitCnt)){
14230 }else if(MS0->S4.unitType == 2){
14231 if((MS0->S4.unitNum >= team1num) && (MS0->S4.unitNum >= waypSCSunitCnt)){
14237 }else if(MS0->S4.team == 2){
14238 if(!MS0->S4.placeFlag){
14241 if(U->team == 2 && !U->dead)
14246 if(MS0->S4.unitType == 0){
14247 if(MS0->S4.placeFlag) team2num = MS0->S4.unitNum;
14249 if((MS0->S4.unitNum == team2num) && (MS0->S4.unitNum == waypSCSunitCnt)){
14254 }else if(MS0->S4.unitType == 1){
14255 if(MS0->S4.placeFlag) team2num = 65000;
14257 if((MS0->S4.unitNum <= team2num) && (MS0->S4.unitNum <= waypSCSunitCnt)){
14262 }else if(MS0->S4.unitType == 2){
14263 if((MS0->S4.unitNum >= team2num) && (MS0->S4.unitNum >= waypSCSunitCnt)){
14274 if(MS0->S4.unitCMDflag){
14276 UNIT2 *sjt = MS0->S4.subj;
14277 UNIT *chosen = NULL;
14278 UNIT *chosenT = NULL;
14281 while(MS0->S4.subj){
14284 if(MS0->S4.subj->x == U->ix && MS0->S4.subj->y == U->iy && U->iz == 1){
14286 chosen->next = calloc(1, sizeof(UNIT));
14291 chosen = chosen->next;
14294 chosen = calloc(1, sizeof(UNIT));
14298 chosen->C.name = U->C.name;
14309 MS0->S4.subj = MS0->S4.subj->next;
14310 }MS0->S4.subj = sjt;
14313 int objeSCSunitCnt = 0;
14321 chosen = chosen->next;
14324 if(MS0->S4.unitTypeFlag && MS0->S4.objeFlag){
14326 UNIT2 *objeT = MS0->S4.obje;
14328 while (MS0->S4.obje) {
14333 static bool okflag = true;
14335 for (int i = 0;i < 1002;i++) {
14336 for (int k = 0;k < 1002;k++) {
14343 if(U2->ix == MS0->S4.obje->x && U2->iy == MS0->S4.obje->y){
14354 [self checkPlaceHani:MS0->S4.objeRange+1 tX:U2->y tY:U2->x aMap:objeR u:chosen scsCnt:&objeSCSunitCnt];
14358 for(int bx=1;bx<=chipWidth;bx++){
14359 for(int by=1;by<=chipHeight;by++){
14360 if(objeR[bx][by] != 999 && objeR[bx][by] > 0){
14362 if(objeR[chosen->x][chosen->y] > 0){
14364 if(Unum < Cnum) goto omfgUnitOver31;
14378 if(UP->x == chosen->x && UP->y == chosen->y){
14391 if(!UP) UP = calloc(1, sizeof(UNITPOINT));
14393 while(UP->next) UP = UP->next;
14398 UP->next = calloc(1, sizeof(UNITPOINT));
14412 //NSLog(@"%@, %d, %d", chosen->C.name, objeSCSunitCnt, objeR[0][0]);
14414 chosen = chosen->next;
14417 MS0->S4.obje = MS0->S4.obje->next;
14419 MS0->S4.obje = objeT;
14420 }else if(MS0->S4.objeFlag){
14422 UNIT2 *objeT = MS0->S4.obje;
14424 while (MS0->S4.obje) {
14429 static bool okflag = true;
14431 if(U->team != MS0->S4.team){
14435 for (int i = 0;i < 1002;i++) {
14436 for (int k = 0;k < 1002;k++) {
14443 if(U2->ix == MS0->S4.obje->x && U2->iy == MS0->S4.obje->y){
14454 [self checkPlaceHani:MS0->S4.objeRange+1 tX:U2->y tY:U2->x aMap:objeR u:U scsCnt:&objeSCSunitCnt];
14458 for(int bx=1;bx<=chipWidth;bx++){
14459 for(int by=1;by<=chipHeight;by++){
14460 if(objeR[bx][by] != 999 && objeR[bx][by] > 0){
14462 if(objeR[chosen->x][chosen->y] > 0){
14464 if(Unum < Cnum) goto omfgUnitOver32;
14478 if(UP->x == chosen->x && UP->y == chosen->y){
14491 if(!UP) UP = calloc(1, sizeof(UNITPOINT));
14493 while(UP->next) UP = UP->next;
14498 UP->next = calloc(1, sizeof(UNITPOINT));
14512 //NSLog(@"%@, %d, %d", chosen->C.name, objeSCSunitCnt, objeR[0][0]);
14514 chosen = chosen->next;
14517 MS0->S4.obje = MS0->S4.obje->next;
14519 MS0->S4.obje = objeT;
14523 if(MS0->S4.team == 0){
14525 if(!MS0->S4.subj && !MS0->S4.obje && !MS0->S4.build){
14527 if(MS0->S4.unitCMD == 0){
14528 if(pushStanbyFlag){
14533 }else if(MS0->S4.unitCMD == 1){
14535 battleSetUpIgnore = true;
14539 }else if(MS0->S4.unitCMD == 2){
14544 }else if(!MS0->S4.subj && !MS0->S4.obje && MS0->S4.build && Uselected){
14548 BUILD2 *bldt = MS0->S4.build;
14550 while(MS0->S4.build){
14551 if(Uselected->x == MS0->S4.build->x && Uselected->y == MS0->S4.build->y){
14553 if(MS0->S4.unitCMD == 0){
14554 if(pushStanbyFlag){
14559 }else if(MS0->S4.unitCMD == 1){
14561 battleSetUpIgnore = true;
14567 }else if(MS0->S4.unitCMD == 2){
14574 MS0->S4.build = MS0->S4.build->next;
14575 }MS0->S4.build = bldt;
14578 }else if(MS0->S4.subj && !MS0->S4.obje && Uselected){
14581 UNIT2 *sbjt = MS0->S4.subj;
14583 while(MS0->S4.subj){
14584 if(Uselected->ix == MS0->S4.subj->x && Uselected->iy == MS0->S4.subj->y && Uselected->iz == 1){
14586 if(MS0->S4.unitCMD == 0){
14587 if(pushStanbyFlag){
14592 }else if(MS0->S4.unitCMD == 1){
14594 battleSetUpIgnore = true;
14600 }else if(MS0->S4.unitCMD == 2){
14608 MS0->S4.subj = MS0->S4.subj->next;
14609 }MS0->S4.subj = sbjt;
14613 else if(MS0->S4.subj && MS0->S4.obje && Uselected){
14615 UNIT2 *sbjt = MS0->S4.subj;
14616 UNIT2 *objt = MS0->S4.obje;
14618 while(MS0->S4.subj){
14619 while(MS0->S4.obje){
14620 if(Uselected->ix == MS0->S4.subj->x && Uselected->iy == MS0->S4.subj->y && Uselected->iz == 1 &&
14621 Utarget->ix == MS0->S4.obje->x && Utarget->iy == MS0->S4.obje->y && Utarget->iz == 1){
14623 if(MS0->S4.unitCMD == 0){
14625 if(MS0->S4.unitType == 0){
14626 if(objeSCSunitCnt == MS0->S4.unitNum){
14628 if(pushStanbyFlag){
14635 }else if(MS0->S4.unitType == 1){
14636 if(objeSCSunitCnt >= MS0->S4.unitNum){
14638 if(pushStanbyFlag){
14645 }else if(MS0->S4.unitType == 2){
14646 if(objeSCSunitCnt <= MS0->S4.unitNum){
14648 if(pushStanbyFlag){
14656 }else if(MS0->S4.unitCMD == 1){
14658 if(MS0->S4.unitType == 0){
14659 if(objeSCSunitCnt == MS0->S4.unitNum){
14662 battleSetUpIgnore = true;
14668 }else if(MS0->S4.unitType == 1){
14669 if(objeSCSunitCnt >= MS0->S4.unitNum){
14672 battleSetUpIgnore = true;
14678 }else if(MS0->S4.unitType == 2){
14679 if(objeSCSunitCnt <= MS0->S4.unitNum){
14682 battleSetUpIgnore = true;
14689 }else if(MS0->S4.unitCMD == 2 && objeSCSunitCnt > 0){
14701 MS0->S4.obje = MS0->S4.obje->next;
14702 }MS0->S4.obje = objt;
14703 MS0->S4.subj = MS0->S4.subj->next;
14704 }MS0->S4.subj = sbjt;
14706 }if(MS0->S4.subj && MS0->S4.build && Uselected){
14709 UNIT2 *sbjt = MS0->S4.subj;
14710 BUILD2 *bldt = MS0->S4.build;
14712 while(MS0->S4.subj){
14713 while(MS0->S4.build){
14714 if(Uselected->ix == MS0->S4.subj->x && Uselected->iy == MS0->S4.subj->y && Uselected->iz == 1 &&
14715 BC[buildNum[Uselected->x][Uselected->y]].nameID == MS0->S4.build->C->nameID &&
14716 Uselected->x == MS0->S4.build->x && Uselected->y == MS0->S4.build->y){
14718 if(MS0->S4.unitCMD == 0){
14719 if(pushStanbyFlag){
14724 }else if(MS0->S4.unitCMD == 1){
14726 battleSetUpIgnore = true;
14732 }else if(MS0->S4.unitCMD == 2){
14741 MS0->S4.build = MS0->S4.build->next;
14742 }MS0->S4.build = bldt;
14744 MS0->S4.subj = MS0->S4.subj->next;
14746 MS0->S4.subj = sbjt;
14749 }else if(MS0->S4.team == 1){
14750 if(!MS0->S4.subj && !MS0->S4.obje && !MS0->S4.build){
14752 if(MS0->S4.unitCMD == 0){
14753 if(pushStanbyFlag){
14758 }else if(MS0->S4.unitCMD == 1){
14760 battleSetUpIgnore = true;
14764 }else if(MS0->S4.unitCMD == 2){
14769 }else if(!MS0->S4.subj && !MS0->S4.obje && MS0->S4.build && Uselected){
14773 BUILD2 *bldt = MS0->S4.build;
14774 while(MS0->S4.build){
14775 if(Uselected->x == MS0->S4.build->x && Uselected->y == MS0->S4.build->y){
14777 if(MS0->S4.unitCMD == 0){
14778 if(pushStanbyFlag){
14783 }else if(MS0->S4.unitCMD == 1){
14785 battleSetUpIgnore = true;
14791 }else if(MS0->S4.unitCMD == 2){
14798 MS0->S4.build = MS0->S4.build->next;
14799 }MS0->S4.build = bldt;
14802 }else if(MS0->S4.subj && !MS0->S4.obje && Uselected){
14806 UNIT2 *sbjt = MS0->S4.subj;
14808 while(MS0->S4.subj){
14809 if(Uselected->ix == MS0->S4.subj->x && Uselected->iy == MS0->S4.subj->y && Uselected->iz == 1){
14811 if(MS0->S4.unitCMD == 0){
14812 if(pushStanbyFlag){
14817 }else if(MS0->S4.unitCMD == 1){
14819 battleSetUpIgnore = true;
14825 }else if(MS0->S4.unitCMD == 2){
14833 MS0->S4.subj = MS0->S4.subj->next;
14834 }MS0->S4.subj = sbjt;
14836 }else if(MS0->S4.subj && MS0->S4.obje && Uselected){
14838 UNIT2 *sbjt = MS0->S4.subj;
14839 UNIT2 *objt = MS0->S4.obje;
14841 while(MS0->S4.subj){
14842 while(MS0->S4.obje){
14843 if(Uselected->ix == MS0->S4.subj->x && Uselected->iy == MS0->S4.subj->y && Uselected->iz == 1 &&
14844 Utarget->ix == MS0->S4.obje->x && Utarget->iy == MS0->S4.obje->y && Utarget->iz == 1){
14846 if(MS0->S4.unitCMD == 0){
14848 if(MS0->S4.unitType == 0){
14849 if(objeSCSunitCnt == MS0->S4.unitNum){
14851 if(pushStanbyFlag){
14858 }else if(MS0->S4.unitType == 1){
14859 if(objeSCSunitCnt >= MS0->S4.unitNum){
14861 if(pushStanbyFlag){
14868 }else if(MS0->S4.unitType == 2){
14869 if(objeSCSunitCnt <= MS0->S4.unitNum){
14871 if(pushStanbyFlag){
14879 }else if(MS0->S4.unitCMD == 1){
14881 if(MS0->S4.unitType == 0){
14882 if(objeSCSunitCnt == MS0->S4.unitNum){
14885 battleSetUpIgnore = true;
14891 }else if(MS0->S4.unitType == 1){
14892 if(objeSCSunitCnt >= MS0->S4.unitNum){
14895 battleSetUpIgnore = true;
14901 }else if(MS0->S4.unitType == 2){
14902 if(objeSCSunitCnt <= MS0->S4.unitNum){
14905 battleSetUpIgnore = true;
14912 }else if(MS0->S4.unitCMD == 2 && objeSCSunitCnt > 0){
14925 MS0->S4.obje = MS0->S4.obje->next;
14926 }MS0->S4.obje = objt;
14927 MS0->S4.subj = MS0->S4.subj->next;
14928 }MS0->S4.subj = sbjt;
14930 }if(MS0->S4.subj && MS0->S4.build && Uselected){
14932 UNIT2 *sbjt = MS0->S4.subj;
14933 BUILD2 *bldt = MS0->S4.build;
14934 while(MS0->S4.subj){
14935 while(MS0->S4.build){
14936 if(Uselected->ix == MS0->S4.subj->x && Uselected->iy == MS0->S4.subj->y && Uselected->iz == 1 &&
14937 BC[buildNum[Uselected->x][Uselected->y]].nameID == MS0->S4.build->C->nameID &&
14938 Uselected->x == MS0->S4.build->x && Uselected->y == MS0->S4.build->y){
14940 if(MS0->S4.unitCMD == 0){
14941 if(pushStanbyFlag){
14946 }else if(MS0->S4.unitCMD == 1){
14948 battleSetUpIgnore = true;
14954 }else if(MS0->S4.unitCMD == 2){
14963 MS0->S4.build = MS0->S4.build->next;
14964 }MS0->S4.build = bldt;
14965 MS0->S4.subj = MS0->S4.subj->next;
14966 }MS0->S4.subj = sbjt;
14968 }else if(MS0->S4.team == 2){
14969 if(!MS0->S4.subj && !MS0->S4.obje && !MS0->S4.build){
14971 if(MS0->S4.unitCMD == 0){
14972 if(pushStanbyFlag){
14977 }else if(MS0->S4.unitCMD == 1){
14979 battleSetUpIgnore = true;
14983 }else if(MS0->S4.unitCMD == 2){
14988 }else if(!MS0->S4.subj && !MS0->S4.obje && MS0->S4.build && Uselected){
14992 BUILD2 *bldt = MS0->S4.build;
14993 while(MS0->S4.build){
14994 if(Uselected->x == MS0->S4.build->x && Uselected->y == MS0->S4.build->y){
14996 if(MS0->S4.unitCMD == 0){
14997 if(pushStanbyFlag){
15002 }else if(MS0->S4.unitCMD == 1){
15004 battleSetUpIgnore = true;
15010 }else if(MS0->S4.unitCMD == 2){
15017 MS0->S4.build = MS0->S4.build->next;
15018 }MS0->S4.build = bldt;
15021 }else if(MS0->S4.subj && !MS0->S4.obje && Uselected){
15023 UNIT2 *sbjt = MS0->S4.subj;
15025 while(MS0->S4.subj){
15026 if(Uselected->ix == MS0->S4.subj->x && Uselected->iy == MS0->S4.subj->y && Uselected->iz == 1){
15028 if(MS0->S4.unitCMD == 0){
15029 if(pushStanbyFlag){
15034 }else if(MS0->S4.unitCMD == 1){
15036 battleSetUpIgnore = true;
15042 }else if(MS0->S4.unitCMD == 2){
15049 MS0->S4.subj = MS0->S4.subj->next;
15050 }MS0->S4.subj = sbjt;
15052 }else if(MS0->S4.subj && MS0->S4.obje && Uselected){
15054 UNIT2 *sbjt = MS0->S4.subj;
15055 UNIT2 *objt = MS0->S4.obje;
15057 while(MS0->S4.subj){
15058 while(MS0->S4.obje){
15059 if(Uselected->ix == MS0->S4.subj->x && Uselected->iy == MS0->S4.subj->y && Uselected->iz == 1 &&
15060 Utarget->ix == MS0->S4.obje->x && Utarget->iy == MS0->S4.obje->y && Utarget->iz == 1){
15062 if(MS0->S4.unitCMD == 0){
15064 if(MS0->S4.unitType == 0){
15065 if(objeSCSunitCnt == MS0->S4.unitNum){
15067 if(pushStanbyFlag){
15074 }else if(MS0->S4.unitType == 1){
15075 if(objeSCSunitCnt >= MS0->S4.unitNum){
15077 if(pushStanbyFlag){
15084 }else if(MS0->S4.unitType == 2){
15085 if(objeSCSunitCnt <= MS0->S4.unitNum){
15087 if(pushStanbyFlag){
15095 }else if(MS0->S4.unitCMD == 1){
15097 if(MS0->S4.unitType == 0){
15098 if(objeSCSunitCnt == MS0->S4.unitNum){
15101 battleSetUpIgnore = true;
15107 }else if(MS0->S4.unitType == 1){
15108 if(objeSCSunitCnt >= MS0->S4.unitNum){
15111 battleSetUpIgnore = true;
15117 }else if(MS0->S4.unitType == 2){
15118 if(objeSCSunitCnt <= MS0->S4.unitNum){
15121 battleSetUpIgnore = true;
15128 }else if(MS0->S4.unitCMD == 2 && objeSCSunitCnt > 0){
15136 MS0->S4.obje = MS0->S4.obje->next;
15137 }MS0->S4.obje = objt;
15138 MS0->S4.subj = MS0->S4.subj->next;
15139 }MS0->S4.subj = sbjt;
15140 }if(MS0->S4.subj && MS0->S4.build && Uselected){
15142 UNIT2 *sbjt = MS0->S4.subj;
15143 BUILD2 *bldt = MS0->S4.build;
15144 while(MS0->S4.subj){
15145 while(MS0->S4.build){
15146 if(Uselected->ix == MS0->S4.subj->x && Uselected->iy == MS0->S4.subj->y && Uselected->iz == 1 &&
15147 BC[buildNum[Uselected->x][Uselected->y]].nameID == MS0->S4.build->C->nameID &&
15148 Uselected->x == MS0->S4.build->x && Uselected->y == MS0->S4.build->y){
15150 if(MS0->S4.unitCMD == 0){
15151 if(pushStanbyFlag){
15156 }else if(MS0->S4.unitCMD == 1){
15158 battleSetUpIgnore = true;
15164 }else if(MS0->S4.unitCMD == 2){
15173 MS0->S4.build = MS0->S4.build->next;
15174 }MS0->S4.build = bldt;
15175 MS0->S4.subj = MS0->S4.subj->next;
15176 }MS0->S4.subj = sbjt;
15214 branchEndFlag = true;
15215 MS0->succeessfulFlag = false;
15217 branchSuceedFlag = true;
15218 MS0->succeessfulFlag = true;
15220 MS0->succeessfulFlag = false;
15225 if(!branchSuceedFlag){
15228 MS0->endFlag = false;
15233 MS0->endFlag = true;
15236 if([CRMS0->S4.FAILrabel isEqualToString:MS0->label] && 0){
15238 MS0->succeessfulFlag = false;
15239 MS0->endFlag = false;
15245 if([CRMS0->S4.FAILrabel isEqualToString:MS0->next->label]){
15247 if(MS0->type == 6 && MS0->endFlag){
15250 MS0->succeessfulFlag = true;
15252 MS0->endFlag = true;
15256 if(MS0->type == 6 && MS0->endFlag){
15259 MS0->succeessfulFlag = true;
15261 MS0->endFlag = true;
15268 //MS0->endFlag = true;
15272 }else if(branchSuceedFlag){
15275 MS0->endFlag = false;
15280 MS0->endFlag = true;
15284 if([CRMS0->S4.COMPrabel isEqualToString:MS0->label] && 0){
15285 MS0->succeessfulFlag = false;
15286 MS0->endFlag = false;
15292 if([CRMS0->S4.COMPrabel isEqualToString:MS0->next->label]){
15294 if(MS0->type == 6 && MS0->endFlag){
15297 MS0->succeessfulFlag = true;
15299 MS0->endFlag = true;
15304 if(MS0->type == 6 && MS0->endFlag){
15307 MS0->succeessfulFlag = true;
15309 MS0->endFlag = true;
15316 //MS0->endFlag = true;
15322 //NSLog(@"%g", eventTime);
15323 //NSLog(@"%d", MSDPtop->succeessfulFlag);
15324 //MS0->endFlag = true;
15326 MS0 = [self setEvent:MS0];
15332 -(void)checkPlaceHani:(int)cnsPow tX:(int)startX tY:(int)startY aMap:(int[][1002])aMap u:(UNIT*)u scsCnt:(int*)scsCnt{
15334 if(cnsPow < 0) return;
15338 if(aMap[startY][startX] <= cnsPow)
15339 aMap[startY][startX] = cnsPow;
15341 if(startY < 0) startY = 0;
15342 if(startX < 0) startX = 0;
15343 if(cnsPow < 0) cnsPow = 0;
15347 if(aMap[startY-1][startX] >= 0 && cnsPow > 0)
15348 [self checkPlaceHani:i0 tX:startX tY:startY-1 aMap:aMap u:u scsCnt:j0];
15351 if(aMap[startY+1][startX] >= 0 && cnsPow > 0)
15352 [self checkPlaceHani:i0 tX:startX tY:startY+1 aMap:aMap u:u scsCnt:j0];
15355 if(aMap[startY][startX-1] >= 0 && cnsPow > 0)
15356 [self checkPlaceHani:i0 tX:startX-1 tY:startY aMap:aMap u:u scsCnt:j0];
15359 if(aMap[startY][startX+1] >= 0 && cnsPow > 0)
15360 [self checkPlaceHani:i0 tX:startX+1 tY:startY aMap:aMap u:u scsCnt:j0];
15365 -(MAPSCRIPT0*)setLabelJump:(MAPSCRIPT0*)MS0{
15367 MAPSCRIPT0 *CRMS0 = MS0;
15370 MS0->endFlag = false;
15374 MS0->endFlag = true;
15375 MS0->succeessfulFlag = true;
15379 if([CRMS0->labelJump isEqualToString:MS0->label]){
15380 MS0->succeessfulFlag = false;
15381 MS0->endFlag = false;
15387 if([CRMS0->labelJump isEqualToString:MS0->next->label]){
15388 if(MS0->type == 6 && MS0->endFlag){
15391 MS0->succeessfulFlag = true;
15393 MS0->endFlag = true;
15397 if(MS0->type == 6 && MS0->endFlag){
15400 MS0->succeessfulFlag = true;
15402 MS0->endFlag = true;
15414 -(MAPSCRIPT0*)setDefault:(MAPSCRIPT0*)MS0{
15416 MS0->succeessfulFlag = true;
15417 MS0->endFlag = true;
15421 -(MAPSCRIPT0*)setStatus:(MAPSCRIPT0*)MS0{
15423 NSString *value = @"";
15425 if(MS0->S7.valueType == 0)
15426 value = [MS0->S7.value retain];
15427 else if(MS0->S7.valueType == 1)
15428 value = [Hensuu[MS0->S7.rdm] retain];
15430 if(MS0->S7.teamFlag){
15434 if(MS0->S7.team == U->team)
15435 [self setStatus0:U MS0:MS0 value:value];
15441 if(MS0->S7.unitFlag){
15445 MAPSCRIPT7A *MS7A = MS0->S7.A;
15446 while (MS0->S7.A) {
15448 if(U->ix == MS0->S7.A->x || U->iy == MS0->S7.A->y){
15449 [self setStatus0:U MS0:MS0 value:value];
15452 MS0->S7.A = MS0->S7.A->next;
15459 if(MS0->S7.valueFlag){
15463 MAPSCRIPT7B *MS7B = MS0->S7.B;
15464 while (MS0->S7.B) {
15466 if(U->ix == MS0->S7.B->x || U->iy == MS0->S7.B->y){
15467 [self setStatus0:U MS0:MS0 value:value];
15470 MS0->S7.B = MS0->S7.B->next;
15477 MS0->succeessfulFlag = true;
15478 MS0->endFlag = true;
15482 -(UNIT*)setStatus0:(UNIT*)U MS0:(MAPSCRIPT0*)MS0 value:(NSString*)value{
15484 if(!MS0->S7.maxFlag){
15486 if (!MS0->S7.percentFlag) {
15488 switch (MS0->S7.type) {
15490 if(MS0->S7.fluctuate == 0)
15491 U->C.S_C.HP += [value doubleValue];
15492 else if(MS0->S7.fluctuate == 1)
15493 U->C.S_C.HP -= [value doubleValue];
15494 else if(MS0->S7.fluctuate == 2)
15495 U->C.S_C.HP = [value doubleValue];
15496 if(MS0->S7.extendFlag)
15497 if(U->C.S_C.HP > U->C.S_M.HP)
15498 U->C.S_C.HP = U->C.S_M.HP;
15499 if(U->C.S_C.HP < 0)
15503 if(MS0->S7.fluctuate == 0)
15504 U->C.S_C.MP += [value doubleValue];
15505 else if(MS0->S7.fluctuate == 1)
15506 U->C.S_C.MP -= [value doubleValue];
15507 else if(MS0->S7.fluctuate == 2)
15508 U->C.S_C.MP = [value doubleValue];
15509 if(MS0->S7.extendFlag)
15510 if(U->C.S_C.MP > U->C.S_M.MP)
15511 U->C.S_C.MP = U->C.S_M.MP;
15512 if(U->C.S_C.MP < 0)
15516 if(MS0->S7.fluctuate == 0)
15517 U->C.S_C.WT += [value doubleValue];
15518 else if(MS0->S7.fluctuate == 1)
15519 U->C.S_C.WT -= [value doubleValue];
15520 else if(MS0->S7.fluctuate == 2)
15521 U->C.S_C.WT = [value doubleValue];
15522 if(MS0->S7.extendFlag)
15523 if(U->C.S_C.WT > U->C.S_M.WT)
15524 U->C.S_C.WT = U->C.S_M.WT;
15525 if(U->C.S_C.WT < 0)
15529 if(MS0->S7.fluctuate == 0)
15530 U->C.S_C.STR += [value doubleValue];
15531 else if(MS0->S7.fluctuate == 1)
15532 U->C.S_C.STR -= [value doubleValue];
15533 else if(MS0->S7.fluctuate == 2)
15534 U->C.S_C.STR = [value doubleValue];
15535 if(MS0->S7.extendFlag)
15536 if(U->C.S_C.STR > U->C.S_M.STR)
15537 U->C.S_C.STR = U->C.S_M.STR;
15538 if(U->C.S_C.STR < 0)
15542 if(MS0->S7.fluctuate == 0)
15543 U->C.S_C.VIT += [value doubleValue];
15544 else if(MS0->S7.fluctuate == 1)
15545 U->C.S_C.VIT -= [value doubleValue];
15546 else if(MS0->S7.fluctuate == 2)
15547 U->C.S_C.VIT = [value doubleValue];
15548 if(MS0->S7.extendFlag)
15549 if(U->C.S_C.VIT > U->C.S_M.VIT)
15550 U->C.S_C.VIT = U->C.S_M.VIT;
15551 if(U->C.S_C.VIT < 0)
15555 if(MS0->S7.fluctuate == 0)
15556 U->C.S_C.AGI += [value doubleValue];
15557 else if(MS0->S7.fluctuate == 1)
15558 U->C.S_C.AGI -= [value doubleValue];
15559 else if(MS0->S7.fluctuate == 2)
15560 U->C.S_C.AGI = [value doubleValue];
15561 if(MS0->S7.extendFlag)
15562 if(U->C.S_C.AGI > U->C.S_M.AGI)
15563 U->C.S_C.AGI = U->C.S_M.AGI;
15564 if(U->C.S_C.AGI < 0)
15568 if(MS0->S7.fluctuate == 0)
15569 U->C.S_C.DEX += [value doubleValue];
15570 else if(MS0->S7.fluctuate == 1)
15571 U->C.S_C.DEX -= [value doubleValue];
15572 else if(MS0->S7.fluctuate == 2)
15573 U->C.S_C.DEX = [value doubleValue];
15574 if(MS0->S7.extendFlag)
15575 if(U->C.S_C.DEX > U->C.S_M.DEX)
15576 U->C.S_C.DEX = U->C.S_M.DEX;
15577 if(U->C.S_C.DEX < 0)
15581 if(MS0->S7.fluctuate == 0)
15582 U->C.S_C.MEN += [value doubleValue];
15583 else if(MS0->S7.fluctuate == 1)
15584 U->C.S_C.MEN -= [value doubleValue];
15585 else if(MS0->S7.fluctuate == 2)
15586 U->C.S_C.MEN = [value doubleValue];
15587 if(MS0->S7.extendFlag)
15588 if(U->C.S_C.MEN > U->C.S_M.MEN)
15589 U->C.S_C.MEN = U->C.S_M.MEN;
15590 if(U->C.S_C.MEN < 0)
15594 if(MS0->S7.fluctuate == 0)
15595 U->C.S_C.INT += [value doubleValue];
15596 else if(MS0->S7.fluctuate == 1)
15597 U->C.S_C.INT -= [value doubleValue];
15598 else if(MS0->S7.fluctuate == 2)
15599 U->C.S_C.INT = [value doubleValue];
15600 if(MS0->S7.extendFlag)
15601 if(U->C.S_C.INT > U->C.S_M.INT)
15602 U->C.S_C.INT = U->C.S_M.INT;
15603 if(U->C.S_C.INT < 0)
15607 if(MS0->S7.fluctuate == 0)
15608 U->C.S_C.LUK += [value doubleValue];
15609 else if(MS0->S7.fluctuate == 1)
15610 U->C.S_C.LUK -= [value doubleValue];
15611 else if(MS0->S7.fluctuate == 2)
15612 U->C.S_C.LUK = [value doubleValue];
15613 if(MS0->S7.extendFlag)
15614 if(U->C.S_C.LUK > U->C.S_M.LUK)
15615 U->C.S_C.LUK = U->C.S_M.LUK;
15616 if(U->C.S_C.LUK < 0)
15620 if(MS0->S7.fluctuate == 0)
15621 U->C.S_C.MOV += [value doubleValue];
15622 else if(MS0->S7.fluctuate == 1)
15623 U->C.S_C.MOV -= [value doubleValue];
15624 else if(MS0->S7.fluctuate == 2)
15625 U->C.S_C.MOV = [value doubleValue];
15626 if(MS0->S7.extendFlag)
15627 if(U->C.S_C.MOV > U->C.S_M.MOV)
15628 U->C.S_C.MOV = U->C.S_M.MOV;
15629 if(U->C.S_C.MOV < 0)
15633 if(MS0->S7.fluctuate == 0)
15634 U->C.S_C.MEL += [value doubleValue];
15635 else if(MS0->S7.fluctuate == 1)
15636 U->C.S_C.MEL -= [value doubleValue];
15637 else if(MS0->S7.fluctuate == 2)
15638 U->C.S_C.MEL = [value doubleValue];
15639 if(MS0->S7.extendFlag)
15640 if(U->C.S_C.MEL > U->C.S_M.MEL)
15641 U->C.S_C.MEL = U->C.S_M.MEL;
15642 if(U->C.S_C.MEL < 0)
15646 if(MS0->S7.fluctuate == 0)
15647 U->C.S_C.MIS += [value doubleValue];
15648 else if(MS0->S7.fluctuate == 1)
15649 U->C.S_C.MIS -= [value doubleValue];
15650 else if(MS0->S7.fluctuate == 2)
15651 U->C.S_C.MIS = [value doubleValue];
15652 if(MS0->S7.extendFlag)
15653 if(U->C.S_C.MIS > U->C.S_M.MIS)
15654 U->C.S_C.MIS = U->C.S_M.MIS;
15655 if(U->C.S_C.MIS < 0)
15659 if(MS0->S7.fluctuate == 0)
15660 U->C.S_C.HIT += [value doubleValue];
15661 else if(MS0->S7.fluctuate == 1)
15662 U->C.S_C.HIT -= [value doubleValue];
15663 else if(MS0->S7.fluctuate == 2)
15664 U->C.S_C.HIT = [value doubleValue];
15665 if(MS0->S7.extendFlag)
15666 if(U->C.S_C.HIT > U->C.S_M.HIT)
15667 U->C.S_C.HIT = U->C.S_M.HIT;
15668 if(U->C.S_C.HIT < 0)
15672 if(MS0->S7.fluctuate == 0)
15673 U->C.S_C.DOD += [value doubleValue];
15674 else if(MS0->S7.fluctuate == 1)
15675 U->C.S_C.DOD -= [value doubleValue];
15676 else if(MS0->S7.fluctuate == 2)
15677 U->C.S_C.DOD = [value doubleValue];
15678 if(MS0->S7.extendFlag)
15679 if(U->C.S_C.DOD > U->C.S_M.DOD)
15680 U->C.S_C.DOD = U->C.S_M.DOD;
15681 if(U->C.S_C.DOD < 0)
15685 if(MS0->S7.fluctuate == 0)
15686 U->C.S_C.REA += [value doubleValue];
15687 else if(MS0->S7.fluctuate == 1)
15688 U->C.S_C.REA -= [value doubleValue];
15689 else if(MS0->S7.fluctuate == 2)
15690 U->C.S_C.REA = [value doubleValue];
15691 if(MS0->S7.extendFlag)
15692 if(U->C.S_C.REA > U->C.S_M.REA)
15693 U->C.S_C.REA = U->C.S_M.REA;
15694 if(U->C.S_C.REA < 0)
15698 if(MS0->S7.fluctuate == 0)
15699 U->C.S_C.SKI += [value doubleValue];
15700 else if(MS0->S7.fluctuate == 1)
15701 U->C.S_C.SKI -= [value doubleValue];
15702 else if(MS0->S7.fluctuate == 2)
15703 U->C.S_C.SKI = [value doubleValue];
15704 if(MS0->S7.extendFlag)
15705 if(U->C.S_C.SKI > U->C.S_M.SKI)
15706 U->C.S_C.SKI = U->C.S_M.SKI;
15707 if(U->C.S_C.SKI < 0)
15711 U->C.name = [value retain];
15714 U->C.nameNick = [value retain];
15717 U->C.nameClass = [value retain];
15720 U->C.S_C.typeMONS = [value doubleValue];
15723 U->C.S_C.typeMOVE = [value doubleValue];
15726 if(MS0->S7.fluctuate == 0)
15727 U->C.S_C.cSupply += [value doubleValue];
15728 else if(MS0->S7.fluctuate == 1)
15729 U->C.S_C.cSupply -= [value doubleValue];
15730 else if(MS0->S7.fluctuate == 2)
15731 U->C.S_C.cSupply = [value doubleValue];
15732 if(MS0->S7.extendFlag)
15733 if(U->C.S_C.cSupply > U->C.S_M.cSupply)
15734 U->C.S_C.cSupply = U->C.S_M.cSupply;
15735 if(U->C.S_C.cSupply < 0)
15736 U->C.S_C.cSupply = 0;
15739 if(MS0->S7.fluctuate == 0)
15740 U->C.S_C.cFood += [value doubleValue];
15741 else if(MS0->S7.fluctuate == 1)
15742 U->C.S_C.cFood -= [value doubleValue];
15743 else if(MS0->S7.fluctuate == 2)
15744 U->C.S_C.cFood = [value doubleValue];
15745 if(MS0->S7.extendFlag)
15746 if(U->C.S_C.cFood > U->C.S_M.cFood)
15747 U->C.S_C.cFood = U->C.S_M.cFood;
15748 if(U->C.S_C.cFood < 0)
15749 U->C.S_C.cFood = 0;
15752 if(MS0->S7.fluctuate == 0)
15753 U->C.S_C.cMoney += [value doubleValue];
15754 else if(MS0->S7.fluctuate == 1)
15755 U->C.S_C.cMoney -= [value doubleValue];
15756 else if(MS0->S7.fluctuate == 2)
15757 U->C.S_C.cMoney = [value doubleValue];
15758 if(MS0->S7.extendFlag)
15759 if(U->C.S_C.cMoney > U->C.S_M.cMoney)
15760 U->C.S_C.cMoney = U->C.S_M.cMoney;
15761 if(U->C.S_C.cMoney < 0)
15762 U->C.S_C.cMoney = 0;
15765 if(MS0->S7.fluctuate == 0)
15766 U->C.S_C.cWT += [value doubleValue];
15767 else if(MS0->S7.fluctuate == 1)
15768 U->C.S_C.cWT -= [value doubleValue];
15769 else if(MS0->S7.fluctuate == 2)
15770 U->C.S_C.cWT = [value doubleValue];
15771 if(MS0->S7.extendFlag)
15772 if(U->C.S_C.cWT > U->C.S_M.cWT)
15773 U->C.S_C.cWT = U->C.S_M.cWT;
15774 if(U->C.S_C.cWT < 0)
15778 if(MS0->S7.fluctuate == 0)
15779 U->C.S_C.vigor += [value doubleValue];
15780 else if(MS0->S7.fluctuate == 1)
15781 U->C.S_C.vigor -= [value doubleValue];
15782 else if(MS0->S7.fluctuate == 2)
15783 U->C.S_C.vigor = [value doubleValue];
15784 if(MS0->S7.extendFlag)
15785 if(U->C.S_C.vigor > U->C.S_M.vigor)
15786 U->C.S_C.vigor = U->C.S_M.vigor;
15787 if(U->C.S_C.vigor < 0)
15788 U->C.S_C.vigor = 0;
15797 switch (MS0->S7.type) {
15799 if(MS0->S7.fluctuate == 0)
15800 U->C.S_C.HP += U->C.S_M.HP*[value doubleValue]/100;
15801 else if(MS0->S7.fluctuate == 1)
15802 U->C.S_C.HP -= U->C.S_M.HP*[value doubleValue]/100;
15803 else if(MS0->S7.fluctuate == 2)
15804 U->C.S_C.HP = U->C.S_M.HP*[value doubleValue]/100;
15805 if(MS0->S7.extendFlag)
15806 if(U->C.S_C.HP > U->C.S_M.HP)
15807 U->C.S_C.HP = U->C.S_M.HP;
15808 if(U->C.S_C.HP < 0)
15812 if(MS0->S7.fluctuate == 0)
15813 U->C.S_C.MP += U->C.S_M.MP*[value doubleValue]/100;
15814 else if(MS0->S7.fluctuate == 1)
15815 U->C.S_C.MP -= U->C.S_M.MP*[value doubleValue]/100;
15816 else if(MS0->S7.fluctuate == 2)
15817 U->C.S_C.MP = U->C.S_M.MP*[value doubleValue]/100;
15818 if(MS0->S7.extendFlag)
15819 if(U->C.S_C.MP > U->C.S_M.MP)
15820 U->C.S_C.MP = U->C.S_M.MP;
15821 if(U->C.S_C.MP < 0)
15825 if(MS0->S7.fluctuate == 0)
15826 U->C.S_C.WT += U->C.S_M.WT*[value doubleValue]/100;
15827 else if(MS0->S7.fluctuate == 1)
15828 U->C.S_C.WT -= U->C.S_M.WT*[value doubleValue]/100;
15829 else if(MS0->S7.fluctuate == 2)
15830 U->C.S_C.MP = U->C.S_M.WT*[value doubleValue]/100;
15831 if(MS0->S7.extendFlag)
15832 if(U->C.S_C.WT > U->C.S_M.WT)
15833 U->C.S_C.WT = U->C.S_M.WT;
15834 if(U->C.S_C.WT < 0)
15838 if(MS0->S7.fluctuate == 0)
15839 U->C.S_C.STR += U->C.S_M.STR*[value doubleValue]/100;
15840 else if(MS0->S7.fluctuate == 1)
15841 U->C.S_C.STR -= U->C.S_M.STR*[value doubleValue]/100;
15842 else if(MS0->S7.fluctuate == 2)
15843 U->C.S_C.STR = U->C.S_M.STR*[value doubleValue]/100;
15844 if(MS0->S7.extendFlag)
15845 if(U->C.S_C.STR > U->C.S_M.STR)
15846 U->C.S_C.STR = U->C.S_M.STR;
15847 if(U->C.S_C.STR < 0)
15851 if(MS0->S7.fluctuate == 0)
15852 U->C.S_C.VIT += U->C.S_M.VIT*[value doubleValue]/100;
15853 else if(MS0->S7.fluctuate == 1)
15854 U->C.S_C.VIT -= U->C.S_M.VIT*[value doubleValue]/100;
15855 else if(MS0->S7.fluctuate == 2)
15856 U->C.S_C.VIT = U->C.S_M.VIT*[value doubleValue]/100;
15857 if(MS0->S7.extendFlag)
15858 if(U->C.S_C.VIT > U->C.S_M.VIT)
15859 U->C.S_C.VIT = U->C.S_M.VIT;
15860 if(U->C.S_C.VIT < 0)
15864 if(MS0->S7.fluctuate == 0)
15865 U->C.S_C.AGI += U->C.S_M.AGI*[value doubleValue]/100;
15866 else if(MS0->S7.fluctuate == 1)
15867 U->C.S_C.AGI -= U->C.S_M.AGI*[value doubleValue]/100;
15868 else if(MS0->S7.fluctuate == 2)
15869 U->C.S_C.AGI = U->C.S_M.AGI*[value doubleValue]/100;
15870 if(MS0->S7.extendFlag)
15871 if(U->C.S_C.AGI > U->C.S_M.AGI)
15872 U->C.S_C.AGI = U->C.S_M.AGI;
15873 if(U->C.S_C.AGI < 0)
15877 if(MS0->S7.fluctuate == 0)
15878 U->C.S_C.DEX += U->C.S_M.DEX*[value doubleValue]/100;
15879 else if(MS0->S7.fluctuate == 1)
15880 U->C.S_C.DEX -= U->C.S_M.DEX*[value doubleValue]/100;
15881 else if(MS0->S7.fluctuate == 2)
15882 U->C.S_C.DEX = U->C.S_M.DEX*[value doubleValue]/100;
15883 if(MS0->S7.extendFlag)
15884 if(U->C.S_C.DEX > U->C.S_M.DEX)
15885 U->C.S_C.DEX = U->C.S_M.DEX;
15886 if(U->C.S_C.DEX < 0)
15890 if(MS0->S7.fluctuate == 0)
15891 U->C.S_C.MEN += U->C.S_M.MEN*[value doubleValue]/100;
15892 else if(MS0->S7.fluctuate == 1)
15893 U->C.S_C.MEN -= U->C.S_M.MEN*[value doubleValue]/100;
15894 else if(MS0->S7.fluctuate == 2)
15895 U->C.S_C.MEN = U->C.S_M.MEN*[value doubleValue]/100;
15896 if(MS0->S7.extendFlag)
15897 if(U->C.S_C.MEN > U->C.S_M.MEN)
15898 U->C.S_C.MEN = U->C.S_M.MEN;
15899 if(U->C.S_C.MEN < 0)
15903 if(MS0->S7.fluctuate == 0)
15904 U->C.S_C.INT += U->C.S_M.INT*[value doubleValue]/100;
15905 else if(MS0->S7.fluctuate == 1)
15906 U->C.S_C.INT -= U->C.S_M.INT*[value doubleValue]/100;
15907 else if(MS0->S7.fluctuate == 2)
15908 U->C.S_C.INT = U->C.S_M.INT*[value doubleValue]/100;
15909 if(MS0->S7.extendFlag)
15910 if(U->C.S_C.INT > U->C.S_M.INT)
15911 U->C.S_C.INT = U->C.S_M.INT;
15912 if(U->C.S_C.INT < 0)
15916 if(MS0->S7.fluctuate == 0)
15917 U->C.S_C.LUK += U->C.S_M.LUK*[value doubleValue]/100;
15918 else if(MS0->S7.fluctuate == 1)
15919 U->C.S_C.LUK -= U->C.S_M.LUK*[value doubleValue]/100;
15920 else if(MS0->S7.fluctuate == 2)
15921 U->C.S_C.LUK = U->C.S_M.LUK*[value doubleValue]/100;
15922 if(MS0->S7.extendFlag)
15923 if(U->C.S_C.LUK > U->C.S_M.LUK)
15924 U->C.S_C.LUK = U->C.S_M.LUK;
15925 if(U->C.S_C.LUK < 0)
15929 if(MS0->S7.fluctuate == 0)
15930 U->C.S_C.MOV += U->C.S_M.MOV*[value doubleValue]/100;
15931 else if(MS0->S7.fluctuate == 1)
15932 U->C.S_C.MOV -= U->C.S_M.MOV*[value doubleValue]/100;
15933 else if(MS0->S7.fluctuate == 2)
15934 U->C.S_C.MOV = U->C.S_M.MOV*[value doubleValue]/100;
15935 if(MS0->S7.extendFlag)
15936 if(U->C.S_C.MOV > U->C.S_M.MOV)
15937 U->C.S_C.MOV = U->C.S_M.MOV;
15938 if(U->C.S_C.MOV < 0)
15942 if(MS0->S7.fluctuate == 0)
15943 U->C.S_C.MEL += U->C.S_M.MEL*[value doubleValue]/100;
15944 else if(MS0->S7.fluctuate == 1)
15945 U->C.S_C.MEL -= U->C.S_M.MEL*[value doubleValue]/100;
15946 else if(MS0->S7.fluctuate == 2)
15947 U->C.S_C.MEL = U->C.S_M.MEL*[value doubleValue]/100;
15948 if(MS0->S7.extendFlag)
15949 if(U->C.S_C.MEL > U->C.S_M.MEL)
15950 U->C.S_C.MEL = U->C.S_M.MEL;
15951 if(U->C.S_C.MEL < 0)
15955 if(MS0->S7.fluctuate == 0)
15956 U->C.S_C.MIS += U->C.S_M.MIS*[value doubleValue]/100;
15957 else if(MS0->S7.fluctuate == 1)
15958 U->C.S_C.MIS -= U->C.S_M.MIS*[value doubleValue]/100;
15959 else if(MS0->S7.fluctuate == 2)
15960 U->C.S_C.MIS = U->C.S_M.MIS*[value doubleValue]/100;
15961 if(MS0->S7.extendFlag)
15962 if(U->C.S_C.MIS > U->C.S_M.MIS)
15963 U->C.S_C.MIS = U->C.S_M.MIS;
15964 if(U->C.S_C.MIS < 0)
15968 if(MS0->S7.fluctuate == 0)
15969 U->C.S_C.HIT += U->C.S_M.HIT*[value doubleValue]/100;
15970 else if(MS0->S7.fluctuate == 1)
15971 U->C.S_C.HIT -= U->C.S_M.HIT*[value doubleValue]/100;
15972 else if(MS0->S7.fluctuate == 2)
15973 U->C.S_C.HIT = U->C.S_M.HIT*[value doubleValue]/100;
15974 if(MS0->S7.extendFlag)
15975 if(U->C.S_C.HIT > U->C.S_M.HIT)
15976 U->C.S_C.HIT = U->C.S_M.HIT;
15977 if(U->C.S_C.HIT < 0)
15981 if(MS0->S7.fluctuate == 0)
15982 U->C.S_C.DOD += U->C.S_M.DOD*[value doubleValue]/100;
15983 else if(MS0->S7.fluctuate == 1)
15984 U->C.S_C.DOD -= U->C.S_M.DOD*[value doubleValue]/100;
15985 else if(MS0->S7.fluctuate == 2)
15986 U->C.S_C.DOD = U->C.S_M.DOD*[value doubleValue]/100;
15987 if(MS0->S7.extendFlag)
15988 if(U->C.S_C.HIT > U->C.S_M.DOD)
15989 U->C.S_C.DOD = U->C.S_M.DOD;
15990 if(U->C.S_C.DOD < 0)
15994 if(MS0->S7.fluctuate == 0)
15995 U->C.S_C.REA += U->C.S_M.REA*[value doubleValue]/100;
15996 else if(MS0->S7.fluctuate == 1)
15997 U->C.S_C.REA -= U->C.S_M.REA*[value doubleValue]/100;
15998 else if(MS0->S7.fluctuate == 2)
15999 U->C.S_C.REA = U->C.S_M.REA*[value doubleValue]/100;
16000 if(MS0->S7.extendFlag)
16001 if(U->C.S_C.REA > U->C.S_M.REA)
16002 U->C.S_C.REA = U->C.S_M.REA;
16003 if(U->C.S_C.REA < 0)
16007 if(MS0->S7.fluctuate == 0)
16008 U->C.S_C.SKI += U->C.S_M.SKI*[value doubleValue]/100;
16009 else if(MS0->S7.fluctuate == 1)
16010 U->C.S_C.SKI -= U->C.S_M.SKI*[value doubleValue]/100;
16011 else if(MS0->S7.fluctuate == 2)
16012 U->C.S_C.SKI = U->C.S_M.SKI*[value doubleValue]/100;
16013 if(MS0->S7.extendFlag)
16014 if(U->C.S_C.SKI > U->C.S_M.SKI)
16015 U->C.S_C.SKI = U->C.S_M.SKI;
16016 if(U->C.S_C.SKI < 0)
16020 U->C.name = [MS0->S7.value retain];
16023 U->C.nameNick = [MS0->S7.value retain];
16026 U->C.nameClass = [MS0->S7.value retain];
16029 U->C.S_C.typeMONS = [MS0->S7.value doubleValue];
16032 U->C.S_C.typeMOVE = [MS0->S7.value doubleValue];
16035 if(MS0->S7.fluctuate == 0)
16036 U->C.S_C.cSupply += U->C.S_M.cSupply*[value doubleValue]/100;
16037 else if(MS0->S7.fluctuate == 1)
16038 U->C.S_C.cSupply -= U->C.S_M.cSupply*[value doubleValue]/100;
16039 else if(MS0->S7.fluctuate == 2)
16040 U->C.S_C.cSupply = U->C.S_M.cSupply*[value doubleValue]/100;
16041 if(MS0->S7.extendFlag)
16042 if(U->C.S_C.cSupply > U->C.S_M.cSupply)
16043 U->C.S_C.cSupply = U->C.S_M.cSupply;
16044 if(U->C.S_C.cSupply < 0)
16045 U->C.S_C.cSupply = 0;
16048 if(MS0->S7.fluctuate == 0)
16049 U->C.S_C.cFood += U->C.S_M.cFood*[value doubleValue]/100;
16050 else if(MS0->S7.fluctuate == 1)
16051 U->C.S_C.cFood -= U->C.S_M.cFood*[value doubleValue]/100;
16052 else if(MS0->S7.fluctuate == 2)
16053 U->C.S_C.cFood = U->C.S_M.cFood*[value doubleValue]/100;
16054 if(MS0->S7.extendFlag)
16055 if(U->C.S_C.cFood > U->C.S_M.cFood)
16056 U->C.S_C.cFood = U->C.S_M.cFood;
16057 if(U->C.S_C.cFood < 0)
16058 U->C.S_C.cFood = 0;
16061 if(MS0->S7.fluctuate == 0)
16062 U->C.S_C.cMoney += U->C.S_M.cMoney*[value doubleValue]/100;
16063 else if(MS0->S7.fluctuate == 1)
16064 U->C.S_C.cMoney -= U->C.S_M.cMoney*[value doubleValue]/100;
16065 else if(MS0->S7.fluctuate == 2)
16066 U->C.S_C.cMoney = U->C.S_M.cMoney*[value doubleValue]/100;
16067 if(MS0->S7.extendFlag)
16068 if(U->C.S_C.cMoney > U->C.S_M.cMoney)
16069 U->C.S_C.cMoney = U->C.S_M.cMoney;
16070 if(U->C.S_C.cMoney < 0)
16071 U->C.S_C.cMoney = 0;
16074 if(MS0->S7.fluctuate == 0)
16075 U->C.S_C.cWT += U->C.S_M.cWT*[value doubleValue]/100;
16076 else if(MS0->S7.fluctuate == 1)
16077 U->C.S_C.cWT -= U->C.S_M.cWT*[value doubleValue]/100;
16078 else if(MS0->S7.fluctuate == 2)
16079 U->C.S_C.cWT = U->C.S_M.cWT*[value doubleValue]/100;
16080 if(MS0->S7.extendFlag)
16081 if(U->C.S_C.cWT > U->C.S_M.cWT)
16082 U->C.S_C.cWT = U->C.S_M.cWT;
16083 if(U->C.S_C.cWT < 0)
16087 if(MS0->S7.fluctuate == 0)
16088 U->C.S_C.vigor += U->C.S_M.vigor*[value doubleValue]/100;
16089 else if(MS0->S7.fluctuate == 1)
16090 U->C.S_C.vigor -= U->C.S_M.vigor*[value doubleValue]/100;
16091 else if(MS0->S7.fluctuate == 2)
16092 U->C.S_C.vigor = U->C.S_M.vigor*[value doubleValue]/100;
16093 if(MS0->S7.extendFlag)
16094 if(U->C.S_C.vigor > U->C.S_M.vigor)
16095 U->C.S_C.vigor = U->C.S_M.vigor;
16096 if(U->C.S_C.vigor < 0)
16097 U->C.S_C.vigor = 0;
16106 if (!MS0->S7.percentFlag) {
16108 switch (MS0->S7.type) {
16110 if(MS0->S7.fluctuate == 0)
16111 U->C.S_M.HP += [value doubleValue];
16112 else if(MS0->S7.fluctuate == 1)
16113 U->C.S_M.HP -= [value doubleValue];
16114 else if(MS0->S7.fluctuate == 2)
16115 U->C.S_M.HP = [value doubleValue];
16117 if(U->C.S_M.HP < 0)
16119 if(MS0->S7.extendFlag)
16120 U->C.S_C.HP = U->C.S_M.HP;
16123 if(MS0->S7.fluctuate == 0)
16124 U->C.S_M.MP += [value doubleValue];
16125 else if(MS0->S7.fluctuate == 1)
16126 U->C.S_M.MP -= [value doubleValue];
16127 else if(MS0->S7.fluctuate == 2)
16128 U->C.S_M.MP = [value doubleValue];
16130 if(U->C.S_M.MP < 0)
16132 if(MS0->S7.extendFlag)
16133 U->C.S_C.MP = U->C.S_M.MP;
16136 if(MS0->S7.fluctuate == 0)
16137 U->C.S_M.WT += [value doubleValue];
16138 else if(MS0->S7.fluctuate == 1)
16139 U->C.S_M.WT -= [value doubleValue];
16140 else if(MS0->S7.fluctuate == 2)
16141 U->C.S_M.WT = [value doubleValue];
16143 if(U->C.S_M.WT < 0)
16145 if(MS0->S7.extendFlag)
16146 U->C.S_C.WT = U->C.S_M.WT;
16149 if(MS0->S7.fluctuate == 0)
16150 U->C.S_M.STR += [value doubleValue];
16151 else if(MS0->S7.fluctuate == 1)
16152 U->C.S_M.STR -= [value doubleValue];
16153 else if(MS0->S7.fluctuate == 2)
16154 U->C.S_M.STR = [value doubleValue];
16156 if(U->C.S_M.STR < 0)
16158 if(MS0->S7.extendFlag)
16159 U->C.S_C.STR = U->C.S_M.STR;
16162 if(MS0->S7.fluctuate == 0)
16163 U->C.S_M.VIT += [value doubleValue];
16164 else if(MS0->S7.fluctuate == 1)
16165 U->C.S_M.VIT -= [value doubleValue];
16166 else if(MS0->S7.fluctuate == 2)
16167 U->C.S_M.VIT = [value doubleValue];
16169 if(U->C.S_M.VIT < 0)
16171 if(MS0->S7.extendFlag)
16172 U->C.S_C.VIT = U->C.S_M.VIT;
16175 if(MS0->S7.fluctuate == 0)
16176 U->C.S_M.AGI += [value doubleValue];
16177 else if(MS0->S7.fluctuate == 1)
16178 U->C.S_M.AGI -= [value doubleValue];
16179 else if(MS0->S7.fluctuate == 2)
16180 U->C.S_M.AGI = [value doubleValue];
16182 if(U->C.S_M.AGI < 0)
16184 if(MS0->S7.extendFlag)
16185 U->C.S_C.AGI = U->C.S_M.AGI;
16188 if(MS0->S7.fluctuate == 0)
16189 U->C.S_M.DEX += [value doubleValue];
16190 else if(MS0->S7.fluctuate == 1)
16191 U->C.S_M.DEX -= [value doubleValue];
16192 else if(MS0->S7.fluctuate == 2)
16193 U->C.S_M.DEX = [value doubleValue];
16195 if(U->C.S_M.DEX < 0)
16197 if(MS0->S7.extendFlag)
16198 U->C.S_C.DEX = U->C.S_M.DEX;
16201 if(MS0->S7.fluctuate == 0)
16202 U->C.S_M.MEN += [value doubleValue];
16203 else if(MS0->S7.fluctuate == 1)
16204 U->C.S_M.MEN -= [value doubleValue];
16205 else if(MS0->S7.fluctuate == 2)
16206 U->C.S_M.MEN = [value doubleValue];
16208 if(U->C.S_M.MEN < 0)
16210 if(MS0->S7.extendFlag)
16211 U->C.S_C.MEN = U->C.S_M.MEN;
16214 if(MS0->S7.fluctuate == 0)
16215 U->C.S_M.INT += [value doubleValue];
16216 else if(MS0->S7.fluctuate == 1)
16217 U->C.S_M.INT -= [value doubleValue];
16218 else if(MS0->S7.fluctuate == 2)
16219 U->C.S_M.INT = [value doubleValue];
16221 if(U->C.S_M.INT < 0)
16223 if(MS0->S7.extendFlag)
16224 U->C.S_C.INT = U->C.S_M.INT;
16227 if(MS0->S7.fluctuate == 0)
16228 U->C.S_M.LUK += [value doubleValue];
16229 else if(MS0->S7.fluctuate == 1)
16230 U->C.S_M.LUK -= [value doubleValue];
16231 else if(MS0->S7.fluctuate == 2)
16232 U->C.S_M.LUK = [value doubleValue];
16234 if(U->C.S_M.LUK < 0)
16236 if(MS0->S7.extendFlag)
16237 U->C.S_C.LUK = U->C.S_M.LUK;
16240 if(MS0->S7.fluctuate == 0)
16241 U->C.S_M.MOV += [value doubleValue];
16242 else if(MS0->S7.fluctuate == 1)
16243 U->C.S_M.MOV -= [value doubleValue];
16244 else if(MS0->S7.fluctuate == 2)
16245 U->C.S_M.MOV = [value doubleValue];
16247 if(U->C.S_M.MOV < 0)
16249 if(MS0->S7.extendFlag)
16250 U->C.S_C.MOV = U->C.S_M.MOV;
16253 if(MS0->S7.fluctuate == 0)
16254 U->C.S_M.MEL += [value doubleValue];
16255 else if(MS0->S7.fluctuate == 1)
16256 U->C.S_M.MEL -= [value doubleValue];
16257 else if(MS0->S7.fluctuate == 2)
16258 U->C.S_M.MEL = [value doubleValue];
16260 if(U->C.S_M.MEL < 0)
16262 if(MS0->S7.extendFlag)
16263 U->C.S_C.MEL = U->C.S_M.MEL;
16266 if(MS0->S7.fluctuate == 0)
16267 U->C.S_M.MIS += [value doubleValue];
16268 else if(MS0->S7.fluctuate == 1)
16269 U->C.S_M.MIS -= [value doubleValue];
16270 else if(MS0->S7.fluctuate == 2)
16271 U->C.S_M.MIS = [value doubleValue];
16273 if(U->C.S_M.MIS < 0)
16275 if(MS0->S7.extendFlag)
16276 U->C.S_C.MIS = U->C.S_M.MIS;
16280 if(MS0->S7.fluctuate == 0)
16281 U->C.S_M.HIT += [value doubleValue];
16282 else if(MS0->S7.fluctuate == 1)
16283 U->C.S_M.HIT -= [value doubleValue];
16284 else if(MS0->S7.fluctuate == 2)
16285 U->C.S_M.HIT = [value doubleValue];
16287 if(U->C.S_M.HIT < 0)
16289 if(MS0->S7.extendFlag)
16290 U->C.S_C.HIT = U->C.S_M.HIT;
16293 if(MS0->S7.fluctuate == 0)
16294 U->C.S_M.DOD += [value doubleValue];
16295 else if(MS0->S7.fluctuate == 1)
16296 U->C.S_M.DOD -= [value doubleValue];
16297 else if(MS0->S7.fluctuate == 2)
16298 U->C.S_M.DOD = [value doubleValue];
16300 if(U->C.S_M.DOD < 0)
16302 if(MS0->S7.extendFlag)
16303 U->C.S_C.DOD = U->C.S_M.DOD;
16306 if(MS0->S7.fluctuate == 0)
16307 U->C.S_M.REA += [value doubleValue];
16308 else if(MS0->S7.fluctuate == 1)
16309 U->C.S_M.REA -= [value doubleValue];
16310 else if(MS0->S7.fluctuate == 2)
16311 U->C.S_M.REA = [value doubleValue];
16313 if(U->C.S_M.REA < 0)
16315 if(MS0->S7.extendFlag)
16316 U->C.S_C.REA = U->C.S_M.REA;
16319 if(MS0->S7.fluctuate == 0)
16320 U->C.S_M.SKI += [value doubleValue];
16321 else if(MS0->S7.fluctuate == 1)
16322 U->C.S_M.SKI -= [value doubleValue];
16323 else if(MS0->S7.fluctuate == 2)
16324 U->C.S_M.SKI = [value doubleValue];
16326 if(U->C.S_M.SKI < 0)
16328 if(MS0->S7.extendFlag)
16329 U->C.S_C.SKI = U->C.S_M.SKI;
16332 U->C.name = [value retain];
16335 U->C.nameNick = [value retain];
16338 U->C.nameClass = [value retain];
16341 U->C.S_C.typeMONS = [value doubleValue];
16344 U->C.S_C.typeMOVE = [value doubleValue];
16347 if(MS0->S7.fluctuate == 0)
16348 U->C.S_M.cSupply += [value doubleValue];
16349 else if(MS0->S7.fluctuate == 1)
16350 U->C.S_M.cSupply -= [value doubleValue];
16351 else if(MS0->S7.fluctuate == 2)
16352 U->C.S_M.cSupply = [value doubleValue];
16354 if(U->C.S_M.cSupply < 0)
16355 U->C.S_M.cSupply = 0;
16356 if(MS0->S7.extendFlag)
16357 U->C.S_C.cSupply = U->C.S_M.cSupply;
16360 if(MS0->S7.fluctuate == 0)
16361 U->C.S_M.cFood += [value doubleValue];
16362 else if(MS0->S7.fluctuate == 1)
16363 U->C.S_M.cFood -= [value doubleValue];
16364 else if(MS0->S7.fluctuate == 2)
16365 U->C.S_M.cFood = [value doubleValue];
16367 if(U->C.S_M.cFood < 0)
16368 U->C.S_M.cFood = 0;
16369 if(MS0->S7.extendFlag)
16370 U->C.S_C.cFood = U->C.S_M.cFood;
16373 if(MS0->S7.fluctuate == 0)
16374 U->C.S_M.cMoney += [value doubleValue];
16375 else if(MS0->S7.fluctuate == 1)
16376 U->C.S_M.cMoney -= [value doubleValue];
16377 else if(MS0->S7.fluctuate == 2)
16378 U->C.S_M.cMoney = [value doubleValue];
16379 if(U->C.S_M.cMoney < 0)
16380 U->C.S_M.cMoney = 0;
16381 if(MS0->S7.extendFlag)
16382 U->C.S_C.cMoney = U->C.S_M.cMoney;
16385 if(MS0->S7.fluctuate == 0)
16386 U->C.S_M.cWT += [value doubleValue];
16387 else if(MS0->S7.fluctuate == 1)
16388 U->C.S_M.cWT -= [value doubleValue];
16389 else if(MS0->S7.fluctuate == 2)
16390 U->C.S_M.cWT = [value doubleValue];
16391 if(U->C.S_M.cWT < 0)
16393 if(MS0->S7.extendFlag)
16394 U->C.S_C.cWT = U->C.S_M.cWT;
16397 if(MS0->S7.fluctuate == 0)
16398 U->C.S_M.vigor += [value doubleValue];
16399 else if(MS0->S7.fluctuate == 1)
16400 U->C.S_M.vigor -= [value doubleValue];
16401 else if(MS0->S7.fluctuate == 2)
16402 U->C.S_M.vigor = [value doubleValue];
16403 if(U->C.S_M.vigor < 0)
16404 U->C.S_M.vigor = 0;
16405 if(MS0->S7.extendFlag)
16406 U->C.S_C.vigor = U->C.S_M.vigor;
16415 switch (MS0->S7.type) {
16417 if(MS0->S7.fluctuate == 0)
16418 U->C.S_M.HP += U->C.S_M.HP*[value doubleValue]/100;
16419 else if(MS0->S7.fluctuate == 1)
16420 U->C.S_M.HP -= U->C.S_M.HP*[value doubleValue]/100;
16421 else if(MS0->S7.fluctuate == 2)
16422 U->C.S_M.HP = U->C.S_M.HP*[value doubleValue]/100;
16424 if(U->C.S_M.HP < 0)
16426 if(MS0->S7.extendFlag)
16427 U->C.S_C.HP = U->C.S_M.HP;
16430 if(MS0->S7.fluctuate == 0)
16431 U->C.S_M.MP += U->C.S_M.MP*[value doubleValue]/100;
16432 else if(MS0->S7.fluctuate == 1)
16433 U->C.S_M.MP -= U->C.S_M.MP*[value doubleValue]/100;
16434 else if(MS0->S7.fluctuate == 2)
16435 U->C.S_M.MP = U->C.S_M.MP*[value doubleValue]/100;
16437 if(U->C.S_M.MP < 0)
16439 if(MS0->S7.extendFlag)
16440 U->C.S_C.MP = U->C.S_M.MP;
16443 if(MS0->S7.fluctuate == 0)
16444 U->C.S_M.WT += U->C.S_M.WT*[value doubleValue]/100;
16445 else if(MS0->S7.fluctuate == 1)
16446 U->C.S_M.WT -= U->C.S_M.WT*[value doubleValue]/100;
16447 else if(MS0->S7.fluctuate == 2)
16448 U->C.S_M.MP = U->C.S_M.WT*[value doubleValue]/100;
16450 if(U->C.S_M.WT < 0)
16452 if(MS0->S7.extendFlag)
16453 U->C.S_C.WT = U->C.S_M.WT;
16456 if(MS0->S7.fluctuate == 0)
16457 U->C.S_M.STR += U->C.S_M.STR*[value doubleValue]/100;
16458 else if(MS0->S7.fluctuate == 1)
16459 U->C.S_M.STR -= U->C.S_M.STR*[value doubleValue]/100;
16460 else if(MS0->S7.fluctuate == 2)
16461 U->C.S_M.STR = U->C.S_M.STR*[value doubleValue]/100;
16463 if(U->C.S_M.STR < 0)
16465 if(MS0->S7.extendFlag)
16466 U->C.S_C.STR = U->C.S_M.STR;
16469 if(MS0->S7.fluctuate == 0)
16470 U->C.S_M.VIT += U->C.S_M.VIT*[value doubleValue]/100;
16471 else if(MS0->S7.fluctuate == 1)
16472 U->C.S_M.VIT -= U->C.S_M.VIT*[value doubleValue]/100;
16473 else if(MS0->S7.fluctuate == 2)
16474 U->C.S_M.VIT = U->C.S_M.VIT*[value doubleValue]/100;
16476 if(U->C.S_M.VIT < 0)
16478 if(MS0->S7.extendFlag)
16479 U->C.S_C.VIT = U->C.S_M.VIT;
16482 if(MS0->S7.fluctuate == 0)
16483 U->C.S_M.AGI += U->C.S_M.AGI*[value doubleValue]/100;
16484 else if(MS0->S7.fluctuate == 1)
16485 U->C.S_M.AGI -= U->C.S_M.AGI*[value doubleValue]/100;
16486 else if(MS0->S7.fluctuate == 2)
16487 U->C.S_M.AGI = U->C.S_M.AGI*[value doubleValue]/100;
16489 if(U->C.S_M.AGI < 0)
16491 if(MS0->S7.extendFlag)
16492 U->C.S_C.AGI = U->C.S_M.AGI;
16495 if(MS0->S7.fluctuate == 0)
16496 U->C.S_M.DEX += U->C.S_M.DEX*[value doubleValue]/100;
16497 else if(MS0->S7.fluctuate == 1)
16498 U->C.S_M.DEX -= U->C.S_M.DEX*[value doubleValue]/100;
16499 else if(MS0->S7.fluctuate == 2)
16500 U->C.S_M.DEX = U->C.S_M.DEX*[value doubleValue]/100;
16502 if(U->C.S_M.DEX < 0)
16504 if(MS0->S7.extendFlag)
16505 U->C.S_C.DEX = U->C.S_M.DEX;
16508 if(MS0->S7.fluctuate == 0)
16509 U->C.S_M.MEN += U->C.S_M.MEN*[value doubleValue]/100;
16510 else if(MS0->S7.fluctuate == 1)
16511 U->C.S_M.MEN -= U->C.S_M.MEN*[value doubleValue]/100;
16512 else if(MS0->S7.fluctuate == 2)
16513 U->C.S_M.MEN = U->C.S_M.MEN*[value doubleValue]/100;
16515 if(U->C.S_M.MEN < 0)
16517 if(MS0->S7.extendFlag)
16518 U->C.S_C.MEN = U->C.S_M.MEN;
16521 if(MS0->S7.fluctuate == 0)
16522 U->C.S_M.INT += U->C.S_M.INT*[value doubleValue]/100;
16523 else if(MS0->S7.fluctuate == 1)
16524 U->C.S_M.INT -= U->C.S_M.INT*[value doubleValue]/100;
16525 else if(MS0->S7.fluctuate == 2)
16526 U->C.S_M.INT = U->C.S_M.INT*[value doubleValue]/100;
16528 if(U->C.S_M.INT < 0)
16530 if(MS0->S7.extendFlag)
16531 U->C.S_C.INT = U->C.S_M.INT;
16534 if(MS0->S7.fluctuate == 0)
16535 U->C.S_M.LUK += U->C.S_M.LUK*[value doubleValue]/100;
16536 else if(MS0->S7.fluctuate == 1)
16537 U->C.S_M.LUK -= U->C.S_M.LUK*[value doubleValue]/100;
16538 else if(MS0->S7.fluctuate == 2)
16539 U->C.S_M.LUK = U->C.S_M.LUK*[value doubleValue]/100;
16541 if(U->C.S_M.LUK < 0)
16543 if(MS0->S7.extendFlag)
16544 U->C.S_C.LUK = U->C.S_M.LUK;
16547 if(MS0->S7.fluctuate == 0)
16548 U->C.S_M.MOV += U->C.S_M.MOV*[value doubleValue]/100;
16549 else if(MS0->S7.fluctuate == 1)
16550 U->C.S_M.MOV -= U->C.S_M.MOV*[value doubleValue]/100;
16551 else if(MS0->S7.fluctuate == 2)
16552 U->C.S_M.MOV = U->C.S_M.MOV*[value doubleValue]/100;
16554 if(U->C.S_M.MOV < 0)
16556 if(MS0->S7.extendFlag)
16557 U->C.S_C.MOV = U->C.S_M.MOV;
16560 if(MS0->S7.fluctuate == 0)
16561 U->C.S_M.MEL += U->C.S_M.MEL*[value doubleValue]/100;
16562 else if(MS0->S7.fluctuate == 1)
16563 U->C.S_M.MEL -= U->C.S_M.MEL*[value doubleValue]/100;
16564 else if(MS0->S7.fluctuate == 2)
16565 U->C.S_M.MEL = U->C.S_M.MEL*[value doubleValue]/100;
16567 if(U->C.S_C.MEL < 0)
16569 if(MS0->S7.extendFlag)
16570 U->C.S_C.MEL = U->C.S_M.MEL;
16573 if(MS0->S7.fluctuate == 0)
16574 U->C.S_C.MIS += U->C.S_M.MIS*[value doubleValue]/100;
16575 else if(MS0->S7.fluctuate == 1)
16576 U->C.S_C.MIS -= U->C.S_M.MIS*[value doubleValue]/100;
16577 else if(MS0->S7.fluctuate == 2)
16578 U->C.S_C.MIS = U->C.S_M.MIS*[value doubleValue]/100;
16580 if(U->C.S_C.MIS < 0)
16582 if(MS0->S7.extendFlag)
16583 U->C.S_C.MIS = U->C.S_M.MIS;
16586 if(MS0->S7.fluctuate == 0)
16587 U->C.S_M.HIT += U->C.S_M.HIT*[value doubleValue]/100;
16588 else if(MS0->S7.fluctuate == 1)
16589 U->C.S_M.HIT -= U->C.S_M.HIT*[value doubleValue]/100;
16590 else if(MS0->S7.fluctuate == 2)
16591 U->C.S_M.HIT = U->C.S_M.HIT*[value doubleValue]/100;
16593 if(U->C.S_M.HIT < 0)
16595 if(MS0->S7.extendFlag)
16596 U->C.S_C.HIT = U->C.S_M.HIT;
16599 if(MS0->S7.fluctuate == 0)
16600 U->C.S_M.DOD += U->C.S_M.DOD*[value doubleValue]/100;
16601 else if(MS0->S7.fluctuate == 1)
16602 U->C.S_M.DOD -= U->C.S_M.DOD*[value doubleValue]/100;
16603 else if(MS0->S7.fluctuate == 2)
16604 U->C.S_M.DOD = U->C.S_M.DOD*[value doubleValue]/100;
16606 if(U->C.S_M.DOD < 0)
16608 if(MS0->S7.extendFlag)
16609 U->C.S_C.DOD = U->C.S_M.DOD;
16612 if(MS0->S7.fluctuate == 0)
16613 U->C.S_M.REA += U->C.S_M.REA*[value doubleValue]/100;
16614 else if(MS0->S7.fluctuate == 1)
16615 U->C.S_M.REA -= U->C.S_M.REA*[value doubleValue]/100;
16616 else if(MS0->S7.fluctuate == 2)
16617 U->C.S_M.REA = U->C.S_M.REA*[value doubleValue]/100;
16619 if(U->C.S_M.REA < 0)
16621 if(MS0->S7.extendFlag)
16622 U->C.S_C.REA = U->C.S_M.REA;
16625 if(MS0->S7.fluctuate == 0)
16626 U->C.S_M.SKI += U->C.S_M.SKI*[value doubleValue]/100;
16627 else if(MS0->S7.fluctuate == 1)
16628 U->C.S_M.SKI -= U->C.S_M.SKI*[value doubleValue]/100;
16629 else if(MS0->S7.fluctuate == 2)
16630 U->C.S_M.SKI = U->C.S_M.SKI*[value doubleValue]/100;
16632 if(U->C.S_M.SKI < 0)
16634 if(MS0->S7.extendFlag)
16635 U->C.S_C.SKI = U->C.S_M.SKI;
16638 U->C.name = [MS0->S7.value retain];
16641 U->C.nameNick = [MS0->S7.value retain];
16644 U->C.nameClass = [MS0->S7.value retain];
16647 U->C.S_C.typeMONS = [MS0->S7.value doubleValue];
16650 U->C.S_C.typeMOVE = [MS0->S7.value doubleValue];
16653 if(MS0->S7.fluctuate == 0)
16654 U->C.S_M.cSupply += U->C.S_M.cSupply*[value doubleValue]/100;
16655 else if(MS0->S7.fluctuate == 1)
16656 U->C.S_M.cSupply -= U->C.S_M.cSupply*[value doubleValue]/100;
16657 else if(MS0->S7.fluctuate == 2)
16658 U->C.S_M.cSupply = U->C.S_M.cSupply*[value doubleValue]/100;
16660 if(U->C.S_M.cSupply < 0)
16661 U->C.S_M.cSupply = 0;
16662 if(MS0->S7.extendFlag)
16663 U->C.S_C.cSupply = U->C.S_M.cSupply;
16666 if(MS0->S7.fluctuate == 0)
16667 U->C.S_M.cFood += U->C.S_M.cFood*[value doubleValue]/100;
16668 else if(MS0->S7.fluctuate == 1)
16669 U->C.S_M.cFood -= U->C.S_M.cFood*[value doubleValue]/100;
16670 else if(MS0->S7.fluctuate == 2)
16671 U->C.S_M.cFood = U->C.S_M.cFood*[value doubleValue]/100;
16674 if(U->C.S_M.cFood < 0)
16675 U->C.S_M.cFood = 0;
16676 if(MS0->S7.extendFlag)
16677 U->C.S_C.cFood = U->C.S_M.cFood;
16680 if(MS0->S7.fluctuate == 0)
16681 U->C.S_M.cMoney += U->C.S_M.cMoney*[value doubleValue]/100;
16682 else if(MS0->S7.fluctuate == 1)
16683 U->C.S_M.cMoney -= U->C.S_M.cMoney*[value doubleValue]/100;
16684 else if(MS0->S7.fluctuate == 2)
16685 U->C.S_M.cMoney = U->C.S_M.cMoney*[value doubleValue]/100;
16687 if(U->C.S_M.cMoney < 0)
16688 U->C.S_M.cMoney = 0;
16689 if(MS0->S7.extendFlag)
16690 U->C.S_C.cMoney = U->C.S_M.cMoney;
16693 if(MS0->S7.fluctuate == 0)
16694 U->C.S_M.cWT += U->C.S_M.cWT*[value doubleValue]/100;
16695 else if(MS0->S7.fluctuate == 1)
16696 U->C.S_M.cWT -= U->C.S_M.cWT*[value doubleValue]/100;
16697 else if(MS0->S7.fluctuate == 2)
16698 U->C.S_M.cWT = U->C.S_M.cWT*[value doubleValue]/100;
16700 if(U->C.S_M.cWT < 0)
16702 if(MS0->S7.extendFlag)
16703 U->C.S_C.cWT = U->C.S_M.cWT;
16706 if(MS0->S7.fluctuate == 0)
16707 U->C.S_M.vigor += U->C.S_M.vigor*[value doubleValue]/100;
16708 else if(MS0->S7.fluctuate == 1)
16709 U->C.S_M.vigor -= U->C.S_M.vigor*[value doubleValue]/100;
16710 else if(MS0->S7.fluctuate == 2)
16711 U->C.S_M.vigor = U->C.S_M.vigor*[value doubleValue]/100;
16713 if(U->C.S_M.vigor < 0)
16714 U->C.S_M.vigor = 0;
16715 if(MS0->S7.extendFlag)
16716 U->C.S_C.vigor = U->C.S_M.vigor;
16729 -(MAPSCRIPT0*)setResource:(MAPSCRIPT0*)MS0{
16731 if(MS0->S6.team == 0){
16733 if(MS0->S6.RCsupply){
16734 if(MS0->S6.RCsupplyS){
16735 if(MS0->S6.RCsupplyAdd)
16736 P[0].resource += MS0->S6.RCsupplyValue;
16738 P[0].resource -= MS0->S6.RCsupplyValue;
16740 if(MS0->S6.RCsupplyAdd)
16741 P[0].resource += [Hensuu[MS0->S6.RCsupplySelect-1] intValue];
16743 P[0].resource -= [Hensuu[MS0->S6.RCsupplySelect-1] intValue];
16746 if(MS0->S6.RCfood){
16747 if(MS0->S6.RCfoodS){
16748 if(MS0->S6.RCfoodAdd)
16749 P[0].food += MS0->S6.RCfoodValue;
16751 P[0].food -= MS0->S6.RCfoodValue;
16753 if(MS0->S6.RCfoodAdd)
16754 P[0].food += [Hensuu[MS0->S6.RCfoodSelect-1] intValue];
16756 P[0].food -= [Hensuu[MS0->S6.RCfoodSelect-1] intValue];
16759 if(MS0->S6.RCmoney){
16760 if(MS0->S6.RCmoneyS){
16761 if(MS0->S6.RCmoneyAdd)
16762 P[0].money += MS0->S6.RCmoneyValue;
16764 P[0].money -= MS0->S6.RCmoneyValue;
16766 if(MS0->S6.RCmoneyAdd)
16767 P[0].money += [Hensuu[MS0->S6.RCmoneySelect-1] intValue];
16769 P[0].money -= [Hensuu[MS0->S6.RCmoneySelect-1] intValue];
16773 }else if(MS0->S6.team == 1){
16774 if(MS0->S6.RCsupply){
16775 if(MS0->S6.RCsupplyS){
16776 if(MS0->S6.RCsupplyAdd)
16777 P[1].resource += MS0->S6.RCsupplyValue;
16779 P[1].resource -= MS0->S6.RCsupplyValue;
16781 if(MS0->S6.RCsupplyAdd)
16782 P[1].resource += [Hensuu[MS0->S6.RCsupplySelect-1] intValue];
16784 P[1].resource -= [Hensuu[MS0->S6.RCsupplySelect-1] intValue];
16787 if(MS0->S6.RCfood){
16788 if(MS0->S6.RCfoodS){
16789 if(MS0->S6.RCfoodAdd)
16790 P[1].food += MS0->S6.RCfoodValue;
16792 P[1].food -= MS0->S6.RCfoodValue;
16794 if(MS0->S6.RCfoodAdd)
16795 P[1].food += [Hensuu[MS0->S6.RCfoodSelect-1] intValue];
16797 P[1].food -= [Hensuu[MS0->S6.RCfoodSelect-1] intValue];
16800 if(MS0->S6.RCmoney){
16801 if(MS0->S6.RCmoneyS){
16802 if(MS0->S6.RCmoneyAdd)
16803 P[1].money += MS0->S6.RCmoneyValue;
16805 P[1].money -= MS0->S6.RCmoneyValue;
16807 if(MS0->S6.RCmoneyAdd)
16808 P[1].money += [Hensuu[MS0->S6.RCmoneySelect-1] intValue];
16810 P[1].money -= [Hensuu[MS0->S6.RCmoneySelect-1] intValue];
16813 }else if(MS0->S6.team == 2){
16814 if(MS0->S6.RCsupply){
16815 if(MS0->S6.RCsupplyS){
16816 if(MS0->S6.RCsupplyAdd)
16817 P[2].resource += MS0->S6.RCsupplyValue;
16819 P[2].resource -= MS0->S6.RCsupplyValue;
16821 if(MS0->S6.RCsupplyAdd)
16822 P[2].resource += [Hensuu[MS0->S6.RCsupplySelect-1] intValue];
16824 P[2].resource -= [Hensuu[MS0->S6.RCsupplySelect-1] intValue];
16828 if(MS0->S6.RCfood){
16829 if(MS0->S6.RCfoodS){
16830 if(MS0->S6.RCfoodAdd)
16831 P[2].food += MS0->S6.RCfoodValue;
16833 P[2].food -= MS0->S6.RCfoodValue;
16835 if(MS0->S6.RCfoodAdd)
16836 P[2].food += [Hensuu[MS0->S6.RCfoodSelect-1] intValue];
16838 P[2].food -= [Hensuu[MS0->S6.RCfoodSelect-1] intValue];
16841 if(MS0->S6.RCmoney){
16842 if(MS0->S6.RCmoneyS){
16843 if(MS0->S6.RCmoneyAdd)
16844 P[2].money += MS0->S6.RCmoneyValue;
16846 P[2].money -= MS0->S6.RCmoneyValue;
16848 if(MS0->S6.RCmoneyAdd)
16849 P[2].money += [Hensuu[MS0->S6.RCmoneySelect-1] intValue];
16851 P[2].money -= [Hensuu[MS0->S6.RCmoneySelect-1] intValue];
16856 if(P[0].resource < 0) P[0].resource = 0;
16857 if(P[1].resource < 0) P[1].resource = 0;
16858 if(P[2].resource < 0) P[2].resource = 0;
16860 if(P[0].food < 0) P[0].food = 0;
16861 if(P[1].food < 0) P[1].food = 0;
16862 if(P[2].food < 0) P[2].food = 0;
16864 if(P[0].money < 0) P[0].money = 0;
16865 if(P[1].money < 0) P[1].money = 0;
16866 if(P[2].money < 0) P[2].money = 0;
16868 MS0->succeessfulFlag = true;
16869 MS0->endFlag = true;
16873 -(MAPSCRIPT0*)setLabel:(MAPSCRIPT0*)MS0{
16875 //NSLog(@"%d", MSDP0top->succeessfulFlag);
16876 MS0->succeessfulFlag = true;
16877 MS0->endFlag = true;
16881 -(MAPSCRIPT0*)setComment:(MAPSCRIPT0*)MS0{
16883 MS0->succeessfulFlag = true;
16884 MS0->endFlag = true;
16889 -(MAPSCRIPT0*)setSelection:(MAPSCRIPT0*)MS0{
16891 static bool initFlag = false;
16896 MAPSCRIPT2 *MS2top = MS0->S2;
16898 slctPoint.x = [mapWindow frame].origin.x + 100;
16899 slctPoint.y = [mapWindow frame].origin.y + 300;
16901 [slctBtn1 setHidden:YES];
16902 [slctBtn2 setHidden:YES];
16903 [slctBtn3 setHidden:YES];
16904 [slctBtn4 setHidden:YES];
16905 [slctBtn5 setHidden:YES];
16906 [slctBtn6 setHidden:YES];
16907 [slctBtn7 setHidden:YES];
16908 [slctBtn8 setHidden:YES];
16909 [slctBtn9 setHidden:YES];
16911 for(int i = 1;MS0->S2;i++){
16914 [slctBtn1 setTitle:MS0->S2->selection];
16915 [slctBtn1 setHidden:NO];
16916 [selectionWindow setFrame:NSMakeRect(slctPoint.x, slctPoint.y, 400, 60) display:YES];
16919 [slctBtn2 setTitle:MS0->S2->selection];
16920 [slctBtn2 setHidden:NO];
16921 [selectionWindow setFrame:NSMakeRect(slctPoint.x, slctPoint.y, 400, 90) display:YES];
16924 [slctBtn3 setTitle:MS0->S2->selection];
16925 [slctBtn3 setHidden:NO];
16926 [selectionWindow setFrame:NSMakeRect(slctPoint.x, slctPoint.y, 400, 120) display:YES];
16930 [slctBtn4 setTitle:MS0->S2->selection];
16931 [slctBtn4 setHidden:NO];
16932 [selectionWindow setFrame:NSMakeRect(slctPoint.x, slctPoint.y, 400, 150) display:YES];
16935 [slctBtn5 setTitle:MS0->S2->selection];
16936 [slctBtn5 setHidden:NO];
16937 [selectionWindow setFrame:NSMakeRect(slctPoint.x, slctPoint.y, 400, 180) display:YES];
16940 [slctBtn6 setTitle:MS0->S2->selection];
16941 [slctBtn6 setHidden:NO];
16942 [selectionWindow setFrame:NSMakeRect(slctPoint.x, slctPoint.y, 400, 210) display:YES];
16945 [slctBtn7 setTitle:MS0->S2->selection];
16946 [slctBtn7 setHidden:NO];
16947 [selectionWindow setFrame:NSMakeRect(slctPoint.x, slctPoint.y, 400, 240) display:YES];
16950 [slctBtn8 setTitle:MS0->S2->selection];
16951 [slctBtn8 setHidden:NO];
16952 [selectionWindow setFrame:NSMakeRect(slctPoint.x, slctPoint.y, 400, 270) display:YES];
16955 [slctBtn9 setTitle:MS0->S2->selection];
16956 [slctBtn9 setHidden:NO];
16957 [selectionWindow setFrame:NSMakeRect(slctPoint.x, slctPoint.y, 400, 300) display:YES];
16962 MS0->S2 = MS0->S2->next;
16968 [selectionWindow makeKeyAndOrderFront:nil];
16972 if(slctedBtnNum > 0){
16973 MAPSCRIPT0 *CRMS0 = MS0;
16977 MS0->endFlag = false;
16981 MAPSCRIPT2 *MS2top = MS0->S2;
16984 for(int i = 1;i < slctedBtnNum;i++){
16985 MS0->S2 = MS0->S2->next;
16992 if([CRMS2->labelJump isEqualToString:MS0->label]){
16993 MS0->endFlag = false;
16999 if([CRMS2->labelJump isEqualToString:MS0->next->label]){
17000 if(MS0->type == 6 && MS0->endFlag){
17003 MS0->succeessfulFlag = true;
17005 MS0->endFlag = true;
17009 if(MS0->type == 6 && MS0->endFlag){
17012 MS0->succeessfulFlag = true;
17014 MS0->endFlag = true;
17023 MS0->endFlag = true;
17024 MS0->succeessfulFlag = true;
17032 -(MAPSCRIPT0*)setAppearance:(MAPSCRIPT0*)MS0{
17042 if(unitNum[x][y] == -1){
17048 unitTeam[x][y] = MS0->S3->team;
17049 unitNum[x][y] = u.chipNumb;
17050 //loadNum[x][y] = u.chipNumb;
17051 [self addAppearanceStatus:u x:x y:y];
17059 int *p = calloc(1, sizeof(int));
17060 int *o = calloc(1, sizeof(int));
17061 appearanceSAIKIflag = false;
17064 for (int i = 0;i < 1002;i++) {
17065 for (int k = 0;k < 1002;k++) {
17070 [self checkAppearanceRange:5 tX:y tY:x aMap:apprR];
17073 for (int i = 0;i < 1002;i++) {
17074 for (int k = 0;k < 1002;k++) {
17075 if(apprR[i][k] > postInt && unitNum[i][k] == -1){
17076 postInt = apprR[i][k];
17083 if(*p > 0 && *o >0){
17086 unitTeam[x][y] = MS0->S3->team;
17087 unitNum[x][y] = u.chipNumb;
17088 //loadNum[x][y] = u.chipNumb;
17089 [self addAppearanceStatus:u x:x y:y];
17091 MS0->succeessfulFlag = false;
17092 MS0->endFlag = true;
17098 MS0->S3 = MS0->S3->next;
17100 unitColorInitFlag = true;
17102 MS0->succeessfulFlag = true;
17103 MS0->endFlag = true;
17107 -(MAPSCRIPT0*)setDissappearance:(MAPSCRIPT0*)MS0{
17120 if(MS0->S5->unitNum >= 0){
17121 unitNum[x][y] = -1;
17122 unitTeam[x][y] = -1;
17123 unitNum[x][y] = -1;
17124 loadNum[x][y] = -1;
17128 if(U->ix == x && U->iy == y)
17138 MS0->succeessfulFlag = false;
17139 MS0->endFlag = true;
17145 MS0->S5 = MS0->S5->next;
17147 unitColorInitFlag = true;
17149 MS0->succeessfulFlag = true;
17150 MS0->endFlag = true;
17155 -(void)checkAppearanceRange:(int)cnsPow tX:(int)startX tY:(int)startY aMap:(int[][1002])aMap{
17157 if(cnsPow < 0) return;
17160 if(aMap[startY][startX] <= cnsPow)
17161 aMap[startY][startX] = cnsPow;
17163 if(startY < 0) startY = 0;
17164 if(startX < 0) startX = 0;
17165 if(cnsPow < 0) cnsPow = 0;
17169 if(aMap[startY-1][startX] >= 0 && cnsPow > 0)
17170 [self checkAppearanceRange:i0 tX:startX tY:startY-1 aMap:aMap];
17173 if(aMap[startY+1][startX] >= 0 && cnsPow > 0)
17174 [self checkAppearanceRange:i0 tX:startX tY:startY+1 aMap:aMap];
17177 if(aMap[startY][startX-1] >= 0 && cnsPow > 0)
17178 [self checkAppearanceRange:i0 tX:startX-1 tY:startY aMap:aMap];
17181 if(aMap[startY][startX+1] >= 0 && cnsPow > 0)
17182 [self checkAppearanceRange:i0 tX:startX+1 tY:startY aMap:aMap];
17186 -(void)addAppearanceStatus:(UNITCHIP)u x:(int)x y:(int)y{
17191 while (U->next) {omgCnt++;
17194 U->next = calloc(1, sizeof(UNIT));
17197 if(omgCnt == 0) U = UTop;
17198 U->number = registerNum;
17199 U->chipNumber = -1;
17200 U->chipNumberL = -1;
17201 U->C.chipNumb = -1;
17202 U->CL.chipNumb = -1;
17208 if(unitTeam[x][y] == 0 || unitTeam[x][y] == 1){
17210 if(unitTeam[x][y] == 1){
17211 U->joinArmyFromNext = true;
17212 U->persuasion = true;
17214 if(MF[MFselectedRow+1].MS.playerSet1 == 2)
17218 if(unitTeam[x][y] == 2 || unitTeam[x][y] == 3){
17220 if(unitTeam[x][y] == 3){
17221 U->joinArmyFromNext = true;
17222 U->persuasion = true;
17224 if(MF[MFselectedRow+1].MS.playerSet2 == 2)
17228 if(unitTeam[x][y] == 4 || unitTeam[x][y] == 5){
17230 if(unitTeam[x][y] == 5){
17231 U->joinArmyFromNext = true;
17232 U->persuasion = true;
17236 if(unitTeam[x][y] == -1){
17238 if(unitTeam[x][y] == 0){
17239 U->joinArmyFromNext = false;
17240 U->persuasion = true;
17244 unitNum[x][y] = u.chipNumb;
17245 [self SetUnitStatus:unitNum[x][y]];
17247 for(int i = 0;i < UCN;i++){
17248 if([U->C.nameID isEqualToString:UC[i].nameID])
17251 for(int i = 0;i < LCN;i++){
17252 if([U->CL.nameID isEqualToString:LC[i].nameID])
17253 U->chipNumberL = i;
17255 for(int i = 0;i < UCN;i++){
17256 if([U->C.nameID isEqualToString:UC[i].nameID])
17259 for(int i = 0;i < LCN;i++){
17260 if([U->CL.nameID isEqualToString:LC[i].nameID])
17261 U->CL.chipNumb = i;
17270 -(MAPSCRIPT0*)setWait:(MAPSCRIPT0*)MS0{
17272 static bool waitin = false;
17276 waitinTime = MS0->wait;
17281 waitSwtichFlag = true;
17283 if(waitAllOverFlag){
17284 MS0->succeessfulFlag = true;
17285 MS0->endFlag = true;
17286 waitAllOverFlag = false;
17287 waitSwtichFlag = false;
17289 waitx10flag = false;
17296 -(MAPSCRIPT0*)setBGM:(MAPSCRIPT0*)MS0{
17301 BGMsub = [MS0->BGM.snd retain];
17303 [BGMsub setLoops:NO];
17306 MS0->succeessfulFlag = true;
17307 MS0->endFlag = true;
17312 -(MAPSCRIPT0*)setSE:(MAPSCRIPT0*)MS0{
17316 SEsub = [MS0->SE.snd retain];
17320 MS0->succeessfulFlag = true;
17321 MS0->endFlag = true;
17326 -(MAPSCRIPT0*)setTitleBack:(MAPSCRIPT0*)MS0{
17328 backTitleFlag = true;
17329 battleBegin = false;
17331 MS0->succeessfulFlag = true;
17332 MS0->endFlag = true;
17337 -(MAPSCRIPT0*)setStageClear:(MAPSCRIPT0*)MS0{
17339 stageClearFlag = true;
17341 if(MS0->sc.edcdFlag)
17342 stageClearFlag2 = true;
17343 battleBegin = false;
17345 MS0->succeessfulFlag = true;
17346 MS0->endFlag = true;
17351 -(MAPSCRIPT0*)setGameOver:(MAPSCRIPT0*)MS0{
17353 gaov.img = MS0->gaov.img;
17355 gameOverFlag = true;
17356 battleBegin = false;
17358 MS0->succeessfulFlag = true;
17359 MS0->endFlag = true;
17364 -(IBAction)gameOverSubmit:(id)sender{
17372 [GameOverWindow close];
17373 [titleWindow makeKeyAndOrderFront:nil];
17377 -(IBAction)battleReadyUpStartBtn:(id)sender{
17380 P[0].resource = [battleReadyUpSupply1 intValue];
17381 P[0].food = [battleReadyUpFood1 intValue];
17382 P[0].money = [battleReadyUpMoney1 intValue];
17384 P[1].resource = [battleReadyUpSupply2 intValue];
17385 P[1].food = [battleReadyUpFood2 intValue];
17386 P[1].money = [battleReadyUpMoney2 intValue];
17388 setBattleModeFlag = false;
17393 -(IBAction)battleReadyUpState1:(id)sender{
17394 retardhelp1 = true;
17396 -(IBAction)battleReadyUpState2:(id)sender{
17397 retardhelp2 = true;
17406 -(IBAction)selectionBtn1:(id)sender{
17408 [selectionWindow close];
17410 -(IBAction)selectionBtn2:(id)sender{
17412 [selectionWindow close];
17414 -(IBAction)selectionBtn3:(id)sender{
17416 [selectionWindow close];
17418 -(IBAction)selectionBtn4:(id)sender{
17420 [selectionWindow close];
17422 -(IBAction)selectionBtn5:(id)sender{
17424 [selectionWindow close];
17426 -(IBAction)selectionBtn6:(id)sender{
17428 [selectionWindow close];
17430 -(IBAction)selectionBtn7:(id)sender{
17432 [selectionWindow close];
17434 -(IBAction)selectionBtn8:(id)sender{
17436 [selectionWindow close];
17438 -(IBAction)selectionBtn9:(id)sender{
17440 [selectionWindow close];
17447 NSString *directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
17448 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
17451 NSData *InitialData = [NSData dataWithContentsOfFile:@"data/Others/var.txt"];
17452 NSString *pathVar = @"data/Others/var.txt";
17453 NSString *fileData = @"";
17456 [[NSFileManager defaultManager] createFileAtPath:pathVar contents:nil attributes:nil];
17460 fileData = [NSString stringWithContentsOfFile:pathVar encoding:NSUTF8StringEncoding error:nil];
17461 NSArray *fileDataArray = [fileData componentsSeparatedByString:@"\n"];
17463 for(int i = 0;i < [fileDataArray count];i++){
17465 NSArray *item = [[fileDataArray objectAtIndex:i] componentsSeparatedByString:@","];
17467 Hensuu[i] = [[item objectAtIndex:1] retain];
17468 HensuuName[i] = [[item objectAtIndex:2] retain];
17476 -(void)displaySideMenu{
17478 [FSMenu setFrameOrigin:NSMakePoint([fsWindow frame].origin.x + [fsWindow frame].size.width/2 - FSMenu.frame.size.width/2,
17479 [fsWindow frame].origin.y + [fsWindow frame].size.height/2 - FSMenu.frame.size.height/2)];
17482 attackFlag = false;
17483 summonFlag = false;
17484 menuDisplayFlag = false;
17485 [FSMenu makeKeyAndOrderFront:nil];
17490 -(IBAction)FSVsave:(id)sender{
17492 [saveGamePanel setFrameOrigin:NSMakePoint([fsWindow frame].origin.x + [fsWindow frame].size.width/2 - saveGamePanel.frame.size.width/2,
17493 [fsWindow frame].origin.y + [fsWindow frame].size.height/2 - saveGamePanel.frame.size.height/2)];
17495 [self saveGameDataDatViewImage];
17497 [saveGameTF setStringValue:@""];
17499 [saveGamePanel makeKeyAndOrderFront:nil];
17503 -(IBAction)FSVtitle:(id)sender{
17505 stopByFSVmenuFlag = false;
17508 if(titleBGM) [titleBGM play];
17510 [titleWindow makeKeyAndOrderFront:nil];
17517 endGameCondition = false;
17518 initMapFlag = false;
17519 TeamCountFlag = false;
17520 initStatusFlag = false;
17521 battleBegin = false;
17524 cpuModeMOVEflag = false;
17525 cpuModeATTACKflag = false;
17527 redWinFlag = false;
17528 blueWinFlag = false;
17529 cpuAImodeflag = false;
17530 cpuTurnEndFlag = true;
17531 backTitleFlag = false;
17532 backTitleFlag2 = true;
17533 waitSwtichFlag = false;
17534 battleReadyUpFlag = false;
17535 setBattleModeFlag = false;
17536 mapChipDataLoadProc = 0;
17544 -(IBAction)FSVcancel:(id)sender{
17546 stopByFSVmenuFlag = false;
17553 -(void)displaySaveFileDialog{
17555 [saveDataList initFileDirectory];
17556 [self initSaveFileInputList];
17557 [saveFileDialog makeKeyAndOrderFront:nil];
17561 -(IBAction)saveFileInputSubmit:(id)sender{
17563 if([saveFileInputTF stringValue] == nil || [[saveFileInputTF stringValue] isEqualToString:@""]){
17567 bahBugFixFlag = false;
17568 saveFileFlag = false;
17572 startOrEndFlag = false;
17573 EventViewDraw = true;
17575 BGMrunedFlag = false;
17576 BGMchangedFlag = false;
17579 SErunedFlag = false;
17580 SEchangedFlag = false;
17583 [titleWindow makeKeyAndOrderFront:nil];
17584 if(titleBGM) [titleBGM play];
17587 saveFileNameSDL = [[saveFileInputTF stringValue] retain];
17588 SC[storyNumb].saveFileName = [saveFileNameSDL retain];
17589 [saveDataList saveSaveList];
17590 [levelList saveLevelList];
17592 [titleWindow makeKeyAndOrderFront:nil];
17593 [saveFileInputPanel close];
17595 -(IBAction)saveFileInputCancel:(id)sender{
17597 bahBugFixFlag = false;
17598 saveFileFlag = false;
17602 startOrEndFlag = false;
17603 EventViewDraw = true;
17605 BGMrunedFlag = false;
17606 BGMchangedFlag = false;
17609 SErunedFlag = false;
17610 SEchangedFlag = false;
17613 [titleWindow makeKeyAndOrderFront:nil];
17614 if(titleBGM) [titleBGM play];
17617 saveFileNameSDL = [@"preset.txt" retain];
17618 SC[storyNumb].saveFileName = [saveFileNameSDL retain];
17619 [saveDataList saveSaveList];
17621 [titleWindow makeKeyAndOrderFront:nil];
17622 [saveFileInputPanel close];
17625 -(IBAction)saveFileDialogSubmit:(id)sender{
17627 saveFileFlag = true;
17628 [saveFileInputPanel makeKeyAndOrderFront:nil];
17630 [saveFileDialog close];
17633 -(IBAction)saveFileDialogCancel:(id)sender{
17635 saveFileNameSDL = [@"preset.txt" retain];
17636 SC[storyNumb].saveFileName = [saveFileNameSDL retain];
17637 [saveDataList saveSaveList];
17639 bahBugFixFlag = false;
17640 saveFileFlag = false;
17644 startOrEndFlag = false;
17645 EventViewDraw = true;
17647 BGMrunedFlag = false;
17648 BGMchangedFlag = false;
17651 SErunedFlag = false;
17652 SEchangedFlag = false;
17655 [titleWindow makeKeyAndOrderFront:nil];
17656 if(titleBGM) [titleBGM play];
17659 saveFileFlag = true;
17660 [titleWindow makeKeyAndOrderFront:nil];
17663 [saveFileDialog close];
17667 -(void)initSaveFileInputList{
17669 [self willChangeValueForKey:@"saveFileInputListMA"];
17670 [saveFileInputListMA removeAllObjects];
17671 [self didChangeValueForKey:@"saveFileInputListMA"];
17674 for(int i = 1;i <= saveNumb;i++){
17677 NSMutableDictionary* dict = [NSMutableDictionary new];
17678 [dict setValue:[NSString stringWithFormat:@"%@", SDL[i].name] forKey:@"name"];
17679 [self willChangeValueForKey:@"saveFileInputListMA"];
17680 [saveFileInputListMA addObject:dict];
17681 [self didChangeValueForKey:@"saveFileInputListMA"];
17686 -(void)initLoadFileOutputList{
17688 [self willChangeValueForKey:@"loadFileOutputListMA"];
17689 [loadFileOutputListMA removeAllObjects];
17690 [self didChangeValueForKey:@"loadFileOutputListMA"];
17693 for(int i = 1;i <= saveNumb;i++){
17696 if([SC[storyNumb].name isEqualToString:SDL[i].levelName]){
17697 NSMutableDictionary* dict = [NSMutableDictionary new];
17698 [dict setValue:[NSString stringWithFormat:@"%@", SDL[i].name] forKey:@"name"];
17699 [self willChangeValueForKey:@"loadFileOutputListMA"];
17700 [loadFileOutputListMA addObject:dict];
17701 [self didChangeValueForKey:@"loadFileOutputListMA"];
17706 [loadFileOutputListAC setSelectionIndex:9999];
17708 [loadFileOutputTF setStringValue:[NSString stringWithFormat:@""]];
17710 [loadFileOutputPanel makeKeyAndOrderFront:nil];
17714 -(IBAction)loadFileOutputSubmit:(id)sender{
17719 SC[storyNumb].saveFileName = [SDL[SDLrow+1].name retain];
17720 SC[storyNumb].CrntLevelName = [SDL[SDLrow+1].levelName retain];
17721 SC[storyNumb].scenarioNumbCrnt[scenarioNumb] = [NSString stringWithFormat:@"%d", SDL[SDLrow+1].scenarioNumbCrnt];
17722 SC[storyNumb].scenarioNumbNext[scenarioNumb] = [NSString stringWithFormat:@"%d", SDL[SDLrow+1].scenarioNumbNext];
17724 [levelList saveLevelList];
17725 [scenarioList initFileDirectory];
17726 [mapEditor initFileDirectoryOthers];
17727 [scenarioList setScenarioList:selectNumb];
17729 [loadFileOutputPanel close];
17732 -(void)initFileOutPutListSet{
17734 SC[storyNumb].saveFileName = NULL;
17736 [levelList saveLevelList];
17737 [scenarioList setScenarioList:selectNumb];
17740 -(IBAction)loadFileOutputCancel:(id)sender{
17742 [loadFileOutputPanel close];
17752 -(IBAction)saveGameSubmit:(id)sender{
17754 if([[saveGameTF stringValue] isEqualToString:@""])
17757 sdd.name = [[saveGameTF stringValue] retain];
17758 datFilePath = calloc(255, sizeof(char));
17759 strcpy(datFilePath, [sdd.name UTF8String]);
17761 [self saveGameDataDatViewImage];
17762 [self saveGameDataDat];
17763 [saveDataList initSaveList];
17765 [saveGamePanel close];
17769 -(void)saveGameDataDatViewImage{
17771 NSString *directoryPath;
17773 directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
17774 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
17776 [fieldView lockFocus];
17777 NSBitmapImageRep* rep = [fieldView bitmapImageRepForCachingDisplayInRect:fieldView.bounds];
17778 [fieldView cacheDisplayInRect:fieldView.bounds toBitmapImageRep:rep];
17779 [fieldView unlockFocus];
17781 NSMutableData* data = [rep representationUsingType:NSPNGFileType properties:nil];
17782 sdd.img = [[[NSImage alloc] initWithData:data] retain];
17784 [saveGameIV setImage:sdd.img];
17785 [saveGameIV setImageScaling:NSScaleToFit];
17788 NSString *path = @"SaveData/";
17790 NSArray *ary = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:path error:nil];
17792 [SAV removeAllObjects];
17793 for(NSString *name in ary){
17795 NSArray *arr = [name componentsSeparatedByString:@".sav"];
17797 if([arr count] > 1){
17798 [SAV addObject:name];
17802 [self willChangeValueForKey:@"saveGameListMA"];
17803 [saveGameListMA removeAllObjects];
17804 [self didChangeValueForKey:@"saveGameListMA"];
17806 for(int i = 0;i < [SAV count];i++){
17808 NSMutableDictionary* dict = [NSMutableDictionary new];
17809 [dict setValue:[NSString stringWithFormat:@"%@", SAV[i]] forKey:@"name"];
17811 [self willChangeValueForKey:@"saveGameListMA"];
17812 [saveGameListMA addObject:dict];
17813 [self didChangeValueForKey:@"saveGameListMA"];
17817 [saveGameListAC setSelectionIndex:9999];
17821 -(void)loadGameDataDat{
17831 NSString *directoryPath;
17832 directoryPath = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
17833 [[NSFileManager defaultManager] changeCurrentDirectoryPath:directoryPath];
17836 NSString *path = @"SaveData/";
17837 path = [path stringByAppendingString:SAV[SDLrow]];
17839 NSData *data = [[NSData alloc] initWithContentsOfFile:path];
17841 MFselectedRow = sdd2[datRow].MFselectedRow;
17842 MF[MFselectedRow+1].fileName = sdd2[datRow].mapfileName;
17844 storyNumb = sdd2[datRow].storyNumb;
17845 scenarioNumb = sdd2[datRow].scenarioNumb;
17847 SC[storyNumb].name = sdd2[datRow].levelName;
17848 SC[storyNumb].nameMAP[scenarioNumb] = sdd2[datRow].scenarioName;
17850 posX = sdd2[datRow].posX;
17851 posX = sdd2[datRow].posY;
17853 chipHeight = sdd2[datRow].chipHeight;
17854 chipWidth = sdd2[datRow].chipWidth;
17855 eSlctX = sdd2[datRow].eSlctX;
17856 eSlctY = sdd2[datRow].eSlctY;
17858 registerNum = sdd2[datRow].registerNum;
17859 registerNumB = sdd2[datRow].registerNumB;
17861 esSceneProc = sdd2[datRow].esSceneProc;
17863 endGameCondition = sdd2[datRow].endGameCondition;
17864 initMapFlag = sdd2[datRow].initMapFlag;
17865 TeamCountFlag = sdd2[datRow].TeamCountFlag;
17866 initStatusFlag = sdd2[datRow].initStatusFlag;
17867 battleBegin = sdd2[datRow].battleBegin;
17868 startES = sdd2[datRow].startES;
17870 cpuAImodeflag = sdd2[datRow].cpuAImodeflag;
17871 cpuTurnEndFlag = sdd2[datRow].cpuTurnEndFlag;
17872 cpuModeMOVEflag = sdd2[datRow].cpuModeMOVEflag;
17873 cpuModeATTACKflag = sdd2[datRow].cpuModeATTACKflag;
17874 waitSwtichFlag = sdd2[datRow].waitSwtichFlag;
17875 battleReadyUpFlag = sdd2[datRow].battleReadyUpFlag;
17876 setBattleModeFlag = sdd2[datRow].setBattleModeFlag;
17878 wtRdy = sdd2[datRow].wtRdy;
17879 wtRdy2 = sdd2[datRow].wtRdy2;
17880 wtRdy3 = sdd2[datRow].wtRdy3;
17882 wtMovedFlag = sdd2[datRow].wtMovedFlag;
17883 wtAttackedFlag = sdd2[datRow].wtAttackedFlag;
17884 unitMoveEndFlag = sdd2[datRow].unitMoveEndFlag;
17885 battleSetUp = sdd2[datRow].battleSetUp;
17886 pushStanbyFlag = sdd2[datRow].pushStanbyFlag;
17887 battleEndFlag = sdd2[datRow].battleEndFlag;
17888 wtUnitNum = sdd2[datRow].wtUnitNum;
17889 messageDialog = sdd2[datRow].messageDialog;
17892 for(int i = 0;i < 1002;i++){
17893 for(int j = 0;j < 1002;j++){
17894 chipNum[i][j] = sdd2[datRow].chipNum[i][j];
17898 for(int i = 0;i < 1002;i++){
17899 for(int j = 0;j < 1002;j++){
17900 buildNum[i][j] = sdd2[datRow].buildNum[i][j];
17904 for(int i = 0;i < 1002;i++){
17905 for(int j = 0;j < 1002;j++){
17906 unitNum[i][j] = sdd2[datRow].unitNum[i][j];
17910 for(int i = 0;i < 1002;i++){
17911 for(int j = 0;j < 1002;j++){
17912 loadNum[i][j] = sdd2[datRow].loadNum[i][j];
17916 for(int i = 0;i < 1002;i++){
17917 for(int j = 0;j < 1002;j++){
17918 buildTeam[i][j] = sdd2[datRow].buildTeam[i][j];
17922 for(int i = 0;i < 1002;i++){
17923 for(int j = 0;j < 1002;j++){
17924 unitTeam[i][j] = sdd2[datRow].unitTeam[i][j];
17929 P[0] = sdd2[datRow].P[0];
17930 P[1] = sdd2[datRow].P[1];
17931 P[2] = sdd2[datRow].P[2];
17933 for(int i = 0;i < 9999;i++)
17934 Suicchi[i] = sdd2[datRow].Suicchi[i];
17936 sdd.HensuuNum = HensuuNum;
17937 for(int i = 0;i < 65000;i++)
17938 Hensuu[i] = [sdd2[datRow].Hensuu[i] retain];
17939 for(int i = 0;i < 65000;i++)
17940 HensuuName[i] = [sdd2[datRow].HensuuName[i] retain];
17942 MF[MFselectedRow+1].MS = sdd2[datRow].MS;
17943 MF[MFselectedRow+1].MS.D = sdd2[datRow].MS.D;
17950 Uselected = sdd.Uselected;
17951 unitBreak = sdd.unitBreak;
17952 Utarget = sdd.Utarget;
17956 //NSLog(@"%d", MF[MFselectedRow+1].MS.playerSet1);
17959 -(void)saveGameDataDat{
17963 sdd.name = [[saveGameTF stringValue] retain];
17965 sdd.MFselectedRow = MFselectedRow;
17966 sdd.storyNumb = storyNumb;
17967 sdd.scenarioNumb = scenarioNumb;
17969 sdd.mapfileName = [MF[MFselectedRow+1].fileName retain];
17970 sdd.levelName = [SC[storyNumb].name retain];
17971 sdd.scenarioName = [SC[storyNumb].nameMAP[scenarioNumb] retain];
17976 sdd.chipHeight = chipHeight;
17977 sdd.chipWidth = chipWidth;
17978 sdd.eSlctX = eSlctX;
17979 sdd.eSlctY = eSlctY;
17981 sdd.registerNum = registerNum;
17982 sdd.registerNumB = registerNumB;
17984 sdd.esSceneProc = esSceneProc;
17986 sdd.endGameCondition = endGameCondition;
17987 sdd.initMapFlag = initMapFlag;
17988 sdd.TeamCountFlag = TeamCountFlag;
17989 sdd.initStatusFlag = initStatusFlag;
17990 sdd.battleBegin = battleBegin;
17991 sdd.startES = startES;
17993 sdd.cpuModeMOVEflag = cpuModeMOVEflag;
17994 sdd.cpuModeATTACKflag = cpuModeATTACKflag;
17996 sdd.cpuAImodeflag = cpuAImodeflag;
17997 sdd.cpuTurnEndFlag = cpuTurnEndFlag;
17998 sdd.waitSwtichFlag = waitSwtichFlag;
17999 sdd.battleReadyUpFlag = battleReadyUpFlag;
18000 sdd.setBattleModeFlag = setBattleModeFlag;
18004 sdd.wtRdy2 = wtRdy2;
18005 sdd.wtRdy3 = wtRdy3;
18008 sdd.wtMovedFlag = wtMovedFlag;
18009 sdd.wtAttackedFlag = wtAttackedFlag;
18010 sdd.unitMoveEndFlag = unitMoveEndFlag;
18011 sdd.battleSetUp = battleSetUp;
18012 sdd.pushStanbyFlag = pushStanbyFlag;
18013 sdd.battleEndFlag = battleEndFlag;
18014 sdd.wtUnitNum = wtUnitNum;
18015 sdd.messageDialog = messageDialog;
18018 for(int i = 0;i < 1002;i++){
18019 for(int j = 0;j < 1002;j++){
18020 sdd.chipNum[i][j] = chipNum[i][j];
18024 for(int i = 0;i < 1002;i++){
18025 for(int j = 0;j < 1002;j++){
18026 sdd.buildNum[i][j] = buildNum[i][j];
18030 for(int i = 0;i < 1002;i++){
18031 for(int j = 0;j < 1002;j++){
18032 sdd.unitNum[i][j] = unitNum[i][j];
18036 for(int i = 0;i < 1002;i++){
18037 for(int j = 0;j < 1002;j++){
18038 sdd.loadNum[i][j] = loadNum[i][j];
18042 for(int i = 0;i < 1002;i++){
18043 for(int j = 0;j < 1002;j++){
18044 sdd.buildTeam[i][j] = buildTeam[i][j];
18048 for(int i = 0;i < 1002;i++){
18049 for(int j = 0;j < 1002;j++){
18050 sdd.unitTeam[i][j] = unitTeam[i][j];
18057 while(U && r < registerNum){
18058 sdd.dU[r].CPU = U->CPU;
18059 sdd.dU[r].number = U->number;
18060 sdd.dU[r].team = U->team;
18061 sdd.dU[r].chipNumber = U->chipNumber;
18062 sdd.dU[r].chipNumberL = U->chipNumberL;
18064 sdd.dU[r].x = U->x;
18065 sdd.dU[r].y = U->y;
18066 sdd.dU[r].z = U->z;
18068 sdd.dU[r].ix = U->ix;
18069 sdd.dU[r].iy = U->iy;
18070 sdd.dU[r].iz = U->iz;
18072 sdd.dU[r].dead = U->dead;
18074 sdd.dU[r].loadChipFlag = U->loadChipFlag;
18076 sdd.dU[r].unControlable = U->unControlable;
18077 sdd.dU[r].joinArmyFromNext = U->joinArmyFromNext;
18078 sdd.dU[r].persuasion = U->persuasion;
18080 sdd.dU[r].targType1L = U->targType1L;
18081 sdd.dU[r].targType2L = U->targType2L;
18082 sdd.dU[r].targType1D = U->targType1D;
18083 sdd.dU[r].targType2D = U->targType2D;
18085 sdd.dU[r].army = U->army;
18086 sdd.dU[r].img = [U->img retain];
18088 sdd.dU[r].C.chipNumb = U->C.chipNumb;
18089 sdd.dU[r].C.name = [U->C.name retain];
18090 sdd.dU[r].C.nameNick = [U->C.nameNick retain];
18091 sdd.dU[r].C.nameClass = [U->C.nameClass retain];
18092 sdd.dU[r].C.nameID = [U->C.nameID retain];
18094 sdd.dU[r].C.R_C = U->C.R_C;
18095 sdd.dU[r].C.S_C = U->C.S_C;
18103 while(B && r < registerNumB){
18104 sdd.dB[r].number = B->number;
18105 sdd.dB[r].team = B->team;
18106 sdd.dB[r].chipNumber = B->chipNumber;
18107 sdd.dB[r].makeLv = B->makeLv;
18109 sdd.dB[r].x = B->x;
18110 sdd.dB[r].y = B->y;
18111 sdd.dB[r].z = B->z;
18113 sdd.dB[r].dead = B->dead;
18115 sdd.dB[r].img = [B->img retain];
18116 sdd.dB[r].C.chipNumb = B->C.chipNumb;
18117 sdd.dB[r].C.name = [B->C.name retain];
18118 sdd.dB[r].C.nameID = [B->C.nameID retain];
18119 sdd.dB[r].C.S_C = B->C.S_C;
18130 for(int i = 0;i < 9999;i++)
18131 sdd.Suicchi[i] = Suicchi[i];
18133 sdd.HensuuNum = HensuuNum;
18134 for(int i = 0;i < 65000;i++)
18135 sdd.Hensuu[i] = [Hensuu[i] retain];
18136 for(int i = 0;i < 65000;i++)
18137 sdd.HensuuName[i] = [HensuuName[i] retain];
18139 MAPSCRIPT MS = MF[MFselectedRow+1].MS;
18146 -(NSData *)sddToNSData:(NSString *) path{
18149 NSData *archivedData = [NSKeyedArchiver archivedDataWithRootObject:sdd];
18151 [archivedData writeToFile:path atomically:YES];
18153 return archivedData;
18159 -(IBAction)saveGameCancel:(id)sender{
18161 [saveGamePanel close];
18171 @implementation FieldSceneEF
18178 - (id)initWithFrame:(NSRect)frame
18180 self = [super initWithFrame:frame];
18182 // Initialization code here.
18184 scheduledTimerWithTimeInterval:0.015
18186 selector:@selector(EventLoopBV:)
18195 -(void)scrollWheel:(NSEvent *)theEvent{
18201 -(void)EventLoopBV:(NSTimer*)timer{
18203 [battleView setNeedsDisplay:YES];
18205 static int aniFrame = 0;
18207 if(animationFlag3){
18213 if(!animationFlag1 && !animationFlag2){
18224 U->C.A = attackCR2;
18226 static bool pussyMikoto = false;
18230 ani = U->C.A->AN.ANI;
18233 for (int i = 0; i < aniFrameCnt;i++) {
18238 [ani->snd setCurrentTime:0];
18240 ani->snd.loops = NO;
18243 pussyMikoto = true;
18247 U->C.A->AN.ANI = ani;
18250 if(aniFrame < U->C.A->AN.frame){
18256 pussyMikoto = false;
18257 animationFlag3 = true;
18265 [self setNeedsDisplay:YES];
18270 -(void)DrawImage:(NSImage*)image x:(float)x y:(float)y a:(float)a{
18272 frRect.size.height = image.size.height;
18273 frRect.size.width = image.size.width;
18275 frRect.origin.x = 0;
18276 frRect.origin.y = 0;
18279 drRect.origin.x = x;
18280 drRect.origin.y = y;
18281 drRect.size.height = image.size.height;
18282 drRect.size.width = image.size.width;
18284 [image drawInRect:drRect fromRect:frRect operation:NSCompositeSourceOver fraction:a respectFlipped:YES hints:nil];
18288 - (void)drawRect:(NSRect)dirtyRect
18290 // Drawing code here.
18291 if(animationFlag3) return;
18296 if(animationFlag1 || animationFlag2){
18302 U->C.A = attackCR2;
18304 ani = U->C.A->AN.ANI;
18309 for (int i = 0; i < aniFrameCnt;i++) {
18317 [self DrawImage:ani->img x:ani->x + ani->ax y:ani->y + ani->ay a:1.0f];