from app.functions.roll_dices import roll_dices def get_attack_roll_outcome(result, modifier=0): if modifier is None: modifier = 0 outcome = 'Unknown' raw_roll = roll_dices(1, 20, False).get('result') needed = result['needed'] if modifier != 0: result["original-roll"] = raw_roll result["modifier"] = modifier rolled = raw_roll + modifier # negative modifiers will subtract themselves naturally result["adjusted-roll"] = rolled else: rolled = raw_roll result["original-roll"] = rolled if (rolled >= 20) and (needed <= 16): outcome = "Devastating Success!" elif needed <= rolled: outcome = "Attack Successful!" elif needed > rolled: outcome = "Attack Failed!" result['outcome'] = outcome return result