mobs use hate value to hot swap targets
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user