void WeaponObjectImplementation::decreasePowerupUses(CreatureObject* player) { if (hasPowerup()) { powerupObject->decreaseUses(); if (powerupObject->getUses() < 1) { Locker locker(_this.getReferenceUnsafeStaticCast()); StringIdChatParameter message("powerup", "prose_pup_expire"); //The powerup on your %TT has expired. message.setTT(getDisplayedName()); player->sendSystemMessage(message); powerupObject = NULL; } sendAttributeListTo(player); } }
bool WeaponObjectImplementation::applyPowerup(CreatureObject* player, PowerupObject* pup) { if(hasPowerup()) return false; addMagicBit(true); powerupObject = pup; if(pup->getParent() != NULL) { Locker clocker(pup, player); pup->destroyObjectFromWorld(true); } sendAttributeListTo(player); return true; }
void WeaponObjectImplementation::decreasePowerupUses(CreatureObject* player) { if (hasPowerup()) { powerupObject->decreaseUses(); if (powerupObject->getUses() < 1) { Locker locker(_this.getReferenceUnsafeStaticCast()); StringIdChatParameter message("powerup", "prose_pup_expire"); //The powerup on your %TT has expired. message.setTT(getDisplayedName()); player->sendSystemMessage(message); ManagedReference<PowerupObject*> pup = removePowerup(); if(pup != NULL) { Locker plocker(pup); pup->destroyObjectFromWorld( true ); pup->destroyObjectFromDatabase( true ); } } sendAttributeListTo(player); } }