bane mechanic complete - working

This commit is contained in:
2025-01-03 20:41:11 -06:00
parent 25c1f34c23
commit 1926deb7f9
2 changed files with 12 additions and 6 deletions
+6 -4
View File
@@ -762,13 +762,15 @@ public final class Bane {
float attackerMultiplier = ZergManager.getCurrentMultiplier(attackerSize,this.capSize); float attackerMultiplier = ZergManager.getCurrentMultiplier(attackerSize,this.capSize);
float defenderMultiplier = ZergManager.getCurrentMultiplier(defenderSize,this.capSize); float defenderMultiplier = ZergManager.getCurrentMultiplier(defenderSize,this.capSize);
for(int uuid : attackers){ for(int uuid : attackers){
if(city._playerMemory.contains(uuid)) //player is still physically here, needs updated multiplier PlayerCharacter player = PlayerCharacter.getPlayerCharacter(uuid);
PlayerCharacter.getPlayerCharacter(uuid).ZergMultiplier = attackerMultiplier; if(inSiegeRange.contains(player)) //player is still physically here, needs updated multiplier
player.ZergMultiplier = attackerMultiplier;
} }
for(int uuid : defenders){ for(int uuid : defenders){
if(city._playerMemory.contains(uuid)) //player is still physically here, needs updated multiplier PlayerCharacter player = PlayerCharacter.getPlayerCharacter(uuid);
PlayerCharacter.getPlayerCharacter(uuid).ZergMultiplier = defenderMultiplier; if(inSiegeRange.contains(player)) //player is still physically here, needs updated multiplier
player.ZergMultiplier = defenderMultiplier;
} }
} }
+6 -2
View File
@@ -1063,15 +1063,19 @@ public class City extends AbstractWorldObject {
private void onExitBane() { private void onExitBane() {
Iterator<Integer> iterator = this.baneAttendees.keySet().iterator(); Iterator<Integer> iterator = this.baneAttendees.keySet().iterator();
ArrayList<Integer> toRemove = new ArrayList<>();
while (iterator.hasNext()) { while (iterator.hasNext()) {
Integer uuid = iterator.next(); Integer uuid = iterator.next();
if (!_playerMemory.contains(uuid)) { if (!_playerMemory.contains(uuid)) {
long timeGone = System.currentTimeMillis() - this.baneAttendees.get(uuid).longValue(); long timeGone = System.currentTimeMillis() - this.baneAttendees.get(uuid).longValue();
if (timeGone > 180000) { // 3 minutes if (timeGone > 180000L) { // 3 minutes
iterator.remove(); toRemove.add(uuid);
} }
} }
} }
for(int uuid : toRemove){
this.baneAttendees.remove(uuid);
}
} }