Page 1 of 2

KillBot!

Posted: Mon Aug 29, 2005 9:55
by solarsnowfall
Right now I'm working on a robot type monster designed to be a final boss. I know for certain it will be going into ZDCMP2.

I'm using Caligari True Space 3d application to make all of the sprites, and I'm about 2/3 done spriting for it (96 frames). It's done in hi-res, with 16 rotations.

As far as attacks go:

At long range it attacks with a shoulder mounted rail gun.
At medium range it will fire dual (alternating) seekermissiles.
At close range it's dual minigun action!

Defensively, it will have a spherical shield similar to the Arch Heinous.

It it will also have the ability to spawn small helper bots that are much quicker/weaker, armed with flame throwers (I think).

Image Image

Note: At hi-res (scaled down) dark spots around the edges don't stand out at all.

Posted: Tue Aug 30, 2005 9:57
by solarsnowfall
Ok, I've got enough of the spriting do to begin scripting for the first attack. Here's a "mockup" of the rocket attack. It will have a custom seekermissile before it's done. I'm just hoping some of you folks can help me (pretty please) with testing this along the way. There are a lot of things missing from the decorate (ballanced health/mass/damage ect) there is no Pain or Death state yet, so if you kill it, it will just disappear.

http://solarsnow.drdteam.org/kilbot.rar

Posted: Tue Aug 30, 2005 16:41
by Lexus Alyus
The sprite looks pritty cool. I've downloaded the rar and I'll give it a little test :).

I gave it a quick run through.

suggestions: Make it only fire about 4 rockets in a row or something and then have a short break. The constant stream of rockets is a bit annoying and doesn't give it a chance to use any of its other attacks. This makes it very easy to defeat for an experianced player. If those rockets are going to be homing its going to make it pritty tediously hard.

Didn't get chance to see its other attacks.

:twisted:

Posted: Tue Aug 30, 2005 20:21
by Paul
I like the graphics :)

Posted: Tue Aug 30, 2005 23:46
by solarsnowfall
Lexus Alyus wrote:Didn't get chance to see its other attacks.
Heh, I haven't coded them yet. Because spriting for 16 angles is so damn tedious, I've been pacing myself so that I don't get sick of it, and have been doing some decorate along the way.

The map that I put the monster in could have been better, because this monster will use range to decide it's attacks. And the rockets won't be used up close. I think eventually it will fire eight rockets, then return to the see state, with a small chance of repeating.

Heh, it doesn't even have a health value yet. Right now I'm working on it's defensive shield, and it seems to be coming along nicely.

Posted: Wed Aug 31, 2005 1:23
by BlazingPhoenix
when will this be done? because this looks pretty interesting.

Posted: Wed Aug 31, 2005 1:26
by solarsnowfall
Hopefully I'll have all of the spriting done by tonight, and all of the decorate done by tomorrow. I'll keep posting updated versions, as I progress, because it helps with complicated monsters, if you can test along the way.

Posted: Wed Aug 31, 2005 2:19
by BlazingPhoenix
I'd like to test this. This looks pretty awesome.

Posted: Wed Aug 31, 2005 2:28
by DomRem
solarsnowfall wrote:Hopefully I'll have all of the spriting done by tonight, and all of the decorate done by tomorrow.
That quickly? Wow, can't wait to see and try out the final version for ZDCMP2.

Posted: Wed Aug 31, 2005 3:20
by BlazingPhoenix
ZDCMP2 will take forever to complete anyway :(

Posted: Wed Aug 31, 2005 3:28
by DomRem
OK, I just tested it out, and I'm wondering: Does it have any other attack than the rockets? That's all it did the entire time.

Also, on the strange side, while it was firing at me, I was looking up at it. It was near the wall, and I walked under it. Suddenly, it disappeared! WTF? :?

EDIT: After trying it again, it seems to blast itself through the wall and out of the level or something like that.

Posted: Wed Aug 31, 2005 3:46
by solarsnowfall
*sigh*, earlier, I wrote wrote: Heh, I haven't coded them yet. Because spriting for 16 angles is so damn tedious, I've been pacing myself so that I don't get sick of it, and have been doing some decorate along the way.
Right now I have it just go bulistic and shoot the crap out of everything with rockets, because I wanted to test it to see if it looks right at all the angles. And it wipes out Spider Masterminds as though they were nothing!

I have implemented the sheilding, and I'm starting on the minigun firing sprites momentarily. I haven't touched the decorate enough for it do do anything more than move around, and enguage an attack.

After all the sprites are done, you'll see a version up with more complex behaviour, don't worry!

EDIT: When it dies, it disappears, there is no death state, so this is probably what your describing when it "blasts itself out of the level". When all is said and done, it won't be firing missiles at close range, so it won't be killing itself with them.

Posted: Thu Sep 01, 2005 7:17
by solarsnowfall
For those interested, I've got just about all the Killbot sprites prepared, and have writen the attacks sequences. They're in need of some tweeking, and I think the rail attack has to go :(

I'm using A_MonsterRail, wich cannot be manipulated very well, so I can't line it up so that it appears to be coming out of the shoulder mounted gun.

So eventually I think I'm going to extend the range fo the rockets, replace the BotRocket sprites with something better, and try to write some new creative short range attack for the for the shoulder mounted gun. I was thinking about some kind of "sonic" weapon, but only if I can make the sprites look good. Thoughts/comments?

http://solarsnow.drdteam.org/kilbot.rar

There still isn't a death state, there still aren't any death frames. I want to make this thing behave differently at different health values, so I'll get all of that straight then focus on how it dies

Posted: Mon Sep 05, 2005 21:34
by solarsnowfall
Significant update. Working with Talonos, Phobus, and other ZDCMP2 members, I've begun sharpening the Killbots behavior to better suit a more interactive boss fight.

Added:

A new crippled phase. The bot slows down, sparks, and twiches once it's health has been depleted enough.

A new sonic attack. At close range, he has a chance of hitting his enemies with a shoulder mounted sonic weapon that rips through them with devistation!

Random teleporting! If this guy is taking heavy fire, he won't stick around for long. He has 9 different locations that can he can teleport to, to throw the player off.

Still needs:

CustomMissile sprites.
Death sprites
Helper bots.

Decorate:

[spoiler]

Code: Select all

Actor KillBot 3125
{
    Health 5000
    Height 180
    Mass 7000
    Radius 40
    Speed 10
    Damage 7
    Monster
    +FloatBob
    +NoGravity
    +NoBlood
    PainChance 32
    PainSound "killbot/pain"
    States
    {
    Spawn:
        BOTT A 1 A_Look 
        Loop
    See: 
        BOTT A 0 A_ChangeFlag("FloatBob", 1)
        BOTT A 0 A_ChangeFlag("NoGravity", 1)
        BOTT A 0 A_UnSetInvulnerable
        BOTT A 0 A_SetTranslucent(1,0)
        BOTT A 0 A_JumpIfHealthLower(2000, 5)
        BOTT A 0 A_Jump(4, 2)
        BOTT A 2 A_Chase
        Loop
        BOTT A 0 A_Pain
        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)
        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)
        BOTT ADF 4
        BOTT A 4 A_Chase 
        Loop
    Missile:
        BOTT A 0 A_ChangeFlag("FloatBob", 0)
        BOTT A 0 A_JumpIfCloser(1216, 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
        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
        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
        BOTT A 0 A_Jump(128, 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:
    	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 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+6
        BOTT A 0 A_PlaySound("shlddown")
        BOTT A 0 A_Jump(128, 11)
        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, 11)
        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(153, 11)
        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, 11)
        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(153, 11)
        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(204, 11)
        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, 11)
        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(204, 11)
        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_Jump(128, 11)
        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
        BOTT A 8 
        Goto See
    }
}

Actor BotShield
{
    	Speed 0
	Height 180
	Radius 90
	+NoGravity
	+NoClip
	+FloorClip
	+Shootable
	+Invulnerable
	+Reflective
	RenderStyle Add
        Alpha 0.5
        Scale .85
        States
        {
        Spawn:
       	    BLKR A 2 BRIGHT
       	    Stop
        }
}

Actor BotRail 
{
	Speed 0
	Damage 20
	+IsMonster
        +NoGravity
	+NoBlockMap
	+NoClip
	RenderStyle Translucent
	Alpha 0
	Scale .01
	States
	{
	Spawn:
	    BLKR A 0 A_FaceTarget
            Goto See
        See:
            BLKR A 0 A_FaceTarget
            Goto Missile
        Missile:
            BLKR A 0 A_FaceTarget
            BLKR A 0 A_MonsterRail
            Stop
	}
}

Actor BotDebris
{
	Speed 0
	Damage 10
	+IsMonster
        +NoGravity
	+NoBlockMap
	+NoClip
	RenderStyle Translucent
	Alpha 0
	Scale .01
	States
	{
	Spawn:
	    BLKR A 0 
            Goto See
        See:
            BLKR A 0 
            Goto Missile
        Missile:
            BLKR A 0 A_SpawnDebris("BulletSpark")
            Stop
	}
}

Actor BotRocket : Rocket
{
	+SeekerMissile
        States
	{
        Spawn:
	    MISL A 4 A_SeekerMissile(5, 5)
	    Loop
	}
}

ACTOR BulletSpark
{
	Health 4
	radius 3
	height 6
	speed .1
	RenderStyle ADD
	Alpha 1
	Scale .1
	Mass 0
	+missile
	+doombounce
	+FLOORCLIP
	+DONTSPLASH
	States
	{
		SPRK A 1
		SPRK ABCDA 1  Bright A_SetTranslucent(.8,1)
		SPRK BCDABC 1  Bright A_SetTranslucent(.6,1)
		SPRK DABCDABC 1  Bright A_SetTranslucent(.4,1)
		SPRK DABCDABCDA 1 Bright A_SetTranslucent(.2,1)
		Stop
	}
}

Actor SonicAttack
{
	Speed 10
        Damage 1
        Projectile
	+Ripper
	+StrifeDamage
	RenderStyle Add
	Alpha 1
        Scale .5
        States
	{
	Spawn:
	    SONC K 1 BRIGHT A_SetTranslucent(.2,1)
            SONC J 1 BRIGHT A_SetTranslucent(.4,1)
	    SONC I 2 BRIGHT A_SetTranslucent(.6,1)
            SONC H 2 BRIGHT A_SetTranslucent(.8,1)
            SONC G 3 BRIGHT
            SONC F 3 BRIGHT	
            SONC E 4 BRIGHT
            SONC D 4 BRIGHT
            SONC C 4 BRIGHT
            SONC B 3 BRIGHT
            SONC A 3 BRIGHT
            SONC A 2 BRIGHT A_SetTranslucent(.8,1)
            SONC A 2 BRIGHT A_SetTranslucent(.6,1)
            SONC A 1 BRIGHT A_SetTranslucent(.4,1)
            SONC A 1 BRIGHT A_SetTranslucent(.2,1)
            Stop
        }
}

Actor TestImp : DoomImp
{
	Health 1000
        States
	{
	Missile:
	    TROO G 1 A_FaceTarget
	    TROO G 1 A_CustomMissile("SonicAttack", 48, 16, 0)
	    Loop
	}
}

Actor BotSpark
{
	Speed 0
	+IsMonster
	+NoGravity
	+NoClip
	+NoBlockMap
	RenderStyle Add
	Alpha 0
	Scale .01
	States
	{
	Spawn:
	    BLKR A 0 
	    Goto See
	See:
	    BLKR A 0
	    Goto Missile
	Missile:
	    BLKR A 0 A_Jump(128, 6)
            BLKR A 0 A_CustomMissile("Spark1", 0, 0, 0)
	    BLKR A 0 A_CustomMissile("Spark2", 0, 0, -8)
            BLKR A 0 A_CustomMissile("Spark3", 0, 0, 8)
            BLKR A 0 A_CustomMissile("Spark1", 0, 0, -16)
            BLKR A 0 A_CustomMissile("Spark2", 0, 0, 16)
            Stop
            BLKR A 0 A_Jump(128, 6)
            BLKR A 0 A_CustomMissile("Spark2", 0, 0, 0)
	    BLKR A 0 A_CustomMissile("Spark3", 0, 0, -8)
            BLKR A 0 A_CustomMissile("Spark1", 0, 0, 8)
            BLKR A 0 A_CustomMissile("Spark2", 0, 0, -16)
            BLKR A 0 A_CustomMissile("Spark3", 0, 0, 16)
            Stop
            BLKR A 0 A_CustomMissile("Spark3", 0, 0, 0)
	    BLKR A 0 A_CustomMissile("Spark1", 0, 0, -8)
            BLKR A 0 A_CustomMissile("Spark2", 0, 0, 8)
            BLKR A 0 A_CustomMissile("Spark3", 0, 0, -16)
            BLKR A 0 A_CustomMissile("Spark1", 0, 0, 16)
            Stop
        }
}

Actor Spark1
{
	Speed 3
	+Missile
	MissileType SparkTrail
	MissileHeight 0
	RenderStyle Add
	Alpha 1
	Scale .1
	States
	{
	Spawn:
	    SPRK B 1 A_MissileAttack
 	    Loop
 	Death:
 	    SPRK B 1 A_SetTranslucent(.8,1)
 	    SPRK C 1 A_SetTranslucent(.7,1)	
 	    SPRK D 1 A_SetTranslucent(.6,1) 
 	    SPRK E 1 A_SetTranslucent(.5,1)
 	    SPRK F 1 A_SetTranslucent(.4,1)
 	    SPRK G 1 A_SetTranslucent(.3,1)
            SPRK H 1 A_SetTranslucent(.2,1)
 	    Stop	
        } 
}

Actor Spark2
{
	Speed 5
	+Missile
	MissileType SparkTrail
	MissileHeight 0
	RenderStyle Add
	Alpha 1
	Scale .1
	States
	{
	Spawn:
	    SPRK B 1 A_MissileAttack
 	    Loop
 	Death:
 	    SPRK B 1 A_SetTranslucent(.8,1)
 	    SPRK C 1 A_SetTranslucent(.7,1)	
 	    SPRK D 1 A_SetTranslucent(.6,1) 
 	    SPRK E 1 A_SetTranslucent(.5,1)
 	    SPRK F 1 A_SetTranslucent(.4,1)
 	    SPRK G 1 A_SetTranslucent(.3,1)
            SPRK H 1 A_SetTranslucent(.2,1)
 	    Stop	
        }     
}

Actor Spark3
{
	Speed 7
	+Missile
	MissileType SparkTrail
	MissileHeight 0
	RenderStyle Add
	Alpha 1
	Scale .1
	States
	{
	Spawn:
	    SPRK B 1 BRIGHT A_MissileAttack
 	    Loop
 	Death:
 	    SPRK B 1 BRIGHT A_SetTranslucent(.8,1)
 	    SPRK C 1 BRIGHT A_SetTranslucent(.7,1)	
 	    SPRK D 1 BRIGHT A_SetTranslucent(.6,1) 
 	    SPRK E 1 BRIGHT A_SetTranslucent(.5,1)
 	    SPRK F 1 BRIGHT A_SetTranslucent(.4,1)
 	    SPRK G 1 BRIGHT A_SetTranslucent(.3,1)
            SPRK H 1 BRIGHT A_SetTranslucent(.2,1)
 	    Stop	
        }     
}

Actor SparkTrail
{
	Speed 0
	+NoBlockMap
	+NoGravity
	RenderStyle Add
	Alpha .8
	Scale .1
	States
	{
	Spawn:
	    SPRK C 1 BRIGHT A_SetTranslucent(.7,1)	
 	    SPRK D 1 BRIGHT A_SetTranslucent(.6,1) 
 	    SPRK E 1 BRIGHT A_SetTranslucent(.5,1)
 	    SPRK F 1 BRIGHT A_SetTranslucent(.4,1)
 	    SPRK G 1 BRIGHT A_SetTranslucent(.3,1)
            SPRK H 1 BRIGHT A_SetTranslucent(.2,1)
            Stop
        }
}
[/spoiler]

Download:

http://solarsnow.drdteam.org/killbotbeta.rar

Posted: Tue Sep 06, 2005 0:08
by DomRem
I believe I've found a bug.

If the killbot is frozen to death, and does not shatter right away, it will teleport onto the player and, subsequently, kill them instantly. This happened twice to me, and in neither instance was I close to the teleport destinations.