forked from MagicBane/Server
Contract power handling now additive.
This commit is contained in:
@@ -364,15 +364,21 @@ public class MobAI {
|
|||||||
powerEntries = new ArrayList<>(PowersManager.getPowersForRune(mob.getMobBaseID()));
|
powerEntries = new ArrayList<>(PowersManager.getPowersForRune(mob.getMobBaseID()));
|
||||||
purgeEntries = new ArrayList<>();
|
purgeEntries = new ArrayList<>();
|
||||||
|
|
||||||
// Fallback to contract is nothing in mobbase. This is to support player guards.
|
// Additional powers may come from the contract ID. This is to support
|
||||||
|
// powers for player guards irrespective of the mobbase used.
|
||||||
|
|
||||||
if (powerEntries.isEmpty()) {
|
if (mob.isPlayerGuard()) {
|
||||||
|
|
||||||
|
ArrayList<RunePowerEntry> contractEntries = new ArrayList<>();
|
||||||
|
|
||||||
if (mob.contract != null)
|
if (mob.contract != null)
|
||||||
powerEntries = new ArrayList<>(PowersManager.getPowersForRune(mob.contractUUID));
|
contractEntries = new ArrayList<>(PowersManager.getPowersForRune(mob.contractUUID));
|
||||||
|
|
||||||
if (mob.agentType.equals(Enum.AIAgentType.GUARDMINION))
|
if (mob.agentType.equals(Enum.AIAgentType.GUARDMINION))
|
||||||
powerEntries = new ArrayList<>(PowersManager.getPowersForRune(mob.guardCaptain.contractUUID));
|
contractEntries = new ArrayList<>(PowersManager.getPowersForRune(mob.guardCaptain.contractUUID));
|
||||||
|
|
||||||
|
powerEntries.addAll(contractEntries);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// If player has this effect on them currently then remove
|
// If player has this effect on them currently then remove
|
||||||
@@ -459,15 +465,21 @@ public class MobAI {
|
|||||||
powerEntries = new ArrayList<>(PowersManager.getPowersForRune(mob.getMobBaseID()));
|
powerEntries = new ArrayList<>(PowersManager.getPowersForRune(mob.getMobBaseID()));
|
||||||
purgeEntries = new ArrayList<>();
|
purgeEntries = new ArrayList<>();
|
||||||
|
|
||||||
// Fallback to contract is nothing in mobbase. This is to support player guards.
|
// Additional powers may come from the contract ID. This is to support
|
||||||
|
// powers for player guards irrespective of the mobbase used.
|
||||||
|
|
||||||
if (powerEntries.isEmpty()) {
|
if (mob.isPlayerGuard()) {
|
||||||
|
|
||||||
|
ArrayList<RunePowerEntry> contractEntries = new ArrayList<>();
|
||||||
|
|
||||||
if (mob.contract != null)
|
if (mob.contract != null)
|
||||||
powerEntries = new ArrayList<>(PowersManager.getPowersForRune(mob.contractUUID));
|
contractEntries = new ArrayList<>(PowersManager.getPowersForRune(mob.contractUUID));
|
||||||
|
|
||||||
if (mob.agentType.equals(Enum.AIAgentType.GUARDMINION))
|
if (mob.agentType.equals(Enum.AIAgentType.GUARDMINION))
|
||||||
powerEntries = new ArrayList<>(PowersManager.getPowersForRune(mob.guardCaptain.contractUUID));
|
contractEntries = new ArrayList<>(PowersManager.getPowersForRune(mob.guardCaptain.contractUUID));
|
||||||
|
|
||||||
|
powerEntries.addAll(contractEntries);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// If player has this effect on them currently then remove
|
// If player has this effect on them currently then remove
|
||||||
|
|||||||
Reference in New Issue
Block a user