forked from MagicBane/Server
Rework of combat deference to captain.
This commit is contained in:
@@ -998,30 +998,22 @@ public class MobAI {
|
|||||||
public static void GuardMinionLogic(Mob mob) {
|
public static void GuardMinionLogic(Mob mob) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (!mob.guardCaptain.isAlive()) {
|
|
||||||
|
|
||||||
if (mob.getCombatTarget() == null) {
|
if (mob.getCombatTarget() == null)
|
||||||
CheckForPlayerGuardAggro(mob);
|
CheckForPlayerGuardAggro(mob);
|
||||||
} else {
|
|
||||||
|
|
||||||
AbstractWorldObject newTarget = ChangeTargetFromHateValue(mob);
|
AbstractWorldObject newTarget = ChangeTargetFromHateValue(mob);
|
||||||
|
|
||||||
if (newTarget != null) {
|
if (newTarget != null) {
|
||||||
|
|
||||||
if (newTarget.getObjectType().equals(Enum.GameObjectType.PlayerCharacter)) {
|
if (newTarget.getObjectType().equals(Enum.GameObjectType.PlayerCharacter)) {
|
||||||
if (GuardCanAggro(mob, (PlayerCharacter) newTarget))
|
if (GuardCanAggro(mob, (PlayerCharacter) newTarget))
|
||||||
mob.setCombatTarget(newTarget);
|
mob.setCombatTarget(newTarget);
|
||||||
} else
|
} else
|
||||||
mob.setCombatTarget(newTarget);
|
mob.setCombatTarget(newTarget);
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}else {
|
|
||||||
if (mob.guardCaptain.getCombatTarget() != null)
|
|
||||||
mob.setCombatTarget(mob.guardCaptain.getCombatTarget());
|
|
||||||
else if (mob.getCombatTarget() != null)
|
|
||||||
mob.setCombatTarget(null);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CheckMobMovement(mob);
|
CheckMobMovement(mob);
|
||||||
CheckForAttack(mob);
|
CheckForAttack(mob);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@@ -1140,6 +1132,15 @@ public class MobAI {
|
|||||||
if (!mob.isAlive())
|
if (!mob.isAlive())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
// Defer to captain if possible for current target
|
||||||
|
|
||||||
|
if (mob.agentType.equals(Enum.AIAgentType.GUARDMINION) &&
|
||||||
|
mob.combatTarget == null && mob.guardCaptain.isAlive()
|
||||||
|
&& mob.guardCaptain.combatTarget != null) {
|
||||||
|
mob.setCombatTarget(mob.guardCaptain.combatTarget);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
ConcurrentHashMap<Integer, Float> loadedPlayers = mob.playerAgroMap;
|
ConcurrentHashMap<Integer, Float> loadedPlayers = mob.playerAgroMap;
|
||||||
|
|
||||||
for (Entry playerEntry : loadedPlayers.entrySet()) {
|
for (Entry playerEntry : loadedPlayers.entrySet()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user