Commit Graph

77 Commits

Author SHA1 Message Date
SkyratBot
b8d9874c27 [MIRROR] Converts all A && A.B into A?.B (#1292)
* Converts A && A.B into A?.B (#54342)

Implements the ?. operator, replacing code like A && A.B with A?.B

BYOND Ref:
When reading A?.B, it's equivalent to A && A.B except that A is only evaluated once, even if it's a complex expression like a proc call.

* Converts all A && A.B into A?.B

Co-authored-by: ZeWaka <zewakagamer@gmail.com>
2020-10-13 23:19:25 +02:00
SkyratBot
1e705faa19 [MIRROR] Process procs now properly utilize deltatime when implementing rates, timers and probabilities (#709)
* Process procs now properly utilize deltatime when implementing rates, timers and probabilities (#52981)

* Process procs now properly use deltatime when implementing rates, timers and probabilities

* Review fixes

* Geiger counters cleanup

Made hardsuit geiger code more similar to geiger counter code
Geiger counters are more responsive now

* Moved SS*_DT defines to subsystems.dm

* Rebase fix

* Redefined the SS*_DT defines to use the subsystem wait vars

* Implemented suggested changes by @AnturK

* Commented /datum/proc/process about the deltatime stuff

* Send delta_time as a process parameter instead of the defines

Also DTfied acid_processing

* Dtfied new acid component

* Process procs now properly utilize deltatime when implementing rates, timers and probabilities

Co-authored-by: Donkie <daniel.cf.hultgren@gmail.com>
2020-09-09 08:19:23 +02:00
SkyratBot
ec09510459 Bools and returns super-pr (#53221) (#565)
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>

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Couls <coul422@gmail.com>
2020-08-30 05:12:59 +02:00
SkyratBot
dc3663a8d1 [MIRROR] Adds an action speed modifier system (#522)
* Adds an action speed modifier system (#53023)

* Adds an action speed modifier system

Co-authored-by: Qustinnus <Floydje123@hotmail.com>
2020-08-26 01:40:42 +02:00
SkyratBot
e65a48e91f [MIRROR] Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking (#430)
* Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking (#52761)

Adds SIGNAL_HANDLER, a macro that sets SHOULD_NOT_SLEEP(TRUE). This should ideally be required on all new signal callbacks.

Adds BLOCKING_SIGNAL_HANDLER, a macro that does nothing except symbolize "this is an older signal that didn't necessitate a code rewrite". It should not be allowed for new work.

This comes from discussion around #52735, which yields by calling input, and (though it sets the return type beforehand) will not properly return the flag to prevent attack from slapping.

To fix 60% of the yielding cases, WrapAdminProcCall no longer waits for another admin's proc call to finish. I'm not an admin, so I don't know how many behinds this has saved, but if this is problematic for admins I can just make it so that it lets you do it anyway. I'm not sure what the point of this babysitting was anyway.

Requested by @optimumtact.
Changelog

cl
admin: Calling a proc while another admin is calling one will no longer wait for the first to finish. You will simply just have to call it again.
/cl

* Adds SIGNAL_HANDLER and SIGNAL_HANDLER_DOES_SLEEP to prevent signal callbacks from blocking

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2020-08-19 20:17:28 -04:00
SkyratBot
ef60d386dd [MIRROR] mood multipliers are applied once instead of per moodlet (#181)
* mood multiplier no longer applies per moodlet (#52632)

* mood multipliers are applied once instead of per moodlet

Co-authored-by: Theos <theubernyan@gmail.com>
2020-08-03 16:35:56 +02:00
kevinz000
350b9b7a29 Merge remote-tracking branch 'tgstation/master' into movespeed_modifiers_take_two 2020-03-01 06:50:37 -07:00
nemvar
e13eec92a3 Renames status to sanity (#49553)
* Renames status to sanity

* Update code/datums/components/mood.dm
2020-02-25 19:15:04 +01:00
kevinz000
256d20cde0 Merge remote-tracking branch 'tgstation/master' into movespeed_modifiers_take_two 2020-02-17 05:50:27 -07:00
nemvar
b7134336d7 Fixes the unstable quirk (#49309)
* Fixes mood 100% super duper for real this time

* fixes mood for real, removes a bit of convoluted code.
2020-02-12 19:01:04 -05:00
kevinz000
49f4ce6212 Merge remote-tracking branch 'tgstation/master' into movespeed_modifiers_take_two 2020-02-03 14:14:22 -07:00
Mickyan
4ec3f952f0 proper fix 2020-01-30 20:26:48 +01:00
Mickyan
54edfc27cd sanity fix 2020-01-30 19:43:02 +01:00
kevinz000
6da319481b woops forgot those 2020-01-11 22:23:37 -08:00
kevinz000
c91e19c442 Merge remote-tracking branch 'tgstation/master' into movespeed_modifiers_take_two 2020-01-11 22:17:04 -08:00
kevinz000
ce02e45ecb get rid of refactor tags 2020-01-11 22:12:07 -08:00
wesoda25
030303d952 Ethereals now discharge electricity if their charge is too high (#48573)
* if this works i will be happy

* :(

* explosion

* brutemod

* george melons
2020-01-10 23:14:41 +11:00
kevinz000
7e09ac0036 datums and shit 2020-01-09 18:55:16 -08:00
nemvar
58d961dc61 Ghosts can no longer see moodlets via observe. (#47229)
About The Pull Request

Prevents ghosts from getting a detailed moodlet readout.
They can still see the face, so in most cases observing for a prolonged time will probably give you a good indication of their antag state. Though I would consider that a fairly small concern in comparison to a surefire way to find antags.
Fixes #42202
Changelog

cl
fix: Ghosts can no longer receive a detailed readout of a persons moodlets with the observe verb.
/cl
2019-10-23 09:08:53 +13:00
kingofkosmos
6d28a175d5 Fixes a few broken spans. 2019-10-13 21:51:07 +03:00
nemvar
c38a7a3bb5 Removes a bunch of var/ in procs (#46946)
* Removes a bunch of /var in procs

* reset this

* Why wasn't this already?
2019-10-10 04:20:27 -07:00
Mickyan
a4385c7c64 sanity hud (#46805) 2019-10-07 15:54:18 -04:00
Qustinnus
26a95ac867 Re-adds room beauty without the negative moodlets (#46848)
* re-add

* epic

* fix

* epic
2019-10-05 22:47:49 -04:00
nemvar
56899a5976 Applies arglist memes to mood events. Also fixes some bugs (#46325)
Renames mood_event.dm to _mood_event.dm so it's at the top of the folder. Very cool.

You can now apply an almost infinite amount of extra parameters to mood events. This is currently only used for one thing but could easily be expanded.

The owner of the mood_event is now the parent of the mood component and not the component itself. The typing of the variable and the way it is used in that one place suggests that this was intended behaviour. This fixes a bug where cats weren't wagging their tail when getting tabled.

mood_event's now null their owner on Destroy.
2019-09-09 10:05:12 -04:00
Unknown
2ef1435af8 fixes it with real testing 2019-09-08 18:22:44 +02:00
Qustinnus
8599d84d1d The science department now gets a mood bonus for petting borgs. (#46296)
* adds mood event for petting borgs

* oranges suggestions

* indented too far

* woops

* ok unit test chill out
2019-09-08 03:34:02 -07: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
nemvar
afa153a333 Another sanity revision. (#45716)
About The Pull Request

One day I will get this right.
Sanity no longer decays if you are above the allowed mood threshold.
Neutral mood no longer raises sanity.
Aheals now restore sanity for unstable people.
Fixes #45715
Why It's Good For The Game

Getting free maximum sanity from just being on neutral mood was a bit silly and counterintuitive. The sanity for being below the maximum allowed value was also a bit harsh.
Changelog

cl
balance: another sanity rebalancing.
/cl
2019-08-09 11:10:27 +12:00
nemvar
15c6dcc322 Switches some values around 2019-07-28 18:13:30 +02:00
nemvar
fb44479c0b Fixes the math 2019-07-28 01:00:43 +02:00
nemvar
091f221fe6 Fixed mood for real 2019-07-28 00:48:07 +02:00
nemvar
214a3d452a In how many ways can this be broken? Find out next time! 2019-07-27 23:58:11 +02:00
nemvar
87f080bfbb Sanity is now capped. (#45410) 2019-07-25 14:06:36 +02:00
Qustinnus
41dcc97c7d Fixes sanity going up to 125 when mood is neutral (#45338)
* fixes

* var
2019-07-22 16:45:11 -07:00
nemvar
7ba60de3d6 Aheals now fix addictions and sanity. (#45329)
* Aheals now fix addictions and mood.

* Does it properly. Now uses a signal to detect the aheal.

* Removes a getComponent in living and puts that shit into the mood component.

* Fixes a small oversight with where I placed the moodie purge.
2019-07-22 15:42:30 -04:00
nemvar
a176d30579 Fix moodie icon being wrong at roundstart (#45283)
Fixes an issue related to mood. They had the wrong sanity icon when 
spawned in. Yes, two is correct. Having exactly SANITY_NEUTRAL (100) 
will result in slightly positive sanity.
2019-07-20 16:41:35 -07:00
Emmett Gaines
328fc7b1f1 Adds elements: Lightweight shared components/Global components (#44817)
If you came here thinking this was some game feature then you are in the wrong place. Here is where I ramble about code.

This adds /datum/element as a sort of sibling to components. Only one of each type gets instanced and they do not get tied directly to any particular thing like a component does. Basically they're a very lightweight component for doing simple functionality that doesn't have much state.

Originally this concept came about as a kind of component that could be shared between many parents to reduce some resource costs. Doing this would allow us to componentize more behaviors that are a part of too many things to be viable to have a whole component for every single one. For example a component on every space turf would be entirely unviable. With elements it's much more reasonable.

This implements a prety bare framework and a couple components are migrated to it. It's ready to be used but I fully expect I'm going to need to refine how it works for all the usecases we'll want it for.

Also: this fixes the qdeleted signal. This signal isn't even possible because after qdel is done there's nothing to receive a signal anyway. I've changed it to a qdeling signal instead. I need it to work for some elements to know when to clean themselves up.
2019-07-09 11:26:51 +12:00
nemvar
ba24766c08 Fixes area moodlets. (#45043)
* moodie

* newline
2019-07-08 13:14:04 -04:00
Garen Crownguard
534a9140aa merge 2019-07-05 17:59:38 -05:00
Qustinnus
d9b316b7ab Sanity Rebalancing (#44800)
cl Floyd / Qustinnus
tweak: The Nanotrasen Physological department has realized that working at a metal deathbox is more stressful than it currently is. Mood has been slightly rebalanced
/cl

This PR is mostly a rebalance of various variables that exist withing the system. The system is now more likely to skew one of two ways instead of always hanging at neutral unless you're hungry, I plan to make it more likely to skew to one side from other things as well, and nerfed various low effort and non interesting interactions such as reading books while buffing the ones that have gameplay like drinking good bartender drinks or winning arcade games.

I also plan to add a moodlet for being in the bar; this will reinforce players to visit these areas if things get bad, or if they just want to refuel for a bit.
2019-07-03 19:32:09 +12:00
Garen Crownguard
3a37d0322c merge 2019-06-23 20:39:24 -05:00
granpawalton
e92a3187a9 miasma temp and pressure (#44586)
* miasma temp and pressure

* temp changed from T20C to BODYTEMP_NORMAL
2019-06-18 21:29:05 +02:00
WJohn
39c86a8930 Fixes sanity minimum/maximum not affecting action speed (#44469)
If you were below 0 or above 125 sanity, the action speed multiplier
wouldn't come into play. Now it does. Also prevents sanity from
constantly going overboard and being reeled in all of the time.
2019-06-13 19:35:27 -07:00
nemvar
ce479edd1a Ethereal stomach take 2 (#44336)
* Take 2

* Merge conflict begone

* Renames it

* Stupid borgs.
2019-06-10 00:29:37 +02:00
Garen Crownguard
caa683e5b1 merge 2019-06-04 07:04:21 -05:00
Garen Crownguard
4b2fc4cc05 Removes Hygiene 2019-06-04 06:25:51 -05:00
AnturK
5d2b572450 Fixes mood events keeping hard references in category 2019-05-15 21:29:29 +02:00
Mickyan
3b5c9b5a34 [READY] Moves mood quirk checks to their respective quirk process (#43845)
* quirk process

* does the same for hygiene

* un-breaks miasma generation

* so how's your day going
2019-05-12 10:52:25 +12:00
vuonojenmustaturska
fb45b7a017 Turns trait accessors into defines, fixes some bugs (#43820)
It's free performance.
2019-05-06 19:44:05 -04:00
WJohn
52637ff9ec Fixes neat/neet traits. (#43561) 2019-04-10 15:49:28 -04:00