Work In Progress - Begin adding config
src/main/resources/TBM_Config.xml will be copied to this mod's config directory. If a config file already exists and the version number is the same, it won't be overridded. If the version number is less than the mod's internal config file, then the old one will be renamed and the new one will take its place. At least this is how it is planned.
This commit is contained in:
parent
957ad5ec38
commit
784cff7914
7 changed files with 172 additions and 7 deletions
|
@ -30,7 +30,7 @@ public class TurnBasedMinecraftMod
|
|||
public static final Duration BattleDecisionTime = Duration.ofSeconds(15);
|
||||
|
||||
private static Logger logger;
|
||||
public static BattleManager battleManager;
|
||||
private static BattleManager battleManager;
|
||||
private static int packetHandlerID = 0;
|
||||
public static Entity attackingEntity;
|
||||
|
||||
|
@ -103,4 +103,9 @@ public class TurnBasedMinecraftMod
|
|||
event.setCanceled(true);
|
||||
}
|
||||
}
|
||||
|
||||
public static BattleManager getBattleManager()
|
||||
{
|
||||
return battleManager;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,18 +6,23 @@ import java.util.ArrayList;
|
|||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Hashtable;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.seodisparate.TurnBasedMinecraft.TurnBasedMinecraftMod;
|
||||
import com.seodisparate.TurnBasedMinecraft.common.networking.PacketBattleInfo;
|
||||
import com.seodisparate.TurnBasedMinecraft.common.networking.PacketHandler;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
|
||||
public class Battle
|
||||
{
|
||||
private final int id;
|
||||
private Map<Integer, Combatant> sideA;
|
||||
private Map<Integer, Combatant> sideB;
|
||||
private Map<Integer, EntityPlayer> players;
|
||||
|
||||
private Instant lastUpdated;
|
||||
private State state;
|
||||
|
@ -72,6 +77,7 @@ public class Battle
|
|||
this.id = id;
|
||||
this.sideA = new Hashtable<Integer, Combatant>();
|
||||
this.sideB = new Hashtable<Integer, Combatant>();
|
||||
players = new HashMap<Integer, EntityPlayer>();
|
||||
playerCount = 0;
|
||||
if(sideA != null)
|
||||
{
|
||||
|
@ -81,6 +87,7 @@ public class Battle
|
|||
if(e instanceof EntityPlayer)
|
||||
{
|
||||
++playerCount;
|
||||
players.put(e.getEntityId(), (EntityPlayer)e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -92,6 +99,7 @@ public class Battle
|
|||
if(e instanceof EntityPlayer)
|
||||
{
|
||||
++playerCount;
|
||||
players.put(e.getEntityId(), (EntityPlayer)e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -123,6 +131,7 @@ public class Battle
|
|||
if(e instanceof EntityPlayer)
|
||||
{
|
||||
++playerCount;
|
||||
players.put(e.getEntityId(), (EntityPlayer)e);
|
||||
if(state == State.DECISION)
|
||||
{
|
||||
++undecidedCount;
|
||||
|
@ -136,6 +145,7 @@ public class Battle
|
|||
if(e instanceof EntityPlayer)
|
||||
{
|
||||
++playerCount;
|
||||
players.put(e.getEntityId(), (EntityPlayer)e);
|
||||
if(state == State.DECISION)
|
||||
{
|
||||
++undecidedCount;
|
||||
|
@ -147,6 +157,7 @@ public class Battle
|
|||
{
|
||||
sideA.clear();
|
||||
sideB.clear();
|
||||
players.clear();
|
||||
playerCount = 0;
|
||||
undecidedCount = 0;
|
||||
}
|
||||
|
@ -219,6 +230,19 @@ public class Battle
|
|||
return state;
|
||||
}
|
||||
|
||||
public void notifyPlayersBattleInfo()
|
||||
{
|
||||
if(TurnBasedMinecraftMod.getBattleManager() == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
PacketBattleInfo infoPacket = new PacketBattleInfo(getSideAIDs(), getSideBIDs());
|
||||
for(EntityPlayer p : players.values())
|
||||
{
|
||||
PacketHandler.INSTANCE.sendTo(infoPacket, (EntityPlayerMP)p);
|
||||
}
|
||||
}
|
||||
|
||||
public void update()
|
||||
{
|
||||
if(lastUpdated == null)
|
||||
|
|
|
@ -102,6 +102,8 @@ public class BattleManager
|
|||
{
|
||||
PacketHandler.INSTANCE.sendTo(new PacketBattleEntered(IDCounter), (EntityPlayerMP)notInBattle);
|
||||
}
|
||||
|
||||
battle.notifyPlayersBattleInfo();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -127,6 +129,7 @@ public class BattleManager
|
|||
PacketHandler.INSTANCE.sendTo(new PacketBattleEntered(IDCounter), (EntityPlayerMP)e);
|
||||
}
|
||||
}
|
||||
newBattle.notifyPlayersBattleInfo();
|
||||
return newBattle;
|
||||
}
|
||||
|
||||
|
|
|
@ -3,7 +3,6 @@ package com.seodisparate.TurnBasedMinecraft.common.networking;
|
|||
import com.seodisparate.TurnBasedMinecraft.TurnBasedMinecraftMod;
|
||||
import com.seodisparate.TurnBasedMinecraft.common.Battle;
|
||||
import com.seodisparate.TurnBasedMinecraft.common.Battle.Decision;
|
||||
import com.seodisparate.TurnBasedMinecraft.common.Combatant;
|
||||
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.entity.player.EntityPlayerMP;
|
||||
|
@ -43,7 +42,7 @@ public class PacketBattleDecision implements IMessage
|
|||
@Override
|
||||
public IMessage onMessage(PacketBattleDecision message, MessageContext ctx)
|
||||
{
|
||||
Battle b = TurnBasedMinecraftMod.battleManager.getBattleByID(message.battleID);
|
||||
Battle b = TurnBasedMinecraftMod.getBattleManager().getBattleByID(message.battleID);
|
||||
if(b != null && b.getState() == Battle.State.DECISION)
|
||||
{
|
||||
EntityPlayerMP player = ctx.getServerHandler().player;
|
||||
|
|
|
@ -31,13 +31,13 @@ public class PacketBattleEntered implements IMessage
|
|||
buf.writeInt(battleID);
|
||||
}
|
||||
|
||||
public static class HandlerBattleEntered implements IMessageHandler<PacketBattleEntered, PacketBattleRequestInfo>
|
||||
public static class HandlerBattleEntered implements IMessageHandler<PacketBattleEntered, IMessage>
|
||||
{
|
||||
@Override
|
||||
public PacketBattleRequestInfo onMessage(PacketBattleEntered message, MessageContext ctx)
|
||||
public IMessage onMessage(PacketBattleEntered message, MessageContext ctx)
|
||||
{
|
||||
TurnBasedMinecraftMod.currentBattle = new Battle(message.battleID, null, null);
|
||||
return new PacketBattleRequestInfo(message.battleID);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@ public class PacketBattleRequestInfo implements IMessage
|
|||
@Override
|
||||
public PacketBattleInfo onMessage(PacketBattleRequestInfo message, MessageContext ctx)
|
||||
{
|
||||
Battle b = TurnBasedMinecraftMod.battleManager.getBattleByID(message.battleID);
|
||||
Battle b = TurnBasedMinecraftMod.getBattleManager().getBattleByID(message.battleID);
|
||||
if(b == null)
|
||||
{
|
||||
return null;
|
||||
|
|
134
src/main/resources/TBM_Config.xml
Normal file
134
src/main/resources/TBM_Config.xml
Normal file
|
@ -0,0 +1,134 @@
|
|||
<TurnBasedMinecraftConfig>
|
||||
<Version>1</Version>
|
||||
<EntityStats>
|
||||
<net.minecraft.entity.monster.EntityBlaze>
|
||||
<AttackPower Probability="50">5</AttackPower>
|
||||
<AttackEffect Probability="75">fire</AttackEffect>
|
||||
<Evasion>5</Evasion>
|
||||
</net.minecraft.entity.monster.EntityBlaze>
|
||||
<net.minecraft.entity.monster.EntityCaveSpider>
|
||||
<AttackPower Probability="75">2</AttackPower>
|
||||
<AttackEffect Probability="90">poison</AttackEffect>
|
||||
<Evasion>35</Evasion>
|
||||
</net.minecraft.entity.monster.EntityCaveSpider>
|
||||
<net.minecraft.entity.monster.EntityCreeper>
|
||||
<IgnoreBattle>true</IgnoreBattle>
|
||||
<AttackPower Probability="17" Variance="7">15</AttackPower>
|
||||
<Evasion>5</Evasion>
|
||||
</net.minecraft.entity.monster.EntityCreeper>
|
||||
<net.minecraft.entity.monster.EntityElderGuardian>
|
||||
<AttackPower Probability="65">8</AttackPower>
|
||||
<DefenseDamage Probability="35">2</DefenseDamage>
|
||||
<Evasion>25</Evasion>
|
||||
</net.minecraft.entity.monster.EntityElderGuardian>
|
||||
<net.minecraft.entity.monster.EntityEnderman>
|
||||
<AttackPower Probability="80">7</AttackPower>
|
||||
<Evasion>40</Evasion>
|
||||
</net.minecraft.entity.monster.EntityEnderman>
|
||||
<net.minecraft.entity.monster.EntityEndermite>
|
||||
<AttackPower Probability="80">2</AttackPower>
|
||||
<Evasion>40</Evasion>
|
||||
</net.minecraft.entity.monster.EntityEndermite>
|
||||
<net.minecraft.entity.monster.EntityEvoker>
|
||||
<AttackPower Probability="60">6</AttackPower>
|
||||
<Evasion>35</Evasion>
|
||||
</net.minecraft.entity.monster.EntityEvoker>
|
||||
<net.minecraft.entity.monster.EntityGhast>
|
||||
<IgnoreBattle>true</IgnoreBattle>
|
||||
<AttackPower Probability="20">13</AttackPower>
|
||||
<Evasion>35</Evasion>
|
||||
</net.minecraft.entity.monster.EntityGhast>
|
||||
<net.minecraft.entity.monster.EntityGiantZombie>
|
||||
<AttackPower Probability="35">11</AttackPower>
|
||||
<Evasion>2</Evasion>
|
||||
</net.minecraft.entity.monster.EntityGiantZombie>
|
||||
<net.minecraft.entity.monster.EntityGuardian>
|
||||
<AttackPower Probability="55">6</AttackPower>
|
||||
<DefenseDamage Probability="30">2</DefenseDamage>
|
||||
<Evasion>25</Evasion>
|
||||
</net.minecraft.entity.monster.EntityGuardian>
|
||||
<net.minecraft.entity.monster.EntityHusk>
|
||||
<AttackPower Probability="70">3</AttackPower>
|
||||
<AttackEffect Probability="95">hunger</AttackEffect>
|
||||
<Evasion>5</Evasion>
|
||||
</net.minecraft.entity.monster.EntityHusk>
|
||||
<net.minecraft.entity.monster.EntityIronGolem>
|
||||
<AttackPower Probability="85" Variance="7">14</AttackPower>
|
||||
<Evasion>5</Evasion>
|
||||
</net.minecraft.entity.monster.EntityIronGolem>
|
||||
<net.minecraft.entity.monster.EntityMagmaCube>
|
||||
<AttackPower Probability="35">3</AttackPower>
|
||||
<Evasion>12</Evasion>
|
||||
</net.minecraft.entity.monster.EntityMagmaCube>
|
||||
<net.minecraft.entity.monster.EntityPigZombie>
|
||||
<AttackPower Probability="70">8</AttackPower>
|
||||
<Evasion>10</Evasion>
|
||||
</net.minecraft.entity.monster.EntityPigZombie>
|
||||
<net.minecraft.entity.monster.EntityPolarBear>
|
||||
<AttackPower Probability="67">6</AttackPower>
|
||||
<Evasion>5</Evasion>
|
||||
</net.minecraft.entity.monster.EntityPolarBear>
|
||||
<net.minecraft.entity.monster.EntityShulker>
|
||||
<AttackPower Probability="80">4</AttackPower>
|
||||
<Evasion>15</Evasion>
|
||||
</net.minecraft.entity.monster.EntityShulker>
|
||||
<net.minecraft.entity.monster.EntitySilverFish>
|
||||
<AttackPower Probability="85">1</AttackPower>
|
||||
<Evasion>37</Evasion>
|
||||
</net.minecraft.entity.monster.EntitySilverFish>
|
||||
<net.minecraft.entity.monster.EntitySkeleton>
|
||||
<AttackPower Probability="75" Variance="1">3</AttackPower>
|
||||
<Evasion>13</Evasion>
|
||||
</net.minecraft.entity.monster.EntitySkeleton>
|
||||
<net.minecraft.entity.monster.EntitySlime>
|
||||
<AttackPower Probability="35">2</AttackPower>
|
||||
<Evasion>10</Evasion>
|
||||
</net.minecraft.entity.monster.EntitySlime>
|
||||
<net.minecraft.entity.monster.EntitySnowman
|
||||
Passive="true">
|
||||
<AttackPower Probability="80">0</AttackPower>
|
||||
<Evasion>5</Evasion>
|
||||
</net.minecraft.entity.monster.EntitySnowman>
|
||||
<net.minecraft.entity.monster.EntitySpider>
|
||||
<AttackPower Probability="70">2</AttackPower>
|
||||
<Evasion>25</Evasion>
|
||||
<Conflicts>
|
||||
<net.minecraft.entity.monster.EntityCaveSpider></net.minecraft.entity.monster.EntityCaveSpider>
|
||||
</Conflicts>
|
||||
</net.minecraft.entity.monster.EntitySpider>
|
||||
<net.minecraft.entity.monster.EntityStray>
|
||||
<AttackPower Probability="75" Variance="1">3</AttackPower>
|
||||
<AttackEffect Probability="90">slowness</AttackEffect>
|
||||
<Evasion>13</Evasion>
|
||||
</net.minecraft.entity.monster.EntityStray>
|
||||
<net.minecraft.entity.monster.EntityVex>
|
||||
<AttackPower Probability="65">9</AttackPower>
|
||||
<Evasion>30</Evasion>
|
||||
</net.minecraft.entity.monster.EntityVex>
|
||||
<net.minecraft.entity.monster.EntityVindicator>
|
||||
<AttackPower Probability="70">13</AttackPower>
|
||||
<Evasion>10</Evasion>
|
||||
</net.minecraft.entity.monster.EntityVindicator>
|
||||
<net.minecraft.entity.monster.EntityWitch>
|
||||
<AttackPower Probability="75" Variance="1">5</AttackPower>
|
||||
<Evasion>8</Evasion>
|
||||
</net.minecraft.entity.monster.EntityWitch>
|
||||
<net.minecraft.entity.monster.EntityWitherSkeleton>
|
||||
<AttackPower Probability="70">8</AttackPower>
|
||||
<AttackEffect Probability="90">wither</AttackEffect>
|
||||
<Evasion>7</Evasion>
|
||||
</net.minecraft.entity.monster.EntityWitherSkeleton>
|
||||
<net.minecraft.entity.monster.EntityZombie>
|
||||
<AttackPower Probability="70">3</AttackPower>
|
||||
<Conflicts>
|
||||
<net.minecraft.entity.monster.EntityHusk></net.minecraft.entity.monster.EntityHusk>
|
||||
<net.minecraft.entity.monster.EntityZombieVillager></net.minecraft.entity.monster.EntityZombieVillager>
|
||||
</Conflicts>
|
||||
<Evasion>5</Evasion>
|
||||
</net.minecraft.entity.monster.EntityZombie>
|
||||
<net.minecraft.entity.monster.EntityZombieVillager>
|
||||
<AttackPower Probability="70">3</AttackPower>
|
||||
<Evasion>5</Evasion>
|
||||
</net.minecraft.entity.monster.EntityZombieVillager>
|
||||
</EntityStats>
|
||||
</TurnBasedMinecraftConfig>
|
Loading…
Reference in a new issue