class SyncedCallins

[source]

Functions called by the Engine (Synced).


methods


SyncedCallins.AllowBuilderHoldFire


function SyncedCallins.AllowBuilderHoldFire(
  unitID: integer,
  unitDefID: integer,
  action: number
) -> actionAllowed boolean

@param action - one of following:

-1 Build CMD.REPAIR Repair CMD.RECLAIM Reclaim CMD.RESTORE Restore CMD.RESURRECT Resurrect CMD.CAPTURE Capture

Called when a construction unit wants to “use his nano beams”.

[source]

SyncedCallins.AllowCommand


function SyncedCallins.AllowCommand(
  unitID: integer,
  unitDefID: integer,
  unitTeam: integer,
  cmdID: integer,
  cmdParams: number[],
  cmdOptions: CommandOptions,
  cmdTag: number,
  synced: boolean,
  fromLua: boolean
) -> whether boolean

@return whether - it should be let into the queue.

Called when the command is given, before the unit’s queue is altered.

The queue remains untouched when a command is blocked, whether it would be queued or replace the queue.

[source]

SyncedCallins.AllowDirectUnitControl


function SyncedCallins.AllowDirectUnitControl(
  unitID: integer,
  unitDefID: integer,
  unitTeam: integer,
  playerID: integer
) -> allow boolean

Determines if this unit can be controlled directly in FPS view.

[source]

SyncedCallins.AllowFeatureBuildStep


function SyncedCallins.AllowFeatureBuildStep(
  builderID: integer,
  builderTeam: integer,
  featureID: integer,
  featureDefID: integer,
  part: number
) -> whether boolean

@return whether - or not the change is permitted

Called just before a feature changes its build percentage.

Note that this is also called for resurrecting features, and for refilling features with resources before resurrection. On reclaim the part values are negative, and on refill and resurrect they are positive. Part is the percentage the feature be built or reclaimed per frame. Eg. for a 30 workertime builder, that’s a build power of 1 per frame. For a 50 buildtime feature reclaimed by this builder, part will be 100/-50(/1) = -2%, or -0.02 numerically.

[source]

SyncedCallins.AllowFeatureCreation


function SyncedCallins.AllowFeatureCreation(
  featureDefID: integer,
  teamID: integer,
  x: number,
  y: number,
  z: number
) -> whether boolean

@return whether - or not the creation is permitted

Called just before feature is created.

[source]

SyncedCallins.AllowResourceLevel


function SyncedCallins.AllowResourceLevel(
  teamID: integer,
  res: string,
  level: number
) -> whether boolean

@return whether - or not the sharing level is permitted

Called when a team sets the sharing level of a resource.

[source]

SyncedCallins.AllowResourceTransfer


function SyncedCallins.AllowResourceTransfer(
  oldTeamID: integer,
  newTeamID: integer,
  res: string,
  amount: number
) -> whether boolean

@return whether - or not the transfer is permitted.

Called just before resources are transferred between players.

[source]

SyncedCallins.AllowStartPosition


function SyncedCallins.AllowStartPosition(
  playerID: integer,
  teamID: integer,
  readyState: number,
  clampedX: number,
  clampedY: number,
  clampedZ: number,
  rawX: number,
  rawY: number,
  rawZ: number
) -> allow boolean

Whether a start position should be allowed

clamped{X,Y,Z} are the coordinates clamped into start-boxes, raw is where player tried to place their marker.

The readyState can be any one of:

0 - player picked a position, 1 - player clicked ready, 2 - player pressed ready OR the game was force-started (player did not click ready, but is now forcibly readied) or 3 - the player failed to load. The default ‘failed to choose’ start-position is the north-west point of their startbox, or (0,0,0) if they do not have a startbox.

[source]

SyncedCallins.AllowUnitBuildStep


function SyncedCallins.AllowUnitBuildStep(
  builderID: integer,
  builderTeam: integer,
  unitID: integer,
  unitDefID: integer,
  part: number
) -> whether boolean

@return whether - or not the build makes progress.

Called just before a unit progresses its build percentage.

[source]

SyncedCallins.AllowUnitCaptureStep


function SyncedCallins.AllowUnitCaptureStep(
  builderID: integer,
  builderTeam: integer,
  unitID: integer,
  unitDefID: integer,
  part: number
) -> whether boolean

@return whether - or not the capture makes progress.

[source]

SyncedCallins.AllowUnitCloak


function SyncedCallins.AllowUnitCloak(
  unitID: integer,
  enemyID: integer?
) -> whether boolean

@return whether - unit is allowed to cloak

[source]

SyncedCallins.AllowUnitCreation


function SyncedCallins.AllowUnitCreation(
  unitDefID: integer,
  builderID: integer,
  builderTeam: integer,
  x: number,
  y: number,
  z: number,
  facing: number
)
 -> allow boolean
 -> dropOrder boolean

Called just before unit is created.

[source]

SyncedCallins.AllowUnitKamikaze


function SyncedCallins.AllowUnitKamikaze(
  unitID: integer,
  targetID: integer
) -> whether boolean

@return whether - unit is allowed to selfd

[source]

SyncedCallins.AllowUnitTransfer


function SyncedCallins.AllowUnitTransfer(
  unitID: integer,
  unitDefID: integer,
  oldTeam: integer,
  newTeam: integer,
  capture: boolean
) -> whether boolean

@return whether - or not the transfer is permitted.

Called just before a unit is transferred to a different team.

[source]

SyncedCallins.AllowUnitTransport


function SyncedCallins.AllowUnitTransport(
  transporterID: integer,
  transporterUnitDefID: integer,
  transporterTeam: integer,
  transporteeID: integer,
  transporteeUnitDefID: integer,
  transporteeTeam: integer
) -> whether boolean

@return whether - or not the transport is allowed

[source]

SyncedCallins.AllowUnitTransportLoad


function SyncedCallins.AllowUnitTransportLoad(
  transporterID: integer,
  transporterUnitDefID: integer,
  transporterTeam: integer,
  transporteeID: integer,
  transporteeUnitDefID: integer,
  transporteeTeam: integer,
  x: number,
  y: number,
  z: number
) -> whether boolean

@return whether - or not the transport load is allowed

[source]

SyncedCallins.AllowUnitTransportUnload


function SyncedCallins.AllowUnitTransportUnload(
  transporterID: integer,
  transporterUnitDefID: integer,
  transporterTeam: integer,
  transporteeID: integer,
  transporteeUnitDefID: integer,
  transporteeTeam: integer,
  x: number,
  y: number,
  z: number
) -> whether boolean

@return whether - or not the transport unload is allowed

[source]

SyncedCallins.AllowWeaponInterceptTarget


function SyncedCallins.AllowWeaponInterceptTarget(
  interceptorUnitID: integer,
  interceptorWeaponID: integer,
  targetProjectileID: integer
) -> allowed boolean

Controls blocking of a specific intercept target from being considered during an interceptor weapon’s periodic auto-targeting sweep.

Only called for weaponDefIDs registered via Script.SetWatchWeapon.

[source]

SyncedCallins.AllowWeaponTarget


function SyncedCallins.AllowWeaponTarget(
  attackerID: integer,
  targetID: integer,
  attackerWeaponNum: integer,
  attackerWeaponDefID: integer,
  defPriority: number
)
 -> allowed boolean
 -> the number

@return the - new priority for this target (if you don’t want to change it, return defPriority). Lower priority targets are targeted first.

Controls blocking of a specific target from being considered during a weapon’s periodic auto-targeting sweep.

[source]

SyncedCallins.AllowWeaponTargetCheck


function SyncedCallins.AllowWeaponTargetCheck(
  attackerID: integer,
  attackerWeaponNum: integer,
  attackerWeaponDefID: integer
)
 -> allowCheck boolean
 -> ignoreCheck boolean

Determines if this weapon can automatically generate targets itself. See also commandFire weaponDef tag.

[source]

SyncedCallins.CommandFallback


function SyncedCallins.CommandFallback(
  unitID: integer,
  unitDefID: integer,
  unitTeam: integer,
  cmdID: integer,
  cmdParams: number[],
  cmdOptions: CommandOptions,
  cmdTag: number
) -> whether boolean

@return whether - to remove the command from the queue

Called when the unit reaches an unknown command in its queue (i.e. one not handled by the engine).

[source]

SyncedCallins.FeaturePreDamaged


function SyncedCallins.FeaturePreDamaged(
  featureID: integer,
  featureDefID: integer,
  featureTeam: integer,
  damage: number,
  weaponDefID: integer,
  projectileID: integer,
  attackerID: integer,
  attackerDefID: integer,
  attackerTeam: integer
)
 -> newDamage number
 -> impulseMult number

Called before damage is applied to the feature.

Allows fine control over how much damage and impulse is applied.

[source]

SyncedCallins.MoveCtrlNotify


function SyncedCallins.MoveCtrlNotify(
  unitID: integer,
  unitDefID: integer,
  unitTeam: integer,
  data: number
) -> whether boolean

@param data - was supposed to indicate the type of notification but currently never has a value other than 1 (“unit hit the ground”).

@return whether - or not the unit should remain script-controlled (false) or return to engine controlled movement (true).

Enable both Spring.MoveCtrl.SetCollideStop and Spring.MoveCtrl.SetTrackGround to enable this call-in.

[source]

SyncedCallins.ShieldPreDamaged


function SyncedCallins.ShieldPreDamaged(
  projectileID: integer,
  projectileOwnerID: integer,
  shieldWeaponNum: integer,
  shieldCarrierID: integer,
  bounceProjectile: boolean,
  beamEmitterWeaponNum: integer,
  beamEmitterUnitID: integer,
  startX: number,
  startY: number,
  startZ: number,
  hitX: number,
  hitY: number,
  hitZ: number
) -> if boolean

@return if - true the gadget handles the collision event and the engine does not remove the projectile

Called before any engine shield-vs-projectile logic executes.

If the weapon is a hitscan type (BeamLaser or LightningCanon) then proID is nil and beamEmitterWeaponNum and beamEmitterUnitID are populated instead.

[source]

SyncedCallins.TerraformComplete


function SyncedCallins.TerraformComplete(
  unitID: integer,
  unitDefID: integer,
  unitTeam: integer,
  buildUnitID: integer,
  buildUnitDefID: integer,
  buildUnitTeam: integer
) -> if boolean

@return if - true the current build order is terminated

Called when pre-building terrain levelling terraforms are completed (c.f. levelGround)

[source]

SyncedCallins.UnitPreDamaged


function SyncedCallins.UnitPreDamaged(
  unitID: integer,
  unitDefID: integer,
  unitTeam: integer,
  damage: number,
  paralyzer: boolean,
  weaponDefID: integer?,
  projectileID: integer?,
  attackerID: integer?,
  attackerDefID: integer?,
  attackerTeam: integer?
)
 -> newDamage number
 -> impulseMult number

@param weaponDefID - Synced Only

@param projectileID - Synced Only

@param attackerID - Synced Only

@param attackerDefID - Synced Only

@param attackerTeam - Synced Only

Called before damage is applied to the unit, allows fine control over how much damage and impulse is applied.

Called after every damage modification (even HitByWeaponId) but before the damage is applied

expects two numbers returned by lua code: 1st is stored under *newDamage if newDamage != NULL 2nd is stored under *impulseMult if impulseMult != NULL

[source]