diff --git a/src/com/gpl/rpg/atcontentstudio/model/gamedata/Item.java b/src/com/gpl/rpg/atcontentstudio/model/gamedata/Item.java index 03d0e6f..e40afb5 100644 --- a/src/com/gpl/rpg/atcontentstudio/model/gamedata/Item.java +++ b/src/com/gpl/rpg/atcontentstudio/model/gamedata/Item.java @@ -83,6 +83,7 @@ public class Item extends JSONElement { public Integer increase_block_chance = null; public Integer increase_damage_resistance = null; public Double critical_multiplier = null; + public Integer damage_modifier = null; } public static class ConditionEffect { @@ -202,7 +203,8 @@ public class Item extends JSONElement { //TODO correct game data, to unify format. // this.equip_effect.critical_multiplier = JSONElement.getDouble((Number) equipEffect.get("setCriticalMultiplier")); if (equipEffect.get("setCriticalMultiplier") != null) this.equip_effect.critical_multiplier = JSONElement.getDouble(Double.parseDouble(equipEffect.get("setCriticalMultiplier").toString())); - + this.equip_effect.damage_modifier = JSONElement.getInteger((Number) equipEffect.get("setDamageModifier")); + List conditionsJson = (List) equipEffect.get("addedConditions"); if (conditionsJson != null && !conditionsJson.isEmpty()) { this.equip_effect.conditions = new ArrayList(); @@ -426,6 +428,7 @@ public class Item extends JSONElement { clone.has_manual_price = this.has_manual_price; if (this.equip_effect != null) { clone.equip_effect = new EquipEffect(); + clone.equip_effect.damage_modifier = this.equip_effect.damage_modifier; clone.equip_effect.critical_multiplier = this.equip_effect.critical_multiplier; clone.equip_effect.damage_boost_max = this.equip_effect.damage_boost_max; clone.equip_effect.damage_boost_min = this.equip_effect.damage_boost_min; @@ -642,6 +645,7 @@ public class Item extends JSONElement { if (this.equip_effect.increase_block_chance != null) equipEffectJson.put("increaseBlockChance", this.equip_effect.increase_block_chance); if (this.equip_effect.increase_damage_resistance != null) equipEffectJson.put("increaseDamageResistance", this.equip_effect.increase_damage_resistance); if (this.equip_effect.critical_multiplier != null) equipEffectJson.put("setCriticalMultiplier", this.equip_effect.critical_multiplier); + if (this.equip_effect.damage_modifier != null) equipEffectJson.put("setDamageModifier", this.equip_effect.damage_modifier); if (this.equip_effect.conditions != null) { List conditionsJson = new ArrayList(); equipEffectJson.put("addedConditions", conditionsJson); diff --git a/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/ItemEditor.java b/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/ItemEditor.java index 11434b6..6f8c00a 100644 --- a/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/ItemEditor.java +++ b/src/com/gpl/rpg/atcontentstudio/ui/gamedataeditors/ItemEditor.java @@ -82,6 +82,7 @@ public class ItemEditor extends JSONElementEditor { private JSpinner equipBoostBC; private JSpinner equipBoostCS; private JSpinner equipSetCM; + private JSpinner equipSetDM; private JSpinner equipBoostDR; private JSpinner equipIncMoveCost; private JSpinner equipIncUseCost; @@ -217,6 +218,7 @@ public class ItemEditor extends JSONElementEditor { } equipDmgMin = addIntegerField(equipEffectPane, "Attack Damage min: ", equipEffect.damage_boost_min, true, item.writable, listener); equipDmgMax = addIntegerField(equipEffectPane, "Attack Damage max: ", equipEffect.damage_boost_max, true, item.writable, listener); + equipSetDM = addIntegerField(equipEffectPane, "Damage modifier: ", equipEffect.damage_modifier, false, item.writable, listener); equipBoostHP = addIntegerField(equipEffectPane, "Boost max HP: ", equipEffect.max_hp_boost, true, item.writable, listener); equipBoostAP = addIntegerField(equipEffectPane, "Boost max AP: ", equipEffect.max_ap_boost, true, item.writable, listener); equipBoostAC = addIntegerField(equipEffectPane, "Boost attack chance: ", equipEffect.increase_attack_chance, true, item.writable, listener); @@ -1431,6 +1433,7 @@ public class ItemEditor extends JSONElementEditor { public static boolean isNull(Item.EquipEffect effect) { if (effect.conditions != null) return false; if (effect.critical_multiplier != null) return false; + if (effect.damage_modifier != null) return false; if (effect.damage_boost_max != null) return false; if (effect.damage_boost_min != null) return false; if (effect.increase_attack_chance != null) return false; @@ -1619,6 +1622,10 @@ public class ItemEditor extends JSONElementEditor { equipEffect.critical_multiplier = (Double) value; updatePrice = true; updateEquip = true; + } else if (source == equipSetDM) { + equipEffect.damage_modifier = (Integer) value; + updatePrice = true; + updateEquip = true; } else if (source == equipBoostDR) { equipEffect.increase_damage_resistance = (Integer) value; updatePrice = true; diff --git a/src/com/gpl/rpg/atcontentstudio/ui/tools/ItemsTableView.java b/src/com/gpl/rpg/atcontentstudio/ui/tools/ItemsTableView.java index 834a448..448cd43 100644 --- a/src/com/gpl/rpg/atcontentstudio/ui/tools/ItemsTableView.java +++ b/src/com/gpl/rpg/atcontentstudio/ui/tools/ItemsTableView.java @@ -37,7 +37,7 @@ public class ItemsTableView extends ElementTableView { @Override public int getColumnCount() { - return 33; + return 43; } @Override @@ -62,20 +62,30 @@ public class ItemsTableView extends ElementTableView { case 16: return "On kill - AP min"; case 17: return "On kill - AP max"; case 18: return "On kill - # conditions"; - case 19: return "AD min"; - case 20: return "AD max"; - case 21: return "Max HP"; - case 22: return "Max AP"; - case 23: return "Attack cost"; - case 24: return "AC"; - case 25: return "BC"; - case 26: return "DR"; - case 27: return "CS"; - case 28: return "CM"; - case 29: return "Move cost"; - case 30: return "Use cost"; - case 31: return "Reequip cost"; - case 32: return "# conditions"; + case 19: return "On hit recv - HP min"; + case 20: return "On hit recv - HP max"; + case 21: return "On hit recv - AP min"; + case 22: return "On hit recv - AP max"; + case 23: return "On hit recv - # conditions"; + case 24: return "On hit recv - Tgt HP min"; + case 25: return "On hit recv - Tgt HP max"; + case 26: return "On hit recv - Tgt AP min"; + case 27: return "On hit recv - Tgt AP max"; + case 28: return "AD min"; + case 29: return "AD max"; + case 30: return "Damage modifier"; + case 31: return "Max HP"; + case 32: return "Max AP"; + case 33: return "Attack cost"; + case 34: return "AC"; + case 35: return "BC"; + case 36: return "DR"; + case 37: return "CS"; + case 38: return "CM"; + case 39: return "Move cost"; + case 40: return "Use cost"; + case 41: return "Reequip cost"; + case 42: return "# conditions"; } return null; } @@ -103,20 +113,30 @@ public class ItemsTableView extends ElementTableView { case 16: return Integer.class;//"On kill - AP min"; case 17: return Integer.class;//"On kill - AP max"; case 18: return Integer.class;//"On kill - # conditions"; - case 19: return Integer.class;//"AD min"; - case 20: return Integer.class;//"AD max"; - case 21: return Integer.class;//"Max HP"; - case 22: return Integer.class;//"Max AP"; - case 23: return Integer.class;//"Attack cost"; - case 24: return Integer.class;//"AC"; - case 25: return Integer.class;//"BC"; - case 26: return Integer.class;//"DR"; - case 27: return Integer.class;//"CS"; - case 28: return Double.class;//"CM"; - case 29: return Integer.class;//"Move cost"; - case 30: return Integer.class;//"Use cost"; - case 31: return Integer.class;//"Reequip cost"; - case 32: return Integer.class;//"# conditions"; + case 19: return Integer.class;//"On hit recv - HP min"; + case 20: return Integer.class;//"On hit recv - HP max"; + case 21: return Integer.class;//"On hit recv - AP min"; + case 22: return Integer.class;//"On hit recv - AP max"; + case 23: return Integer.class;//"On hit recv - # conditions"; + case 24: return Integer.class;//"On hit recv - Tgt HP min"; + case 25: return Integer.class;//"On hit recv - Tgt HP max"; + case 26: return Integer.class;//"On hit recv - Tgt AP min"; + case 27: return Integer.class;//"On hit recv - Tgt AP max"; + case 28: return Integer.class;//"AD min"; + case 29: return Integer.class;//"AD max"; + case 30: return Integer.class;//"Damage modifier"; + case 31: return Integer.class;//"Max HP"; + case 32: return Integer.class;//"Max AP"; + case 33: return Integer.class;//"Attack cost"; + case 34: return Integer.class;//"AC"; + case 35: return Integer.class;//"BC"; + case 36: return Integer.class;//"DR"; + case 37: return Integer.class;//"CS"; + case 38: return Double.class;//"CM"; + case 39: return Integer.class;//"Move cost"; + case 40: return Integer.class;//"Use cost"; + case 41: return Integer.class;//"Reequip cost"; + case 42: return Integer.class;//"# conditions"; } return null; } @@ -177,20 +197,30 @@ public class ItemsTableView extends ElementTableView { case 16: return (!canUse && item.kill_effect != null) ? item.kill_effect.ap_boost_min : null;//"On kill - AP min"; case 17: return (!canUse && item.kill_effect != null) ? item.kill_effect.ap_boost_max : null;//"On kill - AP max"; case 18: return (!canUse && item.kill_effect != null && item.kill_effect.conditions_source != null) ? item.kill_effect.conditions_source.size() : null;//"On kill - # conditions"; - case 19: return (canEquip && item.equip_effect != null) ? item.equip_effect.damage_boost_min : null;//"AD min"; - case 20: return (canEquip && item.equip_effect != null) ? item.equip_effect.damage_boost_max : null;//"AD max"; - case 21: return (canEquip && item.equip_effect != null) ? item.equip_effect.max_hp_boost : null;//"Max HP"; - case 22: return (canEquip && item.equip_effect != null) ? item.equip_effect.max_ap_boost : null;//"Max AP"; - case 23: return (canEquip && item.equip_effect != null) ? item.equip_effect.increase_attack_cost : null;//"Attack cost"; - case 24: return (canEquip && item.equip_effect != null) ? item.equip_effect.increase_attack_chance : null;//"AC"; - case 25: return (canEquip && item.equip_effect != null) ? item.equip_effect.increase_block_chance : null;//"BC"; - case 26: return (canEquip && item.equip_effect != null) ? item.equip_effect.increase_damage_resistance : null;//"DR"; - case 27: return (canEquip && item.equip_effect != null) ? item.equip_effect.increase_critical_skill : null;//"CS"; - case 28: return (canEquip && item.equip_effect != null) ? item.equip_effect.critical_multiplier : null;//"CM"; - case 29: return (canEquip && item.equip_effect != null) ? item.equip_effect.increase_move_cost : null;//"Move cost"; - case 30: return (canEquip && item.equip_effect != null) ? item.equip_effect.increase_use_item_cost : null;//"Use cost"; - case 31: return (canEquip && item.equip_effect != null) ? item.equip_effect.increase_reequip_cost : null;//"Reequip cost"; - case 32: return (canEquip && item.equip_effect != null && item.equip_effect.conditions != null) ? item.equip_effect.conditions.size() : null;//"# conditions"; + case 19: return (!canUse && item.hit_received_effect != null) ? item.hit_received_effect.hp_boost_min : null;//"On hit recv - HP min"; + case 20: return (!canUse && item.hit_received_effect != null) ? item.hit_received_effect.hp_boost_max : null;//"On hit recv - HP max"; + case 21: return (!canUse && item.hit_received_effect != null) ? item.hit_received_effect.ap_boost_min : null;//"On hit recv - AP min"; + case 22: return (!canUse && item.hit_received_effect != null) ? item.hit_received_effect.ap_boost_max : null;//"On hit recv - AP max"; + case 23: return (!canUse && item.hit_received_effect != null && item.hit_received_effect.conditions_source != null) ? item.hit_received_effect.conditions_source.size() : null;//"On hit recv - # conditions"; + case 24: return (!canUse && item.hit_received_effect != null) ? item.hit_received_effect.hp_boost_min : null;//"On hit recv - Tgt HP min"; + case 25: return (!canUse && item.hit_received_effect != null) ? item.hit_received_effect.hp_boost_max : null;//"On hit recv - Tgt HP max"; + case 26: return (!canUse && item.hit_received_effect != null) ? item.hit_received_effect.ap_boost_min : null;//"On hit recv - Tgt AP min"; + case 27: return (!canUse && item.hit_received_effect != null) ? item.hit_received_effect.ap_boost_max : null;//"On hit recv - Tgt AP max"; + case 28: return (canEquip && item.equip_effect != null) ? item.equip_effect.damage_boost_min : null;//"AD min"; + case 29: return (canEquip && item.equip_effect != null) ? item.equip_effect.damage_boost_max : null;//"AD max"; + case 30: return (canEquip && item.equip_effect != null) ? item.equip_effect.damage_modifier : null;//"Damage modifier"; + case 31: return (canEquip && item.equip_effect != null) ? item.equip_effect.max_hp_boost : null;//"Max HP"; + case 32: return (canEquip && item.equip_effect != null) ? item.equip_effect.max_ap_boost : null;//"Max AP"; + case 33: return (canEquip && item.equip_effect != null) ? item.equip_effect.increase_attack_cost : null;//"Attack cost"; + case 34: return (canEquip && item.equip_effect != null) ? item.equip_effect.increase_attack_chance : null;//"AC"; + case 35: return (canEquip && item.equip_effect != null) ? item.equip_effect.increase_block_chance : null;//"BC"; + case 36: return (canEquip && item.equip_effect != null) ? item.equip_effect.increase_damage_resistance : null;//"DR"; + case 37: return (canEquip && item.equip_effect != null) ? item.equip_effect.increase_critical_skill : null;//"CS"; + case 38: return (canEquip && item.equip_effect != null) ? item.equip_effect.critical_multiplier : null;//"CM"; + case 39: return (canEquip && item.equip_effect != null) ? item.equip_effect.increase_move_cost : null;//"Move cost"; + case 40: return (canEquip && item.equip_effect != null) ? item.equip_effect.increase_use_item_cost : null;//"Use cost"; + case 41: return (canEquip && item.equip_effect != null) ? item.equip_effect.increase_reequip_cost : null;//"Reequip cost"; + case 42: return (canEquip && item.equip_effect != null && item.equip_effect.conditions != null) ? item.equip_effect.conditions.size() : null;//"# conditions"; } return null; }