def attack()

in forge/blade/systems/combat.py [0:0]


def attack(entity, targ, skill):
   attackLevel  = skill.level
   defenseLevel = targ.skills.defense.level

   attackBonus, strengthBonus = 0, 0
   if entity.isPC:
      if skill.isMelee:
         equip = entity.equipment.melee
      elif skill.isRanged:
         equip = entity.equipment.ranged
         if equip.ammo is not None and equip.ammo <= 0:
            return
      attackBonus, strengthBonus  = equip.attack, equip.strength

   defenseBonus = 0
   if targ.isPC:
      defenseBonus = targ.equipment.armor.defense
 
   dmg = 0
   if isHit(attackLevel, attackBonus, defenseLevel, defenseBonus):
      dmg = damage(attackLevel, strengthBonus)

   if entity.isPC:
      entity.skills.addCombatExp(skill, dmg)
   if entity.isPC:
      targ.skills.addCombatExp(targ.skills.defense, dmg)
   targ.registerHit(entity, dmg)