• Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Register
  • Login
City of Arabel
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Register
  • Login

New Barbarian Rages

Scheduled Pinned Locked Moved Implemented/Closed Suggestions
5 Posts 2 Posters 259 Views
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S
    SpiffyMeister
    last edited by SpiffyMeister 16 Feb 2020, 19:14

    Okay: THESE ARE ALREADY IN GAME, we just need some balancing help to make them worth it, then we'll introduce them in loot tables or shops.

    1. Beserker Rage:
    2. Thunder Rage:
    3. Juggernaut:
    4. Malkizid's Wrath (Elf Rage):
    5. Default

    1. Beserker doesn't scale according to level, rather, it scales according to the amount of HP present on the character when they rage. This makes raging at low health a risky proposition.

    At: 100% hp = +2 str, +2 con, +2 will, 10% physical Damage Immunity
    At: 80% hp = +3 str, +3 con, +3 will, +15% physical Damage Immunity
    At: 60% hp = +4 str, +4 con, +4 will, +10 temp hp, +20% physical Damage Immunity
    At: 40% hp = +5 str, +5 con, +5 will, +20 temp hp, +25% physical Damage Immunity
    At: 20% hp = +6 str, +6 con, +6 will, +30 temp hp, +30% physical Damage Immunity

    1. Malkizid's Wrath is a bit lackluster, but the intention here is for ranged barbarians (archers) to assist them in their ranged angry shooting bowery.

    Lvl 1: +2 Dex, +1 Reflex
    Lvl 4: +1 Reflex, +1 Piercing DMG
    Lvl 6: +1 DEX
    Lvl 8: +1 Reflex, +1 AC, +1 Piercing DMG
    Lvl 10 - Total: +4 Dex, +2 Piercing DMG, +4 Reflex, +2 AC

    1. The Rage of Thunder is a rage that grants immunity to electric damage and possesses a damage shield that reflects electric damage back to the targets. As it levels up, it will create an AoE around the barb that strikes enemies with the wrath of storms to damage their foes.

    Lvl 1: +1 electrical DMG, 10% electrical Immunity
    Lvl 4: +1 electrical DMG, 15% electrical Immunity
    Lvl 6: 20% electrical Immunity
    Lvl 8: +1 electrical DMG, Electrical Shield,
    if hit damages opponent (1d4 electrical), 25% electrical Immunity
    Lvl 10 - Total: +3 electrical DMG, 30% electrical immunity, Electrical Shield (1d6),
    Special Effect: Lvl 6+ enemies will be hit by a lightning bolt (2d6).

    1. Juggernaught is an unstoppable force, and when charging, cannot be stopped. It will ignore all holds, bindings, entanglements etc... to reach their target, removing any energy drains or poisons in the process.

    Lvl 1: +2 str, +2 con, lesser restoration, ignore unit collision
    Lvl 4: +3 str, +2 con, lesser restoration, ignore unit collision, +10% movespeed
    Lvl 7: +3 str, +2 con, lesser restoration, clarity, ignore unit collision, +10% move speed
    Lvl 10: +4 str, +2 con, lesser restoration, clarity, ignore unit collision, +20% move speed

    1. Rage of the Wraith is a unique rage that summons the dead and slain foes of the barbarian to aid him in battle. Rise from the dead, my slain foes, and conquer my foes beside me.

    Level 4: 15% concealment, 1 allied spirit.
    Level 5: 20% concealment, 1 allied spirit, +2 neg damage to weapon
    Level 6: 25% concealement, 2 allied spirits, +2 neg damage
    Level 7: 30% concealment, 2 allied spirits, +2 neg damage, +10% immunity to negative energy.
    Level 8: 35% concealment, 2 allied spirits, +2 neg damage, +15 immunity to negative energy.
    Level 9: 40% concealement, 2 allied, +3 neg damage, +20% immunity to negative
    Level 10: 50% concealment, 3 allied spirits, +3 neg, +25 immunity to negative.

    Puffy's bumbling Scum-goblin minion.

    1 Reply Last reply Reply Quote
    • S
      SpiffyMeister
      last edited by 16 Feb 2020, 19:39

      //::///////////////////////////////////////////////
      //:: Barbarian Rage
      //:: NW_S1_BarbRage
      //:: Copyright (c) 2001 Bioware Corp.
      //:://////////////////////////////////////////////
      /*
      The Str and Con of the Barbarian increases,
      Will Save are +2, AC -2.
      Greater Rage starts at level 15.
      */
      //:://////////////////////////////////////////////
      //:: Created By: Preston Watamaniuk
      //:: Created On: Aug 13, 2001
      //:://////////////////////////////////////////////

      #include "x2_i0_spells"
      //#include "_incl_rndloc"

      int GetIsSupernaturalCurse(effect eEff) {
      object oCreator = GetEffectCreator(eEff);

      if(GetTag(oCreator) == "q6e_ShaorisFellTemple")
          return TRUE;
      
      return FALSE;
      

      }

      void RageBerserker (object oPC, int nDuration, int nLevel) {
      int nHP, nHP_total, nHP_current, nSTR, nCON, nWILL, nImmun, nTMPHP;
      nHP_total = GetMaxHitPoints(oPC);
      nHP_current = GetCurrentHitPoints(oPC);
      nHP = (nHP_current * 100) / nHP_total;
      // SendMessageToPC(oPC, "nHP_total: " + IntToString(nHP_total));
      // SendMessageToPC(oPC, "nHP_current: " + IntToString(nHP_current));
      // SendMessageToPC(oPC, "nHP: " + IntToString(nHP));

      if (nHP < 20) {
          nSTR = 6;
          nCON = 6;
          nWILL = 6;
      } else if (nHP < 40) {
          nSTR = 5;
          nCON = 5;
          nWILL = 5;
      } else if (nHP < 60) {
          nSTR = 4;
          nCON = 4;
          nWILL = 4;
      } else if (nHP < 80) {
          nSTR = 3;
          nCON = 3;
          nWILL = 3;
      } else if (nHP < 100) {
          nSTR = 2;
          nCON = 2;
          nWILL = 2;
      } else {
          nSTR = 1;
          nCON = 1;
          nWILL = 1;
      }
      
      if (nLevel > 9) {
          nTMPHP = 30;
          nImmun = 30;
      } else if (nLevel > 7) {
          nTMPHP = 20;
          nImmun = 25;
      } else if (nLevel > 5) {
          nTMPHP = 10;
          nImmun = 20;
      } else if (nLevel > 3) {
          nTMPHP = 0;
          nImmun = 15;
      } else if (nLevel > 1) {
          nTMPHP = 0;
          nImmun = 10;
      } else {
          nTMPHP = 0;
          nImmun = 5;
      }
      
      effect eSTR, eCON, eWILL, eTMPHP, eIMMUN, eLink, eVis;
      eSTR = EffectAbilityIncrease(ABILITY_STRENGTH, nSTR);
      eLink = EffectLinkEffects(eLink, eSTR);
      eCON = EffectAbilityIncrease(ABILITY_CONSTITUTION, nCON);
      eLink = EffectLinkEffects(eLink, eCON);
      eWILL = EffectSavingThrowIncrease(SAVING_THROW_WILL, nWILL);
      eLink = EffectLinkEffects(eLink, eWILL);
      
      if (nTMPHP > 0) {
          eLink = EffectLinkEffects(eLink, EffectTemporaryHitpoints(nTMPHP));
      }
      
      if (nImmun > 0) {
          eLink = EffectLinkEffects(eLink, EffectDamageImmunityIncrease(DAMAGE_TYPE_SLASHING, nImmun));
          eLink = EffectLinkEffects(eLink, EffectDamageImmunityIncrease(DAMAGE_TYPE_PIERCING, nImmun));
          eLink = EffectLinkEffects(eLink, EffectDamageImmunityIncrease(DAMAGE_TYPE_BLUDGEONING, nImmun));
      }
      
      // VFX
      eLink = EffectLinkEffects(eLink, EffectVisualEffect(VFX_IMP_EVIL_HELP));
      eLink = EffectLinkEffects(eLink, EffectVisualEffect(VFX_IMP_PULSE_NEGATIVE));
      eLink = EffectLinkEffects(eLink, EffectVisualEffect(VFX_DUR_AURA_PULSE_RED_BLACK));
      eLink = ExtraordinaryEffect(eLink);
      SignalEvent(oPC, EventSpellCastAt(OBJECT_SELF, GetSpellId(), FALSE));
      PlayVoiceChat(VOICE_CHAT_BATTLECRY1);
      ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oPC, RoundsToSeconds(nDuration));
      

      }

      void RageJuggernaut (object oPC, int nDuration, int nLevel) {
      int nSTR, nCON, nMove;

      if (nLevel > 9) {
          nSTR = 4;
          nCON = 2;
          nMove = 20;
      } else if (nLevel > 6) {
          nSTR = 3;
          nCON = 2;
          nMove = 10;
      } else if (nLevel > 3) {
          nSTR = 3;
          nCON = 2;
          nMove = 10;
      } else {
          nSTR = 2;
          nCON = 2;
          nMove = 0;
      }
      
      effect eSTR, eCON, eMove, eCLARITY, eLink, eLink2, eBad;
      eSTR = EffectAbilityIncrease(ABILITY_STRENGTH, nSTR);
      eLink = EffectLinkEffects(eLink, eSTR);
      eCON = EffectAbilityIncrease(ABILITY_CONSTITUTION, nCON);
      eLink = EffectLinkEffects(eLink, eCON);
      
      if (nMove > 0) {
          eMove = EffectMovementSpeedIncrease(nMove);
          eLink = EffectLinkEffects(eLink, eMove);
      }
      
      // FREEDOM OF MOVEMENT
      eLink2 = EffectLinkEffects(eLink, EffectImmunity(IMMUNITY_TYPE_PARALYSIS));
      eLink2 = EffectLinkEffects(eLink, EffectImmunity(IMMUNITY_TYPE_ENTANGLE));
      eLink2 = EffectLinkEffects(eLink, EffectImmunity(IMMUNITY_TYPE_SLOW));
      eLink2 = EffectLinkEffects(eLink, EffectImmunity(IMMUNITY_TYPE_MOVEMENT_SPEED_DECREASE));
      
      if (nLevel > 6) eLink2 = EffectLinkEffects(eLink, EffectImmunity(IMMUNITY_TYPE_MIND_SPELLS)); // CLARITY
      
      // RESTORATION
      eBad = GetFirstEffect(oPC);
      
      //Search for negative effects
      while(GetIsEffectValid(eBad)) {
          if (GetEffectType(eBad) == EFFECT_TYPE_ABILITY_DECREASE ||
                  GetEffectType(eBad) == EFFECT_TYPE_AC_DECREASE ||
                  GetEffectType(eBad) == EFFECT_TYPE_ATTACK_DECREASE ||
                  GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_DECREASE ||
                  GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_IMMUNITY_DECREASE ||
                  GetEffectType(eBad) == EFFECT_TYPE_SAVING_THROW_DECREASE ||
                  GetEffectType(eBad) == EFFECT_TYPE_SPELL_RESISTANCE_DECREASE ||
                  GetEffectType(eBad) == EFFECT_TYPE_SKILL_DECREASE) {
              //Remove effect if it is negative.
              if(!GetIsSupernaturalCurse(eBad))
                  RemoveEffect(oPC, eBad);
          }
      
          eBad = GetNextEffect(oPC);
      }
      
      // VFX
      eLink = EffectLinkEffects(eLink, EffectVisualEffect(VFX_FNF_HOWL_WAR_CRY));
      eLink = EffectLinkEffects(eLink, EffectVisualEffect(VFX_DUR_FREEDOM_OF_MOVEMENT));
      eLink = EffectLinkEffects(eLink, EffectVisualEffect(VFX_IMP_SUPER_HEROISM));
      eLink = ExtraordinaryEffect(eLink);
      SignalEvent(oPC, EventSpellCastAt(OBJECT_SELF, GetSpellId(), FALSE));
      PlayVoiceChat(VOICE_CHAT_BATTLECRY1);
      ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oPC, RoundsToSeconds(nDuration));
      ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink2, oPC, RoundsToSeconds(2));
      

      }

      void SummonWraith(string Creature_ResRef, object oPC, int nDuration) {
      location lSelf = GetLocation(OBJECT_SELF);
      // Create Location in cut off cone
      // location lTarget = RndLoc(lSelf,3,1,BASE_SHAPE_CIRCLE,DIRECTION_SOUTH,42.5f);
      effect eSummon = EffectSummonCreature(Creature_ResRef, VFX_FNF_SUMMON_UNDEAD, 0.5f);
      // ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, lTarget, RoundsToSeconds(nDuration));
      object oWraith = GetObjectByTag(Creature_ResRef);
      ChangeToStandardFaction(oWraith, STANDARD_FACTION_DEFENDER);
      }

      void RageWraith (object oPC, int nDuration, int nLevel) {
      int nWraith, nConceal, nHP, nHP_total, nHP_current, nSTR, nCON, nWILL, nImmun, nTMPHP;

      if (nLevel > 9) {
          nWraith = 3;
          nConceal = 25;
          nSTR = 4;
          nCON = 4;
      } else if (nLevel > 7){
          nWraith = 2;
          nConceal = 20;
          nTMPHP = 20;
      } else if (nLevel > 5) {
          nWraith = 2;
          nConceal = 15;
      } else if (nLevel > 3) {
          nWraith = 1;
          nConceal = 10;
      } else {
          nWraith = 1;
          nConceal = 5;
          nSTR = 2;
          nCON = 2;
      }
      
      int nTimer = 0;
      
      for (nTimer = 0; nTimer < nWraith; nTimer++) {
          DelayCommand(1.0f, SummonWraith("spiffymadethis", oPC, nDuration));
      }
      
      PlayVoiceChat(VOICE_CHAT_BATTLECRY1);
      

      }

      void RageThunder (object oPC, int nDuration, int nLevel) {
      int nEleDR, nDmg;

      if (nLevel > 9) {
          nEleDR = 30;
          nDmg = 3;
      } else if (nLevel > 7) {
          nEleDR = 25;
          nDmg = 3;
      } else if (nLevel > 5) {
          nEleDR = 20;
          nDmg = 2;
      } else if (nLevel > 3) {
          nEleDR = 15;
          nDmg = 2;
      } else {
          nEleDR = 10;
          nDmg = 1;
      }
      
      effect eLink, eVisCall, eVisShield, eEleShield, eEleDR;
      // ELECTRICAL DMG
      object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(oPC));
      itemproperty iKeen = ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_ELECTRICAL, nDmg);
      object oWeapon = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC);
      object oOffhand = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC);
      
      if(GetIsObjectValid(oWeapon))
          IPSafeAddItemProperty(oWeapon, iKeen, RoundsToSeconds(nDuration), X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
      
      if(GetIsObjectValid(oOffhand))
          IPSafeAddItemProperty(oOffhand, iKeen, RoundsToSeconds(nDuration), X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
      
      // ELECTRICAL DR
      eEleDR = EffectDamageImmunityIncrease(DAMAGE_TYPE_ELECTRICAL, nEleDR);
      eLink = EffectLinkEffects(eLink, eEleDR);
      eLink = EffectLinkEffects(eLink, EffectVisualEffect(VFX_DUR_AURA_PULSE_BLUE_WHITE));
      eLink = EffectLinkEffects(eLink, EffectAttackIncrease(2));
      eLink = EffectLinkEffects(eLink, EffectAbilityIncrease(ABILITY_STRENGTH, 2));
      eLink = EffectLinkEffects(eLink, EffectAbilityIncrease(ABILITY_DEXTERITY,2));
      eLink = EffectLinkEffects(eLink, EffectACIncrease(1, AC_DODGE_BONUS, AC_VS_DAMAGE_TYPE_ALL));
      eLink = EffectLinkEffects(eLink, EffectSavingThrowIncrease(SAVING_THROW_REFLEX, 2, SAVING_THROW_TYPE_ALL));
      
      if (nLevel > 6) { // ELETRIC SHIELD + Call Lightining
          // ELETRICAL SHIELD
          eVisShield = EffectVisualEffect(VFX_IMP_LIGHTNING_S);
          eEleShield = EffectDamageShield(DAMAGE_BONUS_1d4, DAMAGE_BONUS_1, DAMAGE_TYPE_ELECTRICAL);
      
          if (nLevel > 9)  eEleShield = EffectDamageShield(DAMAGE_BONUS_1d6, DAMAGE_BONUS_1, DAMAGE_TYPE_ELECTRICAL);
      
          eLink = EffectLinkEffects(eLink, eEleShield);
          eLink = EffectLinkEffects(eLink, eVisShield);
          //eEleShield = EffectLinkEffects(eEleShield, eVisShield);
          SignalEvent(oPC, EventSpellCastAt(OBJECT_SELF, GetSpellId(), FALSE));
          RemoveEffectsFromSpell(oPC, GetSpellId());
          ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oPC, RoundsToSeconds(nDuration));
          eVisCall = EffectVisualEffect(VFX_IMP_LIGHTNING_M);
          eLink =  EffectDamage(d6(2), DAMAGE_TYPE_ELECTRICAL);
          eLink = EffectLinkEffects(eLink, eVisCall);
      
          // CALL LIGHTINING
          while(GetIsObjectValid(oTarget)) {
              if(spellsIsTarget(oTarget, SPELL_TARGET_SELECTIVEHOSTILE, OBJECT_SELF)) {
      

      // ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration));
      DelayCommand(GetRandomDelay(0.1, 0.5), ApplyEffectToObject(DURATION_TYPE_INSTANT, eLink, oTarget));
      }

              oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(OBJECT_SELF));
          }
      
          PlayVoiceChat(VOICE_CHAT_BATTLECRY1);
      }
      

      }

      void RageElf (object oPC, int nDuration, int nLevel) {
      int nStr, nDex, nConceal, nBlade;

      if (nLevel > 9) {
          nStr = 4;
          nDex = 4;
          nConceal = 20;
          nBlade = d6(6);
      } else if (nLevel > 7) {
          nStr = 4;
          nDex = 3;
          nConceal = 20;
          nBlade = d6(5);
      } else if (nLevel > 5) {
          nStr = 3;
          nDex = 3;
          nConceal = 15;
          nBlade = d6(4);
      } else if (nLevel > 3) {
          nStr = 2;
          nDex = 2;
          nConceal = 10;
          nBlade = d6(2);
      } else if (nLevel > 1) {
          nStr = 2;
          nDex = 2;
          nConceal = 10;
          nBlade = d6(2);
      } else {
          nStr = 2;
          nDex = 1;
          nConceal = 10;
          nBlade = d6(1);
      }
      
      PlayVoiceChat(VOICE_CHAT_BATTLECRY1);
      //Determine the duration by getting the con modifier after being modified
      effect eDex = EffectAbilityIncrease(ABILITY_DEXTERITY, nDex);
      effect eStr = EffectAbilityIncrease(ABILITY_STRENGTH, nStr);
      effect eConceal = EffectConcealment(nConceal);
      effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
      effect eLink = EffectLinkEffects(eLink, eDex);
      eLink = EffectLinkEffects(eLink, eStr);
      eLink = EffectLinkEffects(eLink, eConceal);
      eLink = EffectLinkEffects(eLink, eDur);
      eLink = EffectLinkEffects(eLink, EffectVisualEffect(VFX_DUR_GHOST_SMOKE_2));
      eLink = EffectLinkEffects(eLink, EffectVisualEffect(VFX_IMP_MAGBLUE));
      eLink = EffectLinkEffects(eLink, EffectVisualEffect(460));
      eLink = ExtraordinaryEffect(eLink);
      SignalEvent(OBJECT_SELF, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BARBARIAN_RAGE, FALSE));
      PlayVoiceChat(VOICE_CHAT_BATTLECRY1);
      ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, OBJECT_SELF, RoundsToSeconds(nDuration));
      // BLADE DANCE
      int nDC = 10 + GetAbilityModifier(ABILITY_DEXTERITY) + (nLevel / 2);
      object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_SMALL, GetLocation(oPC));
      DoWhirlwindAttack();     //ActionUseFeat(FEAT_WHIRLWIND_ATTACK, oEnemy)
      nBlade = GetReflexAdjustedDamage(nBlade, oTarget, nDC);
      effect eBlade = EffectDamage(nBlade, DAMAGE_TYPE_PIERCING);
      
      while(GetIsObjectValid(oTarget)) {
          if(spellsIsTarget(oTarget, SPELL_TARGET_SELECTIVEHOSTILE, OBJECT_SELF)) {
              ApplyEffectToObject(DURATION_TYPE_INSTANT, eBlade, oTarget);
          }
      
          oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(OBJECT_SELF));
      }
      

      }

      void RageDefault (object oPC, int nDuration, int nLevel) {
      int nWill, nStr, nCon, nImmun;

      if (nLevel > 9) {
          nWill = 3;
          nStr = 4;
          nCon = 4;
          nImmun = 20;
      } else if (nLevel > 7) {
          nWill = 2;
          nStr = 4;
          nCon = 3;
          nImmun = 20;
      } else if (nLevel > 5) {
          nWill = 2;
          nStr = 3;
          nCon = 3;
          nImmun = 15;
      } else if (nLevel > 3) {
          nWill = 1;
          nStr = 3;
          nCon = 2;
          nImmun = 15;
      } else {
          nWill = 1;
          nStr = 2;
          nCon = 1;
          nImmun = 10;
      }
      
      PlayVoiceChat(VOICE_CHAT_BATTLECRY1);
      //Determine the duration by getting the con modifier after being modified
      effect eStr = EffectAbilityIncrease(ABILITY_CONSTITUTION, nCon);
      effect eCon = EffectAbilityIncrease(ABILITY_STRENGTH, nStr);
      effect eWill = EffectSavingThrowIncrease(SAVING_THROW_WILL, nWill);
      effect eImmun = EffectDamageImmunityIncrease(DAMAGE_TYPE_SLASHING, nImmun);
      eImmun = EffectLinkEffects(eImmun, EffectDamageImmunityIncrease(DAMAGE_TYPE_PIERCING, nImmun));
      eImmun = EffectLinkEffects(eImmun, EffectDamageImmunityIncrease(DAMAGE_TYPE_BLUDGEONING, nImmun));
      effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
      effect eLink = EffectLinkEffects(eCon, eStr);
      eLink = EffectLinkEffects(eLink, eWill);
      eLink = EffectLinkEffects(eLink, eImmun);
      eLink = EffectLinkEffects(eLink, eDur);
      SignalEvent(OBJECT_SELF, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_BARBARIAN_RAGE, FALSE));
      //Make effect extraordinary
      eLink = ExtraordinaryEffect(eLink);
      effect eVis = EffectVisualEffect(VFX_IMP_IMPROVE_ABILITY_SCORE); //Change to the Rage VFX
      //Apply the VFX impact and effects
      ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, OBJECT_SELF, RoundsToSeconds(nDuration));
      ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF) ;
      

      }

      void main() {
      if(!GetHasFeatEffect(FEAT_BARBARIAN_RAGE)) {
      object oPC = OBJECT_SELF;
      int nLevel = GetLevelByClass(CLASS_TYPE_BARBARIAN);
      int nDuration = 7 + GetAbilityModifier(ABILITY_CONSTITUTION);
      string sBarbRage = GetLocalString (oPC, "sBarbRage");

          if ((sBarbRage == "") || (sBarbRage == "Default")) {
              RageDefault (oPC, nDuration, nLevel);
              return;
          }
      
          if (sBarbRage == "RageThunder") {
              RageThunder (oPC, nDuration, nLevel);
              return;
          }
      
          if (sBarbRage == "RageElf") {
              RageElf (oPC, nDuration, nLevel);
              return;
          }
      
          if (sBarbRage == "RageWraith") {
              RageWraith (oPC, nDuration, nLevel);
              return;
          }
      
          if (sBarbRage == "RageJuggernaut") {
              RageJuggernaut (oPC, nDuration, nLevel);
              return;
          }
      
          if (sBarbRage == "RageBerserker") {
              RageBerserker (oPC, nDuration, nLevel);
              return;
          }
      }
      

      }

      Puffy's bumbling Scum-goblin minion.

      1 Reply Last reply Reply Quote
      • S
        SpiffyMeister
        last edited by 16 Feb 2020, 19:40

        Code posted as well.

        Puffy's bumbling Scum-goblin minion.

        1 Reply Last reply Reply Quote
        • S
          SpiffyMeister
          last edited by 29 Feb 2020, 13:50

          13 days, no comments. I guess these are fine as is and will be going live.

          Puffy's bumbling Scum-goblin minion.

          Prof. MisclickP 1 Reply Last reply 1 Mar 2020, 00:33 Reply Quote
          • Prof. MisclickP
            Prof. Misclick @SpiffyMeister
            last edited by 1 Mar 2020, 00:33

            @SpiffyMeister said in New Barbarian Rages:

            13 days, no comments. I guess these are fine as is and will be going live.

            Good job Spiffy and co. Locking this thread. If anyone has feedback or suggestions please start a new post.

            As a reminder we likely will miss any suggestions/feed back on Discord for this or anything else. Please take the time to make a forum post and we’ll get to it when we can.

            Happy Gaming!

            Retired

            1 Reply Last reply Reply Quote
            • 1 / 1
            1 / 1
            • First post
              1/5
              Last post