Starward Rogue:XML - Enum Reference
Revision as of 00:37, 24 November 2015 by Zogheen (talk | contribs) (Dominus Arbitrationis moved page Starward Rogue:Starward Rogue:XML - Enum Reference to Starward Rogue:XML - Enum Reference without leaving a redirect)
Contents
- 1 GameEntityCategory
- 2 ShipCategory
- 3 ItemPool
- 4 EntitySystemCategory
- 5 DamageType
- 6 DifficultyType
- 7 FiringTiming
- 8 TargetingLogic
- 9 FourDirection
- 10 RoomType
- 11 EntityModifierProbationType
- 12 FamiliarType
- 13 EntityModifierType
- 14 FlockBehaviorType
- 15 InventoryItemType
- 16 MathType
- 17 AnchorLocation
- 18 ShaderType
GameEntityCategory
Oi! What is this thing? Depending on what you say, it will be parsed differently.
- Ship
- Player hulls or enemy ships.
- Shot
- An actual bullet (you won’t use this much, if at all).
- ItemPickup
- What it says on the tin.
- Obstacle
- Funky stuff you won’t use much, if at all.
ShipCategory
What sort of ship is this, and how should it thus seed in rooms? This is a required field for any ship.
Note that ones that end in 1x1 should have a pessimistic bounding box that fits in a 64px square, ones that end in 3x3 should fit in a 192px square, 5x5 in 320px, 7x7 in 448px, and 9x9 in 576 (this is what bosses are allowed to use up to).
- Player
- This is for player hulls that the player can choose from. It’s not an enemy ship.
- Familiar
- Used for familiars and other little followers that are your allies.
- Miniboss
- Goes in miniboss rooms.
- Boss
- Goes in the end-of-floor boss rooms.
- BossLaterStage
- These aren’t independent enemies, per se. Rather, if there is a multi-stage boss or miniboss, the later stages should be flagged as this.
- BossBuddy
- Sometimes bosses have multiple parts to themselves. This defines one of the other parts.
- Pursuer_1x1
- Little fast guys that chase you around and generally harass you in some fashion if you don’t move fast.
- LocalGuard_1x1
- Little immobile (or nearly so) guys that hang out in an area and make it hard to go into that area somehow.
- Jumpscare_1x1
- Little guys that don’t move at all or much until you get near them, and then bad things happen. So they may make part of the room effectively inaccessible until the player has dealt with other hazards in the room.
- Sniper_3x3
- These guys likely don’t move much or at least not fast, but they lay down long range dangerous attacks. Must be super careful with these, as we want to make sure even players on small monitors get a chance to see these guys before these guys are able to shoot at them. Assume they cannot shoot over any obstacles.
- LocalAOE_3x3
- Rather like the LocalGuard, but more explosive in some fashion. May be able to use this fact against other enemies in the room, may not be. Assume they can shoot over everything except indestructible walls.
- Wander_3x3
- This is sort of the “bread and butter” enemy that is most common. These guys “wander around and do stuff.” They don’t chase you, but they probably track you with weapons and such if you go near them (or they wander near you).
- Attacker_3x3
- These guys actively hunt you through the room, although not in a true pathfinding sense. So you need to get in the general vicinity of them for them to come after you, but when you do they are then going to converge and stay on you.
- ChaosAdder_3x3
- These guys do… who knows what. Whatever it is, it makes a big mess of everything else around them. Probably lots and lots of bullets, or something else that makes everything else 10x harder. Use sparingly per room. ;)
- Challenge_5x5
- These guys are crazier than the average bear, and need to be only used in challenge rooms. These are basically enemies that are harder than expected.
- Wander_5x5
- Same as the smaller wanderer, except needs more room to move about and is also larger, better armored, probably more damaging, etc.
- Attacker_5x5
- Same as the smaller attacker, except needs more room to move about and is also larger, better armored, probably more damaging, etc.
- ChaosAdder_5x5
- Same as the smaller chaos adder, except needs more room to move and is also larger, better armored, probably even more chaos results, etc.
- Fearsome_7x7
- Whatever this is, it is very very bad. These are the biggest boys outside of bosses and minibosses.
ItemPool
- AfterRoomMinor
- This will appear after some rooms are complete, but it’s a super duper minor sort of reward. Basically health or energy or something. Not even a consumable weapon.
- AfterRoomConsumable
- This will appear after some rooms are complete, and are always consumable weapon/item slot items of some sort. Note that NOT all consumable items need to be in this pool: many of them may very well be too rare to be here. These are just the ones that you should find semi-commonly.
- FreestandingConsumable
- These are directly placed in certain rooms as an enticement to go to some part of the room. Usually something the player has to expend some missiles to get to, or undertake some other risk.
- These should be overlapping a lot with the after-room consumables, but perhaps with a few more uncommon things thrown in here from time to time, and minus the super-basic consumables perhaps.
- FreestandingMajor
- These are the major “treasure room” items.
- UnlockedChest
- If a minor chest that is not locked from the start is opened, then one of these things will appear. These might be some sort of minor item, a consumable, a weakish ammo weapon or familiar, or who knows. Nothing too exciting, but also not so basic that the chests are not exciting.
- LockedChest
- We had to use a keycard to get whatever this is, so there ought to be some worth to it.
- MinibossDrop
- We just killed a miniboss. What are we going to get next?? ;)
- BossDrop
- Dead boss at the end of the floor! Now let’s show him his reward, Jim...
- RegularEnemyDrop
- Regular enemies have a low chance of dropping these things, as do certain shootable obstacles. Nothing at all exciting here; pretty much just the minor ammo and missile and credit drops.
- Shop
- What you plan on selling me, Bob?
- SecretRoom
- These are items found only in secret rooms. Give me something worthy of my discovery!
- ChallengeRoom
- These are items found only in challenge rooms, and they are available as soon as you go into that room.
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
- North
- East
- South
- West
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" />
- Applies to the entity itself. So if you want a system that causes its shots to be huge you can give it:
- 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
- accepts (but does not require) the damage_type attribute
- 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)
- 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
- 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