Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Ready] Fermichem part 2.3 Adds a new reagent: Eigenstasium #56918

Merged
merged 322 commits into from
Mar 27, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
322 commits
Select commit Hold shift + click to select a range
b1e49d1
Cleaning up comments
Thalpy Jan 12, 2021
c267de4
Few more things I noticed and antropod pointed out
Thalpy Jan 12, 2021
987135e
Automatic changelog compile [ci skip]
actions-user Jan 13, 2021
9e24704
Maybe this will improve pH feel? Very undecided
Thalpy Jan 13, 2021
aeca849
Converts drinks
Thalpy Jan 13, 2021
d51a77e
Automatic changelog compile [ci skip]
actions-user Jan 14, 2021
a9190a9
Few fixes and tweaks (see above)
Thalpy Jan 14, 2021
4d565e8
Merge remote-tracking branch 'upstream/master'
Thalpy Jan 14, 2021
36981ce
Merge remote-tracking branch 'upstream/master'
Thalpy Jan 14, 2021
eae7de4
Merge branch 'master' into fermichemp1
Thalpy Jan 14, 2021
ca3b7fc
Sawa few things that should be clearer
Thalpy Jan 14, 2021
c120c38
Automatic changelog compile [ci skip]
actions-user Jan 15, 2021
faf2129
Apply part 1 of suggestions from code review
Thalpy Jan 15, 2021
4b0e11f
Update code/modules/reagents/chemistry/items.dm
Thalpy Jan 15, 2021
e06a765
Review changes p2
Thalpy Jan 15, 2021
4746608
Gotta test things now
Thalpy Jan 15, 2021
ee072f3
Guess who forgot to compile test first
Thalpy Jan 15, 2021
45967b6
Sets testing enviroment for equilibrium.dm
Thalpy Jan 15, 2021
e31622c
Apply part 1 of suggestions from code review Mk.3
Thalpy Jan 15, 2021
52d4f1f
I messed up with stash
Thalpy Jan 15, 2021
bf11367
Ri to inverse_reagent
Thalpy Jan 15, 2021
e49c4dd
More fixes
Thalpy Jan 15, 2021
715d889
Merge branch 'fermichemp1' of https://github.com/Thalpy/tgstation int…
Thalpy Jan 15, 2021
b06847a
Compile check
Thalpy Jan 15, 2021
0739a91
LAZY UPDATE LAZY OPERATIONS
Thalpy Jan 15, 2021
d355d91
Linter
Thalpy Jan 15, 2021
6d3dfb2
Lets null the reference too
Thalpy Jan 15, 2021
f7bd07f
LIFO
Thalpy Jan 15, 2021
8de9e66
Should be all fixed now
Thalpy Jan 15, 2021
4ba9314
Revisions, fixes and locker additions
Thalpy Jan 15, 2021
2a22170
I hit ctrl + s without the ctrl
Thalpy Jan 15, 2021
c77c3a1
Fixes the ability to eat endless pHpaper slips with no consequence
Thalpy Jan 16, 2021
dd862d9
Requested list changes
Thalpy Jan 16, 2021
9da2540
Automatic changelog compile [ci skip]
actions-user Jan 16, 2021
fe0637d
Null list and missing catalsyst
Thalpy Jan 16, 2021
cef8775
Merge remote-tracking branch 'upstream/master'
Thalpy Jan 16, 2021
8e67ffa
Merge remote-tracking branch 'upstream/master' into fermichemp1
Thalpy Jan 16, 2021
85e731f
Merge remote-tracking branch 'upstream/master'
Thalpy Jan 16, 2021
fa90f35
Merge branch 'master' into fermichemp1
Thalpy Jan 16, 2021
ecf79a2
Fixes icon conflict
Thalpy Jan 16, 2021
0ee280a
Automatic changelog compile [ci skip]
actions-user Jan 17, 2021
64ce3d3
Mid tweak - need to atomise fix
Thalpy Jan 17, 2021
c10db0f
The great cheese fix
Thalpy Jan 17, 2021
9f5247e
Merge remote-tracking branch 'upstream/master'
Thalpy Jan 17, 2021
5349786
Merge branch 'master' into fermichemp1
Thalpy Jan 17, 2021
073539f
Triple checking that food can't and won't crash + review comments
Thalpy Jan 17, 2021
0844965
Fixes duplicate gravy and minorly adjusts randomized chem
Thalpy Jan 18, 2021
3e1f65c
Formatting special reaction paper
Thalpy Jan 18, 2021
432a148
Automatic changelog compile [ci skip]
actions-user Jan 18, 2021
0be6d25
Lets not ruin this for anyone who gets it
Thalpy Jan 18, 2021
6a5276d
Final pass
Thalpy Jan 18, 2021
8ca1ae4
Forgot about cold overheats and reduced text spam
Thalpy Jan 18, 2021
f04bd10
The hercuri condition
Thalpy Jan 18, 2021
7fa6ec1
Okay, we'll see if people can figure this out
Thalpy Jan 18, 2021
f2541d5
oops commented out ifdef
Thalpy Jan 18, 2021
8da1901
Removes forgotten debug_worlds and var/mob
Thalpy Jan 18, 2021
ccaacb2
Fixes message issues
Thalpy Jan 18, 2021
0f68acf
Automatic changelog compile [ci skip]
actions-user Jan 19, 2021
569edbb
Requested changes + heirlooms (before pH rename)
Thalpy Jan 19, 2021
8ae1f11
Monster pH to ph change
Thalpy Jan 19, 2021
79ab886
Hopefully this doesn't break everything
Thalpy Jan 19, 2021
81fa271
Potential super hotfix for smoke problem
Thalpy Jan 19, 2021
0de43b6
I cannot believe I forgot REACTION_INSTANT
Thalpy Jan 19, 2021
e53a698
oops
Thalpy Jan 19, 2021
90da548
One more
Thalpy Jan 19, 2021
b233c0b
How on earth did I forget these flags aaa
Thalpy Jan 19, 2021
5b771da
Automatic changelog compile [ci skip]
actions-user Jan 20, 2021
a76dd34
Just in case --fix breaks everything
Thalpy Jan 20, 2021
b7f6359
Fix worked, wow
Thalpy Jan 20, 2021
9f13e4f
Automatic changelog compile [ci skip]
actions-user Jan 21, 2021
64cb7d9
Okay bed, bug fixing tomorrow
Thalpy Jan 21, 2021
6b0b713
Apply suggestions from code review Mk.4
Thalpy Jan 21, 2021
651cd1f
Part 2 of Mk.4
Thalpy Jan 21, 2021
cf65879
Automatic changelog compile [ci skip]
actions-user Jan 22, 2021
509938c
Automatic changelog compile [ci skip]
actions-user Jan 23, 2021
3320de8
Attempts to fix linter problems - and I made these reactions far too …
Thalpy Jan 23, 2021
3b003fa
Wow I can't believe it works first try and it was that easy, and it e…
Thalpy Jan 23, 2021
bcdb526
Update _compile_options.dm
Thalpy Jan 23, 2021
00625dd
Okay, tommorrow more bugfixes, reaction tweaks and a lil testing. The…
Thalpy Jan 23, 2021
55a9213
Chem heater UI sync code
Thalpy Jan 23, 2021
37bb53e
Update _compile_options.dm
Thalpy Jan 23, 2021
6c6eba7
Magically works(???)
Thalpy Jan 23, 2021
657a261
Few more tweaks and fixes
Thalpy Jan 23, 2021
06ad1a4
Making sure meth goes boom
Thalpy Jan 23, 2021
43f77e7
Fixes clamp
Thalpy Jan 23, 2021
643094c
UI fix and I don't need the flag check anymore
Thalpy Jan 23, 2021
52e90ee
I changed my mind about it, I kind of like making no react beakers us…
Thalpy Jan 23, 2021
8b38b0e
What is tgstation.mdme.dme ? (also does the change I just said above)
Thalpy Jan 23, 2021
329d83f
Oops I did it backwards
Thalpy Jan 23, 2021
099503e
Meth crash is fixed
Thalpy Jan 23, 2021
b2f757f
Fixes buffer error
Thalpy Jan 23, 2021
f25c757
Smol fixes
Thalpy Jan 24, 2021
cabf5dd
Apply suggestions from code review Mk5
Thalpy Jan 24, 2021
e3ff43c
Requested by hand changes
Thalpy Jan 24, 2021
0bff09b
Merge branch 'fermichemp1' of https://github.com/Thalpy/tgstation int…
Thalpy Jan 24, 2021
97909ee
Fixing compile checks
Thalpy Jan 24, 2021
10912df
Oops I missed one
Thalpy Jan 24, 2021
2a580a5
Adds UI checks
Thalpy Jan 24, 2021
ec5a007
Automatic changelog compile [ci skip]
actions-user Jan 25, 2021
5441b21
Edits from review
Thalpy Jan 25, 2021
8b168f8
Forgot signal handlier
Thalpy Jan 25, 2021
c2b525e
Automatic changelog compile [ci skip]
actions-user Jan 26, 2021
e7cae3e
Requested changes
Thalpy Jan 26, 2021
05947fd
Indents
Thalpy Jan 26, 2021
361d305
Linter
Thalpy Jan 26, 2021
a5159c5
Merge remote-tracking branch 'upstream/master'
Thalpy Jan 26, 2021
2bc8753
Merge branch 'master' into fermichemp1
Thalpy Jan 26, 2021
2ecf17e
Delete slnx.sqlite
Thalpy Jan 26, 2021
6f82fa2
Double procs
Thalpy Jan 26, 2021
dc3dd25
Merge remote-tracking branch 'upstream/master'
Thalpy Jan 26, 2021
46fdbac
Merge branch 'master' into fermichemp1
Thalpy Jan 26, 2021
6c9e7c5
Automatic changelog compile [ci skip]
actions-user Jan 27, 2021
7cd7355
Adjusts for world.time slowdown difference between testing and live -…
Thalpy Jan 27, 2021
20c5755
Update chem_heater.dm
Thalpy Jan 27, 2021
9d79ec8
Merge remote-tracking branch 'upstream/master'
Thalpy Jan 27, 2021
d8d397c
Merge branch 'master' into fermichemp1
Thalpy Jan 27, 2021
9863ebc
Moving dm to more appropriate folder
Thalpy Jan 27, 2021
48765c8
Fixes runtimes observed in logs
Thalpy Jan 27, 2021
f53d67e
Speeds up drinks too
Thalpy Jan 27, 2021
8b88c62
This shouldn't be needed - realised 0 will equal 0
Thalpy Jan 27, 2021
d034734
Automatic changelog compile [ci skip]
actions-user Jan 28, 2021
f90e28b
Automatic changelog compile [ci skip]
actions-user Jan 29, 2021
e6f2b07
Automatic changelog compile [ci skip]
actions-user Jan 30, 2021
3791210
Merge branch 'fermichemp1'
Thalpy Jan 30, 2021
a5d2e62
Revert "Merge branch 'fermichemp1'"
Thalpy Jan 30, 2021
50e6d65
Merge remote-tracking branch 'upstream/master'
Thalpy Jan 30, 2021
8e1fa40
Merge remote-tracking branch 'upstream/master'
Thalpy Jan 30, 2021
d62b850
Automatic changelog compile [ci skip]
actions-user Jan 31, 2021
27ae4fb
Automatic changelog compile [ci skip]
actions-user Feb 1, 2021
720818a
Automatic changelog compile [ci skip]
actions-user Feb 2, 2021
8685d19
Automatic changelog compile [ci skip]
actions-user Feb 3, 2021
db18907
Automatic changelog compile [ci skip]
actions-user Feb 4, 2021
98a9785
Automatic changelog compile [ci skip]
actions-user Feb 5, 2021
f197c2f
Automatic changelog compile [ci skip]
actions-user Feb 6, 2021
47aa685
Merge remote-tracking branch 'upstream/master'
Thalpy Feb 6, 2021
23b2483
Automatic changelog compile [ci skip]
actions-user Feb 7, 2021
0800da8
Automatic changelog compile [ci skip]
actions-user Feb 8, 2021
6fb0780
Automatic changelog compile [ci skip]
actions-user Feb 9, 2021
e9f139f
Merge remote-tracking branch 'upstream/master'
Thalpy Feb 9, 2021
03dbe99
Merge remote-tracking branch 'upstream/master'
Thalpy Feb 9, 2021
5e317e9
Automatic changelog compile [ci skip]
actions-user Feb 10, 2021
3597374
Merge remote-tracking branch 'upstream/master'
Thalpy Feb 10, 2021
793ea77
Automatic changelog compile [ci skip]
actions-user Feb 11, 2021
f303efa
Automatic changelog compile [ci skip]
actions-user Feb 12, 2021
5883b92
Merge remote-tracking branch 'upstream/master'
Thalpy Feb 12, 2021
4fe13fa
Merge remote-tracking branch 'upstream/master'
Thalpy Feb 12, 2021
514b129
Merge remote-tracking branch 'upstream/master'
Thalpy Feb 12, 2021
149efcb
Automatic changelog compile [ci skip]
actions-user Feb 13, 2021
4462f2b
Merge remote-tracking branch 'upstream/master'
Thalpy Feb 13, 2021
8b9bbba
Merge remote-tracking branch 'upstream/master'
Thalpy Feb 13, 2021
765807b
eigenbase
Thalpy Feb 13, 2021
d372f88
Update eigenstasium.dm
Thalpy Feb 13, 2021
2d65c95
Automatic changelog compile [ci skip]
actions-user Feb 14, 2021
5bcebcd
Fixes and normalisations
Thalpy Feb 14, 2021
91a3093
Few more fixes
Thalpy Feb 14, 2021
f796f57
Merge remote-tracking branch 'upstream/master'
Thalpy Feb 14, 2021
99a5f31
Merge branch 'master' into eigenstasium
Thalpy Feb 14, 2021
63f271e
Makes eigenswap change up appearance slightly
Thalpy Feb 14, 2021
2b21c25
Mothwingsssss
Thalpy Feb 14, 2021
6a897e4
Forgot to get rid of my testing agent
Thalpy Feb 14, 2021
1617918
Creation location now requires blood
Thalpy Feb 14, 2021
d0c8a52
Works
Thalpy Feb 14, 2021
3f62217
Why is this not on mob add thinking about it
Thalpy Feb 14, 2021
3b0438d
clean up random items code
Thalpy Feb 14, 2021
545d4e8
Automatic changelog compile [ci skip]
actions-user Feb 15, 2021
ceda3bf
Need to switch branch
Thalpy Feb 15, 2021
2275087
Merge remote-tracking branch 'upstream/master'
Thalpy Feb 15, 2021
44b1506
Mid tweak
Thalpy Feb 15, 2021
bc1d62f
M
Thalpy Feb 15, 2021
65b5786
Adds random quirks
Thalpy Feb 15, 2021
b455ac4
Merge remote-tracking branch 'upstream/master'
Thalpy Feb 15, 2021
5272312
Merge branch 'master' into eigenstasium
Thalpy Feb 15, 2021
94b8abc
Comments quirks
Thalpy Feb 15, 2021
2f670c4
Automatic changelog compile [ci skip]
actions-user Feb 16, 2021
6f4b190
Automatic changelog compile [ci skip]
actions-user Feb 17, 2021
5caa6ad
Merge remote-tracking branch 'upstream/master'
Thalpy Feb 17, 2021
6b952ec
Merge branch 'master' of https://github.com/Thalpy/tgstation
Thalpy Feb 17, 2021
f800f2f
Automatic changelog compile [ci skip]
actions-user Feb 18, 2021
0a3a4ee
Merge remote-tracking branch 'upstream/master'
Thalpy Feb 18, 2021
a439e54
Merge remote-tracking branch 'upstream/master'
Thalpy Feb 18, 2021
ba5e706
Merge remote-tracking branch 'upstream/master'
Thalpy Feb 18, 2021
685d900
Automatic changelog compile [ci skip]
actions-user Feb 19, 2021
61e68e9
Turns eigenstates into components
Thalpy Feb 19, 2021
7bff01f
Fixing bugs
Thalpy Feb 19, 2021
34b9441
Works
Thalpy Feb 19, 2021
bea4782
Fixing things
Thalpy Feb 19, 2021
525048a
Fixing addiction conflicts
Thalpy Feb 19, 2021
ce6017d
Merge remote-tracking branch 'upstream/master'
Thalpy Feb 19, 2021
0c284d7
Merge branch 'master' into eigenstasium
Thalpy Feb 19, 2021
79b4eb0
Compile fix
Thalpy Feb 19, 2021
fe7218c
Fixes
Thalpy Feb 19, 2021
f1ffb50
Fixes a few things
Thalpy Feb 19, 2021
fe71fa2
buffs reducers
Thalpy Feb 19, 2021
da9ebf7
Why did I have this before when I clear moods right after
Thalpy Feb 19, 2021
15d83be
linters again
Thalpy Feb 19, 2021
fec9601
Fixing some small things and improving return logic
Thalpy Feb 19, 2021
25e36db
gets rid of my testchem which causes problems
Thalpy Feb 19, 2021
2e8cdbb
finally fixes liners
Thalpy Feb 19, 2021
c52d713
Merge remote-tracking branch 'upstream/master'
Thalpy Feb 19, 2021
6d854e7
Merge remote-tracking branch 'upstream/master'
Thalpy Feb 19, 2021
74bc504
Merge remote-tracking branch 'upstream/master'
Thalpy Feb 19, 2021
dcc5c37
Merge branch 'master' into eigenstasium
Thalpy Feb 19, 2021
4b8374f
Automatic changelog compile [ci skip]
actions-user Feb 20, 2021
b946869
Apply suggestions from hooting review
Thalpy Feb 20, 2021
bff2f00
requested changes
Thalpy Feb 20, 2021
0d32085
Merge branch 'eigenstasium' of https://github.com/Thalpy/tgstation in…
Thalpy Feb 20, 2021
6c759cd
Merge remote-tracking branch 'upstream/master'
Thalpy Feb 20, 2021
a232732
Automatic changelog compile [ci skip]
actions-user Feb 21, 2021
c66945a
requested changes
Thalpy Feb 21, 2021
7de3376
Merge remote-tracking branch 'upstream/master'
Thalpy Feb 21, 2021
ae0019a
Merge branch 'master' into eigenstasium
Thalpy Feb 21, 2021
4750ec6
Updates tags
Thalpy Feb 21, 2021
c5b05a7
Disabled safety
Thalpy Feb 23, 2021
85c50a1
Merge remote-tracking branch 'upstream/master' into eigenstasium
Thalpy Feb 23, 2021
636f603
Removes as anything
Thalpy Feb 23, 2021
f54cabe
Fixing error changelog
Thalpy Feb 24, 2021
54d58f0
Merge remote-tracking branch 'upstream/master' into eigenstasium
Thalpy Feb 24, 2021
0e59cd3
Changelog please
Thalpy Feb 24, 2021
9ef6691
Update code/modules/reagents/chemistry/reagents/unique/eigenstasium.dm
Thalpy Feb 24, 2021
5f7a4c0
Apply suggestions from code review
Thalpy Feb 24, 2021
71abb1a
Update code/modules/reagents/chemistry/reagents/unique/eigenstasium.dm
Thalpy Feb 24, 2021
7a49a7a
I think this is what the owl means..!
Thalpy Feb 24, 2021
d42ed0a
Final round of changes
Thalpy Feb 24, 2021
19fe1ab
Bigtext please
Thalpy Feb 24, 2021
935bf17
remove extra qdel
Thalpy Feb 24, 2021
0df8119
Lets pipes teleport too
Thalpy Feb 26, 2021
9585c11
Merge remote-tracking branch 'upstream/master' into eigenstasium
Thalpy Feb 27, 2021
eb588f1
undef
Thalpy Feb 27, 2021
52c062c
Fixes step conflicts
Thalpy Feb 28, 2021
70a8ba5
Adds a new comment so the old unit test failure goes away
Thalpy Mar 1, 2021
c4488b6
Merge remote-tracking branch 'upstream/master' into eigenstasium
Thalpy Mar 6, 2021
d7959ff
Fixes conflicts
Thalpy Mar 6, 2021
2871da9
Merge remote-tracking branch 'upstream/master' into eigenstasium
Thalpy Mar 14, 2021
04f743c
Apply suggestions from code review
Thalpy Mar 14, 2021
5e985f9
Requested tweaks and changes
Thalpy Mar 14, 2021
57ed82f
unrequired blood stuff
Thalpy Mar 14, 2021
381190c
Commited too early!
Thalpy Mar 14, 2021
0ebb29f
Why is it so difficult to remove an empty list
Thalpy Mar 14, 2021
79e5274
's eigenstate
Thalpy Mar 14, 2021
cf7b7f5
Caught a runtime!
Thalpy Mar 14, 2021
c177010
Adds comsig
Thalpy Mar 14, 2021
fce427b
Alright got it working
Thalpy Mar 14, 2021
8da46d4
Okay this should work!
Thalpy Mar 14, 2021
e8ea1fb
static type
Thalpy Mar 14, 2021
5606d46
Fixes comsig runtime
Thalpy Mar 14, 2021
ba64648
Forgot signal flag
Thalpy Mar 16, 2021
90c4da4
Update code/datums/status_effects/neutral.dm
Thalpy Mar 26, 2021
496e17f
Update code/modules/reagents/chemistry/reagents/impure_reagents.dm
Thalpy Mar 26, 2021
2eb9d6c
Requested changes
Thalpy Mar 26, 2021
01883b4
Merge branch 'eigenstasium' of https://github.com/Thalpy/tgstation in…
Thalpy Mar 26, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 2 additions & 0 deletions code/__DEFINES/colors.dm
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,8 @@
#define COLOR_THEME_GLASS "#75A4C4"
#define COLOR_THEME_CLOCKWORK "#CFBA47"

///Colors for eigenstates
#define COLOR_PERIWINKLEE "#9999FF"
/**
* Some defines to generalise colours used in lighting.
*
Expand Down
10 changes: 10 additions & 0 deletions code/__DEFINES/dcs/signals.dm
Original file line number Diff line number Diff line change
Expand Up @@ -702,6 +702,16 @@
///from [/obj/structure/closet/supplypod/proc/preOpen]:
#define COMSIG_SUPPLYPOD_LANDED "supplypodgoboom"

///Closets
///From base of [/obj/structure/closet/proc/insert]: (atom/movable/inserted)
#define COMSIG_CLOSET_INSERT "closet_insert"
///used to interrupt insertion
#define COMPONENT_CLOSET_INSERT_INTERRUPT (1<<0)

///Eigenstasium
///From base of [/datum/controller/subsystem/eigenstates/proc/use_eigenlinked_atom]: (var/target)
#define COMSIG_EIGENSTATE_ACTIVATE "eigenstate_activate"

// /obj signals for economy
///called when the payment component tries to charge an account.
#define COMSIG_OBJ_ATTEMPT_CHARGE "obj_attempt_simple_charge"
Expand Down
8 changes: 8 additions & 0 deletions code/__DEFINES/status_effects.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@

#define STATUS_EFFECT_REFRESH 3 // if it only allows one, and new instances just instead refresh the timer

///Processing flags - used to define the speed at which the status will work
///This is fast - 0.2s between ticks (I believe!)
#define STATUS_EFFECT_FAST_PROCESS 0
///This is slower and better for more intensive status effects - 1s between ticks
#define STATUS_EFFECT_NORMAL_PROCESS 1

///////////
// BUFFS //
///////////
Expand Down Expand Up @@ -127,6 +133,8 @@
#define STATUS_EFFECT_HIGHFIVE /datum/status_effect/high_fiving // you are angling for a high five

#define STATUS_EFFECT_SURRENDER /datum/status_effect/grouped/surrender // gives an alert to quickly surrender

#define STATUS_EFFECT_EIGEN /datum/status_effect/eigenstasium
/////////////
// SLIME //
/////////////
Expand Down
112 changes: 112 additions & 0 deletions code/controllers/subsystem/eigenstate.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
///Subsystem used to teleport people to a linked web of itterative entries. If one entry is deleted, the 2 around it will forge a link instead.
SUBSYSTEM_DEF(eigenstates)
name = "Eigenstates"
flags = SS_NO_INIT | SS_NO_FIRE
///The list of objects that something is linked to indexed by UID
var/list/eigen_targets = list()
///UID to object reference
var/list/eigen_id = list()
///Unique id counter
var/id_counter = 1
///Limit the number of sparks created when teleporting multiple atoms to 1
var/spark_time = 0

///Creates a new link of targets unique to their own id
/datum/controller/subsystem/eigenstates/proc/create_new_link(targets)
if(length(targets) <= 1)
return FALSE
for(var/atom/target as anything in targets) //Clear out any connected
var/already_linked = eigen_id[target]
if(!already_linked)
continue
if(length(eigen_targets[already_linked]) > 1) //Eigenstates are notorious for having cliques!
target.visible_message("[target] fizzes, it's already linked to something else!")
targets -= target
continue
target.visible_message("[target] fizzes, collapsing it's unique wavefunction into the others!") //If we're in a eigenlink all on our own and are open to new friends
remove_eigen_entry(target) //clearup for new stuff
//Do we still have targets?
if(!length(targets))
return FALSE
var/atom/visible_atom = targets[1] //The object that'll handle the messages
if(length(targets) == 1)
visible_atom.visible_message("[targets[1]] fizzes, there's nothing it can link to!")
return FALSE

eigen_targets["[id_counter]"] = list() //Add to the master list
for(var/atom/target as anything in targets)
eigen_targets["[id_counter]"] += target
eigen_id[target] = "[id_counter]"
RegisterSignal(target, COMSIG_CLOSET_INSERT, .proc/use_eigenlinked_atom)
RegisterSignal(target, COMSIG_PARENT_QDELETING, .proc/remove_eigen_entry)
RegisterSignal(target, COMSIG_ATOM_TOOL_ACT(TOOL_WELDER), .proc/tool_interact)
target.RegisterSignal(target, COMSIG_EIGENSTATE_ACTIVATE, /obj/structure/closet/proc/bust_open)
var/obj/item = target
if(item)
item.color = COLOR_PERIWINKLEE //Tint the locker slightly.
item.alpha = 200
do_sparks(3, FALSE, item)

visible_atom.visible_message("The items shimmer and fizzle, turning a shade of violet blue.")
id_counter++
return TRUE

///reverts everything back to start
/datum/controller/subsystem/eigenstates/Destroy()
for(var/index in 1 to id_counter)
for(var/entry in eigen_targets["[index]"])
remove_eigen_entry(entry)
eigen_targets = null
eigen_id = null
id_counter = 1
return ..()

///removes an object reference from the master list
/datum/controller/subsystem/eigenstates/proc/remove_eigen_entry(atom/entry)
var/id = eigen_id[entry]
eigen_targets[id] -= entry
eigen_id -= entry
entry.color = COLOR_WHITE
entry.alpha = 255
UnregisterSignal(entry, list(
COMSIG_PARENT_QDELETING,
COMSIG_CLOSET_INSERT,
COMSIG_ATOM_TOOL_ACT(TOOL_WELDER),
))
entry.UnregisterSignal(entry, COMSIG_EIGENSTATE_ACTIVATE) //This is a signal on the object itself so we have to call it from that
///Remove the current entry if we're empty
for(var/targets in eigen_targets)
if(!length(eigen_targets[targets]))
eigen_targets -= targets

///Finds the object within the master list, then sends the thing to the object's location
/datum/controller/subsystem/eigenstates/proc/use_eigenlinked_atom(atom/object_sent_from, atom/movable/thing_to_send)
var/id = eigen_id[object_sent_from]
if(!id)
stack_trace("[object_sent_from] attempted to eigenlink to something that didn't have a valid id!")
return FALSE
var/list/items = eigen_targets[id]
var/index = (items.Find(object_sent_from))+1 //index + 1
if(!index)
stack_trace("[object_sent_from] attempted to eigenlink to something that didn't contain it!")
return FALSE
if(index > length(eigen_targets[id]))//If we're at the end of the list (or we're 1 length long)
index = 1
var/atom/eigen_target = eigen_targets[id][index]
if(!eigen_target)
stack_trace("No eigen target set for the eigenstate component!")
return FALSE
thing_to_send.forceMove(get_turf(eigen_target))
//Create ONE set of sparks for ALL times in iteration
if(spark_time != world.time)
do_sparks(5, FALSE, eigen_target)
do_sparks(5, FALSE, object_sent_from)
spark_time = world.time
//Calls a special proc for the atom if needed (closets use bust_open())
SEND_SIGNAL(eigen_target, COMSIG_EIGENSTATE_ACTIVATE)
return COMPONENT_CLOSET_INSERT_INTERRUPT

///Prevents tool use on the item
/datum/controller/subsystem/eigenstates/proc/tool_interact(atom/source, mob/user, obj/item/item)
to_chat(user, "<span class='notice'>The unstable nature of [source] makes it impossible to use [item] on [source.p_them()]!</span>")
return COMPONENT_BLOCK_TOOL_ATTACK
68 changes: 68 additions & 0 deletions code/controllers/subsystem/processing/quirks.dm
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
#define EXP_ASSIGN_WAYFINDER 1200
#define RANDOM_QUIRK_BONUS 3
#define MINIMUM_RANDOM_QUIRKS 3
//Used to process and handle roundstart quirks
// - Quirk strings are used for faster checking in code
// - Quirk datums are stored and hold different effects, as well as being a vector for applying trait string
Expand Down Expand Up @@ -65,3 +67,69 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
// Assign wayfinding pinpointer granting quirk if they're new
if(cli.get_exp_living(TRUE) < EXP_ASSIGN_WAYFINDER && !user.has_quirk(/datum/quirk/needswayfinder))
user.add_quirk(/datum/quirk/needswayfinder, TRUE)

/*
*Randomises the quirks for a specified mob
*/
/datum/controller/subsystem/processing/quirks/proc/randomise_quirks(mob/living/user)
var/bonus_quirks = max((length(user.roundstart_quirks) + rand(-RANDOM_QUIRK_BONUS, RANDOM_QUIRK_BONUS)), MINIMUM_RANDOM_QUIRKS)
var/added_quirk_count = 0 //How many we've added
var/list/quirks_to_add = list() //Quirks we're adding
var/good_count = 0 //Maximum of 6 good perks
var/score //What point score we're at
///Cached list of possible quirks
var/list/possible_quirks = quirks.Copy()
//Create a random list of stuff to start with
while(bonus_quirks > added_quirk_count)
var/quirk = pick(possible_quirks) //quirk is a string
if(quirk in quirk_blacklist) //prevent blacklisted
possible_quirks -= quirk
continue
if(quirk_points[quirk] > 0)
good_count++
score += quirk_points[quirk]
quirks_to_add += quirk
possible_quirks -= quirk
added_quirk_count++

//But lets make sure we're balanced
while(score > 0)
if(!length(possible_quirks))//Lets not get stuck
break
var/quirk = pick(quirks)
if(quirk in quirk_blacklist) //prevent blacklisted
possible_quirks -= quirk
continue
if(!quirk_points[quirk] < 0)//negative only
possible_quirks -= quirk
continue
good_count++
score += quirk_points[quirk]
quirks_to_add += quirk

//And have benefits too
while(score < 0 && good_count <= MAX_QUIRKS)
if(!length(possible_quirks))//Lets not get stuck
break
var/quirk = pick(quirks)
if(quirk in quirk_blacklist) //prevent blacklisted
possible_quirks -= quirk
continue
if(!quirk_points[quirk] > 0) //positive only
possible_quirks -= quirk
continue
good_count++
score += quirk_points[quirk]
quirks_to_add += quirk

for(var/datum/quirk/quirk as anything in user.roundstart_quirks)
if(quirk.name in quirks_to_add) //Don't delete ones we keep
quirks_to_add -= quirk.name //Already there, no need to add.
continue
user.remove_quirk(quirk.type) //these quirks are objects

for(var/datum/quirk/quirk as anything in quirks_to_add)
user.add_quirk(quirks[quirk], spawn_effects = TRUE)//these are typepaths converted from string

#undef RANDOM_QUIRK_BONUS
#undef MINIMUM_RANDOM_QUIRKS
17 changes: 17 additions & 0 deletions code/datums/mood_events/drug_events.dm
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,23 @@
mood_change = 6
timeout = 3 MINUTES

#define EIGENTRIP_MOOD_RANGE 10

/datum/mood_event/eigentrip
description = "<span class='nicegreen'>I swapped places with an alternate reality version of myself!</span>\n"
mood_change = 0
timeout = 10 MINUTES

/datum/mood_event/eigentrip/add_effects(param)
var/value = rand(-EIGENTRIP_MOOD_RANGE,EIGENTRIP_MOOD_RANGE)
mood_change = value
if(value < 0)
description = "<span class='warning'>I swapped places with an alternate reality version of myself! I want to go home!</span>\n"
else
description = "<span class='nicegreen'>I swapped places with an alternate reality version of myself! Though, this place is much better than my old life.</span>\n"

#undef EIGENTRIP_MOOD_RANGE

/datum/mood_event/nicotine_withdrawal_moderate
description = "<span class='warning'>Haven't had a smoke in a while. Feeling a little on edge... </span>\n"
mood_change = -5
Expand Down
10 changes: 1 addition & 9 deletions code/datums/status_effects/buffs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -202,15 +202,7 @@
id = "Exercised"
duration = 1200
alert_type = null

/datum/status_effect/exercised/on_creation(mob/living/new_owner, ...)
. = ..()
STOP_PROCESSING(SSfastprocess, src)
START_PROCESSING(SSprocessing, src) //this lasts 20 minutes, so SSfastprocess isn't needed.

/datum/status_effect/exercised/Destroy()
. = ..()
STOP_PROCESSING(SSprocessing, src)
processing_speed = STATUS_EFFECT_NORMAL_PROCESS

//Hippocratic Oath: Applied when the Rod of Asclepius is activated.
/datum/status_effect/hippocratic_oath
Expand Down