gzdoom/wadsrc/decorate/strife/strifeplayer.txt

73 lines
1.3 KiB
Text
Raw Normal View History

- Converted the StrifePlayer to DECORATE. Even though it requires exporting 3 new code pointers without general use it was necessary to handle GiveDefaultInventory consistently for all players without the need to subclass this function. - Added a Player.RunHealth property to expose the StrifePlayer's behavior of not being able to run when its health is below 10. - Changed APlayerPawn::GiveDefaultInventory so that it always adds a HexenArmor and a BasicArmor item to the inventory. If these items are not the first ones added to the inventory anything else that might absorb damage is not guaranteed to work consistently because their function depends on the order in the inventory. - Changed handling of APowerup's DoEffect so that it is called from the owner's Tick function, not the item's. This is so that the order of execution is determined by the order in the inventory. When done in the item's Tick function order depends on the global thinker table which can cause problems with the order in which conflicting powerups apply their effect. Now it is guaranteed that the item that was added to the inventory first applies its effect last. - Fixed: Added checks for Speed==0 to A_Tracer and A_Tracer2 because this could cause a divide by zero. - Fixed: P_MoveThing must also set the moved actor's previous position to prevent interpolation of the move. - Fixed: APowerInvisibility and its subclasses need to constantly update the owner's translucency information in case of interference between different subclasses. Also changed Hexen's Cleric's invulnerability mode to disable the translucency effect if an invisibility powerup is active. SVN r448 (trunk)
2007-01-12 15:24:10 +00:00
// The player ---------------------------------------------------------------
ACTOR StrifePlayer : PlayerPawn
{
Health 100
Radius 18
Height 56
Mass 100
PainChance 255
Speed 1
MaxStepHeight 16
Player.ColorRange 96, 111
Player.DisplayName "Rebel"
Player.StartItem "PunchDagger"
action native A_ItBurnsItBurns();
action native A_DropFire();
action native A_CrispyPlayer();
States
{
Spawn:
PLAY A -1
stop
See:
PLAY ABCD 4
loop
Missile:
PLAY E 12
goto Spawn
Melee:
PLAY F 6
goto Missile
Death:
PLAY H 3
PLAY I 3 A_PlayerScream
PLAY J 3 A_NoBlocking
PLAY KLMNO 4
PLAY P -1
Stop
XDeath:
RGIB A 5 A_TossGib
RGIB B 5 A_XScream
RGIB C 5 A_NoBlocking
RGIB DEFG 5 A_TossGib
RGIB H -1 A_TossGib
Burn:
BURN A 3 Bright A_ItBurnsItBurns
BURN B 3 Bright A_DropFire
BURN C 3 Bright A_Wander
BURN D 3 Bright A_NoBlocking
BURN E 5 Bright A_DropFire
BURN FGH 5 Bright A_Wander
BURN I 5 Bright A_DropFire
BURN JKL 5 Bright A_Wander
BURN M 5 Bright A_DropFire
BURN N 5 Bright A_CrispyPlayer
BURN OPQPQ 5 Bright
BURN RSTU 7 Bright
BURN V -1
Stop
Disintegrate:
DISR A 5 A_PlaySoundEx("misc/disruptordeath", "Voice")
DISR BC 5
DISR D 5 A_NoBlocking
DISR EF 5
DISR GHIJ 4
MEAT D -1
Stop
}
}