diff --git a/scripts/character_builder_terminal.py b/scripts/character_builder_terminal.py index 78901ad4..17d09fa7 100644 --- a/scripts/character_builder_terminal.py +++ b/scripts/character_builder_terminal.py @@ -595,6 +595,7 @@ def compositeArmor(owner, inventory): comp_chest.setIntAttribute("cat_armor_special_protection.special_protection_type_electricity", 6000); comp_boots = core.objectService.createObject("object/tangible/wearables/armor/composite/shared_armor_composite_boots.iff", owner.getPlanet()) comp_gloves = core.objectService.createObject("object/tangible/wearables/armor/composite/shared_armor_composite_gloves.iff", owner.getPlanet()) + inventory.add(comp_bicep_r); inventory.add(comp_bicep_l); inventory.add(comp_bracer_r); @@ -610,60 +611,11 @@ def compositeArmor(owner, inventory): def clonetrooperArmor(owner, inventory): clonetrooper_bicep_r = core.objectService.createObject("object/tangible/wearables/armor/clone_trooper/shared_armor_clone_trooper_neutral_s01_bicep_r.iff", owner.getPlanet()) - clonetrooper_bicep_r.setIntAttribute("cat_armor_standard_protection.armor_eff_kinetic", 7000); - clonetrooper_bicep_r.setIntAttribute("cat_armor_standard_protection.armor_eff_energy", 5000); - clonetrooper_bicep_r.setIntAttribute("cat_armor_special_protection.special_protection_type_heat", 6000); - clonetrooper_bicep_r.setIntAttribute("cat_armor_special_protection.special_protection_type_cold", 6000); - clonetrooper_bicep_r.setIntAttribute("cat_armor_special_protection.special_protection_type_acid", 6000); - clonetrooper_bicep_r.setIntAttribute("cat_armor_special_protection.special_protection_type_electricity", 6000); - clonetrooper_bicep_l = core.objectService.createObject("object/tangible/wearables/armor/clone_trooper/shared_armor_clone_trooper_neutral_s01_bicep_l.iff", owner.getPlanet()) - clonetrooper_bicep_l.setIntAttribute("cat_armor_standard_protection.armor_eff_kinetic", 7000); - clonetrooper_bicep_l.setIntAttribute("cat_armor_standard_protection.armor_eff_energy", 5000); - clonetrooper_bicep_l.setIntAttribute("cat_armor_special_protection.special_protection_type_heat", 6000); - clonetrooper_bicep_l.setIntAttribute("cat_armor_special_protection.special_protection_type_cold", 6000); - clonetrooper_bicep_l.setIntAttribute("cat_armor_special_protection.special_protection_type_acid", 6000); - clonetrooper_bicep_l.setIntAttribute("cat_armor_special_protection.special_protection_type_electricity", 6000); - - clonetrooper_bracer_r = core.objectService.createObject("object/tangible/wearables/armor/clone_trooper/shared_armor_clone_trooper_neutral_s01_bracer_r.iff", owner.getPlanet()) - clonetrooper_bracer_r.setIntAttribute("cat_armor_standard_protection.armor_eff_kinetic", 7000); - clonetrooper_bracer_r.setIntAttribute("cat_armor_standard_protection.armor_eff_energy", 5000); - clonetrooper_bracer_r.setIntAttribute("cat_armor_special_protection.special_protection_type_heat", 6000); - clonetrooper_bracer_r.setIntAttribute("cat_armor_special_protection.special_protection_type_cold", 6000); - clonetrooper_bracer_r.setIntAttribute("cat_armor_special_protection.special_protection_type_acid", 6000); - clonetrooper_bracer_r.setIntAttribute("cat_armor_special_protection.special_protection_type_electricity", 6000); - clonetrooper_bracer_l = core.objectService.createObject("object/tangible/wearables/armor/clone_trooper/shared_armor_clone_trooper_neutral_s01_bracer_l.iff", owner.getPlanet()) - clonetrooper_bracer_l.setIntAttribute("cat_armor_standard_protection.armor_eff_kinetic", 7000); - clonetrooper_bracer_l.setIntAttribute("cat_armor_standard_protection.armor_eff_energy", 5000); - clonetrooper_bracer_l.setIntAttribute("cat_armor_special_protection.special_protection_type_heat", 6000); - clonetrooper_bracer_l.setIntAttribute("cat_armor_special_protection.special_protection_type_cold", 6000); - clonetrooper_bracer_l.setIntAttribute("cat_armor_special_protection.special_protection_type_acid", 6000); - clonetrooper_bracer_l.setIntAttribute("cat_armor_special_protection.special_protection_type_electricity", 6000); - clonetrooper_leggings = core.objectService.createObject("object/tangible/wearables/armor/clone_trooper/shared_armor_clone_trooper_neutral_s01_leggings.iff", owner.getPlanet()) - clonetrooper_leggings.setIntAttribute("cat_armor_standard_protection.armor_eff_kinetic", 7000); - clonetrooper_leggings.setIntAttribute("cat_armor_standard_protection.armor_eff_energy", 5000); - clonetrooper_leggings.setIntAttribute("cat_armor_special_protection.special_protection_type_heat", 6000); - clonetrooper_leggings.setIntAttribute("cat_armor_special_protection.special_protection_type_cold", 6000); - clonetrooper_leggings.setIntAttribute("cat_armor_special_protection.special_protection_type_acid", 6000); - clonetrooper_leggings.setIntAttribute("cat_armor_special_protection.special_protection_type_electricity", 6000); - clonetrooper_helmet = core.objectService.createObject("object/tangible/wearables/armor/clone_trooper/shared_armor_clone_trooper_neutral_s01_helmet.iff", owner.getPlanet()) - clonetrooper_helmet.setIntAttribute("cat_armor_standard_protection.armor_eff_kinetic", 7000); - clonetrooper_helmet.setIntAttribute("cat_armor_standard_protection.armor_eff_energy", 5000); - clonetrooper_helmet.setIntAttribute("cat_armor_special_protection.special_protection_type_heat", 6000); - clonetrooper_helmet.setIntAttribute("cat_armor_special_protection.special_protection_type_cold", 6000); - clonetrooper_helmet.setIntAttribute("cat_armor_special_protection.special_protection_type_acid", 6000); - clonetrooper_helmet.setIntAttribute("cat_armor_special_protection.special_protection_type_electricity", 6000); - clonetrooper_chest = core.objectService.createObject("object/tangible/wearables/armor/clone_trooper/shared_armor_clone_trooper_neutral_s01_chest_plate.iff", owner.getPlanet()) - clonetrooper_chest.setIntAttribute("cat_armor_standard_protection.armor_eff_kinetic", 7000); - clonetrooper_chest.setIntAttribute("cat_armor_standard_protection.armor_eff_energy", 5000); - clonetrooper_chest.setIntAttribute("cat_armor_special_protection.special_protection_type_heat", 6000); - clonetrooper_chest.setIntAttribute("cat_armor_special_protection.special_protection_type_cold", 6000); - clonetrooper_chest.setIntAttribute("cat_armor_special_protection.special_protection_type_acid", 6000); - clonetrooper_chest.setIntAttribute("cat_armor_special_protection.special_protection_type_electricity", 6000); clonetrooper_boots = core.objectService.createObject("object/tangible/wearables/armor/clone_trooper/shared_armor_clone_trooper_neutral_s01_boots.iff", owner.getPlanet()) clonetrooper_gloves = core.objectService.createObject("object/tangible/wearables/armor/clone_trooper/shared_armor_clone_trooper_neutral_s01_gloves.iff", owner.getPlanet()) diff --git a/scripts/mobiles/dathomir/undead_deathtrooper.py b/scripts/mobiles/dathomir/undead_deathtrooper.py new file mode 100644 index 00000000..e3ff624f --- /dev/null +++ b/scripts/mobiles/dathomir/undead_deathtrooper.py @@ -0,0 +1,80 @@ +import sys +from services.spawn import MobileTemplate +from services.spawn import WeaponTemplate +from resources.datatables import WeaponType +from resources.datatables import Difficulty +from resources.datatables import Options +from java.util import Vector + +def addTemplate(core): + mobileTemplate = MobileTemplate() + + mobileTemplate.setCreatureName('eow_outbreak_undead_deathtrooper') ##TODO: Needs correct stf name + mobileTemplate.setLevel(5) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setMinSpawnDistance(5) + mobileTemplate.setMaxSpawnDistance(10) + mobileTemplate.setDeathblow(True) + mobileTemplate.setSocialGroup('undead') + mobileTemplate.setAssistRange(15) + mobileTemplate.setRespawnTime(300) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + + templates = Vector() + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_01_f.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_01_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_02_f.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_03_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_04_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_05_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_06_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_07_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_08_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_09_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_10_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_11_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_12_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_13_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_14_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_15_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_16_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_17_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_18_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_19_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_20_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_21_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_22_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_23_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_24_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_25_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_26_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_27_m.iff') + templates.add('object/mobile/shared_outbreak_undead_deathtrooper_28_m.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', WeaponType.RIFLE, 0.8, 0, 'energy') + weaponTemplates.add(weapontemplate) + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.ONEHANDEDMELEE, 1.0, 4, 'kinetic') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('RangedShot') + mobileTemplate.setDefaultAttack('MeleeHit') + mobileTemplate.setAttacks(attacks) + + lootPoolNames_1 = ['Junk'] + lootPoolChances_1 = [100] + lootGroupChance_1 = 65 + mobileTemplate.addToLootGroups(lootPoolNames_1,lootPoolChances_1,lootGroupChance_1) + + lootPoolNames_4 = ['random_stat_jewelry'] + lootPoolChances_4 = [100] + lootGroupChance_4 = 8 + mobileTemplate.addToLootGroups(lootPoolNames_4,lootPoolChances_4,lootGroupChance_4) + + core.spawnService.addMobileTemplate('undead_deathtrooper', mobileTemplate) + + return \ No newline at end of file diff --git a/scripts/mobiles/dynamicgroups/dathomir_quarantine_1.py b/scripts/mobiles/dynamicgroups/dathomir_quarantine_1.py new file mode 100644 index 00000000..12dc55c4 --- /dev/null +++ b/scripts/mobiles/dynamicgroups/dathomir_quarantine_1.py @@ -0,0 +1,16 @@ +import sys +from java.util import Vector +from services.spawn import DynamicSpawnGroup +from services.spawn import MobileTemplate + +def addDynamicGroup(core): + dynamicGroup = DynamicSpawnGroup() + mobileTemplates = Vector() + mobileTemplates.add('undead_deathtrooper') + dynamicGroup.setMobiles(mobileTemplates) + dynamicGroup.setGroupMembersNumber(5) + dynamicGroup.setName('dathomir_deathtroopers_1') + dynamicGroup.setMaxSpawns(-1) + dynamicGroup.setMinSpawnDistance(10) + core.spawnService.addDynamicGroup('dathomir_level_5_deathtroopers', dynamicGroup) + return diff --git a/scripts/mobiles/spawnareas/dathomir_quarantine.py b/scripts/mobiles/spawnareas/dathomir_quarantine.py new file mode 100644 index 00000000..5b8f0b6f --- /dev/null +++ b/scripts/mobiles/spawnareas/dathomir_quarantine.py @@ -0,0 +1,12 @@ +import sys +from java.util import Vector + +def addSpawnArea(core): + dynamicGroups = Vector() + dynamicGroups.add('dathomir_level_5_deathtroopers') + core.spawnService.addDynamicSpawnArea(dynamicGroups, -5700, -6500, 100, 'dathomir') + core.spawnService.addDynamicSpawnArea(dynamicGroups, -5640, -6550, 100, 'dathomir') + core.spawnService.addDynamicSpawnArea(dynamicGroups, -5850, -6400, 100, 'dathomir') + core.spawnService.addDynamicSpawnArea(dynamicGroups, -5800, -6500, 100, 'dathomir') + core.spawnService.addDynamicSpawnArea(dynamicGroups, -5600, -6525, 100, 'dathomir') + return diff --git a/scripts/mobiles/spawnareas/dathomir_quarantine_entrance.py b/scripts/mobiles/spawnareas/dathomir_quarantine_entrance.py deleted file mode 100644 index 3660d7b6..00000000 --- a/scripts/mobiles/spawnareas/dathomir_quarantine_entrance.py +++ /dev/null @@ -1,9 +0,0 @@ -# Spawn Area file created with PSWG Planetary Spawn Tool -import sys -from java.util import Vector - -def addSpawnArea(core): - dynamicGroups = Vector() - dynamicGroups.add('dark_jedi_wild_1') - core.spawnService.addDynamicSpawnArea(dynamicGroups, -5700, -6478, 100, 'dathomir') - return diff --git a/scripts/object/tangible/component/weapon/lightsaber/lightsaber_module_blackwing_crystal.py b/scripts/object/tangible/component/weapon/lightsaber/lightsaber_module_blackwing_crystal.py index ccad8904..77e03485 100644 --- a/scripts/object/tangible/component/weapon/lightsaber/lightsaber_module_blackwing_crystal.py +++ b/scripts/object/tangible/component/weapon/lightsaber/lightsaber_module_blackwing_crystal.py @@ -1,4 +1,9 @@ import sys def setup(core, object): - return \ No newline at end of file + object.setStringAttribute('condition', '100/100') + object.setStringAttribute('@obj_attr_n:color', 'Blackwing Bezoar') + object.setAttachment('radial_filename', 'item/tunable') + object.setStringAttribute('@obj_attr_n:crystal_owner", "\\#D1F56F UNTUNED \\#FFFFFF ') + return + \ No newline at end of file diff --git a/scripts/object/tangible/gcw/gcw_invasion_binoculars_01.py b/scripts/object/tangible/gcw/gcw_invasion_binoculars_01.py index 02df443d..ca6b996e 100644 --- a/scripts/object/tangible/gcw/gcw_invasion_binoculars_01.py +++ b/scripts/object/tangible/gcw/gcw_invasion_binoculars_01.py @@ -2,6 +2,7 @@ import sys def setup(core, object): object.setIntAttribute('no_trade', 1) + object.setIntAttribute('reuse_time', 5) object.setAttachment('radial_filename', 'object/usable') object.setStfFilename('static_item_n') object.setStfName('invasion_gcw_binoculars_01_01') diff --git a/scripts/static_spawns/dathomir/placeholder.txt b/scripts/static_spawns/dathomir/placeholder.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/src/services/object/ObjectService.java b/src/services/object/ObjectService.java index ab0f4eae..857b54ac 100644 --- a/src/services/object/ObjectService.java +++ b/src/services/object/ObjectService.java @@ -1288,7 +1288,8 @@ public class ObjectService implements INetworkDispatch { if(! checkIfObjectAlreadyInList(object.getObjectID())) objectList.put(object.getObjectID(), object); } else { - Thread.currentThread().dumpStack(); + Thread.currentThread(); + Thread.dumpStack(); } }); @@ -1731,12 +1732,12 @@ public class ObjectService implements INetworkDispatch { } private void addCellsToBuildings(){ - Iterator it = null; + Iterator it = null; synchronized(buildingMap){ it = buildingMap.entrySet().iterator(); } while (it.hasNext()) { - Map.Entry pairs = (Map.Entry)it.next(); + Map.Entry pairs = (Map.Entry)it.next(); long buildingId = (long) pairs.getKey(); BuildingObject building = (BuildingObject)pairs.getValue(); //System.out.println("We have buildingId " +buildingId);