From 32dbe4b396a8b861281262963eddce028b7cae57 Mon Sep 17 00:00:00 2001 From: BattleJenkins Date: Fri, 7 Apr 2017 11:56:26 -0700 Subject: [PATCH] Added kwargs to resolve_attack Lets you pass values for attack and defense rolls, making it easier to test and extend. --- evennia/contrib/turnbattle.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/evennia/contrib/turnbattle.py b/evennia/contrib/turnbattle.py index 78e443c045..452b5824b1 100644 --- a/evennia/contrib/turnbattle.py +++ b/evennia/contrib/turnbattle.py @@ -161,7 +161,7 @@ def apply_damage(defender, damage): if defender.db.hp <= 0: defender.db.hp = 0 -def resolve_attack(attacker, defender): +def resolve_attack(attacker, defender, attack_value=None, defense_value=None): """ Resolves an attack and outputs the result. @@ -175,9 +175,11 @@ def resolve_attack(attacker, defender): so that they are easier to expand upon. """ # Get an attack roll from the attacker. - attack_value = get_attack(attacker, defender) + if not attack_value: + attack_value = get_attack(attacker, defender) # Get a defense value from the defender. - defense_value = get_defense(attacker, defender) + if not defense_value: + defense_value = get_defense(attacker, defender) # If the attack value is lower than the defense value, miss. Otherwise, hit. if attack_value < defense_value: attacker.location.msg_contents("%s's attack misses %s!" % (attacker, defender))