Line 134: |
Line 134: |
| local min_armor = enemy_armor * 0.7 | | local min_armor = enemy_armor * 0.7 |
| local max_armor = enemy_armor * 0.7 + math.max(enemy_armor - 1, 0) * 0.6 | | local max_armor = enemy_armor * 0.7 + math.max(enemy_armor - 1, 0) * 0.6 |
− | local min = math.floor((attack_power - max_armor) * ship.ammo) | + | local min = math.floor((attack_power - max_armor) * ship._ammo) |
− | local max = math.floor((attack_power - min_armor) * ship.ammo) | + | local max = math.floor((attack_power - min_armor) * ship._ammo) |
| return { min, max } | | return { min, max } |
| else | | else |
− | return math.floor(attack_power * ship.ammo) | + | return math.floor(attack_power * ship._ammo) |
| end | | end |
| end | | end |
Line 183: |
Line 183: |
| end | | end |
| | | |
− | function Combat.evasion_rate(ship) | + | function Combat.evasion_rate(ship, high_morale) |
− | if ship.morale and ship.morale > 52 then | + | local e = ship:evasion_leveled() |
− | return math.floor(100 * 2 * ship._evasion_max / (2 * ship._evasion_max + 40)) | + | if high_morale then |
| + | return math.floor(100 * 2 * e / (2 * e + 40)) |
| else | | else |
− | return math.floor(100 * ship._evasion_max / (ship._evasion_max + 40)) | + | return math.floor(100 * e / (e + 40)) |
| end | | end |
| end | | end |
Line 215: |
Line 216: |
| critical = ship.critical or 1, | | critical = ship.critical or 1, |
| ap = ship.ap or 1, | | ap = ship.ap or 1, |
− | ammo = ship.ammo or 1, | + | _ammo = ship._ammo or 1, |
| } | | } |
| | | |