Every calculation step should be considered as parallel. Therefore it is inacceptable to CHANGE anything global, like the map. However, you can REMOVE units by returning true
at ShouldBeDeleted()
, or CREATE units by returning a list of created units at Produces()
.
# | Action | Description |
---|---|---|
0 | Advanced Unit: AdvancedCalculations=true | Finds all units which needs special treatment, like players or shots. |
1 | advancedUnit.HeartbeatBegin | Indicates a new Heartbeat. |
2 | advancedUnit.CalculatePhase1 | Calls the generic CalculatePhase1. |
3 | Mobile Unit Gravity | Calculates and adapts gravity calculation. |
4 | Mobile Unit Movement | Limits movement speed and progresses in movement. |
5 | advancedUnit various ColissionChecks | Colission Checks and call of .Collides for every unit. |
6 | advancedUnit.ShouldBeDeleted → .BeforeDelete & .Delete | Checks, if the unit should be deleted, if yes: delete cycle. |
7 | advancedUnit.Produces | Checks, if the unit produces other units. |
8 | advancedUnit.CalculateGatheredResources → .GatheredResources | Informs you about energy, radiation and also gathered resources. |
9 | advancedUnit.CalculatePhase2 | Calls the generic CalculatePhase1. |
10 | advancedUnit.HeartbeatDone | Completed heartbeat calculation cycle. |
11 | playerUnit.Scan | Executes scan results and merges unit see/no see informations. |
12 | Merge, Update. | Merges Units and send Status Updates. |