A_PityShield is an action that gives the target player a Pity Shield (zim) and spawns the shield around them, playing the actor's
SeeSound. Any other shield the player might wear is removed to be replaced by the Pity Shield.
Code – A_PityShield
// Function: A_PityShield
// Description: Awards the player a pity shield.
// Because you fail it.
// Your skill is not enough.
// See you next time.
// var1 = unused
// var2 = unused
void A_PityShield(mobj_t *actor)
if (LUA_CallAction("A_PityShield", actor))
if (!actor->target || !actor->target->player)
CONS_Debug(DBG_GAMELOGIC, "Powerup has no target.\n");
player = actor->target->player;
if ((player->powers[pw_shield] & SH_NOSTACK) != SH_PITY)
player->powers[pw_shield] = SH_PITY+(player->powers[pw_shield] & SH_STACK);