The Spatials V3 devblog 2016-02-08

Internal development notes, very slightly cleaned up and commented a week later.

TL;DR: new station robots art, firefighter job, random far targets for station infiltration, sneaking, deception, roting and miasma, repair job.

The V3 station is going to be much more complex than in V2. Your officers will be able to take on more than a dozen different jobs and tasks. At some point some of these tasks will become too menial for your high ranking staff, so it may be cost effective to delegate them on robots. Here's a first preview of the art for dedicated station robots:

New robot art

Unlike your officers robots will be good for only one kind of job. But they will probably be less picky about their stay in the station.

- firefighter job
    require 1 water
    problem: cannot approach fire since it damages the officer, and the flee behavior takes over
        I'm keeping this as-is, in the future there may be fearless entities or further tweaks

The fire system introduced in the last update is now paired with the firefighter job. It's a simple task of gathering one unit of water and then walking near a fire to extinguish it. But emergent behavior is starting to appear. Any officer caught near a fire will get hurt, so a cycle of get water -> approach fire -> flee in terror -> repeat was exposed. I decided to leave it as-is. In the future there may be personality traits for some officers that make them better suited for this job, and/or specific units devoted to it (like a firefighter robot).

- aggressor sm for station attacker: allow far objectives for infiltration
- add test enemy with far objective
- do mission target pathing as a diff system with low busyc prio, so other sys can take over
    test with enemy that has aggressor-c, it should stop to shot at object then continue

With the combat systems fully enabled now in the station sim, it was time to start the development of the security systems. Turrets were done in the last update, now it was time for more nuanced and unique to the station gameplay. Since these new features require more than just spawning into the station and start gunning everything down, a new infiltration system was implemented. Entities controlled by this system can ignore targets until they are in the desired area inside the station (or they become disturbed somehow).

- sneak
    entities without any drawing components, and without any possible targeting components
    uses mission target pathing for walking to target
    revealed by
        when near the target
        when the target disappears
        after a last resort timer
    has a proc to run when revealed
    proc+data spawns the real enemy
- system for cameras
    reveals sneakers in detection radius
    sounds alarm when enemy is in view, and puts last-aggressor-c in a wide area to alert nearby officers

The sneak system makes use of a proxy, invisible entity controlled by the infiltration system (in the video the entity is given a placeholder icon to be able to see its path in the station). This entity is effectively ignored by every security measure, including officers, since it's not an enemy entity (it lacks any combination of components that make it either a target or a threat.) Once it arrives at its target area, it runs a proc, which spawns the real enemy entity and destroys the proxy. Only the security camera is capable of forcing this proc to be executed earlier, as seen in the video. Additionally the camera tries to alert nearby officers in a wide radius, to emulate the effect of an alarm going off.

- deception
    same as sneak, but with a tourist-like placeholder entity
    refactor sneak system for more flexible component
- system for security arch: reveals deception
    same as camera

The deception system is very similar to the sneak system. The difference is that the proxy entities will be visible, but take on the image of a normal tourist. Security cameras can't discover them. Instead you need a security arch in a choke point to make sure tourists pass through it.

- roting and miasma system
    low phase system
    some entities can have a "begets miasma" component, incl a strength value
    the system checks nearby entities with the component, adds the strengths, and rolls a dice to see if a miasma cloud spawns when none are nearby
    placeholder damage pulse, will replace with other stuff in the future


A new system and set of components can now model the act of roting and miasma clouds. If your work force doesn't hurry to clean an area of litter and corpses, there's a chance a miasma cloud can be spawned (corpses contribute a higher chance to this, and there's also throttle system to make sure it's not being spammed to much). For now miasma clouds are using the same damage code as fire, but in the future they will instead contribute some kind of negative stat to nearby entities and in rare cases they can also extend a disease.

- repair job
    an additional job for the damaged entity in case it already has one, must support both
        separate set of comps
    make-repairable for station objs

Your officers will be able to somehow heal their wounds after combat, but what about the station objects? The repair system is now in place to be able bring up station objects to 100% hp after (or during) combat.