Avoid casts and some siege guard warnings.
Contributed by Sahar.
This commit is contained in:
@@ -16,7 +16,6 @@
|
||||
*/
|
||||
package ai.others;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
@@ -91,7 +90,8 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
35134, 35135, 35136, 35176, 35177, 35178, 35218, 35219, 35220, 35261, 35262, 35263, 35264, 35265, 35308, 35309, 35310, 35352, 35353, 35354, 35497, 35498, 35499, 35500, 35501, 35544, 35545, 35546
|
||||
};
|
||||
//@formatter:on
|
||||
private static final Object[] RESIDENCE_GUARD_MAP = new Object[122];
|
||||
@SuppressWarnings("unchecked")
|
||||
private static final List<Npc>[] RESIDENCE_GUARD_MAP = new CopyOnWriteArrayList[122];
|
||||
private static final boolean[] RESIDENCE_WORKING = new boolean[122];
|
||||
|
||||
public SiegeGuards()
|
||||
@@ -109,8 +109,6 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
addKillId(MERCENARIES);
|
||||
addKillId(STATIONARY_MERCENARIES);
|
||||
|
||||
Arrays.fill(RESIDENCE_WORKING, false);
|
||||
|
||||
// Start task for unknown residences.
|
||||
RESIDENCE_GUARD_MAP[0] = new CopyOnWriteArrayList<>();
|
||||
ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000);
|
||||
@@ -153,8 +151,7 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
RESIDENCE_WORKING[_residenceId] = true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
final List<Npc> guards = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[_residenceId];
|
||||
final List<Npc> guards = RESIDENCE_GUARD_MAP[_residenceId];
|
||||
for (Npc guard : guards)
|
||||
{
|
||||
if (guard == null)
|
||||
@@ -217,24 +214,22 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final int residenceId = npc.getScriptValue();
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.remove(npc);
|
||||
}
|
||||
else
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).remove(npc);
|
||||
RESIDENCE_GUARD_MAP[0].remove(npc);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onSpawn(Npc npc)
|
||||
{
|
||||
npc.setRandomWalking(false);
|
||||
@@ -247,14 +242,14 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
final Fort fortress = npc.getFort();
|
||||
final int residenceId = fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0);
|
||||
npc.setScriptValue(residenceId);
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.add(npc);
|
||||
}
|
||||
else // Residence id not found.
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).add(npc);
|
||||
RESIDENCE_GUARD_MAP[0].add(npc);
|
||||
}
|
||||
|
||||
return super.onSpawn(npc);
|
||||
|
@@ -16,7 +16,6 @@
|
||||
*/
|
||||
package ai.others;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
@@ -91,7 +90,8 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
35134, 35135, 35136, 35176, 35177, 35178, 35218, 35219, 35220, 35261, 35262, 35263, 35264, 35265, 35308, 35309, 35310, 35352, 35353, 35354, 35497, 35498, 35499, 35500, 35501, 35544, 35545, 35546
|
||||
};
|
||||
//@formatter:on
|
||||
private static final Object[] RESIDENCE_GUARD_MAP = new Object[122];
|
||||
@SuppressWarnings("unchecked")
|
||||
private static final List<Npc>[] RESIDENCE_GUARD_MAP = new CopyOnWriteArrayList[122];
|
||||
private static final boolean[] RESIDENCE_WORKING = new boolean[122];
|
||||
|
||||
public SiegeGuards()
|
||||
@@ -109,8 +109,6 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
addKillId(MERCENARIES);
|
||||
addKillId(STATIONARY_MERCENARIES);
|
||||
|
||||
Arrays.fill(RESIDENCE_WORKING, false);
|
||||
|
||||
// Start task for unknown residences.
|
||||
RESIDENCE_GUARD_MAP[0] = new CopyOnWriteArrayList<>();
|
||||
ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000);
|
||||
@@ -153,8 +151,7 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
RESIDENCE_WORKING[_residenceId] = true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
final List<Npc> guards = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[_residenceId];
|
||||
final List<Npc> guards = RESIDENCE_GUARD_MAP[_residenceId];
|
||||
for (Npc guard : guards)
|
||||
{
|
||||
if (guard == null)
|
||||
@@ -217,24 +214,22 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final int residenceId = npc.getScriptValue();
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.remove(npc);
|
||||
}
|
||||
else
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).remove(npc);
|
||||
RESIDENCE_GUARD_MAP[0].remove(npc);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onSpawn(Npc npc)
|
||||
{
|
||||
npc.setRandomWalking(false);
|
||||
@@ -247,14 +242,14 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
final Fort fortress = npc.getFort();
|
||||
final int residenceId = fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0);
|
||||
npc.setScriptValue(residenceId);
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.add(npc);
|
||||
}
|
||||
else // Residence id not found.
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).add(npc);
|
||||
RESIDENCE_GUARD_MAP[0].add(npc);
|
||||
}
|
||||
|
||||
return super.onSpawn(npc);
|
||||
|
@@ -16,7 +16,6 @@
|
||||
*/
|
||||
package ai.others;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
@@ -91,7 +90,8 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
35134, 35135, 35136, 35176, 35177, 35178, 35218, 35219, 35220, 35261, 35262, 35263, 35264, 35265, 35308, 35309, 35310, 35352, 35353, 35354, 35497, 35498, 35499, 35500, 35501, 35544, 35545, 35546
|
||||
};
|
||||
//@formatter:on
|
||||
private static final Object[] RESIDENCE_GUARD_MAP = new Object[122];
|
||||
@SuppressWarnings("unchecked")
|
||||
private static final List<Npc>[] RESIDENCE_GUARD_MAP = new CopyOnWriteArrayList[122];
|
||||
private static final boolean[] RESIDENCE_WORKING = new boolean[122];
|
||||
|
||||
public SiegeGuards()
|
||||
@@ -109,8 +109,6 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
addKillId(MERCENARIES);
|
||||
addKillId(STATIONARY_MERCENARIES);
|
||||
|
||||
Arrays.fill(RESIDENCE_WORKING, false);
|
||||
|
||||
// Start task for unknown residences.
|
||||
RESIDENCE_GUARD_MAP[0] = new CopyOnWriteArrayList<>();
|
||||
ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000);
|
||||
@@ -153,8 +151,7 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
RESIDENCE_WORKING[_residenceId] = true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
final List<Npc> guards = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[_residenceId];
|
||||
final List<Npc> guards = RESIDENCE_GUARD_MAP[_residenceId];
|
||||
for (Npc guard : guards)
|
||||
{
|
||||
if (guard == null)
|
||||
@@ -217,24 +214,22 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final int residenceId = npc.getScriptValue();
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.remove(npc);
|
||||
}
|
||||
else
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).remove(npc);
|
||||
RESIDENCE_GUARD_MAP[0].remove(npc);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onSpawn(Npc npc)
|
||||
{
|
||||
npc.setRandomWalking(false);
|
||||
@@ -247,14 +242,14 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
final Fort fortress = npc.getFort();
|
||||
final int residenceId = fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0);
|
||||
npc.setScriptValue(residenceId);
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.add(npc);
|
||||
}
|
||||
else // Residence id not found.
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).add(npc);
|
||||
RESIDENCE_GUARD_MAP[0].add(npc);
|
||||
}
|
||||
|
||||
return super.onSpawn(npc);
|
||||
|
@@ -16,7 +16,6 @@
|
||||
*/
|
||||
package ai.others;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
@@ -91,7 +90,8 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
35134, 35135, 35136, 35176, 35177, 35178, 35218, 35219, 35220, 35261, 35262, 35263, 35264, 35265, 35308, 35309, 35310, 35352, 35353, 35354, 35497, 35498, 35499, 35500, 35501, 35544, 35545, 35546
|
||||
};
|
||||
//@formatter:on
|
||||
private static final Object[] RESIDENCE_GUARD_MAP = new Object[122];
|
||||
@SuppressWarnings("unchecked")
|
||||
private static final List<Npc>[] RESIDENCE_GUARD_MAP = new CopyOnWriteArrayList[122];
|
||||
private static final boolean[] RESIDENCE_WORKING = new boolean[122];
|
||||
|
||||
public SiegeGuards()
|
||||
@@ -109,8 +109,6 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
addKillId(MERCENARIES);
|
||||
addKillId(STATIONARY_MERCENARIES);
|
||||
|
||||
Arrays.fill(RESIDENCE_WORKING, false);
|
||||
|
||||
// Start task for unknown residences.
|
||||
RESIDENCE_GUARD_MAP[0] = new CopyOnWriteArrayList<>();
|
||||
ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000);
|
||||
@@ -153,8 +151,7 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
RESIDENCE_WORKING[_residenceId] = true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
final List<Npc> guards = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[_residenceId];
|
||||
final List<Npc> guards = RESIDENCE_GUARD_MAP[_residenceId];
|
||||
for (Npc guard : guards)
|
||||
{
|
||||
if (guard == null)
|
||||
@@ -217,24 +214,22 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final int residenceId = npc.getScriptValue();
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.remove(npc);
|
||||
}
|
||||
else
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).remove(npc);
|
||||
RESIDENCE_GUARD_MAP[0].remove(npc);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onSpawn(Npc npc)
|
||||
{
|
||||
npc.setRandomWalking(false);
|
||||
@@ -247,14 +242,14 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
final Fort fortress = npc.getFort();
|
||||
final int residenceId = fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0);
|
||||
npc.setScriptValue(residenceId);
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.add(npc);
|
||||
}
|
||||
else // Residence id not found.
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).add(npc);
|
||||
RESIDENCE_GUARD_MAP[0].add(npc);
|
||||
}
|
||||
|
||||
return super.onSpawn(npc);
|
||||
|
@@ -16,7 +16,6 @@
|
||||
*/
|
||||
package ai.others;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
@@ -91,7 +90,8 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
35134, 35135, 35136, 35176, 35177, 35178, 35218, 35219, 35220, 35261, 35262, 35263, 35264, 35265, 35308, 35309, 35310, 35352, 35353, 35354, 35497, 35498, 35499, 35500, 35501, 35544, 35545, 35546
|
||||
};
|
||||
//@formatter:on
|
||||
private static final Object[] RESIDENCE_GUARD_MAP = new Object[122];
|
||||
@SuppressWarnings("unchecked")
|
||||
private static final List<Npc>[] RESIDENCE_GUARD_MAP = new CopyOnWriteArrayList[122];
|
||||
private static final boolean[] RESIDENCE_WORKING = new boolean[122];
|
||||
|
||||
public SiegeGuards()
|
||||
@@ -109,8 +109,6 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
addKillId(MERCENARIES);
|
||||
addKillId(STATIONARY_MERCENARIES);
|
||||
|
||||
Arrays.fill(RESIDENCE_WORKING, false);
|
||||
|
||||
// Start task for unknown residences.
|
||||
RESIDENCE_GUARD_MAP[0] = new CopyOnWriteArrayList<>();
|
||||
ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000);
|
||||
@@ -153,8 +151,7 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
RESIDENCE_WORKING[_residenceId] = true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
final List<Npc> guards = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[_residenceId];
|
||||
final List<Npc> guards = RESIDENCE_GUARD_MAP[_residenceId];
|
||||
for (Npc guard : guards)
|
||||
{
|
||||
if (guard == null)
|
||||
@@ -217,24 +214,22 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final int residenceId = npc.getScriptValue();
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.remove(npc);
|
||||
}
|
||||
else
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).remove(npc);
|
||||
RESIDENCE_GUARD_MAP[0].remove(npc);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onSpawn(Npc npc)
|
||||
{
|
||||
npc.setRandomWalking(false);
|
||||
@@ -247,14 +242,14 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
final Fort fortress = npc.getFort();
|
||||
final int residenceId = fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0);
|
||||
npc.setScriptValue(residenceId);
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.add(npc);
|
||||
}
|
||||
else // Residence id not found.
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).add(npc);
|
||||
RESIDENCE_GUARD_MAP[0].add(npc);
|
||||
}
|
||||
|
||||
return super.onSpawn(npc);
|
||||
|
@@ -16,7 +16,6 @@
|
||||
*/
|
||||
package ai.others;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
@@ -91,7 +90,8 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
35134, 35135, 35136, 35176, 35177, 35178, 35218, 35219, 35220, 35261, 35262, 35263, 35264, 35265, 35308, 35309, 35310, 35352, 35353, 35354, 35497, 35498, 35499, 35500, 35501, 35544, 35545, 35546
|
||||
};
|
||||
//@formatter:on
|
||||
private static final Object[] RESIDENCE_GUARD_MAP = new Object[122];
|
||||
@SuppressWarnings("unchecked")
|
||||
private static final List<Npc>[] RESIDENCE_GUARD_MAP = new CopyOnWriteArrayList[122];
|
||||
private static final boolean[] RESIDENCE_WORKING = new boolean[122];
|
||||
|
||||
public SiegeGuards()
|
||||
@@ -109,8 +109,6 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
addKillId(MERCENARIES);
|
||||
addKillId(STATIONARY_MERCENARIES);
|
||||
|
||||
Arrays.fill(RESIDENCE_WORKING, false);
|
||||
|
||||
// Start task for unknown residences.
|
||||
RESIDENCE_GUARD_MAP[0] = new CopyOnWriteArrayList<>();
|
||||
ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000);
|
||||
@@ -153,8 +151,7 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
RESIDENCE_WORKING[_residenceId] = true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
final List<Npc> guards = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[_residenceId];
|
||||
final List<Npc> guards = RESIDENCE_GUARD_MAP[_residenceId];
|
||||
for (Npc guard : guards)
|
||||
{
|
||||
if (guard == null)
|
||||
@@ -217,24 +214,22 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final int residenceId = npc.getScriptValue();
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.remove(npc);
|
||||
}
|
||||
else
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).remove(npc);
|
||||
RESIDENCE_GUARD_MAP[0].remove(npc);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onSpawn(Npc npc)
|
||||
{
|
||||
npc.setRandomWalking(false);
|
||||
@@ -247,14 +242,14 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
final Fort fortress = npc.getFort();
|
||||
final int residenceId = fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0);
|
||||
npc.setScriptValue(residenceId);
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.add(npc);
|
||||
}
|
||||
else // Residence id not found.
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).add(npc);
|
||||
RESIDENCE_GUARD_MAP[0].add(npc);
|
||||
}
|
||||
|
||||
return super.onSpawn(npc);
|
||||
|
@@ -16,7 +16,6 @@
|
||||
*/
|
||||
package ai.others;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
@@ -91,7 +90,8 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
35134, 35135, 35136, 35176, 35177, 35178, 35218, 35219, 35220, 35261, 35262, 35263, 35264, 35265, 35308, 35309, 35310, 35352, 35353, 35354, 35497, 35498, 35499, 35500, 35501, 35544, 35545, 35546
|
||||
};
|
||||
//@formatter:on
|
||||
private static final Object[] RESIDENCE_GUARD_MAP = new Object[122];
|
||||
@SuppressWarnings("unchecked")
|
||||
private static final List<Npc>[] RESIDENCE_GUARD_MAP = new CopyOnWriteArrayList[122];
|
||||
private static final boolean[] RESIDENCE_WORKING = new boolean[122];
|
||||
|
||||
public SiegeGuards()
|
||||
@@ -109,8 +109,6 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
addKillId(MERCENARIES);
|
||||
addKillId(STATIONARY_MERCENARIES);
|
||||
|
||||
Arrays.fill(RESIDENCE_WORKING, false);
|
||||
|
||||
// Start task for unknown residences.
|
||||
RESIDENCE_GUARD_MAP[0] = new CopyOnWriteArrayList<>();
|
||||
ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000);
|
||||
@@ -153,8 +151,7 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
RESIDENCE_WORKING[_residenceId] = true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
final List<Npc> guards = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[_residenceId];
|
||||
final List<Npc> guards = RESIDENCE_GUARD_MAP[_residenceId];
|
||||
for (Npc guard : guards)
|
||||
{
|
||||
if (guard == null)
|
||||
@@ -217,24 +214,22 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final int residenceId = npc.getScriptValue();
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.remove(npc);
|
||||
}
|
||||
else
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).remove(npc);
|
||||
RESIDENCE_GUARD_MAP[0].remove(npc);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onSpawn(Npc npc)
|
||||
{
|
||||
npc.setRandomWalking(false);
|
||||
@@ -247,14 +242,14 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
final Fort fortress = npc.getFort();
|
||||
final int residenceId = fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0);
|
||||
npc.setScriptValue(residenceId);
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.add(npc);
|
||||
}
|
||||
else // Residence id not found.
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).add(npc);
|
||||
RESIDENCE_GUARD_MAP[0].add(npc);
|
||||
}
|
||||
|
||||
return super.onSpawn(npc);
|
||||
|
@@ -16,7 +16,6 @@
|
||||
*/
|
||||
package ai.others;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
@@ -91,7 +90,8 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
35134, 35135, 35136, 35176, 35177, 35178, 35218, 35219, 35220, 35261, 35262, 35263, 35264, 35265, 35308, 35309, 35310, 35352, 35353, 35354, 35497, 35498, 35499, 35500, 35501, 35544, 35545, 35546
|
||||
};
|
||||
//@formatter:on
|
||||
private static final Object[] RESIDENCE_GUARD_MAP = new Object[122];
|
||||
@SuppressWarnings("unchecked")
|
||||
private static final List<Npc>[] RESIDENCE_GUARD_MAP = new CopyOnWriteArrayList[122];
|
||||
private static final boolean[] RESIDENCE_WORKING = new boolean[122];
|
||||
|
||||
public SiegeGuards()
|
||||
@@ -109,8 +109,6 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
addKillId(MERCENARIES);
|
||||
addKillId(STATIONARY_MERCENARIES);
|
||||
|
||||
Arrays.fill(RESIDENCE_WORKING, false);
|
||||
|
||||
// Start task for unknown residences.
|
||||
RESIDENCE_GUARD_MAP[0] = new CopyOnWriteArrayList<>();
|
||||
ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000);
|
||||
@@ -153,8 +151,7 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
RESIDENCE_WORKING[_residenceId] = true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
final List<Npc> guards = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[_residenceId];
|
||||
final List<Npc> guards = RESIDENCE_GUARD_MAP[_residenceId];
|
||||
for (Npc guard : guards)
|
||||
{
|
||||
if (guard == null)
|
||||
@@ -217,24 +214,22 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final int residenceId = npc.getScriptValue();
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.remove(npc);
|
||||
}
|
||||
else
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).remove(npc);
|
||||
RESIDENCE_GUARD_MAP[0].remove(npc);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onSpawn(Npc npc)
|
||||
{
|
||||
npc.setRandomWalking(false);
|
||||
@@ -247,14 +242,14 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
final Fort fortress = npc.getFort();
|
||||
final int residenceId = fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0);
|
||||
npc.setScriptValue(residenceId);
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.add(npc);
|
||||
}
|
||||
else // Residence id not found.
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).add(npc);
|
||||
RESIDENCE_GUARD_MAP[0].add(npc);
|
||||
}
|
||||
|
||||
return super.onSpawn(npc);
|
||||
|
@@ -16,7 +16,6 @@
|
||||
*/
|
||||
package ai.others;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
@@ -91,7 +90,8 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
35134, 35135, 35136, 35176, 35177, 35178, 35218, 35219, 35220, 35261, 35262, 35263, 35264, 35265, 35308, 35309, 35310, 35352, 35353, 35354, 35497, 35498, 35499, 35500, 35501, 35544, 35545, 35546
|
||||
};
|
||||
//@formatter:on
|
||||
private static final Object[] RESIDENCE_GUARD_MAP = new Object[122];
|
||||
@SuppressWarnings("unchecked")
|
||||
private static final List<Npc>[] RESIDENCE_GUARD_MAP = new CopyOnWriteArrayList[122];
|
||||
private static final boolean[] RESIDENCE_WORKING = new boolean[122];
|
||||
|
||||
public SiegeGuards()
|
||||
@@ -109,8 +109,6 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
addKillId(MERCENARIES);
|
||||
addKillId(STATIONARY_MERCENARIES);
|
||||
|
||||
Arrays.fill(RESIDENCE_WORKING, false);
|
||||
|
||||
// Start task for unknown residences.
|
||||
RESIDENCE_GUARD_MAP[0] = new CopyOnWriteArrayList<>();
|
||||
ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000);
|
||||
@@ -153,8 +151,7 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
RESIDENCE_WORKING[_residenceId] = true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
final List<Npc> guards = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[_residenceId];
|
||||
final List<Npc> guards = RESIDENCE_GUARD_MAP[_residenceId];
|
||||
for (Npc guard : guards)
|
||||
{
|
||||
if (guard == null)
|
||||
@@ -217,24 +214,22 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final int residenceId = npc.getScriptValue();
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.remove(npc);
|
||||
}
|
||||
else
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).remove(npc);
|
||||
RESIDENCE_GUARD_MAP[0].remove(npc);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onSpawn(Npc npc)
|
||||
{
|
||||
npc.setRandomWalking(false);
|
||||
@@ -247,14 +242,14 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
final Fort fortress = npc.getFort();
|
||||
final int residenceId = fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0);
|
||||
npc.setScriptValue(residenceId);
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.add(npc);
|
||||
}
|
||||
else // Residence id not found.
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).add(npc);
|
||||
RESIDENCE_GUARD_MAP[0].add(npc);
|
||||
}
|
||||
|
||||
return super.onSpawn(npc);
|
||||
|
@@ -16,7 +16,6 @@
|
||||
*/
|
||||
package ai.others;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
@@ -91,7 +90,8 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
35134, 35135, 35136, 35176, 35177, 35178, 35218, 35219, 35220, 35261, 35262, 35263, 35264, 35265, 35308, 35309, 35310, 35352, 35353, 35354, 35497, 35498, 35499, 35500, 35501, 35544, 35545, 35546
|
||||
};
|
||||
//@formatter:on
|
||||
private static final Object[] RESIDENCE_GUARD_MAP = new Object[122];
|
||||
@SuppressWarnings("unchecked")
|
||||
private static final List<Npc>[] RESIDENCE_GUARD_MAP = new CopyOnWriteArrayList[122];
|
||||
private static final boolean[] RESIDENCE_WORKING = new boolean[122];
|
||||
|
||||
public SiegeGuards()
|
||||
@@ -109,8 +109,6 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
addKillId(MERCENARIES);
|
||||
addKillId(STATIONARY_MERCENARIES);
|
||||
|
||||
Arrays.fill(RESIDENCE_WORKING, false);
|
||||
|
||||
// Start task for unknown residences.
|
||||
RESIDENCE_GUARD_MAP[0] = new CopyOnWriteArrayList<>();
|
||||
ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000);
|
||||
@@ -153,8 +151,7 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
RESIDENCE_WORKING[_residenceId] = true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
final List<Npc> guards = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[_residenceId];
|
||||
final List<Npc> guards = RESIDENCE_GUARD_MAP[_residenceId];
|
||||
for (Npc guard : guards)
|
||||
{
|
||||
if (guard == null)
|
||||
@@ -217,24 +214,22 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final int residenceId = npc.getScriptValue();
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.remove(npc);
|
||||
}
|
||||
else
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).remove(npc);
|
||||
RESIDENCE_GUARD_MAP[0].remove(npc);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onSpawn(Npc npc)
|
||||
{
|
||||
npc.setRandomWalking(false);
|
||||
@@ -247,14 +242,14 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
final Fort fortress = npc.getFort();
|
||||
final int residenceId = fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0);
|
||||
npc.setScriptValue(residenceId);
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.add(npc);
|
||||
}
|
||||
else // Residence id not found.
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).add(npc);
|
||||
RESIDENCE_GUARD_MAP[0].add(npc);
|
||||
}
|
||||
|
||||
return super.onSpawn(npc);
|
||||
|
@@ -16,7 +16,6 @@
|
||||
*/
|
||||
package ai.others;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
@@ -66,7 +65,8 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
35134, 35135, 35136, 35176, 35177, 35178, 35218, 35219, 35220, 35261, 35262, 35263, 35264, 35265, 35308, 35309, 35310, 35352, 35353, 35354, 35497, 35498, 35499, 35500, 35501, 35544, 35545, 35546
|
||||
};
|
||||
//@formatter:on
|
||||
private static final Object[] RESIDENCE_GUARD_MAP = new Object[122];
|
||||
@SuppressWarnings("unchecked")
|
||||
private static final List<Npc>[] RESIDENCE_GUARD_MAP = new CopyOnWriteArrayList[122];
|
||||
private static final boolean[] RESIDENCE_WORKING = new boolean[122];
|
||||
|
||||
public SiegeGuards()
|
||||
@@ -81,8 +81,6 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
addKillId(MERCENARIES);
|
||||
addKillId(STATIONARY_MERCENARIES);
|
||||
|
||||
Arrays.fill(RESIDENCE_WORKING, false);
|
||||
|
||||
// Start task for unknown residences.
|
||||
RESIDENCE_GUARD_MAP[0] = new CopyOnWriteArrayList<>();
|
||||
ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000);
|
||||
@@ -117,8 +115,7 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
RESIDENCE_WORKING[_residenceId] = true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
final List<Npc> guards = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[_residenceId];
|
||||
final List<Npc> guards = RESIDENCE_GUARD_MAP[_residenceId];
|
||||
for (Npc guard : guards)
|
||||
{
|
||||
if (guard == null)
|
||||
@@ -181,24 +178,22 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final int residenceId = npc.getScriptValue();
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.remove(npc);
|
||||
}
|
||||
else
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).remove(npc);
|
||||
RESIDENCE_GUARD_MAP[0].remove(npc);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onSpawn(Npc npc)
|
||||
{
|
||||
npc.setRandomWalking(false);
|
||||
@@ -211,14 +206,14 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
final Fort fortress = npc.getFort();
|
||||
final int residenceId = fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0);
|
||||
npc.setScriptValue(residenceId);
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.add(npc);
|
||||
}
|
||||
else // Residence id not found.
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).add(npc);
|
||||
RESIDENCE_GUARD_MAP[0].add(npc);
|
||||
}
|
||||
|
||||
return super.onSpawn(npc);
|
||||
|
@@ -16,7 +16,6 @@
|
||||
*/
|
||||
package ai.others;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
@@ -66,7 +65,8 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
35134, 35135, 35136, 35176, 35177, 35178, 35218, 35219, 35220, 35261, 35262, 35263, 35264, 35265, 35308, 35309, 35310, 35352, 35353, 35354, 35497, 35498, 35499, 35500, 35501, 35544, 35545, 35546
|
||||
};
|
||||
//@formatter:on
|
||||
private static final Object[] RESIDENCE_GUARD_MAP = new Object[122];
|
||||
@SuppressWarnings("unchecked")
|
||||
private static final List<Npc>[] RESIDENCE_GUARD_MAP = new CopyOnWriteArrayList[122];
|
||||
private static final boolean[] RESIDENCE_WORKING = new boolean[122];
|
||||
|
||||
public SiegeGuards()
|
||||
@@ -81,8 +81,6 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
addKillId(MERCENARIES);
|
||||
addKillId(STATIONARY_MERCENARIES);
|
||||
|
||||
Arrays.fill(RESIDENCE_WORKING, false);
|
||||
|
||||
// Start task for unknown residences.
|
||||
RESIDENCE_GUARD_MAP[0] = new CopyOnWriteArrayList<>();
|
||||
ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000);
|
||||
@@ -117,8 +115,7 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
RESIDENCE_WORKING[_residenceId] = true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
final List<Npc> guards = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[_residenceId];
|
||||
final List<Npc> guards = RESIDENCE_GUARD_MAP[_residenceId];
|
||||
for (Npc guard : guards)
|
||||
{
|
||||
if (guard == null)
|
||||
@@ -181,24 +178,22 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final int residenceId = npc.getScriptValue();
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.remove(npc);
|
||||
}
|
||||
else
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).remove(npc);
|
||||
RESIDENCE_GUARD_MAP[0].remove(npc);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onSpawn(Npc npc)
|
||||
{
|
||||
npc.setRandomWalking(false);
|
||||
@@ -211,14 +206,14 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
final Fort fortress = npc.getFort();
|
||||
final int residenceId = fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0);
|
||||
npc.setScriptValue(residenceId);
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.add(npc);
|
||||
}
|
||||
else // Residence id not found.
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).add(npc);
|
||||
RESIDENCE_GUARD_MAP[0].add(npc);
|
||||
}
|
||||
|
||||
return super.onSpawn(npc);
|
||||
|
@@ -16,7 +16,6 @@
|
||||
*/
|
||||
package ai.others;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
@@ -66,7 +65,8 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
35134, 35135, 35136, 35176, 35177, 35178, 35218, 35219, 35220, 35261, 35262, 35263, 35264, 35265, 35308, 35309, 35310, 35352, 35353, 35354, 35497, 35498, 35499, 35500, 35501, 35544, 35545, 35546
|
||||
};
|
||||
//@formatter:on
|
||||
private static final Object[] RESIDENCE_GUARD_MAP = new Object[122];
|
||||
@SuppressWarnings("unchecked")
|
||||
private static final List<Npc>[] RESIDENCE_GUARD_MAP = new CopyOnWriteArrayList[122];
|
||||
private static final boolean[] RESIDENCE_WORKING = new boolean[122];
|
||||
|
||||
public SiegeGuards()
|
||||
@@ -81,8 +81,6 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
addKillId(MERCENARIES);
|
||||
addKillId(STATIONARY_MERCENARIES);
|
||||
|
||||
Arrays.fill(RESIDENCE_WORKING, false);
|
||||
|
||||
// Start task for unknown residences.
|
||||
RESIDENCE_GUARD_MAP[0] = new CopyOnWriteArrayList<>();
|
||||
ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000);
|
||||
@@ -117,8 +115,7 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
RESIDENCE_WORKING[_residenceId] = true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
final List<Npc> guards = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[_residenceId];
|
||||
final List<Npc> guards = RESIDENCE_GUARD_MAP[_residenceId];
|
||||
for (Npc guard : guards)
|
||||
{
|
||||
if (guard == null)
|
||||
@@ -181,24 +178,22 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final int residenceId = npc.getScriptValue();
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.remove(npc);
|
||||
}
|
||||
else
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).remove(npc);
|
||||
RESIDENCE_GUARD_MAP[0].remove(npc);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onSpawn(Npc npc)
|
||||
{
|
||||
npc.setRandomWalking(false);
|
||||
@@ -211,14 +206,14 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
final Fort fortress = npc.getFort();
|
||||
final int residenceId = fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0);
|
||||
npc.setScriptValue(residenceId);
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.add(npc);
|
||||
}
|
||||
else // Residence id not found.
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).add(npc);
|
||||
RESIDENCE_GUARD_MAP[0].add(npc);
|
||||
}
|
||||
|
||||
return super.onSpawn(npc);
|
||||
|
@@ -16,7 +16,6 @@
|
||||
*/
|
||||
package ai.others;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
@@ -66,7 +65,8 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
35134, 35135, 35136, 35176, 35177, 35178, 35218, 35219, 35220, 35261, 35262, 35263, 35264, 35265, 35308, 35309, 35310, 35352, 35353, 35354, 35497, 35498, 35499, 35500, 35501, 35544, 35545, 35546
|
||||
};
|
||||
//@formatter:on
|
||||
private static final Object[] RESIDENCE_GUARD_MAP = new Object[122];
|
||||
@SuppressWarnings("unchecked")
|
||||
private static final List<Npc>[] RESIDENCE_GUARD_MAP = new CopyOnWriteArrayList[122];
|
||||
private static final boolean[] RESIDENCE_WORKING = new boolean[122];
|
||||
|
||||
public SiegeGuards()
|
||||
@@ -81,8 +81,6 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
addKillId(MERCENARIES);
|
||||
addKillId(STATIONARY_MERCENARIES);
|
||||
|
||||
Arrays.fill(RESIDENCE_WORKING, false);
|
||||
|
||||
// Start task for unknown residences.
|
||||
RESIDENCE_GUARD_MAP[0] = new CopyOnWriteArrayList<>();
|
||||
ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000);
|
||||
@@ -117,8 +115,7 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
RESIDENCE_WORKING[_residenceId] = true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
final List<Npc> guards = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[_residenceId];
|
||||
final List<Npc> guards = RESIDENCE_GUARD_MAP[_residenceId];
|
||||
for (Npc guard : guards)
|
||||
{
|
||||
if (guard == null)
|
||||
@@ -181,24 +178,22 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final int residenceId = npc.getScriptValue();
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.remove(npc);
|
||||
}
|
||||
else
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).remove(npc);
|
||||
RESIDENCE_GUARD_MAP[0].remove(npc);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onSpawn(Npc npc)
|
||||
{
|
||||
npc.setRandomWalking(false);
|
||||
@@ -211,14 +206,14 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
final Fort fortress = npc.getFort();
|
||||
final int residenceId = fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0);
|
||||
npc.setScriptValue(residenceId);
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.add(npc);
|
||||
}
|
||||
else // Residence id not found.
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).add(npc);
|
||||
RESIDENCE_GUARD_MAP[0].add(npc);
|
||||
}
|
||||
|
||||
return super.onSpawn(npc);
|
||||
|
@@ -16,7 +16,6 @@
|
||||
*/
|
||||
package ai.others;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
@@ -66,7 +65,8 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
35134, 35135, 35136, 35176, 35177, 35178, 35218, 35219, 35220, 35261, 35262, 35263, 35264, 35265, 35308, 35309, 35310, 35352, 35353, 35354, 35497, 35498, 35499, 35500, 35501, 35544, 35545, 35546
|
||||
};
|
||||
//@formatter:on
|
||||
private static final Object[] RESIDENCE_GUARD_MAP = new Object[122];
|
||||
@SuppressWarnings("unchecked")
|
||||
private static final List<Npc>[] RESIDENCE_GUARD_MAP = new CopyOnWriteArrayList[122];
|
||||
private static final boolean[] RESIDENCE_WORKING = new boolean[122];
|
||||
|
||||
public SiegeGuards()
|
||||
@@ -81,8 +81,6 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
addKillId(MERCENARIES);
|
||||
addKillId(STATIONARY_MERCENARIES);
|
||||
|
||||
Arrays.fill(RESIDENCE_WORKING, false);
|
||||
|
||||
// Start task for unknown residences.
|
||||
RESIDENCE_GUARD_MAP[0] = new CopyOnWriteArrayList<>();
|
||||
ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000);
|
||||
@@ -117,8 +115,7 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
RESIDENCE_WORKING[_residenceId] = true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
final List<Npc> guards = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[_residenceId];
|
||||
final List<Npc> guards = RESIDENCE_GUARD_MAP[_residenceId];
|
||||
for (Npc guard : guards)
|
||||
{
|
||||
if (guard == null)
|
||||
@@ -181,24 +178,22 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final int residenceId = npc.getScriptValue();
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.remove(npc);
|
||||
}
|
||||
else
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).remove(npc);
|
||||
RESIDENCE_GUARD_MAP[0].remove(npc);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onSpawn(Npc npc)
|
||||
{
|
||||
npc.setRandomWalking(false);
|
||||
@@ -211,14 +206,14 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
final Fort fortress = npc.getFort();
|
||||
final int residenceId = fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0);
|
||||
npc.setScriptValue(residenceId);
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.add(npc);
|
||||
}
|
||||
else // Residence id not found.
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).add(npc);
|
||||
RESIDENCE_GUARD_MAP[0].add(npc);
|
||||
}
|
||||
|
||||
return super.onSpawn(npc);
|
||||
|
@@ -16,7 +16,6 @@
|
||||
*/
|
||||
package ai.others;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
@@ -66,7 +65,8 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
35134, 35135, 35136, 35176, 35177, 35178, 35218, 35219, 35220, 35261, 35262, 35263, 35264, 35265, 35308, 35309, 35310, 35352, 35353, 35354, 35497, 35498, 35499, 35500, 35501, 35544, 35545, 35546
|
||||
};
|
||||
//@formatter:on
|
||||
private static final Object[] RESIDENCE_GUARD_MAP = new Object[122];
|
||||
@SuppressWarnings("unchecked")
|
||||
private static final List<Npc>[] RESIDENCE_GUARD_MAP = new CopyOnWriteArrayList[122];
|
||||
private static final boolean[] RESIDENCE_WORKING = new boolean[122];
|
||||
|
||||
public SiegeGuards()
|
||||
@@ -81,8 +81,6 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
addKillId(MERCENARIES);
|
||||
addKillId(STATIONARY_MERCENARIES);
|
||||
|
||||
Arrays.fill(RESIDENCE_WORKING, false);
|
||||
|
||||
// Start task for unknown residences.
|
||||
RESIDENCE_GUARD_MAP[0] = new CopyOnWriteArrayList<>();
|
||||
ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000);
|
||||
@@ -117,8 +115,7 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
RESIDENCE_WORKING[_residenceId] = true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
final List<Npc> guards = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[_residenceId];
|
||||
final List<Npc> guards = RESIDENCE_GUARD_MAP[_residenceId];
|
||||
for (Npc guard : guards)
|
||||
{
|
||||
if (guard == null)
|
||||
@@ -181,24 +178,22 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final int residenceId = npc.getScriptValue();
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.remove(npc);
|
||||
}
|
||||
else
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).remove(npc);
|
||||
RESIDENCE_GUARD_MAP[0].remove(npc);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onSpawn(Npc npc)
|
||||
{
|
||||
npc.setRandomWalking(false);
|
||||
@@ -211,14 +206,14 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
final Fort fortress = npc.getFort();
|
||||
final int residenceId = fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0);
|
||||
npc.setScriptValue(residenceId);
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.add(npc);
|
||||
}
|
||||
else // Residence id not found.
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).add(npc);
|
||||
RESIDENCE_GUARD_MAP[0].add(npc);
|
||||
}
|
||||
|
||||
return super.onSpawn(npc);
|
||||
|
@@ -16,7 +16,6 @@
|
||||
*/
|
||||
package ai.others;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
|
||||
@@ -66,7 +65,8 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
35134, 35135, 35136, 35176, 35177, 35178, 35218, 35219, 35220, 35261, 35262, 35263, 35264, 35265, 35308, 35309, 35310, 35352, 35353, 35354, 35497, 35498, 35499, 35500, 35501, 35544, 35545, 35546
|
||||
};
|
||||
//@formatter:on
|
||||
private static final Object[] RESIDENCE_GUARD_MAP = new Object[122];
|
||||
@SuppressWarnings("unchecked")
|
||||
private static final List<Npc>[] RESIDENCE_GUARD_MAP = new CopyOnWriteArrayList[122];
|
||||
private static final boolean[] RESIDENCE_WORKING = new boolean[122];
|
||||
|
||||
public SiegeGuards()
|
||||
@@ -81,8 +81,6 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
addKillId(MERCENARIES);
|
||||
addKillId(STATIONARY_MERCENARIES);
|
||||
|
||||
Arrays.fill(RESIDENCE_WORKING, false);
|
||||
|
||||
// Start task for unknown residences.
|
||||
RESIDENCE_GUARD_MAP[0] = new CopyOnWriteArrayList<>();
|
||||
ThreadPool.scheduleAtFixedRate(new AggroCheckTask(0), 0, 3000);
|
||||
@@ -117,8 +115,7 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
RESIDENCE_WORKING[_residenceId] = true;
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
final List<Npc> guards = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[_residenceId];
|
||||
final List<Npc> guards = RESIDENCE_GUARD_MAP[_residenceId];
|
||||
for (Npc guard : guards)
|
||||
{
|
||||
if (guard == null)
|
||||
@@ -181,24 +178,22 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onKill(Npc npc, PlayerInstance killer, boolean isSummon)
|
||||
{
|
||||
final int residenceId = npc.getScriptValue();
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.remove(npc);
|
||||
}
|
||||
else
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).remove(npc);
|
||||
RESIDENCE_GUARD_MAP[0].remove(npc);
|
||||
}
|
||||
return super.onKill(npc, killer, isSummon);
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings("unchecked")
|
||||
public String onSpawn(Npc npc)
|
||||
{
|
||||
npc.setRandomWalking(false);
|
||||
@@ -211,14 +206,14 @@ public class SiegeGuards extends AbstractNpcAI
|
||||
final Fort fortress = npc.getFort();
|
||||
final int residenceId = fortress != null ? fortress.getResidenceId() : (castle != null ? castle.getResidenceId() : 0);
|
||||
npc.setScriptValue(residenceId);
|
||||
final List<Npc> guardList = (CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[residenceId];
|
||||
final List<Npc> guardList = RESIDENCE_GUARD_MAP[residenceId];
|
||||
if (guardList != null)
|
||||
{
|
||||
guardList.add(npc);
|
||||
}
|
||||
else // Residence id not found.
|
||||
{
|
||||
((CopyOnWriteArrayList<Npc>) RESIDENCE_GUARD_MAP[0]).add(npc);
|
||||
RESIDENCE_GUARD_MAP[0].add(npc);
|
||||
}
|
||||
|
||||
return super.onSpawn(npc);
|
||||
|
Reference in New Issue
Block a user