User Tools

Site Tools


cw4:ai_orbitals

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
cw4:ai_orbitals [2021/03/31 15:54] Karsten75cw4:ai_orbitals [2025/02/14 14:57] (current) – external edit 127.0.0.1
Line 21: Line 21:
 $raincooldown:4000  $raincooldown:4000 
 $orbitalbombcooldown:6000 $orbitalbombcooldown:6000
 +
 +$$ignoreunits:"605a5a9f-03b7-430c-bcea-31c4d7067324"
 +
 +:FindBestTarget
 +#First, find all ignoreunits
 +GetUnitsByType(<-ignoreunits 0) ->ignoreunitslist
 +if(GetListCount(<-ignoreunitslist)  gt0)
 +           do (GetListCount(<-ignoreunitslist) 0)
 +trace2(GetUnitCell(<-ignoreunitslist[I]))
 +                      ApplyToDamageMap(<-ignoreunitslist[I] GetUnitCell(<-ignoreunitslist[I] ) 3 500 false)
 +           loop
 +endif
 +GetMaxCreeperCellWithDamage  ->*orbitalZ ->*orbitalX
 +if(GetListCount(<-ignoreunitslist)  gt0)
 +           do (GetListCount(<-ignoreunitslist) 0)
 +                      ApplyToDamageMap(<-ignoreunitslist[I] GetUnitCell(<-ignoreunitslist[I] ) 3 -500 false)
 +           loop
 +endif
 +ClearList(<-ignoreunitslist)
  
 :Frame :Frame
 GetOrbitalCount <-*orbitals + ->*orbitals GetOrbitalCount <-*orbitals + ->*orbitals
 SetOrbitalCount(0) SetOrbitalCount(0)
- +#trace(<-*orbitals)
-trace(<-*orbitals)+
  
 #Singularity plus Conversion #Singularity plus Conversion
 if ((<-*orbitals gt (6))  and (<-*orbitalbomb eq0) and (<-*rainstorm neq (1))) #Fire Singularity if ((<-*orbitals gt (6))  and (<-*orbitalbomb eq0) and (<-*rainstorm neq (1))) #Fire Singularity
-           CreateUnitOnTerrain("singularity" GetMaxCreeperCellWithDamage 0)+           @FindBestTarget 
 +           CreateUnitOnTerrain("singularity" <-*orbitalX <-*orbitalZ 0)
            <-*orbitals 1 - ->*orbitals            <-*orbitals 1 - ->*orbitals
            1 ->*orbitalbomb            1 ->*orbitalbomb
Line 37: Line 56:
 endif endif
 if((<-*orbitalbomb eq (1)) and (GetGameUpdateCount gt(<-*orbitalbombcount 900 +))) #Singularity finished, fire Conversion if((<-*orbitalbomb eq (1)) and (GetGameUpdateCount gt(<-*orbitalbombcount 900 +))) #Singularity finished, fire Conversion
-           CreateUnitOnTerrain("conversion" GetMaxCreeperCellWithDamage 0)+           CreateUnitOnTerrain("conversion" <-*orbitalX <-*orbitalZ 0)
            <-*orbitals 5 - ->*orbitals            <-*orbitals 5 - ->*orbitals
            2 ->*orbitalbomb            2 ->*orbitalbomb
Line 54: Line 73:
 if ((<-*orbitals gt (2))  and (<-*orbitalbomb neq (1)) and (<-*orbitalbomb neq (2)) and (<-*rainstorm eq0))  if ((<-*orbitals gt (2))  and (<-*orbitalbomb neq (1)) and (<-*orbitalbomb neq (2)) and (<-*rainstorm eq0)) 
 #If we're not in the middle of, or recovering from a Conversion Bomb #If we're not in the middle of, or recovering from a Conversion Bomb
-           CreateUnitOnTerrain("rain" GetMaxCreeperCellWithDamage 0)+           @FindBestTarget 
 +           CreateUnitOnTerrain("rain" <-*orbitalX <-*orbitalZ 0)
            <-*orbitals 2 - ->*orbitals            <-*orbitals 2 - ->*orbitals
            1 ->*rainstorm            1 ->*rainstorm
Line 71: Line 91:
 :Once :Once
 RegisterForMSG("MSG_FrameAdvance" "Frame") RegisterForMSG("MSG_FrameAdvance" "Frame")
 +0 ->*orbitalX
 +0 ->*orbitalZ
 0 ->*orbitals 0 ->*orbitals
 0 ->*orbitalbomb 0 ->*orbitalbomb
cw4/ai_orbitals.1617206096.txt.gz · Last modified: 2025/02/14 14:56 (external edit)