Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Traceback (most recent call last):
- File "c:\evennia\evennia\evennia\commands\cmdhandler.py", line 509, in _run_command
- ret = yield cmd.func()
- File "C:\Evennia\tutorial\commands\command.py", line 302, in func
- tickerhandler.add(15, rules.skill_combat(caller, target))
- File "c:\evennia\evennia\evennia\scripts\tickerhandler.py", line 496, in add
- obj, path, callfunc = self._get_callback(callback)
- File "c:\evennia\evennia\evennia\scripts\tickerhandler.py", line 341, in _get_callback
- raise TypeError("%s is not a callable function or method." % callback)
- TypeError: None is not a callable function or method.
- An untrapped error occurred.
- --
- def func(self):
- "implements the actual functionality"
- caller = self.caller
- target = caller.search(self.target)
- # Beginning of the validation checks
- if not target:
- caller.msg("Hit whom?")
- return
- if not utils.inherits_from(target, 'typeclasses.characters.Character'):
- caller.msg("This is not a valid target.")
- return
- if target == caller:
- caller.msg("You affectionately pat yourself on the back.")
- caller.location.msg_contents("{} affectionately pats themselves on the back.".format(caller.name), exclude=[caller])
- return
- tickerhandler.add(15, rules.skill_combat(caller, target))
- ---
- def skill_combat(*args):
- """
- This determines outcome of combat.
- The one who rolls under theri combat skill AND
- higher than their opponent's roll hits.
- Args:
- *args:
- Returns:
- """
- char1, char2 = args
- roll1, roll2 = roll_hit(), roll_hit()
- failtext = "You are hit by %s for %i damage!"
- wintext = "You hit %s for %i damage!"
- char1.msg("{} is char1. Their combat score is {}.".format(char1.name,char1.db.skills['combat']))
- char1.msg("{} is char2. Their combat score is {}.".format(char2.name, char2.db.skills['combat']))
- char1.msg("Roll1 = {}".format(roll1))
- char1.msg("Roll2 = {}".format(roll2))
- if char1.db.skills['combat'] >= roll1 > roll2:
- # Char 1 hits
- dmg = roll_dmg() + char1.db.str
- char1.msg(wintext % (char2, dmg))
- char2.msg(failtext % (char1, dmg))
- char2.db.hp['Current'] -= dmg
- check_defeat(char2)
- update_prompt(char2)
- elif char2.db.skills['combat'] >= roll2 > roll1:
- # char 2 hits
- dmg = roll_dmg() + char2.db.str
- char1.msg(failtext % (char2, dmg))
- char1.db.hp['Current'] -= dmg
- check_defeat(char1)
- char2.msg(wintext % (char1, dmg))
- update_prompt(char1)
- else:
- # draw
- drawtext = "Neither of you can find an opening."
- char1.msg(drawtext)
- char2.msg(drawtext)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement