Fixes several runtimes from the past few weeks, some additional material
repath regressions, and the fact that if I shoot you with a stream of
ionized deuterium particles, it doesn't riddle you with cancer.
changes:
- bugfix: "Fixes emergency shields runtiming when hit by thrown
objects."
- bugfix: "Fixes several stale global list runtimes."
- bugfix: "Fixes several health percentage checks that could use unset
initial health values."
- bugfix: "Fixes additional materials regressions in INDRA code."
- bugfix: "Fixes invalid fuel injector depletion math."
- bugfix: "Makes accelerated particles apply radiation damage to living
mobs they pass through."
Soft-ish port of https://github.com/NebulaSS13/Nebula/pull/540. Except
we call them singletons.
Repaths all materials as singletons instead of datums, and replaces
material defines from strings to paths so that we can just run
GET_SINGLETON instead of needing to use SSMaterials. This is Step One.
This PR has no player-facing changes.
changes:
- refactor: "Repaths /material to /singleton/material."
- refactor: "Replaces all material string defines to path defines,
replacing SSmaterials procs w/ GET_SINGLETON instead."
- refactor: "Removes all material var edited objects from all maps,
adding new presets where necessary."
- refactor: "Updates recipes unit test to run all recipes against all
material singletons."
---------
Signed-off-by: Batrachophreno <Batrochophreno@gmail.com>
Co-authored-by: kano-dot <bhutanlikanoxy@gmail.com>
Repaths obj/machinery to obj/structure/machinery. **Note for
reviewers:** the only meaningful changed code exists within
**code/game/objects/structures.dm** and
**code/game/objects/structures/_machinery.dm**, largely concerning
damage procs. With the exception of moving airlock defines to their own
file, ALL OTHER CHANGES ARE STRICTLY PATH CHANGES.
Objects, _categorically_, are largely divided between those you can hold
in your hand/inventory and those you can't. Machinery objects are
already subtypes of Structures behaviorally, this PR just makes their
pathing reflect that, and allows for future work (tool actions, more
health/destruction functionality) to be developed without unnecessary
code duplication.
I have tested this PR by loading up the Horizon and dismantling various
machines and structures with tools, shooting guns of various types
throughout the ship, and detonating a bunch of explosions throughout the
ship.
Adds the **Orion Miner** (officially the **Orion Mining Skiff**), an
all-in-one mining mega-shuttle with landing capability. Yes, the entire
ship can land. There is no secondary shuttle to get into.
<img width="704" height="1408" alt="image"
src="https://github.com/user-attachments/assets/b58d1305-2dbd-4c20-9305-f88535522af2"
/>
The Orion Miner is intended to be a lowpop (or solo, if necessary)
mining experience for people to try their hand at mining and exploration
without being critically dependent on other departments for
functionality. If you like mining, often go on low-pop and/or dislike
having to rely on other staff (medical/engineering/etc) for basic
necessities, this ship is for you!
Miners have their own supplies, access to thrust, navigation, and
equipment slightly better than that of the Horizon to compensate for
lack of support. This includes medical equipment and lifesaving
medication, in theory making solo miners on this shuttle statistically
less likely to die of preventable causes like blood loss or lung
ruptures.
While this ship can be crewed by a single person if necessary, it has
space for 4 crew total: 3 fully-equipped miners, plus 1 crewmember or
technician. (They are also provided an EVA suit and can use extra
equipment as necessary). This ship does not come with an explicit
captain.
Ore redemption consoles and mining equipment vendors are also present to
give crew the full mining gameplay loop. Minus the sales, at least -
though you could absolutely sell off or give away your spoils to the
Horizon or other offships if you so desired.
## Ship Features
- Full docking and landing capability. The ship _is_ the shuttle.
- An ore smelting plant and cargo bay.
- Ore redemption consoles and mining vendors, for the full miner's
gameplay loop.
- A Grauwolf for hazard clearing and (secondary) self-defense.
- A canteen and kitchen with adequate supplies.
- A hydroponics bay.
- Three atmosphere-rated airlocks. The rear one (north of the shuttle)
is a docking port.
- Emergency treatment-capable medical bay with adequate medical
supplies. It's no Horizon, but it is capable of saving people from
otherwise ruinous injuries.
- Technical storage and main engineering.
- Full SCC corporate affiliation. As a ship of Orion Express, this ship
can and should be able to interact (and possibly partner) with the
Horizon without a hitch.
## Additionally...
This PR also comes with a minor refactor to the way ore processing
machinery works: code has been streamlined, redundancies have been
eliminated, and machines should now work properly even when moved in
space (for example if it is on a shuttle).
<img width="991" height="351" alt="image"
src="https://github.com/user-attachments/assets/8f99dc29-8927-40e0-9856-b8ad5b2d35cb"
/>
This PR also comes with a minor resprite to the `sleekstab` sleek
stabilization kit. It is basically a recolor of the "small first aid
kit" combined with the stabilization kit's rainbow pattern. See
IconDiffBot for the raw sprite.
And last but definitely not least, this PR expands Odyssey landing zones
to accomodate larger shuttles and expands shuttle standards to be bigger
(45 tiles long).
## Notes
<img width="1292" height="936" alt="image"
src="https://github.com/user-attachments/assets/dbcb0f3e-6509-4ff4-a53c-90f1255e6152"
/>
This is an **oversized** shuttle, about 30% larger than the Intrepid by
size and 20% larger than the Lone Spacer. While tested with many, many
different away sites, stations, and exoplanets, including the Horizon
(which it _can_ dock with), it's not guaranteed to be able to land at
_every_ site nor is it guaranteed to do so safely.
_Do note that this size comparison picture uses an old version of the
ship._
## Pictures
_Pictures may not be fully representative of the final design. See
MapDiffBot or the attached map screenshot at the top of the PR for the
final design._
<details>
<summary>Details</summary>
<img width="1316" height="1310" alt="image"
src="https://github.com/user-attachments/assets/fc58c3a8-6c61-41d7-9e69-9852986c76ca"
/>
<img width="1172" height="1111" alt="image"
src="https://github.com/user-attachments/assets/eb3d9d38-b7e5-42a4-88b1-310ff08a1c5d"
/>
<img width="1209" height="1151" alt="image"
src="https://github.com/user-attachments/assets/d1b1842e-f2f7-4525-a5e5-8d6f8c26f9be"
/>
<img width="1251" height="1253" alt="image"
src="https://github.com/user-attachments/assets/cd2b7a40-cb3f-4151-9057-7dc9dfe69ddd"
/>
<img width="1105" height="1198" alt="image"
src="https://github.com/user-attachments/assets/1ae5a5e3-ba73-433f-8186-0c24a77dcade"
/>
</details>
Refactored all the builtin text procs to use string interpolation
instead.
Added a linting for the above.
This is based on, and should only be merged after, #19847
* SDQL2 update
* fix that verb
* cl
* fix that
* toworld
* this is pointless
* update info
* siiiiick..
* vv edit update
* fix that
* fix editing vars
* fix VV
* Port the /TG/ globals controller.
* part 1
* part 2
* oops
* part 3
* Hollow Purple
* sadas
* bsbsdb
* muda na agaki ta
* ids 1-15
* 16-31
* 41-75
* bring me back to how things used to be before i lost it all
* the strength of mayhem
* final touches
* cl
* protect some vars
* update sdql2 to use glob
* stuff?
* forgot that is not defined there
* whoops
* observ
* but it never gets better
* a
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
changes:
rscadd: "Ported a new chat system, Goonchat, that allows for cool things like changing font style, size, spacing, highlighting up to 5 strings in the chat, and DARK MODE."
rscadd: "Repeated chat messages can now get compacted. You can disable this in goonchat settings."
rscadd: "You can change icon style to any font on your system."
tweak: "The game window has been altered a bit to adjust for this."
rscdel: "Removed skin style prefs as they are no longer used."
This PR will lead us towards the Promised Day, for in its wake there shall be much celebration and ecstasy as this world becomes a world suitable for developer hegemony. The first strike is thusly;
All << is converted into to_chat().
changes:
Machinery now uses machinery_process() instead of process(), allowing machines to be put into SSprocessing-style lists in addition to the machinery list.
Automatic power calculations now involve less proc-calls.
* 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
-Reduced the chunks of code about minerals in door_assembly.dm
Preeeetty much this commit is just to update all the files to the new path of the minerals. From here, if I can, I'll start changing one by one to remove the huge chunks of code.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5087 316c924e-a436-60f5-8080-3fe189b3f50e
-Atmos delay is now based on active players, to help fight lag for massive player rounds.
-Changed some for(blah in world) loops to use the correct lists.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4958 316c924e-a436-60f5-8080-3fe189b3f50e
-Redid icons to be more optimized at compile by setting icon = 'icons/folder/icon.dmi' instead of just icon = 'icon.dmi', meaning that Dream Maker doesn't have to search through every single file for every single .dmi. This shouldn't lead to any errors because of how I went about it, plus the fact that Dream Maker would have freaked out if I screwed something up. Also moved around 2 icons that weren't sorted well.
r4146 compile time: 1 minute, 40 seconds
r4147 compile time: 45 seconds
[VGTG]
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4147 316c924e-a436-60f5-8080-3fe189b3f50e
- removed adamantine ore
- removed adamantine mineral walls
- added a new adamantine recipe, but it's commented out for the moment
- added a new material, mythril, with a nice urist sprite
- added a mythril coin
- added a mythril recipe, but it's commented out for the moment
So yeah, adamantine will have a new recipe and will no longer be gained from ore
and added mythril to the procesisng unit, stacking unit and coin press.
NOTE TO URIST:
to enable this, you only have to uncomment the part with your name in
machine_processing.dm Everything else is already in working order. Oh and you
need to make the coin and sheet sprite.
Revision: r3146
Author: baloh.matevz
- removed adamantine ore
- removed adamantine mineral walls
- added a new adamantine recipe, but it's commented out for the moment
- added a new material, mythril, with a nice urist sprite
- added a mythril coin
- added a mythril recipe, but it's commented out for the moment
So yeah, adamantine will have a new recipe and will no longer be gained from ore and added mythril to the procesisng unit, stacking unit and coin press.
NOTE TO URIST:
to enable this, you only have to uncomment the part with your name in machine_processing.dm Everything else is already in working order. Oh and you need to make the coin and sheet sprite.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3146 316c924e-a436-60f5-8080-3fe189b3f50e
BoH is no longer an instakill on a singularity, the chance the singularity will die from bombs now 25% from 10%.
Finished removing Metabslow from the game because delaying Interface rebuilds is a bad idea.
Sadly THE SUN is gone due to lighting lag issues, the current mob max luminosity is set to 7.
Damage and stun from doors shocking people has been lowered.
process() is now an obj level proc as it was already used by several procs and they can now jump onto the ticker if needed.
git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2199 316c924e-a436-60f5-8080-3fe189b3f50e