]> git.seodisparate.com - TurnBasedMinecraftMod/commitdiff
Work In Progress - Begin adding config
authorStephen Seo <seo.disparate@gmail.com>
Thu, 30 Aug 2018 07:15:20 +0000 (16:15 +0900)
committerStephen Seo <seo.disparate@gmail.com>
Thu, 30 Aug 2018 07:15:20 +0000 (16:15 +0900)
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.

src/main/java/com/seodisparate/TurnBasedMinecraft/TurnBasedMinecraftMod.java
src/main/java/com/seodisparate/TurnBasedMinecraft/common/Battle.java
src/main/java/com/seodisparate/TurnBasedMinecraft/common/BattleManager.java
src/main/java/com/seodisparate/TurnBasedMinecraft/common/networking/PacketBattleDecision.java
src/main/java/com/seodisparate/TurnBasedMinecraft/common/networking/PacketBattleEntered.java
src/main/java/com/seodisparate/TurnBasedMinecraft/common/networking/PacketBattleRequestInfo.java
src/main/resources/TBM_Config.xml [new file with mode: 0644]

index 4fc7b077a4a296f7331a5b74d9c374d4594766ae..0ae12db8f125ff2e24c6704fe1acd583bfb6f9ba 100644 (file)
@@ -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;
+    }
 }
index 80b025de94847563e286ec93cad9fa3cf440ecef..d41da577d60405b9565e2623cbddc4e38e7b72da 100644 (file)
@@ -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)
index 39fcbef667d62c9004b83d7bfd23defb299c01c8..40dcd12019cc1e98018dc1ef75c2d3d87389f497 100644 (file)
@@ -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;
     }
     
index 8a7f313a947baeda7a44b1815e0b2a3ad777ce18..a3f0bcfd320c8bd331d3e84cb7c85ead776a7075 100644 (file)
@@ -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;
index 7039f71bf6ecf182909378baad861b6464eba873..35ad906c78a90e73eb251195cc1f2bf225e9ae37 100644 (file)
@@ -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;
         }
     }
 }
index 04d674640f375113ed327478788295305ed5d472..812bf9e206a1551d4154b5a13af90b0c26399edc 100644 (file)
@@ -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;
diff --git a/src/main/resources/TBM_Config.xml b/src/main/resources/TBM_Config.xml
new file mode 100644 (file)
index 0000000..521b40b
--- /dev/null
@@ -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>
\ No newline at end of file