Hmm. Thats bulky, but still relatively simple. Using the classic Doomsday style method you'd end up with a 50 page long ded file for it, but since the sprite animation itself is quite simple, you would only have to define 3 or 4 different animation loops for it with my proposed system.
Code: Select all
States
{
Spawn:
killbot/hover
BOTT A 1 A_Look
Loop
See:
killbot/hover
BOTT A 0 A_ChangeFlag("FloatBob", 1)
BOTT A 0 A_ChangeFlag("NoGravity", 1)
BOTT A 0 A_UnSetInvulnerable
BOTT A 0 A_UnsetReflective
BOTT A 0 A_SetShootable
BOTT A 0 A_SetTranslucent(1,0)
BOTT A 0 A_JumpIfHealthLower(5000, 5)
BOTT A 0 A_Jump(4, 2)
BOTT A 2 A_Chase
Loop
BOTT A 0 A_Scream
BOTT A 2 A_Chase
Loop
BOTT A 0 A_Jump(64, 2)
BOTT A 4 A_Chase
Loop
BOTT A 0 A_Jump(128, 9)
BOTT A 0 A_PlaySound("world/spark1")
BOTT A 0 BRIGHT A_CustomMissile("Spark1", 120, 0, 0)
BOTT A 0 BRIGHT A_CustomMissile("Spark2", 120, 0, 8)
BOTT A 0 BRIGHT A_CustomMissile("Spark3", 120, 0, -8)
BOTT A 0 BRIGHT A_CustomMissile("Spark1", 120, 0, 16)
BOTT A 0 BRIGHT A_CustomMissile("Spark2", 120, 0, -16)
BOTT A 4
BOTT A 4 A_Chase
Loop
BOTT A 0 A_Jump(128, 11)
BOTT A 0 A_PlaySound("world/spark2")
BOTT A 0 BRIGHT A_CustomMissile("Spark2", 64, 16, 0)
BOTT A 0 BRIGHT A_CustomMissile("Spark3", 64, 16, 8)
BOTT A 0 BRIGHT A_CustomMissile("Spark1", 64, 16, -8)
BOTT A 0 BRIGHT A_CustomMissile("Spark2", 64, 16, 16)
BOTT A 0 BRIGHT A_CustomMissile("Spark3", 64, 16, -16)
killbot/twitch1 see+29 (i dont know the purpose of this animation..)
BOTT ABC 4
BOTT A 4 A_Chase
Loop
BOTT A 0 A_PlaySound("world/spark3")
BOTT A 0 BRIGHT A_CustomMissile("Spark3", 96, -32, 0)
BOTT A 0 BRIGHT A_CustomMissile("Spark1", 96, -32, 8)
BOTT A 0 BRIGHT A_CustomMissile("Spark2", 96, -32, -8)
BOTT A 0 BRIGHT A_CustomMissile("Spark3", 96, -32, 16)
BOTT A 0 BRIGHT A_CustomMissile("Spark1", 96, -32, -16)
killbot/twitch2 see+38
BOTT ADF 4
BOTT A 4 A_Chase
Loop
Missile:
killbot/missile
BOTT A 0 A_ChangeFlag("FloatBob", 0)
BOTT A 0 A_JumpIfCloser(1216, 9)
BOTT A 0 A_Jump(64, 8)
BOTT A 8 A_FaceTarget
BOTT A 8 A_SpawnItem("BotRail", 0, 120, 0)
BOTT A 8 A_FaceTarget
BOTT A 8 A_SpawnItem("BotRail", 0, 120, 0)
BOTT A 8 A_FaceTarget
BOTT A 8 A_SpawnItem("BotRail", 0, 120, 0)
BOTT A 8
Goto See
killbot/rockets missile+10
BOTT B 0 A_JumpIfCloser(704, 18)
BOTT BC 4 A_FaceTarget
BOTT G 4 BRIGHT A_CustomMissile("BotRocket", 140, 40, 0)
BOTT C 4 A_FaceTarget
BOTT H 4 BRIGHT A_CustomMissile("BotRocket", 140, -40, 0)
BOTT C 4 A_FaceTarget
BOTT G 4 BRIGHT A_CustomMissile("BotRocket", 140, 40, 0)
BOTT C 4 A_FaceTarget
BOTT H 4 BRIGHT A_CustomMissile("BotRocket", 140, -40, 0)
BOTT C 4 A_FaceTarget
BOTT G 4 BRIGHT A_CustomMissile("BotRocket", 140, 40, 0)
BOTT C 4 A_FaceTarget
BOTT H 4 BRIGHT A_CustomMissile("BotRocket", 140, -40, 0)
BOTT C 4 A_FaceTarget
BOTT G 4 BRIGHT A_CustomMissile("BotRocket", 140, 40, 0)
BOTT C 4 A_FaceTarget
BOTT H 4 BRIGHT A_CustomMissile("BotRocket", 140, -40, 0)
Goto See
killbot/chaingun missile+27 (28/29? lost count..)
BOTT D 0 A_JumpIfCloser(384, 8)
BOTT D 2 A_FaceTarget
BOTT E 0 BRIGHT A_CposAttack
BOTT E 0 BRIGHT A_CposAttack
BOTT E 0 BRIGHT A_PlaySound("spider/attack")
BOTT E 2 BRIGHT
BOTT F 2 A_FaceTarget
BOTT F 0 A_SpidRefire
Goto Missile+30
killbot/sonics missile+36
BOTT A 0 A_Jump(64, 66)
BOTT A 0 A_PlaySound("lichflam")
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
BOTT A 1 BRIGHT A_FaceTarget
BOTT A 1 BRIGHT A_CustomMissile("SonicAttack", 120, -8, 0)
Goto See
BOTT A 0
Goto Missile+29
Pain:
killbot/pain
BOTT A 0 A_ChangeFlag("FloatBob", 0)
BOTT A 0 A_Jump(128, 4)
BOTT A 0 A_ChangeFlag("NoGravity", 0)
BOTT A 32
Goto See
BOTT A 0 A_SetInvulnerable
BOTT A 0 A_SetReflective
BOTT A 1 A_PlaySound("shldup")
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 1 A_FaceTarget
BOTT A 1 A_CustomMissile("BotShield", 0, 0, 0)
BOTT A 0 A_Jump(128, 2)
BOTT A 0 A_FaceTarget
Goto Pain+7
BOTT A 0 A_PlaySound("shlddown")
BOTT A 0 A_Jump(204, 12)
BOTT A 0 A_UnsetShootable
BOTT A 1 A_SetTranslucent(.9, 1)
BOTT A 1 A_SetTranslucent(.8, 1)
BOTT A 1 A_SetTranslucent(.7, 1)
BOTT A 1 A_SetTranslucent(.6, 1)
BOTT A 1 A_SetTranslucent(.5, 1)
BOTT A 1 A_SetTranslucent(.4, 1)
BOTT A 1 A_SetTranslucent(.3, 1)
BOTT A 1 A_SetTranslucent(.2, 1)
BOTT A 1 A_SetTranslucent(.1, 1)
BOTT A 0 TeleportOther(52, 53, 0)
Goto See
BOTT A 0 A_Jump(204, 12)
BOTT A 0 A_UnsetShootable
BOTT A 1 A_SetTranslucent(.9, 1)
BOTT A 1 A_SetTranslucent(.8, 1)
BOTT A 1 A_SetTranslucent(.7, 1)
BOTT A 1 A_SetTranslucent(.6, 1)
BOTT A 1 A_SetTranslucent(.5, 1)
BOTT A 1 A_SetTranslucent(.4, 1)
BOTT A 1 A_SetTranslucent(.3, 1)
BOTT A 1 A_SetTranslucent(.2, 1)
BOTT A 1 A_SetTranslucent(.1, 1)
BOTT A 0 TeleportOther(52, 54, 0)
Goto See
BOTT A 0 A_Jump(204, 12)
BOTT A 0 A_UnsetShootable
BOTT A 1 A_SetTranslucent(.9, 1)
BOTT A 1 A_SetTranslucent(.8, 1)
BOTT A 1 A_SetTranslucent(.7, 1)
BOTT A 1 A_SetTranslucent(.6, 1)
BOTT A 1 A_SetTranslucent(.5, 1)
BOTT A 1 A_SetTranslucent(.4, 1)
BOTT A 1 A_SetTranslucent(.3, 1)
BOTT A 1 A_SetTranslucent(.2, 1)
BOTT A 1 A_SetTranslucent(.1, 1)
BOTT A 0 TeleportOther(52, 55, 0)
Goto See
BOTT A 0 A_Jump(204, 12)
BOTT A 0 A_UnsetShootable
BOTT A 1 A_SetTranslucent(.9, 1)
BOTT A 1 A_SetTranslucent(.8, 1)
BOTT A 1 A_SetTranslucent(.7, 1)
BOTT A 1 A_SetTranslucent(.6, 1)
BOTT A 1 A_SetTranslucent(.5, 1)
BOTT A 1 A_SetTranslucent(.4, 1)
BOTT A 1 A_SetTranslucent(.3, 1)
BOTT A 1 A_SetTranslucent(.2, 1)
BOTT A 1 A_SetTranslucent(.1, 1)
BOTT A 0 TeleportOther(52, 56, 0)
Goto See
BOTT A 0 A_Jump(204, 12)
BOTT A 0 A_UnsetShootable
BOTT A 1 A_SetTranslucent(.9, 1)
BOTT A 1 A_SetTranslucent(.8, 1)
BOTT A 1 A_SetTranslucent(.7, 1)
BOTT A 1 A_SetTranslucent(.6, 1)
BOTT A 1 A_SetTranslucent(.5, 1)
BOTT A 1 A_SetTranslucent(.4, 1)
BOTT A 1 A_SetTranslucent(.3, 1)
BOTT A 1 A_SetTranslucent(.2, 1)
BOTT A 1 A_SetTranslucent(.1, 1)
BOTT A 0 TeleportOther(52, 57, 0)
Goto See
BOTT A 0 A_Jump(153, 12)
BOTT A 0 A_UnsetShootable
BOTT A 1 A_SetTranslucent(.9, 1)
BOTT A 1 A_SetTranslucent(.8, 1)
BOTT A 1 A_SetTranslucent(.7, 1)
BOTT A 1 A_SetTranslucent(.6, 1)
BOTT A 1 A_SetTranslucent(.5, 1)
BOTT A 1 A_SetTranslucent(.4, 1)
BOTT A 1 A_SetTranslucent(.3, 1)
BOTT A 1 A_SetTranslucent(.2, 1)
BOTT A 1 A_SetTranslucent(.1, 1)
BOTT A 0 TeleportOther(52, 58, 0)
Goto See
BOTT A 0 A_Jump(153, 12)
BOTT A 0 A_UnsetShootable
BOTT A 1 A_SetTranslucent(.9, 1)
BOTT A 1 A_SetTranslucent(.8, 1)
BOTT A 1 A_SetTranslucent(.7, 1)
BOTT A 1 A_SetTranslucent(.6, 1)
BOTT A 1 A_SetTranslucent(.5, 1)
BOTT A 1 A_SetTranslucent(.4, 1)
BOTT A 1 A_SetTranslucent(.3, 1)
BOTT A 1 A_SetTranslucent(.2, 1)
BOTT A 1 A_SetTranslucent(.1, 1)
BOTT A 0 TeleportOther(52, 59, 0)
Goto See
BOTT A 0 A_Jump(153, 12)
BOTT A 0 A_UnsetShootable
BOTT A 1 A_SetTranslucent(.9, 1)
BOTT A 1 A_SetTranslucent(.8, 1)
BOTT A 1 A_SetTranslucent(.7, 1)
BOTT A 1 A_SetTranslucent(.6, 1)
BOTT A 1 A_SetTranslucent(.5, 1)
BOTT A 1 A_SetTranslucent(.4, 1)
BOTT A 1 A_SetTranslucent(.3, 1)
BOTT A 1 A_SetTranslucent(.2, 1)
BOTT A 1 A_SetTranslucent(.1, 1)
BOTT A 0 TeleportOther(52, 60, 0)
Goto See
BOTT A 0 A_UnsetShootable
BOTT A 1 A_SetTranslucent(.9, 1)
BOTT A 1 A_SetTranslucent(.8, 1)
BOTT A 1 A_SetTranslucent(.7, 1)
BOTT A 1 A_SetTranslucent(.6, 1)
BOTT A 1 A_SetTranslucent(.5, 1)
BOTT A 1 A_SetTranslucent(.4, 1)
BOTT A 1 A_SetTranslucent(.3, 1)
BOTT A 1 A_SetTranslucent(.2, 1)
BOTT A 1 A_SetTranslucent(.1, 1)
BOTT A 0 TeleportOther(52, 61, 0)
Goto See
Death:
killbot/death
BOTT A 0 A_ChangeFlag("NoGravity", 0)
BOTT A 0 A_ChangeFlag("FloatBob", 0)
BOTT A 16
BOTT A 1 A_CustomMissile("BotRuptionA", 32, -8, 0)
BOTT A 4
BOTT A 1 A_CustomMissile("BotRuptionB", 64, 16, 0)
BOTT A 2
Bott A 1 A_CustomMissile("BotRuptionA", 48, 0, 0)
BOTT A 6
BOTT A 1 A_CustomMissile("BotRuptionC", 96, -16, 0)
BOTT A 0 Radius_Quake(5, 35, 0, 1216, 52)
BOTT A 4
BOTT A 1 A_CustomMissile("BotRuptionB", 56, 32, 0)
BOTT A 2
Bott A 1 A_CustomMissile("BotRuptionA", 128, 0, 0)
BOTT A 6
Bott A 1 A_CustomMissile("BotRuptionA", 80, -32, 0)
BOTT A 6
BOTT A 1 A_CustomMissile("BotRuptionC", 96, 16, 0)
BOTT A 0 Radius_Quake(5, 35, 0, 1216, 52)
BOTT A 4
BOTT A 1 A_CustomMissile("BotRuptionA", 64, -8, 0)
BOTT A 4
BOTT A 1 A_CustomMissile("BotRuptionB", 96, 16, 0)
BOTT A 2
Bott A 1 A_CustomMissile("BotRuptionA", 56, 0, 0)
BOTT A 6
BOTT A 1 A_CustomMissile("BotRuptionC", 128, -16, 0)
BOTT A 0 Radius_Quake(5, 35, 0, 1216, 52)
BOTT A 4
BOTT A 1 A_CustomMissile("BotRuptionB", 32, 32, 0)
BOTT A 2
Bott A 1 A_CustomMissile("BotRuptionA", 112, 0, 0)
BOTT A 6
Bott A 1 A_CustomMissile("BotRuptionA", 48, -32, 0)
BOTT A 6
BOTT A 1 A_CustomMissile("BotRuptionC", 80, 16, 0)
BOTT A 0 Radius_Quake(5, 35, 0, 1216, 52)
BOTT A 0 A_SpawnItem("BotDebrisQue", 0, 200, 0)
BOTT I -1
STOP
}
}
For the pain and death loops, it doesn't seem to actually animate much from what I can see which makes it a lot easier. As for the missile attacks, you could easily take advantage of the extra animation potential that models have to do some cool animations independant of the sprite.
Gimme something really crazy please.