From aa1169977babe7f1f85b3ecbf98d0cfa6b205bc5 Mon Sep 17 00:00:00 2001 From: Bronco69 Date: Tue, 8 Jul 2014 22:18:42 +0200 Subject: [PATCH 01/13] Fixed mobile templates for vehicles --- .../object/mobile/vehicle/a1_deluxe_floater.py | 1 + .../object/mobile/vehicle/air2_swoop_speeder.py | 1 + scripts/object/mobile/vehicle/barc_speeder.py | 13 +------------ .../mobile/vehicle/barc_speeder_imperial.py | 3 ++- .../object/mobile/vehicle/barc_speeder_rebel.py | 14 ++++---------- .../object/mobile/vehicle/basilisk_war_droid.py | 1 + .../object/mobile/vehicle/fg_8t8_podracer.py | 1 + scripts/object/mobile/vehicle/flare_s_swoop.py | 1 + .../mobile/vehicle/flare_s_swoop_crafted.py | 1 + .../object/mobile/vehicle/geonosian_speeder.py | 1 + .../object/mobile/vehicle/gift_stap_speeder.py | 1 + .../mobile/vehicle/grievous_wheel_bike.py | 1 + scripts/object/mobile/vehicle/hoth_at_st.py | 1 + scripts/object/mobile/vehicle/hover_chair.py | 1 + .../mobile/vehicle/hoverlifter_speeder.py | 1 + .../vehicle/hoverlifter_speeder_crafted.py | 1 + scripts/object/mobile/vehicle/jetpack.py | 3 ++- scripts/object/mobile/vehicle/koro2_speeder.py | 1 + .../object/mobile/vehicle/landspeeder_ab1.py | 1 + .../object/mobile/vehicle/landspeeder_base.py | 1 + .../mobile/vehicle/landspeeder_desert_skiff.py | 1 + .../mobile/vehicle/landspeeder_lava_skiff.py | 1 + .../object/mobile/vehicle/landspeeder_organa.py | 1 + .../mobile/vehicle/landspeeder_tantive4.py | 17 +---------------- .../mobile/vehicle/landspeeder_tantive4_adv.py | 1 + .../object/mobile/vehicle/landspeeder_usv5.py | 1 + .../mobile/vehicle/landspeeder_usv5_s02.py | 1 + .../object/mobile/vehicle/landspeeder_v35.py | 1 + .../object/mobile/vehicle/landspeeder_x31.py | 1 + .../object/mobile/vehicle/landspeeder_x34.py | 1 + .../object/mobile/vehicle/landspeeder_xp38.py | 1 + .../object/mobile/vehicle/light_bending_barc.py | 1 + scripts/object/mobile/vehicle/mechno_chair.py | 1 + .../mobile/vehicle/mustafar_panning_droid.py | 1 + .../mobile/vehicle/pod_racer_balta_podracer.py | 1 + .../mobile/vehicle/pod_racer_ipg_longtail.py | 1 + .../mobile/vehicle/pod_racer_light_bending.py | 1 + scripts/object/mobile/vehicle/pod_racer_one.py | 1 + scripts/object/mobile/vehicle/pod_racer_two.py | 1 + .../object/mobile/vehicle/podracer_anakin.py | 1 + .../object/mobile/vehicle/ric_920_speeder.py | 1 + scripts/object/mobile/vehicle/senate_pod.py | 1 + .../mobile/vehicle/single_pod_airspeeder.py | 1 + scripts/object/mobile/vehicle/sith_speeder.py | 1 + scripts/object/mobile/vehicle/snowspeeder.py | 1 + .../object/mobile/vehicle/speeder_ric_920.py | 1 + scripts/object/mobile/vehicle/speederbike.py | 1 + .../object/mobile/vehicle/speederbike_base.py | 1 + .../object/mobile/vehicle/speederbike_flash.py | 1 + scripts/object/mobile/vehicle/stap_speeder.py | 1 + scripts/object/mobile/vehicle/swamp_speeder.py | 1 + .../object/mobile/vehicle/tcg_8_air_speeder.py | 1 + .../vehicle/tcg_8_single_pod_airspeeder.py | 1 + .../object/mobile/vehicle/tcg_at_pt_walker.py | 1 + .../object/mobile/vehicle/tcg_hk47_jetpack.py | 1 + .../vehicle/tcg_merr_sonn_jt12_jetpack.py | 1 + .../mobile/vehicle/tcg_military_transport.py | 1 + .../mobile/vehicle/tcg_republic_gunship.py | 1 + scripts/object/mobile/vehicle/temp_walker1.py | 1 + scripts/object/mobile/vehicle/vehicle_base.py | 1 + .../object/mobile/vehicle/walker_at_rt_camo.py | 4 +--- .../object/mobile/vehicle/walker_at_rt_reg.py | 4 +--- scripts/object/mobile/vehicle/walker_at_st.py | 1 + scripts/object/mobile/vehicle/walker_at_xt.py | 1 + .../mobile/vehicle/walker_at_xt_player.py | 1 + .../object/mobile/vehicle/xj6_air_speeder.py | 1 + 66 files changed, 71 insertions(+), 46 deletions(-) diff --git a/scripts/object/mobile/vehicle/a1_deluxe_floater.py b/scripts/object/mobile/vehicle/a1_deluxe_floater.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/a1_deluxe_floater.py +++ b/scripts/object/mobile/vehicle/a1_deluxe_floater.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/air2_swoop_speeder.py b/scripts/object/mobile/vehicle/air2_swoop_speeder.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/air2_swoop_speeder.py +++ b/scripts/object/mobile/vehicle/air2_swoop_speeder.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/barc_speeder.py b/scripts/object/mobile/vehicle/barc_speeder.py index 4626c764..73ca0680 100644 --- a/scripts/object/mobile/vehicle/barc_speeder.py +++ b/scripts/object/mobile/vehicle/barc_speeder.py @@ -1,16 +1,5 @@ import sys def setup(core, object): - object.setAttachment('radial_filename', 'vehicle') - return - -def use(core, actor, object): - vehicle = actor.getContainer() - - if vehicle: - if vehicle.getObjectID() == object.getObjectID(): - vehicle.remove(actor) - else: - vehicle.add(actor) - + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/barc_speeder_imperial.py b/scripts/object/mobile/vehicle/barc_speeder_imperial.py index 6093148c..4009cb0e 100644 --- a/scripts/object/mobile/vehicle/barc_speeder_imperial.py +++ b/scripts/object/mobile/vehicle/barc_speeder_imperial.py @@ -1,7 +1,8 @@ import sys - + def setup(core, object): core.buffService.addBuffToCreature(object, 'vehicle_pvp_barc_imperial', object) + object.setAttachment('radial_filename', 'creature/vehicle') return def use(core, actor, object): diff --git a/scripts/object/mobile/vehicle/barc_speeder_rebel.py b/scripts/object/mobile/vehicle/barc_speeder_rebel.py index 5713d540..aba22cb7 100644 --- a/scripts/object/mobile/vehicle/barc_speeder_rebel.py +++ b/scripts/object/mobile/vehicle/barc_speeder_rebel.py @@ -1,16 +1,10 @@ import sys - + def setup(core, object): - object.setAttachment('radial_filename', 'creature/vehicle') + core.buffService.addBuffToCreature(object, 'vehicle_pvp_barc_rebel', object) + object.setAttachment('radial_filename', 'creature/vehicle') return def use(core, actor, object): - vehicle = actor.getContainer() - - if vehicle: - if vehicle.getObjectID() == object.getObjectID(): - vehicle.remove(actor) - else: - vehicle.add(actor) - + core.buffService.addBuffToCreature(object, 'vehicle_pvp_barc_rebel', object) return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/basilisk_war_droid.py b/scripts/object/mobile/vehicle/basilisk_war_droid.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/basilisk_war_droid.py +++ b/scripts/object/mobile/vehicle/basilisk_war_droid.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/fg_8t8_podracer.py b/scripts/object/mobile/vehicle/fg_8t8_podracer.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/fg_8t8_podracer.py +++ b/scripts/object/mobile/vehicle/fg_8t8_podracer.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/flare_s_swoop.py b/scripts/object/mobile/vehicle/flare_s_swoop.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/flare_s_swoop.py +++ b/scripts/object/mobile/vehicle/flare_s_swoop.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/flare_s_swoop_crafted.py b/scripts/object/mobile/vehicle/flare_s_swoop_crafted.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/flare_s_swoop_crafted.py +++ b/scripts/object/mobile/vehicle/flare_s_swoop_crafted.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/geonosian_speeder.py b/scripts/object/mobile/vehicle/geonosian_speeder.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/geonosian_speeder.py +++ b/scripts/object/mobile/vehicle/geonosian_speeder.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/gift_stap_speeder.py b/scripts/object/mobile/vehicle/gift_stap_speeder.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/gift_stap_speeder.py +++ b/scripts/object/mobile/vehicle/gift_stap_speeder.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/grievous_wheel_bike.py b/scripts/object/mobile/vehicle/grievous_wheel_bike.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/grievous_wheel_bike.py +++ b/scripts/object/mobile/vehicle/grievous_wheel_bike.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/hoth_at_st.py b/scripts/object/mobile/vehicle/hoth_at_st.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/hoth_at_st.py +++ b/scripts/object/mobile/vehicle/hoth_at_st.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/hover_chair.py b/scripts/object/mobile/vehicle/hover_chair.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/hover_chair.py +++ b/scripts/object/mobile/vehicle/hover_chair.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/hoverlifter_speeder.py b/scripts/object/mobile/vehicle/hoverlifter_speeder.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/hoverlifter_speeder.py +++ b/scripts/object/mobile/vehicle/hoverlifter_speeder.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/hoverlifter_speeder_crafted.py b/scripts/object/mobile/vehicle/hoverlifter_speeder_crafted.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/hoverlifter_speeder_crafted.py +++ b/scripts/object/mobile/vehicle/hoverlifter_speeder_crafted.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/jetpack.py b/scripts/object/mobile/vehicle/jetpack.py index 522f3cbf..75ba8d12 100644 --- a/scripts/object/mobile/vehicle/jetpack.py +++ b/scripts/object/mobile/vehicle/jetpack.py @@ -2,4 +2,5 @@ import sys def setup(core, object): object.setCustomizationVariable('/private/index_hover_height', 40) - return \ No newline at end of file + object.setAttachment('radial_filename', 'creature/vehicle') + return diff --git a/scripts/object/mobile/vehicle/koro2_speeder.py b/scripts/object/mobile/vehicle/koro2_speeder.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/koro2_speeder.py +++ b/scripts/object/mobile/vehicle/koro2_speeder.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/landspeeder_ab1.py b/scripts/object/mobile/vehicle/landspeeder_ab1.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/landspeeder_ab1.py +++ b/scripts/object/mobile/vehicle/landspeeder_ab1.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/landspeeder_base.py b/scripts/object/mobile/vehicle/landspeeder_base.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/landspeeder_base.py +++ b/scripts/object/mobile/vehicle/landspeeder_base.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/landspeeder_desert_skiff.py b/scripts/object/mobile/vehicle/landspeeder_desert_skiff.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/landspeeder_desert_skiff.py +++ b/scripts/object/mobile/vehicle/landspeeder_desert_skiff.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/landspeeder_lava_skiff.py b/scripts/object/mobile/vehicle/landspeeder_lava_skiff.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/landspeeder_lava_skiff.py +++ b/scripts/object/mobile/vehicle/landspeeder_lava_skiff.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/landspeeder_organa.py b/scripts/object/mobile/vehicle/landspeeder_organa.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/landspeeder_organa.py +++ b/scripts/object/mobile/vehicle/landspeeder_organa.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/landspeeder_tantive4.py b/scripts/object/mobile/vehicle/landspeeder_tantive4.py index 1e2994c6..73ca0680 100644 --- a/scripts/object/mobile/vehicle/landspeeder_tantive4.py +++ b/scripts/object/mobile/vehicle/landspeeder_tantive4.py @@ -1,20 +1,5 @@ import sys def setup(core, object): - object.setAttachment('radial_filename', 'vehicle') - return - -def use(core, actor, object): - vehicle = actor.getContainer() - - if vehicle: - if vehicle.getObjectID() == object.getObjectID(): - vehicle.remove(actor) - else: - vehicle.add(actor) - - return -import sys - -def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/landspeeder_tantive4_adv.py b/scripts/object/mobile/vehicle/landspeeder_tantive4_adv.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/landspeeder_tantive4_adv.py +++ b/scripts/object/mobile/vehicle/landspeeder_tantive4_adv.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/landspeeder_usv5.py b/scripts/object/mobile/vehicle/landspeeder_usv5.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/landspeeder_usv5.py +++ b/scripts/object/mobile/vehicle/landspeeder_usv5.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/landspeeder_usv5_s02.py b/scripts/object/mobile/vehicle/landspeeder_usv5_s02.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/landspeeder_usv5_s02.py +++ b/scripts/object/mobile/vehicle/landspeeder_usv5_s02.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/landspeeder_v35.py b/scripts/object/mobile/vehicle/landspeeder_v35.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/landspeeder_v35.py +++ b/scripts/object/mobile/vehicle/landspeeder_v35.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/landspeeder_x31.py b/scripts/object/mobile/vehicle/landspeeder_x31.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/landspeeder_x31.py +++ b/scripts/object/mobile/vehicle/landspeeder_x31.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/landspeeder_x34.py b/scripts/object/mobile/vehicle/landspeeder_x34.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/landspeeder_x34.py +++ b/scripts/object/mobile/vehicle/landspeeder_x34.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/landspeeder_xp38.py b/scripts/object/mobile/vehicle/landspeeder_xp38.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/landspeeder_xp38.py +++ b/scripts/object/mobile/vehicle/landspeeder_xp38.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/light_bending_barc.py b/scripts/object/mobile/vehicle/light_bending_barc.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/light_bending_barc.py +++ b/scripts/object/mobile/vehicle/light_bending_barc.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/mechno_chair.py b/scripts/object/mobile/vehicle/mechno_chair.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/mechno_chair.py +++ b/scripts/object/mobile/vehicle/mechno_chair.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/mustafar_panning_droid.py b/scripts/object/mobile/vehicle/mustafar_panning_droid.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/mustafar_panning_droid.py +++ b/scripts/object/mobile/vehicle/mustafar_panning_droid.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/pod_racer_balta_podracer.py b/scripts/object/mobile/vehicle/pod_racer_balta_podracer.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/pod_racer_balta_podracer.py +++ b/scripts/object/mobile/vehicle/pod_racer_balta_podracer.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/pod_racer_ipg_longtail.py b/scripts/object/mobile/vehicle/pod_racer_ipg_longtail.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/pod_racer_ipg_longtail.py +++ b/scripts/object/mobile/vehicle/pod_racer_ipg_longtail.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/pod_racer_light_bending.py b/scripts/object/mobile/vehicle/pod_racer_light_bending.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/pod_racer_light_bending.py +++ b/scripts/object/mobile/vehicle/pod_racer_light_bending.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/pod_racer_one.py b/scripts/object/mobile/vehicle/pod_racer_one.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/pod_racer_one.py +++ b/scripts/object/mobile/vehicle/pod_racer_one.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/pod_racer_two.py b/scripts/object/mobile/vehicle/pod_racer_two.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/pod_racer_two.py +++ b/scripts/object/mobile/vehicle/pod_racer_two.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/podracer_anakin.py b/scripts/object/mobile/vehicle/podracer_anakin.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/podracer_anakin.py +++ b/scripts/object/mobile/vehicle/podracer_anakin.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/ric_920_speeder.py b/scripts/object/mobile/vehicle/ric_920_speeder.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/ric_920_speeder.py +++ b/scripts/object/mobile/vehicle/ric_920_speeder.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/senate_pod.py b/scripts/object/mobile/vehicle/senate_pod.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/senate_pod.py +++ b/scripts/object/mobile/vehicle/senate_pod.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/single_pod_airspeeder.py b/scripts/object/mobile/vehicle/single_pod_airspeeder.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/single_pod_airspeeder.py +++ b/scripts/object/mobile/vehicle/single_pod_airspeeder.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/sith_speeder.py b/scripts/object/mobile/vehicle/sith_speeder.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/sith_speeder.py +++ b/scripts/object/mobile/vehicle/sith_speeder.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/snowspeeder.py b/scripts/object/mobile/vehicle/snowspeeder.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/snowspeeder.py +++ b/scripts/object/mobile/vehicle/snowspeeder.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/speeder_ric_920.py b/scripts/object/mobile/vehicle/speeder_ric_920.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/speeder_ric_920.py +++ b/scripts/object/mobile/vehicle/speeder_ric_920.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/speederbike.py b/scripts/object/mobile/vehicle/speederbike.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/speederbike.py +++ b/scripts/object/mobile/vehicle/speederbike.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/speederbike_base.py b/scripts/object/mobile/vehicle/speederbike_base.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/speederbike_base.py +++ b/scripts/object/mobile/vehicle/speederbike_base.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/speederbike_flash.py b/scripts/object/mobile/vehicle/speederbike_flash.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/speederbike_flash.py +++ b/scripts/object/mobile/vehicle/speederbike_flash.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/stap_speeder.py b/scripts/object/mobile/vehicle/stap_speeder.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/stap_speeder.py +++ b/scripts/object/mobile/vehicle/stap_speeder.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/swamp_speeder.py b/scripts/object/mobile/vehicle/swamp_speeder.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/swamp_speeder.py +++ b/scripts/object/mobile/vehicle/swamp_speeder.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/tcg_8_air_speeder.py b/scripts/object/mobile/vehicle/tcg_8_air_speeder.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/tcg_8_air_speeder.py +++ b/scripts/object/mobile/vehicle/tcg_8_air_speeder.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/tcg_8_single_pod_airspeeder.py b/scripts/object/mobile/vehicle/tcg_8_single_pod_airspeeder.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/tcg_8_single_pod_airspeeder.py +++ b/scripts/object/mobile/vehicle/tcg_8_single_pod_airspeeder.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/tcg_at_pt_walker.py b/scripts/object/mobile/vehicle/tcg_at_pt_walker.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/tcg_at_pt_walker.py +++ b/scripts/object/mobile/vehicle/tcg_at_pt_walker.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/tcg_hk47_jetpack.py b/scripts/object/mobile/vehicle/tcg_hk47_jetpack.py index 522f3cbf..6f8eaeba 100644 --- a/scripts/object/mobile/vehicle/tcg_hk47_jetpack.py +++ b/scripts/object/mobile/vehicle/tcg_hk47_jetpack.py @@ -2,4 +2,5 @@ import sys def setup(core, object): object.setCustomizationVariable('/private/index_hover_height', 40) + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/tcg_merr_sonn_jt12_jetpack.py b/scripts/object/mobile/vehicle/tcg_merr_sonn_jt12_jetpack.py index 522f3cbf..6f8eaeba 100644 --- a/scripts/object/mobile/vehicle/tcg_merr_sonn_jt12_jetpack.py +++ b/scripts/object/mobile/vehicle/tcg_merr_sonn_jt12_jetpack.py @@ -2,4 +2,5 @@ import sys def setup(core, object): object.setCustomizationVariable('/private/index_hover_height', 40) + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/tcg_military_transport.py b/scripts/object/mobile/vehicle/tcg_military_transport.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/tcg_military_transport.py +++ b/scripts/object/mobile/vehicle/tcg_military_transport.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/tcg_republic_gunship.py b/scripts/object/mobile/vehicle/tcg_republic_gunship.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/tcg_republic_gunship.py +++ b/scripts/object/mobile/vehicle/tcg_republic_gunship.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/temp_walker1.py b/scripts/object/mobile/vehicle/temp_walker1.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/temp_walker1.py +++ b/scripts/object/mobile/vehicle/temp_walker1.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/vehicle_base.py b/scripts/object/mobile/vehicle/vehicle_base.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/vehicle_base.py +++ b/scripts/object/mobile/vehicle/vehicle_base.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/walker_at_rt_camo.py b/scripts/object/mobile/vehicle/walker_at_rt_camo.py index 38038e73..bf6751e9 100644 --- a/scripts/object/mobile/vehicle/walker_at_rt_camo.py +++ b/scripts/object/mobile/vehicle/walker_at_rt_camo.py @@ -1,8 +1,6 @@ import sys def setup(core, object): - return - -def use(core, actor, object): + object.setAttachment('radial_filename', 'creature/vehicle') core.buffService.addBuffToCreature(object, 'vehicle_at_rt', object) return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/walker_at_rt_reg.py b/scripts/object/mobile/vehicle/walker_at_rt_reg.py index 38038e73..bf6751e9 100644 --- a/scripts/object/mobile/vehicle/walker_at_rt_reg.py +++ b/scripts/object/mobile/vehicle/walker_at_rt_reg.py @@ -1,8 +1,6 @@ import sys def setup(core, object): - return - -def use(core, actor, object): + object.setAttachment('radial_filename', 'creature/vehicle') core.buffService.addBuffToCreature(object, 'vehicle_at_rt', object) return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/walker_at_st.py b/scripts/object/mobile/vehicle/walker_at_st.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/walker_at_st.py +++ b/scripts/object/mobile/vehicle/walker_at_st.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/walker_at_xt.py b/scripts/object/mobile/vehicle/walker_at_xt.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/walker_at_xt.py +++ b/scripts/object/mobile/vehicle/walker_at_xt.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/walker_at_xt_player.py b/scripts/object/mobile/vehicle/walker_at_xt_player.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/walker_at_xt_player.py +++ b/scripts/object/mobile/vehicle/walker_at_xt_player.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file diff --git a/scripts/object/mobile/vehicle/xj6_air_speeder.py b/scripts/object/mobile/vehicle/xj6_air_speeder.py index ccad8904..73ca0680 100644 --- a/scripts/object/mobile/vehicle/xj6_air_speeder.py +++ b/scripts/object/mobile/vehicle/xj6_air_speeder.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'creature/vehicle') return \ No newline at end of file From 5851270c4a2a773db75d4662cae80577786359bd Mon Sep 17 00:00:00 2001 From: Bronco69 Date: Wed, 9 Jul 2014 03:35:07 +0200 Subject: [PATCH 02/13] Added some more ITVs Terminals (ship) + command --- scripts/commands/callforg9riggerpickup.py | 42 +++++++++++++++++++ scripts/commands/callforpickup.py | 42 +++++++++++++++++++ scripts/commands/callforprivateerpickup.py | 42 +++++++++++++++++++ scripts/commands/callforroyalpickup.py | 42 +++++++++++++++++++ scripts/commands/callforslave1pickup.py | 42 +++++++++++++++++++ scripts/commands/callforsnowspeeder.py | 42 +++++++++++++++++++ scripts/commands/callforsolarsailerpickup.py | 42 +++++++++++++++++++ .../terminal/terminal_travel_instant.py | 1 + .../terminal_travel_instant_privateer.py | 1 + .../terminal_travel_instant_royal_ship.py | 1 + .../terminal_travel_instant_snowspeeder.py | 1 + .../terminal_travel_instant_tcg_home.py | 1 + .../terminal_travel_instant_tcg_location.py | 1 + .../terminal_travel_instant_tcg_slave_1.py | 1 + .../terminal/terminal_travel_instant_tie.py | 1 + .../terminal/terminal_travel_instant_xwing.py | 1 + 16 files changed, 303 insertions(+) create mode 100644 scripts/commands/callforg9riggerpickup.py create mode 100644 scripts/commands/callforpickup.py create mode 100644 scripts/commands/callforprivateerpickup.py create mode 100644 scripts/commands/callforroyalpickup.py create mode 100644 scripts/commands/callforslave1pickup.py create mode 100644 scripts/commands/callforsnowspeeder.py create mode 100644 scripts/commands/callforsolarsailerpickup.py diff --git a/scripts/commands/callforg9riggerpickup.py b/scripts/commands/callforg9riggerpickup.py new file mode 100644 index 00000000..5c165a6b --- /dev/null +++ b/scripts/commands/callforg9riggerpickup.py @@ -0,0 +1,42 @@ +import sys +import time + +def setup(core, actor, target, command): + return + +def run(core, actor, target, commandstring): + + stcSvc = core.staticService + objSvc = core.objectService + object = objSvc.createObject('object/tangible/terminal/shared_terminal_travel_instant_tcg_location.iff', actor.getPlanet(), (actor.getWorldPosition().x)+5, actor.getWorldPosition().z, actor.getWorldPosition().y) + + + if actor.getAttachment("itv") is None: + if core.gcwService.isInPvpZone is True: + actor.sendSystemMessage('@travel:no_pickup_in_pvp', 0) + return + + if actor.getCombatFlag() == 1: + actor.sendSystemMessage('@travel:in_combat', 0) + return + + if core.terrainService.canBuildAtPosition(actor, actor.getWorldPosition().x, actor.getWorldPosition().z) is True: + core.simulationService.add(object, (actor.getWorldPosition().x)+5, actor.getWorldPosition().z) + actor.sendSystemMessage('@travel:calling_for_pickup', 0) + else: + actor.sendSystemMessage('@travel:invalid_pickup_loc', 0) + return + + if core.simulationService.checkForObject(20, actor) is True: + actor.sendSystemMessage('@travel:no_pickup_location', 0) + return + + core.travelService.checkForItvTimedDespawn(actor, object) + + actor.setAttachment("itv", object.getObjectID()) + return + elif actor.getAttachment("itv") is not None: + actor.sendSystemMessage('@travel:pickup_craft_already_out', 0) + return + + return diff --git a/scripts/commands/callforpickup.py b/scripts/commands/callforpickup.py new file mode 100644 index 00000000..e88ff69e --- /dev/null +++ b/scripts/commands/callforpickup.py @@ -0,0 +1,42 @@ +import sys +import time + +def setup(core, actor, target, command): + return + +def run(core, actor, target, commandstring): + + stcSvc = core.staticService + objSvc = core.objectService + object = objSvc.createObject('object/tangible/terminal/shared_terminal_travel_instant.iff', actor.getPlanet(), (actor.getWorldPosition().x)+5, actor.getWorldPosition().z, actor.getWorldPosition().y) + + + if actor.getAttachment("itv") is None: + if core.gcwService.isInPvpZone is True: + actor.sendSystemMessage('@travel:no_pickup_in_pvp', 0) + return + + if actor.getCombatFlag() == 1: + actor.sendSystemMessage('@travel:in_combat', 0) + return + + if core.terrainService.canBuildAtPosition(actor, actor.getWorldPosition().x, actor.getWorldPosition().z) is True: + core.simulationService.add(object, (actor.getWorldPosition().x)+5, actor.getWorldPosition().z) + actor.sendSystemMessage('@travel:calling_for_pickup', 0) + else: + actor.sendSystemMessage('@travel:invalid_pickup_loc', 0) + return + + if core.simulationService.checkForObject(20, actor) is True: + actor.sendSystemMessage('@travel:no_pickup_location', 0) + return + + core.travelService.checkForItvTimedDespawn(actor, object) + + actor.setAttachment("itv", object.getObjectID()) + return + elif actor.getAttachment("itv") is not None: + actor.sendSystemMessage('@travel:pickup_craft_already_out', 0) + return + + return diff --git a/scripts/commands/callforprivateerpickup.py b/scripts/commands/callforprivateerpickup.py new file mode 100644 index 00000000..f998c46b --- /dev/null +++ b/scripts/commands/callforprivateerpickup.py @@ -0,0 +1,42 @@ +import sys +import time + +def setup(core, actor, target, command): + return + +def run(core, actor, target, commandstring): + + stcSvc = core.staticService + objSvc = core.objectService + object = objSvc.createObject('object/tangible/terminal/shared_terminal_travel_instant_privateer.iff', actor.getPlanet(), (actor.getWorldPosition().x)+5, actor.getWorldPosition().z, actor.getWorldPosition().y) + + + if actor.getAttachment("itv") is None: + if core.gcwService.isInPvpZone is True: + actor.sendSystemMessage('@travel:no_pickup_in_pvp', 0) + return + + if actor.getCombatFlag() == 1: + actor.sendSystemMessage('@travel:in_combat', 0) + return + + if core.terrainService.canBuildAtPosition(actor, actor.getWorldPosition().x, actor.getWorldPosition().z) is True: + core.simulationService.add(object, (actor.getWorldPosition().x)+5, actor.getWorldPosition().z) + actor.sendSystemMessage('@travel:calling_for_pickup', 0) + else: + actor.sendSystemMessage('@travel:invalid_pickup_loc', 0) + return + + if core.simulationService.checkForObject(20, actor) is True: + actor.sendSystemMessage('@travel:no_pickup_location', 0) + return + + core.travelService.checkForItvTimedDespawn(actor, object) + + actor.setAttachment("itv", object.getObjectID()) + return + elif actor.getAttachment("itv") is not None: + actor.sendSystemMessage('@travel:pickup_craft_already_out', 0) + return + + return diff --git a/scripts/commands/callforroyalpickup.py b/scripts/commands/callforroyalpickup.py new file mode 100644 index 00000000..997b010c --- /dev/null +++ b/scripts/commands/callforroyalpickup.py @@ -0,0 +1,42 @@ +import sys +import time + +def setup(core, actor, target, command): + return + +def run(core, actor, target, commandstring): + + stcSvc = core.staticService + objSvc = core.objectService + object = objSvc.createObject('object/tangible/terminal/shared_terminal_travel_instant_royal_ship.iff', actor.getPlanet(), (actor.getWorldPosition().x)+5, actor.getWorldPosition().z, actor.getWorldPosition().y) + + + if actor.getAttachment("itv") is None: + if core.gcwService.isInPvpZone is True: + actor.sendSystemMessage('@travel:no_pickup_in_pvp', 0) + return + + if actor.getCombatFlag() == 1: + actor.sendSystemMessage('@travel:in_combat', 0) + return + + if core.terrainService.canBuildAtPosition(actor, actor.getWorldPosition().x, actor.getWorldPosition().z) is True: + core.simulationService.add(object, (actor.getWorldPosition().x)+5, actor.getWorldPosition().z) + actor.sendSystemMessage('@travel:calling_for_pickup', 0) + else: + actor.sendSystemMessage('@travel:invalid_pickup_loc', 0) + return + + if core.simulationService.checkForObject(20, actor) is True: + actor.sendSystemMessage('@travel:no_pickup_location', 0) + return + + core.travelService.checkForItvTimedDespawn(actor, object) + + actor.setAttachment("itv", object.getObjectID()) + return + elif actor.getAttachment("itv") is not None: + actor.sendSystemMessage('@travel:pickup_craft_already_out', 0) + return + + return diff --git a/scripts/commands/callforslave1pickup.py b/scripts/commands/callforslave1pickup.py new file mode 100644 index 00000000..522bb27e --- /dev/null +++ b/scripts/commands/callforslave1pickup.py @@ -0,0 +1,42 @@ +import sys +import time + +def setup(core, actor, target, command): + return + +def run(core, actor, target, commandstring): + + stcSvc = core.staticService + objSvc = core.objectService + object = objSvc.createObject('object/tangible/terminal/shared_terminal_travel_instant_tcg_slave_1.iff', actor.getPlanet(), (actor.getWorldPosition().x)+5, actor.getWorldPosition().z, actor.getWorldPosition().y) + + + if actor.getAttachment("itv") is None: + if core.gcwService.isInPvpZone is True: + actor.sendSystemMessage('@travel:no_pickup_in_pvp', 0) + return + + if actor.getCombatFlag() == 1: + actor.sendSystemMessage('@travel:in_combat', 0) + return + + if core.terrainService.canBuildAtPosition(actor, actor.getWorldPosition().x, actor.getWorldPosition().z) is True: + core.simulationService.add(object, (actor.getWorldPosition().x)+5, actor.getWorldPosition().z) + actor.sendSystemMessage('@travel:calling_for_pickup', 0) + else: + actor.sendSystemMessage('@travel:invalid_pickup_loc', 0) + return + + if core.simulationService.checkForObject(20, actor) is True: + actor.sendSystemMessage('@travel:no_pickup_location', 0) + return + + core.travelService.checkForItvTimedDespawn(actor, object) + + actor.setAttachment("itv", object.getObjectID()) + return + elif actor.getAttachment("itv") is not None: + actor.sendSystemMessage('@travel:pickup_craft_already_out', 0) + return + + return diff --git a/scripts/commands/callforsnowspeeder.py b/scripts/commands/callforsnowspeeder.py new file mode 100644 index 00000000..a7e056f7 --- /dev/null +++ b/scripts/commands/callforsnowspeeder.py @@ -0,0 +1,42 @@ +import sys +import time + +def setup(core, actor, target, command): + return + +def run(core, actor, target, commandstring): + + stcSvc = core.staticService + objSvc = core.objectService + object = objSvc.createObject('object/tangible/terminal/shared_terminal_travel_instant_snowspeeder.iff', actor.getPlanet(), (actor.getWorldPosition().x)+5, actor.getWorldPosition().z, actor.getWorldPosition().y) + + + if actor.getAttachment("itv") is None: + if core.gcwService.isInPvpZone is True: + actor.sendSystemMessage('@travel:no_pickup_in_pvp', 0) + return + + if actor.getCombatFlag() == 1: + actor.sendSystemMessage('@travel:in_combat', 0) + return + + if core.terrainService.canBuildAtPosition(actor, actor.getWorldPosition().x, actor.getWorldPosition().z) is True: + core.simulationService.add(object, (actor.getWorldPosition().x)+5, actor.getWorldPosition().z) + actor.sendSystemMessage('@travel:calling_for_pickup', 0) + else: + actor.sendSystemMessage('@travel:invalid_pickup_loc', 0) + return + + if core.simulationService.checkForObject(20, actor) is True: + actor.sendSystemMessage('@travel:no_pickup_location', 0) + return + + core.travelService.checkForItvTimedDespawn(actor, object) + + actor.setAttachment("itv", object.getObjectID()) + return + elif actor.getAttachment("itv") is not None: + actor.sendSystemMessage('@travel:pickup_craft_already_out', 0) + return + + return diff --git a/scripts/commands/callforsolarsailerpickup.py b/scripts/commands/callforsolarsailerpickup.py new file mode 100644 index 00000000..b0d2be31 --- /dev/null +++ b/scripts/commands/callforsolarsailerpickup.py @@ -0,0 +1,42 @@ +import sys +import time + +def setup(core, actor, target, command): + return + +def run(core, actor, target, commandstring): + + stcSvc = core.staticService + objSvc = core.objectService + object = objSvc.createObject('object/tangible/terminal/shared_terminal_travel_instant_tcg_home.iff', actor.getPlanet(), (actor.getWorldPosition().x)+5, actor.getWorldPosition().z, actor.getWorldPosition().y) + + + if actor.getAttachment("itv") is None: + if core.gcwService.isInPvpZone is True: + actor.sendSystemMessage('@travel:no_pickup_in_pvp', 0) + return + + if actor.getCombatFlag() == 1: + actor.sendSystemMessage('@travel:in_combat', 0) + return + + if core.terrainService.canBuildAtPosition(actor, actor.getWorldPosition().x, actor.getWorldPosition().z) is True: + core.simulationService.add(object, (actor.getWorldPosition().x)+5, actor.getWorldPosition().z) + actor.sendSystemMessage('@travel:calling_for_pickup', 0) + else: + actor.sendSystemMessage('@travel:invalid_pickup_loc', 0) + return + + if core.simulationService.checkForObject(20, actor) is True: + actor.sendSystemMessage('@travel:no_pickup_location', 0) + return + + core.travelService.checkForItvTimedDespawn(actor, object) + + actor.setAttachment("itv", object.getObjectID()) + return + elif actor.getAttachment("itv") is not None: + actor.sendSystemMessage('@travel:pickup_craft_already_out', 0) + return + + return diff --git a/scripts/object/tangible/terminal/terminal_travel_instant.py b/scripts/object/tangible/terminal/terminal_travel_instant.py index ccad8904..cbeffc7a 100644 --- a/scripts/object/tangible/terminal/terminal_travel_instant.py +++ b/scripts/object/tangible/terminal/terminal_travel_instant.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'terminal/travel_terminal_itv') return \ No newline at end of file diff --git a/scripts/object/tangible/terminal/terminal_travel_instant_privateer.py b/scripts/object/tangible/terminal/terminal_travel_instant_privateer.py index ccad8904..cbeffc7a 100644 --- a/scripts/object/tangible/terminal/terminal_travel_instant_privateer.py +++ b/scripts/object/tangible/terminal/terminal_travel_instant_privateer.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'terminal/travel_terminal_itv') return \ No newline at end of file diff --git a/scripts/object/tangible/terminal/terminal_travel_instant_royal_ship.py b/scripts/object/tangible/terminal/terminal_travel_instant_royal_ship.py index ccad8904..cbeffc7a 100644 --- a/scripts/object/tangible/terminal/terminal_travel_instant_royal_ship.py +++ b/scripts/object/tangible/terminal/terminal_travel_instant_royal_ship.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'terminal/travel_terminal_itv') return \ No newline at end of file diff --git a/scripts/object/tangible/terminal/terminal_travel_instant_snowspeeder.py b/scripts/object/tangible/terminal/terminal_travel_instant_snowspeeder.py index ccad8904..cbeffc7a 100644 --- a/scripts/object/tangible/terminal/terminal_travel_instant_snowspeeder.py +++ b/scripts/object/tangible/terminal/terminal_travel_instant_snowspeeder.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'terminal/travel_terminal_itv') return \ No newline at end of file diff --git a/scripts/object/tangible/terminal/terminal_travel_instant_tcg_home.py b/scripts/object/tangible/terminal/terminal_travel_instant_tcg_home.py index ccad8904..cbeffc7a 100644 --- a/scripts/object/tangible/terminal/terminal_travel_instant_tcg_home.py +++ b/scripts/object/tangible/terminal/terminal_travel_instant_tcg_home.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'terminal/travel_terminal_itv') return \ No newline at end of file diff --git a/scripts/object/tangible/terminal/terminal_travel_instant_tcg_location.py b/scripts/object/tangible/terminal/terminal_travel_instant_tcg_location.py index ccad8904..cbeffc7a 100644 --- a/scripts/object/tangible/terminal/terminal_travel_instant_tcg_location.py +++ b/scripts/object/tangible/terminal/terminal_travel_instant_tcg_location.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'terminal/travel_terminal_itv') return \ No newline at end of file diff --git a/scripts/object/tangible/terminal/terminal_travel_instant_tcg_slave_1.py b/scripts/object/tangible/terminal/terminal_travel_instant_tcg_slave_1.py index ccad8904..cbeffc7a 100644 --- a/scripts/object/tangible/terminal/terminal_travel_instant_tcg_slave_1.py +++ b/scripts/object/tangible/terminal/terminal_travel_instant_tcg_slave_1.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'terminal/travel_terminal_itv') return \ No newline at end of file diff --git a/scripts/object/tangible/terminal/terminal_travel_instant_tie.py b/scripts/object/tangible/terminal/terminal_travel_instant_tie.py index ccad8904..cbeffc7a 100644 --- a/scripts/object/tangible/terminal/terminal_travel_instant_tie.py +++ b/scripts/object/tangible/terminal/terminal_travel_instant_tie.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'terminal/travel_terminal_itv') return \ No newline at end of file diff --git a/scripts/object/tangible/terminal/terminal_travel_instant_xwing.py b/scripts/object/tangible/terminal/terminal_travel_instant_xwing.py index ccad8904..cbeffc7a 100644 --- a/scripts/object/tangible/terminal/terminal_travel_instant_xwing.py +++ b/scripts/object/tangible/terminal/terminal_travel_instant_xwing.py @@ -1,4 +1,5 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'terminal/travel_terminal_itv') return \ No newline at end of file From 13f7108d62dcdd4b9366b1c22648ef68973bbd21 Mon Sep 17 00:00:00 2001 From: Bronco69 Date: Wed, 9 Jul 2014 03:37:16 +0200 Subject: [PATCH 03/13] Added some more house deeds --- .../tangible/deed/player_house_deed/naboo_house_large_deed.py | 3 +++ .../player_house_deed/naboo_house_medium_style_02_deed.py | 4 ++++ .../deed/player_house_deed/player_house_tcg_8_yoda_house.py | 4 ++++ .../tangible/deed/player_house_deed/tree_house_01_deed.py | 4 ++++ 4 files changed, 15 insertions(+) diff --git a/scripts/object/tangible/deed/player_house_deed/naboo_house_large_deed.py b/scripts/object/tangible/deed/player_house_deed/naboo_house_large_deed.py index 5483eb6d..07ab9319 100644 --- a/scripts/object/tangible/deed/player_house_deed/naboo_house_large_deed.py +++ b/scripts/object/tangible/deed/player_house_deed/naboo_house_large_deed.py @@ -2,4 +2,7 @@ import sys def setup(core, object): object.setAttachment('radial_filename', 'deeds/structureDeed') + return + +def use(core, actor, object): return \ No newline at end of file diff --git a/scripts/object/tangible/deed/player_house_deed/naboo_house_medium_style_02_deed.py b/scripts/object/tangible/deed/player_house_deed/naboo_house_medium_style_02_deed.py index ccad8904..07ab9319 100644 --- a/scripts/object/tangible/deed/player_house_deed/naboo_house_medium_style_02_deed.py +++ b/scripts/object/tangible/deed/player_house_deed/naboo_house_medium_style_02_deed.py @@ -1,4 +1,8 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'deeds/structureDeed') + return + +def use(core, actor, object): return \ No newline at end of file diff --git a/scripts/object/tangible/deed/player_house_deed/player_house_tcg_8_yoda_house.py b/scripts/object/tangible/deed/player_house_deed/player_house_tcg_8_yoda_house.py index ccad8904..07ab9319 100644 --- a/scripts/object/tangible/deed/player_house_deed/player_house_tcg_8_yoda_house.py +++ b/scripts/object/tangible/deed/player_house_deed/player_house_tcg_8_yoda_house.py @@ -1,4 +1,8 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'deeds/structureDeed') + return + +def use(core, actor, object): return \ No newline at end of file diff --git a/scripts/object/tangible/deed/player_house_deed/tree_house_01_deed.py b/scripts/object/tangible/deed/player_house_deed/tree_house_01_deed.py index ccad8904..07ab9319 100644 --- a/scripts/object/tangible/deed/player_house_deed/tree_house_01_deed.py +++ b/scripts/object/tangible/deed/player_house_deed/tree_house_01_deed.py @@ -1,4 +1,8 @@ import sys def setup(core, object): + object.setAttachment('radial_filename', 'deeds/structureDeed') + return + +def use(core, actor, object): return \ No newline at end of file From 3d22b64e10e215271030d07c74dc7f7b4f839f1e Mon Sep 17 00:00:00 2001 From: Bronco69 Date: Thu, 10 Jul 2014 03:56:52 +0200 Subject: [PATCH 04/13] Added BM attacks for all creatures (Endor) --- scripts/mobiles/endor/aged_lantern_bird.py | 7 ++- scripts/mobiles/endor/arachne_drone.py | 45 ++++++++++++++++++ scripts/mobiles/endor/arachne_fleshripper.py | 45 ++++++++++++++++++ scripts/mobiles/endor/arachne_hatchling.py | 11 +++-- scripts/mobiles/endor/arachne_queen.py | 7 ++- scripts/mobiles/endor/arachne_warrior.py | 45 ++++++++++++++++++ scripts/mobiles/endor/arachne_webmaster.py | 7 ++- scripts/mobiles/endor/arachne_widow.py | 5 +- .../endor/archaic_gondula_ritualist.py | 2 +- .../mobiles/endor/archaic_jinda_ritualist.py | 2 +- .../endor/archaic_panshee_ritualist.py | 2 +- scripts/mobiles/endor/bark_mite_burrower.py | 5 +- .../endor/bark_mite_burrower_collector.py | 5 +- .../mobiles/endor/bark_mite_burrower_drone.py | 7 ++- .../mobiles/endor/bark_mite_burrower_queen.py | 43 +++++++++++++++++ .../endor/bark_mite_burrower_swarmling.py | 5 +- .../endor/bark_mite_burrower_worker.py | 7 ++- .../mobiles/endor/bedraggled_korga_laborer.py | 2 +- .../mobiles/endor/bedraggled_pubam_laborer.py | 2 +- .../mobiles/endor/beguilding_korga_scout.py | 2 +- .../mobiles/endor/beguiling_donkuwah_scout.py | 2 +- .../mobiles/endor/beguiling_pubam_scout.py | 1 + .../endor/blood_drenched_merek_king.py | 2 +- .../mobiles/endor/blood_frenzied_boar_wolf.py | 3 ++ scripts/mobiles/endor/blood_stained_merek.py | 4 ++ scripts/mobiles/endor/bloodseeker_mite.py | 43 +++++++++++++++++ .../mobiles/endor/bloodseeker_mite_drone.py | 4 ++ .../endor/bloodseeker_mite_guardian.py | 43 +++++++++++++++++ .../mobiles/endor/bloodseeker_mite_hunter.py | 43 +++++++++++++++++ .../mobiles/endor/bloodseeker_mite_queen.py | 7 ++- scripts/mobiles/endor/blooming_jax.py | 9 ++-- scripts/mobiles/endor/blurrg.py | 6 ++- scripts/mobiles/endor/blurrg_hunter.py | 4 +- scripts/mobiles/endor/blurrg_pup.py | 8 ++-- scripts/mobiles/endor/blurrg_raptor.py | 3 +- scripts/mobiles/endor/blurrg_sand_crawler.py | 6 ++- scripts/mobiles/endor/blurrg_tracker.py | 6 ++- scripts/mobiles/endor/blushing_jax.py | 9 ++-- scripts/mobiles/endor/boar_wolf.py | 5 +- scripts/mobiles/endor/boar_wolf_cub.py | 9 ++-- scripts/mobiles/endor/boar_wolf_ravager.py | 5 +- scripts/mobiles/endor/bolle_bol_bark_biter.py | 9 +++- scripts/mobiles/endor/bolle_bol_calf.py | 11 +++-- scripts/mobiles/endor/bolle_bol_colt.py | 9 +++- scripts/mobiles/endor/bolle_bol_female.py | 9 +++- .../mobiles/endor/bolle_bol_herd_leader.py | 9 +++- scripts/mobiles/endor/bolle_bol_male.py | 9 +++- scripts/mobiles/endor/bolle_bol_stomper.py | 9 +++- scripts/mobiles/endor/bordok_ancient.py | 7 ++- scripts/mobiles/endor/bordok_foal.py | 9 ++-- scripts/mobiles/endor/bordok_herd_master.py | 7 ++- scripts/mobiles/endor/bordok_mare.py | 5 +- scripts/mobiles/endor/borgle_life_sapper.py | 47 +++++++++++++++++++ scripts/mobiles/endor/bounding_jax.py | 6 +-- scripts/mobiles/endor/cowardly_gurreck.py | 7 ++- scripts/mobiles/endor/crazed_gurreck.py | 3 ++ scripts/mobiles/endor/crimson_blurrg.py | 4 +- .../mobiles/endor/delirious_merek_avenger.py | 8 +++- scripts/mobiles/endor/deranged_mantigrue.py | 4 ++ scripts/mobiles/endor/deranged_ravisher.py | 2 +- .../mobiles/endor/desert_gurreck_charger.py | 3 ++ scripts/mobiles/endor/desert_scavenger.py | 4 +- .../mobiles/endor/diminutive_bounding_jax.py | 16 +++---- scripts/mobiles/endor/diseased_blurrg.py | 2 + scripts/mobiles/endor/domesticated_blurrg.py | 6 ++- scripts/mobiles/endor/domesticated_merek.py | 8 +++- .../mobiles/endor/elder_hanadak_matriarch.py | 7 ++- scripts/mobiles/endor/elder_squall.py | 5 +- scripts/mobiles/endor/erratic_swirl_prong.py | 7 ++- scripts/mobiles/endor/festering_squill.py | 3 ++ scripts/mobiles/endor/fierce_borgle.py | 2 + .../mobiles/endor/gleaming_lantern_bird.py | 7 ++- scripts/mobiles/endor/gorax.py | 40 ++++++++++++++++ scripts/mobiles/endor/gurreck.py | 3 ++ .../mobiles/endor/gurreck_forest_stalker.py | 5 +- scripts/mobiles/endor/hanadak_ancient.py | 5 +- scripts/mobiles/endor/hanadak_drifter.py | 3 ++ scripts/mobiles/endor/highland_remmer.py | 3 ++ .../mobiles/endor/hilltop_gurreck_hunter.py | 3 ++ .../endor/insane_mantigrue_berserker.py | 4 ++ scripts/mobiles/endor/king_merek_harvester.py | 6 ++- scripts/mobiles/endor/lantern_bird.py | 7 ++- .../mobiles/endor/lice_ridden_remmer_queen.py | 9 ++-- scripts/mobiles/endor/mantigrue_hunter.py | 6 ++- .../mobiles/endor/mantigrue_night_stalker.py | 8 +++- scripts/mobiles/endor/mantigrue_reaper.py | 6 ++- scripts/mobiles/endor/mantigrue_screecher.py | 4 ++ scripts/mobiles/endor/mature_hanadak.py | 3 ++ .../endor/mature_hanadak_rock_smasher.py | 3 ++ scripts/mobiles/endor/merek_assassin.py | 4 ++ scripts/mobiles/endor/merek_cavern_creeper.py | 6 ++- scripts/mobiles/endor/merek_deaths_head.py | 6 ++- scripts/mobiles/endor/merek_harvester.py | 6 ++- scripts/mobiles/endor/mine_rat.py | 9 ++-- scripts/mobiles/endor/noxious_squill.py | 3 ++ scripts/mobiles/endor/pouncing_jax.py | 47 +++++++++++++++++++ scripts/mobiles/endor/prowling_gurreck.py | 3 ++ scripts/mobiles/endor/putrid_borgle.py | 4 +- .../mobiles/endor/queen_merek_harvester.py | 6 ++- scripts/mobiles/endor/rabid_squall.py | 1 + scripts/mobiles/endor/radiant_lantern_bird.py | 7 ++- .../mobiles/endor/rancid_remmer_warrior.py | 5 +- .../mobiles/endor/ravenous_roba_stalker.py | 3 ++ scripts/mobiles/endor/reclusive_roba.py | 7 ++- .../mobiles/endor/remmer_carrion_keeper.py | 3 ++ .../mobiles/endor/remmer_dune_scavenger.py | 7 ++- scripts/mobiles/endor/roaming_bordok_stud.py | 5 +- .../mobiles/endor/roaming_desert_borgle.py | 2 + scripts/mobiles/endor/roba.py | 7 ++- scripts/mobiles/endor/roba_boar.py | 7 ++- scripts/mobiles/endor/roba_pack_leader.py | 9 ++-- scripts/mobiles/endor/roba_runt.py | 7 ++- .../mobiles/endor/rotten_gut_remmer_king.py | 5 +- .../endor/sanguin_bloodseeker_hierarch.py | 3 ++ .../mobiles/endor/shimmering_lantern_bird.py | 7 ++- scripts/mobiles/endor/spiketail_blurrg.py | 42 +++++++++++++++++ scripts/mobiles/endor/squall.py | 5 +- scripts/mobiles/endor/stoneskin_hanadak.py | 5 +- scripts/mobiles/endor/swirl_prong.py | 7 ++- scripts/mobiles/endor/swirl_prong_impaler.py | 7 ++- .../mobiles/endor/swirl_prong_pack_leader.py | 7 ++- .../mobiles/endor/toxic_merek_battlelord.py | 4 ++ scripts/mobiles/endor/venom_filled_arachne.py | 7 ++- 123 files changed, 948 insertions(+), 155 deletions(-) create mode 100644 scripts/mobiles/endor/arachne_drone.py create mode 100644 scripts/mobiles/endor/arachne_fleshripper.py create mode 100644 scripts/mobiles/endor/arachne_warrior.py create mode 100644 scripts/mobiles/endor/bark_mite_burrower_queen.py create mode 100644 scripts/mobiles/endor/bloodseeker_mite.py create mode 100644 scripts/mobiles/endor/bloodseeker_mite_guardian.py create mode 100644 scripts/mobiles/endor/bloodseeker_mite_hunter.py create mode 100644 scripts/mobiles/endor/borgle_life_sapper.py create mode 100644 scripts/mobiles/endor/gorax.py create mode 100644 scripts/mobiles/endor/pouncing_jax.py create mode 100644 scripts/mobiles/endor/spiketail_blurrg.py diff --git a/scripts/mobiles/endor/aged_lantern_bird.py b/scripts/mobiles/endor/aged_lantern_bird.py index a52c454f..9192494a 100644 --- a/scripts/mobiles/endor/aged_lantern_bird.py +++ b/scripts/mobiles/endor/aged_lantern_bird.py @@ -23,9 +23,9 @@ def addTemplate(core): mobileTemplate.setBoneType("Avian Bones") mobileTemplate.setBoneAmount(46) mobileTemplate.setSocialGroup("lantern") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_lantern.iff') @@ -37,6 +37,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_slash_4') + attacks.add('bm_wing_buffet_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/arachne_drone.py b/scripts/mobiles/endor/arachne_drone.py new file mode 100644 index 00000000..04504e1b --- /dev/null +++ b/scripts/mobiles/endor/arachne_drone.py @@ -0,0 +1,45 @@ +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('arachne_drone') + mobileTemplate.setLevel(64) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setMinSpawnDistance(4) + mobileTemplate.setMaxSpawnDistance(8) + mobileTemplate.setDeathblow(False) + mobileTemplate.setScale(.5) + mobileTemplate.setMeatType("Insect Meat") + mobileTemplate.setMeatAmount(1) + mobileTemplate.setSocialGroup("arachne") + mobileTemplate.setAssistRange(12) + mobileTemplate.setStalker(False) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + + templates = Vector() + templates.add('object/mobile/shared_arachne_hatchling.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'energy') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + attacks.add('bm_damage_poison_3') + attacks.add('bm_defensive_3') + attacks.add('bm_puncture_1') + mobileTemplate.setDefaultAttack('creatureMeleeAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('arachne_drone', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/endor/arachne_fleshripper.py b/scripts/mobiles/endor/arachne_fleshripper.py new file mode 100644 index 00000000..6b065527 --- /dev/null +++ b/scripts/mobiles/endor/arachne_fleshripper.py @@ -0,0 +1,45 @@ +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('arachne_fleshripper') + mobileTemplate.setLevel(64) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setMinSpawnDistance(4) + mobileTemplate.setMaxSpawnDistance(8) + mobileTemplate.setDeathblow(False) + mobileTemplate.setScale(.5) + mobileTemplate.setMeatType("Insect Meat") + mobileTemplate.setMeatAmount(1) + mobileTemplate.setSocialGroup("arachne") + mobileTemplate.setAssistRange(12) + mobileTemplate.setStalker(False) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + + templates = Vector() + templates.add('object/mobile/shared_arachne_hatchling.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'energy') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + attacks.add('bm_damage_poison_3') + attacks.add('bm_defensive_3') + attacks.add('bm_puncture_1') + mobileTemplate.setDefaultAttack('creatureMeleeAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('arachne_fleshripper', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/endor/arachne_hatchling.py b/scripts/mobiles/endor/arachne_hatchling.py index 4116d7fc..1bf49d3d 100644 --- a/scripts/mobiles/endor/arachne_hatchling.py +++ b/scripts/mobiles/endor/arachne_hatchling.py @@ -21,20 +21,23 @@ def addTemplate(core): mobileTemplate.setMeatType("Insect Meat") mobileTemplate.setMeatAmount(1) mobileTemplate.setSocialGroup("arachne") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() - templates.add('object/mobile/shared_arachne.iff') + templates.add('object/mobile/shared_arachne_hatchling.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic') + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'energy') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_damage_poison_3') + attacks.add('bm_defensive_3') + attacks.add('bm_puncture_1') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/arachne_queen.py b/scripts/mobiles/endor/arachne_queen.py index 30f6e311..234a261a 100644 --- a/scripts/mobiles/endor/arachne_queen.py +++ b/scripts/mobiles/endor/arachne_queen.py @@ -21,12 +21,12 @@ def addTemplate(core): mobileTemplate.setMeatType("Insect Meat") mobileTemplate.setMeatAmount(60) mobileTemplate.setSocialGroup("arachne") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(True) mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() - templates.add('object/mobile/shared_arachne.iff') + templates.add('object/mobile/shared_arachne_hatchling.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() @@ -35,6 +35,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_damage_poison_3') + attacks.add('bm_defensive_3') + attacks.add('bm_puncture_1') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/arachne_warrior.py b/scripts/mobiles/endor/arachne_warrior.py new file mode 100644 index 00000000..1fecb52e --- /dev/null +++ b/scripts/mobiles/endor/arachne_warrior.py @@ -0,0 +1,45 @@ +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('arachne_warrior') + mobileTemplate.setLevel(64) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setMinSpawnDistance(4) + mobileTemplate.setMaxSpawnDistance(8) + mobileTemplate.setDeathblow(False) + mobileTemplate.setScale(.5) + mobileTemplate.setMeatType("Insect Meat") + mobileTemplate.setMeatAmount(1) + mobileTemplate.setSocialGroup("arachne") + mobileTemplate.setAssistRange(12) + mobileTemplate.setStalker(False) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + + templates = Vector() + templates.add('object/mobile/shared_arachne_hatchling.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'energy') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + attacks.add('bm_damage_poison_3') + attacks.add('bm_defensive_3') + attacks.add('bm_puncture_1') + mobileTemplate.setDefaultAttack('creatureMeleeAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('arachne_warrior', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/endor/arachne_webmaster.py b/scripts/mobiles/endor/arachne_webmaster.py index 5998b4df..f5089be6 100644 --- a/scripts/mobiles/endor/arachne_webmaster.py +++ b/scripts/mobiles/endor/arachne_webmaster.py @@ -26,15 +26,18 @@ def addTemplate(core): mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() - templates.add('object/mobile/shared_arachne.iff') + templates.add('object/mobile/shared_arachne_hatchling.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic') + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'energy') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_damage_poison_3') + attacks.add('bm_defensive_3') + attacks.add('bm_puncture_1') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/arachne_widow.py b/scripts/mobiles/endor/arachne_widow.py index f26da881..590addab 100644 --- a/scripts/mobiles/endor/arachne_widow.py +++ b/scripts/mobiles/endor/arachne_widow.py @@ -27,7 +27,7 @@ def addTemplate(core): templates = Vector() - templates.add('object/mobile/shared_arachne.iff') + templates.add('object/mobile/shared_arachne_hatchling.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() @@ -36,6 +36,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_damage_poison_3') + attacks.add('bm_defensive_3') + attacks.add('bm_puncture_1') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/archaic_gondula_ritualist.py b/scripts/mobiles/endor/archaic_gondula_ritualist.py index 0f8682e8..bc129453 100644 --- a/scripts/mobiles/endor/archaic_gondula_ritualist.py +++ b/scripts/mobiles/endor/archaic_gondula_ritualist.py @@ -20,7 +20,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup('gondula tribe') mobileTemplate.setAssistRange(1) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() diff --git a/scripts/mobiles/endor/archaic_jinda_ritualist.py b/scripts/mobiles/endor/archaic_jinda_ritualist.py index baf4a8c2..1709a963 100644 --- a/scripts/mobiles/endor/archaic_jinda_ritualist.py +++ b/scripts/mobiles/endor/archaic_jinda_ritualist.py @@ -20,7 +20,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup('jinda tribe') mobileTemplate.setAssistRange(1) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() diff --git a/scripts/mobiles/endor/archaic_panshee_ritualist.py b/scripts/mobiles/endor/archaic_panshee_ritualist.py index 64f1589a..7d7df1fc 100644 --- a/scripts/mobiles/endor/archaic_panshee_ritualist.py +++ b/scripts/mobiles/endor/archaic_panshee_ritualist.py @@ -20,7 +20,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup('panshee tribe') mobileTemplate.setAssistRange(1) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() diff --git a/scripts/mobiles/endor/bark_mite_burrower.py b/scripts/mobiles/endor/bark_mite_burrower.py index 0a935940..90cb123a 100644 --- a/scripts/mobiles/endor/bark_mite_burrower.py +++ b/scripts/mobiles/endor/bark_mite_burrower.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("bark mite") mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_bark_mite.iff') @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_bolster_armor_4') + attacks.add('bm_enfeeble_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/bark_mite_burrower_collector.py b/scripts/mobiles/endor/bark_mite_burrower_collector.py index 37a41132..bf6291f6 100644 --- a/scripts/mobiles/endor/bark_mite_burrower_collector.py +++ b/scripts/mobiles/endor/bark_mite_burrower_collector.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("bark mite") mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_bark_mite.iff') @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_bolster_armor_4') + attacks.add('bm_enfeeble_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/bark_mite_burrower_drone.py b/scripts/mobiles/endor/bark_mite_burrower_drone.py index e72b25d1..b6b4134f 100644 --- a/scripts/mobiles/endor/bark_mite_burrower_drone.py +++ b/scripts/mobiles/endor/bark_mite_burrower_drone.py @@ -19,9 +19,9 @@ def addTemplate(core): mobileTemplate.setDeathblow(False) mobileTemplate.setScale(1) mobileTemplate.setSocialGroup("bark mite") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_bark_mite.iff') @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_bolster_armor_4') + attacks.add('bm_enfeeble_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/bark_mite_burrower_queen.py b/scripts/mobiles/endor/bark_mite_burrower_queen.py new file mode 100644 index 00000000..d9f78bbb --- /dev/null +++ b/scripts/mobiles/endor/bark_mite_burrower_queen.py @@ -0,0 +1,43 @@ +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('bark_mite_burrower_queen') + mobileTemplate.setLevel(63) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setMinSpawnDistance(4) + mobileTemplate.setMaxSpawnDistance(8) + mobileTemplate.setDeathblow(False) + mobileTemplate.setScale(1) + mobileTemplate.setSocialGroup("bark mite") + mobileTemplate.setAssistRange(12) + mobileTemplate.setStalker(False) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + + templates = Vector() + templates.add('object/mobile/shared_bark_mite_burrower_queen.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_bolster_armor_4') + attacks.add('bm_enfeeble_4') + mobileTemplate.setDefaultAttack('creatureMeleeAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('bark_mite_burrower_queen', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/endor/bark_mite_burrower_swarmling.py b/scripts/mobiles/endor/bark_mite_burrower_swarmling.py index e9eff185..d31fafcd 100644 --- a/scripts/mobiles/endor/bark_mite_burrower_swarmling.py +++ b/scripts/mobiles/endor/bark_mite_burrower_swarmling.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("bark mite") mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_bark_mite.iff') @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_bolster_armor_4') + attacks.add('bm_enfeeble_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/bark_mite_burrower_worker.py b/scripts/mobiles/endor/bark_mite_burrower_worker.py index 24c6f547..67a5f331 100644 --- a/scripts/mobiles/endor/bark_mite_burrower_worker.py +++ b/scripts/mobiles/endor/bark_mite_burrower_worker.py @@ -19,9 +19,9 @@ def addTemplate(core): mobileTemplate.setDeathblow(False) mobileTemplate.setScale(1) mobileTemplate.setSocialGroup("bark mite") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_bark_mite.iff') @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_bolster_armor_4') + attacks.add('bm_enfeeble_4') mobileTemplate.setDefaultAttack('creatureRangedAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/bedraggled_korga_laborer.py b/scripts/mobiles/endor/bedraggled_korga_laborer.py index e2a212f7..595f86b3 100644 --- a/scripts/mobiles/endor/bedraggled_korga_laborer.py +++ b/scripts/mobiles/endor/bedraggled_korga_laborer.py @@ -20,7 +20,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup('korga tribe') mobileTemplate.setAssistRange(1) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() diff --git a/scripts/mobiles/endor/bedraggled_pubam_laborer.py b/scripts/mobiles/endor/bedraggled_pubam_laborer.py index 0aad94de..292f050b 100644 --- a/scripts/mobiles/endor/bedraggled_pubam_laborer.py +++ b/scripts/mobiles/endor/bedraggled_pubam_laborer.py @@ -20,7 +20,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup('pubam tribe') mobileTemplate.setAssistRange(1) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() diff --git a/scripts/mobiles/endor/beguilding_korga_scout.py b/scripts/mobiles/endor/beguilding_korga_scout.py index fad9dd59..181c14d2 100644 --- a/scripts/mobiles/endor/beguilding_korga_scout.py +++ b/scripts/mobiles/endor/beguilding_korga_scout.py @@ -20,7 +20,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup('korga tribe') mobileTemplate.setAssistRange(1) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() diff --git a/scripts/mobiles/endor/beguiling_donkuwah_scout.py b/scripts/mobiles/endor/beguiling_donkuwah_scout.py index 5a8f07b0..87efaf11 100644 --- a/scripts/mobiles/endor/beguiling_donkuwah_scout.py +++ b/scripts/mobiles/endor/beguiling_donkuwah_scout.py @@ -20,7 +20,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup('donkuwah tribe') mobileTemplate.setAssistRange(1) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() diff --git a/scripts/mobiles/endor/beguiling_pubam_scout.py b/scripts/mobiles/endor/beguiling_pubam_scout.py index 188596a7..3df3e5f4 100644 --- a/scripts/mobiles/endor/beguiling_pubam_scout.py +++ b/scripts/mobiles/endor/beguiling_pubam_scout.py @@ -20,6 +20,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup('pubam tribe') mobileTemplate.setAssistRange(1) mobileTemplate.setStalker(False) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() diff --git a/scripts/mobiles/endor/blood_drenched_merek_king.py b/scripts/mobiles/endor/blood_drenched_merek_king.py index 1b8c6392..8884ce8f 100644 --- a/scripts/mobiles/endor/blood_drenched_merek_king.py +++ b/scripts/mobiles/endor/blood_drenched_merek_king.py @@ -26,7 +26,7 @@ def addTemplate(core): mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() - templates.add('object/mobile/shared_merek.iff') + templates.add('object/mobile/shared_blood_drenched_merek_king.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() diff --git a/scripts/mobiles/endor/blood_frenzied_boar_wolf.py b/scripts/mobiles/endor/blood_frenzied_boar_wolf.py index dd0e26cb..58479684 100644 --- a/scripts/mobiles/endor/blood_frenzied_boar_wolf.py +++ b/scripts/mobiles/endor/blood_frenzied_boar_wolf.py @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_charge_4') + attacks.add('bm_dampen_pain_4') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/blood_stained_merek.py b/scripts/mobiles/endor/blood_stained_merek.py index 0adeb38e..510bb956 100644 --- a/scripts/mobiles/endor/blood_stained_merek.py +++ b/scripts/mobiles/endor/blood_stained_merek.py @@ -35,6 +35,10 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_damage_poison_4') + attacks.add('bm_dampen_pain_4') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/bloodseeker_mite.py b/scripts/mobiles/endor/bloodseeker_mite.py new file mode 100644 index 00000000..76407f52 --- /dev/null +++ b/scripts/mobiles/endor/bloodseeker_mite.py @@ -0,0 +1,43 @@ +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('bloodseeker_mite') + mobileTemplate.setLevel(64) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setMinSpawnDistance(4) + mobileTemplate.setMaxSpawnDistance(8) + mobileTemplate.setDeathblow(False) + mobileTemplate.setScale(1) + mobileTemplate.setSocialGroup("bloodseeker") + mobileTemplate.setAssistRange(12) + mobileTemplate.setStalker(False) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) + + templates = Vector() + templates.add('object/mobile/shared_bloodseeker_mite.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'energy') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_bolster_armor_4') + attacks.add('bm_enfeeble_4') + mobileTemplate.setDefaultAttack('creatureMeleeAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('bloodseeker_mite', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/endor/bloodseeker_mite_drone.py b/scripts/mobiles/endor/bloodseeker_mite_drone.py index 3602ccf6..6219ffeb 100644 --- a/scripts/mobiles/endor/bloodseeker_mite_drone.py +++ b/scripts/mobiles/endor/bloodseeker_mite_drone.py @@ -21,6 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("bloodseeker") mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_bloodseeker.iff') @@ -32,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_bolster_armor_4') + attacks.add('bm_enfeeble_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/bloodseeker_mite_guardian.py b/scripts/mobiles/endor/bloodseeker_mite_guardian.py new file mode 100644 index 00000000..660c9ce6 --- /dev/null +++ b/scripts/mobiles/endor/bloodseeker_mite_guardian.py @@ -0,0 +1,43 @@ +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('bloodseeker_mite_guardian') + mobileTemplate.setLevel(64) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setMinSpawnDistance(4) + mobileTemplate.setMaxSpawnDistance(8) + mobileTemplate.setDeathblow(False) + mobileTemplate.setScale(1) + mobileTemplate.setSocialGroup("bloodseeker") + mobileTemplate.setAssistRange(12) + mobileTemplate.setStalker(False) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + + templates = Vector() + templates.add('object/mobile/shared_bloodseeker_mite.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'energy') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_bolster_armor_4') + attacks.add('bm_enfeeble_4') + mobileTemplate.setDefaultAttack('creatureMeleeAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('bloodseeker_mite_guardian', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/endor/bloodseeker_mite_hunter.py b/scripts/mobiles/endor/bloodseeker_mite_hunter.py new file mode 100644 index 00000000..516672d9 --- /dev/null +++ b/scripts/mobiles/endor/bloodseeker_mite_hunter.py @@ -0,0 +1,43 @@ +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('bloodseeker_mite_drone') + mobileTemplate.setLevel(64) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setMinSpawnDistance(4) + mobileTemplate.setMaxSpawnDistance(8) + mobileTemplate.setDeathblow(False) + mobileTemplate.setScale(1) + mobileTemplate.setSocialGroup("bloodseeker") + mobileTemplate.setAssistRange(12) + mobileTemplate.setStalker(False) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) + + templates = Vector() + templates.add('object/mobile/shared_bloodseeker.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_bolster_armor_4') + attacks.add('bm_enfeeble_4') + mobileTemplate.setDefaultAttack('creatureMeleeAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('bloodseeker_mite_drone', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/endor/bloodseeker_mite_queen.py b/scripts/mobiles/endor/bloodseeker_mite_queen.py index a2516e9a..beb21a32 100644 --- a/scripts/mobiles/endor/bloodseeker_mite_queen.py +++ b/scripts/mobiles/endor/bloodseeker_mite_queen.py @@ -19,12 +19,12 @@ def addTemplate(core): mobileTemplate.setDeathblow(True) mobileTemplate.setScale(1.2) mobileTemplate.setSocialGroup("bloodseeker") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() - templates.add('object/mobile/shared_bloodseeker.iff') + templates.add('object/mobile/shared_bloodseeker_mite_queen.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_bolster_armor_4') + attacks.add('bm_enfeeble_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/blooming_jax.py b/scripts/mobiles/endor/blooming_jax.py index 6b873bd8..356eb3d6 100644 --- a/scripts/mobiles/endor/blooming_jax.py +++ b/scripts/mobiles/endor/blooming_jax.py @@ -23,12 +23,12 @@ def addTemplate(core): mobileTemplate.setBoneType("Animal Bones") mobileTemplate.setBoneAmount(25) mobileTemplate.setSocialGroup("jax") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() - templates.add('object/mobile/shared_jax.iff') + templates.add('object/mobile/shared_blooming_jax.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() @@ -37,6 +37,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_flank_2') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/blurrg.py b/scripts/mobiles/endor/blurrg.py index 5e081f5e..1ab820f8 100644 --- a/scripts/mobiles/endor/blurrg.py +++ b/scripts/mobiles/endor/blurrg.py @@ -19,9 +19,9 @@ def addTemplate(core): mobileTemplate.setDeathblow(False) mobileTemplate.setScale(1) mobileTemplate.setSocialGroup("blurrg") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_blurrg.iff') @@ -33,6 +33,8 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_hamstring_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/blurrg_hunter.py b/scripts/mobiles/endor/blurrg_hunter.py index 790d3b8e..8de30eda 100644 --- a/scripts/mobiles/endor/blurrg_hunter.py +++ b/scripts/mobiles/endor/blurrg_hunter.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("blurrg") mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_blurrg.iff') @@ -33,6 +33,8 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_hamstring_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/blurrg_pup.py b/scripts/mobiles/endor/blurrg_pup.py index 6e3229df..54699b6d 100644 --- a/scripts/mobiles/endor/blurrg_pup.py +++ b/scripts/mobiles/endor/blurrg_pup.py @@ -19,12 +19,12 @@ def addTemplate(core): mobileTemplate.setDeathblow(False) mobileTemplate.setScale(.5) mobileTemplate.setSocialGroup("blurrg") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() - templates.add('object/mobile/shared_blurrg.iff') + templates.add('object/mobile/shared_blurrg_pup.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() @@ -33,6 +33,8 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_hamstring_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/blurrg_raptor.py b/scripts/mobiles/endor/blurrg_raptor.py index a1b0454d..5bd55ce1 100644 --- a/scripts/mobiles/endor/blurrg_raptor.py +++ b/scripts/mobiles/endor/blurrg_raptor.py @@ -20,7 +20,6 @@ def addTemplate(core): mobileTemplate.setScale(1) mobileTemplate.setSocialGroup("blurrg") mobileTemplate.setAssistRange(12) - mobileTemplate.setStalker(True) mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() @@ -33,6 +32,8 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_hamstring_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/blurrg_sand_crawler.py b/scripts/mobiles/endor/blurrg_sand_crawler.py index aa48874f..6608d461 100644 --- a/scripts/mobiles/endor/blurrg_sand_crawler.py +++ b/scripts/mobiles/endor/blurrg_sand_crawler.py @@ -19,9 +19,9 @@ def addTemplate(core): mobileTemplate.setDeathblow(False) mobileTemplate.setScale(1) mobileTemplate.setSocialGroup("blurrg") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_blurrg.iff') @@ -33,6 +33,8 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_hamstring_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/blurrg_tracker.py b/scripts/mobiles/endor/blurrg_tracker.py index aa75fd4a..a1017d26 100644 --- a/scripts/mobiles/endor/blurrg_tracker.py +++ b/scripts/mobiles/endor/blurrg_tracker.py @@ -19,9 +19,9 @@ def addTemplate(core): mobileTemplate.setDeathblow(False) mobileTemplate.setScale(1) mobileTemplate.setSocialGroup("blurrg") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_blurrg.iff') @@ -33,6 +33,8 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_hamstring_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/blushing_jax.py b/scripts/mobiles/endor/blushing_jax.py index d89e7675..8cc8ead1 100644 --- a/scripts/mobiles/endor/blushing_jax.py +++ b/scripts/mobiles/endor/blushing_jax.py @@ -23,12 +23,12 @@ def addTemplate(core): mobileTemplate.setBoneType("Animal Bones") mobileTemplate.setBoneAmount(25) mobileTemplate.setSocialGroup("jax") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() - templates.add('object/mobile/shared_jax.iff') + templates.add('object/mobile/shared_blushing_jax.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() @@ -37,6 +37,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_flank_4') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/boar_wolf.py b/scripts/mobiles/endor/boar_wolf.py index bb44721f..ca5237ce 100644 --- a/scripts/mobiles/endor/boar_wolf.py +++ b/scripts/mobiles/endor/boar_wolf.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("boar wolf") mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_boar_wolf.iff') @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_charge_4') + attacks.add('bm_dampen_pain_4') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/boar_wolf_cub.py b/scripts/mobiles/endor/boar_wolf_cub.py index 1fc4d48e..8e710b9c 100644 --- a/scripts/mobiles/endor/boar_wolf_cub.py +++ b/scripts/mobiles/endor/boar_wolf_cub.py @@ -19,12 +19,12 @@ def addTemplate(core): mobileTemplate.setDeathblow(False) mobileTemplate.setScale(.5) mobileTemplate.setSocialGroup("boar wolf") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() - templates.add('object/mobile/shared_boar_wolf.iff') + templates.add('object/mobile/shared_boar_wolf_cub.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_charge_4') + attacks.add('bm_dampen_pain_4') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/boar_wolf_ravager.py b/scripts/mobiles/endor/boar_wolf_ravager.py index 2a142c8c..3f96b919 100644 --- a/scripts/mobiles/endor/boar_wolf_ravager.py +++ b/scripts/mobiles/endor/boar_wolf_ravager.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("boar wolf") mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_boar_wolf.iff') @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_charge_4') + attacks.add('bm_dampen_pain_4') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/bolle_bol_bark_biter.py b/scripts/mobiles/endor/bolle_bol_bark_biter.py index 5f8cd211..95629ae3 100644 --- a/scripts/mobiles/endor/bolle_bol_bark_biter.py +++ b/scripts/mobiles/endor/bolle_bol_bark_biter.py @@ -23,9 +23,9 @@ def addTemplate(core): mobileTemplate.setBoneType("Animal Bones") mobileTemplate.setBoneAmount(180) mobileTemplate.setSocialGroup("bolle bol") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_bolle_bol.iff') @@ -37,6 +37,11 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_bolster_armor_5') + attacks.add('bm_charge_4') + attacks.add('bm_shaken_2') + attacks.add('bm_stomp_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/bolle_bol_calf.py b/scripts/mobiles/endor/bolle_bol_calf.py index 1aceda6a..5d0de760 100644 --- a/scripts/mobiles/endor/bolle_bol_calf.py +++ b/scripts/mobiles/endor/bolle_bol_calf.py @@ -23,12 +23,12 @@ def addTemplate(core): mobileTemplate.setBoneType("Animal Bones") mobileTemplate.setBoneAmount(180) mobileTemplate.setSocialGroup("bolle bol") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() - templates.add('object/mobile/shared_bolle_bol.iff') + templates.add('object/mobile/shared_bolle_bol_calf.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() @@ -37,6 +37,11 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_bolster_armor_5') + attacks.add('bm_charge_4') + attacks.add('bm_shaken_2') + attacks.add('bm_stomp_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/bolle_bol_colt.py b/scripts/mobiles/endor/bolle_bol_colt.py index 7c1166e8..98c5388c 100644 --- a/scripts/mobiles/endor/bolle_bol_colt.py +++ b/scripts/mobiles/endor/bolle_bol_colt.py @@ -23,9 +23,9 @@ def addTemplate(core): mobileTemplate.setBoneType("Animal Bones") mobileTemplate.setBoneAmount(180) mobileTemplate.setSocialGroup("bolle bol") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_bolle_bol.iff') @@ -37,6 +37,11 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_bolster_armor_5') + attacks.add('bm_charge_4') + attacks.add('bm_shaken_2') + attacks.add('bm_stomp_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/bolle_bol_female.py b/scripts/mobiles/endor/bolle_bol_female.py index 1454b84c..1e6df164 100644 --- a/scripts/mobiles/endor/bolle_bol_female.py +++ b/scripts/mobiles/endor/bolle_bol_female.py @@ -23,9 +23,9 @@ def addTemplate(core): mobileTemplate.setBoneType("Animal Bones") mobileTemplate.setBoneAmount(180) mobileTemplate.setSocialGroup("bolle bol") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_bolle_bol.iff') @@ -37,6 +37,11 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_bolster_armor_5') + attacks.add('bm_charge_4') + attacks.add('bm_shaken_2') + attacks.add('bm_stomp_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/bolle_bol_herd_leader.py b/scripts/mobiles/endor/bolle_bol_herd_leader.py index 797fd923..3b128768 100644 --- a/scripts/mobiles/endor/bolle_bol_herd_leader.py +++ b/scripts/mobiles/endor/bolle_bol_herd_leader.py @@ -23,9 +23,9 @@ def addTemplate(core): mobileTemplate.setBoneType("Animal Bones") mobileTemplate.setBoneAmount(180) mobileTemplate.setSocialGroup("bolle bol") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(True) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_bolle_bol.iff') @@ -37,6 +37,11 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_bolster_armor_5') + attacks.add('bm_charge_4') + attacks.add('bm_shaken_2') + attacks.add('bm_stomp_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/bolle_bol_male.py b/scripts/mobiles/endor/bolle_bol_male.py index 5078c0be..df5bf17c 100644 --- a/scripts/mobiles/endor/bolle_bol_male.py +++ b/scripts/mobiles/endor/bolle_bol_male.py @@ -23,9 +23,9 @@ def addTemplate(core): mobileTemplate.setBoneType("Animal Bones") mobileTemplate.setBoneAmount(180) mobileTemplate.setSocialGroup("bolle bol") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(True) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_bolle_bol.iff') @@ -37,6 +37,11 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_bolster_armor_5') + attacks.add('bm_charge_4') + attacks.add('bm_shaken_2') + attacks.add('bm_stomp_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/bolle_bol_stomper.py b/scripts/mobiles/endor/bolle_bol_stomper.py index 6eee987b..e6738b97 100644 --- a/scripts/mobiles/endor/bolle_bol_stomper.py +++ b/scripts/mobiles/endor/bolle_bol_stomper.py @@ -23,9 +23,9 @@ def addTemplate(core): mobileTemplate.setBoneType("Animal Bones") mobileTemplate.setBoneAmount(180) mobileTemplate.setSocialGroup("bolle bol") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(True) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_bolle_bol.iff') @@ -37,6 +37,11 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_bolster_armor_5') + attacks.add('bm_charge_4') + attacks.add('bm_shaken_2') + attacks.add('bm_stomp_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/bordok_ancient.py b/scripts/mobiles/endor/bordok_ancient.py index 2317611c..814543a7 100644 --- a/scripts/mobiles/endor/bordok_ancient.py +++ b/scripts/mobiles/endor/bordok_ancient.py @@ -19,9 +19,9 @@ def addTemplate(core): mobileTemplate.setDeathblow(False) mobileTemplate.setScale(1) mobileTemplate.setSocialGroup("bordok") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(True) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_bordok.iff') @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_defensive_4') + attacks.add('bm_kick_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/bordok_foal.py b/scripts/mobiles/endor/bordok_foal.py index 649748a3..e45b598d 100644 --- a/scripts/mobiles/endor/bordok_foal.py +++ b/scripts/mobiles/endor/bordok_foal.py @@ -19,12 +19,12 @@ def addTemplate(core): mobileTemplate.setDeathblow(False) mobileTemplate.setScale(.5) mobileTemplate.setSocialGroup("bordok") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(True) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() - templates.add('object/mobile/shared_bordok.iff') + templates.add('object/mobile/shared_bordok_foal.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_defensive_4') + attacks.add('bm_kick_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/bordok_herd_master.py b/scripts/mobiles/endor/bordok_herd_master.py index 125195b7..4cf22beb 100644 --- a/scripts/mobiles/endor/bordok_herd_master.py +++ b/scripts/mobiles/endor/bordok_herd_master.py @@ -19,9 +19,9 @@ def addTemplate(core): mobileTemplate.setDeathblow(False) mobileTemplate.setScale(1.2) mobileTemplate.setSocialGroup("bordok") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(True) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_bordok.iff') @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_defensive_4') + attacks.add('bm_kick_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/bordok_mare.py b/scripts/mobiles/endor/bordok_mare.py index b9a53d0a..17731980 100644 --- a/scripts/mobiles/endor/bordok_mare.py +++ b/scripts/mobiles/endor/bordok_mare.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("bordok") mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(True) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_bordok.iff') @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_defensive_4') + attacks.add('bm_kick_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/borgle_life_sapper.py b/scripts/mobiles/endor/borgle_life_sapper.py new file mode 100644 index 00000000..39da2656 --- /dev/null +++ b/scripts/mobiles/endor/borgle_life_sapper.py @@ -0,0 +1,47 @@ +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('borgle_life_sapper') + mobileTemplate.setLevel(63) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setMinSpawnDistance(4) + mobileTemplate.setMaxSpawnDistance(8) + mobileTemplate.setDeathblow(True) + mobileTemplate.setScale(1) + mobileTemplate.setHideType("Leathery Hide") + mobileTemplate.setHideAmount(5) + mobileTemplate.setBoneType("Avian Bones") + mobileTemplate.setBoneAmount(5) + mobileTemplate.setSocialGroup("borgle") + mobileTemplate.setAssistRange(12) + mobileTemplate.setStalker(True) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + + templates = Vector() + templates.add('object/mobile/shared_borgle.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'energy') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + attacks.add('bm_health_leech_2') + attacks.add('bm_puncture_2') + attacks.add('bm_wing_buffet_4') + mobileTemplate.setDefaultAttack('creatureMeleeAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('borgle_life_sapper', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/endor/bounding_jax.py b/scripts/mobiles/endor/bounding_jax.py index 852d8863..ff25f382 100644 --- a/scripts/mobiles/endor/bounding_jax.py +++ b/scripts/mobiles/endor/bounding_jax.py @@ -23,12 +23,12 @@ def addTemplate(core): mobileTemplate.setBoneType("Animal Bones") mobileTemplate.setBoneAmount(25) mobileTemplate.setSocialGroup("jax") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(True) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() - templates.add('object/mobile/shared_jax.iff') + templates.add('object/mobile/shared_bearded_jax.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() diff --git a/scripts/mobiles/endor/cowardly_gurreck.py b/scripts/mobiles/endor/cowardly_gurreck.py index 1a3470c1..5dd875f0 100644 --- a/scripts/mobiles/endor/cowardly_gurreck.py +++ b/scripts/mobiles/endor/cowardly_gurreck.py @@ -19,9 +19,9 @@ def addTemplate(core): mobileTemplate.setDeathblow(False) mobileTemplate.setScale(1) mobileTemplate.setSocialGroup("gurreck") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(True) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_gurreck.iff') @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_flank_2') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/crazed_gurreck.py b/scripts/mobiles/endor/crazed_gurreck.py index 1d4cf191..2bf5a970 100644 --- a/scripts/mobiles/endor/crazed_gurreck.py +++ b/scripts/mobiles/endor/crazed_gurreck.py @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_flank_2') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/crimson_blurrg.py b/scripts/mobiles/endor/crimson_blurrg.py index edd0295c..c4bd2fa4 100644 --- a/scripts/mobiles/endor/crimson_blurrg.py +++ b/scripts/mobiles/endor/crimson_blurrg.py @@ -19,7 +19,7 @@ def addTemplate(core): mobileTemplate.setDeathblow(False) mobileTemplate.setScale(1) mobileTemplate.setSocialGroup("blurrg") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(True) mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) @@ -33,6 +33,8 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_hamstring_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/delirious_merek_avenger.py b/scripts/mobiles/endor/delirious_merek_avenger.py index da3b48de..9311359c 100644 --- a/scripts/mobiles/endor/delirious_merek_avenger.py +++ b/scripts/mobiles/endor/delirious_merek_avenger.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setHideType("Leathery Hide") mobileTemplate.setHideAmount(45) mobileTemplate.setSocialGroup("merek") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(True) mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) @@ -30,11 +30,15 @@ def addTemplate(core): mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic') + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'energy') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_damage_poison_4') + attacks.add('bm_dampen_pain_4') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureRangedAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/deranged_mantigrue.py b/scripts/mobiles/endor/deranged_mantigrue.py index 7d31cc32..0f5142c3 100644 --- a/scripts/mobiles/endor/deranged_mantigrue.py +++ b/scripts/mobiles/endor/deranged_mantigrue.py @@ -33,6 +33,10 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_damage_poison_4') + attacks.add('bm_slash_4') + attacks.add('bm_wing_buffet_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/deranged_ravisher.py b/scripts/mobiles/endor/deranged_ravisher.py index a230b194..f0842dce 100644 --- a/scripts/mobiles/endor/deranged_ravisher.py +++ b/scripts/mobiles/endor/deranged_ravisher.py @@ -11,7 +11,7 @@ def addTemplate(core): mobileTemplate = MobileTemplate() mobileTemplate.setCreatureName('squill_deranged_ravisher') - mobileTemplate.setLevel(33) + mobileTemplate.setLevel(35) mobileTemplate.setDifficulty(Difficulty.NORMAL) mobileTemplate.setMinSpawnDistance(4) diff --git a/scripts/mobiles/endor/desert_gurreck_charger.py b/scripts/mobiles/endor/desert_gurreck_charger.py index e73fc34d..310c295c 100644 --- a/scripts/mobiles/endor/desert_gurreck_charger.py +++ b/scripts/mobiles/endor/desert_gurreck_charger.py @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_flank_2') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/desert_scavenger.py b/scripts/mobiles/endor/desert_scavenger.py index c0fde176..cefaebfc 100644 --- a/scripts/mobiles/endor/desert_scavenger.py +++ b/scripts/mobiles/endor/desert_scavenger.py @@ -25,10 +25,10 @@ def addTemplate(core): mobileTemplate.setSocialGroup("borgle") mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(True) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() - templates.add('object/mobile/shared_borgle.iff') + templates.add('object/mobile/shared_gackle_bat.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() diff --git a/scripts/mobiles/endor/diminutive_bounding_jax.py b/scripts/mobiles/endor/diminutive_bounding_jax.py index c4330b60..2b061b55 100644 --- a/scripts/mobiles/endor/diminutive_bounding_jax.py +++ b/scripts/mobiles/endor/diminutive_bounding_jax.py @@ -9,7 +9,7 @@ from java.util import Vector def addTemplate(core): mobileTemplate = MobileTemplate() - + mobileTemplate.setCreatureName('jax_bounding_dwarf') mobileTemplate.setLevel(25) mobileTemplate.setDifficulty(Difficulty.NORMAL) @@ -23,22 +23,22 @@ def addTemplate(core): mobileTemplate.setBoneType("Animal Bones") mobileTemplate.setBoneAmount(25) mobileTemplate.setSocialGroup("jax") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(True) - mobileTemplate.setOptionsBitmask(128) - + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) + templates = Vector() - templates.add('object/mobile/shared_jax.iff') + templates.add('object/mobile/shared_bearded_jax.iff') mobileTemplate.setTemplates(templates) - + weaponTemplates = Vector() weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) - + attacks = Vector() mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) - + core.spawnService.addMobileTemplate('diminutive_bounding_jax', mobileTemplate) return \ No newline at end of file diff --git a/scripts/mobiles/endor/diseased_blurrg.py b/scripts/mobiles/endor/diseased_blurrg.py index eb661b09..cab12a5d 100644 --- a/scripts/mobiles/endor/diseased_blurrg.py +++ b/scripts/mobiles/endor/diseased_blurrg.py @@ -33,6 +33,8 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_hamstring_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/domesticated_blurrg.py b/scripts/mobiles/endor/domesticated_blurrg.py index 949de25b..5411146d 100644 --- a/scripts/mobiles/endor/domesticated_blurrg.py +++ b/scripts/mobiles/endor/domesticated_blurrg.py @@ -19,9 +19,9 @@ def addTemplate(core): mobileTemplate.setDeathblow(False) mobileTemplate.setScale(.8) mobileTemplate.setSocialGroup("self") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(True) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_blurrg.iff') @@ -33,6 +33,8 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_hamstring_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/domesticated_merek.py b/scripts/mobiles/endor/domesticated_merek.py index 9e96e60a..9624f7fd 100644 --- a/scripts/mobiles/endor/domesticated_merek.py +++ b/scripts/mobiles/endor/domesticated_merek.py @@ -21,9 +21,9 @@ def addTemplate(core): mobileTemplate.setHideType("Leathery Hide") mobileTemplate.setHideAmount(45) mobileTemplate.setSocialGroup("self") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_merek.iff') @@ -35,6 +35,10 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_damage_poison_4') + attacks.add('bm_dampen_pain_4') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureRangedAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/elder_hanadak_matriarch.py b/scripts/mobiles/endor/elder_hanadak_matriarch.py index 13678dd2..172f5b0f 100644 --- a/scripts/mobiles/endor/elder_hanadak_matriarch.py +++ b/scripts/mobiles/endor/elder_hanadak_matriarch.py @@ -26,12 +26,12 @@ def addTemplate(core): mobileTemplate.setBoneAmount(35) mobileTemplate.setSocialGroup("hanadak") mobileTemplate.setAssistRange(12) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) mobileTemplate.setStalker(True) templates = Vector() - templates.add('object/mobile/shared_hanadak.iff') + templates.add('object/mobile/shared_elder_hanadak_matriarch.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() @@ -40,6 +40,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_dampen_pain_4') + attacks.add('bm_shaken_2') + attacks.add('bm_stomp_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/elder_squall.py b/scripts/mobiles/endor/elder_squall.py index 11816f22..301dfd88 100644 --- a/scripts/mobiles/endor/elder_squall.py +++ b/scripts/mobiles/endor/elder_squall.py @@ -23,8 +23,8 @@ def addTemplate(core): mobileTemplate.setBoneType("Animal Bones") mobileTemplate.setBoneAmount(8) mobileTemplate.setSocialGroup("squall") - mobileTemplate.setAssistRange(0) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setAssistRange(12) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) mobileTemplate.setStalker(True) templates = Vector() @@ -37,6 +37,7 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/erratic_swirl_prong.py b/scripts/mobiles/endor/erratic_swirl_prong.py index 227f73c7..1645c0c2 100644 --- a/scripts/mobiles/endor/erratic_swirl_prong.py +++ b/scripts/mobiles/endor/erratic_swirl_prong.py @@ -19,8 +19,8 @@ def addTemplate(core): mobileTemplate.setDeathblow(False) mobileTemplate.setScale(1) mobileTemplate.setSocialGroup("swirl prong") - mobileTemplate.setAssistRange(0) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setAssistRange(12) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) mobileTemplate.setStalker(True) templates = Vector() @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_charge_2') + attacks.add('bm_defensive_2') + attacks.add('bm_slash_2') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/festering_squill.py b/scripts/mobiles/endor/festering_squill.py index f4cbebe2..8f20eb6d 100644 --- a/scripts/mobiles/endor/festering_squill.py +++ b/scripts/mobiles/endor/festering_squill.py @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_defensive_4') + attacks.add('bm_disease_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/fierce_borgle.py b/scripts/mobiles/endor/fierce_borgle.py index f4f5c58c..4a4b95d3 100644 --- a/scripts/mobiles/endor/fierce_borgle.py +++ b/scripts/mobiles/endor/fierce_borgle.py @@ -37,6 +37,8 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_puncture_2') + attacks.add('bm_wing_buffet_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/gleaming_lantern_bird.py b/scripts/mobiles/endor/gleaming_lantern_bird.py index 0b75bae6..f3891a16 100644 --- a/scripts/mobiles/endor/gleaming_lantern_bird.py +++ b/scripts/mobiles/endor/gleaming_lantern_bird.py @@ -23,9 +23,9 @@ def addTemplate(core): mobileTemplate.setBoneType("Avian Bones") mobileTemplate.setBoneAmount(46) mobileTemplate.setSocialGroup("lantern") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_lantern_bird.iff') @@ -37,6 +37,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_slash_4') + attacks.add('bm_wing_buffet_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/gorax.py b/scripts/mobiles/endor/gorax.py new file mode 100644 index 00000000..f65a8234 --- /dev/null +++ b/scripts/mobiles/endor/gorax.py @@ -0,0 +1,40 @@ +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('gorax') + mobileTemplate.setLevel(83) + mobileTemplate.setDifficulty(Difficulty.BOSS) + + mobileTemplate.setMinSpawnDistance(4) + mobileTemplate.setMaxSpawnDistance(8) + mobileTemplate.setDeathblow(True) + mobileTemplate.setScale(2) + mobileTemplate.setSocialGroup("gorax") + mobileTemplate.setAssistRange(12) + mobileTemplate.setStalker(False) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + + templates = Vector() + templates.add('object/mobile/shared_gorax.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + mobileTemplate.setDefaultAttack('creatureMeleeAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('gorax', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/endor/gurreck.py b/scripts/mobiles/endor/gurreck.py index cc66f03d..7a747b8f 100644 --- a/scripts/mobiles/endor/gurreck.py +++ b/scripts/mobiles/endor/gurreck.py @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_flank_2') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/gurreck_forest_stalker.py b/scripts/mobiles/endor/gurreck_forest_stalker.py index b5603bd1..7459af4f 100644 --- a/scripts/mobiles/endor/gurreck_forest_stalker.py +++ b/scripts/mobiles/endor/gurreck_forest_stalker.py @@ -10,7 +10,7 @@ from java.util import Vector def addTemplate(core): mobileTemplate = MobileTemplate() - mobileTemplate.setCreatureName('woodland_gurreck') + mobileTemplate.setCreatureName('woodland_gurreck') mobileTemplate.setLevel(64) mobileTemplate.setDifficulty(Difficulty.NORMAL) @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_flank_2') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/hanadak_ancient.py b/scripts/mobiles/endor/hanadak_ancient.py index fca8a21c..2c857b78 100644 --- a/scripts/mobiles/endor/hanadak_ancient.py +++ b/scripts/mobiles/endor/hanadak_ancient.py @@ -16,7 +16,7 @@ def addTemplate(core): mobileTemplate.setMinSpawnDistance(4) mobileTemplate.setMaxSpawnDistance(8) - mobileTemplate.setDeathblow(False) + mobileTemplate.setDeathblow(Yes) mobileTemplate.setScale(1.2) mobileTemplate.setMeatType("Carnivore Meat") mobileTemplate.setMeatAmount(40) @@ -39,6 +39,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_dampen_pain_4') + attacks.add('bm_shaken_2') + attacks.add('bm_stomp_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/hanadak_drifter.py b/scripts/mobiles/endor/hanadak_drifter.py index bf19ce05..06d1668f 100644 --- a/scripts/mobiles/endor/hanadak_drifter.py +++ b/scripts/mobiles/endor/hanadak_drifter.py @@ -37,6 +37,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_dampen_pain_4') + attacks.add('bm_shaken_2') + attacks.add('bm_stomp_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/highland_remmer.py b/scripts/mobiles/endor/highland_remmer.py index 76186f2d..7230c46d 100644 --- a/scripts/mobiles/endor/highland_remmer.py +++ b/scripts/mobiles/endor/highland_remmer.py @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_bolster_armor_4') + attacks.add('bm_enfeeble_4') mobileTemplate.setDefaultAttack('creatureSpitAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/hilltop_gurreck_hunter.py b/scripts/mobiles/endor/hilltop_gurreck_hunter.py index 7adb0616..01c1c34e 100644 --- a/scripts/mobiles/endor/hilltop_gurreck_hunter.py +++ b/scripts/mobiles/endor/hilltop_gurreck_hunter.py @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_flank_2') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/insane_mantigrue_berserker.py b/scripts/mobiles/endor/insane_mantigrue_berserker.py index 50eb1ac6..1a4aa6a6 100644 --- a/scripts/mobiles/endor/insane_mantigrue_berserker.py +++ b/scripts/mobiles/endor/insane_mantigrue_berserker.py @@ -33,6 +33,10 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_3') + attacks.add('bm_damage_poison_3') + attacks.add('bm_slash_3') + attacks.add('bm_wing_buffet_3') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/king_merek_harvester.py b/scripts/mobiles/endor/king_merek_harvester.py index 4de51691..b63c81ab 100644 --- a/scripts/mobiles/endor/king_merek_harvester.py +++ b/scripts/mobiles/endor/king_merek_harvester.py @@ -26,7 +26,7 @@ def addTemplate(core): mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() - templates.add('object/mobile/shared_merek.iff') + templates.add('object/mobile/shared_king_merek_harvester.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() @@ -35,6 +35,10 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_damage_poison_4') + attacks.add('bm_dampen_pain_4') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureRangedAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/lantern_bird.py b/scripts/mobiles/endor/lantern_bird.py index 8f98087a..3b685c2b 100644 --- a/scripts/mobiles/endor/lantern_bird.py +++ b/scripts/mobiles/endor/lantern_bird.py @@ -23,9 +23,9 @@ def addTemplate(core): mobileTemplate.setBoneType("Avian Bones") mobileTemplate.setBoneAmount(46) mobileTemplate.setSocialGroup("lantern") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_lantern_bird.iff') @@ -37,6 +37,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_slash_4') + attacks.add('bm_wing_buffet_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/lice_ridden_remmer_queen.py b/scripts/mobiles/endor/lice_ridden_remmer_queen.py index 387c8e49..468ded5a 100644 --- a/scripts/mobiles/endor/lice_ridden_remmer_queen.py +++ b/scripts/mobiles/endor/lice_ridden_remmer_queen.py @@ -24,16 +24,19 @@ def addTemplate(core): mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() - templates.add('object/mobile/shared_remmer.iff') + templates.add('object/mobile/shared_lice_ridden_remmer_queen.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic') + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'energy') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() - mobileTemplate.setDefaultAttack('creatureSpitAttack') + attacks.add('bm_bite_4') + attacks.add('bm_bolster_armor_4') + attacks.add('bm_enfeeble_4') + mobileTemplate.setDefaultAttack('creatureRangedAttack') mobileTemplate.setAttacks(attacks) core.spawnService.addMobileTemplate('lice_ridden_remmer_queen', mobileTemplate) diff --git a/scripts/mobiles/endor/mantigrue_hunter.py b/scripts/mobiles/endor/mantigrue_hunter.py index b64a4c4a..762662c4 100644 --- a/scripts/mobiles/endor/mantigrue_hunter.py +++ b/scripts/mobiles/endor/mantigrue_hunter.py @@ -28,11 +28,15 @@ def addTemplate(core): mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic') + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'energy') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_damage_poison_4') + attacks.add('bm_slash_4') + attacks.add('bm_wing_buffet_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/mantigrue_night_stalker.py b/scripts/mobiles/endor/mantigrue_night_stalker.py index 0ccc1a31..e4fbbf6f 100644 --- a/scripts/mobiles/endor/mantigrue_night_stalker.py +++ b/scripts/mobiles/endor/mantigrue_night_stalker.py @@ -24,15 +24,19 @@ def addTemplate(core): mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() - templates.add('object/mobile/shared_condor_dragon.iff') + templates.add('object/mobile/shared_mantigrue_night_stalker.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic') + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'energy') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_damage_poison_4') + attacks.add('bm_slash_4') + attacks.add('bm_wing_buffet_4') mobileTemplate.setDefaultAttack('creatureRangedAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/mantigrue_reaper.py b/scripts/mobiles/endor/mantigrue_reaper.py index 95397fab..4bf505f7 100644 --- a/scripts/mobiles/endor/mantigrue_reaper.py +++ b/scripts/mobiles/endor/mantigrue_reaper.py @@ -28,11 +28,15 @@ def addTemplate(core): mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic') + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'energy') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_damage_poison_4') + attacks.add('bm_slash_4') + attacks.add('bm_wing_buffet_4') mobileTemplate.setDefaultAttack('creatureRangedAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/mantigrue_screecher.py b/scripts/mobiles/endor/mantigrue_screecher.py index c0495411..c54b02ad 100644 --- a/scripts/mobiles/endor/mantigrue_screecher.py +++ b/scripts/mobiles/endor/mantigrue_screecher.py @@ -33,6 +33,10 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_damage_poison_4') + attacks.add('bm_slash_4') + attacks.add('bm_wing_buffet_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/mature_hanadak.py b/scripts/mobiles/endor/mature_hanadak.py index 93732a13..4f5ae369 100644 --- a/scripts/mobiles/endor/mature_hanadak.py +++ b/scripts/mobiles/endor/mature_hanadak.py @@ -39,6 +39,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_dampen_pain_4') + attacks.add('bm_shaken_2') + attacks.add('bm_stomp_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/mature_hanadak_rock_smasher.py b/scripts/mobiles/endor/mature_hanadak_rock_smasher.py index 121fdb8b..f2b1a690 100644 --- a/scripts/mobiles/endor/mature_hanadak_rock_smasher.py +++ b/scripts/mobiles/endor/mature_hanadak_rock_smasher.py @@ -37,6 +37,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_dampen_pain_4') + attacks.add('bm_shaken_2') + attacks.add('bm_stomp_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/merek_assassin.py b/scripts/mobiles/endor/merek_assassin.py index 1af127e5..984af9c9 100644 --- a/scripts/mobiles/endor/merek_assassin.py +++ b/scripts/mobiles/endor/merek_assassin.py @@ -35,6 +35,10 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_damage_poison_4') + attacks.add('bm_dampen_poison_4') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/merek_cavern_creeper.py b/scripts/mobiles/endor/merek_cavern_creeper.py index 7049fd13..588ae4a4 100644 --- a/scripts/mobiles/endor/merek_cavern_creeper.py +++ b/scripts/mobiles/endor/merek_cavern_creeper.py @@ -30,11 +30,15 @@ def addTemplate(core): mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic') + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'energy') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_damage_poison_4') + attacks.add('bm_dampen_pain_4') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/merek_deaths_head.py b/scripts/mobiles/endor/merek_deaths_head.py index e37e0156..5dd567ed 100644 --- a/scripts/mobiles/endor/merek_deaths_head.py +++ b/scripts/mobiles/endor/merek_deaths_head.py @@ -30,11 +30,15 @@ def addTemplate(core): mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic') + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'energy') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_damage_poison_4') + attacks.add('bm_damage_pain_4') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/merek_harvester.py b/scripts/mobiles/endor/merek_harvester.py index cb016b81..d614c698 100644 --- a/scripts/mobiles/endor/merek_harvester.py +++ b/scripts/mobiles/endor/merek_harvester.py @@ -23,7 +23,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("merek") mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_merek.iff') @@ -35,6 +35,10 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_damage_poison_4') + attacks.add('bm_damage_pain_4') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/mine_rat.py b/scripts/mobiles/endor/mine_rat.py index 2c900cbd..e700aa28 100644 --- a/scripts/mobiles/endor/mine_rat.py +++ b/scripts/mobiles/endor/mine_rat.py @@ -12,16 +12,16 @@ def addTemplate(core): mobileTemplate.setCreatureName('death_watch_quenker') mobileTemplate.setLevel(83) - mobileTemplate.setDifficulty(Difficulty.NORMAL) + mobileTemplate.setDifficulty(Difficulty.ELITE) mobileTemplate.setMinSpawnDistance(4) mobileTemplate.setMaxSpawnDistance(8) mobileTemplate.setDeathblow(True) mobileTemplate.setScale(.6) mobileTemplate.setSocialGroup("death watch") - mobileTemplate.setAssistRange(12) + mobileTemplate.setAssistRange(6) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_barbed_quenker.iff') @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_5') + attacks.add('bm_bolster_armor_5') + attacks.add('bm_enfeeble_5') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/noxious_squill.py b/scripts/mobiles/endor/noxious_squill.py index bb0103f6..12c95aac 100644 --- a/scripts/mobiles/endor/noxious_squill.py +++ b/scripts/mobiles/endor/noxious_squill.py @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_defensive_4') + attacks.add('bm_disease_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/pouncing_jax.py b/scripts/mobiles/endor/pouncing_jax.py new file mode 100644 index 00000000..d9097279 --- /dev/null +++ b/scripts/mobiles/endor/pouncing_jax.py @@ -0,0 +1,47 @@ +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('pouncing_jax') + mobileTemplate.setLevel(60) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setMinSpawnDistance(4) + mobileTemplate.setMaxSpawnDistance(8) + mobileTemplate.setDeathblow(False) + mobileTemplate.setScale(1) + mobileTemplate.setHideType("Bristley Hide") + mobileTemplate.setHideAmount(35) + mobileTemplate.setBoneType("Animal Bones") + mobileTemplate.setBoneAmount(25) + mobileTemplate.setSocialGroup("jax") + mobileTemplate.setAssistRange(12) + mobileTemplate.setStalker(True) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) + + templates = Vector() + templates.add('object/mobile/shared_bearded_jax.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_flank_2') + attacks.add('bm_slash_4') + mobileTemplate.setDefaultAttack('creatureMeleeAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('pouncing_jax', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/endor/prowling_gurreck.py b/scripts/mobiles/endor/prowling_gurreck.py index 7abc97f8..4afde7fe 100644 --- a/scripts/mobiles/endor/prowling_gurreck.py +++ b/scripts/mobiles/endor/prowling_gurreck.py @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_flank_2') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/putrid_borgle.py b/scripts/mobiles/endor/putrid_borgle.py index a6b86352..ade80dfc 100644 --- a/scripts/mobiles/endor/putrid_borgle.py +++ b/scripts/mobiles/endor/putrid_borgle.py @@ -25,7 +25,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("borgle") mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_borgle.iff') @@ -37,6 +37,8 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_puncture_4') + attacks.add('bm_wing_buffet_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/queen_merek_harvester.py b/scripts/mobiles/endor/queen_merek_harvester.py index 3dcecf9e..6e937f81 100644 --- a/scripts/mobiles/endor/queen_merek_harvester.py +++ b/scripts/mobiles/endor/queen_merek_harvester.py @@ -26,7 +26,7 @@ def addTemplate(core): mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() - templates.add('object/mobile/shared_merek.iff') + templates.add('object/mobile/shared_queen_merek_harvester.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() @@ -35,6 +35,10 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_damage_poison_4') + attacks.add('bm_damage_pain_4') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/rabid_squall.py b/scripts/mobiles/endor/rabid_squall.py index 8d27e663..a1564a51 100644 --- a/scripts/mobiles/endor/rabid_squall.py +++ b/scripts/mobiles/endor/rabid_squall.py @@ -37,6 +37,7 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/radiant_lantern_bird.py b/scripts/mobiles/endor/radiant_lantern_bird.py index 417d4f66..e91b9ec1 100644 --- a/scripts/mobiles/endor/radiant_lantern_bird.py +++ b/scripts/mobiles/endor/radiant_lantern_bird.py @@ -23,9 +23,9 @@ def addTemplate(core): mobileTemplate.setBoneType("Avian Bones") mobileTemplate.setBoneAmount(46) mobileTemplate.setSocialGroup("lantern") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_lantern_bird.iff') @@ -37,6 +37,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_slash_4') + attacks.add('bm_wing_buffet_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/rancid_remmer_warrior.py b/scripts/mobiles/endor/rancid_remmer_warrior.py index 5531f750..af02b6ad 100644 --- a/scripts/mobiles/endor/rancid_remmer_warrior.py +++ b/scripts/mobiles/endor/rancid_remmer_warrior.py @@ -33,7 +33,10 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() - mobileTemplate.setDefaultAttack('creatureSpitAttack') + attacks.add('bm_bite_4') + attacks.add('bm_bolster_armor_4') + attacks.add('bm_enfeeble_4') + mobileTemplate.setDefaultAttack('creatureRangedAttack') mobileTemplate.setAttacks(attacks) core.spawnService.addMobileTemplate('rancid_remmer_warrior', mobileTemplate) diff --git a/scripts/mobiles/endor/ravenous_roba_stalker.py b/scripts/mobiles/endor/ravenous_roba_stalker.py index b637c620..91b75b49 100644 --- a/scripts/mobiles/endor/ravenous_roba_stalker.py +++ b/scripts/mobiles/endor/ravenous_roba_stalker.py @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_charge_4') + attacks.add('bm_dampen_pain_4') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/reclusive_roba.py b/scripts/mobiles/endor/reclusive_roba.py index e935c7b9..4c6c9a0d 100644 --- a/scripts/mobiles/endor/reclusive_roba.py +++ b/scripts/mobiles/endor/reclusive_roba.py @@ -19,9 +19,9 @@ def addTemplate(core): mobileTemplate.setDeathblow(False) mobileTemplate.setScale(1) mobileTemplate.setSocialGroup("roba") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_roba.iff') @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_charge_4') + attacks.add('bm_dampen_pain_4') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/remmer_carrion_keeper.py b/scripts/mobiles/endor/remmer_carrion_keeper.py index e395fbf4..b668d2cd 100644 --- a/scripts/mobiles/endor/remmer_carrion_keeper.py +++ b/scripts/mobiles/endor/remmer_carrion_keeper.py @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_bolster_armor_4') + attacks.add('bm_enfeeble_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/remmer_dune_scavenger.py b/scripts/mobiles/endor/remmer_dune_scavenger.py index 81e07444..4b4d3de4 100644 --- a/scripts/mobiles/endor/remmer_dune_scavenger.py +++ b/scripts/mobiles/endor/remmer_dune_scavenger.py @@ -21,7 +21,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("remmer") mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_remmer.iff') @@ -33,7 +33,10 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() - mobileTemplate.setDefaultAttack('creatureSpitAttack') + attacks.add('bm_bite_4') + attacks.add('bm_bolster_armor_4') + attacks.add('bm_enfeeble_4') + mobileTemplate.setDefaultAttack('creatureRangedAttack') mobileTemplate.setAttacks(attacks) core.spawnService.addMobileTemplate('remmer_dune_scavenger', mobileTemplate) diff --git a/scripts/mobiles/endor/roaming_bordok_stud.py b/scripts/mobiles/endor/roaming_bordok_stud.py index 16a44651..eb950c53 100644 --- a/scripts/mobiles/endor/roaming_bordok_stud.py +++ b/scripts/mobiles/endor/roaming_bordok_stud.py @@ -20,7 +20,7 @@ def addTemplate(core): mobileTemplate.setScale(1) mobileTemplate.setSocialGroup("bordok") mobileTemplate.setAssistRange(0) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) mobileTemplate.setStalker(False) templates = Vector() @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_defensive_4') + attacks.add('bm_kick_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/roaming_desert_borgle.py b/scripts/mobiles/endor/roaming_desert_borgle.py index afb382a2..19e33ba3 100644 --- a/scripts/mobiles/endor/roaming_desert_borgle.py +++ b/scripts/mobiles/endor/roaming_desert_borgle.py @@ -37,6 +37,8 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_puncture_2') + attacks.add('bm_wing_buffet_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/roba.py b/scripts/mobiles/endor/roba.py index d2a36993..a4f8c64c 100644 --- a/scripts/mobiles/endor/roba.py +++ b/scripts/mobiles/endor/roba.py @@ -19,8 +19,8 @@ def addTemplate(core): mobileTemplate.setDeathblow(False) mobileTemplate.setScale(1) mobileTemplate.setSocialGroup("roba") - mobileTemplate.setAssistRange(0) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setAssistRange(12) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) mobileTemplate.setStalker(False) templates = Vector() @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_charge_4') + attacks.add('bm_dampen_pain_4') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/roba_boar.py b/scripts/mobiles/endor/roba_boar.py index 213c0a8d..97c376b3 100644 --- a/scripts/mobiles/endor/roba_boar.py +++ b/scripts/mobiles/endor/roba_boar.py @@ -19,9 +19,9 @@ def addTemplate(core): mobileTemplate.setDeathblow(False) mobileTemplate.setScale(1.1) mobileTemplate.setSocialGroup("roba") - mobileTemplate.setAssistRange(0) + mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_roba.iff') @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_charge_4') + attacks.add('bm_dampen_pain_4') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/roba_pack_leader.py b/scripts/mobiles/endor/roba_pack_leader.py index e7df9c2f..07e1535c 100644 --- a/scripts/mobiles/endor/roba_pack_leader.py +++ b/scripts/mobiles/endor/roba_pack_leader.py @@ -18,9 +18,9 @@ def addTemplate(core): mobileTemplate.setMaxSpawnDistance(8) mobileTemplate.setDeathblow(False) mobileTemplate.setScale(1) - mobileTemplate.setSocialGroup("bageraset") - mobileTemplate.setAssistRange(0) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setSocialGroup("roba") + mobileTemplate.setAssistRange(12) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) mobileTemplate.setStalker(True) templates = Vector() @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_charge_4') + attacks.add('bm_dampen_pain_4') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/roba_runt.py b/scripts/mobiles/endor/roba_runt.py index 430ea8ae..9eb0c07a 100644 --- a/scripts/mobiles/endor/roba_runt.py +++ b/scripts/mobiles/endor/roba_runt.py @@ -19,8 +19,8 @@ def addTemplate(core): mobileTemplate.setDeathblow(False) mobileTemplate.setScale(.5) mobileTemplate.setSocialGroup("roba") - mobileTemplate.setAssistRange(0) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setAssistRange(12) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) mobileTemplate.setStalker(False) templates = Vector() @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_charge_4') + attacks.add('bm_dampen_pain_4') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/rotten_gut_remmer_king.py b/scripts/mobiles/endor/rotten_gut_remmer_king.py index b26e2b02..fffeef2a 100644 --- a/scripts/mobiles/endor/rotten_gut_remmer_king.py +++ b/scripts/mobiles/endor/rotten_gut_remmer_king.py @@ -24,7 +24,7 @@ def addTemplate(core): mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) templates = Vector() - templates.add('object/mobile/shared_remmer.iff') + templates.add('object/mobile/shared_rotten_gut_remmer_king.iff') mobileTemplate.setTemplates(templates) weaponTemplates = Vector() @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_bolster_armor_4') + attacks.add('bm_enfeeble_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/sanguin_bloodseeker_hierarch.py b/scripts/mobiles/endor/sanguin_bloodseeker_hierarch.py index 931f2af0..3ead65b5 100644 --- a/scripts/mobiles/endor/sanguin_bloodseeker_hierarch.py +++ b/scripts/mobiles/endor/sanguin_bloodseeker_hierarch.py @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_bolster_armor_4') + attacks.add('bm_enfeeble_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/shimmering_lantern_bird.py b/scripts/mobiles/endor/shimmering_lantern_bird.py index 659a153d..ba088a7a 100644 --- a/scripts/mobiles/endor/shimmering_lantern_bird.py +++ b/scripts/mobiles/endor/shimmering_lantern_bird.py @@ -23,8 +23,8 @@ def addTemplate(core): mobileTemplate.setBoneType("Avian Bones") mobileTemplate.setBoneAmount(46) mobileTemplate.setSocialGroup("lantern") - mobileTemplate.setAssistRange(0) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setAssistRange(12) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) mobileTemplate.setStalker(False) templates = Vector() @@ -37,6 +37,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_slash_4') + attacks.add('bm_wing_buffet_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/spiketail_blurrg.py b/scripts/mobiles/endor/spiketail_blurrg.py new file mode 100644 index 00000000..0bddb7fe --- /dev/null +++ b/scripts/mobiles/endor/spiketail_blurrg.py @@ -0,0 +1,42 @@ +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('spiketail_blurrg') + mobileTemplate.setLevel(62) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setMinSpawnDistance(4) + mobileTemplate.setMaxSpawnDistance(8) + mobileTemplate.setDeathblow(True) + mobileTemplate.setScale(1) + mobileTemplate.setSocialGroup("blurrg") + mobileTemplate.setAssistRange(12) + mobileTemplate.setStalker(False) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + + templates = Vector() + templates.add('object/mobile/shared_spiketail_blurrg.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + attacks.add('bm_bite_4') + attacks.add('bm_damage_poison_1') + mobileTemplate.setDefaultAttack('creatureMeleeAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('spiketail_blurrg', mobileTemplate) + return \ No newline at end of file diff --git a/scripts/mobiles/endor/squall.py b/scripts/mobiles/endor/squall.py index af10c574..83ac8fb0 100644 --- a/scripts/mobiles/endor/squall.py +++ b/scripts/mobiles/endor/squall.py @@ -23,8 +23,8 @@ def addTemplate(core): mobileTemplate.setBoneType("Animal Bones") mobileTemplate.setBoneAmount(8) mobileTemplate.setSocialGroup("squall") - mobileTemplate.setAssistRange(0) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setAssistRange(12) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) mobileTemplate.setStalker(False) templates = Vector() @@ -37,6 +37,7 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_bite_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/stoneskin_hanadak.py b/scripts/mobiles/endor/stoneskin_hanadak.py index a30149bc..2780f29a 100644 --- a/scripts/mobiles/endor/stoneskin_hanadak.py +++ b/scripts/mobiles/endor/stoneskin_hanadak.py @@ -27,7 +27,7 @@ def addTemplate(core): mobileTemplate.setSocialGroup("hanadak") mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) - mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) templates = Vector() templates.add('object/mobile/shared_hanadak.iff') @@ -39,6 +39,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_dampen_pain_4') + attacks.add('bm_shaken_2') + attacks.add('bm_stomp_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/swirl_prong.py b/scripts/mobiles/endor/swirl_prong.py index c9d4990a..3de10b4b 100644 --- a/scripts/mobiles/endor/swirl_prong.py +++ b/scripts/mobiles/endor/swirl_prong.py @@ -19,8 +19,8 @@ def addTemplate(core): mobileTemplate.setDeathblow(False) mobileTemplate.setScale(1) mobileTemplate.setSocialGroup("swirl prong") - mobileTemplate.setAssistRange(0) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setAssistRange(12) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) mobileTemplate.setStalker(False) templates = Vector() @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_charge_4') + attacks.add('bm_defensive_4') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/swirl_prong_impaler.py b/scripts/mobiles/endor/swirl_prong_impaler.py index 7a8e8f87..958d2820 100644 --- a/scripts/mobiles/endor/swirl_prong_impaler.py +++ b/scripts/mobiles/endor/swirl_prong_impaler.py @@ -19,8 +19,8 @@ def addTemplate(core): mobileTemplate.setDeathblow(False) mobileTemplate.setScale(1) mobileTemplate.setSocialGroup("swirl prong") - mobileTemplate.setAssistRange(0) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setAssistRange(12) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) mobileTemplate.setStalker(False) templates = Vector() @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_charge_4') + attacks.add('bm_defensive_4') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/swirl_prong_pack_leader.py b/scripts/mobiles/endor/swirl_prong_pack_leader.py index 792fe4b5..5dd39deb 100644 --- a/scripts/mobiles/endor/swirl_prong_pack_leader.py +++ b/scripts/mobiles/endor/swirl_prong_pack_leader.py @@ -19,8 +19,8 @@ def addTemplate(core): mobileTemplate.setDeathblow(False) mobileTemplate.setScale(1) mobileTemplate.setSocialGroup("swirl prong") - mobileTemplate.setAssistRange(0) - mobileTemplate.setOptionsBitmask(128) + mobileTemplate.setAssistRange(12) + mobileTemplate.setOptionsBitmask(Options.ATTACKABLE) mobileTemplate.setStalker(False) templates = Vector() @@ -33,6 +33,9 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_charge_4') + attacks.add('bm_defensive_4') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/toxic_merek_battlelord.py b/scripts/mobiles/endor/toxic_merek_battlelord.py index fecb74cb..336ad0c9 100644 --- a/scripts/mobiles/endor/toxic_merek_battlelord.py +++ b/scripts/mobiles/endor/toxic_merek_battlelord.py @@ -35,6 +35,10 @@ def addTemplate(core): mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() + attacks.add('bm_claw_4') + attacks.add('bm_damage_poison_4') + attacks.add('bm_damage_pain_4') + attacks.add('bm_slash_4') mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) diff --git a/scripts/mobiles/endor/venom_filled_arachne.py b/scripts/mobiles/endor/venom_filled_arachne.py index 129520d7..4fd77f38 100644 --- a/scripts/mobiles/endor/venom_filled_arachne.py +++ b/scripts/mobiles/endor/venom_filled_arachne.py @@ -28,12 +28,15 @@ def addTemplate(core): mobileTemplate.setTemplates(templates) weaponTemplates = Vector() - weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic') + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'energy') weaponTemplates.add(weapontemplate) mobileTemplate.setWeaponTemplateVector(weaponTemplates) attacks = Vector() - mobileTemplate.setDefaultAttack('creatureRangedAttack') + attacks.add('bm_damage_poison_3') + attacks.add('bm_defensive_3') + attacks.add('bm_puncture_1') + mobileTemplate.setDefaultAttack('creatureMeleeAttack') mobileTemplate.setAttacks(attacks) core.spawnService.addMobileTemplate('venom_filled_arachne', mobileTemplate) From dca8d26fe9d8035bc42bf2030548bb1bf438f009 Mon Sep 17 00:00:00 2001 From: Bronco69 Date: Thu, 10 Jul 2014 04:12:40 +0200 Subject: [PATCH 05/13] Added missing creature mobile to Endor --- .../endor/young_hanadak_rock_crusher.py | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 scripts/mobiles/endor/young_hanadak_rock_crusher.py diff --git a/scripts/mobiles/endor/young_hanadak_rock_crusher.py b/scripts/mobiles/endor/young_hanadak_rock_crusher.py new file mode 100644 index 00000000..affa6ece --- /dev/null +++ b/scripts/mobiles/endor/young_hanadak_rock_crusher.py @@ -0,0 +1,47 @@ +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('young_hanadak_rock_crusher') + mobileTemplate.setLevel(60) + mobileTemplate.setDifficulty(Difficulty.NORMAL) + + mobileTemplate.setMinSpawnDistance(4) + mobileTemplate.setMaxSpawnDistance(8) + mobileTemplate.setDeathblow(True) + mobileTemplate.setScale(1) + mobileTemplate.setHideType("Bristley Hide") + mobileTemplate.setHideAmount(35) + mobileTemplate.setBoneType("Animal Bones") + mobileTemplate.setBoneAmount(35) + mobileTemplate.setSocialGroup("bageraset") + mobileTemplate.setAssistRange(12) + mobileTemplate.setStalker(False) + mobileTemplate.setOptionsBitmask(Options.AGGRESSIVE | Options.ATTACKABLE) + + templates = Vector() + templates.add('object/mobile/shared_young_hanadak_rock_crusher.iff') + mobileTemplate.setTemplates(templates) + + weaponTemplates = Vector() + weapontemplate = WeaponTemplate('object/weapon/melee/unarmed/shared_unarmed_default.iff', WeaponType.UNARMED, 1.0, 6, 'kinetic') + weaponTemplates.add(weapontemplate) + mobileTemplate.setWeaponTemplateVector(weaponTemplates) + + attacks = Vector() + attacks.add('bm_dampen_pain_4') + attacks.add('bm_shaken_2') + attacks.add('bm_stomp_4') + mobileTemplate.setDefaultAttack('creatureMeleeAttack') + mobileTemplate.setAttacks(attacks) + + core.spawnService.addMobileTemplate('young_hanadak_rock_crusher', mobileTemplate) + return \ No newline at end of file From e5ceaad170e10ad3343017a53b3523a0dff5d652 Mon Sep 17 00:00:00 2001 From: Bronco69 Date: Thu, 10 Jul 2014 06:22:55 +0200 Subject: [PATCH 06/13] Fixed typo error in creature mobile (Endor) (Wrong value prevents server from booting up) --- scripts/mobiles/endor/gorax.py | 2 +- scripts/mobiles/endor/hanadak_ancient.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/mobiles/endor/gorax.py b/scripts/mobiles/endor/gorax.py index f65a8234..7816a227 100644 --- a/scripts/mobiles/endor/gorax.py +++ b/scripts/mobiles/endor/gorax.py @@ -17,7 +17,7 @@ def addTemplate(core): mobileTemplate.setMinSpawnDistance(4) mobileTemplate.setMaxSpawnDistance(8) mobileTemplate.setDeathblow(True) - mobileTemplate.setScale(2) + mobileTemplate.setScale(1) mobileTemplate.setSocialGroup("gorax") mobileTemplate.setAssistRange(12) mobileTemplate.setStalker(False) diff --git a/scripts/mobiles/endor/hanadak_ancient.py b/scripts/mobiles/endor/hanadak_ancient.py index 2c857b78..4aa287dc 100644 --- a/scripts/mobiles/endor/hanadak_ancient.py +++ b/scripts/mobiles/endor/hanadak_ancient.py @@ -16,7 +16,7 @@ def addTemplate(core): mobileTemplate.setMinSpawnDistance(4) mobileTemplate.setMaxSpawnDistance(8) - mobileTemplate.setDeathblow(Yes) + mobileTemplate.setDeathblow(True) mobileTemplate.setScale(1.2) mobileTemplate.setMeatType("Carnivore Meat") mobileTemplate.setMeatAmount(40) From 85230894d072a494124edb2acf4f0669dbcc75b5 Mon Sep 17 00:00:00 2001 From: Ziggeh Date: Thu, 10 Jul 2014 08:23:23 +0200 Subject: [PATCH 07/13] Added a way to prevent servers from booting They will also not boot if the port is set to 0. --- src/main/NGECore.java | 46 +++++++++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 13 deletions(-) diff --git a/src/main/NGECore.java b/src/main/NGECore.java index 2901fbeb..533d1a7f 100644 --- a/src/main/NGECore.java +++ b/src/main/NGECore.java @@ -374,19 +374,34 @@ public class NGECore { } // Ping Server - try { - PingServer pingServer = new PingServer(config.getInt("PING.PORT")); - pingServer.bind(); - } catch (IOException e) { - e.printStackTrace(); - } + + + if(config.keyExists("PING.PORT")) + if (config.getInt("PING.PORT") != 0) { + try { + PingServer pingServer = new PingServer(config.getInt("PING.PORT")); + pingServer.bind(); + } catch (IOException e) { + e.printStackTrace(); + } + } else + System.out.println("Warning: pingServer was not launched. Port equals 0."); + else + System.out.println("Warning: pingServer was not launched. Port not specified."); + // Login Server loginDispatch = new NetworkDispatch(this, false); loginDispatch.addService(loginService); - - loginServer = new MINAServer(loginDispatch, config.getInt("LOGIN.PORT")); - loginServer.start(); + + if(config.keyExists("LOGIN.PORT")) + if (config.getInt("LOGIN.PORT") != 0) { + loginServer = new MINAServer(loginDispatch, config.getInt("LOGIN.PORT")); + loginServer.start(); + } else + System.out.println("Warning: loginServer was not launched. Port equals 0."); + else + System.out.println("Warning: loginServer was not launched. Port not specified."); // Zone Server zoneDispatch = new NetworkDispatch(this, true); @@ -417,9 +432,15 @@ public class NGECore { zoneDispatch.addService(surveyService); zoneDispatch.addService(resourceService); } - - zoneServer = new MINAServer(zoneDispatch, config.getInt("ZONE.PORT")); - zoneServer.start(); + + if(config.keyExists("ZONE.PORT")) + if (config.getInt("ZONE.PORT") != 0) { + zoneServer = new MINAServer(zoneDispatch, config.getInt("ZONE.PORT")); + zoneServer.start(); + } else + System.out.println("Warning: zoneServer was not launched. Port equals 0."); + else + System.out.println("Warning: zoneServer was not launched. Port not specified."); //Start terrainList // Original Planets @@ -537,7 +558,6 @@ public class NGECore { browserService = new BrowserService(this); - DevLogQueuer devLogQueuer = new DevLogQueuer(); CharonPacketLogger packetLogger; From 6fef20b356e6026453959a17163331b44abc2cb7 Mon Sep 17 00:00:00 2001 From: Ziggeh Date: Thu, 10 Jul 2014 09:16:47 +0200 Subject: [PATCH 08/13] Added a datatable of galaxy statuses --- scripts/commands/server.py | 5 ++-- src/main/NGECore.java | 10 ++++--- src/resources/datatables/ServerStatus.java | 31 ++++++++++++++++++++++ 3 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 src/resources/datatables/ServerStatus.java diff --git a/scripts/commands/server.py b/scripts/commands/server.py index 0514fa98..0a77dcfc 100644 --- a/scripts/commands/server.py +++ b/scripts/commands/server.py @@ -1,5 +1,6 @@ import sys from engine.resources.scene import Point3D +from resources.datatables import ServerStatus def setup(): return @@ -26,9 +27,9 @@ def run(core, actor, target, commandString): return if command == 'lockServer': - core.setGalaxyStatus(3) + core.setGalaxyStatus(ServerStatus.Locked) if command == 'unlockServer': - core.setGalaxyStatus(2) + core.setGalaxyStatus(ServerStatus.Online) if command == 'info': actor.sendSystemMessage(str(core.getActiveZoneClients()) + ' online characters.', 0) if command == 'shutdown': diff --git a/src/main/NGECore.java b/src/main/NGECore.java index 533d1a7f..07194a52 100644 --- a/src/main/NGECore.java +++ b/src/main/NGECore.java @@ -52,6 +52,7 @@ import net.engio.mbassy.bus.config.BusConfiguration; import resources.common.BountyListItem; import resources.common.RadialOptions; import resources.common.ThreadMonitor; +import resources.datatables.ServerStatus; import resources.objects.creature.CreatureObject; import resources.objects.guild.GuildObject; import resources.objects.resource.GalacticResource; @@ -113,6 +114,7 @@ import services.trade.TradeService; import services.travel.TravelService; import tools.CharonPacketLogger; import tools.DevLogQueuer; +import services.BattlefieldService; import engine.clientdata.ClientFileManager; import engine.clientdata.visitors.CrcStringTableVisitor; import engine.clientdata.visitors.DatatableVisitor; @@ -208,6 +210,7 @@ public class NGECore { public ReverseEngineeringService reverseEngineeringService; public PetService petService; public BrowserService browserService; + public BattlefieldService battlefieldService; // Login Server public NetworkDispatch loginDispatch; @@ -302,7 +305,7 @@ public class NGECore { databaseConnection2.connect(config.getString("DB2.URL"), config.getString("DB2.NAME"), config.getString("DB2.USER"), config.getString("DB2.PASS"), "mysql"); } - setGalaxyStatus(1); + setGalaxyStatus(ServerStatus.Loading); swgObjectODB = new ObjectDatabase("swgobjects", true, true, true, SWGObject.class); mailODB = new ObjectDatabase("mails", true, true, true, Mail.class); guildODB = new ObjectDatabase("guild", true, true, true, GuildObject.class); @@ -557,6 +560,7 @@ public class NGECore { retroService.run(); browserService = new BrowserService(this); + battlefieldService = new BattlefieldService(this); DevLogQueuer devLogQueuer = new DevLogQueuer(); @@ -567,7 +571,7 @@ public class NGECore { didServerCrash = false; System.out.println("Started Server."); cleanupCreatureODB(); - setGalaxyStatus(2); + setGalaxyStatus(ServerStatus.Online); } @@ -788,7 +792,7 @@ public class NGECore { chatService.broadcastGalaxy("The server will be shutting down soon. Please find a safe place to logout. (" + minutes + " minutes left)"); Thread.sleep(60000); } - setGalaxyStatus(3); + setGalaxyStatus(ServerStatus.Locked); chatService.broadcastGalaxy("The server will be shutting down soon. Please find a safe place to logout. (" + 1 + " minutes left)"); Thread.sleep(30000); chatService.broadcastGalaxy("You will be disconnected in 30 seconds so the server can perform a final save before shutting down. Please find a safe place to logout now."); diff --git a/src/resources/datatables/ServerStatus.java b/src/resources/datatables/ServerStatus.java new file mode 100644 index 00000000..a825d2e8 --- /dev/null +++ b/src/resources/datatables/ServerStatus.java @@ -0,0 +1,31 @@ +/******************************************************************************* + * Copyright (c) 2013 + * + * This File is part of NGECore2. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + * + * Using NGEngine to work with NGECore2 is making a combined work based on NGEngine. + * Therefore all terms and conditions of the GNU Lesser General Public License cover the combination. + ******************************************************************************/ +package resources.datatables; + +public class ServerStatus { + + public static final int Offline = 0; + public static final int Loading = 1; + public static final int Online = 2; + public static final int Locked = 3; + +} From e7dc937dab5627c0cc6c76fd8f12e468cda484d0 Mon Sep 17 00:00:00 2001 From: Ziggeh Date: Thu, 10 Jul 2014 09:22:24 +0200 Subject: [PATCH 09/13] Changed ServerStatus to GalaxyStatus In-game "servers" are refered to as galaxies - not servers. The datatable has been renamed to reflect that. --- scripts/commands/server.py | 6 +++--- src/main/NGECore.java | 8 ++++---- .../datatables/{ServerStatus.java => GalaxyStatus.java} | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) rename src/resources/datatables/{ServerStatus.java => GalaxyStatus.java} (97%) diff --git a/scripts/commands/server.py b/scripts/commands/server.py index 0a77dcfc..09765edc 100644 --- a/scripts/commands/server.py +++ b/scripts/commands/server.py @@ -1,6 +1,6 @@ import sys from engine.resources.scene import Point3D -from resources.datatables import ServerStatus +from resources.datatables import GalaxyStatus def setup(): return @@ -27,9 +27,9 @@ def run(core, actor, target, commandString): return if command == 'lockServer': - core.setGalaxyStatus(ServerStatus.Locked) + core.setGalaxyStatus(GalaxyStatus.Locked) if command == 'unlockServer': - core.setGalaxyStatus(ServerStatus.Online) + core.setGalaxyStatus(GalaxyStatus.Online) if command == 'info': actor.sendSystemMessage(str(core.getActiveZoneClients()) + ' online characters.', 0) if command == 'shutdown': diff --git a/src/main/NGECore.java b/src/main/NGECore.java index 07194a52..45db8dd8 100644 --- a/src/main/NGECore.java +++ b/src/main/NGECore.java @@ -52,7 +52,7 @@ import net.engio.mbassy.bus.config.BusConfiguration; import resources.common.BountyListItem; import resources.common.RadialOptions; import resources.common.ThreadMonitor; -import resources.datatables.ServerStatus; +import resources.datatables.GalaxyStatus; import resources.objects.creature.CreatureObject; import resources.objects.guild.GuildObject; import resources.objects.resource.GalacticResource; @@ -305,7 +305,7 @@ public class NGECore { databaseConnection2.connect(config.getString("DB2.URL"), config.getString("DB2.NAME"), config.getString("DB2.USER"), config.getString("DB2.PASS"), "mysql"); } - setGalaxyStatus(ServerStatus.Loading); + setGalaxyStatus(GalaxyStatus.Loading); swgObjectODB = new ObjectDatabase("swgobjects", true, true, true, SWGObject.class); mailODB = new ObjectDatabase("mails", true, true, true, Mail.class); guildODB = new ObjectDatabase("guild", true, true, true, GuildObject.class); @@ -571,7 +571,7 @@ public class NGECore { didServerCrash = false; System.out.println("Started Server."); cleanupCreatureODB(); - setGalaxyStatus(ServerStatus.Online); + setGalaxyStatus(GalaxyStatus.Online); } @@ -792,7 +792,7 @@ public class NGECore { chatService.broadcastGalaxy("The server will be shutting down soon. Please find a safe place to logout. (" + minutes + " minutes left)"); Thread.sleep(60000); } - setGalaxyStatus(ServerStatus.Locked); + setGalaxyStatus(GalaxyStatus.Locked); chatService.broadcastGalaxy("The server will be shutting down soon. Please find a safe place to logout. (" + 1 + " minutes left)"); Thread.sleep(30000); chatService.broadcastGalaxy("You will be disconnected in 30 seconds so the server can perform a final save before shutting down. Please find a safe place to logout now."); diff --git a/src/resources/datatables/ServerStatus.java b/src/resources/datatables/GalaxyStatus.java similarity index 97% rename from src/resources/datatables/ServerStatus.java rename to src/resources/datatables/GalaxyStatus.java index a825d2e8..86669e89 100644 --- a/src/resources/datatables/ServerStatus.java +++ b/src/resources/datatables/GalaxyStatus.java @@ -21,7 +21,7 @@ ******************************************************************************/ package resources.datatables; -public class ServerStatus { +public class GalaxyStatus { public static final int Offline = 0; public static final int Loading = 1; From 1e4d402d26394411d67e7318c84553f8f2b67759 Mon Sep 17 00:00:00 2001 From: Waverunner Date: Thu, 10 Jul 2014 09:57:10 -0400 Subject: [PATCH 10/13] Fixed compile errors --- src/main/NGECore.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/NGECore.java b/src/main/NGECore.java index 45db8dd8..91f182ae 100644 --- a/src/main/NGECore.java +++ b/src/main/NGECore.java @@ -114,7 +114,7 @@ import services.trade.TradeService; import services.travel.TravelService; import tools.CharonPacketLogger; import tools.DevLogQueuer; -import services.BattlefieldService; +//import services.BattlefieldService; import engine.clientdata.ClientFileManager; import engine.clientdata.visitors.CrcStringTableVisitor; import engine.clientdata.visitors.DatatableVisitor; @@ -210,7 +210,7 @@ public class NGECore { public ReverseEngineeringService reverseEngineeringService; public PetService petService; public BrowserService browserService; - public BattlefieldService battlefieldService; + //public BattlefieldService battlefieldService; // Login Server public NetworkDispatch loginDispatch; @@ -560,7 +560,7 @@ public class NGECore { retroService.run(); browserService = new BrowserService(this); - battlefieldService = new BattlefieldService(this); + //battlefieldService = new BattlefieldService(this); DevLogQueuer devLogQueuer = new DevLogQueuer(); From c0f2ae8f546d1e8bd845fc2ebc6e12bcfbe3a0fb Mon Sep 17 00:00:00 2001 From: Waverunner Date: Thu, 10 Jul 2014 11:13:39 -0400 Subject: [PATCH 11/13] Removed getObjectByFirstName from ChatService (deprecated), Changed getting object by names methods to account for all type cases These changes should fix a lot of issues (mainly chat related like mails, tells, chat channels) for anything that was using the out-dated getObjectByFirstName() in chatservice. Also it'll allow us to not have to go through uppercase and lowercase versions every time we try and pull an object by names. --- src/services/chat/ChatService.java | 71 ++++++++++++-------------- src/services/object/ObjectService.java | 9 ++-- 2 files changed, 37 insertions(+), 43 deletions(-) diff --git a/src/services/chat/ChatService.java b/src/services/chat/ChatService.java index 15f9c1dd..ae7d1615 100644 --- a/src/services/chat/ChatService.java +++ b/src/services/chat/ChatService.java @@ -50,6 +50,7 @@ import resources.common.*; import resources.datatables.DisplayType; import resources.guild.Guild; import resources.objects.creature.CreatureObject; +import resources.objects.group.GroupObject; import resources.objects.player.PlayerObject; import protocol.swg.AddIgnoreMessage; import protocol.swg.ObjControllerMessage; @@ -222,7 +223,7 @@ public class ChatService implements INetworkDispatch { SWGObject recipient = getObjectByFirstName(firstName); - if (recipient == null) + if (recipient == null || !recipient.isInQuadtree()) return; PlayerObject recipientGhost = (PlayerObject) recipient.getSlottedObject("ghost"); @@ -266,29 +267,34 @@ public class ChatService implements INetworkDispatch { if(sender == null) return; - // TODO: Recipient handling for values: citizens, group, guild ranks (ace, boot, admiral, etc.) - - if (packet.getRecipient().equals("guild")) { - Guild guild = core.guildService.getGuildById(((CreatureObject) sender).getGuildId()); - if (guild == null || !guild.getMembers().containsKey(sender.getObjectID())) { - ChatOnSendPersistentMessage response = new ChatOnSendPersistentMessage(4, packet.getCounter()); + + switch (packet.getRecipient()) { + case "citizens": break; + case "guild": + Guild guild = core.guildService.getGuildById(((CreatureObject) sender).getGuildId()); + if (guild == null || !guild.getMembers().containsKey(sender.getObjectID())) { + ChatOnSendPersistentMessage response = new ChatOnSendPersistentMessage(4, packet.getCounter()); + session.write(response.serialize()); + return; + } + + if (!guild.getMember(sender.getObjectID()).hasMailPermission()) { + ((CreatureObject) sender).sendSystemMessage("@guild:generic_fail_no_permission", (byte) 0); + ChatOnSendPersistentMessage response = new ChatOnSendPersistentMessage(4, packet.getCounter()); + session.write(response.serialize()); + return; + } + guild.sendGuildMail(sender.getCustomName(), packet.getSubject(), packet.getMessage()); + + ChatOnSendPersistentMessage response = new ChatOnSendPersistentMessage(0, packet.getCounter()); session.write(response.serialize()); return; - } + case "group": break; - if (!guild.getMember(sender.getObjectID()).hasMailPermission()) { - ((CreatureObject) sender).sendSystemMessage("@guild:generic_fail_no_permission", (byte) 0); - ChatOnSendPersistentMessage response = new ChatOnSendPersistentMessage(4, packet.getCounter()); - session.write(response.serialize()); - return; - } - guild.sendGuildMail(sender.getCustomName(), packet.getSubject(), packet.getMessage()); - - ChatOnSendPersistentMessage response = new ChatOnSendPersistentMessage(0, packet.getCounter()); - session.write(response.serialize()); - return; + default: break; + // TODO: Guild ranks } - + SWGObject recipient = core.objectService.getObjectByFirstName(packet.getRecipient()); if (recipient == null) @@ -750,25 +756,6 @@ public class ChatService implements INetworkDispatch { } - public SWGObject getObjectByFirstName(String name) { - ConcurrentHashMap clients = core.getActiveConnectionsMap(); - - if(name.contains(" ")) - name = name.split(" ")[0]; - - for(Client client : clients.values()) { - if(client.getParent() == null) - continue; - - String fullName = client.getParent().getCustomName(); - String firstName = fullName.split(" ")[0]; - - if(firstName.equalsIgnoreCase(name)) - return client.getParent(); - } - return null; - } - public int generateMailId() { Random rand = new Random(); @@ -1077,4 +1064,10 @@ public class ChatService implements INetworkDispatch { return message; } + @Deprecated + public SWGObject getObjectByFirstName(String name) { + return core.objectService.getObjectByFirstName(name); + } + + } diff --git a/src/services/object/ObjectService.java b/src/services/object/ObjectService.java index d1849ab9..a823a1ca 100644 --- a/src/services/object/ObjectService.java +++ b/src/services/object/ObjectService.java @@ -52,6 +52,7 @@ import resources.datatables.PlayerFlags; import resources.guild.Guild; import resources.harvest.SurveyTool; +import org.apache.commons.lang3.text.WordUtils; import org.apache.mina.core.buffer.IoBuffer; import org.apache.mina.core.session.IoSession; import org.python.core.Py; @@ -606,7 +607,7 @@ public class ObjectService implements INetworkDispatch { for(SWGObject obj : objectList.values()) { if(obj.getCustomName() == null) continue; - if(obj.getCustomName().equals(customName)) + if(obj.getCustomName().equalsIgnoreCase(customName)) return obj; } @@ -621,7 +622,7 @@ public class ObjectService implements INetworkDispatch { continue; } - if (object.getCustomName() != null && customName.length() > 0 && object.getCustomName().equals(customName)) { + if (object.getCustomName() != null && customName.length() > 0 && object.getCustomName().equalsIgnoreCase(customName)) { return object; } } @@ -640,7 +641,7 @@ public class ObjectService implements INetworkDispatch { continue; if(obj.getCustomName() == null) continue; - if(obj.getCustomName().startsWith(customName)) + if(obj.getCustomName().startsWith(customName) || obj.getCustomName().toUpperCase().startsWith(WordUtils.capitalize(customName))) return obj; } @@ -655,7 +656,7 @@ public class ObjectService implements INetworkDispatch { continue; } - if (object.getCustomName() != null && customName.length() > 0 && object.getCustomName().startsWith(customName)) { + if (object.getCustomName() != null && customName.length() > 0 && (object.getCustomName().startsWith(customName) || object.getCustomName().toUpperCase().startsWith(WordUtils.capitalize(customName)))) { return object; } } From c4944bee097ad51dbc6814a637b02e38481285d4 Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Thu, 10 Jul 2014 20:26:30 +0200 Subject: [PATCH 12/13] Added MobilTemplate conversation file assignment option NPCs can now have the conversation file assigned via mobile template rather than the creature spawn script. --- src/services/spawn/MobileTemplate.java | 9 +++++++++ src/services/spawn/SpawnService.java | 3 +++ 2 files changed, 12 insertions(+) diff --git a/src/services/spawn/MobileTemplate.java b/src/services/spawn/MobileTemplate.java index a0ab8683..7060a877 100644 --- a/src/services/spawn/MobileTemplate.java +++ b/src/services/spawn/MobileTemplate.java @@ -61,6 +61,7 @@ public class MobileTemplate implements Cloneable { private int respawnTime = 0; private List lootGroups = new ArrayList(); private String PCDTemplate=""; + private String conversationFileName=""; public Vector getTemplates() { @@ -360,5 +361,13 @@ public class MobileTemplate implements Cloneable { public void setPCDTemplate(String pCDTemplate) { PCDTemplate = pCDTemplate; } + + public String getConversationFileName() { + return conversationFileName; + } + + public void setConversationFileName(String conversationFileName) { + this.conversationFileName = conversationFileName; + } } diff --git a/src/services/spawn/SpawnService.java b/src/services/spawn/SpawnService.java index af6ba774..b4b60c52 100644 --- a/src/services/spawn/SpawnService.java +++ b/src/services/spawn/SpawnService.java @@ -107,6 +107,9 @@ public class SpawnService { creature.setLootGroups(mobileTemplate.getLootGroups()); creature.setOptionsBitmask(mobileTemplate.getOptionsBitmask()); + if (mobileTemplate.getConversationFileName().length()>0) + creature.setAttachment("conversationFile",mobileTemplate.getConversationFileName()); + creature.setFaction(mobileTemplate.getFaction()); creature.setFactionStatus(mobileTemplate.getFactionStatus()); creature.setPvpBitmask(mobileTemplate.getPvpBitmask()); From dd649484934ae2c9fc3fff6c3ea371aa065f1f9d Mon Sep 17 00:00:00 2001 From: CharonInferar Date: Thu, 10 Jul 2014 22:36:58 +0200 Subject: [PATCH 13/13] Fixed several AI bugs, listed in description Fixed #0000061 : Houses can now be destroyed, even when not redeeding - Added AI action regeneration when in combat - Fixed NPC self-buffing null pointer exception --- .../player_house_generic_small_style_01.py | 1 + .../objects/building/BuildingObject.java | 9 ++ src/services/ai/AIActor.java | 6 ++ src/services/combat/CombatService.java | 23 ++++- src/services/housing/HouseTemplate.java | 9 ++ src/services/housing/HousingService.java | 99 +++++++++++++------ 6 files changed, 112 insertions(+), 35 deletions(-) diff --git a/scripts/houses/player_house_generic_small_style_01.py b/scripts/houses/player_house_generic_small_style_01.py index 3c225c31..fe35b693 100644 --- a/scripts/houses/player_house_generic_small_style_01.py +++ b/scripts/houses/player_house_generic_small_style_01.py @@ -15,6 +15,7 @@ def setup(housingTemplates): houseTemplate.addPlaceablePlanet("lok") houseTemplate.setDefaultItemLimit(200) houseTemplate.setBaseMaintenanceRate(8) + houseTemplate.setDestructionFee(800) housingTemplates.put(houseTemplate.getDeedTemplate(), houseTemplate) return \ No newline at end of file diff --git a/src/resources/objects/building/BuildingObject.java b/src/resources/objects/building/BuildingObject.java index 9ee735d1..11c11083 100644 --- a/src/resources/objects/building/BuildingObject.java +++ b/src/resources/objects/building/BuildingObject.java @@ -56,6 +56,7 @@ public class BuildingObject extends TangibleObject implements IPersistent, Seria private Vector entryList = new Vector(); private Vector banList = new Vector(); private Vector adminList = new Vector(); + private int destructionFee = 0; public static final byte PRIVATE = (byte) 0; public static final byte PUBLIC = (byte) 1; @@ -427,5 +428,13 @@ public class BuildingObject extends TangibleObject implements IPersistent, Seria return adminList.contains(creature.getObjectID()); } + public int getDestructionFee() { + return destructionFee; + } + + public void setDestructionFee(int destructionFee) { + this.destructionFee = destructionFee; + } + } diff --git a/src/services/ai/AIActor.java b/src/services/ai/AIActor.java index 5d6c7673..bd9c2819 100644 --- a/src/services/ai/AIActor.java +++ b/src/services/ai/AIActor.java @@ -97,6 +97,12 @@ public class AIActor { try { if(creature.getHealth() < creature.getMaxHealth() && !creature.isInCombat() && creature.getPosture() != 13 && creature.getPosture() != 14) creature.setHealth(creature.getHealth() + (36 + creature.getLevel() * 4)); + if(creature.getAction() < creature.getMaxAction() && creature.getPosture() != 14) { + if(!creature.isInCombat()) + creature.setAction(creature.getAction() + (15 + creature.getLevel() * 5)); + else + creature.setAction(creature.getAction() + ((15 + creature.getLevel() * 5) / 2)); + } } catch (Exception e) { e.printStackTrace(); } diff --git a/src/services/combat/CombatService.java b/src/services/combat/CombatService.java index 8ab9adcb..caf2b037 100644 --- a/src/services/combat/CombatService.java +++ b/src/services/combat/CombatService.java @@ -68,6 +68,7 @@ import services.sui.SUIWindow.SUICallback; import services.sui.SUIWindow.Trigger; import tools.DevLog; import main.NGECore; +import engine.clients.Client; import engine.resources.common.CRC; import engine.resources.objects.SWGObject; import engine.resources.scene.Point3D; @@ -1371,7 +1372,20 @@ public class CombatService implements INetworkDispatch { if(!applySpecialCost(creature, weapon, command)) success = false; - if(!success && creature.getClient() != null) { + // Quick Hotfix for AI NPCs buffing themselves + Client client = null; + if(creature.getClient() == null) { + if (creature.getAttachment("AI")!=null){ + AIActor aiActor = (AIActor) creature.getAttachment("AI"); + CreatureObject target = aiActor.getFollowObject(); + if (target.getClient()!=null) + client = target.getClient(); // Use player's client reference that is in combat with that NPC + } + } else { + client = creature.getClient(); + } + + if(!success && client != null) { IoSession session = creature.getClient().getSession(); CommandEnqueueRemove commandRemove = new CommandEnqueueRemove(creature.getObjectId(), actionCounter); session.write(new ObjControllerMessage(0x0B, commandRemove).serialize()); @@ -1380,6 +1394,9 @@ public class CombatService implements INetworkDispatch { return; } + if (client == null) + return; + if (creature.hasBuff("co_position_secured")) core.buffService.removeBuffFromCreatureByName(creature, "co_position_secured"); else @@ -1387,11 +1404,11 @@ public class CombatService implements INetworkDispatch { StartTask startTask = new StartTask(actionCounter, creature.getObjectID(), command.getCommandCRC(), CRC.StringtoCRC(command.getCooldownGroup()), command.getCooldown()); ObjControllerMessage objController2 = new ObjControllerMessage(0x0B, startTask); - creature.getClient().getSession().write(objController2.serialize()); + client.getSession().write(objController2.serialize()); CommandEnqueueRemove commandRemove = new CommandEnqueueRemove(creature.getObjectID(), actionCounter); ObjControllerMessage objController3 = new ObjControllerMessage(0x0B, commandRemove); - creature.getClient().getSession().write(objController3.serialize()); + client.getSession().write(objController3.serialize()); } diff --git a/src/services/housing/HouseTemplate.java b/src/services/housing/HouseTemplate.java index b13b5a93..be700f4d 100644 --- a/src/services/housing/HouseTemplate.java +++ b/src/services/housing/HouseTemplate.java @@ -17,6 +17,7 @@ public class HouseTemplate { private Map buildingSigns; private boolean isCivicStructure; private int civicStructureType; + private int destructionFee = 0; public HouseTemplate(String deedTemplate, String buildingTemplate, int lotCost) { this.deedTemplate = deedTemplate; @@ -95,5 +96,13 @@ public class HouseTemplate { public void setCivicStructureType(int civicStructureType) { this.civicStructureType = civicStructureType; } + + public int getDestructionFee() { + return destructionFee; + } + + public void setDestructionFee(int destructionFee) { + this.destructionFee = destructionFee; + } } diff --git a/src/services/housing/HousingService.java b/src/services/housing/HousingService.java index bb9e31d5..85856af7 100644 --- a/src/services/housing/HousingService.java +++ b/src/services/housing/HousingService.java @@ -178,6 +178,7 @@ public class HousingService implements INetworkDispatch { building.addPlayerToAdminList(null, actor.getObjectID(), playerFirstName); building.setDeedTemplate(deed.getTemplate()); building.setMaintenanceAmount(houseTemplate.getBaseMaintenanceRate()); + building.setDestructionFee(houseTemplate.getDestructionFee()); if(city != null) { city.addNewStructure(building.getObjectID()); @@ -320,7 +321,7 @@ public class HousingService implements INetworkDispatch { "\n \n @player_structure:confirm_destruction_d3a " + "\\#32CD32 @player_structure:confirm_destruction_d3b \\#FFFFFF " + "@player_structure:confirm_destruction_d4 "); - if (building.getConditionDamage()<20 && building.getMaintenanceAmount()<3000){ + if (building.getConditionDamage()<20 && building.getMaintenanceAmount() returnList) { core.suiService.closeSUIWindow(owner, 0); - if (noRedeed.size()==0 && ((CreatureObject)owner).getBankCredits()>800) - createCodeWindow(owner, target); + if (noRedeed.size()==0){ + building.setAttachment("Can_Redeed", 1); + } else { + building.setAttachment("Can_Redeed", 0); + } + + createCodeWindow(owner, target); } }); window.addHandler(1, "", Trigger.TRIGGER_CANCEL, returnList, new SUICallback() { @@ -364,17 +370,27 @@ public class HousingService implements INetworkDispatch { public void createCodeWindow(SWGObject owner, TangibleObject target) { final BuildingObject building = (BuildingObject) target.getGrandparent(); + int canRedeed = (int) building.getAttachment("Can_Redeed"); //final BuildingObject building = (BuildingObject) target.getAttachment("housing_parentstruct"); //final BuildingObject building = (BuildingObject)target; Random rnd = new Random(); final int confirmCode = 100000 + rnd.nextInt(900000); final SUIWindow window = core.suiService.createInputBox(2,"@player_structure:structure_status","@player_structure:structure_name_prompt", owner, target, 0); window.setProperty("bg.caption.lblTitle:Text", "@player_structure:confirm_destruction_t"); - - window.setProperty("Prompt.lblPrompt:Text", "@player_structure:your_structure_prefix " + + + + + if (canRedeed==1){ + window.setProperty("Prompt.lblPrompt:Text", "@player_structure:your_structure_prefix " + "\\#32CD32 @player_structure:will_redeed_confirm \\#FFFFFF "+ "@player_structure:will_redeed_suffix " + "\n \n Code: " + confirmCode); + } else { + window.setProperty("Prompt.lblPrompt:Text", "@player_structure:your_structure_prefix " + + "\\#BB0000 @player_structure:will_not_redeed_confirm \\#FFFFFF "+ + "@player_structure:will_redeed_suffix " + + "\n \n Code: " + confirmCode); + } window.setProperty("btnOk:visible", "True"); window.setProperty("btnCancel:visible", "True"); @@ -393,35 +409,54 @@ public class HousingService implements INetworkDispatch { PlayerObject player = (PlayerObject) houseOwner.getSlottedObject("ghost"); HouseTemplate houseTemplate = housingTemplates.get(houseToDeed.get(building.getTemplate())); - TangibleObject deed = (TangibleObject) core.objectService.createObject(houseTemplate.getDeedTemplate(), owner.getPlanet()); - if (player.getLotsRemaining() + houseTemplate.getLotCost() > 10){ - // Something went wrong or hacking attempt - houseOwner.sendSystemMessage("Structure can't be redeeded. Maximum lot count exceeded.",(byte)1); - return; + + if (canRedeed==1){ + TangibleObject deed = (TangibleObject) core.objectService.createObject(houseTemplate.getDeedTemplate(), owner.getPlanet()); + + if (player.getLotsRemaining() + houseTemplate.getLotCost() > 10){ + // Something went wrong or hacking attempt + houseOwner.sendSystemMessage("Structure can't be redeeded. Maximum lot count exceeded.",(byte)1); + return; + } + + deed.setIntAttribute("@obj_attr_n:examine_maintenance_rate", houseTemplate.getBaseMaintenanceRate()); + deed.setIntAttribute("@obj_attr_n:examine_maintenance", (int) building.getMaintenanceAmount()); + + owner.getContainer().remove(owner); + + int costs = 800; + houseOwner.setBankCredits(houseOwner.getBankCredits()-costs); + + destroyStructure(building); + + + SWGObject ownerInventory = owner.getSlottedObject("inventory"); + ownerInventory.add(deed); + + if (player.getLotsRemaining() + houseTemplate.getLotCost() <= 10) { + player.setLotsRemaining(player.getLotsRemaining() + houseTemplate.getLotCost()); + } + + houseOwner.sendSystemMessage("@player_structure:processing_destruction",(byte)1); + houseOwner.sendSystemMessage("@player_structure:deed_reclaimed",(byte)1); + + } else { + + if (player.getLotsRemaining() + houseTemplate.getLotCost() > 10){ + // Something went wrong or hacking attempt + houseOwner.sendSystemMessage("Structure can't be destroyed. Maximum lot count exceeded.",(byte)1); + return; + } + owner.getContainer().remove(owner); + destroyStructure(building); + if (player.getLotsRemaining() + houseTemplate.getLotCost() <= 10) { + player.setLotsRemaining(player.getLotsRemaining() + houseTemplate.getLotCost()); + } + + houseOwner.sendSystemMessage("@player_structure:processing_destruction",(byte)1); } - deed.setIntAttribute("@obj_attr_n:examine_maintenance_rate", houseTemplate.getBaseMaintenanceRate()); - deed.setIntAttribute("@obj_attr_n:examine_maintenance", (int) building.getMaintenanceAmount()); - - owner.getContainer().remove(owner); - - int costs = 800; - houseOwner.setBankCredits(houseOwner.getBankCredits()-costs); - - destroyStructure(building); - - - SWGObject ownerInventory = owner.getSlottedObject("inventory"); - ownerInventory.add(deed); - - if (player.getLotsRemaining() + houseTemplate.getLotCost() <= 10) { - player.setLotsRemaining(player.getLotsRemaining() + houseTemplate.getLotCost()); - } - - houseOwner.sendSystemMessage("@player_structure:processing_destruction",(byte)1); - houseOwner.sendSystemMessage("@player_structure:deed_reclaimed",(byte)1); - } else { houseOwner.sendSystemMessage("@player_structure:incorrect_destroy_code",(byte)1); }