Add command "/tbm-edit"
Can now add/edit entity entries in config. Now possible to add entries for unknown mobs in-game.
This commit is contained in:
parent
05b3dc90b0
commit
9e15f845c5
13 changed files with 1245 additions and 33 deletions
|
@ -4,6 +4,9 @@ Fix bug where player can start battle with self.
|
||||||
|
|
||||||
Change config to use ".toml" instead of ".xml".
|
Change config to use ".toml" instead of ".xml".
|
||||||
|
|
||||||
|
Added command "/tbm-edit" that allows OPs to edit entity entries for TBM.
|
||||||
|
Can be used to add mobs from other mods easily.
|
||||||
|
|
||||||
Change how battle info text is displayed.
|
Change how battle info text is displayed.
|
||||||
|
|
||||||
# Version 1.5
|
# Version 1.5
|
||||||
|
|
|
@ -36,7 +36,7 @@ public class BattleGui extends GuiScreen
|
||||||
|
|
||||||
private int value;
|
private int value;
|
||||||
|
|
||||||
private MenuState(int value)
|
MenuState(int value)
|
||||||
{
|
{
|
||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
|
@ -78,7 +78,7 @@ public class BattleGui extends GuiScreen
|
||||||
|
|
||||||
private int value;
|
private int value;
|
||||||
|
|
||||||
private ButtonAction(int value)
|
ButtonAction(int value)
|
||||||
{
|
{
|
||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,11 +88,7 @@ public class BattleMusic
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
String ext = name.substring(extIndex + 1).toLowerCase();
|
String ext = name.substring(extIndex + 1).toLowerCase();
|
||||||
if(ext.equals("mid") || ext.equals("wav"))
|
return ext.equals("mid") || ext.equals("wav");
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
for(File f : battleFiles)
|
for(File f : battleFiles)
|
||||||
|
@ -110,11 +106,7 @@ public class BattleMusic
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
String ext = name.substring(extIndex + 1).toLowerCase();
|
String ext = name.substring(extIndex + 1).toLowerCase();
|
||||||
if(ext.equals("mid") || ext.equals("wav"))
|
return ext.equals("mid") || ext.equals("wav");
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
for(File f : sillyFiles)
|
for(File f : sillyFiles)
|
||||||
|
|
|
@ -168,6 +168,12 @@ public class ClientProxy extends CommonProxy
|
||||||
Minecraft.getMinecraft().player.sendMessage(prefix);
|
Minecraft.getMinecraft().player.sendMessage(prefix);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void displayTextComponent(ITextComponent text)
|
||||||
|
{
|
||||||
|
Minecraft.getMinecraft().player.sendMessage(text);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Entity getEntityByID(int id)
|
public Entity getEntityByID(int id)
|
||||||
{
|
{
|
||||||
|
|
|
@ -4,6 +4,8 @@ import java.util.Iterator;
|
||||||
|
|
||||||
import com.seodisparate.TurnBasedMinecraft.common.networking.PacketBattleMessage;
|
import com.seodisparate.TurnBasedMinecraft.common.networking.PacketBattleMessage;
|
||||||
|
|
||||||
|
import com.seodisparate.TurnBasedMinecraft.common.networking.PacketEditingMessage;
|
||||||
|
import net.minecraft.entity.player.EntityPlayerMP;
|
||||||
import net.minecraftforge.event.entity.living.LivingAttackEvent;
|
import net.minecraftforge.event.entity.living.LivingAttackEvent;
|
||||||
import net.minecraftforge.event.entity.living.LivingSetAttackTargetEvent;
|
import net.minecraftforge.event.entity.living.LivingSetAttackTargetEvent;
|
||||||
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
|
||||||
|
@ -59,8 +61,32 @@ public class AttackEventHandler
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Config config = TurnBasedMinecraftMod.proxy.getConfig();
|
CommonProxy proxy = TurnBasedMinecraftMod.proxy;
|
||||||
BattleManager battleManager = TurnBasedMinecraftMod.proxy.getBattleManager();
|
Config config = proxy.getConfig();
|
||||||
|
BattleManager battleManager = proxy.getBattleManager();
|
||||||
|
// handle edit entity, pick entity via attack
|
||||||
|
{
|
||||||
|
EditingInfo editingInfo = null;
|
||||||
|
if(event.getSource().getTrueSource() != null && event.getEntity() != null)
|
||||||
|
{
|
||||||
|
editingInfo = proxy.getEditingInfo(event.getSource().getTrueSource().getEntityId());
|
||||||
|
if(editingInfo != null && editingInfo.isPendingEntitySelection)
|
||||||
|
{
|
||||||
|
editingInfo.isPendingEntitySelection = false;
|
||||||
|
event.setCanceled(true);
|
||||||
|
editingInfo.entityInfo = config.getMatchingEntityInfo(event.getEntity());
|
||||||
|
if(editingInfo.entityInfo == null)
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo = new EntityInfo();
|
||||||
|
editingInfo.entityInfo.classType = event.getEntity().getClass();
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)editingInfo.editor);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)editingInfo.editor);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
if((event.getEntity() != null && battleManager.isRecentlyLeftBattle(event.getEntity().getEntityId()))
|
if((event.getEntity() != null && battleManager.isRecentlyLeftBattle(event.getEntity().getEntityId()))
|
||||||
|| (event.getSource().getTrueSource() != null && battleManager.isRecentlyLeftBattle(event.getSource().getTrueSource().getEntityId())))
|
|| (event.getSource().getTrueSource() != null && battleManager.isRecentlyLeftBattle(event.getSource().getTrueSource().getEntityId())))
|
||||||
{
|
{
|
||||||
|
|
|
@ -20,7 +20,6 @@ import net.minecraft.entity.EntityLiving;
|
||||||
import net.minecraft.entity.EntityLivingBase;
|
import net.minecraft.entity.EntityLivingBase;
|
||||||
import net.minecraft.entity.player.EntityPlayer;
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
import net.minecraft.entity.player.EntityPlayerMP;
|
import net.minecraft.entity.player.EntityPlayerMP;
|
||||||
import net.minecraft.init.Items;
|
|
||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.item.ItemBow;
|
import net.minecraft.item.ItemBow;
|
||||||
import net.minecraft.item.ItemFood;
|
import net.minecraft.item.ItemFood;
|
||||||
|
@ -63,7 +62,7 @@ public class Battle
|
||||||
private int value;
|
private int value;
|
||||||
private static Map<Integer, State> map = new HashMap<Integer, State>();
|
private static Map<Integer, State> map = new HashMap<Integer, State>();
|
||||||
|
|
||||||
private State(int value)
|
State(int value)
|
||||||
{
|
{
|
||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
|
@ -99,7 +98,7 @@ public class Battle
|
||||||
private int value;
|
private int value;
|
||||||
private static Map<Integer, Decision> map = new HashMap<Integer, Decision>();
|
private static Map<Integer, Decision> map = new HashMap<Integer, Decision>();
|
||||||
|
|
||||||
private Decision(int value)
|
Decision(int value)
|
||||||
{
|
{
|
||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
|
@ -892,11 +891,11 @@ public class Battle
|
||||||
int hitChance = TurnBasedMinecraftMod.proxy.getConfig().getPlayerAttackProbability();
|
int hitChance = TurnBasedMinecraftMod.proxy.getConfig().getPlayerAttackProbability();
|
||||||
if(target.entity instanceof EntityPlayer)
|
if(target.entity instanceof EntityPlayer)
|
||||||
{
|
{
|
||||||
hitChance -= TurnBasedMinecraftMod.proxy.getConfig().getPlayerEvasion();
|
hitChance = hitChance * (100 - TurnBasedMinecraftMod.proxy.getConfig().getPlayerEvasion()) / 100;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
hitChance -= target.entityInfo.evasion;
|
hitChance = hitChance * (100 - target.entityInfo.evasion) / 100;
|
||||||
}
|
}
|
||||||
if(hitChance < TurnBasedMinecraftMod.proxy.getConfig().getMinimumHitPercentage())
|
if(hitChance < TurnBasedMinecraftMod.proxy.getConfig().getMinimumHitPercentage())
|
||||||
{
|
{
|
||||||
|
@ -999,11 +998,11 @@ public class Battle
|
||||||
int hitChance = next.entityInfo.attackProbability;
|
int hitChance = next.entityInfo.attackProbability;
|
||||||
if(target.entity instanceof EntityPlayer)
|
if(target.entity instanceof EntityPlayer)
|
||||||
{
|
{
|
||||||
hitChance -= TurnBasedMinecraftMod.proxy.getConfig().getPlayerEvasion();
|
hitChance = hitChance * (100 - TurnBasedMinecraftMod.proxy.getConfig().getPlayerEvasion()) / 100;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
hitChance -= target.entityInfo.evasion;
|
hitChance = hitChance * (100 - target.entityInfo.evasion) / 100;
|
||||||
}
|
}
|
||||||
if(hitChance < TurnBasedMinecraftMod.proxy.getConfig().getMinimumHitPercentage())
|
if(hitChance < TurnBasedMinecraftMod.proxy.getConfig().getMinimumHitPercentage())
|
||||||
{
|
{
|
||||||
|
@ -1020,6 +1019,10 @@ public class Battle
|
||||||
{
|
{
|
||||||
damageAmount += (int)(Math.random() * (next.entityInfo.attackVariance * 2 + 1)) - next.entityInfo.attackVariance;
|
damageAmount += (int)(Math.random() * (next.entityInfo.attackVariance * 2 + 1)) - next.entityInfo.attackVariance;
|
||||||
}
|
}
|
||||||
|
if(damageAmount < 0)
|
||||||
|
{
|
||||||
|
damageAmount = 0;
|
||||||
|
}
|
||||||
// attack
|
// attack
|
||||||
final Entity nextEntity = next.entity;
|
final Entity nextEntity = next.entity;
|
||||||
final EntityInfo nextEntityInfo = next.entityInfo;
|
final EntityInfo nextEntityInfo = next.entityInfo;
|
||||||
|
|
|
@ -0,0 +1,416 @@
|
||||||
|
package com.seodisparate.TurnBasedMinecraft.common;
|
||||||
|
|
||||||
|
import com.seodisparate.TurnBasedMinecraft.common.networking.PacketEditingMessage;
|
||||||
|
import com.seodisparate.TurnBasedMinecraft.common.networking.PacketGeneralMessage;
|
||||||
|
import net.minecraft.command.CommandBase;
|
||||||
|
import net.minecraft.command.CommandException;
|
||||||
|
import net.minecraft.command.ICommandSender;
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.entity.player.EntityPlayerMP;
|
||||||
|
import net.minecraft.server.MinecraftServer;
|
||||||
|
|
||||||
|
public class CommandTBMEdit extends CommandBase
|
||||||
|
{
|
||||||
|
public static final String usage = "/tbm-edit (Invoke without parameters to start edit)";
|
||||||
|
private Config config;
|
||||||
|
|
||||||
|
public CommandTBMEdit(Config config)
|
||||||
|
{
|
||||||
|
this.config = config;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getName()
|
||||||
|
{
|
||||||
|
return "tbm-edit";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getUsage(ICommandSender sender)
|
||||||
|
{
|
||||||
|
return usage;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException
|
||||||
|
{
|
||||||
|
EntityPlayer senderEntity = null;
|
||||||
|
EditingInfo editingInfo = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
senderEntity = (EntityPlayer) sender.getCommandSenderEntity();
|
||||||
|
} catch (ClassCastException e)
|
||||||
|
{
|
||||||
|
// if sender is not EntityPlayer, ignore
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
editingInfo = TurnBasedMinecraftMod.proxy.getEditingInfo(senderEntity.getEntityId());
|
||||||
|
if(args.length == 0)
|
||||||
|
{
|
||||||
|
if(editingInfo != null && !editingInfo.isPendingEntitySelection)
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
else if(editingInfo != null)
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.ATTACK_ENTITY), (EntityPlayerMP) senderEntity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.proxy.setEditingPlayer(senderEntity);
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.ATTACK_ENTITY), (EntityPlayerMP) senderEntity);
|
||||||
|
TurnBasedMinecraftMod.logger.info("Begin editing TBM Entity for player \"" + senderEntity.getName() + "\"");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(args.length == 1)
|
||||||
|
{
|
||||||
|
if(editingInfo != null && !editingInfo.isPendingEntitySelection)
|
||||||
|
{
|
||||||
|
if(args[0].toLowerCase().equals("finish"))
|
||||||
|
{
|
||||||
|
config.editEntityEntry(editingInfo.entityInfo);
|
||||||
|
TurnBasedMinecraftMod.proxy.removeEditingInfo(senderEntity.getEntityId());
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Entity info saved in config and loaded."), (EntityPlayerMP) senderEntity);
|
||||||
|
}
|
||||||
|
else if(args[0].toLowerCase().equals("cancel"))
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.proxy.removeEditingInfo(senderEntity.getEntityId());
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Cancelled editing entity."), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
else if(args[0].toLowerCase().equals("edit"))
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit <arg>\"."), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(editingInfo != null)
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.ATTACK_ENTITY), (EntityPlayerMP) senderEntity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Cannot edit entity without starting editing process (use \"/tbm-edit\")."), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(args.length == 2)
|
||||||
|
{
|
||||||
|
if(editingInfo != null && !editingInfo.isPendingEntitySelection)
|
||||||
|
{
|
||||||
|
if(args[0].toLowerCase().equals("edit"))
|
||||||
|
{
|
||||||
|
switch(args[1])
|
||||||
|
{
|
||||||
|
case "ignoreBattle":
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_IGNORE_BATTLE), (EntityPlayerMP) senderEntity);
|
||||||
|
break;
|
||||||
|
case "attackPower":
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_ATTACK_POWER), (EntityPlayerMP) senderEntity);
|
||||||
|
break;
|
||||||
|
case "attackProbability":
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_ATTACK_PROBABILITY), (EntityPlayerMP) senderEntity);
|
||||||
|
break;
|
||||||
|
case "attackVariance":
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_ATTACK_VARIANCE), (EntityPlayerMP) senderEntity);
|
||||||
|
break;
|
||||||
|
case "attackEffect":
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_ATTACK_EFFECT), (EntityPlayerMP) senderEntity);
|
||||||
|
break;
|
||||||
|
case "attackEffectProbability":
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_ATTACK_EFFECT_PROBABILITY), (EntityPlayerMP) senderEntity);
|
||||||
|
break;
|
||||||
|
case "defenseDamage":
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_DEFENSE_DAMAGE), (EntityPlayerMP) senderEntity);
|
||||||
|
break;
|
||||||
|
case "defenseDamageProbability":
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_DEFENSE_DAMAGE_PROBABILITY), (EntityPlayerMP) senderEntity);
|
||||||
|
break;
|
||||||
|
case "evasion":
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_EVASION), (EntityPlayerMP) senderEntity);
|
||||||
|
break;
|
||||||
|
case "speed":
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_SPEED), (EntityPlayerMP) senderEntity);
|
||||||
|
break;
|
||||||
|
case "category":
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_CATEGORY), (EntityPlayerMP) senderEntity);
|
||||||
|
break;
|
||||||
|
case "decisionAttack":
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_DECISION_ATTACK), (EntityPlayerMP) senderEntity);
|
||||||
|
break;
|
||||||
|
case "decisionDefend":
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_DECISION_DEFEND), (EntityPlayerMP) senderEntity);
|
||||||
|
break;
|
||||||
|
case "decisionFlee":
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.EDIT_DECISION_FLEE), (EntityPlayerMP) senderEntity);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit <arg>\""), (EntityPlayerMP) senderEntity);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid arguments for \"/tbm-edit <arg> <arg>\"."), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(editingInfo != null)
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.ATTACK_ENTITY), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Cannot edit entity without starting editing process (use \"/tbm-edit\")."), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(args.length == 3)
|
||||||
|
{
|
||||||
|
if(editingInfo != null && !editingInfo.isPendingEntitySelection)
|
||||||
|
{
|
||||||
|
if(args[0].toLowerCase().equals("edit"))
|
||||||
|
{
|
||||||
|
switch(args[1])
|
||||||
|
{
|
||||||
|
case "ignoreBattle":
|
||||||
|
if(args[2].toLowerCase().equals("true"))
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.ignoreBattle = true;
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
else if(args[2].toLowerCase().equals("false"))
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.ignoreBattle = false;
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit ignoreBattle <boolean>\""), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "attackPower":
|
||||||
|
try
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.attackPower = Integer.parseInt(args[2]);
|
||||||
|
if(editingInfo.entityInfo.attackPower < 0)
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.attackPower = 0;
|
||||||
|
}
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
catch (NumberFormatException e)
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit attackPower <integer>\""), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "attackProbability":
|
||||||
|
try
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.attackProbability = Integer.parseInt(args[2]);
|
||||||
|
if(editingInfo.entityInfo.attackProbability < 0)
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.attackProbability = 0;
|
||||||
|
}
|
||||||
|
else if(editingInfo.entityInfo.attackProbability > 100)
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.attackProbability = 100;
|
||||||
|
}
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
catch (NumberFormatException e)
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit attackProbability <percentage-integer>\""), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "attackVariance":
|
||||||
|
try
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.attackVariance = Integer.parseInt(args[2]);
|
||||||
|
if(editingInfo.entityInfo.attackVariance < 0)
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.attackVariance = 0;
|
||||||
|
}
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
catch (NumberFormatException e)
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit attackVariance <integer>\""), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "attackEffect":
|
||||||
|
editingInfo.entityInfo.attackEffect = EntityInfo.Effect.fromString(args[2]);
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
|
||||||
|
break;
|
||||||
|
case "attackEffectProbability":
|
||||||
|
try
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.attackEffectProbability = Integer.parseInt(args[2]);
|
||||||
|
if(editingInfo.entityInfo.attackEffectProbability < 0)
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.attackEffectProbability = 0;
|
||||||
|
}
|
||||||
|
else if(editingInfo.entityInfo.attackEffectProbability > 100)
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.attackEffectProbability = 100;
|
||||||
|
}
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
catch (NumberFormatException e)
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit attackEffectProbability <percentage-integer>\""), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "defenseDamage":
|
||||||
|
try
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.defenseDamage = Integer.parseInt(args[2]);
|
||||||
|
if(editingInfo.entityInfo.defenseDamage < 0)
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.defenseDamage = 0;
|
||||||
|
}
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
catch (NumberFormatException e)
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit defenseDamage <integer>\""), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "defenseDamageProbability":
|
||||||
|
try
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.defenseDamageProbability = Integer.parseInt(args[2]);
|
||||||
|
if(editingInfo.entityInfo.defenseDamageProbability < 0)
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.defenseDamageProbability = 0;
|
||||||
|
}
|
||||||
|
else if(editingInfo.entityInfo.defenseDamageProbability > 100)
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.defenseDamageProbability = 100;
|
||||||
|
}
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
catch (NumberFormatException e)
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit defenseDamageProbability <percentage-integer>\""), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "evasion":
|
||||||
|
try
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.evasion = Integer.parseInt(args[2]);
|
||||||
|
if(editingInfo.entityInfo.evasion < 0)
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.evasion = 0;
|
||||||
|
}
|
||||||
|
else if(editingInfo.entityInfo.evasion > 100)
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.evasion = 100;
|
||||||
|
}
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
catch (NumberFormatException e)
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit evasion <percentage-integer>\""), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "speed":
|
||||||
|
try
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.speed = Integer.parseInt(args[2]);
|
||||||
|
if(editingInfo.entityInfo.speed < 0)
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.speed = 0;
|
||||||
|
}
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
catch (NumberFormatException e)
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit speed <integer>\""), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "category":
|
||||||
|
editingInfo.entityInfo.category = args[2];
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
|
||||||
|
break;
|
||||||
|
case "decisionAttack":
|
||||||
|
try
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.decisionAttack = Integer.parseInt(args[2]);
|
||||||
|
if(editingInfo.entityInfo.decisionAttack < 0)
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.decisionAttack = 0;
|
||||||
|
}
|
||||||
|
else if(editingInfo.entityInfo.decisionAttack > 100)
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.decisionAttack = 100;
|
||||||
|
}
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
catch (NumberFormatException e)
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit decisionAttack <percentage-integer>\""), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "decisionDefend":
|
||||||
|
try
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.decisionDefend = Integer.parseInt(args[2]);
|
||||||
|
if(editingInfo.entityInfo.decisionDefend < 0)
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.decisionDefend = 0;
|
||||||
|
}
|
||||||
|
else if(editingInfo.entityInfo.decisionDefend > 100)
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.decisionDefend = 100;
|
||||||
|
}
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
catch (NumberFormatException e)
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit decisionDefend <percentage-integer>\""), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "decisionFlee":
|
||||||
|
try
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.decisionFlee = Integer.parseInt(args[2]);
|
||||||
|
if(editingInfo.entityInfo.decisionFlee < 0)
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.decisionFlee = 0;
|
||||||
|
}
|
||||||
|
else if(editingInfo.entityInfo.decisionFlee > 100)
|
||||||
|
{
|
||||||
|
editingInfo.entityInfo.decisionFlee = 100;
|
||||||
|
}
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.PICK_EDIT, editingInfo.entityInfo), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
catch (NumberFormatException e)
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid argument for \"/tbm-edit edit decisionFlee <percentage-integer>\""), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid second argument for \"/tbm-edit edit <arg> <arg>\""), (EntityPlayerMP)senderEntity);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid arguments for \"/tbm-edit <arg> <arg> <arg>\"."), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if(editingInfo != null)
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketEditingMessage(PacketEditingMessage.Type.ATTACK_ENTITY), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Cannot edit entity without starting editing process (use \"/tbm-edit\")."), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TurnBasedMinecraftMod.NWINSTANCE.sendTo(new PacketGeneralMessage("Invalid arguments for \"/tbm-edit\"."), (EntityPlayerMP)senderEntity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,8 +1,9 @@
|
||||||
package com.seodisparate.TurnBasedMinecraft.common;
|
package com.seodisparate.TurnBasedMinecraft.common;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.*;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
import net.minecraft.util.text.ITextComponent;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
import net.minecraft.entity.Entity;
|
import net.minecraft.entity.Entity;
|
||||||
|
@ -16,10 +17,12 @@ public class CommonProxy
|
||||||
private int attackingDamage = 0;
|
private int attackingDamage = 0;
|
||||||
private Config config = null;
|
private Config config = null;
|
||||||
private Logger logger = null;
|
private Logger logger = null;
|
||||||
|
private Map<Integer, EditingInfo> editingPlayers;
|
||||||
|
|
||||||
public final void initialize()
|
public final void initialize()
|
||||||
{
|
{
|
||||||
attackerViaBow = new HashSet<AttackerViaBow>();
|
attackerViaBow = new HashSet<AttackerViaBow>();
|
||||||
|
editingPlayers = new Hashtable<Integer, EditingInfo>();
|
||||||
initializeClient();
|
initializeClient();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,6 +87,8 @@ public class CommonProxy
|
||||||
public void typeLeftBattle(String type) {}
|
public void typeLeftBattle(String type) {}
|
||||||
|
|
||||||
public void displayString(String message) {}
|
public void displayString(String message) {}
|
||||||
|
|
||||||
|
public void displayTextComponent(ITextComponent textComponent) {}
|
||||||
|
|
||||||
public Entity getEntityByID(int id)
|
public Entity getEntityByID(int id)
|
||||||
{
|
{
|
||||||
|
@ -141,4 +146,19 @@ public class CommonProxy
|
||||||
{
|
{
|
||||||
return config;
|
return config;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected final EditingInfo getEditingInfo(int id)
|
||||||
|
{
|
||||||
|
return editingPlayers.get(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected final EditingInfo setEditingPlayer(EntityPlayer player)
|
||||||
|
{
|
||||||
|
return editingPlayers.put(player.getEntityId(), new EditingInfo(player));
|
||||||
|
}
|
||||||
|
|
||||||
|
protected final EditingInfo removeEditingInfo(int id)
|
||||||
|
{
|
||||||
|
return editingPlayers.remove(id);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
package com.seodisparate.TurnBasedMinecraft.common;
|
||||||
|
|
||||||
|
import net.minecraft.entity.player.EntityPlayer;
|
||||||
|
|
||||||
|
public class EditingInfo
|
||||||
|
{
|
||||||
|
public EntityPlayer editor;
|
||||||
|
public EntityInfo entityInfo;
|
||||||
|
public boolean isPendingEntitySelection;
|
||||||
|
|
||||||
|
public EditingInfo()
|
||||||
|
{
|
||||||
|
editor = null;
|
||||||
|
entityInfo = null;
|
||||||
|
isPendingEntitySelection = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EditingInfo(EntityPlayer player)
|
||||||
|
{
|
||||||
|
editor = player;
|
||||||
|
entityInfo = null;
|
||||||
|
isPendingEntitySelection = true;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,13 +1,8 @@
|
||||||
package com.seodisparate.TurnBasedMinecraft.common;
|
package com.seodisparate.TurnBasedMinecraft.common;
|
||||||
|
|
||||||
|
import com.seodisparate.TurnBasedMinecraft.common.networking.*;
|
||||||
import org.apache.logging.log4j.Logger;
|
import org.apache.logging.log4j.Logger;
|
||||||
|
|
||||||
import com.seodisparate.TurnBasedMinecraft.common.networking.PacketBattleDecision;
|
|
||||||
import com.seodisparate.TurnBasedMinecraft.common.networking.PacketBattleInfo;
|
|
||||||
import com.seodisparate.TurnBasedMinecraft.common.networking.PacketBattleMessage;
|
|
||||||
import com.seodisparate.TurnBasedMinecraft.common.networking.PacketBattleRequestInfo;
|
|
||||||
import com.seodisparate.TurnBasedMinecraft.common.networking.PacketGeneralMessage;
|
|
||||||
|
|
||||||
import net.minecraftforge.common.MinecraftForge;
|
import net.minecraftforge.common.MinecraftForge;
|
||||||
import net.minecraftforge.fml.common.Mod;
|
import net.minecraftforge.fml.common.Mod;
|
||||||
import net.minecraftforge.fml.common.Mod.EventHandler;
|
import net.minecraftforge.fml.common.Mod.EventHandler;
|
||||||
|
@ -80,6 +75,12 @@ public class TurnBasedMinecraftMod
|
||||||
PacketGeneralMessage.class,
|
PacketGeneralMessage.class,
|
||||||
packetHandlerID++,
|
packetHandlerID++,
|
||||||
Side.CLIENT);
|
Side.CLIENT);
|
||||||
|
NWINSTANCE.registerMessage(
|
||||||
|
PacketEditingMessage.HandlerEditingMessage.class,
|
||||||
|
PacketEditingMessage.class,
|
||||||
|
packetHandlerID++,
|
||||||
|
Side.CLIENT
|
||||||
|
);
|
||||||
|
|
||||||
// register event handler(s)
|
// register event handler(s)
|
||||||
MinecraftForge.EVENT_BUS.register(new AttackEventHandler());
|
MinecraftForge.EVENT_BUS.register(new AttackEventHandler());
|
||||||
|
@ -109,6 +110,7 @@ public class TurnBasedMinecraftMod
|
||||||
event.registerServerCommand(new CommandTBMSet(proxy.getConfig()));
|
event.registerServerCommand(new CommandTBMSet(proxy.getConfig()));
|
||||||
event.registerServerCommand(new CommandTBMDisableAll(proxy.getConfig()));
|
event.registerServerCommand(new CommandTBMDisableAll(proxy.getConfig()));
|
||||||
event.registerServerCommand(new CommandTBMEnableAll(proxy.getConfig()));
|
event.registerServerCommand(new CommandTBMEnableAll(proxy.getConfig()));
|
||||||
|
event.registerServerCommand(new CommandTBMEdit(proxy.getConfig()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
|
|
|
@ -41,7 +41,7 @@ public class PacketBattleMessage implements IMessage
|
||||||
private int value;
|
private int value;
|
||||||
private static Map<Integer, MessageType> map = new HashMap<Integer, MessageType>();
|
private static Map<Integer, MessageType> map = new HashMap<Integer, MessageType>();
|
||||||
|
|
||||||
private MessageType(int value)
|
MessageType(int value)
|
||||||
{
|
{
|
||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
|
@ -75,7 +75,7 @@ public class PacketBattleMessage implements IMessage
|
||||||
private int value;
|
private int value;
|
||||||
private static Map<Integer, UsedItemAction> map = new HashMap<Integer, UsedItemAction>();
|
private static Map<Integer, UsedItemAction> map = new HashMap<Integer, UsedItemAction>();
|
||||||
|
|
||||||
private UsedItemAction(int value)
|
UsedItemAction(int value)
|
||||||
{
|
{
|
||||||
this.value = value;
|
this.value = value;
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,8 +41,7 @@ public class PacketBattleRequestInfo implements IMessage
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
PacketBattleInfo battleInfo = new PacketBattleInfo(b.getSideAIDs(), b.getSideBIDs(), b.getTimerSeconds());
|
return new PacketBattleInfo(b.getSideAIDs(), b.getSideBIDs(), b.getTimerSeconds());
|
||||||
return battleInfo;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,721 @@
|
||||||
|
package com.seodisparate.TurnBasedMinecraft.common.networking;
|
||||||
|
|
||||||
|
import com.seodisparate.TurnBasedMinecraft.common.EntityInfo;
|
||||||
|
import com.seodisparate.TurnBasedMinecraft.common.TurnBasedMinecraftMod;
|
||||||
|
import io.netty.buffer.ByteBuf;
|
||||||
|
import net.minecraft.util.text.ITextComponent;
|
||||||
|
import net.minecraft.util.text.TextComponentString;
|
||||||
|
import net.minecraft.util.text.TextFormatting;
|
||||||
|
import net.minecraft.util.text.event.ClickEvent;
|
||||||
|
import net.minecraft.util.text.event.HoverEvent;
|
||||||
|
import net.minecraftforge.fml.common.network.ByteBufUtils;
|
||||||
|
import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
|
||||||
|
import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
|
||||||
|
import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class PacketEditingMessage implements IMessage
|
||||||
|
{
|
||||||
|
public enum Type
|
||||||
|
{
|
||||||
|
ATTACK_ENTITY(0),
|
||||||
|
PICK_EDIT(1),
|
||||||
|
EDIT_IGNORE_BATTLE(2),
|
||||||
|
EDIT_ATTACK_POWER(3),
|
||||||
|
EDIT_ATTACK_PROBABILITY(4),
|
||||||
|
EDIT_ATTACK_VARIANCE(5),
|
||||||
|
EDIT_ATTACK_EFFECT(6),
|
||||||
|
EDIT_ATTACK_EFFECT_PROBABILITY(7),
|
||||||
|
EDIT_DEFENSE_DAMAGE(8),
|
||||||
|
EDIT_DEFENSE_DAMAGE_PROBABILITY(9),
|
||||||
|
EDIT_EVASION(10),
|
||||||
|
EDIT_SPEED(11),
|
||||||
|
EDIT_CATEGORY(12),
|
||||||
|
EDIT_DECISION_ATTACK(13),
|
||||||
|
EDIT_DECISION_DEFEND(14),
|
||||||
|
EDIT_DECISION_FLEE(15);
|
||||||
|
|
||||||
|
Type(int value)
|
||||||
|
{
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Map<Integer, Type> map;
|
||||||
|
private int value;
|
||||||
|
|
||||||
|
static
|
||||||
|
{
|
||||||
|
map = new HashMap<Integer, Type>();
|
||||||
|
for(Type t : values())
|
||||||
|
{
|
||||||
|
map.put(t.value, t);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getValue()
|
||||||
|
{
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Type valueOf(int value)
|
||||||
|
{
|
||||||
|
return map.get(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Type type = Type.ATTACK_ENTITY;
|
||||||
|
EntityInfo entityInfo = new EntityInfo();
|
||||||
|
|
||||||
|
public PacketEditingMessage() {}
|
||||||
|
|
||||||
|
public PacketEditingMessage(Type type)
|
||||||
|
{
|
||||||
|
this.type = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
public PacketEditingMessage(Type type, EntityInfo entityInfo)
|
||||||
|
{
|
||||||
|
this.type = type;
|
||||||
|
this.entityInfo = entityInfo;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void fromBytes(ByteBuf buf)
|
||||||
|
{
|
||||||
|
type = Type.valueOf(buf.readInt());
|
||||||
|
try
|
||||||
|
{
|
||||||
|
entityInfo.classType = getClass().getClassLoader().loadClass(ByteBufUtils.readUTF8String(buf));
|
||||||
|
}
|
||||||
|
catch (ClassNotFoundException e) { /* ignored */ }
|
||||||
|
entityInfo.ignoreBattle = buf.readBoolean();
|
||||||
|
entityInfo.attackPower = buf.readInt();
|
||||||
|
entityInfo.attackProbability = buf.readInt();
|
||||||
|
entityInfo.attackVariance = buf.readInt();
|
||||||
|
entityInfo.attackEffect = EntityInfo.Effect.fromString(ByteBufUtils.readUTF8String(buf));
|
||||||
|
entityInfo.attackEffectProbability = buf.readInt();
|
||||||
|
entityInfo.defenseDamage = buf.readInt();
|
||||||
|
entityInfo.defenseDamageProbability = buf.readInt();
|
||||||
|
entityInfo.evasion = buf.readInt();
|
||||||
|
entityInfo.speed = buf.readInt();
|
||||||
|
entityInfo.category = ByteBufUtils.readUTF8String(buf);
|
||||||
|
entityInfo.decisionAttack = buf.readInt();
|
||||||
|
entityInfo.decisionDefend = buf.readInt();
|
||||||
|
entityInfo.decisionFlee = buf.readInt();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void toBytes(ByteBuf buf)
|
||||||
|
{
|
||||||
|
buf.writeInt(type.getValue());
|
||||||
|
if(entityInfo.classType != null)
|
||||||
|
{
|
||||||
|
ByteBufUtils.writeUTF8String(buf, entityInfo.classType.getName());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ByteBufUtils.writeUTF8String(buf, "unknown");
|
||||||
|
}
|
||||||
|
buf.writeBoolean(entityInfo.ignoreBattle);
|
||||||
|
buf.writeInt(entityInfo.attackPower);
|
||||||
|
buf.writeInt(entityInfo.attackProbability);
|
||||||
|
buf.writeInt(entityInfo.attackVariance);
|
||||||
|
ByteBufUtils.writeUTF8String(buf, entityInfo.attackEffect.toString());
|
||||||
|
buf.writeInt(entityInfo.attackEffectProbability);
|
||||||
|
buf.writeInt(entityInfo.defenseDamage);
|
||||||
|
buf.writeInt(entityInfo.defenseDamageProbability);
|
||||||
|
buf.writeInt(entityInfo.evasion);
|
||||||
|
buf.writeInt(entityInfo.speed);
|
||||||
|
ByteBufUtils.writeUTF8String(buf, entityInfo.category);
|
||||||
|
buf.writeInt(entityInfo.decisionAttack);
|
||||||
|
buf.writeInt(entityInfo.decisionDefend);
|
||||||
|
buf.writeInt(entityInfo.decisionFlee);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class HandlerEditingMessage implements IMessageHandler<PacketEditingMessage, IMessage>
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public IMessage onMessage(PacketEditingMessage message, MessageContext ctx)
|
||||||
|
{
|
||||||
|
switch(message.type)
|
||||||
|
{
|
||||||
|
case ATTACK_ENTITY:
|
||||||
|
{
|
||||||
|
ITextComponent prefix = new TextComponentString("TBM: ");
|
||||||
|
prefix.getStyle().setColor(TextFormatting.GREEN).setBold(true);
|
||||||
|
ITextComponent text = new TextComponentString("Attack the entity you want to edit for TurnBasedMinecraftMod. ");
|
||||||
|
text.getStyle().setColor(TextFormatting.WHITE).setBold(false);
|
||||||
|
|
||||||
|
ITextComponent cancel = new TextComponentString("Cancel");
|
||||||
|
cancel.getStyle().setColor(TextFormatting.RED).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit cancel"));
|
||||||
|
text.appendSibling(cancel);
|
||||||
|
|
||||||
|
prefix.appendSibling(text);
|
||||||
|
TurnBasedMinecraftMod.proxy.displayTextComponent(prefix);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case PICK_EDIT:
|
||||||
|
{
|
||||||
|
ITextComponent prefix = new TextComponentString("TBM: ");
|
||||||
|
prefix.getStyle().setColor(TextFormatting.GREEN).setBold(true);
|
||||||
|
ITextComponent text = new TextComponentString("Edit what value? ");
|
||||||
|
text.getStyle().setColor(TextFormatting.WHITE).setBold(false);
|
||||||
|
|
||||||
|
ITextComponent option = new TextComponentString("IgB");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit ignoreBattle"))
|
||||||
|
.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponentString("IgnoreBattle")));
|
||||||
|
ITextComponent value = new TextComponentString("(" + message.entityInfo.ignoreBattle + ") ");
|
||||||
|
value.getStyle().setColor(TextFormatting.WHITE);
|
||||||
|
option.appendSibling(value);
|
||||||
|
text.appendSibling(option);
|
||||||
|
|
||||||
|
option = new TextComponentString("AP");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit attackPower"))
|
||||||
|
.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponentString("AttackPower")));
|
||||||
|
value = new TextComponentString("(" + message.entityInfo.attackPower + ") ");
|
||||||
|
value.getStyle().setColor(TextFormatting.WHITE);
|
||||||
|
option.appendSibling(value);
|
||||||
|
text.appendSibling(option);
|
||||||
|
|
||||||
|
option = new TextComponentString("APr");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit attackProbability"))
|
||||||
|
.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponentString("AttackProbability")));
|
||||||
|
value = new TextComponentString("(" + message.entityInfo.attackProbability + "%) ");
|
||||||
|
value.getStyle().setColor(TextFormatting.WHITE);
|
||||||
|
option.appendSibling(value);
|
||||||
|
text.appendSibling(option);
|
||||||
|
|
||||||
|
option = new TextComponentString("AV");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit attackVariance"))
|
||||||
|
.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponentString("AttackVariance")));
|
||||||
|
value = new TextComponentString("(" + message.entityInfo.attackVariance + ") ");
|
||||||
|
value.getStyle().setColor(TextFormatting.WHITE);
|
||||||
|
option.appendSibling(value);
|
||||||
|
text.appendSibling(option);
|
||||||
|
|
||||||
|
option = new TextComponentString("AE");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit attackEffect"))
|
||||||
|
.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponentString("AttackEffect")));
|
||||||
|
value = new TextComponentString("(" + message.entityInfo.attackEffect.toString() + ") ");
|
||||||
|
value.getStyle().setColor(TextFormatting.WHITE);
|
||||||
|
option.appendSibling(value);
|
||||||
|
text.appendSibling(option);
|
||||||
|
|
||||||
|
option = new TextComponentString("AEPr");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit attackEffectProbability"))
|
||||||
|
.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponentString("AttackEffectProbability")));
|
||||||
|
value = new TextComponentString("(" + message.entityInfo.attackEffectProbability + "%) ");
|
||||||
|
value.getStyle().setColor(TextFormatting.WHITE);
|
||||||
|
option.appendSibling(value);
|
||||||
|
text.appendSibling(option);
|
||||||
|
|
||||||
|
option = new TextComponentString("DD");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit defenseDamage"))
|
||||||
|
.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponentString("DefenseDamage")));
|
||||||
|
value = new TextComponentString("(" + message.entityInfo.defenseDamage + ") ");
|
||||||
|
value.getStyle().setColor(TextFormatting.WHITE);
|
||||||
|
option.appendSibling(value);
|
||||||
|
text.appendSibling(option);
|
||||||
|
|
||||||
|
option = new TextComponentString("DDPr");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit defenseDamageProbability"))
|
||||||
|
.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponentString("DefenseDamageProbability")));
|
||||||
|
value = new TextComponentString("(" + message.entityInfo.defenseDamageProbability + "%) ");
|
||||||
|
value.getStyle().setColor(TextFormatting.WHITE);
|
||||||
|
option.appendSibling(value);
|
||||||
|
text.appendSibling(option);
|
||||||
|
|
||||||
|
option = new TextComponentString("E");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit evasion"))
|
||||||
|
.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponentString("Evasion")));
|
||||||
|
value = new TextComponentString("(" + message.entityInfo.evasion + ") ");
|
||||||
|
value.getStyle().setColor(TextFormatting.WHITE);
|
||||||
|
option.appendSibling(value);
|
||||||
|
text.appendSibling(option);
|
||||||
|
|
||||||
|
option = new TextComponentString("S");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit speed"))
|
||||||
|
.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponentString("Speed")));
|
||||||
|
value = new TextComponentString("(" + message.entityInfo.speed + ") ");
|
||||||
|
value.getStyle().setColor(TextFormatting.WHITE);
|
||||||
|
option.appendSibling(value);
|
||||||
|
text.appendSibling(option);
|
||||||
|
|
||||||
|
option = new TextComponentString("C");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit category"))
|
||||||
|
.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponentString("Category")));
|
||||||
|
value = new TextComponentString("(" + message.entityInfo.category + ") ");
|
||||||
|
value.getStyle().setColor(TextFormatting.WHITE);
|
||||||
|
option.appendSibling(value);
|
||||||
|
text.appendSibling(option);
|
||||||
|
|
||||||
|
option = new TextComponentString("DecA");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit decisionAttack"))
|
||||||
|
.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponentString("DecisionAttack")));
|
||||||
|
value = new TextComponentString("(" + message.entityInfo.decisionAttack + "%) ");
|
||||||
|
value.getStyle().setColor(TextFormatting.WHITE);
|
||||||
|
option.appendSibling(value);
|
||||||
|
text.appendSibling(option);
|
||||||
|
|
||||||
|
option = new TextComponentString("DecD");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit decisionDefend"))
|
||||||
|
.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponentString("DecisionDefend")));
|
||||||
|
value = new TextComponentString("(" + message.entityInfo.decisionDefend + "%) ");
|
||||||
|
value.getStyle().setColor(TextFormatting.WHITE);
|
||||||
|
option.appendSibling(value);
|
||||||
|
text.appendSibling(option);
|
||||||
|
|
||||||
|
option = new TextComponentString("DecF");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit decisionFlee"))
|
||||||
|
.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new TextComponentString("DecisionFlee")));
|
||||||
|
value = new TextComponentString("(" + message.entityInfo.decisionFlee + "%) ");
|
||||||
|
value.getStyle().setColor(TextFormatting.WHITE);
|
||||||
|
option.appendSibling(value);
|
||||||
|
text.appendSibling(option);
|
||||||
|
|
||||||
|
option = new TextComponentString("Finished Editing");
|
||||||
|
option.getStyle().setColor(TextFormatting.GREEN).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit finish"));
|
||||||
|
text.appendSibling(option).appendText(" ");
|
||||||
|
|
||||||
|
option = new TextComponentString("Cancel");
|
||||||
|
option.getStyle().setColor(TextFormatting.RED).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit cancel"));
|
||||||
|
text.appendSibling(option);
|
||||||
|
|
||||||
|
prefix.appendSibling(text);
|
||||||
|
TurnBasedMinecraftMod.proxy.displayTextComponent(prefix);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case EDIT_IGNORE_BATTLE:
|
||||||
|
{
|
||||||
|
ITextComponent prefix = new TextComponentString("TBM: ");
|
||||||
|
prefix.getStyle().setColor(TextFormatting.GREEN).setBold(true);
|
||||||
|
ITextComponent text = new TextComponentString("ignoreBattle: ");
|
||||||
|
text.getStyle().setColor(TextFormatting.WHITE).setBold(false);
|
||||||
|
|
||||||
|
ITextComponent option = new TextComponentString("true");
|
||||||
|
option.getStyle().setColor(TextFormatting.GREEN).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit ignoreBattle true"));
|
||||||
|
text.appendSibling(option);
|
||||||
|
|
||||||
|
text.appendText(" ");
|
||||||
|
|
||||||
|
option = new TextComponentString("false");
|
||||||
|
option.getStyle().setColor(TextFormatting.RED).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit ignoreBattle false"));
|
||||||
|
text.appendSibling(option);
|
||||||
|
|
||||||
|
prefix.appendSibling(text);
|
||||||
|
TurnBasedMinecraftMod.proxy.displayTextComponent(prefix);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case EDIT_ATTACK_POWER:
|
||||||
|
{
|
||||||
|
ITextComponent prefix = new TextComponentString("TBM: ");
|
||||||
|
prefix.getStyle().setColor(TextFormatting.GREEN).setBold(true);
|
||||||
|
ITextComponent text = new TextComponentString("attackPower: ");
|
||||||
|
text.getStyle().setColor(TextFormatting.WHITE).setBold(false);
|
||||||
|
|
||||||
|
for(int i = 0; i <= 15; ++i)
|
||||||
|
{
|
||||||
|
ITextComponent option = new TextComponentString(Integer.toString(i));
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit attackPower " + Integer.toString(i)));
|
||||||
|
text.appendSibling(option);
|
||||||
|
if(i < 15)
|
||||||
|
{
|
||||||
|
text.appendText(", ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
text.appendText(" (or use command \"/tbm-edit edit attackPower <integer>\")");
|
||||||
|
|
||||||
|
prefix.appendSibling(text);
|
||||||
|
TurnBasedMinecraftMod.proxy.displayTextComponent(prefix);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case EDIT_ATTACK_PROBABILITY:
|
||||||
|
{
|
||||||
|
ITextComponent prefix = new TextComponentString("TBM: ");
|
||||||
|
prefix.getStyle().setColor(TextFormatting.GREEN).setBold(true);
|
||||||
|
ITextComponent text = new TextComponentString("attackProbability: ");
|
||||||
|
text.getStyle().setColor(TextFormatting.WHITE).setBold(false);
|
||||||
|
|
||||||
|
for(int i = 10; i <= 100; i += 10)
|
||||||
|
{
|
||||||
|
ITextComponent option = new TextComponentString(Integer.toString(i) + "%");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit attackProbability " + Integer.toString(i)));
|
||||||
|
text.appendSibling(option);
|
||||||
|
if(i < 100)
|
||||||
|
{
|
||||||
|
text.appendText(", ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
text.appendText(" (or use command \"/tbm-edit edit attackProbability <percentage-integer>\")");
|
||||||
|
|
||||||
|
prefix.appendSibling(text);
|
||||||
|
TurnBasedMinecraftMod.proxy.displayTextComponent(prefix);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case EDIT_ATTACK_VARIANCE:
|
||||||
|
{
|
||||||
|
ITextComponent prefix = new TextComponentString("TBM: ");
|
||||||
|
prefix.getStyle().setColor(TextFormatting.GREEN).setBold(true);
|
||||||
|
ITextComponent text = new TextComponentString("attackVariance: ");
|
||||||
|
text.getStyle().setColor(TextFormatting.WHITE).setBold(false);
|
||||||
|
|
||||||
|
for(int i = 0; i <= 10; ++i)
|
||||||
|
{
|
||||||
|
ITextComponent option = new TextComponentString(Integer.toString(i));
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit attackVariance " + Integer.toString(i)));
|
||||||
|
text.appendSibling(option);
|
||||||
|
if(i < 10)
|
||||||
|
{
|
||||||
|
text.appendText(", ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
text.appendText(" (or use command \"/tbm-edit edit attackVariance <integer>\")");
|
||||||
|
|
||||||
|
prefix.appendSibling(text);
|
||||||
|
TurnBasedMinecraftMod.proxy.displayTextComponent(prefix);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case EDIT_ATTACK_EFFECT:
|
||||||
|
{
|
||||||
|
ITextComponent prefix = new TextComponentString("TBM: ");
|
||||||
|
prefix.getStyle().setColor(TextFormatting.GREEN).setBold(true);
|
||||||
|
ITextComponent text = new TextComponentString("attackEffect: ");
|
||||||
|
text.getStyle().setColor(TextFormatting.WHITE).setBold(false);
|
||||||
|
|
||||||
|
for(EntityInfo.Effect e : EntityInfo.Effect.values())
|
||||||
|
{
|
||||||
|
ITextComponent option = new TextComponentString(e.toString());
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit attackEffect " + e.toString()));
|
||||||
|
text.appendSibling(option);
|
||||||
|
if(e != EntityInfo.Effect.UNKNOWN)
|
||||||
|
{
|
||||||
|
// TODO find a better way to handle printing comma for items before last
|
||||||
|
text.appendText(", ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
prefix.appendSibling(text);
|
||||||
|
TurnBasedMinecraftMod.proxy.displayTextComponent(prefix);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case EDIT_ATTACK_EFFECT_PROBABILITY:
|
||||||
|
{
|
||||||
|
ITextComponent prefix = new TextComponentString("TBM: ");
|
||||||
|
prefix.getStyle().setColor(TextFormatting.GREEN).setBold(true);
|
||||||
|
ITextComponent text = new TextComponentString("attackEffectProbability: ");
|
||||||
|
text.getStyle().setColor(TextFormatting.WHITE).setBold(false);
|
||||||
|
|
||||||
|
for(int i = 0; i <= 100; i += 10)
|
||||||
|
{
|
||||||
|
ITextComponent option = new TextComponentString(Integer.toString(i) + "%");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit attackEffectProbability " + Integer.toString(i)));
|
||||||
|
text.appendSibling(option);
|
||||||
|
if(i < 100)
|
||||||
|
{
|
||||||
|
text.appendText(", ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
text.appendText(" (or use command \"/tbm-edit edit attackEffectProbability <percentage-integer>\")");
|
||||||
|
|
||||||
|
prefix.appendSibling(text);
|
||||||
|
TurnBasedMinecraftMod.proxy.displayTextComponent(prefix);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case EDIT_DEFENSE_DAMAGE:
|
||||||
|
{
|
||||||
|
ITextComponent prefix = new TextComponentString("TBM: ");
|
||||||
|
prefix.getStyle().setColor(TextFormatting.GREEN).setBold(true);
|
||||||
|
ITextComponent text = new TextComponentString("defenseDamage: ");
|
||||||
|
text.getStyle().setColor(TextFormatting.WHITE).setBold(false);
|
||||||
|
|
||||||
|
for(int i = 0; i <= 15; ++i)
|
||||||
|
{
|
||||||
|
ITextComponent option = new TextComponentString(Integer.toString(i));
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit defenseDamage " + Integer.toString(i)));
|
||||||
|
text.appendSibling(option);
|
||||||
|
if(i < 15)
|
||||||
|
{
|
||||||
|
text.appendText(", ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
text.appendText(" (or use command \"/tbm-edit edit defenseDamage <integer>\")");
|
||||||
|
|
||||||
|
prefix.appendSibling(text);
|
||||||
|
TurnBasedMinecraftMod.proxy.displayTextComponent(prefix);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case EDIT_DEFENSE_DAMAGE_PROBABILITY:
|
||||||
|
{
|
||||||
|
ITextComponent prefix = new TextComponentString("TBM: ");
|
||||||
|
prefix.getStyle().setColor(TextFormatting.GREEN).setBold(true);
|
||||||
|
ITextComponent text = new TextComponentString("defenseDamageProbability: ");
|
||||||
|
text.getStyle().setColor(TextFormatting.WHITE).setBold(false);
|
||||||
|
|
||||||
|
for(int i = 0; i <= 100; i += 10)
|
||||||
|
{
|
||||||
|
ITextComponent option = new TextComponentString(Integer.toString(i) + "%");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit defenseDamageProbability " + Integer.toString(i)));
|
||||||
|
text.appendSibling(option);
|
||||||
|
if(i < 100)
|
||||||
|
{
|
||||||
|
text.appendText(", ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
text.appendText(" (or use command \"/tbm-edit edit defenseDamageProbability <percentage-integer>\")");
|
||||||
|
|
||||||
|
prefix.appendSibling(text);
|
||||||
|
TurnBasedMinecraftMod.proxy.displayTextComponent(prefix);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case EDIT_EVASION:
|
||||||
|
{
|
||||||
|
ITextComponent prefix = new TextComponentString("TBM: ");
|
||||||
|
prefix.getStyle().setColor(TextFormatting.GREEN).setBold(true);
|
||||||
|
ITextComponent text = new TextComponentString("evasion: ");
|
||||||
|
text.getStyle().setColor(TextFormatting.WHITE).setBold(false);
|
||||||
|
|
||||||
|
for(int i = 0; i <= 100; i += 10)
|
||||||
|
{
|
||||||
|
ITextComponent option = new TextComponentString(Integer.toString(i) + "%");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit evasion " + Integer.toString(i)));
|
||||||
|
text.appendSibling(option);
|
||||||
|
if(i < 100)
|
||||||
|
{
|
||||||
|
text.appendText(", ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
text.appendText(" (or use command \"/tbm-edit edit evasion <percentage-integer>\")");
|
||||||
|
|
||||||
|
prefix.appendSibling(text);
|
||||||
|
TurnBasedMinecraftMod.proxy.displayTextComponent(prefix);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case EDIT_SPEED:
|
||||||
|
{
|
||||||
|
ITextComponent prefix = new TextComponentString("TBM: ");
|
||||||
|
prefix.getStyle().setColor(TextFormatting.GREEN).setBold(true);
|
||||||
|
ITextComponent text = new TextComponentString("speed: ");
|
||||||
|
text.getStyle().setColor(TextFormatting.WHITE).setBold(false);
|
||||||
|
|
||||||
|
for(int i = 0; i <= 100; i += 10)
|
||||||
|
{
|
||||||
|
ITextComponent option = new TextComponentString(Integer.toString(i));
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit speed " + Integer.toString(i)));
|
||||||
|
text.appendSibling(option);
|
||||||
|
if(i < 100)
|
||||||
|
{
|
||||||
|
text.appendText(", ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
text.appendText(" (or use command \"/tbm-edit edit speed <integer>\")");
|
||||||
|
|
||||||
|
prefix.appendSibling(text);
|
||||||
|
TurnBasedMinecraftMod.proxy.displayTextComponent(prefix);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case EDIT_CATEGORY:
|
||||||
|
{
|
||||||
|
ITextComponent prefix = new TextComponentString("TBM: ");
|
||||||
|
prefix.getStyle().setColor(TextFormatting.GREEN).setBold(true);
|
||||||
|
ITextComponent text = new TextComponentString("category: ");
|
||||||
|
text.getStyle().setColor(TextFormatting.WHITE).setBold(false);
|
||||||
|
|
||||||
|
ITextComponent option = new TextComponentString("monster");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit category monster"));
|
||||||
|
if(TurnBasedMinecraftMod.proxy.getConfig().isIgnoreBattleType("monster"))
|
||||||
|
{
|
||||||
|
ITextComponent optionInfo = new TextComponentString("(battle-");
|
||||||
|
optionInfo.getStyle().setColor(TextFormatting.WHITE);
|
||||||
|
ITextComponent optionInfoBool = new TextComponentString("disabled");
|
||||||
|
optionInfoBool.getStyle().setColor(TextFormatting.RED);
|
||||||
|
optionInfo.appendSibling(optionInfoBool).appendText(")");
|
||||||
|
option.appendSibling(optionInfo);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ITextComponent optionInfo = new TextComponentString("(battle-");
|
||||||
|
optionInfo.getStyle().setColor(TextFormatting.WHITE);
|
||||||
|
ITextComponent optionInfoBool = new TextComponentString("enabled");
|
||||||
|
optionInfoBool.getStyle().setColor(TextFormatting.GREEN);
|
||||||
|
optionInfo.appendSibling(optionInfoBool).appendText(")");
|
||||||
|
option.appendSibling(optionInfo);
|
||||||
|
}
|
||||||
|
text.appendSibling(option).appendText(", ");
|
||||||
|
|
||||||
|
option = new TextComponentString("animal");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit category animal"));
|
||||||
|
if(TurnBasedMinecraftMod.proxy.getConfig().isIgnoreBattleType("animal"))
|
||||||
|
{
|
||||||
|
ITextComponent optionInfo = new TextComponentString("(battle-");
|
||||||
|
optionInfo.getStyle().setColor(TextFormatting.WHITE);
|
||||||
|
ITextComponent optionInfoBool = new TextComponentString("disabled");
|
||||||
|
optionInfoBool.getStyle().setColor(TextFormatting.RED);
|
||||||
|
optionInfo.appendSibling(optionInfoBool).appendText(")");
|
||||||
|
option.appendSibling(optionInfo);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ITextComponent optionInfo = new TextComponentString("(battle-");
|
||||||
|
optionInfo.getStyle().setColor(TextFormatting.WHITE);
|
||||||
|
ITextComponent optionInfoBool = new TextComponentString("enabled");
|
||||||
|
optionInfoBool.getStyle().setColor(TextFormatting.GREEN);
|
||||||
|
optionInfo.appendSibling(optionInfoBool).appendText(")");
|
||||||
|
option.appendSibling(optionInfo);
|
||||||
|
}
|
||||||
|
text.appendSibling(option).appendText(", ");
|
||||||
|
|
||||||
|
option = new TextComponentString("passive");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit category passive"));
|
||||||
|
if(TurnBasedMinecraftMod.proxy.getConfig().isIgnoreBattleType("passive"))
|
||||||
|
{
|
||||||
|
ITextComponent optionInfo = new TextComponentString("(battle-");
|
||||||
|
optionInfo.getStyle().setColor(TextFormatting.WHITE);
|
||||||
|
ITextComponent optionInfoBool = new TextComponentString("disabled");
|
||||||
|
optionInfoBool.getStyle().setColor(TextFormatting.RED);
|
||||||
|
optionInfo.appendSibling(optionInfoBool).appendText(")");
|
||||||
|
option.appendSibling(optionInfo);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ITextComponent optionInfo = new TextComponentString("(battle-");
|
||||||
|
optionInfo.getStyle().setColor(TextFormatting.WHITE);
|
||||||
|
ITextComponent optionInfoBool = new TextComponentString("enabled");
|
||||||
|
optionInfoBool.getStyle().setColor(TextFormatting.GREEN);
|
||||||
|
optionInfo.appendSibling(optionInfoBool).appendText(")");
|
||||||
|
option.appendSibling(optionInfo);
|
||||||
|
}
|
||||||
|
text.appendSibling(option).appendText(", ");
|
||||||
|
|
||||||
|
option = new TextComponentString("boss");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit category boss"));
|
||||||
|
if(TurnBasedMinecraftMod.proxy.getConfig().isIgnoreBattleType("boss"))
|
||||||
|
{
|
||||||
|
ITextComponent optionInfo = new TextComponentString("(battle-");
|
||||||
|
optionInfo.getStyle().setColor(TextFormatting.WHITE);
|
||||||
|
ITextComponent optionInfoBool = new TextComponentString("disabled");
|
||||||
|
optionInfoBool.getStyle().setColor(TextFormatting.RED);
|
||||||
|
optionInfo.appendSibling(optionInfoBool).appendText(")");
|
||||||
|
option.appendSibling(optionInfo);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ITextComponent optionInfo = new TextComponentString("(battle-");
|
||||||
|
optionInfo.getStyle().setColor(TextFormatting.WHITE);
|
||||||
|
ITextComponent optionInfoBool = new TextComponentString("enabled");
|
||||||
|
optionInfoBool.getStyle().setColor(TextFormatting.GREEN);
|
||||||
|
optionInfo.appendSibling(optionInfoBool).appendText(")");
|
||||||
|
option.appendSibling(optionInfo);
|
||||||
|
}
|
||||||
|
text.appendSibling(option).appendText(", ");
|
||||||
|
|
||||||
|
option = new TextComponentString("player");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit category player"));
|
||||||
|
if(TurnBasedMinecraftMod.proxy.getConfig().isIgnoreBattleType("player"))
|
||||||
|
{
|
||||||
|
ITextComponent optionInfo = new TextComponentString("(battle-");
|
||||||
|
optionInfo.getStyle().setColor(TextFormatting.WHITE);
|
||||||
|
ITextComponent optionInfoBool = new TextComponentString("disabled");
|
||||||
|
optionInfoBool.getStyle().setColor(TextFormatting.RED);
|
||||||
|
optionInfo.appendSibling(optionInfoBool).appendText(")");
|
||||||
|
option.appendSibling(optionInfo);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ITextComponent optionInfo = new TextComponentString("(battle-");
|
||||||
|
optionInfo.getStyle().setColor(TextFormatting.WHITE);
|
||||||
|
ITextComponent optionInfoBool = new TextComponentString("enabled");
|
||||||
|
optionInfoBool.getStyle().setColor(TextFormatting.GREEN);
|
||||||
|
optionInfo.appendSibling(optionInfoBool).appendText(")");
|
||||||
|
option.appendSibling(optionInfo);
|
||||||
|
}
|
||||||
|
text.appendSibling(option);
|
||||||
|
|
||||||
|
text.appendText(" (or use command \"/tbm-edit edit category <string>\")");
|
||||||
|
|
||||||
|
prefix.appendSibling(text);
|
||||||
|
TurnBasedMinecraftMod.proxy.displayTextComponent(prefix);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case EDIT_DECISION_ATTACK:
|
||||||
|
{
|
||||||
|
ITextComponent prefix = new TextComponentString("TBM: ");
|
||||||
|
prefix.getStyle().setColor(TextFormatting.GREEN).setBold(true);
|
||||||
|
ITextComponent text = new TextComponentString("decisionAttack: ");
|
||||||
|
text.getStyle().setColor(TextFormatting.WHITE).setBold(false);
|
||||||
|
|
||||||
|
for(int i = 0; i <= 100; i += 10)
|
||||||
|
{
|
||||||
|
ITextComponent option = new TextComponentString(Integer.toString(i) + "%");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit decisionAttack " + Integer.toString(i)));
|
||||||
|
text.appendSibling(option);
|
||||||
|
if(i < 100)
|
||||||
|
{
|
||||||
|
text.appendText(", ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
prefix.appendSibling(text);
|
||||||
|
TurnBasedMinecraftMod.proxy.displayTextComponent(prefix);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case EDIT_DECISION_DEFEND:
|
||||||
|
{
|
||||||
|
ITextComponent prefix = new TextComponentString("TBM: ");
|
||||||
|
prefix.getStyle().setColor(TextFormatting.GREEN).setBold(true);
|
||||||
|
ITextComponent text = new TextComponentString("decisionDefend: ");
|
||||||
|
text.getStyle().setColor(TextFormatting.WHITE).setBold(false);
|
||||||
|
|
||||||
|
for(int i = 0; i <= 100; i += 10)
|
||||||
|
{
|
||||||
|
ITextComponent option = new TextComponentString(Integer.toString(i) + "%");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit decisionDefend " + Integer.toString(i)));
|
||||||
|
text.appendSibling(option);
|
||||||
|
if(i < 100)
|
||||||
|
{
|
||||||
|
text.appendText(", ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
prefix.appendSibling(text);
|
||||||
|
TurnBasedMinecraftMod.proxy.displayTextComponent(prefix);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case EDIT_DECISION_FLEE:
|
||||||
|
{
|
||||||
|
ITextComponent prefix = new TextComponentString("TBM: ");
|
||||||
|
prefix.getStyle().setColor(TextFormatting.GREEN).setBold(true);
|
||||||
|
ITextComponent text = new TextComponentString("decisionFlee: ");
|
||||||
|
text.getStyle().setColor(TextFormatting.WHITE).setBold(false);
|
||||||
|
|
||||||
|
for(int i = 0; i <= 100; i += 10)
|
||||||
|
{
|
||||||
|
ITextComponent option = new TextComponentString(Integer.toString(i) + "%");
|
||||||
|
option.getStyle().setColor(TextFormatting.YELLOW).setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tbm-edit edit decisionFlee " + Integer.toString(i)));
|
||||||
|
text.appendSibling(option);
|
||||||
|
if(i < 100)
|
||||||
|
{
|
||||||
|
text.appendText(", ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
prefix.appendSibling(text);
|
||||||
|
TurnBasedMinecraftMod.proxy.displayTextComponent(prefix);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue