diff --git a/code/__DEFINES/loadout.dm b/code/__DEFINES/loadout.dm index f9b4c36c9c..792708b5bb 100644 --- a/code/__DEFINES/loadout.dm +++ b/code/__DEFINES/loadout.dm @@ -91,3 +91,8 @@ #define LOADOUT_TAB 4 #define CONTENT_PREFERENCES_TAB 5 #define KEYBINDINGS_TAB 6 + +//quirks +#define QUIRK_POSITIVE "Positive" +#define QUIRK_NEGATIVE "Negative" +#define QUIRK_NEUTRAL "Neutral" diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 241e8b24a9..a0bb245bbb 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -250,6 +250,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) //Quirk list var/list/all_quirks = list() + //Quirk category currently selected + var/quirk_category = QUIRK_POSITIVE // defaults to positive, the first tab! + //Job preferences 2.0 - indexed by job title , no key or value implies never var/list/job_preferences = list() @@ -1666,9 +1669,17 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "
" dat += "
Current quirks: [all_quirks.len ? all_quirks.Join(", ") : "None"]
" dat += "
[GetPositiveQuirkCount()] / [MAX_QUIRKS] max positive quirks
\ - Quirk balance remaining: [GetQuirkBalance()]

" + Quirk balance remaining: [GetQuirkBalance()]
" + dat += " [QUIRK_POSITIVE] " + dat += " [QUIRK_NEUTRAL] " + dat += " [QUIRK_NEGATIVE] " + dat += "
" for(var/V in SSquirks.quirks) var/datum/quirk/T = SSquirks.quirks[V] + var/value = initial(T.value) + if((value > 0 && quirk_category != QUIRK_POSITIVE) || (value < 0 && quirk_category != QUIRK_NEGATIVE) || (value == 0 && quirk_category != QUIRK_NEUTRAL)) + continue + var/quirk_name = initial(T.name) var/has_quirk var/quirk_cost = initial(T.value) * -1 @@ -1690,7 +1701,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) quirk_cost = "+[quirk_cost]" var/font_color = "#AAAAFF" if(initial(T.value) != 0) - font_color = initial(T.value) > 0 ? "#AAFFAA" : "#FFAAAA" + font_color = value > 0 ? "#AAFFAA" : "#FFAAAA" if(quirk_conflict) dat += "[quirk_name] - [initial(T.desc)] \ LOCKED: [lock_reason]
" @@ -1836,7 +1847,13 @@ GLOBAL_LIST_EMPTY(preferences_datums) else SetQuirks(user) return TRUE -//SKYRAT CHANGE - only language pref + + else if(href_list["quirk_category"]) + var/temp_quirk_category = href_list["quirk_category"] + if(temp_quirk_category == QUIRK_POSITIVE || temp_quirk_category == QUIRK_NEUTRAL || temp_quirk_category == QUIRK_NEGATIVE) + quirk_category = temp_quirk_category + SetQuirks(user) + else if(href_list["preference"] == "language") switch(href_list["task"]) if("close") @@ -1855,7 +1872,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) else SetLanguage(user) return TRUE -// + switch(href_list["task"]) if("random") switch(href_list["preference"]) diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index b065454f27..4be1065372 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -526,6 +526,8 @@ /datum/emote/living/circle/run_emote(mob/user, params) . = ..() + if(!.) + return var/obj/item/circlegame/N = new(user) if(user.put_in_hands(N)) to_chat(user, "You make a circle with your hand.") diff --git a/code/modules/mob/living/silicon/robot/emote.dm b/code/modules/mob/living/silicon/robot/emote.dm index d499c2abae..5563f47e61 100644 --- a/code/modules/mob/living/silicon/robot/emote.dm +++ b/code/modules/mob/living/silicon/robot/emote.dm @@ -8,7 +8,7 @@ var/unrestricted = TRUE /datum/emote/sound/silicon/run_emote(mob/user, params) - if(!unrestricted && !(issilicon(user) || isipcperson(user))) + if(!unrestricted && !(issilicon(user) || isrobotic(user))) return return ..() diff --git a/code/modules/mob/living/simple_animal/slime/emote.dm b/code/modules/mob/living/simple_animal/slime/emote.dm index 94f054345d..ac0ce1c1e5 100644 --- a/code/modules/mob/living/simple_animal/slime/emote.dm +++ b/code/modules/mob/living/simple_animal/slime/emote.dm @@ -27,6 +27,8 @@ /datum/emote/slime/mood/run_emote(mob/user, params) . = ..() + if(!.) + return var/mob/living/simple_animal/slime/S = user S.mood = mood S.regenerate_icons() diff --git a/html/changelogs/archive/2022-05.yml b/html/changelogs/archive/2022-05.yml index 4f48f00470..ac73f9ad45 100644 --- a/html/changelogs/archive/2022-05.yml +++ b/html/changelogs/archive/2022-05.yml @@ -139,5 +139,9 @@ Yawet330: - admin: Staff when aghosting get the same things, so you can easily see peoples OOC notes if disputes come up, and they're in something that prevents examines. +2022-05-17: timothyteakettle: - rscadd: poly alt cloak can now be renamed/dedescriptioned in loadout +2022-05-18: + timothyteakettle: + - rscadd: quirks are now organised into three tabs for positive, neutral and negative diff --git a/modular_citadel/code/modules/mob/cit_emotes.dm b/modular_citadel/code/modules/mob/cit_emotes.dm index 0adb12e5a1..8a6643d239 100644 --- a/modular_citadel/code/modules/mob/cit_emotes.dm +++ b/modular_citadel/code/modules/mob/cit_emotes.dm @@ -77,7 +77,8 @@ restraint_check = TRUE /datum/emote/living/snap/run_emote(mob/living/user, params) - if(!(. = ..())) + . = ..() + if(!.) return if(user.nextsoundemote >= world.time) return @@ -93,7 +94,8 @@ restraint_check = TRUE /datum/emote/living/snap2/run_emote(mob/living/user, params) - if(!(. = ..())) + . = ..() + if(!.) return if(user.nextsoundemote >= world.time) return @@ -109,7 +111,8 @@ restraint_check = TRUE /datum/emote/living/snap3/run_emote(mob/living/user, params) - if(!(. = ..())) + . = ..() + if(!.) return if(user.nextsoundemote >= world.time) return @@ -125,7 +128,8 @@ restraint_check = FALSE /datum/emote/living/awoo/run_emote(mob/living/user, params) - if(!(. = ..())) + . = ..() + if(!.) return if(user.nextsoundemote >= world.time) return @@ -141,7 +145,8 @@ restraint_check = FALSE /datum/emote/living/hiss/run_emote(mob/living/user, params) - if(!(. = ..())) + . = ..() + if(!.) return if(user.nextsoundemote >= world.time) return @@ -157,7 +162,8 @@ restraint_check = FALSE /datum/emote/living/meow/run_emote(mob/living/user, params) - if(!(. = ..())) + . = ..() + if(!.) return if(user.nextsoundemote >= world.time) return @@ -173,7 +179,8 @@ restraint_check = FALSE /datum/emote/living/purr/run_emote(mob/living/user, params) - if(!(. = ..())) + . = ..() + if(!.) return if(user.nextsoundemote >= world.time) return @@ -189,7 +196,8 @@ restraint_check = FALSE /datum/emote/living/nya/run_emote(mob/living/user, params) - if(!(. = ..())) + . = ..() + if(!.) return if(user.nextsoundemote >= world.time) return @@ -205,7 +213,8 @@ restraint_check = FALSE /datum/emote/living/weh/run_emote(mob/living/user, params) - if(!(. = ..())) + . = ..() + if(!.) return if(user.nextsoundemote >= world.time) return @@ -221,7 +230,8 @@ restraint_check = FALSE /datum/emote/living/peep/run_emote(mob/living/user, params) - if(!(. = ..())) + . = ..() + if(!.) return if(user.nextsoundemote >= world.time) return @@ -244,7 +254,8 @@ restraint_check = FALSE /datum/emote/living/mothsqueak/run_emote(mob/living/user, params) - if(!(. = ..())) + . = ..() + if(!.) return if(user.nextsoundemote >= world.time) return @@ -260,7 +271,8 @@ restraint_check = FALSE /datum/emote/living/merp/run_emote(mob/living/user, params) - if(!(. = ..())) + . = ..() + if(!.) return if(user.nextsoundemote >= world.time) return @@ -276,7 +288,8 @@ restraint_check = FALSE /datum/emote/living/bark/run_emote(mob/living/user, params) - if(!(. = ..())) + . = ..() + if(!.) return if(user.nextsoundemote >= world.time) return @@ -293,7 +306,8 @@ restraint_check = FALSE /datum/emote/living/squish/run_emote(mob/living/user, params) - if(!(. = ..())) + . = ..() + if(!.) return if(user.nextsoundemote >= world.time) return @@ -310,7 +324,8 @@ restraint_check = FALSE /datum/emote/living/pain/run_emote(mob/living/user, params) - if(!(. = ..())) + . = ..() + if(!.) return if(user.nextsoundemote >= world.time) return @@ -331,6 +346,7 @@ restraint_check = TRUE /datum/emote/living/clap1/run_emote(mob/living/user, params) - if(!(. = ..())) + . = ..() + if(!.) return playsound(user, 'modular_citadel/sound/voice/clap.ogg', 50, 1, -1)