Transforming Knights into footmen on death

Aserpent

New Member
Reaction score
2
Just a quick question, hopefully simple, I'm making a TD and I'm thinking it'd be nice if a knight were to die, they would 'respawn' or continue on their path as a footman.
 

GFreak45

I didnt slap you, i high 5'd your face.
Reaction score
130
you could use the hydra ability that spawns 2 baby hydra when the mother dies, just change it to the footman and changing it to just 1
 

GFreak45

I didnt slap you, i high 5'd your face.
Reaction score
130
event a unit enters playable map area
condition unit type of triggering unit is footman equal to true
action tell footman to move to end of ur maze

so short wasnt even gonna
Trigger:
  • it
 

Aserpent

New Member
Reaction score
2
event a unit enters playable map area
condition unit type of triggering unit is footman equal to true
action tell footman to move to end of ur maze

so short wasnt even gonna
Trigger:
  • it
Trigger:
  • Yes, but I am doing it in the format <a href="http://this" target="_blank" class="link link--external" rel="nofollow ugc noopener">http://www.thehelper.net/forums/showthread.php/45616-Guide-Tower-Defense</a> says.
    • Meaning I&#039;d have to figure out at what point the path the footman is up to, but I&#039;d prefer not to use 30000 regions
 

inevit4ble

Well-Known Member
Reaction score
38
Your link is broken but you could try something like this. This will send the footman to the closest region but 1 problem is if the region behind the unit is the closest region then it will send it to that one.
You will need to:
Create Trigger - Event Map Initialization -> Set RegionsArray[1] = Region 1, Set RegionsArray[2] = Region 2, etc
RegionsArray[] is a Region array
MyPoint is a point variable
UnitPosition is a Point variable
TempReal is a real
SaveReal is a real
ClosestRegion is a Integer
call RemoveLocation(udg_<PointVariableName>) is to destroy leaks in memory to ensure smooth gaming

And the loop (For each Integer A...) needs to run from 1 to the last number of RegionsArray[]
So is you have saved 43 regions into the array then it needs to run from 1 to 43 ( provided that you didn't use the first open slot of the array "[0]" )

Trigger:
  • Untitled Trigger 001
    • Events
      • Unit - A unit enters (Playable map area)
    • Conditions
      • (Unit-type of (Triggering unit)) Equal to Footman
    • Actions
      • Set SaveReal = 1000000000.00
      • For each (Integer A) from 1 to 10, do (Actions)
        • Loop - Actions
          • Set MyPoint = (Center of RegionsArray[(Integer A)])
          • Set UnitPosition = (Position of (Triggering unit))
          • Set TempReal = (Distance between MyPoint and UnitPosition)
          • If (All Conditions are True) then do (Then Actions) else do (Else Actions)
            • If - Conditions
              • TempReal Less than or equal to SaveReal
            • Then - Actions
              • Set ClosestRegion = (Integer A)
              • Set SaveReal = TempReal
            • Else - Actions
          • Custom script: call RemoveLocation(udg_MyPoint)
          • Custom script: call RemoveLocation(udg_UnitPosition)
      • Set MyPoint = (Center of RegionsArray[ClosestRegion])
      • Unit - Order (Triggering unit) to Move To MyPoint
      • Custom script: call RemoveLocation(udg_MyPoint)
 

NotInTheFace

Member
Reaction score
17
If you instead use the event "A unit spawns a summoned unit" you can get both the dying knight (summoning unit) and the new footman (summoned unit) and transfer whatever info you need from one to the other. For example, you could set the knight's custom value to a number that represents its destination region, then when the footman is summoned, you copy that value and order him to the right region.
 

Aserpent

New Member
Reaction score
2
If you instead use the event "A unit spawns a summoned unit" you can get both the dying knight (summoning unit) and the new footman (summoned unit) and transfer whatever info you need from one to the other. For example, you could set the knight's custom value to a number that represents its destination region, then when the footman is summoned, you copy that value and order him to the right region.
I will try this, if it fails, I will try inevitable's way.
 

GFreak45

I didnt slap you, i high 5'd your face.
Reaction score
130
well how do you determine what point the footman is going to? its a variable correct? try this

Trigger:
  • Knight dies
    • Events
      • Unit - A unit Dies
    • Conditions
      • Unit Type - Unit type of dying unit equal to Knight
    • Actions
      • Set Loc_Temp[1] = position of Dying unit
      • Set Loc_Temp[2] = Target_Point[however you access dying unit] (this can be a hashtable load)
      • Set Angle_Temp = Facing angle of Dying unit
      • Custom Script: Call removelocation(UDG_Target_Point[same as top]) or you can use clear child hashtable of the knight if thats what they use
      • Unit - Create 1 Footman for owner of dying unit at Loc_Temp[1] facing Angle_Temp degrees
      • Unit - Order last created unit to move to Loc_Temp[2]
      • Custom Script: Call removelocation(UDG_Loc_Temp[1])
      • Custom Script: Call removelocation(UDG_Loc_Temp[2])


The only problem i see with inevitables method is that they may go to a region behind them, halfway across the distance between points
i did think about that method though
 

GFreak45

I didnt slap you, i high 5'd your face.
Reaction score
130
do this, i read the triggers for it....

Trigger:
  • Footman Spawn
    • Events
      • Unit - A unit is summoned
    • Conditions
      • Unit - Unit type of summoned unit is a footman
    • Actions
      • Unit - Set custom value of summoned unit to custom value of summoning unit - 1
      • Trigger - Run (your movement trigger i dont know the name of it but the one from the tutorial) &lt;gen&gt;
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top