*every mention of /obj/item/machinery/power/supermatter_shard in the code should have been replaced with /obj/item/machinery/power/supermatter_crystal and it's variants.
*supermatter shard has been moved to /obj/item/machinery/power/supermatter_crystal/shard
*variable changes like gasefficiency and explosion_power has been switcharood in order to keep it in line with the game as of now
* Temporary concept code for PR
I doubt this code is the standard method of doing things, but trying to understand this code is a bit AIDS
* Using wrench_act() and default_unfasten_wrench() instead
It actually works this time
cl Floyd / Qustinnus
del: Removes short-term effects of mood
add; Adds long-term effects of mood by implementing sanity which goes up with good mood, down with bad mood, but takes time to change. Your sanity can be seen as your average mood in the recent past. All effects of moods are now covered by this system
add: Beauty component, currently only attached to cleanables, but you could attach it to any atom/movable and make them pretty/ugly, affecting mood of anyone in the room.
refactor: Removes the original way of adding mood events, uses signals properly instead.
fix: Cleanables "giving" area's free beauty during initialization
fix: Fixes some events not clearing properly
/cl
Fixes#36444
From now on mood no longer affects you directly, instead it decides whether your sanity goes up or down, when your sanity gets too low you will get the effects of what mood did before.
This means getting hit with bad moods due to being attacked while not mean you are doomed anymore, and you get a large timeframe to get away and just fix your mood later.
I also added the beauty component, you could add this to any object and it would either make a room prettier or uglier, comparable to DF or Rimworld. You could add traits to make certain people ugly, for example.
Floyd / Qustinnus (Sprites by Ausops, Some moodlets by Ike709)
add: Adds mood, which can be found by clicking on the face icon on your screen.
add: Adds various moodlets which affect your mood. Try eating your favourite food, playing an arcade game, reading a book, or petting a doggo to increase your moo. Also be sure to take care of your hunger on a regular basis, like always.
add: Adds config option to disable/enable mood.
add: Indoor area's now have a beauty var defined by the amount of cleanables in them, (We can later expand this to something like rimworld, where structures could make rooms more beautiful). These also affect mood. (Janitor now has gameplay purpose besides slipping and removing useless decals)
remove: Removes hunger slowdown, replacing it with slowdown by being depressed
imageadd: Icons for mood states and depression states
What this PR is
This PR adds a system that allows player to gain and lose moodlets based on events occuring to, and around them. These events then give the player a mood value based on what it is. For example a hug could give you +1 mood, while being stabbed in the eye with a screwdriver can give -5 mood. All these moodlets together determine the mood of your character which currently affects the following things:
Movement speed - If you are very sad you move slower. Replacing movement slow from hunger. (hunger now instead affects mood)
Screen blur - If you are sad you gain an overlay that slightly blurs the screen, increasing in severity as you get sadder.
Interaction / do after speed - If you are sad or happy your interaction speed with things such as handcuffs is changed. with a 25% longer time if you are sad, or 10% shorter time if you are extremely happy.
Hunger rate - You gain hunger slower if you are very happy.
* small changes
* Adds a use_tool helper and changes some tools to use it
* Ports most tool operations to use_tool
* Converts more tool operations to use_tool and tool_act
* Changes some things to default_unfasten_wrench
* Improves tool_behavior support in mech construction
* Code review memes
* Fixes all instant use_tool calls failing
* Code improvements
* merge fixes
* Unfucks supermatter extraction
* Redoes it
* moves it to src so it doesn't rely on a user
* neat
* Makes it random because it was requested even though it makes little sense to
* Dedupes some code and removes \the
* Removes \the, add message on break.
* Revert "all this wrapping and it's not even christmas (#33035)"
This reverts commit faaf151580.
* Revert "fuck me for forgetting to graph this one"
This reverts commit 45d7acea2f.
* Revert "defines math"
This reverts commit 2817a1737b.
* Free codebase churn
* fixes dviewmob
* a commit
* Partial revert "Free codebase churn"
This reverts commit 9dd41b3860c331637bbc85e694dd32dc59768ad5.
* better fix to dviewmob
* renames living_mob_list to alive_mob_list, adds mob_living_list and carbon_list
* make some use out of the shiny carbon list
* make some use out of the shiny new living list
* more things, also make the mobs subsystem (Life) use living list
* bonus
* domo arigato mr. roboto
* compile fixes, also made the drone code less dumb
* better?
* make admin message prettier
* honk
* fixes blobs
* rev fixes
* one small thing
* Moves a base uid from machienry to a bunch of children as it was literally setting a var that most machines never used. This is probably a good candidate for a component replacement.
* Just checking something
* Does this fix the compiling not working properly?
* And this?
* What is going wrong ugh!
* params["target"] instead of params["set"] bug was there before I even touched it but my compiling of TGUI caused it or something?
* Slight tidying up for what Cyberboss and Antur likes.
* Fixes the things that I was asked to fix
* First part of Assmos
* Adds tritium synthesis and basic in-body effects.
* Begins adding the higher tier gases. Removes Freon(not completely yet) adds new gases to scrubers. Fixes some dumb bugs.
* Whoops
* Adds effects and synthesis reactions for pluoxium and stimulum
* Kills Freon.
* Adds sprites
* Removes the magic numbers
* Hyper-Nobelium formation
* Removes Freon from maps.
* Initial Dunc Review changes
* Should ACTUALLY fix the maps this time.
* Dunc Final Review
* Debugging part 1
* Fixes brown gas synthesis
* Auto stash before merge of "assmos-pathconflicts" and "origin/master"
* fix compile errors
* Moves defines. Fixes stimulum coefficents.
* Reworks how Stim and brown gas work, adds tritium to tile fires, fixes a lot of general reaction bugs.
* fixes typo
* Hopefully fixes UI
* compiles tgui
* Tritium balance.
* radiation rework and subsystem
* moves a few things to initialize and adds radiation insulation
* adds a radiation contamination mechanic and makes requested changes
I'm terrified by the possibilities from this
* radiated objects give off light
and hopefuly contamination is balanced
* fixes runtimes and an mc crash kek
removed the lighting part of contaminated objects
attempted some more balancing
* Collectors output power in process() gradualy
And some more balancing tweaks
* Excludes a bunch of things from becoming radioactive
* Ready for testmerge balancing
* Inverse square law was swapped
* testmerge balancing
fixes the geiger counter
buffs collector power gen
nerfs sm radiation
slightly buffs rad insulation
nerfs rad damage (and its burn)
raised the minimum radiation
* disabling the radiation subsystem won't build up rad wave datums forever
* rewrites how mobs handle radiation
upgrades geiger counter functionality
and more balance tweaks
* cleans up stuff and removes debug message
* Slight contamination buff
* Major rad wave performance boost
Also improves rad insulation
Buffs contamination, again
* Fixes insulation runtime
More balance and performance tweaks
* fixes rad collectors not receiving power
* The final balance commit
Fixes a major bug causing radiation to underperform
More geiger counter changes that will be changed more to add sounds
* Monkey business
* Geiger counter sounds
* cleanup and move components to their own initialize
* Some code cleanup
And forgotten changes
* Cleans up some trailing returns
* Mapping changes
* Adds /engine variants of supermatter_shard
* Makes maps use /engine supermatter_shard variants
* Adds a framework for ensuring an objective_item exists before giving it as a target
* Fixes supermatter sliver objective being given with no supermatter engine on the map
* Works around BYOND stupidity
Moves repeated code into procs, as well as adding processing handicaps/damage hardcaps to things that really need them. (reverted from commit 59ce8fa832)
In light of the change of Bump to Collide, this should also be done
as it will make it less confusing for devs in the future
I also ended up changing a bunch of the code in the CollidedWith procs,
things that were assuming types, doing bad loc changes and so forth