Advertisement
Guest User

Untitled

a guest
Apr 4th, 2020
422
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 249.09 KB | None | 0 0
  1. package script.systems.combat;
  2.  
  3. import script.*;
  4. import script.base_class.*;
  5. import script.combat_engine.*;
  6. import java.util.Arrays;
  7. import java.util.Hashtable;
  8. import java.util.Vector;
  9. import script.base_script;
  10.  
  11. import script.ai.ai_combat;
  12. import script.library.ai_lib;
  13. import script.library.bounty_hunter;
  14. import script.library.armor;
  15. import script.library.beast_lib;
  16. import script.library.buff;
  17. import script.library.callable;
  18. import script.library.chat;
  19. import script.library.colors;
  20. import script.library.combat;
  21. import script.library.corpse;
  22. import script.library.craftinglib;
  23. import script.library.create;
  24. import script.library.dot;
  25. import script.library.factions;
  26. import script.library.faction_perk;
  27. import script.library.grenade;
  28. import script.library.groundquests;
  29. import script.library.group;
  30. import script.library.healing;
  31. import script.library.innate;
  32. import script.library.instance;
  33. import script.library.locations;
  34. import script.library.movement;
  35. import script.library.performance;
  36. import script.library.pet_lib;
  37. import script.library.prose;
  38. import script.library.smuggler;
  39. import script.library.space_dungeon;
  40. import script.library.space_utils;
  41. import script.library.squad_leader;
  42. import script.library.stealth;
  43. import script.library.sui;
  44. import script.library.trial;
  45. import script.library.utils;
  46. import script.library.vehicle;
  47. import script.library.weapons;
  48. import script.library.heavyweapons;
  49.  
  50. import script.systems.missions.dynamic.bounty_probe_droid;
  51. import java.lang.Math;
  52.  
  53.  
  54.  
  55. public class combat_actions extends script.systems.combat.combat_base
  56. {
  57.     public combat_actions()
  58.     {
  59.     }
  60.     String DEFAULT_EGG = "object/tangible/gravestone/gravestone05.tpf";
  61.     public static final String COMBAT_TABLE = "datatables/combat/combat_data.iff";
  62.     public static final float DAMAGE_STRENGTH_CUTOFF = .5f;
  63.    
  64.    
  65.     public int OnChangedPosture(obj_id self, int oldPosture, int newPosture) throws InterruptedException
  66.     {
  67.        
  68.         if (newPosture == POSTURE_INCAPACITATED || newPosture == POSTURE_DEAD || newPosture == POSTURE_KNOCKED_DOWN)
  69.         {
  70.             return SCRIPT_CONTINUE;
  71.         }
  72.        
  73.         setState(self, STATE_IMMOBILIZED, false);
  74.         stealth.OnPostureChanged(self, oldPosture, newPosture);
  75.         return SCRIPT_CONTINUE;
  76.     }
  77.    
  78.    
  79.     public int OnEnteredCombat(obj_id self) throws InterruptedException
  80.     {
  81.         combat.cacheCombatData(self);
  82.         return SCRIPT_CONTINUE;
  83.     }
  84.    
  85.    
  86.     public int OnExitedCombat(obj_id self) throws InterruptedException
  87.     {
  88.         combat.clearCachedCombatData(self);
  89.         return SCRIPT_CONTINUE;
  90.     }
  91.    
  92.    
  93.     public int firePistolLauncherTargeting(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  94.     {
  95.         if (!combatStandardAction("firePistolLauncherTargeting", self, target, params, "", ""))
  96.         {
  97.             return SCRIPT_OVERRIDE;
  98.         }
  99.        
  100.         return SCRIPT_CONTINUE;
  101.     }
  102.    
  103.    
  104.     public int fireAcidBeam(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  105.     {
  106.         if (!combatStandardAction("fireAcidBeam", self, target, params, "", ""))
  107.         {
  108.             return SCRIPT_OVERRIDE;
  109.         }
  110.        
  111.         return SCRIPT_CONTINUE;
  112.     }
  113.    
  114.    
  115.     public int fireLavaCannon(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  116.     {
  117.         if (!combatStandardAction("fireLavaCannon", self, target, params, "", ""))
  118.         {
  119.             return SCRIPT_OVERRIDE;
  120.         }
  121.        
  122.         return SCRIPT_CONTINUE;
  123.     }
  124.    
  125.    
  126.     public int fireLavaCannonGeneric(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  127.     {
  128.         if (!combatStandardAction("fireLavaCannonGeneric", self, target, params, "", ""))
  129.         {
  130.             return SCRIPT_OVERRIDE;
  131.         }
  132.        
  133.         return SCRIPT_CONTINUE;
  134.     }
  135.    
  136.    
  137.     public int fireFlameThrowerLight(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  138.     {
  139.         if (!combatStandardAction("fireFlameThrowerLight", self, target, params, "", ""))
  140.         {
  141.             return SCRIPT_OVERRIDE;
  142.         }
  143.        
  144.         return SCRIPT_CONTINUE;
  145.     }
  146.    
  147.    
  148.     public int firePlasmaFlameThrower(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  149.     {
  150.         if (!combatStandardAction("firePlasmaFlameThrower", self, target, params, "", ""))
  151.         {
  152.             return SCRIPT_OVERRIDE;
  153.         }
  154.        
  155.         return SCRIPT_CONTINUE;
  156.     }
  157.    
  158.    
  159.     public int fireIceGun(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  160.     {
  161.         if (!combatStandardAction("fireIceGun", self, target, params, "", ""))
  162.         {
  163.             return SCRIPT_OVERRIDE;
  164.         }
  165.        
  166.         return SCRIPT_CONTINUE;
  167.     }
  168.    
  169.    
  170.     public int fireRocketLauncher(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  171.     {
  172.         if (!combatStandardAction("fireRocketLauncher", self, target, params, "", ""))
  173.         {
  174.             return SCRIPT_OVERRIDE;
  175.         }
  176.        
  177.         return SCRIPT_CONTINUE;
  178.     }
  179.    
  180.    
  181.     public int fireRocketLauncherGeneric(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  182.     {
  183.         if (!combatStandardAction("fireRocketLauncherGeneric", self, target, params, "", ""))
  184.         {
  185.             return SCRIPT_OVERRIDE;
  186.         }
  187.        
  188.         return SCRIPT_CONTINUE;
  189.     }
  190.    
  191.    
  192.     public int fireAcidRifle(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  193.     {
  194.         if (!combatStandardAction("fireAcidRifle", self, target, params, "", ""))
  195.         {
  196.             return SCRIPT_OVERRIDE;
  197.         }
  198.        
  199.         return SCRIPT_CONTINUE;
  200.     }
  201.    
  202.    
  203.     public int fireStunCannon(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  204.     {
  205.         if (!combatStandardAction("fireStunCannon", self, target, params, "", ""))
  206.         {
  207.             return SCRIPT_OVERRIDE;
  208.         }
  209.        
  210.         return SCRIPT_CONTINUE;
  211.     }
  212.    
  213.    
  214.     public int fireParticleBeam(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  215.     {
  216.         if (!combatStandardAction("fireParticleBeam", self, target, params, "", ""))
  217.         {
  218.             return SCRIPT_OVERRIDE;
  219.         }
  220.        
  221.         return SCRIPT_CONTINUE;
  222.     }
  223.    
  224.    
  225.     public int fireVoidRocketLauncher(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  226.     {
  227.         if (!combatStandardAction("fireVoidRocketLauncher", self, target, params, "", ""))
  228.         {
  229.             return SCRIPT_OVERRIDE;
  230.         }
  231.        
  232.         return SCRIPT_CONTINUE;
  233.     }
  234.    
  235.    
  236.     public int fireLightningBeam(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  237.     {
  238.         if (!combatStandardAction("fireLightningBeam", self, target, params, "", ""))
  239.         {
  240.             return SCRIPT_OVERRIDE;
  241.         }
  242.        
  243.         return SCRIPT_CONTINUE;
  244.     }
  245.    
  246.    
  247.     public int fireAcidBeamAvatar(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  248.     {
  249.         if (!combatStandardAction("fireAcidBeamAvatar", self, target, params, "", ""))
  250.         {
  251.             return SCRIPT_OVERRIDE;
  252.         }
  253.        
  254.         return SCRIPT_CONTINUE;
  255.     }
  256.    
  257.    
  258.     public int fireRepublicFlameThrower(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  259.     {
  260.         if (!combatStandardAction("fireRepublicFlameThrower", self, target, params, "", ""))
  261.         {
  262.             return SCRIPT_OVERRIDE;
  263.         }
  264.        
  265.         return SCRIPT_CONTINUE;
  266.     }
  267.    
  268.    
  269.     public int fireRepublicFlameThrowerGeneric(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  270.     {
  271.         if (!combatStandardAction("fireRepublicFlameThrowerGeneric", self, target, params, "", ""))
  272.         {
  273.             return SCRIPT_OVERRIDE;
  274.         }
  275.        
  276.         return SCRIPT_CONTINUE;
  277.     }
  278.    
  279.    
  280.     public int firePistolLauncher(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  281.     {
  282.         if (!combatStandardAction("firePistolLauncher", self, target, params, "", ""))
  283.         {
  284.             return SCRIPT_OVERRIDE;
  285.         }
  286.        
  287.         return SCRIPT_CONTINUE;
  288.     }
  289.    
  290.    
  291.     public int fireElitePistolLauncher(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  292.     {
  293.         if (!combatStandardAction("fireElitePistolLauncher", self, target, params, "", ""))
  294.         {
  295.             return SCRIPT_OVERRIDE;
  296.         }
  297.        
  298.         return SCRIPT_CONTINUE;
  299.     }
  300.    
  301.    
  302.     public int firePistolLauncherGeneric(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  303.     {
  304.         if (!combatStandardAction("firePistolLauncherGeneric", self, target, params, "", ""))
  305.         {
  306.             return SCRIPT_OVERRIDE;
  307.         }
  308.        
  309.         return SCRIPT_CONTINUE;
  310.     }
  311.    
  312.    
  313.     public int firePistolLauncherMedium(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  314.     {
  315.         if (!combatStandardAction("firePistolLauncherMedium", self, target, params, "", ""))
  316.         {
  317.             return SCRIPT_OVERRIDE;
  318.         }
  319.        
  320.         return SCRIPT_CONTINUE;
  321.     }
  322.    
  323.    
  324.     public int fireCrusaderHeavyRifle(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  325.     {
  326.         if (!combatStandardAction("fireCrusaderHeavyRifle", self, target, params, "", ""))
  327.         {
  328.             return SCRIPT_OVERRIDE;
  329.         }
  330.        
  331.         return SCRIPT_CONTINUE;
  332.     }
  333.    
  334.    
  335.     public int firePvpHeavy(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  336.     {
  337.         if (!combatStandardAction("firePvpHeavy", self, target, params, "", ""))
  338.         {
  339.             return SCRIPT_OVERRIDE;
  340.         }
  341.        
  342.         return SCRIPT_CONTINUE;
  343.     }
  344.    
  345.    
  346.     public int fireHeavyShotgun(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  347.     {
  348.         if (!combatStandardAction("fireHeavyShotgun", self, target, params, "", ""))
  349.         {
  350.             return SCRIPT_OVERRIDE;
  351.         }
  352.        
  353.         return SCRIPT_CONTINUE;
  354.     }
  355.    
  356.    
  357.     public int banner_buff_commando(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  358.     {
  359.         if (!combatStandardAction("banner_buff_commando", self, target, params, "", ""))
  360.         {
  361.             return SCRIPT_OVERRIDE;
  362.         }
  363.        
  364.         return SCRIPT_CONTINUE;
  365.     }
  366.    
  367.    
  368.     public int stand(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  369.     {
  370.         if (ai_lib.isAiDead(self))
  371.         {
  372.             return SCRIPT_CONTINUE;
  373.         }
  374.        
  375.         if (!isIncapacitated(self) && !isDead(self))
  376.         {
  377.             setPosture(self, POSTURE_UPRIGHT);
  378.         }
  379.         return SCRIPT_CONTINUE;
  380.     }
  381.    
  382.    
  383.     public int standFail(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  384.     {
  385.         if (space_utils.isInStation(self))
  386.         {
  387.             LOG("space", "Leaving station!");
  388.             queueCommand(self, (616891114), null,"", COMMAND_PRIORITY_FRONT);
  389.            
  390.             return SCRIPT_OVERRIDE;
  391.         }
  392.        
  393.         return SCRIPT_CONTINUE;
  394.     }
  395.    
  396.    
  397.     public int kneel(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  398.     {
  399.         if (!isIncapacitated(self) && !isDead(self))
  400.         {
  401.             setPosture(self, POSTURE_CROUCHED);
  402.         }
  403.         return SCRIPT_CONTINUE;
  404.     }
  405.    
  406.    
  407.     public int kneelFail(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  408.     {
  409.         return SCRIPT_CONTINUE;
  410.     }
  411.    
  412.    
  413.     public int prone(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  414.     {
  415.         if (!isIncapacitated(self) && !isDead(self))
  416.         {
  417.             setPosture(self, POSTURE_PRONE);
  418.         }
  419.         return SCRIPT_CONTINUE;
  420.     }
  421.    
  422.    
  423.     public int proneFail(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  424.     {
  425.         return SCRIPT_CONTINUE;
  426.     }
  427.    
  428.    
  429.     public int veteranPlayerBuff(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  430.     {
  431.         if (!combatStandardAction("veteranPlayerBuff", self, target, params, "", ""))
  432.         {
  433.             return SCRIPT_OVERRIDE;
  434.         }
  435.        
  436.         return SCRIPT_CONTINUE;
  437.     }
  438.    
  439.    
  440.     public int forceRun(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  441.     {
  442.         if (!combatStandardAction("forceRun", self, target, params, "", ""))
  443.         {
  444.             return SCRIPT_OVERRIDE;
  445.         }
  446.        
  447.         return SCRIPT_CONTINUE;
  448.     }
  449.    
  450.    
  451.     public int bh_detect_camouflage_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  452.     {
  453.         if (!stealth.canDetectCamouflage(self) || !combatStandardAction("bh_detect_camouflage_1", self, target, params, "", ""))
  454.         {
  455.             return SCRIPT_OVERRIDE;
  456.         }
  457.        
  458.         float detectSkill = getEnhancedSkillStatisticModifier(self, "detect_hidden");
  459.         float distance = stealth.BASE_DETECT_CAMOUFLAGE_DISTANCE + (detectSkill / 20);
  460.        
  461.         float detectChance = 50.0f;
  462.        
  463.         stealth.detectCamouflage(self, true, true, distance, detectChance);
  464.        
  465.         return SCRIPT_CONTINUE;
  466.     }
  467.    
  468.    
  469.     public int bh_ae_dm_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  470.     {
  471.         if (!combatStandardAction("bh_ae_dm_1", self, target, params, "", ""))
  472.         {
  473.             return SCRIPT_OVERRIDE;
  474.         }
  475.        
  476.         return SCRIPT_CONTINUE;
  477.     }
  478.    
  479.    
  480.     public int bh_ae_dm_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  481.     {
  482.         if (!combatStandardAction("bh_ae_dm_2", self, target, params, "", ""))
  483.         {
  484.             return SCRIPT_OVERRIDE;
  485.         }
  486.        
  487.         return SCRIPT_CONTINUE;
  488.     }
  489.    
  490.    
  491.     public int bh_del_cc_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  492.     {
  493.         if (!combatStandardAction("bh_del_cc_1", self, target, params, "", ""))
  494.         {
  495.             return SCRIPT_OVERRIDE;
  496.         }
  497.        
  498.         doDireAbility(self, target, 1);
  499.        
  500.         return SCRIPT_CONTINUE;
  501.     }
  502.    
  503.    
  504.     public int bh_del_cc_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  505.     {
  506.         if (!combatStandardAction("bh_del_cc_2", self, target, params, "", ""))
  507.         {
  508.             return SCRIPT_OVERRIDE;
  509.         }
  510.        
  511.         doDireAbility(self, target, 1);
  512.        
  513.         return SCRIPT_CONTINUE;
  514.     }
  515.    
  516.    
  517.     public int bh_del_cc_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  518.     {
  519.         if (!combatStandardAction("bh_del_cc_3", self, target, params, "", ""))
  520.         {
  521.             return SCRIPT_OVERRIDE;
  522.         }
  523.        
  524.         doDireAbility(self, target, 1);
  525.        
  526.         return SCRIPT_CONTINUE;
  527.     }
  528.    
  529.    
  530.     public int bh_del_dm_cc_dot_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  531.     {
  532.         if (!combatStandardAction("bh_del_dm_cc_dot_1", self, target, params, "", ""))
  533.         {
  534.             return SCRIPT_OVERRIDE;
  535.         }
  536.        
  537.         doDireAbility(self, target, 1);
  538.        
  539.         return SCRIPT_CONTINUE;
  540.     }
  541.    
  542.    
  543.     public int bh_del_dm_cc_dot_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  544.     {
  545.         if (!combatStandardAction("bh_del_dm_cc_dot_2", self, target, params, "", ""))
  546.         {
  547.             return SCRIPT_OVERRIDE;
  548.         }
  549.        
  550.         doDireAbility(self, target, 1);
  551.        
  552.         return SCRIPT_CONTINUE;
  553.     }
  554.    
  555.    
  556.     public int bh_del_dm_cc_dot_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  557.     {
  558.         if (!combatStandardAction("bh_del_dm_cc_dot_3", self, target, params, "", ""))
  559.         {
  560.             return SCRIPT_OVERRIDE;
  561.         }
  562.        
  563.         doDireAbility(self, target, 1);
  564.        
  565.         return SCRIPT_CONTINUE;
  566.     }
  567.    
  568.    
  569.     public int bh_dm_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  570.     {
  571.         if (!combatStandardAction("bh_dm_1", self, target, params, "", ""))
  572.         {
  573.             return SCRIPT_OVERRIDE;
  574.         }
  575.        
  576.         float baseCooldownTime = getBaseCooldownTime("bh_dm_1");
  577.         if (baseCooldownTime < 0)
  578.         {
  579.             return SCRIPT_OVERRIDE;
  580.         }
  581.        
  582.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_dm") / 10;
  583.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  584.        
  585.         return SCRIPT_CONTINUE;
  586.     }
  587.    
  588.    
  589.     public int bh_dm_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  590.     {
  591.         if (!combatStandardAction("bh_dm_2", self, target, params, "", ""))
  592.         {
  593.             return SCRIPT_OVERRIDE;
  594.         }
  595.        
  596.         float baseCooldownTime = getBaseCooldownTime("bh_dm_2");
  597.         if (baseCooldownTime < 0)
  598.         {
  599.             return SCRIPT_OVERRIDE;
  600.         }
  601.        
  602.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_dm") / 10;
  603.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  604.        
  605.         return SCRIPT_CONTINUE;
  606.     }
  607.    
  608.    
  609.     public int bh_dm_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  610.     {
  611.         if (!combatStandardAction("bh_dm_3", self, target, params, "", ""))
  612.         {
  613.             return SCRIPT_OVERRIDE;
  614.         }
  615.        
  616.         float baseCooldownTime = getBaseCooldownTime("bh_dm_3");
  617.         if (baseCooldownTime < 0)
  618.         {
  619.             return SCRIPT_OVERRIDE;
  620.         }
  621.        
  622.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_dm") / 10;
  623.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  624.        
  625.         return SCRIPT_CONTINUE;
  626.     }
  627.    
  628.    
  629.     public int bh_dm_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  630.     {
  631.         if (!combatStandardAction("bh_dm_4", self, target, params, "", ""))
  632.         {
  633.             return SCRIPT_OVERRIDE;
  634.         }
  635.        
  636.         float baseCooldownTime = getBaseCooldownTime("bh_dm_4");
  637.         if (baseCooldownTime < 0)
  638.         {
  639.             return SCRIPT_OVERRIDE;
  640.         }
  641.        
  642.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_dm") / 10;
  643.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  644.        
  645.         return SCRIPT_CONTINUE;
  646.     }
  647.    
  648.    
  649.     public int bh_dm_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  650.     {
  651.         if (!combatStandardAction("bh_dm_5", self, target, params, "", ""))
  652.         {
  653.             return SCRIPT_OVERRIDE;
  654.         }
  655.        
  656.         float baseCooldownTime = getBaseCooldownTime("bh_dm_5");
  657.         if (baseCooldownTime < 0)
  658.         {
  659.             return SCRIPT_OVERRIDE;
  660.         }
  661.        
  662.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_dm") / 10;
  663.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  664.        
  665.         return SCRIPT_CONTINUE;
  666.     }
  667.    
  668.    
  669.     public int bh_dm_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  670.     {
  671.         if (!combatStandardAction("bh_dm_6", self, target, params, "", ""))
  672.         {
  673.             return SCRIPT_OVERRIDE;
  674.         }
  675.        
  676.         float baseCooldownTime = getBaseCooldownTime("bh_dm_6");
  677.         if (baseCooldownTime < 0)
  678.         {
  679.             return SCRIPT_OVERRIDE;
  680.         }
  681.        
  682.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_dm") / 10;
  683.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  684.        
  685.         return SCRIPT_CONTINUE;
  686.     }
  687.    
  688.    
  689.     public int bh_dm_7(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  690.     {
  691.         if (!combatStandardAction("bh_dm_7", self, target, params, "", ""))
  692.         {
  693.             return SCRIPT_OVERRIDE;
  694.         }
  695.        
  696.         float baseCooldownTime = getBaseCooldownTime("bh_dm_7");
  697.         if (baseCooldownTime < 0)
  698.         {
  699.             return SCRIPT_OVERRIDE;
  700.         }
  701.        
  702.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_dm") / 10;
  703.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  704.        
  705.         return SCRIPT_CONTINUE;
  706.     }
  707.    
  708.    
  709.     public int bh_dm_8(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  710.     {
  711.         if (!combatStandardAction("bh_dm_8", self, target, params, "", ""))
  712.         {
  713.             return SCRIPT_OVERRIDE;
  714.         }
  715.        
  716.         float baseCooldownTime = getBaseCooldownTime("bh_dm_8");
  717.         if (baseCooldownTime < 0)
  718.         {
  719.             return SCRIPT_OVERRIDE;
  720.         }
  721.        
  722.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_dm") / 10;
  723.        
  724.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  725.        
  726.         return SCRIPT_CONTINUE;
  727.     }
  728.    
  729.    
  730.     public int bh_flawless_strike(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  731.     {
  732.         if (!combatStandardAction("bh_flawless_strike", self, target, params, "", ""))
  733.         {
  734.             return SCRIPT_OVERRIDE;
  735.         }
  736.        
  737.         float baseCooldownTime = getBaseCooldownTime("bh_flawless_strike");
  738.         if (baseCooldownTime < 0)
  739.         {
  740.             return SCRIPT_OVERRIDE;
  741.         }
  742.        
  743.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_bh_flawless_strike");
  744.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  745.        
  746.         return SCRIPT_CONTINUE;
  747.     }
  748.    
  749.    
  750.     public int set_bonus_bh_utility_a_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  751.     {
  752.         if (!combatStandardAction("set_bonus_bh_utility_a_1", self, target, params, "", ""))
  753.         {
  754.             return SCRIPT_OVERRIDE;
  755.         }
  756.        
  757.         return SCRIPT_CONTINUE;
  758.     }
  759.    
  760.    
  761.     public int set_bonus_bh_utility_a_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  762.     {
  763.         if (!combatStandardAction("set_bonus_bh_utility_a_2", self, target, params, "", ""))
  764.         {
  765.             return SCRIPT_OVERRIDE;
  766.         }
  767.        
  768.         return SCRIPT_CONTINUE;
  769.     }
  770.    
  771.    
  772.     public int set_bonus_bh_utility_a_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  773.     {
  774.         if (!combatStandardAction("set_bonus_bh_utility_a_3", self, target, params, "", ""))
  775.         {
  776.             return SCRIPT_OVERRIDE;
  777.         }
  778.        
  779.         return SCRIPT_CONTINUE;
  780.     }
  781.    
  782.    
  783.     public void doDireAbility(obj_id attacker, obj_id defender, int direType) throws InterruptedException
  784.     {
  785.         int bonusChance = 0;
  786.        
  787.         switch(direType)
  788.         {
  789.             case 0:
  790.             int direSnare = buff.getBuffOnTargetFromGroup(defender, "dire_snare");
  791.             if (direSnare != 0)
  792.             {
  793.                 return;
  794.             }
  795.             bonusChance = getEnhancedSkillStatisticModifierUncapped(attacker, "bh_dire_snare");
  796.             break;
  797.             case 1:
  798.             bonusChance = getEnhancedSkillStatisticModifierUncapped(attacker, "bh_dire_root");
  799.             break;
  800.             default:
  801.             return;
  802.         }
  803.        
  804.         if (bonusChance > 0)
  805.         {
  806.             int roll = rand(1, 99);
  807.             int total = roll+bonusChance;
  808.            
  809.             if (total > 99)
  810.             {
  811.                
  812.                 if (direType == 0)
  813.                 {
  814.                     buff.applyBuff(defender, attacker, "bh_dire_snare_1");
  815.                     showFlyText(defender, new string_id("set_bonus", "dire_snare_fly"), 2, colors.BLACK);
  816.                 }
  817.                 else
  818.                 {
  819.                     queueCommand(attacker, (-2097394013), defender, "", COMMAND_PRIORITY_IMMEDIATE);
  820.                     showFlyTextPrivate(attacker, attacker, new string_id("set_bonus", "dire_trap_fly"), 2, colors.LEMONCHIFFON);
  821.                 }
  822.             }
  823.         }
  824.         return;
  825.     }
  826.    
  827.    
  828.     public boolean successfulFastAttack(obj_id attacker, String specialLine) throws InterruptedException
  829.     {
  830.         return successfulFastAttack(attacker, specialLine, "fast_attack_fly");
  831.     }
  832.    
  833.    
  834.     public boolean successfulFastAttack(obj_id attacker, String specialLine, String customFlyReference) throws InterruptedException
  835.     {
  836.         boolean fastAttackOrWhat = false;
  837.        
  838.         int bonusChance = getEnhancedSkillStatisticModifierUncapped(attacker, "fast_attack_line_"+ specialLine);
  839.        
  840.         if (bonusChance > 0)
  841.         {
  842.             int roll = rand(1, 99);
  843.             int total = roll+bonusChance;
  844.            
  845.             if (total > 99)
  846.             {
  847.                 fastAttackOrWhat = true;
  848.                 showFlyText(attacker, new string_id("set_bonus", customFlyReference), 2, colors.LEMONCHIFFON);
  849.                
  850.                 prose_package pp = new prose_package();
  851.                 pp = prose.setStringId(pp, new string_id("set_bonus", customFlyReference + "_cbspam"));
  852.                 pp = prose.setTT(pp, attacker);
  853.                 sendCombatSpamMessageProse(attacker, pp, COMBAT_RESULT_GENERIC);
  854.             }
  855.         }
  856.        
  857.         return fastAttackOrWhat;
  858.     }
  859.    
  860.    
  861.     public int bh_dm_cc_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  862.     {
  863.         if (!combatStandardAction("bh_dm_cc_1", self, target, params, "", ""))
  864.         {
  865.             return SCRIPT_OVERRIDE;
  866.         }
  867.        
  868.         doDireAbility(self, target, 0);
  869.        
  870.         if (successfulFastAttack(self, "dm_cc"))
  871.         {
  872.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  873.         }
  874.        
  875.         return SCRIPT_CONTINUE;
  876.     }
  877.    
  878.    
  879.     public int bh_dm_cc_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  880.     {
  881.         if (!combatStandardAction("bh_dm_cc_2", self, target, params, "", ""))
  882.         {
  883.             return SCRIPT_OVERRIDE;
  884.         }
  885.        
  886.         doDireAbility(self, target, 0);
  887.        
  888.         if (successfulFastAttack(self, "dm_cc"))
  889.         {
  890.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  891.         }
  892.        
  893.         return SCRIPT_CONTINUE;
  894.     }
  895.    
  896.    
  897.     public int bh_dm_cc_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  898.     {
  899.         if (!combatStandardAction("bh_dm_cc_3", self, target, params, "", ""))
  900.         {
  901.             return SCRIPT_OVERRIDE;
  902.         }
  903.        
  904.         doDireAbility(self, target, 0);
  905.        
  906.         if (successfulFastAttack(self, "dm_cc"))
  907.         {
  908.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  909.         }
  910.        
  911.         return SCRIPT_CONTINUE;
  912.     }
  913.    
  914.    
  915.     public int bh_dm_crit_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  916.     {
  917.         if (!combatStandardAction("bh_dm_crit_1", self, target, params, "", ""))
  918.         {
  919.             return SCRIPT_OVERRIDE;
  920.         }
  921.        
  922.         float baseCooldownTime = getBaseCooldownTime("bh_dm_crit_1");
  923.         if (baseCooldownTime < 0)
  924.         {
  925.             return SCRIPT_OVERRIDE;
  926.         }
  927.        
  928.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_dm_crit") / 10;
  929.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  930.        
  931.         return SCRIPT_CONTINUE;
  932.     }
  933.    
  934.    
  935.     public int bh_dm_crit_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  936.     {
  937.         if (!combatStandardAction("bh_dm_crit_2", self, target, params, "", ""))
  938.         {
  939.             return SCRIPT_OVERRIDE;
  940.         }
  941.        
  942.         float baseCooldownTime = getBaseCooldownTime("bh_dm_crit_2");
  943.         if (baseCooldownTime < 0)
  944.         {
  945.             return SCRIPT_OVERRIDE;
  946.         }
  947.        
  948.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_dm_crit") / 10;
  949.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  950.        
  951.         return SCRIPT_CONTINUE;
  952.     }
  953.    
  954.    
  955.     public int bh_sh_0(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  956.     {
  957.         if (!healing.isDamaged(self))
  958.         {
  959.             sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self"));
  960.             return SCRIPT_OVERRIDE;
  961.         }
  962.        
  963.         if (!combatStandardAction("bh_sh_0", self, target, params, "", ""))
  964.         {
  965.             return SCRIPT_OVERRIDE;
  966.         }
  967.        
  968.         return SCRIPT_CONTINUE;
  969.     }
  970.    
  971.    
  972.     public int bh_sh_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  973.     {
  974.         if (!healing.isDamaged(self))
  975.         {
  976.             sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self"));
  977.             return SCRIPT_OVERRIDE;
  978.         }
  979.        
  980.         if (!combatStandardAction("bh_sh_1", self, target, params, "", ""))
  981.         {
  982.             return SCRIPT_OVERRIDE;
  983.         }
  984.        
  985.         return SCRIPT_CONTINUE;
  986.     }
  987.    
  988.    
  989.     public int bh_sh_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  990.     {
  991.         if (!healing.isDamaged(self))
  992.         {
  993.             sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self"));
  994.             return SCRIPT_OVERRIDE;
  995.         }
  996.        
  997.         if (!combatStandardAction("bh_sh_2", self, target, params, "", ""))
  998.         {
  999.             return SCRIPT_OVERRIDE;
  1000.         }
  1001.        
  1002.         return SCRIPT_CONTINUE;
  1003.     }
  1004.    
  1005.    
  1006.     public int bh_sh_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1007.     {
  1008.         if (!healing.isDamaged(self))
  1009.         {
  1010.             sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self"));
  1011.             return SCRIPT_OVERRIDE;
  1012.         }
  1013.        
  1014.         if (!combatStandardAction("bh_sh_3", self, target, params, "", ""))
  1015.         {
  1016.             return SCRIPT_OVERRIDE;
  1017.         }
  1018.        
  1019.         return SCRIPT_CONTINUE;
  1020.     }
  1021.    
  1022.    
  1023.     public int co_kill_trap_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1024.     {
  1025.         if (!stealth.canDisarmTrap(self, target))
  1026.         {
  1027.             return SCRIPT_OVERRIDE;
  1028.         }
  1029.        
  1030.         stealth.disarmTrap(self, target);
  1031.         return SCRIPT_CONTINUE;
  1032.     }
  1033.    
  1034.    
  1035.     public int co_ae_dm_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1036.     {
  1037.         if (!combatStandardAction("co_ae_dm_1", self, target, params, "", ""))
  1038.         {
  1039.             return SCRIPT_OVERRIDE;
  1040.         }
  1041.        
  1042.         return SCRIPT_CONTINUE;
  1043.     }
  1044.    
  1045.    
  1046.     public int co_ae_dm_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1047.     {
  1048.         if (!combatStandardAction("co_ae_dm_2", self, target, params, "", ""))
  1049.         {
  1050.             return SCRIPT_OVERRIDE;
  1051.         }
  1052.        
  1053.         return SCRIPT_CONTINUE;
  1054.     }
  1055.    
  1056.    
  1057.     public int co_ae_dm_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1058.     {
  1059.         if (!combatStandardAction("co_ae_dm_3", self, target, params, "", ""))
  1060.         {
  1061.             return SCRIPT_OVERRIDE;
  1062.         }
  1063.        
  1064.         return SCRIPT_CONTINUE;
  1065.     }
  1066.    
  1067.    
  1068.     public int co_del_ae_cc_1_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1069.     {
  1070.         if (!combatStandardAction("co_del_ae_cc_1_1", self, target, params, "", ""))
  1071.         {
  1072.             return SCRIPT_OVERRIDE;
  1073.         }
  1074.        
  1075.         if (successfulFastAttack(self, "co_grenade"))
  1076.         {
  1077.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  1078.         }
  1079.        
  1080.         return SCRIPT_CONTINUE;
  1081.     }
  1082.    
  1083.    
  1084.     public int co_del_ae_cc_1_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1085.     {
  1086.         if (!combatStandardAction("co_del_ae_cc_1_2", self, target, params, "", ""))
  1087.         {
  1088.             return SCRIPT_OVERRIDE;
  1089.         }
  1090.        
  1091.         if (successfulFastAttack(self, "co_grenade"))
  1092.         {
  1093.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  1094.         }
  1095.        
  1096.         return SCRIPT_CONTINUE;
  1097.     }
  1098.    
  1099.    
  1100.     public int co_del_ae_cc_1_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1101.     {
  1102.         if (!combatStandardAction("co_del_ae_cc_1_3", self, target, params, "", ""))
  1103.         {
  1104.             return SCRIPT_OVERRIDE;
  1105.         }
  1106.        
  1107.         if (successfulFastAttack(self, "co_grenade"))
  1108.         {
  1109.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  1110.         }
  1111.        
  1112.         return SCRIPT_CONTINUE;
  1113.     }
  1114.    
  1115.    
  1116.     public int sm_feeling_lucky_recourse(obj_id self, dictionary params) throws InterruptedException
  1117.     {
  1118.         if (!buff.hasBuff(self, "sm_feeling_lucky_recourse"))
  1119.         {
  1120.             buff.applyBuff(self, self, "sm_feeling_lucky_recourse");
  1121.         }
  1122.        
  1123.         return SCRIPT_CONTINUE;
  1124.     }
  1125.    
  1126.    
  1127.     public int sm_lucky_break_recourse(obj_id self, dictionary params) throws InterruptedException
  1128.     {
  1129.         if (!buff.hasBuff(self, "sm_lucky_break_recourse"))
  1130.         {
  1131.             buff.applyBuff(self, self, "sm_lucky_break_recourse");
  1132.         }
  1133.        
  1134.         return SCRIPT_CONTINUE;
  1135.     }
  1136.    
  1137.    
  1138.     public int sm_double_fire_recourse(obj_id self, dictionary params) throws InterruptedException
  1139.     {
  1140.         if (!buff.hasBuff(self, "sm_double_fire_recourse"))
  1141.         {
  1142.             buff.applyBuff(self, self, "sm_double_fire_recourse");
  1143.         }
  1144.        
  1145.         return SCRIPT_CONTINUE;
  1146.     }
  1147.    
  1148.    
  1149.     public int sm_false_hope_recourse(obj_id self, dictionary params) throws InterruptedException
  1150.     {
  1151.         if (!buff.hasBuff(self, "sm_false_hope_recourse"))
  1152.         {
  1153.             buff.applyBuff(self, self, "sm_false_hope_recourse");
  1154.         }
  1155.        
  1156.         return SCRIPT_CONTINUE;
  1157.     }
  1158.    
  1159.    
  1160.     public int sm_break_the_deal_recourse(obj_id self, dictionary params) throws InterruptedException
  1161.     {
  1162.         if (!buff.hasBuff(self, "sm_break_the_deal_recourse"))
  1163.         {
  1164.             buff.applyBuff(self, self, "sm_break_the_deal_recourse");
  1165.         }
  1166.        
  1167.         return SCRIPT_CONTINUE;
  1168.     }
  1169.    
  1170.    
  1171.     public int sm_melee_stun_recourse(obj_id self, dictionary params) throws InterruptedException
  1172.     {
  1173.         if (!buff.hasBuff(self, "sm_melee_stun_recourse"))
  1174.         {
  1175.             buff.applyBuff(self, self, "sm_melee_stun_recourse");
  1176.         }
  1177.        
  1178.         return SCRIPT_CONTINUE;
  1179.     }
  1180.    
  1181.    
  1182.     public int maladyRecourse(obj_id self, dictionary params) throws InterruptedException
  1183.     {
  1184.         if (!buff.hasBuff(self, "insidiousMalady_1"))
  1185.         {
  1186.             buff.applyBuff(self, self, "insidiousMalady_1");
  1187.         }
  1188.        
  1189.         return SCRIPT_CONTINUE;
  1190.     }
  1191.    
  1192.    
  1193.     public int maladyRecourse_1(obj_id self, dictionary params) throws InterruptedException
  1194.     {
  1195.         if (!buff.hasBuff(self, "insidiousMalady_2"))
  1196.         {
  1197.             buff.applyBuff(self, self, "insidiousMalady_2");
  1198.         }
  1199.        
  1200.         return SCRIPT_CONTINUE;
  1201.     }
  1202.    
  1203.     public int maladyRecourse_2(obj_id self, dictionary params) throws InterruptedException
  1204.     {
  1205.         if (!buff.hasBuff(self, "insidiousMalady_3"))
  1206.         {
  1207.             buff.applyBuff(self, self, "insidiousMalady_3");
  1208.         }
  1209.        
  1210.         return SCRIPT_CONTINUE;
  1211.     }
  1212.    
  1213.     public int maladyRecourse_3(obj_id self, dictionary params) throws InterruptedException
  1214.     {
  1215.         if (!buff.hasBuff(self, "insidiousMalady_4"))
  1216.         {
  1217.             buff.applyBuff(self, self, "insidiousMalady_4");
  1218.         }
  1219.        
  1220.         return SCRIPT_CONTINUE;
  1221.     }
  1222.    
  1223.    
  1224.     public int co_del_ae_cc_2_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1225.     {
  1226.         if (!combatStandardAction("co_del_ae_cc_2_1", self, target, params, "", ""))
  1227.         {
  1228.             return SCRIPT_OVERRIDE;
  1229.         }
  1230.        
  1231.         if (successfulFastAttack(self, "co_grenade"))
  1232.         {
  1233.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  1234.         }
  1235.        
  1236.         return SCRIPT_CONTINUE;
  1237.     }
  1238.    
  1239.    
  1240.     public int co_del_ae_cc_2_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1241.     {
  1242.         if (!combatStandardAction("co_del_ae_cc_2_2", self, target, params, "", ""))
  1243.         {
  1244.             return SCRIPT_OVERRIDE;
  1245.         }
  1246.        
  1247.         if (successfulFastAttack(self, "co_grenade"))
  1248.         {
  1249.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  1250.         }
  1251.        
  1252.         return SCRIPT_CONTINUE;
  1253.     }
  1254.    
  1255.    
  1256.     public int co_del_ae_dm_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1257.     {
  1258.         if (!combatStandardAction("co_del_ae_dm_1", self, target, params, "", ""))
  1259.         {
  1260.             return SCRIPT_OVERRIDE;
  1261.         }
  1262.        
  1263.         if (successfulFastAttack(self, "co_grenade"))
  1264.         {
  1265.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  1266.         }
  1267.        
  1268.         return SCRIPT_CONTINUE;
  1269.     }
  1270.    
  1271.    
  1272.     public int co_del_ae_dm_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1273.     {
  1274.         if (!combatStandardAction("co_del_ae_dm_2", self, target, params, "", ""))
  1275.         {
  1276.             return SCRIPT_OVERRIDE;
  1277.         }
  1278.        
  1279.         if (successfulFastAttack(self, "co_grenade"))
  1280.         {
  1281.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  1282.         }
  1283.        
  1284.         return SCRIPT_CONTINUE;
  1285.     }
  1286.    
  1287.    
  1288.     public int co_del_ae_dm_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1289.     {
  1290.         if (!combatStandardAction("co_del_ae_dm_3", self, target, params, "", ""))
  1291.         {
  1292.             return SCRIPT_OVERRIDE;
  1293.         }
  1294.        
  1295.         if (successfulFastAttack(self, "co_grenade"))
  1296.         {
  1297.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  1298.         }
  1299.        
  1300.         return SCRIPT_CONTINUE;
  1301.     }
  1302.    
  1303.    
  1304.     public int co_dm_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1305.     {
  1306.         if (!combatStandardAction("co_dm_1", self, target, params, "", ""))
  1307.         {
  1308.             return SCRIPT_OVERRIDE;
  1309.         }
  1310.        
  1311.         return SCRIPT_CONTINUE;
  1312.     }
  1313.    
  1314.    
  1315.     public int co_dm_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1316.     {
  1317.         if (!combatStandardAction("co_dm_2", self, target, params, "", ""))
  1318.         {
  1319.             return SCRIPT_OVERRIDE;
  1320.         }
  1321.        
  1322.         return SCRIPT_CONTINUE;
  1323.     }
  1324.    
  1325.    
  1326.     public int co_dm_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1327.     {
  1328.         if (!combatStandardAction("co_dm_3", self, target, params, "", ""))
  1329.         {
  1330.             return SCRIPT_OVERRIDE;
  1331.         }
  1332.        
  1333.         return SCRIPT_CONTINUE;
  1334.     }
  1335.    
  1336.    
  1337.     public int co_dm_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1338.     {
  1339.         if (!combatStandardAction("co_dm_4", self, target, params, "", ""))
  1340.         {
  1341.             return SCRIPT_OVERRIDE;
  1342.         }
  1343.        
  1344.         return SCRIPT_CONTINUE;
  1345.     }
  1346.    
  1347.    
  1348.     public int co_dm_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1349.     {
  1350.         if (!combatStandardAction("co_dm_5", self, target, params, "", ""))
  1351.         {
  1352.             return SCRIPT_OVERRIDE;
  1353.         }
  1354.        
  1355.         return SCRIPT_CONTINUE;
  1356.     }
  1357.    
  1358.    
  1359.     public int co_dm_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1360.     {
  1361.         if (!combatStandardAction("co_dm_6", self, target, params, "", ""))
  1362.         {
  1363.             return SCRIPT_OVERRIDE;
  1364.         }
  1365.        
  1366.         return SCRIPT_CONTINUE;
  1367.     }
  1368.    
  1369.    
  1370.     public int co_dm_7(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1371.     {
  1372.         if (!combatStandardAction("co_dm_7", self, target, params, "", ""))
  1373.         {
  1374.             return SCRIPT_OVERRIDE;
  1375.         }
  1376.        
  1377.         return SCRIPT_CONTINUE;
  1378.     }
  1379.    
  1380.    
  1381.     public int co_dm_8(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1382.     {
  1383.         if (!combatStandardAction("co_dm_8", self, target, params, "", ""))
  1384.         {
  1385.             return SCRIPT_OVERRIDE;
  1386.         }
  1387.        
  1388.         return SCRIPT_CONTINUE;
  1389.     }
  1390.    
  1391.    
  1392.     public int co_fld_dm_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1393.     {
  1394.         if (!combatStandardAction("co_fld_dm_1", self, target, params, "", ""))
  1395.         {
  1396.             return SCRIPT_OVERRIDE;
  1397.            
  1398.         }
  1399.        
  1400.         return SCRIPT_CONTINUE;
  1401.     }
  1402.    
  1403.    
  1404.     public int co_fld_dm_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1405.     {
  1406.         if (!combatStandardAction("co_fld_dm_2", self, target, params, "", ""))
  1407.         {
  1408.             return SCRIPT_OVERRIDE;
  1409.            
  1410.         }
  1411.        
  1412.         return SCRIPT_CONTINUE;
  1413.     }
  1414.    
  1415.    
  1416.     public int co_shock_tracer_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1417.     {
  1418.         if (!combatStandardAction("co_shock_tracer_1", self, target, params, "", ""))
  1419.         {
  1420.             return SCRIPT_OVERRIDE;
  1421.         }
  1422.        
  1423.         return SCRIPT_CONTINUE;
  1424.     }
  1425.    
  1426.    
  1427.     public int co_shock_tracer_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1428.     {
  1429.         if (!combatStandardAction("co_shock_tracer_2", self, target, params, "", ""))
  1430.         {
  1431.             return SCRIPT_OVERRIDE;
  1432.         }
  1433.        
  1434.         return SCRIPT_CONTINUE;
  1435.     }
  1436.    
  1437.    
  1438.     public int co_shock_tracer_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1439.     {
  1440.         if (!combatStandardAction("co_shock_tracer_3", self, target, params, "", ""))
  1441.         {
  1442.             return SCRIPT_OVERRIDE;
  1443.         }
  1444.        
  1445.         return SCRIPT_CONTINUE;
  1446.     }
  1447.    
  1448.    
  1449.     public int co_shock_tracer_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1450.     {
  1451.         if (!combatStandardAction("co_shock_tracer_4", self, target, params, "", ""))
  1452.         {
  1453.             return SCRIPT_OVERRIDE;
  1454.         }
  1455.        
  1456.         return SCRIPT_CONTINUE;
  1457.     }
  1458.    
  1459.    
  1460.     public int co_shock_grenade_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1461.     {
  1462.         if (!combatStandardAction("co_shock_grenade_1", self, target, params, "", ""))
  1463.         {
  1464.             return SCRIPT_OVERRIDE;
  1465.         }
  1466.        
  1467.         return SCRIPT_CONTINUE;
  1468.     }
  1469.    
  1470.    
  1471.     public int co_shock_grenade_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1472.     {
  1473.         if (!combatStandardAction("co_shock_grenade_2", self, target, params, "", ""))
  1474.         {
  1475.             return SCRIPT_OVERRIDE;
  1476.         }
  1477.        
  1478.         return SCRIPT_CONTINUE;
  1479.     }
  1480.    
  1481.    
  1482.     public int co_shock_grenade_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1483.     {
  1484.         if (!combatStandardAction("co_shock_grenade_3", self, target, params, "", ""))
  1485.         {
  1486.             return SCRIPT_OVERRIDE;
  1487.         }
  1488.        
  1489.         return SCRIPT_CONTINUE;
  1490.     }
  1491.    
  1492.    
  1493.     public int co_shock_grenade_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1494.     {
  1495.         if (!combatStandardAction("co_shock_grenade_4", self, target, params, "", ""))
  1496.         {
  1497.             return SCRIPT_OVERRIDE;
  1498.         }
  1499.        
  1500.         return SCRIPT_CONTINUE;
  1501.     }
  1502.    
  1503.    
  1504.     public int co_enrage_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1505.     {
  1506.         if (buff.hasBuff(self, "cloning_sickness"))
  1507.         {
  1508.             sendSystemMessage(self, new string_id("spam", "not_well_enough") );
  1509.             return SCRIPT_OVERRIDE;
  1510.         }
  1511.        
  1512.         if (!combatStandardAction("co_enrage_1", self, target, params, "", "") || !buff.hasBuff(self, "set_bonus_commando_utility_a_3"))
  1513.         {
  1514.             return SCRIPT_OVERRIDE;
  1515.         }
  1516.        
  1517.         int healthCost = (int)dataTableGetFloat(COMBAT_TABLE, "co_enrage_1", "healthCost");
  1518.        
  1519.         int currentHealth = getHealth(self);
  1520.         int modifiedHealth = currentHealth - healthCost;
  1521.        
  1522.         attrib_mod[] healthMods = getHealthModifiers(self);
  1523.         int healthModsValue = 0;
  1524.        
  1525.         for (int i = 0; i < healthMods.length; i++)
  1526.         {
  1527.             testAbortScript();
  1528.             healthModsValue += healthMods[i].getValue();
  1529.         }
  1530.        
  1531.         if (healthModsValue < 0)
  1532.         {
  1533.             sendSystemMessage(self, new string_id("spam", "not_well_enough") );
  1534.             return SCRIPT_OVERRIDE;
  1535.         }
  1536.        
  1537.         if (modifiedHealth < 1)
  1538.         {
  1539.             showFlyTextPrivate(self, self, new string_id("spam", "low_health"), 1.0f, colors.RED);
  1540.             return SCRIPT_OVERRIDE;
  1541.         }
  1542.        
  1543.         setHealth(self, modifiedHealth);
  1544.         incrementKillMeter(self, 10);
  1545.        
  1546.         playClientEffectObj(self, "clienteffect/medic_reckless_stimulation.cef", self, "root");
  1547.        
  1548.         prose_package pp = new prose_package();
  1549.         pp = prose.setStringId(pp, new string_id("set_bonus", "enraged_cmb_spam"));
  1550.         pp = prose.setTT(pp, self);
  1551.         sendCombatSpamMessageProse(self, pp, COMBAT_RESULT_GENERIC);
  1552.        
  1553.         return SCRIPT_CONTINUE;
  1554.     }
  1555.    
  1556.    
  1557.     public int co_stand_fast(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1558.     {
  1559.         if (!combatStandardAction("co_stand_fast", self, target, params, "", ""))
  1560.         {
  1561.             return SCRIPT_OVERRIDE;
  1562.         }
  1563.        
  1564.         float baseCooldownTime = getBaseCooldownTime("co_stand_fast");
  1565.         LOG ("stand_fast", "baseCooldownTime is "+ baseCooldownTime);
  1566.         if (baseCooldownTime < 0)
  1567.         {
  1568.             return SCRIPT_OVERRIDE;
  1569.         }
  1570.        
  1571.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_co_stand_fast");
  1572.         LOG ("stand_fast", "cooldownTimeMod is "+ cooldownTimeMod);
  1573.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  1574.        
  1575.         return SCRIPT_CONTINUE;
  1576.     }
  1577.    
  1578.    
  1579.     public int eggDetonated(obj_id self, dictionary params) throws InterruptedException
  1580.     {
  1581.         utils.removeScriptVar(self, "objEgg");
  1582.        
  1583.         return SCRIPT_CONTINUE;
  1584.     }
  1585.    
  1586.    
  1587.     public boolean hasEgg(obj_id player) throws InterruptedException
  1588.     {
  1589.         obj_id egg = utils.getObjIdScriptVar(player, "objEgg");
  1590.        
  1591.         if (isValidId(egg) && utils.hasScriptVar(egg, "objOwner"))
  1592.         {
  1593.             return true;
  1594.         }
  1595.         else
  1596.         {
  1597.             return false;
  1598.         }
  1599.     }
  1600.    
  1601.    
  1602.     public boolean detonateEgg(obj_id self, boolean eggCreated) throws InterruptedException
  1603.     {
  1604.        
  1605.         if (eggCreated && hasEgg(self))
  1606.         {
  1607.             dictionary particleParams = new dictionary();
  1608.             dictionary attackParams = new dictionary();
  1609.            
  1610.             obj_id objEgg = utils.getObjIdScriptVar(self, "objEgg");
  1611.            
  1612.             particleParams = utils.getDictionaryScriptVar(objEgg, "handleDelayedParticle");
  1613.             attackParams = utils.getDictionaryScriptVar(objEgg, "handleDelayedAttack");
  1614.            
  1615.             messageTo(objEgg, "handleDelayedParticle", particleParams, 0, false);
  1616.             messageTo(objEgg, "handleDelayedAttack", attackParams, 0, false);
  1617.            
  1618.             utils.removeScriptVar(self, "objEgg");
  1619.            
  1620.             return true;
  1621.         }
  1622.        
  1623.         return false;
  1624.     }
  1625.    
  1626.    
  1627.     public int co_remote_detonator_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1628.     {
  1629.         boolean eggCreated = hasEgg(self);
  1630.        
  1631.         if (!eggCreated && !combatStandardAction("co_remote_detonator_1", self, target, params, "", ""))
  1632.         {
  1633.             return SCRIPT_OVERRIDE;
  1634.         }
  1635.        
  1636.         if (!eggCreated && hasEgg(self))
  1637.         {
  1638.             return SCRIPT_OVERRIDE;
  1639.         }
  1640.        
  1641.         if (!detonateEgg(self, eggCreated))
  1642.         {
  1643.             return SCRIPT_OVERRIDE;
  1644.         }
  1645.        
  1646.         return SCRIPT_CONTINUE;
  1647.     }
  1648.    
  1649.    
  1650.     public int co_remote_detonator_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1651.     {
  1652.         boolean eggCreated = hasEgg(self);
  1653.        
  1654.         if (!eggCreated && !combatStandardAction("co_remote_detonator_2", self, target, params, "", ""))
  1655.         {
  1656.             return SCRIPT_OVERRIDE;
  1657.         }
  1658.        
  1659.         if (!eggCreated && hasEgg(self))
  1660.         {
  1661.             return SCRIPT_OVERRIDE;
  1662.         }
  1663.        
  1664.         if (!detonateEgg(self, eggCreated))
  1665.         {
  1666.             return SCRIPT_OVERRIDE;
  1667.         }
  1668.        
  1669.         return SCRIPT_CONTINUE;
  1670.     }
  1671.    
  1672.    
  1673.     public int co_remote_detonator_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1674.     {
  1675.         boolean eggCreated = hasEgg(self);
  1676.        
  1677.         if (!eggCreated && !combatStandardAction("co_remote_detonator_3", self, target, params, "", ""))
  1678.         {
  1679.             return SCRIPT_OVERRIDE;
  1680.         }
  1681.        
  1682.         if (!eggCreated && hasEgg(self))
  1683.         {
  1684.             return SCRIPT_OVERRIDE;
  1685.         }
  1686.        
  1687.         if (!detonateEgg(self, eggCreated))
  1688.         {
  1689.             return SCRIPT_OVERRIDE;
  1690.         }
  1691.        
  1692.         return SCRIPT_CONTINUE;
  1693.     }
  1694.    
  1695.    
  1696.     public int co_remote_detonator_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1697.     {
  1698.         boolean eggCreated = hasEgg(self);
  1699.        
  1700.         if (!eggCreated && !combatStandardAction("co_remote_detonator_4", self, target, params, "", ""))
  1701.         {
  1702.             return SCRIPT_OVERRIDE;
  1703.         }
  1704.        
  1705.         if (!eggCreated && hasEgg(self))
  1706.         {
  1707.             return SCRIPT_OVERRIDE;
  1708.         }
  1709.        
  1710.         if (!detonateEgg(self, eggCreated))
  1711.         {
  1712.             return SCRIPT_OVERRIDE;
  1713.         }
  1714.        
  1715.         return SCRIPT_CONTINUE;
  1716.     }
  1717.    
  1718.    
  1719.     public int co_remote_detonator_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1720.     {
  1721.         boolean eggCreated = hasEgg(self);
  1722.        
  1723.         if (!eggCreated && !combatStandardAction("co_remote_detonator_5", self, target, params, "", ""))
  1724.         {
  1725.             return SCRIPT_OVERRIDE;
  1726.         }
  1727.        
  1728.         if (!eggCreated && hasEgg(self))
  1729.         {
  1730.             return SCRIPT_OVERRIDE;
  1731.         }
  1732.        
  1733.         if (!detonateEgg(self, eggCreated))
  1734.         {
  1735.             return SCRIPT_OVERRIDE;
  1736.         }
  1737.        
  1738.         return SCRIPT_CONTINUE;
  1739.     }
  1740.    
  1741.    
  1742.     public int co_sh_0(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1743.     {
  1744.         if (!healing.isDamaged(self))
  1745.         {
  1746.             sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self"));
  1747.             return SCRIPT_OVERRIDE;
  1748.         }
  1749.        
  1750.         if (!combatStandardAction("co_sh_0", self, target, params, "", ""))
  1751.         {
  1752.             return SCRIPT_OVERRIDE;
  1753.         }
  1754.        
  1755.         return SCRIPT_CONTINUE;
  1756.     }
  1757.    
  1758.    
  1759.     public int co_sh_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1760.     {
  1761.         if (!healing.isDamaged(self))
  1762.         {
  1763.             sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self"));
  1764.             return SCRIPT_OVERRIDE;
  1765.         }
  1766.        
  1767.         if (!combatStandardAction("co_sh_1", self, target, params, "", ""))
  1768.         {
  1769.             return SCRIPT_OVERRIDE;
  1770.         }
  1771.        
  1772.         return SCRIPT_CONTINUE;
  1773.     }
  1774.    
  1775.    
  1776.     public int co_sh_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1777.     {
  1778.         if (!healing.isDamaged(self))
  1779.         {
  1780.             sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self"));
  1781.             return SCRIPT_OVERRIDE;
  1782.         }
  1783.        
  1784.         if (!combatStandardAction("co_sh_2", self, target, params, "", ""))
  1785.         {
  1786.             return SCRIPT_OVERRIDE;
  1787.         }
  1788.        
  1789.         return SCRIPT_CONTINUE;
  1790.     }
  1791.    
  1792.    
  1793.     public int co_sh_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1794.     {
  1795.         if (!healing.isDamaged(self))
  1796.         {
  1797.             sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self"));
  1798.             return SCRIPT_OVERRIDE;
  1799.         }
  1800.        
  1801.         if (!combatStandardAction("co_sh_3", self, target, params, "", ""))
  1802.         {
  1803.             return SCRIPT_OVERRIDE;
  1804.         }
  1805.        
  1806.         return SCRIPT_CONTINUE;
  1807.     }
  1808.    
  1809.    
  1810.     public int co_stim_armor(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1811.     {
  1812.         if (!combatStandardAction("co_stim_armor", self, target, params, "", ""))
  1813.         {
  1814.             return SCRIPT_OVERRIDE;
  1815.         }
  1816.        
  1817.         return SCRIPT_CONTINUE;
  1818.     }
  1819.    
  1820.    
  1821.     public int kill_meter_co_it_burns_proc(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1822.     {
  1823.         if (!combatStandardAction("kill_meter_co_it_burns_proc", self, target, params, "", ""))
  1824.         {
  1825.             return SCRIPT_OVERRIDE;
  1826.         }
  1827.        
  1828.         return SCRIPT_CONTINUE;
  1829.     }
  1830.    
  1831.    
  1832.     public int kill_meter_co_armor_splash_proc(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1833.     {
  1834.         if (!combatStandardAction("kill_meter_co_armor_splash_proc", self, target, params, "", ""))
  1835.         {
  1836.             return SCRIPT_OVERRIDE;
  1837.         }
  1838.        
  1839.         return SCRIPT_CONTINUE;
  1840.     }
  1841.    
  1842.    
  1843.     public int kill_meter_co_youll_regret_that_reac(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1844.     {
  1845.         if (!combatStandardAction("kill_meter_co_youll_regret_that_reac", self, target, params, "", ""))
  1846.         {
  1847.             return SCRIPT_OVERRIDE;
  1848.         }
  1849.        
  1850.         return SCRIPT_CONTINUE;
  1851.     }
  1852.    
  1853.    
  1854.     public int expertise_co_burst_fire_proc(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1855.     {
  1856.         if (!combatStandardAction("expertise_co_burst_fire_proc", self, target, params, "", ""))
  1857.         {
  1858.             return SCRIPT_OVERRIDE;
  1859.         }
  1860.        
  1861.         return SCRIPT_CONTINUE;
  1862.     }
  1863.    
  1864.    
  1865.     public int co_position_secured(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1866.     {
  1867.         if (buff.toggleStance(self, "co_position_secured"))
  1868.         {
  1869.             return SCRIPT_OVERRIDE;
  1870.         }
  1871.        
  1872.         if (!combatStandardAction("co_position_secured", self, target, params, "", ""))
  1873.         {
  1874.             return SCRIPT_OVERRIDE;
  1875.         }
  1876.        
  1877.         vehicle.storeAllVehicles(self);
  1878.        
  1879.         showFlyText(self, new string_id("spam", "co_position_secured"), 2, colors.LEMONCHIFFON);
  1880.        
  1881.         return SCRIPT_CONTINUE;
  1882.     }
  1883.    
  1884.    
  1885.     public int co_suppressing_fire(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1886.     {
  1887.         if (!combatStandardAction("co_suppressing_fire", self, target, params, "", ""))
  1888.         {
  1889.             return SCRIPT_OVERRIDE;
  1890.         }
  1891.        
  1892.         return SCRIPT_CONTINUE;
  1893.     }
  1894.    
  1895.    
  1896.     public int co_riddle_armor(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1897.     {
  1898.         if (!combatStandardAction("co_riddle_armor", self, target, params, "", ""))
  1899.         {
  1900.             return SCRIPT_OVERRIDE;
  1901.         }
  1902.        
  1903.         float baseCooldownTime = getBaseCooldownTime("co_riddle_armor");
  1904.         if (baseCooldownTime < 0)
  1905.         {
  1906.             return SCRIPT_OVERRIDE;
  1907.         }
  1908.        
  1909.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_co_riddle_armor");
  1910.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  1911.        
  1912.         return SCRIPT_CONTINUE;
  1913.     }
  1914.    
  1915.    
  1916.     public int co_armor_cracker(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1917.     {
  1918.         if (!combatStandardAction("co_armor_cracker", self, target, params, "", ""))
  1919.         {
  1920.             return SCRIPT_OVERRIDE;
  1921.         }
  1922.        
  1923.         float baseCooldownTime = getBaseCooldownTime("co_armor_cracker");
  1924.         if (baseCooldownTime < 0)
  1925.         {
  1926.             return SCRIPT_OVERRIDE;
  1927.         }
  1928.        
  1929.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_co_riddle_armor");
  1930.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  1931.        
  1932.         return SCRIPT_CONTINUE;
  1933.     }
  1934.    
  1935.    
  1936.     public int ofAggroChannel(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1937.     {
  1938.         if (!group.inSameGroup(self, target) || target == self)
  1939.         {
  1940.             return SCRIPT_OVERRIDE;
  1941.         }
  1942.        
  1943.         if (!combatStandardAction("of_aggro_channel", self, target, params, "", ""))
  1944.         {
  1945.             return SCRIPT_OVERRIDE;
  1946.         }
  1947.        
  1948.         return SCRIPT_CONTINUE;
  1949.     }
  1950.    
  1951.    
  1952.     public int co_mirror_armor(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1953.     {
  1954.         if (!combatStandardAction("co_mirror_armor", self, target, params, "", ""))
  1955.         {
  1956.             return SCRIPT_OVERRIDE;
  1957.         }
  1958.        
  1959.         combat.mirrorArmor(self);
  1960.        
  1961.         return SCRIPT_CONTINUE;
  1962.     }
  1963.    
  1964.    
  1965.     public int en_dm_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1966.     {
  1967.         if (!combatStandardAction("en_dm_1", self, target, params, "", ""))
  1968.         {
  1969.             return SCRIPT_OVERRIDE;
  1970.         }
  1971.        
  1972.         return SCRIPT_CONTINUE;
  1973.     }
  1974.    
  1975.    
  1976.     public int en_dm_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1977.     {
  1978.         if (!combatStandardAction("en_dm_2", self, target, params, "", ""))
  1979.         {
  1980.             return SCRIPT_OVERRIDE;
  1981.         }
  1982.        
  1983.         return SCRIPT_CONTINUE;
  1984.     }
  1985.    
  1986.    
  1987.     public int en_dm_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1988.     {
  1989.         if (!combatStandardAction("en_dm_3", self, target, params, "", ""))
  1990.         {
  1991.             return SCRIPT_OVERRIDE;
  1992.         }
  1993.        
  1994.         return SCRIPT_CONTINUE;
  1995.     }
  1996.    
  1997.    
  1998.     public int en_dm_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  1999.     {
  2000.         if (!combatStandardAction("en_dm_4", self, target, params, "", ""))
  2001.         {
  2002.             return SCRIPT_OVERRIDE;
  2003.         }
  2004.        
  2005.         return SCRIPT_CONTINUE;
  2006.     }
  2007.    
  2008.    
  2009.     public int en_dm_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2010.     {
  2011.         if (!combatStandardAction("en_dm_5", self, target, params, "", ""))
  2012.         {
  2013.             return SCRIPT_OVERRIDE;
  2014.         }
  2015.        
  2016.         return SCRIPT_CONTINUE;
  2017.     }
  2018.    
  2019.    
  2020.     public int en_dm_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2021.     {
  2022.         if (!combatStandardAction("en_dm_6", self, target, params, "", ""))
  2023.         {
  2024.             return SCRIPT_OVERRIDE;
  2025.         }
  2026.        
  2027.         return SCRIPT_CONTINUE;
  2028.     }
  2029.    
  2030.    
  2031.     public int en_dm_7(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2032.     {
  2033.         if (!combatStandardAction("en_dm_7", self, target, params, "", ""))
  2034.         {
  2035.             return SCRIPT_OVERRIDE;
  2036.         }
  2037.        
  2038.         return SCRIPT_CONTINUE;
  2039.     }
  2040.    
  2041.    
  2042.     public int en_dm_8(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2043.     {
  2044.         if (!combatStandardAction("en_dm_8", self, target, params, "", ""))
  2045.         {
  2046.             return SCRIPT_OVERRIDE;
  2047.         }
  2048.        
  2049.         return SCRIPT_CONTINUE;
  2050.     }
  2051.    
  2052.    
  2053.     public int en_sh_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2054.     {
  2055.         if (!healing.isDamaged(self))
  2056.         {
  2057.             sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self"));
  2058.             return SCRIPT_OVERRIDE;
  2059.         }
  2060.        
  2061.         if (!combatStandardAction("en_sh_1", self, target, params, "", ""))
  2062.         {
  2063.             return SCRIPT_OVERRIDE;
  2064.         }
  2065.         return SCRIPT_CONTINUE;
  2066.     }
  2067.    
  2068.    
  2069.     public int en_sh_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2070.     {
  2071.         if (!healing.isDamaged(self))
  2072.         {
  2073.             sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self"));
  2074.             return SCRIPT_OVERRIDE;
  2075.         }
  2076.        
  2077.         if (!combatStandardAction("en_sh_2", self, target, params, "", ""))
  2078.         {
  2079.             return SCRIPT_OVERRIDE;
  2080.         }
  2081.        
  2082.         return SCRIPT_CONTINUE;
  2083.     }
  2084.    
  2085.    
  2086.     public int en_sh_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2087.     {
  2088.         if (!healing.isDamaged(self))
  2089.         {
  2090.             sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self"));
  2091.             return SCRIPT_OVERRIDE;
  2092.         }
  2093.        
  2094.         if (!combatStandardAction("en_sh_3", self, target, params, "", ""))
  2095.         {
  2096.             return SCRIPT_OVERRIDE;
  2097.         }
  2098.        
  2099.         return SCRIPT_CONTINUE;
  2100.     }
  2101.    
  2102.    
  2103.     public int bh_conceal_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2104.     {
  2105.         if (!combatStandardAction("bh_conceal_1", self, target, params, "", ""))
  2106.         {
  2107.             return SCRIPT_OVERRIDE;
  2108.         }
  2109.        
  2110.         return SCRIPT_CONTINUE;
  2111.     }
  2112.    
  2113.    
  2114.     public int co_conceal_device_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2115.     {
  2116.         if (!combatStandardAction("co_conceal_device_1", self, target, params, "", ""))
  2117.         {
  2118.             return SCRIPT_OVERRIDE;
  2119.         }
  2120.        
  2121.         return SCRIPT_CONTINUE;
  2122.     }
  2123.    
  2124.    
  2125.     public int sp_neutralize_device_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2126.     {
  2127.         if (!stealth.canDisarmTrap(self, target))
  2128.         {
  2129.             return SCRIPT_OVERRIDE;
  2130.         }
  2131.        
  2132.         stealth.disarmTrap(self, target);
  2133.         return SCRIPT_CONTINUE;
  2134.     }
  2135.    
  2136.    
  2137.     public int sp_hide_device_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2138.     {
  2139.         if (!combatStandardAction("sp_hide_device_1", self, target, params, "", ""))
  2140.         {
  2141.             return SCRIPT_OVERRIDE;
  2142.         }
  2143.        
  2144.         return SCRIPT_CONTINUE;
  2145.     }
  2146.    
  2147.    
  2148.     public int fs_saber_reflect_buff(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2149.     {
  2150.         if (!buff.isInStance(self))
  2151.         {
  2152.             sendSystemMessage(self, new string_id("spam", "fs_command_no_stance"));
  2153.             return SCRIPT_OVERRIDE;
  2154.         }
  2155.        
  2156.         if (!combatStandardAction("fs_saber_reflect_buff", self, target, params, "", ""))
  2157.         {
  2158.             return SCRIPT_OVERRIDE;
  2159.         }
  2160.        
  2161.         return SCRIPT_CONTINUE;
  2162.     }
  2163.    
  2164.    
  2165.     public int fs_saber_reflect(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2166.     {
  2167.         if (!buff.isInStance(self) || !buff.hasBuff(self, "fs_saber_reflect"))
  2168.         {
  2169.             return SCRIPT_OVERRIDE;
  2170.         }
  2171.        
  2172.         if (!combatStandardAction("fs_saber_reflect", self, target, params, "", ""))
  2173.         {
  2174.             return SCRIPT_OVERRIDE;
  2175.         }
  2176.        
  2177.         showFlyTextPrivate(self, self, new string_id("combat_effects", "saber_reflect"), 1.5f, colors.ORANGERED);
  2178.        
  2179.         return SCRIPT_CONTINUE;
  2180.     }
  2181.    
  2182.    
  2183.     public int saberBlock(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2184.     {
  2185.         if (!combatStandardAction("saberBlock", self, target, params, "", ""))
  2186.         {
  2187.             return SCRIPT_OVERRIDE;
  2188.         }
  2189.        
  2190.         return SCRIPT_CONTINUE;
  2191.     }
  2192.    
  2193.    
  2194.     public int fs_sense_danger_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2195.     {
  2196.         if (!stealth.canDetectCamouflage(self) || !combatStandardAction("fs_sense_danger_1", self, target, params, "", ""))
  2197.         {
  2198.             return SCRIPT_OVERRIDE;
  2199.         }
  2200.        
  2201.         float detectSkill = getEnhancedSkillStatisticModifier(self, "detect_hidden");
  2202.         float distance = stealth.BASE_DETECT_CAMOUFLAGE_DISTANCE + (detectSkill / 20);
  2203.        
  2204.         float detectChance = 50.0f;
  2205.        
  2206.         stealth.detectCamouflage(self, true, true, distance, detectChance);
  2207.         return SCRIPT_CONTINUE;
  2208.     }
  2209.    
  2210.    
  2211.     public int fs_forsake_fear(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2212.     {
  2213.         if (!buff.isInStance(self))
  2214.         {
  2215.             sendSystemMessage(self, new string_id("spam", "fs_command_no_stance"));
  2216.             return SCRIPT_OVERRIDE;
  2217.         }
  2218.        
  2219.         if (!combatStandardAction("fs_forsake_fear", self, target, params, "", ""))
  2220.         {
  2221.             return SCRIPT_OVERRIDE;
  2222.         }
  2223.        
  2224.         string_id promptString = new string_id("healing", "fs_forsake_fear_channel");
  2225.        
  2226.         int flags = sui.CD_EVENT_INCAPACITATE;
  2227.        
  2228.         int pid = sui.smartCountdownTimerSUI(self, self, "channelForsakeFearCountdown", promptString, 0, 10, "channelForsakeFearCountdownHandler", 1f, flags);
  2229.        
  2230.         utils.setScriptVar(self, "buff_handler.ForsakeFearSUIPID", pid);
  2231.        
  2232.         dictionary parms = new dictionary();
  2233.        
  2234.         parms.put("player", self);
  2235.         parms.put("buffName", "fs_forsake_fear");
  2236.        
  2237.         messageTo(self, "checkChannelForsakeFear", parms, 1, false);
  2238.        
  2239.         return SCRIPT_CONTINUE;
  2240.     }
  2241.    
  2242.    
  2243.     public int fs_force_spark(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2244.     {
  2245.         if (!combatStandardAction("fs_force_spark", self, target, params, "", ""))
  2246.         {
  2247.             return SCRIPT_OVERRIDE;
  2248.         }
  2249.        
  2250.         return SCRIPT_CONTINUE;
  2251.     }
  2252.    
  2253.    
  2254.     public int fs_ae_dm_cc_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2255.     {
  2256.         if (!buff.isInFocus(self))
  2257.         {
  2258.             sendSystemMessage(self, new string_id("spam", "fs_command_no_focus"));
  2259.             return SCRIPT_OVERRIDE;
  2260.         }
  2261.        
  2262.         if (!combatStandardAction("fs_ae_dm_cc_1", self, target, params, "", ""))
  2263.         {
  2264.             return SCRIPT_OVERRIDE;
  2265.         }
  2266.        
  2267.         if (successfulFastAttack(self, "fs_powers", "fury_fly"))
  2268.         {
  2269.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  2270.             return SCRIPT_CONTINUE;
  2271.         }
  2272.        
  2273.         float baseCooldownTime = getBaseCooldownTime("fs_ae_dm_cc_1");
  2274.         if (baseCooldownTime < 0)
  2275.         {
  2276.             return SCRIPT_OVERRIDE;
  2277.         }
  2278.        
  2279.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_ae_dm_cc") / 10;
  2280.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  2281.        
  2282.         return SCRIPT_CONTINUE;
  2283.     }
  2284.    
  2285.    
  2286.     public int fs_ae_dm_cc_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2287.     {
  2288.         if (!buff.isInFocus(self))
  2289.         {
  2290.             sendSystemMessage(self, new string_id("spam", "fs_command_no_focus"));
  2291.             return SCRIPT_OVERRIDE;
  2292.         }
  2293.        
  2294.         if (!combatStandardAction("fs_ae_dm_cc_2", self, target, params, "", ""))
  2295.         {
  2296.             return SCRIPT_OVERRIDE;
  2297.         }
  2298.        
  2299.         if (successfulFastAttack(self, "fs_powers", "fury_fly"))
  2300.         {
  2301.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  2302.             return SCRIPT_CONTINUE;
  2303.         }
  2304.        
  2305.         float baseCooldownTime = getBaseCooldownTime("fs_ae_dm_cc_2");
  2306.         if (baseCooldownTime < 0)
  2307.         {
  2308.             return SCRIPT_OVERRIDE;
  2309.         }
  2310.        
  2311.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_ae_dm_cc") / 10;
  2312.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  2313.        
  2314.         return SCRIPT_CONTINUE;
  2315.     }
  2316.    
  2317.    
  2318.     public int fs_ae_dm_cc_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2319.     {
  2320.         if (!buff.isInFocus(self))
  2321.         {
  2322.             sendSystemMessage(self, new string_id("spam", "fs_command_no_focus"));
  2323.             return SCRIPT_OVERRIDE;
  2324.         }
  2325.        
  2326.         if (!combatStandardAction("fs_ae_dm_cc_3", self, target, params, "", ""))
  2327.         {
  2328.             return SCRIPT_OVERRIDE;
  2329.         }
  2330.        
  2331.         if (successfulFastAttack(self, "fs_powers", "fury_fly"))
  2332.         {
  2333.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  2334.             return SCRIPT_CONTINUE;
  2335.         }
  2336.        
  2337.         float baseCooldownTime = getBaseCooldownTime("fs_ae_dm_cc_3");
  2338.         if (baseCooldownTime < 0)
  2339.         {
  2340.             return SCRIPT_OVERRIDE;
  2341.         }
  2342.        
  2343.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_ae_dm_cc") / 10;
  2344.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  2345.        
  2346.         return SCRIPT_CONTINUE;
  2347.     }
  2348.    
  2349.    
  2350.     public int fs_ae_dm_cc_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2351.     {
  2352.         if (!buff.isInFocus(self))
  2353.         {
  2354.             sendSystemMessage(self, new string_id("spam", "fs_command_no_focus"));
  2355.             return SCRIPT_OVERRIDE;
  2356.         }
  2357.        
  2358.         if (!combatStandardAction("fs_ae_dm_cc_4", self, target, params, "", ""))
  2359.         {
  2360.             return SCRIPT_OVERRIDE;
  2361.         }
  2362.        
  2363.         if (successfulFastAttack(self, "fs_powers", "fury_fly"))
  2364.         {
  2365.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  2366.             return SCRIPT_CONTINUE;
  2367.         }
  2368.        
  2369.         float baseCooldownTime = getBaseCooldownTime("fs_ae_dm_cc_4");
  2370.         if (baseCooldownTime < 0)
  2371.         {
  2372.             return SCRIPT_OVERRIDE;
  2373.         }
  2374.        
  2375.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_ae_dm_cc") / 10;
  2376.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  2377.        
  2378.         return SCRIPT_CONTINUE;
  2379.     }
  2380.    
  2381.    
  2382.     public int fs_ae_dm_cc_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2383.     {
  2384.         if (!buff.isInFocus(self))
  2385.         {
  2386.             sendSystemMessage(self, new string_id("spam", "fs_command_no_focus"));
  2387.             return SCRIPT_OVERRIDE;
  2388.         }
  2389.        
  2390.         if (!combatStandardAction("fs_ae_dm_cc_5", self, target, params, "", ""))
  2391.         {
  2392.             return SCRIPT_OVERRIDE;
  2393.         }
  2394.        
  2395.         if (successfulFastAttack(self, "fs_powers", "fury_fly"))
  2396.         {
  2397.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  2398.             return SCRIPT_CONTINUE;
  2399.         }
  2400.        
  2401.         float baseCooldownTime = getBaseCooldownTime("fs_ae_dm_cc_5");
  2402.         if (baseCooldownTime < 0)
  2403.         {
  2404.             return SCRIPT_OVERRIDE;
  2405.         }
  2406.        
  2407.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_ae_dm_cc") / 10;
  2408.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  2409.        
  2410.         return SCRIPT_CONTINUE;
  2411.     }
  2412.    
  2413.    
  2414.     public int fs_ae_dm_cc_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2415.     {
  2416.         if (!buff.isInFocus(self))
  2417.         {
  2418.             sendSystemMessage(self, new string_id("spam", "fs_command_no_focus"));
  2419.             return SCRIPT_OVERRIDE;
  2420.         }
  2421.        
  2422.         if (!combatStandardAction("fs_ae_dm_cc_6", self, target, params, "", ""))
  2423.         {
  2424.             return SCRIPT_OVERRIDE;
  2425.         }
  2426.        
  2427.         if (successfulFastAttack(self, "fs_powers", "fury_fly"))
  2428.         {
  2429.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  2430.             return SCRIPT_CONTINUE;
  2431.         }
  2432.        
  2433.         float baseCooldownTime = getBaseCooldownTime("fs_ae_dm_cc_6");
  2434.         if (baseCooldownTime < 0)
  2435.         {
  2436.             return SCRIPT_OVERRIDE;
  2437.         }
  2438.        
  2439.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_ae_dm_cc") / 10;
  2440.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  2441.        
  2442.         return SCRIPT_CONTINUE;
  2443.     }
  2444.    
  2445.    
  2446.     public int fs_maelstrom_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2447.     {
  2448.         if (!buff.isInFocus(self))
  2449.         {
  2450.             sendSystemMessage(self, new string_id("spam", "fs_command_no_focus"));
  2451.             return SCRIPT_OVERRIDE;
  2452.         }
  2453.        
  2454.         if (!combatStandardAction("fs_maelstrom_1", self, target, params, "", ""))
  2455.         {
  2456.             return SCRIPT_OVERRIDE;
  2457.         }
  2458.        
  2459.         if (successfulFastAttack(self, "fs_powers", "fury_fly"))
  2460.         {
  2461.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  2462.         }
  2463.        
  2464.         return SCRIPT_CONTINUE;
  2465.     }
  2466.    
  2467.    
  2468.     public int fs_maelstrom_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2469.     {
  2470.         if (!buff.isInFocus(self))
  2471.         {
  2472.             sendSystemMessage(self, new string_id("spam", "fs_command_no_focus"));
  2473.             return SCRIPT_OVERRIDE;
  2474.         }
  2475.        
  2476.         if (!combatStandardAction("fs_maelstrom_2", self, target, params, "", ""))
  2477.         {
  2478.             return SCRIPT_OVERRIDE;
  2479.         }
  2480.        
  2481.         if (successfulFastAttack(self, "fs_powers", "fury_fly"))
  2482.         {
  2483.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  2484.         }
  2485.        
  2486.         return SCRIPT_CONTINUE;
  2487.     }
  2488.    
  2489.    
  2490.     public int fs_maelstrom_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2491.     {
  2492.         if (!buff.isInFocus(self))
  2493.         {
  2494.             sendSystemMessage(self, new string_id("spam", "fs_command_no_focus"));
  2495.             return SCRIPT_OVERRIDE;
  2496.         }
  2497.        
  2498.         if (!combatStandardAction("fs_maelstrom_3", self, target, params, "", ""))
  2499.         {
  2500.             return SCRIPT_OVERRIDE;
  2501.         }
  2502.        
  2503.         if (successfulFastAttack(self, "fs_powers", "fury_fly"))
  2504.         {
  2505.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  2506.         }
  2507.        
  2508.         return SCRIPT_CONTINUE;
  2509.     }
  2510.    
  2511.    
  2512.     public int fs_maelstrom_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2513.     {
  2514.         if (!buff.isInFocus(self))
  2515.         {
  2516.             sendSystemMessage(self, new string_id("spam", "fs_command_no_focus"));
  2517.             return SCRIPT_OVERRIDE;
  2518.         }
  2519.        
  2520.         if (!combatStandardAction("fs_maelstrom_4", self, target, params, "", ""))
  2521.         {
  2522.             return SCRIPT_OVERRIDE;
  2523.         }
  2524.        
  2525.         if (successfulFastAttack(self, "fs_powers", "fury_fly"))
  2526.         {
  2527.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  2528.         }
  2529.        
  2530.         return SCRIPT_CONTINUE;
  2531.     }
  2532.    
  2533.    
  2534.     public int fs_maelstrom_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2535.     {
  2536.         if (!buff.isInFocus(self))
  2537.         {
  2538.             sendSystemMessage(self, new string_id("spam", "fs_command_no_focus"));
  2539.             return SCRIPT_OVERRIDE;
  2540.         }
  2541.        
  2542.         if (!combatStandardAction("fs_maelstrom_5", self, target, params, "", ""))
  2543.         {
  2544.             return SCRIPT_OVERRIDE;
  2545.         }
  2546.        
  2547.         if (successfulFastAttack(self, "fs_powers", "fury_fly"))
  2548.         {
  2549.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  2550.         }
  2551.        
  2552.         return SCRIPT_CONTINUE;
  2553.     }
  2554.    
  2555.    
  2556.     public int fs_buff_ca_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2557.     {
  2558.        
  2559.         if (buff.toggleStance(self, "fs_buff_ca_1"))
  2560.         {
  2561.             return SCRIPT_OVERRIDE;
  2562.         }
  2563.        
  2564.         if (!combatStandardAction("fs_buff_ca_1", self, target, params, "", ""))
  2565.         {
  2566.             return SCRIPT_OVERRIDE;
  2567.         }
  2568.        
  2569.         return SCRIPT_CONTINUE;
  2570.     }
  2571.    
  2572.    
  2573.     public int fs_buff_def_1_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2574.     {
  2575.        
  2576.         if (buff.toggleStance(self, "fs_buff_def_1_1"))
  2577.         {
  2578.             return SCRIPT_OVERRIDE;
  2579.         }
  2580.        
  2581.         if (!combatStandardAction("fs_buff_def_1_1", self, target, params, "", ""))
  2582.         {
  2583.             return SCRIPT_OVERRIDE;
  2584.         }
  2585.        
  2586.         return SCRIPT_CONTINUE;
  2587.     }
  2588.    
  2589.    
  2590.     public int fs_flurry_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2591.     {
  2592.         if (!combatStandardAction("fs_flurry_1", self, target, params, "", ""))
  2593.         {
  2594.             return SCRIPT_OVERRIDE;
  2595.         }
  2596.        
  2597.         return SCRIPT_CONTINUE;
  2598.     }
  2599.    
  2600.    
  2601.     public int fs_flurry_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2602.     {
  2603.         if (!combatStandardAction("fs_flurry_2", self, target, params, "", ""))
  2604.         {
  2605.             return SCRIPT_OVERRIDE;
  2606.         }
  2607.        
  2608.         return SCRIPT_CONTINUE;
  2609.     }
  2610.    
  2611.     public int fs_flurry_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2612.     {
  2613.         if (!combatStandardAction("fs_flurry_3", self, target, params, "", ""))
  2614.         {
  2615.             return SCRIPT_OVERRIDE;
  2616.         }
  2617.        
  2618.         return SCRIPT_CONTINUE;
  2619.     }
  2620.    
  2621.     public int fs_flurry_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2622.     {
  2623.         if (!combatStandardAction("fs_flurry_4", self, target, params, "", ""))
  2624.         {
  2625.             return SCRIPT_OVERRIDE;
  2626.         }
  2627.        
  2628.         return SCRIPT_CONTINUE;
  2629.     }
  2630.    
  2631.     public int fs_flurry_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2632.     {
  2633.         if (!combatStandardAction("fs_flurry_5", self, target, params, "", ""))
  2634.         {
  2635.             return SCRIPT_OVERRIDE;
  2636.         }
  2637.        
  2638.         return SCRIPT_CONTINUE;
  2639.     }
  2640.    
  2641.     public int fs_flurry_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2642.     {
  2643.         if (!combatStandardAction("fs_flurry_6", self, target, params, "", ""))
  2644.         {
  2645.             return SCRIPT_OVERRIDE;
  2646.         }
  2647.        
  2648.         return SCRIPT_CONTINUE;
  2649.     }
  2650.    
  2651.     public int fs_flurry_7(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2652.     {
  2653.         if (!combatStandardAction("fs_flurry_7", self, target, params, "", ""))
  2654.         {
  2655.             return SCRIPT_OVERRIDE;
  2656.         }
  2657.        
  2658.         return SCRIPT_CONTINUE;
  2659.     }
  2660.    
  2661.     public int fs_dm_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2662.     {
  2663.         if (!combatStandardAction("fs_dm_1", self, target, params, "", ""))
  2664.         {
  2665.             return SCRIPT_OVERRIDE;
  2666.         }
  2667.        
  2668.         float baseCooldownTime = getBaseCooldownTime("fs_dm_1");
  2669.         if (baseCooldownTime < 0)
  2670.         {
  2671.             return SCRIPT_OVERRIDE;
  2672.         }
  2673.        
  2674.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_dm") / 10;
  2675.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  2676.        
  2677.         return SCRIPT_CONTINUE;
  2678.     }
  2679.    
  2680.    
  2681.     public int fs_dm_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2682.     {
  2683.         if (!combatStandardAction("fs_dm_2", self, target, params, "", ""))
  2684.         {
  2685.             return SCRIPT_OVERRIDE;
  2686.         }
  2687.        
  2688.         float baseCooldownTime = getBaseCooldownTime("fs_dm_2");
  2689.         if (baseCooldownTime < 0)
  2690.         {
  2691.             return SCRIPT_OVERRIDE;
  2692.         }
  2693.        
  2694.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_dm") / 10;
  2695.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  2696.        
  2697.         return SCRIPT_CONTINUE;
  2698.     }
  2699.    
  2700.    
  2701.     public int fs_dm_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2702.     {
  2703.         if (!combatStandardAction("fs_dm_3", self, target, params, "", ""))
  2704.         {
  2705.             return SCRIPT_OVERRIDE;
  2706.         }
  2707.        
  2708.         float baseCooldownTime = getBaseCooldownTime("fs_dm_3");
  2709.         if (baseCooldownTime < 0)
  2710.         {
  2711.             return SCRIPT_OVERRIDE;
  2712.         }
  2713.        
  2714.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_dm") / 10;
  2715.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  2716.        
  2717.         return SCRIPT_CONTINUE;
  2718.     }
  2719.    
  2720.    
  2721.     public int fs_dm_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2722.     {
  2723.         if (!combatStandardAction("fs_dm_4", self, target, params, "", ""))
  2724.         {
  2725.             return SCRIPT_OVERRIDE;
  2726.         }
  2727.        
  2728.         float baseCooldownTime = getBaseCooldownTime("fs_dm_4");
  2729.         if (baseCooldownTime < 0)
  2730.         {
  2731.             return SCRIPT_OVERRIDE;
  2732.         }
  2733.        
  2734.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_dm") / 10;
  2735.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  2736.        
  2737.         return SCRIPT_CONTINUE;
  2738.     }
  2739.    
  2740.    
  2741.     public int fs_dm_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2742.     {
  2743.         if (!combatStandardAction("fs_dm_5", self, target, params, "", ""))
  2744.         {
  2745.             return SCRIPT_OVERRIDE;
  2746.         }
  2747.        
  2748.         float baseCooldownTime = getBaseCooldownTime("fs_dm_5");
  2749.         if (baseCooldownTime < 0)
  2750.         {
  2751.             return SCRIPT_OVERRIDE;
  2752.         }
  2753.        
  2754.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_dm") / 10;
  2755.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  2756.        
  2757.         return SCRIPT_CONTINUE;
  2758.     }
  2759.    
  2760.    
  2761.     public int fs_dm_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2762.     {
  2763.         if (!combatStandardAction("fs_dm_6", self, target, params, "", ""))
  2764.         {
  2765.             return SCRIPT_OVERRIDE;
  2766.         }
  2767.        
  2768.         float baseCooldownTime = getBaseCooldownTime("fs_dm_6");
  2769.         if (baseCooldownTime < 0)
  2770.         {
  2771.             return SCRIPT_OVERRIDE;
  2772.         }
  2773.        
  2774.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_dm") / 10;
  2775.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  2776.        
  2777.         return SCRIPT_CONTINUE;
  2778.     }
  2779.    
  2780.    
  2781.     public int fs_dm_7(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2782.     {
  2783.         if (!combatStandardAction("fs_dm_7", self, target, params, "", ""))
  2784.         {
  2785.             return SCRIPT_OVERRIDE;
  2786.         }
  2787.        
  2788.         float baseCooldownTime = getBaseCooldownTime("fs_dm_7");
  2789.         if (baseCooldownTime < 0)
  2790.         {
  2791.             return SCRIPT_OVERRIDE;
  2792.         }
  2793.        
  2794.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_dm") / 10;
  2795.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  2796.        
  2797.         return SCRIPT_CONTINUE;
  2798.     }
  2799.    
  2800.    
  2801.     public int fs_sweep_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2802.     {
  2803.         if (!combatStandardAction("fs_sweep_1", self, target, params, "", ""))
  2804.         {
  2805.             return SCRIPT_OVERRIDE;
  2806.         }
  2807.        
  2808.         float baseCooldownTime = getBaseCooldownTime("fs_sweep_1");
  2809.         if (baseCooldownTime < 0)
  2810.         {
  2811.             return SCRIPT_OVERRIDE;
  2812.         }
  2813.        
  2814.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_sweep") / 10;
  2815.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  2816.        
  2817.         return SCRIPT_CONTINUE;
  2818.     }
  2819.    
  2820.    
  2821.     public int fs_sweep_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2822.     {
  2823.         if (!combatStandardAction("fs_sweep_2", self, target, params, "", ""))
  2824.         {
  2825.             return SCRIPT_OVERRIDE;
  2826.         }
  2827.        
  2828.         float baseCooldownTime = getBaseCooldownTime("fs_sweep_2");
  2829.         if (baseCooldownTime < 0)
  2830.         {
  2831.             return SCRIPT_OVERRIDE;
  2832.         }
  2833.        
  2834.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_sweep") / 10;
  2835.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  2836.        
  2837.         return SCRIPT_CONTINUE;
  2838.     }
  2839.    
  2840.    
  2841.     public int fs_sweep_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2842.     {
  2843.         if (!combatStandardAction("fs_sweep_3", self, target, params, "", ""))
  2844.         {
  2845.             return SCRIPT_OVERRIDE;
  2846.         }
  2847.        
  2848.         float baseCooldownTime = getBaseCooldownTime("fs_sweep_3");
  2849.         if (baseCooldownTime < 0)
  2850.         {
  2851.             return SCRIPT_OVERRIDE;
  2852.         }
  2853.        
  2854.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_sweep") / 10;
  2855.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  2856.        
  2857.         return SCRIPT_CONTINUE;
  2858.     }
  2859.    
  2860.    
  2861.     public int fs_sweep_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2862.     {
  2863.         if (!combatStandardAction("fs_sweep_4", self, target, params, "", ""))
  2864.         {
  2865.             return SCRIPT_OVERRIDE;
  2866.         }
  2867.        
  2868.         float baseCooldownTime = getBaseCooldownTime("fs_sweep_4");
  2869.         if (baseCooldownTime < 0)
  2870.         {
  2871.             return SCRIPT_OVERRIDE;
  2872.         }
  2873.        
  2874.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_sweep") / 10;
  2875.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  2876.        
  2877.         return SCRIPT_CONTINUE;
  2878.     }
  2879.    
  2880.    
  2881.     public int fs_sweep_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2882.     {
  2883.         if (!combatStandardAction("fs_sweep_5", self, target, params, "", ""))
  2884.         {
  2885.             return SCRIPT_OVERRIDE;
  2886.         }
  2887.        
  2888.         float baseCooldownTime = getBaseCooldownTime("fs_sweep_5");
  2889.         if (baseCooldownTime < 0)
  2890.         {
  2891.             return SCRIPT_OVERRIDE;
  2892.         }
  2893.        
  2894.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_sweep") / 10;
  2895.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  2896.        
  2897.         return SCRIPT_CONTINUE;
  2898.     }
  2899.    
  2900.    
  2901.     public int fs_sweep_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2902.     {
  2903.         if (!combatStandardAction("fs_sweep_6", self, target, params, "", ""))
  2904.         {
  2905.             return SCRIPT_OVERRIDE;
  2906.         }
  2907.        
  2908.         float baseCooldownTime = getBaseCooldownTime("fs_sweep_6");
  2909.         if (baseCooldownTime < 0)
  2910.         {
  2911.             return SCRIPT_OVERRIDE;
  2912.         }
  2913.        
  2914.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_sweep") / 10;
  2915.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  2916.        
  2917.         return SCRIPT_CONTINUE;
  2918.     }
  2919.    
  2920.    
  2921.     public int fs_sweep_7(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2922.     {
  2923.         if (!combatStandardAction("fs_sweep_7", self, target, params, "", ""))
  2924.         {
  2925.             return SCRIPT_OVERRIDE;
  2926.         }
  2927.        
  2928.         float baseCooldownTime = getBaseCooldownTime("fs_sweep_7");
  2929.         if (baseCooldownTime < 0)
  2930.         {
  2931.             return SCRIPT_OVERRIDE;
  2932.         }
  2933.        
  2934.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_sweep") / 10;
  2935.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  2936.        
  2937.         return SCRIPT_CONTINUE;
  2938.     }
  2939.    
  2940.    
  2941.     public int fs_mind_trick_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2942.     {
  2943.         if (!combatStandardAction("fs_mind_trick_1", self, target, params, "", ""))
  2944.         {
  2945.             return SCRIPT_OVERRIDE;
  2946.         }
  2947.        
  2948.         ai_lib.mindTrick(self, target);
  2949.        
  2950.         return SCRIPT_CONTINUE;
  2951.     }
  2952.    
  2953.    
  2954.     public int fs_mind_trick_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2955.     {
  2956.         if (!combatStandardAction("fs_mind_trick_2", self, target, params, "", ""))
  2957.         {
  2958.             return SCRIPT_OVERRIDE;
  2959.         }
  2960.        
  2961.         combat_data actionData = combat_engine.getCombatData("fs_mind_trick_2");
  2962.         float actionRadius = actionData.coneLength;
  2963.        
  2964.         actionRadius += getEnhancedSkillStatisticModifierUncapped(self, "expertise_area_size_single_fs_mind_trick_2");
  2965.        
  2966.         obj_id[] defenders = pvpGetTargetsInRange(self, target, actionRadius);
  2967.        
  2968.         for (int i = 0; i < defenders.length; i++)
  2969.         {
  2970.             testAbortScript();
  2971.             ai_lib.mindTrick(self, defenders[i]);
  2972.         }
  2973.        
  2974.         return SCRIPT_CONTINUE;
  2975.     }
  2976.    
  2977.    
  2978.     public int fs_dm_cc_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2979.     {
  2980.         if (!buff.isInFocus(self))
  2981.         {
  2982.             sendSystemMessage(self, new string_id("spam", "fs_command_no_focus"));
  2983.             return SCRIPT_OVERRIDE;
  2984.         }
  2985.        
  2986.         if (!combatStandardAction("fs_dm_cc_1", self, target, params, "", ""))
  2987.         {
  2988.             return SCRIPT_OVERRIDE;
  2989.         }
  2990.        
  2991.         return SCRIPT_CONTINUE;
  2992.     }
  2993.    
  2994.    
  2995.     public int fs_dm_cc_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  2996.     {
  2997.         if (!buff.isInFocus(self))
  2998.         {
  2999.             sendSystemMessage(self, new string_id("spam", "fs_command_no_focus"));
  3000.             return SCRIPT_OVERRIDE;
  3001.         }
  3002.        
  3003.         if (!combatStandardAction("fs_dm_cc_2", self, target, params, "", ""))
  3004.         {
  3005.             return SCRIPT_OVERRIDE;
  3006.         }
  3007.        
  3008.         return SCRIPT_CONTINUE;
  3009.     }
  3010.    
  3011.    
  3012.     public int fs_dm_cc_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3013.     {
  3014.         if (!buff.isInFocus(self))
  3015.         {
  3016.             sendSystemMessage(self, new string_id("spam", "fs_command_no_focus"));
  3017.             return SCRIPT_OVERRIDE;
  3018.         }
  3019.        
  3020.         if (!combatStandardAction("fs_dm_cc_3", self, target, params, "", ""))
  3021.         {
  3022.             return SCRIPT_OVERRIDE;
  3023.         }
  3024.        
  3025.         return SCRIPT_CONTINUE;
  3026.     }
  3027.    
  3028.    
  3029.     public int fs_dm_cc_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3030.     {
  3031.         if (!buff.isInFocus(self))
  3032.         {
  3033.             sendSystemMessage(self, new string_id("spam", "fs_command_no_focus"));
  3034.             return SCRIPT_OVERRIDE;
  3035.         }
  3036.        
  3037.         if (!combatStandardAction("fs_dm_cc_4", self, target, params, "", ""))
  3038.         {
  3039.             return SCRIPT_OVERRIDE;
  3040.         }
  3041.        
  3042.         return SCRIPT_CONTINUE;
  3043.     }
  3044.    
  3045.    
  3046.     public int fs_dm_cc_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3047.     {
  3048.         if (!buff.isInFocus(self))
  3049.         {
  3050.             sendSystemMessage(self, new string_id("spam", "fs_command_no_focus"));
  3051.             return SCRIPT_OVERRIDE;
  3052.         }
  3053.        
  3054.         if (!combatStandardAction("fs_dm_cc_5", self, target, params, "", ""))
  3055.         {
  3056.             return SCRIPT_OVERRIDE;
  3057.         }
  3058.        
  3059.         return SCRIPT_CONTINUE;
  3060.     }
  3061.    
  3062.     public int fs_dm_cc_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3063.     {
  3064.         if (!buff.isInFocus(self))
  3065.         {
  3066.             sendSystemMessage(self, new string_id("spam", "fs_command_no_focus"));
  3067.             return SCRIPT_OVERRIDE;
  3068.         }
  3069.        
  3070.         if (!combatStandardAction("fs_dm_cc_6", self, target, params, "", ""))
  3071.         {
  3072.             return SCRIPT_OVERRIDE;
  3073.         }
  3074.        
  3075.         return SCRIPT_CONTINUE;
  3076.     }
  3077.    
  3078.    
  3079.     public int fs_dm_cc_crit_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3080.     {
  3081.         if (!combatStandardAction("fs_dm_cc_crit_1", self, target, params, "", ""))
  3082.         {
  3083.             return SCRIPT_OVERRIDE;
  3084.         }
  3085.        
  3086.         if (successfulFastAttack(self, "fs_powers", "fury_fly"))
  3087.         {
  3088.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  3089.             return SCRIPT_CONTINUE;
  3090.         }
  3091.        
  3092.         float baseCooldownTime = getBaseCooldownTime("fs_dm_cc_crit_1");
  3093.         if (baseCooldownTime < 0)
  3094.         {
  3095.             return SCRIPT_OVERRIDE;
  3096.         }
  3097.        
  3098.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_cc_crit") / 10;
  3099.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  3100.        
  3101.         return SCRIPT_CONTINUE;
  3102.     }
  3103.    
  3104.    
  3105.     public int fs_dm_cc_crit_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3106.     {
  3107.         if (!combatStandardAction("fs_dm_cc_crit_2", self, target, params, "", ""))
  3108.         {
  3109.             return SCRIPT_OVERRIDE;
  3110.         }
  3111.        
  3112.         if (successfulFastAttack(self, "fs_powers", "fury_fly"))
  3113.         {
  3114.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  3115.             return SCRIPT_CONTINUE;
  3116.         }
  3117.        
  3118.         float baseCooldownTime = getBaseCooldownTime("fs_dm_cc_crit_2");
  3119.         if (baseCooldownTime < 0)
  3120.         {
  3121.             return SCRIPT_OVERRIDE;
  3122.         }
  3123.        
  3124.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_cc_crit") / 10;
  3125.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  3126.        
  3127.         return SCRIPT_CONTINUE;
  3128.     }
  3129.    
  3130.    
  3131.     public int fs_dm_cc_crit_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3132.     {
  3133.         if (!combatStandardAction("fs_dm_cc_crit_3", self, target, params, "", ""))
  3134.         {
  3135.             return SCRIPT_OVERRIDE;
  3136.         }
  3137.        
  3138.         if (successfulFastAttack(self, "fs_powers", "fury_fly"))
  3139.         {
  3140.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  3141.             return SCRIPT_CONTINUE;
  3142.         }
  3143.        
  3144.         float baseCooldownTime = getBaseCooldownTime("fs_dm_cc_crit_3");
  3145.         if (baseCooldownTime < 0)
  3146.         {
  3147.             return SCRIPT_OVERRIDE;
  3148.         }
  3149.        
  3150.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_cc_crit") / 10;
  3151.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  3152.        
  3153.         return SCRIPT_CONTINUE;
  3154.     }
  3155.    
  3156.    
  3157.     public int fs_dm_cc_crit_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3158.     {
  3159.         if (!combatStandardAction("fs_dm_cc_crit_4", self, target, params, "", ""))
  3160.         {
  3161.             return SCRIPT_OVERRIDE;
  3162.         }
  3163.        
  3164.         if (successfulFastAttack(self, "fs_powers", "fury_fly"))
  3165.         {
  3166.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  3167.             return SCRIPT_CONTINUE;
  3168.         }
  3169.        
  3170.         float baseCooldownTime = getBaseCooldownTime("fs_dm_cc_crit_4");
  3171.         if (baseCooldownTime < 0)
  3172.         {
  3173.             return SCRIPT_OVERRIDE;
  3174.         }
  3175.        
  3176.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_cc_crit") / 10;
  3177.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  3178.        
  3179.         return SCRIPT_CONTINUE;
  3180.     }
  3181.    
  3182.    
  3183.     public int fs_dm_cc_crit_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3184.     {
  3185.         if (!combatStandardAction("fs_dm_cc_crit_5", self, target, params, "", ""))
  3186.         {
  3187.             return SCRIPT_OVERRIDE;
  3188.         }
  3189.        
  3190.         if (successfulFastAttack(self, "fs_powers", "fury_fly"))
  3191.         {
  3192.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  3193.             return SCRIPT_CONTINUE;
  3194.         }
  3195.        
  3196.         float baseCooldownTime = getBaseCooldownTime("fs_dm_cc_crit_5");
  3197.         if (baseCooldownTime < 0)
  3198.         {
  3199.             return SCRIPT_OVERRIDE;
  3200.         }
  3201.        
  3202.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_fs_cc_crit") / 10;
  3203.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  3204.        
  3205.         return SCRIPT_CONTINUE;
  3206.     }
  3207.    
  3208.    
  3209.     public int fs_sh_0(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3210.     {
  3211.         if (!healing.isDamaged(self))
  3212.         {
  3213.             sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self"));
  3214.             return SCRIPT_OVERRIDE;
  3215.         }
  3216.        
  3217.         if (!combatStandardAction("fs_sh_0", self, target, params, "", ""))
  3218.         {
  3219.             return SCRIPT_OVERRIDE;
  3220.         }
  3221.        
  3222.         return SCRIPT_CONTINUE;
  3223.     }
  3224.    
  3225.    
  3226.     public int fs_sh_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3227.     {
  3228.         if (!healing.isDamaged(self))
  3229.         {
  3230.             sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self"));
  3231.             return SCRIPT_OVERRIDE;
  3232.         }
  3233.        
  3234.         if (!combatStandardAction("fs_sh_1", self, target, params, "", ""))
  3235.         {
  3236.             return SCRIPT_OVERRIDE;
  3237.         }
  3238.        
  3239.         return SCRIPT_CONTINUE;
  3240.     }
  3241.    
  3242.    
  3243.     public int fs_sh_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3244.     {
  3245.         if (!healing.isDamaged(self))
  3246.         {
  3247.             sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self"));
  3248.             return SCRIPT_OVERRIDE;
  3249.         }
  3250.        
  3251.         if (!combatStandardAction("fs_sh_2", self, target, params, "", ""))
  3252.         {
  3253.             return SCRIPT_OVERRIDE;
  3254.         }
  3255.        
  3256.         return SCRIPT_CONTINUE;
  3257.     }
  3258.    
  3259.    
  3260.     public int fs_sh_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3261.     {
  3262.         if (!healing.isDamaged(self))
  3263.         {
  3264.             sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self"));
  3265.             return SCRIPT_OVERRIDE;
  3266.         }
  3267.        
  3268.         if (!combatStandardAction("fs_sh_3", self, target, params, "", ""))
  3269.         {
  3270.             return SCRIPT_OVERRIDE;
  3271.         }
  3272.        
  3273.         return SCRIPT_CONTINUE;
  3274.     }
  3275.    
  3276.    
  3277.     public int fs_hermetic_touch(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3278.     {
  3279.        
  3280.         if (!buff.isInStance(self))
  3281.         {
  3282.             return SCRIPT_OVERRIDE;
  3283.         }
  3284.        
  3285.         if (!combatStandardAction("fs_hermetic_touch", self, target, params, "", ""))
  3286.         {
  3287.             return SCRIPT_OVERRIDE;
  3288.         }
  3289.        
  3290.         return SCRIPT_CONTINUE;
  3291.     }
  3292.    
  3293.    
  3294.     public int fs_set_heroic_taunt_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3295.     {
  3296.        
  3297.         if (!buff.hasBuff(self, "set_bonus_jedi_utility_b_3"))
  3298.         {
  3299.             return SCRIPT_OVERRIDE;
  3300.         }
  3301.        
  3302.         if (!combatStandardAction("fs_set_heroic_taunt_1", self, target, params, "", ""))
  3303.         {
  3304.             return SCRIPT_OVERRIDE;
  3305.         }
  3306.        
  3307.         return SCRIPT_CONTINUE;
  3308.     }
  3309.    
  3310.    
  3311.     public int me_ae_heal_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3312.     {
  3313.         if (!combatStandardAction("me_ae_heal_1", self, target, params, "", ""))
  3314.         {
  3315.             return SCRIPT_OVERRIDE;
  3316.         }
  3317.        
  3318.         return SCRIPT_CONTINUE;
  3319.     }
  3320.    
  3321.    
  3322.     public int me_ae_heal_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3323.     {
  3324.         if (!combatStandardAction("me_ae_heal_2", self, target, params, "", ""))
  3325.         {
  3326.             return SCRIPT_OVERRIDE;
  3327.         }
  3328.        
  3329.         return SCRIPT_CONTINUE;
  3330.     }
  3331.    
  3332.    
  3333.     public int me_ae_heal_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3334.     {
  3335.         if (!combatStandardAction("me_ae_heal_3", self, target, params, "", ""))
  3336.         {
  3337.             return SCRIPT_OVERRIDE;
  3338.         }
  3339.        
  3340.         return SCRIPT_CONTINUE;
  3341.     }
  3342.    
  3343.    
  3344.     public int me_ae_heal_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3345.     {
  3346.         if (!combatStandardAction("me_ae_heal_4", self, target, params, "", ""))
  3347.         {
  3348.             return SCRIPT_OVERRIDE;
  3349.         }
  3350.        
  3351.         return SCRIPT_CONTINUE;
  3352.     }
  3353.    
  3354.    
  3355.     public int me_ae_heal_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3356.     {
  3357.         if (!combatStandardAction("me_ae_heal_5", self, target, params, "", ""))
  3358.         {
  3359.             return SCRIPT_OVERRIDE;
  3360.         }
  3361.        
  3362.         return SCRIPT_CONTINUE;
  3363.     }
  3364.    
  3365.    
  3366.     public int me_ae_heal_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3367.     {
  3368.         if (!combatStandardAction("me_ae_heal_6", self, target, params, "", ""))
  3369.         {
  3370.             return SCRIPT_OVERRIDE;
  3371.         }
  3372.        
  3373.         return SCRIPT_CONTINUE;
  3374.     }
  3375.    
  3376.    
  3377.     public int me_buff_health_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3378.     {
  3379.         if (!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target))
  3380.         {
  3381.             target = self;
  3382.         }
  3383.        
  3384.         if (!buff.canApplyBuff(target, "me_buff_health"))
  3385.         {
  3386.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  3387.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  3388.             return SCRIPT_OVERRIDE;
  3389.         }
  3390.        
  3391.         boolean performed_buff = performMedicGroupBuff(self, target, "me_buff_health_1", params);
  3392.        
  3393.         if (!performed_buff)
  3394.         {
  3395.             return SCRIPT_OVERRIDE;
  3396.         }
  3397.        
  3398.         return SCRIPT_CONTINUE;
  3399.     }
  3400.    
  3401.    
  3402.     public int me_dm_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3403.     {
  3404.         if (!combatStandardAction("me_dm_1", self, target, params, "", ""))
  3405.         {
  3406.             return SCRIPT_OVERRIDE;
  3407.         }
  3408.        
  3409.         if (successfulFastAttack(self, "me_dm"))
  3410.         {
  3411.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  3412.         }
  3413.        
  3414.         return SCRIPT_CONTINUE;
  3415.     }
  3416.    
  3417.    
  3418.     public int me_dm_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3419.     {
  3420.         if (!combatStandardAction("me_dm_2", self, target, params, "", ""))
  3421.         {
  3422.             return SCRIPT_OVERRIDE;
  3423.         }
  3424.        
  3425.         if (successfulFastAttack(self, "me_dm"))
  3426.         {
  3427.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  3428.         }
  3429.        
  3430.         return SCRIPT_CONTINUE;
  3431.     }
  3432.    
  3433.    
  3434.     public int me_dm_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3435.     {
  3436.         if (!combatStandardAction("me_dm_3", self, target, params, "", ""))
  3437.         {
  3438.             return SCRIPT_OVERRIDE;
  3439.         }
  3440.        
  3441.         if (successfulFastAttack(self, "me_dm"))
  3442.         {
  3443.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  3444.         }
  3445.        
  3446.         return SCRIPT_CONTINUE;
  3447.     }
  3448.    
  3449.    
  3450.     public int me_dm_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3451.     {
  3452.         if (!combatStandardAction("me_dm_4", self, target, params, "", ""))
  3453.         {
  3454.             return SCRIPT_OVERRIDE;
  3455.         }
  3456.        
  3457.         if (successfulFastAttack(self, "me_dm"))
  3458.         {
  3459.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  3460.         }
  3461.        
  3462.         return SCRIPT_CONTINUE;
  3463.     }
  3464.    
  3465.    
  3466.     public int me_dm_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3467.     {
  3468.         if (!combatStandardAction("me_dm_5", self, target, params, "", ""))
  3469.         {
  3470.             return SCRIPT_OVERRIDE;
  3471.         }
  3472.        
  3473.         if (successfulFastAttack(self, "me_dm"))
  3474.         {
  3475.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  3476.         }
  3477.        
  3478.         return SCRIPT_CONTINUE;
  3479.     }
  3480.    
  3481.    
  3482.     public int me_dm_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3483.     {
  3484.         if (!combatStandardAction("me_dm_6", self, target, params, "", ""))
  3485.         {
  3486.             return SCRIPT_OVERRIDE;
  3487.         }
  3488.        
  3489.         if (successfulFastAttack(self, "me_dm"))
  3490.         {
  3491.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  3492.         }
  3493.        
  3494.         return SCRIPT_CONTINUE;
  3495.     }
  3496.    
  3497.    
  3498.     public int me_dm_8(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3499.     {
  3500.         if (!combatStandardAction("me_dm_8", self, target, params, "", ""))
  3501.         {
  3502.             return SCRIPT_OVERRIDE;
  3503.         }
  3504.        
  3505.         if (successfulFastAttack(self, "me_dm"))
  3506.         {
  3507.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  3508.         }
  3509.        
  3510.         return SCRIPT_CONTINUE;
  3511.     }
  3512.    
  3513.    
  3514.     public int me_dm_dot_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3515.     {
  3516.         if (!combatStandardAction("me_dm_dot_1", self, target, params, "", ""))
  3517.         {
  3518.             return SCRIPT_OVERRIDE;
  3519.         }
  3520.        
  3521.         doDoom(self, target);
  3522.        
  3523.         float baseCooldownTime = getBaseCooldownTime("me_dm_dot_1");
  3524.         if (baseCooldownTime < 0)
  3525.         {
  3526.             return SCRIPT_OVERRIDE;
  3527.         }
  3528.        
  3529.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_dot");
  3530.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10));
  3531.        
  3532.         return SCRIPT_CONTINUE;
  3533.     }
  3534.    
  3535.    
  3536.     public int me_dm_dot_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3537.     {
  3538.         if (!combatStandardAction("me_dm_dot_2", self, target, params, "", ""))
  3539.         {
  3540.             return SCRIPT_OVERRIDE;
  3541.         }
  3542.        
  3543.         doDoom(self, target);
  3544.        
  3545.         float baseCooldownTime = getBaseCooldownTime("me_dm_dot_2");
  3546.         if (baseCooldownTime < 0)
  3547.         {
  3548.             return SCRIPT_OVERRIDE;
  3549.         }
  3550.        
  3551.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_dot");
  3552.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10));
  3553.        
  3554.         return SCRIPT_CONTINUE;
  3555.     }
  3556.    
  3557.    
  3558.     public int me_dm_dot_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3559.     {
  3560.         if (!combatStandardAction("me_dm_dot_3", self, target, params, "", ""))
  3561.         {
  3562.             return SCRIPT_OVERRIDE;
  3563.         }
  3564.        
  3565.         doDoom(self, target);
  3566.        
  3567.         float baseCooldownTime = getBaseCooldownTime("me_dm_dot_3");
  3568.         if (baseCooldownTime < 0)
  3569.         {
  3570.             return SCRIPT_OVERRIDE;
  3571.         }
  3572.        
  3573.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_dot");
  3574.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10));
  3575.        
  3576.         return SCRIPT_CONTINUE;
  3577.     }
  3578.    
  3579.    
  3580.     public int me_dm_dot_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3581.     {
  3582.         if (!combatStandardAction("me_dm_dot_4", self, target, params, "", ""))
  3583.         {
  3584.             return SCRIPT_OVERRIDE;
  3585.         }
  3586.        
  3587.         doDoom(self, target);
  3588.        
  3589.         float baseCooldownTime = getBaseCooldownTime("me_dm_dot_4");
  3590.         if (baseCooldownTime < 0)
  3591.         {
  3592.             return SCRIPT_OVERRIDE;
  3593.         }
  3594.        
  3595.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_dot");
  3596.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10));
  3597.        
  3598.         return SCRIPT_CONTINUE;
  3599.     }
  3600.    
  3601.    
  3602.     public int me_dm_dot_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3603.     {
  3604.         if (!combatStandardAction("me_dm_dot_5", self, target, params, "", ""))
  3605.         {
  3606.             return SCRIPT_OVERRIDE;
  3607.         }
  3608.        
  3609.         doDoom(self, target);
  3610.        
  3611.         float baseCooldownTime = getBaseCooldownTime("me_dm_dot_5");
  3612.         if (baseCooldownTime < 0)
  3613.         {
  3614.             return SCRIPT_OVERRIDE;
  3615.         }
  3616.        
  3617.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_dot");
  3618.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10));
  3619.        
  3620.         return SCRIPT_CONTINUE;
  3621.     }
  3622.    
  3623.    
  3624.     public int me_dm_dot_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3625.     {
  3626.         if (!combatStandardAction("me_dm_dot_6", self, target, params, "", ""))
  3627.         {
  3628.             return SCRIPT_OVERRIDE;
  3629.         }
  3630.        
  3631.         doDoom(self, target);
  3632.        
  3633.         float baseCooldownTime = getBaseCooldownTime("me_dm_dot_6");
  3634.         if (baseCooldownTime < 0)
  3635.         {
  3636.             return SCRIPT_OVERRIDE;
  3637.         }
  3638.        
  3639.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_dot");
  3640.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10));
  3641.        
  3642.         return SCRIPT_CONTINUE;
  3643.     }
  3644.    
  3645.     public int me_fld_dm_dot_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3646.     {
  3647.         if (!combatStandardAction("me_fld_dm_dot_1", self, target, params, "", ""))
  3648.         {
  3649.             return SCRIPT_OVERRIDE;
  3650.         }
  3651.        
  3652.         float baseCooldownTime = getBaseCooldownTime("me_fld_dm_dot_1");
  3653.         if (baseCooldownTime < 0)
  3654.         {
  3655.             return SCRIPT_OVERRIDE;
  3656.         }
  3657.        
  3658.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_dot");
  3659.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10));
  3660.        
  3661.         return SCRIPT_CONTINUE;
  3662.     }
  3663.    
  3664.    
  3665.     public int me_fld_dm_dot_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3666.     {
  3667.         if (!combatStandardAction("me_fld_dm_dot_2", self, target, params, "", ""))
  3668.         {
  3669.             return SCRIPT_OVERRIDE;
  3670.         }
  3671.        
  3672.         float baseCooldownTime = getBaseCooldownTime("me_fld_dm_dot_2");
  3673.         if (baseCooldownTime < 0)
  3674.         {
  3675.             return SCRIPT_OVERRIDE;
  3676.         }
  3677.        
  3678.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_dot");
  3679.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10));
  3680.        
  3681.         return SCRIPT_CONTINUE;
  3682.     }
  3683.    
  3684.    
  3685.     public int me_fld_dm_dot_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3686.     {
  3687.         if (!combatStandardAction("me_fld_dm_dot_3", self, target, params, "", ""))
  3688.         {
  3689.             return SCRIPT_OVERRIDE;
  3690.         }
  3691.        
  3692.         float baseCooldownTime = getBaseCooldownTime("me_fld_dm_dot_3");
  3693.         if (baseCooldownTime < 0)
  3694.         {
  3695.             return SCRIPT_OVERRIDE;
  3696.         }
  3697.        
  3698.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_dot");
  3699.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10));
  3700.        
  3701.         return SCRIPT_CONTINUE;
  3702.     }
  3703.    
  3704.    
  3705.     public int me_hot_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3706.     {
  3707.         if (vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_hot_1", false))
  3708.         {
  3709.             target = self;
  3710.         }
  3711.        
  3712.         if (!combatStandardAction("me_hot_1", self, target, params, "", ""))
  3713.         {
  3714.             return SCRIPT_OVERRIDE;
  3715.         }
  3716.        
  3717.         return SCRIPT_CONTINUE;
  3718.     }
  3719.    
  3720.    
  3721.     public int me_hot_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3722.     {
  3723.         if (vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_hot_2", false))
  3724.         {
  3725.             target = self;
  3726.         }
  3727.        
  3728.         if (!combatStandardAction("me_hot_2", self, target, params, "", ""))
  3729.         {
  3730.             return SCRIPT_OVERRIDE;
  3731.         }
  3732.        
  3733.         return SCRIPT_CONTINUE;
  3734.     }
  3735.    
  3736.    
  3737.     public int me_hot_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3738.     {
  3739.         if (vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_hot_3", false))
  3740.         {
  3741.             target = self;
  3742.         }
  3743.        
  3744.         if (!combatStandardAction("me_hot_3", self, target, params, "", ""))
  3745.         {
  3746.             return SCRIPT_OVERRIDE;
  3747.         }
  3748.        
  3749.         return SCRIPT_CONTINUE;
  3750.     }
  3751.    
  3752.    
  3753.     public int me_sh_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3754.     {
  3755.         if (!healing.isDamaged(self))
  3756.         {
  3757.             sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self"));
  3758.             return SCRIPT_OVERRIDE;
  3759.         }
  3760.        
  3761.         if (!combatStandardAction("me_sh_1", self, target, params, "", ""))
  3762.         {
  3763.             return SCRIPT_OVERRIDE;
  3764.         }
  3765.        
  3766.         return SCRIPT_CONTINUE;
  3767.     }
  3768.    
  3769.    
  3770.     public int me_rv_ooc(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3771.     {
  3772.         if (vehicle.isVehicle(target))
  3773.         {
  3774.             return SCRIPT_OVERRIDE;
  3775.         }
  3776.        
  3777.         if (!combatStandardAction("me_rv_ooc", self, target, params, "", ""))
  3778.         {
  3779.             return SCRIPT_OVERRIDE;
  3780.         }
  3781.        
  3782.         if (successfulFastAttack(self, "me_revive", "quick_revive_fly"))
  3783.         {
  3784.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  3785.             return SCRIPT_CONTINUE;
  3786.         }
  3787.        
  3788.         float baseCooldownTime = getBaseCooldownTime("me_rv_ooc");
  3789.         if (baseCooldownTime < 0)
  3790.         {
  3791.             return SCRIPT_OVERRIDE;
  3792.         }
  3793.        
  3794.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_revive");
  3795.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  3796.        
  3797.         return SCRIPT_CONTINUE;
  3798.     }
  3799.    
  3800.    
  3801.     public int me_rv_area(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3802.     {
  3803.         if (vehicle.isVehicle(target))
  3804.         {
  3805.             return SCRIPT_OVERRIDE;
  3806.         }
  3807.        
  3808.         if (!combatStandardAction("me_rv_area", self, target, params, "", ""))
  3809.         {
  3810.             return SCRIPT_OVERRIDE;
  3811.         }
  3812.        
  3813.         if (successfulFastAttack(self, "me_revive", "quick_revive_fly"))
  3814.         {
  3815.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  3816.             return SCRIPT_CONTINUE;
  3817.         }
  3818.        
  3819.         float baseCooldownTime = getBaseCooldownTime("me_rv_area");
  3820.         if (baseCooldownTime < 0)
  3821.         {
  3822.             return SCRIPT_OVERRIDE;
  3823.         }
  3824.        
  3825.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_revive");
  3826.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  3827.        
  3828.         return SCRIPT_CONTINUE;
  3829.     }
  3830.    
  3831.    
  3832.     public int me_rv_combat(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3833.     {
  3834.        
  3835.         if (!combatStandardAction("me_rv_combat", self, self, params, "", ""))
  3836.         {
  3837.             return SCRIPT_OVERRIDE;
  3838.         }
  3839.        
  3840.         if (successfulFastAttack(self, "me_revive", "quick_revive_fly"))
  3841.         {
  3842.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  3843.             return SCRIPT_CONTINUE;
  3844.         }
  3845.        
  3846.         float baseCooldownTime = getBaseCooldownTime("me_rv_combat");
  3847.         if (baseCooldownTime < 0)
  3848.         {
  3849.             return SCRIPT_OVERRIDE;
  3850.         }
  3851.        
  3852.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_aoe_revive");
  3853.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod * 60) );
  3854.        
  3855.         return SCRIPT_CONTINUE;
  3856.     }
  3857.    
  3858.    
  3859.     public int me_rv_pvp_single(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3860.     {
  3861.         if (vehicle.isVehicle(target) || space_dungeon.isInSpaceDungeon(self) || instance.isInInstanceArea(self) || !utils.hasScriptVar(target, "pvp_death"))
  3862.         {
  3863.             return SCRIPT_OVERRIDE;
  3864.         }
  3865.        
  3866.         if (!combatStandardAction("me_rv_pvp_single", self, target, params, "", ""))
  3867.         {
  3868.             return SCRIPT_OVERRIDE;
  3869.         }
  3870.        
  3871.         if (successfulFastAttack(self, "me_revive", "quick_revive_fly"))
  3872.         {
  3873.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  3874.             return SCRIPT_CONTINUE;
  3875.         }
  3876.        
  3877.         float baseCooldownTime = getBaseCooldownTime("me_rv_pvp_single");
  3878.         if (baseCooldownTime < 0)
  3879.         {
  3880.             return SCRIPT_OVERRIDE;
  3881.         }
  3882.        
  3883.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_revive");
  3884.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  3885.        
  3886.         return SCRIPT_CONTINUE;
  3887.     }
  3888.    
  3889.    
  3890.     public int me_rv_pvp_area(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3891.     {
  3892.         if (space_dungeon.isInSpaceDungeon(self) || instance.isInInstanceArea(self))
  3893.         {
  3894.             return SCRIPT_OVERRIDE;
  3895.         }
  3896.        
  3897.         if (!combatStandardAction("me_rv_pvp_area", self, self, params, "", ""))
  3898.         {
  3899.             return SCRIPT_OVERRIDE;
  3900.         }
  3901.        
  3902.         if (successfulFastAttack(self, "me_revive", "quick_revive_fly"))
  3903.         {
  3904.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  3905.             return SCRIPT_CONTINUE;
  3906.         }
  3907.        
  3908.         float baseCooldownTime = getBaseCooldownTime("me_rv_pvp_area");
  3909.         if (baseCooldownTime < 0)
  3910.         {
  3911.             return SCRIPT_OVERRIDE;
  3912.         }
  3913.        
  3914.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_aoe_revive");
  3915.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod * 60) );
  3916.        
  3917.         return SCRIPT_CONTINUE;
  3918.     }
  3919.    
  3920.    
  3921.     public int me_drag_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3922.     {
  3923.         if (!group.isGrouped(self))
  3924.         {
  3925.             sendSystemMessage(self, new string_id("spam", "drag_not_grouped") );
  3926.             return SCRIPT_OVERRIDE;
  3927.         }
  3928.        
  3929.         if (!combatStandardAction("me_drag_1", self, target, params, "", ""))
  3930.         {
  3931.             return SCRIPT_OVERRIDE;
  3932.         }
  3933.        
  3934.         corpse.dragPlayerCorpse(self, corpse.getDraggableCorpsesInRange(self, true) );
  3935.        
  3936.         return SCRIPT_CONTINUE;
  3937.     }
  3938.    
  3939.    
  3940.     public int me_blood_cleaners_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3941.     {
  3942.         if (!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target))
  3943.         {
  3944.             target = self;
  3945.         }
  3946.        
  3947.         if (!buff.hasBuff(target, "incapWeaken"))
  3948.         {
  3949.             if (target == self)
  3950.             {
  3951.                 sendSystemMessage(self, new string_id("spam", "remove_weakness_self_fail") );
  3952.             }
  3953.             else
  3954.             {
  3955.                 sendSystemMessage(self, new string_id("spam", "remove_weakness_other_fail") );
  3956.             }
  3957.            
  3958.             return SCRIPT_OVERRIDE;
  3959.         }
  3960.        
  3961.         if (!combatStandardAction("me_blood_cleaners_1", self, target, params, "", ""))
  3962.         {
  3963.             return SCRIPT_OVERRIDE;
  3964.         }
  3965.        
  3966.         buff.removeBuff(target, "incapWeaken");
  3967.         playClientEffectObj(target, "appearance/pt_heal_2.prt", target, "root");
  3968.        
  3969.         return SCRIPT_CONTINUE;
  3970.     }
  3971.    
  3972.    
  3973.     public int me_bacta_bomb_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3974.     {
  3975.         if (vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_bomb_1", false))
  3976.         {
  3977.             target = self;
  3978.         }
  3979.        
  3980.         if (!combatStandardAction("me_bacta_bomb_1", self, target, params, "", ""))
  3981.         {
  3982.             return SCRIPT_OVERRIDE;
  3983.         }
  3984.        
  3985.         if (target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly"))
  3986.         {
  3987.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  3988.             return SCRIPT_CONTINUE;
  3989.         }
  3990.        
  3991.         return SCRIPT_CONTINUE;
  3992.     }
  3993.    
  3994.    
  3995.     public int me_bacta_bomb_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  3996.     {
  3997.         if (vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_bomb_2", false))
  3998.         {
  3999.             target = self;
  4000.         }
  4001.        
  4002.         if (!combatStandardAction("me_bacta_bomb_2", self, target, params, "", ""))
  4003.         {
  4004.             return SCRIPT_OVERRIDE;
  4005.         }
  4006.        
  4007.         if (target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly"))
  4008.         {
  4009.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  4010.             return SCRIPT_CONTINUE;
  4011.         }
  4012.        
  4013.         return SCRIPT_CONTINUE;
  4014.     }
  4015.    
  4016.    
  4017.     public int me_bacta_bomb_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4018.     {
  4019.         if (vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_bomb_3", false))
  4020.         {
  4021.             target = self;
  4022.         }
  4023.        
  4024.         if (!combatStandardAction("me_bacta_bomb_3", self, target, params, "", ""))
  4025.         {
  4026.             return SCRIPT_OVERRIDE;
  4027.         }
  4028.        
  4029.         if (target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly"))
  4030.         {
  4031.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  4032.             return SCRIPT_CONTINUE;
  4033.         }
  4034.        
  4035.         return SCRIPT_CONTINUE;
  4036.     }
  4037.    
  4038.    
  4039.     public int me_bacta_bomb_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4040.     {
  4041.         if (vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_bomb_4", false))
  4042.         {
  4043.             target = self;
  4044.         }
  4045.        
  4046.         if (!combatStandardAction("me_bacta_bomb_4", self, target, params, "", ""))
  4047.         {
  4048.             return SCRIPT_OVERRIDE;
  4049.         }
  4050.        
  4051.         if (target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly"))
  4052.         {
  4053.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  4054.             return SCRIPT_CONTINUE;
  4055.         }
  4056.        
  4057.         return SCRIPT_CONTINUE;
  4058.     }
  4059.    
  4060.    
  4061.     public int me_bacta_bomb_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4062.     {
  4063.         if (vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_bomb_5", false))
  4064.         {
  4065.             target = self;
  4066.         }
  4067.        
  4068.         if (!combatStandardAction("me_bacta_bomb_5", self, target, params, "", ""))
  4069.         {
  4070.             return SCRIPT_OVERRIDE;
  4071.         }
  4072.        
  4073.         if (target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly"))
  4074.         {
  4075.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  4076.             return SCRIPT_CONTINUE;
  4077.         }
  4078.        
  4079.         return SCRIPT_CONTINUE;
  4080.     }
  4081.    
  4082.    
  4083.     public int me_bacta_ampule_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4084.     {
  4085.         if (vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_ampule_1", false))
  4086.         {
  4087.             target = self;
  4088.         }
  4089.        
  4090.         if (!combatStandardAction("me_bacta_ampule_1", self, target, params, "", ""))
  4091.         {
  4092.             return SCRIPT_OVERRIDE;
  4093.         }
  4094.        
  4095.         if (target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly"))
  4096.         {
  4097.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  4098.             return SCRIPT_CONTINUE;
  4099.         }
  4100.        
  4101.         return SCRIPT_CONTINUE;
  4102.     }
  4103.    
  4104.    
  4105.     public int me_bacta_ampule_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4106.     {
  4107.         if (vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_ampule_2", false))
  4108.         {
  4109.             target = self;
  4110.         }
  4111.        
  4112.         if (!combatStandardAction("me_bacta_ampule_2", self, target, params, "", ""))
  4113.         {
  4114.             return SCRIPT_OVERRIDE;
  4115.         }
  4116.        
  4117.         if (target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly"))
  4118.         {
  4119.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  4120.             return SCRIPT_CONTINUE;
  4121.         }
  4122.        
  4123.         return SCRIPT_CONTINUE;
  4124.     }
  4125.    
  4126.    
  4127.     public int me_bacta_ampule_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4128.     {
  4129.         if (vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_ampule_3", false))
  4130.         {
  4131.             target = self;
  4132.         }
  4133.        
  4134.         if (!combatStandardAction("me_bacta_ampule_3", self, target, params, "", ""))
  4135.         {
  4136.             return SCRIPT_OVERRIDE;
  4137.         }
  4138.        
  4139.         if (target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly"))
  4140.         {
  4141.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  4142.             return SCRIPT_CONTINUE;
  4143.         }
  4144.        
  4145.         return SCRIPT_CONTINUE;
  4146.     }
  4147.    
  4148.    
  4149.     public int me_bacta_ampule_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4150.     {
  4151.         if (vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_ampule_4", false))
  4152.         {
  4153.             target = self;
  4154.         }
  4155.        
  4156.         if (!combatStandardAction("me_bacta_ampule_4", self, target, params, "", ""))
  4157.         {
  4158.             return SCRIPT_OVERRIDE;
  4159.         }
  4160.        
  4161.         if (target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly"))
  4162.         {
  4163.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  4164.             return SCRIPT_CONTINUE;
  4165.         }
  4166.        
  4167.         return SCRIPT_CONTINUE;
  4168.     }
  4169.    
  4170.    
  4171.     public int me_bacta_ampule_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4172.     {
  4173.         if (vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_ampule_5", false))
  4174.         {
  4175.             target = self;
  4176.         }
  4177.        
  4178.         if (!combatStandardAction("me_bacta_ampule_5", self, target, params, "", ""))
  4179.         {
  4180.             return SCRIPT_OVERRIDE;
  4181.         }
  4182.        
  4183.         if (target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly"))
  4184.         {
  4185.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  4186.             return SCRIPT_CONTINUE;
  4187.         }
  4188.        
  4189.         return SCRIPT_CONTINUE;
  4190.     }
  4191.    
  4192.    
  4193.     public int me_bacta_ampule_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4194.     {
  4195.         if (vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_ampule_6", false))
  4196.         {
  4197.             target = self;
  4198.         }
  4199.        
  4200.         if (!combatStandardAction("me_bacta_ampule_6", self, target, params, "", ""))
  4201.         {
  4202.             return SCRIPT_OVERRIDE;
  4203.         }
  4204.        
  4205.         if (target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly"))
  4206.         {
  4207.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  4208.             return SCRIPT_CONTINUE;
  4209.         }
  4210.        
  4211.         return SCRIPT_CONTINUE;
  4212.     }
  4213.    
  4214.    
  4215.     public int me_cure_affliction_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4216.     {
  4217.         if (!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target))
  4218.         {
  4219.             target = self;
  4220.         }
  4221.        
  4222.         if (!combatStandardAction("me_cure_affliction_1", self, target, params, "", ""))
  4223.         {
  4224.             return SCRIPT_OVERRIDE;
  4225.         }
  4226.        
  4227.         return SCRIPT_CONTINUE;
  4228.     }
  4229.    
  4230.    
  4231.     public int me_serotonin_boost_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4232.     {
  4233.         if (!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target))
  4234.         {
  4235.             target = self;
  4236.         }
  4237.        
  4238.         if (!combatStandardAction("me_serotonin_boost_1", self, target, params, "", ""))
  4239.         {
  4240.             return SCRIPT_OVERRIDE;
  4241.         }
  4242.        
  4243.         return SCRIPT_CONTINUE;
  4244.     }
  4245.    
  4246.    
  4247.     public int me_bacta_grenade_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4248.     {
  4249.         if (vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_grenade_1", false))
  4250.         {
  4251.             target = self;
  4252.         }
  4253.        
  4254.         if (!combatStandardAction("me_bacta_grenade_1", self, target, params, "", ""))
  4255.         {
  4256.             return SCRIPT_OVERRIDE;
  4257.         }
  4258.        
  4259.         if (target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly"))
  4260.         {
  4261.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  4262.             return SCRIPT_CONTINUE;
  4263.         }
  4264.        
  4265.         return SCRIPT_CONTINUE;
  4266.     }
  4267.    
  4268.    
  4269.     public int me_bacta_grenade_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4270.     {
  4271.         if (vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_grenade_2", false))
  4272.         {
  4273.             target = self;
  4274.         }
  4275.        
  4276.         if (!combatStandardAction("me_bacta_grenade_2", self, target, params, "", ""))
  4277.         {
  4278.             return SCRIPT_OVERRIDE;
  4279.         }
  4280.        
  4281.         if (target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly"))
  4282.         {
  4283.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  4284.             return SCRIPT_CONTINUE;
  4285.         }
  4286.        
  4287.         return SCRIPT_CONTINUE;
  4288.     }
  4289.    
  4290.    
  4291.     public int me_bacta_grenade_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4292.     {
  4293.         if (vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_grenade_3", false))
  4294.         {
  4295.             target = self;
  4296.         }
  4297.        
  4298.         if (!combatStandardAction("me_bacta_grenade_3", self, target, params, "", ""))
  4299.         {
  4300.             return SCRIPT_OVERRIDE;
  4301.         }
  4302.        
  4303.         if (target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly"))
  4304.         {
  4305.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  4306.             return SCRIPT_CONTINUE;
  4307.         }
  4308.        
  4309.         return SCRIPT_CONTINUE;
  4310.     }
  4311.    
  4312.    
  4313.     public int me_bacta_grenade_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4314.     {
  4315.         if (vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_grenade_4", false))
  4316.         {
  4317.             target = self;
  4318.         }
  4319.        
  4320.         if (!combatStandardAction("me_bacta_grenade_4", self, target, params, "", ""))
  4321.         {
  4322.             return SCRIPT_OVERRIDE;
  4323.         }
  4324.        
  4325.         if (target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly"))
  4326.         {
  4327.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  4328.             return SCRIPT_CONTINUE;
  4329.         }
  4330.        
  4331.         return SCRIPT_CONTINUE;
  4332.     }
  4333.    
  4334.    
  4335.     public int me_bacta_grenade_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4336.     {
  4337.         if (vehicle.isVehicle(target) || !isInAttackRange(self, target, "me_bacta_bomb_5", false))
  4338.         {
  4339.             target = self;
  4340.         }
  4341.        
  4342.         if (!combatStandardAction("me_bacta_grenade_5", self, target, params, "", ""))
  4343.         {
  4344.             return SCRIPT_OVERRIDE;
  4345.         }
  4346.        
  4347.         if (target != self && pvpCanHelp(self, target) && successfulFastAttack(self, "me_heal", "quick_heal_fly"))
  4348.         {
  4349.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  4350.             return SCRIPT_CONTINUE;
  4351.         }
  4352.        
  4353.         return SCRIPT_CONTINUE;
  4354.     }
  4355.    
  4356.    
  4357.     public int me_enhance_action_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4358.     {
  4359.         if (!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target))
  4360.         {
  4361.             target = self;
  4362.         }
  4363.        
  4364.         if (!buff.canApplyBuff(target, "me_buff_action_1"))
  4365.         {
  4366.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  4367.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  4368.             return SCRIPT_OVERRIDE;
  4369.         }
  4370.        
  4371.         boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_action_1", params);
  4372.        
  4373.         if (!performed_buff)
  4374.         {
  4375.             return SCRIPT_OVERRIDE;
  4376.         }
  4377.        
  4378.         return SCRIPT_CONTINUE;
  4379.     }
  4380.    
  4381.    
  4382.     public int me_enhance_action_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4383.     {
  4384.         if (!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target))
  4385.         {
  4386.             target = self;
  4387.         }
  4388.        
  4389.         if (!buff.canApplyBuff(target, "me_buff_action_2"))
  4390.         {
  4391.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  4392.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  4393.             return SCRIPT_OVERRIDE;
  4394.         }
  4395.        
  4396.         boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_action_2", params);
  4397.        
  4398.         if (!performed_buff)
  4399.         {
  4400.             return SCRIPT_OVERRIDE;
  4401.         }
  4402.        
  4403.         return SCRIPT_CONTINUE;
  4404.     }
  4405.    
  4406.    
  4407.     public int me_enhance_action_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4408.     {
  4409.         if (!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target))
  4410.         {
  4411.             target = self;
  4412.         }
  4413.        
  4414.         if (!buff.canApplyBuff(target, "me_buff_action_3"))
  4415.         {
  4416.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  4417.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  4418.             return SCRIPT_OVERRIDE;
  4419.         }
  4420.        
  4421.         boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_action_3", params);
  4422.        
  4423.         if (!performed_buff)
  4424.         {
  4425.             return SCRIPT_OVERRIDE;
  4426.         }
  4427.        
  4428.         return SCRIPT_CONTINUE;
  4429.     }
  4430.    
  4431.    
  4432.     public int me_reckless_stimulation_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4433.     {
  4434.         if (hasFullActionPool(self))
  4435.         {
  4436.             showFlyTextPrivate(self, self, new string_id("spam", "full_action_pool"), 2, colors.LEMONCHIFFON);
  4437.             return SCRIPT_OVERRIDE;
  4438.         }
  4439.        
  4440.         if (buff.hasBuff(self, "cloning_sickness"))
  4441.         {
  4442.             sendSystemMessage(self, new string_id("spam", "not_well_enough") );
  4443.             return SCRIPT_OVERRIDE;
  4444.         }
  4445.        
  4446.         if (!combatStandardAction("me_reckless_stimulation_1", self, target, params, "", ""))
  4447.         {
  4448.             return SCRIPT_OVERRIDE;
  4449.         }
  4450.        
  4451.         int healthCost = (int)dataTableGetFloat(COMBAT_TABLE, "me_reckless_stimulation_1", "healthCost");
  4452.         int actionGain = dataTableGetInt(COMBAT_TABLE, "me_reckless_stimulation_1", "addedDamage");
  4453.        
  4454.         healthToActionConversion(self, healthCost, actionGain);
  4455.        
  4456.         return SCRIPT_CONTINUE;
  4457.     }
  4458.    
  4459.    
  4460.     public int me_reckless_stimulation_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4461.     {
  4462.         if (hasFullActionPool(self))
  4463.         {
  4464.             showFlyTextPrivate(self, self, new string_id("spam", "full_action_pool"), 2, colors.LEMONCHIFFON);
  4465.             return SCRIPT_OVERRIDE;
  4466.         }
  4467.        
  4468.         if (buff.hasBuff(self, "cloning_sickness"))
  4469.         {
  4470.             sendSystemMessage(self, new string_id("spam", "not_well_enough") );
  4471.             return SCRIPT_OVERRIDE;
  4472.         }
  4473.        
  4474.         if (!combatStandardAction("me_reckless_stimulation_2", self, target, params, "", ""))
  4475.         {
  4476.             return SCRIPT_OVERRIDE;
  4477.         }
  4478.        
  4479.         int healthCost = (int)dataTableGetFloat(COMBAT_TABLE, "me_reckless_stimulation_2", "healthCost");
  4480.         int actionGain = dataTableGetInt(COMBAT_TABLE, "me_reckless_stimulation_2", "addedDamage");
  4481.        
  4482.         healthToActionConversion(self, healthCost, actionGain);
  4483.        
  4484.         return SCRIPT_CONTINUE;
  4485.     }
  4486.    
  4487.    
  4488.     public int me_reckless_stimulation_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4489.     {
  4490.         if (hasFullActionPool(self))
  4491.         {
  4492.             showFlyTextPrivate(self, self, new string_id("spam", "full_action_pool"), 2, colors.LEMONCHIFFON);
  4493.             return SCRIPT_OVERRIDE;
  4494.         }
  4495.        
  4496.         if (buff.hasBuff(self, "cloning_sickness"))
  4497.         {
  4498.             sendSystemMessage(self, new string_id("spam", "not_well_enough") );
  4499.             return SCRIPT_OVERRIDE;
  4500.         }
  4501.        
  4502.         if (!combatStandardAction("me_reckless_stimulation_3", self, target, params, "", ""))
  4503.         {
  4504.             return SCRIPT_OVERRIDE;
  4505.         }
  4506.        
  4507.         int healthCost = (int)dataTableGetFloat(COMBAT_TABLE, "me_reckless_stimulation_3", "healthCost");
  4508.         int actionGain = dataTableGetInt(COMBAT_TABLE, "me_reckless_stimulation_3", "addedDamage");
  4509.        
  4510.         healthToActionConversion(self, healthCost, actionGain);
  4511.        
  4512.         return SCRIPT_CONTINUE;
  4513.     }
  4514.    
  4515.    
  4516.     public int me_reckless_stimulation_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4517.     {
  4518.         if (hasFullActionPool(self))
  4519.         {
  4520.             showFlyTextPrivate(self, self, new string_id("spam", "full_action_pool"), 2, colors.LEMONCHIFFON);
  4521.             return SCRIPT_OVERRIDE;
  4522.         }
  4523.        
  4524.         if (buff.hasBuff(self, "cloning_sickness"))
  4525.         {
  4526.             sendSystemMessage(self, new string_id("spam", "not_well_enough") );
  4527.             return SCRIPT_OVERRIDE;
  4528.         }
  4529.        
  4530.         if (!combatStandardAction("me_reckless_stimulation_4", self, target, params, "", ""))
  4531.         {
  4532.             return SCRIPT_OVERRIDE;
  4533.         }
  4534.        
  4535.         int healthCost = (int)dataTableGetFloat(COMBAT_TABLE, "me_reckless_stimulation_4", "healthCost");
  4536.         int actionGain = dataTableGetInt(COMBAT_TABLE, "me_reckless_stimulation_4", "addedDamage");
  4537.        
  4538.         healthToActionConversion(self, healthCost, actionGain);
  4539.         return SCRIPT_CONTINUE;
  4540.     }
  4541.    
  4542.    
  4543.     public int me_reckless_stimulation_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4544.     {
  4545.         if (hasFullActionPool(self))
  4546.         {
  4547.             showFlyTextPrivate(self, self, new string_id("spam", "full_action_pool"), 2, colors.LEMONCHIFFON);
  4548.             return SCRIPT_OVERRIDE;
  4549.         }
  4550.        
  4551.         if (buff.hasBuff(self, "cloning_sickness"))
  4552.         {
  4553.             sendSystemMessage(self, new string_id("spam", "not_well_enough") );
  4554.             return SCRIPT_OVERRIDE;
  4555.         }
  4556.        
  4557.         if (!combatStandardAction("me_reckless_stimulation_5", self, target, params, "", ""))
  4558.         {
  4559.             return SCRIPT_OVERRIDE;
  4560.         }
  4561.        
  4562.         int healthCost = (int)dataTableGetFloat(COMBAT_TABLE, "me_reckless_stimulation_5", "healthCost");
  4563.         int actionGain = dataTableGetInt(COMBAT_TABLE, "me_reckless_stimulation_5", "addedDamage");
  4564.        
  4565.         healthToActionConversion(self, healthCost, actionGain);
  4566.        
  4567.         return SCRIPT_CONTINUE;
  4568.     }
  4569.    
  4570.    
  4571.     public int me_reckless_stimulation_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4572.     {
  4573.         if (hasFullActionPool(self))
  4574.         {
  4575.             showFlyTextPrivate(self, self, new string_id("spam", "full_action_pool"), 2, colors.LEMONCHIFFON);
  4576.             return SCRIPT_OVERRIDE;
  4577.         }
  4578.        
  4579.         if (buff.hasBuff(self, "cloning_sickness"))
  4580.         {
  4581.             sendSystemMessage(self, new string_id("spam", "not_well_enough") );
  4582.             return SCRIPT_OVERRIDE;
  4583.         }
  4584.        
  4585.         if (!combatStandardAction("me_reckless_stimulation_6", self, target, params, "", ""))
  4586.         {
  4587.             return SCRIPT_OVERRIDE;
  4588.         }
  4589.        
  4590.         int healthCost = (int)dataTableGetFloat(COMBAT_TABLE, "me_reckless_stimulation_6", "healthCost");
  4591.         int actionGain = dataTableGetInt(COMBAT_TABLE, "me_reckless_stimulation_6", "addedDamage");
  4592.        
  4593.         healthToActionConversion(self, healthCost, actionGain);
  4594.        
  4595.         return SCRIPT_CONTINUE;
  4596.     }
  4597.    
  4598.    
  4599.     public int me_stasis_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4600.     {
  4601.        
  4602.         int stasisBuff = buff.getBuffOnTargetFromGroup(target, "stasis");
  4603.         if (stasisBuff != 0)
  4604.         {
  4605.             return SCRIPT_OVERRIDE;
  4606.         }
  4607.        
  4608.         if (!buff.canApplyBuff(target, "me_stasis_1"))
  4609.         {
  4610.             return SCRIPT_OVERRIDE;
  4611.         }
  4612.        
  4613.         if (vehicle.isVehicle(target))
  4614.         {
  4615.             return SCRIPT_OVERRIDE;
  4616.         }
  4617.        
  4618.         obj_id testTarget = getIntendedTarget(self);
  4619.        
  4620.         if ((isIdValid(testTarget) && ( (group.inSameGroup(self, testTarget) && pvpCanHelp(self, testTarget) ) || pvpCanAttack(self, testTarget) ) ))
  4621.         {
  4622.             target = testTarget;
  4623.         }
  4624.         else
  4625.         {
  4626.             return SCRIPT_OVERRIDE;
  4627.         }
  4628.        
  4629.         if (getDistance(self, target) > 48.0f)
  4630.         {
  4631.             return SCRIPT_OVERRIDE;
  4632.         }
  4633.        
  4634.         if (!combatStandardAction("me_stasis_1", self, target, params, "", ""))
  4635.         {
  4636.             return SCRIPT_OVERRIDE;
  4637.         }
  4638.        
  4639.         buff.applyBuff(target, self, "me_stasis_1");
  4640.        
  4641.         return SCRIPT_CONTINUE;
  4642.     }
  4643.    
  4644.    
  4645.     public int me_stasis_self_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4646.     {
  4647.         int stasisBuff = buff.getBuffOnTargetFromGroup(self, "stasis");
  4648.         if (stasisBuff != 0)
  4649.         {
  4650.             return SCRIPT_OVERRIDE;
  4651.         }
  4652.        
  4653.         if (!buff.canApplyBuff(self, "me_stasis_self_1"))
  4654.         {
  4655.             return SCRIPT_OVERRIDE;
  4656.         }
  4657.        
  4658.         if (!combatStandardAction("me_stasis_self_1", self, target, params, "", ""))
  4659.         {
  4660.             return SCRIPT_OVERRIDE;
  4661.         }
  4662.        
  4663.         float baseCooldownTime = getBaseCooldownTime("me_stasis_self_1");
  4664.         if (baseCooldownTime < 0)
  4665.         {
  4666.             return SCRIPT_OVERRIDE;
  4667.         }
  4668.        
  4669.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_stasis_self");
  4670.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod*60) );
  4671.        
  4672.         return SCRIPT_CONTINUE;
  4673.     }
  4674.    
  4675.    
  4676.     public int me_serotonin_purge_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4677.     {
  4678.         if (vehicle.isVehicle(target))
  4679.         {
  4680.             return SCRIPT_OVERRIDE;
  4681.         }
  4682.        
  4683.         if (!combatStandardAction("me_serotonin_purge_1", self, target, params, "", ""))
  4684.         {
  4685.             return SCRIPT_OVERRIDE;
  4686.         }
  4687.        
  4688.         return SCRIPT_CONTINUE;
  4689.     }
  4690.    
  4691.    
  4692.     public int me_induce_insanity_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4693.     {
  4694.         if (vehicle.isVehicle(target))
  4695.         {
  4696.             return SCRIPT_OVERRIDE;
  4697.         }
  4698.        
  4699.         if (!combatStandardAction("me_induce_insanity_1", self, target, params, "", ""))
  4700.         {
  4701.             return SCRIPT_OVERRIDE;
  4702.         }
  4703.        
  4704.         doDoom(self, target);
  4705.        
  4706.         if (successfulFastAttack(self, "me_debuff", "fast_attack_fly"))
  4707.         {
  4708.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  4709.         }
  4710.        
  4711.         return SCRIPT_CONTINUE;
  4712.     }
  4713.    
  4714.    
  4715.     public int me_bacta_resistance_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4716.     {
  4717.         if (vehicle.isVehicle(target))
  4718.         {
  4719.             return SCRIPT_OVERRIDE;
  4720.         }
  4721.        
  4722.         if (!combatStandardAction("me_bacta_resistance_1", self, target, params, "", ""))
  4723.         {
  4724.             return SCRIPT_OVERRIDE;
  4725.         }
  4726.        
  4727.         doDoom(self, target);
  4728.        
  4729.         if (successfulFastAttack(self, "me_debuff", "fast_attack_fly"))
  4730.         {
  4731.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  4732.         }
  4733.        
  4734.         return SCRIPT_CONTINUE;
  4735.     }
  4736.    
  4737.    
  4738.     public int me_electrolyte_drain_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4739.     {
  4740.         if (vehicle.isVehicle(target))
  4741.         {
  4742.             return SCRIPT_OVERRIDE;
  4743.         }
  4744.        
  4745.         if (!combatStandardAction("me_electrolyte_drain_1", self, target, params, "", ""))
  4746.         {
  4747.             return SCRIPT_OVERRIDE;
  4748.         }
  4749.        
  4750.         doDoom(self, target);
  4751.        
  4752.         if (successfulFastAttack(self, "me_debuff", "fast_attack_fly"))
  4753.         {
  4754.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  4755.         }
  4756.        
  4757.         return SCRIPT_CONTINUE;
  4758.     }
  4759.    
  4760.    
  4761.     public int me_traumatize_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4762.     {
  4763.         if (vehicle.isVehicle(target))
  4764.         {
  4765.             return SCRIPT_OVERRIDE;
  4766.         }
  4767.        
  4768.         if (buff.hasBuff(target, "action_drain_immunity"))
  4769.         {
  4770.             sendSystemMessage(self, new string_id("spam", "immune_to_that") );
  4771.             return SCRIPT_OVERRIDE;
  4772.         }
  4773.        
  4774.         if (!combatStandardAction("me_traumatize_1", self, target, params, "", ""))
  4775.         {
  4776.             return SCRIPT_OVERRIDE;
  4777.         }
  4778.        
  4779.         if (successfulFastAttack(self, "me_debuff", "fast_attack_fly"))
  4780.         {
  4781.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  4782.         }
  4783.        
  4784.         return SCRIPT_CONTINUE;
  4785.     }
  4786.    
  4787.    
  4788.     public int me_traumatize_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4789.     {
  4790.         if (vehicle.isVehicle(target))
  4791.         {
  4792.             return SCRIPT_OVERRIDE;
  4793.         }
  4794.        
  4795.         if (buff.hasBuff(target, "action_drain_immunity"))
  4796.         {
  4797.             sendSystemMessage(self, new string_id("spam", "immune_to_that") );
  4798.             return SCRIPT_OVERRIDE;
  4799.         }
  4800.        
  4801.         if (!combatStandardAction("me_traumatize_2", self, target, params, "", ""))
  4802.         {
  4803.             return SCRIPT_OVERRIDE;
  4804.         }
  4805.        
  4806.         if (successfulFastAttack(self, "me_debuff", "fast_attack_fly"))
  4807.         {
  4808.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  4809.         }
  4810.        
  4811.         return SCRIPT_CONTINUE;
  4812.     }
  4813.    
  4814.    
  4815.     public int me_traumatize_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4816.     {
  4817.         if (vehicle.isVehicle(target))
  4818.         {
  4819.             return SCRIPT_OVERRIDE;
  4820.         }
  4821.        
  4822.         if (buff.hasBuff(target, "action_drain_immunity"))
  4823.         {
  4824.             sendSystemMessage(self, new string_id("spam", "immune_to_that") );
  4825.             return SCRIPT_OVERRIDE;
  4826.         }
  4827.        
  4828.         if (!combatStandardAction("me_traumatize_3", self, target, params, "", ""))
  4829.         {
  4830.             return SCRIPT_OVERRIDE;
  4831.         }
  4832.        
  4833.         if (successfulFastAttack(self, "me_debuff", "fast_attack_fly"))
  4834.         {
  4835.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  4836.         }
  4837.        
  4838.         return SCRIPT_CONTINUE;
  4839.     }
  4840.    
  4841.    
  4842.     public int me_traumatize_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4843.     {
  4844.         if (vehicle.isVehicle(target))
  4845.         {
  4846.             return SCRIPT_OVERRIDE;
  4847.         }
  4848.        
  4849.         if (buff.hasBuff(target, "action_drain_immunity"))
  4850.         {
  4851.             sendSystemMessage(self, new string_id("spam", "immune_to_that") );
  4852.             return SCRIPT_OVERRIDE;
  4853.         }
  4854.        
  4855.         if (!combatStandardAction("me_traumatize_4", self, target, params, "", ""))
  4856.         {
  4857.             return SCRIPT_OVERRIDE;
  4858.         }
  4859.        
  4860.         if (successfulFastAttack(self, "me_debuff", "fast_attack_fly"))
  4861.         {
  4862.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  4863.         }
  4864.        
  4865.         return SCRIPT_CONTINUE;
  4866.     }
  4867.    
  4868.    
  4869.     public int me_traumatize_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4870.     {
  4871.         if (vehicle.isVehicle(target))
  4872.         {
  4873.             return SCRIPT_OVERRIDE;
  4874.         }
  4875.        
  4876.         if (buff.hasBuff(target, "action_drain_immunity"))
  4877.         {
  4878.             sendSystemMessage(self, new string_id("spam", "immune_to_that") );
  4879.             return SCRIPT_OVERRIDE;
  4880.         }
  4881.        
  4882.         if (!combatStandardAction("me_traumatize_5", self, target, params, "", ""))
  4883.         {
  4884.             return SCRIPT_OVERRIDE;
  4885.         }
  4886.        
  4887.         doDoom(self, target);
  4888.        
  4889.         if (successfulFastAttack(self, "me_debuff", "fast_attack_fly"))
  4890.         {
  4891.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  4892.         }
  4893.        
  4894.         return SCRIPT_CONTINUE;
  4895.     }
  4896.    
  4897.    
  4898.     public int me_thyroid_rupture_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4899.     {
  4900.         if (vehicle.isVehicle(target))
  4901.         {
  4902.             return SCRIPT_OVERRIDE;
  4903.         }
  4904.        
  4905.         if (!combatStandardAction("me_thyroid_rupture_1", self, target, params, "", ""))
  4906.         {
  4907.             return SCRIPT_OVERRIDE;
  4908.         }
  4909.        
  4910.         doDoom(self, target);
  4911.        
  4912.         if (successfulFastAttack(self, "me_debuff", "fast_attack_fly"))
  4913.         {
  4914.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  4915.         }
  4916.        
  4917.         return SCRIPT_CONTINUE;
  4918.     }
  4919.    
  4920.    
  4921.     public int me_enhance_strength_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4922.     {
  4923.         if (!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target))
  4924.         {
  4925.             target = self;
  4926.         }
  4927.        
  4928.         if (!buff.canApplyBuff(target, "me_buff_strength_1"))
  4929.         {
  4930.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  4931.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  4932.             return SCRIPT_OVERRIDE;
  4933.         }
  4934.        
  4935.         boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_strength_1", params);
  4936.        
  4937.         if (!performed_buff)
  4938.         {
  4939.             return SCRIPT_OVERRIDE;
  4940.         }
  4941.        
  4942.         return SCRIPT_CONTINUE;
  4943.     }
  4944.    
  4945.    
  4946.     public int me_enhance_strength_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4947.     {
  4948.         if (!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target))
  4949.         {
  4950.             target = self;
  4951.         }
  4952.        
  4953.         if (!buff.canApplyBuff(target, "me_buff_strength_2"))
  4954.         {
  4955.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  4956.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  4957.             return SCRIPT_OVERRIDE;
  4958.         }
  4959.        
  4960.         boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_strength_2", params);
  4961.        
  4962.         if (!performed_buff)
  4963.         {
  4964.             return SCRIPT_OVERRIDE;
  4965.         }
  4966.        
  4967.         return SCRIPT_CONTINUE;
  4968.     }
  4969.    
  4970.    
  4971.     public int me_enhance_strength_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4972.     {
  4973.         if (!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target))
  4974.         {
  4975.             target = self;
  4976.         }
  4977.        
  4978.         if (!buff.canApplyBuff(target, "me_buff_strength_3"))
  4979.         {
  4980.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  4981.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  4982.             return SCRIPT_OVERRIDE;
  4983.         }
  4984.        
  4985.         boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_strength_3", params);
  4986.        
  4987.         if (!performed_buff)
  4988.         {
  4989.             return SCRIPT_OVERRIDE;
  4990.         }
  4991.        
  4992.         return SCRIPT_CONTINUE;
  4993.     }
  4994.    
  4995.    
  4996.     public int me_burst_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  4997.     {
  4998.         if (!combatStandardAction("me_burst_1", self, target, params, "", ""))
  4999.         {
  5000.             return SCRIPT_OVERRIDE;
  5001.         }
  5002.        
  5003.         return SCRIPT_CONTINUE;
  5004.     }
  5005.    
  5006.    
  5007.     public int me_burst_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5008.     {
  5009.         if (!combatStandardAction("me_burst_2", self, target, params, "", ""))
  5010.         {
  5011.             return SCRIPT_OVERRIDE;
  5012.         }
  5013.        
  5014.         return SCRIPT_CONTINUE;
  5015.     }
  5016.    
  5017.    
  5018.     public int me_burst_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5019.     {
  5020.         if (!combatStandardAction("me_burst_3", self, target, params, "", ""))
  5021.         {
  5022.             return SCRIPT_OVERRIDE;
  5023.         }
  5024.        
  5025.         return SCRIPT_CONTINUE;
  5026.     }
  5027.    
  5028.    
  5029.     public int me_burst_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5030.     {
  5031.         if (!combatStandardAction("me_burst_4", self, target, params, "", ""))
  5032.         {
  5033.             return SCRIPT_OVERRIDE;
  5034.         }
  5035.        
  5036.         return SCRIPT_CONTINUE;
  5037.     }
  5038.    
  5039.    
  5040.     public int me_burst_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5041.     {
  5042.         if (!combatStandardAction("me_burst_5", self, target, params, "", ""))
  5043.         {
  5044.             return SCRIPT_OVERRIDE;
  5045.         }
  5046.        
  5047.         return SCRIPT_CONTINUE;
  5048.     }
  5049.    
  5050.    
  5051.     public int me_enhance_agility_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5052.     {
  5053.         if (!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target))
  5054.         {
  5055.             target = self;
  5056.         }
  5057.        
  5058.         if (!buff.canApplyBuff(target, "me_buff_agility_1"))
  5059.         {
  5060.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  5061.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  5062.             return SCRIPT_OVERRIDE;
  5063.         }
  5064.        
  5065.         boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_agility_1", params);
  5066.        
  5067.         if (!performed_buff)
  5068.         {
  5069.             return SCRIPT_OVERRIDE;
  5070.         }
  5071.        
  5072.         return SCRIPT_CONTINUE;
  5073.     }
  5074.    
  5075.    
  5076.     public int me_enhance_agility_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5077.     {
  5078.         if (!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target))
  5079.         {
  5080.             target = self;
  5081.         }
  5082.        
  5083.         if (!buff.canApplyBuff(target, "me_buff_agility_2"))
  5084.         {
  5085.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  5086.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  5087.             return SCRIPT_OVERRIDE;
  5088.         }
  5089.        
  5090.         boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_agility_2", params);
  5091.        
  5092.         if (!performed_buff)
  5093.         {
  5094.             return SCRIPT_OVERRIDE;
  5095.         }
  5096.        
  5097.         return SCRIPT_CONTINUE;
  5098.     }
  5099.    
  5100.    
  5101.     public int me_enhance_agility_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5102.     {
  5103.         if (!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target))
  5104.         {
  5105.             target = self;
  5106.         }
  5107.        
  5108.         if (!buff.canApplyBuff(target, "me_buff_agility_3"))
  5109.         {
  5110.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  5111.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  5112.             return SCRIPT_OVERRIDE;
  5113.         }
  5114.        
  5115.         boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_agility_3", params);
  5116.        
  5117.         if (!performed_buff)
  5118.         {
  5119.             return SCRIPT_OVERRIDE;
  5120.         }
  5121.        
  5122.         return SCRIPT_CONTINUE;
  5123.     }
  5124.    
  5125.    
  5126.     public int me_cranial_smash_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5127.     {
  5128.         if (!combatStandardAction("me_cranial_smash_1", self, target, params, "", ""))
  5129.         {
  5130.             return SCRIPT_OVERRIDE;
  5131.         }
  5132.        
  5133.         return SCRIPT_CONTINUE;
  5134.     }
  5135.    
  5136.    
  5137.     public int me_cranial_smash_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5138.     {
  5139.         if (!combatStandardAction("me_cranial_smash_2", self, target, params, "", ""))
  5140.         {
  5141.             return SCRIPT_OVERRIDE;
  5142.         }
  5143.        
  5144.         return SCRIPT_CONTINUE;
  5145.     }
  5146.    
  5147.    
  5148.     public int me_cranial_smash_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5149.     {
  5150.         if (!combatStandardAction("me_cranial_smash_3", self, target, params, "", ""))
  5151.         {
  5152.             return SCRIPT_OVERRIDE;
  5153.         }
  5154.        
  5155.         return SCRIPT_CONTINUE;
  5156.     }
  5157.    
  5158.    
  5159.     public int me_cranial_smash_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5160.     {
  5161.         if (!combatStandardAction("me_cranial_smash_4", self, target, params, "", ""))
  5162.         {
  5163.             return SCRIPT_OVERRIDE;
  5164.         }
  5165.        
  5166.         return SCRIPT_CONTINUE;
  5167.     }
  5168.    
  5169.    
  5170.     public int me_cranial_smash_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5171.     {
  5172.         if (!combatStandardAction("me_cranial_smash_5", self, target, params, "", ""))
  5173.         {
  5174.             return SCRIPT_OVERRIDE;
  5175.         }
  5176.        
  5177.         return SCRIPT_CONTINUE;
  5178.     }
  5179.    
  5180.    
  5181.     public int me_evasion_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5182.     {
  5183.         if (!combatStandardAction("me_evasion_1", self, target, params, "", ""))
  5184.         {
  5185.             return SCRIPT_OVERRIDE;
  5186.         }
  5187.        
  5188.         doMedicEvasion(self);
  5189.        
  5190.         float baseCooldownTime = getBaseCooldownTime("me_evasion_1");
  5191.         if (baseCooldownTime < 0)
  5192.         {
  5193.             return SCRIPT_OVERRIDE;
  5194.         }
  5195.        
  5196.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_me_evasion");
  5197.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  5198.        
  5199.         return SCRIPT_CONTINUE;
  5200.     }
  5201.    
  5202.    
  5203.     public int me_enhance_precision_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5204.     {
  5205.         if (!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target))
  5206.         {
  5207.             target = self;
  5208.         }
  5209.        
  5210.         if (!buff.canApplyBuff(target, "me_buff_precision_1"))
  5211.         {
  5212.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  5213.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  5214.             return SCRIPT_OVERRIDE;
  5215.         }
  5216.        
  5217.         boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_precision_1", params);
  5218.        
  5219.         if (!performed_buff)
  5220.         {
  5221.             return SCRIPT_OVERRIDE;
  5222.         }
  5223.        
  5224.         return SCRIPT_CONTINUE;
  5225.     }
  5226.    
  5227.    
  5228.     public int me_enhance_precision_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5229.     {
  5230.         if (!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target))
  5231.         {
  5232.             target = self;
  5233.         }
  5234.        
  5235.         if (!buff.canApplyBuff(target, "me_buff_precision_2"))
  5236.         {
  5237.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  5238.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  5239.             return SCRIPT_OVERRIDE;
  5240.         }
  5241.        
  5242.         boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_precision_2", params);
  5243.        
  5244.         if (!performed_buff)
  5245.         {
  5246.             return SCRIPT_OVERRIDE;
  5247.         }
  5248.        
  5249.         return SCRIPT_CONTINUE;
  5250.     }
  5251.    
  5252.    
  5253.     public int me_enhance_precision_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5254.     {
  5255.         if (!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target))
  5256.         {
  5257.             target = self;
  5258.         }
  5259.        
  5260.         if (!buff.canApplyBuff(target, "me_buff_precision_3"))
  5261.         {
  5262.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  5263.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  5264.             return SCRIPT_OVERRIDE;
  5265.         }
  5266.        
  5267.         boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_precision_3", params);
  5268.        
  5269.         if (!performed_buff)
  5270.         {
  5271.             return SCRIPT_OVERRIDE;
  5272.         }
  5273.        
  5274.         return SCRIPT_CONTINUE;
  5275.     }
  5276.    
  5277.    
  5278.     public int me_enhance_block_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5279.     {
  5280.         if (!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target))
  5281.         {
  5282.             target = self;
  5283.         }
  5284.        
  5285.         if (!buff.canApplyBuff(target, "me_buff_melee_gb_1"))
  5286.         {
  5287.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  5288.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  5289.             return SCRIPT_OVERRIDE;
  5290.         }
  5291.        
  5292.         boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_block_1", params);
  5293.        
  5294.         if (!performed_buff)
  5295.         {
  5296.             return SCRIPT_OVERRIDE;
  5297.         }
  5298.        
  5299.         return SCRIPT_CONTINUE;
  5300.     }
  5301.    
  5302.    
  5303.     public int me_enhance_dodge_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5304.     {
  5305.         if (!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target))
  5306.         {
  5307.             target = self;
  5308.         }
  5309.        
  5310.         if (!buff.canApplyBuff(target, "me_buff_ranged_gb_1"))
  5311.         {
  5312.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  5313.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  5314.             return SCRIPT_OVERRIDE;
  5315.         }
  5316.        
  5317.         if (!isIdValid(target) || !pvpCanHelp(self, target))
  5318.         {
  5319.             target = self;
  5320.         }
  5321.        
  5322.         boolean performed_buff = performMedicGroupBuff(self, target, "me_enhance_dodge_1", params);
  5323.        
  5324.         if (!performed_buff)
  5325.         {
  5326.             return SCRIPT_OVERRIDE;
  5327.         }
  5328.        
  5329.         return SCRIPT_CONTINUE;
  5330.     }
  5331.    
  5332.    
  5333.     public int me_buff_health_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5334.     {
  5335.         if (!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target))
  5336.         {
  5337.             target = self;
  5338.         }
  5339.        
  5340.         if (!buff.canApplyBuff(target, "me_buff_health_0"))
  5341.         {
  5342.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  5343.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  5344.             return SCRIPT_OVERRIDE;
  5345.         }
  5346.        
  5347.         boolean performed_buff = performMedicGroupBuff(self, target, "me_buff_health_2", params);
  5348.        
  5349.         if (!performed_buff)
  5350.         {
  5351.             return SCRIPT_OVERRIDE;
  5352.         }
  5353.        
  5354.         return SCRIPT_CONTINUE;
  5355.     }
  5356.    
  5357.    
  5358.     public int me_buff_health_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5359.     {
  5360.         if (!isIdValid(target) || !pvpCanHelp(self, target) || vehicle.isVehicle(target) || isDead(target))
  5361.         {
  5362.             target = self;
  5363.         }
  5364.        
  5365.         if (!buff.canApplyBuff(target, "me_buff_health_2"))
  5366.         {
  5367.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  5368.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  5369.             return SCRIPT_OVERRIDE;
  5370.         }
  5371.        
  5372.         boolean performed_buff = performMedicGroupBuff(self, target, "me_buff_health_3", params);
  5373.        
  5374.         if (!performed_buff)
  5375.         {
  5376.             return SCRIPT_OVERRIDE;
  5377.         }
  5378.        
  5379.         return SCRIPT_CONTINUE;
  5380.     }
  5381.    
  5382.    
  5383.     public int expertise_dueterium_rounds_proc(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5384.     {
  5385.         if (!combatStandardAction("expertise_dueterium_rounds_proc", self, target, params, "", ""))
  5386.         {
  5387.             return SCRIPT_OVERRIDE;
  5388.         }
  5389.        
  5390.         return SCRIPT_CONTINUE;
  5391.     }
  5392.    
  5393.    
  5394.     public int expertise_poison_knuckle_proc(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5395.     {
  5396.         if (!combatStandardAction("expertise_poison_knuckle_proc", self, target, params, "", ""))
  5397.         {
  5398.             return SCRIPT_OVERRIDE;
  5399.         }
  5400.        
  5401.         return SCRIPT_CONTINUE;
  5402.     }
  5403.    
  5404.    
  5405.     public void doDoom(obj_id attacker, obj_id defender) throws InterruptedException
  5406.     {
  5407.         int bonusChance = getEnhancedSkillStatisticModifierUncapped(attacker, "me_doom_chance");
  5408.        
  5409.         if (bonusChance > 0)
  5410.         {
  5411.             int roll = rand(1, 99);
  5412.             int total = roll+bonusChance;
  5413.            
  5414.             if (roll + bonusChance > 99 && !utils.hasScriptVar(defender, "me_doom.doom_owner"))
  5415.             {
  5416.                 utils.setScriptVar(defender, "me_doom.doom_owner", attacker);
  5417.                 utils.setScriptVar(defender, "me_doom.doom_stage", 1);
  5418.                
  5419.                 buff.applyBuff(defender, attacker, "me_doom", 18.0f, 1.0f);
  5420.                
  5421.                 if (hasCommand(attacker, "me_bacta_resistance_1"))
  5422.                 {
  5423.                     buff.applyBuff(defender, attacker, "me_bacta_resistance_1");
  5424.                 }
  5425.                
  5426.                 if (hasCommand(attacker, "me_electrolyte_drain_1"))
  5427.                 {
  5428.                     buff.applyBuff(defender, attacker, "me_electrolyte_drain_1");
  5429.                 }
  5430.                
  5431.                 if (hasCommand(attacker, "me_induce_insanity_1"))
  5432.                 {
  5433.                     buff.applyBuff(defender, attacker, "me_rheumatic_calamity_1");
  5434.                 }
  5435.                
  5436.                 if (hasCommand(attacker, "me_thyroid_rupture_1"))
  5437.                 {
  5438.                     buff.applyBuff(defender, attacker, "me_thyroid_rupture_1");
  5439.                 }
  5440.             }
  5441.         }
  5442.        
  5443.         return;
  5444.     }
  5445.    
  5446.    
  5447.     public int of_buff_def_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5448.     {
  5449.         if (!buff.canApplyBuff(self, "of_buff_def_1"))
  5450.         {
  5451.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  5452.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  5453.             return SCRIPT_OVERRIDE;
  5454.         }
  5455.        
  5456.         if (!combatStandardAction("of_buff_def_1", self, target, params, "", ""))
  5457.         {
  5458.             return SCRIPT_OVERRIDE;
  5459.         }
  5460.        
  5461.         float baseCooldownTime = getBaseCooldownTime("of_buff_def_1");
  5462.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  5463.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  5464.        
  5465.         if (baseCooldownTime < 0)
  5466.         {
  5467.             baseCooldownTime = 0.0f;
  5468.         }
  5469.        
  5470.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  5471.        
  5472.         return SCRIPT_CONTINUE;
  5473.     }
  5474.    
  5475.    
  5476.     public int of_buff_def_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5477.     {
  5478.         if (!buff.canApplyBuff(self, "of_buff_def_2"))
  5479.         {
  5480.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  5481.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  5482.             return SCRIPT_OVERRIDE;
  5483.         }
  5484.        
  5485.         if (!combatStandardAction("of_buff_def_2", self, target, params, "", ""))
  5486.         {
  5487.             return SCRIPT_OVERRIDE;
  5488.         }
  5489.        
  5490.         float baseCooldownTime = getBaseCooldownTime("of_buff_def_2");
  5491.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  5492.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  5493.        
  5494.         if (baseCooldownTime < 0)
  5495.         {
  5496.             baseCooldownTime = 0.0f;
  5497.         }
  5498.        
  5499.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  5500.        
  5501.         return SCRIPT_CONTINUE;
  5502.     }
  5503.    
  5504.    
  5505.     public int of_buff_def_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5506.     {
  5507.         if (!buff.canApplyBuff(self, "of_buff_def_3"))
  5508.         {
  5509.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  5510.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  5511.             return SCRIPT_OVERRIDE;
  5512.         }
  5513.        
  5514.         if (!combatStandardAction("of_buff_def_3", self, target, params, "", ""))
  5515.         {
  5516.             return SCRIPT_OVERRIDE;
  5517.         }
  5518.        
  5519.         float baseCooldownTime = getBaseCooldownTime("of_buff_def_3");
  5520.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  5521.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  5522.        
  5523.         if (baseCooldownTime < 0)
  5524.         {
  5525.             baseCooldownTime = 0.0f;
  5526.         }
  5527.        
  5528.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  5529.        
  5530.         return SCRIPT_CONTINUE;
  5531.     }
  5532.    
  5533.    
  5534.     public int of_deb_def_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5535.     {
  5536.         if (!combatStandardAction("of_deb_def_1", self, target, params, "", ""))
  5537.         {
  5538.             return SCRIPT_OVERRIDE;
  5539.         }
  5540.        
  5541.         float baseCooldownTime = getBaseCooldownTime("of_deb_def_1");
  5542.         if (baseCooldownTime < 0)
  5543.         {
  5544.             return SCRIPT_OVERRIDE;
  5545.         }
  5546.        
  5547.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_paint");
  5548.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10));
  5549.        
  5550.         return SCRIPT_CONTINUE;
  5551.     }
  5552.    
  5553.    
  5554.     public int of_deb_def_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5555.     {
  5556.         if (!combatStandardAction("of_deb_def_2", self, target, params, "", ""))
  5557.         {
  5558.             return SCRIPT_OVERRIDE;
  5559.         }
  5560.        
  5561.         float baseCooldownTime = getBaseCooldownTime("of_deb_def_2");
  5562.         if (baseCooldownTime < 0)
  5563.         {
  5564.             return SCRIPT_OVERRIDE;
  5565.         }
  5566.        
  5567.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_paint");
  5568.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10));
  5569.        
  5570.         return SCRIPT_CONTINUE;
  5571.     }
  5572.    
  5573.    
  5574.     public int of_deb_def_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5575.     {
  5576.         if (!combatStandardAction("of_deb_def_3", self, target, params, "", ""))
  5577.         {
  5578.             return SCRIPT_OVERRIDE;
  5579.         }
  5580.        
  5581.         float baseCooldownTime = getBaseCooldownTime("of_deb_def_3");
  5582.         if (baseCooldownTime < 0)
  5583.         {
  5584.             return SCRIPT_OVERRIDE;
  5585.         }
  5586.        
  5587.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_paint");
  5588.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10));
  5589.        
  5590.         return SCRIPT_CONTINUE;
  5591.     }
  5592.    
  5593.    
  5594.     public int of_ae_dm_cc_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5595.     {
  5596.         if (!combatStandardAction("of_ae_dm_cc_1", self, target, params, "", ""))
  5597.         {
  5598.             return SCRIPT_OVERRIDE;
  5599.         }
  5600.        
  5601.         if (successfulFastAttack(self, "of_aoe"))
  5602.         {
  5603.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  5604.         }
  5605.        
  5606.         return SCRIPT_CONTINUE;
  5607.     }
  5608.    
  5609.    
  5610.     public int of_ae_dm_cc_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5611.     {
  5612.         if (!combatStandardAction("of_ae_dm_cc_2", self, target, params, "", ""))
  5613.         {
  5614.             return SCRIPT_OVERRIDE;
  5615.         }
  5616.        
  5617.         if (successfulFastAttack(self, "of_aoe"))
  5618.         {
  5619.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  5620.         }
  5621.        
  5622.         return SCRIPT_CONTINUE;
  5623.     }
  5624.    
  5625.    
  5626.     public int of_ae_dm_cc_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5627.     {
  5628.         if (!combatStandardAction("of_ae_dm_cc_3", self, target, params, "", ""))
  5629.         {
  5630.             return SCRIPT_OVERRIDE;
  5631.         }
  5632.        
  5633.         if (successfulFastAttack(self, "of_aoe"))
  5634.         {
  5635.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  5636.         }
  5637.        
  5638.         doInspiredAction(self);
  5639.        
  5640.         return SCRIPT_CONTINUE;
  5641.     }
  5642.    
  5643.    
  5644.     public int of_del_ae_dm_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5645.     {
  5646.         if (getTopMostContainer(self) != self)
  5647.         {
  5648.             sendSystemMessage(self, new string_id("spam", "cant_do_indoors"));
  5649.             return SCRIPT_OVERRIDE;
  5650.         }
  5651.        
  5652.         if (!combatStandardAction("of_del_ae_dm_1", self, target, params, "", ""))
  5653.         {
  5654.             return SCRIPT_OVERRIDE;
  5655.         }
  5656.        
  5657.         prose_package p = prose.getPackage(new string_id("spam", "artillery_coming"));
  5658.         commPlayers(self, "object/mobile/npe/npe_hutt_minion.iff", "sound/sys_comm_other.snd", 5f, self, p);
  5659.        
  5660.         if (successfulFastAttack(self, "of_aoe"))
  5661.         {
  5662.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  5663.         }
  5664.        
  5665.         return SCRIPT_CONTINUE;
  5666.     }
  5667.    
  5668.    
  5669.     public int of_del_ae_dm_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5670.     {
  5671.         if (getTopMostContainer(self) != self)
  5672.         {
  5673.             sendSystemMessage(self, new string_id("spam", "cant_do_indoors"));
  5674.             return SCRIPT_OVERRIDE;
  5675.         }
  5676.        
  5677.         if (!combatStandardAction("of_del_ae_dm_2", self, target, params, "", ""))
  5678.         {
  5679.             return SCRIPT_OVERRIDE;
  5680.         }
  5681.        
  5682.         prose_package p = prose.getPackage(new string_id("spam", "hailfire_coming"));
  5683.         commPlayers(self, "object/mobile/npe/npe_hutt_minion.iff", "sound/sys_comm_other.snd", 5f, self, p);
  5684.         playClientEffectLoc(self, "clienteffect/combat_pt_aerialstrike.cef", getLocation(target), 0);
  5685.        
  5686.         if (successfulFastAttack(self, "of_aoe"))
  5687.         {
  5688.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  5689.         }
  5690.        
  5691.         return SCRIPT_CONTINUE;
  5692.     }
  5693.    
  5694.    
  5695.     public int of_del_ae_dm_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5696.     {
  5697.         if (getTopMostContainer(self) != self)
  5698.         {
  5699.             sendSystemMessage(self, new string_id("spam", "cant_do_indoors"));
  5700.             return SCRIPT_OVERRIDE;
  5701.         }
  5702.        
  5703.         if (!combatStandardAction("of_del_ae_dm_3", self, target, params, "", ""))
  5704.         {
  5705.             return SCRIPT_OVERRIDE;
  5706.         }
  5707.        
  5708.         prose_package p = prose.getPackage(new string_id("spam", "orbitalstrike_coming"));
  5709.         commPlayers(self, "object/mobile/npe/npe_hutt_minion.iff", "sound/sys_comm_other.snd", 5f, self, p);
  5710.         playClientEffectLoc(self, "clienteffect/combat_pt_orbitalstrike.cef", getLocation(target), 0);
  5711.        
  5712.         if (successfulFastAttack(self, "of_aoe"))
  5713.         {
  5714.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  5715.         }
  5716.        
  5717.         doInspiredAction(self);
  5718.        
  5719.         return SCRIPT_CONTINUE;
  5720.     }
  5721.    
  5722.    
  5723.     public int of_del_ae_dm_dot_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5724.     {
  5725.         if (!combatStandardAction("of_del_ae_dm_dot_1", self, target, params, "", ""))
  5726.         {
  5727.             return SCRIPT_OVERRIDE;
  5728.         }
  5729.        
  5730.         if (successfulFastAttack(self, "of_aoe"))
  5731.         {
  5732.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  5733.         }
  5734.        
  5735.         return SCRIPT_CONTINUE;
  5736.     }
  5737.    
  5738.    
  5739.     public int of_del_ae_dm_dot_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5740.     {
  5741.         if (!combatStandardAction("of_del_ae_dm_dot_2", self, target, params, "", ""))
  5742.         {
  5743.             return SCRIPT_OVERRIDE;
  5744.         }
  5745.        
  5746.         if (successfulFastAttack(self, "of_aoe"))
  5747.         {
  5748.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  5749.         }
  5750.        
  5751.         return SCRIPT_CONTINUE;
  5752.     }
  5753.    
  5754.    
  5755.     public int of_del_ae_dm_dot_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5756.     {
  5757.         if (!combatStandardAction("of_del_ae_dm_dot_3", self, target, params, "", ""))
  5758.         {
  5759.             return SCRIPT_OVERRIDE;
  5760.         }
  5761.        
  5762.         if (successfulFastAttack(self, "of_aoe"))
  5763.         {
  5764.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  5765.         }
  5766.        
  5767.         doInspiredAction(self);
  5768.        
  5769.         return SCRIPT_CONTINUE;
  5770.     }
  5771.    
  5772.    
  5773.     public int of_del_ae_dot_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5774.     {
  5775.         if (!combatStandardAction("of_del_ae_dot_1", self, target, params, "", ""))
  5776.         {
  5777.             return SCRIPT_OVERRIDE;
  5778.         }
  5779.        
  5780.         if (successfulFastAttack(self, "of_aoe"))
  5781.         {
  5782.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  5783.         }
  5784.        
  5785.         return SCRIPT_CONTINUE;
  5786.     }
  5787.    
  5788.    
  5789.     public int of_pistol_dm(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5790.     {
  5791.         if (!combatStandardAction("of_pistol_dm", self, target, params, "", ""))
  5792.         {
  5793.             return SCRIPT_OVERRIDE;
  5794.         }
  5795.        
  5796.         int level = getLevel(self);
  5797.         if (level >= 74)
  5798.         {
  5799.             doInspiredAction(self);
  5800.         }
  5801.        
  5802.         return SCRIPT_CONTINUE;
  5803.     }
  5804.    
  5805.    
  5806.     public int of_pistol_bleed(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5807.     {
  5808.         if (!combatStandardAction("of_pistol_bleed", self, target, params, "", ""))
  5809.         {
  5810.             return SCRIPT_OVERRIDE;
  5811.         }
  5812.        
  5813.         int level = getLevel(self);
  5814.         if (level >= 74)
  5815.         {
  5816.             doInspiredAction(self);
  5817.         }
  5818.        
  5819.         return SCRIPT_CONTINUE;
  5820.     }
  5821.    
  5822.    
  5823.     public int of_rally_point_off(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5824.     {
  5825.        
  5826.         location eggLoc = combat.getCommandGroundTargetLocation(params);
  5827.        
  5828.         location myLoc = getLocation(self);
  5829.        
  5830.         float distance = getDistance(myLoc, eggLoc);
  5831.        
  5832.         obj_id objEgg = createObject("object/tangible/space/content_infrastructure/generic_egg_small.iff", eggLoc);
  5833.        
  5834.         if (!isIdValid(objEgg))
  5835.         {
  5836.             return SCRIPT_OVERRIDE;
  5837.         }
  5838.        
  5839.         utils.setScriptVar(objEgg, "objOwner", self);
  5840.         utils.setScriptVar(self, "objEgg", objEgg);
  5841.         utils.setScriptVar(objEgg, "triggerBuff", "of_rally_point_off");
  5842.         int duration = combat.EGG_AURA_DURATION;
  5843.         duration += (int)getEnhancedSkillStatisticModifierUncapped(self, "rally_point_duration");
  5844.         utils.setScriptVar(objEgg, "triggerDuration", duration);
  5845.         utils.setScriptVar(objEgg, "triggerPrt", "appearance/pt_rally_point_red.prt");
  5846.        
  5847.         attachScript(objEgg, "systems.combat.combat_trigger_area");
  5848.        
  5849.         combat_data cData = combat_engine.getCombatData("of_rally_point_off");
  5850.         obj_id weapon = getCurrentWeapon(self);
  5851.         weapon_data wData = getWeaponData(weapon);
  5852.        
  5853.         int[] actionCost = combat.getActionCost(self, wData, cData);
  5854.        
  5855.         combat.drainCombatActionAttributes(self, actionCost);
  5856.        
  5857.         float baseCooldownTime = getBaseCooldownTime("of_rally_point_off");
  5858.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  5859.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  5860.        
  5861.         if (baseCooldownTime < 0)
  5862.         {
  5863.             baseCooldownTime = 0.0f;
  5864.         }
  5865.        
  5866.         if (group.isGrouped(self))
  5867.         {
  5868.             obj_id groupId = getGroupObject(self);
  5869.             obj_id[] members = getGroupMemberIds(groupId);
  5870.             prose_package pp = new prose_package();
  5871.            
  5872.             prose.setStringId(pp, new string_id("squad_leader", "of_set_rally_point"));
  5873.             prose.setTT(pp, self);
  5874.            
  5875.             if (members != null && members.length > 0)
  5876.             {
  5877.                 for (int i = 0; i < members.length; ++i)
  5878.                 {
  5879.                     testAbortScript();
  5880.                     combat.sendCombatSpamMessageProse(members[i], pp);
  5881.                 }
  5882.             }
  5883.             squad_leader.sendSquadLeaderCommand( self, "Rallypoint has been set!");
  5884.         }
  5885.         else
  5886.         {
  5887.             combat.sendCombatSpamMessage(self, new string_id("squad_leader", "self_set_rally_point"));
  5888.         }
  5889.        
  5890.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  5891.        
  5892.         doInspiredAction(self);
  5893.        
  5894.         return SCRIPT_CONTINUE;
  5895.     }
  5896.    
  5897.    
  5898.     public int of_rally_point_def(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5899.     {
  5900.         location eggLoc = combat.getCommandGroundTargetLocation(params);
  5901.        
  5902.         location myLoc = getLocation(self);
  5903.        
  5904.         float distance = getDistance(myLoc, eggLoc);
  5905.        
  5906.         obj_id objEgg = createObject("object/tangible/space/content_infrastructure/generic_egg_small.iff", eggLoc);
  5907.        
  5908.         if (!isIdValid(objEgg))
  5909.         {
  5910.             return SCRIPT_OVERRIDE;
  5911.         }
  5912.        
  5913.         utils.setScriptVar(objEgg, "objOwner", self);
  5914.         utils.setScriptVar(self, "objEgg", objEgg);
  5915.         utils.setScriptVar(objEgg, "triggerBuff", "of_rally_point_def");
  5916.         int duration = combat.EGG_AURA_DURATION;
  5917.         duration += (int)getEnhancedSkillStatisticModifierUncapped(self, "rally_point_duration");
  5918.         utils.setScriptVar(objEgg, "triggerDuration", duration);
  5919.         utils.setScriptVar(objEgg, "triggerPrt", "appearance/pt_rally_point_blue.prt");
  5920.        
  5921.         attachScript(objEgg, "systems.combat.combat_trigger_area");
  5922.        
  5923.         combat_data cData = combat_engine.getCombatData("of_rally_point_def");
  5924.         obj_id weapon = getCurrentWeapon(self);
  5925.         weapon_data wData = getWeaponData(weapon);
  5926.        
  5927.         int[] actionCost = combat.getActionCost(self, wData, cData);
  5928.        
  5929.         combat.drainCombatActionAttributes(self, actionCost);
  5930.        
  5931.         float baseCooldownTime = getBaseCooldownTime("of_rally_point_def");
  5932.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  5933.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  5934.        
  5935.         if (baseCooldownTime < 0)
  5936.         {
  5937.             baseCooldownTime = 0.0f;
  5938.         }
  5939.        
  5940.         if (group.isGrouped(self))
  5941.         {
  5942.             obj_id groupId = getGroupObject(self);
  5943.             obj_id[] members = getGroupMemberIds(groupId);
  5944.             prose_package pp = new prose_package();
  5945.            
  5946.             prose.setStringId(pp, new string_id("squad_leader", "of_set_rally_point"));
  5947.             prose.setTT(pp, self);
  5948.            
  5949.             if (members != null && members.length > 0)
  5950.             {
  5951.                 for (int i = 0; i < members.length; ++i)
  5952.                 {
  5953.                     testAbortScript();
  5954.                     combat.sendCombatSpamMessageProse(members[i], pp);
  5955.                 }
  5956.             }
  5957.             squad_leader.sendSquadLeaderCommand( self, "Rallypoint has been set!");
  5958.         }
  5959.         else
  5960.         {
  5961.             combat.sendCombatSpamMessage(self, new string_id("squad_leader", "self_set_rally_point"));
  5962.         }
  5963.        
  5964.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  5965.        
  5966.         doInspiredAction(self);
  5967.        
  5968.         return SCRIPT_CONTINUE;
  5969.     }
  5970.    
  5971.    
  5972.     public int of_dm_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5973.     {
  5974.         if (!combatStandardAction("of_dm_1", self, target, params, "", ""))
  5975.         {
  5976.             return SCRIPT_OVERRIDE;
  5977.         }
  5978.        
  5979.         float baseCooldownTime = getBaseCooldownTime("of_dm_1");
  5980.         if (baseCooldownTime < 0)
  5981.         {
  5982.             return SCRIPT_OVERRIDE;
  5983.         }
  5984.        
  5985.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sure");
  5986.        
  5987.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10));
  5988.        
  5989.         return SCRIPT_CONTINUE;
  5990.     }
  5991.    
  5992.    
  5993.     public int of_dm_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  5994.     {
  5995.         if (!combatStandardAction("of_dm_2", self, target, params, "", ""))
  5996.         {
  5997.             return SCRIPT_OVERRIDE;
  5998.         }
  5999.        
  6000.         float baseCooldownTime = getBaseCooldownTime("of_dm_2");
  6001.         if (baseCooldownTime < 0)
  6002.         {
  6003.             return SCRIPT_OVERRIDE;
  6004.         }
  6005.        
  6006.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sure");
  6007.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10));
  6008.        
  6009.         return SCRIPT_CONTINUE;
  6010.     }
  6011.    
  6012.    
  6013.     public int of_dm_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6014.     {
  6015.         if (!combatStandardAction("of_dm_3", self, target, params, "", ""))
  6016.         {
  6017.             return SCRIPT_OVERRIDE;
  6018.         }
  6019.        
  6020.         float baseCooldownTime = getBaseCooldownTime("of_dm_3");
  6021.         if (baseCooldownTime < 0)
  6022.         {
  6023.             return SCRIPT_OVERRIDE;
  6024.         }
  6025.        
  6026.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sure");
  6027.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10));
  6028.        
  6029.         return SCRIPT_CONTINUE;
  6030.     }
  6031.    
  6032.    
  6033.     public int of_dm_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6034.     {
  6035.         if (!combatStandardAction("of_dm_4", self, target, params, "", ""))
  6036.         {
  6037.             return SCRIPT_OVERRIDE;
  6038.         }
  6039.        
  6040.         float baseCooldownTime = getBaseCooldownTime("of_dm_4");
  6041.         if (baseCooldownTime < 0)
  6042.         {
  6043.             return SCRIPT_OVERRIDE;
  6044.         }
  6045.        
  6046.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sure");
  6047.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10));
  6048.        
  6049.         return SCRIPT_CONTINUE;
  6050.     }
  6051.    
  6052.    
  6053.     public int of_dm_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6054.     {
  6055.         if (!combatStandardAction("of_dm_5", self, target, params, "", ""))
  6056.         {
  6057.             return SCRIPT_OVERRIDE;
  6058.         }
  6059.        
  6060.         float baseCooldownTime = getBaseCooldownTime("of_dm_5");
  6061.         if (baseCooldownTime < 0)
  6062.         {
  6063.             return SCRIPT_OVERRIDE;
  6064.         }
  6065.        
  6066.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sure");
  6067.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10));
  6068.        
  6069.         return SCRIPT_CONTINUE;
  6070.     }
  6071.    
  6072.    
  6073.     public int of_dm_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6074.     {
  6075.         if (!combatStandardAction("of_dm_6", self, target, params, "", ""))
  6076.         {
  6077.             return SCRIPT_OVERRIDE;
  6078.         }
  6079.        
  6080.         float baseCooldownTime = getBaseCooldownTime("of_dm_6");
  6081.         if (baseCooldownTime < 0)
  6082.         {
  6083.             return SCRIPT_OVERRIDE;
  6084.         }
  6085.        
  6086.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sure");
  6087.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10));
  6088.        
  6089.         return SCRIPT_CONTINUE;
  6090.     }
  6091.    
  6092.    
  6093.     public int of_dm_7(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6094.     {
  6095.         if (!combatStandardAction("of_dm_7", self, target, params, "", ""))
  6096.         {
  6097.             return SCRIPT_OVERRIDE;
  6098.         }
  6099.        
  6100.         float baseCooldownTime = getBaseCooldownTime("of_dm_7");
  6101.         if (baseCooldownTime < 0)
  6102.         {
  6103.             return SCRIPT_OVERRIDE;
  6104.         }
  6105.        
  6106.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sure");
  6107.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10));
  6108.        
  6109.         return SCRIPT_CONTINUE;
  6110.     }
  6111.    
  6112.    
  6113.     public int of_dm_8(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6114.     {
  6115.         if (!combatStandardAction("of_dm_8", self, target, params, "", ""))
  6116.         {
  6117.             return SCRIPT_OVERRIDE;
  6118.         }
  6119.        
  6120.         float baseCooldownTime = getBaseCooldownTime("of_dm_8");
  6121.         if (baseCooldownTime < 0)
  6122.         {
  6123.             return SCRIPT_OVERRIDE;
  6124.         }
  6125.        
  6126.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sure");
  6127.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10));
  6128.        
  6129.         doInspiredAction(self);
  6130.        
  6131.         return SCRIPT_CONTINUE;
  6132.     }
  6133.    
  6134.    
  6135.     public int of_sh_0(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6136.     {
  6137.         if (!healing.isDamaged(self))
  6138.         {
  6139.             sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self"));
  6140.             return SCRIPT_OVERRIDE;
  6141.         }
  6142.        
  6143.         if (!combatStandardAction("of_sh_0", self, target, params, "", ""))
  6144.         {
  6145.             return SCRIPT_OVERRIDE;
  6146.         }
  6147.        
  6148.         if (successfulFastAttack(self, "of_heal", "quick_heal_fly"))
  6149.         {
  6150.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  6151.             return SCRIPT_CONTINUE;
  6152.         }
  6153.        
  6154.         float baseCooldownTime = getBaseCooldownTime("of_sh_0");
  6155.         if (baseCooldownTime < 0)
  6156.         {
  6157.             return SCRIPT_OVERRIDE;
  6158.         }
  6159.        
  6160.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_heal");
  6161.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  6162.        
  6163.         return SCRIPT_CONTINUE;
  6164.     }
  6165.    
  6166.    
  6167.     public int of_sh_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6168.     {
  6169.         if (!healing.isDamaged(self))
  6170.         {
  6171.             sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self"));
  6172.             return SCRIPT_OVERRIDE;
  6173.         }
  6174.        
  6175.         if (!combatStandardAction("of_sh_1", self, target, params, "", ""))
  6176.         {
  6177.             return SCRIPT_OVERRIDE;
  6178.         }
  6179.        
  6180.         if (successfulFastAttack(self, "of_heal", "quick_heal_fly"))
  6181.         {
  6182.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  6183.             return SCRIPT_CONTINUE;
  6184.         }
  6185.        
  6186.         float baseCooldownTime = getBaseCooldownTime("of_sh_1");
  6187.         if (baseCooldownTime < 0)
  6188.         {
  6189.             return SCRIPT_OVERRIDE;
  6190.         }
  6191.        
  6192.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_heal");
  6193.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  6194.        
  6195.         return SCRIPT_CONTINUE;
  6196.     }
  6197.    
  6198.    
  6199.     public int of_sh_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6200.     {
  6201.         if (!healing.isDamaged(self))
  6202.         {
  6203.             sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self"));
  6204.             return SCRIPT_OVERRIDE;
  6205.         }
  6206.        
  6207.         if (!combatStandardAction("of_sh_2", self, target, params, "", ""))
  6208.         {
  6209.             return SCRIPT_OVERRIDE;
  6210.         }
  6211.        
  6212.         if (successfulFastAttack(self, "of_heal", "quick_heal_fly"))
  6213.         {
  6214.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  6215.             return SCRIPT_CONTINUE;
  6216.         }
  6217.        
  6218.         float baseCooldownTime = getBaseCooldownTime("of_sh_2");
  6219.         if (baseCooldownTime < 0)
  6220.         {
  6221.             return SCRIPT_OVERRIDE;
  6222.         }
  6223.        
  6224.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_heal");
  6225.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  6226.        
  6227.         return SCRIPT_CONTINUE;
  6228.     }
  6229.    
  6230.    
  6231.     public int of_sh_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6232.     {
  6233.         if (!healing.isDamaged(self))
  6234.         {
  6235.             sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self"));
  6236.             return SCRIPT_OVERRIDE;
  6237.         }
  6238.        
  6239.         if (!combatStandardAction("of_sh_3", self, target, params, "", ""))
  6240.         {
  6241.             return SCRIPT_OVERRIDE;
  6242.         }
  6243.        
  6244.         doInspiredAction(self);
  6245.        
  6246.         if (successfulFastAttack(self, "of_heal", "quick_heal_fly"))
  6247.         {
  6248.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  6249.             return SCRIPT_CONTINUE;
  6250.         }
  6251.        
  6252.         float baseCooldownTime = getBaseCooldownTime("of_sh_3");
  6253.         if (baseCooldownTime < 0)
  6254.         {
  6255.             return SCRIPT_OVERRIDE;
  6256.         }
  6257.        
  6258.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_heal");
  6259.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  6260.        
  6261.         return SCRIPT_CONTINUE;
  6262.     }
  6263.    
  6264.    
  6265.     public int of_drop_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6266.     {
  6267.         if (!canCallSupplyDrop(self))
  6268.         {
  6269.             return SCRIPT_OVERRIDE;
  6270.         }
  6271.        
  6272.         if (!combatStandardAction("of_drop_1", self, target, params, "", ""))
  6273.         {
  6274.             return SCRIPT_OVERRIDE;
  6275.         }
  6276.         else
  6277.         {
  6278.             if (!callSupplyDrop(self, 0))
  6279.             {
  6280.                 return SCRIPT_OVERRIDE;
  6281.             }
  6282.         }
  6283.        
  6284.         float baseCooldownTime = getBaseCooldownTime("of_drop_1");
  6285.         if (baseCooldownTime < 0)
  6286.         {
  6287.             return SCRIPT_OVERRIDE;
  6288.         }
  6289.        
  6290.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60;
  6291.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  6292.        
  6293.         return SCRIPT_CONTINUE;
  6294.     }
  6295.    
  6296.    
  6297.     public int of_buff_def_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6298.     {
  6299.         if (!buff.canApplyBuff(self, "of_buff_def_4"))
  6300.         {
  6301.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  6302.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  6303.             return SCRIPT_OVERRIDE;
  6304.         }
  6305.        
  6306.         if (!combatStandardAction("of_buff_def_4", self, target, params, "", ""))
  6307.         {
  6308.             return SCRIPT_OVERRIDE;
  6309.         }
  6310.        
  6311.         float baseCooldownTime = getBaseCooldownTime("of_buff_def_4");
  6312.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  6313.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  6314.        
  6315.         if (baseCooldownTime < 0)
  6316.         {
  6317.             baseCooldownTime = 0.0f;
  6318.         }
  6319.        
  6320.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  6321.        
  6322.         return SCRIPT_CONTINUE;
  6323.     }
  6324.    
  6325.    
  6326.     public int of_buff_def_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6327.     {
  6328.         if (!buff.canApplyBuff(self, "of_buff_def_5"))
  6329.         {
  6330.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  6331.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  6332.             return SCRIPT_OVERRIDE;
  6333.         }
  6334.        
  6335.         if (!combatStandardAction("of_buff_def_5", self, target, params, "", ""))
  6336.         {
  6337.             return SCRIPT_OVERRIDE;
  6338.         }
  6339.        
  6340.         float baseCooldownTime = getBaseCooldownTime("of_buff_def_5");
  6341.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  6342.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  6343.        
  6344.         if (baseCooldownTime < 0)
  6345.         {
  6346.             baseCooldownTime = 0.0f;
  6347.         }
  6348.        
  6349.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  6350.        
  6351.         return SCRIPT_CONTINUE;
  6352.     }
  6353.    
  6354.    
  6355.     public int of_buff_def_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6356.     {
  6357.         if (!buff.canApplyBuff(self, "of_buff_def_6"))
  6358.         {
  6359.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  6360.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  6361.             return SCRIPT_OVERRIDE;
  6362.         }
  6363.        
  6364.         if (!combatStandardAction("of_buff_def_6", self, target, params, "", ""))
  6365.         {
  6366.             return SCRIPT_OVERRIDE;
  6367.         }
  6368.        
  6369.         float baseCooldownTime = getBaseCooldownTime("of_buff_def_6");
  6370.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  6371.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  6372.        
  6373.         if (baseCooldownTime < 0)
  6374.         {
  6375.             baseCooldownTime = 0.0f;
  6376.         }
  6377.        
  6378.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  6379.        
  6380.         return SCRIPT_CONTINUE;
  6381.     }
  6382.    
  6383.    
  6384.     public int of_buff_def_7(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6385.     {
  6386.         if (!buff.canApplyBuff(self, "of_buff_def_7"))
  6387.         {
  6388.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  6389.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  6390.             return SCRIPT_OVERRIDE;
  6391.         }
  6392.        
  6393.         if (!combatStandardAction("of_buff_def_7", self, target, params, "", ""))
  6394.         {
  6395.             return SCRIPT_OVERRIDE;
  6396.         }
  6397.        
  6398.         float baseCooldownTime = getBaseCooldownTime("of_buff_def_7");
  6399.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  6400.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  6401.        
  6402.         if (baseCooldownTime < 0)
  6403.         {
  6404.             baseCooldownTime = 0.0f;
  6405.         }
  6406.        
  6407.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  6408.        
  6409.         return SCRIPT_CONTINUE;
  6410.     }
  6411.    
  6412.    
  6413.     public int of_buff_def_8(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6414.     {
  6415.         if (!buff.canApplyBuff(self, "of_buff_def_8"))
  6416.         {
  6417.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  6418.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  6419.             return SCRIPT_OVERRIDE;
  6420.         }
  6421.        
  6422.         if (!combatStandardAction("of_buff_def_8", self, target, params, "", ""))
  6423.         {
  6424.             return SCRIPT_OVERRIDE;
  6425.         }
  6426.        
  6427.         float baseCooldownTime = getBaseCooldownTime("of_buff_def_8");
  6428.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  6429.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  6430.        
  6431.         if (baseCooldownTime < 0)
  6432.         {
  6433.             baseCooldownTime = 0.0f;
  6434.         }
  6435.        
  6436.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  6437.        
  6438.         return SCRIPT_CONTINUE;
  6439.     }
  6440.    
  6441.    
  6442.     public int of_buff_def_9(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6443.     {
  6444.         if (!buff.canApplyBuff(self, "of_buff_def_9"))
  6445.         {
  6446.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  6447.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  6448.             return SCRIPT_OVERRIDE;
  6449.         }
  6450.        
  6451.         if (!combatStandardAction("of_buff_def_9", self, target, params, "", ""))
  6452.         {
  6453.             return SCRIPT_OVERRIDE;
  6454.         }
  6455.        
  6456.         float baseCooldownTime = getBaseCooldownTime("of_buff_def_9");
  6457.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  6458.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  6459.        
  6460.         if (baseCooldownTime < 0)
  6461.         {
  6462.             baseCooldownTime = 0.0f;
  6463.         }
  6464.        
  6465.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  6466.         doInspiredAction(self);
  6467.        
  6468.         return SCRIPT_CONTINUE;
  6469.     }
  6470.    
  6471.    
  6472.     public int of_focus_fire_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6473.     {
  6474.         if (!buff.canApplyBuff(self, "of_focus_fire_1"))
  6475.         {
  6476.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  6477.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  6478.             return SCRIPT_OVERRIDE;
  6479.         }
  6480.        
  6481.         if (!combatStandardAction("of_focus_fire_1", self, target, params, "", ""))
  6482.         {
  6483.             return SCRIPT_OVERRIDE;
  6484.         }
  6485.        
  6486.         float baseCooldownTime = getBaseCooldownTime("of_focus_fire_1");
  6487.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  6488.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  6489.        
  6490.         if (baseCooldownTime < 0)
  6491.         {
  6492.             baseCooldownTime = 0.0f;
  6493.         }
  6494.        
  6495.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  6496.        
  6497.         return SCRIPT_CONTINUE;
  6498.     }
  6499.    
  6500.    
  6501.     public int of_focus_fire_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6502.     {
  6503.         if (!buff.canApplyBuff(self, "of_focus_fire_2"))
  6504.         {
  6505.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  6506.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  6507.             return SCRIPT_OVERRIDE;
  6508.         }
  6509.        
  6510.         if (!combatStandardAction("of_focus_fire_2", self, target, params, "", ""))
  6511.         {
  6512.             return SCRIPT_OVERRIDE;
  6513.         }
  6514.        
  6515.         float baseCooldownTime = getBaseCooldownTime("of_focus_fire_2");
  6516.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  6517.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  6518.        
  6519.         if (baseCooldownTime < 0)
  6520.         {
  6521.             baseCooldownTime = 0.0f;
  6522.         }
  6523.        
  6524.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  6525.        
  6526.         return SCRIPT_CONTINUE;
  6527.     }
  6528.    
  6529.    
  6530.     public int of_focus_fire_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6531.     {
  6532.         if (!buff.canApplyBuff(self, "of_focus_fire_3"))
  6533.         {
  6534.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  6535.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  6536.             return SCRIPT_OVERRIDE;
  6537.         }
  6538.        
  6539.         if (!combatStandardAction("of_focus_fire_3", self, target, params, "", ""))
  6540.         {
  6541.             return SCRIPT_OVERRIDE;
  6542.         }
  6543.        
  6544.         float baseCooldownTime = getBaseCooldownTime("of_focus_fire_3");
  6545.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  6546.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  6547.        
  6548.         if (baseCooldownTime < 0)
  6549.         {
  6550.             baseCooldownTime = 0.0f;
  6551.         }
  6552.        
  6553.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  6554.        
  6555.         return SCRIPT_CONTINUE;
  6556.     }
  6557.    
  6558.    
  6559.     public int of_focus_fire_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6560.     {
  6561.         if (!buff.canApplyBuff(self, "of_focus_fire_4"))
  6562.         {
  6563.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  6564.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  6565.             return SCRIPT_OVERRIDE;
  6566.         }
  6567.        
  6568.         if (!combatStandardAction("of_focus_fire_4", self, target, params, "", ""))
  6569.         {
  6570.             return SCRIPT_OVERRIDE;
  6571.         }
  6572.        
  6573.         float baseCooldownTime = getBaseCooldownTime("of_focus_fire_4");
  6574.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  6575.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  6576.        
  6577.         if (baseCooldownTime < 0)
  6578.         {
  6579.             baseCooldownTime = 0.0f;
  6580.         }
  6581.        
  6582.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  6583.        
  6584.         return SCRIPT_CONTINUE;
  6585.     }
  6586.    
  6587.    
  6588.     public int of_focus_fire_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6589.     {
  6590.         if (!buff.canApplyBuff(self, "of_focus_fire_5"))
  6591.         {
  6592.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  6593.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  6594.             return SCRIPT_OVERRIDE;
  6595.         }
  6596.        
  6597.         if (!combatStandardAction("of_focus_fire_5", self, target, params, "", ""))
  6598.         {
  6599.             return SCRIPT_OVERRIDE;
  6600.         }
  6601.        
  6602.         float baseCooldownTime = getBaseCooldownTime("of_focus_fire_5");
  6603.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  6604.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  6605.        
  6606.         if (baseCooldownTime < 0)
  6607.         {
  6608.             baseCooldownTime = 0.0f;
  6609.         }
  6610.        
  6611.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  6612.        
  6613.         return SCRIPT_CONTINUE;
  6614.     }
  6615.    
  6616.    
  6617.     public int of_focus_fire_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6618.     {
  6619.         if (!buff.canApplyBuff(self, "of_focus_fire_6"))
  6620.         {
  6621.             sendSystemMessage(self, new string_id("spam", "buff_wont_stack") );
  6622.             sendCombatSpamMessage(self, new string_id("spam", "buff_wont_stack"), COMBAT_RESULT_GENERIC);
  6623.             return SCRIPT_OVERRIDE;
  6624.         }
  6625.        
  6626.         if (!combatStandardAction("of_focus_fire_6", self, target, params, "", ""))
  6627.         {
  6628.             return SCRIPT_OVERRIDE;
  6629.         }
  6630.        
  6631.         float baseCooldownTime = getBaseCooldownTime("of_focus_fire_6");
  6632.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  6633.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  6634.        
  6635.         if (baseCooldownTime < 0)
  6636.         {
  6637.             baseCooldownTime = 0.0f;
  6638.         }
  6639.        
  6640.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  6641.         doInspiredAction(self);
  6642.        
  6643.         return SCRIPT_CONTINUE;
  6644.     }
  6645.    
  6646.    
  6647.     public int of_inspiration_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6648.     {
  6649.         if (!combatStandardAction("of_inspiration_1", self, target, params, "", ""))
  6650.         {
  6651.             return SCRIPT_OVERRIDE;
  6652.         }
  6653.        
  6654.         float baseCooldownTime = getBaseCooldownTime("of_inspiration_1");
  6655.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  6656.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  6657.        
  6658.         if (baseCooldownTime < 0)
  6659.         {
  6660.             baseCooldownTime = 0.0f;
  6661.         }
  6662.        
  6663.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  6664.        
  6665.         return SCRIPT_CONTINUE;
  6666.     }
  6667.    
  6668.    
  6669.     public int of_inspiration_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6670.     {
  6671.         if (!combatStandardAction("of_inspiration_2", self, target, params, "", ""))
  6672.         {
  6673.             return SCRIPT_OVERRIDE;
  6674.         }
  6675.        
  6676.         float baseCooldownTime = getBaseCooldownTime("of_inspiration_2");
  6677.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  6678.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  6679.        
  6680.         if (baseCooldownTime < 0)
  6681.         {
  6682.             baseCooldownTime = 0.0f;
  6683.         }
  6684.        
  6685.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  6686.        
  6687.         return SCRIPT_CONTINUE;
  6688.     }
  6689.    
  6690.    
  6691.     public int of_inspiration_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6692.     {
  6693.         if (!combatStandardAction("of_inspiration_3", self, target, params, "", ""))
  6694.         {
  6695.             return SCRIPT_OVERRIDE;
  6696.         }
  6697.        
  6698.         float baseCooldownTime = getBaseCooldownTime("of_inspiration_3");
  6699.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  6700.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  6701.        
  6702.         if (baseCooldownTime < 0)
  6703.         {
  6704.             baseCooldownTime = 0.0f;
  6705.         }
  6706.        
  6707.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  6708.        
  6709.         return SCRIPT_CONTINUE;
  6710.     }
  6711.    
  6712.    
  6713.     public int of_inspiration_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6714.     {
  6715.         if (!combatStandardAction("of_inspiration_4", self, target, params, "", ""))
  6716.         {
  6717.             return SCRIPT_OVERRIDE;
  6718.         }
  6719.        
  6720.         float baseCooldownTime = getBaseCooldownTime("of_inspiration_4");
  6721.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  6722.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  6723.        
  6724.         if (baseCooldownTime < 0)
  6725.         {
  6726.             baseCooldownTime = 0.0f;
  6727.         }
  6728.        
  6729.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  6730.        
  6731.         return SCRIPT_CONTINUE;
  6732.     }
  6733.    
  6734.    
  6735.     public int of_inspiration_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6736.     {
  6737.         if (!combatStandardAction("of_inspiration_5", self, target, params, "", ""))
  6738.         {
  6739.             return SCRIPT_OVERRIDE;
  6740.         }
  6741.        
  6742.         float baseCooldownTime = getBaseCooldownTime("of_inspiration_5");
  6743.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  6744.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  6745.        
  6746.         if (baseCooldownTime < 0)
  6747.         {
  6748.             baseCooldownTime = 0.0f;
  6749.         }
  6750.        
  6751.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  6752.        
  6753.         return SCRIPT_CONTINUE;
  6754.     }
  6755.    
  6756.    
  6757.     public int of_inspiration_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6758.     {
  6759.         if (!combatStandardAction("of_inspiration_6", self, target, params, "", ""))
  6760.         {
  6761.             return SCRIPT_OVERRIDE;
  6762.         }
  6763.        
  6764.         float baseCooldownTime = getBaseCooldownTime("of_inspiration_6");
  6765.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  6766.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  6767.        
  6768.         if (baseCooldownTime < 0)
  6769.         {
  6770.             baseCooldownTime = 0.0f;
  6771.         }
  6772.        
  6773.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  6774.        
  6775.         return SCRIPT_CONTINUE;
  6776.     }
  6777.    
  6778.    
  6779.     public int of_scatter_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6780.     {
  6781.         if (!combatStandardAction("of_scatter_1", self, target, params, "", ""))
  6782.         {
  6783.             return SCRIPT_OVERRIDE;
  6784.         }
  6785.        
  6786.         float baseCooldownTime = getBaseCooldownTime("of_scatter_1");
  6787.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  6788.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  6789.        
  6790.         if (baseCooldownTime < 0)
  6791.         {
  6792.             baseCooldownTime = 0.0f;
  6793.         }
  6794.        
  6795.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  6796.         doInspiredAction(self);
  6797.        
  6798.         return SCRIPT_CONTINUE;
  6799.     }
  6800.    
  6801.    
  6802.     public int of_charge_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6803.     {
  6804.         if (!combatStandardAction("of_charge_1", self, target, params, "", ""))
  6805.         {
  6806.             return SCRIPT_OVERRIDE;
  6807.         }
  6808.        
  6809.         float baseCooldownTime = getBaseCooldownTime("of_charge_1");
  6810.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  6811.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  6812.        
  6813.         if (baseCooldownTime < 0)
  6814.         {
  6815.             baseCooldownTime = 0.0f;
  6816.         }
  6817.        
  6818.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  6819.         doInspiredAction(self);
  6820.        
  6821.         return SCRIPT_CONTINUE;
  6822.     }
  6823.    
  6824.    
  6825.     public int of_medical_sup_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6826.     {
  6827.         if (!canCallSupplyDrop(self))
  6828.         {
  6829.             return SCRIPT_OVERRIDE;
  6830.         }
  6831.        
  6832.         if (!combatStandardAction("of_medical_sup_1", self, target, params, "", ""))
  6833.         {
  6834.             return SCRIPT_OVERRIDE;
  6835.         }
  6836.         else
  6837.         {
  6838.             if (!callSupplyDrop(self, 1))
  6839.             {
  6840.                 return SCRIPT_OVERRIDE;
  6841.             }
  6842.         }
  6843.        
  6844.         float baseCooldownTime = getBaseCooldownTime("of_medical_sup_1");
  6845.         if (baseCooldownTime < 0)
  6846.         {
  6847.             return SCRIPT_OVERRIDE;
  6848.         }
  6849.        
  6850.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60;
  6851.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  6852.        
  6853.         return SCRIPT_CONTINUE;
  6854.     }
  6855.    
  6856.    
  6857.     public int of_medical_sup_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6858.     {
  6859.         if (!canCallSupplyDrop(self))
  6860.         {
  6861.             return SCRIPT_OVERRIDE;
  6862.         }
  6863.        
  6864.         if (!combatStandardAction("of_medical_sup_2", self, target, params, "", ""))
  6865.         {
  6866.             return SCRIPT_OVERRIDE;
  6867.         }
  6868.         else
  6869.         {
  6870.             if (!callSupplyDrop(self, 2))
  6871.             {
  6872.                 return SCRIPT_OVERRIDE;
  6873.             }
  6874.         }
  6875.        
  6876.         float baseCooldownTime = getBaseCooldownTime("of_medical_sup_2");
  6877.         if (baseCooldownTime < 0)
  6878.         {
  6879.             return SCRIPT_OVERRIDE;
  6880.         }
  6881.        
  6882.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60;
  6883.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  6884.        
  6885.         return SCRIPT_CONTINUE;
  6886.     }
  6887.    
  6888.    
  6889.     public int of_medical_sup_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6890.     {
  6891.         if (!canCallSupplyDrop(self))
  6892.         {
  6893.             return SCRIPT_OVERRIDE;
  6894.         }
  6895.        
  6896.         if (!combatStandardAction("of_medical_sup_3", self, target, params, "", ""))
  6897.         {
  6898.             return SCRIPT_OVERRIDE;
  6899.         }
  6900.         else
  6901.         {
  6902.             if (!callSupplyDrop(self, 3))
  6903.             {
  6904.                 return SCRIPT_OVERRIDE;
  6905.             }
  6906.         }
  6907.        
  6908.         float baseCooldownTime = getBaseCooldownTime("of_medical_sup_3");
  6909.         if (baseCooldownTime < 0)
  6910.         {
  6911.             return SCRIPT_OVERRIDE;
  6912.         }
  6913.        
  6914.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60;
  6915.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  6916.        
  6917.         return SCRIPT_CONTINUE;
  6918.     }
  6919.    
  6920.    
  6921.     public int of_medical_sup_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6922.     {
  6923.         if (!canCallSupplyDrop(self))
  6924.         {
  6925.             return SCRIPT_OVERRIDE;
  6926.         }
  6927.        
  6928.         if (!combatStandardAction("of_medical_sup_1", self, target, params, "", ""))
  6929.         {
  6930.             return SCRIPT_OVERRIDE;
  6931.         }
  6932.         else
  6933.         {
  6934.             if (!callSupplyDrop(self, 4))
  6935.             {
  6936.                 return SCRIPT_OVERRIDE;
  6937.             }
  6938.         }
  6939.        
  6940.         float baseCooldownTime = getBaseCooldownTime("of_medical_sup_4");
  6941.         if (baseCooldownTime < 0)
  6942.         {
  6943.             return SCRIPT_OVERRIDE;
  6944.         }
  6945.        
  6946.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60;
  6947.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  6948.        
  6949.         return SCRIPT_CONTINUE;
  6950.     }
  6951.    
  6952.    
  6953.     public int of_medical_sup_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6954.     {
  6955.         if (!canCallSupplyDrop(self))
  6956.         {
  6957.             return SCRIPT_OVERRIDE;
  6958.         }
  6959.        
  6960.         if (!combatStandardAction("of_medical_sup_5", self, target, params, "", ""))
  6961.         {
  6962.             return SCRIPT_OVERRIDE;
  6963.         }
  6964.         else
  6965.         {
  6966.             if (!callSupplyDrop(self, 5))
  6967.             {
  6968.                 return SCRIPT_OVERRIDE;
  6969.             }
  6970.         }
  6971.        
  6972.         float baseCooldownTime = getBaseCooldownTime("of_medical_sup_5");
  6973.         if (baseCooldownTime < 0)
  6974.         {
  6975.             return SCRIPT_OVERRIDE;
  6976.         }
  6977.        
  6978.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60;
  6979.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  6980.        
  6981.         return SCRIPT_CONTINUE;
  6982.     }
  6983.    
  6984.    
  6985.     public int of_medical_sup_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  6986.     {
  6987.         if (!canCallSupplyDrop(self))
  6988.         {
  6989.             return SCRIPT_OVERRIDE;
  6990.         }
  6991.        
  6992.         if (!combatStandardAction("of_medical_sup_1", self, target, params, "", ""))
  6993.         {
  6994.             return SCRIPT_OVERRIDE;
  6995.         }
  6996.         else
  6997.         {
  6998.             if (!callSupplyDrop(self, 6))
  6999.             {
  7000.                 return SCRIPT_OVERRIDE;
  7001.             }
  7002.         }
  7003.        
  7004.         float baseCooldownTime = getBaseCooldownTime("of_medical_sup_6");
  7005.         if (baseCooldownTime < 0)
  7006.         {
  7007.             return SCRIPT_OVERRIDE;
  7008.         }
  7009.        
  7010.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60;
  7011.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  7012.        
  7013.         return SCRIPT_CONTINUE;
  7014.     }
  7015.    
  7016.    
  7017.     public int of_tactical_sup_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7018.     {
  7019.         if (!canCallSupplyDrop(self))
  7020.         {
  7021.             return SCRIPT_OVERRIDE;
  7022.         }
  7023.        
  7024.         if (!combatStandardAction("of_tactical_sup_1", self, target, params, "", ""))
  7025.         {
  7026.             return SCRIPT_OVERRIDE;
  7027.         }
  7028.         else
  7029.         {
  7030.             if (!callSupplyDrop(self, 7))
  7031.             {
  7032.                 return SCRIPT_OVERRIDE;
  7033.             }
  7034.         }
  7035.        
  7036.         float baseCooldownTime = getBaseCooldownTime("of_tactical_sup_1");
  7037.         if (baseCooldownTime < 0)
  7038.         {
  7039.             return SCRIPT_OVERRIDE;
  7040.         }
  7041.        
  7042.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60;
  7043.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  7044.        
  7045.         return SCRIPT_CONTINUE;
  7046.     }
  7047.    
  7048.    
  7049.     public int of_tactical_sup_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7050.     {
  7051.         if (!canCallSupplyDrop(self))
  7052.         {
  7053.             return SCRIPT_OVERRIDE;
  7054.         }
  7055.        
  7056.         if (!combatStandardAction("of_tactical_sup_2", self, target, params, "", ""))
  7057.         {
  7058.             return SCRIPT_OVERRIDE;
  7059.         }
  7060.         else
  7061.         {
  7062.             if (!callSupplyDrop(self, 8))
  7063.             {
  7064.                 return SCRIPT_OVERRIDE;
  7065.             }
  7066.         }
  7067.        
  7068.         float baseCooldownTime = getBaseCooldownTime("of_tactical_sup_2");
  7069.         if (baseCooldownTime < 0)
  7070.         {
  7071.             return SCRIPT_OVERRIDE;
  7072.         }
  7073.        
  7074.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60;
  7075.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  7076.        
  7077.         return SCRIPT_CONTINUE;
  7078.     }
  7079.    
  7080.    
  7081.     public int of_tactical_sup_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7082.     {
  7083.         if (!canCallSupplyDrop(self))
  7084.         {
  7085.             return SCRIPT_OVERRIDE;
  7086.         }
  7087.        
  7088.         if (!combatStandardAction("of_tactical_sup_3", self, target, params, "", ""))
  7089.         {
  7090.             return SCRIPT_OVERRIDE;
  7091.         }
  7092.         else
  7093.         {
  7094.             if (!callSupplyDrop(self, 9))
  7095.             {
  7096.                 return SCRIPT_OVERRIDE;
  7097.             }
  7098.         }
  7099.        
  7100.         float baseCooldownTime = getBaseCooldownTime("of_tactical_sup_3");
  7101.         if (baseCooldownTime < 0)
  7102.         {
  7103.             return SCRIPT_OVERRIDE;
  7104.         }
  7105.        
  7106.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60;
  7107.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  7108.        
  7109.         return SCRIPT_CONTINUE;
  7110.     }
  7111.    
  7112.    
  7113.     public int of_tactical_sup_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7114.     {
  7115.         if (!canCallSupplyDrop(self))
  7116.         {
  7117.             return SCRIPT_OVERRIDE;
  7118.         }
  7119.        
  7120.         if (!combatStandardAction("of_tactical_sup_4", self, target, params, "", ""))
  7121.         {
  7122.             return SCRIPT_OVERRIDE;
  7123.         }
  7124.         else
  7125.         {
  7126.             if (!callSupplyDrop(self, 10))
  7127.             {
  7128.                 return SCRIPT_OVERRIDE;
  7129.             }
  7130.         }
  7131.        
  7132.         float baseCooldownTime = getBaseCooldownTime("of_tactical_sup_4");
  7133.         if (baseCooldownTime < 0)
  7134.         {
  7135.             return SCRIPT_OVERRIDE;
  7136.         }
  7137.        
  7138.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60;
  7139.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  7140.        
  7141.         return SCRIPT_CONTINUE;
  7142.     }
  7143.    
  7144.    
  7145.     public int of_tactical_sup_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7146.     {
  7147.         if (!canCallSupplyDrop(self))
  7148.         {
  7149.             return SCRIPT_OVERRIDE;
  7150.         }
  7151.        
  7152.         if (!combatStandardAction("of_tactical_sup_5", self, target, params, "", ""))
  7153.         {
  7154.             return SCRIPT_OVERRIDE;
  7155.         }
  7156.         else
  7157.         {
  7158.             if (!callSupplyDrop(self, 11))
  7159.             {
  7160.                 return SCRIPT_OVERRIDE;
  7161.             }
  7162.         }
  7163.        
  7164.         float baseCooldownTime = getBaseCooldownTime("of_tactical_sup_5");
  7165.         if (baseCooldownTime < 0)
  7166.         {
  7167.             return SCRIPT_OVERRIDE;
  7168.         }
  7169.        
  7170.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60;
  7171.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  7172.        
  7173.         return SCRIPT_CONTINUE;
  7174.     }
  7175.    
  7176.    
  7177.     public int of_tactical_sup_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7178.     {
  7179.         if (!canCallSupplyDrop(self))
  7180.         {
  7181.             return SCRIPT_OVERRIDE;
  7182.         }
  7183.        
  7184.         if (!combatStandardAction("of_tactical_sup_6", self, target, params, "", ""))
  7185.         {
  7186.             return SCRIPT_OVERRIDE;
  7187.         }
  7188.         else
  7189.         {
  7190.             if (!callSupplyDrop(self, 12))
  7191.             {
  7192.                 return SCRIPT_OVERRIDE;
  7193.             }
  7194.         }
  7195.        
  7196.         float baseCooldownTime = getBaseCooldownTime("of_tactical_sup_6");
  7197.         if (baseCooldownTime < 0)
  7198.         {
  7199.             return SCRIPT_OVERRIDE;
  7200.         }
  7201.        
  7202.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60;
  7203.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  7204.        
  7205.         return SCRIPT_CONTINUE;
  7206.     }
  7207.    
  7208.    
  7209.     public int of_reinforcements_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7210.     {
  7211.         if (pet_lib.hasMaxStoredPetsOfType (self, pet_lib.PET_TYPE_NPC))
  7212.         {
  7213.             sendSystemMessage (self, pet_lib.SID_SYS_CALL_MAX_DATAPAD);
  7214.             return SCRIPT_OVERRIDE;
  7215.         }
  7216.        
  7217.         if (!canCallSupplyDrop(self) || pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_NPC))
  7218.         {
  7219.             return SCRIPT_OVERRIDE;
  7220.         }
  7221.        
  7222.         boolean droidPets = pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_DROID);
  7223.         boolean npcPets = pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_NPC);
  7224.         if (droidPets || npcPets)
  7225.         {
  7226.             return SCRIPT_OVERRIDE;
  7227.         }
  7228.        
  7229.         if (!combatStandardAction("of_reinforcements_1", self, target, params, "", ""))
  7230.         {
  7231.             return SCRIPT_OVERRIDE;
  7232.         }
  7233.         else if (!callSupplyDrop(self, 13))
  7234.         {
  7235.             return SCRIPT_OVERRIDE;
  7236.         }
  7237.        
  7238.         float baseCooldownTime = getBaseCooldownTime("of_reinforcements_1");
  7239.         if (baseCooldownTime < 0)
  7240.         {
  7241.             return SCRIPT_OVERRIDE;
  7242.         }
  7243.        
  7244.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60;
  7245.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  7246.        
  7247.         return SCRIPT_CONTINUE;
  7248.     }
  7249.    
  7250.    
  7251.     public int of_reinforcements_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7252.     {
  7253.         if (pet_lib.hasMaxStoredPetsOfType (self, pet_lib.PET_TYPE_NPC))
  7254.         {
  7255.             sendSystemMessage (self, pet_lib.SID_SYS_CALL_MAX_DATAPAD);
  7256.             return SCRIPT_OVERRIDE;
  7257.         }
  7258.        
  7259.         if (!canCallSupplyDrop(self) || pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_NPC))
  7260.         {
  7261.             return SCRIPT_OVERRIDE;
  7262.         }
  7263.        
  7264.         boolean droidPets = pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_DROID);
  7265.         boolean npcPets = pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_NPC);
  7266.         if (droidPets || npcPets)
  7267.         {
  7268.             return SCRIPT_OVERRIDE;
  7269.         }
  7270.        
  7271.         if (!combatStandardAction("of_reinforcements_2", self, target, params, "", ""))
  7272.         {
  7273.             return SCRIPT_OVERRIDE;
  7274.         }
  7275.         else if (!callSupplyDrop(self, 14))
  7276.         {
  7277.             return SCRIPT_OVERRIDE;
  7278.         }
  7279.        
  7280.         float baseCooldownTime = getBaseCooldownTime("of_reinforcements_2");
  7281.         if (baseCooldownTime < 0)
  7282.         {
  7283.             return SCRIPT_OVERRIDE;
  7284.         }
  7285.        
  7286.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60;
  7287.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  7288.        
  7289.         return SCRIPT_CONTINUE;
  7290.     }
  7291.    
  7292.    
  7293.     public int of_reinforcements_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7294.     {
  7295.         if (pet_lib.hasMaxStoredPetsOfType (self, pet_lib.PET_TYPE_NPC))
  7296.         {
  7297.             sendSystemMessage (self, pet_lib.SID_SYS_CALL_MAX_DATAPAD);
  7298.             return SCRIPT_OVERRIDE;
  7299.         }
  7300.        
  7301.         if (!canCallSupplyDrop(self) || pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_NPC))
  7302.         {
  7303.             return SCRIPT_OVERRIDE;
  7304.         }
  7305.        
  7306.         boolean droidPets = pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_DROID);
  7307.         boolean npcPets = pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_NPC);
  7308.         if (droidPets || npcPets)
  7309.         {
  7310.             return SCRIPT_OVERRIDE;
  7311.         }
  7312.        
  7313.         if (!combatStandardAction("of_reinforcements_3", self, target, params, "", ""))
  7314.         {
  7315.             return SCRIPT_OVERRIDE;
  7316.         }
  7317.         else if (!callSupplyDrop(self, 15))
  7318.         {
  7319.             return SCRIPT_OVERRIDE;
  7320.         }
  7321.        
  7322.         float baseCooldownTime = getBaseCooldownTime("of_reinforcements_3");
  7323.         if (baseCooldownTime < 0)
  7324.         {
  7325.             return SCRIPT_OVERRIDE;
  7326.         }
  7327.        
  7328.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60;
  7329.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  7330.        
  7331.         return SCRIPT_CONTINUE;
  7332.     }
  7333.    
  7334.    
  7335.     public int of_reinforcements_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7336.     {
  7337.         if (pet_lib.hasMaxStoredPetsOfType (self, pet_lib.PET_TYPE_NPC))
  7338.         {
  7339.             sendSystemMessage (self, pet_lib.SID_SYS_CALL_MAX_DATAPAD);
  7340.             return SCRIPT_OVERRIDE;
  7341.         }
  7342.        
  7343.         if (!canCallSupplyDrop(self) || pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_NPC))
  7344.         {
  7345.             return SCRIPT_OVERRIDE;
  7346.         }
  7347.        
  7348.         boolean droidPets = pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_DROID);
  7349.         boolean npcPets = pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_NPC);
  7350.         if (droidPets || npcPets)
  7351.         {
  7352.             return SCRIPT_OVERRIDE;
  7353.         }
  7354.        
  7355.         if (!combatStandardAction("of_reinforcements_4", self, target, params, "", ""))
  7356.         {
  7357.             return SCRIPT_OVERRIDE;
  7358.         }
  7359.         else if (!callSupplyDrop(self, 16))
  7360.         {
  7361.             return SCRIPT_OVERRIDE;
  7362.         }
  7363.        
  7364.         float baseCooldownTime = getBaseCooldownTime("of_reinforcements_4");
  7365.         if (baseCooldownTime < 0)
  7366.         {
  7367.             return SCRIPT_OVERRIDE;
  7368.         }
  7369.        
  7370.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60;
  7371.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  7372.        
  7373.         return SCRIPT_CONTINUE;
  7374.     }
  7375.    
  7376.    
  7377.     public int of_reinforcements_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7378.     {
  7379.         if (pet_lib.hasMaxStoredPetsOfType (self, pet_lib.PET_TYPE_NPC))
  7380.         {
  7381.             sendSystemMessage (self, pet_lib.SID_SYS_CALL_MAX_DATAPAD);
  7382.             return SCRIPT_OVERRIDE;
  7383.         }
  7384.        
  7385.         if (!canCallSupplyDrop(self) || pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_NPC))
  7386.         {
  7387.             return SCRIPT_OVERRIDE;
  7388.         }
  7389.        
  7390.         boolean droidPets = pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_DROID);
  7391.         boolean npcPets = pet_lib.hasMaxPets(self, pet_lib.PET_TYPE_NPC);
  7392.         if (droidPets || npcPets)
  7393.         {
  7394.             return SCRIPT_OVERRIDE;
  7395.         }
  7396.        
  7397.         if (!combatStandardAction("of_reinforcements_5", self, target, params, "", ""))
  7398.         {
  7399.             return SCRIPT_OVERRIDE;
  7400.         }
  7401.         else if (!callSupplyDrop(self, 17))
  7402.         {
  7403.             return SCRIPT_OVERRIDE;
  7404.         }
  7405.        
  7406.         float baseCooldownTime = getBaseCooldownTime("of_reinforcements_5");
  7407.         if (baseCooldownTime < 0)
  7408.         {
  7409.             return SCRIPT_OVERRIDE;
  7410.         }
  7411.        
  7412.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_sup") * 60;
  7413.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  7414.        
  7415.         return SCRIPT_CONTINUE;
  7416.     }
  7417.    
  7418.    
  7419.     public int of_firepower_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7420.     {
  7421.         if (!combatStandardAction("of_firepower_1", self, target, params, "", ""))
  7422.         {
  7423.             return SCRIPT_OVERRIDE;
  7424.         }
  7425.        
  7426.         float baseCooldownTime = getBaseCooldownTime("of_firepower_1");
  7427.         if (baseCooldownTime < 0)
  7428.         {
  7429.             return SCRIPT_OVERRIDE;
  7430.         }
  7431.        
  7432.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_firepower") * 60;
  7433.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  7434.         doInspiredAction(self);
  7435.        
  7436.         return SCRIPT_CONTINUE;
  7437.     }
  7438.    
  7439.    
  7440.     public int of_deb_def_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7441.     {
  7442.         if (!combatStandardAction("of_deb_def_4", self, target, params, "", ""))
  7443.         {
  7444.             return SCRIPT_OVERRIDE;
  7445.         }
  7446.        
  7447.         float baseCooldownTime = getBaseCooldownTime("of_deb_def_4");
  7448.         if (baseCooldownTime < 0)
  7449.         {
  7450.             return SCRIPT_OVERRIDE;
  7451.         }
  7452.        
  7453.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_paint");
  7454.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10));
  7455.        
  7456.         return SCRIPT_CONTINUE;
  7457.     }
  7458.    
  7459.    
  7460.     public int of_deb_def_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7461.     {
  7462.         if (!combatStandardAction("of_deb_def_5", self, target, params, "", ""))
  7463.         {
  7464.             return SCRIPT_OVERRIDE;
  7465.         }
  7466.        
  7467.         float baseCooldownTime = getBaseCooldownTime("of_deb_def_5");
  7468.         if (baseCooldownTime < 0)
  7469.         {
  7470.             return SCRIPT_OVERRIDE;
  7471.         }
  7472.        
  7473.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_paint");
  7474.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10));
  7475.        
  7476.         return SCRIPT_CONTINUE;
  7477.     }
  7478.    
  7479.    
  7480.     public int of_deb_def_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7481.     {
  7482.         if (!combatStandardAction("of_deb_def_6", self, target, params, "", ""))
  7483.         {
  7484.             return SCRIPT_OVERRIDE;
  7485.         }
  7486.        
  7487.         float baseCooldownTime = getBaseCooldownTime("of_deb_def_6");
  7488.         if (baseCooldownTime < 0)
  7489.         {
  7490.             return SCRIPT_OVERRIDE;
  7491.         }
  7492.        
  7493.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_paint");
  7494.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10));
  7495.        
  7496.         return SCRIPT_CONTINUE;
  7497.     }
  7498.    
  7499.    
  7500.     public int of_deb_def_7(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7501.     {
  7502.         if (!combatStandardAction("of_deb_def_7", self, target, params, "", ""))
  7503.         {
  7504.             return SCRIPT_OVERRIDE;
  7505.         }
  7506.        
  7507.         float baseCooldownTime = getBaseCooldownTime("of_deb_def_7");
  7508.         if (baseCooldownTime < 0)
  7509.         {
  7510.             return SCRIPT_OVERRIDE;
  7511.         }
  7512.        
  7513.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_paint");
  7514.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10));
  7515.        
  7516.         return SCRIPT_CONTINUE;
  7517.     }
  7518.    
  7519.    
  7520.     public int of_deb_def_8(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7521.     {
  7522.         if (!combatStandardAction("of_deb_def_8", self, target, params, "", ""))
  7523.         {
  7524.             return SCRIPT_OVERRIDE;
  7525.         }
  7526.        
  7527.         float baseCooldownTime = getBaseCooldownTime("of_deb_def_8");
  7528.         if (baseCooldownTime < 0)
  7529.         {
  7530.             return SCRIPT_OVERRIDE;
  7531.         }
  7532.        
  7533.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_paint");
  7534.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - (cooldownTimeMod/10));
  7535.         doInspiredAction(self);
  7536.        
  7537.         return SCRIPT_CONTINUE;
  7538.     }
  7539.    
  7540.    
  7541.     public int of_decapitate_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7542.     {
  7543.         if (!combatStandardAction("of_decapitate_1", self, target, params, "", ""))
  7544.         {
  7545.             return SCRIPT_OVERRIDE;
  7546.         }
  7547.        
  7548.         return SCRIPT_CONTINUE;
  7549.     }
  7550.    
  7551.    
  7552.     public int of_decapitate_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7553.     {
  7554.         if (!combatStandardAction("of_decapitate_2", self, target, params, "", ""))
  7555.         {
  7556.             return SCRIPT_OVERRIDE;
  7557.         }
  7558.        
  7559.         return SCRIPT_CONTINUE;
  7560.     }
  7561.    
  7562.    
  7563.     public int of_decapitate_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7564.     {
  7565.         if (!combatStandardAction("of_decapitate_3", self, target, params, "", ""))
  7566.         {
  7567.             return SCRIPT_OVERRIDE;
  7568.         }
  7569.        
  7570.         return SCRIPT_CONTINUE;
  7571.     }
  7572.    
  7573.    
  7574.     public int of_decapitate_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7575.     {
  7576.         if (!combatStandardAction("of_decapitate_4", self, target, params, "", ""))
  7577.         {
  7578.             return SCRIPT_OVERRIDE;
  7579.         }
  7580.        
  7581.         return SCRIPT_CONTINUE;
  7582.     }
  7583.    
  7584.    
  7585.     public int of_decapitate_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7586.     {
  7587.         if (!combatStandardAction("of_decapitate_5", self, target, params, "", ""))
  7588.         {
  7589.             return SCRIPT_OVERRIDE;
  7590.         }
  7591.        
  7592.         return SCRIPT_CONTINUE;
  7593.     }
  7594.    
  7595.    
  7596.     public int of_decapitate_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7597.     {
  7598.         if (!combatStandardAction("of_decapitate_6", self, target, params, "", ""))
  7599.         {
  7600.             return SCRIPT_OVERRIDE;
  7601.         }
  7602.         doInspiredAction(self);
  7603.        
  7604.         return SCRIPT_CONTINUE;
  7605.     }
  7606.    
  7607.    
  7608.     public int of_vortex_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7609.     {
  7610.         if (!combatStandardAction("of_vortex_1", self, target, params, "", ""))
  7611.         {
  7612.             return SCRIPT_OVERRIDE;
  7613.         }
  7614.        
  7615.         return SCRIPT_CONTINUE;
  7616.     }
  7617.    
  7618.    
  7619.     public int of_vortex_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7620.     {
  7621.         if (!combatStandardAction("of_vortex_2", self, target, params, "", ""))
  7622.         {
  7623.             return SCRIPT_OVERRIDE;
  7624.         }
  7625.        
  7626.         return SCRIPT_CONTINUE;
  7627.     }
  7628.    
  7629.    
  7630.     public int of_vortex_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7631.     {
  7632.         if (!combatStandardAction("of_vortex_3", self, target, params, "", ""))
  7633.         {
  7634.             return SCRIPT_OVERRIDE;
  7635.         }
  7636.        
  7637.         return SCRIPT_CONTINUE;
  7638.     }
  7639.    
  7640.    
  7641.     public int of_vortex_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7642.     {
  7643.         if (!combatStandardAction("of_vortex_4", self, target, params, "", ""))
  7644.         {
  7645.             return SCRIPT_OVERRIDE;
  7646.         }
  7647.        
  7648.         return SCRIPT_CONTINUE;
  7649.     }
  7650.    
  7651.    
  7652.     public int of_vortex_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7653.     {
  7654.         if (!combatStandardAction("of_vortex_5", self, target, params, "", ""))
  7655.         {
  7656.             return SCRIPT_OVERRIDE;
  7657.         }
  7658.        
  7659.         return SCRIPT_CONTINUE;
  7660.     }
  7661.    
  7662.    
  7663.     public int of_vortex_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7664.     {
  7665.         if (!combatStandardAction("of_vortex_6", self, target, params, "", ""))
  7666.         {
  7667.             return SCRIPT_OVERRIDE;
  7668.         }
  7669.         doInspiredAction(self);
  7670.        
  7671.         return SCRIPT_CONTINUE;
  7672.     }
  7673.    
  7674.    
  7675.     public int of_drillmaster_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7676.     {
  7677.         if (!combatStandardAction("of_drillmaster_1", self, target, params, "", ""))
  7678.         {
  7679.             return SCRIPT_OVERRIDE;
  7680.         }
  7681.        
  7682.         float baseCooldownTime = getBaseCooldownTime("of_drillmaster_1");
  7683.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "cooldown_percent_of_group_buff");
  7684.         baseCooldownTime = baseCooldownTime - (baseCooldownTime * (cooldownTimeMod/100) );
  7685.        
  7686.         if (baseCooldownTime < 0)
  7687.         {
  7688.             baseCooldownTime = 0.0f;
  7689.         }
  7690.        
  7691.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime);
  7692.         doInspiredAction(self);
  7693.        
  7694.         return SCRIPT_CONTINUE;
  7695.     }
  7696.    
  7697.    
  7698.     public int of_stimulator_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7699.     {
  7700.         if (!combatStandardAction("of_stimulator_1", self, target, params, "", ""))
  7701.         {
  7702.             return SCRIPT_OVERRIDE;
  7703.         }
  7704.        
  7705.         float baseCooldownTime = getBaseCooldownTime("of_stimulator_1");
  7706.         if (baseCooldownTime < 0)
  7707.         {
  7708.             return SCRIPT_OVERRIDE;
  7709.         }
  7710.        
  7711.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_purge");
  7712.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  7713.         doInspiredAction(self);
  7714.        
  7715.         return SCRIPT_CONTINUE;
  7716.     }
  7717.    
  7718.    
  7719.     public int of_purge_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7720.     {
  7721.         if (!combatStandardAction("of_purge_1", self, target, params, "", ""))
  7722.         {
  7723.             return SCRIPT_OVERRIDE;
  7724.         }
  7725.        
  7726.         float baseCooldownTime = getBaseCooldownTime("of_stimulator_1");
  7727.         if (baseCooldownTime < 0)
  7728.         {
  7729.             return SCRIPT_OVERRIDE;
  7730.         }
  7731.        
  7732.         float cooldownTimeMod = getEnhancedSkillStatisticModifierUncapped(self, "expertise_cooldown_line_of_purge");
  7733.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  7734.         doInspiredAction(self);
  7735.        
  7736.         return SCRIPT_CONTINUE;
  7737.     }
  7738.    
  7739.    
  7740.     public void doInspiredAction(obj_id officer) throws InterruptedException
  7741.     {
  7742.         int bonusChance = getEnhancedSkillStatisticModifierUncapped(officer, "of_inspired_action_chance");
  7743.        
  7744.         if (bonusChance > 0)
  7745.         {
  7746.             int roll = rand(1, 99);
  7747.             int total = roll+bonusChance;
  7748.            
  7749.             if (total > 99)
  7750.             {
  7751.                 buff.applyBuff(officer, officer, "of_inspiration_6");
  7752.                 showFlyText(officer, new string_id("set_bonus", "inspired_action_fly"), 2, colors.LEMONCHIFFON);
  7753.                
  7754.                 prose_package pp = new prose_package();
  7755.                 pp = prose.setStringId(pp, new string_id("set_bonus", "inspired_action_fly_cbspam"));
  7756.                 pp = prose.setTT(pp, officer);
  7757.                 sendCombatSpamMessageProse(officer, pp, COMBAT_RESULT_GENERIC);
  7758.             }
  7759.         }
  7760.        
  7761.         return;
  7762.        
  7763.     }
  7764.    
  7765.    
  7766.     public int of_last_words_recourse(obj_id self, dictionary params) throws InterruptedException
  7767.     {
  7768.         if (!buff.hasBuff(self, "of_last_words_recourse"))
  7769.         {
  7770.             buff.applyBuff(self, self, "of_last_words_recourse");
  7771.         }
  7772.        
  7773.         return SCRIPT_CONTINUE;
  7774.     }
  7775.    
  7776.    
  7777.     public int sm_disarm_trap_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7778.     {
  7779.         if (!stealth.canDisarmTrap(self, target))
  7780.         {
  7781.             return SCRIPT_OVERRIDE;
  7782.         }
  7783.        
  7784.         stealth.disarmTrap(self, target);
  7785.         return SCRIPT_CONTINUE;
  7786.     }
  7787.    
  7788.    
  7789.     public int sm_ae_dm_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7790.     {
  7791.         if (!combatStandardAction("sm_ae_dm_1", self, target, params, "", ""))
  7792.         {
  7793.             return SCRIPT_OVERRIDE;
  7794.         }
  7795.        
  7796.         return SCRIPT_CONTINUE;
  7797.     }
  7798.    
  7799.    
  7800.     public int sm_ae_dm_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7801.     {
  7802.         if (!combatStandardAction("sm_ae_dm_2", self, target, params, "", ""))
  7803.         {
  7804.             return SCRIPT_OVERRIDE;
  7805.         }
  7806.        
  7807.         return SCRIPT_CONTINUE;
  7808.     }
  7809.    
  7810.    
  7811.     public int sm_ae_dm_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7812.     {
  7813.         if (!combatStandardAction("sm_ae_dm_3", self, target, params, "", ""))
  7814.         {
  7815.             return SCRIPT_OVERRIDE;
  7816.         }
  7817.        
  7818.         return SCRIPT_CONTINUE;
  7819.     }
  7820.    
  7821.    
  7822.     public int sm_ae_dm_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7823.     {
  7824.         if (!combatStandardAction("sm_ae_dm_4", self, target, params, "", ""))
  7825.         {
  7826.             return SCRIPT_OVERRIDE;
  7827.         }
  7828.        
  7829.         return SCRIPT_CONTINUE;
  7830.     }
  7831.    
  7832.    
  7833.     public int sm_ae_dm_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7834.     {
  7835.         if (!combatStandardAction("sm_ae_dm_5", self, target, params, "", ""))
  7836.         {
  7837.             return SCRIPT_OVERRIDE;
  7838.         }
  7839.        
  7840.         return SCRIPT_CONTINUE;
  7841.     }
  7842.    
  7843.    
  7844.     public int sm_ae_dm_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7845.     {
  7846.         if (!combatStandardAction("sm_ae_dm_6", self, target, params, "", ""))
  7847.         {
  7848.             return SCRIPT_OVERRIDE;
  7849.         }
  7850.        
  7851.         return SCRIPT_CONTINUE;
  7852.     }
  7853.    
  7854.    
  7855.     public int sm_ae_dm_melee_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7856.     {
  7857.         if (!combatStandardAction("sm_ae_dm_melee_1", self, target, params, "", ""))
  7858.         {
  7859.             return SCRIPT_OVERRIDE;
  7860.         }
  7861.        
  7862.         return SCRIPT_CONTINUE;
  7863.     }
  7864.    
  7865.    
  7866.     public int sm_ae_dm_melee_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7867.     {
  7868.         if (!combatStandardAction("sm_ae_dm_melee_2", self, target, params, "", ""))
  7869.         {
  7870.             return SCRIPT_OVERRIDE;
  7871.         }
  7872.        
  7873.         return SCRIPT_CONTINUE;
  7874.     }
  7875.    
  7876.    
  7877.     public int sm_ae_dm_melee_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7878.     {
  7879.         if (!combatStandardAction("sm_ae_dm_melee_3", self, target, params, "", ""))
  7880.         {
  7881.             return SCRIPT_OVERRIDE;
  7882.         }
  7883.        
  7884.         return SCRIPT_CONTINUE;
  7885.     }
  7886.    
  7887.    
  7888.     public int sm_ae_dm_melee_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7889.     {
  7890.         if (!combatStandardAction("sm_ae_dm_melee_4", self, target, params, "", ""))
  7891.         {
  7892.             return SCRIPT_OVERRIDE;
  7893.         }
  7894.        
  7895.         return SCRIPT_CONTINUE;
  7896.     }
  7897.    
  7898.    
  7899.     public int sm_ae_dm_melee_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7900.     {
  7901.         if (!combatStandardAction("sm_ae_dm_melee_5", self, target, params, "", ""))
  7902.         {
  7903.             return SCRIPT_OVERRIDE;
  7904.         }
  7905.        
  7906.         return SCRIPT_CONTINUE;
  7907.     }
  7908.    
  7909.    
  7910.     public int sm_ae_dm_melee_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7911.     {
  7912.         if (!combatStandardAction("sm_ae_dm_melee_6", self, target, params, "", ""))
  7913.         {
  7914.             return SCRIPT_OVERRIDE;
  7915.         }
  7916.        
  7917.         return SCRIPT_CONTINUE;
  7918.     }
  7919.    
  7920.     public int sm_ae_cover_fire(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7921.     {
  7922.         if (!combatStandardAction("sm_ae_cover_fire", self, target, params, "", ""))
  7923.         {
  7924.             return SCRIPT_OVERRIDE;
  7925.         }
  7926.        
  7927.         return SCRIPT_CONTINUE;
  7928.     }
  7929.    
  7930.    
  7931.     public int sm_ae_dm_cc_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7932.     {
  7933.         if (!combatStandardAction("sm_ae_dm_cc_1", self, target, params, "", ""))
  7934.         {
  7935.             return SCRIPT_OVERRIDE;
  7936.         }
  7937.        
  7938.         return SCRIPT_CONTINUE;
  7939.     }
  7940.    
  7941.    
  7942.     public int sm_ae_dm_cc_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7943.     {
  7944.         if (!combatStandardAction("sm_ae_dm_cc_2", self, target, params, "", ""))
  7945.         {
  7946.             return SCRIPT_OVERRIDE;
  7947.         }
  7948.        
  7949.         return SCRIPT_CONTINUE;
  7950.     }
  7951.    
  7952.    
  7953.     public int sm_ae_dm_cc_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7954.     {
  7955.         if (!combatStandardAction("sm_ae_dm_cc_3", self, target, params, "", ""))
  7956.         {
  7957.             return SCRIPT_OVERRIDE;
  7958.         }
  7959.        
  7960.         return SCRIPT_CONTINUE;
  7961.     }
  7962.    
  7963.    
  7964.     public int sm_ae_dm_cc_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7965.     {
  7966.         if (!combatStandardAction("sm_ae_dm_cc_4", self, target, params, "", ""))
  7967.         {
  7968.             return SCRIPT_OVERRIDE;
  7969.         }
  7970.        
  7971.         return SCRIPT_CONTINUE;
  7972.     }
  7973.    
  7974.    
  7975.     public int sm_ae_dm_cc_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7976.     {
  7977.         if (!combatStandardAction("sm_ae_dm_cc_5", self, target, params, "", ""))
  7978.         {
  7979.             return SCRIPT_OVERRIDE;
  7980.         }
  7981.        
  7982.         return SCRIPT_CONTINUE;
  7983.     }
  7984.    
  7985.    
  7986.     public int sm_ae_pin_down(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7987.     {
  7988.         if (!combatStandardAction("sm_ae_pin_down", self, target, params, "", ""))
  7989.         {
  7990.             return SCRIPT_OVERRIDE;
  7991.         }
  7992.        
  7993.         return SCRIPT_CONTINUE;
  7994.     }
  7995.    
  7996.    
  7997.     public int sm_ae_dm_cc_melee_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  7998.     {
  7999.         if (!combatStandardAction("sm_ae_dm_cc_melee_1", self, target, params, "", ""))
  8000.         {
  8001.             return SCRIPT_OVERRIDE;
  8002.         }
  8003.        
  8004.         return SCRIPT_CONTINUE;
  8005.     }
  8006.    
  8007.    
  8008.     public int sm_ae_dm_cc_melee_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8009.     {
  8010.         if (!combatStandardAction("sm_ae_dm_cc_melee_2", self, target, params, "", ""))
  8011.         {
  8012.             return SCRIPT_OVERRIDE;
  8013.         }
  8014.        
  8015.         return SCRIPT_CONTINUE;
  8016.     }
  8017.    
  8018.    
  8019.     public int sm_ae_dm_cc_melee_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8020.     {
  8021.         if (!combatStandardAction("sm_ae_dm_cc_melee_3", self, target, params, "", ""))
  8022.         {
  8023.             return SCRIPT_OVERRIDE;
  8024.         }
  8025.        
  8026.         return SCRIPT_CONTINUE;
  8027.     }
  8028.    
  8029.    
  8030.     public int sm_ae_dm_cc_melee_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8031.     {
  8032.         if (!combatStandardAction("sm_ae_dm_cc_melee_4", self, target, params, "", ""))
  8033.         {
  8034.             return SCRIPT_OVERRIDE;
  8035.         }
  8036.        
  8037.         return SCRIPT_CONTINUE;
  8038.     }
  8039.    
  8040.    
  8041.     public int sm_ae_dm_cc_melee_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8042.     {
  8043.         if (!combatStandardAction("sm_ae_dm_cc_melee_5", self, target, params, "", ""))
  8044.         {
  8045.             return SCRIPT_OVERRIDE;
  8046.         }
  8047.        
  8048.         return SCRIPT_CONTINUE;
  8049.     }
  8050.    
  8051.    
  8052.     public int sm_del_dm_cc_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8053.     {
  8054.         if (!combatStandardAction("sm_del_dm_cc_1", self, target, params, "", ""))
  8055.         {
  8056.             return SCRIPT_OVERRIDE;
  8057.         }
  8058.        
  8059.         return SCRIPT_CONTINUE;
  8060.     }
  8061.    
  8062.    
  8063.     public int sm_del_dm_cc_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8064.     {
  8065.         if (!combatStandardAction("sm_del_dm_cc_2", self, target, params, "", ""))
  8066.         {
  8067.             return SCRIPT_OVERRIDE;
  8068.         }
  8069.        
  8070.         return SCRIPT_CONTINUE;
  8071.     }
  8072.    
  8073.    
  8074.     public int sm_del_dm_cc_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8075.     {
  8076.         if (!combatStandardAction("sm_del_dm_cc_3", self, target, params, "", ""))
  8077.         {
  8078.             return SCRIPT_OVERRIDE;
  8079.         }
  8080.        
  8081.         return SCRIPT_CONTINUE;
  8082.     }
  8083.    
  8084.    
  8085.     public int sm_del_dm_cc_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8086.     {
  8087.         if (!combatStandardAction("sm_del_dm_cc_4", self, target, params, "", ""))
  8088.         {
  8089.             return SCRIPT_OVERRIDE;
  8090.         }
  8091.        
  8092.         return SCRIPT_CONTINUE;
  8093.     }
  8094.    
  8095.    
  8096.     public int sm_del_dm_cc_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8097.     {
  8098.         if (!combatStandardAction("sm_del_dm_cc_5", self, target, params, "", ""))
  8099.         {
  8100.             return SCRIPT_OVERRIDE;
  8101.         }
  8102.        
  8103.         return SCRIPT_CONTINUE;
  8104.     }
  8105.    
  8106.    
  8107.     public int sm_del_dm_cc_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8108.     {
  8109.         if (!combatStandardAction("sm_del_dm_cc_6", self, target, params, "", ""))
  8110.         {
  8111.             return SCRIPT_OVERRIDE;
  8112.         }
  8113.        
  8114.         return SCRIPT_CONTINUE;
  8115.     }
  8116.    
  8117.    
  8118.     public int sm_fast_draw(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8119.     {
  8120.         if (!combatStandardAction("sm_fast_draw", self, target, params, "", ""))
  8121.         {
  8122.             return SCRIPT_OVERRIDE;
  8123.         }
  8124.        
  8125.         return SCRIPT_CONTINUE;
  8126.     }
  8127.    
  8128.    
  8129.     public int sm_dm_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8130.     {
  8131.         if (!combatStandardAction("sm_dm_1", self, target, params, "", ""))
  8132.         {
  8133.             return SCRIPT_OVERRIDE;
  8134.         }
  8135.        
  8136.         if (successfulFastAttack(self, "sm_dm"))
  8137.         {
  8138.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  8139.             return SCRIPT_CONTINUE;
  8140.         }
  8141.        
  8142.         float baseCooldownTime = getBaseCooldownTime("sm_dm_1");
  8143.         if (baseCooldownTime < 0)
  8144.         {
  8145.             return SCRIPT_OVERRIDE;
  8146.         }
  8147.        
  8148.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10;
  8149.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8150.        
  8151.         return SCRIPT_CONTINUE;
  8152.     }
  8153.    
  8154.    
  8155.     public int sm_dm_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8156.     {
  8157.         if (!combatStandardAction("sm_dm_2", self, target, params, "", ""))
  8158.         {
  8159.             return SCRIPT_OVERRIDE;
  8160.         }
  8161.        
  8162.         if (successfulFastAttack(self, "sm_dm"))
  8163.         {
  8164.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  8165.             return SCRIPT_CONTINUE;
  8166.         }
  8167.        
  8168.         float baseCooldownTime = getBaseCooldownTime("sm_dm_1");
  8169.         if (baseCooldownTime < 0)
  8170.         {
  8171.             return SCRIPT_OVERRIDE;
  8172.         }
  8173.        
  8174.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10;
  8175.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8176.        
  8177.         return SCRIPT_CONTINUE;
  8178.     }
  8179.    
  8180.    
  8181.     public int sm_dm_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8182.     {
  8183.         if (!combatStandardAction("sm_dm_3", self, target, params, "", ""))
  8184.         {
  8185.             return SCRIPT_OVERRIDE;
  8186.         }
  8187.        
  8188.         if (successfulFastAttack(self, "sm_dm"))
  8189.         {
  8190.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  8191.             return SCRIPT_CONTINUE;
  8192.         }
  8193.        
  8194.         float baseCooldownTime = getBaseCooldownTime("sm_dm_1");
  8195.         if (baseCooldownTime < 0)
  8196.         {
  8197.             return SCRIPT_OVERRIDE;
  8198.         }
  8199.        
  8200.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10;
  8201.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8202.        
  8203.         return SCRIPT_CONTINUE;
  8204.     }
  8205.    
  8206.    
  8207.     public int sm_dm_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8208.     {
  8209.         if (!combatStandardAction("sm_dm_4", self, target, params, "", ""))
  8210.         {
  8211.             return SCRIPT_OVERRIDE;
  8212.         }
  8213.        
  8214.         if (successfulFastAttack(self, "sm_dm"))
  8215.         {
  8216.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  8217.             return SCRIPT_CONTINUE;
  8218.         }
  8219.        
  8220.         float baseCooldownTime = getBaseCooldownTime("sm_dm_1");
  8221.         if (baseCooldownTime < 0)
  8222.         {
  8223.             return SCRIPT_OVERRIDE;
  8224.         }
  8225.        
  8226.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10;
  8227.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8228.        
  8229.         return SCRIPT_CONTINUE;
  8230.     }
  8231.    
  8232.    
  8233.     public int sm_dm_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8234.     {
  8235.         if (!combatStandardAction("sm_dm_5", self, target, params, "", ""))
  8236.         {
  8237.             return SCRIPT_OVERRIDE;
  8238.         }
  8239.        
  8240.         if (successfulFastAttack(self, "sm_dm"))
  8241.         {
  8242.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  8243.             return SCRIPT_CONTINUE;
  8244.         }
  8245.        
  8246.         float baseCooldownTime = getBaseCooldownTime("sm_dm_1");
  8247.         if (baseCooldownTime < 0)
  8248.         {
  8249.             return SCRIPT_OVERRIDE;
  8250.         }
  8251.        
  8252.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10;
  8253.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8254.        
  8255.         return SCRIPT_CONTINUE;
  8256.     }
  8257.    
  8258.    
  8259.     public int sm_dm_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8260.     {
  8261.         if (!combatStandardAction("sm_dm_6", self, target, params, "", ""))
  8262.         {
  8263.             return SCRIPT_OVERRIDE;
  8264.         }
  8265.        
  8266.         if (successfulFastAttack(self, "sm_dm"))
  8267.         {
  8268.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  8269.             return SCRIPT_CONTINUE;
  8270.         }
  8271.        
  8272.         float baseCooldownTime = getBaseCooldownTime("sm_dm_1");
  8273.         if (baseCooldownTime < 0)
  8274.         {
  8275.             return SCRIPT_OVERRIDE;
  8276.         }
  8277.        
  8278.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10;
  8279.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8280.        
  8281.         return SCRIPT_CONTINUE;
  8282.     }
  8283.    
  8284.    
  8285.     public int sm_dm_7(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8286.     {
  8287.         if (!combatStandardAction("sm_dm_7", self, target, params, "", ""))
  8288.         {
  8289.             return SCRIPT_OVERRIDE;
  8290.         }
  8291.        
  8292.         if (successfulFastAttack(self, "sm_dm"))
  8293.         {
  8294.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  8295.             return SCRIPT_CONTINUE;
  8296.         }
  8297.        
  8298.         float baseCooldownTime = getBaseCooldownTime("sm_dm_1");
  8299.         if (baseCooldownTime < 0)
  8300.         {
  8301.             return SCRIPT_OVERRIDE;
  8302.         }
  8303.        
  8304.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10;
  8305.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8306.        
  8307.         return SCRIPT_CONTINUE;
  8308.     }
  8309.    
  8310.    
  8311.     public int sm_precision_strike(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8312.     {
  8313.         if (!combatStandardAction("sm_precision_strike", self, target, params, "", ""))
  8314.         {
  8315.             return SCRIPT_OVERRIDE;
  8316.         }
  8317.        
  8318.         return SCRIPT_CONTINUE;
  8319.     }
  8320.    
  8321.    
  8322.     public int sm_dm_melee_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8323.     {
  8324.         if (!combatStandardAction("sm_dm_melee_1", self, target, params, "", ""))
  8325.         {
  8326.             return SCRIPT_OVERRIDE;
  8327.         }
  8328.        
  8329.         if (successfulFastAttack(self, "sm_dm"))
  8330.         {
  8331.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  8332.             return SCRIPT_CONTINUE;
  8333.         }
  8334.        
  8335.         float baseCooldownTime = getBaseCooldownTime("sm_dm_melee_1");
  8336.         if (baseCooldownTime < 0)
  8337.         {
  8338.             return SCRIPT_OVERRIDE;
  8339.         }
  8340.        
  8341.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10;
  8342.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8343.        
  8344.         return SCRIPT_CONTINUE;
  8345.     }
  8346.    
  8347.    
  8348.     public int sm_dm_melee_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8349.     {
  8350.         if (!combatStandardAction("sm_dm_melee_2", self, target, params, "", ""))
  8351.         {
  8352.             return SCRIPT_OVERRIDE;
  8353.         }
  8354.        
  8355.         if (successfulFastAttack(self, "sm_dm"))
  8356.         {
  8357.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  8358.             return SCRIPT_CONTINUE;
  8359.         }
  8360.        
  8361.         float baseCooldownTime = getBaseCooldownTime("sm_dm_melee_2");
  8362.         if (baseCooldownTime < 0)
  8363.         {
  8364.             return SCRIPT_OVERRIDE;
  8365.         }
  8366.        
  8367.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10;
  8368.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8369.        
  8370.         return SCRIPT_CONTINUE;
  8371.     }
  8372.    
  8373.    
  8374.     public int sm_dm_melee_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8375.     {
  8376.         if (!combatStandardAction("sm_dm_melee_3", self, target, params, "", ""))
  8377.         {
  8378.             return SCRIPT_OVERRIDE;
  8379.         }
  8380.        
  8381.         if (successfulFastAttack(self, "sm_dm"))
  8382.         {
  8383.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  8384.             return SCRIPT_CONTINUE;
  8385.         }
  8386.        
  8387.         float baseCooldownTime = getBaseCooldownTime("sm_dm_melee_3");
  8388.         if (baseCooldownTime < 0)
  8389.         {
  8390.             return SCRIPT_OVERRIDE;
  8391.         }
  8392.        
  8393.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10;
  8394.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8395.        
  8396.         return SCRIPT_CONTINUE;
  8397.     }
  8398.    
  8399.    
  8400.     public int sm_dm_melee_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8401.     {
  8402.         if (!combatStandardAction("sm_dm_melee_4", self, target, params, "", ""))
  8403.         {
  8404.             return SCRIPT_OVERRIDE;
  8405.         }
  8406.        
  8407.         if (successfulFastAttack(self, "sm_dm"))
  8408.         {
  8409.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  8410.             return SCRIPT_CONTINUE;
  8411.         }
  8412.        
  8413.         float baseCooldownTime = getBaseCooldownTime("sm_dm_melee_4");
  8414.         if (baseCooldownTime < 0)
  8415.         {
  8416.             return SCRIPT_OVERRIDE;
  8417.         }
  8418.        
  8419.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10;
  8420.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8421.        
  8422.         return SCRIPT_CONTINUE;
  8423.     }
  8424.    
  8425.    
  8426.     public int sm_dm_melee_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8427.     {
  8428.         if (!combatStandardAction("sm_dm_melee_5", self, target, params, "", ""))
  8429.         {
  8430.             return SCRIPT_OVERRIDE;
  8431.         }
  8432.        
  8433.         if (successfulFastAttack(self, "sm_dm"))
  8434.         {
  8435.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  8436.             return SCRIPT_CONTINUE;
  8437.         }
  8438.        
  8439.         float baseCooldownTime = getBaseCooldownTime("sm_dm_melee_5");
  8440.         if (baseCooldownTime < 0)
  8441.         {
  8442.             return SCRIPT_OVERRIDE;
  8443.         }
  8444.        
  8445.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10;
  8446.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8447.        
  8448.         return SCRIPT_CONTINUE;
  8449.     }
  8450.    
  8451.    
  8452.     public int sm_dm_melee_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8453.     {
  8454.         if (!combatStandardAction("sm_dm_melee_6", self, target, params, "", ""))
  8455.         {
  8456.             return SCRIPT_OVERRIDE;
  8457.         }
  8458.        
  8459.         if (successfulFastAttack(self, "sm_dm"))
  8460.         {
  8461.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  8462.             return SCRIPT_CONTINUE;
  8463.         }
  8464.        
  8465.         float baseCooldownTime = getBaseCooldownTime("sm_dm_melee_6");
  8466.         if (baseCooldownTime < 0)
  8467.         {
  8468.             return SCRIPT_OVERRIDE;
  8469.         }
  8470.        
  8471.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10;
  8472.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8473.        
  8474.         return SCRIPT_CONTINUE;
  8475.     }
  8476.    
  8477.    
  8478.     public int sm_dm_melee_7(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8479.     {
  8480.         if (!combatStandardAction("sm_dm_melee_7", self, target, params, "", ""))
  8481.         {
  8482.             return SCRIPT_OVERRIDE;
  8483.         }
  8484.        
  8485.         if (successfulFastAttack(self, "sm_dm"))
  8486.         {
  8487.             setCommandTimerValue(self, TIMER_COOLDOWN, 0f);
  8488.             return SCRIPT_CONTINUE;
  8489.         }
  8490.        
  8491.         float baseCooldownTime = getBaseCooldownTime("sm_dm_melee_7");
  8492.         if (baseCooldownTime < 0)
  8493.         {
  8494.             return SCRIPT_OVERRIDE;
  8495.         }
  8496.        
  8497.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm") / 10;
  8498.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8499.        
  8500.         return SCRIPT_CONTINUE;
  8501.     }
  8502.    
  8503.    
  8504.     public int sm_concussion_shot(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8505.     {
  8506.         if (!combatStandardAction("sm_concussion_shot", self, target, params, "", ""))
  8507.         {
  8508.             return SCRIPT_OVERRIDE;
  8509.         }
  8510.        
  8511.         return SCRIPT_CONTINUE;
  8512.     }
  8513.    
  8514.    
  8515.     public int sm_dm_cc_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8516.     {
  8517.         if (!combatStandardAction("sm_dm_cc_1", self, target, params, "", ""))
  8518.         {
  8519.             return SCRIPT_OVERRIDE;
  8520.         }
  8521.        
  8522.         doDireAbility(self, target, 0);
  8523.        
  8524.         float baseCooldownTime = getBaseCooldownTime("sm_dm_cc_1");
  8525.         if (baseCooldownTime < 0)
  8526.         {
  8527.             return SCRIPT_OVERRIDE;
  8528.         }
  8529.        
  8530.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm_cc") / 10;
  8531.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8532.        
  8533.         return SCRIPT_CONTINUE;
  8534.     }
  8535.    
  8536.    
  8537.     public int sm_dm_cc_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8538.     {
  8539.         if (!combatStandardAction("sm_dm_cc_2", self, target, params, "", ""))
  8540.         {
  8541.             return SCRIPT_OVERRIDE;
  8542.         }
  8543.        
  8544.         doDireAbility(self, target, 0);
  8545.        
  8546.         float baseCooldownTime = getBaseCooldownTime("sm_dm_cc_2");
  8547.         if (baseCooldownTime < 0)
  8548.         {
  8549.             return SCRIPT_OVERRIDE;
  8550.         }
  8551.        
  8552.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm_cc") / 10;
  8553.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8554.        
  8555.         return SCRIPT_CONTINUE;
  8556.     }
  8557.    
  8558.    
  8559.     public int sm_dm_cc_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8560.     {
  8561.         if (!combatStandardAction("sm_dm_cc_3", self, target, params, "", ""))
  8562.         {
  8563.             return SCRIPT_OVERRIDE;
  8564.         }
  8565.        
  8566.         doDireAbility(self, target, 0);
  8567.        
  8568.         float baseCooldownTime = getBaseCooldownTime("sm_dm_cc_3");
  8569.         if (baseCooldownTime < 0)
  8570.         {
  8571.             return SCRIPT_OVERRIDE;
  8572.         }
  8573.        
  8574.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm_cc") / 10;
  8575.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8576.        
  8577.         return SCRIPT_CONTINUE;
  8578.     }
  8579.    
  8580.    
  8581.     public int sm_dm_cc_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8582.     {
  8583.         if (!combatStandardAction("sm_dm_cc_4", self, target, params, "", ""))
  8584.         {
  8585.             return SCRIPT_OVERRIDE;
  8586.         }
  8587.        
  8588.         doDireAbility(self, target, 0);
  8589.        
  8590.         float baseCooldownTime = getBaseCooldownTime("sm_dm_cc_4");
  8591.         if (baseCooldownTime < 0)
  8592.         {
  8593.             return SCRIPT_OVERRIDE;
  8594.         }
  8595.        
  8596.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm_cc") / 10;
  8597.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8598.        
  8599.         return SCRIPT_CONTINUE;
  8600.     }
  8601.    
  8602.    
  8603.     public int sm_dm_cc_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8604.     {
  8605.         if (!combatStandardAction("sm_dm_cc_5", self, target, params, "", ""))
  8606.         {
  8607.             return SCRIPT_OVERRIDE;
  8608.         }
  8609.        
  8610.         doDireAbility(self, target, 0);
  8611.        
  8612.         float baseCooldownTime = getBaseCooldownTime("sm_dm_cc_5");
  8613.         if (baseCooldownTime < 0)
  8614.         {
  8615.             return SCRIPT_OVERRIDE;
  8616.         }
  8617.        
  8618.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm_cc") / 10;
  8619.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8620.        
  8621.         return SCRIPT_CONTINUE;
  8622.     }
  8623.    
  8624.    
  8625.     public int sm_dm_cc_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8626.     {
  8627.         if (!combatStandardAction("sm_dm_cc_6", self, target, params, "", ""))
  8628.         {
  8629.             return SCRIPT_OVERRIDE;
  8630.         }
  8631.        
  8632.         doDireAbility(self, target, 0);
  8633.        
  8634.         float baseCooldownTime = getBaseCooldownTime("sm_dm_cc_6");
  8635.         if (baseCooldownTime < 0)
  8636.         {
  8637.             return SCRIPT_OVERRIDE;
  8638.         }
  8639.        
  8640.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm_cc") / 10;
  8641.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8642.        
  8643.         return SCRIPT_CONTINUE;
  8644.     }
  8645.    
  8646.    
  8647.     public int sm_dizzy(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8648.     {
  8649.         if (!combatStandardAction("sm_dizzy", self, target, params, "", ""))
  8650.         {
  8651.             return SCRIPT_OVERRIDE;
  8652.         }
  8653.        
  8654.         return SCRIPT_CONTINUE;
  8655.     }
  8656.    
  8657.     public int sm_dm_cc_melee_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8658.     {
  8659.         if (!combatStandardAction("sm_dm_cc_melee_1", self, target, params, "", ""))
  8660.         {
  8661.             return SCRIPT_OVERRIDE;
  8662.         }
  8663.        
  8664.         doDireAbility(self, target, 0);
  8665.        
  8666.         float baseCooldownTime = getBaseCooldownTime("sm_dm_cc_melee_1");
  8667.         if (baseCooldownTime < 0)
  8668.         {
  8669.             return SCRIPT_OVERRIDE;
  8670.         }
  8671.        
  8672.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm_cc") / 10;
  8673.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8674.        
  8675.         return SCRIPT_CONTINUE;
  8676.     }
  8677.    
  8678.    
  8679.     public int sm_dm_cc_melee_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8680.     {
  8681.         if (!combatStandardAction("sm_dm_cc_melee_2", self, target, params, "", ""))
  8682.         {
  8683.             return SCRIPT_OVERRIDE;
  8684.         }
  8685.        
  8686.         doDireAbility(self, target, 0);
  8687.        
  8688.         float baseCooldownTime = getBaseCooldownTime("sm_dm_cc_melee_2");
  8689.         if (baseCooldownTime < 0)
  8690.         {
  8691.             return SCRIPT_OVERRIDE;
  8692.         }
  8693.        
  8694.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm_cc") / 10;
  8695.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8696.        
  8697.         return SCRIPT_CONTINUE;
  8698.     }
  8699.    
  8700.    
  8701.     public int sm_dm_cc_melee_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8702.     {
  8703.         if (!combatStandardAction("sm_dm_cc_melee_3", self, target, params, "", ""))
  8704.         {
  8705.             return SCRIPT_OVERRIDE;
  8706.         }
  8707.        
  8708.         doDireAbility(self, target, 0);
  8709.        
  8710.         float baseCooldownTime = getBaseCooldownTime("sm_dm_cc_melee_3");
  8711.         if (baseCooldownTime < 0)
  8712.         {
  8713.             return SCRIPT_OVERRIDE;
  8714.         }
  8715.        
  8716.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm_cc") / 10;
  8717.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8718.        
  8719.         return SCRIPT_CONTINUE;
  8720.     }
  8721.    
  8722.    
  8723.     public int sm_dm_cc_melee_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8724.     {
  8725.         if (!combatStandardAction("sm_dm_cc_melee_4", self, target, params, "", ""))
  8726.         {
  8727.             return SCRIPT_OVERRIDE;
  8728.         }
  8729.        
  8730.         doDireAbility(self, target, 0);
  8731.        
  8732.         float baseCooldownTime = getBaseCooldownTime("sm_dm_cc_melee_4");
  8733.         if (baseCooldownTime < 0)
  8734.         {
  8735.             return SCRIPT_OVERRIDE;
  8736.         }
  8737.        
  8738.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm_cc") / 10;
  8739.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8740.        
  8741.         return SCRIPT_CONTINUE;
  8742.     }
  8743.    
  8744.    
  8745.     public int sm_dm_cc_melee_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8746.     {
  8747.         if (!combatStandardAction("sm_dm_cc_melee_5", self, target, params, "", ""))
  8748.         {
  8749.             return SCRIPT_OVERRIDE;
  8750.         }
  8751.        
  8752.         doDireAbility(self, target, 0);
  8753.        
  8754.         float baseCooldownTime = getBaseCooldownTime("sm_dm_cc_melee_5");
  8755.         if (baseCooldownTime < 0)
  8756.         {
  8757.             return SCRIPT_OVERRIDE;
  8758.         }
  8759.        
  8760.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm_cc") / 10;
  8761.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8762.        
  8763.         return SCRIPT_CONTINUE;
  8764.     }
  8765.    
  8766.    
  8767.     public int sm_dm_cc_melee_6(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8768.     {
  8769.         if (!combatStandardAction("sm_dm_cc_melee_6", self, target, params, "", ""))
  8770.         {
  8771.             return SCRIPT_OVERRIDE;
  8772.         }
  8773.        
  8774.         doDireAbility(self, target, 0);
  8775.        
  8776.         float baseCooldownTime = getBaseCooldownTime("sm_dm_cc_melee_6");
  8777.         if (baseCooldownTime < 0)
  8778.         {
  8779.             return SCRIPT_OVERRIDE;
  8780.         }
  8781.        
  8782.         float cooldownTimeMod = getSkillStatisticModifier(self, "expertise_cooldown_line_sm_dm_cc") / 10;
  8783.         setCommandTimerValue(self, TIMER_COOLDOWN, baseCooldownTime - cooldownTimeMod);
  8784.        
  8785.         return SCRIPT_CONTINUE;
  8786.     }
  8787.    
  8788.    
  8789.     public int sm_dm_dot_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8790.     {
  8791.         if (!combatStandardAction("sm_dm_dot_1", self, target, params, "", ""))
  8792.         {
  8793.             return SCRIPT_OVERRIDE;
  8794.         }
  8795.        
  8796.         return SCRIPT_CONTINUE;
  8797.     }
  8798.    
  8799.    
  8800.     public int sm_dm_dot_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8801.     {
  8802.         if (!combatStandardAction("sm_dm_dot_2", self, target, params, "", ""))
  8803.         {
  8804.             return SCRIPT_OVERRIDE;
  8805.         }
  8806.        
  8807.         return SCRIPT_CONTINUE;
  8808.     }
  8809.    
  8810.    
  8811.     public int sm_dm_dot_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8812.     {
  8813.         if (!combatStandardAction("sm_dm_dot_3", self, target, params, "", ""))
  8814.         {
  8815.             return SCRIPT_OVERRIDE;
  8816.         }
  8817.        
  8818.         return SCRIPT_CONTINUE;
  8819.     }
  8820.    
  8821.    
  8822.     public int sm_dm_dot_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8823.     {
  8824.         if (!combatStandardAction("sm_dm_dot_4", self, target, params, "", ""))
  8825.         {
  8826.             return SCRIPT_OVERRIDE;
  8827.         }
  8828.        
  8829.         return SCRIPT_CONTINUE;
  8830.     }
  8831.    
  8832.    
  8833.     public int sm_dm_dot_melee_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8834.     {
  8835.         if (!combatStandardAction("sm_dm_dot_melee_1", self, target, params, "", ""))
  8836.         {
  8837.             return SCRIPT_OVERRIDE;
  8838.         }
  8839.        
  8840.         return SCRIPT_CONTINUE;
  8841.     }
  8842.    
  8843.    
  8844.     public int sm_dm_dot_melee_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8845.     {
  8846.         if (!combatStandardAction("sm_dm_dot_melee_2", self, target, params, "", ""))
  8847.         {
  8848.             return SCRIPT_OVERRIDE;
  8849.         }
  8850.        
  8851.         return SCRIPT_CONTINUE;
  8852.     }
  8853.    
  8854.    
  8855.     public int sm_dm_dot_melee_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8856.     {
  8857.         if (!combatStandardAction("sm_dm_dot_melee_3", self, target, params, "", ""))
  8858.         {
  8859.             return SCRIPT_OVERRIDE;
  8860.         }
  8861.        
  8862.         return SCRIPT_CONTINUE;
  8863.     }
  8864.    
  8865.    
  8866.     public int sm_dm_dot_melee_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8867.     {
  8868.         if (!combatStandardAction("sm_dm_dot_melee_4", self, target, params, "", ""))
  8869.         {
  8870.             return SCRIPT_OVERRIDE;
  8871.         }
  8872.        
  8873.         return SCRIPT_CONTINUE;
  8874.     }
  8875.    
  8876.    
  8877.     public int sm_bad_odds_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8878.     {
  8879.         if (!combatStandardAction("sm_bad_odds_1", self, target, params, "", ""))
  8880.         {
  8881.             return SCRIPT_OVERRIDE;
  8882.         }
  8883.        
  8884.         return SCRIPT_CONTINUE;
  8885.     }
  8886.    
  8887.    
  8888.     public int sm_bad_odds_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8889.     {
  8890.         if (!combatStandardAction("sm_bad_odds_2", self, target, params, "", ""))
  8891.         {
  8892.             return SCRIPT_OVERRIDE;
  8893.         }
  8894.        
  8895.         return SCRIPT_CONTINUE;
  8896.     }
  8897.    
  8898.    
  8899.     public int sm_bad_odds_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8900.     {
  8901.         if (!combatStandardAction("sm_bad_odds_3", self, target, params, "", ""))
  8902.         {
  8903.             return SCRIPT_OVERRIDE;
  8904.         }
  8905.        
  8906.         return SCRIPT_CONTINUE;
  8907.     }
  8908.    
  8909.    
  8910.     public int sm_bad_odds_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8911.     {
  8912.         if (!combatStandardAction("sm_bad_odds_4", self, target, params, "", ""))
  8913.         {
  8914.             return SCRIPT_OVERRIDE;
  8915.         }
  8916.        
  8917.         return SCRIPT_CONTINUE;
  8918.     }
  8919.    
  8920.    
  8921.     public int sm_bad_odds_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8922.     {
  8923.         if (!combatStandardAction("sm_bad_odds_5", self, target, params, "", ""))
  8924.         {
  8925.             return SCRIPT_OVERRIDE;
  8926.         }
  8927.        
  8928.         return SCRIPT_CONTINUE;
  8929.     }
  8930.    
  8931.    
  8932.     public int sm_sh_0(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8933.     {
  8934.         if (!healing.isDamaged(self))
  8935.         {
  8936.             sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self"));
  8937.             return SCRIPT_OVERRIDE;
  8938.         }
  8939.        
  8940.         if (!combatStandardAction("sm_sh_0", self, target, params, "", ""))
  8941.         {
  8942.             return SCRIPT_OVERRIDE;
  8943.         }
  8944.        
  8945.         return SCRIPT_CONTINUE;
  8946.     }
  8947.    
  8948.    
  8949.     public int sm_sh_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8950.     {
  8951.         if (!healing.isDamaged(self))
  8952.         {
  8953.             sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self"));
  8954.             return SCRIPT_OVERRIDE;
  8955.         }
  8956.        
  8957.         if (!combatStandardAction("sm_sh_1", self, target, params, "", ""))
  8958.         {
  8959.             return SCRIPT_OVERRIDE;
  8960.         }
  8961.        
  8962.         return SCRIPT_CONTINUE;
  8963.     }
  8964.    
  8965.    
  8966.     public int sm_sh_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8967.     {
  8968.         if (!healing.isDamaged(self))
  8969.         {
  8970.             sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self"));
  8971.             return SCRIPT_OVERRIDE;
  8972.         }
  8973.        
  8974.         if (!combatStandardAction("sm_sh_2", self, target, params, "", ""))
  8975.         {
  8976.             return SCRIPT_OVERRIDE;
  8977.         }
  8978.        
  8979.         return SCRIPT_CONTINUE;
  8980.     }
  8981.    
  8982.    
  8983.     public int sm_sh_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  8984.     {
  8985.         if (!healing.isDamaged(self))
  8986.         {
  8987.             sendSystemMessage(self, new string_id("healing", "no_damage_to_heal_self"));
  8988.             return SCRIPT_OVERRIDE;
  8989.         }
  8990.        
  8991.         if (!combatStandardAction("sm_sh_3", self, target, params, "", ""))
  8992.         {
  8993.             return SCRIPT_OVERRIDE;
  8994.         }
  8995.        
  8996.         return SCRIPT_CONTINUE;
  8997.     }
  8998.    
  8999.    
  9000.     public int sm_summon_smuggler(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  9001.     {
  9002.         if (!combatStandardAction("sm_summon_smuggler", self, target, params, "", ""))
  9003.         {
  9004.             return SCRIPT_OVERRIDE;
  9005.         }
  9006.         else
  9007.         {
  9008.             if (!callFavor(self, 0))
  9009.             {
  9010.                 return SCRIPT_OVERRIDE;
  9011.             }
  9012.         }
  9013.        
  9014.         return SCRIPT_CONTINUE;
  9015.     }
  9016.    
  9017.    
  9018.     public int sm_summon_medic(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  9019.     {
  9020.         if (!combatStandardAction("sm_summon_medic", self, target, params, "", ""))
  9021.         {
  9022.             return SCRIPT_OVERRIDE;
  9023.         }
  9024.         else
  9025.         {
  9026.             if (!callFavor(self, 1))
  9027.             {
  9028.                 return SCRIPT_OVERRIDE;
  9029.             }
  9030.         }
  9031.        
  9032.         return SCRIPT_CONTINUE;
  9033.     }
  9034.    
  9035.    
  9036.     public int sm_sly_lie(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  9037.     {
  9038.         if (!smuggler.canSlyLie(self))
  9039.         {
  9040.             return SCRIPT_OVERRIDE;
  9041.         }
  9042.        
  9043.         if (!combatStandardAction("sm_sly_lie", self, target, params, "", ""))
  9044.         {
  9045.             return SCRIPT_OVERRIDE;
  9046.         }
  9047.        
  9048.         if (!smuggler.doSlyLie(self))
  9049.         {
  9050.             return SCRIPT_OVERRIDE;
  9051.         }
  9052.        
  9053.         return SCRIPT_CONTINUE;
  9054.     }
  9055.    
  9056.    
  9057.     public int sm_fast_talk(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  9058.     {
  9059.         if (isIdValid(target) && !smuggler.canFastTalk(self, target))
  9060.         {
  9061.             return SCRIPT_OVERRIDE;
  9062.         }
  9063.        
  9064.         if (!combatStandardAction("sm_fast_talk", self, target, params, "", ""))
  9065.         {
  9066.             return SCRIPT_OVERRIDE;
  9067.         }
  9068.        
  9069.         if (!smuggler.doFastTalk(self, target))
  9070.         {
  9071.             return SCRIPT_OVERRIDE;
  9072.         }
  9073.         return SCRIPT_CONTINUE;
  9074.     }
  9075.    
  9076.    
  9077.     public int sm_skullduggery(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  9078.     {
  9079.         if (!combatStandardAction("sm_skullduggery", self, target, params, "", ""))
  9080.         {
  9081.             return SCRIPT_OVERRIDE;
  9082.         }
  9083.        
  9084.         return SCRIPT_CONTINUE;
  9085.     }
  9086.    
  9087.    
  9088.     public int sm_impossible_odds(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  9089.     {
  9090.         if (!combatStandardAction("sm_impossible_odds", self, target, params, "", ""))
  9091.         {
  9092.             return SCRIPT_OVERRIDE;
  9093.         }
  9094.        
  9095.         return SCRIPT_CONTINUE;
  9096.     }
  9097.    
  9098.    
  9099.     public int sm_nerf_herder(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  9100.     {
  9101.         if (!combatStandardAction("sm_nerf_herder", self, target, params, "", ""))
  9102.         {
  9103.             return SCRIPT_OVERRIDE;
  9104.         }
  9105.        
  9106.         return SCRIPT_CONTINUE;
  9107.     }
  9108.    
  9109.    
  9110.     public int sm_pistol_whip_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  9111.     {
  9112.         if (!combatStandardAction("sm_pistol_whip_1", self, target, params, "", ""))
  9113.         {
  9114.             return SCRIPT_OVERRIDE;
  9115.         }
  9116.        
  9117.         return SCRIPT_CONTINUE;
  9118.     }
  9119.    
  9120.    
  9121.     public int sm_pistol_whip_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  9122.     {
  9123.         if (!combatStandardAction("sm_pistol_whip_2", self, target, params, "", ""))
  9124.         {
  9125.             return SCRIPT_OVERRIDE;
  9126.         }
  9127.        
  9128.         return SCRIPT_CONTINUE;
  9129.     }
  9130.    
  9131.    
  9132.     public int sm_pistol_whip_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  9133.     {
  9134.         if (!combatStandardAction("sm_pistol_whip_3", self, target, params, "", ""))
  9135.         {
  9136.             return SCRIPT_OVERRIDE;
  9137.         }
  9138.        
  9139.         return SCRIPT_CONTINUE;
  9140.     }
  9141.    
  9142.    
  9143.     public int sm_pistol_whip_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  9144.     {
  9145.         if (!combatStandardAction("sm_pistol_whip_4", self, target, params, "", ""))
  9146.         {
  9147.             return SCRIPT_OVERRIDE;
  9148.         }
  9149.        
  9150.         return SCRIPT_CONTINUE;
  9151.     }
  9152.    
  9153.    
  9154.     public int sm_shoot_first_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  9155.     {
  9156.        
  9157.         if (isBeingHuntedByBountyHunter(self, target))
  9158.         {
  9159.             pvpSetPersonalEnemyFlag(self, target);
  9160.             pvpSetPersonalEnemyFlag(target, self);
  9161.         }
  9162.        
  9163.         if (!combatStandardAction("sm_shoot_first_1", self, target, params, "", ""))
  9164.         {
  9165.             return SCRIPT_OVERRIDE;
  9166.         }
  9167.        
  9168.         return SCRIPT_CONTINUE;
  9169.     }
  9170.    
  9171.    
  9172.     public int sm_shoot_first_2(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  9173.     {
  9174.        
  9175.         if (isBeingHuntedByBountyHunter(self, target))
  9176.         {
  9177.             pvpSetPersonalEnemyFlag(self, target);
  9178.             pvpSetPersonalEnemyFlag(target, self);
  9179.         }
  9180.        
  9181.         if (!combatStandardAction("sm_shoot_first_2", self, target, params, "", ""))
  9182.         {
  9183.             return SCRIPT_OVERRIDE;
  9184.         }
  9185.        
  9186.         return SCRIPT_CONTINUE;
  9187.     }
  9188.    
  9189.    
  9190.     public int sm_shoot_first_3(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  9191.     {
  9192.        
  9193.         if (isBeingHuntedByBountyHunter(self, target))
  9194.         {
  9195.             pvpSetPersonalEnemyFlag(self, target);
  9196.             pvpSetPersonalEnemyFlag(target, self);
  9197.         }
  9198.        
  9199.         if (!combatStandardAction("sm_shoot_first_3", self, target, params, "", ""))
  9200.         {
  9201.             return SCRIPT_OVERRIDE;
  9202.         }
  9203.        
  9204.         return SCRIPT_CONTINUE;
  9205.     }
  9206.    
  9207.    
  9208.     public int sm_shoot_first_4(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  9209.     {
  9210.        
  9211.         if (isBeingHuntedByBountyHunter(self, target))
  9212.         {
  9213.             pvpSetPersonalEnemyFlag(self, target);
  9214.             pvpSetPersonalEnemyFlag(target, self);
  9215.         }
  9216.        
  9217.         if (!combatStandardAction("sm_shoot_first_4", self, target, params, "", ""))
  9218.         {
  9219.             return SCRIPT_OVERRIDE;
  9220.         }
  9221.        
  9222.         return SCRIPT_CONTINUE;
  9223.     }
  9224.    
  9225.    
  9226.     public int sm_shoot_first_5(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  9227.     {
  9228.        
  9229.         if (isBeingHuntedByBountyHunter(self, target))
  9230.         {
  9231.             pvpSetPersonalEnemyFlag(self, target);
  9232.             pvpSetPersonalEnemyFlag(target, self);
  9233.         }
  9234.        
  9235.         if (!combatStandardAction("sm_shoot_first_5", self, target, params, "", ""))
  9236.         {
  9237.             return SCRIPT_OVERRIDE;
  9238.         }
  9239.        
  9240.         return SCRIPT_CONTINUE;
  9241.     }
  9242.    
  9243.    
  9244.     public int sm_inspect_cargo(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  9245.     {
  9246.         obj_id player = self;
  9247.         smuggler.inspectCorpseForContraband(player, target);
  9248.        
  9249.         return SCRIPT_CONTINUE;
  9250.     }
  9251.    
  9252.    
  9253.     public int sm_spot_a_sucker_1(obj_id self, obj_id target, String params, float defaultTime) throws InterruptedException
  9254.     {
  9255.         if (!combatStandardAction("sm_spot_a_sucker_1", self, target, params, "", ""))
  9256.         {
  9257.             return SCRIPT_OVERRIDE;
  9258.         }
  9259.         else
  9260.         {
  9261.             int glanceMod = (int)getEnhancedSkillStatisticModifierUncapped(self, "expertise_spot_a_sucker_glance_chance");
  9262.             int criticalMod = (int)getEnhancedSkillStatisticModifierUncapped(self, "expertise_spot_a_sucker_critical_decrease");
  9263.             int damageDecrease = (int)getEnhancedSkillStatisticModifierUncapped(self, "expertise_spot_a_sucker_damage_decrease_chance");
  9264.            
  9265.             if (damageDecrease >= 40)
  9266.             {
  9267.                 buff.applyBuff(target, self, "sm_spot_a_sucker_1_7");
  9268.             }
  9269.             else if (damageDecrease >= 20)
  9270.             {
  9271.                 buff.applyBuff(target, self, "sm_spot_a_sucker_1_6");
  9272.             }
  9273.             else if (glanceMod >= 50)
  9274.             {
  9275.                 buff.applyBuff(target, self, "sm_spot_a_sucker_1_5");
  9276.             }
  9277.             else if (glanceMod >= 25)
  9278.             {
  9279.                 buff.applyBuff(target, self, "sm_spot_a_sucker_1_4");
  9280.             }
  9281.             else if (criticalMod >= 50)
  9282.             {
  9283.                 buff.applyBuff(target, self, "sm_spot_a_sucker_1_3");
  9284.             }
  9285.             else if (criticalMod >= 25)
  9286.             {
  9287.                 buff.applyBuff(target, self, "sm_spot_a_sucker_1_2");
  9288.             }
  9289.             else
  9290.             {
  9291.                 buff.applyBuff(target, self, "sm_spot_a_sucker_1_1");
  9292.             }
  9293.         }
  9294.        
  9295.         return SCRIPT_CONTINUE;
  9296.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement