User:Polavux/Technical:Bloons TD 5 (multiplatform)/Weapons: Difference between revisions
more properties |
|||
| Line 222: | Line 222: | ||
== Tasks == | == Tasks == | ||
A <code>Task</code> is a process that executes when a weapon fires. An array of tasks is executed in its array order, lowest first. Some tasks, such as Projectile, AreaOfEffect, and Effect tasks, can also have tasks, which are referred to as "sub-tasks" and execute under different conditions. | A <code>Task</code> is a process that executes when a weapon fires. An array of tasks is executed in its array order, lowest first. Some tasks, such as Projectile, AreaOfEffect, and Effect tasks, can also have tasks, which are referred to as "sub-tasks" and execute under different conditions. The <code>Type</code> determines which task to use and what properties are allowed. | ||
===AreaOfEffect=== | ===AreaOfEffect=== | ||
| Line 232: | Line 232: | ||
!Behavior when absent | !Behavior when absent | ||
|- | |- | ||
|<code> | |<code>CanHitLead</code> | ||
| | | | ||
|Boolean | |||
| | |||
| | |||
|- | |||
|<code>DisabledTasks</code> | |||
| | |||
|Array of numbers | |||
| | |||
| | |||
|- | |||
|<code>Duration</code> | |||
| | |||
|Number | |Number | ||
| | | | ||
| | | | ||
|- | |- | ||
| Line 242: | Line 254: | ||
|Number | |Number | ||
|Yes | |Yes | ||
| | |||
|- | |||
|<code>Range</code> | |||
|The radius of the area of effect. | |||
|Number | |||
|Yes | |||
| | |||
|- | |||
|<code>Sort</code> | |||
| | |||
| | |||
| | |||
| | | | ||
|- | |- | ||
| Line 248: | Line 272: | ||
|Array of objects | |Array of objects | ||
| | | | ||
| | |||
|- | |||
|<code>UseRangeModifier</code> | |||
|If <code>true</code>, the range scales with range modifiers. Exclusive to ''Bloons TD Battles''. | |||
|Boolean | |||
|No | |||
| | | | ||
|} | |} | ||
===BloonSpawnedEvent=== | ===BloonSpawnedEvent=== | ||
Executes its tasks on | Executes its tasks on each Bloon that spawns. | ||
{| class="wikitable" | {| class="wikitable" | ||
!Key | !Key | ||
| Line 263: | Line 293: | ||
|How long the event lasts for. | |How long the event lasts for. | ||
|Number | |Number | ||
| | |||
| | |||
|- | |||
|<code>Tasks</code> | |||
| | |||
|Array of objects | |||
| | | | ||
| | | | ||
| Line 268: | Line 304: | ||
===ChainTasks=== | ===ChainTasks=== | ||
{|class="wikitable sortable" | |||
!Key | |||
!Description | |||
!Type | |||
!Required? | |||
!Behavior when absent | |||
|- | |||
|<code>CutOffDistance</code> | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
|<code>NumJumps</code> | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
|<code>NumPersists</code> | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
|<code>Tasks</code> | |||
| | |||
| | |||
| | |||
| | |||
|} | |||
===ChangeSubtaskEnabled=== | ===ChangeSubtaskEnabled=== | ||
| Line 297: | Line 364: | ||
!Required? | !Required? | ||
!Behavior when absent | !Behavior when absent | ||
|- | |||
|<code>AutoCollect</code> | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
|<code>Bank</code> | |||
| | |||
|Boolean | |||
| | |||
| | |||
|- | |||
|<code>BonusMultiplierForManualCollection</code> | |||
| | |||
| | |||
|No | |||
| | |||
|- | |||
|<code>ClickOnly</code> | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
|<code>CollectionRadius</code> | |||
|The radius in which the collectable can be collected from. | |||
|Number | |||
| | |||
| | |||
|- | |- | ||
|<code>Duration</code> | |<code>Duration</code> | ||
| Line 304: | Line 401: | ||
| | | | ||
|- | |- | ||
|<code> | |<code>GivesCashWhenExpired</code> | ||
|The | | | ||
| | | | ||
| | |||
| | |||
|- | |||
|<code>GraphicName</code> | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
|<code>LimitHealth</code> | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
|<code>LivesMultiplier</code> | |||
|The multiplier for how many lives are given, the total lives given is <math>\text{Lives Range} \times \text{LivesMultiplier}</math>. | |||
|Number | |||
| | | | ||
| | | | ||
| Line 313: | Line 428: | ||
|The minimum and maximum number of lives the collectable at base gives. | |The minimum and maximum number of lives the collectable at base gives. | ||
|Array of numbers | |Array of numbers | ||
| | |||
| | |||
|- | |||
|<code>LoopAnimation</code> | |||
| | |||
| | |||
| | | | ||
| | | | ||
|- | |- | ||
|<code>MoneyMultiplier</code> | |<code>MoneyMultiplier</code> | ||
|The multiplier for how much cash is given, the total cash given is <math>\text{Money Range} \times \text{ | |The multiplier for how much cash is given, the total cash given is <math>\text{Money Range} \times \text{MoneyMultiplier}</math>. | ||
|Number | |Number | ||
| | | | ||
| | | | ||
|- | |- | ||
|<code> | |<code>MoneyRange</code> | ||
|The | |The minimum and maximum number of cash the collectable at base gives. | ||
| | |Array of numbers | ||
| | | | ||
| | | | ||
|- | |- | ||
|<code> | |<code>MoneyRangeIncreasePerRound</code> | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
| Line 337: | Line 458: | ||
|The [[#Movement|movement]] of the collectable. | |The [[#Movement|movement]] of the collectable. | ||
|Object | |Object | ||
| | |||
| | |||
|- | |||
|<code>SpriteFile</code> | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
|<code>Tasks</code> | |||
| | |||
| | |||
| | | | ||
| | | | ||
| Line 376: | Line 509: | ||
===Damage=== | ===Damage=== | ||
Deals damage to Bloons. For weapons, this deals damage to its target directly (i.e. Sniper Monkey behavior). For projectiles, deals damage on collision. | Deals damage to Bloons. For weapons, this deals damage to its target directly (i.e. Sniper Monkey behavior). For tasks that collide with Bloons (projectiles, areas of effect, etc), this deals damage on collision. | ||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
!Key | !Key | ||
| Line 385: | Line 518: | ||
|- | |- | ||
|<code>Amount</code> | |<code>Amount</code> | ||
|The amount of damage dealt. (If this weapon/projectile's task list does not have a <code>MultiLayerDamage</code> | |The amount of damage dealt. (If this weapon/projectile's task list does not have a <code>MultiLayerDamage</code> status below it, the damage will not pass through layers.) | ||
|Number | |Number | ||
| | | | ||
| Line 421: | Line 554: | ||
|} | |} | ||
|String | |String | ||
| | |||
| | |||
|- | |||
|<code>InformDamageFromParentTask</code> | |||
| | |||
| | |||
| | | | ||
| | | | ||
| Line 463: | Line 602: | ||
!Behavior when absent | !Behavior when absent | ||
|- | |- | ||
|<code> | |<code>AcquireTarget</code> | ||
| | | | ||
| | | | ||
| | |||
| | |||
|- | |||
|<code>AimAtTarget</code> | |||
|If <code>true</code>, then the angles of the projectiles are offset by the angle of the shot. | |||
|Boolean | |||
| | |||
| | |||
|- | |||
|<code>AimOffsetsAtTarget</code> | |||
| | |||
| | |||
| | | | ||
| | | | ||
| Line 472: | Line 623: | ||
|The change in angle for all subsequent projectiles. | |The change in angle for all subsequent projectiles. | ||
|Number | |Number | ||
| | |||
| | |||
|- | |||
|<code>DisabledTasks</code> | |||
| | |||
| | |||
| | | | ||
| | | | ||
|- | |- | ||
|<code>FireCount</code> | |<code>FireCount</code> | ||
| | |The number of times each subtask executes when this executes. | ||
|Number | |Number | ||
| | | | ||
| | | | ||
|- | |- | ||
|<code> | |<code>InitialOffset</code> | ||
| | |The angle of the "first" projectile. | ||
| | |Number | ||
| | |||
| | |||
|- | |||
|<code>MarkIDForProjectiles</code> | |||
| | |||
| | |||
| | | | ||
| | | | ||
| Line 491: | Line 654: | ||
|Array of objects | |Array of objects | ||
|No | |No | ||
| | |||
|- | |||
|<code>Radius</code> | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
|<code>ShotDelay</code> | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
|<code>Tasks</code> | |||
|A list of tasks to execute when this task executes. | |||
|Array of objects | |||
| | |||
| | | | ||
|} | |} | ||
| Line 501: | Line 682: | ||
!Required? | !Required? | ||
!Behavior when absent | !Behavior when absent | ||
|- | |||
|<code>CollidesOnlyWithTarget</code> | |||
| | |||
|Boolean | |||
|No | |||
|Defaults to <code>false</code> | |||
|- | |- | ||
|<code>CollisionType</code> | |<code>CollisionType</code> | ||
|Determines how the projectile handles collision with Bloons. | |Determines how the projectile handles collision with Bloons. | ||
*<code>Once</code>: can only collide with the same Bloon or its children once. | |||
*<code>Continual</code>: can collide with any Bloon once per frame, even ones it has already hit. | |||
*<code>None</code>: cannot collide with Bloons. | |||
|String | |||
| | |||
| | |||
|- | |||
|<code>DisabledTasks</code> | |||
| | |||
|Array of numbers | |||
|No | |||
| | |||
|- | |||
|<code>DrawLayer</code> | |||
| | |||
|Number | |||
|No | |||
| | |||
|- | |- | ||
|<code> | |<code>ForcePersists</code> | ||
| | |If true, pierce cannot be modified. | ||
|Boolean | |||
|No | |||
|Defaults to <code>false</code> | |||
|- | |- | ||
|<code> | |<code>GraphicName</code> | ||
| | | | ||
|String | |String | ||
| | | | ||
| | | | ||
|- | |- | ||
|<code> | |<code>GraphicsAtPierceLevels</code> | ||
| | | | ||
| | |||
|No | |||
| | |||
|- | |||
|<code>HasFixedAngle</code> | |||
| | |||
|Boolean | |Boolean | ||
|No | |No | ||
|Defaults to <code>false</code> | |Defaults to <code>false</code> | ||
|- | |||
|<code>HasLimitedDuration</code> | |||
| | |||
|Boolean | |||
|No | |||
| | |||
|- | |||
|<code>HasRandomOrientation</code> | |||
| | |||
|Boolean | |||
|No | |||
| | |||
|- | |||
|<code>IgnoreStatusEffect</code> | |||
| | |||
| | |||
|No | |||
| | |||
|- | |||
|<code>LimitedDuration</code> | |||
| | |||
| | |||
|No | |||
| | |||
|- | |||
|<code>LoopAnimation</code> | |||
| | |||
| | |||
|No | |||
| | |||
|- | |||
|<code>LoopForever</code> | |||
| | |||
| | |||
|No | |||
| | |||
|- | |||
|<code>Movement</code> | |||
|The [[#Movement|movement]] of the projectile. | |||
|Object | |||
| | |||
| | |||
|- | |- | ||
|<code>NumPersists</code> | |<code>NumPersists</code> | ||
| Line 528: | Line 780: | ||
|Number | |Number | ||
| | | | ||
| | |||
|- | |||
|<code>OnlyCollidePastCutOff</code> | |||
| | |||
|Boolean | |||
|No | |||
| | | | ||
|- | |- | ||
| Line 533: | Line 791: | ||
| | | | ||
|Number | |Number | ||
|No | |||
|Uses the sprite's bounding box as a collision box | |||
|- | |||
|<code>RemoveAfterRoundStart</code> | |||
| | |||
| | | | ||
|No | |||
| | |||
|- | |||
|<code>RemoveOnRoundEnd</code> | |||
| | |||
| | |||
|No | |||
| | |||
|- | |||
|<code>SpinRate</code> | |||
| | |||
|Boolean | |||
|No | |||
| | | | ||
|- | |- | ||
| Line 542: | Line 818: | ||
| | | | ||
|- | |- | ||
|<code> | |<code>StopAtEndOfCurves</code> | ||
| | | | ||
| | | | ||
|No | |||
| | |||
|- | |||
|<code>SpriteFile</code> | |||
| | |||
|String | |||
| | | | ||
| | | | ||
| Line 554: | Line 836: | ||
| | | | ||
|- | |- | ||
|<code> | |<code>TasksToProcessOnCollision</code> | ||
| | | | ||
| | | | ||
| | |||
| | |||
|- | |||
|<code>TasksToProcessOnTerminate</code> | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
|<code>TerminateOnTowerRemoved</code> | |||
| | |||
|Boolean | |||
| | |||
| | |||
|- | |||
|<code>TerminateOnZeroPersists</code> | |||
|If <code>true</code>, the projectile expires when all pierce is consumed. | |||
|Boolean | |||
| | |||
| | |||
|- | |||
|<code>TerminatePastCutoff</code> | |||
| | |||
| | |||
| | | | ||
| | | | ||
| Line 562: | Line 868: | ||
===RandomFire=== | ===RandomFire=== | ||
Targets a random point within a specified radius. | |||
{| class="wikitable" | {| class="wikitable" | ||
!Key | !Key | ||
| Line 568: | Line 875: | ||
!Required? | !Required? | ||
!Behavior when absent | !Behavior when absent | ||
|- | |||
|<code>FireFullRange</code> | |||
|If <code>true</code>, this can only target points at the full extent of the range. Ignored if <code>OnlyTargetPathLocations</code> is set to <code>true</code>. | |||
|Boolean | |||
| | |||
| | |||
|- | |||
|<code>FollowTarget</code> | |||
| | |||
|Boolean | |||
| | |||
| | |||
|- | |||
|<code>HasRandomOrientation</code> | |||
| | |||
|Boolean | |||
|No | |||
| | |||
|- | |||
|<code>MinimumRange</code> | |||
|The minimum targeting radius. | |||
|Number | |||
|No | |||
| | |||
|- | |||
|<code>OnlyTargetPathLocations</code> | |||
|If <code>true</code>, this can only target points on a path within range (i.e. Spike Factory behavior). | |||
|Boolean | |||
|No | |||
|Defaults to <code>false</code> | |||
|- | |||
|<code>OnlyTargetPlacementLocations</code> | |||
| | |||
|Boolean | |||
|No | |||
|Defaults to <code>false</code> | |||
|- | |||
|<code>PlacementTowerType</code> | |||
| | |||
|String | |||
|No | |||
| | |||
|- | |- | ||
|<code>Range</code> | |<code>Range</code> | ||
|The radius | |The maximum targeting radius. | ||
|Number | |Number | ||
| | | | ||
| | | | ||
|- | |- | ||
|<code> | |<code>TargetIsWeaponTaskOrigin</code> | ||
| | | | ||
|Boolean | |Boolean | ||
| | | | ||
| | | | ||
|- | |- | ||
|<code> | |<code>Tasks</code> | ||
|A list of tasks to execute when this task executes. | |||
|Array of objects | |||
| | | | ||
| | | | ||
|- | |||
|<code>TerminateOnZeroPersists</code> | |||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
|- | |||
|<code>UseRangeModifier</code> | |||
|If <code>true</code>, the targeting range scales with range modifiers. Exclusive to ''Bloons TD Battles''. | |||
|Boolean | |||
|No | |||
|Defaults to <code>false</code> | |||
|- | |||
|<code>WaitTimeRange</code> | |||
| | | | ||
|Array of numbers | |||
|No | |||
| | | | ||
|} | |} | ||
| Line 611: | Line 972: | ||
===RemoveStatusEffect=== | ===RemoveStatusEffect=== | ||
{| class="wikitable" | |||
!Key | |||
!Description | |||
!Type | |||
!Required? | |||
!Behavior when absent | |||
|- | |||
|<code>Status</code> | |||
| | |||
| | |||
| | |||
| | |||
|} | |||
=== RestoreAmmo === | === RestoreAmmo === | ||
| Line 625: | Line 999: | ||
| | | | ||
| | | | ||
|- | |||
|<code>Proxied</code> | |||
|If <code>true</code>, also restore ammo to the weapon that spawned this aircraft. | |||
|Boolean | |||
|No | |||
|Defaults to <code>false</code> | |||
|- | |- | ||
|<code>RoundRobin</code> | |<code>RoundRobin</code> | ||
| Line 631: | Line 1,011: | ||
| | | | ||
| | | | ||
|- | |- | ||
|<code>SlotIndex</code> | |<code>SlotIndex</code> | ||
| Line 670: | Line 1,044: | ||
|<code>FireMode</code> | |<code>FireMode</code> | ||
|A list of flags specifying something idk | |A list of flags specifying something idk | ||
*<code>FireNormal</code> (unused) | |||
*<code>FireOnApply</code> | |||
*<code>FireOnCommand</code> (unused) | |||
*<code>FireOnLastPop</code> (unused) | |||
*<code>FireOnPop</code> (unused) | |||
*<code>FireOnRemove</code> (unused) | |||
*<code>RemoveOnLastApply</code> | |||
|Array of strings | |Array of strings | ||
|No | |No | ||
| Line 806: | Line 1,165: | ||
===TimerFire=== | ===TimerFire=== | ||
Executes | |||
{| class="wikitable" | |||
{| class="wikitable | |||
!Key | !Key | ||
!Description | !Description | ||
| Line 815: | Line 1,173: | ||
!Behavior when absent | !Behavior when absent | ||
|- | |- | ||
|<code> | |<code>CompoundSprite</code> | ||
| | | | ||
| | |String | ||
| | |||
| | |||
|- | |||
|<code>InitialTime</code> | |||
| | |||
| | | | ||
|No | |||
| | | | ||
|- | |- | ||
|<code> | |<code>Loops</code> | ||
| | |||
| | | | ||
| | | | ||
| | | | ||
|- | |- | ||
|<code> | |<code>NumLoops</code> | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
|- | |- | ||
|<code> | |<code>SpriteList</code> | ||
| | |||
|Array of strings | |||
| | |||
| | | | ||
| | |- | ||
|<code>Tasks</code> | |||
|A list of tasks to execute when the time is up. | |||
|Array of objects | |||
| | | | ||
| | | | ||
|- | |- | ||
|<code> | |<code>TimeDelay</code> | ||
|The | |The delay, in seconds. | ||
|Number | |Number | ||
| | | | ||
| | | | ||
|} | |||
=== TowerModifier === | |||
{| class="wikitable sortable" | |||
!Key | |||
!Description | |||
!Type | |||
!Required? | |||
!Behavior when absent | |||
|- | |- | ||
|<code> | |<code>ApplyToUserTower</code> | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
|- | |- | ||
|<code> | |<code>CanApplyToUserTower</code> | ||
| | | | ||
| | | | ||
| | | | ||
| | | | ||
|- | |||
|<code>Duration</code> | |||
|How long the modifier is active for. | |||
|Number | |||
|No | |||
|Defaults to <code>-1</code> | |||
|- | |- | ||
|<code>Modifier</code> | |<code>Modifier</code> | ||
| Line 894: | Line 1,279: | ||
| | | | ||
|- | |- | ||
|<code> | |<code>ModifyMovingTowers</code> | ||
| | | | ||
| | |||
| | |||
| | |||
|- | |||
|<code>ModifyNewlySpawnedTowers</code> | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
|<code>NumPersists</code> | |||
| | |||
|Number | |||
| | |||
| | |||
|- | |||
|<code>Period</code> | |||
|The amount of attacks it takes for the modifier to be applied. | |||
|Number | |||
| | |||
| | |||
|- | |||
|<code>PriorityLevel</code> | |||
| | |||
|Number | |||
| | |||
| | |||
|- | |||
|<code>Range</code> | |||
|Range of the modifier. | |||
|Number | |||
| | |||
| | |||
|- | |||
|<code>ReplacesPriorityLevel</code> | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
|<code>RequiresEmptyPriorityLevel</code> | |||
|If true, the modifier's priority level must be empty for it to work, else, it can stack with other modifiers of that priority level | |||
|Boolean | |||
| | |||
| | |||
|- | |||
|<code>RoundDuration</code> | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
|<code>Stackable</code> | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
|<code>TargetIsWeaponTaskOrigin</code> | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
|<code>TargetingFilter</code> | |||
|What the modifier targets. | |||
|Array of objects | |||
| | |||
| | |||
|- | |||
|<code>TaskPersistsWithDuration</code> | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
|<code>Tasks</code> | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
|<code>TerminateOnUserTargetChange</code> | |||
| | |||
| | |||
| | |||
| | |||
|- | |||
|<code>TerminateOnUserUpgrade</code> | |||
| | |||
|Boolean | |||
| | |||
| | |||
|- | |||
|<code>WeaponSlotIndex</code> | |||
|The slot index of the weapon the modifier is applied to. | |||
|Number | |Number | ||
| | | | ||
| | | | ||
|} | |} | ||
==Movement == | ==Movement == | ||
<code>Movement</code> is a property shared by Projectiles, Collectables, and TextEffects. | <code>Movement</code> is a property shared by Projectiles, Collectables, and TextEffects. The <code>Type</code> determines how it moves and what sub-properties are allowed. | ||
===Forward=== | ===Forward=== | ||
| Line 923: | Line 1,404: | ||
|Number | |Number | ||
|No | |No | ||
| | |Defaults to <code>-1</code> | ||
|- | |- | ||
|<code>SpeedDecay</code> | |<code>SpeedDecay</code> | ||
| Line 1,061: | Line 1,542: | ||
|Number | |Number | ||
|No | |No | ||
| | |Defaults to <code>-1</code> | ||
|- | |- | ||
|<code>SeekAngle</code> | |<code>SeekAngle</code> | ||