Commit Graph

128 Commits

Author SHA1 Message Date
LemonInTheDark
f90e8cf7a3 Fixes a bunch of harddels that are sourced from player action (#59371)
Sourced from #59118 and a cursed project I'll pr later, This pr contains a lot of harddel fixes for stuff that pops up after a player interacts with something. I'm not gonna list them all here because there's something like 60 130, check the commit log if you're curious

Oh and I moved ref tracking screaming to a separate define, and made some optimizations to the thing in general. I think that's it, this pr is a bit of a frankenstine
2021-06-10 21:44:23 -03:00
Kylerace
e13fe75590 use SIGNAL_HANDLER REEEEEE (#59242)
makes as many procs as i can find use the SIGNAL_HANDLER define which i assumed they all already did
2021-05-24 15:28:02 -04:00
Celotajs
190d0a0384 Replace alert usage with tgui_alert (#58419)
Pretty much every alert() call is replaced with tgui_alert, except one I replaced with tgalert as a fallback. If tgui_alert exists, why not use it?
2021-05-20 22:43:27 +12:00
TemporalOroboros
9f598a9662 Makes the explosive compressor and blastcannon actually use the TTVs they're given + the explosion changes to support that. (#58015)
* Adds explosion SFX to the blastcannon and explosive compressor

- Extracts the explosion SFX and screenshake proc from the SSexplosions explosion handling proc and lets the explosive compressor and blastcannon use it.

* Miscellaneous changes

- Adds defines for the internal explosion arglist keys
- Reverses the values of the explosion severity defines
- Changes almost everything that uses `/proc/explosion` to use named arguments

- Removes a whole bunch of argname = 0 in explosion calls.

* Removes named callback arguments.

* Changes the explosion signals to just use the arguments list

Adds a simple framework to let objects respond to explosions occurring inside of them.

Changes a whole bunch of explosions to use the object being exploded as the origin of the explosion rather than the turf the object is on.

Makes the explosive compressor and blastcannon actually use the TTVs they are given.

Adds support for things responding to internal explosions.
Less snowflake code for the explosive compressor and blastcannon calculating bomb range.*
Less confusing explosion severity defines.
Less opaque explosion arguments

*does not guarantee that the solution to letting them actually use the TTV is any less snowflake.
2021-04-26 17:31:25 -07:00
Mothblocks
7e4de07506 Remove all gamemodes except Dynamic (#58470)
Removes all /datum/game_mode except dynamic. Eventually, all of mode and game_mode will be removed, and Dynamic will become an ingrained system. Every single other gamemode was unmaintained at best and poisoned other code at worst. Currently all tg servers run 24/7 Dynamic, so the time to act is now.

* Remove gamemode references from age checks

* Monkey

* Remove heretics

* Remove BBs

* Refactor uplinks and remove clown ops

* Remove nuke ops

* Removes and refactors cult

* Remove extended

* Remove and move out meteors

* Removes wizard

* Remove sandbox

* Remove changelings

* Remove traitors

* Remove revs

* Remove gangs

* Remove changing mode and voting for new gamemodes

* get_candidates signature fix

* Summon ERT and NERD in their own panel

* Remove some old unneeded age_check stuff

* Fix old signatures of get_uplink_items

* Use Extended like config for dynamic.json

* Fix discounted gear
2021-04-25 01:55:10 -07:00
John Willard
126d1eeb72 Defines some traits and cleans it out a little (#57389) 2021-03-04 13:37:52 -08:00
TemporalOroboros
e4079c87b8 update_appearance (#55468)
Creates update_name and update_desc
Creates the wrapper proc update_appearance to batch update_name, update_desc, and update_icon together
Less non-icon handling code in update_icon and friends
Signal hooks for things that want to change names and descriptions
99%+ of the changes in this are just from switching everything over to update_appearance from update_icon
2021-02-19 12:06:18 -03:00
coiax
aaaae1faf3 Add sound effect to deathrattle implant (#56702)
Sounds are from https://freesound.org/people/gsb1039/sounds/415061/
which is licensed under CC0 (public domain)

Some people said it was too easy to miss the message in the storm of stuff that's going on as a nuclear operative, so now there's a new distinctive sound to announce that you've lost a teammate.

    Also added a missing SIGNAL_HANDLER to a signal handling proc.
2021-02-07 19:33:18 -03:00
skoglol
8e3b7ad801 Remove adrenal implant and associated reagent (#56649) 2021-02-05 11:51:08 -08:00
Timberpoes
e85cf07b96 Mirror logging for brainwashing and hypnosis in the player panel and attack logs. (#56515)
Hypnosis and brainwashing now have entries in the Player Panel logging
under attack and entries in the attack logs.

Mirrors some logging that would otherwise just be in the game logs.
From an admin-perspective, issues where you'd want to check
brainwashing/hypnosis tend to go hand-in-hand with issues relating to
attack logs as opposed to game logs.
2021-01-31 20:21:38 +00:00
coiax
25e476e92a Add deathrattle implant for nuclear operatives (#55903)
Deathrattle implant, comes in box of 8, implant yourself and others, and
you'll get a little notification when they die.

Intended for nuke ops, price around the same as the codebook, since it's
a utility communication item, that actually "plans to fail", so it can't
be too expensive, because it doesn't help them win, just lets them know
how much they are losing by.
2021-01-20 19:30:30 -03:00
coiax
e35b84d44a Refactor on_mob_death, death implants, implant permission (#55862)
* Refactor on_mob_death and death implants

There is a proc on `/obj/item` called `on_mob_death` called on all
items in the contents of a mob on that mob's death. It is currently used
for explosive implant detonation, and the deactivation of the
Peaceborg's projectile dampener.

Instead of using this old proc, both of them now instad use the
COMSIG_LIVING_DEATH signal, already emitted when their owner dies.

The activation of an explosive implant will now occur after the rest of
the death code has run, since it activates with an async applied
function, since some other implants may still want the mob's body
intact, and you shouldn't use `sleep()` (which it does in the "slow
explosion mode") in signal handlers.

In addition, the "can_be_implanted" proc for /mob/living (and overriden
for silicons, slimes and simple animals) has been folded into the
`/obj/item/implant/proc/can_be_implanted_to` proc. Some future implants
may want to be more permissive than the current permissions, but that
isn't possible when checking both procs.
2021-01-01 12:30:20 -08:00
coiax
5b2febfac0 Add "Implant" to list of uplink locations (#51828)
* 👛 Add "Implant" to list of uplink locations

🆑 coiax
add: You may now pick Implant as a preferred uplink location, meaning
that if you become a traitor, you will start with an uplink implant. The
cost of the implant (4 TC) is deducted from your total starting TC,
because the Syndicate doesn't give freebies.
fix: Admins removing an uplink from a person with an uplink implant will
now destroy the implant, rather than leaving an implant that does
nothing.
/🆑

If you are the sort of person who gets their PDA, pen and radio stolen
really easily, then maybe you'd be interested in just spawning with an
implant. Be warned, all of the 17-20 TC items will be out of reach
because of the implant cost.

Could be considered slightly more powerful than just ordering the
implant at shift start, given you don't have to get rid of an implanter
and suspicious box anymore.

When testing with the admin grant uplink buttons, I discovered that the
"Take" uplink option was only half working when taking the uplink from a
person with only an implant uplink. It would take the component, but not
the implant, leaving the person with a do-nothing action button. This
has been fixed.

* Add missing DEFINES

* Remove one layer of spaces

Will this sate the linting gods?

* Replace 20 default with TELECRYSTALS_DEFAULT
2020-12-29 14:36:12 +01:00
Ghom
91bfedcd16 Refactored 'IsAdvancedToolUser' into a macro plus relative trait. Tweaked 'can_hold_items'. (#54665)
The PR aims to allow advanced tool users to be defined by traits rather than a hardcoded proc.
Also necessary for the CanUseTopic refactor I'm working on, which will be PRed separately for atomization purposes.
This PR also fixes an inconsistency with can_hold_items (since monkeys can actually hold items).
2020-11-10 15:15:31 -03:00
nicbn
a653bc6350 Refactors occupant to use setter (#54373)
This is to make it easier to attach a signal to the setting of the occupant.
2020-10-18 12:46:14 -03:00
Rohesie
af65c90125 Mobility refactor: no more update_mobility() (#54183)
This is a pretty big change all around. The gist of it is that it moves the mobility_flags into traits or variables that can track the sources, and to which we can append code to react to the events, be it via signals or via on_event-like procs.

For example, MOBILITY_STAND could mean, depending on context, that the mob is either already standing or that it may be able to stand, and thus is lying down.

There was a lot of snowflakery and redefinitions on top of redefinitions, so this is bound to create bugs I'm willing to fix as I learn them.

The end-goal is for every living mob to use the same mobility system, for the traits to mean the same among them, and for no place to just mass-change settings without a way to trace it, such as with mobility_flags = NONE and mobility_flags = ALL

Fixes AIs being able to strip nearby people. They've lost their hands usage.
2020-10-09 16:04:30 -07:00
Timberpoes
1f23cc281d 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.
2020-09-26 11:52:39 -03:00
Timberpoes
a98ffd737a Fix minor implant case runtime (#53698) 2020-09-16 23:44:01 -03:00
TiviPlus
ca366c3ea1 Bools and returns super-pr (#53221)
Replaces like 70-80% of 0 and such, as a side effect cleaned up a bunch of returns
Edit: Most left out ones are in mecha which should be done in mecha refactor already
Oh my look how clean it is

Co-authored-by: TiviPlus <TiviPlus>
Co-authored-by: Couls <coul422@gmail.com>
2020-08-28 14:26:37 -07:00
ATH1909
e1b88a5712 Adds the anti-teleportation implant to the game/the space hotel (#52660)
* stay in the goddamn hotel
2020-08-24 15:33:39 -07:00
Rohesie
988319b3e3 mobility refactor (#52929) 2020-08-24 13:56:07 -07:00
Rohesie
25f670f8de Opacity refactor (#52881)
Moves all opacity var manipulation to a proc which sends a signal.
    light_blocker element for movable opaque atoms made, which tracks its movement and updates the affected turfs for proper lighting updates.
    has_opaque_atom boolean replaced by the opacity_sources lazylist to keep track of the sources, and a directional_opacity which serves a similar function but also allows for future expansion with on-border opaque objects (not yet implemented).
    Some opacity-related sight procs optimized as a result of this.
    Some variables moved to the object's definition.
    A define or two added into the mix for clarity.
    Some code cleaning, like turning booleans into their defines.
    One file renamed for clarity.

Changelog

cl
balance: Mechs no longer block sight. It's a non-trivial cost for the lighting system with little to no gain.
/cl
2020-08-19 13:24:20 +12:00
Qustinnus
f54de4a2b8 refactors resist act to be on atom level (#53016) 2020-08-18 20:30:44 -03:00
Aleksej Komarov
0cf00a2645 tgui 4.0 (#52085)
* tgui 4.0 hyper squash

* Upgrade dependencies
2020-07-16 20:13:04 +02:00
jdawg1290
62676e72a8 Force LF line endings with gitattributes and convert repo (#52266)
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2020-07-16 03:02:40 +03:00
LemonInTheDark
e5547a8f5c Supermatter variable documentation, cleanup, bugfixes. (#51345)
* Makes the supermatter file smaller.

AHAHAHAHHAHA YOU FOOL YOU HAVE FALLEN FOR MY TRAP CARD

* stable build maybe? sm cleanup begins

* The old ones knew

* lemme atomize actually

* I know how to spell ok? OK?

* braindamage

* That'll do it

* That do it?

* There we go

* Wow I should test things

* test?

* I hope that clears it

* Should fix the formatting trouble

* isolates the opening proc

* Lowercase and fixes messed up proccall
2020-06-19 18:48:06 -03:00
nemvar
6ef421be42 Renames a few variables. Also reorders icon fallback order again. (#51060)
* Renames a few variables. Also reorders fallback order again.
Renames item_state to inhand_icon_state
Renames mob_overlay_icon to worn_icon
Renames mob_overlay_state to worn_icon_state
worn_icon_state/mob_overlay_state now never gets used for inhands.

* Fixes some comments

* Fixes map issue

* Restart lints

* Properly resolves conflicts
2020-05-25 06:47:19 +02:00
ATH1909
ad3dc55798 fixes macrobombs (#50674) 2020-04-30 21:24:07 -03:00
kingofkosmos
79c5a80ca0 Visible_messages verb time tenses changed to present. 2020-03-16 14:55:25 +02:00
Iamgoofball
64933efc23 Update implant_mindshield.dm 2020-02-17 16:06:01 -08:00
Iamgoofball
aafcd54345 Update implant_mindshield.dm 2020-02-17 15:59:40 -08:00
iamgoofball
a799487fb5 fixes 2020-02-14 04:47:02 -08:00
iamgoofball
9c8050aeb6 You son of a bitch! I'm fixed. 2020-02-14 03:10:04 -08:00
iamgoofball
b8cb713aad You son of a bitch! I'm in. 2020-02-14 03:04:42 -08:00
skoglol
a97b90bc3f Slight adrenal buffs (#49140) 2020-02-03 12:23:46 -05:00
spookydonut
ac7f2b5166 Fix Crossed/Entered/Exited/Bump/ui_act parameter casting (#49016)
About The Pull Request

Detected as part of my work on SpaceManiac/SpacemanDMM#167
2020-01-28 10:51:15 +13:00
thebleh
ea9dc6082b update implantcase icons on initialize (#48984) 2020-01-27 11:26:25 +01:00
MrPerson
e22560a346 update_icon() improvements (#48669)
* update_icon() improvements

Fixes some update_icon() calls to properly call parent and use update_overlays() and update_icon_state().

The rest of obj/item fuck it

* Suggested fixes, also passes the linter

* I always forget . = ..() is faster than return ..() FOR SOME FUCKING REASON

* Actually this is better

* Signilzes datum/action to update its icon when its connected item does.
2020-01-11 23:46:43 -05:00
AnturK
9dd3da4445 Batch of runtime fixes. (#48268)
* Abductor implant runtime

* Point blank knockback runtime + cleanup

* dog food begging runtime

* Malf power loop runtime

* Explosive gondola pod runtime.

* Plasma shard runtime and related.
2019-12-21 18:40:10 +01:00
spookydonut
f3a99558c3 Removes some dead/unused code (#48158)
* cleans up some deadcode

* ancient

* goon icons

* rice and garlic

* more

* last one

* fuuuuuuuuuuuuuuuuuucking subtypes
2019-12-15 14:09:02 -05:00
actioninja
c8ec5bdd36 Revert "[SPEED MERGE NEEDED] removes cat (#47999)"
This reverts commit 345d2bf607.
2019-11-26 04:35:58 -08:00
pireamaineach
345d2bf607 [SPEED MERGE NEEDED] removes cat (#47999) 2019-11-26 04:35:25 -08:00
kingofkosmos
280d416d4f Adds missing spans, missing periods and missing span endings. Also changes spans to suit the situation better. 2019-10-12 19:34:11 +03:00
Qustinnus
a394ccdc2b Material datum chairs & tables and applies materials to all items (Now with less pain for mining & RnD) (#46525)
removes materials list from items, uses custom_materials instead. This might introduce some bugs so we should testmerge this for a while (and Ill test stuff locally as much as I can)

this also adds material crafting to sheets. Test case being chairs. In the future we can add stuff like tables, walls, doors etc.

also applies materials to everything, with fixes, which can close #46299
2019-10-08 11:06:02 -04:00
kingofkosmos
8358169b8e New 'hear' span class (#46369)
* Reverts italics-span back to no color.

* Cleans up many extra spaces and indents.

* Adds 'hear' span class.

* Replaces all 'italics' used in heard messages with 'hear'.
2019-09-14 23:56:34 -07:00
skoglol
f4e7baa899 Adrenals reworked (#46211)
* Repurposes the adrenal implant.

* reverts adrenals back to 8tc

* updated uplink description, reduced oxy slightly.

* nanites in line, more description fix, stunresist back in.

* Pre testing.

* Final ling touches, removed stamcrit stun.

* Removes jitter, screen shake on metab end.

* woops.

* removes toxin damage.
2019-09-14 22:11:56 -07:00
spookydonut
e36f4f3c22 Fixes a bug with abductor implant (#46447) 2019-09-14 22:04:57 -07:00
Rob Bailey
2029163d33 playsound vary boolean define conversion (#46254)
About The Pull Request

Converts every single usage of playsound's vary parameter to use the boolean define instead of 1 or 0. I'm tired of people copypasting the incorrect usage.
Also changes a couple of places where a list was picked from instead of using get_sfx internal calls

This was done via regex:
(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\)) to match 1
(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\)) to match 0
full sed commands:
/(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\))/\1TRUE\2/ 1 to TRUE
/(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\))/\1FALSE\2/ 0 to FALSE

I'm not very good with regex and these could probably be optimized, but they worked.
Why It's Good For The Game

Code usability
2019-08-30 18:45:20 +12:00
kingofkosmos
df1fecc58c Adds notice-span to visible_messages with no spans (#46044)
About The Pull Request

Adds 'notice' span class to all visible_messages which had no span class, making all those black messages blue.
Why It's Good For The Game

This should help differentiate action-messages from talking-messages in the chat. More actions will be blue, thus black talking-messages should pop out more.
2019-08-26 20:50:00 +12:00
Rob Bailey
26b04ede42 Obliterates item_color: new washing machine functionality edition (#45961)
About The Pull Request

Completely removes item_color and the clusterfuck of bad programming it caused.

In places where item_color was used for entirely unique purposes it was split off and renamed to a new var on that typepath only, or refactored so it wasn't needed

In places where item_color was used as a dye color, it was converted to the new dye_color var

In places where item_color was used as the worn overlay it was removed and instead now icon_state is always used as the clothing overlay.

A new mob_overlay_icon var was added for manually setting where the mob overlay icon path is for specific items.

Moved some mob overlay files relating to clothing to their own directory as well for organization purposes.

Totally refactors washing machines, instead of the horrible abortion that was iterating through the typepath it now uses a registry of dye results.

Some bonus functionality to come out of this:
the washing machine now supports arbitrary dye colors.
Why It's Good For The Game

It's been 4 years since the "this should be deprecated soonish" comment was added, and this var is a shitpile of confusion if you just trace the usage of it.
Changelog

cl
add: Washing machines now support arbitrary dye color
add: Washing machines now dye nearly every item.
refactor: lots of backend changes to clothing overlays, report any issues
/cl
2019-08-26 20:38:11 +12:00