mirror of
https://github.com/ProjectSWGCore/NGECore2.git
synced 2026-10-13 03:13:26 -04:00
Merge branch 'master' of https://github.com/ProjectSWGCore/NGECore2
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
import sys
|
||||
|
||||
def setup(core, actor, buff):
|
||||
return
|
||||
|
||||
def add(core, actor, buff):
|
||||
core.skillModService.addSkillMod(actor, 'expertise_action_line_me_dm', 5)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_action_line_me_burst', 5)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_action_line_me_smash', 5)
|
||||
return
|
||||
|
||||
def remove(core, actor, buff):
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_action_line_me_dm', 5)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_action_line_me_burst', 5)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_action_line_me_smash', 5)
|
||||
return
|
||||
@@ -0,0 +1,20 @@
|
||||
import sys
|
||||
|
||||
def setup(core, actor, buff):
|
||||
return
|
||||
|
||||
def add(core, actor, buff):
|
||||
core.skillModService.addSkillMod(actor, 'expertise_action_line_me_dm', 10)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_action_line_me_burst', 10)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_action_line_me_smash', 10)
|
||||
core.skillModService.addSkillMod(actor, 'fast_attack_line_me_dm', 5)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_buff_duration_line_me_enhance', 900)
|
||||
return
|
||||
|
||||
def remove(core, actor, buff):
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_action_line_me_dm', 10)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_action_line_me_burst', 10)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_action_line_me_smash', 10)
|
||||
core.skillModService.deductSkillMod(actor, 'fast_attack_line_me_dm', 5)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_buff_duration_line_me_enhance', 900)
|
||||
return
|
||||
@@ -0,0 +1,20 @@
|
||||
import sys
|
||||
|
||||
def setup(core, actor, buff):
|
||||
return
|
||||
|
||||
def add(core, actor, buff):
|
||||
core.skillModService.addSkillMod(actor, 'expertise_action_line_me_dm', 15)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_action_line_me_burst', 20)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_action_line_me_smash', 20)
|
||||
core.skillModService.addSkillMod(actor, 'fast_attack_line_me_dm', 15)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_buff_duration_line_me_enhance', 1800)
|
||||
return
|
||||
|
||||
def remove(core, actor, buff):
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_action_line_me_dm', 15)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_action_line_me_burst', 20)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_action_line_me_smash', 20)
|
||||
core.skillModService.deductSkillMod(actor, 'fast_attack_line_me_dm', 15)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_buff_duration_line_me_enhance', 1800)
|
||||
return
|
||||
@@ -0,0 +1,16 @@
|
||||
import sys
|
||||
|
||||
def setup(core, actor, buff):
|
||||
return
|
||||
|
||||
def add(core, actor, buff):
|
||||
core.skillModService.addSkillMod(actor, 'expertise_freeshot_me_heal', 5)
|
||||
core.skillModService.addSkillMod(actor, 'fast_attack_line_me_revive', 5)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_cooldown_line_me_evasion', 10)
|
||||
return
|
||||
|
||||
def remove(core, actor, buff):
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_freeshot_me_heal', 5)
|
||||
core.skillModService.deductSkillMod(actor, 'fast_attack_line_me_revive', 5)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_cooldown_line_me_evasion', 10)
|
||||
return
|
||||
@@ -0,0 +1,18 @@
|
||||
import sys
|
||||
|
||||
def setup(core, actor, buff):
|
||||
return
|
||||
|
||||
def add(core, actor, buff):
|
||||
core.skillModService.addSkillMod(actor, 'fast_attack_line_me_heal', 5)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_freeshot_me_heal', 10)
|
||||
core.skillModService.addSkillMod(actor, 'fast_attack_line_me_revive', 10)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_cooldown_line_me_evasion', 20)
|
||||
return
|
||||
|
||||
def remove(core, actor, buff):
|
||||
core.skillModService.deductSkillMod(actor, 'fast_attack_line_me_heal', 5)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_freeshot_me_heal', 10)
|
||||
core.skillModService.deductSkillMod(actor, 'fast_attack_line_me_revive', 10)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_cooldown_line_me_evasion', 20)
|
||||
return
|
||||
@@ -0,0 +1,20 @@
|
||||
import sys
|
||||
|
||||
def setup(core, actor, buff):
|
||||
return
|
||||
|
||||
def add(core, actor, buff):
|
||||
core.skillModService.addSkillMod(actor, 'fast_attack_line_me_heal', 10)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_freeshot_me_heal', 15)
|
||||
core.skillModService.addSkillMod(actor, 'fast_attack_line_me_revive', 15)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_cooldown_line_me_evasion', 30)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_cooldown_line_me_stasis_self', 2)
|
||||
return
|
||||
|
||||
def remove(core, actor, buff):
|
||||
core.skillModService.deductSkillMod(actor, 'fast_attack_line_me_heal', 10)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_freeshot_me_heal', 15)
|
||||
core.skillModService.deductSkillMod(actor, 'fast_attack_line_me_revive', 15)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_cooldown_line_me_evasion', 30)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_cooldown_line_me_stasis_self', 2)
|
||||
return
|
||||
@@ -0,0 +1,16 @@
|
||||
import sys
|
||||
|
||||
def setup(core, actor, buff):
|
||||
return
|
||||
|
||||
def add(core, actor, buff):
|
||||
core.skillModService.addSkillMod(actor, 'expertise_cooldown_line_me_dot', 10)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_buff_duration_line_me_debuff', 1)
|
||||
core.skillModService.addSkillMod(actor, 'fast_attack_line_me_debuff', 5)
|
||||
return
|
||||
|
||||
def remove(core, actor, buff):
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_cooldown_line_me_dot', 10)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_buff_duration_line_me_debuff', 1)
|
||||
core.skillModService.deductSkillMod(actor, 'fast_attack_line_me_debuff', 5)
|
||||
return
|
||||
@@ -0,0 +1,18 @@
|
||||
import sys
|
||||
|
||||
def setup(core, actor, buff):
|
||||
return
|
||||
|
||||
def add(core, actor, buff):
|
||||
core.skillModService.addSkillMod(actor, 'expertise_cooldown_line_me_dot', 20)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_buff_duration_line_me_debuff', 3)
|
||||
core.skillModService.addSkillMod(actor, 'fast_attack_line_me_debuff', 10)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_freeshot_me_debuff', 10)
|
||||
return
|
||||
|
||||
def remove(core, actor, buff):
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_cooldown_line_me_dot', 20)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_buff_duration_line_me_debuff', 3)
|
||||
core.skillModService.deductSkillMod(actor, 'fast_attack_line_me_debuff', 10)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_freeshot_me_debuff', 10)
|
||||
return
|
||||
@@ -0,0 +1,20 @@
|
||||
import sys
|
||||
|
||||
def setup(core, actor, buff):
|
||||
return
|
||||
|
||||
def add(core, actor, buff):
|
||||
core.skillModService.addSkillMod(actor, 'expertise_cooldown_line_me_dot', 30)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_buff_duration_line_me_debuff', 5)
|
||||
core.skillModService.addSkillMod(actor, 'fast_attack_line_me_debuff', 15)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_freeshot_me_debuff', 15)
|
||||
core.skillModService.addSkillMod(actor, 'me_doom_chance', 20)
|
||||
return
|
||||
|
||||
def remove(core, actor, buff):
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_cooldown_line_me_dot', 30)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_buff_duration_line_me_debuff', 5)
|
||||
core.skillModService.deductSkillMod(actor, 'fast_attack_line_me_debuff', 15)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_freeshot_me_debuff', 15)
|
||||
core.skillModService.deductSkillMod(actor, 'me_doom_chance', 20)
|
||||
return
|
||||
@@ -0,0 +1,14 @@
|
||||
import sys
|
||||
|
||||
def setup(core, actor, buff):
|
||||
return
|
||||
|
||||
def add(core, actor, buff):
|
||||
core.skillModService.addSkillMod(actor, 'expertise_action_line_sp_dm', 10)
|
||||
core.skillModService.addSkillMod(actor, 'fast_attack_line_sp_dm', 5)
|
||||
return
|
||||
|
||||
def remove(core, actor, buff):
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_action_line_sp_dm', 10)
|
||||
core.skillModService.deductSkillMod(actor, 'fast_attack_line_sp_dm', 5)
|
||||
return
|
||||
@@ -0,0 +1,16 @@
|
||||
import sys
|
||||
|
||||
def setup(core, actor, buff):
|
||||
return
|
||||
|
||||
def add(core, actor, buff):
|
||||
core.skillModService.addSkillMod(actor, 'expertise_action_line_sp_dm', 15)
|
||||
core.skillModService.addSkillMod(actor, 'fast_attack_line_sp_dm', 10)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_action_line_sp_dot', 15)
|
||||
return
|
||||
|
||||
def remove(core, actor, buff):
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_action_line_sp_dm', 15)
|
||||
core.skillModService.deductSkillMod(actor, 'fast_attack_line_sp_dm', 10)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_action_line_sp_dot', 15)
|
||||
return
|
||||
@@ -0,0 +1,20 @@
|
||||
import sys
|
||||
|
||||
def setup(core, actor, buff):
|
||||
return
|
||||
|
||||
def add(core, actor, buff):
|
||||
core.skillModService.addSkillMod(actor, 'expertise_action_line_sp_dm', 20)
|
||||
core.skillModService.addSkillMod(actor, 'fast_attack_line_sp_dm', 15)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_freeshot_sp_dm', 20)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_cooldown_line_sp_dm', 20)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_action_line_sp_dot', 25)
|
||||
return
|
||||
|
||||
def remove(core, actor, buff):
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_action_line_sp_dm', 20)
|
||||
core.skillModService.deductSkillMod(actor, 'fast_attack_line_sp_dm', 15)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_freeshot_sp_dm', 20)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_cooldown_line_sp_dm', 20)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_action_line_sp_dot', 25)
|
||||
return
|
||||
@@ -0,0 +1,14 @@
|
||||
import sys
|
||||
|
||||
def setup(core, actor, buff):
|
||||
return
|
||||
|
||||
def add(core, actor, buff):
|
||||
core.skillModService.addSkillMod(actor, 'expertise_cooldown_line_sp_preparation', 20)
|
||||
core.skillModService.addSkillMod(actor, 'fast_attack_line_sp_smoke', 5)
|
||||
return
|
||||
|
||||
def remove(core, actor, buff):
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_cooldown_line_sp_preparation', 20)
|
||||
core.skillModService.deductSkillMod(actor, 'fast_attack_line_sp_smoke', 5)
|
||||
return
|
||||
@@ -0,0 +1,16 @@
|
||||
import sys
|
||||
|
||||
def setup(core, actor, buff):
|
||||
return
|
||||
|
||||
def add(core, actor, buff):
|
||||
core.skillModService.addSkillMod(actor, 'expertise_cooldown_line_sp_preparation', 40)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_buff_duration_line_sp_preparation', 5)
|
||||
core.skillModService.addSkillMod(actor, 'fast_attack_line_sp_smoke', 15)
|
||||
return
|
||||
|
||||
def remove(core, actor, buff):
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_cooldown_line_sp_preparation', 40)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_buff_duration_line_sp_preparation', 5)
|
||||
core.skillModService.deductSkillMod(actor, 'fast_attack_line_sp_smoke', 15)
|
||||
return
|
||||
@@ -0,0 +1,18 @@
|
||||
import sys
|
||||
|
||||
def setup(core, actor, buff):
|
||||
return
|
||||
|
||||
def add(core, actor, buff):
|
||||
core.skillModService.addSkillMod(actor, 'expertise_cooldown_line_sp_preparation', 60)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_buff_duration_line_sp_preparation', 10)
|
||||
core.skillModService.addSkillMod(actor, 'fast_attack_line_sp_smoke', 20)
|
||||
core.skillModService.addSkillMod(actor, 'fast_attack_line_sp_perfect', 15)
|
||||
return
|
||||
|
||||
def remove(core, actor, buff):
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_cooldown_line_sp_preparation', 60)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_buff_duration_line_sp_preparation', 10)
|
||||
core.skillModService.deductSkillMod(actor, 'fast_attack_line_sp_smoke', 20)
|
||||
core.skillModService.deductSkillMod(actor, 'fast_attack_line_sp_perfect', 15)
|
||||
return
|
||||
@@ -0,0 +1,14 @@
|
||||
import sys
|
||||
|
||||
def setup(core, actor, buff):
|
||||
return
|
||||
|
||||
def add(core, actor, buff):
|
||||
core.skillModService.addSkillMod(actor, 'expertise_strikethrough_chance', 1)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_action_all', 5)
|
||||
return
|
||||
|
||||
def remove(core, actor, buff):
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_strikethrough_chance', 1)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_action_all', 5)
|
||||
return
|
||||
@@ -0,0 +1,14 @@
|
||||
import sys
|
||||
|
||||
def setup(core, actor, buff):
|
||||
return
|
||||
|
||||
def add(core, actor, buff):
|
||||
core.skillModService.addSkillMod(actor, 'expertise_strikethrough_chance', 2)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_action_all', 10)
|
||||
return
|
||||
|
||||
def remove(core, actor, buff):
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_strikethrough_chance', 2)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_action_all', 10)
|
||||
return
|
||||
@@ -0,0 +1,20 @@
|
||||
import sys
|
||||
|
||||
def setup(core, actor, buff):
|
||||
return
|
||||
|
||||
def add(core, actor, buff):
|
||||
core.skillModService.addSkillMod(actor, 'expertise_strikethrough_chance', 3)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_action_all', 15)
|
||||
core.skillModService.addSkillMod(actor, 'expertise_avoidance_overpower', 5)
|
||||
core.skillModService.addSkillMod(actor, 'movement_resist_snare', 100)
|
||||
core.skillModService.addSkillMod(actor, 'movement_resist_root', 100)
|
||||
return
|
||||
|
||||
def remove(core, actor, buff):
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_strikethrough_chance', 3)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_action_all', 15)
|
||||
core.skillModService.deductSkillMod(actor, 'expertise_avoidance_overpower', 5)
|
||||
core.skillModService.deductSkillMod(actor, 'movement_resist_snare', 100)
|
||||
core.skillModService.deductSkillMod(actor, 'movement_resist_root', 100)
|
||||
return
|
||||
@@ -46,7 +46,7 @@ def handleStartdance(core, owner, eventType, returnList):
|
||||
|
||||
if not item:
|
||||
return
|
||||
|
||||
|
||||
#if eventType == 0:
|
||||
startDance(coreObject, actorObject, '', int(item.getObjectId()))
|
||||
return
|
||||
@@ -90,7 +90,7 @@ def startDance(core, actor, danceName, visual):
|
||||
if not actor.getPerformanceWatchee():
|
||||
#this also notifies the client with a delta4
|
||||
actor.setPerformanceWatchee(actor)
|
||||
actor.addAudience(actor)
|
||||
actor.addSpectator(actor)
|
||||
|
||||
#this should send a CREO3
|
||||
actor.setPosture(0x09);
|
||||
|
||||
@@ -11,10 +11,5 @@ def run(core, actor, target, commandString):
|
||||
actor.sendSystemMessage('@performance:dance_not_performing', 0)
|
||||
return
|
||||
|
||||
#since we need to stop performance for any posture change,
|
||||
# all packets are triggered in setPosture.
|
||||
# this may not be very consistent, but it prevents
|
||||
# duplicate code.
|
||||
actor.stopPerformance()
|
||||
|
||||
return
|
||||
|
||||
@@ -10,7 +10,7 @@ def run(core, actor, target, commandString):
|
||||
|
||||
if performer is None:
|
||||
return
|
||||
performer.removeAudience(actor)
|
||||
performer.removeSpectator(actor)
|
||||
actor.setPerformanceWatchee(None)
|
||||
if not actor.getPerformanceListenee():
|
||||
actor.setMoodAnimation('')
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
import sys
|
||||
from services.equipment import BonusSetTemplate
|
||||
from java.util import Vector
|
||||
|
||||
def addBonusSet(core):
|
||||
bonusSet = BonusSetTemplate("set_bonus_jedi_robe")
|
||||
|
||||
# Waistpack
|
||||
bonusSet.addRequiredTemplate("object/tangible/wearables/backpack/shared_fannypack_s01.iff")
|
||||
|
||||
# Jedi Robes - Light
|
||||
bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_jedi_light_s01.iff")
|
||||
bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_jedi_light_s02.iff")
|
||||
bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_jedi_light_s03.iff")
|
||||
bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_jedi_light_s04.iff")
|
||||
bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_jedi_light_s05.iff")
|
||||
|
||||
# Jedi Robes - Dark
|
||||
bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_jedi_dark_s01.iff")
|
||||
bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_jedi_dark_s02.iff")
|
||||
bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_jedi_dark_s03.iff")
|
||||
bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_jedi_dark_s04.iff")
|
||||
bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_jedi_dark_s05.iff")
|
||||
|
||||
# Jedi Cloaks
|
||||
bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_s32.iff")
|
||||
bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_s32_h1.iff")
|
||||
bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_s33.iff")
|
||||
bonusSet.addRequiredTemplate("object/tangible/wearables/robe/shared_robe_s33_h1.iff")
|
||||
|
||||
core.equipmentService.addBonusSetTemplate(bonusSet)
|
||||
|
||||
def handleChange(core, creature, set):
|
||||
wornItems = set.getWornTemplateCount(creature)
|
||||
|
||||
if wornItems == 2:
|
||||
core.buffService.addBuffToCreature(creature, "set_bonus_jedi_robe_1", creature)
|
||||
else:
|
||||
core.buffService.removeBuffFromCreatureByName(creature, "set_bonus_jedi_robe_1")
|
||||
@@ -1,4 +1,16 @@
|
||||
import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('item_fannypack_04_01')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('item_fannypack_04_01')
|
||||
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 50)
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:luck_modified', 50)
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:precision_modified', 50)
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 50)
|
||||
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_jedi_robe_1')
|
||||
object.setAttachment('setBonus', 'set_bonus_jedi_robe')
|
||||
return
|
||||
@@ -2,15 +2,20 @@ import sys
|
||||
|
||||
def setup(core, object):
|
||||
object.setStfFilename('static_item_n')
|
||||
object.setStfName('item_jedi_robe_light_04_04')
|
||||
object.setStfName('item_jedi_robe_light_03_03')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('item_jedi_robe_light_04_04')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 185)
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 185)
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 185)
|
||||
object.setDetailName('item_jedi_robe_light_03_03')
|
||||
|
||||
object.setStringAttribute('protection_level', 'Luminous')
|
||||
object.setStringAttribute('class_required', 'Jedi')
|
||||
object.setIntAttribute('required_combat_level', 80)
|
||||
object.setAttachment('type', 'jedi_robe')
|
||||
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 185)
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 185)
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 185)
|
||||
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_jedi_robe_1')
|
||||
|
||||
object.setAttachment('type', 'jedi_robe')
|
||||
object.setAttachment('setBonus', 'set_bonus_jedi_robe')
|
||||
return
|
||||
|
||||
@@ -5,15 +5,22 @@ def setup(core, object):
|
||||
object.setStfName('item_jedi_robe_light_04_04')
|
||||
object.setDetailFilename('static_item_d')
|
||||
object.setDetailName('item_jedi_robe_light_04_04')
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 250)
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 250)
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 250)
|
||||
|
||||
object.setStringAttribute('protection_level', 'Radiant')
|
||||
object.setStringAttribute('class_required', 'Jedi')
|
||||
object.setIntAttribute('required_combat_level', 90)
|
||||
object.setAttachment('type', 'jedi_robe')
|
||||
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:constitution_modified', 250)
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:strength_modified', 250)
|
||||
object.setIntAttribute('cat_stat_mod_bonus.@stat_n:agility_modified', 250)
|
||||
|
||||
|
||||
object.setStringAttribute('proc_name', '@ui_buff:proc_old_light_jedi_gift')
|
||||
object.setStringAttribute('@set_bonus:piece_bonus_count_2', '@set_bonus:set_bonus_jedi_robe_1')
|
||||
|
||||
object.setAttachment('type', 'jedi_robe')
|
||||
object.setAttachment('setBonus', 'set_bonus_jedi_robe')
|
||||
|
||||
return
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ def createRadial(core, owner, target, radials):
|
||||
if owner.getPerformanceWatchee() == target:
|
||||
if target.getPerformanceType() is True:
|
||||
radials.add(RadialOptions(0, 141, 3, 'Stop Watching'))
|
||||
elif owner.getPerformanceListenee() == target: # TODO: Get rid of PerformanceWatchee variable, no need for listenee (same thing really)
|
||||
elif owner.getPerformanceListenee() == target:
|
||||
radials.add(RadialOptions(0, 141, 3, 'Stop Listening'))
|
||||
else:
|
||||
if target.getPerformanceType() is True:
|
||||
@@ -27,6 +27,6 @@ def handleSelection(core, owner, target, option):
|
||||
return
|
||||
|
||||
if option == 141:
|
||||
#core.commandService.callCommand(owner, 'stopwatching', target, '') #SWGList error for remove audience in CreatureObject
|
||||
core.commandService.callCommand(owner, 'stopwatching', target, '')
|
||||
return
|
||||
return
|
||||
@@ -1,12 +1,14 @@
|
||||
import sys
|
||||
|
||||
# Temporarily disabled until the skillmod calculation system is refactored
|
||||
|
||||
def add(core, actor, name, base):
|
||||
actor.addSkillMod(name, base)
|
||||
actor.setMaxAction(actor.getMaxAction() + int((float(actor.getMaxAction()) * (float(base) / float(100)))))
|
||||
#actor.addSkillMod(name, base)
|
||||
#actor.setMaxAction(actor.getMaxAction() + int((float(actor.getMaxAction()) * (float(base) / float(100)))))
|
||||
return
|
||||
|
||||
def deduct(core, actor, name, base):
|
||||
actor.deductSkillMod(name, base)
|
||||
actor.setMaxAction(actor.getMaxAction() - int((float(actor.getMaxAction()) * (float(base) / float(100)))))
|
||||
#actor.deductSkillMod(name, base)
|
||||
#actor.setMaxAction(actor.getMaxAction() - int((float(actor.getMaxAction()) * (float(base) / float(100)))))
|
||||
return
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
import sys
|
||||
|
||||
# Temporarily disabled until the skillmod calculation system is refactored
|
||||
|
||||
def add(core, actor, name, base):
|
||||
actor.addSkillMod(name, base)
|
||||
actor.setMaxHealth(actor.getMaxHealth() + int((float(actor.getMaxHealth()) * (float(base) / float(100)))))
|
||||
#actor.addSkillMod(name, base)
|
||||
#actor.setMaxHealth(actor.getMaxHealth() + int((float(actor.getMaxHealth()) * (float(base) / float(100)))))
|
||||
return
|
||||
|
||||
def deduct(core, actor, name, base):
|
||||
actor.deductSkillMod(name, base)
|
||||
actor.setMaxHealth(actor.getMaxHealth() - int((actor.getMaxHealth() * (float(base) / float(100)))))
|
||||
#actor.deductSkillMod(name, base)
|
||||
#actor.setMaxHealth(actor.getMaxHealth() - int((actor.getMaxHealth() * (float(base) / float(100)))))
|
||||
return
|
||||
|
||||
@@ -420,6 +420,8 @@ public class NGECore {
|
||||
spawnService.loadLairGroups();
|
||||
spawnService.loadSpawnAreas();
|
||||
|
||||
equipmentService.loadBonusSets();
|
||||
|
||||
retroService.run();
|
||||
|
||||
didServerCrash = false;
|
||||
|
||||
@@ -25,6 +25,7 @@ import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Vector;
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
|
||||
import org.apache.mina.core.buffer.IoBuffer;
|
||||
@@ -44,7 +45,6 @@ import com.sleepycat.persist.model.Entity;
|
||||
import com.sleepycat.persist.model.NotPersistent;
|
||||
|
||||
import main.NGECore;
|
||||
|
||||
import engine.clients.Client;
|
||||
import resources.objects.Buff;
|
||||
import resources.objects.DamageOverTime;
|
||||
@@ -127,7 +127,7 @@ public class CreatureObject extends TangibleObject implements IPersistent {
|
||||
private CreatureObject performanceWatchee;
|
||||
private CreatureObject performanceListenee;
|
||||
@NotPersistent
|
||||
private SWGList<CreatureObject> performanceAudience = new SWGList<CreatureObject>();
|
||||
private Vector<CreatureObject> performanceAudience = new Vector<CreatureObject>();
|
||||
private int health = 1000;
|
||||
private int action = 300;
|
||||
@NotPersistent
|
||||
@@ -431,8 +431,6 @@ public class CreatureObject extends TangibleObject implements IPersistent {
|
||||
else { next.sendSystemMessage("You stop listening to " + getCustomName() + ".",(byte)0); }
|
||||
next.getSpectatorTask().cancel(true);
|
||||
}
|
||||
//not sure if this behaviour is correct. might need fixing later.
|
||||
performanceAudience = new SWGList<CreatureObject>();
|
||||
}
|
||||
}
|
||||
public ScheduledFuture<?> getEntertainerExperience() {
|
||||
@@ -1507,23 +1505,20 @@ public class CreatureObject extends TangibleObject implements IPersistent {
|
||||
}
|
||||
}
|
||||
|
||||
public void addAudience(CreatureObject audienceMember) {
|
||||
public void addSpectator(CreatureObject audienceMember) {
|
||||
synchronized(objectMutex) {
|
||||
if (performanceAudience == null) {
|
||||
performanceAudience = new SWGList<CreatureObject>();
|
||||
}
|
||||
performanceAudience.add(audienceMember);
|
||||
}
|
||||
}
|
||||
|
||||
public void removeAudience(CreatureObject audienceMember) {
|
||||
public void removeSpectator(CreatureObject audienceMember) {
|
||||
synchronized(objectMutex) {
|
||||
if (performanceAudience == null) { return; }
|
||||
if (audienceMember.getInspirationTick() != null)
|
||||
audienceMember.getInspirationTick().cancel(true);
|
||||
|
||||
if(performanceAudience.contains(audienceMember))
|
||||
performanceAudience.remove(audienceMember); // SWGList error
|
||||
performanceAudience.remove(audienceMember);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -317,6 +317,9 @@ public class CharacterService implements INetworkDispatch {
|
||||
Console.println("Added empty mission " + missionsAdded);
|
||||
}*/
|
||||
|
||||
object.addAbility("startDance");
|
||||
object.addAbility("startDance+Basic");
|
||||
|
||||
object.addObjectToEquipList(datapad);
|
||||
object.addObjectToEquipList(inventory);
|
||||
object.addObjectToEquipList(bank);
|
||||
|
||||
@@ -200,17 +200,17 @@ public class ConnectionService implements INetworkDispatch {
|
||||
if(object.getAttachment("inspireDuration") != null)
|
||||
object.setAttachment("inspireDuration", null);
|
||||
|
||||
if(object.getInspirationTick() != null) {
|
||||
object.getInspirationTick().cancel(true);
|
||||
object.setInspirationTick(null);
|
||||
if(object.getPerformanceListenee() != null) {
|
||||
object.getPerformanceListenee().removeSpectator(object);
|
||||
object.setPerformanceListenee(null);
|
||||
}
|
||||
|
||||
if(object.getSpectatorTask() != null) {
|
||||
object.getSpectatorTask().cancel(true);
|
||||
object.setSpectatorTask(null);
|
||||
if(object.getPerformanceWatchee() != null) {
|
||||
object.getPerformanceWatchee().removeSpectator(object);
|
||||
object.setPerformanceWatchee(null);
|
||||
}
|
||||
|
||||
core.groupService.handleGroupDisband(object);
|
||||
core.groupService.handleGroupDisband(object, false);
|
||||
|
||||
if (core.instanceService.isInInstance(object)) {
|
||||
core.instanceService.remove(core.instanceService.getActiveInstance(object), object);
|
||||
|
||||
+909
-328
File diff suppressed because it is too large
Load Diff
@@ -518,7 +518,7 @@ public class EntertainmentService implements INetworkDispatch {
|
||||
core.commandService.registerCommand("startdance");
|
||||
core.commandService.registerCommand("stopdance");
|
||||
core.commandService.registerCommand("watch");
|
||||
//core.commandService.registerCommand("stopwatching"); // SWGList error
|
||||
core.commandService.registerCommand("stopwatching");
|
||||
core.commandService.registerCommand("holoEmote");
|
||||
core.commandService.registerCommand("covercharge");
|
||||
//core.commandService.registerCommand("en_holographic_recall");
|
||||
@@ -681,13 +681,13 @@ public class EntertainmentService implements INetworkDispatch {
|
||||
|
||||
// visual
|
||||
if (spectator.getPerformanceWatchee() == performer && spectateType)
|
||||
spectator.getPerformanceWatchee().removeAudience(spectator);
|
||||
spectator.getPerformanceWatchee().removeSpectator(spectator);
|
||||
// music
|
||||
else if (spectator.getPerformanceListenee() == performer && !spectateType)
|
||||
spectator.getPerformanceListenee().removeAudience(spectator);
|
||||
spectator.getPerformanceListenee().removeSpectator(spectator);
|
||||
|
||||
spectator.setPerformanceWatchee(performer);
|
||||
performer.addAudience(spectator);
|
||||
performer.addSpectator(spectator);
|
||||
spectator.setMoodAnimation("entertained");
|
||||
|
||||
final ScheduledFuture<?> spectatorTask = scheduler.scheduleAtFixedRate(() -> {
|
||||
@@ -705,7 +705,7 @@ public class EntertainmentService implements INetworkDispatch {
|
||||
+ " is out of range.", (byte) 0);
|
||||
}
|
||||
spectator.setMoodAnimation("neutral");
|
||||
performer.removeAudience(spectator);
|
||||
performer.removeSpectator(spectator);
|
||||
|
||||
if (spectator.getInspirationTick().cancel(true))
|
||||
spectator.getSpectatorTask().cancel(true);
|
||||
|
||||
@@ -21,10 +21,20 @@
|
||||
******************************************************************************/
|
||||
package services;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.nio.file.FileVisitResult;
|
||||
import java.nio.file.FileVisitor;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.nio.file.Paths;
|
||||
import java.nio.file.SimpleFileVisitor;
|
||||
import java.nio.file.attribute.BasicFileAttributes;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.TreeMap;
|
||||
|
||||
import org.python.antlr.ast.Str;
|
||||
import org.python.core.Py;
|
||||
import org.python.core.PyObject;
|
||||
|
||||
@@ -35,10 +45,13 @@ import engine.resources.objects.SWGObject;
|
||||
import engine.resources.service.INetworkDispatch;
|
||||
import engine.resources.service.INetworkRemoteEvent;
|
||||
import resources.objects.player.PlayerObject;
|
||||
import services.equipment.BonusSetTemplate;
|
||||
import services.spawn.MobileTemplate;
|
||||
|
||||
public class EquipmentService implements INetworkDispatch {
|
||||
|
||||
private NGECore core;
|
||||
private Map<String, BonusSetTemplate> bonusSetTemplates = new ConcurrentHashMap<String, BonusSetTemplate>();
|
||||
|
||||
public EquipmentService(NGECore core) {
|
||||
this.core = core;
|
||||
@@ -221,9 +234,14 @@ public class EquipmentService implements INetworkDispatch {
|
||||
|
||||
if(!actor.getEquipmentList().contains(item))
|
||||
actor.addObjectToEquipList(item);
|
||||
|
||||
if(item.getAttachment("setBonus") != null)
|
||||
{
|
||||
BonusSetTemplate bonus = bonusSetTemplates.get((String)item.getAttachment("setBonus"));
|
||||
bonus.callScript(actor);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void unequip(CreatureObject actor, SWGObject item) {
|
||||
String template = ((item.getAttachment("customServerTemplate") == null) ? item.getTemplate() : (item.getTemplate().split("shared_")[0] + "shared_" + ((String) item.getAttachment("customServerTemplate")) + ".iff"));
|
||||
String serverTemplate = template.replace(".iff", "");
|
||||
@@ -272,9 +290,35 @@ public class EquipmentService implements INetworkDispatch {
|
||||
|
||||
if(item.getStringAttribute("proc_name") != null) core.buffService.removeBuffFromCreatureByName(actor, item.getStringAttribute("proc_name").replace("@ui_buff:", ""));
|
||||
|
||||
|
||||
if(actor.getEquipmentList().contains(item))
|
||||
actor.removeObjectFromEquipList(item);
|
||||
|
||||
if(item.getAttachment("setBonus") != null)
|
||||
{
|
||||
BonusSetTemplate bonus = bonusSetTemplates.get((String)item.getAttachment("setBonus"));
|
||||
bonus.callScript(actor);
|
||||
}
|
||||
}
|
||||
|
||||
public void addBonusSetTemplate(BonusSetTemplate bonusSet)
|
||||
{
|
||||
bonusSetTemplates.put(bonusSet.getName(), bonusSet);
|
||||
}
|
||||
|
||||
public void loadBonusSets() {
|
||||
Path p = Paths.get("scripts/equipment/bonus_sets/");
|
||||
FileVisitor<Path> fv = new SimpleFileVisitor<Path>() {
|
||||
@Override
|
||||
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
|
||||
core.scriptService.callScript("scripts/equipment/bonus_sets/", file.getFileName().toString().replace(".py", ""), "addBonusSet", core);
|
||||
return FileVisitResult.CONTINUE;
|
||||
}
|
||||
};
|
||||
try {
|
||||
Files.walkFileTree(p, fv);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -211,7 +211,7 @@ public class GroupService implements INetworkDispatch {
|
||||
}
|
||||
}
|
||||
|
||||
public void handleGroupDisband(CreatureObject creature) {
|
||||
public void handleGroupDisband(CreatureObject creature, boolean destroy) {
|
||||
|
||||
if(creature.getGroupId() == 0)
|
||||
return;
|
||||
@@ -225,7 +225,7 @@ public class GroupService implements INetworkDispatch {
|
||||
|
||||
List<SWGObject> memberList = new ArrayList<SWGObject>(group.getMemberList());
|
||||
|
||||
if(group.getGroupLeader() != creature && group.getMemberList().size() > 2) {
|
||||
if(group.getGroupLeader() != creature || !destroy || memberList.size() > 2) {
|
||||
|
||||
group.removeMember(creature);
|
||||
creature.setInviteCounter(creature.getInviteCounter() + 1);
|
||||
@@ -245,6 +245,9 @@ public class GroupService implements INetworkDispatch {
|
||||
|
||||
removeGroupBuffs(creature);
|
||||
|
||||
if (group.getMemberList().size() == 0) // ensure that there are no empty groups just incase..
|
||||
core.objectService.destroyObject(group.getObjectID());
|
||||
|
||||
} else {
|
||||
|
||||
for(SWGObject member : memberList) {
|
||||
@@ -264,14 +267,11 @@ public class GroupService implements INetworkDispatch {
|
||||
removeGroupBuffs((CreatureObject) member);
|
||||
|
||||
}
|
||||
|
||||
core.objectService.destroyObject(group.getObjectID());
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public void handleGroupDisband(CreatureObject creature) {
|
||||
handleGroupDisband(creature, true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
/*******************************************************************************
|
||||
* Copyright (c) 2013 <Project SWG>
|
||||
*
|
||||
* 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 <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* 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 services.equipment;
|
||||
|
||||
import java.util.Vector;
|
||||
|
||||
import main.NGECore;
|
||||
|
||||
import org.python.core.Py;
|
||||
import org.python.core.PyObject;
|
||||
|
||||
import engine.resources.objects.SWGObject;
|
||||
import resources.objects.creature.CreatureObject;
|
||||
|
||||
public class BonusSetTemplate
|
||||
{
|
||||
private String name;
|
||||
private Vector<String> requiredWornTemplates;
|
||||
|
||||
public BonusSetTemplate(String name)
|
||||
{
|
||||
this.name = name;
|
||||
this.requiredWornTemplates = new Vector<String>();
|
||||
}
|
||||
|
||||
public void addRequiredTemplate(String template)
|
||||
{
|
||||
requiredWornTemplates.add(template);
|
||||
}
|
||||
|
||||
public String getName()
|
||||
{
|
||||
return this.name;
|
||||
}
|
||||
|
||||
public int getWornTemplateCount(CreatureObject creature)
|
||||
{
|
||||
int wornItems = 0;
|
||||
|
||||
for (SWGObject item : creature.getEquipmentList().get())
|
||||
{
|
||||
if(requiredWornTemplates.contains(item.getTemplate())) wornItems++;
|
||||
}
|
||||
|
||||
//System.out.println("[BonusSetTemplate] Worn items: " + wornItems);
|
||||
return wornItems;
|
||||
}
|
||||
|
||||
public void callScript(CreatureObject creature)
|
||||
{
|
||||
//System.out.println("[BonusSetTemplate] Calling script for: " + this.getName());
|
||||
|
||||
PyObject func = NGECore.getInstance().scriptService.getMethod("scripts/equipment/bonus_sets/", name, "handleChange");
|
||||
if(func != null) func.__call__(Py.java2py(NGECore.getInstance()), Py.java2py(creature), Py.java2py(this));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user