-(void)EventLoopFV:(NSTimer*)timer{
+ //if(unitBreak) NSLog(@"unitBreakAtkrange %d", unitBreak->atkRange);
+
if(evInitMap) {evInitMap = false;
//[self loadMesh:SC[storyNumb].nameMAP index:scenarioNumb];
}
+
+-(void)checkRangeAttack:(int)startX startY:(int)startY leftPow:(int)leftPow pieceType:(int)pieceType aMap:(int[][1002])aMap aPiece:(UNITCHIP*)aPiece i:(int)i{
+
+ int i0 = i;
+ if(leftPow <= i0) return;
+
+ int chipTeam;
+ if(Uselected) chipTeam = Uselected->team;
+
+ if(startX < 0) startX = 0;
+ if(startY < 0) startY = 0;
+
+ aMap[startY][startX] = i0; //広がる範囲
+ i0++; // 上
+
+ if( leftPow > i0 ){
+ [self checkRangeAttack:startX startY:startY - 1 leftPow:leftPow pieceType:pieceType aMap:aMap aPiece:aPiece i:i0];
+ }
+
+ // 下
+ if( leftPow > i0 ){
+ [self checkRangeAttack:startX startY:startY + 1 leftPow:leftPow pieceType:pieceType aMap:aMap aPiece:aPiece i:i0];
+ }
+
+ // 右
+ if( leftPow > i0 ){
+ [self checkRangeAttack:startX - 1 startY:startY leftPow:leftPow pieceType:pieceType aMap:aMap aPiece:aPiece i:i0];
+ }
+
+ // 左
+ if( leftPow > i0 ){
+ [self checkRangeAttack:startX + 1 startY:startY leftPow:leftPow pieceType:pieceType aMap:aMap aPiece:aPiece i:i0];
+ }
+
+}
+
+
+
-(void)LookupAttackRangeExtent:(int)startX startY:(int)startY aPiece:(UNITCHIP*)aPiece turnSide:(BOOL)turnSide
{
if(coolTime)
return;
+ if(stanbyFlag)
+ return;
+
if(unitMoveEndFlag){
pushStanbyFlag = true;
UA = NULL;
pushStanbyFlag = false;
[self makeEnemyAI];
[self cpuSearchEnemy];
+ if(Utarget) NSLog(@"Utarg %d", Utarget->number);
cpuModeMOVEflag = true;
if(unitNoMoveStanbyFlag){
static int waitTimer = 50;
unitCPUAttackFlag = true;
cpuMODE = MODE_CPU_BATTLE;
wtAttackedFlag = true;
+ battleFlag = true;
return;
}
break;
return;
}
+
+ //おまんちん
U = UTop;
while (U->number != wtUnitNum) {
U = U->next;
CPUAttackFlag2 = false;
unitNoMoveFlag = false;
cpuMODE = MODE_CPU_IDLE;
-
+ if(Utarget) NSLog(@"Utarg2 %d", Utarget->number);
break;
default:
cpuMODE = MODE_CPU_IDLE;
}
+
+
-(void)cpuEmployment{
B = BTop;
g_attackRangeTheta[y][x] = 0;
}
}
- [self checkAttackRange:U->y startY:U->x leftPow:unitBreak->atkRange+1 pieceType:U->C.S_C.typeMONS aMap:g_attackRangeTheta aPiece:&U->C];
+ [self checkRangeAttack:U->y startY:U->x leftPow:unitBreak->atkRange+1 pieceType:U->C.S_C.typeMONS aMap:g_attackRangeTheta aPiece:&U->C i:0];
ATTACK *AT = unitBreak->C.A;
for(int i = 0;i < crCAL1;i++){
for (int x = 1; x <= chipWidth; x++) {
for (int y = 1; y <= chipHeight; y++) {
- if(g_attackRangeTheta[y][x] > 0 && g_selectRange[y][x] > 0 && g_entireUnit[y][x] == 0){
+ if(g_attackRangeTheta[y][x] > 0 && g_selectRange[y][x] > 0 && g_entireUnit[y][x] == 0
+ && g_attackRangeTheta[U->y][U->x] == unitBreak->atkRange){
int point = (unitBreak->atkRange - g_attackRangeBeta[y][x])*20 + g_selectRange[y][x]*50;
U = U->next;
}
- if(!U){
+ ATTACK *AT = unitBreak->C.A;
+ for(int i = 0;i < crCAL1;i++){
+ AT = AT->next;
+ }
+
+ if(!U /*&& AT->D->sort == 1*/){
[self healBreak];//回復の対象がいない時、回復以外にする
}
g_attackRangeTheta[y][x] = 0;
}
}
- [self checkAttackRange:U->y startY:U->x leftPow:unitBreak->atkRange+1 pieceType:U->C.S_C.typeMONS aMap:g_attackRangeTheta aPiece:&U->C];
+ [self checkRangeAttack:U->y startY:U->x leftPow:unitBreak->atkRange+1 pieceType:U->C.S_C.typeMONS aMap:g_attackRangeTheta aPiece:&U->C i:0];
ATTACK *AT = unitBreak->C.A;
for(int i = 0;i < crCAL1;i++){
for (int x = 1; x <= chipWidth; x++) {
for (int y = 1; y <= chipHeight; y++) {
- if(g_attackRangeTheta[y][x] > 0 && g_selectRange[y][x] > 0 && g_entireUnit[y][x] == 0){
+ if(g_attackRangeTheta[y][x] > 0 && g_selectRange[y][x] > 0 && g_entireUnit[y][x] == 0
+ && g_attackRangeTheta[U->y][U->x] == unitBreak->atkRange){
int point = (unitBreak->atkRange - g_attackRangeBeta[y][x])*20 + g_selectRange[y][x]*50;
}
}
- [self checkEnemyRange:unitBreak->atkRange+1 cntNum:0 tX:Utarget->x tY:Utarget->y aMap:g_enemyRange];
+ //[self checkEnemyRange:unitBreak->atkRange+1 cntNum:0 tX:Utarget->x tY:Utarget->y aMap:g_enemyRange];
- unitBreak->atkRange = unitBreak->atkRange+1 - g_enemyRange[g_target_x][g_target_y];
+ //unitBreak->atkRange = unitBreak->atkRange+1 - g_enemyRange[g_target_x][g_target_y];
crCAL = crCAL1;
- //NSLog(@"%@", Utarget->C.name);
+ NSLog(@"UtargNUm %d", Utarget->number);
return;
}
}unitBreak->C.A = UAT;
unitBreak->atkRange = UA->rangeB;
-
+ NSLog(@"unitBreak->atkRange %d", unitBreak->atkRange);
for(int g = 0;g <= chipWidth;g++){
for(int h = 0; h <= chipHeight;h++){
g_attackRangeAlpha [h][g] = 0;
if(g_attackRangeBeta[y][x] > 0 && !cpuOMFGmoveATKfixFlag){
[self DrawImage:chipSelect x:(y-1)*32 y:(x-1)*32 cx:0 cy:0 f:0.6];
+ /*
+ switch(g_attackRangeBeta[y][x]){
+ case 1:
+ [self DrawImage:n1 x:(y-1)*32 y:(x-1)*32 cx:0 cy:0 f:0.6];
+ break;
+ case 2:
+ [self DrawImage:n2 x:(y-1)*32 y:(x-1)*32 cx:0 cy:0 f:0.6];
+ break;
+ case 3:
+ [self DrawImage:n3 x:(y-1)*32 y:(x-1)*32 cx:0 cy:0 f:0.6];
+ break;
+ case 4:
+ [self DrawImage:n4 x:(y-1)*32 y:(x-1)*32 cx:0 cy:0 f:0.6];
+ break;
+ case 5:
+ [self DrawImage:n5 x:(y-1)*32 y:(x-1)*32 cx:0 cy:0 f:0.6];
+ break;
+ case 6:
+ [self DrawImage:n6 x:(y-1)*32 y:(x-1)*32 cx:0 cy:0 f:0.6];
+ break;
+ case 7:
+ [self DrawImage:n7 x:(y-1)*32 y:(x-1)*32 cx:0 cy:0 f:0.6];
+ break;
+ case 8:
+ [self DrawImage:n8 x:(y-1)*32 y:(x-1)*32 cx:0 cy:0 f:0.6];
+ break;
+ case 9:
+ [self DrawImage:n9 x:(y-1)*32 y:(x-1)*32 cx:0 cy:0 f:0.6];
+ break;
+ case 10:
+ [self DrawImage:n10 x:(y-1)*32 y:(x-1)*32 cx:0 cy:0 f:0.6];
+ break;
+
+
+
+ }*/
}
}
}
+
+
if(cpuIsAttackingFlag || (UA && unitMoveEndFlag)){
for (int x = 1; x <= chipWidth;x++) {
for(int y = 1;y <= chipHeight;y++){