Fixed bug causing NPCs to never be attacked in combat.

This commit is contained in:
Martin Haye 2018-04-20 10:10:18 -07:00
parent 80bc9c277c
commit d29ac7ffea

View File

@ -21,6 +21,7 @@ predef _combat_zoneEncounter(s_encZone)#1
word[] funcTbl = @_combat_zoneEncounter
// Combat variables that don't need to be saved in game state
byte nPartyFighting
byte nPlayersFighting
byte nEnemiesFighting
byte isFleeing
@ -724,7 +725,7 @@ def enemyCombatTurn(pe)#1
byte roll, dam, needShow
// Choose a random target from amongst the fighting players
roll = rand16() % nPlayersFighting
roll = rand16() % nPartyFighting
pl = select(global=>p_players, @canFight, roll)
isPlural = FALSE
displayf3("\n%s %s %s ", pe=>s_name, pe=>s_attackText, pl=>s_name)
@ -772,7 +773,10 @@ def enemyCombatTurn(pe)#1
pl=>w_health = max(0, pl=>w_health - dam)
if pl=>w_health == 0
displayf1(" %s is killed!", pl=>s_name)
nPlayersFighting--
nPartyFighting--
if (!(pl->b_playerFlags & PLAYER_FLAG_NPC))
nPlayersFighting--
fin
fin
needShow = TRUE
fin
@ -808,6 +812,7 @@ end
def determineCombatOrder()#0
word p, p2
nPartyFighting = 0
nPlayersFighting = 0
nEnemiesFighting = 0
@ -818,8 +823,9 @@ def determineCombatOrder()#0
if canFight(p)
p->b_combatOrder = rand16() % (p->b_agility * 10)
combatInsert(p)
nPartyFighting++
if (!(p->b_playerFlags & PLAYER_FLAG_NPC)) // only count real players
nPlayersFighting = nPlayersFighting + 1
nPlayersFighting++
fin
fin
p = p=>p_nextObj