📄 enemy.java
字号:
// Decompiled by DJ v3.9.9.91 Copyright 2005 Atanas Neshkov Date: 2005-11-26 11:40:38
// Home Page : http://members.fortunecity.com/neshkov/dj.html - Check often for new version!
// Decompiler options: packimports(3)
import java.util.*;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
class Enemy
implements Constants
{
public Enemy(short word0, short word1, byte byte0, Game game1)
{
action = 13;
isWeapon = false;
ehit = false;
ebackAttack = false;
emoving = false;
emaxY = 176;
ehitCtr = 0;
ecrouchCtr = 0;
eweaponPicked = false;
ecrouchHit = false;
playerHit = false;
jpCtr = 0;
e_lag = System.currentTimeMillis();
echainJumpCtr = 0;
eaxeJumpCtr = 0;
delayCtr = 0;
x = word0;
y = word1;
game = game1;
weapon = byte0;
health = 60;
action = 13;
face = 26;
if(byte0 != 34 && byte0 != 35 && byte0 != 33)
isWeapon = true;
else
isWeapon = false;
}
public void updateAI()
{
Dist = (short)Math.abs(x - game.me.x);
if(y == emaxY && !isWeapon)
if(x - game.me.x < 0)
face = 27;
else
face = 26;
enemyCtr++;
if(enemyCtr == 50)
enemyCtr = 0;
if(y < emaxY)
{
if(!isWeapon)
switch(jpCtr)
{
case 0: // '\0'
y -= 25;
jpCtr++;
break;
case 1: // '\001'
y -= 20;
jpCtr++;
break;
case 2: // '\002'
y -= 7;
jpCtr++;
break;
case 3: // '\003'
y -= 5;
jpCtr++;
break;
case 4: // '\004'
y -= 2;
jpCtr++;
break;
case 5: // '\005'
y += 2;
jpCtr++;
break;
case 6: // '\006'
y += 5;
jpCtr++;
break;
case 7: // '\007'
y += 7;
jpCtr++;
break;
case 8: // '\b'
y += 20;
jpCtr++;
break;
case 9: // '\t'
y += 25;
jpCtr = 0;
action = 13;
break;
}
if(weapon == 39 && (action == 16 || action == 13))
switch(eaxeJumpCtr)
{
case 0: // '\0'
y -= 25;
eaxeJumpCtr++;
break;
case 1: // '\001'
y -= 20;
eaxeJumpCtr++;
break;
case 2: // '\002'
y -= 7;
eaxeJumpCtr++;
break;
case 3: // '\003'
y -= 5;
eaxeJumpCtr++;
break;
case 4: // '\004'
y -= 2;
eaxeJumpCtr++;
break;
case 5: // '\005'
y += 2;
eaxeJumpCtr++;
break;
case 6: // '\006'
y += 5;
eaxeJumpCtr++;
break;
case 7: // '\007'
y += 7;
eaxeJumpCtr++;
break;
case 8: // '\b'
y += 20;
eaxeJumpCtr++;
break;
case 9: // '\t'
y += 25;
eaxeJumpCtr = 0;
action = 13;
break;
}
if(weapon == 41 && action == 16)
switch(echainJumpCtr)
{
case 0: // '\0'
y -= 15;
echainJumpCtr++;
break;
case 1: // '\001'
y -= 10;
echainJumpCtr++;
break;
case 2: // '\002'
y -= 3;
echainJumpCtr++;
break;
case 3: // '\003'
y -= 2;
echainJumpCtr++;
break;
case 4: // '\004'
y--;
echainJumpCtr++;
break;
case 5: // '\005'
y++;
echainJumpCtr++;
break;
case 6: // '\006'
y += 2;
echainJumpCtr++;
break;
case 7: // '\007'
y += 3;
echainJumpCtr++;
break;
case 8: // '\b'
y += 10;
echainJumpCtr++;
break;
case 9: // '\t'
y += 15;
echainJumpCtr = 0;
action = 13;
break;
}
}
if(action == 19)
{
fr++;
if(fr > 5 || fr > 4)
fr = 0;
} else
if(action == 13 && jpCtr == 0)
{
y = emaxY;
if(!ebackAttack)
fr = 0;
} else
if(action == 16)
{
if(jpCtr == 0 && y >= emaxY && !isWeapon)
{
y -= 25;
jpCtr = 1;
action = 13;
}
if(eaxeJumpCtr == 0 && y >= emaxY && weapon == 39)
{
y -= 25;
eaxeJumpCtr = 1;
}
if(echainJumpCtr == 0 && y >= emaxY && weapon == 41)
{
y -= 15;
echainJumpCtr = 1;
}
} else
if(action == 14)
{
if(!isWeapon)
{
if(face == 26)
x -= 5;
else
x += 5;
fr++;
if(fr > 1)
{
fr = 0;
action = 13;
}
}
if(weapon == 41)
{
if(face == 26)
x -= 5;
else
x += 5;
fr++;
if(fr > 1)
{
fr = 0;
action = 13;
}
}
if(weapon == 39)
{
if(face == 26)
x -= 5;
else
x += 5;
fr++;
if(fr > 1)
{
fr = 0;
action = 13;
}
}
} else
if(action == 15)
{
y = emaxY;
if(!isWeapon)
{
switch((game.rnd.nextInt() >> 1) % 3)
{
case 0: // '\0'
weapon = 34;
break;
case 1: // '\001'
weapon = 35;
break;
case 2: // '\002'
weapon = 33;
break;
}
isWeapon = false;
}
if(!isWeapon)
{
if(weapon == 35)
{
if(System.currentTimeMillis() % 3L == 0L)
{
if(face == 26)
x -= 5;
else
x += 5;
action = 13;
}
} else
if(weapon == 34)
{
if(System.currentTimeMillis() % 3L == 0L)
{
fr++;
if(face == 26)
x -= 5;
else
x += 5;
}
if(fr > 1)
{
fr = 0;
action = 13;
}
} else
if(weapon == 33 && System.currentTimeMillis() % 7L == 0L)
action = 13;
} else
{
if(weapon == 41)
{
if(enemyCtr % 2 == 0)
fr++;
if(fr > 4)
{
fr = 0;
action = 13;
}
} else
if(weapon == 39)
{
if(enemyCtr % 3 == 0)
fr++;
if(fr > 2)
{
fr = 0;
action = 13;
}
}
if(weapon != 34 && weapon != 35 && weapon != 33)
isWeapon = true;
}
} else
if(action == 17)
{
if(!isWeapon)
action = 13;
if(weapon == 41)
{
if(enemyCtr % 3 == 0)
{
if(face == 26)
x += 4;
else
x -= 4;
fr++;
}
if(fr > 1)
{
fr = 0;
action = 13;
}
} else
if(weapon == 39)
{
if(enemyCtr % 3 == 0)
{
if(face == 26)
x += 5;
else
x -= 5;
fr++;
}
if(fr > 2)
{
fr = 0;
action = 13;
}
}
}
for(Enumeration enumeration = game.RoadArms.elements(); enumeration.hasMoreElements();)
{
Arms arms = (Arms)enumeration.nextElement();
if(!eweaponPicked && !isWeapon && game.weapon2 != 127 && game.weapon2 != 35 && x + 5 >= arms.x && x - 5 <= arms.x && y == emaxY)
{
eweaponPicked = true;
weapon = game.weapon2;
action = 13;
isWeapon = true;
game.weapon2 = 127;
game.RoadArms.removeElement(arms);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -