EntitySystemCategory
- Weapon
- The default
- This will work on a player entity, but it will target and fire automatically, paying no attention to player input
- PlayerDirectedWeapon
- Only for weapons you want to trigger on the left mouse button (or firing stick).
- This will work on a non-player entity, like an familiar, but it only fire when you fire and will generally fire at the cursor
- DirectUseSystem
- basically it's like a weapon in terms of obeying reload times, ammo requirements, etc, but it doesn't do any targeting or emit any shots; its behavior is defined by other stuff
- right now the only point is in conjunction with OnUse_ParentEntity modifiers
- doesn't require shot_type, damage_type, shots_per_salvo, attack_power, range_actual, targeting_logic
- if the system also has required_item_type and required_item_amount, it will require and deduct that amount of that item from the player to work
DamageType
- Ballistic
- Tracking
- Gravity
- Deployment
- Laser
- Energy
- Ion
- Concussive
- Piercing
- Poison
- Fire
- Acid
- Lightning
- Explosive
- "Explosive" gets the MissileShotDamage modifier and not the NormalShotDamage one, and vice versa for non-Explosive.
- "Explosive" shots can reveal secret doors on direct collision
DifficultyType
- VeryEasy
- Easy
- Normal
- Hard
- Misery
FiringTiming
- AllTheTime
- always fires if there's any eligible target at all, even if not in range
- OnlyInRange
- only fires when there's something in range
- WhenParentEntityHit
- only fires when the parent entity is hit by something (which authorizes one salvo)
- Never
- never does normal salvo logic; useful with systems with category=DirectUseSystem
TargetingLogic
- Direct
- fires at where the target is now
- Lead
- fires at where this shot would intercept the target at its present speed and course. If the target is travelling too fast for the shot to intercept at any angle, this just shoots at the target's current location.
- Dumbfire
- fires in a straight line from the firing ship at the angle the firing ship is currently facing
FourDirection
RoomType
- Starting
- Item
- Secret
- Shop
- Miniboss
- Challenge
- Boss_Rectangle
- Boss_Large
- Standard
- TunnelWide
- TunnelTall
- Quad
- FatVertical
- FatHorizontal
- Square
- Boss_Square
- Boss_RectEdged
- SquareNE
- SquareSW
- StandardEW
- StandardNS
EntityModifierProbationType
- NoMissileUse
- NoEnergyUse
- NoTakingDamage
- NoHealingHull
- NoUsingConsumable
FamiliarType
- NormalOrbit
- stays relative to the master ship, never collides with walls, moves around in smooth-ish arcs from random offset to random offset (similar to movement of armadas around planets on the TLF metamap)
- SimpleCircleOrbit
- stays relative to the master ship, never collides with walls, moves around in a smooth-ish circle around the master ship
- NormalShipBehavior
- basically acts like a normal ship, according to the behavior flag. For example, you could use this with behavior=Wanderer or behavior=CardinalMover
- will spawn on top of the master entity
EntityModifierType
These require attributes "math" and "magnitude" (see below for those)
- MaxHealth
- MaxShields
- Range
- Range that shots will live, specifically. Doesn't do much for BulletPattern stuff.
- ReloadTime
- MovementSpeed
- ShotSize
- Applies to the size of shots generated by this entity, not to the entity itself.
- MySize
- Applies to the entity itself. So if you want a system that causes its shots to be huge you can give it:
- <modifier target="MyShots" type="MySize" math="Multiply" magnitude="4" />
- NormalShotDamage
- Applies to the damage of shots generated by this entity, not to the entity itself.
- doesn't apply to melee damage, or the player's missiles
- MissileShotDamage
- Applies to the damage of shots generated by this entity, not to the entity itself.
- AreaOfEffect_Self
- only makes sense on shots, forces the shot to be aoe
- MeleeDamage
- Applies to the damage of shots generated by this entity, not to the entity itself.
- this is the implicit "on-touch" damage that happens when the player's hitbox overlaps an enemy hitbox
- IncomingDamage
- accepts (but does not require) the damage_type attribute
- if specified, only applies to damage from that source
- if not specified, applies to all damage
- Acceleration
- Deceleration
- this refers to how quickly an entity slows down from its current speed to zero.
- If you want to adjust how fast an entity moves, you want MovementSpeed instead.
- InventoryChangePerSecond
- also requires "related_item" attribute, see below
- only does anything when it applies to the player's entity
- DamagePerSecond
- does damage to the thing with the modifier every sim-step
- uses damage_type
- DamagePerSecond_IfMoving
- similar to DamagePerSecond, but only has an impact if the ship is moving under power (not decelerating or being knocked back or whatever)
- MyOwnDamage
- unlike NormalShotDamage, which only impacts shots generated by the entity with that modifier, this one is for the shots themselves, and modifies the damage it does on impact
- SystemAutoFireDuringAfterburner
- during afterburner, if this system is on the player ship and would not normally be fired (its key isn't being held or whatever), it fires anyway and the shots are aimed directly behind the ship
- RevealsWholeMap
- when the player has this modifier, the whole map for the current floor is revealed; if the player still has this modifier after a floor transition it reveals that new floor as well
- RevealsShopsItemRoomsAndBossRoom
- similar to RevealsWholeMap, but just for shop, item, and boss rooms
- SystemCannotBeDropped
- if the player has this on their ammo system, they cannot pick up any item that would cause their ammo system to be destroyed or swapped out
- same deal with consumable system
- similar with main gun system (no pickups destroy it, but some can swap it out)
- CannotPickUpItems
- if the player has this, they cannot pick up any items
These require that "math" and "magnitude" be absent, as they're just on/off flags
- ReflectsOffTerrain
- Comes back at the opposite angle it came in on.
- RicochetsOffTerrain
- Comes back at a different angle than it came in on (if it was a shallow angle of incidence, the angle of reflection is shallow, etc)
- IgnoresCollisionWithNonWallTerrain
- Passes through Shootable and Bombable obstacles, but not the Indestructible obstacles (look like walls) or the exterior wall that bounds the room.
- NonMeleeCannotFire
- Prevents all its normal weapons from firing; only the implicit on-touch-damage systems will work during the duration
- DestroysTouchingShootables
- If touches a shootable while this modifier is applied, that shootable is destroyed.
- DestroysTouchingBombables
- Same deal with bombables.
- IgnoresCollisionWithWallTerrain
- Passes through Indestructible obstacles (look like walls) and the exterior wall that bounds the room. Does not pass through shootables or bombables (but you can set that flag too)
- SystemDisabledAndInvisible
- System doesn't render or do anything while this is applied.
- PhasedOut
- entity draws at half alpha
- entity cannot be hit by shots
- entity is immune to damage
- Self_DestroyEnemyShots
- when on a shot, makes it behave like its firing system had shot_destroys_other_shots
- Self_NotDestroyedOnCollisionWithShip
- when on a shot, makes it behave like its firing system had shot_is_not_stopped_by_hitting
- ItemCosts
- modifies requires_item_amount values where related_item matches requires_item_type
- notably, used with Energy, this can make energy weapons cost more or less energy to fire
- ItemGains
- modifies on_pickup_grants_amount values where related_item matches on_pickup_grants_item
- notably, used with Credits, this can increase the value of future credit drops
- InventoryCapacity
- modifies the max amount of related_item that you can store
- notably, used with Energy, this can increase or decrease the player's energy storage capacity
- HealthGainOnEnemyKill
- when an entity (not system) with this kills a ship, it gains this much health
- partial gain (less than one point) is stored and can be applied as actual health gain if a later kill brings it up to a full point (if it happens in the same room)
- ItemGainOnEnemyKill
- when an entity (not system) with this kills a ship, the player's inventory of related_item changes by this amount (can be negative, if you wanted a credit fine for killing something, for example)
- HardensAfterTimeStationary
- when an entity has this modifier, and has not moved under power, it shifts towards a dark gray color (maxing out when time not under power >= the value of this modifier)
- when its time not under power >= the value of this modifier, the ship cannot take damage
- StoreItemPrices
- if the player has this, it modifies all credit_cost values
FlockBehaviorType
- Attacker
- It comes chasing after you, but moving directly for you and not paying attention to walls.
- Not going to work well in enclosed areas. Once it gets in firing range it will stop, and it will move out of range if you get a bit closer to it. It’s kiting you, basically.
- Stationary
- sits there without moving.
- Wanderer
- wanders around from point to point at random.
- Changes direction when it hits an obstacle or wall, or when it goes a certain distance (defined below).
- Totally separate properties that are only relevant when using wanderer (so I’ll show them here):
- wander_distance_min (int)
- wander_distance_max (int)
- These two properties, default 300 and 600 respectively, say how far the enemy will move before considering changing directions (assuming it doesn’t hit something else first).
- In other words, when it starts moving it chooses a target that is rand(min,max) distance away.
- PathfindingAttacker
- More sophisticated tracking of you, trying to come after you.
- Will collide with walls as if was 64x64 in size when in this mode, so big enemies using this may wind up seeming to go through impossible gaps if you use this on them. Best for smaller enemies.
- LineOfSightAttacker
- Same as Attacker mode, but will move toward the player if it has line of sight on the player. This will work well in any sort of space, but mainly for enemies that lurk.
- CardinalMover
- Moves around in the four cardinal directions only, turning in a new direction when it hits an obstruction. If moves for 5 seconds with no collision, will potentially change direction.
- Totally separate property that is only relevant when using cardinal mover (so I’ll show it here):
- cardinal_mover_random_turn_interval (float)
- Default 5. This is what sets the “if moves for x seconds with no collision, will potentially change direction” number.
- Zamboni
- travels up until it hits a wall
- then goes one tile right
- then goes down until it hits a wall
- then goes one tile right
- repeat
- if it ever hits a situation where it cannot go right, it repeats the above with "left" instead; and vice versa
- FamiliarFollower
- like Attacker
- on entity: familiar_follower_leash_distance (int)
- if this entity is at least this far from the player, it pathfinds to the player
- if this entity is pathfinding to the player, and is no longer at least this far from the player, that path order is cleared and it falls back on Attacker behavior
- FamiliarCreditGathering
- pathfinds to the credit drop that it has the shortest path to
- if it can't find a path to any credit drop it reverts to FamiliarFollower for the rest of the room (to avoid frequent path checks to all the inaccessible credit drops, if any)
- if it touches a credit drop, it does the normal player-picked-it-up logic
- on entity: familiar_credit_gatherer_does_something_every_x_credits (int)
- every time this entity's total gathered credits (in this room; familiar state is not retained between rooms) reaches this value, it does "something" (not yet defined)
- FamiliarRam
- like FamiliarFollower
- on entity: familiar_ram_charge_distance (int)
- if this entity is within this distance of a hostile target that it can hit, it pathfinds to that entity
- used in conjunction with a short-ranged attack with an aoe and the destroys_firing_entity flag, it can make a kamikaze ram; otherwise it can be given guns to harass the target
InventoryItemType
- Energy
- Keycard
- Missile
- Credit
MathType
- Add
- Just adds to whatever base value is there.
- Multiply
- Multiplies the result. Note: all multiply modifiers are applied AFTER all add modifiers.
- Set
- Sets the result to this value, completely ignoring the base value and any add or multiply modifiers.
- If there's more than one Set modifier for a particular modifier type applying at once, the one with the lowest (non-negative) value takes precedence
- this allows for capping MaxHealth, where the thing that can override the cap is a lower cap
- doesn't work with negative values (that support can be added if necessary, but it didn't fit the framework naturally)
AnchorLocation
- Center
- Left
- Right
- Up
- Down
- UpLeft
- UpRight
- DownLeft
- DownRight
- CenterLeft
- CenterRight
ShaderType
- Normal
- Additive
- PartialBlend
- Multiplicative
- InverseAdditive
- InverseAdditiveWithAlpha
- Experimental
- ExperimentalCutoff
- HSV
- HSVAdditive
- InverseSubtractive
- Graycolored
- Grayscale
Starward Rogue XML Documentation Main