mobs use hate value to hot swap targets

This commit is contained in:
2023-05-07 12:15:38 -05:00
parent 508fac6168
commit d6a35a577b
+6
View File
@@ -715,9 +715,15 @@ public class MobileFSM {
} }
public static AbstractWorldObject ChangeTargetFromHateValue(Mob mob){ public static AbstractWorldObject ChangeTargetFromHateValue(Mob mob){
float CurrentHateValue = 0; float CurrentHateValue = 0;
if(mob.getCombatTarget() != null && mob.getCombatTarget().getObjectType().equals(Enum.GameObjectType.PlayerCharacter)){
CurrentHateValue = ((PlayerCharacter)mob.getCombatTarget()).getHateValue();
}
AbstractWorldObject mostHatedTarget = null; AbstractWorldObject mostHatedTarget = null;
for (Entry playerEntry : mob.playerAgroMap.entrySet()) { for (Entry playerEntry : mob.playerAgroMap.entrySet()) {
PlayerCharacter potentialTarget = PlayerCharacter.getFromCache((int)playerEntry.getKey()); PlayerCharacter potentialTarget = PlayerCharacter.getFromCache((int)playerEntry.getKey());
if(potentialTarget.equals(mob.getCombatTarget())){
continue;
}
if(potentialTarget != null && potentialTarget.getHateValue() > CurrentHateValue){ if(potentialTarget != null && potentialTarget.getHateValue() > CurrentHateValue){
CurrentHateValue = potentialTarget.getHateValue(); CurrentHateValue = potentialTarget.getHateValue();
mostHatedTarget = potentialTarget; mostHatedTarget = potentialTarget;