• Listen to a special audio message from Bill Roper to the Hive Workshop community (Bill is a former Vice President of Blizzard Entertainment, Producer, Designer, Musician, Voice Actor) 🔗Click here to hear his message!
  • Read Evilhog's interview with Gregory Alper, the original composer of the music for WarCraft: Orcs & Humans 🔗Click here to read the full interview.
  • It's time for the first HD Modeling Contest of 2025. Join the theme discussion for Hive's HD Modeling Contest #7! Click here to post your idea!

[Spell] How can I make Knights really good on open fields?

Status
Not open for further replies.
Level 10
Joined
Nov 5, 2008
Messages
536
On my map, Knights are supposed to be really good on open areas. The enemy units will lose if they fight Knight on open areas, so they need to lure them into the woods or in small areas.

I don't know how I can make the Knight really good on open areas. I mean, all units are either good or bad in all areas.

Any suggestions of abilities that can be added to the Knights to make them good ONLY on open areas?
 
Level 8
Joined
Jul 3, 2011
Messages
251
You could make regions on all the areas, when a knight enters any open area region, gives him the item ability claws of attack + <custom damage value> or however you want to buff him.

Then when he leaves the region, remove it from him.
 
Level 10
Joined
Nov 5, 2008
Messages
536
You could make regions on all the areas, when a knight enters any open area region, gives him the item ability claws of attack + <custom damage value> or however you want to buff him.

Then when he leaves the region, remove it from him.

Yeah that is a thought. I also thought about adding some Charge ability. The Charge only works if the Knight has been running for a while.. So it can't stop and activate it.. But I have no idea how to make that
 
Level 8
Joined
Jul 3, 2011
Messages
251
Every 0.03 seconds (or whatever you want) load the knights real x and y in a hashtable, set 2 reals as its current x and y, save its current in the place of the loaded reals and check if the distance between them is greater than <whatever value you want> using
JASS:
 function DistanceBetweenPoints takes location locA, location locB returns real
    local real dx = GetLocationX(locB) - GetLocationX(locA)
    local real dy = GetLocationY(locB) - GetLocationY(locA)
    return SquareRoot(dx * dx + dy * dy)
endfunction
which would be x3 = x2 - x1, y3 = y2 - y1 then SquareRoot(x3 * x3 + y3 * y3) to get the distance between the reals.

You can use this to check how much he is moving per 0.03 seconds, and if it goes on long enough you can do the charge, i wont go into detail about the charge now, heatwave where i am and i think im about to melt D:

EDIT: Dont use 0.03 timer, thats a stupid idea i dont know why i said it, best to use a 0.25 timer minimum i should think.
 
Level 26
Joined
Aug 18, 2009
Messages
4,097
Would be more beautiful to not have extra mechanics that only activate in open areas but just due to existing ones that naturally synergize.

So some suggestions:
-high movement speed to be able to fully utilize the space and rearrange formation
-low turn rate/movement window to hamper changing the direction
-big collision size, so stacking in tight areas only needs to queuing and they block each other when escaping
-in open areas, it's easier to retreat or amass knights as stated, so regeneration and abilities that have use over time should be more effective
 
Status
Not open for further replies.
Top