"""Staff of Striking - lies about damage.
Copyright 1998 Cabochon Technologies, Inc.
"""
from wyvern.lib import HookCallback
from wyvern.lib.classes.weapons import Staff
from wyvern.common.util import Strings
from wyvern.kernel.combat import DamageCommand
class staff_of_striking(Staff, HookCallback):
def initialize(self):
self.super__initialize()
self.setProperty('short', 'staff')
self.setProperty('id', 'staff of striking')
self.setProperty('value', 10000)
self.setWeight('2lb')
self.setProperty('wc-smash', 10)
self.setProperty('to-hit', 10)
self.setCategory('weapons/artifact')
self.setBitmap('staff_of_striking')
def setWielded(self, wielded, agent):
success = self.super__setWielded(wielded, agent)
if not success: return0
if wielded:
agent.addHook(self, 'damagePreHook')
else:
agent.removeHook(self, 'damagePreHook')
return 1
def hookEvent(self, hookName, event):
agent = event.getAgent()
defender = event.getTarget()
damage = event.getIntProperty('damage')
# get a damage message for a higher damage level
msg = DamageCommand.getAttackerMsg(defender, damage*5)
event.setProperty('attacker-msg', msg)
|