diff --git a/scripts/buffs/bh_power_sprint.py b/scripts/buffs/bh_power_sprint.py new file mode 100644 index 00000000..e7550d0d --- /dev/null +++ b/scripts/buffs/bh_power_sprint.py @@ -0,0 +1,16 @@ +import sys + +def setup(core, actor, buff): + return + +def add(core, actor, buff): + core.skillModService.addSkillMod(actor, 'movement', 6) + core.skillModService.addSkillMod(actor, 'movement_resist_snare', 100) + + return + +def remove(core, actor, buff): + core.skillModService.deductSkillMod(actor, 'movement', 6) + core.skillModService.deductSkillMod(actor, 'movement_resist_snare', 100) + + return \ No newline at end of file diff --git a/scripts/buffs/bh_shields.py b/scripts/buffs/bh_shields.py new file mode 100644 index 00000000..36115d7f --- /dev/null +++ b/scripts/buffs/bh_shields.py @@ -0,0 +1,12 @@ +import sys + +def setup(core, actor, buff): + return + +def add(core, actor, buff): + core.skillModService.addSkillMod(actor, 'combat_divide_damage_taken', 1) + return + +def remove(core, actor, buff): + core.skillModService.deductSkillMod(actor, 'combat_divide_damage_taken', 1) + return \ No newline at end of file diff --git a/scripts/buffs/bh_shields_charged.py b/scripts/buffs/bh_shields_charged.py new file mode 100644 index 00000000..d66644af --- /dev/null +++ b/scripts/buffs/bh_shields_charged.py @@ -0,0 +1,13 @@ +import sys + +def setup(core, actor, buff): + return + +def add(core, actor, buff): + core.skillModService.addSkillMod(actor, 'combat_multiply_damage_given', 1) + return + +def remove(core, actor, buff): + core.skillModService.deductSkillMod(actor, 'combat_multiply_damage_given', 1) + return + \ No newline at end of file diff --git a/scripts/commands/bh_armor_sprint_1.py b/scripts/commands/bh_armor_sprint_1.py index b7e33772..45376aa9 100644 --- a/scripts/commands/bh_armor_sprint_1.py +++ b/scripts/commands/bh_armor_sprint_1.py @@ -1,7 +1,7 @@ import sys def setup(core, actor, buff): - core.buffService.addBuffToCreature(actor, 'bh_armor_sprint_1') + core.buffService.addBuffToCreature(actor, 'bh_power_sprint_1') return def run(core, actor, target, commandString): diff --git a/scripts/commands/bh_shields_1.py b/scripts/commands/bh_shields_1.py new file mode 100644 index 00000000..41e93a6a --- /dev/null +++ b/scripts/commands/bh_shields_1.py @@ -0,0 +1,10 @@ +import sys + +def setup(core, actor, target, command): + return + +def run(core, actor, target, commandString): + core.buffService.addBuffToCreature(actor, 'bh_shields') + core.buffService.addBuffToCreature(actor, 'bh_shields_charged') + core.buffService.addBuffToCreature(actor, 'bh_shields_handler') + return \ No newline at end of file diff --git a/scripts/commands/combat/fs_drain_1.py b/scripts/commands/combat/fs_drain_1.py new file mode 100644 index 00000000..c7937d1e --- /dev/null +++ b/scripts/commands/combat/fs_drain_1.py @@ -0,0 +1,16 @@ +import sys + +def setup(core, actor, target, command): + + if actor.getSkillMod('expertise_fs_dm_armor_bypass'): + command.setBypassArmor(actor.getSkillModBase("expertise_fs_dm_armor_bypass")) + + return + +def run(core, actor, target, damage): + + if actor.getSkillMod('expertise_fs_imp_drain'): + damage *= (100 + float(actor.getSkillModBase('expertise_fs_imp_drain')))/100 + + core.combatService.doDrainHeal(actor, int(damage)) + return \ No newline at end of file diff --git a/scripts/commands/combat/fs_drain_2.py b/scripts/commands/combat/fs_drain_2.py new file mode 100644 index 00000000..c7937d1e --- /dev/null +++ b/scripts/commands/combat/fs_drain_2.py @@ -0,0 +1,16 @@ +import sys + +def setup(core, actor, target, command): + + if actor.getSkillMod('expertise_fs_dm_armor_bypass'): + command.setBypassArmor(actor.getSkillModBase("expertise_fs_dm_armor_bypass")) + + return + +def run(core, actor, target, damage): + + if actor.getSkillMod('expertise_fs_imp_drain'): + damage *= (100 + float(actor.getSkillModBase('expertise_fs_imp_drain')))/100 + + core.combatService.doDrainHeal(actor, int(damage)) + return \ No newline at end of file diff --git a/scripts/commands/combat/fs_drain_3.py b/scripts/commands/combat/fs_drain_3.py new file mode 100644 index 00000000..c7937d1e --- /dev/null +++ b/scripts/commands/combat/fs_drain_3.py @@ -0,0 +1,16 @@ +import sys + +def setup(core, actor, target, command): + + if actor.getSkillMod('expertise_fs_dm_armor_bypass'): + command.setBypassArmor(actor.getSkillModBase("expertise_fs_dm_armor_bypass")) + + return + +def run(core, actor, target, damage): + + if actor.getSkillMod('expertise_fs_imp_drain'): + damage *= (100 + float(actor.getSkillModBase('expertise_fs_imp_drain')))/100 + + core.combatService.doDrainHeal(actor, int(damage)) + return \ No newline at end of file diff --git a/scripts/commands/combat/fs_drain_4.py b/scripts/commands/combat/fs_drain_4.py new file mode 100644 index 00000000..c7937d1e --- /dev/null +++ b/scripts/commands/combat/fs_drain_4.py @@ -0,0 +1,16 @@ +import sys + +def setup(core, actor, target, command): + + if actor.getSkillMod('expertise_fs_dm_armor_bypass'): + command.setBypassArmor(actor.getSkillModBase("expertise_fs_dm_armor_bypass")) + + return + +def run(core, actor, target, damage): + + if actor.getSkillMod('expertise_fs_imp_drain'): + damage *= (100 + float(actor.getSkillModBase('expertise_fs_imp_drain')))/100 + + core.combatService.doDrainHeal(actor, int(damage)) + return \ No newline at end of file diff --git a/scripts/commands/combat/fs_drain_5.py b/scripts/commands/combat/fs_drain_5.py new file mode 100644 index 00000000..c7937d1e --- /dev/null +++ b/scripts/commands/combat/fs_drain_5.py @@ -0,0 +1,16 @@ +import sys + +def setup(core, actor, target, command): + + if actor.getSkillMod('expertise_fs_dm_armor_bypass'): + command.setBypassArmor(actor.getSkillModBase("expertise_fs_dm_armor_bypass")) + + return + +def run(core, actor, target, damage): + + if actor.getSkillMod('expertise_fs_imp_drain'): + damage *= (100 + float(actor.getSkillModBase('expertise_fs_imp_drain')))/100 + + core.combatService.doDrainHeal(actor, int(damage)) + return \ No newline at end of file diff --git a/scripts/expertise/expertise_co_pinpoint_shielding_3.py b/scripts/expertise/expertise_co_pinpoint_shielding_3.py index 4f8d9921..0c5c22dd 100644 --- a/scripts/expertise/expertise_co_pinpoint_shielding_3.py +++ b/scripts/expertise/expertise_co_pinpoint_shielding_3.py @@ -28,7 +28,7 @@ def removeExpertisePoint(core, actor): if not player.getProfession() == 'commando_1a': return - actor.removeSkill('expertise_co_pinpoint_shielding_3) + actor.removeSkill('expertise_co_pinpoint_shielding_3') actor.removeSkillMod('expertise_innate_protection_all', 250) diff --git a/scripts/skillMods/expertise_focus.py b/scripts/skillMods/expertise_focus.py index 0d10255e..c73060b3 100644 --- a/scripts/skillMods/expertise_focus.py +++ b/scripts/skillMods/expertise_focus.py @@ -2,14 +2,14 @@ import sys def add(core, actor, name, base): actor.addSkillMod(name, base) - core.skillModService.addSkillMod(actor, 'stamina_modified', (actor.getSkillModBase('expertise_stance_constitution'))) + core.skillModService.addSkillMod(actor, 'stamina_modified', (actor.getSkillModBase('expertise_focus_stamina'))) core.skillModService.addSkillMod(actor, 'display_only_critical', 100 * (actor.getSkillModBase('expertise_focus_critical_buff_line'))) core.skillModService.addSkillMod(actor, 'expertise_damage_melee', 1 * (actor.getSkillModBase('expertise_focus_damage_increase'))) return def deduct(core, actor, name, base): actor.deductSkillMod(name, base) - core.skillModService.deductSkillMod(actor, 'stamina_modified', (actor.getSkillModBase('expertise_stance_constitution'))) + core.skillModService.deductSkillMod(actor, 'stamina_modified', (actor.getSkillModBase('expertise_focus_stamina'))) core.skillModService.deductSkillMod(actor, 'display_only_critical', 100 * (actor.getSkillModBase('expertise_focus_critical_buff_line'))) core.skillModService.deductSkillMod(actor, 'expertise_damage_melee', 1 * (actor.getSkillModBase('expertise_focus_damage_increase'))) return diff --git a/scripts/skillMods/expertise_focus_damage_increase.py b/scripts/skillMods/expertise_focus_damage_increase.py new file mode 100644 index 00000000..ee7769e2 --- /dev/null +++ b/scripts/skillMods/expertise_focus_damage_increase.py @@ -0,0 +1,10 @@ +import sys + +def add(core, actor, name, base): + actor.addSkillMod(name, base) + return + +def deduct(core, actor, name, base): + actor.deductSkillMod(name, base) + return + \ No newline at end of file diff --git a/src/services/DevService.java b/src/services/DevService.java index f9689348..e236decd 100644 --- a/src/services/DevService.java +++ b/src/services/DevService.java @@ -93,6 +93,7 @@ public class DevService implements INetworkDispatch { break; case 4: // [Items] Misc Items suiOptions.put((long) 40, "Unity Ring"); + suiOptions.put((long) 41, "Tusken rucksack"); break; } @@ -276,7 +277,7 @@ public class DevService implements INetworkDispatch { case 32: // Ranged Weapons SWGObject rifle1 = core.objectService.createObject("object/weapon/ranged/rifle/shared_rifle_e11.iff", planet); rifle1.setIntAttribute("required_combat_level", 90); - rifle1.setFloatAttribute("cat_wpn_damage.wpn_attack_speed", 1); + rifle1.setFloatAttribute("cat_wpn_damage.wpn_attack_speed", 0.8); rifle1.setStringAttribute("class_required", "None"); rifle1.setStringAttribute("cat_wpn_damage.wpn_damage_type", "Energy"); rifle1.setStringAttribute("cat_wpn_damage.damage", "800-1250"); @@ -285,7 +286,7 @@ public class DevService implements INetworkDispatch { SWGObject pistol = core.objectService.createObject("object/weapon/ranged/pistol/shared_pistol_cdef.iff", planet); pistol.setIntAttribute("required_combat_level", 90); - pistol.setFloatAttribute("cat_wpn_damage.wpn_attack_speed", 1); + pistol.setFloatAttribute("cat_wpn_damage.wpn_attack_speed", 0.4); pistol.setStringAttribute("class_required", "None"); pistol.setStringAttribute("cat_wpn_damage.wpn_damage_type", "Energy"); pistol.setStringAttribute("cat_wpn_damage.damage", "400-559"); @@ -296,6 +297,17 @@ public class DevService implements INetworkDispatch { TangibleObject ring = (TangibleObject) core.objectService.createObject("object/tangible/wearables/ring/shared_ring_s01.iff", planet); ring.setCustomName("Unity Ring"); inventory.add(ring); + case 41: + TangibleObject backpack = (TangibleObject) core.objectService.createObject("object/tangible/wearables/backpack/shared_backpack_krayt_skull.iff", planet); + backpack.setIntAttribute("cat_stat_mod_bonus.@stat_n:agility_modified", 25) + backpack.setIntAttribute("cat_stat_mod_bonus.@stat_n:constitution_modified", 30) + backpack.setIntAttribute("cat_stat_mod_bonus.@stat_n:luck_modified", 25) + backpack.setIntAttribute("cat_stat_mod_bonus.@stat_n:precision_modified", 35) + backpack.setIntAttribute("cat_stat_mod_bonus.@stat_n:stamina_modified", 30) + backpack.setIntAttribute("cat_stat_mod_bonus.@stat_n:strength_modified", 35) + + inventory.add(backpack); + return; } } }); diff --git a/src/services/combat/CombatCommands.java b/src/services/combat/CombatCommands.java index af59b03f..7a66c472 100644 --- a/src/services/combat/CombatCommands.java +++ b/src/services/combat/CombatCommands.java @@ -133,6 +133,7 @@ public class CombatCommands { core.commandService.registerCombatCommand("bh_sh_1"); core.commandService.registerCombatCommand("bh_sh_2"); core.commandService.registerCombatCommand("bh_sh_3"); + core.commandService.registerCommand("bh_shields_1"); // Jedi