* Fixes a bunch of cult abilities not working (#70036)
* Fixes a bunch of cult abilities not working
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Removes canuserrotate from simple rotation's screentip (#70002)
Removes canuserrotate from rotation context
Removes the check on whether the user can rotate a chair or not, in the screentip context message.
We shouldn't check to see if a person can or can't rotate a chair or not, they will instead get the feedback when they try to rotate it if they fail, but it's better if the screentip let them know it's a mechanic that exists.
* Removes canuserrotate from simple rotation's screentip
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
* Fixes `async_fire_ranged_attack` failing to get `target_mob` for targeting body zone (#70001)
* fix var missing passed value in fire_ranged_attack, allowing glockroaches to fire again.
* Fixes `async_fire_ranged_attack` failing to get `target_mob` for targeting body zone
Co-authored-by: Sealed101 <75863639+Sealed101@users.noreply.github.com>
* Fixes voice of god runtime when a target resists the command (#69921)
* Fixes voice of god runtime when a target resisted your command and adds a grep to avoid it being a problem again in the future.
* Fixes voice of god runtime when a target resists the command
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Fixed USB ports not working (#69920)
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Fixed USB ports not working
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
* Fixes Bread Smite Causing Some Fucked Up Shit (#69853)
* Fixes Bread Smite Causing Some Fucked Up Shit
Hey there,
So basically, when you had the bread smite done on you, you were _just_ added to the contents of the bread. Nothing more. That means that you could pick it up. You couldn't add it to your bag (it would always return back into your hand(?)), but it would create some weird oddities that was just cursed in general. Let's make it so you can't hold the container that you are contained within by giving you HANDS_BLOCKED.
* actually we don't need the named arg
lets get rid of the cursed thing entirely
* removes sanity check
* we do a bit of component trolling
THIS TOOK ME TWO HOURS FUCK YOU
* removes cruft comment
* cleans up code a teeny bit, upgrades to incapacitated
* wait that named arg is still there wtf
* Review Time
Co-authored-by: Seth Scherer <supernovaa41@ gmx.com>
* wrong operator and wrong order of operations
* null out the container
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* checks to see if container is qdeld
* weakref time
Co-authored-by: Seth Scherer <supernovaa41@ gmx.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Fixes Bread Smite Causing Some Fucked Up Shit
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Seth Scherer <supernovaa41@ gmx.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
* Add Alt RMB and Ctrl RMB screentips (used for Simple Rotation) (#69726)
* Add Alt RMB and Ctrl RMB to screentips
* Add Ctrl and Alt RMB screentips to defines
* Add Alt RMB and Ctrl RMB screentips (used for Simple Rotation)
Co-authored-by: Tim <timothymtorres@gmail.com>
* Verbose Vote Initiation Feedback Tooltippery (#69763)
* Verbose Vote Initiation Feedback Tooltippery
Hey there,
So basically, the old implementation had it such that when a vote was disabled and you tried to trigger it, you could get a very nice message in your chat explaining why you could not trigger that vote in that moment. HOWEVER, there's a current fatal flaw in this logic:
You can't ever get that to_chat reason as to _why_ this vote is disabled since you can't click the button. I don't know if this ever worked, which is sad, because we had a lot of these nice messages that one would never see. So, let's leverage the power of TGUI and add messages.
The messages are applied per-datum singleton, and are a generic explanation of what the vote does when there is no specific reason assigned to it when the can_be_initiated() proc runs. If it can not be initiated, we change the message to reflect exactly why the player can not initiate the vote. It ends up looking something like this:
In order for this to work well for the restart vote and to lessen the amount of copy-pasting I might have to do, I created a new proc that checks to see if a valid admin is online, and uses that for both updating the message and restarting the server if the vote clears.
* fixes messages not resetting
* removes misleading section
the admin can always restart the server if they wish
* Verbose Vote Initiation Feedback Tooltippery
Co-authored-by: san7890 <the@san7890.com>
* Fixes bileworms being unable to act (#69874)
* Makes bileworm AI use weakrefs for targets
* Apply suggestions from code review
* Update code/datums/ai/basic_mobs/basic_ai_behaviors/try_mob_ability.dm
* question mark
Co-authored-by: ShizCalev <ShizCalev@ users.noreply.github.com>
* Fixes bileworms being unable to act
Co-authored-by: GoblinBackwards <22856555+GoblinBackwards@users.noreply.github.com>
Co-authored-by: ShizCalev <ShizCalev@ users.noreply.github.com>
* Fixes some cases of adjusting wound blood flow to use the helper (#69513)
Makes blood flow adjustments use the blood flow adjustment helper.
* Fixes some cases of adjusting wound blood flow to use the hlper
* modular
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
* Rocking The Boat, er, Map Vote (#69561)
* Rocking The Boat, er, Map Vote
Hey there,
A while ago, I spooke (typo intentional) to some other people. One frustration I heard was the fact that people would sometimes sneak through map votes during the very start of a shift, during a high-paced portion, or just as a meme. People in OOC would then flood the vote, putting in any given station. However, if a vote happens 10 minutes in- and the round goes for 70 minutes and not many of the original players are around, then it's not particularly fair to those who have to play next shift on a map they bemoan.
So, we can rock the vote! If a player isn't particularly chuffed with the hand they are given, they can poll the players to see if they want to change the map as well. If rocking the vote goes through, huzzah, you get the ability to vote for the map again. If it doesn't go through: tough luck. You can rock the vote one time per shift by default, and server operators can change the amount of times you can call to rock the map vote at their discretion. Calling to rock the vote either successfully or non-successfully counts as a "call", and when that limit is exceeded: no more calls.
Does this mean that we will only rotate between two maps because pissants will keep rocking the vote until they get what they like? Maybe? I still see people bemoan getting Tram or shit the bed over IceBox, but I think enough people get sick of bread-on-butter to take the server where it need to go. If operators don't really like seeing only two maps play, they can always adjust the config to ensure it doesn't happen.
* makes the grammar grammar
it would be "Rock the Vote vote" otherwise
* Rocking The Boat, er, Map Vote
Co-authored-by: san7890 <the@san7890.com>
* Sleeping Carp deflect works once more (#69821)
* Actually passes user in can_deflect in sleeping carp, making it work again.
* Sleeping Carp deflect works once more
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Fixes some internal spelling of "auxillary" (#69789)
Today I tried searching for the code related to the auxillary base location remote.
Today I learned that I didn't know how to spell "auxiliary".
Fortunately, I learned that two other people made this same mistake, so I don't feel stupid.
Searching for other common mispellings of the word didn't show anything, and there are only so many ways to spell it wrong.
* Fixes some internal spelling of "auxillary"
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Fixed a bug that causes sliced food to have significantly fewer reagents than intended. (#69733)
* Fixed a bug that causes sliced food to have significantly fewer reagents than intended.
Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
* fix xenbio bag (#69518)
A little earlier, it was gone to use bags of xenobiology on reproductive extracts, but now, after this change, the possibility is completely returned.
* fix xenbio bag
Co-authored-by: Yaroslav Nurkov <78199449+AnywayFarus@users.noreply.github.com>
* Faxing of unusual objects (#69651)
* Fax machines have a wire panel.
Fax machines can be hacked to allow unusual input, throw their contents on receipt, and be invisible to the network.
Fax machines will accept some additional paper-like items by default.
Fax icons moved to their own file.
* Unpunctuates screentips.
You can send cash now also.
* Removes unnecessary "var".
Adds salami to food list.
* Faxing of unusual objects
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Stray Meteor event, five new special meteors, and another reason to build meteor shields (#69550)
Adds the Stray Meteor random event, as well as a few new special meteors to be featured in it (as well as to meteor waves, but to a lesser degree). Other than these special meteors being a part of meteor waves, the meteor wave event itself is unchanged by this new event.
A single meteor is thrown somewhere in the vicinity of the station, accompanied by a brief warning announcement. To make things more interesting, five new special meteor types have been created to accompany the original three (flaming/irradiated/tunguska). The special meteors have been added to the meteor wave pools, but have lesser weight than the standard meteors. Enough about that though...
* Stray Meteor event, five new special meteors, and another reason to build meteor shields
Co-authored-by: Rhials <Datguy33456@gmail.com>
* Fixes hard-dels related to lua signal handlers (#69555)
When I changed the syntax of SS13.lua to account for the ability to properly index tables with datums, it turns out that the callbacks created for signal handlers and timeouts had circular references, resulting in hard-deletes.
My first solution was to make it so signal handler and timeout callbacks use weakrefs, which get resolved in lua_state/call_function, but it turns out that, when calling the signal cleanup function, a qdeleted-but-not-yet-garbage-collected datum's weakref resolves to null because datum.gc_collected is set to GC_CURRENTLY_BEING_QDELETED before COMSIG_PARENT_QDELETING gets sent.
To resolve this issue, Potato and Oranges both recommended that I make a snowflake variant of resolve which ignores whether the datum a weakref points to is qdeleted - only that it is null or it's weakref isn't the very weakref resolve was called on. This proc was given a lengthy autodoc comment describing when it should or shouldn't be used, to ensure it is only used in cases similar to the one I needed to create it for (needing to resolve a weakref to a datum in a COMSIG_PARENT_QDELETING handler registered on that very datum).
* Fixes hard-dels related to lua signal handlers
Co-authored-by: Y0SH1M4S73R <legoboyo@earthlink.net>
* Cows can eat wheat off the ground. If cows see wheat on the ground, they'll try to go eat it (+ moonicorns with galaxy thistle) (#69253)
About The Pull Request
Cows are now grazers, they love eatin' wheat and it even heals them if hurt. If they see it just on the ground, they might eat it all! Careful, botanists! While tamed, cows won't eat off the ground if they're busy ferrying you around.
FYI: this is going to conflict with #69247 and so thiss should not be merged until that is
Why It's Good For The Game
Wanted to add this with the original port of cows to basic mobs, didn't have the TECH to do so. Now I do, now it's done. I also wanted it ready for the future where mice and rats are ported, so they'd seek out cheese to eat. I also also think it's a neat way for a cow to heal.
* Cows can eat wheat off the ground. If cows see wheat on the ground, they'll try to go eat it (+ moonicorns with galaxy thistle)
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Improvement to monkey AI's weapon selection ability. Won't attack With zero force items. (#69490)
Monkeys will now drop the item in their hand when selecting a weapon to attack with if it is worse than their basic bite attack, and will avoid picking up a weapon if they can't find one that's better than their basic bite attack.
Because of this, you can no longer completely disable monkeys by filling their hands with zero force items. This also means you can no longer trick monkeys into using sutures and other medical items on you.
* Improvement to monkey AI's weapon selection ability. Won't attack With zero force items.
Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com>
* medical/security modsuit updates and modules (#69194)
tweaks the colors on the security modsuit to be lighter, i think i did that on the original pr but it got reverted due to merge conflicts
makes the standard quick carry module have nitrile level carrying instead of latex level
environmental bodybags are now always pressurized
adds medical and security hardlight bags, which are environmental bags you can use to move people through space, security ones can be sinched to prevent escape
adds a medical version of the prisoner capture module, for patient transport, prisoner capture and patient transport now use the medical/security holobags, medical one deploying them faster. when you move too far out of range the holobag dissipates
adds a defibrillator module, extends shock paddles
adds a thread ripper module, this module temporarily rips away the matter of clothing, to allow stuff like injections, surgery, defibrillation etc through it
adds a surgery processor module, essentially a portable surgery computer like borgs have
fixes a bug where you can unwield defibrillator paddles just after starting the do_after to defib onehanded
fixes a bug where the modsuit gps would have a broken name when renamed
* medical/security modsuit updates and modules
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* Adds more multiz support (#69420)
* Adds more multiz support by making use of ``is_valid_z_level`` instead of simply checking if z is the same.
* Adds more multiz support
Co-authored-by: ShizCalev <ShizCalev@users.noreply.github.com>
* Resprites Trekkie Uniforms, adds Voyager Uniforms, adds Trekkie Costume Crate (#68871)
Added a Star Trek Costume Crate and updated the Star Trek uniforms to modern sprite standards, as well as adding Voyager uniforms!
* Resprites Trekkie Uniforms, adds Voyager Uniforms, adds Trekkie Costume Crate
* goodbye
Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Fix combustible flooder temperature param not being parsed. (#69583)
" TEMP" != "TEMP"
Fixes#69579
* Fix combustible flooder temperature param not being parsed.
Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com>
* Spider Rebalance PR: Burn Baby Burn Edition (#68971)
This is a remake of #66106, with more thought put into the underlying balance. The main goal of this PR is to make fighting spiders more accessible and interesting for the majority of the crew while nerfing the extremely strong and boring option of simply using freezing temps to kill spiders. Also fixes#67765. The changes are as follows:
NEW SPIDER COUNTERS
Fly swatters now deal 25 damage to spiders on hit, increased from 1
Pesticide now deals massive stamina damage to spiders and a little bit of physical damage as well (the damage portion not added by this PR)
Spiders can now be caught on fire through any traditional mean of catching something on fire. Spiders will automatically put themselves out after a time. This was done instead of an active action because AI spiders are also subject to this change as well, and I don't feel like bloating the simple mob AI with putting themselves out
SPIDER CHANGES
NERFS
Toxin injection has been removed from all spiders except for the hunter, flesh spiders and the viper
Hunter toxin (used by hunters and flesh spiders) now only brings the afflicted down to 40 health, and will stop taking effect once the afflicted reaches that threshold. Should the afflicted still have the toxin in their system and get healed, the toxin will begin dealing damage again until the afflicted is at 40 health or below again
Viper toxin now only brings the afflicted down to 10 health, but also has the hallucination effects of Mindbreaker toxin. This hallucination effect is applied regardless of target health. It also no longer generates other harmful chemicals into the afflicted's system, but is much more potent at base
Flesh spiders cannot regenerate while on fire
BUFFS
Time it takes for spiders to normalize their temperature cut by half. While they will react faster when in cold or hot environments, when they leave said environments it will take less time to return to normal temperature
Unsuitable temperature damage reduced to 4 from 8
You can no longer push spiders by running into them
Webbing heat damage threshold increased from 300 to 350 (same temp where spiders also take damage)
Broodmother egg laying time reduced to 12 seconds from 15
Broodmother web laying time multiplier reduced to 0.5 from 1
Broodmother health increased to 60 from 40
Broodmother damage increased to 10 - 15 from 5 -10
BEHIND THE SCENES CHANGES
You can now make any simple mob able to be caught on fire by setting flammable to true
How fast a simplemob stops burning is controlled by fire_stack_removal_speed
Can now now control how fast simplemobs regulate their temperature using temperature_normalization_speed. Before this PR, this value was hard-coded at 10, I have set the default to 5 as 10 was too long in almost any case. This will notably affect slimes, who could easily die to being cold long after being removed from the cold area. I see this as purely beneficial
Toxins now have a health_required value. The afflicted has to be above this health value in order to take damage from the toxin. Only used in the spider toxins currently
When I was setting up simplemobs to be flammable, I noticed basic mobs can be glitchily set on fire, so I fixed it to where they can't be set on fire.
Why It's Good For The Game
Spacing something is very easy, but not very fun or interesting compared to starting and controlling a fire. Swapping spiders' temperature weakness from spacing to fire is beneficial to the fun of fighting them and playing as them, allowing more creativity and resourcefulness on both sides. Ideally, this should allow for atmosians and chemists to use their skills in a fun way.
Currently, ignoring spacing them, the only people who can reasonably take on spiders is security, since they have lasers which do burn and stuns to slow the spiders down. However, this small subset of players cannot normally destroy a spider infestation without spacing them, so letting fly swatters and pesticide be used to combat spiders allows other crewmembers to fight back, letting them actually enjoy facing spiders as a threat and allowing the crew to defend themselves.
Being killed by spider toxin after fighting off a horde isn't fun. The changes still make it a threat you have to be aware of, but not one which detracts as much from the combat loop. This also forces spiders to secure the kill themselves, which is more fun than having the toxin do it for you.
Broodmothers in their current state are incredibly weak by themselves, which is intentional by design. However, the new changes hope to make playing as a broodmother easier and hopefully allow more broodmothers to get the spider infestation started properly. After all, Dynamic is their common source now, and they should be consistently worth the threat cost to spawn them.
Previously, spider structures would seemingly vanish for no reason if the room was heated to be greater than 300 but less than 350, as the spiders would not be able to tell that it was too hot. Now, if the structures are taking damage, spiders will also be taking damage, so understanding what's going on should be easier now.
Pushing spiders into a corner by running into them was not a fun tactic to deal with as a spider and didn't make much sense seeing how big the spiders are.
Changelog
cl
add: Spiders can now be caught on fire
add: Spiders take significant damage from fly swatters and stamina damage from pesticide
balance: Spiders have been re-balanced. Their toxins can no longer kill but they are not as susceptible to freezing
balance: General stats of spider broodmothers have been buffed with more health, damage, and faster web and egg placement
balance: Flesh spiders cannot regenerate whilst on fire
balance: Simplemobs change their internal temperature twice as fast
fix: Basic mobs no longer glitchily catch on fire.
/cl
* Spider Rebalance PR: Burn Baby Burn Edition
Co-authored-by: IndieanaJones <47086570+IndieanaJones@users.noreply.github.com>