A_RingShield is an action that gives the target player an Attraction Shield (yellow) 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 Attraction Shield.
Code – A_RingShield
// Function: A_RingShield
// Description: Awards the player a ring shield.
// var1 = unused
// var2 = unused
void A_RingShield(mobj_t *actor)
if (LUA_CallAction("A_RingShield", 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_ATTRACT)
player->powers[pw_shield] = SH_ATTRACT|(player->powers[pw_shield] & SH_STACK);