Addition of Castle first mid victory methods.
Contributed by nasseka.
This commit is contained in:
		| @@ -1691,6 +1691,13 @@ public class Player extends Playable | ||||
| 			return false; | ||||
| 		} | ||||
| 		 | ||||
| 		// Check first castle mid victory. | ||||
| 		final Castle castle = CastleManager.getInstance().getCastleById(_siegeSide); | ||||
| 		if ((castle != null) && !castle.isFirstMidVictory()) | ||||
| 		{ | ||||
| 			return true; | ||||
| 		} | ||||
| 		 | ||||
| 		// If target isn't a player, is self, isn't on same siege or not on same state, not friends. | ||||
| 		final Player targetPlayer = target.getActingPlayer(); | ||||
| 		if ((targetPlayer == null) || (targetPlayer == this) || (targetPlayer.getSiegeSide() != _siegeSide) || (_siegeState != targetPlayer.getSiegeState())) | ||||
| @@ -1701,7 +1708,6 @@ public class Player extends Playable | ||||
| 		// Attackers are considered friends only if castle has no owner. | ||||
| 		if (_siegeState == 1) | ||||
| 		{ | ||||
| 			final Castle castle = CastleManager.getInstance().getCastleById(_siegeSide); | ||||
| 			if (castle == null) | ||||
| 			{ | ||||
| 				return false; | ||||
| @@ -8260,16 +8266,17 @@ public class Player extends Playable | ||||
| 				final Siege siege = SiegeManager.getInstance().getSiege(getX(), getY(), getZ()); | ||||
| 				if (siege != null) | ||||
| 				{ | ||||
| 					// Check if a siege is in progress and if attacker and the Player aren't in the Defender clan | ||||
| 					// Check if a siege is in progress and if attacker and the Player aren't in the Defender clan. | ||||
| 					if (siege.checkIsDefender(attackerClan) && siege.checkIsDefender(clan)) | ||||
| 					{ | ||||
| 						return false; | ||||
| 					} | ||||
| 					 | ||||
| 					// Check if a siege is in progress and if attacker and the Player aren't in the Attacker clan | ||||
| 					// Check if a siege is in progress and if attacker and the Player aren't in the Attacker clan. | ||||
| 					if (siege.checkIsAttacker(attackerClan) && siege.checkIsAttacker(clan)) | ||||
| 					{ | ||||
| 						return false; | ||||
| 						// If first mid victory is achieved, attackers can attack attackers. | ||||
| 						return CastleManager.getInstance().getCastleById(_siegeSide).isFirstMidVictory(); | ||||
| 					} | ||||
| 				} | ||||
| 				 | ||||
|   | ||||
| @@ -85,6 +85,7 @@ public class Castle extends AbstractResidence | ||||
| 	private final List<Artefact> _artefacts = new ArrayList<>(1); | ||||
| 	private final Map<Integer, CastleFunction> _function = new ConcurrentHashMap<>(); | ||||
| 	private int _ticketBuyCount = 0; | ||||
| 	private boolean _isFirstMidVictory = false; | ||||
| 	 | ||||
| 	/** Castle Functions */ | ||||
| 	public static final int FUNC_TELEPORT = 1; | ||||
| @@ -915,6 +916,16 @@ public class Castle extends AbstractResidence | ||||
| 		return _doors; | ||||
| 	} | ||||
| 	 | ||||
| 	public boolean isFirstMidVictory() | ||||
| 	{ | ||||
| 		return _isFirstMidVictory; | ||||
| 	} | ||||
| 	 | ||||
| 	public void setFirstMidVictory(boolean value) | ||||
| 	{ | ||||
| 		_isFirstMidVictory = value; | ||||
| 	} | ||||
| 	 | ||||
| 	@Override | ||||
| 	public int getOwnerId() | ||||
| 	{ | ||||
|   | ||||
| @@ -338,6 +338,7 @@ public class Siege implements Siegable | ||||
| 				SiegeGuardManager.getInstance().removeSiegeGuards(getCastle()); | ||||
| 			} | ||||
| 			_castle.spawnDoor(); // Respawn door to castle | ||||
| 			_castle.setFirstMidVictory(false); | ||||
| 			_castle.getZone().setActive(false); | ||||
| 			_castle.getZone().updateZoneStatusForCharactersInside(); | ||||
| 			_castle.getZone().setSiegeInstance(null); | ||||
| @@ -452,6 +453,7 @@ public class Siege implements Siegable | ||||
| 						addDefender(sc, SiegeClanType.DEFENDER); | ||||
| 					} | ||||
| 				} | ||||
| 				_castle.setFirstMidVictory(true); | ||||
| 				teleportPlayer(SiegeTeleportWhoType.Attacker, TeleportWhereType.SIEGEFLAG); // Teleport to the second closest town | ||||
| 				teleportPlayer(SiegeTeleportWhoType.Spectator, TeleportWhereType.TOWN); // Teleport to the second closest town | ||||
| 				removeDefenderFlags(); // Removes defenders' flags | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 MobiusDevelopment
					MobiusDevelopment