Added a paralysis indicator to the HUD.
Being paralyzed will no longer make you asleep, instead, you will be awake with a crit overlay, and you will only be able to whisper.
Pain doesn't slow you down as much anymore. It's still pretty substantial, though.
You now lose pain damage much faster.
A message now plays if you drop your items because of how much pain damage you have.
- EMPs no longer deal permanent damage. Instead, they deal a temporary kind of damage called surge damage, that lasts for 10 seconds at maximum.
- Surge damage makes mechanical or assisted limbs count as broken and nonfunctional.
- Surge damage has special interactions with the mechanical heart and eyes.
- EMP damage is no longer randomized. It is now much more consistent.
- IPC battery is no longer represented as nutrition. Instead, the microbattery organ contains a super-capacity cell that is used for all their actions. This is represented with a new HUD icon.
- Hardsuits can now be charged in robot chargers if you are wearing them.
- Ion bolts now have a hit sound.
- Removed the ion rifle lethal mode.
- The ion rifle now has four shots.
'NOFALL' is now a status flag instead of being a var specific to BSTechs. It allows the mob to move between Z-levels and through empty space; even to 'fly up' against gravity. However the tech can no longer use this to 'phase into' matter if there is something above them.
...for that you want to use Ruin-Everything instead: incorporeal movement now has an additional type that's (still) just like a ninja's, but it also allows you to move between Z-levels.
Adds the anti-gravity verb to the Bluespace Robot preset and starts them with 'NOFALL' on.
When using 'GODMODE' you will no longer take damage when you fall; instead a cool message will be shown and a quiet thump will be played.
'GODMODE' now protects you from the awful effects of running - you can run indefinitely and won't take damage from it.
Thanks to the above changes the BST is now self-contained in a single file (well except for the robot preset).
To facilitate the above changes several godmode and incorporeal checks have been added (mostly to movement procs). It cuts on some extra proc overrides and type checks. Also results in a more 'natural' experience when using NOFALL, GODMODE or incorporeal movement.
Changed incorporeal values to defines.
Added a "darkvision" mode for the BST goggles.
I also updated some of the BST verbs to be more descriptive.
Stationbounds now have accents, starting off with Text-to-Speech, and can choose to mimic any accent.
The bots that robotics can produce now also have TTS accents.
IPCs can choose to use the TTS accent if they wish.
update_icons(), UpdateIcon() and updateicon() are now changed to be update_icon().
Many interactions expect a target to have an update_icon(), so they should all be the same.
Also fixed some stuff that was using relative pathing, along the way.
This shit is just full of issues that keep popping up and frankly I can't be fucked to deal with them.
Note: I'll probably do the same thing again but very simplified later on. This iteration is a mistake in how much of a mess it is, unfortunately.
Now this might actually be the last of the ports before I actually code things I swear.
Ports Baystation12/Baystation12#25773 and adds sprinting by holding the shift key, also adding the option to add more movement intents for species with their own slowdown etc etc.
The AI can now remotely control mechs in its network. It has one mapped in near its core.
Messages received by your old body will now reach your VR body (does not affect Skrell Srom).
Exosuit pilots can now interact with elevator panels without having to get out.
Robotics and RnD can now create remote controlled mechs. The control centre is in the protolathe, while the exosuit upgrade is in the circuit imprinter.
Mechs can no longer be dismantled if it has a pilot in it.
Dismantling a mech now takes a while.
What:
The mind/memory variable is a variable that is used to store IC notes. Players can add to it at will, using the Add Note verb. The problem, is that they can add to this infinitely. This can be weaponized with macros to generate an infinitely long string. Well, infinite in theory, in reality, this will cause DD to OOM and crash.
Solution:
Capped the length of mind/memory to MAX_PAPER_MESSAGE_LEN (3072) characters. This length is checked when the user attempts to input, and also when the notes are actually edited. The former produces an error for the user, the latter will simply shift the memory contents forward, potentially causing HTML break. But this limit is not likely to be reached via other means.
Overview
Adds thirst mechanics. Thirst mechanics work exactly like hunger mechanics where if you don't drink enough liquid, you become thirsty and move slower. Several other mechanics involving drinks were also changed.
For organic races, you gain hydration by consuming beverages and water. Water is the most effective way of hydrating yourself. IPCs are not affected by hydration and do not have to worry about it. If you overeat or overdrink, your nutrition decreases faster until you are of normal hunger and thirst levels.
Penalties for not eating or drinking are now more severe. If you refuse to drink or eat all shift, you will be up to 33% slower and take twice as much pain damage. The amount scales based on your hunger or thirst levels. If you are considered hungry or thirsty, it starts scaling until you're starving or seriously dehydrated. If you overeat and overdrink as well, you get a ~5% reduced movement and pain tolerance with each mechanic.
The icons for hunger have been updated to be more specific, and they match the new thirst indicators as well. https://i.imgur.com/QQbWxYI.png
You can now also inject beverages into your blood for x4 effectiveness. Before, IV dripping yourself with vodka did nothing but give you a small amount of toxins, but now it should be a hell of a party.
Dionaea can now be affected by beverages with respect to nutrition gains and temperature changes. Dionaea cannot be affected by some effects, such as stuttering and intoxication, still.
Healing effects for certain beverages (tea, milk) were removed. This a HRP server, milk shouldn't heal you.
Reverts the new chemicals and their effects as implemented in #4127 due to their unnecessary severity.
Replaces the reverted mechanics with new mechanics which seek to accomplish a similar thing. Mobs now have an nutrition_attrition_rate factor, which is a multiplier describing how fast they grow hungry. By default, the multiplier is 1. Only eating healthy/chef food will see to it that said multiplier remains at 1.
This PR rips out the old Bump() and Bumped() procs and replaces them with Collide() and CollidedWith() respectively. Behavior should be the same, but Bump() should no longer be double-called, and no longer relies on spawns.
Other changes:
LAssailant is now a weakref.
Some direct loc setting are now forceMove().
A client'd mob inactive for more than ten minutes (Aka alt-tabbed or maybe the player had an aneurysm while playing) will indicate such when examined.
A formerly client'd mob disconnected for more than five minutes will also indicate such when examined.
(Rebased and reopened#3347)
Attempted to fix pipe and door rendering
Fixed Table, carpet rendering
Ported full map-capture tool from bay, with python script to merge captured images.
-removes the jaunt spell from the wizard corrupt form
-increases the price of raise dead to two points
-adds a new wizards spell; flesh to stone, that traps your target in a statue for some time
-added a chance of creating a central command report everytime the lich is send back to his heart, telling the possible location of the heart
changes:
Progress bars will now stack if there is multiple ones on a single turf.
Progress bars' update speed is now mediated by stoplag() instead of arbitrary numticks numbers.
A callback can now be passed to do_after or do_mob which will be called every check - if the callback returns FALSE, the action is cancelled.
Progress bars no longer show an X briefly when their associated action is cancelled.
Progress bar itself is from /tg/, do_after changes are not.
Normalizes some vision flag operations & adds SEE_BLACKNESS to all mobs if the compiler supports it.
Shouldn't break 510 clients even if the server is 511 & using SEE_BLACKNESS.
Should fix some visual glitches with wall-mounted objects being visible when the wall they're on isn't visible.
* Replace SSingulo with SScalamity; processing cleanup
- SScalamity now handles blobs as well as singularity-types.
- Processing subtypes have been simplified to not require a stop_processing definition.
* this is probably important
* Remove cascade disabling SSgarbage
* Fixed a bug where dust() did not qdel the target mob
* Misc fixes
* Fix decals surviving break-to-plating
* Subsystem flag tweaks
* Apparently subsystems are new'd before config is.
* Fix paper icons
* Speculative fix for insane lag
* Better machinery stat
* Make organs not use SSoverlay
* Misc bugfixes & tweaks
* Nightmode fixes
* Changelog for SMC
* Port /tg/'s improved MC crash handling
* Add some more SS Recover() procs
* supply_controller -> SScargo
* More New() -> Initialize()
* pAI and robot construction overlays
* Fix cargo unit tests
* Merge the DMM Suite's atom/New() into atoms_init
* Lighting pre-baking
* Lighting initialization logging
* Fix some bad SS init orders
* Fix SSlighting logging; rename Processes to MC
* Speculative fix for insane GC lag
* Prebaked openturf/icon_smooth & fix lighting prebake
* SS init status; SSatoms LATEQDEL
* Fix bug with MC init stat panel
* Fix parallax
* Misc
* Ignore SS_NO_DISPLAY during init
* apparently this is important
* REEEEEE
* Image GC fixes; broadcaster radio-new sanity
* RCON Cleanup
* Move pAI recruiter into subsystem
* Move global solars list into sun subsystem
* Make chickens not use a global
* Demote SSdisposals to SS_BACKGROUND; garbage-debug cleanup
* Speed up space init a little
* Fix bad timer flags on floor drying
* Subsystem panic-restart verb for mins
* Explosion speedup
* Minor subsystem & MC logging tweaks
* SSopenturf improvements
* Make pipenet actually initialize (whoops)
* Minor tweaks
* Implement lighting rounding
* comments are hard okay
* Minor lattice tweaks
* Fix some timer issues & better closet init
* Timer sanity
* Request console tweaks + Storage init sanity
* Minor SSmachiner RCON improvements
* Further reduce world-start timer count
* Standardize subsystem logging
* Garbage hard delete profiling from /tg/
* Timer hang detection & recovery
* Log machines that sleep in process() and fuck up SSmachinery
* Fix an issue with external airlocks sleeping in process()
* Failsafe logging
* Minor tweaks
* Revert "Request console tweaks + Storage init sanity"
This reverts commit 98d3579e35.
* Re-implement RC changes
* Fix SQL FT saving
* Fix SSmachinery sleep in disposals
* Minor SS tweaks
* Paper fixes
* Blood drying fixes
* Merge gameticker and SSticker
* Minor global list init cleanup
* Lagcheck biogenerator & bags
* Tweak SScargo init order; RIG Initialize()
* Caching tweaks
* Remove rogue comma
* Initialize fixes
* Lighting destroy cleanup
* Fix emagging airlocks
* Initial SSicon implementation
* Tweaks & Fixes
* Fire + Air alarm queued icon updates
* Overlays + Queued icon cleanup
* Runtime & background fixes
* Kill some meaningless set statements
* Kill some image qdels
* Bump up lighting rounding val
* Fix adv. scanner destroy runtimes
* Remove unneeded icon update limiting
* Move icon smoothing into helpers
* Show a warning if DM 510 compiles without memory leak hack enabled
* Re-organize subsystems & MC defines a little
* Airlock SFX
* Log of Changes
* Make SSicon_update disable itself when not doing anything
* Fix respawn verb runtime when used early in server-init
* Add more information to MC's stat_entry()
* Replace direct refernces to gcDestroyed with QDEL* macros
* plant_controller -> SSplants
* More plant tweaks
* Add more humor to changelog
* Move parallax globals into SSparallax
* Lighting responsiveness tweaks
* Fix parallax init order & better MC init panel stat
* Make mobs GC
* More overlays + Remove intercom spawn()
* SSfast_process; make pinpointers not use spawn-recursion to process
Also made the SM Cascade beach process with SSprocessing instead of a spawn loop.
* Update changelog
* Mob GC tweaks
* Del() cleanup
* Fix insomniac ZAS connection edges
* Minor pAI cleanup
* Convert more things to SSoverlay; fix duplicated overlay in field gens
* SM Bluespace turf tweaks
* Update SSgarbage debug globals list
* Human-type qdel tweaks
* Subsystem suspension; stat_entry improvements
* SQL Statistics cleanup
* Fix runtimes with ambrosia
* More disable() -> suspend(); fix nightmode again
* Human qdel fix; minor tweaks
* Update turbolift to work with StonedMC
* Make lifts use timers instead of a subsystem
* Make SSassets start earlier
* Convert the radio controller into a subsystem
* Fix some missing CHECK_TICKs in asteroid generation
* MC stat tweaks; make shouldnt_see a typecache
* Kill some redundant debug-controller entries
* radio_controller -> SSradio
* Better SSgarbage hard-del logging from /tg/ upstream
* Logging tweaks + GELF
* Misc client caching improvements
* Slime SSoverlay
* Oven icon fixes
* Implant fixes
- Death implants will no longer spam Common on death of user.
- Death implants should handle a deleted user better.
* Holder tweaks + Welding tool Initialize()
* Fix some bad subsystem logging
* Fix suit cooling units spawning without cells
* Starlight tweaks
* Gibber infinite gib fix
* More SSoverlay stuff
* Make crates use CUT_OVERLAY_IN
* Make SSarrivals suspend instead of disable
* Make openturf use split/phased tick checks
* Speculative fix for unwet timer runtimes
* Blood overlay tweaks/fixes
* Update crusher to play nice with SMC + SSoverlay
* Openturf improvements and fixes
* Minor turbolift tweaks
* Lighting performance improvements + ChangeTurf tweaks
* this is probably important
* Fix wall weld noises on changeturf
* More ChangeTurf tweaks
* Explosion tweaks
* Pre-game lobby tweaks
* Openturf tweaks
* Prevent admins from starting the game before init finishes
* Fix Travis
* Kill an unused var
* Fix ChangeTurf runtimes on openturfs
* Fixes
* Browser datum fixes, asset caching
* Update changelog
* Changelog
* Lobby tweaks
* Ticker tweaks; kill ticker var
* Further lobby tweaks
* Cascade tweaks
* air_master -> SSair
* Reduce overhead from radio autosay
* alarm_manager -> SSalarm
* bomb_processor -> SSexplosives
* corp_regs -> SSlaw
* ZAS overlay fixes
* Small wall icon optimization
* Fix effects master
* Assembly tweaks
* Megavend fixes
* Shuttle fixes
* Camera alert performance improvements
* Fix some world.log spam from lighting overlays
* Fix some Initialize() procs
* Openspace responsiveness tweaks
* Make HE pipes animate through openturfs
* Kill a spawn
Latejoiners will spawn at the Odin, in an elevator shaft in a segregated section of the station away from round-end.
Latejoiners will spawn in civilian clothes equated to their paygrade. (List currently is extremely rudimentary.)
Latejoiners will get their implants activated, their departmental memories inserted, and their equipment delivered by the auto-locker machines. It is at this point that they will be announced to the crew.
Latejoiners will then proceed to the arrivals shuttle. As soon as any living being steps on the shuttle, it will begin counting down to launch in 30 seconds. If there is no living being on it when it is about to launch, it will cancel.
The shuttle will be in transit for one minute. When it arrives it will wait a minute, and then attempt to launch back to the Odin. If there are any living beings on it, it will cancel, announce this to the crew, and then try again in another minute.
Anyone who remains in the spawn area for longer than 15 minutes will be despawned if they're SSD. If they are not SSD they will be teleported to Aurora's cryo. If Aurora's cryo is somehow destroyed they'll be despawned.
Spawning area itself also has its own cryo, if for whatever reason that is needed.
Fixes radiation so species' radiation_mod values are actually applied.
Refactored radiation application to use proc apply_radiation() instead of directly modifying the variable.
Ports Apollo's infraction's system, creating a permanent criminal record for every character. Every minor or medium infraction accrued over the course of a round is added to the character's permanent security record which is available at vanilla records councils. Antagonists are automatically exempt from this process, and players can exercise control over what charges they consider canon or not.
Brigging a person is now dependent on the criminal sentencing computer, which reads a person's ID and applies a brig timer automatically for the charges selected. Personnel without ID's will have to be brigged manually.
Fixes nutrition displays not updating.
Adds code support for species-variable levels of max nutrition storage, and nutrition loss. No actual variations are yet implemented, awaiting input from lore team.
Fixes all relevant static isntances of numeric literals with the max_nutrition variable
And a feature tweak: Players will now spawn with randomised nutrition levels when they join