* Completely FIX Hilbert's Hotel and its associated ruin to the game. (#53830)
Reverts the removal in #53790.
Broken in #53586.
Because turfNumber++ must be incremented on turf, not on every ATOM it
EVERY TURF, and anyway it don't trigger since first turfs don't have
atoms in it.
Fix#53794, Hilbert's Hotel peephole runtime.
Fix#53795, hhmysteryRoomNumber generates only once.
* Completely FIX Hilbert's Hotel and its associated ruin to the game.
Co-authored-by: Dennok <Deneles@yandex.ru>
* Makes some things that rely on atmos adjacency more sane/faster. (#54096)
* Replaces some CANATMOSPASS calls with a new define that checks if the turfs are in each others atmos adjacent list, as that's the same info that they want.
* Makes some things that rely on atmos adjacency more sane/faster.
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Fixes monkeycube size and organ callback and microwaves (#54095)
* fixes
* dumb runtime
* fixes eggs
* Fixes monkeycube size and organ callback and microwaves
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
* Restores some functions food had (#53892)
Synthmeat steaks are a subtype of plain so that they can be used in burgers the way they could before
Colored burgers have color again, as they were just the greyscale sprite
* Restores some functions food had
Co-authored-by: ArcaneDefence <51932756+ArcaneDefence@users.noreply.github.com>
* Nice, Corgi Pinning Action for the whole family. (#53913)
Adds pin the tail on the corgi, a basic party game last seen at the summer ball, that I had lying around on one of my branches since then. The corgi is a poster that functions like most other posters, but has an interaction with the fake "Corgi tail" object, which can be pinned onto the poster to visually place the tail onto the poster.
Are you a bad enough dude to pin the tail on the corgi blindfolded?
Fun, cheap entertainment. Might make for a cheap thrill, or help set the scene of a birthday party. Works as a very player driven basic activity.
Also, the tail pins are harmless embeds. I'll leave that here for you to think about.
* Nice, Corgi Pinning Action for the whole family.
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
* You can now throw things over raillings. (#54062)
Any movable atom with an attached thrownthing datum can now pass harmlessly over railings, and potentially fall safe down to the z-level below.
* You can now throw things over raillings.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Fixes up addictions reporting on scanners, and admin full heal (#54056)
* Fixes up addictions reporting on scanners, and admin full heal
Co-authored-by: NightRed <nightred@gmail.com>
* Atmos Machinery Variants (#54015)
Adds variants for a bunch of atmos machinery that were missing them:
unary tanks
atmos filters
atmos control computers (and circuit boards)
atmos tank turfs
atmos tank outlet injectors
atmos tank siphon vents
gas miners
* Atmos Machinery Variants
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
* Reimagines Venus Human Traps (#53880)
Venus human traps now have a new sprite, new sprite for their bud, new sprite for their vines, their bud has icons according to how grown it is, they get sounds for hitting, getting hit, and dying.
oh yeah and I renamed the path flower_bud_enemy >flower_bud
* Reimagines Venus Human Traps
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Fixes whiteship console losing GPS signal (#53998)
Deconstructing and rebuilding the whiteship console will switch it back to the GPS-less subtype. Added a new board and assigned it to the whiteship bridge console to remedy this.
* Fixes whiteship console losing GPS signal
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Fixes for Syndicate Forgotten Ship (#53832)
* Fixes missing implant on Syndicate Ship Captain:
Syndicate Ship Crew Members have their implants. There are 2 boxes of syndicate firing pins in captains locker, but captain can't use them. This change fixes that. Captain had implant initially, but it was removed accidentally in #50597
Fixes spare magazines spawned in lockers:
Captain has 2 mags for APS instead of 9mm mags in their locker.
Crewmembers have 9mm mags instead of 10mm mags.
10mm ammoboxes replaced with 9mm.
Why do we even have 10mm mags, if crew spawns with makarov and captain spawns with APS.
* Fixes for Syndicate Forgotten Ship
Co-authored-by: antropod <antropod@gmail.com>
* Fixes mapstart and random arcade machines (#53958)
Randomly generated arcade machines were getting random boards and initing properly, but they weren't re-built as the appropriate subtype.
This oversight has been remedied. A new subtype has been created for random arcade machines which exists purely to pick a random circuit then create a machine from that circuit's build path before returning that it should be qdel'd.
This new subtype has been appropriately regex find-and-replaced into all maps.
* Objectify
* Fixes mapstart and random arcade machines
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* fixes nuke core throwing (#53972)
The typepath was wrong, due to an improper feature from a couple months ago, this means that nothing actually happen, and a nonexistent type had a fun new dust. This has been resolved here.
* fixes supermatter sliver throwing
Co-authored-by: Fikou <piotrbryla@onet.pl>
* Enforce preserving parent proc return values across ui_act call stacks (#53964)
All ui_act procs should call parent by default. All procs should preserve the value of the parent proc when it's TRUTHY and pass it down the call stack. No UI should be interactible when its flags or state indicate it should not be, except when explicity overriden by child procs intentionally disregarding parent return values to achieve a specific goal.
* Enforce preserving parent proc return values across ui_act call stacks
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Fixes various issues related to machine component contents. (#53943)
Fixes machines not referencing their circuits in their component parts when built manually, causing them to vomit out their circuit board when opened. This also fixes Runtime in _machinery.dm, line 607: Cannot read null.req_components from using the B/RPEDs.
Fixes computers not storing circuits in the contents.
Fixes smartfridges vending their components.
* Fixes various issues related to machine component contents.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Gives Public Mining on Icebox an Elevator, and just a TON of lift fixes so they're viable to map with. [MULTI-BEE] [:pslime: in the chat] (#53728)
add: Icebox now has an elevator! I just took the trousers of every shaft miner to batter town, word.
* Gives Public Mining on Icebox an Elevator, and just a TON of lift fixes so they're viable to map with. [MULTI-BEE] [:pslime: in the chat]
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Rebalances space loot and space exploration (#53916)
* Rebalances space loot and space exploration
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Balances plastanium window integrity (#53918)
Changes plastanium windows integrity to 1200 instead of 200, which leaves it with 200 more integrity than reinforced plasma windows. Also increases damage_deflection to 21 to match reinforced plasma windows
* Balances plastanium window integrity
Co-authored-by: TheBonded <58570888+TheBonded@users.noreply.github.com>
* Disable some effect systems during init (#53929)
Instantly spread gib streaks rather than doing so over a delay
Completely skip broken light fixture sparking during init
* Disable some effect systems during init
Co-authored-by: Tad Hardesty <tad@platymuus.com>
* Merge pull request #53847 from Iatots/paperdoor-fixes-redux
Paper walls have no duplicate knock sounds anymore, paper doors don't appear rotated, adds glass bashing
* Paper walls have no duplicate knock sounds anymore, paper doors don't appear rotated, adds glass bashing
Co-authored-by: skoglol <33292112+kriskog@users.noreply.github.com>
* Machines now store their components in their contents. (#52970)
Machine parts are now located in the machine instead of nullspace.
* Machines now store their components in their contents.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Fix skill related runtimes in mindless mobs. (#53691)
Fixes related to mindless mobs using skills
* Fix skill related runtimes in mindless mobs.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Chess, Sofas & Shutters - Furniture Update (#53861)
About The Pull Request
A series of changes bulked together to give players and mappers a little more freedom in their builds to make things look nicer.
Chess:
• Introduces a bunch of jumbo chess pieces that are craftable in-game. Sprites are my own.
Shutters
• Defines 100 integrity for the shutters and gives them an armor block so they don't inherit their stats from blast doors. This means shutters will no longer be just a reskinned blast door.
• Redid the sprites for the shutters. They now animate much smoother and look like normal slanted shutters. Their blinking light once animating is also easier to see.
• Added the window shutter; this is a normal shutter with a window so you can always see past it. I've used it in prisons and on armouries in the codebase I'm from to allow officers to see into the areas shutters are protecting, giving the area additional protection of having someone being able to look into it.
• Added radiation shutters. Maintainers feel free to question this. Through extensive experimentation, any rad insulation value between 0 and 1 does pretty much nothing to radiation. Numbers higher than 1 start multiplying it, negative numbers start reducing it. This will stop the radiation from a supermatter irradiating you only if you stand behind it. If you're not covered by the shutters or the shutters are open, they won't protect you at all. They also have their own sprite with a radioactive hazard symbol.
• Added the rad shutters to in-rotation maps on their supermatter engines and the windowed shutters to Metastation armoury.
Sofas
• Introduces the corporate sofa. A sleek grey sofa. The original sprite I ported from Hyperstation's files. I'm not sure where they got the sofa but I was told it was Eris. I didn't see it there but I didn't look super hard. I've updated the sprites on it to work with armrest sprite overlays.
• Ports the sofa sprites from Cit and the armrest sprite overlays. They look nicer than awkwardly floating over the sofa. The sofas are the same, they're just moved a little for the armrest to work.
• Makes the new corporate sofa craftable.
* Chess, Sofas & Shutters - Furniture Update
Co-authored-by: KathrinBailey <53862927+KathrinBailey@users.noreply.github.com>
* improve performance of vis_overlays by handling dir by using vis_flags (#53816)
vis dir changes are now handled by vis_flags
* improve performance of vis_overlays by handling dir by using vis_flags
Co-authored-by: Couls <coul422@gmail.com>
* Custom statues and sculpting changes. (#53154)
### Gameplay changes:
- Spacemen lose their ability to sculpt all minerals into statues barehanded, you need a chisel now.
- You can now create carving blocks out of 5 sheets of most materials.
- Using a chisel on the blocks you can designate what to carve in it (including the preset statues from before).
- Chisels can be printed at autolathe, there's also one in art storage.
### Code changes:
- Squeak component now squeaks on attack_hand for structures.
- Radials now accept atom paths automatically extracting the name with initial.
- Base and rigid stack recipes renamed appropriately.
- Statues now use custom materials.
* Custom statues and sculpting changes.
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
* Sprite stuff: missing belt and suit storage sprites among others (#53804)
About The Pull Request
Adds a bunch of sprites including:
A basic nullrod sprite
Belt sprites for the claymores lol nevermind
Backsprites for the cult blade and changed the chaplain's darkblade to fit on the back.
Suit storage sprites for the dark scythe, the cultblade, the spellblade, the claymores, katana and the nullrod
Suit storage sprites for a whole host of high powered firearms. You can visibly tell someone has shotguns or sniper rifles in their armor vest. How neat.
You can't conceal stunprods in armor suit storage anymore.
Nullrod cultsword (darkblade) also uses a uniquer inhand. Ye.
Also knives and a rolling pin belt sprite, hecc!
I also did some other stuff look there are a lot of sprites and I want to sleep please leave me alone nullrods are fucking stupid.
* Sprite stuff: missing belt and suit storage sprites among others
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
* Fully removes devil and affiliated shitcode (#53612)
Its all over the place, messy, and overall a bad enough gamemode to be removed from rotation.
A rework would have to tear out everything as is so there is no reason to allow the shitcode to live beyond tripping up everything.
* Fully removes devil and affiliated shitcode
* weh
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
* Flower Buds now have a countdown for ghosts for when they're going to hatch (#53648)
They're two minute timers with no indication, which makes kudzu kinda annoying to spectate.
* Flower Buds now have a countdown for ghosts for when they're going to hatch
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Optimizes Conveyors (#53220)
Less proc overhead
Made the actual moving speedier
removed a unused var
* Optimizes Conveyors
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
* Completely removes Hilbert's Hotel and its associated ruin from the game. (#53790)
The Hotel is a runtime machine. When it swaps rooms, its turfs runtime. When people are actively using it, things in it constantly runtime. It's half broken, half buggy. Turfs don't remember contents. Sometimes blank rooms spawn. Sometimes nothing at all.
It's not worth the time and effort to fix or maintain it.
I'm opening this PR to completely remove it.
* Completely removes Hilbert's Hotel and its associated ruin from the game.
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
* Adds sidings floor decorations (#53797)
This was a frequent request from mappers ever since trimlines were added, they work similarly to trimlines but they have different use cases and don't necessarily work together, so I am calling them sidings to avoid confusion.
Whereas trimlines are floor paint for plating, these are solid borders to be used either alongside walls, smoothing transitions between floor types or mark/split an area without having to use walls, and work with any floor type.
These are ALL greyscaled, so they're trivial to bikeshed customize and make new types for your mapping needs
- Colored (plastic/vinyl strips, standard departmental colors)
- Plating(metal, grey/white/dark)
- Wood(it's wood)
I've added them to meta's bar as a small example
* Adds sidings floor decorations
Co-authored-by: Mickyan <38563876+Mickyan@users.noreply.github.com>
* Merge pull request #53812 from SgtHunk/ITS-HAURRIBLE
Adds the CRAZY HAMBURGER
* Adds the CRAZY HAMBURGER
Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
* Slightly optimize shroom spreading code (#53652)
There were some recent lag events on the servers caused by the timer
subsystem jamming up with glowshroom timers. I whined about this but
nobody did anything so
(Thanos "Fine... I'll do it myself" GIF)
There are a few changes here, first we collect the potential turfs for
the view call in a single pass, not once per yield run.
Second we don't run a second view(1) on every single potential turf,
instead we try to randomly pick a turf 3 times during yield phase and
check the view then.
If we fail to find a potential location then we bail out of that yield
phase. This is a tradeoff between processing time spent finding
locations and the chance that the glowshroom fails to spread.
Finally, we have maximum limit on how many times a glowshroom fails to
spread, if it fails to spread at least 5 times over any iteration, it
stops processing for spread completely.
As a bonus, the timers have been made unique, so we don't accidentally
generate multiple timers for a single shroom, other than the two it
already needs.
This code would benefit from being a separate subsystem and grouping,
generations of the plants together as a single ticking entity and just
spreading from selected edge plants. However I don't particularly feel
like plumbing that together, so this will suit for now.
* Slightly optimize shroom spreading code
Co-authored-by: oranges <email@oranges.net.nz>
* Remove bad reference from atmos (#53781)
Change the name from Cyrion B to Zauker due to the easy connection the bad groups in the past
Not getting a repo ban is good
* Remove bad reference from atmos
Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
* Silicon deletion cleanup (#53680)
Law datums were referencing owner
Law datums were not being delled
Some MMI code was organized strangely
* Silicon deletion cleanup
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>