diff --git a/scripts/equipment/bonus_sets/set_bonus_jedi_robe.py b/scripts/equipment/bonus_sets/set_bonus_jedi_robe.py index e95ceff4..b99f3575 100644 --- a/scripts/equipment/bonus_sets/set_bonus_jedi_robe.py +++ b/scripts/equipment/bonus_sets/set_bonus_jedi_robe.py @@ -4,12 +4,36 @@ from java.util import Vector def addBonusSet(core): bonusSet = BonusSetTemplate("set_bonus_jedi_robe") - bonusSet.addRequiredTemplate("object/tangible/wearables/necklace/shared_necklace_primitive_03.iff") + + # Waitpack + bonusSet.addRequiredTemplate("object/tangible/wearables/backpack/shared_fannypack_s01.iff") + + # Jedi Robes - Light + bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_jedi_light_s01.iff") + bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_jedi_light_s02.iff") + bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_jedi_light_s03.iff") + bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_jedi_light_s04.iff") + bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_jedi_light_s05.iff") + + # Jedi Robes - Dark + bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_jedi_dark_s01.iff") + bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_jedi_dark_s02.iff") + bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_jedi_dark_s03.iff") + bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_jedi_dark_s04.iff") + bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_jedi_dark_s05.iff") + + # Jedi Cloaks + bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_s32.iff") + bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_s32_h1.iff") + bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_s33.iff") + bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_s33_h1.iff") core.equipmentService.addBonusSetTemplate(bonusSet) -def handleEquip(core, creature, set): +def handleChange(core, creature, set): wornItems = set.getWornTemplateCount(creature) - if wornItems == 1: - print('Success!') \ No newline at end of file + if wornItems == 2: + core.buffService.addBuffToCreature(creature, "set_bonus_jedi_robe_1", creature) + else: + core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_jedi_robe_1") \ No newline at end of file diff --git a/scripts/object/tangible/wearables/backpack/fannypack_s01.py b/scripts/object/tangible/wearables/backpack/fannypack_s01.py index ccad8904..b0e3e3ee 100644 --- a/scripts/object/tangible/wearables/backpack/fannypack_s01.py +++ b/scripts/object/tangible/wearables/backpack/fannypack_s01.py @@ -1,4 +1,16 @@ import sys def setup(core, object): + object.setStfFilename('static_item_n') + object.setStfName('item_fannypack_04_01') + object.setDetailFilename('static_item_d') + object.setDetailName('item_fannypack_04_01') + + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 50) + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 50) + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 50) + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 50) + + object.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_jedi_robe_1') + object.setAttachment('setBonus', 'set_bonus_jedi_robe') return \ No newline at end of file diff --git a/scripts/object/tangible/wearables/robe/robe_jedi_light_s03.py b/scripts/object/tangible/wearables/robe/robe_jedi_light_s03.py index abc45f94..904d0be2 100644 --- a/scripts/object/tangible/wearables/robe/robe_jedi_light_s03.py +++ b/scripts/object/tangible/wearables/robe/robe_jedi_light_s03.py @@ -2,15 +2,18 @@ import sys def setup(core, object): object.setStfFilename('static_item_n') - object.setStfName('item_jedi_robe_light_04_04') + object.setStfName('item_jedi_robe_light_03_03') object.setDetailFilename('static_item_d') - object.setDetailName('item_jedi_robe_light_04_04') - object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 185) - object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 185) - object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 185) + object.setDetailName('item_jedi_robe_light_03_03') + object.setStringAttribute('protection_level', 'Luminous') object.setStringAttribute('class_required', 'Jedi') object.setIntAttribute('required_combat_level', 80) + + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 185) + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 185) + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 185) + object.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_jedi_robe_1') object.setAttachment('type', 'jedi_robe') diff --git a/scripts/object/tangible/wearables/robe/robe_jedi_light_s04.py b/scripts/object/tangible/wearables/robe/robe_jedi_light_s04.py index 07760bd3..cbbd49cd 100644 --- a/scripts/object/tangible/wearables/robe/robe_jedi_light_s04.py +++ b/scripts/object/tangible/wearables/robe/robe_jedi_light_s04.py @@ -5,15 +5,22 @@ def setup(core, object): object.setStfName('item_jedi_robe_light_04_04') object.setDetailFilename('static_item_d') object.setDetailName('item_jedi_robe_light_04_04') - object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 250) - object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 250) - object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 250) + object.setStringAttribute('protection_level', 'Radiant') object.setStringAttribute('class_required', 'Jedi') object.setIntAttribute('required_combat_level', 90) - object.setAttachment('type', 'jedi_robe') + + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 250) + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 250) + object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 250) + + object.setStringAttribute('proc_name', '@ui_buff:proc_old_light_jedi_gift') object.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_jedi_robe_1') + + object.setAttachment('type', 'jedi_robe') + object.setAttachment('setBonus', 'set_bonus_jedi_robe') + return \ No newline at end of file diff --git a/src/services/EquipmentService.java b/src/services/EquipmentService.java index 5a324cde..bcd0a519 100644 --- a/src/services/EquipmentService.java +++ b/src/services/EquipmentService.java @@ -230,14 +230,16 @@ public class EquipmentService implements INetworkDispatch { } if(item.getStringAttribute("proc_name") != null) core.buffService.addBuffToCreature(actor, item.getStringAttribute("proc_name").replace("@ui_buff:", ""), actor); + + + if(!actor.getEquipmentList().contains(item)) + actor.addObjectToEquipList(item); + if(item.getAttachment("setBonus") != null) { BonusSetTemplate bonus = bonusSetTemplates.get((String)item.getAttachment("setBonus")); bonus.callScript(actor); } - - if(!actor.getEquipmentList().contains(item)) - actor.addObjectToEquipList(item); } public void unequip(CreatureObject actor, SWGObject item) { @@ -288,9 +290,15 @@ public class EquipmentService implements INetworkDispatch { if(item.getStringAttribute("proc_name") != null) core.buffService.removeBuffFromCreatureByName(actor, item.getStringAttribute("proc_name").replace("@ui_buff:", "")); + if(actor.getEquipmentList().contains(item)) actor.removeObjectFromEquipList(item); + if(item.getAttachment("setBonus") != null) + { + BonusSetTemplate bonus = bonusSetTemplates.get((String)item.getAttachment("setBonus")); + bonus.callScript(actor); + } } public void addBonusSetTemplate(BonusSetTemplate bonusSet) diff --git a/src/services/equipment/BonusSetTemplate.java b/src/services/equipment/BonusSetTemplate.java index 3b965e0a..c224c134 100644 --- a/src/services/equipment/BonusSetTemplate.java +++ b/src/services/equipment/BonusSetTemplate.java @@ -61,15 +61,15 @@ public class BonusSetTemplate if(requiredWornTemplates.contains(item.getTemplate())) wornItems++; } - System.out.println("[BonusSetTemplate] Worn items: " + wornItems); + //System.out.println("[BonusSetTemplate] Worn items: " + wornItems); return wornItems; } public void callScript(CreatureObject creature) { - System.out.println("[BonusSetTemplate] Calling script for: " + this.getName()); + //System.out.println("[BonusSetTemplate] Calling script for: " + this.getName()); - PyObject func = NGECore.getInstance().scriptService.getMethod("scripts/equipment/bonus_sets/", name, "handleEquip"); + PyObject func = NGECore.getInstance().scriptService.getMethod("scripts/equipment/bonus_sets/", name, "handleChange"); if(func != null) func.__call__(Py.java2py(NGECore.getInstance()), Py.java2py(creature), Py.java2py(this)); } }