• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

[Campaign] Warcraft 2 Remake: Spells Balance

Status
Not open for further replies.
Level 20
Joined
Nov 20, 2005
Messages
1,178
I'm looking for advices:

If you're familiar with wc2 campaigns, one thing that would certainly come to attention is the spell system, and how unbalanced it was, let's just be honest.
I need to rebalance the spells system of the game, because in the way it is at the moment, it terribly lacks balance:

- Bloodlust: it basically TRIPLES the damage of units. Even if not fully upgraded, a group of Ogres can chew through anything in this condition. What i did to emulate this spell in the remake is altering the original wc3 bloodlust for units to have increased attack speed, so to resemble the effects of the wc2 bloodlust. The problem is that even at 2.20x attack speed, the ogres are still killing machines!
So far the only way i've seen of countering an attack wave of this type in the least painful way is to mass-spam Mages with Polymorph, but there has to be another way as well. Towers collapse pretty quickly too!

- Healing: it heals 10 hp any 60 mana points! What's the balance here? Ok, i get it, it can heal anything organic in the game, can keep up units durability and stuff, but when it comes to directly face Bloodlusted units it sux, and it sux bad. Even if i gave it autocast function, bloodlust still has a major upper hand.

- Polymorph: i wanted to balance this, because it was never pleasant back then, to have one of your own units killed all of a sudden from nowhere. What i did was giving a duration to the spell of "only" 5 minutes. During this amount of time the sheep can be killed ofc, but at least it won't stay morphed forever, and the player can go tactical, arranging defensive formations around morphed units if he wants to save them(being important units) etc.

- Exorcism: Can't seem to find any viable spell for this. All i get is a Holy Bolt spell which can hence has the function of healing my units as well(without the autocast function). If i can't find any viable replacement for this what should i do? Shall i give it a more powerful damage/heal factor, giving a justification that "it purifies the soul of the target unit", obviously with an increased mana requirement? The difference between this spell, used in this way, and the normal Healing would be the absence of the autocast function.

How do i sort things out?
 

Bribe

Code Moderator
Level 50
Joined
Sep 26, 2009
Messages
9,464
With WarCraft 3 and StarCraft 2 those previous spells become insanely imbalanced thanks to SmartCast.

The way to fix this problem is to entirely disable SmartCast. One such way is like this:

  • Force Dumbcast
    • Events
      • Unit - A unit starts the effect of an ability
    • Conditions
    • Actions
      • Set TempAbility = (Ability being cast)
      • Set TempOrder = (Current order of (Triggering unit))
      • Set TempPoint = (Target point of ability being cast)
      • Set TempTarget = (Target unit of ability being cast)
      • Set TempGroup = Units selected by (Triggering player)
      • Unit - Remove (Triggering unit) from TempGroup
      • Unit Group - Pick all units in TempGroup and do (Actions)
        • Loop - Actions
          • Set TempUnit = (Picked unit)
          • If (All conditions are True) then
            • (Level of TempAbility for TempUnit) Greater than 0
          • Then - Actions
            • If (All conditions are True) then
              • TempTarget Not Equal to No unit
            • Then - Actions
              • Unit - Order TempUnit to TempOrder TempTarget
            • Else - Actions
              • Unit - Order TempUnit to TempOrder TempPoint
          • Else - Actions
      • Custom script: call DestroyGroup(udg_TempGroup)
      • Custom script: call RemoveLocation(udg_TempPoint)
 
Status
Not open for further replies.
Top