from app.functions.roll_dices import roll_dices from app.tables.mentattack import MentalAttackMatrix def roll_mental_attack(ams, dms, modifier): result = {} mam = MentalAttackMatrix() needed = mam.get_attack_score(ams, dms) result["needed"] = needed outcome = None if needed < 2: outcome = "Automatic Success!" elif needed > 20: outcome = "Absolutely No Chance!" else: raw_roll = roll_dices(1, 20, False).get('result') 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