diff --git a/scripts/mobiles/canon/jedi_master.py b/scripts/mobiles/canon/jedi_master.py index afc80223..665f85a0 100644 --- a/scripts/mobiles/canon/jedi_master.py +++ b/scripts/mobiles/canon/jedi_master.py @@ -1,6 +1,8 @@ import sys from services.spawn import MobileTemplate from services.spawn import WeaponTemplate +from resources.datatables import WeaponType +from resources.datatables import Difficulty from java.util import Vector def addTemplate(core): @@ -8,10 +10,7 @@ def addTemplate(core): mobileTemplate.setCreatureName('eow_dark_jedi_sentinel_uber') mobileTemplate.setLevel(90) - mobileTemplate.setDifficulty(2) - mobileTemplate.setAttackRange(6) - mobileTemplate.setAttackSpeed(1.0) - mobileTemplate.setWeaponType(9) + mobileTemplate.setDifficulty(Difficulty.BOSS) templates = Vector() templates.add('object/mobile/shared_dressed_dark_jedi_master_female_twk_01.iff') @@ -25,11 +24,11 @@ def addTemplate(core): mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_gen5.iff', 9, 1.0) + weapontemplate = WeaponTemplate('object/weapon/melee/sword/crafted_saber/shared_sword_lightsaber_one_handed_gen5.iff', WeaponType.ONEHANDEDSABER, 1.0, 5, 'energy') weaponTemplates.add(weapontemplate) - weapontemplate = WeaponTemplate('object/weapon/melee/2h_sword/crafted_saber/shared_sword_lightsaber_two_handed_gen5.iff', 10, 1.0) + weapontemplate = WeaponTemplate('object/weapon/melee/2h_sword/crafted_saber/shared_sword_lightsaber_two_handed_gen5.iff', WeaponType.TWOHANDEDSABER, 1.0, 5, 'energy') weaponTemplates.add(weapontemplate) - weapontemplate = WeaponTemplate('object/weapon/melee/polearm/crafted_saber/shared_sword_lightsaber_polearm_gen5.iff', 11, 1.0) + weapontemplate = WeaponTemplate('object/weapon/melee/polearm/crafted_saber/shared_sword_lightsaber_polearm_gen5.iff', WeaponType.POLEARMSABER, 1.0, 5, 'energy') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) @@ -38,4 +37,5 @@ def addTemplate(core): mobileTemplate.setAttacks(attacks) core.spawnService.addMobileTemplate('jedi_master', mobileTemplate) - \ No newline at end of file + + return \ No newline at end of file diff --git a/scripts/mobiles/canon/scout_trooper.py b/scripts/mobiles/canon/scout_trooper.py index 2b446944..bf69709a 100644 --- a/scripts/mobiles/canon/scout_trooper.py +++ b/scripts/mobiles/canon/scout_trooper.py @@ -1,6 +1,8 @@ import sys from services.spawn import MobileTemplate from services.spawn import WeaponTemplate +from resources.datatables import WeaponType +from resources.datatables import Difficulty from java.util import Vector def addTemplate(core): @@ -8,17 +10,14 @@ def addTemplate(core): mobileTemplate.setCreatureName('scout_trooper') mobileTemplate.setLevel(90) - mobileTemplate.setDifficulty(0) - mobileTemplate.setAttackRange(24) - mobileTemplate.setAttackSpeed(0.4) - mobileTemplate.setWeaponType(1) + mobileTemplate.setDifficulty(Difficulty.NORMAL) templates = Vector() templates.add('object/mobile/shared_dressed_scout_trooper_m.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', 0, 1.0) + weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', WeaponType.PISTOL, 1.0, 24, 'energy') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) @@ -29,3 +28,4 @@ def addTemplate(core): core.spawnService.addMobileTemplate('scout_trooper', mobileTemplate) + return diff --git a/scripts/mobiles/canon/storm_commando.py b/scripts/mobiles/canon/storm_commando.py index b6bf6523..b959a532 100644 --- a/scripts/mobiles/canon/storm_commando.py +++ b/scripts/mobiles/canon/storm_commando.py @@ -1,6 +1,8 @@ import sys from services.spawn import MobileTemplate from services.spawn import WeaponTemplate +from resources.datatables import WeaponType +from resources.datatables import Difficulty from java.util import Vector def addTemplate(core): @@ -8,19 +10,16 @@ def addTemplate(core): mobileTemplate.setCreatureName('storm_commando') mobileTemplate.setLevel(71) - mobileTemplate.setDifficulty(0) - mobileTemplate.setAttackRange(24) - mobileTemplate.setAttackSpeed(0.4) - mobileTemplate.setWeaponType(1) + mobileTemplate.setDifficulty(Difficulty.NORMAL) templates = Vector() templates.add('object/mobile/shared_dressed_scout_trooper_black_black.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', 0, 1.0) + weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', WeaponType.PISTOL, 1.0, 24, 'energy') weaponTemplates.add(weapontemplate) - weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_dx2.iff', 0, 1.0) + weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_dx2.iff', WeaponType.PISTOL, 1.0, 24, 'energy') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) @@ -31,3 +30,4 @@ def addTemplate(core): core.spawnService.addMobileTemplate('storm_commando', mobileTemplate) + return diff --git a/scripts/mobiles/canon/stormtrooper.py b/scripts/mobiles/canon/stormtrooper.py index a7a49123..5514682b 100644 --- a/scripts/mobiles/canon/stormtrooper.py +++ b/scripts/mobiles/canon/stormtrooper.py @@ -1,6 +1,8 @@ import sys from services.spawn import MobileTemplate from services.spawn import WeaponTemplate +from resources.datatables import WeaponType +from resources.datatables import Difficulty from java.util import Vector def addTemplate(core): @@ -8,19 +10,16 @@ def addTemplate(core): mobileTemplate.setCreatureName('stormtrooper') mobileTemplate.setLevel(90) - mobileTemplate.setDifficulty(0) - mobileTemplate.setAttackRange(24) - mobileTemplate.setAttackSpeed(1.0) - mobileTemplate.setWeaponType(0) + mobileTemplate.setDifficulty(Difficulty.NORMAL) templates = Vector() templates.add('object/mobile/shared_dressed_stormtrooper_m.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', 0, 1.0) + weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_e11.iff', WeaponType.RIFLE, 1.0, 24, 'energy') weaponTemplates.add(weapontemplate) - weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_t21.iff', 0, 1.0) + weapontemplate = WeaponTemplate('object/weapon/ranged/rifle/shared_rifle_t21.iff', WeaponType.RIFLE, 1.0, 24, 'energy') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) @@ -30,4 +29,4 @@ def addTemplate(core): mobileTemplate.setAttacks(attacks) core.spawnService.addMobileTemplate('stormtrooper', mobileTemplate) - \ No newline at end of file + return \ No newline at end of file diff --git a/scripts/mobiles/canon/stormtrooper_squad_leader.py b/scripts/mobiles/canon/stormtrooper_squad_leader.py index 8fbea697..b6eab7fd 100644 --- a/scripts/mobiles/canon/stormtrooper_squad_leader.py +++ b/scripts/mobiles/canon/stormtrooper_squad_leader.py @@ -1,6 +1,8 @@ import sys from services.spawn import MobileTemplate from services.spawn import WeaponTemplate +from resources.datatables import WeaponType +from resources.datatables import Difficulty from java.util import Vector def addTemplate(core): @@ -8,17 +10,14 @@ def addTemplate(core): mobileTemplate.setCreatureName('stormtrooper_squad_leader') mobileTemplate.setLevel(28) - mobileTemplate.setDifficulty(0) - mobileTemplate.setAttackRange(24) - mobileTemplate.setAttackSpeed(0.4) - mobileTemplate.setWeaponType(1) + mobileTemplate.setDifficulty(Difficulty.NORMAL) templates = Vector() templates.add('object/mobile/shared_dressed_stormtrooper_squad_leader_white_white.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', 0, 1.0) + weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', WeaponType.PISTOL, 1.0, 24, 'energy') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) @@ -29,3 +28,4 @@ def addTemplate(core): core.spawnService.addMobileTemplate('stormtrooper_squad_leader', mobileTemplate) + return diff --git a/scripts/mobiles/canon/swamp_trooper.py b/scripts/mobiles/canon/swamp_trooper.py index 4ade7e9a..c5c430d8 100644 --- a/scripts/mobiles/canon/swamp_trooper.py +++ b/scripts/mobiles/canon/swamp_trooper.py @@ -1,6 +1,8 @@ import sys from services.spawn import MobileTemplate from services.spawn import WeaponTemplate +from resources.datatables import WeaponType +from resources.datatables import Difficulty from java.util import Vector def addTemplate(core): @@ -8,17 +10,14 @@ def addTemplate(core): mobileTemplate.setCreatureName('swamp_trooper') mobileTemplate.setLevel(33) - mobileTemplate.setDifficulty(0) - mobileTemplate.setAttackRange(24) - mobileTemplate.setAttackSpeed(0.4) - mobileTemplate.setWeaponType(0) + mobileTemplate.setDifficulty(Difficulty.NORMAL) templates = Vector() templates.add('object/mobile/shared_dressed_swamp_trooper_m.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', 0, 1.0) + weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_scout_blaster.iff', WeaponType.PISTOL, 1.0, 24, 'energy') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) @@ -29,3 +28,4 @@ def addTemplate(core): core.spawnService.addMobileTemplate('swamp_trooper', mobileTemplate) + return diff --git a/scripts/mobiles/corellia/acicular_defender.py b/scripts/mobiles/corellia/acicular_defender.py index 1a782b1d..cfad35e0 100644 --- a/scripts/mobiles/corellia/acicular_defender.py +++ b/scripts/mobiles/corellia/acicular_defender.py @@ -1,6 +1,8 @@ import sys from services.spawn import MobileTemplate from services.spawn import WeaponTemplate +from resources.datatables import WeaponType +from resources.datatables import Difficulty from java.util import Vector def addTemplate(core): @@ -8,10 +10,7 @@ def addTemplate(core): mobileTemplate.setCreatureName('paralope_acicular_defender') mobileTemplate.setLevel(5) - mobileTemplate.setDifficulty(0) - mobileTemplate.setAttackRange(5) - mobileTemplate.setAttackSpeed(1.0) - mobileTemplate.setWeaponType(6) + mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) mobileTemplate.setMaxSpawnDistance(8) mobileTemplate.setDeathblow(False) @@ -31,7 +30,7 @@ def addTemplate(core): mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0) + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 5, 'kinetic') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) diff --git a/scripts/mobiles/corellia/afarathu_brute.py b/scripts/mobiles/corellia/afarathu_brute.py index 7f0117bb..c668fd78 100644 --- a/scripts/mobiles/corellia/afarathu_brute.py +++ b/scripts/mobiles/corellia/afarathu_brute.py @@ -1,6 +1,9 @@ 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): @@ -8,10 +11,7 @@ def addTemplate(core): mobileTemplate.setCreatureName('afarathu_cult_brute') mobileTemplate.setLevel(29) - mobileTemplate.setDifficulty(0) - mobileTemplate.setAttackRange(15) - mobileTemplate.setAttackSpeed(1.0) - mobileTemplate.setWeaponType(1) + mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) mobileTemplate.setMaxSpawnDistance(8) mobileTemplate.setDeathblow(True) @@ -19,7 +19,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("afarathu") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - mobileTemplate.setOptionsBitmask(192) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE + Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_dressed_selonian_m_01.iff') @@ -49,7 +49,7 @@ def addTemplate(core): mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0) + weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', WeaponType.RIFLE, 1.0, 15, 'energy') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) diff --git a/scripts/mobiles/corellia/afarathu_cult_bodyguard.py b/scripts/mobiles/corellia/afarathu_cult_bodyguard.py index ee9ed78a..7c671aa8 100644 --- a/scripts/mobiles/corellia/afarathu_cult_bodyguard.py +++ b/scripts/mobiles/corellia/afarathu_cult_bodyguard.py @@ -1,6 +1,9 @@ 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): @@ -8,10 +11,7 @@ def addTemplate(core): mobileTemplate.setCreatureName('afarathu_cult_bodyguard') mobileTemplate.setLevel(30) - mobileTemplate.setDifficulty(0) - mobileTemplate.setAttackRange(15) - mobileTemplate.setAttackSpeed(1.0) - mobileTemplate.setWeaponType(1) + mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) mobileTemplate.setMaxSpawnDistance(8) mobileTemplate.setDeathblow(True) @@ -19,7 +19,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("afarathu") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - mobileTemplate.setOptionsBitmask(192) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE + Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_dressed_selonian_m_01.iff') @@ -49,7 +49,7 @@ def addTemplate(core): mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0) + weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', WeaponType.RIFLE, 1.0, 15, 'energy') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) diff --git a/scripts/mobiles/corellia/afarathu_cult_follower.py b/scripts/mobiles/corellia/afarathu_cult_follower.py index 05054521..9c3cd8f0 100644 --- a/scripts/mobiles/corellia/afarathu_cult_follower.py +++ b/scripts/mobiles/corellia/afarathu_cult_follower.py @@ -1,6 +1,9 @@ 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): @@ -8,10 +11,7 @@ def addTemplate(core): mobileTemplate.setCreatureName('afarathu_cult_brute') mobileTemplate.setLevel(30) - mobileTemplate.setDifficulty(0) - mobileTemplate.setAttackRange(5) - mobileTemplate.setAttackSpeed(1.0) - mobileTemplate.setWeaponType(7) + mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) mobileTemplate.setMaxSpawnDistance(8) mobileTemplate.setDeathblow(True) @@ -19,7 +19,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("afarathu") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_dressed_selonian_m_01.iff') @@ -49,7 +49,7 @@ def addTemplate(core): mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_polearm_vibro_axe.iff', 7, 1.0) + weapontemplate = WeaponTemplate('object/weapon/melee/polearm/shared_polearm_vibro_axe.iff', WeaponType.POLEARMMELEE, 1.0, 5, 'kinetic') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) diff --git a/scripts/mobiles/corellia/afarathu_cult_leader.py b/scripts/mobiles/corellia/afarathu_cult_leader.py index 0a477fc2..5ca1a412 100644 --- a/scripts/mobiles/corellia/afarathu_cult_leader.py +++ b/scripts/mobiles/corellia/afarathu_cult_leader.py @@ -1,6 +1,9 @@ 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): @@ -8,10 +11,7 @@ def addTemplate(core): mobileTemplate.setCreatureName('afarathu_cult_leader') mobileTemplate.setLevel(31) - mobileTemplate.setDifficulty(0) - mobileTemplate.setAttackRange(15) - mobileTemplate.setAttackSpeed(1.0) - mobileTemplate.setWeaponType(1) + mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) mobileTemplate.setMaxSpawnDistance(8) mobileTemplate.setDeathblow(True) @@ -19,7 +19,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("afarathu") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - mobileTemplate.setOptionsBitmask(192) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE + Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_dressed_selonian_m_01.iff') @@ -49,7 +49,7 @@ def addTemplate(core): mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0) + weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', WeaponType.RIFLE, 1.0, 15, 'energy') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) diff --git a/scripts/mobiles/corellia/afarathu_cult_zealot.py b/scripts/mobiles/corellia/afarathu_cult_zealot.py index a802d628..1a5e4df3 100644 --- a/scripts/mobiles/corellia/afarathu_cult_zealot.py +++ b/scripts/mobiles/corellia/afarathu_cult_zealot.py @@ -1,6 +1,9 @@ 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): @@ -8,10 +11,7 @@ def addTemplate(core): mobileTemplate.setCreatureName('afarathu_cult_zealot') mobileTemplate.setLevel(30) - mobileTemplate.setDifficulty(0) - mobileTemplate.setAttackRange(15) - mobileTemplate.setAttackSpeed(1.0) - mobileTemplate.setWeaponType(1) + mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) mobileTemplate.setMaxSpawnDistance(8) mobileTemplate.setDeathblow(True) @@ -19,7 +19,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("afarathu") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - mobileTemplate.setOptionsBitmask(192) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE + Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_dressed_selonian_m_01.iff') @@ -49,7 +49,7 @@ def addTemplate(core): mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0) + weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', WeaponType.CARBINE, 1.0, 15, 'energy') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) diff --git a/scripts/mobiles/corellia/afarathu_hellion.py b/scripts/mobiles/corellia/afarathu_hellion.py index 1fd90fdc..a141bc5d 100644 --- a/scripts/mobiles/corellia/afarathu_hellion.py +++ b/scripts/mobiles/corellia/afarathu_hellion.py @@ -1,6 +1,9 @@ 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): @@ -8,10 +11,7 @@ def addTemplate(core): mobileTemplate.setCreatureName('afarathu_cult_hellion') mobileTemplate.setLevel(30) - mobileTemplate.setDifficulty(0) - mobileTemplate.setAttackRange(15) - mobileTemplate.setAttackSpeed(1.0) - mobileTemplate.setWeaponType(1) + mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) mobileTemplate.setMaxSpawnDistance(8) mobileTemplate.setDeathblow(True) @@ -19,7 +19,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("afarathu") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - mobileTemplate.setOptionsBitmask(192) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE + Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_dressed_selonian_m_01.iff') @@ -49,7 +49,7 @@ def addTemplate(core): mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0) + weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', WeaponType.CARBINE, 1.0, 15, 'energy') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) diff --git a/scripts/mobiles/corellia/afarathu_ruffian.py b/scripts/mobiles/corellia/afarathu_ruffian.py index e49ae409..040e53e2 100644 --- a/scripts/mobiles/corellia/afarathu_ruffian.py +++ b/scripts/mobiles/corellia/afarathu_ruffian.py @@ -1,6 +1,9 @@ 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): @@ -8,10 +11,7 @@ def addTemplate(core): mobileTemplate.setCreatureName('afarathu_cult_ruffian') mobileTemplate.setLevel(30) - mobileTemplate.setDifficulty(0) - mobileTemplate.setAttackRange(15) - mobileTemplate.setAttackSpeed(1.0) - mobileTemplate.setWeaponType(1) + mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) mobileTemplate.setMaxSpawnDistance(8) mobileTemplate.setDeathblow(True) @@ -19,7 +19,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("afarathu") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - mobileTemplate.setOptionsBitmask(192) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE + Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_dressed_selonian_m_01.iff') @@ -49,7 +49,7 @@ def addTemplate(core): mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', 1, 1.0) + weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e5.iff', WeaponType.CARBINE, 1.0, 15, 'energy') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) diff --git a/scripts/mobiles/corellia/afarathu_savage.py b/scripts/mobiles/corellia/afarathu_savage.py index cce01993..689ba807 100644 --- a/scripts/mobiles/corellia/afarathu_savage.py +++ b/scripts/mobiles/corellia/afarathu_savage.py @@ -1,6 +1,9 @@ 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): @@ -8,10 +11,7 @@ def addTemplate(core): mobileTemplate.setCreatureName('afarathu_cult_savage') mobileTemplate.setLevel(30) - mobileTemplate.setDifficulty(0) - mobileTemplate.setAttackRange(15) - mobileTemplate.setAttackSpeed(1.0) - mobileTemplate.setWeaponType(1) + mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) mobileTemplate.setMaxSpawnDistance(8) mobileTemplate.setDeathblow(True) @@ -19,7 +19,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("afarathu") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - mobileTemplate.setOptionsBitmask(192) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE + Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_dressed_selonian_m_01.iff') @@ -49,7 +49,7 @@ def addTemplate(core): mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', 1, 1.0) + weapontemplate = WeaponTemplate('object/weapon/ranged/carbine/shared_carbine_e11.iff', WeaponType.CARBINE, 1.0, 15, 'energy') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) diff --git a/scripts/mobiles/corellia/agrilat_rasp.py b/scripts/mobiles/corellia/agrilat_rasp.py index 9620f42c..21854e4a 100644 --- a/scripts/mobiles/corellia/agrilat_rasp.py +++ b/scripts/mobiles/corellia/agrilat_rasp.py @@ -1,6 +1,8 @@ import sys from services.spawn import MobileTemplate from services.spawn import WeaponTemplate +from resources.datatables import WeaponType +from resources.datatables import Difficulty from java.util import Vector def addTemplate(core): @@ -8,10 +10,7 @@ def addTemplate(core): mobileTemplate.setCreatureName('agrilat_plumed_rasp') mobileTemplate.setLevel(34) - mobileTemplate.setDifficulty(0) - mobileTemplate.setAttackRange(5) - mobileTemplate.setAttackSpeed(1.0) - mobileTemplate.setWeaponType(6) + mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) mobileTemplate.setMaxSpawnDistance(8) mobileTemplate.setDeathblow(False) @@ -29,7 +28,7 @@ def addTemplate(core): mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', 6, 1.0) + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 5, 'kinetic') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) diff --git a/scripts/mobiles/corellia/armor_thief.py b/scripts/mobiles/corellia/armor_thief.py index e47be728..b31ca72e 100644 --- a/scripts/mobiles/corellia/armor_thief.py +++ b/scripts/mobiles/corellia/armor_thief.py @@ -1,6 +1,9 @@ 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): @@ -8,10 +11,7 @@ def addTemplate(core): mobileTemplate.setCreatureName('corellia_coronet_armor_thief') mobileTemplate.setLevel(17) - mobileTemplate.setDifficulty(0) - mobileTemplate.setAttackRange(15) - mobileTemplate.setAttackSpeed(1.0) - mobileTemplate.setWeaponType(2) + mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) mobileTemplate.setMaxSpawnDistance(8) mobileTemplate.setDeathblow(False) @@ -19,7 +19,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("self") mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(True) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_dressed_ruffian_zabrak_female_01.iff') @@ -27,7 +27,7 @@ def addTemplate(core): mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_d18.iff', 2, 1.0) + weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_d18.iff', WeaponType.PISTOL, 1.0, 15, 'energy') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) diff --git a/scripts/mobiles/tatooine/swoop_gang_thug.py b/scripts/mobiles/tatooine/swoop_gang_thug.py index cc1a1f5f..b8f02cb7 100644 --- a/scripts/mobiles/tatooine/swoop_gang_thug.py +++ b/scripts/mobiles/tatooine/swoop_gang_thug.py @@ -1,6 +1,9 @@ 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): @@ -8,10 +11,7 @@ def addTemplate(core): mobileTemplate.setCreatureName('tatooine_opening_smuggler_09') mobileTemplate.setLevel(8) - mobileTemplate.setDifficulty(0) - mobileTemplate.setAttackRange(12) - mobileTemplate.setAttackSpeed(1.0) - mobileTemplate.setWeaponType(0) + mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) mobileTemplate.setMaxSpawnDistance(8) mobileTemplate.setDeathblow(False) @@ -19,7 +19,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("niko thug") mobileTemplate.setAssistRange(4) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(192) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE + Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_dressed_criminal_swooper_human_female_01.iff') @@ -28,8 +28,8 @@ def addTemplate(core): templates.add('object/mobile/shared_dressed_criminal_swooper_zabrak_male_01.iff') mobileTemplate.setTemplates(templates) - weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', 2, 1.0) + weaponTemplates = Vector() + weaponTemplate = WeaponTemplate('object/weapon/ranged/pistol/shared_pistol_cdef.iff', WeaponType.PISTOL, 1.0, 12, 'energy') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) @@ -38,4 +38,5 @@ def addTemplate(core): mobileTemplate.setAttacks(attacks) core.spawnService.addMobileTemplate('swoop_gang_thug', mobileTemplate) - return \ No newline at end of file + + return diff --git a/src/services/equipment/EquipmentService.java b/src/services/equipment/EquipmentService.java index 8b16291f..b519f773 100644 --- a/src/services/equipment/EquipmentService.java +++ b/src/services/equipment/EquipmentService.java @@ -164,8 +164,6 @@ public class EquipmentService implements INetworkDispatch { PyObject func = core.scriptService.getMethod("scripts/" + serverTemplate.split("shared_" , 2)[0].replace("shared_", ""), serverTemplate.split("shared_" , 2)[1], "equip"); if(func != null) func.__call__(Py.java2py(core), Py.java2py(actor), Py.java2py(item)); - // TODO: bio-link (assign it by objectID with setAttachment and then just display the customName for that objectID). - if(!actor.getEquipmentList().contains(item.getObjectId())) { actor.addObjectToEquipList(item); diff --git a/src/services/spawn/MobileTemplate.java b/src/services/spawn/MobileTemplate.java index 169c08b7..d0cc6c17 100644 --- a/src/services/spawn/MobileTemplate.java +++ b/src/services/spawn/MobileTemplate.java @@ -42,16 +42,10 @@ public class MobileTemplate implements Cloneable { private short maxLevel; private Vector attacks; private String defaultAttack; - private int minDamage = 0; - private int maxDamage = 0; - private float attackSpeed = 0; - private int weaponType = 0; private int difficulty = 0; private int health, action; private String creatureName; private float scale = 1; - // this is a custom attack Range setting to use for large mobs like krayts - private int attackRange; private Vector weaponTemplates = new Vector(); private Vector weaponTemplateVector = new Vector(); private int minSpawnDistance = 0; @@ -122,22 +116,6 @@ public class MobileTemplate implements Cloneable { this.attacks = attacks; } - public int getMinDamage() { - return minDamage; - } - - public void setMinDamage(int minDamage) { - this.minDamage = minDamage; - } - - public int getMaxDamage() { - return maxDamage; - } - - public void setMaxDamage(int maxDamage) { - this.maxDamage = maxDamage; - } - public int getDifficulty() { return difficulty; } @@ -185,14 +163,6 @@ public class MobileTemplate implements Cloneable { public void setScale(float scale) { this.scale = scale; } - - public int getAttackRange() { - return attackRange; - } - - public void setAttackRange(int attackRange) { - this.attackRange = attackRange; - } public Vector getWeaponTemplates() { return weaponTemplates; @@ -202,22 +172,6 @@ public class MobileTemplate implements Cloneable { this.weaponTemplates = weaponTemplates; } - public float getAttackSpeed() { - return attackSpeed; - } - - public void setAttackSpeed(float attackSpeed) { - this.attackSpeed = attackSpeed; - } - - public int getWeaponType() { - return weaponType; - } - - public void setWeaponType(int weaponType) { - this.weaponType = weaponType; - } - public Vector getWeaponTemplateVector() { return weaponTemplateVector; } diff --git a/src/services/spawn/SpawnService.java b/src/services/spawn/SpawnService.java index 4d6c4084..0f67cbc3 100644 --- a/src/services/spawn/SpawnService.java +++ b/src/services/spawn/SpawnService.java @@ -41,6 +41,7 @@ import java.util.concurrent.ScheduledExecutorService; import resources.common.collidables.CollidableCircle; import resources.datatables.Options; import resources.datatables.PvpStatus; +import resources.datatables.WeaponType; import resources.objects.cell.CellObject; import resources.objects.creature.CreatureObject; import resources.objects.tangible.TangibleObject; @@ -129,42 +130,33 @@ public class SpawnService { creature.setLevel(level); } - - //WeaponObject defaultWeapon = (mobileTemplate.getWeaponTemplates().size() > 0) ? (WeaponObject) core.objectService.createObject(mobileTemplate.getWeaponTemplates().get(new Random().nextInt(mobileTemplate.getWeaponTemplates().size())), creature.getPlanet()) : (WeaponObject) core.objectService.createObject("object/weapon/creature/shared_creature_default_weapon.iff", creature.getPlanet()); - WeaponObject defaultWeapon = null; Vector weaponTemplates = mobileTemplate.getWeaponTemplateVector(); - if (weaponTemplates.size()==0){ + int rnd = new Random().nextInt(weaponTemplates.size()); + + if (weaponTemplates.size() == 0){ defaultWeapon = (WeaponObject) core.objectService.createObject("object/weapon/creature/shared_creature_default_weapon.iff", creature.getPlanet()); defaultWeapon.setAttackSpeed(1.0F); - defaultWeapon.setWeaponType(6); + defaultWeapon.setWeaponType(WeaponType.UNARMED); + defaultWeapon.setDamageType("kinetic"); + + defaultWeapon.setMaxRange(5); } else { - int rnd = new Random().nextInt(weaponTemplates.size()); - defaultWeapon = (WeaponObject) core.objectService.createObject(weaponTemplates.get(rnd).getTemplate(), creature.getPlanet()); + defaultWeapon = (WeaponObject) core.objectService.createObject(weaponTemplates.get(rnd).getTemplate(), creature.getPlanet()); defaultWeapon.setAttackSpeed(weaponTemplates.get(rnd).getAttackSpeed()); defaultWeapon.setWeaponType(weaponTemplates.get(rnd).getWeaponType()); + defaultWeapon.setMaxRange(weaponTemplates.get(rnd).getMaxRange()); + defaultWeapon.setDamageType(weaponTemplates.get(rnd).getDamageType()); } - - // QA - if (mobileTemplate.getAttackSpeed()==0) - System.err.println("Error in mobile spawn template for " + mobileTemplate.getCreatureName() + ". Missing attackspeed parameter"); - if (mobileTemplate.getAttackRange()==0) - System.err.println("Error in mobile spawn template for " + mobileTemplate.getCreatureName() + ". Missing attackrange parameter"); - - defaultWeapon.setAttackSpeed(mobileTemplate.getAttackSpeed()); - defaultWeapon.setWeaponType(mobileTemplate.getWeaponType()); - defaultWeapon.setDamageType("@obj_attr_n:armor_eff_kinetic"); - defaultWeapon.setStringAttribute("cat_wpn_damage.damage", "0-0"); - if(mobileTemplate.getAttackRange() > 0) - defaultWeapon.setMaxRange(mobileTemplate.getAttackRange()); - if(mobileTemplate.getMaxDamage() != 0) { - defaultWeapon.setMaxDamage(mobileTemplate.getMaxDamage()); - defaultWeapon.setMinDamage(mobileTemplate.getMinDamage()); + if (weaponTemplates.get(rnd).getMinDamage() != 0 && weaponTemplates.get(rnd).getMaxDamage() != 0) { + defaultWeapon.setMaxDamage(weaponTemplates.get(rnd).getMinDamage()); + defaultWeapon.setMinDamage(weaponTemplates.get(rnd).getMaxDamage()); } else { defaultWeapon.setMaxDamage(creature.getLevel() * 24); defaultWeapon.setMinDamage(creature.getLevel() * 22); } + creature.addObjectToEquipList(defaultWeapon); creature.add(defaultWeapon); creature.setWeaponId(defaultWeapon.getObjectID()); diff --git a/src/services/spawn/WeaponTemplate.java b/src/services/spawn/WeaponTemplate.java index 6e35498b..6e4b7676 100644 --- a/src/services/spawn/WeaponTemplate.java +++ b/src/services/spawn/WeaponTemplate.java @@ -2,18 +2,34 @@ package services.spawn; public class WeaponTemplate { - private String template=""; - private float attackSpeed=0; - private int weaponType=0; + private String template = ""; + private int weaponType = 0; + private float attackSpeed = 0; + private int minDamage = 0; + private int maxDamage = 0; + private float maxRange = 0; + private String damageType = ""; public WeaponTemplate(){ } - public WeaponTemplate(String template, int weaponType, float attackSpeed){ + public WeaponTemplate(String template, int weaponType, float attackSpeed, float maxRange, int minDamage, int maxDamage, String damageType){ this.template = template; this.weaponType = weaponType; this.attackSpeed = attackSpeed; + this.maxRange = maxRange; + this.minDamage = minDamage; + this.maxDamage = maxDamage; + this.damageType = damageType; + } + + public WeaponTemplate(String template, int weaponType, float attackSpeed, float maxRange, String damageType){ + this.template = template; + this.weaponType = weaponType; + this.attackSpeed = attackSpeed; + this.maxRange = maxRange; + this.damageType = damageType; } public String getTemplate() { @@ -39,4 +55,36 @@ public class WeaponTemplate { public void setWeaponType(int weaponType) { this.weaponType = weaponType; } + + public float getMaxRange() { + return maxRange; + } + + public void setMaxRange(float maxRange) { + this.maxRange = maxRange; + } + + public int getMinDamage() { + return minDamage; + } + + public void setMinDamage(int minDamage) { + this.minDamage = minDamage; + } + + public int getMaxDamage() { + return maxDamage; + } + + public void setMaxDamage(int maxDamage) { + this.maxDamage = maxDamage; + } + + public String getDamageType() { + return damageType; + } + + public void setDamageType(String damageType) { + this.damageType = damageType; + } }