A lot has changed.
Major points:
- All mobs now use the -tg- thrown alerts system. This is a system where
a maximum of 5 "alerts" (which take the apperance of HUD icons like the
inventory and modular action buttons) on their HUD.
- Alerts are defined as a subtype of /obj/screen/alert.
- Alerts are "thrown", or activated on the mob with the proc
`mob.throw_alert("alert_id", /obj/screen/alert/path, severity
(optional), new_master (optional, overlays the referenced "obj" on the
button))`
- Alerts are cleared by calling `mob.clear_alert("alert_id")` or by the
/obj/screen/alert containing a `timeout` setting, which will
automatically clear itself after that period of deciseconds.
- Alerts may have functionality beyond appearance: Mousing over them
will use the WireWraith tooltip system to generate a themed tooltip,
and clicking them may have a function defined on the
/obj/screen/alert object.
- Shift-clicking an alert will give you it's name and status, in case
the tooltips fail to work.
- Hunger/Oxygen/Toxin/Nitrogen/Pressure/Etc warnings are now handled via
the -tg- thrown alerts system.
- Failing to breathe anything will display as an "No O2" warning.
- Species breathing has been refactored to accomodate this. Vox are
able to breathe the station air without instantly dying, but will be
poisoned every time they breathe by the oxygen in the air. Any
species with a unique gas breathing type will also display the
correct "Choking (no X gas)" instead of just "oxygen". (Unless they
have not breathed anything in, it's a quirk.)
- Robot cell/temperature alerts also use this.
- Aliens, though not harmed by toxins, will have an alert if they
breathe in toxins, notifying them that "You'll be toast if this
lights up."
- More alerts have been added
- Buckling
- Activated on: Being buckled to an object.
- Cleared on: Being unbuckled.
- Click functionality: Calls resist(); Will unbuckle from chair
instantly if unrestrained, otherwise, there is a delay period.
- Hand/Leg cuffs
- Activated on: Being handcuffed.
- Cleared on: Being unhandcuffed.
- Click functionality: Calls resist(); Will attempt to either get out
of the handcuffs, or, if you are a xenomorph or hulk, break the
handcuffs in 5 seconds.
- Blind/High
- Activated on: Becoming blinded/becoming high on LSD.
- Cleared on: Becoming unblinded/the high wearing off.
- Click functionality: None.
- Asleep
- Activated on: Life() tick detecting sleeping.
- Deactivated on: Sleeping being 0 or less.
- Click functionality: None.
- Weightless
- Activated on: Losing gravity.
- Deactivated on: Moving back into an area with gravity.
- Click functionality: None.
- On Fire
- Activated on: Catching fire.
- Deactivated on: Being extinguished.
- Click functionality: Calls resist(); Causes you to stop, drop, and
roll, which will reduce firestacks and possibly extinguish you.
- Law update (BORG ONLY)
- Activated on: Laws being changed.
- Deactivated on: Timer, 300 deciseconds.
- Click functionality: None.
- Hacked (BORG ONLY)
- Activated on: Being emagged/given malf tools by the malf AI.
- Deactivated on: Emagged status being removed.
- Click functionality: None.
- Locked (BORG ONLY)
- Activated on: Lockdown being set (by emag law rewriting/robotics
console/wire being destroyed)
- Deactivated on: Movement being unlocked.
- Click functionality: None.
- Notify Cloning (GHOST ONLY)
- Activated on: A human's body being placed in a DNA scanner.
- Deactivated on: Timer, 300 deciseconds.
- Click functionality: Reenters body.
- Notify Jump (MULTIPURPOSE) (GHOST ONLY)
- Activated on: Any sort of chance to become a mob (ie, golem rune).
- Deactivated on: Timer, 300 deciseconds.
- Click functionality: Varies.
Currently, to_chat is literally just a proc that does user << message.
But it'll let us do output modification in the future, especially for
something like Goon's HTML chat.
Big thanks to PJB for his to_chat script, see
https://github.com/d3athrow/vgstation13/pull/6625 for more details.
Ok, messed up resolving the merge conflicts (first try), so doing a
fresh pr. This turned out to be a good thing, as after I put the changes
back I tested again, and found 2 bugs (not due to my code)
Firstly, the organ refactor had introduced a bug when taking liver
damage from being drunk. It wasn't getting the liver correctly, leaving
it with null, and was then trying to damage it.
The second was related to the amount you took in when drinking
Expands the beach away mission to include a brand new scuba-diving area!
- Somewhat empty, but has a few points of interest scattered about and
can be added to in the future
Visually updates the beach
- Sand texture changed, and given randomization for a more varied
beachfront.
- The row of crates and lockers has been replaced with 3 changing
rooms/tents so you can change into that mankini in private.
- Changes the water texture to be less bland
- Expands the water area to give more room for swimmers to play in
before they reach the edge
Adds in the Diving Point Buoy and Diving Point Anchor objects, used to
transition between the beach surface and the underwater area
- Hit with an empty hand to transition between the two points
The underwater area has a few "minor" dangers to prepare for:
- Sea Carp
- These carp (unlike their space-faring cousins) won't attack on sight,
and will try to swim away when attacked. They still bite if they work up
the courage to come back.
- Water
- Water and lungs don't work well together, who knew!? Skrell, Neara,
and anyone who has NO_BREATHE can happily explore, while the rest will
want to pack some internals lest they begin to drown.
- Drowning in the scuba area doesn't require you to be lying down,
unlike the pool. You're in over your head (literally).
- Darkness
- Not quite a danger in itself, but it's easy to get disoriented in the
dark water, and that can be frustrating.
CODE STUFF
- Broke up the pool controller code into a couple procs for cleanliness
and in case we want to have a type of pool controller that doesn't drown
or doesn't adjust bodytemp
- Made ladders use forceMove instead of directly setting loc
- Removed an entirely unused area (/area/beach)
Crappy coder-sprites for Buoy and Anchor done by myself.
- Ok, they actually aren't THAT bad, but they aren't fantastic.
Fixes#3687
Mobs no longer act as if they've moved when in a locker whilst it's
opened and closed.
The new proc does everything forceMove does except trigger /crossed on
/items and run the extra code in turfs\simulated\Entered (still makes
the parent call)
Also removed some now unneeded code from the /slip proc as this makes it
redundant