UnitType
UnitType
extends UnlockableContent
| field | type | default | notes |
|---|---|---|---|
| envRequired | int | 0 | Environmental flags that are all required for this unit to function. 0 = any environment |
| envEnabled | int | 1 | The environment flags that this unit can function in. If the env matches any of these, it will be enabled. |
| envDisabled | int | 16 | The environment flags that this unit cannot function in. If the env matches any of these, it will explode or be disabled. |
| speed | float | 1.1 | movement speed (world units/t) |
| boostMultiplier | float | 1.0 | movement speed (world units/t) |
| rotateSpeed | float | 5.0 | movement speed (world units/t) |
| baseRotateSpeed | float | 5.0 | movement speed (world units/t) |
| drag | float | 0.3 | movement speed (world units/t) |
| accel | float | 0.5 | movement speed (world units/t) |
| hitSize | float | 6.0 | movement speed (world units/t) |
| deathShake | float | -1.0 | movement speed (world units/t) |
| stepShake | float | -1.0 | movement speed (world units/t) |
| rippleScale | float | 1.0 | movement speed (world units/t) |
| riseSpeed | float | 0.08 | movement speed (world units/t) |
| fallSpeed | float | 0.018 | movement speed (world units/t) |
| missileAccelTime | float | 0.0 | movement speed (world units/t) |
| health | float | 200.0 | movement speed (world units/t) |
| armor | float | 0.0 | movement speed (world units/t) |
| range | float | -1.0 | movement speed (world units/t) |
| maxRange | float | -1.0 | movement speed (world units/t) |
| mineRange | float | 70.0 | movement speed (world units/t) |
| buildRange | float | 220.0 | movement speed (world units/t) |
| crashDamageMultiplier | float | 1.0 | movement speed (world units/t) |
| wreckHealthMultiplier | float | 0.25 | movement speed (world units/t) |
| dpsEstimate | float | -1.0 | movement speed (world units/t) |
| clipSize | float | -1.0 | movement speed (world units/t) |
| drownTimeMultiplier | float | 1.0 | movement speed (world units/t) |
| strafePenalty | float | 0.5 | movement speed (world units/t) |
| researchCostMultiplier | float | 50.0 | movement speed (world units/t) |
| groundLayer | float | 60.0 | movement speed (world units/t) |
| flyingLayer | float | -1.0 | movement speed (world units/t) |
| payloadCapacity | float | 8.0 | movement speed (world units/t) |
| buildSpeed | float | -1.0 | movement speed (world units/t) |
| aimDst | float | -1.0 | movement speed (world units/t) |
| buildBeamOffset | float | 3.8 | movement speed (world units/t) |
| mineBeamOffset | float | -Infinity | movement speed (world units/t) |
| targetPriority | float | 0.0 | movement speed (world units/t) |
| shadowElevation | float | -1.0 | movement speed (world units/t) |
| shadowElevationScl | float | 1.0 | movement speed (world units/t) |
| engineOffset | float | 5.0 | movement speed (world units/t) |
| engineSize | float | 2.5 | movement speed (world units/t) |
| engineLayer | float | -1.0 | movement speed (world units/t) |
| itemOffsetY | float | 3.0 | movement speed (world units/t) |
| lightRadius | float | -1.0 | movement speed (world units/t) |
| lightOpacity | float | 0.6 | movement speed (world units/t) |
| softShadowScl | float | 1.0 | movement speed (world units/t) |
| fogRadius | float | -1.0 | movement speed (world units/t) |
| waveTrailX | float | 4.0 | movement speed (world units/t) |
| waveTrailY | float | -3.0 | movement speed (world units/t) |
| trailScl | float | 1.0 | movement speed (world units/t) |
| isEnemy | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| flying | boolean | false | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| wobble | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| targetAir | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| targetGround | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| faceTarget | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| circleTarget | boolean | false | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| autoDropBombs | boolean | false | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| targetBuildingsMobile | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| canBoost | boolean | false | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| boostWhenBuilding | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| boostWhenMining | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| logicControllable | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| playerControllable | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| controlSelectGlobal | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| allowedInPayloads | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| hittable | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| killable | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| targetable | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| vulnerableWithPayloads | boolean | false | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| pickupUnits | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| physics | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| canDrown | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| useUnitCap | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| coreUnitDock | boolean | false | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| createWreck | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| createScorch | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| lowAltitude | boolean | false | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| rotateToBuilding | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| allowLegStep | boolean | false | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| legPhysicsLayer | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| hovering | boolean | false | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| omniMovement | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| rotateMoveFirst | boolean | false | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| healFlash | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| canHeal | boolean | false | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| singleTarget | boolean | false | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| forceMultiTarget | boolean | false | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| canAttack | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| hidden | boolean | false | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| internal | boolean | false | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| internalGenerateSprites | boolean | false | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| bounded | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| naval | boolean | false | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| autoFindTarget | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| targetUnderBlocks | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| alwaysShootWhenMoving | boolean | false | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| hoverable | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| alwaysCreateOutline | boolean | false | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| generateFullIcon | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| squareShape | boolean | false | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| drawBuildBeam | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| drawMineBeam | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| drawCell | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| drawItems | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| drawShields | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| drawBody | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| drawSoftShadow | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| drawMinimap | boolean | true | if true, this unit counts as an enemy in the wave counter (usually false for support-only units) |
| aiController | Prov<? extends UnitController> | {code} | The default AI controller to assign on creation. |
| controller | Func |
get() : new CommandAI() | Function that chooses AI controller based on unit entity. |
| constructor | Prov<? extends Unit> | null | Creates a new instance of this unit class. |
| abilities | Seq |
[] | list of "abilities", which are various behaviors that update each frame |
| weapons | Seq |
[] | All weapons that this unit will shoot with. |
| immunities | ObjectSet |
new ObjectSet<>() | None of the status effects in this set can be applied to this unit. |
| healColor | Color | 98ffa9ff | color that this unit flashes when getting healed (if healFlash is true) |
| lightColor | Color | fbd367ff | Color of light that this unit produces when lighting is enabled in the map. |
| shieldColor | Color | null | override for unit shield colour. |
| deathSound | Sound | bang | sound played when this unit explodes (not when it is shot down) |
| loopSound | Sound | none | sound played on loop when this unit is around. |
| loopSoundVolume | float | 0.5 | volume of loop sound |
| fallEffect | Effect | fallSmoke | effect that this unit emits when falling |
| fallEngineEffect | Effect | fallSmoke | effect created at engine when unit falls. |
| deathExplosionEffect | Effect | dynamicExplosion | effect created when this unit dies |
| treadEffect | Effect | null | optional effect created when this tank moves |
| parts | Seq |
[] | extra (usually animated) visual parts |
| engines | Seq |
[] | list of engines, or "thrusters" |
| useEngineElevation | boolean | true | if false, the thruster is always displayed at its normal size regardless of elevation |
| engineColor | Color | null | override for all engine colors |
| engineColorInner | Color | ffffffff | color for inner portions of engines |
| trailLength | int | 0 | length of engine trail (if flying) or wave trail (if naval) |
| trailColor | Color | null | override for engine trail color |
| flowfieldPathType | int | -1 | Cost type ID for flow field/enemy AI pathfinding. |
| pathCost | PathCost | null | Function used for calculating cost of moving with ControlPathfinder. Does not affect "normal" flow field pathfinding. |
| pathCostId | int | 0 | ID for path cost, to be used in the control path finder. This is the value that actually matters; do not assign manually. Set in init(). |
| sample | Unit | null | A sample of the unit that this type creates. Do not modify! |
| targetFlags | BlockFlag[] | [null] | Flags to target based on priority. Null indicates that the closest target should be found. The closest enemy core is used as a fallback. |
| allowChangeCommands | boolean | true | A value of false is used to hide command changing UI in unit factories. |
| commands | Seq |
[] | Commands available to this unit through RTS controls. An empty array means commands will be assigned based on unit capabilities in init(). |
| defaultCommand | UnitCommand | null | Command to assign to this unit upon creation. Null indicates the first command in the array. |
| stances | Seq |
[] | Stances this unit can have. An empty array means stances will be assigned based on unit capabilities in init(). |
| outlineColor | Color | 565666ff | color for outline generated around sprites |
| outlineRadius | int | 3 | thickness for sprite outline |
| outlines | boolean | true | if false, no sprite outlines are generated |
| itemCapacity | int | -1 | amount of items this unit can carry; <0 to determine based on hitSize. |
| ammoCapacity | int | -1 | amount of ammo this unit can hold (if the rule is enabled); <0 to determine based on weapon fire rate. |
| ammoType | AmmoType | copper) | ammo this unit uses, if that system is enabled. |
| mineTier | int | -1 | max hardness of ore that this unit can mine (<0 to disable) |
| mineSpeed | float | 1.0 | mining speed in weird arbitrary units |
| mineWalls | boolean | false | whether this unit can mine ores from floors/walls, respectively |
| mineFloor | boolean | true | whether this unit can mine ores from floors/walls, respectively |
| mineHardnessScaling | boolean | true | if true, harder materials will take longer to mine |
| mineSound | Sound | minebeam | continuous sound emitted when mining. |
| mineSoundVolume | float | 0.6 | volume of mining sound. |
| mineItems | Seq |
[Copper, Lead, Titanium, Thorium] | Target items to mine. Used in MinerAI |
| legCount | int | 4 | number of legs this unit has (must have the correct type to function!) |
| legGroupSize | int | 2 | size of groups in which legs move. for example, insects (6 legs) usually move legs in groups of 3. |
| legLength | float | 10.0 | total length of a leg (both segments) |
| legSpeed | float | 0.1 | total length of a leg (both segments) |
| legForwardScl | float | 1.0 | total length of a leg (both segments) |
| legBaseOffset | float | 0.0 | total length of a leg (both segments) |
| legMoveSpace | float | 1.0 | total length of a leg (both segments) |
| legExtension | float | 0.0 | total length of a leg (both segments) |
| legPairOffset | float | 0.0 | total length of a leg (both segments) |
| legLengthScl | float | 1.0 | total length of a leg (both segments) |
| legStraightLength | float | 1.0 | total length of a leg (both segments) |
| legMaxLength | float | 1.75 | total length of a leg (both segments) |
| legMinLength | float | 0.0 | total length of a leg (both segments) |
| legSplashDamage | float | 0.0 | total length of a leg (both segments) |
| legSplashRange | float | 5.0 | total length of a leg (both segments) |
| baseLegStraightness | float | 0.0 | total length of a leg (both segments) |
| legStraightness | float | 0.0 | total length of a leg (both segments) |
| legBaseUnder | boolean | false | If true, the base (further away) leg region is drawn under instead of over. |
| lockLegBase | boolean | false | If true, legs are locked to the base of the unit instead of being on an implicit rotating "mount". |
| legContinuousMove | boolean | false | If true, legs always try to move around even when the unit is not moving (leads to more natural behavior) |
| flipBackLegs | boolean | true | TODO neither of these appear to do much |
| flipLegSide | boolean | false | TODO neither of these appear to do much |
| emitWalkSound | boolean | true | Whether to emit a splashing noise in water. |
| emitWalkEffect | boolean | true | Whether to emit a splashing effect in water (fasle implies emitWalkSound false). |
| mechLandShake | float | 0.0 | screen shake amount for when this mech lands after boosting |
| mechSideSway | float | 0.54 | parameters for mech swaying animation |
| mechFrontSway | float | 0.1 | parameters for mech swaying animation |
| mechStride | float | -1.0 | parameters for mech swaying animation |
| mechStepParticles | boolean | false | whether particles are created when this mech takes a step |
| mechLegColor | Color | 6e7080ff | color that legs change to when moving, to simulate depth |
| treadRects | Rect[] | [] | list of treads as rectangles in IMAGE COORDINATES, relative to the center. these are mirrored. |
| treadFrames | int | 18 | number of frames of movement in a tread |
| treadPullOffset | int | 0 | how much of a top part of a tread sprite is "cut off" relative to the pattern; this is corrected for |
| floorMultiplier | float | 1.0 | how affected this unit is by terrain |
| segments | int | 0 | number of independent segments |
| segmentUnits | int | 1 | TODO wave support - for multi-unit segmented units, this is the number of independent units that are spawned |
| segmentUnit | UnitType | null | unit spawned in segments; if null, the same unit is used |
| segmentEndUnit | UnitType | null | unit spawned at the end; if null, the segment unit is used |
| segmentLayerOrder | boolean | true | true - parent segments are on higher layers; false - parent segments are on lower layers than head |
| segmentMag | float | 2.0 | magnitude of sine offset between segments |
| segmentScl | float | 4.0 | magnitude of sine offset between segments |
| segmentPhase | float | 5.0 | magnitude of sine offset between segments |
| segmentRotSpeed | float | 1.0 | magnitude of sine offset between segments |
| segmentMaxRot | float | 30.0 | magnitude of sine offset between segments |
| segmentSpacing | float | -1.0 | magnitude of sine offset between segments |
| segmentRotationRange | float | 80.0 | magnitude of sine offset between segments |
| crawlSlowdown | float | 0.5 | magnitude of sine offset between segments |
| crushDamage | float | 0.0 | magnitude of sine offset between segments |
| crawlSlowdownFrac | float | 0.55 | magnitude of sine offset between segments |
| lifetime | float | 300.0 | lifetime of this missile. |
| homingDelay | float | 10.0 | ticks that must pass before this missile starts homing. |
| baseRegion | TextureRegion | null | |
| legRegion | TextureRegion | null | |
| region | TextureRegion | null | |
| previewRegion | TextureRegion | null | |
| shadowRegion | TextureRegion | null | |
| cellRegion | TextureRegion | null | |
| itemCircleRegion | TextureRegion | null | |
| softShadowRegion | TextureRegion | null | |
| jointRegion | TextureRegion | null | |
| footRegion | TextureRegion | null | |
| legBaseRegion | TextureRegion | null | |
| baseJointRegion | TextureRegion | null | |
| outlineRegion | TextureRegion | null | |
| treadRegion | TextureRegion | null | |
| mineLaserRegion | TextureRegion | null | |
| mineLaserEndRegion | TextureRegion | null | |
| wreckRegions | TextureRegion[] | null | |
| segmentRegions | TextureRegion[] | null | |
| segmentCellRegions | TextureRegion[] | null | |
| segmentOutlineRegions | TextureRegion[] | null | |
| treadRegions | TextureRegion[][] | null |