Commit Graph

35248 Commits

Author SHA1 Message Date
Tim
f695be9ce7 Fix staff of lava not terraforming lava (#61096)
Lava staffs were not terraforming regular lava into empty tiles. This is because it was only checking to see if the lava type was the same weak lava the staff spawns. It has now been fixed to check for all lava types.
2021-08-31 23:43:17 +01:00
Ghom
699563c233 lava and weather immunities refactor (also jump boots fix) (#61003)
In remembrance of all those people who used jump boots to cross lava unaware of an issue c*ders wouldn't fix....

EDIT: This is now a lava and weather immunities refactor:
Weather immunities are now status traits since they have a multitude of sources (especially for lava) which might conflict with one another otherwise.
The lava burn_stuff proc has also been been refactored in different procs, mostly because of that snowdin subtype with inconsistent, old checks.
Weather datums should now use can_weather_act instead of weather_act to check if something can be affected by weather or not, as they should.
All movables can protect contained mobs if they have the relative weather immunity traits. This works at any contents depth.
No more snowflake weather_protection variable for closets.
Removed the weather_immunities list from living mobs (simple animals still have it but it's only for traits assignment on init because way too many child types lack the immunities of their parents).
Removed some unused defines.
Renamed some variables as per guidelines.
It has been tested.
And yea, jump boots fixed because that's the original scope of this PR.

(Initially just made throwing make you fire immune, that was blocked because it breaks perma stuff, instead it ended up be a refactor to make jumpboots usable with weather immumnity stuff
2021-08-31 14:07:19 -07:00
小月猫
62cf2ef21b small refactor to can_interact() so that borg range is fully respected (#60693)
Its a relatively small refactor that changes the previous machinery "can_interact()" proc that literally did a full override despite half of their checks already existing in not one, but TWO parent procs, so i removed the redundant checks, added callbacks to its parents and then added the cyborg range check on the can_interact_with() itself. in doing so i also moved the interaction range var from silicons only, to mobs as a whole and defaulted it to a single tile, silicons override it to 7 (so pAIs and borgs like before) but then set AI and AI.eye to "null", because i have a check in can_interact that if there is no range set, then the range is effectively unlimited. and i even added code for when AI is carded and their wireless transmission is disabled it sets their range to "0" aka, it has no range to do anything even if it could

this was really complicated for me so despite my extensive testing it probably would be a bad thing if any of you want to test my code yourself to ensure there isnt a bug with this (theres no runtimes ive come across)

note: i did a lot of searching and going through machinery to ensure i caught all the little snowflake overrides and added can_interact() checks to them, but i may have missed one or two things, especially maybe a altclick or ctrlclick somewhere, however i believe i caught most of them

one nice side effect of this refactor is that you can actually set another mobs range to something other than 1 tile and they can interact at range, rather than only silicons getting this ability, an admin could VV a human to have a 3 tile arm reach as a meme if they want
2021-08-31 13:59:39 -04:00
Ghom
f545621655 Fixes floored mobs (paraplegia, missing limbs) not being able to stand up in zero G for real. (#61054)
Added a old_movement_type argument to the COMSIG_MOVETYPE_FLAG_ENABLED and COMSIG_MOVETYPE_FLAG_DISABLED signal, fixed the check for zero g movespeed and locomotion traits removal and made some statements easier to understand.
2021-08-31 17:22:24 +01:00
Ghom
888f413539 Fixes the anti-drop implant not removing the nodrop trait on held items if they're somehow dropped. (#61068)
Title. I have used comsigs to do it. Also I have improved the logic of its ui_action_click.
2021-08-31 16:06:02 +01:00
Ghom
fbb12836a0 Corrects a possessive case in the fluff text of a paper note found in an ice planet ruin. (#61066)
Corrected a possessive case in the text of the ancient note found in the ice library ruin.
2021-08-31 14:57:40 +01:00
Ghom
add6e320fb Hostile mobs will always face their targets when shooting. (#61069)
Added a face_atom call with targeted_atom as arg.
2021-08-31 13:53:55 +01:00
tralezab
b4309e54f7 Fixes antag panel runtime (#61115)
uplinks don't always exist for traitors!
2021-08-31 12:11:19 +01:00
Ghom
c4f80dc599 Update balloon_alert.dm (#61035)
balloon alerts now have the RESET_COLOR|RESET_ALPHA|RESET_TRANSFORM appearance flags.
2021-08-31 12:05:51 +01:00
Shroopy
c0de6b9c01 Fix female uniforms not updating color correctly (#61040)
Fixes #59235, fixes #59297, fixes #61012, and other similar bugs.
The global list of female uniforms now appends the greyscale color of the uniform to the index/name, so all GAGS female uniforms are unique and handled correctly.
2021-08-30 15:51:00 -07:00
dragomagol
c4c0c38b0e Gives brainwashed victims an antag hud (#61077)
Gives brainwashed victims an antag hud icon
2021-08-30 22:42:01 +01:00
aaaa1023
f04df890dd fixes misspellings of "aggressive" in a few areas. (#61092)
Fixes the spelling of "aggressive" in a few items, comments and a define.
2021-08-30 20:49:35 +01:00
YakumoChen
9e2cb9dc58 Naive works correctly on simple animals (#61088)
About The Pull Request
Innocent clowns now perceive dead animals as asleep, the same as humans.
2021-08-30 20:30:34 +01:00
AMonkeyThatCodes
46cb925af0 Basic Mobs: the cooler simple mobs that run on datum AI. (With reworked cockroach AI as proof of concept) (#60694)
Simple_animals / mobs are the biggest lie in this code-base. They're far from simple and have an extreme god-object problem. Especially when you get to /hostile, where there is so many procs, vars, and what not, that you can't make any interesting additions without snowflaking the hell out of the code.

This PR hopes to help kill this problem by introducing a new /living subtype, /living/basic. The idea of this refactor is to slowly start moving all old simple_animals to this new system, moving over behaviors like charging and more extravagant mobs like megafauna over bit by bit similar to how newfood was implemented.

One of the other big goals of this refactor is to move many of the fringe simple animal behaviors into either AI datums, or components/elements. (Some of which still needs to be done in this PR).

As a proof of concept, I created the base mob/living/basic, and moved cockroaches over to the system. Since cockroaches have both a passive, melee and ranged mob.

This PR does slightly affect balance as the behavior isn't 1-on-1 due to it no longer running on the janky /hostile behavior, but I tried to keep the effects to a minimum, and the glockroach and hauberoach are not spawnable through many means as far as I know.
2021-08-30 16:22:24 +01:00
Y0SH1M4S73R
77aac1a518 Objective-specific equipment will always be given. (#60789) 2021-08-30 00:12:59 -07:00
John Willard
7cb4bb59f9 Greentexting as a traitor hardcore random now gives you hardcore random points (#60957)
Every time a traitor greentexts with hardcore random, it runtimes and returns. I think it's because of the escape alive objective.

I've tested this before and after several times just to be completely sure this fixes it.
2021-08-29 21:18:02 -03:00
Mothblocks
0990a8ddcf Give admins the ability to put a popup notice for players in tickets (#61010)
Admins can now give players a popup if they are not responding to tickets.
Popup is cleared when player replies or ticket is resolved/closed.
As more and more of the chat screen is made irrelevant, new players read it less and less.
This means that a lot of new players are ignoring ahelps, which is something I've encountered myself.
2021-08-29 21:11:38 -03:00
Y0SH1M4S73R
d00c721638 Refactors and improves SDQL spells (#60972)
SDQL spells have been improved in several ways:

- The behavior of executing SDQL spell queries using datums has been migrated to a component
- Projectile SDQL spells can now fire any subtype of /obj/projectile
- Touch SDQL spells can use any subtype of /obj/item/melee/touch_attack
- More robust parse error detection
- Parse errors while loading a file from json are displayed in a modal window, with the option to load whatever parts of the spell were correctly parsed (be forewarned, scrollable sections are scuffed, and the ones that appear in the parse error modal can only be scrolled through by drag-selecting the text within them)
- Fixes a bug with the names of variables within lists
- Compartmentalizes SDQL spell code into several .dm files.

Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2021-08-30 00:03:01 +03:00
IndieanaJones
f218de3052 Small Spider Balance Changes and Tarantula QoL (#60505)
* Add Sealed Webs

* Add Sealed Web Icon

* Spider Changes

* Update this dumb var

* Make Broodmothers spawn in the same place

* Remove unused var

* Re-Add Sealed Web Sprite
2021-08-29 13:51:40 -04:00
esainane
d0e8bf35de Many smart pipe fixes (#60981)
* Smart pipes now actually go over smart pipes

This was ostensibly the main feature of smart pipes, so should be
fairly important

Parentheses are technically not required around the |, but I think
it's important to emphasise the importance of parentheses around
bitwise operators as this was apparently broken since 3e8407c471

Also purge var/connections and var/connection_num, since it's
literally only used for a `machine.connection_num < 3` check
which is completely redundant, and we already build a bitfield
tracking active directions.

* Smart pipes bridge over straight pipe types

This improves bridging to now go over most devices where possible,
letting you, for example, bridge over a perpindicular layer adapter.

* Pipe construction: Better documentation

Cleans up smart pipe documentation to match what's actually happening.

No functional changes.

* Skip pipes on different layers earlier

This prevents a pipe being made into a bridge perpindicular to a pipe
on a completely different layer, then failing to turn into a bridge
perpindicular to a relevant pipe.

* Pop superfluous parentheses

* Prevent creation of stub pipes

Setting the RPD to create a smart pipe that can only connect in one
direction would cause it to create invisible pipes that would still
block the placement of other pipes.

* The RPD can now reprogram smart pipes

The RPD can only affect smart pipes in directions that they are not
currently connected to.

This makes it easier to adjust designs after the fact, including
prevening round-start pipes from eagerly linking to a grey layer
adapter.

* Even smarter pipes

No more turning into bridge pipes. We now only try to be smart if
placement would fail, and we do our best to find a solution
whenever there is at least one smart pipe involved, regardless
of whether we're currently placing a smart pipe or not.

We never reconfigure any directions that a smart pipe is currently
connected, and we never reconfigure a smart pipe to have one or less
usable directions.

* Smartly go across perpindicular layer adapters

Also works when we're placing a layer adapter perpindicular to a
promiscuous smart pipe

* Pipes: Factor out loops and some bitfiddling

Create and use helpers with documented purposes over inline bitfiddling,
when it makes sense.

Many loops and switch statements were recreating information that was
already there.

Some relationships between pipe bitfield states were already assumed.
This centralises the functionality that relies upon these assumptions,
places them where the bits are defined, and documents them.

Rewrite some bitwise operations to be more idiomatic.

* Smart pipes: Debugging output

I normally clean history before pushing changes to any project,
but I feel like this should be saved.

* Revert "Smart pipes: Debugging output"

This reverts commit bb3aa76cf6d08e4d0951113a26fc9d48b6bc1735.

* Add trailing comma

The lack of this was making the linter sad
2021-08-29 15:42:53 +03:00
Arkatos1
ccfa0fba7d tgui: Silicon Station Alerts (#61070)
This PR unifies all Station Alert menus into one datum system.

This also means that the old html menus will be converted to tgui, which is a case for cyborg and AI menus. All menus above differ very little, practically only by amount of type of alerts they show except for the AI menu, which also has access to cameras in the alert areas and knows number of the alert sources.
2021-08-29 13:11:24 +03:00
Fikou
779751504e colossus-type projectiles no longer explode sealed vehicles (#61030) 2021-08-28 02:16:12 -07:00
Ghilker
8a68ad52d3 More thermomachine fixes (#60998)
fix error when typing the mole efficiency (instead of 0.1 it was 0.001, didn't push the change)
fix infinite power consumption (capped)
fix efficiency not being tied to laser tiers (issue connected to infinite power consumption)
Also fix #61006 (Thermos not working at all because of the efficency stuff added recently)
2021-08-27 13:52:06 -07:00
tralezab
4b202ab2c8 Update field_generator.dm (#60918) 2021-08-27 11:18:51 +02:00
Ghom
73e3afe5d2 bane component to element. nullrod now uses it for revenants. (#60640)
* bane component to element. nullrod uses it for revenants.

* TRUE to FALSE
2021-08-27 11:17:43 +02:00
Rohesie
a7f81bd169 Uses regex datums and macros for text-manipulation (#61042) 2021-08-27 11:13:57 +02:00
TiviPlus
5a59713592 [s] Patch a server crashing exploit (#61057)
if you create a bunch of signallers then spam the send signal button you can grind the server to a halt at low numbers and crash it at high numbers of signallers

This is an imperfect fix as a proper fix would refactor signal datums to use a subsystem but I dont feel like rewriting all of signal code thank you very much

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-08-26 14:23:47 -07:00
tralezab
5e5f2a9b31 fixes the game spamming heart attack messages on hearts that cannot... attack... (muscle emoji) (#60766)
* Update life.dm

* better.

* actually i want to do it the right way

* OOP

* OK WOW

* removes bad var
2021-08-26 21:04:49 +02:00
esainane
e8d4f1593f Fix thermomachines always having "grey" name (#61026)
Using a multitool on an open TCU changes its pipe color. However, the name was not being updated, leaving them to always appear to be grey TCUs.
2021-08-26 15:24:59 -03:00
esainane
28438bcad3 Fix HFR recipe cooling modifier description (#61028) 2021-08-26 15:23:26 -03:00
Bobbahbrown
8549cc0bed Add Requests Manager to View All Prayers, Centcom/Syndicate Requests & Nuke Code Requests in Round (#60905)
Implements the Requests Manager, a new admin tool used to view all prayers, Centcom/Syndicate requests, and nuke code requests within the span of a round.

The verb can be found under Admin.Game, or alternatively just use the verb directly Requests Manager. The requests can be filtered by type (using the type filter button), or using a text search which searches both the message text as well as the request owner's name.
2021-08-26 02:30:07 +01:00
TiviPlus
e629c36feb Refactor area and turf lighting (#60954) 2021-08-25 15:07:38 -07:00
Krysonism
989700c980 Adds a new rare mushroom: The odious puffball! (#60609)
* Adds puffballs
2021-08-25 23:03:49 +02:00
wesoda25
184398007d Repairing clothing now properly updates the sprite (#60965) 2021-08-25 10:14:14 -03:00
Ghom
5394e34a23 roundstart offstation antagonists (wizards, nuke ops...) no longer have quirk assigned to them. (#60987)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2021-08-24 15:45:58 -07:00
AMonkeyThatCodes
3427843dd5 Replaced the lobby menu (with actual art) (#60953) 2021-08-24 15:16:01 -07:00
Ghom
92fbfcbea5 Fixes the lone operative event hardly ever rolling because of dynamic event hijacking. (#60988) 2021-08-23 23:57:46 -07:00
Pinta
f6cc07c906 Makes the slime link function on stargazers behave as intended
Fixes an issue with Stargazers where they were unable to form slime links.
2021-08-23 20:01:22 -07:00
170141183460469231731687303715884105727
00d73f70e4 Smart pipes direction fix. (#60804)
All smart pipes had a direction of 2, and never changed. You could only place horizontal bridge pipes on any smart pipe. This fixes that by changing smart pipe direction.
2021-08-23 20:00:13 -07:00
TiviPlus
417c042838 employmnet contract code improvement (#60955) 2021-08-23 14:23:42 -07:00
Wayland-Smithy
fcb4f174d6 fix null owner (#60928) 2021-08-23 14:22:32 -07:00
tralezab
955570b4be fixes a lot of traitor runtimes (#60993) 2021-08-23 14:15:24 -07:00
jughu
c1034dd549 Stops apprentices spawning with spellbooks due my stupid mistake. (#60992)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-08-23 14:14:21 -07:00
Ghilker
d33fd446fa light code cleanup and update (#60785) 2021-08-23 13:00:39 -07:00
MrMelbert
b3e8eebdc9 Kills /obj/item/melee/transforming, replaces it with a transforming weapon component (#60761)
This PR kills off the transforming subtype of /obj/item/melee and replaces it with a component to handle the transforming behavior, /datum/component/transforming.

The transforming component handles updating the variables of an item when it's transformed. Things like force, sharpness, whetstone force bonus, and attack verbs. Similar to the two-handed component, but instead of transforming into a two-hander it remains a one handed weapon.

The "nemesis" behavior (dealing addition damage to certain factions) of the transforming subtype was moved to the cleaving saw only, since it was the only transforming item that used it. In the future, this can be made into a bespoke element/component as well.

The following weapons and items have been updated to use this component:

    Energy Swords / Sabers / Bananium Energy Sword
    Energy Circular Saw
    Energy Dagger
    Energy Axe
    Toy Energy Sword
    Holographic Energy Sword
    Switchblade
    Advanced Medical Tools (Laser scalpel, Mechanical Pinches, Searing Tool)
    Advanced Engineering Tools (Hand Drill, Jaws of Life / Syndicate Jaws of Life)
    Combat Wrench
    Cleaving Saw
    Telescopic Batons / Contractor Batons
    Roasting Stick
    Telescopic Riot Shield
    Energy Shield / Bananium Energy Shield

This PR also touches up the code around the various above items.
2021-08-23 11:45:54 -07:00
esainane
78163d21ef Fix HFR box edge directions (#60979)
Using the multitool on the HFR boxes creates an HFR with all corners correctly oriented, but all edges oriented in the opposite direction. This PR changes it so that the edge components have the correct orientation relative to the core.
2021-08-23 01:22:33 -07:00
manofpepsi
610b83831c [MDB IGNORE] beer and ale headsmash fix (#60748)
repaths the beer and ale to allow bottle headsmashing with them.
2021-08-22 17:17:37 -07:00
AMonkeyThatCodes
c539b414b9 Moving aside your mask will no longer make you impervious to disease (#60923)
Co-authored-by: MonkeyThatCodes <MonkeyThatCodes@deez.com>
2021-08-21 13:01:39 -04:00
AnturK
d72eac0c3a Runtime fixes batch. (#60946)
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2021-08-21 12:50:03 -04:00
Arkatos1
c7c82c0649 span fixes (#60936) 2021-08-21 18:31:34 +02:00