mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-12-18 16:41:24 +00:00
371712c53a
- fixed emission of the self pointer in FxVMFunctionCall. I did not realize that the self expression only sets up a register for the value, not pushing it onto the stack.
185 lines
2.6 KiB
Text
185 lines
2.6 KiB
Text
|
|
// Ice Guy ------------------------------------------------------------------
|
|
|
|
class IceGuy : Actor
|
|
{
|
|
Default
|
|
{
|
|
Health 120;
|
|
PainChance 144;
|
|
Speed 14;
|
|
Radius 22;
|
|
Height 75;
|
|
Mass 150;
|
|
DamageType "Ice";
|
|
Monster;
|
|
+NOBLOOD
|
|
+TELESTOMP
|
|
+NOICEDEATH
|
|
SeeSound "IceGuySight";
|
|
AttackSound "IceGuyAttack";
|
|
ActiveSound "IceGuyActive";
|
|
Obituary "$OB_ICEGUY";
|
|
}
|
|
|
|
native void A_IceGuyLook();
|
|
native void A_IceGuyChase();
|
|
native void A_IceGuyAttack();
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
ICEY A 10 A_IceGuyLook;
|
|
Loop;
|
|
See:
|
|
ICEY A 4 A_Chase;
|
|
ICEY B 4 A_IceGuyChase;
|
|
ICEY CD 4 A_Chase;
|
|
Loop;
|
|
Pain:
|
|
ICEY A 1 A_Pain;
|
|
Goto See;
|
|
Missile:
|
|
ICEY EF 3 A_FaceTarget;
|
|
ICEY G 8 Bright A_IceGuyAttack;
|
|
ICEY F 4 A_FaceTarget;
|
|
Goto See;
|
|
Death:
|
|
ICEY A 1 A_IceGuyDie;
|
|
Stop;
|
|
Inactive:
|
|
ICEY A -1;
|
|
Goto See;
|
|
}
|
|
}
|
|
|
|
// Ice Guy Projectile -------------------------------------------------------
|
|
|
|
class IceGuyFX : Actor
|
|
{
|
|
Default
|
|
{
|
|
Speed 14;
|
|
Radius 8;
|
|
Height 10;
|
|
Damage 1;
|
|
DamageType "Ice";
|
|
Projectile;
|
|
-ACTIVATEIMPACT -ACTIVATEPCROSS
|
|
DeathSound "IceGuyMissileExplode";
|
|
}
|
|
|
|
native void A_IceGuyMissileExplode();
|
|
|
|
States
|
|
{
|
|
Spawn:
|
|
ICPR ABC 3 Bright A_SpawnItemEx("IceFXPuff", 0,0,2);
|
|
Loop;
|
|
Death:
|
|
ICPR D 4 Bright;
|
|
ICPR E 4 Bright A_IceGuyMissileExplode;
|
|
ICPR FG 4 Bright;
|
|
ICPR H 3 Bright;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// Ice Guy Projectile's Puff ------------------------------------------------
|
|
|
|
class IceFXPuff : Actor
|
|
{
|
|
Default
|
|
{
|
|
Radius 1;
|
|
Height 1;
|
|
+NOBLOCKMAP +NOGRAVITY +DROPOFF +SHADOW
|
|
+NOTELEPORT
|
|
RenderStyle "Translucent";
|
|
Alpha 0.4;
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
ICPR IJK 3;
|
|
ICPR LM 2;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// Secondary Ice Guy Projectile (ejected by the primary projectile) ---------
|
|
|
|
class IceGuyFX2 : Actor
|
|
{
|
|
Default
|
|
{
|
|
Speed 10;
|
|
Radius 4;
|
|
Height 4;
|
|
Damage 1;
|
|
DamageType "Ice";
|
|
Gravity 0.125;
|
|
+NOBLOCKMAP +DROPOFF +MISSILE
|
|
+NOTELEPORT
|
|
+STRIFEDAMAGE
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
ICPR NOP 3 Bright;
|
|
Loop;
|
|
}
|
|
}
|
|
|
|
// Ice Guy Bit --------------------------------------------------------------
|
|
|
|
class IceGuyBit : Actor
|
|
{
|
|
Default
|
|
{
|
|
Radius 1;
|
|
Height 1;
|
|
Gravity 0.125;
|
|
+NOBLOCKMAP +DROPOFF
|
|
+NOTELEPORT
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
ICPR Q 50 Bright;
|
|
Stop;
|
|
ICPR R 50 Bright;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// Ice Guy Wisp 1 -----------------------------------------------------------
|
|
|
|
class IceGuyWisp1 : Actor
|
|
{
|
|
Default
|
|
{
|
|
+NOBLOCKMAP +NOGRAVITY +DROPOFF +MISSILE
|
|
+NOTELEPORT
|
|
RenderStyle "Translucent";
|
|
Alpha 0.4;
|
|
}
|
|
States
|
|
{
|
|
Spawn:
|
|
ICWS ABCDEFGHI 2;
|
|
Stop;
|
|
}
|
|
}
|
|
|
|
// Ice Guy Wisp 2 -----------------------------------------------------------
|
|
|
|
class IceGuyWisp2 : IceGuyWisp1
|
|
{
|
|
States
|
|
{
|
|
Spawn:
|
|
ICWS JKLMNOPQR 2;
|
|
Stop;
|
|
}
|
|
}
|