Fixes
Acutally fix duplicate ".. entered battle" message bug. Fix potential crash bug.
This commit is contained in:
parent
967fed3164
commit
00961768b3
2 changed files with 61 additions and 18 deletions
|
@ -1,6 +1,7 @@
|
||||||
package com.seodisparate.TurnBasedMinecraft.client;
|
package com.seodisparate.TurnBasedMinecraft.client;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.ConcurrentModificationException;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.concurrent.atomic.AtomicInteger;
|
import java.util.concurrent.atomic.AtomicInteger;
|
||||||
|
@ -165,32 +166,44 @@ public class BattleGui extends GuiScreen
|
||||||
case ATTACK_TARGET:
|
case ATTACK_TARGET:
|
||||||
info = "Who will you attack?";
|
info = "Who will you attack?";
|
||||||
int y = 30;
|
int y = 30;
|
||||||
for(Map.Entry<Integer, Combatant> e : TurnBasedMinecraftMod.proxy.getLocalBattle().getSideAEntrySet())
|
try
|
||||||
{
|
{
|
||||||
if(e.getValue().entity != null)
|
for(Map.Entry<Integer, Combatant> e : TurnBasedMinecraftMod.proxy.getLocalBattle().getSideAEntrySet())
|
||||||
{
|
{
|
||||||
buttonList.add(new EntitySelectionButton(ButtonAction.ATTACK_TARGET.getValue(), width/4 - 60, y, 120, 20, e.getValue().entity.getName(), e.getKey(), true));
|
if(e.getValue().entity != null)
|
||||||
|
{
|
||||||
|
buttonList.add(new EntitySelectionButton(ButtonAction.ATTACK_TARGET.getValue(), width/4 - 60, y, 120, 20, e.getValue().entity.getName(), e.getKey(), true));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
buttonList.add(new EntitySelectionButton(ButtonAction.ATTACK_TARGET.getValue(), width/4 - 60, y, 120, 20, "Unknown", e.getKey(), true));
|
||||||
|
}
|
||||||
|
y += 20;
|
||||||
}
|
}
|
||||||
else
|
} catch (ConcurrentModificationException e)
|
||||||
{
|
{
|
||||||
buttonList.add(new EntitySelectionButton(ButtonAction.ATTACK_TARGET.getValue(), width/4 - 60, y, 120, 20, "Unknown", e.getKey(), true));
|
// ignored
|
||||||
}
|
|
||||||
y += 20;
|
|
||||||
}
|
}
|
||||||
y = 30;
|
y = 30;
|
||||||
for(Map.Entry<Integer, Combatant> e : TurnBasedMinecraftMod.proxy.getLocalBattle().getSideBEntrySet())
|
try
|
||||||
{
|
{
|
||||||
if(e.getValue().entity != null)
|
for(Map.Entry<Integer, Combatant> e : TurnBasedMinecraftMod.proxy.getLocalBattle().getSideBEntrySet())
|
||||||
{
|
{
|
||||||
buttonList.add(new EntitySelectionButton(ButtonAction.ATTACK_TARGET.getValue(), width*3/4 - 60, y, 120, 20, e.getValue().entity.getName(), e.getKey(), false));
|
if(e.getValue().entity != null)
|
||||||
|
{
|
||||||
|
buttonList.add(new EntitySelectionButton(ButtonAction.ATTACK_TARGET.getValue(), width*3/4 - 60, y, 120, 20, e.getValue().entity.getName(), e.getKey(), false));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
buttonList.add(new EntitySelectionButton(ButtonAction.ATTACK_TARGET.getValue(), width*3/4 - 60, y, 120, 20, "Unknown", e.getKey(), false));
|
||||||
|
}
|
||||||
|
y += 20;
|
||||||
}
|
}
|
||||||
else
|
} catch (ConcurrentModificationException e)
|
||||||
{
|
{
|
||||||
buttonList.add(new EntitySelectionButton(ButtonAction.ATTACK_TARGET.getValue(), width*3/4 - 60, y, 120, 20, "Unknown", e.getKey(), false));
|
// ignored
|
||||||
}
|
|
||||||
y += 20;
|
|
||||||
}
|
}
|
||||||
buttonList.add(new GuiButton(ButtonAction.CANCEL.getValue(), width/2 - 40, height - 120, 80, 20, "Cancel"));
|
buttonList.add(new GuiButton(ButtonAction.CANCEL.getValue(), width/2 - 30, height - 120, 60, 20, "Cancel"));
|
||||||
break;
|
break;
|
||||||
case ITEM_ACTION:
|
case ITEM_ACTION:
|
||||||
info = "What will you do with an item?";
|
info = "What will you do with an item?";
|
||||||
|
|
|
@ -256,11 +256,41 @@ public class Battle
|
||||||
|
|
||||||
public boolean hasCombatant(int entityID)
|
public boolean hasCombatant(int entityID)
|
||||||
{
|
{
|
||||||
|
synchronized(sideAEntryQueue)
|
||||||
|
{
|
||||||
|
for(Combatant c : sideAEntryQueue)
|
||||||
|
{
|
||||||
|
if(c.entity.getEntityId() == entityID)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
synchronized(sideBEntryQueue)
|
||||||
|
{
|
||||||
|
for(Combatant c : sideBEntryQueue)
|
||||||
|
{
|
||||||
|
if(c.entity.getEntityId() == entityID)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return sideA.containsKey(entityID) || sideB.containsKey(entityID);
|
return sideA.containsKey(entityID) || sideB.containsKey(entityID);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasCombatantInSideA(int entityID)
|
public boolean hasCombatantInSideA(int entityID)
|
||||||
{
|
{
|
||||||
|
synchronized(sideAEntryQueue)
|
||||||
|
{
|
||||||
|
for(Combatant c : sideAEntryQueue)
|
||||||
|
{
|
||||||
|
if(c.entity.getEntityId() == entityID)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return sideA.containsKey(entityID);
|
return sideA.containsKey(entityID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -775,7 +805,7 @@ public class Battle
|
||||||
{
|
{
|
||||||
turnOrderQueue.add(c);
|
turnOrderQueue.add(c);
|
||||||
}
|
}
|
||||||
update(0);
|
return update(0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue