From ea23738a3980630ed37e1108b2920231416b9ae6 Mon Sep 17 00:00:00 2001 From: Kearney <ckearney@miradortech.com> Date: Sun, 25 Jun 2017 08:38:25 -0700 Subject: [PATCH] fixing nasty effect removal bug --- pom.xml | 11 ----------- .../java/com/comandante/creeper/npc/Npc.java | 18 +++++++++++------- .../creeper/spells/LightningSpell.java | 4 ++-- 3 files changed, 13 insertions(+), 20 deletions(-) diff --git a/pom.xml b/pom.xml index aaf93d27..2774e521 100644 --- a/pom.xml +++ b/pom.xml @@ -6,17 +6,6 @@ <artifactId>creeper</artifactId> <version>0.1.0</version> - <distributionManagement> - <repository> - <id>releases</id> - <url>http://192.168.1.11:8081/nexus/content/repositories/releases</url> - </repository> - <snapshotRepository> - <id>snapshots</id> - <url>http://192.168.1.11:8081/nexus/content/repositories/snapshots</url> - </snapshotRepository> - </distributionManagement> - <scm> <url>https://github.com/chriskearney/github-maven-example</url> <connection>scm:git:git://github.com/chriskearney/creeper.git</connection> diff --git a/src/main/java/com/comandante/creeper/npc/Npc.java b/src/main/java/com/comandante/creeper/npc/Npc.java index 6d5cb0e3..b1d69c5f 100644 --- a/src/main/java/com/comandante/creeper/npc/Npc.java +++ b/src/main/java/com/comandante/creeper/npc/Npc.java @@ -32,7 +32,13 @@ import org.nocrala.tools.texttablefmt.ShownBorders; import org.nocrala.tools.texttablefmt.Table; import java.text.NumberFormat; -import java.util.*; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Optional; +import java.util.Random; +import java.util.Set; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.atomic.AtomicBoolean; @@ -52,12 +58,11 @@ public class Npc extends CreeperEntity { private final Set<String> validTriggers; private final Set<SpawnRule> spawnRules; private final ArrayBlockingQueue<NpcStatsChange> npcStatsChanges = new ArrayBlockingQueue<>(3000); - private final Interner<Npc> interner = Interners.newWeakInterner(); private final AtomicBoolean isAlive = new AtomicBoolean(true); private final Random random = new Random(); private long lastPhraseTimestamp; private Loot loot; - private List<Effect> effects = Lists.newCopyOnWriteArrayList(); + private List<Effect> effects = Lists.newArrayList(); private int maxEffects = 4; private Map<String, Long> playerDamageMap = Maps.newHashMap(); private Room currentRoom; @@ -73,6 +78,8 @@ public class Npc extends CreeperEntity { // Things that npcs say randomly when idle private final Set<CreeperMessage> idleMessages; + private final Interner<String> interner = Interners.newWeakInterner(); + protected Npc(GameManager gameManager, String name, @@ -108,7 +115,7 @@ public class Npc extends CreeperEntity { @Override public void run() { - synchronized (interner.intern(this)) { + synchronized (interner.intern(getEntityId())) { try { if (isAlive.get()) { if (effectsTickBucket == 5) { @@ -301,7 +308,6 @@ public class Npc extends CreeperEntity { this.currentRoom = currentRoom; } - private String getBattleReport(long xpEarned) { StringBuilder sb = new StringBuilder(); sb.append(Color.MAGENTA).append("Battle Report----------------------------").append(Color.RESET).append("\r\n"); @@ -337,7 +343,6 @@ public class Npc extends CreeperEntity { return sb.toString(); } - public String getColorName() { return colorName; } @@ -392,7 +397,6 @@ public class Npc extends CreeperEntity { } public void addEffect(Effect effect) { - Interner<String> interner = Interners.newWeakInterner(); synchronized (interner.intern(getEntityId())) { if (effects.size() >= maxEffects) { } else { diff --git a/src/main/java/com/comandante/creeper/spells/LightningSpell.java b/src/main/java/com/comandante/creeper/spells/LightningSpell.java index a69b0d81..a344899b 100644 --- a/src/main/java/com/comandante/creeper/spells/LightningSpell.java +++ b/src/main/java/com/comandante/creeper/spells/LightningSpell.java @@ -1,7 +1,7 @@ package com.comandante.creeper.spells; -import com.comandante.creeper.items.EffectBuilder; import com.comandante.creeper.core_game.GameManager; +import com.comandante.creeper.items.EffectBuilder; import com.comandante.creeper.npc.Npc; import com.comandante.creeper.player.CoolDown; import com.comandante.creeper.player.CoolDownType; @@ -62,7 +62,7 @@ public class LightningSpell implements SpellRunnable { if (Math.random() < 0.1) { long electrofiedPower = (long) ((stats.getLevel() * .3) + (5 * stats.getIntelligence())); return getElectrofried(electrofiedPower, 4); - } + } long burnEffectPower = (long) ((stats.getLevel() * .05) + (1 * stats.getIntelligence())); return getBurnEffect(burnEffectPower, 2); } -- GitLab