예제 #1
0
파일: Combat.py 프로젝트: ssteen3/pydnd
    def reqAttackType(attack, attackType):

        if attackType == 'Weapon':
            val = manager.fromWepTable(attack)
            value = val['Range']
        elif attackType == 'Spell':
            value = manager.fromSpellTable(attack)

        return value
예제 #2
0
파일: Combat.py 프로젝트: ssteen3/pydnd
    def attackRoll(attacker, weapon, targetAC):

        attackClass = attacker['Class']
        attackLevel = attacker['Level']
        attackBonus = manager.CharacterClass.classLookup(attackClass,
                                             attackLevel,'Base Attack Bonus')
        newWep = manager.fromWepTable(weapon)
        critMin, critMax = newWep['CritMin'], newWep['CritMax']
        critMul = newWep['CritMult']
        wepDamage = newWep['Damage']
        damage = diceRoll(wepDamage)
        
        if critMin == critMax:
            attack = diceRoll.attackRoll([20],targetAC,attackBonus)
        else:
            critRange = range(critMin,critMax)
            attack = diceRoll.attackRoll(critRange,targetAC,attackBonus)

        if attack == 'Critical':
            return damage.standardRoll()*critMul
            
        elif attack == 'Hit':
            return damage.standardRoll()

        else:
            return 0
예제 #3
0
파일: Combat.py 프로젝트: ssteen3/pydnd
    def castSpell(spell, target='Self'):

        spell = manager.fromSpellTable(spell)
예제 #4
0
파일: Combat.py 프로젝트: ssteen3/pydnd
 def makeWeaponAttack(weaponkey, attacker, target):
     
     weapon = manager.fromWepTable(weaponkey)