Do not start disabled sieges.
This commit is contained in:
@@ -83,6 +83,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -224,28 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -224,28 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -224,28 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -224,28 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -224,28 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -224,28 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -224,28 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -84,6 +84,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -225,28 +252,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -224,28 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -224,28 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -224,28 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -224,28 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -81,6 +81,34 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
private final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
private SiegeGuardManager _siegeGuardManager;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
_siegeGuardManager = new SiegeGuardManager(getCastle());
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -222,30 +250,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
private final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
private SiegeGuardManager _siegeGuardManager;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
_siegeGuardManager = new SiegeGuardManager(getCastle());
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -82,6 +82,34 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
private final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
private SiegeGuardManager _siegeGuardManager;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
_siegeGuardManager = new SiegeGuardManager(getCastle());
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -223,30 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
private final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
private SiegeGuardManager _siegeGuardManager;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
_siegeGuardManager = new SiegeGuardManager(getCastle());
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -82,6 +82,34 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
private final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
private SiegeGuardManager _siegeGuardManager;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
_siegeGuardManager = new SiegeGuardManager(getCastle());
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -223,30 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
private final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
private SiegeGuardManager _siegeGuardManager;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
_siegeGuardManager = new SiegeGuardManager(getCastle());
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -224,28 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -224,28 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -224,28 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -224,28 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -224,28 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -224,28 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -224,28 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -224,28 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -224,28 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -224,28 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -224,28 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -224,28 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -224,28 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -83,6 +83,33 @@ public class Siege implements Siegable
|
|||||||
|
|
||||||
private int _controlTowerCount;
|
private int _controlTowerCount;
|
||||||
|
|
||||||
|
// must support Concurrent Modifications
|
||||||
|
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
||||||
|
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
||||||
|
|
||||||
|
// Castle setting
|
||||||
|
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
||||||
|
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
||||||
|
final Castle _castle;
|
||||||
|
boolean _isInProgress = false;
|
||||||
|
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
||||||
|
protected boolean _isRegistrationOver = false;
|
||||||
|
protected Calendar _siegeEndDate;
|
||||||
|
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
||||||
|
protected int _firstOwnerClanId = -1;
|
||||||
|
|
||||||
|
public Siege(Castle castle)
|
||||||
|
{
|
||||||
|
_castle = castle;
|
||||||
|
|
||||||
|
final SiegeScheduleDate schedule = SiegeScheduleData.getInstance().getScheduleDateForCastleId(_castle.getResidenceId());
|
||||||
|
if ((schedule != null) && schedule.siegeEnabled())
|
||||||
|
{
|
||||||
|
startAutoTask();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class ScheduleEndSiegeTask implements Runnable
|
public class ScheduleEndSiegeTask implements Runnable
|
||||||
{
|
{
|
||||||
private final Castle _castleInst;
|
private final Castle _castleInst;
|
||||||
@@ -224,28 +251,6 @@ public class Siege implements Siegable
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// must support Concurrent Modifications
|
|
||||||
private final Collection<SiegeClan> _attackerClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderClans = ConcurrentHashMap.newKeySet();
|
|
||||||
private final Collection<SiegeClan> _defenderWaitingClans = ConcurrentHashMap.newKeySet();
|
|
||||||
|
|
||||||
// Castle setting
|
|
||||||
private final List<ControlTower> _controlTowers = new ArrayList<>();
|
|
||||||
private final List<FlameTower> _flameTowers = new ArrayList<>();
|
|
||||||
final Castle _castle;
|
|
||||||
boolean _isInProgress = false;
|
|
||||||
private boolean _isNormalSide = true; // true = Atk is Atk, false = Atk is Def
|
|
||||||
protected boolean _isRegistrationOver = false;
|
|
||||||
protected Calendar _siegeEndDate;
|
|
||||||
protected ScheduledFuture<?> _scheduledStartSiegeTask = null;
|
|
||||||
protected int _firstOwnerClanId = -1;
|
|
||||||
|
|
||||||
public Siege(Castle castle)
|
|
||||||
{
|
|
||||||
_castle = castle;
|
|
||||||
startAutoTask();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endSiege()
|
public void endSiege()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user