include ai.ai_combat; include library.ai_lib; include library.bounty_hunter; include library.armor; include library.beast_lib; include library.buff; include library.callable; include library.chat; include library.colors; include library.combat; include library.corpse; include library.craftinglib; include library.create; include library.dot; include library.factions; include library.faction_perk; include library.grenade; include library.groundquests; include library.group; include library.healing; include library.innate; include library.instance; include library.locations; include library.movement; include library.performance; include library.pet_lib; include library.prose; include library.smuggler; include library.space_dungeon; include library.space_utils; include library.squad_leader; include library.stealth; include library.sui; include library.trial; include library.utils; include library.vehicle; include library.weapons; include library.heavyweapons; include systems.missions.dynamic.bounty_probe_droid; include java.lang.Math; inherits systems.combat.combat_base; string DEFAULT_EGG = "object/tangible/gravestone/gravestone05.tpf"; const string COMBAT_TABLE = "datatables/combat/combat_data.iff"; const float DAMAGE_STRENGTH_CUTOFF = .5f; //*********************************************** TRIGGERS ****************************************************** trigger OnChangedPosture(int oldPosture, int newPosture) { if (newPosture == POSTURE_INCAPACITATED || newPosture == POSTURE_DEAD || newPosture == POSTURE_KNOCKED_DOWN) return SCRIPT_CONTINUE; setState(self, STATE_IMMOBILIZED, false); stealth.OnPostureChanged(self, oldPosture, newPosture); return SCRIPT_CONTINUE; } trigger OnEnteredCombat() { combat.cacheCombatData(self); return SCRIPT_CONTINUE; } trigger OnExitedCombat() { combat.clearCachedCombatData(self); return SCRIPT_CONTINUE; } //***************************************** COMMAND HANDLERS AND ASSOCIATED MESSAGE HANDLERS ********************* commandHandler firePistolLauncherTargeting() { if(!combatStandardAction("firePistolLauncherTargeting", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fireAcidBeam() { if(!combatStandardAction("fireAcidBeam", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fireLavaCannon() { if(!combatStandardAction("fireLavaCannon", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fireLavaCannonGeneric() { if(!combatStandardAction("fireLavaCannonGeneric", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fireFlameThrowerLight() { if(!combatStandardAction("fireFlameThrowerLight", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler firePlasmaFlameThrower() { if(!combatStandardAction("firePlasmaFlameThrower", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fireIceGun() { if(!combatStandardAction("fireIceGun", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fireRocketLauncher() { if(!combatStandardAction("fireRocketLauncher", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fireRocketLauncherGeneric() { if(!combatStandardAction("fireRocketLauncherGeneric", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fireAcidRifle() { if(!combatStandardAction("fireAcidRifle", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fireStunCannon() { if(!combatStandardAction("fireStunCannon", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fireParticleBeam() { if(!combatStandardAction("fireParticleBeam", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fireVoidRocketLauncher() { if(!combatStandardAction("fireVoidRocketLauncher", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fireLightningBeam() { if(!combatStandardAction("fireLightningBeam", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fireAcidBeamAvatar() { if(!combatStandardAction("fireAcidBeamAvatar", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fireRepublicFlameThrower() { if(!combatStandardAction("fireRepublicFlameThrower", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fireRepublicFlameThrowerGeneric() { if(!combatStandardAction("fireRepublicFlameThrowerGeneric", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler firePistolLauncher() { if(!combatStandardAction("firePistolLauncher", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fireElitePistolLauncher() { if(!combatStandardAction("fireElitePistolLauncher", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler firePistolLauncherGeneric() { if(!combatStandardAction("firePistolLauncherGeneric", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler firePistolLauncherMedium() { if(!combatStandardAction("firePistolLauncherMedium", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fireCrusaderHeavyRifle() { if(!combatStandardAction("fireCrusaderHeavyRifle", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler firePvpHeavy() { if(!combatStandardAction("firePvpHeavy", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fireHeavyShotgun() { if(!combatStandardAction("fireHeavyShotgun", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler banner_buff_commando() { if(!combatStandardAction("banner_buff_commando", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler stand() { if (ai_lib.isAiDead(self)) return SCRIPT_CONTINUE; if(!isIncapacitated(self) && !isDead(self)) setPosture(self, POSTURE_UPRIGHT); return SCRIPT_CONTINUE; } commandHandler standFail() { if(space_utils.isInStation(self)) { LOG("space", "Leaving station!"); queueCommand(self, ##"leaveStation", null,"", COMMAND_PRIORITY_FRONT); return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler kneel() { if(!isIncapacitated(self) && !isDead(self)) setPosture(self, POSTURE_CROUCHED); return SCRIPT_CONTINUE; } commandHandler kneelFail() { return SCRIPT_CONTINUE; } commandHandler prone() { if(!isIncapacitated(self) && !isDead(self)) setPosture(self, POSTURE_PRONE); return SCRIPT_CONTINUE; } commandHandler proneFail() { return SCRIPT_CONTINUE; } /* clicky v2 */ commandHandler veteranPlayerBuff() { if (!combatStandardAction("veteranPlayerBuff", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler forceRun() { if (!combatStandardAction("forceRun", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler bh_detect_camouflage_1() { if(!stealth.canDetectCamouflage(self) || !combatStandardAction("bh_detect_camouflage_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float detectSkill = getEnhancedSkillStatisticModifier(self, "detect_hidden"); float distance = stealth.BASE_DETECT_CAMOUFLAGE_DISTANCE + (detectSkill / 20); float detectChance = 50.0f; stealth.detectCamouflage(self, true, true, distance, detectChance); return SCRIPT_CONTINUE; } commandHandler bh_ae_dm_1() { if (!combatStandardAction("bh_ae_dm_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler bh_ae_dm_2() { if (!combatStandardAction("bh_ae_dm_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler bh_del_cc_1() { if (!combatStandardAction("bh_del_cc_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDireAbility(self, target, 1); return SCRIPT_CONTINUE; } commandHandler bh_del_cc_2() { if (!combatStandardAction("bh_del_cc_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDireAbility(self, target, 1); return SCRIPT_CONTINUE; } commandHandler bh_del_cc_3() { if (!combatStandardAction("bh_del_cc_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDireAbility(self, target, 1); return SCRIPT_CONTINUE; } commandHandler bh_del_dm_cc_dot_1() { if (!combatStandardAction("bh_del_dm_cc_dot_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDireAbility(self, target, 1); return SCRIPT_CONTINUE; } commandHandler bh_del_dm_cc_dot_2() { if (!combatStandardAction("bh_del_dm_cc_dot_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDireAbility(self, target, 1); return SCRIPT_CONTINUE; } commandHandler bh_del_dm_cc_dot_3() { if (!combatStandardAction("bh_del_dm_cc_dot_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDireAbility(self, target, 1); return SCRIPT_CONTINUE; } commandHandler bh_dm_1() { if (!combatStandardAction("bh_dm_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("bh_dm_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler bh_dm_2() { if (!combatStandardAction("bh_dm_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("bh_dm_2"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler bh_dm_3() { if (!combatStandardAction("bh_dm_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("bh_dm_3"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler bh_dm_4() { if (!combatStandardAction("bh_dm_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("bh_dm_4"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler bh_dm_5() { if (!combatStandardAction("bh_dm_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("bh_dm_5"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler bh_dm_6() { if (!combatStandardAction("bh_dm_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("bh_dm_6"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler bh_dm_7() { if (!combatStandardAction("bh_dm_7", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("bh_dm_7"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler bh_dm_8() { if (!combatStandardAction("bh_dm_8", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("bh_dm_8"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } // Granted by a BH Set Bonus commandHandler bh_flawless_strike() { if (!combatStandardAction("bh_flawless_strike", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("bh_flawless_strike"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_bh_flawless_strike"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); /* // Check for bonus buff. Based 25% chance + skill mod. int bonusChance = getEnhancedSkillStatisticModifierUncapped(self, "bh_flawless_bead") + 25 + rand(1, 99); if(bonusChance > 99) { buff.applyBuff(self, self, "bh_flawless_strike"); } */ return SCRIPT_CONTINUE; } commandHandler set_bonus_bh_utility_a_1() { if (!combatStandardAction("set_bonus_bh_utility_a_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler set_bonus_bh_utility_a_2() { if (!combatStandardAction("set_bonus_bh_utility_a_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler set_bonus_bh_utility_a_3() { if (!combatStandardAction("set_bonus_bh_utility_a_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } void doDireAbility(obj_id attacker, obj_id defender, int direType) { int bonusChance = 0; switch(direType) { case 0: //make sure they dont have any dire snare buff int direSnare = buff.getBuffOnTargetFromGroup(defender, "dire_snare"); if(direSnare !=0) return; bonusChance = getEnhancedSkillStatisticModifierUncapped(attacker, "bh_dire_snare"); break; case 1: bonusChance = getEnhancedSkillStatisticModifierUncapped(attacker, "bh_dire_root"); break; default: return; } //roll the dice if(bonusChance > 0) { int roll = rand(1, 99); int total = roll+bonusChance; if(total > 99) { //Im a snare if(direType == 0) { buff.applyBuff(defender, attacker, "bh_dire_snare_1"); showFlyText(defender, new string_id("set_bonus", "dire_snare_fly"), 2, colors.BLACK); } else { queueCommand(attacker, ##"bh_dire_root_area_1", defender, "", COMMAND_PRIORITY_IMMEDIATE); showFlyTextPrivate(attacker, attacker, new string_id("set_bonus", "dire_trap_fly"), 2, colors.LEMONCHIFFON); } } } return; } /* boolean crippleFastAttack(obj_id attacker) { boolean fastAttackOrWhat = false; int bonusChance = getEnhancedSkillStatisticModifierUncapped(attacker, "fast_attack_line_dm_cc"); if(bonusChance > 0) { int roll = rand(1, 99); int total = roll+bonusChance; if(roll+bonusChance > 99) { fastAttackOrWhat = true; showFlyText(attacker, new string_id("set_bonus", "fast_attack_fly"), 2, colors.LEMONCHIFFON); } } return fastAttackOrWhat; } */ boolean successfulFastAttack(obj_id attacker, string specialLine) { return successfulFastAttack(attacker, specialLine, "fast_attack_fly"); } boolean successfulFastAttack(obj_id attacker, string specialLine, string customFlyReference) { boolean fastAttackOrWhat = false; int bonusChance = getEnhancedSkillStatisticModifierUncapped(attacker, "fast_attack_line_" + specialLine); if(bonusChance > 0) { int roll = rand(1, 99); int total = roll+bonusChance; if(total > 99) { fastAttackOrWhat = true; showFlyText(attacker, new string_id("set_bonus", customFlyReference), 2, colors.LEMONCHIFFON); prose_package pp = new prose_package(); pp = prose.setStringId(pp, new string_id("set_bonus", customFlyReference + "_cbspam")); pp = prose.setTT(pp, attacker); sendCombatSpamMessageProse(attacker, pp, COMBAT_RESULT_GENERIC); } } return fastAttackOrWhat; } commandHandler bh_dm_cc_1() { if (!combatStandardAction("bh_dm_cc_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDireAbility(self, target, 0); if(successfulFastAttack(self, "dm_cc")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler bh_dm_cc_2() { if (!combatStandardAction("bh_dm_cc_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDireAbility(self, target, 0); if(successfulFastAttack(self, "dm_cc")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler bh_dm_cc_3() { if (!combatStandardAction("bh_dm_cc_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDireAbility(self, target, 0); if(successfulFastAttack(self, "dm_cc")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler bh_dm_crit_1() { if (!combatStandardAction("bh_dm_crit_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("bh_dm_crit_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_dm_crit") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler bh_dm_crit_2() { if (!combatStandardAction("bh_dm_crit_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("bh_dm_crit_2"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_dm_crit") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler bh_sh_0() { if(!healing.isDamaged(self)) { sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("bh_sh_0", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler bh_sh_1() { if(!healing.isDamaged(self)) { sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("bh_sh_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler bh_sh_2() { if(!healing.isDamaged(self)) { sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("bh_sh_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler bh_sh_3() { if(!healing.isDamaged(self)) { sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("bh_sh_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_kill_trap_1() { if(!stealth.canDisarmTrap(self, target)) { return SCRIPT_OVERRIDE; } stealth.disarmTrap(self, target); return SCRIPT_CONTINUE; } commandHandler co_ae_dm_1() { if (!combatStandardAction("co_ae_dm_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_ae_dm_2() { if (!combatStandardAction("co_ae_dm_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_ae_dm_3() { if (!combatStandardAction("co_ae_dm_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_del_ae_cc_1_1() { if (!combatStandardAction("co_del_ae_cc_1_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "co_grenade")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler co_del_ae_cc_1_2() { if (!combatStandardAction("co_del_ae_cc_1_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "co_grenade")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler co_del_ae_cc_1_3() { if (!combatStandardAction("co_del_ae_cc_1_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "co_grenade")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } messageHandler sm_feeling_lucky_recourse() { if (!buff.hasBuff(self, "sm_feeling_lucky_recourse")) buff.applyBuff(self, self, "sm_feeling_lucky_recourse"); return SCRIPT_CONTINUE; } messageHandler sm_lucky_break_recourse() { if (!buff.hasBuff(self, "sm_lucky_break_recourse")) buff.applyBuff(self, self, "sm_lucky_break_recourse"); return SCRIPT_CONTINUE; } messageHandler sm_double_fire_recourse() { if (!buff.hasBuff(self, "sm_double_fire_recourse")) buff.applyBuff(self, self, "sm_double_fire_recourse"); return SCRIPT_CONTINUE; } messageHandler sm_false_hope_recourse() { if (!buff.hasBuff(self, "sm_false_hope_recourse")) buff.applyBuff(self, self, "sm_false_hope_recourse"); return SCRIPT_CONTINUE; } messageHandler sm_break_the_deal_recourse() { if (!buff.hasBuff(self, "sm_break_the_deal_recourse")) buff.applyBuff(self, self, "sm_break_the_deal_recourse"); return SCRIPT_CONTINUE; } messageHandler sm_melee_stun_recourse() { if (!buff.hasBuff(self, "sm_melee_stun_recourse")) buff.applyBuff(self, self, "sm_melee_stun_recourse"); return SCRIPT_CONTINUE; } messageHandler maladyRecourse() { if (!buff.hasBuff(self, "insidiousMalady_1")) buff.applyBuff(self, self, "insidiousMalady_1"); return SCRIPT_CONTINUE; } messageHandler maladyRecourse_1() { if (!buff.hasBuff(self, "insidiousMalady_2")) buff.applyBuff(self, self, "insidiousMalady_2"); return SCRIPT_CONTINUE; } messageHandler maladyRecourse_2() { if (!buff.hasBuff(self, "insidiousMalady_3")) buff.applyBuff(self, self, "insidiousMalady_3"); return SCRIPT_CONTINUE; } messageHandler maladyRecourse_3() { if (!buff.hasBuff(self, "insidiousMalady_4")) buff.applyBuff(self, self, "insidiousMalady_4"); return SCRIPT_CONTINUE; } commandHandler co_del_ae_cc_2_1() { if (!combatStandardAction("co_del_ae_cc_2_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "co_grenade")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler co_del_ae_cc_2_2() { if (!combatStandardAction("co_del_ae_cc_2_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "co_grenade")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler co_del_ae_dm_1() { if (!combatStandardAction("co_del_ae_dm_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "co_grenade")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler co_del_ae_dm_2() { if (!combatStandardAction("co_del_ae_dm_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "co_grenade")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler co_del_ae_dm_3() { if (!combatStandardAction("co_del_ae_dm_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "co_grenade")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler co_dm_1() { if (!combatStandardAction("co_dm_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_dm_2() { if (!combatStandardAction("co_dm_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_dm_3() { if (!combatStandardAction("co_dm_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_dm_4() { if (!combatStandardAction("co_dm_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_dm_5() { if (!combatStandardAction("co_dm_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_dm_6() { if (!combatStandardAction("co_dm_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_dm_7() { if (!combatStandardAction("co_dm_7", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_dm_8() { if (!combatStandardAction("co_dm_8", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_fld_dm_1() { if (!combatStandardAction("co_fld_dm_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_fld_dm_2() { if (!combatStandardAction("co_fld_dm_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_shock_tracer_1() { if (!combatStandardAction("co_shock_tracer_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_shock_tracer_2() { if (!combatStandardAction("co_shock_tracer_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_shock_tracer_3() { if (!combatStandardAction("co_shock_tracer_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_shock_tracer_4() { if (!combatStandardAction("co_shock_tracer_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_shock_grenade_1() { if (!combatStandardAction("co_shock_grenade_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_shock_grenade_2() { if (!combatStandardAction("co_shock_grenade_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_shock_grenade_3() { if (!combatStandardAction("co_shock_grenade_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_shock_grenade_4() { if (!combatStandardAction("co_shock_grenade_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_enrage_1() { if(buff.hasBuff(self, "cloning_sickness") ) { sendSystemMessage(self, new string_id("spam", "not_well_enough") ); return SCRIPT_OVERRIDE; } if (!combatStandardAction("co_enrage_1", self, target, params, "", "") || !buff.hasBuff(self, "set_bonus_commando_utility_a_3")) { return SCRIPT_OVERRIDE; } int healthCost = (int)dataTableGetFloat(COMBAT_TABLE, "co_enrage_1", "healthCost"); int currentHealth = getHealth(self); int modifiedHealth = currentHealth - healthCost; attrib_mod[] healthMods = getHealthModifiers(self); int healthModsValue = 0; for(int i = 0; i < healthMods.length; i++) { healthModsValue += healthMods[i].getValue(); } if(healthModsValue < 0) { sendSystemMessage(self, new string_id("spam", "not_well_enough") ); return SCRIPT_OVERRIDE; } if(modifiedHealth < 1) { showFlyTextPrivate(self, self, new string_id("spam", "low_health"), 1.0f, colors.RED); return SCRIPT_OVERRIDE; } setHealth(self, modifiedHealth); incrementKillMeter(self, 10); playClientEffectObj(self, "clienteffect/medic_reckless_stimulation.cef", self, "root"); prose_package pp = new prose_package(); pp = prose.setStringId(pp, new string_id("set_bonus", "enraged_cmb_spam")); pp = prose.setTT(pp, self); sendCombatSpamMessageProse(self, pp, COMBAT_RESULT_GENERIC); return SCRIPT_CONTINUE; } commandHandler co_stand_fast() { if (!combatStandardAction("co_stand_fast", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("co_stand_fast"); LOG ("stand_fast", "baseCooldownTime is " + baseCooldownTime); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_co_stand_fast"); LOG ("stand_fast", "cooldownTimeMod is " + cooldownTimeMod); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } messageHandler eggDetonated() { utils.removeScriptVar(self, "objEgg"); return SCRIPT_CONTINUE; } boolean hasEgg(obj_id player) { obj_id egg = utils.getObjIdScriptVar(player, "objEgg"); if(isValidId(egg) && utils.hasScriptVar(egg, "objOwner")) return true; else return false; } boolean detonateEgg(obj_id self, boolean eggCreated) { // Detonate the egg. if(eggCreated && hasEgg(self)) { dictionary particleParams = new dictionary(); dictionary attackParams = new dictionary(); obj_id objEgg = utils.getObjIdScriptVar(self, "objEgg"); particleParams = utils.getDictionaryScriptVar(objEgg, "handleDelayedParticle"); attackParams = utils.getDictionaryScriptVar(objEgg, "handleDelayedAttack"); messageTo(objEgg, "handleDelayedParticle", particleParams, 0, false); messageTo(objEgg, "handleDelayedAttack", attackParams, 0, false); utils.removeScriptVar(self, "objEgg"); return true; } return false; } commandHandler co_remote_detonator_1() { boolean eggCreated = hasEgg(self); if(!eggCreated && !combatStandardAction("co_remote_detonator_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } // First time the egg is created? Then reset the cooldown. if(!eggCreated && hasEgg(self)) { return SCRIPT_OVERRIDE; } if(!detonateEgg(self, eggCreated)) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_remote_detonator_2() { boolean eggCreated = hasEgg(self); if(!eggCreated && !combatStandardAction("co_remote_detonator_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } // First time the egg is created? Then reset the cooldown. if(!eggCreated && hasEgg(self)) { return SCRIPT_OVERRIDE; } if(!detonateEgg(self, eggCreated)) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_remote_detonator_3() { boolean eggCreated = hasEgg(self); if(!eggCreated && !combatStandardAction("co_remote_detonator_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } // First time the egg is created? Then reset the cooldown. if(!eggCreated && hasEgg(self)) { return SCRIPT_OVERRIDE; } if(!detonateEgg(self, eggCreated)) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_remote_detonator_4() { boolean eggCreated = hasEgg(self); if(!eggCreated && !combatStandardAction("co_remote_detonator_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } // First time the egg is created? Then reset the cooldown. if(!eggCreated && hasEgg(self)) { return SCRIPT_OVERRIDE; } if(!detonateEgg(self, eggCreated)) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_remote_detonator_5() { boolean eggCreated = hasEgg(self); if(!eggCreated && !combatStandardAction("co_remote_detonator_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } // First time the egg is created? Then reset the cooldown. if(!eggCreated && hasEgg(self)) { return SCRIPT_OVERRIDE; } if(!detonateEgg(self, eggCreated)) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_sh_0() { if(!healing.isDamaged(self)) { sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("co_sh_0", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_sh_1() { if(!healing.isDamaged(self)) { sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("co_sh_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_sh_2() { if(!healing.isDamaged(self)) { sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("co_sh_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_sh_3() { if(!healing.isDamaged(self)) { sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("co_sh_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_stim_armor() { if (!combatStandardAction("co_stim_armor", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler kill_meter_co_it_burns_proc() { if (!combatStandardAction("kill_meter_co_it_burns_proc", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler kill_meter_co_armor_splash_proc() { if (!combatStandardAction("kill_meter_co_armor_splash_proc", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler kill_meter_co_youll_regret_that_reac() { if (!combatStandardAction("kill_meter_co_youll_regret_that_reac", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler expertise_co_burst_fire_proc() { if (!combatStandardAction("expertise_co_burst_fire_proc", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_position_secured() { if (buff.toggleStance(self, "co_position_secured")) return SCRIPT_OVERRIDE; if (!combatStandardAction("co_position_secured", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } vehicle.storeAllVehicles(self); showFlyText(self, new string_id("spam", "co_position_secured"), 2, colors.LEMONCHIFFON); return SCRIPT_CONTINUE; } commandHandler co_suppressing_fire() { if (!combatStandardAction("co_suppressing_fire", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_riddle_armor() { if (!combatStandardAction("co_riddle_armor", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("co_riddle_armor"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_co_riddle_armor"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler co_armor_cracker() { if (!combatStandardAction("co_armor_cracker", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("co_armor_cracker"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_co_riddle_armor"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler ofAggroChannel() { if(!group.inSameGroup(self, target) || target == self) return SCRIPT_OVERRIDE; if (!combatStandardAction("of_aggro_channel", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_mirror_armor() { if (!combatStandardAction("co_mirror_armor", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } combat.mirrorArmor(self); return SCRIPT_CONTINUE; } commandHandler en_dm_1() { if (!combatStandardAction("en_dm_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler en_dm_2() { if (!combatStandardAction("en_dm_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler en_dm_3() { if (!combatStandardAction("en_dm_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler en_dm_4() { if (!combatStandardAction("en_dm_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler en_dm_5() { if (!combatStandardAction("en_dm_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler en_dm_6() { if (!combatStandardAction("en_dm_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler en_dm_7() { if (!combatStandardAction("en_dm_7", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler en_dm_8() { if (!combatStandardAction("en_dm_8", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler en_sh_1() { if(!healing.isDamaged(self)) { sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("en_sh_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler en_sh_2() { if(!healing.isDamaged(self)) { sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("en_sh_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler en_sh_3() { if(!healing.isDamaged(self)) { sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("en_sh_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler bh_conceal_1() { if(!combatStandardAction("bh_conceal_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_conceal_device_1() { if(!combatStandardAction("co_conceal_device_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sp_neutralize_device_1() { if(!stealth.canDisarmTrap(self, target)) { return SCRIPT_OVERRIDE; } stealth.disarmTrap(self, target); return SCRIPT_CONTINUE; } commandHandler sp_hide_device_1() { if(!combatStandardAction("sp_hide_device_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fs_saber_reflect_buff() { if(!buff.isInStance(self)) { sendSystemMessage(self, new string_id("spam", "fs_command_no_stance")); return SCRIPT_OVERRIDE; } if(!combatStandardAction("fs_saber_reflect_buff", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } // This is a proc and is server activated, not player activated. The buff must be on to be usable. commandHandler fs_saber_reflect() { if(!buff.isInStance(self) || !buff.hasBuff(self, "fs_saber_reflect")) { return SCRIPT_OVERRIDE; } if(!combatStandardAction("fs_saber_reflect", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } showFlyTextPrivate(self, self, new string_id("combat_effects", "saber_reflect"), 1.5f, colors.ORANGERED); return SCRIPT_CONTINUE; } commandHandler saberBlock() { if (!combatStandardAction("saberBlock", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fs_sense_danger_1() { if(!stealth.canDetectCamouflage(self) || !combatStandardAction("fs_sense_danger_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float detectSkill = getEnhancedSkillStatisticModifier(self, "detect_hidden"); float distance = stealth.BASE_DETECT_CAMOUFLAGE_DISTANCE + (detectSkill / 20); float detectChance = 50.0f; stealth.detectCamouflage(self, true, true, distance, detectChance); return SCRIPT_CONTINUE; } commandHandler fs_forsake_fear() { if(!buff.isInStance(self)) { sendSystemMessage(self, new string_id("spam", "fs_command_no_stance")); return SCRIPT_OVERRIDE; } if(!combatStandardAction("fs_forsake_fear", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } string_id promptString = new string_id("healing", "fs_forsake_fear_channel"); int flags = sui.CD_EVENT_INCAPACITATE; int pid = sui.smartCountdownTimerSUI(self, self, "channelForsakeFearCountdown", promptString, 0, 10, "channelForsakeFearCountdownHandler", -1, flags); utils.setScriptVar(self, "buff_handler.ForsakeFearSUIPID", pid); dictionary parms = new dictionary(); parms.put("player", self); parms.put("buffName", "fs_forsake_fear"); messageTo(self, "checkChannelForsakeFear", parms, 1, false); return SCRIPT_CONTINUE; } commandHandler fs_force_spark() { if (!combatStandardAction("fs_force_spark", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fs_ae_dm_cc_1() { if(!buff.isInFocus(self)) { sendSystemMessage(self, new string_id("spam", "fs_command_no_focus")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_ae_dm_cc_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "fs_powers", "fury_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("fs_ae_dm_cc_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_ae_dm_cc") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler fs_ae_dm_cc_2() { if(!buff.isInFocus(self)) { sendSystemMessage(self, new string_id("spam", "fs_command_no_focus")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_ae_dm_cc_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "fs_powers", "fury_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("fs_ae_dm_cc_2"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_ae_dm_cc") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler fs_ae_dm_cc_3() { if(!buff.isInFocus(self)) { sendSystemMessage(self, new string_id("spam", "fs_command_no_focus")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_ae_dm_cc_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "fs_powers", "fury_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("fs_ae_dm_cc_3"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_ae_dm_cc") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler fs_ae_dm_cc_4() { if(!buff.isInFocus(self)) { sendSystemMessage(self, new string_id("spam", "fs_command_no_focus")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_ae_dm_cc_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "fs_powers", "fury_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("fs_ae_dm_cc_4"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_ae_dm_cc") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler fs_ae_dm_cc_5() { if(!buff.isInFocus(self)) { sendSystemMessage(self, new string_id("spam", "fs_command_no_focus")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_ae_dm_cc_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "fs_powers", "fury_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("fs_ae_dm_cc_5"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_ae_dm_cc") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler fs_ae_dm_cc_6() { if(!buff.isInFocus(self)) { sendSystemMessage(self, new string_id("spam", "fs_command_no_focus")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_ae_dm_cc_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "fs_powers", "fury_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("fs_ae_dm_cc_6"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_ae_dm_cc") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler fs_maelstrom_1() { if(!buff.isInFocus(self)) { sendSystemMessage(self, new string_id("spam", "fs_command_no_focus")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_maelstrom_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "fs_powers", "fury_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler fs_maelstrom_2() { if(!buff.isInFocus(self)) { sendSystemMessage(self, new string_id("spam", "fs_command_no_focus")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_maelstrom_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "fs_powers", "fury_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler fs_maelstrom_3() { if(!buff.isInFocus(self)) { sendSystemMessage(self, new string_id("spam", "fs_command_no_focus")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_maelstrom_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "fs_powers", "fury_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler fs_maelstrom_4() { if(!buff.isInFocus(self)) { sendSystemMessage(self, new string_id("spam", "fs_command_no_focus")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_maelstrom_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "fs_powers", "fury_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler fs_maelstrom_5() { if(!buff.isInFocus(self)) { sendSystemMessage(self, new string_id("spam", "fs_command_no_focus")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_maelstrom_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "fs_powers", "fury_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } //Jedi Focus Buff Handler commandHandler fs_buff_ca_1() { // toggle buff [EJ] if (buff.toggleStance(self, "fs_buff_ca_1")) return SCRIPT_OVERRIDE; if (!combatStandardAction("fs_buff_ca_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } //Jedi Stance Buff Handler commandHandler fs_buff_def_1_1() { // toggle buff [EJ] if (buff.toggleStance(self, "fs_buff_def_1_1")) return SCRIPT_OVERRIDE; if (!combatStandardAction("fs_buff_def_1_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fs_flurry_1() { if(!buff.isInStance(self)) { return SCRIPT_OVERRIDE; } if(!buff.hasBuff(self, "jedi_reflect_flurry")) { sendSystemMessage(self, new string_id("spam", "fs_flurry_not_charged")); return SCRIPT_OVERRIDE; } if(!combatStandardAction("fs_flurry_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } buff.removeBuff(self, "jedi_reflect_flurry"); return SCRIPT_CONTINUE; } commandHandler fs_flurry_2() { if(!buff.isInStance(self)) { return SCRIPT_OVERRIDE; } if(!buff.hasBuff(self, "jedi_reflect_flurry")) { sendSystemMessage(self, new string_id("spam", "fs_flurry_not_charged")); return SCRIPT_OVERRIDE; } if(!combatStandardAction("fs_flurry_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } buff.removeBuff(self, "jedi_reflect_flurry"); return SCRIPT_CONTINUE; } commandHandler fs_flurry_3() { if(!buff.isInStance(self)) { return SCRIPT_OVERRIDE; } if(!buff.hasBuff(self, "jedi_reflect_flurry")) { sendSystemMessage(self, new string_id("spam", "fs_flurry_not_charged")); return SCRIPT_OVERRIDE; } if(!combatStandardAction("fs_flurry_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } buff.removeBuff(self, "jedi_reflect_flurry"); return SCRIPT_CONTINUE; } commandHandler fs_flurry_4() { if(!buff.isInStance(self)) { return SCRIPT_OVERRIDE; } if(!buff.hasBuff(self, "jedi_reflect_flurry")) { sendSystemMessage(self, new string_id("spam", "fs_flurry_not_charged")); return SCRIPT_OVERRIDE; } if(!combatStandardAction("fs_flurry_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } buff.removeBuff(self, "jedi_reflect_flurry"); return SCRIPT_CONTINUE; } commandHandler fs_flurry_5() { if(!buff.isInStance(self)) { return SCRIPT_OVERRIDE; } if(!buff.hasBuff(self, "jedi_reflect_flurry")) { sendSystemMessage(self, new string_id("spam", "fs_flurry_not_charged")); return SCRIPT_OVERRIDE; } if(!combatStandardAction("fs_flurry_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } buff.removeBuff(self, "jedi_reflect_flurry"); return SCRIPT_CONTINUE; } commandHandler fs_flurry_6() { if(!buff.isInStance(self)) { return SCRIPT_OVERRIDE; } if(!buff.hasBuff(self, "jedi_reflect_flurry")) { sendSystemMessage(self, new string_id("spam", "fs_flurry_not_charged")); return SCRIPT_OVERRIDE; } if(!combatStandardAction("fs_flurry_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } buff.removeBuff(self, "jedi_reflect_flurry"); return SCRIPT_CONTINUE; } commandHandler fs_flurry_7() { if(!buff.isInStance(self)) { return SCRIPT_OVERRIDE; } if(!buff.hasBuff(self, "jedi_reflect_flurry")) { sendSystemMessage(self, new string_id("spam", "fs_flurry_not_charged")); return SCRIPT_OVERRIDE; } if(!combatStandardAction("fs_flurry_7", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } buff.removeBuff(self, "jedi_reflect_flurry"); return SCRIPT_CONTINUE; } commandHandler fs_dm_1() { if (!combatStandardAction("fs_dm_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("fs_dm_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler fs_dm_2() { if (!combatStandardAction("fs_dm_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("fs_dm_2"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler fs_dm_3() { if (!combatStandardAction("fs_dm_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("fs_dm_3"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler fs_dm_4() { if (!combatStandardAction("fs_dm_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("fs_dm_4"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler fs_dm_5() { if (!combatStandardAction("fs_dm_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("fs_dm_5"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler fs_dm_6() { if (!combatStandardAction("fs_dm_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("fs_dm_6"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler fs_dm_7() { if (!combatStandardAction("fs_dm_7", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("fs_dm_7"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler fs_sweep_1() { if (!combatStandardAction("fs_sweep_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("fs_sweep_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_sweep") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler fs_sweep_2() { if (!combatStandardAction("fs_sweep_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("fs_sweep_2"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_sweep") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler fs_sweep_3() { if (!combatStandardAction("fs_sweep_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("fs_sweep_3"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_sweep") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler fs_sweep_4() { if (!combatStandardAction("fs_sweep_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("fs_sweep_4"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_sweep") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler fs_sweep_5() { if (!combatStandardAction("fs_sweep_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("fs_sweep_5"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_sweep") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler fs_sweep_6() { if (!combatStandardAction("fs_sweep_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("fs_sweep_6"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_sweep") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler fs_sweep_7() { if (!combatStandardAction("fs_sweep_7", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("fs_sweep_7"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_sweep") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler fs_mind_trick_1() { if (!combatStandardAction("fs_mind_trick_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } ai_lib.mindTrick(self, target); return SCRIPT_CONTINUE; } commandHandler fs_mind_trick_2() { if (!combatStandardAction("fs_mind_trick_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } //get all targets within the specified range (as indicated in the datatable) //iterate through the target list and repeat the above if combat_data actionData = combat_engine.getCombatData("fs_mind_trick_2"); float actionRadius = actionData.coneLength; actionRadius += getEnhancedSkillStatisticModifierUncapped(self, "expertise_area_size_single_fs_mind_trick_2"); obj_id[] defenders = pvpGetTargetsInRange(self, target, actionRadius); for (int i = 0; i < defenders.length; i++) { ai_lib.mindTrick(self, defenders[i]); } return SCRIPT_CONTINUE; } commandHandler fs_dm_cc_1() { if(!buff.isInFocus(self)) { sendSystemMessage(self, new string_id("spam", "fs_command_no_focus")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_dm_cc_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fs_dm_cc_2() { if(!buff.isInFocus(self)) { sendSystemMessage(self, new string_id("spam", "fs_command_no_focus")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_dm_cc_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fs_dm_cc_3() { if(!buff.isInFocus(self)) { sendSystemMessage(self, new string_id("spam", "fs_command_no_focus")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_dm_cc_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fs_dm_cc_4() { if(!buff.isInFocus(self)) { sendSystemMessage(self, new string_id("spam", "fs_command_no_focus")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_dm_cc_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fs_dm_cc_5() { if(!buff.isInFocus(self)) { sendSystemMessage(self, new string_id("spam", "fs_command_no_focus")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_dm_cc_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fs_dm_cc_6() { if(!buff.isInFocus(self)) { sendSystemMessage(self, new string_id("spam", "fs_command_no_focus")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_dm_cc_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fs_dm_cc_crit_1() { if (!combatStandardAction("fs_dm_cc_crit_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "fs_powers", "fury_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("fs_dm_cc_crit_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_cc_crit") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler fs_dm_cc_crit_2() { if (!combatStandardAction("fs_dm_cc_crit_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "fs_powers", "fury_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("fs_dm_cc_crit_2"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_cc_crit") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler fs_dm_cc_crit_3() { if (!combatStandardAction("fs_dm_cc_crit_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "fs_powers", "fury_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("fs_dm_cc_crit_3"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_cc_crit") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler fs_dm_cc_crit_4() { if (!combatStandardAction("fs_dm_cc_crit_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "fs_powers", "fury_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("fs_dm_cc_crit_4"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_cc_crit") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler fs_dm_cc_crit_5() { if (!combatStandardAction("fs_dm_cc_crit_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "fs_powers", "fury_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("fs_dm_cc_crit_5"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_cc_crit") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler fs_sh_0() { if(!healing.isDamaged(self)) { sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_sh_0", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fs_sh_1() { if(!healing.isDamaged(self)) { sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_sh_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fs_sh_2() { if(!healing.isDamaged(self)) { sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_sh_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fs_sh_3() { if(!healing.isDamaged(self)) { sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_sh_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fs_hermetic_touch() { if(!buff.isInStance(self)) { return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_hermetic_touch", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fs_set_heroic_taunt_1() { //This command is granted from a buff so double check for it. if(!buff.hasBuff(self, "set_bonus_jedi_utility_b_3")) return SCRIPT_OVERRIDE; if(!combatStandardAction("fs_set_heroic_taunt_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler me_ae_heal_1() { if (!combatStandardAction("me_ae_heal_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler me_ae_heal_2() { if (!combatStandardAction("me_ae_heal_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler me_ae_heal_3() { if (!combatStandardAction("me_ae_heal_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler me_ae_heal_4() { if (!combatStandardAction("me_ae_heal_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler me_ae_heal_5() { if (!combatStandardAction("me_ae_heal_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler me_ae_heal_6() { if (!combatStandardAction("me_ae_heal_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler me_buff_health_1() { if(!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target) ) target = self; if(!buff.canApplyBuff(target, "me_buff_health") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } boolean performed_buff = performMedicGroupBuff(self, target, "me_buff_health_1", params); if (!performed_buff) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler me_dm_1() { if (!combatStandardAction("me_dm_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "me_dm")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler me_dm_2() { if (!combatStandardAction("me_dm_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "me_dm")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler me_dm_3() { if (!combatStandardAction("me_dm_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "me_dm")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler me_dm_4() { if (!combatStandardAction("me_dm_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "me_dm")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler me_dm_5() { if (!combatStandardAction("me_dm_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "me_dm")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler me_dm_6() { if (!combatStandardAction("me_dm_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "me_dm")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler me_dm_8() { if (!combatStandardAction("me_dm_8", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "me_dm")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler me_dm_dot_1() { if (!combatStandardAction("me_dm_dot_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDoom(self, target); float baseCooldownTime = getBaseCooldownTime("me_dm_dot_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_dot"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10)); return SCRIPT_CONTINUE; } commandHandler me_dm_dot_2() { if (!combatStandardAction("me_dm_dot_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDoom(self, target); float baseCooldownTime = getBaseCooldownTime("me_dm_dot_2"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_dot"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10)); return SCRIPT_CONTINUE; } commandHandler me_dm_dot_3() { if (!combatStandardAction("me_dm_dot_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDoom(self, target); float baseCooldownTime = getBaseCooldownTime("me_dm_dot_3"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_dot"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10)); return SCRIPT_CONTINUE; } commandHandler me_dm_dot_4() { if (!combatStandardAction("me_dm_dot_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDoom(self, target); float baseCooldownTime = getBaseCooldownTime("me_dm_dot_4"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_dot"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10)); return SCRIPT_CONTINUE; } commandHandler me_dm_dot_5() { if (!combatStandardAction("me_dm_dot_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDoom(self, target); float baseCooldownTime = getBaseCooldownTime("me_dm_dot_5"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_dot"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10)); return SCRIPT_CONTINUE; } commandHandler me_dm_dot_6() { if (!combatStandardAction("me_dm_dot_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDoom(self, target); float baseCooldownTime = getBaseCooldownTime("me_dm_dot_6"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_dot"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10)); return SCRIPT_CONTINUE; } commandHandler me_fld_dm_dot_1() { if (!combatStandardAction("me_fld_dm_dot_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("me_fld_dm_dot_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_dot"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10)); return SCRIPT_CONTINUE; } commandHandler me_fld_dm_dot_2() { if (!combatStandardAction("me_fld_dm_dot_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("me_fld_dm_dot_2"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_dot"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10)); return SCRIPT_CONTINUE; } commandHandler me_fld_dm_dot_3() { if (!combatStandardAction("me_fld_dm_dot_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("me_fld_dm_dot_3"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_dot"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10)); return SCRIPT_CONTINUE; } commandHandler me_hot_1() { if(vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_hot_1", false)) { target = self; } if (!combatStandardAction("me_hot_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler me_hot_2() { if(vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_hot_2", false)) { target = self; } if (!combatStandardAction("me_hot_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler me_hot_3() { if(vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_hot_3", false)) { target = self; } if (!combatStandardAction("me_hot_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler me_sh_1() { if(!healing.isDamaged(self)) { sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("me_sh_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler me_rv_ooc() { if(vehicle.isVehicle(target) ) return SCRIPT_OVERRIDE; if (!combatStandardAction("me_rv_ooc", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "me_revive", "quick_revive_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("me_rv_ooc"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_revive"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler me_rv_area() { if(vehicle.isVehicle(target) ) return SCRIPT_OVERRIDE; if (!combatStandardAction("me_rv_area", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "me_revive", "quick_revive_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("me_rv_area"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_revive"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler me_rv_combat() { //forcing target to be self, so the ability will automagically target medic, medic doesnt have to target a corpse. if (!combatStandardAction("me_rv_combat", self, self, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "me_revive", "quick_revive_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("me_rv_combat"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_aoe_revive"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod * 60) ); return SCRIPT_CONTINUE; } /******* Innane GCW Rezzes ******/ commandHandler me_rv_pvp_single() { if(vehicle.isVehicle(target) || space_dungeon.isInSpaceDungeon(self) || instance.isInInstanceArea(self) || !utils.hasScriptVar(target, "pvp_death")) return SCRIPT_OVERRIDE; if (!combatStandardAction("me_rv_pvp_single", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "me_revive", "quick_revive_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("me_rv_pvp_single"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_revive"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler me_rv_pvp_area() { if(space_dungeon.isInSpaceDungeon(self) || instance.isInInstanceArea(self)) return SCRIPT_OVERRIDE; //forcing target to be self, so the ability will automagically target medic, medic doesnt have to target a corpse. if (!combatStandardAction("me_rv_pvp_area", self, self, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "me_revive", "quick_revive_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("me_rv_pvp_area"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_aoe_revive"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod * 60) ); return SCRIPT_CONTINUE; } /******* Officer expertise ******/ commandHandler me_drag_1() { if(!group.isGrouped(self) ) { sendSystemMessage(self, new string_id("spam", "drag_not_grouped") ); return SCRIPT_OVERRIDE; } if (!combatStandardAction("me_drag_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } corpse.dragPlayerCorpse(self, corpse.getDraggableCorpsesInRange(self, true) ); return SCRIPT_CONTINUE; } commandHandler me_blood_cleaners_1() { if(!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target) ) target = self; if(!buff.hasBuff(target, "incapWeaken") ) { if(target == self) { sendSystemMessage(self, new string_id("spam", "remove_weakness_self_fail") ); } else { sendSystemMessage(self, new string_id("spam", "remove_weakness_other_fail") ); } return SCRIPT_OVERRIDE; } if (!combatStandardAction("me_blood_cleaners_1", self, target, params, "", "") ) { return SCRIPT_OVERRIDE; } buff.removeBuff(target, "incapWeaken"); playClientEffectObj(target, "appearance/pt_heal_2.prt", target, "root"); return SCRIPT_CONTINUE; } commandHandler me_bacta_bomb_1() { if(vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_bomb_1", false)) { target = self; } if (!combatStandardAction("me_bacta_bomb_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly") ) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } return SCRIPT_CONTINUE; } commandHandler me_bacta_bomb_2() { if(vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_bomb_2", false)) { target = self; } if (!combatStandardAction("me_bacta_bomb_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly") ) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } return SCRIPT_CONTINUE; } commandHandler me_bacta_bomb_3() { if(vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_bomb_3", false)) { target = self; } if (!combatStandardAction("me_bacta_bomb_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly") ) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } return SCRIPT_CONTINUE; } commandHandler me_bacta_bomb_4() { if(vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_bomb_4", false)) { target = self; } if (!combatStandardAction("me_bacta_bomb_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly") ) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } return SCRIPT_CONTINUE; } commandHandler me_bacta_bomb_5() { if(vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_bomb_5", false)) { target = self; } if(!combatStandardAction("me_bacta_bomb_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly") ) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } return SCRIPT_CONTINUE; } commandHandler me_bacta_ampule_1() { if(vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_ampule_1", false)) { target = self; } if (!combatStandardAction("me_bacta_ampule_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly") ) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } return SCRIPT_CONTINUE; } commandHandler me_bacta_ampule_2() { if(vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_ampule_2", false)) { target = self; } if (!combatStandardAction("me_bacta_ampule_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly") ) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } return SCRIPT_CONTINUE; } commandHandler me_bacta_ampule_3() { if(vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_ampule_3", false)) { target = self; } if (!combatStandardAction("me_bacta_ampule_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly") ) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } return SCRIPT_CONTINUE; } commandHandler me_bacta_ampule_4() { if(vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_ampule_4", false)) { target = self; } if (!combatStandardAction("me_bacta_ampule_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly") ) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } return SCRIPT_CONTINUE; } commandHandler me_bacta_ampule_5() { if(vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_ampule_5", false)) { target = self; } if (!combatStandardAction("me_bacta_ampule_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly") ) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } return SCRIPT_CONTINUE; } commandHandler me_bacta_ampule_6() { if(vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_ampule_6", false)) { target = self; } if (!combatStandardAction("me_bacta_ampule_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly") ) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } return SCRIPT_CONTINUE; } commandHandler me_cure_affliction_1() { if(!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target) ) target = self; if (!combatStandardAction("me_cure_affliction_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler me_serotonin_boost_1() { if(!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target) ) target = self; if (!combatStandardAction("me_serotonin_boost_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler me_bacta_grenade_1() { if(vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_grenade_1", false)) { target = self; } if (!combatStandardAction("me_bacta_grenade_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly") ) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } return SCRIPT_CONTINUE; } commandHandler me_bacta_grenade_2() { if(vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_grenade_2", false)) { target = self; } if (!combatStandardAction("me_bacta_grenade_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly") ) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } return SCRIPT_CONTINUE; } commandHandler me_bacta_grenade_3() { if(vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_grenade_3", false)) { target = self; } if (!combatStandardAction("me_bacta_grenade_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly") ) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } return SCRIPT_CONTINUE; } commandHandler me_bacta_grenade_4() { if(vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_grenade_4", false)) { target = self; } if (!combatStandardAction("me_bacta_grenade_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly") ) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } return SCRIPT_CONTINUE; } commandHandler me_bacta_grenade_5() { if(vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_bomb_5", false)) { target = self; } if (!combatStandardAction("me_bacta_grenade_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly") ) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } return SCRIPT_CONTINUE; } commandHandler me_enhance_action_1() { if(!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target) ) target = self; if(!buff.canApplyBuff(target, "me_buff_action_1") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_action_1", params); if (!performed_buff) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler me_enhance_action_2() { if(!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target) ) target = self; if(!buff.canApplyBuff(target, "me_buff_action_2") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_action_2", params); if (!performed_buff) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler me_enhance_action_3() { if(!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target) ) target = self; if(!buff.canApplyBuff(target, "me_buff_action_3") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_action_3", params); if (!performed_buff) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler me_reckless_stimulation_1() { if(hasFullActionPool(self)) { showFlyTextPrivate(self, self, new string_id("spam", "full_action_pool"), 2, colors.LEMONCHIFFON); return SCRIPT_OVERRIDE; } if(buff.hasBuff(self, "cloning_sickness") ) { sendSystemMessage(self, new string_id("spam", "not_well_enough") ); return SCRIPT_OVERRIDE; } if (!combatStandardAction("me_reckless_stimulation_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } int healthCost = (int)dataTableGetFloat(COMBAT_TABLE, "me_reckless_stimulation_1", "healthCost"); int actionGain = dataTableGetInt(COMBAT_TABLE, "me_reckless_stimulation_1", "addedDamage"); healthToActionConversion(self, healthCost, actionGain); return SCRIPT_CONTINUE; } commandHandler me_reckless_stimulation_2() { if(hasFullActionPool(self)) { showFlyTextPrivate(self, self, new string_id("spam", "full_action_pool"), 2, colors.LEMONCHIFFON); return SCRIPT_OVERRIDE; } if(buff.hasBuff(self, "cloning_sickness") ) { sendSystemMessage(self, new string_id("spam", "not_well_enough") ); return SCRIPT_OVERRIDE; } if (!combatStandardAction("me_reckless_stimulation_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } int healthCost = (int)dataTableGetFloat(COMBAT_TABLE, "me_reckless_stimulation_2", "healthCost"); int actionGain = dataTableGetInt(COMBAT_TABLE, "me_reckless_stimulation_2", "addedDamage"); healthToActionConversion(self, healthCost, actionGain); return SCRIPT_CONTINUE; } commandHandler me_reckless_stimulation_3() { if(hasFullActionPool(self)) { showFlyTextPrivate(self, self, new string_id("spam", "full_action_pool"), 2, colors.LEMONCHIFFON); return SCRIPT_OVERRIDE; } if(buff.hasBuff(self, "cloning_sickness") ) { sendSystemMessage(self, new string_id("spam", "not_well_enough") ); return SCRIPT_OVERRIDE; } if (!combatStandardAction("me_reckless_stimulation_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } int healthCost = (int)dataTableGetFloat(COMBAT_TABLE, "me_reckless_stimulation_3", "healthCost"); int actionGain = dataTableGetInt(COMBAT_TABLE, "me_reckless_stimulation_3", "addedDamage"); healthToActionConversion(self, healthCost, actionGain); return SCRIPT_CONTINUE; } commandHandler me_reckless_stimulation_4() { if(hasFullActionPool(self)) { showFlyTextPrivate(self, self, new string_id("spam", "full_action_pool"), 2, colors.LEMONCHIFFON); return SCRIPT_OVERRIDE; } if(buff.hasBuff(self, "cloning_sickness") ) { sendSystemMessage(self, new string_id("spam", "not_well_enough") ); return SCRIPT_OVERRIDE; } if (!combatStandardAction("me_reckless_stimulation_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } int healthCost = (int)dataTableGetFloat(COMBAT_TABLE, "me_reckless_stimulation_4", "healthCost"); int actionGain = dataTableGetInt(COMBAT_TABLE, "me_reckless_stimulation_4", "addedDamage"); healthToActionConversion(self, healthCost, actionGain); return SCRIPT_CONTINUE; } commandHandler me_reckless_stimulation_5() { if(hasFullActionPool(self)) { showFlyTextPrivate(self, self, new string_id("spam", "full_action_pool"), 2, colors.LEMONCHIFFON); return SCRIPT_OVERRIDE; } if(buff.hasBuff(self, "cloning_sickness") ) { sendSystemMessage(self, new string_id("spam", "not_well_enough") ); return SCRIPT_OVERRIDE; } if (!combatStandardAction("me_reckless_stimulation_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } int healthCost = (int)dataTableGetFloat(COMBAT_TABLE, "me_reckless_stimulation_5", "healthCost"); int actionGain = dataTableGetInt(COMBAT_TABLE, "me_reckless_stimulation_5", "addedDamage"); healthToActionConversion(self, healthCost, actionGain); return SCRIPT_CONTINUE; } commandHandler me_reckless_stimulation_6() { if(hasFullActionPool(self)) { showFlyTextPrivate(self, self, new string_id("spam", "full_action_pool"), 2, colors.LEMONCHIFFON); return SCRIPT_OVERRIDE; } if(buff.hasBuff(self, "cloning_sickness") ) { sendSystemMessage(self, new string_id("spam", "not_well_enough") ); return SCRIPT_OVERRIDE; } if (!combatStandardAction("me_reckless_stimulation_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } int healthCost = (int)dataTableGetFloat(COMBAT_TABLE, "me_reckless_stimulation_6", "healthCost"); int actionGain = dataTableGetInt(COMBAT_TABLE, "me_reckless_stimulation_6", "addedDamage"); healthToActionConversion(self, healthCost, actionGain); return SCRIPT_CONTINUE; } commandHandler me_stasis_1() { //mark says "filthy exploiters", we use the buff group check to stop them from chaining different stasis specials int stasisBuff = buff.getBuffOnTargetFromGroup(target, "stasis"); if(stasisBuff !=0) return SCRIPT_OVERRIDE; if(!buff.canApplyBuff(target, "me_stasis_1")) return SCRIPT_OVERRIDE; if(vehicle.isVehicle(target) ) return SCRIPT_OVERRIDE; obj_id testTarget = getIntendedTarget(self); if(isIdValid(testTarget) && ( (group.inSameGroup(self, testTarget) && pvpCanHelp(self, testTarget) ) || pvpCanAttack(self, testTarget) ) ) { target = testTarget; } else return SCRIPT_OVERRIDE; if(getDistance(self, target) > 48.0f) return SCRIPT_OVERRIDE; if (!combatStandardAction("me_stasis_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } buff.applyBuff(target, self, "me_stasis_1"); //buff.applyBuff(target, self, "me_cure_affliction_1"); return SCRIPT_CONTINUE; } commandHandler me_stasis_self_1() { int stasisBuff = buff.getBuffOnTargetFromGroup(self, "stasis"); if(stasisBuff !=0) return SCRIPT_OVERRIDE; if(!buff.canApplyBuff(self, "me_stasis_self_1")) return SCRIPT_OVERRIDE; if (!combatStandardAction("me_stasis_self_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } //buff.applyBuff(self, self, "me_cure_affliction_1"); float baseCooldownTime = getBaseCooldownTime("me_stasis_self_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_stasis_self"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod*60) ); return SCRIPT_CONTINUE; } commandHandler me_serotonin_purge_1() { if(vehicle.isVehicle(target) ) return SCRIPT_OVERRIDE; if (!combatStandardAction("me_serotonin_purge_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler me_induce_insanity_1() { if(vehicle.isVehicle(target) ) return SCRIPT_OVERRIDE; if (!combatStandardAction("me_induce_insanity_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDoom(self, target); if(successfulFastAttack(self, "me_debuff", "fast_attack_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler me_bacta_resistance_1() { if(vehicle.isVehicle(target) ) return SCRIPT_OVERRIDE; if (!combatStandardAction("me_bacta_resistance_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDoom(self, target); if(successfulFastAttack(self, "me_debuff", "fast_attack_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler me_electrolyte_drain_1() { if(vehicle.isVehicle(target) ) return SCRIPT_OVERRIDE; if (!combatStandardAction("me_electrolyte_drain_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDoom(self, target); if(successfulFastAttack(self, "me_debuff", "fast_attack_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler me_traumatize_1() { if(vehicle.isVehicle(target) ) return SCRIPT_OVERRIDE; if(buff.hasBuff(target, "action_drain_immunity") ) { sendSystemMessage(self, new string_id("spam", "immune_to_that") ); return SCRIPT_OVERRIDE; } if (!combatStandardAction("me_traumatize_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "me_debuff", "fast_attack_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler me_traumatize_2() { if(vehicle.isVehicle(target) ) return SCRIPT_OVERRIDE; if(buff.hasBuff(target, "action_drain_immunity") ) { sendSystemMessage(self, new string_id("spam", "immune_to_that") ); return SCRIPT_OVERRIDE; } if (!combatStandardAction("me_traumatize_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "me_debuff", "fast_attack_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler me_traumatize_3() { if(vehicle.isVehicle(target) ) return SCRIPT_OVERRIDE; if(buff.hasBuff(target, "action_drain_immunity") ) { sendSystemMessage(self, new string_id("spam", "immune_to_that") ); return SCRIPT_OVERRIDE; } if (!combatStandardAction("me_traumatize_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "me_debuff", "fast_attack_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler me_traumatize_4() { if(vehicle.isVehicle(target) ) return SCRIPT_OVERRIDE; if(buff.hasBuff(target, "action_drain_immunity") ) { sendSystemMessage(self, new string_id("spam", "immune_to_that") ); return SCRIPT_OVERRIDE; } if (!combatStandardAction("me_traumatize_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "me_debuff", "fast_attack_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler me_traumatize_5() { if(vehicle.isVehicle(target) ) return SCRIPT_OVERRIDE; if(buff.hasBuff(target, "action_drain_immunity") ) { sendSystemMessage(self, new string_id("spam", "immune_to_that") ); return SCRIPT_OVERRIDE; } if (!combatStandardAction("me_traumatize_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDoom(self, target); if(successfulFastAttack(self, "me_debuff", "fast_attack_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler me_thyroid_rupture_1() { if(vehicle.isVehicle(target) ) return SCRIPT_OVERRIDE; if (!combatStandardAction("me_thyroid_rupture_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDoom(self, target); if(successfulFastAttack(self, "me_debuff", "fast_attack_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler me_enhance_strength_1() { if(!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target) ) target = self; if(!buff.canApplyBuff(target, "me_buff_strength_1") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_strength_1", params); if (!performed_buff) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler me_enhance_strength_2() { if(!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target) ) target = self; if(!buff.canApplyBuff(target, "me_buff_strength_2") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_strength_2", params); if (!performed_buff) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler me_enhance_strength_3() { if(!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target) ) target = self; if(!buff.canApplyBuff(target, "me_buff_strength_3") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_strength_3", params); if (!performed_buff) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler me_burst_1() { if (!combatStandardAction("me_burst_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler me_burst_2() { if (!combatStandardAction("me_burst_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler me_burst_3() { if (!combatStandardAction("me_burst_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler me_burst_4() { if (!combatStandardAction("me_burst_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler me_burst_5() { if (!combatStandardAction("me_burst_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler me_enhance_agility_1() { if(!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target) ) target = self; if(!buff.canApplyBuff(target, "me_buff_agility_1") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_agility_1", params); if (!performed_buff) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler me_enhance_agility_2() { if(!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target) ) target = self; if(!buff.canApplyBuff(target, "me_buff_agility_2") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_agility_2", params); if (!performed_buff) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler me_enhance_agility_3() { if(!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target) ) target = self; if(!buff.canApplyBuff(target, "me_buff_agility_3") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_agility_3", params); if (!performed_buff) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler me_cranial_smash_1() { if (!combatStandardAction("me_cranial_smash_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler me_cranial_smash_2() { if (!combatStandardAction("me_cranial_smash_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler me_cranial_smash_3() { if (!combatStandardAction("me_cranial_smash_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler me_cranial_smash_4() { if (!combatStandardAction("me_cranial_smash_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler me_cranial_smash_5() { if (!combatStandardAction("me_cranial_smash_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler me_evasion_1() { if (!combatStandardAction("me_evasion_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doMedicEvasion(self); float baseCooldownTime = getBaseCooldownTime("me_evasion_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_evasion"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler me_enhance_precision_1() { if(!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target) ) target = self; if(!buff.canApplyBuff(target, "me_buff_precision_1") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_precision_1", params); if (!performed_buff) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler me_enhance_precision_2() { if(!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target) ) target = self; if(!buff.canApplyBuff(target, "me_buff_precision_2") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_precision_2", params); if (!performed_buff) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler me_enhance_precision_3() { if(!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target) ) target = self; if(!buff.canApplyBuff(target, "me_buff_precision_3") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_precision_3", params); if (!performed_buff) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler me_enhance_block_1() { if(!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target) ) target = self; if(!buff.canApplyBuff(target, "me_buff_melee_gb_1") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_block_1", params); if (!performed_buff) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler me_enhance_dodge_1() { if(!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target) ) target = self; if(!buff.canApplyBuff(target, "me_buff_ranged_gb_1") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } if(!isIdValid(target) || !pvpCanHelp(self, target) ) target = self; boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_dodge_1", params); if (!performed_buff) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler me_buff_health_2() { if(!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target) ) target = self; if(!buff.canApplyBuff(target, "me_buff_health_0") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } boolean performed_buff = performMedicGroupBuff(self, target, "me_buff_health_2", params); if (!performed_buff) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler me_buff_health_3() { if(!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target) ) target = self; if(!buff.canApplyBuff(target, "me_buff_health_2") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } boolean performed_buff = performMedicGroupBuff(self, target, "me_buff_health_3", params); if (!performed_buff) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler expertise_dueterium_rounds_proc() { if (!combatStandardAction("expertise_dueterium_rounds_proc", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler expertise_poison_knuckle_proc() { if (!combatStandardAction("expertise_poison_knuckle_proc", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } void doDoom(obj_id attacker, obj_id defender) { int bonusChance = getEnhancedSkillStatisticModifierUncapped(attacker, "me_doom_chance"); if(bonusChance > 0) { int roll = rand(1, 99); int total = roll+bonusChance; if(roll + bonusChance > 99 && !utils.hasScriptVar(defender, "me_doom.doom_owner") ) { utils.setScriptVar(defender, "me_doom.doom_owner", attacker); utils.setScriptVar(defender, "me_doom.doom_stage", 1); buff.applyBuff(defender, attacker, "me_doom", 18.0f, 1.0f); if(hasCommand(attacker, "me_bacta_resistance_1") ) buff.applyBuff(defender, attacker, "me_bacta_resistance_1"); if(hasCommand(attacker, "me_electrolyte_drain_1") ) buff.applyBuff(defender, attacker, "me_electrolyte_drain_1"); if(hasCommand(attacker, "me_induce_insanity_1") ) buff.applyBuff(defender, attacker, "me_rheumatic_calamity_1"); if(hasCommand(attacker, "me_thyroid_rupture_1") ) buff.applyBuff(defender, attacker, "me_thyroid_rupture_1"); } } return; } /****** End officer expertise *****/ commandHandler of_buff_def_1() { if(!buff.canApplyBuff(self, "of_buff_def_1") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_buff_def_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_buff_def_1"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); return SCRIPT_CONTINUE; } commandHandler of_buff_def_2() { if(!buff.canApplyBuff(self, "of_buff_def_2") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_buff_def_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_buff_def_2"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); return SCRIPT_CONTINUE; } commandHandler of_buff_def_3() { if(!buff.canApplyBuff(self, "of_buff_def_3") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_buff_def_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_buff_def_3"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); return SCRIPT_CONTINUE; } commandHandler of_deb_def_1() { if (!combatStandardAction("of_deb_def_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_deb_def_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_paint"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10)); return SCRIPT_CONTINUE; } commandHandler of_deb_def_2() { if (!combatStandardAction("of_deb_def_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_deb_def_2"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_paint"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10)); return SCRIPT_CONTINUE; } commandHandler of_deb_def_3() { if (!combatStandardAction("of_deb_def_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_deb_def_3"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_paint"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10)); return SCRIPT_CONTINUE; } commandHandler of_ae_dm_cc_1() { if(!combatStandardAction("of_ae_dm_cc_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "of_aoe")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler of_ae_dm_cc_2() { if(!combatStandardAction("of_ae_dm_cc_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "of_aoe")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler of_ae_dm_cc_3() { if(!combatStandardAction("of_ae_dm_cc_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "of_aoe")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } doInspiredAction(self); return SCRIPT_CONTINUE; } // Artillery Strike commandHandler of_del_ae_dm_1() { if(getTopMostContainer(self) != self) { sendSystemMessage(self, new string_id("spam", "cant_do_indoors")); return SCRIPT_OVERRIDE; } if(!combatStandardAction("of_del_ae_dm_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } prose_package p = prose.getPackage(new string_id("spam", "artillery_coming")); commPlayers(self, "object/mobile/npe/npe_hutt_minion.iff", "sound/sys_comm_other.snd", 5f, self, p); if(successfulFastAttack(self, "of_aoe")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } //Aerial Bombardment commandHandler of_del_ae_dm_2() { if(getTopMostContainer(self) != self) { sendSystemMessage(self, new string_id("spam", "cant_do_indoors")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_del_ae_dm_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } prose_package p = prose.getPackage(new string_id("spam", "hailfire_coming")); commPlayers(self, "object/mobile/npe/npe_hutt_minion.iff", "sound/sys_comm_other.snd", 5f, self, p); playClientEffectLoc(self, "clienteffect/combat_pt_aerialstrike.cef", getLocation(target), 0); if(successfulFastAttack(self, "of_aoe")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } // Orbital Strike commandHandler of_del_ae_dm_3() { if(getTopMostContainer(self) != self) { sendSystemMessage(self, new string_id("spam", "cant_do_indoors")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_del_ae_dm_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } prose_package p = prose.getPackage(new string_id("spam", "orbitalstrike_coming")); commPlayers(self, "object/mobile/npe/npe_hutt_minion.iff", "sound/sys_comm_other.snd", 5f, self, p); playClientEffectLoc(self, "clienteffect/combat_pt_orbitalstrike.cef", getLocation(target), 0); if(successfulFastAttack(self, "of_aoe")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } doInspiredAction(self); return SCRIPT_CONTINUE; } // Deuterium Bomb commandHandler of_del_ae_dm_dot_1() { if (!combatStandardAction("of_del_ae_dm_dot_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "of_aoe")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } // Core Bomb commandHandler of_del_ae_dm_dot_2() { if (!combatStandardAction("of_del_ae_dm_dot_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "of_aoe")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } commandHandler of_del_ae_dm_dot_3() { if (!combatStandardAction("of_del_ae_dm_dot_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "of_aoe")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } doInspiredAction(self); return SCRIPT_CONTINUE; } commandHandler of_del_ae_dot_1() { if (!combatStandardAction("of_del_ae_dot_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "of_aoe")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); } return SCRIPT_CONTINUE; } //pistol overcharge commandHandler of_pistol_dm() { if (!combatStandardAction("of_pistol_dm", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } int level = getLevel(self); if(level >= 74) doInspiredAction(self); return SCRIPT_CONTINUE; } //pistol burn commandHandler of_pistol_bleed() { if (!combatStandardAction("of_pistol_bleed", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } int level = getLevel(self); if(level >= 74) doInspiredAction(self); return SCRIPT_CONTINUE; } commandHandler of_rally_point_off() { // ground target. Location is passed in the params location eggLoc = combat.getCommandGroundTargetLocation(params); location myLoc = getLocation(self); float distance = getDistance(myLoc, eggLoc); //create our invisible egg obj_id objEgg = createObject("object/tangible/space/content_infrastructure/generic_egg_small.iff", eggLoc); //validate it if(!isIdValid(objEgg)) { return SCRIPT_OVERRIDE; } //we need to store data on the egg to be used in its script utils.setScriptVar(objEgg, "objOwner", self); utils.setScriptVar(self, "objEgg", objEgg); utils.setScriptVar(objEgg, "triggerBuff", "of_rally_point_off"); int duration = combat.EGG_AURA_DURATION; duration += (int)getEnhancedSkillStatisticModifierUncapped(self, "rally_point_duration"); utils.setScriptVar(objEgg, "triggerDuration", duration); utils.setScriptVar(objEgg, "triggerPrt", "appearance/pt_rally_point_red.prt"); //attach the eggs handler script attachScript(objEgg, "systems.combat.combat_trigger_area"); //we now need to perform our action costs combat_data cData = combat_engine.getCombatData("of_rally_point_off"); obj_id weapon = getCurrentWeapon(self); weapon_data wData = getWeaponData(weapon); int[] actionCost = combat.getActionCost(self, wData, cData); combat.drainCombatActionAttributes(self, actionCost); //we now need to find any cooldown modifiers and apply them float baseCooldownTime = getBaseCooldownTime("of_rally_point_off"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } if(group.isGrouped(self)) { obj_id groupId = getGroupObject(self); obj_id[] members = getGroupMemberIds(groupId); prose_package pp = new prose_package(); prose.setStringId(pp, new string_id("squad_leader", "of_set_rally_point")); prose.setTT(pp, self); if(members != null && members.length > 0) { for(int i = 0; i < members.length; ++i) { combat.sendCombatSpamMessageProse(members[i], pp); } } squad_leader.sendSquadLeaderCommand( self, "Rallypoint has been set!" ); } else combat.sendCombatSpamMessage(self, new string_id("squad_leader", "self_set_rally_point")); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); doInspiredAction(self); return SCRIPT_CONTINUE; } commandHandler of_rally_point_def() { location eggLoc = combat.getCommandGroundTargetLocation(params); location myLoc = getLocation(self); float distance = getDistance(myLoc, eggLoc); //create our invisible egg obj_id objEgg = createObject("object/tangible/space/content_infrastructure/generic_egg_small.iff", eggLoc); //validate it if(!isIdValid(objEgg)) { return SCRIPT_OVERRIDE; } //we need to store data on the egg to be used in its script utils.setScriptVar(objEgg, "objOwner", self); utils.setScriptVar(self, "objEgg", objEgg); utils.setScriptVar(objEgg, "triggerBuff", "of_rally_point_def"); int duration = combat.EGG_AURA_DURATION; duration += (int)getEnhancedSkillStatisticModifierUncapped(self, "rally_point_duration"); utils.setScriptVar(objEgg, "triggerDuration", duration); utils.setScriptVar(objEgg, "triggerPrt", "appearance/pt_rally_point_blue.prt"); //attach the eggs handler script attachScript(objEgg, "systems.combat.combat_trigger_area"); //we now need to apply our action costs combat_data cData = combat_engine.getCombatData("of_rally_point_def"); obj_id weapon = getCurrentWeapon(self); weapon_data wData = getWeaponData(weapon); int[] actionCost = combat.getActionCost(self, wData, cData); combat.drainCombatActionAttributes(self, actionCost); //we now need to find any cooldown modifiers and apply them float baseCooldownTime = getBaseCooldownTime("of_rally_point_def"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } if(group.isGrouped(self)) { obj_id groupId = getGroupObject(self); obj_id[] members = getGroupMemberIds(groupId); prose_package pp = new prose_package(); prose.setStringId(pp, new string_id("squad_leader", "of_set_rally_point")); prose.setTT(pp, self); if(members != null && members.length > 0) { for(int i = 0; i < members.length; ++i) { combat.sendCombatSpamMessageProse(members[i], pp); } } squad_leader.sendSquadLeaderCommand( self, "Rallypoint has been set!" ); } else combat.sendCombatSpamMessage(self, new string_id("squad_leader", "self_set_rally_point")); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); doInspiredAction(self); return SCRIPT_CONTINUE; } commandHandler of_dm_1() { if (!combatStandardAction("of_dm_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_dm_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sure"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10)); return SCRIPT_CONTINUE; } commandHandler of_dm_2() { if (!combatStandardAction("of_dm_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_dm_2"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sure"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10)); return SCRIPT_CONTINUE; } commandHandler of_dm_3() { if (!combatStandardAction("of_dm_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_dm_3"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sure"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10)); return SCRIPT_CONTINUE; } commandHandler of_dm_4() { if (!combatStandardAction("of_dm_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_dm_4"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sure"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10)); return SCRIPT_CONTINUE; } commandHandler of_dm_5() { if (!combatStandardAction("of_dm_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_dm_5"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sure"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10)); return SCRIPT_CONTINUE; } commandHandler of_dm_6() { if (!combatStandardAction("of_dm_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_dm_6"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sure"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10)); return SCRIPT_CONTINUE; } commandHandler of_dm_7() { if (!combatStandardAction("of_dm_7", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_dm_7"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sure"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10)); return SCRIPT_CONTINUE; } commandHandler of_dm_8() { if (!combatStandardAction("of_dm_8", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_dm_8"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sure"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10)); doInspiredAction(self); return SCRIPT_CONTINUE; } commandHandler of_sh_0() { if(!healing.isDamaged(self)) { sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_sh_0", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "of_heal", "quick_heal_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("of_sh_0"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_heal"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler of_sh_1() { if(!healing.isDamaged(self)) { sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_sh_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "of_heal", "quick_heal_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("of_sh_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_heal"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler of_sh_2() { if(!healing.isDamaged(self)) { sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_sh_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "of_heal", "quick_heal_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("of_sh_2"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_heal"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler of_sh_3() { if(!healing.isDamaged(self)) { sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_sh_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doInspiredAction(self); if(successfulFastAttack(self, "of_heal", "quick_heal_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("of_sh_3"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_heal"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler of_drop_1() { if(!canCallSupplyDrop(self) ) return SCRIPT_OVERRIDE; if (!combatStandardAction("of_drop_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } else { if(!callSupplyDrop(self, 0)) { return SCRIPT_OVERRIDE; } } float baseCooldownTime = getBaseCooldownTime("of_drop_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } // Officer expertise commandHandler of_buff_def_4() { if(!buff.canApplyBuff(self, "of_buff_def_4") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_buff_def_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_buff_def_4"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); return SCRIPT_CONTINUE; } commandHandler of_buff_def_5() { if(!buff.canApplyBuff(self, "of_buff_def_5") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_buff_def_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_buff_def_5"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); return SCRIPT_CONTINUE; } commandHandler of_buff_def_6() { if(!buff.canApplyBuff(self, "of_buff_def_6") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_buff_def_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_buff_def_6"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); return SCRIPT_CONTINUE; } commandHandler of_buff_def_7() { if(!buff.canApplyBuff(self, "of_buff_def_7") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_buff_def_7", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_buff_def_7"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); return SCRIPT_CONTINUE; } commandHandler of_buff_def_8() { if(!buff.canApplyBuff(self, "of_buff_def_8") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_buff_def_8", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_buff_def_8"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); return SCRIPT_CONTINUE; } commandHandler of_buff_def_9() { if(!buff.canApplyBuff(self, "of_buff_def_9") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_buff_def_9", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_buff_def_9"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); doInspiredAction(self); return SCRIPT_CONTINUE; } commandHandler of_focus_fire_1() { if(!buff.canApplyBuff(self, "of_focus_fire_1") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_focus_fire_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_focus_fire_1"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); return SCRIPT_CONTINUE; } commandHandler of_focus_fire_2() { if(!buff.canApplyBuff(self, "of_focus_fire_2") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_focus_fire_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_focus_fire_2"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); return SCRIPT_CONTINUE; } commandHandler of_focus_fire_3() { if(!buff.canApplyBuff(self, "of_focus_fire_3") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_focus_fire_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_focus_fire_3"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); return SCRIPT_CONTINUE; } commandHandler of_focus_fire_4() { if(!buff.canApplyBuff(self, "of_focus_fire_4") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_focus_fire_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_focus_fire_4"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); return SCRIPT_CONTINUE; } commandHandler of_focus_fire_5() { if(!buff.canApplyBuff(self, "of_focus_fire_5") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_focus_fire_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_focus_fire_5"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); return SCRIPT_CONTINUE; } commandHandler of_focus_fire_6() { if(!buff.canApplyBuff(self, "of_focus_fire_6") ) { sendSystemMessage(self, new string_id("spam", "buff_wont_stack") ); sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC); return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_focus_fire_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_focus_fire_6"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); doInspiredAction(self); return SCRIPT_CONTINUE; } commandHandler of_inspiration_1() { if (!combatStandardAction("of_inspiration_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_inspiration_1"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); return SCRIPT_CONTINUE; } commandHandler of_inspiration_2() { if (!combatStandardAction("of_inspiration_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_inspiration_2"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); return SCRIPT_CONTINUE; } commandHandler of_inspiration_3() { if (!combatStandardAction("of_inspiration_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_inspiration_3"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); return SCRIPT_CONTINUE; } commandHandler of_inspiration_4() { if (!combatStandardAction("of_inspiration_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_inspiration_4"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); return SCRIPT_CONTINUE; } commandHandler of_inspiration_5() { if (!combatStandardAction("of_inspiration_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_inspiration_5"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); return SCRIPT_CONTINUE; } commandHandler of_inspiration_6() { if (!combatStandardAction("of_inspiration_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_inspiration_6"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); return SCRIPT_CONTINUE; } commandHandler of_scatter_1() { if (!combatStandardAction("of_scatter_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_scatter_1"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); doInspiredAction(self); return SCRIPT_CONTINUE; } commandHandler of_charge_1() { if (!combatStandardAction("of_charge_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_charge_1"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); doInspiredAction(self); return SCRIPT_CONTINUE; } commandHandler of_medical_sup_1() { if(!canCallSupplyDrop(self) ) { return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_medical_sup_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } else { if(!callSupplyDrop(self, 1)) { return SCRIPT_OVERRIDE; } } float baseCooldownTime = getBaseCooldownTime("of_medical_sup_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler of_medical_sup_2() { if(!canCallSupplyDrop(self) ) return SCRIPT_OVERRIDE; if (!combatStandardAction("of_medical_sup_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } else { if(!callSupplyDrop(self, 2)) { return SCRIPT_OVERRIDE; } } float baseCooldownTime = getBaseCooldownTime("of_medical_sup_2"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler of_medical_sup_3() { if(!canCallSupplyDrop(self) ) return SCRIPT_OVERRIDE; if (!combatStandardAction("of_medical_sup_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } else { if(!callSupplyDrop(self, 3)) { return SCRIPT_OVERRIDE; } } float baseCooldownTime = getBaseCooldownTime("of_medical_sup_3"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler of_medical_sup_4() { if(!canCallSupplyDrop(self) ) return SCRIPT_OVERRIDE; if (!combatStandardAction("of_medical_sup_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } else { if(!callSupplyDrop(self, 4)) { return SCRIPT_OVERRIDE; } } float baseCooldownTime = getBaseCooldownTime("of_medical_sup_4"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler of_medical_sup_5() { if(!canCallSupplyDrop(self) ) return SCRIPT_OVERRIDE; if (!combatStandardAction("of_medical_sup_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } else { if(!callSupplyDrop(self, 5)) { return SCRIPT_OVERRIDE; } } float baseCooldownTime = getBaseCooldownTime("of_medical_sup_5"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler of_medical_sup_6() { if(!canCallSupplyDrop(self) ) return SCRIPT_OVERRIDE; if (!combatStandardAction("of_medical_sup_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } else { if(!callSupplyDrop(self, 6)) { return SCRIPT_OVERRIDE; } } float baseCooldownTime = getBaseCooldownTime("of_medical_sup_6"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler of_tactical_sup_1() { if(!canCallSupplyDrop(self) ) return SCRIPT_OVERRIDE; if (!combatStandardAction("of_tactical_sup_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } else { if(!callSupplyDrop(self, 7)) { return SCRIPT_OVERRIDE; } } float baseCooldownTime = getBaseCooldownTime("of_tactical_sup_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler of_tactical_sup_2() { if(!canCallSupplyDrop(self) ) return SCRIPT_OVERRIDE; if (!combatStandardAction("of_tactical_sup_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } else { if(!callSupplyDrop(self, 8)) { return SCRIPT_OVERRIDE; } } float baseCooldownTime = getBaseCooldownTime("of_tactical_sup_2"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler of_tactical_sup_3() { if(!canCallSupplyDrop(self) ) return SCRIPT_OVERRIDE; if (!combatStandardAction("of_tactical_sup_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } else { if(!callSupplyDrop(self, 9)) { return SCRIPT_OVERRIDE; } } float baseCooldownTime = getBaseCooldownTime("of_tactical_sup_3"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler of_tactical_sup_4() { if(!canCallSupplyDrop(self) ) return SCRIPT_OVERRIDE; if (!combatStandardAction("of_tactical_sup_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } else { if(!callSupplyDrop(self, 10)) { return SCRIPT_OVERRIDE; } } float baseCooldownTime = getBaseCooldownTime("of_tactical_sup_4"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler of_tactical_sup_5() { if(!canCallSupplyDrop(self) ) return SCRIPT_OVERRIDE; if (!combatStandardAction("of_tactical_sup_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } else { if(!callSupplyDrop(self, 11)) { return SCRIPT_OVERRIDE; } } float baseCooldownTime = getBaseCooldownTime("of_tactical_sup_5"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler of_tactical_sup_6() { if(!canCallSupplyDrop(self) ) return SCRIPT_OVERRIDE; if (!combatStandardAction("of_tactical_sup_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } else { if(!callSupplyDrop(self, 12)) { return SCRIPT_OVERRIDE; } } float baseCooldownTime = getBaseCooldownTime("of_tactical_sup_6"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler of_reinforcements_1() { if (pet_lib.hasMaxStoredPetsOfType (self, pet_lib.PET_TYPE_NPC)) { sendSystemMessage (self, pet_lib.SID_SYS_CALL_MAX_DATAPAD); return SCRIPT_OVERRIDE; } if(!canCallSupplyDrop(self) || pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_NPC) ) return SCRIPT_OVERRIDE; boolean droidPets = pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_DROID); boolean npcPets = pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_NPC); if (droidPets || npcPets) { return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_reinforcements_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } else if(!callSupplyDrop(self, 13)) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_reinforcements_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler of_reinforcements_2() { if (pet_lib.hasMaxStoredPetsOfType (self, pet_lib.PET_TYPE_NPC)) { sendSystemMessage (self, pet_lib.SID_SYS_CALL_MAX_DATAPAD); return SCRIPT_OVERRIDE; } if(!canCallSupplyDrop(self) || pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_NPC) ) return SCRIPT_OVERRIDE; boolean droidPets = pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_DROID); boolean npcPets = pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_NPC); if (droidPets || npcPets) { return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_reinforcements_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } else if(!callSupplyDrop(self, 14)) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_reinforcements_2"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler of_reinforcements_3() { if (pet_lib.hasMaxStoredPetsOfType (self, pet_lib.PET_TYPE_NPC)) { sendSystemMessage (self, pet_lib.SID_SYS_CALL_MAX_DATAPAD); return SCRIPT_OVERRIDE; } if(!canCallSupplyDrop(self) || pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_NPC) ) return SCRIPT_OVERRIDE; boolean droidPets = pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_DROID); boolean npcPets = pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_NPC); if (droidPets || npcPets) { return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_reinforcements_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } else if(!callSupplyDrop(self, 15)) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_reinforcements_3"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler of_reinforcements_4() { if (pet_lib.hasMaxStoredPetsOfType (self, pet_lib.PET_TYPE_NPC)) { sendSystemMessage (self, pet_lib.SID_SYS_CALL_MAX_DATAPAD); return SCRIPT_OVERRIDE; } if(!canCallSupplyDrop(self) || pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_NPC) ) return SCRIPT_OVERRIDE; boolean droidPets = pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_DROID); boolean npcPets = pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_NPC); if (droidPets || npcPets) { return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_reinforcements_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } else if(!callSupplyDrop(self, 16)) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_reinforcements_4"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler of_reinforcements_5() { if (pet_lib.hasMaxStoredPetsOfType (self, pet_lib.PET_TYPE_NPC)) { sendSystemMessage (self, pet_lib.SID_SYS_CALL_MAX_DATAPAD); return SCRIPT_OVERRIDE; } if(!canCallSupplyDrop(self) || pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_NPC) ) return SCRIPT_OVERRIDE; boolean droidPets = pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_DROID); boolean npcPets = pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_NPC); if (droidPets || npcPets) { return SCRIPT_OVERRIDE; } if (!combatStandardAction("of_reinforcements_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } else if(!callSupplyDrop(self, 17)) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_reinforcements_5"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler of_firepower_1() { if (!combatStandardAction("of_firepower_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_firepower_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_firepower") * 60; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); doInspiredAction(self); return SCRIPT_CONTINUE; } commandHandler of_deb_def_4() { if (!combatStandardAction("of_deb_def_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_deb_def_4"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_paint"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10)); return SCRIPT_CONTINUE; } commandHandler of_deb_def_5() { if (!combatStandardAction("of_deb_def_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_deb_def_5"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_paint"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10)); return SCRIPT_CONTINUE; } commandHandler of_deb_def_6() { if (!combatStandardAction("of_deb_def_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_deb_def_6"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_paint"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10)); return SCRIPT_CONTINUE; } commandHandler of_deb_def_7() { if (!combatStandardAction("of_deb_def_7", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_deb_def_7"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_paint"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10)); return SCRIPT_CONTINUE; } commandHandler of_deb_def_8() { if (!combatStandardAction("of_deb_def_8", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_deb_def_8"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_paint"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10)); doInspiredAction(self); return SCRIPT_CONTINUE; } commandHandler of_decapitate_1() { if (!combatStandardAction("of_decapitate_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler of_decapitate_2() { if (!combatStandardAction("of_decapitate_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler of_decapitate_3() { if (!combatStandardAction("of_decapitate_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler of_decapitate_4() { if (!combatStandardAction("of_decapitate_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler of_decapitate_5() { if (!combatStandardAction("of_decapitate_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler of_decapitate_6() { if (!combatStandardAction("of_decapitate_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doInspiredAction(self); return SCRIPT_CONTINUE; } commandHandler of_vortex_1() { if (!combatStandardAction("of_vortex_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler of_vortex_2() { if (!combatStandardAction("of_vortex_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler of_vortex_3() { if (!combatStandardAction("of_vortex_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler of_vortex_4() { if (!combatStandardAction("of_vortex_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler of_vortex_5() { if (!combatStandardAction("of_vortex_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler of_vortex_6() { if (!combatStandardAction("of_vortex_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doInspiredAction(self); return SCRIPT_CONTINUE; } commandHandler of_drillmaster_1() { if (!combatStandardAction("of_drillmaster_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_drillmaster_1"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff"); baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) ); if(baseCooldownTime < 0) { baseCooldownTime = 0.0f; } setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime); doInspiredAction(self); return SCRIPT_CONTINUE; } commandHandler of_stimulator_1() { if (!combatStandardAction("of_stimulator_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_stimulator_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_purge"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); doInspiredAction(self); return SCRIPT_CONTINUE; } commandHandler of_purge_1() { if (!combatStandardAction("of_purge_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("of_stimulator_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_purge"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); doInspiredAction(self); return SCRIPT_CONTINUE; } void doInspiredAction(obj_id officer) { int bonusChance = getEnhancedSkillStatisticModifierUncapped(officer, "of_inspired_action_chance"); if(bonusChance > 0) { int roll = rand(1, 99); int total = roll+bonusChance; if(total > 99) { buff.applyBuff(officer, officer, "of_inspiration_6"); showFlyText(officer, new string_id("set_bonus", "inspired_action_fly"), 2, colors.LEMONCHIFFON); prose_package pp = new prose_package(); pp = prose.setStringId(pp, new string_id("set_bonus", "inspired_action_fly_cbspam")); pp = prose.setTT(pp, officer); sendCombatSpamMessageProse(officer, pp, COMBAT_RESULT_GENERIC); } } return; } messageHandler of_last_words_recourse() { if(!buff.hasBuff(self, "of_last_words_recourse") ) buff.applyBuff(self, self, "of_last_words_recourse"); return SCRIPT_CONTINUE; } // End Officer Expertise commandHandler sm_disarm_trap_1() { if(!stealth.canDisarmTrap(self, target)) { return SCRIPT_OVERRIDE; } stealth.disarmTrap(self, target); return SCRIPT_CONTINUE; } commandHandler sm_ae_dm_1() { if (!combatStandardAction("sm_ae_dm_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_ae_dm_2() { if (!combatStandardAction("sm_ae_dm_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_ae_dm_3() { if (!combatStandardAction("sm_ae_dm_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_ae_dm_4() { if (!combatStandardAction("sm_ae_dm_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_ae_dm_5() { if (!combatStandardAction("sm_ae_dm_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_ae_dm_6() { if (!combatStandardAction("sm_ae_dm_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_ae_dm_melee_1() { if (!combatStandardAction("sm_ae_dm_melee_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_ae_dm_melee_2() { if (!combatStandardAction("sm_ae_dm_melee_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_ae_dm_melee_3() { if (!combatStandardAction("sm_ae_dm_melee_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_ae_dm_melee_4() { if (!combatStandardAction("sm_ae_dm_melee_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_ae_dm_melee_5() { if (!combatStandardAction("sm_ae_dm_melee_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_ae_dm_melee_6() { if (!combatStandardAction("sm_ae_dm_melee_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_ae_cover_fire() { if (!combatStandardAction("sm_ae_cover_fire", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_ae_dm_cc_1() { if (!combatStandardAction("sm_ae_dm_cc_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_ae_dm_cc_2() { if (!combatStandardAction("sm_ae_dm_cc_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_ae_dm_cc_3() { if (!combatStandardAction("sm_ae_dm_cc_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_ae_dm_cc_4() { if (!combatStandardAction("sm_ae_dm_cc_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_ae_dm_cc_5() { if (!combatStandardAction("sm_ae_dm_cc_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_ae_pin_down() { if (!combatStandardAction("sm_ae_pin_down", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_ae_dm_cc_melee_1() { if (!combatStandardAction("sm_ae_dm_cc_melee_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_ae_dm_cc_melee_2() { if (!combatStandardAction("sm_ae_dm_cc_melee_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_ae_dm_cc_melee_3() { if (!combatStandardAction("sm_ae_dm_cc_melee_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_ae_dm_cc_melee_4() { if (!combatStandardAction("sm_ae_dm_cc_melee_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_ae_dm_cc_melee_5() { if (!combatStandardAction("sm_ae_dm_cc_melee_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_del_dm_cc_1() { if (!combatStandardAction("sm_del_dm_cc_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_del_dm_cc_2() { if (!combatStandardAction("sm_del_dm_cc_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_del_dm_cc_3() { if (!combatStandardAction("sm_del_dm_cc_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_del_dm_cc_4() { if (!combatStandardAction("sm_del_dm_cc_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_del_dm_cc_5() { if (!combatStandardAction("sm_del_dm_cc_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_del_dm_cc_6() { if (!combatStandardAction("sm_del_dm_cc_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_fast_draw() { if (!combatStandardAction("sm_fast_draw", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_dm_1() { if (!combatStandardAction("sm_dm_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "sm_dm")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("sm_dm_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_dm_2() { if (!combatStandardAction("sm_dm_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "sm_dm")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("sm_dm_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_dm_3() { if (!combatStandardAction("sm_dm_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "sm_dm")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("sm_dm_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_dm_4() { if (!combatStandardAction("sm_dm_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "sm_dm")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("sm_dm_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_dm_5() { if (!combatStandardAction("sm_dm_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "sm_dm")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("sm_dm_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_dm_6() { if (!combatStandardAction("sm_dm_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "sm_dm")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("sm_dm_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_dm_7() { if (!combatStandardAction("sm_dm_7", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "sm_dm")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("sm_dm_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_precision_strike() { if (!combatStandardAction("sm_precision_strike", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_dm_melee_1() { if (!combatStandardAction("sm_dm_melee_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "sm_dm")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("sm_dm_melee_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_dm_melee_2() { if (!combatStandardAction("sm_dm_melee_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "sm_dm")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("sm_dm_melee_2"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_dm_melee_3() { if (!combatStandardAction("sm_dm_melee_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "sm_dm")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("sm_dm_melee_3"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_dm_melee_4() { if (!combatStandardAction("sm_dm_melee_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "sm_dm")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("sm_dm_melee_4"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_dm_melee_5() { if (!combatStandardAction("sm_dm_melee_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "sm_dm")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("sm_dm_melee_5"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_dm_melee_6() { if (!combatStandardAction("sm_dm_melee_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "sm_dm")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("sm_dm_melee_6"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_dm_melee_7() { if (!combatStandardAction("sm_dm_melee_7", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if(successfulFastAttack(self, "sm_dm")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("sm_dm_melee_7"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_concussion_shot() { if (!combatStandardAction("sm_concussion_shot", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_dm_cc_1() { if (!combatStandardAction("sm_dm_cc_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDireAbility(self, target, 0); float baseCooldownTime = getBaseCooldownTime("sm_dm_cc_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm_cc") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_dm_cc_2() { if (!combatStandardAction("sm_dm_cc_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDireAbility(self, target, 0); float baseCooldownTime = getBaseCooldownTime("sm_dm_cc_2"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm_cc") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_dm_cc_3() { if (!combatStandardAction("sm_dm_cc_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDireAbility(self, target, 0); float baseCooldownTime = getBaseCooldownTime("sm_dm_cc_3"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm_cc") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_dm_cc_4() { if (!combatStandardAction("sm_dm_cc_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDireAbility(self, target, 0); float baseCooldownTime = getBaseCooldownTime("sm_dm_cc_4"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm_cc") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_dm_cc_5() { if (!combatStandardAction("sm_dm_cc_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDireAbility(self, target, 0); float baseCooldownTime = getBaseCooldownTime("sm_dm_cc_5"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm_cc") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_dm_cc_6() { if (!combatStandardAction("sm_dm_cc_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDireAbility(self, target, 0); float baseCooldownTime = getBaseCooldownTime("sm_dm_cc_6"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm_cc") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_dizzy() { if (!combatStandardAction("sm_dizzy", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_dm_cc_melee_1() { if (!combatStandardAction("sm_dm_cc_melee_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDireAbility(self, target, 0); float baseCooldownTime = getBaseCooldownTime("sm_dm_cc_melee_1"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm_cc") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_dm_cc_melee_2() { if (!combatStandardAction("sm_dm_cc_melee_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDireAbility(self, target, 0); float baseCooldownTime = getBaseCooldownTime("sm_dm_cc_melee_2"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm_cc") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_dm_cc_melee_3() { if (!combatStandardAction("sm_dm_cc_melee_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDireAbility(self, target, 0); float baseCooldownTime = getBaseCooldownTime("sm_dm_cc_melee_3"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm_cc") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_dm_cc_melee_4() { if (!combatStandardAction("sm_dm_cc_melee_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDireAbility(self, target, 0); float baseCooldownTime = getBaseCooldownTime("sm_dm_cc_melee_4"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm_cc") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_dm_cc_melee_5() { if (!combatStandardAction("sm_dm_cc_melee_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDireAbility(self, target, 0); float baseCooldownTime = getBaseCooldownTime("sm_dm_cc_melee_5"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm_cc") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_dm_cc_melee_6() { if (!combatStandardAction("sm_dm_cc_melee_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doDireAbility(self, target, 0); float baseCooldownTime = getBaseCooldownTime("sm_dm_cc_melee_6"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm_cc") / 10; setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_dm_dot_1() { if (!combatStandardAction("sm_dm_dot_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_dm_dot_2() { if (!combatStandardAction("sm_dm_dot_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_dm_dot_3() { if (!combatStandardAction("sm_dm_dot_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_dm_dot_4() { if (!combatStandardAction("sm_dm_dot_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_dm_dot_melee_1() { if (!combatStandardAction("sm_dm_dot_melee_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_dm_dot_melee_2() { if (!combatStandardAction("sm_dm_dot_melee_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_dm_dot_melee_3() { if (!combatStandardAction("sm_dm_dot_melee_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_dm_dot_melee_4() { if (!combatStandardAction("sm_dm_dot_melee_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_bad_odds_1() { if (!combatStandardAction("sm_bad_odds_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_bad_odds_2() { if (!combatStandardAction("sm_bad_odds_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_bad_odds_3() { if (!combatStandardAction("sm_bad_odds_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_bad_odds_4() { if (!combatStandardAction("sm_bad_odds_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_bad_odds_5() { if (!combatStandardAction("sm_bad_odds_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_sh_0() { if(!healing.isDamaged(self)) { sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("sm_sh_0", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_sh_1() { if(!healing.isDamaged(self)) { sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("sm_sh_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_sh_2() { if(!healing.isDamaged(self)) { sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("sm_sh_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_sh_3() { if(!healing.isDamaged(self)) { sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("sm_sh_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_summon_smuggler() { if (!combatStandardAction("sm_summon_smuggler", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } else { if(!callFavor(self, 0)) { return SCRIPT_OVERRIDE; } } return SCRIPT_CONTINUE; } commandHandler sm_summon_medic() { if (!combatStandardAction("sm_summon_medic", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } else { if(!callFavor(self, 1)) { return SCRIPT_OVERRIDE; } } return SCRIPT_CONTINUE; } commandHandler sm_sly_lie() { if (!smuggler.canSlyLie(self)) { return SCRIPT_OVERRIDE; } if (!combatStandardAction("sm_sly_lie", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if (!smuggler.doSlyLie(self)) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_fast_talk() { if (isIdValid(target) && !smuggler.canFastTalk(self, target)) { return SCRIPT_OVERRIDE; } if (!combatStandardAction("sm_fast_talk", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } if (!smuggler.doFastTalk(self, target)) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_skullduggery() { if(!combatStandardAction("sm_skullduggery", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_impossible_odds() { if(!combatStandardAction("sm_impossible_odds", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_nerf_herder() { if(!combatStandardAction("sm_nerf_herder", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_pistol_whip_1() { if(!combatStandardAction("sm_pistol_whip_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_pistol_whip_2() { if(!combatStandardAction("sm_pistol_whip_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_pistol_whip_3() { if(!combatStandardAction("sm_pistol_whip_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_pistol_whip_4() { if(!combatStandardAction("sm_pistol_whip_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_shoot_first_1() { // Shoot first allows a smuggler to initiate combat with a bounty hunter hunting them. if(isBeingHuntedByBountyHunter(self, target)) { pvpSetPersonalEnemyFlag(self, target); pvpSetPersonalEnemyFlag(target, self); } if(!combatStandardAction("sm_shoot_first_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_shoot_first_2() { // Shoot first allows a smuggler to initiate combat with a bounty hunter hunting them. if(isBeingHuntedByBountyHunter(self, target)) { pvpSetPersonalEnemyFlag(self, target); pvpSetPersonalEnemyFlag(target, self); } if(!combatStandardAction("sm_shoot_first_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_shoot_first_3() { // Shoot first allows a smuggler to initiate combat with a bounty hunter hunting them. if(isBeingHuntedByBountyHunter(self, target)) { pvpSetPersonalEnemyFlag(self, target); pvpSetPersonalEnemyFlag(target, self); } if(!combatStandardAction("sm_shoot_first_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_shoot_first_4() { // Shoot first allows a smuggler to initiate combat with a bounty hunter hunting them. if(isBeingHuntedByBountyHunter(self, target)) { pvpSetPersonalEnemyFlag(self, target); pvpSetPersonalEnemyFlag(target, self); } if(!combatStandardAction("sm_shoot_first_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_shoot_first_5() { // Shoot first allows a smuggler to initiate combat with a bounty hunter hunting them. if(isBeingHuntedByBountyHunter(self, target)) { pvpSetPersonalEnemyFlag(self, target); pvpSetPersonalEnemyFlag(target, self); } if(!combatStandardAction("sm_shoot_first_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_inspect_cargo() { obj_id player = self; smuggler.inspectCorpseForContraband(player, target); return SCRIPT_CONTINUE; } commandHandler sm_spot_a_sucker_1() { if (!combatStandardAction("sm_spot_a_sucker_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } else { int glanceMod = (int)getEnhancedSkillStatisticModifierUncapped(self, "expertise_spot_a_sucker_glance_chance"); int criticalMod = (int)getEnhancedSkillStatisticModifierUncapped(self, "expertise_spot_a_sucker_critical_decrease"); int damageDecrease = (int)getEnhancedSkillStatisticModifierUncapped(self, "expertise_spot_a_sucker_damage_decrease_chance"); // debugSpeakMsg(self, "sm_spot_a_sucker_1 glanceMod: " + glanceMod + " criticalMod: " + criticalMod + " damageDecrease: " + damageDecrease); if(damageDecrease >= 40) { buff.applyBuff(target, self, "sm_spot_a_sucker_1_7"); } else if(damageDecrease >= 20) { buff.applyBuff(target, self, "sm_spot_a_sucker_1_6"); } else if(glanceMod >= 50) { buff.applyBuff(target, self, "sm_spot_a_sucker_1_5"); } else if(glanceMod >= 25) { buff.applyBuff(target, self, "sm_spot_a_sucker_1_4"); } else if(criticalMod >= 50) { buff.applyBuff(target, self, "sm_spot_a_sucker_1_3"); } else if(criticalMod >= 25) { buff.applyBuff(target, self, "sm_spot_a_sucker_1_2"); } else { buff.applyBuff(target, self, "sm_spot_a_sucker_1_1"); } } return SCRIPT_CONTINUE; } commandHandler sm_spot_a_sucker_2() { if (!combatStandardAction("sm_spot_a_sucker_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } else { int glanceMod = (int)getEnhancedSkillStatisticModifierUncapped(self, "expertise_spot_a_sucker_glance_chance"); int criticalMod = (int)getEnhancedSkillStatisticModifierUncapped(self, "expertise_spot_a_sucker_critical_decrease"); int damageDecrease = (int)getEnhancedSkillStatisticModifierUncapped(self, "expertise_spot_a_sucker_damage_decrease_chance"); // debugSpeakMsg(self, "sm_spot_a_sucker_2 glanceMod: " + glanceMod + " criticalMod: " + criticalMod + " damageDecrease: " + damageDecrease); if(damageDecrease >= 40) { buff.applyBuff(target, self, "sm_spot_a_sucker_2_7"); } else if(damageDecrease >= 20) { buff.applyBuff(target, self, "sm_spot_a_sucker_2_6"); } else if(glanceMod >= 50) { buff.applyBuff(target, self, "sm_spot_a_sucker_2_5"); } else if(glanceMod >= 25) { buff.applyBuff(target, self, "sm_spot_a_sucker_2_4"); } else if(criticalMod >= 50) { buff.applyBuff(target, self, "sm_spot_a_sucker_2_3"); } else if(criticalMod >= 25) { buff.applyBuff(target, self, "sm_spot_a_sucker_2_2"); } else { buff.applyBuff(target, self, "sm_spot_a_sucker_2_1"); } } return SCRIPT_CONTINUE; } commandHandler sm_spot_a_sucker_3() { if (!combatStandardAction("sm_spot_a_sucker_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } else { int glanceMod = (int)getEnhancedSkillStatisticModifierUncapped(self, "expertise_spot_a_sucker_glance_chance"); int criticalMod = (int)getEnhancedSkillStatisticModifierUncapped(self, "expertise_spot_a_sucker_critical_decrease"); int damageDecrease = (int)getEnhancedSkillStatisticModifierUncapped(self, "expertise_spot_a_sucker_damage_decrease_chance"); // debugSpeakMsg(self, "sm_spot_a_sucker_3 glanceMod: " + glanceMod + " criticalMod: " + criticalMod + " damageDecrease: " + damageDecrease); if(damageDecrease >= 40) { buff.applyBuff(target, self, "sm_spot_a_sucker_3_7"); } else if(damageDecrease >= 20) { buff.applyBuff(target, self, "sm_spot_a_sucker_3_6"); } else if(glanceMod >= 50) { buff.applyBuff(target, self, "sm_spot_a_sucker_3_5"); } else if(glanceMod >= 25) { buff.applyBuff(target, self, "sm_spot_a_sucker_3_4"); } else if(criticalMod >= 50) { buff.applyBuff(target, self, "sm_spot_a_sucker_3_3"); } else if(criticalMod >= 25) { buff.applyBuff(target, self, "sm_spot_a_sucker_3_2"); } else { buff.applyBuff(target, self, "sm_spot_a_sucker_3_1"); } } return SCRIPT_CONTINUE; } commandHandler sm_spot_a_sucker_4() { if (!combatStandardAction("sm_spot_a_sucker_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } else { int glanceMod = (int)getEnhancedSkillStatisticModifierUncapped(self, "expertise_spot_a_sucker_glance_chance"); int criticalMod = (int)getEnhancedSkillStatisticModifierUncapped(self, "expertise_spot_a_sucker_critical_decrease"); int damageDecrease = (int)getEnhancedSkillStatisticModifierUncapped(self, "expertise_spot_a_sucker_damage_decrease_chance"); // debugSpeakMsg(self, "sm_spot_a_sucker_4 glanceMod: " + glanceMod + " criticalMod: " + criticalMod + " damageDecrease: " + damageDecrease); if(damageDecrease >= 40) { buff.applyBuff(target, self, "sm_spot_a_sucker_4_7"); } else if(damageDecrease >= 20) { buff.applyBuff(target, self, "sm_spot_a_sucker_4_6"); } else if(glanceMod >= 50) { buff.applyBuff(target, self, "sm_spot_a_sucker_4_5"); } else if(glanceMod >= 25) { buff.applyBuff(target, self, "sm_spot_a_sucker_4_4"); } else if(criticalMod >= 50) { buff.applyBuff(target, self, "sm_spot_a_sucker_4_3"); } else if(criticalMod >= 25) { buff.applyBuff(target, self, "sm_spot_a_sucker_4_2"); } else { buff.applyBuff(target, self, "sm_spot_a_sucker_4_1"); } } return SCRIPT_CONTINUE; } commandHandler sm_off_the_cuff() { if (!combatStandardAction("sm_off_the_cuff", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } int doubleDeal = (int)getSkillStatisticModifier(self, "expertise_double_deal_chance"); if(rand(0,99) < doubleDeal) { setCommandTimerValue(self, TIMER_COOLDOWN, 0); showFlyTextPrivate(self, self, new string_id("combat_effects", "double_deal"), 1.5f, colors.ORANGERED); } return SCRIPT_CONTINUE; } commandHandler sm_end_of_the_line() { if (!combatStandardAction("sm_end_of_the_line", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler expertise_sm_card_ranged_proc() { if(!buff.hasBuff(self, "sm_double_hit")) { return SCRIPT_CONTINUE; } if (!combatStandardAction("expertise_sm_card_ranged_proc", self, target, params, "", "")) { return SCRIPT_CONTINUE; } return SCRIPT_CONTINUE; } commandHandler expertise_sm_card_melee_proc() { if(!buff.hasBuff(self, "sm_double_hit")) { return SCRIPT_CONTINUE; } if (!combatStandardAction("expertise_sm_card_melee_proc", self, target, params, "", "")) { return SCRIPT_CONTINUE; } return SCRIPT_CONTINUE; } boolean callJunkDealer(obj_id self) { location loc = getLocation(self); if(!isIdValid(loc.cell)) { int x = rand(-3, 3); int z = rand(-3, 3); loc.x += x; loc.z += z; } obj_id buddy = create.object("junk_dealer_smuggler", loc, getLevel(self)); if(!isIdValid(buddy)) return false; if(!isIdValid(loc.cell)) { loc.x += 30; setHomeLocation(buddy, loc); } setMaster(buddy, self); utils.setScriptVar(self, "junk_dealer_smuggler", buddy); return true; } commandHandler sm_off_the_books() { if(utils.hasScriptVar(self, "junk_dealer_smuggler")) { obj_id dealer = utils.getObjIdScriptVar(self, "junk_dealer_smuggler"); if(isIdValid(dealer) && exists(dealer)) { sendSystemMessage(self, new string_id("spam", "dealer_already_exists")); return SCRIPT_OVERRIDE; } else { utils.removeScriptVar(self, "junk_dealer_smuggler"); } } if (!combatStandardAction("sm_off_the_books", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } else { if(!callJunkDealer(self)) { return SCRIPT_OVERRIDE; } } return SCRIPT_CONTINUE; } commandHandler sm_inside_information() { if (!combatStandardAction("sm_inside_information", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } obj_id infoTarget; // Determine if you are getting information for someone other than yourself. if(isIdValid(target) && isPlayer(target)) { infoTarget = target; if (factions.getFactionStatus(self, target) == factions.STATUS_ENEMY) { return SCRIPT_OVERRIDE; } } else { infoTarget = self; } // Anti-spam prevention for self if(bounty_hunter.isSpammingBountyCheck(self, false)) { sendSystemMessage(self, new string_id("bounty_hunter", "sm_calling_contact_too_often")); return SCRIPT_OVERRIDE; } // Anti-spam prevention for target if(infoTarget != self && bounty_hunter.isSpammingBountyCheck(infoTarget, false)) { sendSystemMessage(self, new string_id("bounty_hunter", "sm_calling_contact_too_often_target")); return SCRIPT_OVERRIDE; } // Cannot check for a bounty on a dead target if(isDead(infoTarget) || isIncapacitated(infoTarget)) { return SCRIPT_OVERRIDE; } int amount = getIntObjVar(infoTarget, "bounty.amount"); // Is the bounty amount set? if(amount <= 0) { prose_package pp = new prose_package (); pp.stringId = new string_id ("bounty_hunter", "sm_no_bounty_target_player"); prose.setTT(pp, getName(self)); if(infoTarget != self) { sendSystemMessageProse(infoTarget, pp); sendSystemMessage(self, new string_id("bounty_hunter", "sm_no_bounty_target")); utils.setScriptVar(infoTarget, "bountyCheckFloodControl", getGameTime() + 600); } else { sendSystemMessage(self, new string_id("bounty_hunter", "sm_no_bounty_self")); } utils.setScriptVar(self, "bountyCheckFloodControl", getGameTime() + 60); return SCRIPT_CONTINUE; } obj_id[] bounties = getJediBounties(infoTarget); // How many bounty hunters are after the Smuggler? if(bounties != null && bounties.length > 0) { prose_package pp = new prose_package (); pp.stringId = new string_id ("bounty_hunter", "sm_bounty_amount_target_with_bounties"); prose.setDI(pp, amount); sendSystemMessageProse(infoTarget, pp); for(int i = 0; i < bounties.length; i++) { obj_id bountyHunter = bounties[i]; if(isIdValid(bountyHunter)) { dictionary messageParams = new dictionary(); messageParams.put("smuggler", infoTarget); messageTo(bountyHunter, "handleSmugglerGetLocationInfo", messageParams, 1.0f, false); } } utils.setScriptVar(self, "bountyCheckFloodControl", getGameTime() + 60); } else { prose_package pp = new prose_package (); pp.stringId = new string_id ("bounty_hunter", "sm_bounty_amount_target_no_bounties"); prose.setDI(pp, amount); sendSystemMessageProse(infoTarget, pp); utils.setScriptVar(self, "bountyCheckFloodControl", getGameTime() + 60); } if(infoTarget != self) { prose_package pm = new prose_package(); pm.stringId = new string_id ("bounty_hunter", "sm_bounty_notified_target"); prose.setTT(pm, getName(infoTarget)); sendSystemMessageProse(self, pm); utils.setScriptVar(infoTarget, "bountyCheckFloodControl", getGameTime() + 600); } return SCRIPT_CONTINUE; } commandHandler sm_false_hope() { if (!combatStandardAction("sm_false_hope", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("sm_false_hope"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_false_hope"); // debugSpeakMsg(self, "baseCooldownTime: " + baseCooldownTime + " cooldownTimeMod: " + cooldownTimeMod + " diff: " + (baseCooldownTime - cooldownTimeMod)); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sm_break_the_deal() { if (!combatStandardAction("sm_break_the_deal", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_narrow_escape_1() { if (!combatStandardAction("sm_narrow_escape_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_narrow_escape_2() { if (!combatStandardAction("sm_narrow_escape_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_narrow_escape_3() { if (!combatStandardAction("sm_narrow_escape_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_narrow_escape_4() { if (!combatStandardAction("sm_narrow_escape_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_buff_invis_ally_1() { if(!stealth.canPerformCamouflageAlly(self, target) || !combatStandardAction("sm_buff_invis_ally_1", self, target, params, "", "") || !isInAttackRange(self, target, "sm_buff_invis_ally_1", false)) { return SCRIPT_OVERRIDE; } int minPower = 10; int maxPower = 30; float difference = maxPower - minPower; float ratio = getLevel(self)/90; int duration = (int) Math.ceil(minPower + (difference * ratio)); buff.applyBuff(target, self, "invis_sm_buff_invis_1"); return SCRIPT_CONTINUE; } commandHandler sm_how_are_you() { if (!combatStandardAction("sm_how_are_you", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } doMedicEvasion(self); int randomPhrase = rand(0,75); if(randomPhrase < 5) chat.chat(self, chat.CHAT_SAY, new string_id("set_bonus", "sm_blather_"+randomPhrase)); return SCRIPT_CONTINUE; } commandHandler expertise_sm_ranged_shot_proc() { if (!combatStandardAction("expertise_sm_ranged_shot_proc", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler expertise_sm_melee_proc() { if (!combatStandardAction("expertise_sm_melee_proc", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler expertise_sm_melee_stun_proc() { if (!combatStandardAction("expertise_sm_melee_stun_proc", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler expertise_sm_feeling_lucky_chance_proc() { if (!combatStandardAction("expertise_sm_feeling_lucky_chance_proc", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler fs_buff_invis_1() { if(!stealth.canPerformForceCloak(self) || !combatStandardAction("fs_buff_invis_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler steal() { if (!stealth.hasInvisibleBuff(self) && !buff.hasBuff(self, "sp_smoke_mirrors")) { return SCRIPT_OVERRIDE; } if(!stealth.canSteal(self, target) || !combatStandardAction("steal", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } stealth.steal(self, target); return SCRIPT_CONTINUE; } //smoke bomb commandHandler sp_buff_invis_1() { //Game Update 10, we tied WaT to smoke bomb, so now if you have the WaT skill //when you use your smoke bomb, it will put in you WaT. dictionary blankMsg = new dictionary(); if(hasSkill(self, "expertise_sp_without_a_trace_1")) { if (!stealth.canPerformWithoutTrace(self) || !combatStandardAction("sp_without_a_trace", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } utils.setScriptVar(self, "sp_without_a_trace", 1); messageTo(self, "withoutTraceTimerExpired", blankMsg, 30, false); if(successfulFastAttack(self, "sp_perfect", "perfect_opportunity_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); buff.applyBuff(self, self, "sp_set_perfect_opportunity"); return SCRIPT_CONTINUE; } if(successfulFastAttack(self, "sp_smoke", "flawless_getaway_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("sp_buff_invis_1"); if(baseCooldownTime < 0) { baseCooldownTime = 0; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_sp_smoke"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } if (!stealth.canPerformSmokeGrenade(self)) { return SCRIPT_OVERRIDE; } if(!combatStandardAction("sp_buff_invis_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } utils.setScriptVar(self, "sp_smoke_bomb", 1); messageTo(self, "smokeBombTimerExpired", blankMsg, 10, false); if(successfulFastAttack(self, "sp_perfect", "perfect_opportunity_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); buff.applyBuff(self, self, "sp_set_perfect_opportunity"); return SCRIPT_CONTINUE; } if(successfulFastAttack(self, "sp_smoke", "flawless_getaway_fly")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_CONTINUE; } float baseCooldownTime = getBaseCooldownTime("sp_buff_invis_1"); if(baseCooldownTime < 0) { baseCooldownTime = 0; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_sp_smoke"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sp_burst_of_shadows() { if (!stealth.hasInvisibleBuff(self) && !buff.hasBuff(self, "sp_smoke_mirrors")) { return SCRIPT_OVERRIDE; } if (!combatStandardAction("sp_burst_of_shadows", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("sp_burst_of_shadows"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_sp_burst_shadows"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sp_reveal_shadows() { if(!stealth.canDetectCamouflage(self) || !combatStandardAction("sp_reveal_shadows", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float detectSkill = getEnhancedSkillStatisticModifier(self, "detect_hidden"); float distance = stealth.BASE_DETECT_CAMOUFLAGE_DISTANCE + (detectSkill / 20); float detectChance = 75.0f; int distanceMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_sp_reveal_shadows_distance_increase"); int detectMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_sp_reveal_shadows_detect_chance_increase"); distance = distance + distanceMod; detectChance = detectChance + detectMod; stealth.detectCamouflage(self, true, true, distance, detectChance); float baseCooldownTime = getBaseCooldownTime("sp_reveal_shadows"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_sp_reveal_shadows"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sp_avoid_damage() { if (!combatStandardAction("sp_avoid_damage", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sp_preparation() { if (!combatStandardAction("sp_preparation", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("sp_preparation"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_sp_preparation"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } /*ommandHandler sp_buff_invis_2() { if (!stealth.canPerformSmokeGrenade(self) || !combatStandardAction("sp_buff_invis_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("sp_buff_invis_2"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_sp_smoke"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } commandHandler sp_buff_invis_3() { if (!stealth.canPerformSmokeGrenade(self) || !combatStandardAction("sp_buff_invis_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float baseCooldownTime = getBaseCooldownTime("sp_buff_invis_3"); if(baseCooldownTime < 0) { return SCRIPT_OVERRIDE; } float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_sp_smoke"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } */ commandHandler sp_buff_stealth_1() { // toggle buff off if need be string invis = stealth.getInvisBuff(self); if(invis != null && invis.equals("invis_sp_buff_stealth_1")) { buff.removeBuff(self, invis); return SCRIPT_OVERRIDE; } if(invis != null && (invis == "invis_sp_buff_invis_1")) { // Ok they are smoke bombed // Regular Stealth em buff.removeBuff(self, "invis_sp_buff_invis_1"); buff.applyBuff(self, self, "invis_sp_buff_stealth_1"); return SCRIPT_OVERRIDE; } if (!stealth.canPerformStealth(self) || !buff.canApplyBuff(self, "invis_sp_buff_stealth_1") || !combatStandardAction("sp_buff_stealth_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } /*if (invis == "invis_sp_buff_invis_1") { // Ok they are smoke bombed // Regular Stealth em buff.removeBuff(self, "invis_sp_buff_invis_1"); buff.applyBuff(self, self, "invis_sp_buff_stealth_1"); } */ return SCRIPT_CONTINUE; } /*commandHandler sp_buff_stealth_2() { if (!stealth.canPerformStealth(self) || !combatStandardAction("sp_buff_stealth_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sp_buff_stealth_3() { if (!stealth.canPerformStealth(self) || !combatStandardAction("sp_buff_stealth_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sp_buff_stealth_4() { // toggle buff off if need be string invis = stealth.getInvisBuff(self); if(invis != null && invis.equals("invis_sp_buff_stealth_4")) { buff.removeBuff(self, invis); return SCRIPT_OVERRIDE; } if (!stealth.canPerformStealth(self) || !combatStandardAction("sp_buff_stealth_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } */ commandHandler sp_decoy() { if (!stealth.canPerformSmokeGrenade(self)) { return SCRIPT_OVERRIDE; } obj_id decoy = stealth.createDecoy(self); if (!isIdValid(decoy)) return SCRIPT_OVERRIDE; obj_id[] haters = getWhoIsTargetingMe(self); int diversionLevel = getEnhancedSkillStatisticModifierUncapped(self, "expertise_improved_decoy"); combat.sendCombatSpamMessage(self, new string_id("spam", "decoy_created")); if (haters == null || haters.length == 0) { if (diversionLevel == 2) buff.applyBuff(self, self, "invis_sp_diversion_stealth"); return SCRIPT_CONTINUE; } for (int i=0;i 7.0f) { sendSystemMessage(self, new string_id("spam", "stand_next_to_corpse") ); setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_OVERRIDE; } if(!combatStandardAction("bm_revive_pet_1", self, target, params, "", "")) { setCommandTimerValue(self, TIMER_COOLDOWN, 0f); return SCRIPT_OVERRIDE; } messageTo(self, "channelRevivePet", null, 0, false); float baseCooldownTime = getBaseCooldownTime("bm_revive_pet_1"); float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_bm_pet_revive_time"); setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod); return SCRIPT_CONTINUE; } messageHandler bm_paralytic_poison_recourse() { if(!buff.hasBuff(self, "bm_paralytic_poison_recourse") ) buff.applyBuff(self, self, "bm_paralytic_poison_recourse"); return SCRIPT_CONTINUE; } messageHandler handlePostureRestore() { stopClientEffectObjByLabel(self, "state_knockdown"); if (getPosture(self) == POSTURE_KNOCKED_DOWN) { setPostureClientImmediate(self, utils.getIntScriptVar(self, "combat.intKnockdownTime.posture")); } return SCRIPT_CONTINUE; } messageHandler performHateTick() { obj_id attacker = params.getObjId("attacker"); int hate = params.getInt("hate"); int tick = params.getInt("tick"); int duration = params.getInt("duration"); addHate(attacker, self, 0.0f); addHate(self, attacker, hate); if (duration < getGameTime()) messageTo(self, "performHateTick", params, tick, false); return SCRIPT_CONTINUE; } commandHandler combatTarget() { if (!isIdValid(target)) { return SCRIPT_OVERRIDE; } setTarget(self, target); return SCRIPT_OVERRIDE; } messageHandler updateCrowdControlEffect() { boolean effectActive = false; int[] buffList = buff.getAllBuffs(self); if (buffList == null || buffList.length == 0) return SCRIPT_CONTINUE; prose_package pp = new prose_package(); for (int i = 0; i < buffList.length; i++) { if (movement.isStunEffect(buff.getBuffNameFromCrc(buffList[i]))) { effectActive = true; pp = prose.setStringId(pp, new string_id("combat_effects", "go_stunned")); showFlyTextPrivateProseWithFlags(self, self, pp, 1.5f, colors.LAWNGREEN, FLY_TEXT_FLAG_IS_SNARE ); } if (movement.isRoot(buffList[i])) { effectActive = true; pp = prose.setStringId(pp, new string_id("combat_effects", "go_rooted")); showFlyTextPrivateProseWithFlags(self, self, pp, 1.5f, colors.LAWNGREEN, FLY_TEXT_FLAG_IS_SNARE ); } if (movement.isSnare(buffList[i])) { effectActive = true; pp = prose.setStringId(pp, new string_id("combat_effects", "go_snare")); showFlyTextPrivateProseWithFlags(self, self, pp, 1.5f, colors.LAWNGREEN, FLY_TEXT_FLAG_IS_SNARE ); } } if (effectActive) messageTo (self, "updateCrowdControlEffect", null, 4f, false); return SCRIPT_CONTINUE; } commandHandler creatureMeleeAttack() { if (!combatStandardAction("creatureMeleeAttack", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler creatureRangedAttack() { if (!combatStandardAction("creatureRangedAttack", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler creatureBlindAttack() { if (!combatStandardAction("creatureBlindAttack", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler creatureDizzyAttack() { if (!combatStandardAction("creatureDizzyAttack", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler creatureStunAttack() { if (!combatStandardAction("creatureStunAttack", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler creatureIntimidationAttack() { if (!combatStandardAction("creatureIntimidationAttack", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler creatureKnockdownAttack() { if (!combatStandardAction("creatureKnockdownAttack", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler creaturePostureDownAttack() { if (!combatStandardAction("creaturePostureDownAttack", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler creaturePostureUpAttack() { if (!combatStandardAction("creaturePostureUpAttack", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler creatureAreaAttack() { if (!combatStandardAction("creatureAreaAttack", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler creatureAreaCombo() { if (!combatStandardAction("creatureAreaCombo", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler creatureAreaBleeding() { if (!combatStandardAction("creatureAreaBleeding", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler creatureAreaDisease() { if (!combatStandardAction("creatureAreaDisease", self, target, params, "creatureAreaDiseaseSuccess", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler creatureAreaPoison() { if (!combatStandardAction("creatureAreaPoison", self, target, params, "creatureAreaPoisonSuccess", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler creatureAreaKnockdown() { if (!combatStandardAction("creatureAreaKnockdown", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler creaturePoisonAttack() { if (!combatStandardAction("creaturePoisonAttack", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler creatureFireAttack() { if (!combatStandardAction("creatureFireAttack", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler creatureSnareAttack() { if (!combatStandardAction("creatureSnareAttack", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } messageHandler creatureAreaDiseaseSuccess() { obj_id[] defenders = params.getObjIdArray("defenders"); for (int i = 0; i < defenders.length; i++) { dot.applyDotEffect(defenders[i], self, dot.DOT_DISEASE, "creatureDiseaseAttack", HEALTH, 100, 300, 300); } return SCRIPT_CONTINUE; } messageHandler creatureAreaPoisonSuccess() { obj_id[] defenders = params.getObjIdArray("defenders"); for (int i = 0; i < defenders.length; i++) { if (dot.canApplyDotType(defenders[i], dot.DOT_POISON)) { dot.applyDotEffect(defenders[i], self, dot.DOT_POISON, "creaturePoisonAttack", HEALTH, 100, 150, 300); } } return SCRIPT_CONTINUE; } commandHandler knockdownRecovery() { if (!combatStandardAction("knockdownRecovery", self, target, params, "knockdownRecoverySuccess", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler stunRecovery() { if (!combatStandardAction("stunRecovery", self, target, params, "stunRecoverySuccess", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler blindRecovery() { if (!combatStandardAction("blindRecovery", self, target, params, "blindRecoverySuccess", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler dizzyRecovery() { if (!combatStandardAction("dizzyRecovery", self, target, params, "dizzyRecoverySuccess", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } messageHandler iceCreamRecourse() { if (!buff.hasBuff(self, "ice_cream_recourse")) buff.applyBuff(self, self, "ice_cream_recourse"); return SCRIPT_CONTINUE; } messageHandler dazeRecourse() { if (!buff.hasBuff(self, "dazeBlockDebuff")) buff.applyBuff(self, self, "dazeBlockDebuff"); return SCRIPT_CONTINUE; } messageHandler mezRecourse() { if (!buff.hasBuff(self, "mezBlockDebuff")) buff.applyBuff(self, self, "mezBlockDebuff"); return SCRIPT_CONTINUE; } messageHandler seetingAngerRecourse() { if (!buff.hasBuff(self, "seetingAnger_1")) buff.applyBuff(self, self, "seethingAnger_1"); return SCRIPT_CONTINUE; } messageHandler seetingAngerRecourse_1() { if (!buff.hasBuff(self, "seetingAnger_2")) buff.applyBuff(self, self, "seethingAnger_2"); return SCRIPT_CONTINUE; } messageHandler seetingAngerRecourse_2() { if (!buff.hasBuff(self, "seetingAnger_3")) buff.applyBuff(self, self, "seethingAnger_3"); return SCRIPT_CONTINUE; } messageHandler seetingAngerRecourse_3() { if (!buff.hasBuff(self, "seetingAnger_4")) buff.applyBuff(self, self, "seethingAnger_4"); return SCRIPT_CONTINUE; } commandHandler petSnareAttack() { if (!combatStandardAction("petSnareAttack", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler petPinAttack() { if (!combatStandardAction("petPinAttack", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler petBleedAttack() { if (!combatStandardAction("petBleedAttack", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler petIntimidateAttack() { if (!combatStandardAction("petIntimidateAttack", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler petStunAttack() { if (!combatStandardAction("petStunAttack", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler petBlindAttack() { if (!combatStandardAction("petBlindAttack", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler petKnockdownAttack() { if (!combatStandardAction("petKnockdownAttack", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler petDefenseBreakAttack() { if (!combatStandardAction("petDefenseBreakAttack", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler insidiousMalady() { if (!combatStandardAction("insidiousMalady", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler euphoria() { if (!combatStandardAction("euphoria", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler rampage() { if (!combatStandardAction("rampage", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler seethingAnger() { if (!combatStandardAction("seethingAnger", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler cloakOfLava() { if (!combatStandardAction("cloakOfLava", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler sherKarRage() { if (!combatStandardAction("sherKarRage", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler decrepitStrike() { if (!combatStandardAction("decrepitStrike", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler sk_shockWave() { if (!combatStandardAction("sk_shockWave", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_charge_1() { if (!combatStandardAction("bm_charge_1", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_charge_2() { if (!combatStandardAction("bm_charge_2", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_charge_3() { if (!combatStandardAction("bm_charge_3", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_charge_4() { if (!combatStandardAction("bm_charge_4", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_charge_5() { if (!combatStandardAction("bm_charge_5", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_trample() { if (!combatStandardAction("bm_trample", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_bite_1() { if (!combatStandardAction("bm_bite_1", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_bite_2() { if (!combatStandardAction("bm_bite_2", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_bite_3() { if (!combatStandardAction("bm_bite_3", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_bite_4() { if (!combatStandardAction("bm_bite_4", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_bite_5() { if (!combatStandardAction("bm_bite_5", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_puncture_1() { if (!combatStandardAction("bm_puncture_1", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_puncture_2() { if (!combatStandardAction("bm_puncture_2", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_puncture_3() { if (!combatStandardAction("bm_puncture_3", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_siphon_1() { if (!combatStandardAction("bm_siphon_1", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_siphon_2() { if (!combatStandardAction("bm_siphon_2", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_siphon_3() { if (!combatStandardAction("bm_siphon_3", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_siphon_4() { if (!combatStandardAction("bm_siphon_4", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_siphon_5() { if (!combatStandardAction("bm_siphon_5", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_hamstring_1() { if (!combatStandardAction("bm_hamstring_1", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_hamstring_2() { if (!combatStandardAction("bm_hamstring_2", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_hamstring_3() { if (!combatStandardAction("bm_hamstring_3", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_hamstring_4() { if (!combatStandardAction("bm_hamstring_4", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_hamstring_5() { if (!combatStandardAction("bm_hamstring_5", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_claw_1() { if (!combatStandardAction("bm_claw_1", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_claw_2() { if (!combatStandardAction("bm_claw_2", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_claw_3() { if (!combatStandardAction("bm_claw_3", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_claw_4() { if (!combatStandardAction("bm_claw_4", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_claw_5() { if (!combatStandardAction("bm_claw_5", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_slash_1() { if (!combatStandardAction("bm_slash_1", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_slash_2() { if (!combatStandardAction("bm_slash_2", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_slash_3() { if (!combatStandardAction("bm_slash_3", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_slash_4() { if (!combatStandardAction("bm_slash_4", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_slash_5() { if (!combatStandardAction("bm_slash_5", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_flank_1() { if (!combatStandardAction("bm_flank_1", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_flank_2() { if (!combatStandardAction("bm_flank_2", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_flank_3() { if (!combatStandardAction("bm_flank_3", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_bolster_armor_1() { if (!combatStandardAction("bm_bolster_armor_1", self, target, params, "", "", true)) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler bm_bolster_armor_2() { if (!combatStandardAction("bm_bolster_armor_2", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_bolster_armor_3() { if (!combatStandardAction("bm_bolster_armor_3", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_bolster_armor_4() { if (!combatStandardAction("bm_bolster_armor_4", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_bolster_armor_5() { if (!combatStandardAction("bm_bolster_armor_5", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_dampen_pain_1() { if (!combatStandardAction("bm_dampen_pain_1", self, target, params, "", "", true)) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler bm_dampen_pain_2() { if (!combatStandardAction("bm_dampen_pain_2", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_dampen_pain_3() { if (!combatStandardAction("bm_dampen_pain_3", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_dampen_pain_4() { if (!combatStandardAction("bm_dampen_pain_4", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_dampen_pain_5() { if (!combatStandardAction("bm_dampen_pain_5", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_shield_master() { if (!combatStandardAction("bm_shield_master", self, target, params, "", "", true)) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler bm_deflective_hide() { if (!combatStandardAction("bm_deflective_hide", self, target, params, "", "", true)) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler bm_defensive_1() { if (!combatStandardAction("bm_defensive_1", self, target, params, "", "", true)) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler bm_defensive_2() { if (!combatStandardAction("bm_defensive_2", self, target, params, "", "", true)) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler bm_defensive_3() { if (!combatStandardAction("bm_defensive_3", self, target, params, "", "", true)) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler bm_defensive_4() { if (!combatStandardAction("bm_defensive_4", self, target, params, "", "", true)) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler bm_defensive_5() { if (!combatStandardAction("bm_defensive_5", self, target, params, "", "", true)) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler bm_damage_poison_1() { if (!combatStandardAction("bm_damage_poison_1", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_damage_poison_2() { if (!combatStandardAction("bm_damage_poison_2", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_damage_poison_3() { if (!combatStandardAction("bm_damage_poison_3", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_damage_poison_4() { if (!combatStandardAction("bm_damage_poison_4", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_damage_poison_5() { if (!combatStandardAction("bm_damage_poison_5", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_damage_disease_1() { if (!combatStandardAction("bm_damage_disease_1", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_damage_disease_2() { if (!combatStandardAction("bm_damage_disease_2", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_damage_disease_3() { if (!combatStandardAction("bm_damage_disease_3", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_damage_disease_4() { if (!combatStandardAction("bm_damage_disease_4", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_damage_disease_5() { if (!combatStandardAction("bm_damage_disease_5", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_paralytic_poison() { if (!combatStandardAction("bm_paralytic_poison", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_enfeeble_1() { if (!combatStandardAction("bm_enfeeble_1", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_enfeeble_2() { if (!combatStandardAction("bm_enfeeble_2", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_enfeeble_3() { if (!combatStandardAction("bm_enfeeble_3", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_enfeeble_4() { if (!combatStandardAction("bm_enfeeble_4", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_enfeeble_5() { if (!combatStandardAction("bm_enfeeble_5", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_preperation() { if (!combatStandardAction("bm_preperation", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_stomp_1() { if (!combatStandardAction("bm_stomp_1", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_stomp_2() { if (!combatStandardAction("bm_stomp_2", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_stomp_3() { if (!combatStandardAction("bm_stomp_3", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_stomp_4() { if (!combatStandardAction("bm_stomp_4", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_stomp_5() { if (!combatStandardAction("bm_stomp_5", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_shaken_1() { if (!combatStandardAction("bm_shaken_1", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_shaken_2() { if (!combatStandardAction("bm_shaken_2", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_shaken_3() { if (!combatStandardAction("bm_shaken_3", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_wing_buffet_1() { if (!combatStandardAction("bm_wing_buffet_1", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_wing_buffet_2() { if (!combatStandardAction("bm_wing_buffet_2", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_wing_buffet_3() { if (!combatStandardAction("bm_wing_buffet_3", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_wing_buffet_4() { if (!combatStandardAction("bm_wing_buffet_4", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_wing_buffet_5() { if (!combatStandardAction("bm_wing_buffet_5", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_spit_1() { if (!combatStandardAction("bm_spit_1", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_spit_2() { if (!combatStandardAction("bm_spit_2", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_spit_3() { if (!combatStandardAction("bm_spit_3", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_spit_4() { if (!combatStandardAction("bm_spit_4", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_spit_5() { if (!combatStandardAction("bm_spit_5", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_kick_1() { if (!combatStandardAction("bm_kick_1", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_kick_2() { if (!combatStandardAction("bm_kick_2", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_kick_3() { if (!combatStandardAction("bm_kick_3", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_kick_4() { if (!combatStandardAction("bm_kick_4", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_kick_5() { if (!combatStandardAction("bm_kick_5", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_enrage() { if (!combatStandardAction("bm_enrage", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_frenzy() { if (!combatStandardAction("bm_frenzy", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler bm_provoke_1() { obj_id beast = beast_lib.getBeastOnPlayer(self); target = isIdValid(getTarget(beast)) ? getTarget(beast) : getIntendedTarget(self); if(!ai_lib.isTauntable(target)) return SCRIPT_OVERRIDE; if (!combatStandardAction("bm_provoke_1", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; beast_lib.doBmProvokeCommand(beast, target, 1); return SCRIPT_CONTINUE; } commandHandler bm_provoke_2() { obj_id beast = beast_lib.getBeastOnPlayer(self); target = isIdValid(getTarget(beast)) ? getTarget(beast) : getIntendedTarget(self); if(!ai_lib.isTauntable(target)) return SCRIPT_OVERRIDE; if (!combatStandardAction("bm_provoke_2", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; beast_lib.doBmProvokeCommand(beast, target, 2); return SCRIPT_CONTINUE; } commandHandler bm_provoke_3() { obj_id beast = beast_lib.getBeastOnPlayer(self); target = isIdValid(getTarget(beast)) ? getTarget(beast) : getIntendedTarget(self); if(!ai_lib.isTauntable(target)) return SCRIPT_OVERRIDE; if (!combatStandardAction("bm_provoke_3", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; beast_lib.doBmProvokeCommand(beast, target, 3); return SCRIPT_CONTINUE; } commandHandler bm_provoke_4() { obj_id beast = beast_lib.getBeastOnPlayer(self); target = isIdValid(getTarget(beast)) ? getTarget(beast) : getIntendedTarget(self); if(!ai_lib.isTauntable(target)) return SCRIPT_OVERRIDE; if (!combatStandardAction("bm_provoke_4", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; beast_lib.doBmProvokeCommand(beast, target, 4); return SCRIPT_CONTINUE; } commandHandler bm_provoke_5() { obj_id beast = beast_lib.getBeastOnPlayer(self); target = isIdValid(getTarget(beast)) ? getTarget(beast) : getIntendedTarget(self); if(!ai_lib.isTauntable(target)) return SCRIPT_OVERRIDE; if (!combatStandardAction("bm_provoke_5", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; beast_lib.doBmProvokeCommand(beast, target, 5); return SCRIPT_CONTINUE; } commandHandler fs_taunt() { //Make sure they are in a stance int stanceBuff = buff.getBuffOnTargetFromGroup(self, "fsDefStance"); if(stanceBuff == 0) return SCRIPT_OVERRIDE; target = isIdValid(getIntendedTarget(self)) ? getIntendedTarget(self): getTarget(self) ; if(!isIdValid(target) || !exists(target)) return SCRIPT_OVERRIDE; //can we taunt this? if(!ai_lib.isTauntable(target)) return SCRIPT_OVERRIDE; if(isPlayer(target) || beast_lib.isBeast(target)) { return SCRIPT_OVERRIDE; } obj_id topHateTarget = getHateTarget(target); // Target already hates me if(topHateTarget == self) { return SCRIPT_CONTINUE; } if (!combatStandardAction("fs_taunt", self, target, params, "", "", false)) { return SCRIPT_OVERRIDE; } combat.dsFsTaunt(self, target); return SCRIPT_CONTINUE; } commandHandler togglePetAutoRepeatOn() { beast_lib.setAbilityAutoRepeat(beast_lib.getBeastOnPlayer(self), params); return SCRIPT_CONTINUE; } commandHandler togglePetAutoRepeatOff() { beast_lib.unsetAbilityAutoRepeat(beast_lib.getBeastOnPlayer(self), params); return SCRIPT_CONTINUE; } commandHandler toggleBeastDefensive() { obj_id beast = beast_lib.getBeastOnPlayer(self); if (!isIdValid(beast) || !exists(beast)) return SCRIPT_OVERRIDE; if(isDead(beast)) { sendSystemMessage(self, beast_lib.SID_BEAST_CANT_WHEN_DEAD); return SCRIPT_OVERRIDE; } beast_lib.setBeastDefensive(beast, self, true); return SCRIPT_CONTINUE; } commandHandler toggleBeastPassive() { obj_id beast = beast_lib.getBeastOnPlayer(self); if (!isIdValid(beast) || !exists(beast)) return SCRIPT_OVERRIDE; if(isDead(beast)) { sendSystemMessage(self, beast_lib.SID_BEAST_CANT_WHEN_DEAD); return SCRIPT_OVERRIDE; } beast_lib.setBeastDefensive(beast, self, false); return SCRIPT_CONTINUE; } commandHandler bm_forage_enzyme_buff() { if (!combatStandardAction("bm_forage_enzyme_buff", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler devastating_strike() { if (!combatStandardAction("devastating_strike", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } /*************** Species Special Abilities **************************/ commandHandler human_ability_1() { if (!combatStandardAction("human_ability_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } showFlyText(self, new string_id("spam", "fly_human_ability_1"), 1.5f, colors.LEMONCHIFFON); return SCRIPT_CONTINUE; } commandHandler wookiee_ability_1() { if (!combatStandardAction("wookiee_ability_1", self, target, params, "", "")) return SCRIPT_OVERRIDE; showFlyText(self, new string_id("spam", "fly_wookiee_ability_1"), 1.5f, colors.LEMONCHIFFON); return SCRIPT_CONTINUE; } commandHandler rodian_ability_1() { if (!combatStandardAction("rodian_ability_1", self, target, params, "", "")) return SCRIPT_OVERRIDE; showFlyText(self, new string_id("spam", "fly_rodian_ability_1"), 1.5f, colors.LEMONCHIFFON); return SCRIPT_CONTINUE; } commandHandler bothan_ability_1() { if (!stealth.canPerformSmokeGrenade(self) || !combatStandardAction("bothan_ability_1", self, target, params, "", "") || !buff.canApplyBuff(target, "invis_bothan_ability_1")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler ithorian_ability_1() { if (!combatStandardAction("ithorian_ability_1", self, target, params, "", "")) return SCRIPT_OVERRIDE; float level = getLevel(self); float blockValue = level * (1000.0f/90.0f); buff.applyBuff(self, self, "ithorian_ability_1", 30.0f,blockValue); showFlyText(self, new string_id("spam", "fly_ithorian_ability_1"), 1.5f, colors.LEMONCHIFFON); return SCRIPT_CONTINUE; } commandHandler twilek_ability_1() { if (!combatStandardAction("twilek_ability_1", self, target, params, "", "")) return SCRIPT_OVERRIDE; showFlyText(self, new string_id("spam", "fly_twilek_ability_1"), 1.5f, colors.LEMONCHIFFON); return SCRIPT_CONTINUE; } commandHandler sullustan_ability_1() { if (!combatStandardAction("sullustan_ability_1", self, target, params, "", "")) return SCRIPT_OVERRIDE; showFlyText(self, new string_id("spam", "fly_sullustan_ability_1"), 1.5f, colors.LEMONCHIFFON); return SCRIPT_CONTINUE; } commandHandler moncal_ability_1() { if (!combatStandardAction("moncal_ability_1", self, target, params, "", "")) return SCRIPT_OVERRIDE; showFlyText(self, new string_id("spam", "fly_moncal_ability_1"), 1.5f, colors.LEMONCHIFFON); return SCRIPT_CONTINUE; } commandHandler trandoshan_ability_1() { if (!combatStandardAction("trandoshan_ability_1", self, target, params, "", "")) return SCRIPT_OVERRIDE; int level = getLevel(self); int healPerTick = level * 20; healing.startHealOverTime(self, self, "trandoshan_ability_1", 4.0f, 1.0f, healPerTick, true); showFlyText(self, new string_id("spam", "fly_trandoshan_ability_1"), 1.5f, colors.LEMONCHIFFON); return SCRIPT_CONTINUE; } commandHandler zabrak_ability_1() { if (!combatStandardAction("zabrak_ability_1", self, target, params, "", "")) return SCRIPT_OVERRIDE; int level = getLevel(self); int amount = level * 40; int actionBefore = getAttrib(self, ACTION); int healthDelta = healing.healDamage(self, self, HEALTH, amount); healing.healDamage(self, ACTION, amount); int actionDelta = getAttrib(self, ACTION) - actionBefore; prose_package pp = new prose_package(); pp = prose.setStringId(pp, new string_id("spam", "zabrak_equilibrium_spam")); pp = prose.setTT(pp, self); pp = prose.setDI(pp, healthDelta); healing.sendMedicalSpam(self, self, pp, true, true, true, COMBAT_RESULT_MEDICAL); prose_package ppp = new prose_package(); pp = prose.setStringId(ppp, new string_id("spam", "zabrak_equilibrium_spam_action")); pp = prose.setTT(ppp, self); pp = prose.setDI(ppp, actionDelta); healing.sendMedicalSpam(self, self, ppp, true, true, true, COMBAT_RESULT_MEDICAL); showFlyText(self, new string_id("spam", "fly_zabrak_ability_1"), 1.5f, colors.LEMONCHIFFON); return SCRIPT_CONTINUE; } commandHandler gcw_reward_comlink() { if (!faction_perk.executeComlinkReinforcements(self)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler trample_random() { if (!combatStandardAction("trample_random", self, target, params, "", "")) return SCRIPT_OVERRIDE; setLocation(self, getLocation(utils.getObjIdScriptVar(self, combat.CHARGE_TARGET))); return SCRIPT_CONTINUE; } commandHandler bodyguard() { if (!combatStandardAction("bodyguard", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler nandina_heal() { obj_id[] spawn_id = trial.getObjectsInDungeonWithObjVar(trial.getTop(self), "spawn_id"); if (spawn_id == null || spawn_id.length == 0) { return SCRIPT_CONTINUE; } obj_id gorvo = null; for (int i=0;i 0) { for(int i = 0; i < defenders.length; i++) { if(isIdValid(defenders[i]) && !isDead(defenders[i]) && isPlayer(defenders[i])) { filteredDefenders = utils.addElement(filteredDefenders, defenders[i]); } } } if(filteredDefenders != null && filteredDefenders.length > 0) { target = filteredDefenders[rand(0, filteredDefenders.length - 1)]; } if(!combatStandardAction("ig88_flame_thrower", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler ig88_flame_thrower_vertical() { if(!isIdValid(target)) { return SCRIPT_OVERRIDE; } location where = getLocation(target); // Width is an angle to the sides of your target; IE: 20 degree width is a total of 40 degrees. obj_id[] defenders = pvpGetTargetsInCone(self, self, where, 64, 10); resizeable obj_id[] filteredDefenders = new obj_id[0]; if(defenders != null && defenders.length > 0) { for(int i = 0; i < defenders.length; i++) { if(isIdValid(defenders[i]) && !isDead(defenders[i]) && isPlayer(defenders[i])) { filteredDefenders = utils.addElement(filteredDefenders, defenders[i]); } } } if(filteredDefenders != null && filteredDefenders.length > 0) { target = filteredDefenders[rand(0, filteredDefenders.length - 1)]; } if(!combatStandardAction("ig88_flame_thrower_vertical", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } obj_id getRocketTarget(obj_id self, obj_id target) { obj_id dungeon = getTopMostContainer(self); if(!isIdValid(dungeon)) { return target; } // Get a new target obj_id[] targets = trial.getNonStealthedTargetsInCell(dungeon, "r1"); if(targets == null || targets.length <= 0) { dictionary sessionDict = new dictionary(); messageTo(dungeon, "ig88_failed", sessionDict, 0, false); return target; } target = targets[rand(0, targets.length - 1)]; if(!isIdValid(target)) { debugSpeakMsg(self, "I couldn't find a valid target."); return target; } return target; } commandHandler gcw_rocket_launch() { if(!combatStandardAction("ig88_rocket_launch", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } // Rocket launch particle playClientEffectObj(self, "appearance/pt_gcw_rocket_launch.prt", self, ""); playClientEffectObj(self, "sound/wep_heavy_rocket_launcher.snd", self, ""); // Rocket target lock particle playClientEffectLoc(target, "appearance/pt_ig88_rocket_target.prt", getLocation(target), 0f); dictionary rocketParams = new dictionary(); rocketParams.put("loc", getLocation(target)); messageTo(self, "gcw_rocket_hit", rocketParams, 2f, false); removeObjVar(self, "ai.combat.oneShotAction"); removeObjVar(self, "oneShotActionComplete"); return SCRIPT_CONTINUE; } commandHandler gcw_rocket_launcher() { if(!combatStandardAction("ig88_rocket_launcher", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } messageHandler gcw_rocket_hit() { location loc = params.getLocation("loc"); // Rocket hit particle playClientEffectLoc(self, "appearance/pt_gcw_rocket_hit.prt", loc, 0f); return SCRIPT_CONTINUE; } commandHandler ig88_rocket_launch() { target = getRocketTarget(self, target); LOG("combat_actions", "gcw ig88_rocket_launch 1"); if(!combatStandardAction("ig88_rocket_launch", self, target, params, "", "")) { LOG("combat_actions", "gcw ig88_rocket_launch FAIL self: " + self + " target: " + target + " params: " + params); return SCRIPT_OVERRIDE; } // Rocket launch particle playClientEffectObj(self, "appearance/pt_ig88_rocket_launch.prt", self, ""); playClientEffectObj(self, "sound/wep_heavy_rocket_launcher.snd", self, ""); // Rocket target lock particle playClientEffectLoc(target, "appearance/pt_ig88_rocket_target.prt", getLocation(target), 0f); dictionary rocketParams = new dictionary(); rocketParams.put("loc", getLocation(target)); messageTo(self, "ig88_rocket_hit", rocketParams, 2f, false); removeObjVar(self, "ai.combat.oneShotAction"); removeObjVar(self, "oneShotActionComplete"); return SCRIPT_CONTINUE; } commandHandler ig88_rocket_launcher() { if(!combatStandardAction("ig88_rocket_launcher", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } messageHandler ig88_rocket_hit() { location loc = params.getLocation("loc"); // Rocket hit particle playClientEffectLoc(self, "appearance/pt_ig88_rocket_hit.prt", loc, 0f); return SCRIPT_CONTINUE; } commandHandler ig88_shockwave() { location loc = getLocation(self); string strLoc = "" + loc.x + " " + loc.y + " " + loc.z + " " + loc.cell + " " + loc.x + " " + loc.y + " " + loc.z; if(!combatStandardAction("ig88_shockwave", self, target, strLoc, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler ig88_grenade() { location loc = getLocation(self); string strLoc = "" + loc.x + " " + loc.y + " " + loc.z + " " + loc.cell + " " + loc.x + " " + loc.y + " " + loc.z; if(!combatStandardAction("ig88_grenade", self, target, strLoc, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler nandina_fester() { if (!combatStandardAction("nandina_fester", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler lelli_mine() { obj_id[] hateList = getHateList(self); resizeable obj_id[] vectorList = hateList; vectorList = utils.shuffleArray(vectorList); for (int i=0;i 0) { target2 = targets[rand(0, targets.length -1)]; } } if (isIdValid(target1)) { utils.setScriptVar(target1, "axkva_min", self); buff.applyBuff(target1, self, "axkva_crystalize"); } if (isIdValid(target2)) { utils.setScriptVar(target2, "axkva_min", self); buff.applyBuff(target2, self, "axkva_crystalize"); } return SCRIPT_CONTINUE; } messageHandler stasis_recourse() { if(!buff.hasBuff(self, "stasis_recourse") ) buff.applyBuff(self, self, "stasis_recourse"); return SCRIPT_CONTINUE; } commandHandler grenadier_cold() { location loc = getLocation(target); string targetLoc = ""+loc.x+" "+loc.y+" "+loc.z+" "+loc.cell+" "+loc.x+" "+loc.y+" "+loc.z; if (!combatStandardAction("grenadier_cold", self, target, targetLoc, "", "")) return SCRIPT_OVERRIDE; clearOneShotAction(self); return SCRIPT_CONTINUE; } commandHandler grenadier_heat() { location loc = getLocation(target); string targetLoc = ""+loc.x+" "+loc.y+" "+loc.z+" "+loc.cell+" "+loc.x+" "+loc.y+" "+loc.z; if (!combatStandardAction("grenadier_heat", self, target, targetLoc, "", "")) return SCRIPT_OVERRIDE; clearOneShotAction(self); return SCRIPT_CONTINUE; } commandHandler grenadier_acid() { location loc = getLocation(target); string targetLoc = ""+loc.x+" "+loc.y+" "+loc.z+" "+loc.cell+" "+loc.x+" "+loc.y+" "+loc.z; if (!combatStandardAction("grenadier_acid", self, target, targetLoc, "", "")) return SCRIPT_OVERRIDE; clearOneShotAction(self); return SCRIPT_CONTINUE; } commandHandler grenadier_kinetic() { location loc = getLocation(target); string targetLoc = ""+loc.x+" "+loc.y+" "+loc.z+" "+loc.cell+" "+loc.x+" "+loc.y+" "+loc.z; if (!combatStandardAction("grenadier_kinetic", self, target, targetLoc, "", "")) return SCRIPT_OVERRIDE; clearOneShotAction(self); return SCRIPT_CONTINUE; } void clearOneShotAction(obj_id self) { setObjVar(self, "ai.combat.oneShotAction", "non_attack"); } commandHandler krix_burn() { if (!combatStandardAction("krix_burn", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler ito_nerve_gas() { if(!combatStandardAction("ito_nerve_gas", self, target, params, "", "")) return SCRIPT_OVERRIDE; playClientEffectLoc(self, "appearance/pt_sd_ito_nerve_gas.prt", getLocation(self), 0); return SCRIPT_CONTINUE; } commandHandler kenkirk_droid_blast() { location loc = getLocation(target); string strLoc = "" + loc.x + " " + loc.y + " " + loc.z + " " + loc.cell + " " + loc.x + " " + loc.y + " " + loc.z; if(!combatStandardAction("kenkirk_droid_blast", self, target, strLoc, "", "")) return SCRIPT_OVERRIDE; playClientEffectLoc(target, "appearance/pt_sd_kenkirk_hallway_strike.prt", getLocation(target), 0f); return SCRIPT_CONTINUE; } commandHandler sd_obliterate() { if(!combatStandardAction("sd_obliterate", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler krix_megaburn() { if(!combatStandardAction("krix_megaburn", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler krix_megapatch() { if(!combatStandardAction("krix_megapatch", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler vicious_swing() { if(!combatStandardAction("vicious_swing", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler sp_action_regen() { if(!combatStandardAction("sp_action_regen", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler sm_modify_pistol_1() { obj_id module = utils.getStaticItemInInventory(self, "item_reward_modify_pistol_01_01"); if(!isIdValid(module) || getCount(module) <= 0) { sendSystemMessage(self, new string_id("spam", "pistol_module_missing")); return SCRIPT_OVERRIDE; } if(buff.hasBuff(self, "sm_modify_pistol_1") || buff.hasBuff(self, "sm_modify_pistol_2") || buff.hasBuff(self, "sm_modify_pistol_3")) { sendSystemMessage(self, new string_id("spam", "pistol_buff_exists")); return SCRIPT_OVERRIDE; } if(!combatStandardAction("sm_modify_pistol_1", self, target, params, "", "")) return SCRIPT_OVERRIDE; doAnimationAction(self, "reload"); decrementCount(module); return SCRIPT_CONTINUE; } commandHandler sm_modify_pistol_2() { obj_id module = utils.getStaticItemInInventory(self, "item_reward_modify_pistol_01_01"); if(!isIdValid(module) || getCount(module) <= 0) { sendSystemMessage(self, new string_id("spam", "pistol_module_missing")); return SCRIPT_OVERRIDE; } if(buff.hasBuff(self, "sm_modify_pistol_1") || buff.hasBuff(self, "sm_modify_pistol_2") || buff.hasBuff(self, "sm_modify_pistol_3")) { sendSystemMessage(self, new string_id("spam", "pistol_buff_exists")); return SCRIPT_OVERRIDE; } if(!combatStandardAction("sm_modify_pistol_2", self, target, params, "", "")) return SCRIPT_OVERRIDE; doAnimationAction(self, "reload"); decrementCount(module); return SCRIPT_CONTINUE; } commandHandler sm_modify_pistol_3() { obj_id module = utils.getStaticItemInInventory(self, "item_reward_modify_pistol_01_01"); if(!isIdValid(module) || getCount(module) <= 0) { sendSystemMessage(self, new string_id("spam", "pistol_module_missing")); return SCRIPT_OVERRIDE; } if(buff.hasBuff(self, "sm_modify_pistol_1") || buff.hasBuff(self, "sm_modify_pistol_2") || buff.hasBuff(self, "sm_modify_pistol_3")) { sendSystemMessage(self, new string_id("spam", "pistol_buff_exists")); return SCRIPT_OVERRIDE; } if(!combatStandardAction("sm_modify_pistol_3", self, target, params, "", "")) return SCRIPT_OVERRIDE; doAnimationAction(self, "reload"); decrementCount(module); return SCRIPT_CONTINUE; } commandHandler kun_one_sacrifice() { if (!combatStandardAction("kun_one_sacrifice", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler kun_two_sacrifice() { if (!combatStandardAction("kun_two_sacrifice", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler kun_three_sacrifice() { if (!combatStandardAction("kun_three_sacrifice", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler kun_four_sacrifice() { if (!combatStandardAction("kun_four_sacrifice", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler kun_five_sacrifice() { if (!combatStandardAction("kun_five_sacrifice", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler kun_six_sacrifice() { if (!combatStandardAction("kun_six_sacrifice", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler kun_seven_sacrifice() { if (!combatStandardAction("kun_seven_sacrifice", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler kun_eight_sacrifice() { if (!combatStandardAction("kun_eight_sacrifice", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler open_cultist_drain() { if (!combatStandardAction("open_cultist_drain", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } dictionary dict = new dictionary(); dict.put("target", target); messageTo(self, "handle_drain_anim", dict, 0.0f, false); return SCRIPT_CONTINUE; } commandHandler bm_siphon_master() { if (!combatStandardAction("bm_siphon_master", self, target, params, "", "", true)) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler minder_luresh_drain() { if (!combatStandardAction("minder_luresh_drain", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler closed_fist_cleave() { if (!combatStandardAction("closed_fist_cleave", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler closed_fist_toss() { if (!combatStandardAction("closed_fist_toss", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler closed_fist_burn() { if (!combatStandardAction("closed_fist_burn", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler closed_fist_burn_damage() { if (!combatStandardAction("closed_fist_burn_damage", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler lasher_increase_pain() { if (!combatStandardAction("lasher_increase_pain", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler subduer_decrease_damage() { if (!combatStandardAction("subduer_decrease_damage", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler lasher_strike() { if (!combatStandardAction("lasher_strike", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler subduer_strike() { if (!combatStandardAction("subduer_strike", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler tomb_guard_cleave() { if (!combatStandardAction("tomb_guard_cleave", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler tomb_guard_toss() { if (!combatStandardAction("tomb_guard_toss", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler caretaker_blast() { if (!combatStandardAction("caretaker_blast", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler caretaker_drain() { if (!combatStandardAction("caretaker_drain", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler caretaker_shield() { if (!combatStandardAction("caretaker_shield", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler caretaker_shield_reflect() { if (!combatStandardAction("caretaker_shield_reflect", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler caretaker_vapors() { if (!combatStandardAction("caretaker_vapors", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler ct_guard_buff() { if (!combatStandardAction("ct_guard_buff", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler kun_order_set() { if (!combatStandardAction("kun_order_set", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler kun_chaos_set() { if (!combatStandardAction("kun_chaos_set", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler kun_order_discipline() { if (!combatStandardAction("kun_order_discipline", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler kun_chaos_discord() { if (!combatStandardAction("kun_chaos_discord", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler executioner_swipe() { if (!combatStandardAction("executioner_swipe", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler kun_wrath_cold() { if (!combatStandardAction("kun_wrath_cold", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler kun_wrath_heat() { if (!combatStandardAction("kun_wrath_heat", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler kun_wrath_electrical() { if (!combatStandardAction("kun_wrath_electrical", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler kun_wrath_acid() { if (!combatStandardAction("kun_wrath_acid", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler kun_wrath_ward() { if (!combatStandardAction("kun_wrath_ward", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler kun_veng_slam() { if (!combatStandardAction("kun_veng_slam", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler kun_veng_wave() { if (!combatStandardAction("kun_veng_wave", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler kun_open_coil() { if (!combatStandardAction("kun_open_coil", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler kun_word_coil() { if (!combatStandardAction("kun_word_coil", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler kun_word_flurry() { if (!combatStandardAction("kun_word_flurry", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler kun_word_shaken() { if (!combatStandardAction("kun_word_shaken", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler kun_sword_multi() { string[] actions = {"kun_word_flurry", "kun_sword_break", "kun_sword_cleave", "kun_sword_defensive" }; queueCommand(self, getStringCrc(actions[rand(0, actions.length - 1)].toLowerCase()), getHateTarget(self), "", COMMAND_PRIORITY_DEFAULT); return SCRIPT_CONTINUE; } commandHandler kun_sword_break() { if (!combatStandardAction("kun_sword_break", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler kun_sword_cleave() { if (!combatStandardAction("kun_sword_cleave", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler kun_sword_defensive() { if (!combatStandardAction("kun_sword_defensive", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } messageHandler dire_root_recourse() { if (!buff.hasBuff(self, "dire_root_recourse")) buff.applyBuff(self, self, "dire_root_recourse"); return SCRIPT_CONTINUE; } messageHandler dire_snare_recourse() { if (!buff.hasBuff(self, "dire_snare_recourse")) buff.applyBuff(self, self, "dire_snare_recourse"); return SCRIPT_CONTINUE; } commandHandler bountycheck() { obj_id originalTarget = target; if(bounty_hunter.canCheckForBounty(self, target)) { doAnimationAction(self, "anims.PLAYER_DRAW_DATAPAD"); if(bounty_hunter.checkForPresenceOfBounty(self, target)) { location spawnLoc = getLocation(target); setHealth(target, -5000); trial.cleanupObject(target); bounty_hunter.spawnFugitive(self, spawnLoc); } else { utils.setScriptVar(target,"bountyCheck",self); // this target checked for bounty and found none. No bounty this target for the player that did the check. return SCRIPT_OVERRIDE; } } else { return SCRIPT_OVERRIDE; } if(isGod(self)) return SCRIPT_OVERRIDE; if(!exists(originalTarget)) { return SCRIPT_CONTINUE; } return SCRIPT_OVERRIDE; } commandHandler fs_drain_1() { if(!buff.isInFocus(self)) { sendSystemMessage(self, new string_id("spam", "fs_command_no_focus")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_drain_1", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler fs_drain_2() { if(!buff.isInFocus(self)) { sendSystemMessage(self, new string_id("spam", "fs_command_no_focus")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_drain_2", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler fs_drain_3() { if(!buff.isInFocus(self)) { sendSystemMessage(self, new string_id("spam", "fs_command_no_focus")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_drain_3", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler fs_drain_4() { if(!buff.isInFocus(self)) { sendSystemMessage(self, new string_id("spam", "fs_command_no_focus")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_drain_4", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler fs_drain_5() { if(!buff.isInFocus(self)) { sendSystemMessage(self, new string_id("spam", "fs_command_no_focus")); return SCRIPT_OVERRIDE; } if (!combatStandardAction("fs_drain_5", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler col_jedi_statue_light_debuff() { if (!combatStandardAction("col_jedi_statue_light_debuff", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler col_jedi_statue_dark_debuff() { if (!combatStandardAction("col_jedi_statue_dark_debuff", self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } //single target DoT application. commandHandler co_hw_dot() { obj_id weapon = getCurrentWeapon(self); string finalAttackName = heavyweapons.getHeavyWeaponDotName(self, weapon, true); if(finalAttackName == null || finalAttackName.equals("")) return SCRIPT_OVERRIDE; if (!combatStandardAction(finalAttackName, self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } //AoE target DoT application. commandHandler co_ae_hw_dot() { obj_id weapon = getCurrentWeapon(self); string finalAttackName = heavyweapons.getHeavyWeaponDotName(self, weapon, false); if(finalAttackName == null || finalAttackName.equals("")) return SCRIPT_OVERRIDE; if (!combatStandardAction(finalAttackName, self, target, params, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler co_hw_dm_1() { if (!combatStandardAction("co_hw_dm_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_hw_dm_2() { if (!combatStandardAction("co_hw_dm_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_hw_dm_3() { if (!combatStandardAction("co_hw_dm_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_hw_dm_4() { if (!combatStandardAction("co_hw_dm_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_hw_dm_5() { if (!combatStandardAction("co_hw_dm_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_hw_dm_6() { if (!combatStandardAction("co_hw_dm_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_hw_dm_crit_1() { if (!combatStandardAction("co_hw_dm_crit_1", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_hw_dm_crit_2() { if (!combatStandardAction("co_hw_dm_crit_2", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_hw_dm_crit_3() { if (!combatStandardAction("co_hw_dm_crit_3", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_hw_dm_crit_4() { if (!combatStandardAction("co_hw_dm_crit_4", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_hw_dm_crit_5() { if (!combatStandardAction("co_hw_dm_crit_5", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_hw_dm_crit_6() { if (!combatStandardAction("co_hw_dm_crit_6", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler co_cluster_bomb() { if (!combatStandardAction("co_cluster_bomb", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } location centerLoc = getLocation(target); int extraBomb = getEnhancedSkillStatisticModifierUncapped(self, "expertise_co_cluster_bomblet"); int bombCount = 4 + extraBomb; for (int i=0;i minRange) { target = validTargets[i]; break; } } if (!isIdValid(target)) target = validTargets[rand(0, validTargets.length - 1)]; if (!isIdValid(target) || !exists(target)) { createClientProjectileObjectToLocation(self, "object/weapon/ranged/turret/shared_turret_energy.iff", speeder, "muzzle", farTarget, 200.0f, 1.0f, false, 0,0,0,0); createClientProjectileObjectToLocation(self, "object/weapon/ranged/turret/shared_turret_energy.iff", speeder, "muzzle2", farTarget, 200.0f, 1.0f, false, 0,0,0,0); play2dNonLoopingSound(self, "sound/hoth_snowspeeder_blaster_fire_01.snd"); return SCRIPT_CONTINUE; } queueCommand(self, ##"hoth_speeder_shoot", target, "", COMMAND_PRIORITY_IMMEDIATE); float travelDistance = getDistance(target, self); createClientProjectileObjectToObject(self, "object/weapon/ranged/turret/shared_turret_energy.iff", getMountId(self), "muzzle", target, "", 200.0f, 1.0f, false, 0, 0, 0, 0); createClientProjectileObjectToObject(self, "object/weapon/ranged/turret/shared_turret_energy.iff", getMountId(self), "muzzle2", target, "", 200.0f, 1.0f, false, 0, 0, 0, 0); play2dNonLoopingSound(self, "sound/hoth_snowspeeder_blaster_fire_01.snd"); return SCRIPT_CONTINUE; } commandHandler hoth_speeder_shoot() { if (!combatStandardAction("hoth_speeder_shoot", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler hoth_speeder_up() { if (!vehicle.isRidingVehicle(self)) return SCRIPT_OVERRIDE; obj_id mount = getMountId(self); float height = vehicle.getHoverHeight(mount); int active = utils.getIntScriptVar(mount, "airborne"); if (active == 0) return SCRIPT_OVERRIDE; if (height > 12.0f) return SCRIPT_OVERRIDE; height = height + 2.0f; height = height > 16.0f ? 16.0f : height; vehicle.setDampingHeight(mount, 100.0f); vehicle.setGlide(mount, 100.0f); vehicle.setHoverHeight(mount, height); messageTo(self, "hoth_speeder_up_reset", null, 1.0f, false); return SCRIPT_CONTINUE; } messageHandler hoth_speeder_up_reset() { obj_id mount = getMountId(self); vehicle.setDampingHeight(mount, 0.1f); vehicle.setGlide(mount, 2.5f); return SCRIPT_CONTINUE; } commandHandler hoth_speeder_down() { if (!vehicle.isRidingVehicle(self)) return SCRIPT_OVERRIDE; obj_id mount = getMountId(self); float height = vehicle.getHoverHeight(mount); int active = utils.getIntScriptVar(mount, "airborne"); if (active == 0) return SCRIPT_OVERRIDE; if (height < 1.0f) return SCRIPT_OVERRIDE; height = height - 2.0f; height = height < 5.0f ? 5.0f : height; vehicle.setDampingHeight(mount, 100.0f); vehicle.setGlide(mount, 100.0f); vehicle.setHoverHeight(mount, height); messageTo(self, "hoth_speeder_down_reset", null, 1.0f, false); return SCRIPT_CONTINUE; } messageHandler hoth_speeder_down_reset() { obj_id mount = getMountId(self); vehicle.setDampingHeight(mount, 0.1f); vehicle.setGlide(mount, 2.5f); return SCRIPT_CONTINUE; } commandHandler hoth_sapper_place() { return SCRIPT_CONTINUE; } commandHandler hoth_sapper_detonate() { if (!combatStandardAction("hoth_sapper_detonate", self, target, params, "", "")) { stopCombat(self); clearHateList(self); return SCRIPT_OVERRIDE; } kill(self); return SCRIPT_CONTINUE; } commandHandler hoth_commando_rocket() { return SCRIPT_CONTINUE; } commandHandler hoth_scout_shield() { if (!vehicle.isRidingBattlefieldVehicle(self)) { removeDefaultAttackOverride(self); return SCRIPT_OVERRIDE; } obj_id vehicleId = getMountId(self); int stasisBuff = buff.getBuffOnTargetFromGroup(vehicleId, "stasis"); if(stasisBuff !=0) { return SCRIPT_OVERRIDE; } if(!buff.canApplyBuff(vehicleId, "hoth_scout_shield")) { return SCRIPT_OVERRIDE; } if(!combatStandardAction("hoth_scout_shield", vehicleId, self, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler hoth_scout_cannon() { if (!vehicle.isRidingVehicle(self)) { removeDefaultAttackOverride(self); return SCRIPT_OVERRIDE; } if(!combatStandardAction("hoth_scout_cannon", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } location eggLoc = combat.getCommandGroundTargetLocation(params); location myLoc = getLocation(self); float travelDistance = getDistance(myLoc, eggLoc); float speed = travelDistance; //need to play a client effect sound. playClientEffectObj(self, "sound/wep_veh_blaster.snd", self, ""); createClientProjectileObjectToLocation(self, "object/weapon/ranged/turret/shared_turret_energy.iff", getMountId(self), "muzzle3", eggLoc, 150.0f, 1.0f, false, 0, 0, 0, 0); createClientProjectileObjectToLocation(self, "object/weapon/ranged/turret/shared_turret_energy.iff", getMountId(self), "muzzle" , eggLoc, 150.0f, 1.0f, false, 0, 0, 0, 0); return SCRIPT_CONTINUE; } commandHandler hoth_scout_ear_gun() { if (!vehicle.isRidingVehicle(self)) { removeDefaultAttackOverride(self); return SCRIPT_OVERRIDE; } if(!combatStandardAction("hoth_scout_ear_gun", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } float travelDistance = getDistance(target, self); float speed = travelDistance; playClientEffectObj(self, "sound/wep_veh_blaster.snd", self, ""); createClientProjectileObjectToObject(self, "object/weapon/ranged/rifle/shared_rifle_dlt20a.iff", getMountId(self), "muzzle2", target, "", 150.0f, 1.0f, false, 0, 0, 0, 0); return SCRIPT_CONTINUE; } commandHandler hoth_scout_ear_gun_switch() { if (!vehicle.isRidingVehicle(self)) { removeDefaultAttackOverride(self); return SCRIPT_OVERRIDE; } removeDefaultAttackOverride(self); overrideDefaultAttack(self, "hoth_scout_ear_gun"); return SCRIPT_CONTINUE; } commandHandler hoth_scout_rocket_switch() { if (!vehicle.isRidingVehicle(self)) { removeDefaultAttackOverride(self); return SCRIPT_OVERRIDE; } removeDefaultAttackOverride(self); overrideDefaultAttack(self, "hoth_scout_rocket"); return SCRIPT_CONTINUE; } commandHandler hoth_scout_rocket() { if (!vehicle.isRidingVehicle(self)) { removeDefaultAttackOverride(self); return SCRIPT_OVERRIDE; } if(!combatStandardAction("hoth_scout_rocket", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } location eggLoc = combat.getCommandGroundTargetLocation(params); location myLoc = getLocation(self); createClientProjectileObjectToLocation(self, "object/weapon/ranged/rifle/shared_quest_rifle_flame_thrower.iff", getMountId(self), "muzzle4", eggLoc, 150.0f, 2.0f, false, 0, 0, 0, 0); return SCRIPT_CONTINUE; } commandHandler hoth_atat_shoot() { if (!combatStandardAction("hoth_atat_shoot", self, target, params, "", "")) { string targetName = getCreatureName(target); if(targetName == null) { targetName = getPlayerName(target); } LOG("slapHappy", "ATAT has Damaged: " + target + " ( " + targetName + " )"); return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler hoth_atat_vehicle_shoot() { if(!isIdValid(target)) { LOG("maggie", "hoth_atat_vehicle_shoot:::: TARGET is INVALID"); return SCRIPT_CONTINUE; } if(!isIdValid(self)) { LOG("maggie", "hoth_atat_vehicle_shoot:::: SELF is INVALID"); return SCRIPT_CONTINUE; } if(!combatStandardAction("hoth_atat_vehicle_shoot", self, target, params, "", "")) { LOG("maggie", "hoth_atat_vehicle_shoot:::: Hit Called"); return SCRIPT_CONTINUE; } return SCRIPT_CONTINUE; } commandHandler hoth_speeder_takeoff() { if (!vehicle.isRidingVehicle(self)) return SCRIPT_OVERRIDE; obj_id mount = getMountId(self); vehicle.setMinimumSpeed(mount, 29.99f); vehicle.setMaximumSpeed(mount, 30.0f); vehicle.setTurnRateMin(mount, 28.0f); vehicle.setTurnRateMax(mount, 28.0f); vehicle.setAccelMin(mount, 25.0f); vehicle.setAccelMax(mount, 25.0f); vehicle.setDecel(mount, 300.0f); vehicle.setDampingRoll(mount, 1.0f); vehicle.setDampingPitch(mount, 1.0f); vehicle.setDampingHeight(mount, 0.1f); vehicle.setGlide(mount, 2.5f); vehicle.setBankingAngle(mount, 50.0f); vehicle.setHoverHeight(mount, 10.0f); vehicle.setAutoLevelling(mount, 0.25f); vehicle.setStrafe(mount, false); utils.setScriptVar(mount, "airborne", 1); return SCRIPT_CONTINUE; } commandHandler hoth_speeder_land() { if (!vehicle.isRidingVehicle(self)) return SCRIPT_OVERRIDE; obj_id mount = getMountId(self); vehicle.initializeVehicle(mount); utils.setScriptVar(mount, "airborne", 0); return SCRIPT_CONTINUE; } commandHandler hoth_ai_speeder_shoot() { //LOG("maggie", "Hoth_AI_SPEEDER_SHOOT Called"); if(!isIdValid(target)) { LOG("maggie", "hoth_ai_speeder_shoot:::: TARGET is INVALID"); return SCRIPT_CONTINUE; } if(!isIdValid(self)) { LOG("maggie", "hoth_ai_speeder_shoot:::: SELF is INVALID"); return SCRIPT_CONTINUE; } if(!combatStandardAction("hoth_ai_speeder_shoot", self, target, params, "", "")) { LOG("maggie", "hoth_ai_speeder_shoot:::: Hit Called"); return SCRIPT_CONTINUE; } return SCRIPT_CONTINUE; } commandHandler wampa_boss_ice_throw_prep() { if ( !combatStandardAction("wampa_boss_ice_throw_prep", self, target, params, "", "") ) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler wampa_boss_ice_throw() { if ( !combatStandardAction("wampa_boss_ice_throw", self, target, params, "", "") ) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler wampa_boss_tauntaun_throw_prep() { if ( combatStandardAction("wampa_boss_tauntaun_throw_prep", self, target, params, "", "") ) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler wampa_boss_tauntaun_throw() { if ( !combatStandardAction("wampa_boss_tauntaun_throw", self, target, params, "", "") ) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } commandHandler hoth_atat_mine() { location loc = getLocation(self); string targetLoc = ""+loc.x+" "+loc.y+" "+loc.z+" "+loc.cell+" "+loc.x+" "+loc.y+" "+loc.z; if (!combatStandardAction("hoth_atat_mine", self, target, targetLoc, "", "")) return SCRIPT_OVERRIDE; return SCRIPT_CONTINUE; } commandHandler vader_force_choke() { if(isPlayer(self)) { return SCRIPT_OVERRIDE; } if(!combatStandardAction("vader_force_choke", self, target, params, "", "")) { return SCRIPT_OVERRIDE; } return SCRIPT_CONTINUE; } boolean performMedicGroupBuff(obj_id medic, obj_id target, string buffName, string params) { if(!isIdValid(medic) || !exists(medic)) { return false; } if(!isIdValid(target) || !exists(target)) { return false; } if(buffName == null || buffName.length() <= 0) { return false; } if(params == null || params.length() <= 0) { return false; } obj_id tgId = getGroupObject(target); obj_id sgId = getGroupObject(medic); boolean performed_buff = false; if (!isIdValid(tgId) || !isIdValid(sgId) || sgId != tgId) { performed_buff |= combatStandardAction(buffName, medic, target, params, "", ""); obj_id beast = beast_lib.getBeastOnPlayer(target); if (isIdValid(beast) && exists(beast) && !isDead(beast) && getDistance(medic, beast) < 72.0f) { performed_buff |= combatStandardAction(buffName, medic, beast, params, "", ""); } if (!performed_buff) { return false; } } else { obj_id[] members = getGroupMemberIds(sgId); for (int i=0;i