Commit Graph

4201 Commits

Author SHA1 Message Date
John Willard
aee2a48600 burning things moving over a bonfire sets the bonfire on fire (#63674) 2021-12-31 19:55:44 -06:00
Jeremiah
9c6fdb567d TGUI list conversions + bug fixes (#63354)
About The Pull Request

    Converts more inputs to TGUI. Possibly all user-facing input lists in the game.
    Did any surrounding text/number inputs as well
    Added null choice support so users can press cancel.
    Added some misc TGUI input fixes
    Fixed custom vendors while I was there

I refactored a lot of code while just poking around.
Primarily, usage of .len in files where I was already working on lists.
Some code was just awful - look at guardian.dm and its non use of early returns
If there are any disputes, I can revert it just fine, those changes are not integral to the PR.
Why It's Good For The Game

Fixes #63629
Fixes #63307
Fixes custom vendors /again/
Text input is more performant.
Part of a long series of TGUI conversion to make the game more visually appealing
Changelog

cl
refactor: The majority of user facing input lists have been converted to TGUI.
refactor: Tgui text inputs now scale with entered input.
fix: Many inputs now properly accept cancelling out of the menu.
fix: Fixes an edge case where users could not press enter on number inputs.
fix: Custom vendor bluescreen.
fix: You can now press ENTER on text inputs without an entry to cancel.
/cl
2021-12-31 11:07:28 +13:00
Fikou
7b38dd4ff7 MODsuits (#59109) 2021-12-24 12:00:24 -08:00
Jeremiah
dcab86ba2c More standard tgui input conversions (#63464) 2021-12-24 13:04:18 +02:00
Jeremiah
415e9dd7c1 Fixes typos in span, other html elements (#63510)
Atomizes a much larger PR for another time...
There are typos in span and other html messages that causes them to not render correctly or at all.
Bug fixes
Converts those instances of span to use the macro
2021-12-23 17:06:01 +00:00
oranges
e71e35e89c Mops no longer wet the turf when you refill them from the mop bucket (#63549) 2021-12-22 12:56:35 -08:00
Ghom
12bf03aa08 proximity monitors cleanup (plus connect_range and connect_containers components) (#62755)
I'm refactoring proximity monitors and fields, removing lots of bloat from both that's hardly even used. Proximity monitors no longer generate effect objects to track the surrounding area, should be less cpu expensive and easier to maintain (or phase out), read and use.
This PR also adds a couple components which may be needed for future stuff (for starters, the mirror reflection PR #62638 could use the connect_range comp)

Improving old old, ugly old code and adding some useful backend components. Tested and working.
2021-12-21 23:49:08 -08:00
Seth Scherer
6869abefb1 You can now resist out of nested containers (also fixes the GBJ associated with it) (#63449)
Co-authored-by: SuperNovaa41 <supernovaa41@protonmail.com>
2021-12-18 15:22:58 -08:00
Seth Scherer
307d86134c Fixes table slamming through impassable objects (#63446)
Co-authored-by: SuperNovaa41 <supernovaa41@protonmail.com>
2021-12-18 01:23:12 -08:00
LemonInTheDark
5bca18b575 Prevents shoving people into the locker dimension (Fixes other shove things too) (#63372)
Made this like half a month ago. Fixes #63095
Fixes #63096, all of it

People seem to be upset by being force moved into an open locker, can't imagine why. Let's start with this
I'll be back for the rest soon (I HAVE RETURNED)
2021-12-17 12:06:06 +00:00
MrMelbert
bae0967b8e Stops aux base turrets from hard-deleting (and 1 other fix) (#63424)
Fixes #62643

Fixes aux-base turrets from hard-deleting by handling their deleting on the aux base itself.
Converts the turrets list to a proper lazylist and cleans up some surrounding code involving the turrets list.
Also fixes a copy+paste error with tiny fans being placed.
2021-12-17 11:49:22 +00:00
Azarak
19329cd74a Fixes objects with bad planes and FoV bugs (#63412) 2021-12-15 16:59:56 -08:00
Jeremiah
d17a60fb53 TGUI input box conversions 2 (#63395)
More text inputs converted to tgui, TGUI text and number input now more sanely handles ENTER key being pressed, you can now press anywhere in the window to enter the input. TGUI text input now considers placeholder text for the default valid state. IE, if there is default text you can press enter immediately without having to rewrite it just to recheck validity. Fixes: useSharedState => useLocalState. not only was sharedstate not needed but it opened up the ui to vulnerabilities
2021-12-15 14:12:04 -08:00
vincentiusvin
d69dd1f1dd Fixed rough iron false wall alert text and rough iron wall deconstruction amount. (#63389) 2021-12-15 01:08:41 -08:00
John Willard
2834383245 Makes all default job titles, defines. (#63357)
Jesus christ we were just waiting for someone to misspell something eh?
2021-12-14 17:48:46 -08:00
tralezab
82615e7462 Super Mega Mob Spawn Refactor (#63279)
About The Super Hyper Ultra Ultimate Deluxe Perfect Amazing Shining Mob Spawn Refactor

The Super Hyper Ultra Ultimate Deluxe Perfect Amazing Shining Mob Spawn Refactor is my attempt to clean up the file structure, the code, and the type tree for mob spawns.

    Splits mob spawn types into corpses (dead spawns) and ghost roles (living spawns you can possess). The vars that didn't make sense for corpses and vice versa for ghost roles are now appropriately there
    Because of above, there are no longer the fucking "death, roundstart, and instant" vars. thank god
    Removes a lot of single or very few used vars, whose properties can be applied on special().
    All Mob Spawns are given fitting folders instead of just being stuck in a single ghost roles file. Corpses are in the corpse folder, Ghost Roles are in the ghost role folder. Only exception are drones which should stay near their respective homes
    Just generally cleaner all around you know
    spider structures file renamed to spiderwebs now that spider eggs are gone

Why Super Hyper Ultra Ultimate Deluxe Perfect Amazing Shining Mob Spawn Refactor Is Good For The Game

The Super Hyper Ultra Ultimate Deluxe Perfect Amazing Shining Mob Spawn Refactor cleans up so many terrible cases and uses
Changelog For The Super Hyper Ultra Ultimate Deluxe Perfect Amazing Shining Mob Spawn Refactor

cl armhulen
refactor: Mob spawns are refactored, no more assortment of "random, instant, and roundstart" vars on every mob spawn type
refactor: if there are some minimal differences in how mob spawners feel, that's why!
/cl
2021-12-15 11:13:21 +13:00
LemonInTheDark
4610f700eb Fixes up multiz atmos connection, cleans some things up in general (#63270)
About The Pull Request

ALLLRIGHT so
Multiz atmos was letting gas flow down into things that should be well, not flowable into
Like say doors, or windows.

This is weird.

Let's get into some context on why yeah?

First, how do things work currently?

atoms have a can_atmos_pass var defined on them. This points to a define that describes how they interact with
flow.
ATMOS_PASS_NO means well, if we're asked, block any attempts at flow. This is what walls use.
ATMOS_PASS_YES means the inverse
ATMOS_PASS_DENSITY means check our current density
ATMOS_PASS_PROC means call can_atmos_pass, we need some more details about this attempt

These are effectively optimizations.

That var, can_atmos_pass is accessed by CANATMOSPASS() the macro
It's used for 3 things.

1: Can this turf share at all?
2: Can this turf share with another turf
3: Does this atom block a share to another turf

All of this logic is bundled together to weed out the weak.

Anyway, so when we added multiz atmos, we effectively made a second version of this system, but for vertical
checks.

Issue here, we don't actually need to.
The only time we care if a check is vertical or not is if we're talking to another turf, it's not like you'll
have an object that only wants to block vertical atmos.
And even if you did, that's what ATMOS_PASS_PROC is for.

As it stands we need to either ignore any object behavior, or just duplicate can_atmos_pass but again.
Silly.

So I've merged the two, and added an arg to mark if this is a verical attempt.
This'll fix things that really should block up/down but don't, like windows and doors and such.

Past that, I've cleaned can_atmos_pass up a bit so it's easier for people to understand in future.
Oh and I removed the second CANATMOSPASS from immediate_calculate_adjacent_turfs.
It isn't a huge optimization, and it's just not functional.

It ties into zAirOut and zAirIn, both of which expect to be called with a valid direction.
So if say, you open a door that's currently blocking space from leaking in from above, you end up with the door
just not asking the space above if it wants to share, since the door can't zAirOut with itself.

Let's just wipe it out.

This makes the other code much cleaner too, heals the soul.

Anyway yadeyada old as ass bug, peace is restored to the kingdom, none noticed this somehow you'd think people
would notice window plasma, etc etc.
Why It's Good For The Game

MUH SIMULATION
Also fuck window gas
Changelog

cl
fix: Fixed gas flowing into windows from above, I am.... so tired
fix: Fixes gas sometimes not moving up from below after a structure change, see above
/cl
2021-12-14 15:57:59 +13:00
Jeremiah
1052bc19ed TGUI input box conversions 1 (#63313) 2021-12-11 14:21:35 -08:00
Jeremiah
60922e7cfc TGUI list input conversions (#63315)
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Sealed101 <75863639+Sealed101@users.noreply.github.com>
2021-12-10 02:20:01 -08:00
Seris02
fa22f80262 fixes bots getting stuck on railings and crashing clients (#63306)
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2021-12-10 02:12:35 -08:00
EOBGames
cf899a1821 Moth Food Returns: A Taste of the Fleet (#63174) 2021-12-09 21:41:36 -08:00
BlueMemesauce
2ee3d602fc Increases volume of the sound effect for knocking on firelocks (#63053)
Changed firelocks to have the same bash and knock sound effects as windows.
Which increases the volume of the knock sound effect and also adds the bash sound effect.

Also improves some of the code for firelock and window

Firelocks already had the knock sound effect, but it is so quiet that you can barely hear it. The volume should be increased so that people can hear it.
2021-12-09 16:45:47 -08:00
vincentiusvin
3bb8424d78 Makes welding plasma bars/statues/floors use flooder component (#63154)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-12-08 16:14:28 -08:00
John Willard
bbdbe79049 Magic mirror: Fixes changing races & code improvement (#63201)
All mirrors now use the same Initialize(), with a var determining which flag to check.
Improves some of the code with better var names and early returns.
Moves pride ruin's mirror to the rest of the mirrors
Removes /curse() proc, replaces it with Pride's mirror just calling parent instead, since it was the only mirror that used it.
Also fixes not being able to change races with the mirror.
2021-12-07 12:15:08 -08:00
RandomGamer123
e52fc6aa9f Stops transit tube dispensers from transporting anchored objects such as immovable rods (#63108)
Stops transit tube dispensers from transporting anchored objects such as immovable rods
2021-12-07 19:27:04 +00:00
Ghom
21ac10d3d4 multiz movement refactor redux (#62132) 2021-12-06 23:13:48 -08:00
GoldenAlpharex
1696f0bfe3 Adjusts the greyscale sprites of the benches (#63261)
* Adjusts the greyscale sprites of the benches

* More of a wooden color for the benches
2021-12-07 00:57:35 +01:00
Doctor Pope
aa034d02cd Fixed spelling of possession, separate, and cemetery (#63203)
Just fixes some spelling for gangs. I also fixed misspellings for "posession" to "possession". Fixed "seperate " to "Separate" Fixed "Cemetary" to "Cemetery"
2021-12-03 13:29:29 -08:00
MMMiracles
581cba6a1d the goat plushie can be run over (#63148)
You can now run over the plushie with the tram, splatting it into the ground

Non-joke reason: The tram now sends a signal to the destination turf, which can be used by objects to have unique interactions with the tram when being ran over.
2021-12-03 13:26:13 -08:00
Tom
b4d1f582fa Fixes another TK teleportation trick, but more literally (#63125)
Stop people with TK being able to instantly teleport onto weight machines
2021-12-01 13:19:20 +00:00
MrMelbert
1b6fbbb20e DELTASTATION: Complete service + arrivals revamp, cargo tweaks (some maintenance was harmed in the making of this pr) (#62972) 2021-11-29 16:44:05 -07:00
GoldenAlpharex
bdc7043dda Industrial lift should no longer phase through floors and ceilings (#63067)
About The Pull Request

There was no check to see if there was a ceiling above the elevator, so you could always go up if you wanted to, you just couldn't go down.

There was also an issue where if the menu was opened and any change was made either up or down, it wouldn't be taken into account by the lift and it would do it anyway. That means that the top level could become unsuitable by someone blocking it off and the elevator wouldn't care.

Finally, should fix the issue where the radial menu doesn't update when the lift move, causing you to be able to make illegal moves because there was no sanity checks. Now there is some sanity checks, and the menu will additionally close if the elevator has moved since you opened it. Just click on it again to open it once more.

I also ended up documenting some of the code there while I was there, and improved a few variable names because they didn't follow coding standards.
Why It's Good For The Game

Going through floors and ceilings was in general a pretty bad thing about elevators. Now it shouldn't happen anymore.
Changelog

cl GoldenAlpharex
fix: Elevators are no longer defying the laws of physics and therefore can no longer phase through ceilings or floors.
fix: When an individual is interacting with an elevator and said elevator is moved, their menu will be closed if they weren't the one to cause that move, to prevent more physics-defying operations.
code: Improved the industrial lift code by adding documentation and trying to enforce the coding standards in there while I was at it.
/cl
2021-11-29 14:42:18 +13:00
MMMiracles
1d88b2895b The Tramstation Tram no longer shoves the handicapped out of their wheelchairs when moved (#63041)
* tram no longer pushes over buckled people

* varbgone
2021-11-29 00:51:31 +01:00
MMMiracles
6f2382d722 Tramstation Perma Genpop (#62966) 2021-11-27 10:38:54 -07:00
Bond
18f4b36ef6 Moves deconstructing beds and chairs to right click (#63038)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-11-25 14:43:08 -08:00
MrMelbert
c979a23b6c Refactor cult dagger rune drawing and null rod rune clearing into components + minor rune / blood magic tweaks (#62918)
The act of inscribing runes, anchoring / unanchoring cult structures, deconstructing cult girders, and purging cultists of holy water have all been moved off of the cult dagger itself and onto a component, cult_ritual_item.

The act of destroying a cult rune or heretic rune with the null rod have been moved off of their respective items and onto the nullrod itself.

Added a signal, COMSIG_ITEM_ATTACK_EFFECT, for the above purposes.
Various cult spells and dagger interactions have had their code improved slightly.
2021-11-23 17:26:30 +00:00
Imaginos16
305131e20c A step up: The Lawyer Suit Resprite! (#62961)
Co-authored-by: Changelogs <action@github.com>
2021-11-22 23:17:07 -08:00
Ghom
44863b2cfa Fixes some issues and an exploit with abandoned crates. (#62949) 2021-11-22 14:53:48 -08:00
phasenoisepon
5f3cb3888e implements pews needing a tool to be rotated (#62373)
About The Pull Request

    PR'ed for Hacktoberfest (so if this passes muster I'd appreciate it being tagged with hacktoberfest-accepted)
    Pews now require a wrench in hand to be rotated
    closes 

    Can rotate pews #50136
    image

Why It's Good For The Game

This prevents people from easily messing up the chapel and publicly placed pews
Changelog

cl
add: Wooden pews now require a wrench in hand to be rotated
/cl
2021-11-18 13:15:05 +13:00
GoldenAlpharex
97f2250c4b Comfy chair code improvements (#62842) 2021-11-16 12:10:08 -08:00
Ghom
5d3f0b9aea Smooths the gliding of moving trams and its passengers. (#62587)
This makes the glide size of movables inside a tram match that of the platform they are on when the tram is moving (which should in turn match the tramprocess substystem wait).

This will stop slower mobs from looking all jittery when moving on a tram at the cost of a blockier movement while moving inside a moving tram*. This is a small price to pay also considering there's not much space to move around inside the tram anyway and it isn't as annoying.

*Byond/our code doesn't support concurrent glide sizes ( basically if you try to change it midmovement, it'll also update the speed of the current movement step). There's no efficient and universal solution to this.
2021-11-16 00:45:34 -08:00
Ghom
257742b276 Double beds can now have two people buckled to them at a time. Also doubles the material costs to make them and their sheets. (#62813) 2021-11-15 09:39:57 -08:00
FernandoJ8
a8257ece5b Changes chem lockers to pharmacy access (#62531)
About The Pull Request

Changes the access requirement of chemistry lockers from chemistry access to pharmacy access
Why It's Good For The Game

It's a minor change that I'm making it mostly to remove the clutter of needing to ask a chemist, the CMO or god forbid the Captain (if you get really unlucky with how the station's roles are assigned) to open the chemistry locker in pharmacy if you want to get an empty pill bottle or medical gel as an MD. It's not going to allow anyone that wouldn't already been able to easily get the things from the locker to obtain them or vice versa, and it makes sense for MDs to have easy access to most of the items inside. It's just QoL.
If there was different code for each, I'd make this change only for the chem locker in pharmacy, but that isn't the case and having it also affect the one in plumbing has virtually no consequences
Changelog

cl
qol: changes the access requirement of chem lockers from chemistry access to pharmacy access
/cl
2021-11-15 13:13:26 +13:00
Tim
c8584fa2df Change maint crate spawners to be randomized (#62742)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-11-12 23:18:24 -08:00
tralezab
bb7638f114 Routine Cargo Departmental Deliveries (#61992)
About The Pull Request

Document: https://hackmd.io/@bazelart/HkY-SO9VF

Each department's request console is upgraded. Instead of making requests, they are only able to see crates related to their department that helps the department. They can order one for free (so not out of anyone's wallet) and it will arrive at cargo. Cargo gets the price of the ordered crate for bringing it to the department that ordered it (via an area check, of which the crate will remain locked until satisfied, emitter cracking aside).

Ordering a crate puts the console on a cooldown depending on the price of the crate ordered. The time ranges from 10 minutes at the lowest value, to capped at 20 minutes at 4x the default crate's price. the price in time follows a ease in out circular function, where the time increases slowly as the time goes up, but a lot in the middle. towards the higher end it slows down again.

Cargo will start with far less money, but this is countered by the new source of income.

Finish Mapping it
Finish tgui panel for department orders
Testmerge it for balance and feedback who cares

    Maybe give multiple destination areas, just in case one area gets obliterated who cares!

Why It's Good For The Game

Cargo starts with a budget to spend on themselves, which lets them order their department rewards before doing anything. There is no inherent reward to delivering to other departments other than social expectations of filling the job, which means cargo will simply ignore deliveries and requests if there are more self-important things going on, since those deliveries both cost cargo and do not help cargo in any way
Changelog

cl
add: replaced the request consoles in each department with department order consoles, which order for free on a cooldown. cargo gets these orders and delivers the crates, which are locked until delivery. upon delivery, cargo gets paid the value of the crate, and can then sell the crate back on the shuttle.
balance: cargo doesn't start with a budget, other departments get what their budget was split up amongst them
/cl
2021-11-12 14:19:33 +13:00
LemonInTheDark
71c480574a Locker Shoving Re-Reloaded (#62618)
* Locker Shoving Re-Reloaded

The signals here were weird, converted them to connect loc. I did my best to make sure behavior matched what
existed pre arcane pr
Unshat shove code considerably, believe it or not it used to be worse.
2021-11-09 13:13:59 -08:00
esainane
b6f761468e [MDB IGNORE] dir sanity, primarily on WALLITEMs (#62601)
About The Pull Request

Wall items mostly use the direction from the floor to the wall in the named mapping helper. Wall items mostly use the direction from the wall to the floor for the internal dir variable.

This leads to a headache when it comes to working out what conflicts with what, and what needs placing where.

Wall frames provided a member, inverse, which specified whether or not to invert the direction of the item when looking for conflicts. It was also used to specify whether to look for conflicts outside of the wall (cameras and lights appear external to the wall) or inside the wall (most wall items). This flag was set for Intercoms, APCs, and Lights. Since APCs and Lights expect a floor-to-wall direction, and Intercoms expect a wall-to-floor direction, this means that APCs and Lights were getting the correct direction, and Intercoms were getting the wrong direction.

Some implications of this setup were:

    You could build an APC on top of another wall item, provided there was nothing external attached to the wall and the area didn't have an APC.
    You could stack Intercoms indefinitely on top of the same wall, provided you weren't in a one-tile wide corridor with something on the opposite wall.

Or both! Here's twenty Intercoms placed on the wall, and a freshly placed APC frame after placing all Intercoms and deconstructing the old APC:

endless-stack-of-intercoms

Not everything used this inverse variable to adjust to the correct direction. For example, /obj/machinery/defibrillator_mount just used a negative pixel_offset to be visually placed in the correct direction, even though the internal direction was wrong, and never set! This also let you stack an indefinite number of defib mounts on the same wall, provided it wasn't a northern wall... except you could do this to northern walls too, since defibs weren't considered a wall item for the purposes of checking collisions at all!

Ultimately, every constructable interior wall item either used this inverse variable to adjust to the correct placement, set a negative pixel_offset variable to have its offset adjusted to the correct placement, or overrode New or Initialize to run its own checks and assignment to pixel_x and pixel_y!
Inventory: Table of various paths, related paths, and the adjustments they used

Unfortunately, untangling /obj/structure/sign is going to be another major headache, and this has already exploded in scope enough already, so we can't get rid of the get_turf_pixel call just yet. This also doesn't fix problems with the special 2x1 /obj/structure/sign/barsign.

Some non-wall items have been made to use the new MAPPING_DIRECTIONAL_HELPERS as part of the directional cleanup.

tl;dr: All wall mounted items and some directional objects now use the same direction that they were labelled as. More consistent directional types everywhere.
Why It's Good For The Game

fml
Changelog

cl
refactor: Wall mounted and directional objects have undergone major internal simplification. Please report anything unusual!
fix: You can no longer stack an indefinite amount of Intercoms on the same wall.
fix: Defibrillator Mounts, Bluespace Gas Vendors, Turret Controlers, and Ticket Machines are now considered wall items.
fix: Wall mounted items on top of the wall now consistently check against other items on top of the wall, and items coming out of the wall now consistently check against other items coming out of the wall.
fix: The various directional pixel offsets within an APC, Fire Extinguisher Cabinet, Intercom, or Newscaster have been made consistent with each other.
fix: The pixel offsets of Intercoms, Fire Alarms, Fire Extinguisher Cabinets, Flashers, and Newscasters have been made consistent between roundstart and constructed instances.
fix: Constructed Turret Controls will no longer oddly overhang the wall they were placed on.
qol: Defibrillator mounts now better indicate which side of the wall they are on.
fix: Some instances where there were multiple identical lights on the same tile have been fixed to only have one.
/cl
2021-11-09 10:02:34 +13:00
Ghom
b79dd74fd0 Replaces a portion of C-style for loops with the more commonplace for loops, which are faster. (#62624)
Co-authored-by: Kyle Spier-Swenson <kyleshome@gmail.com>
2021-11-07 16:42:41 -08:00
Fikou
4bf2399c44 aliens can no longer clear eggs before the hugger bursts out (#62597) 2021-11-06 21:14:50 -07:00
Ghom
d7e0c782c9 Fixes a few issues with double bedsheets. (#62590)
Fixes the random and dorms spawners for double bed sheets. Fixes the dying_key for double bed sheets.
2021-11-06 23:09:37 +00:00