diff --git a/code/controllers/configuration/entries/connections.dm b/code/controllers/configuration/entries/connections.dm index 92bb4adefe..afbe94840a 100644 --- a/code/controllers/configuration/entries/connections.dm +++ b/code/controllers/configuration/entries/connections.dm @@ -32,7 +32,6 @@ min_val = 0 /datum/config_entry/flag/age_verification //are we using the automated age verification which asks users if they're 18+? - default = TRUE /datum/config_entry/flag/irc_first_connection_alert // do we notify the irc channel when somebody is connecting for the first time? diff --git a/code/datums/elements/object_reskinning.dm b/code/datums/elements/object_reskinning.dm index a75a818fc3..87f5f13385 100644 --- a/code/datums/elements/object_reskinning.dm +++ b/code/datums/elements/object_reskinning.dm @@ -110,10 +110,9 @@ ) SIGNAL_HANDLER - if(isnull(held_item)) - switch(source.reskin_binding) - if(COMSIG_CLICK_CTRL_SHIFT) - LAZYSET(context[SCREENTIP_CONTEXT_CTRL_SHIFT_LMB], INTENT_ANY, "Reskin PDA") - else - LAZYSET(context[SCREENTIP_CONTEXT_ALT_LMB], INTENT_ANY, "Reskin [source]") - return CONTEXTUAL_SCREENTIP_SET + switch(source.reskin_binding) + if(COMSIG_CLICK_CTRL_SHIFT) + LAZYSET(context[SCREENTIP_CONTEXT_CTRL_SHIFT_LMB], INTENT_ANY, "Reskin PDA") + else + LAZYSET(context[SCREENTIP_CONTEXT_ALT_LMB], INTENT_ANY, "Reskin [source]") + return CONTEXTUAL_SCREENTIP_SET diff --git a/code/game/objects/items/miscellaneous.dm b/code/game/objects/items/miscellaneous.dm index 80466832a6..590bd37d8c 100644 --- a/code/game/objects/items/miscellaneous.dm +++ b/code/game/objects/items/miscellaneous.dm @@ -240,18 +240,31 @@ item_state = "box" /obj/item/choice_beacon/box/plushie/generate_display_names() - var/list/plushie_list = list() - //plushie set 1: just subtypes of /obj/item/toy/plush - var/list/plushies_set_one = subtypesof(/obj/item/toy/plush) - list(/obj/item/toy/plush/narplush, /obj/item/toy/plush/awakenedplushie, /obj/item/toy/plush/random_snowflake, /obj/item/toy/plush/plushling, /obj/item/toy/plush/random) //don't allow these special ones (you can still get narplush/hugbox) - for(var/V in plushies_set_one) - var/atom/A = V - plushie_list[initial(A.name)] = A - //plushie set 2: snowflake plushies - var/list/plushies_set_two = CONFIG_GET(keyed_list/snowflake_plushies) - for(var/V in plushies_set_two) - plushie_list[V] = V //easiest way to do this which works with how selecting options works, despite being snowflakey to have the key equal the value + var/static/list/plushie_list = list() + if(!length(plushie_list)) + //plushie set 1: just subtypes of /obj/item/toy/plush + var/list/plushies_set_one = subtypesof(/obj/item/toy/plush) + plushies_set_one = remove_bad_plushies(plushies_set_one) + for(var/V in plushies_set_one) + var/atom/A = V + plushie_list[initial(A.name)] = A + //plushie set 2: snowflake plushies + var/list/plushies_set_two = CONFIG_GET(keyed_list/snowflake_plushies) + for(var/V in plushies_set_two) + plushie_list[V] = V //easiest way to do this which works with how selecting options works, despite being snowflakey to have the key equal the value return plushie_list +/// Don't allow these special ones (you can still get narplush/hugbox) +/obj/item/choice_beacon/box/plushie/proc/remove_bad_plushies(list/plushies) + plushies -= list( + /obj/item/toy/plush/narplush, + /obj/item/toy/plush/awakenedplushie, + /obj/item/toy/plush/random_snowflake, + /obj/item/toy/plush/plushling, + /obj/item/toy/plush/random + ) + return plushies + /obj/item/skub desc = "It's skub." name = "skub" diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index e60871dec7..64b2362edc 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -6,6 +6,8 @@ attack_verb = list("thumped", "whomped", "bumped") w_class = WEIGHT_CLASS_SMALL resistance_flags = FLAMMABLE + lefthand_file = 'icons/mob/inhands/misc/plushes_lefthand.dmi' + righthand_file = 'icons/mob/inhands/misc/plushes_righthand.dmi' var/list/squeak_override //Weighted list; If you want your plush to have different squeak sounds use this var/stuffed = TRUE //If the plushie has stuffing in it var/unstuffable = FALSE //for plushies that can't be stuffed @@ -484,7 +486,6 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) name = "space carp plushie" desc = "An adorable stuffed toy that resembles a space carp." icon_state = "carpplush" - item_state = "carp_plushie" attack_verb = list("bitten", "eaten", "fin slapped") squeak_override = list('sound/weapons/bite.ogg'=1) @@ -603,7 +604,6 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) name = "lizard plushie" desc = "An adorable stuffed toy that resembles a lizardperson." icon_state = "plushie_lizard" - item_state = "plushie_lizard" attack_verb = list("clawed", "hissed", "tail slapped") squeak_override = list('sound/weapons/slash.ogg' = 1) @@ -611,19 +611,16 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) name = "kobold plushie" desc = "An adorable stuffed toy that resembles a kobold." icon_state = "kobold" - item_state = "kobold" /obj/item/toy/plush/lizardplushie/kobold name = "spacelizard plushie" desc = "An adorable stuffed toy that resembles a lizard in a suit." icon_state = "plushie_spacelizard" - item_state = "plushie_spacelizard" /obj/item/toy/plush/nukeplushie name = "operative plushie" desc = "A stuffed toy that resembles a syndicate nuclear operative. The tag claims operatives to be purely fictitious." icon_state = "plushie_nuke" - item_state = "plushie_nuke" attack_verb = list("shot", "nuked", "detonated") squeak_override = list('sound/effects/hit_punch.ogg' = 1) @@ -631,7 +628,6 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) name = "slime plushie" desc = "An adorable stuffed toy that resembles a slime. It is practically just a hacky sack." icon_state = "plushie_slime" - item_state = "plushie_slime" attack_verb = list("blorbled", "slimed", "absorbed", "glomped") squeak_override = list('sound/effects/blobattack.ogg' = 1) gender = FEMALE //given all the jokes and drawings, I'm not sure the xenobiologists would make a slimeboy @@ -640,7 +636,6 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) name = "awakened plushie" desc = "An ancient plushie that has grown enlightened to the true nature of reality." icon_state = "plushie_awake" - item_state = "plushie_awake" can_random_spawn = FALSE /obj/item/toy/plush/awakenedplushie/ComponentInitialize() @@ -651,7 +646,6 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) name = "bee plushie" desc = "A cute toy that resembles an even cuter bee." icon_state = "plushie_bee" - item_state = "plushie_bee" attack_verb = list("stung") gender = FEMALE squeak_override = list('modular_citadel/sound/voice/scream_moth.ogg' = 1) @@ -660,7 +654,6 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) name = "moth plushie" desc = "An adorable stuffed toy that resembles some kind of insect." icon_state = "moff" - item_state = "moff" squeak_override = list('modular_citadel/sound/voice/mothsqueak.ogg' = 1) can_random_spawn = FALSE @@ -668,7 +661,6 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) name = "lamp plushie" desc = "A toy lamp plushie, doesn't actually make light, but it still toggles on and off. Click clack!" icon_state = "plushie_lamp" - item_state = "plushie_lamp" attack_verb = list("lit", "flickered", "flashed") squeak_override = list('sound/weapons/magout.ogg' = 1) @@ -676,72 +668,61 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) name = "drake plushie" desc = "A large beast from lavaland turned into a marketable plushie!" icon_state = "drake" - item_state = "drake" attack_verb = list("bit", "devoured", "burned") /obj/item/toy/plush/deer name = "deer plushie" desc = "Oh deer, a plushie!" icon_state = "deer" - item_state = "deer" attack_verb = list("bleated", "rammed", "kicked") /obj/item/toy/plush/box name = "cardboard plushie" desc = "A toy box plushie, it holds cotten. Only a baddie would place a bomb through the postal system..." icon_state = "box" - item_state = "box" attack_verb = list("open", "closed", "packed", "hidden", "rigged", "bombed", "sent", "gave") /obj/item/toy/plush/slaggy name = "slag plushie" desc = "A piece of slag with some googly eyes and a drawn on mouth." icon_state = "slaggy" - item_state = "slaggy" attack_verb = list("melted", "refined", "stared") /obj/item/toy/plush/mr_buckety name = "bucket plushie" desc = "A bucket that is missing its handle with some googly eyes and a drawn on mouth." icon_state = "mr_buckety" - item_state = "mr_buckety" attack_verb = list("filled", "dumped", "stared") /obj/item/toy/plush/dr_scanny name = "scanner plushie" desc = "A old outdated scanner that has been modified to have googly eyes, a dawn on mouth and, heart." icon_state = "dr_scanny" - item_state = "dr_scanny" attack_verb = list("scanned", "beeped", "stared") /obj/item/toy/plush/borgplushie name = "K9 plushie" desc = "An adorable stuffed toy of a robot." icon_state = "securityk9" - item_state = "securityk9" attack_verb = list("beeped", "booped", "pinged") squeak_override = list('sound/machines/beep.ogg' = 1) /obj/item/toy/plush/borgplushie/medihound name = "medihound plushie" icon_state = "medihound" - item_state = "medihound" /obj/item/toy/plush/borgplushie/scrubpuppy name = "scrubpuppy plushie" icon_state = "scrubpuppy" - item_state = "scrubpuppy" /obj/item/toy/plush/borgplushie/pupdozer name = "pupdozer plushie" icon_state = "pupdozer" - item_state = "pupdozer" /obj/item/toy/plush/aiplush name = "AI plushie" desc = "A little stuffed toy AI core... it appears to be malfunctioning." icon_state = "malfai" - item_state = "malfai" attack_verb = list("hacked", "detonated", "overloaded") squeak_override = list('sound/machines/beep.ogg' = 9, 'sound/machines/buzz-two.ogg' = 1) @@ -749,7 +730,6 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) name = "snake plushie" desc = "An adorable stuffed toy that resembles a snake. Not to be mistaken for the real thing." icon_state = "plushie_snake" - item_state = "plushie_snake" attack_verb = list("bitten", "hissed", "tail slapped") squeak_override = list('modular_citadel/sound/voice/hiss.ogg' = 1) @@ -757,20 +737,17 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) name = "mammal plushie" desc = "An adorable stuffed toy resembling some sort of crew member." icon_state = "ych" - item_state = "ych" can_random_spawn = FALSE /obj/item/toy/plush/mammal/fox name = "fox plushie" desc = "An adorable stuffed toy resembling a fox." icon_state = "fox" - item_state = "fox" attack_verb = list("yipped", "geckered", "yapped") /obj/item/toy/plush/mammal/dog name = "dog plushie" icon_state = "corgi" - item_state = "corgi" desc = "An adorable stuffed toy that resembles a dog." attack_verb = list("barked", "boofed", "borked") squeak_override = list( @@ -781,20 +758,17 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) /obj/item/toy/plush/mammal/dog/fcorgi name = "corgi plushie" icon_state = "girlycorgi" - item_state = "girlycorgi" desc = "An adorable stuffed toy that resembles a dog. This one dons a pink ribbon." /obj/item/toy/plush/mammal/dog/borgi name = "borgi plushie" icon_state = "borgi" - item_state = "borgi" desc = "An adorable stuffed toy that resembles a robot dog." /obj/item/toy/plush/xeno name = "xenohybrid plushie" desc = "An adorable stuffed toy that resembles a xenomorphic crewmember." icon_state = "xeno" - item_state = "xeno" squeak_override = list('sound/voice/hiss2.ogg' = 1) can_random_spawn = FALSE @@ -802,7 +776,6 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) name = "bird plushie" desc = "An adorable stuffed plushie that resembles an avian." icon_state = "bird" - item_state = "bird" attack_verb = list("peeped", "beeped", "poofed") squeak_override = list('modular_citadel/sound/voice/peep.ogg' = 1) can_random_spawn = FALSE @@ -811,7 +784,6 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) name = "sergal plushie" desc = "An adorable stuffed plushie that resembles a sagaru." icon_state = "sergal" - item_state = "sergal" squeak_override = list('modular_citadel/sound/voice/merp.ogg' = 1) can_random_spawn = FALSE @@ -819,7 +791,6 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) name = "feline plushie" desc = "An adorable stuffed toy that resembles a feline." icon_state = "cat" - item_state = "cat" attack_verb = list("headbutt", "scritched", "bit") squeak_override = list('modular_citadel/sound/voice/nya.ogg' = 1) can_random_spawn = FALSE @@ -828,7 +799,6 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) name = "medcat plushie" desc = "An affectionate stuffed toy that resembles a certain medcat, comes complete with battery operated wagging tail!! You get the impression she's cheering you on to to find happiness and be kind to people." icon_state = "fermis" - item_state = "fermis" attack_verb = list("cuddled", "petpatted", "wigglepurred") squeak_override = list('modular_citadel/sound/voice/merowr.ogg' = 1) @@ -836,20 +806,17 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) name = "teddy" desc = "It's a teddy bear!" icon_state = "teddy" - item_state = "teddy" /obj/item/toy/plush/crab name = "crab plushie" desc = "Fewer pinches than a real one, but it still clicks." icon_state = "crab" - item_state = "crab" attack_verb = list("clicked", "clacked", "pinched") /obj/item/toy/plush/gondola name = "gondola plushie" desc = "Just looking at it seems to calm you down. Please do not eat it though." icon_state = "gondola" - item_state = "gondola" attack_verb = list("calmed", "smiled", "peaced") /obj/item/toy/plush/hairball diff --git a/code/game/objects/structures/beds_chairs/alien_nest.dm b/code/game/objects/structures/beds_chairs/alien_nest.dm index 77b3279517..eff87d3955 100644 --- a/code/game/objects/structures/beds_chairs/alien_nest.dm +++ b/code/game/objects/structures/beds_chairs/alien_nest.dm @@ -34,7 +34,7 @@ "[M.name] struggles to break free from the gelatinous resin!",\ "You struggle to break free from the gelatinous resin... (Stay still for two minutes.)",\ "You hear squelching...") - if(!do_after(M, 1200, target = src)) + if(!do_after(M, 2 MINUTES, target = src, timed_action_flags = (IGNORE_HELD_ITEM | IGNORE_INCAPACITATED), extra_checks = CALLBACK(M, TYPE_PROC_REF(/mob/living/carbon, cuff_resist_check)))) if(M && M.buckled) to_chat(M, "You fail to unbuckle yourself!") return @@ -48,8 +48,8 @@ unbuckle_mob(M) add_fingerprint(user) -/obj/structure/bed/nest/user_buckle_mob(mob/living/M, mob/living/user) - if ( !ismob(M) || (get_dist(src, user) > 1) || (M.loc != src.loc) || user.incapacitated() || M.buckled ) +/obj/structure/bed/nest/user_buckle_mob(mob/living/M, mob/living/carbon/user) + if ( !ismob(M) || (get_dist(src, user) > 1) || (M.loc != src.loc) || !user.cuff_resist_check() || M.buckled ) return if(M.getorgan(/obj/item/organ/alien/plasmavessel)) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 404ca1df8d..419a75eff2 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -267,7 +267,7 @@ MarkResistTime() visible_message("[src] attempts to unbuckle [p_them()]self!", \ "You attempt to unbuckle yourself... (This will take around [round(buckle_cd/600,1)] minute\s, and you need to stay still.)") - if(do_after(src, buckle_cd, src, timed_action_flags = IGNORE_HELD_ITEM)) + if(do_after(src, buckle_cd, src, timed_action_flags = IGNORE_HELD_ITEM | IGNORE_INCAPACITATED, extra_checks = CALLBACK(src, .proc/cuff_resist_check))) if(!buckled) return buckled.user_unbuckle_mob(src, src) diff --git a/icons/mob/inhands/misc/plushes_lefthand.dmi b/icons/mob/inhands/misc/plushes_lefthand.dmi new file mode 100644 index 0000000000..1a12cece7d Binary files /dev/null and b/icons/mob/inhands/misc/plushes_lefthand.dmi differ diff --git a/icons/mob/inhands/misc/plushes_righthand.dmi b/icons/mob/inhands/misc/plushes_righthand.dmi new file mode 100644 index 0000000000..fab9101eb6 Binary files /dev/null and b/icons/mob/inhands/misc/plushes_righthand.dmi differ diff --git a/icons/obj/plushes.dmi b/icons/obj/plushes.dmi index 69cec1a6fd..aea6a40e86 100644 Binary files a/icons/obj/plushes.dmi and b/icons/obj/plushes.dmi differ diff --git a/modular_citadel/code/modules/custom_loadout/custom_items.dm b/modular_citadel/code/modules/custom_loadout/custom_items.dm index ec97d0659f..906da43448 100644 --- a/modular_citadel/code/modules/custom_loadout/custom_items.dm +++ b/modular_citadel/code/modules/custom_loadout/custom_items.dm @@ -113,7 +113,6 @@ desc = "While a normal carrot would be good for your eyes, this one seems a bit more for hugging then eating." icon = 'icons/obj/hydroponics/harvest.dmi' icon_state = "carrot" - item_state = "carrot" w_class = WEIGHT_CLASS_SMALL attack_verb = list("slapped") resistance_flags = FLAMMABLE @@ -146,7 +145,6 @@ desc = "A festive plush that squeeks when you squeeze it!" icon = 'icons/obj/custom.dmi' icon_state = "pine_c" - item_state = "pine_c" w_class = WEIGHT_CLASS_SMALL attack_verb = list("slapped") resistance_flags = FLAMMABLE @@ -547,7 +545,6 @@ /obj/item/toy/plush/mammal/dog/fritz icon = 'icons/obj/custom.dmi' icon_state = "fritz" - item_state = "fritz" attack_verb = list("barked", "boofed", "shotgun'd") obj_flags = UNIQUE_RENAME unique_reskin = list(