From f5ab9b3e8cdc812673906b506ae4ae86fddb80e4 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 2 Jul 2021 00:57:53 +0000 Subject: [PATCH 01/55] Automatic changelog compile [ci skip] --- html/changelog.html | 49 +++------------------- html/changelogs/.all_changelog.yml | 3 ++ html/changelogs/AutoChangeLog-pr-14903.yml | 4 -- 3 files changed, 9 insertions(+), 47 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-14903.yml diff --git a/html/changelog.html b/html/changelog.html index bf12874937..78d0f7e129 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,12 @@ -->
+

02 July 2021

+

silicons updated:

+ +

30 June 2021

WanderingFox95 updated:

GoonStation 13 Development Team diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 82e2f373c8..5ce5f2a8be 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -29606,3 +29606,6 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. Make sure to try and recover it. - rscadd: Adds an extremely expensive survival pod to mining for people to work towards. Get to work cracking rocks today. +2021-07-02: + silicons: + - bugfix: spray bottles work again. diff --git a/html/changelogs/AutoChangeLog-pr-14903.yml b/html/changelogs/AutoChangeLog-pr-14903.yml deleted file mode 100644 index 4e7b6bfa63..0000000000 --- a/html/changelogs/AutoChangeLog-pr-14903.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "silicons" -delete-after: True -changes: - - bugfix: "spray bottles work again." From b0d68d5dd5657117ee9c4bd3ca39185221633ee2 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 3 Jul 2021 00:57:05 +0000 Subject: [PATCH 02/55] Automatic changelog compile [ci skip] --- html/changelog.html | 6 ------ 1 file changed, 6 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 78d0f7e129..db8a51cb27 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -600,12 +600,6 @@
  • Box Surgery Storage camera is now renamed to be on the network
  • Box Paramedic Station camera is now renamed to be on the network, and no longer steals the Morgue's cam tweak: Box Surgery Storage is now it's own proper room
  • - -

    01 May 2021

    -

    qweq12yt updated:

    - GoonStation 13 Development Team From f8f6dcae147a8b112a710fdcec91359b8dece4f9 Mon Sep 17 00:00:00 2001 From: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Sat, 3 Jul 2021 22:17:06 +0200 Subject: [PATCH 03/55] Add files via upload --- code/modules/events/cat_surgeon.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/events/cat_surgeon.dm b/code/modules/events/cat_surgeon.dm index ebcd55d8aa..2d5651b9b1 100644 --- a/code/modules/events/cat_surgeon.dm +++ b/code/modules/events/cat_surgeon.dm @@ -5,7 +5,7 @@ weight = 8 /datum/round_event/cat_surgeon/announce(fake) - priority_announce("One of our... ahem... 'special' cases has escaped. Our sensors now show their tracker implant on your station. On an unrelated note, has anyone seen our cats?", + priority_announce("One of our... ahem... 'special' cases has escaped. As it happens their last known location before their tracker went dead is your station so keep an eye out for them. On an unrelated note, has anyone seen our cats?", sender_override = "Nanotrasen Psych Ward") /datum/round_event/cat_surgeon/start() From 190fcaffa90084d9ece8e0485157490a18669534 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 5 Jul 2021 00:57:35 +0000 Subject: [PATCH 04/55] Automatic changelog compile [ci skip] --- html/changelog.html | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index db8a51cb27..056aa793eb 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -589,17 +589,6 @@
  • Nightmare Shadow Jaunt threshold up to 0.4
  • Vendor and Engraved message light down to 0.3
  • - -

    03 May 2021

    -

    TripleShades updated:

    -
      -
    • Added two air alarms to Pubby Security, one in the evidence locker room and one in the main equipment back room
    • -
    • pAI Card back to outside Research in Meta Station
    • -
    • Pubby Disposals now shunts to space
    • -
    • Maintinence Areas being not applied to certain airlocks as well as stealing minor walls
    • -
    • Box Surgery Storage camera is now renamed to be on the network
    • -
    • Box Paramedic Station camera is now renamed to be on the network, and no longer steals the Morgue's cam tweak: Box Surgery Storage is now it's own proper room
    • -
    GoonStation 13 Development Team From 35a5bf63a2d356f10c25264a3dfec036cbed16fe Mon Sep 17 00:00:00 2001 From: YakumoChen Date: Mon, 5 Jul 2021 04:52:34 +0000 Subject: [PATCH 05/55] head sprite --- icons/mob/clothing/head.dmi | Bin 233232 -> 233481 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi index 806f378323ae7d0e9e1732e70912b26bd328e6bd..3a768c4f05612877f088e9c0c71d7c19a282a960 100644 GIT binary patch delta 16799 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 delta 16549 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 G5&sMGgk^>R From 443dadff8bd9f1140e5cbfed6024dfe8f63aec61 Mon Sep 17 00:00:00 2001 From: YakumoChen Date: Mon, 5 Jul 2021 04:55:31 +0000 Subject: [PATCH 06/55] hat sprite --- icons/obj/clothing/hats.dmi | Bin 112982 -> 113198 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index e5bd686603a3a646bdef62ae16564e42c560f786..1d128c5f51bb266f7d7de1e453209fdf6fec5746 100644 GIT binary patch delta 15908 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 wqSU}H$m#qN+2vLu5O#~h z@`LO2H691y-;RFLTzXTQRrYpJQjx%pr>0CexZ6zYT{0;3~w zpwg4-w`bdN5c~b0)B6p~a%=_Zmu6;zo20t0YWwPy(v>l0rex|$|6*Kzz)F{h+zN=4 zDo_>+2+mm=`A2kW;t-1^BGFQplha605sG|9P|zn*Q@?syBf}AacI=L$F)5K;i2m;X zs{z)(-gFw&T0OBH69s_S8%a1xz+bA_uUtK>nJkp&Sn@(CR54ZizmF^N{d=yUhfo5gdE*6$)?h=-9P zX#NcuFnq<@e2)13-GorFjL(`X)0u@AZh>20%zJ1&8YPaqtNH%xfUh`sWG7nIJ z3LC1Wrm-N}86<Yw@A+VOZ7NDi70#M%Blvq@069m|F%lOgFs83jg1H_AQB zPeEb9=Q2aGB6KebbzzeeF4MUA>qQj|f0Ztepjj|v0c*zmt*YD9>wZWX{w%gfG|J&9 z*bmVCcGl0QSDaG2I@OR3=6{Ir@NVr|+*Wl6I0aJ&_xTa#@747Gfd(i@pxT08Nt2Q? zOezNlj`x>S8S!#QwLtxZ_#8+)lD~qlA?+DWrp#d-{1ky#2vD!P0hp7LT9vOYEsU-$vexqy0Q?xz~ zq}E7H11||qavRJi9{d$Gq%X(3b{uhOTetPw&CvPnYMTzr^_Amax7U?)F^jBH*ov{9~MC=TXADglM&Ng&V pX#MjWsF%pJ(Enbo|Mxf1il=s#l1~FZVgTr)bx&8VRK+Uve*sm|FO2{I delta 15691 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

    6IEL43O(pq!dXdEUeWRaMl+Q7Hk= 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 Av;Y7A From 2d8ba411a4102be950e43f973977d6fe04f232d8 Mon Sep 17 00:00:00 2001 From: YakumoChen Date: Mon, 5 Jul 2021 04:57:14 +0000 Subject: [PATCH 07/55] human leather hat --- code/modules/clothing/head/misc.dm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 124ece8fdc..146832693b 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -482,3 +482,9 @@ icon_state = "kabuto" item_state = "kabuto" flags_inv = HIDEHAIR|HIDEEARS + +/obj/item/clothing/head/human_leather + name = "human skin hat" + desc = "This will scare them. All will know my power." + icon_state = "human_leather" + inhand_icon_state = "human_leather" From 42fed8a8fe9c27d972c5e1ce751fb0408b9068f3 Mon Sep 17 00:00:00 2001 From: YakumoChen Date: Mon, 5 Jul 2021 04:58:52 +0000 Subject: [PATCH 08/55] craftable human hats --- code/game/objects/items/stacks/sheets/leather.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/items/stacks/sheets/leather.dm b/code/game/objects/items/stacks/sheets/leather.dm index f655e831d8..eeb673a0c7 100644 --- a/code/game/objects/items/stacks/sheets/leather.dm +++ b/code/game/objects/items/stacks/sheets/leather.dm @@ -13,6 +13,7 @@ GLOBAL_LIST_INIT(human_recipes, list( \ new/datum/stack_recipe("bloated human costume", /obj/item/clothing/suit/hooded/bloated_human, 5), \ + new/datum/stack_recipe("human skin hat", /obj/item/clothing/head/human_leather, 1), \ )) /obj/item/stack/sheet/animalhide/human/get_main_recipes() From bff3c840c037b5c51d0dcfa49dc216034ce712fb Mon Sep 17 00:00:00 2001 From: YakumoChen Date: Mon, 5 Jul 2021 05:04:18 +0000 Subject: [PATCH 09/55] human skin hats --- code/modules/clothing/head/misc.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 146832693b..fd181779f1 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -487,4 +487,4 @@ name = "human skin hat" desc = "This will scare them. All will know my power." icon_state = "human_leather" - inhand_icon_state = "human_leather" + item_state = "human_leather" From 7bae5960280c20ee188b172d2204ca597e81953a Mon Sep 17 00:00:00 2001 From: YakumoChen Date: Mon, 5 Jul 2021 11:03:52 +0000 Subject: [PATCH 10/55] I made a hat that screams! --- icons/obj/clothing/hats.dmi | Bin 113198 -> 113229 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 1d128c5f51bb266f7d7de1e453209fdf6fec5746..cba7526651ccd50adc1adc248004555851f6da90 100644 GIT binary patch delta 15737 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 delta 15687 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

    !iAUN_Yz{SH+gKUM@hg4& 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 z zf@Ba_bYcWw{WD)vGal;%$wB>*DD$5eR&jFN(abnfY2r@g5s{G%GB0wIkQnf}^q`C| z?aKmf*yM!MGF=u20pZ19=}K+&o)47q^w|{7%8-fqhgaf5LwXaMXz*lVE=GA znGPp=R6{o|HVcxD_;BD2q*$7SpBkPlkiY8g?n)=MA(^!V1!hMNO%loeYE+;~`g5@s zpv-oF76-8I{D7Y#4-J4`&YwDrgvr)nJV^Dw6v^OAbqygP^&3?)o}}@)Ke<|B8hDL& zl3i~)@#wFtA$>XKB2}26YT9_|TUTUQ8R~Y3@5ur!A_idLV6p9cI^mt&i(!r_uoS92 zwZ2o|j+6WV_`DHnG){N;g&Z0T9t-V>BX!lDc5vhhwh*+=iA}uP2KM6rRi%ZZhQGiG z=D$b_^waAn-8pLsNOG)Us=pWmbGZGGz+Yw2#rVe%vC!IoZo>GF5hBz0=O@rj!c#PZ j|Ho?mA6NfZ7g6%3Hs<2b{XU}s=%w*MTct$FBKW@nq#wA` From 552d5e3c0b33841a79cdbe6862ade70a883d8ee1 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 7 Jul 2021 01:01:09 +0000 Subject: [PATCH 11/55] Automatic changelog compile [ci skip] --- html/changelog.html | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 998af50e93..86e0e58c7f 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -610,21 +610,6 @@

    • lets humans have digi legs (and avian legs)
    - -

    05 May 2021

    -

    The0bserver, with a great amount of advice from TripleZeta/TetraZeta updated:

    -
      -
    • Adds a new crate type, for use with any manner of cheeky breeki shenanigans, as well as with existing Russian contraband.
    • -
    -

    bunny232 updated:

    -
      -
    • There's some new vents and scrubbers in the meta station xenobiology department. Welders and wrenches not included*
    • -
    -

    keronshb updated:

    -
      -
    • Nightmare Shadow Jaunt threshold up to 0.4
    • -
    • Vendor and Engraved message light down to 0.3
    • -
    GoonStation 13 Development Team From fc153b04d34cdbb3845abdc5fdfa47cd8bd3f54f Mon Sep 17 00:00:00 2001 From: keronshb Date: Tue, 6 Jul 2021 22:47:02 -0400 Subject: [PATCH 12/55] breaking a mirror is bad for your health (#58381) --- code/game/objects/structures/mirror.dm | 34 ++++++++++++++++++++------ 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index 32040b8573..11186ae4b7 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -48,14 +48,34 @@ return // no message spam ..() +/obj/structure/mirror/attacked_by(obj/item/I, mob/living/user) + if(broken || !istype(user) || !I.force) + return ..() + + . = ..() + if(broken) // breaking a mirror truly gets you bad luck! + to_chat(user, "A chill runs down your spine as [src] shatters...") + user.AddComponent(/datum/component/omen, silent=TRUE) // we have our own message + +/obj/structure/mirror/bullet_act(obj/projectile/P) + if(broken || !isliving(P.firer) || !P.damage) + return ..() + + . = ..() + if(broken) // breaking a mirror truly gets you bad luck! + var/mob/living/unlucky_dude = P.firer + to_chat(unlucky_dude, "A chill runs down your spine as [src] shatters...") + unlucky_dude.AddComponent(/datum/component/omen, silent=TRUE) // we have our own message + /obj/structure/mirror/obj_break(damage_flag, mapload) - if(!broken && !(flags_1 & NODECONSTRUCT_1)) - icon_state = "mirror_broke" - if(!mapload) - playsound(src, "shatter", 70, 1) - if(desc == initial(desc)) - desc = "Oh no, seven years of bad luck!" - broken = TRUE + if(broken || (flags_1 & NODECONSTRUCT_1)) + return + icon_state = "mirror_broke" + if(!mapload) + playsound(src, "shatter", 70, TRUE) + if(desc == initial(desc)) + desc = "Oh no, seven years of bad luck!" + broken = TRUE /obj/structure/mirror/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) From c92952c3b007829f9f1c1676b1266e650bf16aaa Mon Sep 17 00:00:00 2001 From: keronshb Date: Tue, 6 Jul 2021 22:57:31 -0400 Subject: [PATCH 13/55] Cit changes for bullet path --- code/game/objects/structures/mirror.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index 11186ae4b7..a70d9d4678 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -57,7 +57,7 @@ to_chat(user, "A chill runs down your spine as [src] shatters...") user.AddComponent(/datum/component/omen, silent=TRUE) // we have our own message -/obj/structure/mirror/bullet_act(obj/projectile/P) +/obj/structure/mirror/bullet_act(obj/item/projectile/P) if(broken || !isliving(P.firer) || !P.damage) return ..() From c7d1c9d8e8bf343e2f802316f8267491d65ed1d7 Mon Sep 17 00:00:00 2001 From: keronshb Date: Wed, 7 Jul 2021 21:12:44 -0400 Subject: [PATCH 14/55] Ports Stripping log when dc'd --- code/__DEFINES/inventory.dm | 12 ++++++++ code/__HELPERS/_lists.dm | 2 ++ .../mob/living/carbon/human/human_defines.dm | 3 ++ code/modules/mob/living/carbon/human/login.dm | 30 +++++++++++++++++++ code/modules/mob/living/living.dm | 13 ++++++++ 5 files changed, 60 insertions(+) diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm index 649e0a029b..7b727fcc5a 100644 --- a/code/__DEFINES/inventory.dm +++ b/code/__DEFINES/inventory.dm @@ -159,6 +159,18 @@ #define TINT_DARKENED 2 //Threshold of tint level to apply weld mask overlay #define TINT_BLIND 3 //Threshold of tint level to obscure vision fully +// defines for AFK theft +/// How many messages you can remember while logged out before you stop remembering new ones +#define AFK_THEFT_MAX_MESSAGES 10 +/// If someone logs back in and there are entries older than this, just tell them they can't remember who it was or when +#define AFK_THEFT_FORGET_DETAILS_TIME 5 MINUTES +/// The index of the entry in 'afk_thefts' with the person's visible name at the time +#define AFK_THEFT_NAME 1 +/// The index of the entry in 'afk_thefts' with the text +#define AFK_THEFT_MESSAGE 2 +/// The index of the entry in 'afk_thefts' with the time it happened +#define AFK_THEFT_TIME 3 + //Allowed equipment lists for security vests and hardsuits. GLOBAL_LIST_INIT(advanced_hardsuit_allowed, typecacheof(list( diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 7e2abebcf9..2d0601d839 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -19,6 +19,8 @@ #define LAZYACCESS(L, I) (L ? (isnum(I) ? (I > 0 && I <= length(L) ? L[I] : null) : L[I]) : null) #define LAZYSET(L, K, V) if(!L) { L = list(); } L[K] = V; #define LAZYLEN(L) length(L) +//Sets a list to null +#define LAZYNULL(L) L = null #define LAZYCLEARLIST(L) if(L) L.Cut() #define SANITIZE_LIST(L) ( islist(L) ? L : list() ) #define reverseList(L) reverseRange(L.Copy()) diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 6f1fe57df3..50d4402041 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -52,6 +52,9 @@ var/obj/item/l_store = null var/obj/item/s_store = null + /// When an braindead player has their equipment fiddled with, we log that info here for when they come back so they know who took their ID while they were DC'd for 30 seconds + var/list/afk_thefts + var/special_voice = "" // For changing our voice. Used by a symptom. var/bleedsuppress = 0 //for stopping bloodloss, eventually this will be limb-based like bleeding diff --git a/code/modules/mob/living/carbon/human/login.dm b/code/modules/mob/living/carbon/human/login.dm index a89921143a..ebf76eeafa 100644 --- a/code/modules/mob/living/carbon/human/login.dm +++ b/code/modules/mob/living/carbon/human/login.dm @@ -2,3 +2,33 @@ ..() if(dna?.species?.has_field_of_vision && CONFIG_GET(flag/use_field_of_vision)) LoadComponent(/datum/component/field_of_vision, field_of_vision_type) + + if(!LAZYLEN(afk_thefts)) + return + + var/list/print_msg = list() + print_msg += "*---------*" + print_msg += "As you snap back to consciousness, you recall people messing with your stuff..." + + afk_thefts = reverseRange(afk_thefts) + + for(var/list/iter_theft as anything in afk_thefts) + if(!islist(iter_theft) || LAZYLEN(iter_theft) != AFK_THEFT_TIME) + stack_trace("[src] ([ckey]) returned to their body and had a null/malformed afk_theft entry. Contents: [json_encode(iter_theft)]") + continue + + var/thief_name = iter_theft[AFK_THEFT_NAME] + var/theft_message = iter_theft[AFK_THEFT_MESSAGE] + var/time_since = world.time - iter_theft[AFK_THEFT_TIME] + + if(time_since > AFK_THEFT_FORGET_DETAILS_TIME) + print_msg += "\tSomeone [theft_message], but it was at least [DisplayTimeText(AFK_THEFT_FORGET_DETAILS_TIME)] ago." + else + print_msg += "\t[thief_name] [theft_message] roughly [DisplayTimeText(time_since, 10)] ago." + + if(LAZYLEN(afk_thefts) >= AFK_THEFT_MAX_MESSAGES) + print_msg += "There may have been more, but that's all you can remember..." + print_msg += "*---------*" + + to_chat(src, print_msg.Join("\n")) + LAZYNULL(afk_thefts) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index b0d340eed0..a3e6b28fd6 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -911,6 +911,12 @@ "[src] tries to remove your [what.name].", target = src, target_message = "You try to remove [who]'s [what.name].") what.add_fingerprint(src) + if(ishuman(who)) + var/mob/living/carbon/human/victim_human = who + if(victim_human.key && !victim_human.client) // AKA braindead + if(victim_human.stat <= SOFT_CRIT && LAZYLEN(victim_human.afk_thefts) <= AFK_THEFT_MAX_MESSAGES) + var/list/new_entry = list(list(src.name, "tried unequipping your [what]", world.time)) + LAZYADD(victim_human.afk_thefts, new_entry) else to_chat(src,"You try to remove [who]'s [what.name].") what.add_fingerprint(src) @@ -957,6 +963,13 @@ to_chat(src, "\The [what.name] doesn't fit in that place!") return + if(ishuman(who)) + var/mob/living/carbon/human/victim_human = who + if(victim_human.key && !victim_human.client) // AKA braindead + if(victim_human.stat <= SOFT_CRIT && LAZYLEN(victim_human.afk_thefts) <= AFK_THEFT_MAX_MESSAGES) + var/list/new_entry = list(list(src.name, "tried equipping you with [what]", world.time)) + LAZYADD(victim_human.afk_thefts, new_entry) + who.visible_message("[src] tries to put [what] on [who].", "[src] tries to put [what] on you.", target = src, target_message = "You try to put [what] on [who].") From 1e7d6a4036240e0216c4b88435a727719e2725de Mon Sep 17 00:00:00 2001 From: YakumoChen Date: Thu, 8 Jul 2021 02:49:43 +0000 Subject: [PATCH 15/55] I made a head sprite that screams! --- icons/mob/clothing/head.dmi | Bin 233481 -> 233611 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi index 3a768c4f05612877f088e9c0c71d7c19a282a960..51675c8d7da5933e78f205e6feb645e83f35db00 100644 GIT binary patch delta 16897 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 delta 16766 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 eA^!jCbIs7G@RwMvek)`BeKQlw%N0hq9{e9SG2 Date: Thu, 8 Jul 2021 02:52:35 +0000 Subject: [PATCH 16/55] new screaming hat sprite by Kyronism --- icons/obj/clothing/hats.dmi | Bin 113229 -> 113301 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index cba7526651ccd50adc1adc248004555851f6da90..854928f2caca6f37a9fe82ec561a1ad96fa7f804 100644 GIT binary patch delta 15961 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 DEE?21 delta 15889 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 Date: Sat, 10 Jul 2021 00:58:04 +0000 Subject: [PATCH 17/55] Automatic changelog compile [ci skip] --- html/changelog.html | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 86e0e58c7f..e8ea59ef01 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -600,16 +600,6 @@
  • pirates now have a medbay and several other things qualifying as a buff
  • pirates lost their toilet
  • - -

    08 May 2021

    -

    Arturlang updated:

    -
      -
    • Synthblood bottles now have the proper color and probably won't poison you anymore
    • -
    -

    timothyteakettle updated:

    -
      -
    • lets humans have digi legs (and avian legs)
    • -
    GoonStation 13 Development Team From d267cedac2198e17f9a7461fb95142393821e9de Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 11 Jul 2021 01:04:18 +0000 Subject: [PATCH 18/55] Automatic changelog compile [ci skip] --- html/changelog.html | 32 -------------------------------- 1 file changed, 32 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index e8ea59ef01..1544841cb7 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -568,38 +568,6 @@
    • Delta station xenobiology department has received enhanced scrubbing and ventilation capabilities similar to box and meta
    - -

    09 May 2021

    -

    Putnam3145 updated:

    -
      -
    • Priority announcement admeme verb
    • -
    -

    SandPoot updated:

    -
      -
    • Fixed Cyborg examines adding an extra weird line.
    • -
    • Everything can be set to have tooltips, and even coded to have neat tooltips.
    • -
    • Makes it so humans and borgs already have tooltips.
    • -
    -

    TheObserver-sys updated:

    -
      -
    • Fixes most of the weird handling bugs and improves cigarette case handling in general.
    • -
    • The Gorlex Marauders have seen fit to allow you to purchase the .45-70 GOVT rare ammo, at a premium cost. Don't waste it.
    • -
    -

    WanderingFox95 updated:

    -
      -
    • added the unrolling pin, an innovative solution to dough-based mishaps.
    • -
    • added visuals for the unrolling pin
    • -
    -

    dzahlus updated:

    -
      -
    • added new malf AI spawn and doomsday sound
    • -
    • removed old malf AI spawn and doomsday sound
    • -
    -

    zeroisthebiggay updated:

    -
      -
    • pirates now have a medbay and several other things qualifying as a buff
    • -
    • pirates lost their toilet
    • -
    GoonStation 13 Development Team From dcbecbaee6b3e4b18911604d4203a2f275b4cc82 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 13 Jul 2021 01:01:15 +0000 Subject: [PATCH 19/55] Automatic changelog compile [ci skip] --- html/changelog.html | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 1544841cb7..87aa03e32c 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -557,17 +557,6 @@
  • find_safe_turf no longer always fails on safe oxygen levels(??)
  • Heretic bladeshatters now actually take the heretic's z into account as intended, instead of always being station z tweak: Message for failing the bladeshatter despite succeeding the do_after tweak: Improves bladeshatter a bit by making it safer codewise
  • - -

    11 May 2021

    -

    LetterN updated:

    -
      -
    • fixes emagging console shuttle purchases
    • -
    • syndie melee simplemobs has no more bullshit shield
    • -
    -

    bunny232 updated:

    -
      -
    • Delta station xenobiology department has received enhanced scrubbing and ventilation capabilities similar to box and meta
    • -
    GoonStation 13 Development Team From 39c09a60b8b830139d9476a56edce6e8603b4a05 Mon Sep 17 00:00:00 2001 From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Tue, 13 Jul 2021 23:45:31 +0100 Subject: [PATCH 20/55] initial commit --- code/__DEFINES/citadel_defines.dm | 1 + code/__DEFINES/traits.dm | 1 + code/datums/traits/neutral.dm | 8 ++++++++ code/game/objects/items/trash.dm | 12 +++++++++++- code/modules/client/preferences.dm | 4 ++++ 5 files changed, 25 insertions(+), 1 deletion(-) diff --git a/code/__DEFINES/citadel_defines.dm b/code/__DEFINES/citadel_defines.dm index 541b50e9bd..04eeb515c9 100644 --- a/code/__DEFINES/citadel_defines.dm +++ b/code/__DEFINES/citadel_defines.dm @@ -101,6 +101,7 @@ #define NO_AUTO_WAG (1<<12) #define GENITAL_EXAMINE (1<<13) #define VORE_EXAMINE (1<<14) +#define TRASH_FORCEFEED (1<<15) #define TOGGLES_CITADEL 0 //belly sound pref things diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 3082856ccf..eb9bdccc22 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -221,6 +221,7 @@ #define TRAIT_LIVING_NO_DENSITY "living_no_density" /// forces us to not render our overlays #define TRAIT_HUMAN_NO_RENDER "human_no_render" +#define TRAIT_TRASHCAN "trashcan" // mobility flag traits // IN THE FUTURE, IT WOULD BE NICE TO DO SOMETHING SIMILAR TO https://github.com/tgstation/tgstation/pull/48923/files (ofcourse not nearly the same because I have my.. thoughts on it) diff --git a/code/datums/traits/neutral.dm b/code/datums/traits/neutral.dm index 18d565ed5a..2f0667d942 100644 --- a/code/datums/traits/neutral.dm +++ b/code/datums/traits/neutral.dm @@ -154,3 +154,11 @@ /datum/quirk/longtimer/on_spawn() var/mob/living/carbon/C = quirk_holder C.generate_fake_scars(rand(min_scars, max_scars)) + +/datum/quirk/trashcan + name = "Trashcan" + desc = "You are able to consume and digest trash." + value = 0 + gain_text = "You feel like munching on a can of soda." + lose_text = "You no longer feel like you should be eating trash." + mob_trait = TRAIT_TRASHCAN diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm index 2109d1038e..0f0416bb3c 100644 --- a/code/game/objects/items/trash.dm +++ b/code/game/objects/items/trash.dm @@ -82,4 +82,14 @@ grind_results = list(/datum/reagent/aluminium = 1) //from the mylar bag /obj/item/trash/attack(mob/M, mob/living/user) - return + if((M == user || user.vore_flags & TRASH_FORCEFEED) && ishuman(user)) + var/mob/living/carbon/human/H = user + if(HAS_TRAIT(H, TRAIT_TRASHCAN)) + playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1) + if(H.vore_selected) + H.visible_message("[H] [H.vore_selected.vore_verb]s the [src] into their [H.vore_selected]") + forceMove(H.vore_selected) + else + H.visible_message("[H] consumes the [src]") + qdel(src) + diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 251bcc72ad..fc65e88389 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1068,6 +1068,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Voracious MediHound sleepers:
    [(cit_toggles & MEDIHOUND_SLEEPER) ? "Yes" : "No"]
    " dat += "Hear Vore Sounds: [(cit_toggles & EATING_NOISES) ? "Yes" : "No"]
    " dat += "Hear Vore Digestion Sounds: [(cit_toggles & DIGESTION_NOISES) ? "Yes" : "No"]
    " + dat += "Allow trash forcefeeding (requires Trashcan quirk) [(cit_toggles & TRASH_FORCEFEED) ? "Yes" : "No"]
    " dat += "Forced Feminization: [(cit_toggles & FORCED_FEM) ? "Allowed" : "Disallowed"]
    " dat += "Forced Masculinization: [(cit_toggles & FORCED_MASC) ? "Allowed" : "Disallowed"]
    " dat += "Lewd Hypno: [(cit_toggles & HYPNO) ? "Allowed" : "Disallowed"]
    " @@ -2800,6 +2801,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("toggledigestionnoise") cit_toggles ^= DIGESTION_NOISES + if("toggleforcefeedtrash") + cit_toggles ^= TRASH_FORCEFEED + if("breast_enlargement") cit_toggles ^= BREAST_ENLARGEMENT From 5490519c48632b9149131d7cfcd6492347660377 Mon Sep 17 00:00:00 2001 From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Wed, 14 Jul 2021 00:22:12 +0100 Subject: [PATCH 21/55] Update trash.dm --- code/game/objects/items/trash.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm index 0f0416bb3c..c0ff958612 100644 --- a/code/game/objects/items/trash.dm +++ b/code/game/objects/items/trash.dm @@ -87,9 +87,10 @@ if(HAS_TRAIT(H, TRAIT_TRASHCAN)) playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1) if(H.vore_selected) - H.visible_message("[H] [H.vore_selected.vore_verb]s the [src] into their [H.vore_selected]") + H.visible_message("[H] [H.vore_selected.vore_verb]s the [src] into their [H.vore_selected]", + "You [H.vore_selected.vore_verb]s the [src] into your [H.vore_selected]") forceMove(H.vore_selected) else - H.visible_message("[H] consumes the [src]") + H.visible_message("[H] consumes the [src].") qdel(src) From 3a11960a352e30f9007c1b8c17434b4f2a3c5314 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 14 Jul 2021 00:56:08 +0000 Subject: [PATCH 22/55] Automatic changelog compile [ci skip] --- html/changelog.html | 7 ------- 1 file changed, 7 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 7fc5e7ab5c..670468b057 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -590,13 +590,6 @@
    • vegas style bunny ears
    - -

    12 May 2021

    -

    DeltaFire15 updated:

    -
      -
    • find_safe_turf no longer always fails on safe oxygen levels(??)
    • -
    • Heretic bladeshatters now actually take the heretic's z into account as intended, instead of always being station z tweak: Message for failing the bladeshatter despite succeeding the do_after tweak: Improves bladeshatter a bit by making it safer codewise
    • -
    GoonStation 13 Development Team From 3cb44d41a3d30142facfb9d14b80a9ba828f3997 Mon Sep 17 00:00:00 2001 From: SandPoot Date: Wed, 14 Jul 2021 00:35:30 -0300 Subject: [PATCH 23/55] upload files --- code/__DEFINES/voreconstants.dm | 27 +- code/modules/client/preferences.dm | 1 + code/modules/client/preferences_savefile.dm | 3 + .../living/simple_animal/hostile/hostile.dm | 4 +- code/modules/tgui/states/vorepanel.dm | 18 + code/modules/tgui/tgui_alert.dm | 27 +- code/modules/vore/eating/bellymodes.dm | 2 +- code/modules/vore/eating/living.dm | 73 +- code/modules/vore/eating/vorepanel.dm | 1387 ++++++++--------- tgstation.dme | 1 + tgui/packages/tgui/interfaces/VorePanel.js | 604 +++++++ 11 files changed, 1414 insertions(+), 733 deletions(-) create mode 100644 code/modules/tgui/states/vorepanel.dm create mode 100644 tgui/packages/tgui/interfaces/VorePanel.js diff --git a/code/__DEFINES/voreconstants.dm b/code/__DEFINES/voreconstants.dm index d2eb034813..67ef9bc81f 100644 --- a/code/__DEFINES/voreconstants.dm +++ b/code/__DEFINES/voreconstants.dm @@ -8,17 +8,24 @@ #define DM_UNABSORB "Un-absorb" #define DIGESTABLE (1<<0) -#define SHOW_VORE_PREFS (1<<1) -#define DEVOURABLE (1<<2) -#define FEEDING (1<<3) -#define NO_VORE (1<<4) -#define OPEN_PANEL (1<<5) -#define ABSORBED (1<<6) -#define VORE_INIT (1<<7) -#define VOREPREF_INIT (1<<8) -#define LICKABLE (1<<9) +#define DEVOURABLE (1<<1) +#define FEEDING (1<<2) +#define NO_VORE (1<<3) +#define ABSORBED (1<<4) +#define VORE_INIT (1<<5) +#define VOREPREF_INIT (1<<6) +#define LICKABLE (1<<7) +/// Can be smelled? +#define SMELLABLE (1<<8) +/// Can get absorbed? +#define ABSORBABLE (1<<9) +/// Can get simplemob vored? +#define MOBVORE (1<<10) +/// Spontaneous vore. Unused, usable in the future? +#define SPNTVORE (1<<11) -#define MAX_VORE_FLAG (1<<10)-1 // change this whenever you add a vore flag, must be largest vore flag*2-1 +/// Change this whenever you add a vore flag, must be largest vore flag*2-1 +#define MAX_VORE_FLAG (1<<12)-1 #define isbelly(A) istype(A, /obj/belly) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 251bcc72ad..9f0ac7f183 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -187,6 +187,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/vore_flags = 0 var/list/belly_prefs = list() var/vore_taste = "nothing in particular" + var/vore_smell = null var/toggleeatingnoise = TRUE var/toggledigestionnoise = TRUE var/hound_sleeper = TRUE diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 45c5357c4d..d4d13dc40f 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -821,6 +821,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["vore_flags"] >> vore_flags S["vore_taste"] >> vore_taste + S["vore_smell"] >> vore_smell var/char_vr_path = "[vr_path]/character_[default_slot]_v2.json" if(fexists(char_vr_path)) var/list/json_from_file = json_decode(file2text(char_vr_path)) @@ -994,6 +995,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car vore_flags = sanitize_integer(vore_flags, 0, MAX_VORE_FLAG, 0) vore_taste = copytext(vore_taste, 1, MAX_TASTE_LEN) + vore_smell = copytext(vore_smell, 1, MAX_TASTE_LEN) belly_prefs = SANITIZE_LIST(belly_prefs) cit_character_pref_load(S) @@ -1147,6 +1149,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["vore_flags"] , vore_flags) WRITE_FILE(S["vore_taste"] , vore_taste) + WRITE_FILE(S["vore_smell"] , vore_smell) var/char_vr_path = "[vr_path]/character_[default_slot]_v2.json" var/belly_prefs_json = safe_json_encode(list("belly_prefs" = belly_prefs)) if(fexists(char_vr_path)) diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 95f8f2acc1..01a30bb90a 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -364,11 +364,10 @@ /mob/living/simple_animal/hostile/proc/AttackingTarget() SEND_SIGNAL(src, COMSIG_HOSTILE_ATTACKINGTARGET, target) in_melee = TRUE - /* sorry for the simplemob vore fans if(vore_active) if(isliving(target)) var/mob/living/L = target - if(!client && L.Adjacent(src) && CHECK_BITFIELD(L.vore_flags,DEVOURABLE)) // aggressive check to ensure vore attacks can be made + if(!client && L.Adjacent(src) && CHECK_BITFIELD(L.vore_flags, DEVOURABLE) && CHECK_BITFIELD(L.vore_flags, MOBVORE)) // aggressive check to ensure vore attacks can be made if(prob(voracious_chance)) vore_attack(src,L,src) else @@ -379,7 +378,6 @@ return target.attack_animal(src) else return target.attack_animal(src) - */ return target.attack_animal(src) /mob/living/simple_animal/hostile/proc/Aggro() diff --git a/code/modules/tgui/states/vorepanel.dm b/code/modules/tgui/states/vorepanel.dm new file mode 100644 index 0000000000..b68dfb970a --- /dev/null +++ b/code/modules/tgui/states/vorepanel.dm @@ -0,0 +1,18 @@ + /** + * tgui state: vorepanel_state + * + * Only checks that the user and src_object are the same. + **/ + +GLOBAL_DATUM_INIT(ui_vorepanel_state, /datum/ui_state/vorepanel_state, new) + +/datum/ui_state/vorepanel_state/can_use_topic(src_object, mob/user) + if(src_object != user) + // Note, in order to allow others to look at others vore panels, change this to + // UI_UPDATE + return UI_CLOSE + if(!user.client) + return UI_CLOSE + if(user.stat == DEAD) + return UI_DISABLED + return UI_INTERACTIVE diff --git a/code/modules/tgui/tgui_alert.dm b/code/modules/tgui/tgui_alert.dm index 1a86cca705..d144588ad9 100644 --- a/code/modules/tgui/tgui_alert.dm +++ b/code/modules/tgui/tgui_alert.dm @@ -9,7 +9,7 @@ * * buttons - The options that can be chosen by the user, each string is assigned a button on the UI. * * timeout - The timeout of the alert, after which the modal will close and qdel itself. Set to zero for no timeout. */ -/proc/tgui_alert(mob/user, message, title, list/buttons, timeout = 60 SECONDS) +/proc/tgui_alert(mob/user, message = null, title = null, list/buttons = list("Ok"), timeout = 0) if (!user) user = usr if (!istype(user)) @@ -35,9 +35,9 @@ * * title - The of the alert modal, shown on the top of the TGUI window. * * buttons - The options that can be chosen by the user, each string is assigned a button on the UI. * * callback - The callback to be invoked when a choice is made. - * * timeout - The timeout of the alert, after which the modal will close and qdel itself. Set to zero for no timeout. + * * timeout - The timeout of the alert, after which the modal will close and qdel itself. Disabled by default, can be set to seconds otherwise. */ -/proc/tgui_alert_async(mob/user, message, title, list/buttons, datum/callback/callback, timeout = 60 SECONDS) +/proc/tgui_alert_async(mob/user, message = null, title = null, list/buttons = list("Ok"), datum/callback/callback, timeout = 0) if (!user) user = usr if (!istype(user)) @@ -90,7 +90,7 @@ * the window was closed by the user. */ /datum/tgui_modal/proc/wait() - while (!choice && !closed) + while (!choice && !closed && !QDELETED(src)) stoplag(1) /datum/tgui_modal/ui_interact(mob/user, datum/tgui/ui) @@ -124,10 +124,13 @@ if("choose") if (!(params["choice"] in buttons)) return - choice = params["choice"] + set_choice(params["choice"]) SStgui.close_uis(src) return TRUE +/datum/tgui_modal/proc/set_choice(choice) + src.choice = choice + /** * # async tgui_modal * @@ -138,23 +141,17 @@ var/datum/callback/callback /datum/tgui_modal/async/New(mob/user, message, title, list/buttons, callback, timeout) - ..(user, title, message, buttons, timeout) + ..(user, message, title, buttons, timeout) src.callback = callback /datum/tgui_modal/async/Destroy(force, ...) QDEL_NULL(callback) . = ..() -/datum/tgui_modal/async/ui_close(mob/user) +/datum/tgui_modal/async/set_choice(choice) . = ..() - qdel(src) - -/datum/tgui_modal/async/ui_act(action, list/params) - . = ..() - if (!. || choice == null) - return - callback.InvokeAsync(choice) - qdel(src) + if(!isnull(src.choice)) + callback?.InvokeAsync(src.choice) /datum/tgui_modal/async/wait() return diff --git a/code/modules/vore/eating/bellymodes.dm b/code/modules/vore/eating/bellymodes.dm index 7cf36ebc50..3db66050db 100644 --- a/code/modules/vore/eating/bellymodes.dm +++ b/code/modules/vore/eating/bellymodes.dm @@ -150,7 +150,7 @@ SEND_SOUND(M,prey_digest) play_sound = pick(pred_digest) - if(M.vore_flags & ABSORBED) + if(M.vore_flags & ABSORBED || M.vore_flags & ABSORBABLE) //Negative. continue if(M.nutrition >= 100) //Drain them until there's no nutrients left. Slowly "absorb" them. diff --git a/code/modules/vore/eating/living.dm b/code/modules/vore/eating/living.dm index ca5ee0f476..ff4a26e0e2 100644 --- a/code/modules/vore/eating/living.dm +++ b/code/modules/vore/eating/living.dm @@ -1,17 +1,24 @@ ///////////////////// Mob Living ///////////////////// /mob/living var/vore_flags = 0 - var/showvoreprefs = TRUE // Determines if the mechanical vore preferences button will be displayed on the mob or not. - var/obj/belly/vore_selected // Default to no vore capability. - var/list/vore_organs = list() // List of vore containers inside a mob - var/vore_taste = null // What the character tastes like + // Determines if the mechanical vore preferences button will be displayed on the mob or not. + var/showvoreprefs = TRUE + /// Default to no vore capability. + var/obj/belly/vore_selected + /// List of vore containers inside a mob + var/list/vore_organs = list() + /// What the character tastes like + var/vore_taste = null + /// What the character smells like + var/vore_smell = null + /// Next time vore sounds get played for the prey, do not change manually as it is intended to be set automatically var/next_preyloop // // Hook for generic creation of stuff on new creatures // /hook/living_new/proc/vore_setup(mob/living/M) - add_verb(M, list(/mob/living/proc/preyloop_refresh, /mob/living/proc/lick, /mob/living/proc/escapeOOC)) + add_verb(M, list(/mob/living/proc/preyloop_refresh, /mob/living/proc/lick, /mob/living/proc/smell, /mob/living/proc/escapeOOC)) if(M.vore_flags & NO_VORE) //If the mob isn't supposed to have a stomach, let's not give it an insidepanel so it can make one for itself, or a stomach. return TRUE @@ -256,6 +263,7 @@ client.prefs.vore_flags = vore_flags // there's garbage data in here, but it doesn't matter client.prefs.vore_taste = vore_taste + client.prefs.vore_smell = vore_smell var/list/serialized = list() for(var/belly in vore_organs) @@ -264,6 +272,8 @@ client.prefs.belly_prefs = serialized + client.prefs.save_character() + return TRUE // @@ -274,8 +284,9 @@ to_chat(src,"You attempted to apply your vore prefs but somehow you're in this character without a client.prefs variable. Tell a dev.") return FALSE ENABLE_BITFIELD(vore_flags,VOREPREF_INIT) - COPY_SPECIFIC_BITFIELDS(vore_flags,client.prefs.vore_flags,DIGESTABLE | DEVOURABLE | FEEDING | LICKABLE) + COPY_SPECIFIC_BITFIELDS(vore_flags, client.prefs.vore_flags, DIGESTABLE | DEVOURABLE | FEEDING | LICKABLE | SMELLABLE | ABSORBABLE | MOBVORE | SPNTVORE) vore_taste = client.prefs.vore_taste + vore_smell = client.prefs.vore_smell release_vore_contents(silent = TRUE) QDEL_LIST(vore_organs) @@ -379,6 +390,56 @@ else taste_message += "a plain old normal [src]" return taste_message + +// +// Equally important as the above +// +/mob/living/proc/smell() + set name = "Smell Someone" + set category = "Vore" + set desc = "Smell someone nearby!" + + if(incapacitated(ignore_restraints = TRUE)) + to_chat(src, "You can't do that while incapacitated.") + return + if(!CheckActionCooldown()) + to_chat(src, "You can't do that so fast, slow down.") + return + + DelayNextAction(CLICK_CD_MELEE, flush = TRUE) + + var/list/smellable = list() + for(var/mob/living/L in view(1)) + if(L != src && (!L.ckey || L.client?.prefs.vore_flags & SMELLABLE) && Adjacent(L)) + LAZYADD(smellable, L) + for(var/mob/living/listed in smellable) + smellable[listed] = new /mutable_appearance(listed) + + if(!smellable) + return + + var/mob/living/sniffed = show_radial_menu(src, src, smellable, radius = 40, require_near = TRUE) + + if(QDELETED(sniffed) || (sniffed.ckey && !(sniffed.client?.prefs.vore_flags & SMELLABLE)) || !Adjacent(sniffed) || incapacitated(ignore_restraints = TRUE)) + return + + visible_message("[src] smells [sniffed]!","You smell [sniffed]. They smell like [sniffed.get_smell_message()].","Sniff!") + +/mob/living/proc/get_smell_message(allow_generic = TRUE, datum/species/mrace) + if(!vore_smell && !allow_generic) + return FALSE + + var/smell_message = "" + if(vore_smell && (vore_smell != "")) + smell_message += "[vore_smell]" + else + if(ishuman(src)) + var/mob/living/carbon/human/H = src + smell_message += "a normal [H.custom_species ? H.custom_species : H.dna.species]" + else + smell_message += "a plain old normal [src]" + return smell_message + // Check if an object is capable of eating things, based on vore_organs // /proc/has_vore_belly(var/mob/living/O) diff --git a/code/modules/vore/eating/vorepanel.dm b/code/modules/vore/eating/vorepanel.dm index aac8cbe745..489ed39094 100644 --- a/code/modules/vore/eating/vorepanel.dm +++ b/code/modules/vore/eating/vorepanel.dm @@ -2,746 +2,737 @@ // Vore management panel for players // -#define BELLIES_MAX 20 +#define BELLIES_MAX 40 #define BELLIES_NAME_MIN 2 -#define BELLIES_NAME_MAX 24 +#define BELLIES_NAME_MAX 40 #define BELLIES_DESC_MAX 4096 +#define FLAVOR_MAX 400 + +/mob/living + var/datum/vore_look/vorePanel /mob/living/proc/insidePanel() set name = "Vore Panel" set category = "Vore" - var/datum/vore_look/picker_holder = new() - picker_holder.loop = picker_holder - picker_holder.selected = vore_selected + if(!vorePanel) + log_game("VORE: [src] ([type], \ref[src]) didn't have a vorePanel and tried to use the verb.") + vorePanel = new(src) - var/dat = picker_holder.gen_vui(src) - - picker_holder.popup = new(src, "insidePanel","Vore Panel", 450, 700, picker_holder) - picker_holder.popup.set_content(dat) - picker_holder.popup.open() - vore_flags |= OPEN_PANEL + vorePanel.ui_interact(src) /mob/living/proc/updateVRPanel() //Panel popup update call from belly events. - if(vore_flags & OPEN_PANEL) - var/datum/vore_look/picker_holder = new() - picker_holder.loop = picker_holder - picker_holder.selected = vore_selected - - var/dat = picker_holder.gen_vui(src) - - picker_holder.popup = new(src, "insidePanel","Vore Panel", 450, 700, picker_holder) - picker_holder.popup.set_content(dat) - picker_holder.popup.open() + SStgui.update_uis(vorePanel) // // Callback Handler for the Inside form // /datum/vore_look - var/obj/belly/selected - var/show_interacts = FALSE - var/datum/browser/popup - var/loop = null; // Magic self-reference to stop the handler from being GC'd before user takes action. + var/mob/living/host // Note, we do this in case we ever want to allow people to view others vore panels + var/unsaved_changes = FALSE + var/show_pictures = TRUE + +/datum/vore_look/New(mob/living/new_host) + if(istype(new_host)) + host = new_host + . = ..() /datum/vore_look/Destroy() - loop = null - selected = null - ..() //this is a must - return QDEL_HINT_HARDDEL + host = null + . = ..() -/datum/vore_look/Topic(href,href_list[]) - if (vp_interact(href, href_list)) - popup.set_content(gen_vui(usr)) - usr << output(popup.get_content(), "insidePanel.browser") +/datum/vore_look/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "VorePanel", "Vore Panel") + ui.open() -/datum/vore_look/proc/gen_vui(var/mob/living/user) - var/dat - dat += "Remember to toggle the vore mode, it's to the left of your combat toggle. Open mouth means you're voracious!
    " - dat += "Remember that the prey is blind, use audible mode subtle messages to communicate to them with posts!
    " - dat += "
    " - var/atom/userloc = user.loc - if (isbelly(userloc)) - var/obj/belly/inside_belly = userloc - var/mob/living/eater = inside_belly.owner +// This looks weird, but all tgui_host is used for is state checking +// So this allows us to use the self_state just fine. +/datum/vore_look/ui_host(mob/user) + return host - //Don't display this part if we couldn't find the belly since could be held in hand. - if(inside_belly) - dat += "You are currently [(user.vore_flags & ABSORBED) ? "absorbed into " : "inside "] [eater]'s [inside_belly]!

    " +// Note, in order to allow others to look at others vore panels, this state would need +// to be modified. +/datum/vore_look/ui_state(mob/user) + return GLOB.ui_vorepanel_state - if(inside_belly.desc) - dat += "[inside_belly.desc]

    " +/datum/vore_look + var/static/list/nom_icons - if (inside_belly.contents.len > 1) - dat += "You can see the following around you:
    " - for (var/atom/movable/O in inside_belly) - if(istype(O,/mob/living)) - var/mob/living/M = O - //That's just you - if(M == user) - continue +/datum/vore_look/proc/cached_nom_icon(atom/target) + LAZYINITLIST(nom_icons) - //That's an absorbed person you're checking - if(M.vore_flags & ABSORBED) - if(user.vore_flags & ABSORBED) - dat += "[O]" - continue - else - continue - - //Anything else - dat += "[O]​" - - //Zero-width space, for wrapping - dat += "​" + var/key = "" + if(isobj(target)) + key = "[target.type]" + else if(ismob(target)) + var/mob/M = target + key = "\ref[target][M.real_name]" + if(nom_icons[key]) + . = nom_icons[key] else - dat += "You aren't inside anyone." - - dat += "
    " - - dat += "
      " - for(var/belly in user.vore_organs) - var/obj/belly/B = belly - if(B == selected) - dat += "
    1. [B.name]" - else - dat += "
    2. [B.name]" - var/spanstyle - switch(B.digest_mode) - if(DM_HOLD) - spanstyle = "" - if(DM_DIGEST) - spanstyle = "color:red;" - if(DM_HEAL) - spanstyle = "color:darkgreen;" - if(DM_NOISY) - spanstyle = "color:purple;" - if(DM_ABSORB) - spanstyle = "color:purple;" - if(DM_DRAGON) - spanstyle = "color:blue;" - - dat += " ([B.contents.len])
    3. " - - if(user.vore_organs.len < BELLIES_MAX) - dat += "
    4. New+
    5. " - dat += "
    " - dat += "
    " - - // Selected Belly (contents, configuration) - if(!selected) - dat += "No belly selected. Click one to select it." - else - if(selected.contents.len) - dat += "Contents: " - for(var/O in selected) - - //Mobs can be absorbed, so treat them separately from everything else - if(istype(O,/mob/living)) - var/mob/living/M = O - - //Absorbed gets special color OOoOOOOoooo - if(M.vore_flags & ABSORBED) - dat += "[O]" - continue - - //Anything else - dat += "[O]" - - //Zero-width space, for wrapping - dat += "​" - - //If there's more than one thing, add an [All] button - if(selected.contents.len > 1) - dat += "\[All\]" - - dat += "
    " - - //Belly Name Button - dat += "Name:" - dat += " '[selected.name]'" - - //Belly Type button - dat += "
    Is Fleshy:" - dat += "[selected.is_wet ? "Yes" : "No"]" - if(selected.is_wet) - dat += "
    Internal loop for prey?:" - dat += "[selected.wet_loop ? "Yes" : "No"]" - - //Digest Mode Button - dat += "
    Belly Mode:" - dat += " [selected.digest_mode]" - - //Belly verb - dat += "
    Vore Verb:" - dat += " '[selected.vore_verb]'" - - //Inside flavortext - dat += "
    Flavor Text:" - dat += " '[selected.desc]'" - - //Belly sound - dat += "
    Vore Sound: [selected.vore_sound]" - dat += "Test" - - //Release sound - dat += "
    Release Sound: [selected.release_sound]" - dat += "Test" - - //Belly messages - dat += "
    Belly Messages" - - //Can belly taste? - dat += "
    Can Taste:" - dat += " [selected.can_taste ? "Yes" : "No"]" - - //Minimum size prey must be to show up. - dat += "
    Required examine size:" - dat += " [selected.bulge_size*100]%" - - //Belly escapability - dat += "
    Belly Interactions ([selected.escapable ? "On" : "Off"])" - if(selected.escapable) - dat += "[show_interacts ? "Hide" : "Show"]" - - if(show_interacts && selected.escapable) - dat += "
    " - dat += "Interaction Settings ?" - dat += "
    Set Belly Escape Chance" - dat += " [selected.escapechance]%" - - dat += "
    Set Belly Escape Time" - dat += " [selected.escapetime/10]s" - - //Special
    here to add a gap - dat += "
    " - dat += "
    Set Belly Transfer Chance" - dat += " [selected.transferchance]%" - - dat += "
    Set Belly Transfer Location" - dat += " [selected.transferlocation ? selected.transferlocation : "Disabled"]" - - //Special
    here to add a gap - dat += "
    " - dat += "
    Set Belly Absorb Chance" - dat += " [selected.absorbchance]%" - - dat += "
    Set Belly Digest Chance" - dat += " [selected.digestchance]%" - dat += "
    " - - //Delete button - dat += "
    Delete Belly" - - dat += "Set Flavor" - - dat += "
    " - - //Under the last HR, save and stuff. - dat += "Save Prefs" - dat += "Refresh" - dat += "Reload Slot Prefs" - - dat += "
    " - var/pref_on = "#173d15" - var/pref_off = "#990000" - dat += "
    Toggle Digestable (Currently: [(user.vore_flags & DIGESTABLE) ? "ON" : "OFF"])" - dat += "
    Toggle Devourable (Currently: [(user.vore_flags & DEVOURABLE) ? "ON" : "OFF"])" - dat += "
    Toggle Feeding (Currently: [(user.vore_flags & FEEDING) ? "ON" : "OFF"])" - if(user.client.prefs) - dat += "
    Toggle Licking (Currently: [(user.client.prefs.vore_flags & LICKABLE) ? "ON" : "OFF"])" - //Returns the dat html to the vore_look - return dat - -/datum/vore_look/proc/vp_interact(href, href_list) - var/mob/living/user = usr - for(var/H in href_list) - - if(href_list["close"]) - qdel(src) // Cleanup - user.vore_flags &= ~OPEN_PANEL - return - - if(href_list["show_int"]) - show_interacts = !show_interacts - return TRUE //Force update - - if(href_list["int_help"]) - alert("These control how your belly responds to someone using 'resist' while inside you. The percent chance to trigger each is listed below, \ - and you can change them to whatever you see fit. Setting them to 0% will disable the possibility of that interaction. \ - These only function as long as interactions are turned on in general. Keep in mind, the 'belly mode' interactions (digest/absorb) \ - will affect all prey in that belly, if one resists and triggers digestion/absorption. If multiple trigger at the same time, \ - only the first in the order of 'Escape > Transfer > Absorb > Digest' will occur.","Interactions Help") - return FALSE //Force update - - if(href_list["outsidepick"]) - var/atom/movable/tgt = locate(href_list["outsidepick"]) - var/obj/belly/OB = locate(href_list["outsidebelly"]) - if(!istype(OB)) - return - if(!(tgt in OB)) //Aren't here anymore, need to update menu. - return TRUE - var/intent = "Examine" - - if(istype(tgt,/mob/living)) - var/mob/living/M = tgt - intent = alert("What do you want to do to them?","Query","Examine","Help Out","Devour") - switch(intent) - if("Examine") //Examine a mob inside another mob - M.examine(user) - - if("Help Out") //Help the inside-mob out - if(user.stat || user.vore_flags & ABSORBED || M.vore_flags & ABSORBED) - to_chat(user,"You can't do that in your state!") - return TRUE - - to_chat(user,"You begin to push [M] to freedom!") - to_chat(M,"[usr] begins to push you to freedom!") - to_chat(M.loc,"Someone is trying to escape from inside you!") - sleep(50) - if(prob(33)) - OB.release_specific_contents(M) - to_chat(usr,"You manage to help [M] to safety!") - to_chat(M,"[user] pushes you free!") - to_chat(OB.owner,"[M] forces free of the confines of your body!") - else - to_chat(user,"[M] slips back down inside despite your efforts.") - to_chat(M," Even with [user]'s help, you slip back inside again.") - to_chat(OB.owner,"Your body efficiently shoves [M] back where they belong.") - - if("Devour") //Eat the inside mob - if(user.vore_flags & ABSORBED || user.stat) - to_chat(user,"You can't do that in your state!") - return TRUE - - if(!user.vore_selected) - to_chat(user,"Pick a belly on yourself first!") - return TRUE - - var/obj/belly/TB = user.vore_selected - to_chat(user,"You begin to [lowertext(TB.vore_verb)] [M] into your [lowertext(TB.name)]!") - to_chat(M,"[user] begins to [lowertext(TB.vore_verb)] you into their [lowertext(TB.name)]!") - to_chat(OB.owner,"Someone inside you is eating someone else!") - - sleep(TB.nonhuman_prey_swallow_time) //Can't do after, in a stomach, weird things abound. - if((user in OB) && (M in OB)) //Make sure they're still here. - to_chat(user,"You manage to [lowertext(TB.vore_verb)] [M] into your [lowertext(TB.name)]!") - to_chat(M,"[user] manages to [lowertext(TB.vore_verb)] you into their [lowertext(TB.name)]!") - to_chat(OB.owner,"Someone inside you has eaten someone else!") - TB.nom_mob(M) - - else if(istype(tgt,/obj/item)) - var/obj/item/T = tgt - if(!(tgt in OB)) - //Doesn't exist anymore, update. - return TRUE - intent = alert("What do you want to do to that?","Query","Examine","Use Hand") - switch(intent) - if("Examine") - T.examine(user) - - if("Use Hand") - if(user.stat) - to_chat(user,"You can't do that in your state!") - return TRUE - - user.ClickOn(T) - sleep(5) //Seems to exit too fast for the panel to update - - if(href_list["insidepick"]) - var/intent - - //Handle the [All] choice. Ugh inelegant. Someone make this pretty. - if(href_list["pickall"]) - intent = alert("Eject all, Move all?","Query","Eject all","Cancel","Move all") - switch(intent) - if("Cancel") - return FALSE - - if("Eject all") - if(user.stat) - to_chat(user,"You can't do that in your state!") - return FALSE - - selected.release_all_contents() - - if("Move all") - if(user.stat) - to_chat(user,"You can't do that in your state!") - return FALSE - - var/obj/belly/choice = input("Move all where?","Select Belly") as null|anything in user.vore_organs - if(!choice) - return FALSE - - for(var/atom/movable/tgt in selected) - to_chat(tgt,"You're squished from [user]'s [lowertext(selected)] to their [lowertext(choice.name)]!") - selected.transfer_contents(tgt, choice, 1) - - var/atom/movable/tgt = locate(href_list["insidepick"]) - if(!(tgt in selected)) //Old menu, needs updating because they aren't really there. - return TRUE //Forces update - intent = "Examine" - intent = alert("Examine, Eject, Move? Examine if you want to leave this box.","Query","Examine","Eject","Move") - switch(intent) - if("Examine") - tgt.examine(user) - - if("Eject") - if(user.stat) - to_chat(user,"You can't do that in your state!") - return FALSE - - selected.release_specific_contents(tgt) - - if("Move") - if(user.stat) - to_chat(user,"You can't do that in your state!") - return FALSE - - var/obj/belly/choice = input("Move [tgt] where?","Select Belly") as null|anything in user.vore_organs - if(!choice || !(tgt in selected)) - return FALSE - - to_chat(tgt,"You're squished from [user]'s [lowertext(selected.name)] to their [lowertext(choice.name)]!") - selected.transfer_contents(tgt, choice) - - if(href_list["newbelly"]) - if(user.vore_organs.len >= BELLIES_MAX) - return FALSE - - var/new_name = html_encode(input(usr,"New belly's name:","New Belly") as text|null) - - var/failure_msg - if(length(new_name) > BELLIES_NAME_MAX || length(new_name) < BELLIES_NAME_MIN) - failure_msg = "Entered belly name length invalid (must be longer than [BELLIES_NAME_MIN], no more than than [BELLIES_NAME_MAX])." - // else if(whatever) //Next test here. - else - for(var/belly in user.vore_organs) - var/obj/belly/B = belly - if(lowertext(new_name) == lowertext(B.name)) - failure_msg = "No duplicate belly names, please." - break - - if(failure_msg) //Something went wrong. - alert(user,failure_msg,"Error!") - return FALSE - - var/obj/belly/NB = new(user) - NB.name = new_name - selected = NB - - if(href_list["bellypick"]) - selected = locate(href_list["bellypick"]) - user.vore_selected = selected - - //// - //Please keep these the same order they are on the panel UI for ease of coding - //// - if(href_list["b_name"]) - var/new_name = html_encode(input(usr,"Belly's new name:","New Name") as text|null) - - var/failure_msg - if(length(new_name) > BELLIES_NAME_MAX || length(new_name) < BELLIES_NAME_MIN) - failure_msg = "Entered belly name length invalid (must be longer than [BELLIES_NAME_MIN], no more than than [BELLIES_NAME_MAX])." - // else if(whatever) //Next test here. - else - for(var/belly in user.vore_organs) - var/obj/belly/B = belly - if(lowertext(new_name) == lowertext(B.name)) - failure_msg = "No duplicate belly names, please." - break - - if(failure_msg) //Something went wrong. - alert(user,failure_msg,"Error!") - return FALSE - - selected.name = new_name - - if(href_list["b_wetness"]) - selected.is_wet = !selected.is_wet - - if(href_list["b_wetloop"]) - selected.wet_loop = !selected.wet_loop - - if(href_list["b_mode"]) - var/list/menu_list = selected.digest_modes - - var/new_mode = input("Choose Mode (currently [selected.digest_mode])") as null|anything in menu_list - if(!new_mode) - return FALSE - selected.digest_mode = new_mode - - if(href_list["b_desc"]) - var/new_desc = html_encode(input(usr,"Belly Description ([BELLIES_DESC_MAX] char limit):","New Description",selected.desc) as message|null) - - if(new_desc) - new_desc = readd_quotes(new_desc) - if(length(new_desc) > BELLIES_DESC_MAX) - alert("Entered belly desc too long. [BELLIES_DESC_MAX] character limit.","Error") - return FALSE - selected.desc = new_desc - else //Returned null - return FALSE - - if(href_list["b_msgs"]) - var/list/messages = list( - "Digest Message (to prey)", - "Digest Message (to you)", - "Struggle Message (outside)", - "Struggle Message (inside)", - "Examine Message (when full)", - "Reset All To Default" + . = icon2base64(getFlatIcon(target,defdir=SOUTH,no_anim=TRUE)) + nom_icons[key] = . + +/datum/vore_look/ui_data(mob/user) + var/list/data = list() + + if(!host) + return data + + data["unsaved_changes"] = unsaved_changes + data["show_pictures"] = show_pictures + + var/atom/hostloc = host.loc + var/list/inside = list() + if(isbelly(hostloc)) + var/obj/belly/inside_belly = hostloc + var/mob/living/pred = inside_belly.owner + + inside = list( + "absorbed" = host.vore_flags & ABSORBED, + "belly_name" = inside_belly.name, + "belly_mode" = inside_belly.digest_mode, + "desc" = inside_belly.desc || "No description.", + "pred" = pred, + "ref" = "\ref[inside_belly]", ) - alert(user,"Setting abusive or deceptive messages will result in a ban. Consider this your warning. Max 150 characters per message, max 10 messages per topic.","Really, don't.") - var/choice = input(user,"Select a type to modify. Messages from each topic are pulled at random when needed.","Pick Type") as null|anything in messages - var/help = " Press enter twice to separate messages. '%pred' will be replaced with your name. '%prey' will be replaced with the prey's name. '%belly' will be replaced with your belly's name." + var/list/inside_contents = list() + for(var/atom/movable/O in inside_belly) + if(O == host) + continue - switch(choice) - if("Digest Message (to prey)") - var/new_message = input(user,"These are sent to prey when they expire. Write them in 2nd person ('you feel X'). Avoid using %prey in this type."+help,"Digest Message (to prey)",selected.get_messages("dmp")) as message - if(new_message) - selected.set_messages(new_message,"dmp") + var/list/info = list( + "name" = "[O]", + "absorbed" = FALSE, + "stat" = 0, + "ref" = "\ref[O]", + "outside" = FALSE, + ) + if(show_pictures) + info["icon"] = cached_nom_icon(O) + if(isliving(O)) + var/mob/living/M = O + info["stat"] = M.stat + if(M.vore_flags & ABSORBED) + info["absorbed"] = TRUE + inside_contents.Add(list(info)) + inside["contents"] = inside_contents + data["inside"] = inside - if("Digest Message (to you)") - var/new_message = input(user,"These are sent to you when prey expires in you. Write them in 2nd person ('you feel X'). Avoid using %pred in this type."+help,"Digest Message (to you)",selected.get_messages("dmo")) as message - if(new_message) - selected.set_messages(new_message,"dmo") + var/list/our_bellies = list() + for(var/belly in host.vore_organs) + var/obj/belly/B = belly + our_bellies.Add(list(list( + "selected" = (B == host.vore_selected), + "name" = B.name, + "ref" = "\ref[B]", + "digest_mode" = B.digest_mode, + "contents" = LAZYLEN(B.contents), + ))) + data["our_bellies"] = our_bellies - if("Struggle Message (outside)") - var/new_message = input(user,"These are sent to those nearby when prey struggles. Write them in 3rd person ('X's Y bulges')."+help,"Struggle Message (outside)",selected.get_messages("smo")) as message - if(new_message) - selected.set_messages(new_message,"smo") + var/list/selected_list = null + if(host.vore_selected) + var/obj/belly/selected = host.vore_selected + selected_list = list( + "belly_name" = selected.name, + "is_wet" = selected.is_wet, + "wet_loop" = selected.wet_loop, + "mode" = selected.digest_mode, + "verb" = selected.vore_verb, + "desc" = selected.desc, + "sound" = selected.vore_sound, + "release_sound" = selected.release_sound, + "can_taste" = selected.can_taste, + "bulge_size" = selected.bulge_size, + ) - if("Struggle Message (inside)") - var/new_message = input(user,"These are sent to prey when they struggle. Write them in 2nd person ('you feel X'). Avoid using %prey in this type."+help,"Struggle Message (inside)",selected.get_messages("smi")) as message - if(new_message) - selected.set_messages(new_message,"smi") + selected_list["escapable"] = selected.escapable + selected_list["interacts"] = list() + if(selected.escapable) + selected_list["interacts"]["escapechance"] = selected.escapechance + selected_list["interacts"]["escapetime"] = selected.escapetime + selected_list["interacts"]["transferchance"] = selected.transferchance + selected_list["interacts"]["transferlocation"] = selected.transferlocation + selected_list["interacts"]["absorbchance"] = selected.absorbchance + selected_list["interacts"]["digestchance"] = selected.digestchance - if("Examine Message (when full)") - var/new_message = input(user,"These are sent to people who examine you when this belly has contents. Write them in 3rd person ('Their %belly is bulging')."+help,"Examine Message (when full)",selected.get_messages("em")) as message - if(new_message) - selected.set_messages(new_message,"em") + var/list/selected_contents = list() + for(var/O in selected) + var/list/info = list( + "name" = "[O]", + "absorbed" = FALSE, + "stat" = 0, + "ref" = "\ref[O]", + "outside" = TRUE, + ) + if(show_pictures) + info["icon"] = cached_nom_icon(O) + if(isliving(O)) + var/mob/living/M = O + info["stat"] = M.stat + if(M.vore_flags & ABSORBED) + info["absorbed"] = TRUE + selected_contents.Add(list(info)) + selected_list["contents"] = selected_contents - if("Reset All To Default") - var/confirm = alert(user,"This will delete any custom messages. Are you sure?","Confirmation","DELETE","Cancel") - if(confirm == "DELETE") - selected.digest_messages_prey = initial(selected.digest_messages_prey) - selected.digest_messages_owner = initial(selected.digest_messages_owner) - selected.struggle_messages_outside = initial(selected.struggle_messages_outside) - selected.struggle_messages_inside = initial(selected.struggle_messages_inside) + data["selected"] = selected_list + data["prefs"] = list( + "digestable" = CHECK_BITFIELD(host.vore_flags, DIGESTABLE), + "devourable" = CHECK_BITFIELD(host.vore_flags, DEVOURABLE), + "feeding" = CHECK_BITFIELD(host.vore_flags, FEEDING), + "absorbable" = CHECK_BITFIELD(host.vore_flags, ABSORBABLE), + "allowmobvore" = CHECK_BITFIELD(host.vore_flags, MOBVORE), + "allow_spontaneous_tf" = CHECK_BITFIELD(host.vore_flags, SPNTVORE), + "vore_sounds" = CHECK_BITFIELD(host.client.prefs.cit_toggles, EATING_NOISES), + "digestion_sounds" = CHECK_BITFIELD(host.client.prefs.cit_toggles, DIGESTION_NOISES), + "lickable" = CHECK_BITFIELD(host.vore_flags, LICKABLE), + "smellable" = CHECK_BITFIELD(host.vore_flags, SMELLABLE), + ) - if(href_list["b_verb"]) - var/new_verb = html_encode(input(usr,"New verb when eating (infinitive tense, e.g. nom or swallow):","New Verb") as text|null) + return data - if(length(new_verb) > BELLIES_NAME_MAX || length(new_verb) < BELLIES_NAME_MIN) - alert("Entered verb length invalid (must be longer than [BELLIES_NAME_MIN], no longer than [BELLIES_NAME_MAX]).","Error") - return FALSE +/datum/vore_look/ui_act(action, params) + if(..()) + return TRUE - selected.vore_verb = new_verb + switch(action) + if("show_pictures") + show_pictures = !show_pictures + return TRUE + if("int_help") + tgui_alert(usr, "These control how your belly responds to someone using 'resist' while inside you. The percent chance to trigger each is listed below, \ + and you can change them to whatever you see fit. Setting them to 0% will disable the possibility of that interaction. \ + These only function as long as interactions are turned on in general. Keep in mind, the 'belly mode' interactions (digest/absorb) \ + will affect all prey in that belly, if one resists and triggers digestion/absorption. If multiple trigger at the same time, \ + only the first in the order of 'Escape > Transfer > Absorb > Digest' will occur.","Interactions Help") + return TRUE - if(href_list["b_release"]) - var/choice = input(user,"Currently set to [selected.release_sound]","Select Sound") as null|anything in GLOB.pred_release_sounds + // Host is inside someone else, and is trying to interact with something else inside that person. + if("pick_from_inside") + return pick_from_inside(usr, params) - if(!choice) - return + // Host is trying to interact with something in host's belly. + if("pick_from_outside") + return pick_from_outside(usr, params) - selected.release_sound = choice - - if(href_list["b_releasesoundtest"]) - var/sound/releasetest = GLOB.prey_release_sounds[selected.release_sound] - if(releasetest) - SEND_SOUND(user, releasetest) - - if(href_list["b_sound"]) - var/choice = input(user,"Currently set to [selected.vore_sound]","Select Sound") as null|anything in GLOB.pred_vore_sounds - - if(!choice) - return - - selected.vore_sound = choice - - if(href_list["b_soundtest"]) - var/sound/voretest = GLOB.prey_vore_sounds[selected.vore_sound] - if(voretest) - SEND_SOUND(user, voretest) - - if(href_list["b_tastes"]) - selected.can_taste = !selected.can_taste - - if(href_list["b_bulge_size"]) - var/new_bulge = input(user, "Choose the required size prey must be to show up on examine, ranging from 25% to 200% Set this to 0 for no text on examine.", "Set Belly Examine Size.") as num|null - if(new_bulge == null) - return - if(new_bulge == 0) //Disable. - selected.bulge_size = 0 - to_chat(user,"Your stomach will not be seen on examine.") - else if (!ISINRANGE(new_bulge,25,200)) - selected.bulge_size = 0.25 //Set it to the default. - to_chat(user,"Invalid size.") - else if(new_bulge) - selected.bulge_size = (new_bulge/100) - - if(href_list["b_escapable"]) - if(selected.escapable == FALSE) //Possibly escapable and special interactions. - selected.escapable = TRUE - to_chat(usr,"Prey now have special interactions with your [lowertext(selected.name)] depending on your settings.") - else if(selected.escapable == TRUE) //Never escapable. - selected.escapable = FALSE - to_chat(usr,"Prey will not be able to have special interactions with your [lowertext(selected.name)].") - show_interacts = FALSE //Force the hiding of the panel - else - alert("Something went wrong. Your stomach will now not have special interactions. Press the button enable them again and tell a dev.","Error") //If they somehow have a varable that's not 0 or 1 - selected.escapable = FALSE - show_interacts = FALSE //Force the hiding of the panel - - if(href_list["b_escapechance"]) - var/escape_chance_input = input(user, "Set prey escape chance on resist (as %)", "Prey Escape Chance") as num|null - if(!isnull(escape_chance_input)) //These have to be 'null' because both cancel and 0 are valid, separate options - selected.escapechance = sanitize_integer(escape_chance_input, 0, 100, initial(selected.escapechance)) - - if(href_list["b_escapetime"]) - var/escape_time_input = input(user, "Set number of seconds for prey to escape on resist (1-60)", "Prey Escape Time") as num|null - if(!isnull(escape_time_input)) - selected.escapetime = sanitize_integer(escape_time_input*10, 10, 600, initial(selected.escapetime)) - - if(href_list["b_transferchance"]) - var/transfer_chance_input = input(user, "Set belly transfer chance on resist (as %). You must also set the location for this to have any effect.", "Prey Escape Time") as num|null - if(!isnull(transfer_chance_input)) - selected.transferchance = sanitize_integer(transfer_chance_input, 0, 100, initial(selected.transferchance)) - - if(href_list["b_transferlocation"]) - var/obj/belly/choice = input("Where do you want your [lowertext(selected.name)] to lead if prey resists?","Select Belly") as null|anything in (user.vore_organs + "None - Remove" - selected) - - if(!choice) //They cancelled, no changes - return FALSE - else if(choice == "None - Remove") - selected.transferlocation = null - else - selected.transferlocation = choice.name - - if(href_list["b_absorbchance"]) - var/absorb_chance_input = input(user, "Set belly absorb mode chance on resist (as %)", "Prey Absorb Chance") as num|null - if(!isnull(absorb_chance_input)) - selected.absorbchance = sanitize_integer(absorb_chance_input, 0, 100, initial(selected.absorbchance)) - - if(href_list["b_digestchance"]) - var/digest_chance_input = input(user, "Set belly digest mode chance on resist (as %)", "Prey Digest Chance") as num|null - if(!isnull(digest_chance_input)) - selected.digestchance = sanitize_integer(digest_chance_input, 0, 100, initial(selected.digestchance)) - - if(href_list["b_del"]) - var/alert = alert("Are you sure you want to delete your [lowertext(selected.name)]?","Confirmation","Delete","Cancel") - if(!alert == "Delete") - return FALSE - - var/failure_msg = "" - - var/dest_for //Check to see if it's the destination of another vore organ. - for(var/belly in user.vore_organs) - var/obj/belly/B = belly - if(B.transferlocation == selected) - dest_for = B.name - failure_msg += "This is the destiantion for at least '[dest_for]' belly transfers. Remove it as the destination from any bellies before deleting it. " - break - - if(selected.contents.len) - failure_msg += "You cannot delete bellies with contents! " //These end with spaces, to be nice looking. Make sure you do the same. - if(selected.immutable) - failure_msg += "This belly is marked as undeletable. " - if(user.vore_organs.len == 1) - failure_msg += "You must have at least one belly. " - - if(failure_msg) - alert(user,failure_msg,"Error!") - return FALSE - - qdel(selected) - selected = user.vore_organs[1] - user.vore_selected = user.vore_organs[1] - - if(href_list["saveprefs"]) - if(!(user.client?.prefs)) - return FALSE - if(!user.copy_to_prefs_vr() || !user.client.prefs.save_character()) - to_chat(user, "Belly Preferences not saved!") - log_admin("Could not save vore prefs on USER: [user].") - else - to_chat(user, "Belly Preferences were saved!") - - if(href_list["applyprefs"]) - var/alert = alert("Are you sure you want to reload the current slot preferences? This will remove your current vore organs and eject their contents.","Confirmation","Reload","Cancel") - if(!alert == "Reload") - return FALSE - if(!user.copy_from_prefs_vr()) - alert("ERROR: Vore preferences failed to apply!","Error") - else - to_chat(user,"Vore preferences applied from active slot!") - - if(href_list["setflavor"]) - var/new_flavor = html_encode(input(usr,"What your character tastes like (40ch limit). This text will be printed to the pred after 'X tastes of...' so just put something like 'strawberries and cream':","Character Flavor",user.vore_taste) as text|null) - if(!new_flavor) - return FALSE - - new_flavor = readd_quotes(new_flavor) - if(length(new_flavor) > MAX_TASTE_LEN) - alert("Entered flavor/taste text too long. [MAX_TASTE_LEN] character limit.","Error!") - return FALSE - user.vore_taste = new_flavor - - if(href_list["toggledg"]) - var/choice = alert(user, "This button is for those who don't like being digested. It can make you undigestable to all mobs. Digesting you is currently: [(user.vore_flags & DIGESTABLE) ? "Allowed" : "Prevented"]", "", "Allow Digestion", "Cancel", "Prevent Digestion") - if(!user || !user.client) - return - switch(choice) - if("Cancel") + if("newbelly") + if(host.vore_organs.len >= BELLIES_MAX) return FALSE - if("Allow Digestion") - user.vore_flags |= DIGESTABLE - user.client.prefs.vore_flags |= DIGESTABLE - if("Prevent Digestion") - user.vore_flags &= ~DIGESTABLE - user.client.prefs.vore_flags &= ~DIGESTABLE - if(href_list["toggledvor"]) - var/choice = alert(user, "This button is for those who don't like vore at all. Devouring you is currently: [(user.vore_flags & DEVOURABLE) ? "Allowed" : "Prevented"]", "", "Allow Devourment", "Cancel", "Prevent Devourment") - if(!user || !user.client) - return - switch(choice) - if("Cancel") + var/new_name = html_encode(input(usr,"New belly's name:","New Belly") as text|null) + + var/failure_msg + if(length(new_name) > BELLIES_NAME_MAX || length(new_name) < BELLIES_NAME_MIN) + failure_msg = "Entered belly name length invalid (must be longer than [BELLIES_NAME_MIN], no more than than [BELLIES_NAME_MAX])." + // else if(whatever) //Next test here. + else + for(var/belly in host.vore_organs) + var/obj/belly/B = belly + if(lowertext(new_name) == lowertext(B.name)) + failure_msg = "No duplicate belly names, please." + break + + if(failure_msg) //Something went wrong. + tgui_alert_async(usr, failure_msg, "Error!") + return TRUE + + var/obj/belly/NB = new(host) + NB.name = new_name + host.vore_selected = NB + unsaved_changes = TRUE + return TRUE + + if("bellypick") + host.vore_selected = locate(params["bellypick"]) + return TRUE + if("move_belly") + var/dir = text2num(params["dir"]) + if(LAZYLEN(host.vore_organs) <= 1) + to_chat(usr, "You can't sort bellies with only one belly to sort...") + return TRUE + + var/current_index = host.vore_organs.Find(host.vore_selected) + if(current_index) + var/new_index = clamp(current_index + dir, 1, LAZYLEN(host.vore_organs)) + host.vore_organs.Swap(current_index, new_index) + unsaved_changes = TRUE + return TRUE + + if("set_attribute") + return set_attr(usr, params) + + if("saveprefs") + if(!host.copy_to_prefs_vr()) + tgui_alert_async(usr, "Belly Preferences not saved!", "Error") + log_admin("Could not save vore prefs on USER: [usr].") + else + to_chat(usr, "Belly Preferences were saved!") + unsaved_changes = FALSE + return TRUE + if("reloadprefs") + var/alert = tgui_alert(usr, "Are you sure you want to reload character slot preferences? This will remove your current vore organs and eject their contents.","Confirmation",list("Reload","Cancel")) + if(alert != "Reload") return FALSE - if("Allow Devourment") - user.vore_flags |= DEVOURABLE - user.client.prefs.vore_flags |= DEVOURABLE - if("Prevent Devourment") - user.vore_flags &= ~DEVOURABLE - user.client.prefs.vore_flags &= ~DEVOURABLE - - if(href_list["toggledfeed"]) - var/choice = alert(user, "This button is to toggle your ability to be fed to others. Feeding predators is currently: [(user.vore_flags & FEEDING) ? "Allowed" : "Prevented"]", "", "Allow Feeding", "Cancel", "Prevent Feeding") - if(!user || !user.client) - return - switch(choice) - if("Cancel") + if(!host.copy_from_prefs_vr()) + tgui_alert_async(usr, "ERROR: Virgo-specific preferences failed to apply!","Error") + else + to_chat(usr, "Vore preferences applied from active slot!") + unsaved_changes = FALSE + return TRUE + if("setflavor") + var/new_flavor = html_encode(input(usr,"What your character tastes like (400ch limit). This text will be printed to the pred after 'X tastes of...' so just put something like 'strawberries and cream':","Character Flavor",host.vore_taste) as text|null) + if(!new_flavor) return FALSE - if("Allow Feeding") - user.vore_flags |= FEEDING - user.client.prefs.vore_flags |= FEEDING - if("Prevent Feeding") - user.vore_flags &= ~FEEDING - user.client.prefs.vore_flags &= ~FEEDING - if(href_list["toggledlickable"]) - var/choice = alert(user, "This button is to toggle your ability to be licked. Being licked is currently: [(user.client.prefs.vore_flags & LICKABLE) ? "Allowed" : "Prevented"]", "", "Allow Licking", "Cancel", "Prevent Licking") - if(!user || !user.client) - return - switch(choice) - if("Cancel") + new_flavor = readd_quotes(new_flavor) + if(length(new_flavor) > FLAVOR_MAX) + tgui_alert_async(usr, "Entered flavor/taste text too long. [FLAVOR_MAX] character limit.","Error!") + return FALSE + host.vore_taste = new_flavor + unsaved_changes = TRUE + return TRUE + if("setsmell") + var/new_smell = html_encode(input(usr,"What your character smells like (400ch limit). This text will be printed to the pred after 'X smells of...' so just put something like 'strawberries and cream':","Character Smell",host.vore_smell) as text|null) + if(!new_smell) return FALSE - if("Allow Licking") - user.client.prefs.vore_flags |= LICKABLE - if("Prevent Licking") - user.client.prefs.vore_flags &= ~LICKABLE - //Refresh when interacted with, returning 1 makes vore_look.Topic update - return TRUE + new_smell = readd_quotes(new_smell) + if(length(new_smell) > FLAVOR_MAX) + tgui_alert_async(usr, "Entered perfume/smell text too long. [FLAVOR_MAX] character limit.","Error!") + return FALSE + host.vore_smell = new_smell + unsaved_changes = TRUE + return TRUE + if("toggle_allow_spontaneous_tf") + TOGGLE_BITFIELD(host.vore_flags, SPNTVORE) + if(host.client.prefs) + COPY_SPECIFIC_BITFIELDS(host.client.prefs.vore_flags, host.vore_flags, SPNTVORE) + unsaved_changes = TRUE + return TRUE + if("toggle_digest") + TOGGLE_BITFIELD(host.vore_flags, DIGESTABLE) + if(host.client.prefs) + COPY_SPECIFIC_BITFIELDS(host.client.prefs.vore_flags, host.vore_flags, DIGESTABLE) + unsaved_changes = TRUE + return TRUE + if("toggle_devour") + TOGGLE_BITFIELD(host.vore_flags, DEVOURABLE) + if(host.client.prefs) + COPY_SPECIFIC_BITFIELDS(host.client.prefs.vore_flags, host.vore_flags, DEVOURABLE) + unsaved_changes = TRUE + return TRUE + if("toggle_feed") + TOGGLE_BITFIELD(host.vore_flags, FEEDING) + if(host.client.prefs) + COPY_SPECIFIC_BITFIELDS(host.client.prefs.vore_flags, host.vore_flags, FEEDING) + unsaved_changes = TRUE + return TRUE + if("toggle_absorbable") + TOGGLE_BITFIELD(host.vore_flags, ABSORBABLE) + if(host.client.prefs) + COPY_SPECIFIC_BITFIELDS(host.client.prefs.vore_flags, host.vore_flags, ABSORBABLE) + unsaved_changes = TRUE + return TRUE + if("toggle_mobvore") + TOGGLE_BITFIELD(host.vore_flags, MOBVORE) + if(host.client.prefs) + COPY_SPECIFIC_BITFIELDS(host.client.prefs.vore_flags, host.vore_flags, MOBVORE) + unsaved_changes = TRUE + return TRUE + if("toggle_vore_sounds") + TOGGLE_BITFIELD(host.client.prefs.cit_toggles, EATING_NOISES) + unsaved_changes = TRUE + return TRUE + if("toggle_digestion_sounds") + TOGGLE_BITFIELD(host.client.prefs.cit_toggles, DIGESTION_NOISES) + unsaved_changes = TRUE + return TRUE + if("toggle_lickable") + TOGGLE_BITFIELD(host.vore_flags, LICKABLE) + unsaved_changes = TRUE + return TRUE + if("toggle_smellable") + TOGGLE_BITFIELD(host.vore_flags, SMELLABLE) + unsaved_changes = TRUE + return TRUE + +/datum/vore_look/proc/pick_from_inside(mob/user, params) + var/atom/movable/target = locate(params["pick"]) + var/obj/belly/OB = locate(params["belly"]) + + if(!(target in OB)) + return TRUE // Aren't here anymore, need to update menu + + var/intent = "Examine" + if(isliving(target)) + intent = tgui_alert(usr, "What do you want to do to them?","Query",list("Examine","Help Out","Devour")) + + else if(istype(target, /obj/item)) + intent = tgui_alert(usr, "What do you want to do to that?","Query",list("Examine","Use Hand")) + + switch(intent) + if("Examine") //Examine a mob inside another mob + var/list/results = target.examine(host) + if(!results || !results.len) + results = list("You were unable to examine that. Tell a developer!") + to_chat(user, jointext(results, "
    ")) + return TRUE + + if("Use Hand") + if(host.stat) + to_chat(user, "You can't do that in your state!") + return TRUE + + host.ClickOn(target) + return TRUE + + if(!isliving(target)) + return + + var/mob/living/M = target + switch(intent) + if("Help Out") //Help the inside-mob out + if(host.stat || host.vore_flags & ABSORBED || M.vore_flags & ABSORBED) + to_chat(user, "You can't do that in your state!") + return TRUE + + to_chat(user,"You begin to push [M] to freedom!") + to_chat(M,"[host] begins to push you to freedom!") + to_chat(M.loc,"Someone is trying to escape from inside you!") + sleep(50) + if(prob(33)) + OB.release_specific_contents(M) + to_chat(user,"You manage to help [M] to safety!") + to_chat(M,"[host] pushes you free!") + to_chat(OB.owner,"[M] forces free of the confines of your body!") + else + to_chat(user,"[M] slips back down inside despite your efforts.") + to_chat(M," Even with [host]'s help, you slip back inside again.") + to_chat(OB.owner,"Your body efficiently shoves [M] back where they belong.") + return TRUE + + if("Devour") //Eat the inside mob + if(host.stat || host.vore_flags & ABSORBED) + to_chat(user,"You can't do that in your state!") + return TRUE + + if(!host.vore_selected) + to_chat(user,"Pick a belly on yourself first!") + return TRUE + + var/obj/belly/TB = host.vore_selected + to_chat(user,"You begin to [lowertext(TB.vore_verb)] [M] into your [lowertext(TB.name)]!") + to_chat(M,"[host] begins to [lowertext(TB.vore_verb)] you into their [lowertext(TB.name)]!") + to_chat(OB.owner,"Someone inside you is eating someone else!") + + sleep(TB.nonhuman_prey_swallow_time) //Can't do after, in a stomach, weird things abound. + if((host in OB) && (M in OB)) //Make sure they're still here. + to_chat(user,"You manage to [lowertext(TB.vore_verb)] [M] into your [lowertext(TB.name)]!") + to_chat(M,"[host] manages to [lowertext(TB.vore_verb)] you into their [lowertext(TB.name)]!") + to_chat(OB.owner,"Someone inside you has eaten someone else!") + TB.nom_mob(M) + +/datum/vore_look/proc/pick_from_outside(mob/user, params) + var/intent + + //Handle the [All] choice. Ugh inelegant. Someone make this pretty. + if(params["pickall"]) + intent = tgui_alert(usr, "Eject all, Move all?","Query",list("Eject all","Cancel","Move all")) + switch(intent) + if("Cancel") + return TRUE + + if("Eject all") + if(host.stat) + to_chat(user,"You can't do that in your state!") + return TRUE + + host.vore_selected.release_all_contents() + return TRUE + + if("Move all") + if(host.stat) + to_chat(user,"You can't do that in your state!") + return TRUE + + var/obj/belly/choice = tgui_input_list(usr, "Move all where?","Select Belly", host.vore_organs) + if(!choice) + return FALSE + + for(var/atom/movable/target in host.vore_selected) + to_chat(target,"You're squished from [host]'s [lowertext(host.vore_selected)] to their [lowertext(choice.name)]!") + host.vore_selected.transfer_contents(target, choice, 1) + return TRUE + return + + var/atom/movable/target = locate(params["pick"]) + if(!(target in host.vore_selected)) + return TRUE // Not in our X anymore, update UI + var/list/available_options = list("Examine", "Eject", "Move") + if(ishuman(target)) + available_options += "Transform" + intent = tgui_alert(user, "What would you like to do with [target]?", "Vore Pick", available_options) + switch(intent) + if("Examine") + var/list/results = target.examine(host) + if(!results || !results.len) + results = list("You were unable to examine that. Tell a developer!") + to_chat(user, jointext(results, "
    ")) + return TRUE + + if("Eject") + if(host.stat) + to_chat(user,"You can't do that in your state!") + return TRUE + + host.vore_selected.release_specific_contents(target) + return TRUE + + if("Move") + if(host.stat) + to_chat(user,"You can't do that in your state!") + return TRUE + + var/obj/belly/choice = tgui_input_list(usr, "Move [target] where?","Select Belly", host.vore_organs) + if(!choice || !(target in host.vore_selected)) + return TRUE + + to_chat(target,"You're squished from [host]'s [lowertext(host.vore_selected.name)] to their [lowertext(choice.name)]!") + host.vore_selected.transfer_contents(target, choice) + return TRUE + + if("Transform") + if(host.stat) + to_chat(user,"You can't do that in your state!") + return TRUE + + var/mob/living/carbon/human/H = target + if(!istype(H)) + return + + return TRUE + +/datum/vore_look/proc/set_attr(mob/user, params) + if(!host.vore_selected) + tgui_alert_async(usr, "No belly selected to modify.") + return FALSE + + var/attr = params["attribute"] + switch(attr) + if("b_name") + var/new_name = html_encode(input(usr,"Belly's new name:","New Name") as text|null) + + var/failure_msg + if(length(new_name) > BELLIES_NAME_MAX || length(new_name) < BELLIES_NAME_MIN) + failure_msg = "Entered belly name length invalid (must be longer than [BELLIES_NAME_MIN], no more than than [BELLIES_NAME_MAX])." + // else if(whatever) //Next test here. + else + for(var/belly in host.vore_organs) + var/obj/belly/B = belly + if(lowertext(new_name) == lowertext(B.name)) + failure_msg = "No duplicate belly names, please." + break + + if(failure_msg) //Something went wrong. + tgui_alert_async(user,failure_msg,"Error!") + return FALSE + + host.vore_selected.name = new_name + . = TRUE + if("b_wetness") + host.vore_selected.is_wet = !host.vore_selected.is_wet + . = TRUE + if("b_wetloop") + host.vore_selected.wet_loop = !host.vore_selected.wet_loop + . = TRUE + if("b_mode") + var/list/menu_list = host.vore_selected.digest_modes.Copy() + var/new_mode = tgui_input_list(usr, "Choose Mode (currently [host.vore_selected.digest_mode])", "Mode Choice", menu_list) + if(!new_mode) + return FALSE + + host.vore_selected.digest_mode = new_mode + . = TRUE + if("b_desc") + var/new_desc = html_encode(input(usr,"Belly Description ([BELLIES_DESC_MAX] char limit):","New Description",host.vore_selected.desc) as message|null) + + if(new_desc) + new_desc = readd_quotes(new_desc) + if(length(new_desc) > BELLIES_DESC_MAX) + tgui_alert_async(usr, "Entered belly desc too long. [BELLIES_DESC_MAX] character limit.","Error") + return FALSE + host.vore_selected.desc = new_desc + . = TRUE + if("b_msgs") + tgui_alert(user,"Setting abusive or deceptive messages will result in a ban. Consider this your warning. Max 150 characters per message (500 for idle messages), max 10 messages per topic.","Really, don't.") // Should remain tgui_alert() (blocking) + var/help = " Press enter twice to separate messages. '%pred' will be replaced with your name. '%prey' will be replaced with the prey's name. '%belly' will be replaced with your belly's name. '%count' will be replaced with the number of anything in your belly (will not work for absorbed examine). '%countprey' will be replaced with the number of living prey in your belly (or absorbed prey for absorbed examine)." + switch(params["msgtype"]) + if("dmp") + var/new_message = input(user,"These are sent to prey when they expire. Write them in 2nd person ('you feel X'). Avoid using %prey in this type."+help,"Digest Message (to prey)",host.vore_selected.get_messages("dmp")) as message + if(new_message) + host.vore_selected.set_messages(new_message,"dmp") + + if("dmo") + var/new_message = input(user,"These are sent to you when prey expires in you. Write them in 2nd person ('you feel X'). Avoid using %pred in this type."+help,"Digest Message (to you)",host.vore_selected.get_messages("dmo")) as message + if(new_message) + host.vore_selected.set_messages(new_message,"dmo") + + if("smo") + var/new_message = input(user,"These are sent to those nearby when prey struggles. Write them in 3rd person ('X's Y bulges')."+help,"Struggle Message (outside)",host.vore_selected.get_messages("smo")) as message + if(new_message) + host.vore_selected.set_messages(new_message,"smo") + + if("smi") + var/new_message = input(user,"These are sent to prey when they struggle. Write them in 2nd person ('you feel X'). Avoid using %prey in this type."+help,"Struggle Message (inside)",host.vore_selected.get_messages("smi")) as message + if(new_message) + host.vore_selected.set_messages(new_message,"smi") + + if("em") + var/new_message = input(user,"These are sent to people who examine you when this belly has contents. Write them in 3rd person ('Their %belly is bulging')."+help,"Examine Message (when full)",host.vore_selected.get_messages("em")) as message + if(new_message) + host.vore_selected.set_messages(new_message,"em") + + if("reset") + var/confirm = tgui_alert(user,"This will delete any custom messages. Are you sure?","Confirmation",list("Cancel","DELETE")) + if(confirm == "DELETE") + host.vore_selected.digest_messages_prey = initial(host.vore_selected.digest_messages_prey) + host.vore_selected.digest_messages_owner = initial(host.vore_selected.digest_messages_owner) + host.vore_selected.struggle_messages_outside = initial(host.vore_selected.struggle_messages_outside) + host.vore_selected.struggle_messages_inside = initial(host.vore_selected.struggle_messages_inside) + host.vore_selected.examine_messages = initial(host.vore_selected.examine_messages) + host.vore_selected.emote_lists = initial(host.vore_selected.emote_lists) + . = TRUE + if("b_verb") + var/new_verb = html_encode(input(usr,"New verb when eating (infinitive tense, e.g. nom or swallow):","New Verb") as text|null) + + if(length(new_verb) > BELLIES_NAME_MAX || length(new_verb) < BELLIES_NAME_MIN) + tgui_alert_async(usr, "Entered verb length invalid (must be longer than [BELLIES_NAME_MIN], no longer than [BELLIES_NAME_MAX]).","Error") + return FALSE + + host.vore_selected.vore_verb = new_verb + . = TRUE + if("b_release") + var/choice = tgui_input_list(user,"Currently set to [host.vore_selected.release_sound]","Select Sound", GLOB.pred_release_sounds) + + if(!choice) + return FALSE + + host.vore_selected.release_sound = choice + . = TRUE + if("b_releasesoundtest") + var/sound/releasetest = GLOB.pred_release_sounds[host.vore_selected.release_sound] + + if(releasetest) + SEND_SOUND(user, releasetest) + . = FALSE //Testing sound, no changes. + if("b_sound") + var/choice = tgui_input_list(user,"Currently set to [host.vore_selected.vore_sound]","Select Sound", GLOB.prey_vore_sounds) + + if(!choice) + return FALSE + + host.vore_selected.vore_sound = choice + . = TRUE + if("b_soundtest") + var/sound/voretest = GLOB.prey_vore_sounds[host.vore_selected.vore_sound] + if(voretest) + SEND_SOUND(user, voretest) + . = FALSE //Testing sound, no changes. + if("b_tastes") + host.vore_selected.can_taste = !host.vore_selected.can_taste + . = TRUE + if("b_bulge_size") + var/new_bulge = input(user, "Choose the required size prey must be to show up on examine, ranging from 25% to 200% Set this to 0 for no text on examine.", "Set Belly Examine Size.") as num|null + if(new_bulge == null) + return FALSE + if(new_bulge == 0) //Disable. + host.vore_selected.bulge_size = 0 + to_chat(user,"Your stomach will not be seen on examine.") + else if (!ISINRANGE(new_bulge,25,200)) + host.vore_selected.bulge_size = 0.25 //Set it to the default. + to_chat(user,"Invalid size.") + else if(new_bulge) + host.vore_selected.bulge_size = (new_bulge/100) + . = TRUE + if("b_escapable") + if(host.vore_selected.escapable == 0) //Possibly escapable and special interactions. + host.vore_selected.escapable = 1 + to_chat(usr,"Prey now have special interactions with your [lowertext(host.vore_selected.name)] depending on your settings.") + else if(host.vore_selected.escapable == 1) //Never escapable. + host.vore_selected.escapable = 0 + to_chat(usr,"Prey will not be able to have special interactions with your [lowertext(host.vore_selected.name)].") + else + tgui_alert_async(usr, "Something went wrong. Your stomach will now not have special interactions. Press the button enable them again and tell a dev.","Error") //If they somehow have a varable that's not 0 or 1 + host.vore_selected.escapable = 0 + . = TRUE + if("b_escapechance") + var/escape_chance_input = input(user, "Set prey escape chance on resist (as %)", "Prey Escape Chance") as num|null + if(!isnull(escape_chance_input)) //These have to be 'null' because both cancel and 0 are valid, separate options + host.vore_selected.escapechance = sanitize_integer(escape_chance_input, 0, 100, initial(host.vore_selected.escapechance)) + . = TRUE + if("b_escapetime") + var/escape_time_input = input(user, "Set number of seconds for prey to escape on resist (1-60)", "Prey Escape Time") as num|null + if(!isnull(escape_time_input)) + host.vore_selected.escapetime = sanitize_integer(escape_time_input*10, 10, 600, initial(host.vore_selected.escapetime)) + . = TRUE + if("b_transferchance") + var/transfer_chance_input = input(user, "Set belly transfer chance on resist (as %). You must also set the location for this to have any effect.", "Prey Escape Time") as num|null + if(!isnull(transfer_chance_input)) + host.vore_selected.transferchance = sanitize_integer(transfer_chance_input, 0, 100, initial(host.vore_selected.transferchance)) + . = TRUE + if("b_transferlocation") + var/obj/belly/choice = tgui_input_list(usr, "Where do you want your [lowertext(host.vore_selected.name)] to lead if prey resists?","Select Belly", (host.vore_organs + "None - Remove" - host.vore_selected)) + + if(!choice) //They cancelled, no changes + return FALSE + else if(choice == "None - Remove") + host.vore_selected.transferlocation = null + else + host.vore_selected.transferlocation = choice.name + . = TRUE + if("b_absorbchance") + var/absorb_chance_input = input(user, "Set belly absorb mode chance on resist (as %)", "Prey Absorb Chance") as num|null + if(!isnull(absorb_chance_input)) + host.vore_selected.absorbchance = sanitize_integer(absorb_chance_input, 0, 100, initial(host.vore_selected.absorbchance)) + . = TRUE + if("b_digestchance") + var/digest_chance_input = input(user, "Set belly digest mode chance on resist (as %)", "Prey Digest Chance") as num|null + if(!isnull(digest_chance_input)) + host.vore_selected.digestchance = sanitize_integer(digest_chance_input, 0, 100, initial(host.vore_selected.digestchance)) + . = TRUE + if("b_del") + var/alert = tgui_alert(usr, "Are you sure you want to delete your [lowertext(host.vore_selected.name)]?","Confirmation",list("Cancel","Delete")) + if(!(alert == "Delete")) + return FALSE + + var/failure_msg = "" + + var/dest_for //Check to see if it's the destination of another vore organ. + for(var/belly in host.vore_organs) + var/obj/belly/B = belly + if(B.transferlocation == host.vore_selected) + dest_for = B.name + failure_msg += "This is the destiantion for at least '[dest_for]' belly transfers. Remove it as the destination from any bellies before deleting it. " + break + + if(host.vore_selected.contents.len) + failure_msg += "You cannot delete bellies with contents! " //These end with spaces, to be nice looking. Make sure you do the same. + if(host.vore_selected.immutable) + failure_msg += "This belly is marked as undeletable. " + if(host.vore_organs.len == 1) + failure_msg += "You must have at least one belly. " + + if(failure_msg) + tgui_alert_async(user,failure_msg,"Error!") + return FALSE + + qdel(host.vore_selected) + host.vore_selected = host.vore_organs[1] + . = TRUE + + if(.) + unsaved_changes = TRUE diff --git a/tgstation.dme b/tgstation.dme index a9b83f27b6..5c2dbd3748 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3593,6 +3593,7 @@ #include "code\modules\tgui\states\observer.dm" #include "code\modules\tgui\states\physical.dm" #include "code\modules\tgui\states\self.dm" +#include "code\modules\tgui\states\vorepanel.dm" #include "code\modules\tgui\states\zlevel.dm" #include "code\modules\tgui_panel\audio.dm" #include "code\modules\tgui_panel\external.dm" diff --git a/tgui/packages/tgui/interfaces/VorePanel.js b/tgui/packages/tgui/interfaces/VorePanel.js new file mode 100644 index 0000000000..1ab293a9ab --- /dev/null +++ b/tgui/packages/tgui/interfaces/VorePanel.js @@ -0,0 +1,604 @@ +import { Fragment } from 'inferno'; +import { useBackend, useLocalState } from "../backend"; +import { Box, Button, Flex, Collapsible, Icon, LabeledList, NoticeBox, Section, Tabs } from "../components"; +import { Window } from "../layouts"; + +const stats = [ + null, + 'average', + 'bad', +]; + +const digestModeToColor = { + "Hold": null, + "Dragon": "blue", + "Digest": "red", + "Absorb": "purple", + "Unabsorb": "purple", +}; + +const digestModeToPreyMode = { + "Hold": "being held.", + "Digest": "being digested.", + "Absorb": "being absorbed.", + "Unabsorb": "being unabsorbed.", + "Dragon": "being digested by a powerful creature.", +}; + +/** + * There are three main sections to this UI. + * - The Inside Panel, where all relevant data for interacting with a belly you're in is located. + * - The Belly Selection Panel, where you can select what belly people will go into and customize the active one. + * - User Preferences, where you can adjust all of your vore preferences on the fly. + */ +export const VorePanel = (props, context) => { + const { act, data } = useBackend(context); + return ( + + + {data.unsaved_changes && ( + + + + Warning: Unsaved Changes! + + + + ) || null} + {show_pictures && ( + + {contents.map(thing => ( + + + {thing.name} + + ))} + + ) || ( + + {contents.map(thing => ( + + + + ))} + + )} + + ); +}; + +const VoreUserPreferences = (props, context) => { + const { act, data } = useBackend(context); + + const { + digestable, + devourable, + feeding, + absorbable, + allowmobvore, + allow_spontaneous_tf, + vore_sounds, + digestion_sounds, + lickable, + smellable, + } = data.prefs; + + const { + show_pictures, + } = data; + + return ( +
    act("show_pictures")}> + Contents Preference: {show_pictures ? "Show Pictures" : "Show List"} + + }> + + +
    + + ); +}; From 3cf040bcdfcbf5a78169c86486bb1843622a2e26 Mon Sep 17 00:00:00 2001 From: SandPoot Date: Wed, 14 Jul 2021 00:53:35 -0300 Subject: [PATCH 24/55] Update VorePanel.js --- tgui/packages/tgui/interfaces/VorePanel.js | 1 + 1 file changed, 1 insertion(+) diff --git a/tgui/packages/tgui/interfaces/VorePanel.js b/tgui/packages/tgui/interfaces/VorePanel.js index 1ab293a9ab..4a99bada10 100644 --- a/tgui/packages/tgui/interfaces/VorePanel.js +++ b/tgui/packages/tgui/interfaces/VorePanel.js @@ -1,3 +1,4 @@ +/* eslint-disable max-len */ import { Fragment } from 'inferno'; import { useBackend, useLocalState } from "../backend"; import { Box, Button, Flex, Collapsible, Icon, LabeledList, NoticeBox, Section, Tabs } from "../components"; From 65c40a51f297fe16d10807005e08f1f74426b4c9 Mon Sep 17 00:00:00 2001 From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Wed, 14 Jul 2021 17:17:44 +0100 Subject: [PATCH 25/55] trash ELEMENT --- code/_globalvars/lists/maintenance_loot.dm | 1 + code/datums/elements/trash.dm | 18 ++++++++++++++++++ code/game/objects/items/cigs_lighters.dm | 4 ++++ code/game/objects/items/trash.dm | 17 +++-------------- tgstation.dme | 1 + 5 files changed, 27 insertions(+), 14 deletions(-) create mode 100644 code/datums/elements/trash.dm diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm index b41b7356a8..daa4f5879d 100644 --- a/code/_globalvars/lists/maintenance_loot.dm +++ b/code/_globalvars/lists/maintenance_loot.dm @@ -112,6 +112,7 @@ GLOBAL_LIST_INIT(maintenance_loot, list( /obj/item/storage/box/marshmallow = 2, /obj/item/clothing/gloves/tackler/offbrand = 1, /obj/item/stack/sticky_tape = 1, + /obj/effect/spawner/lootdrop/grille_or_trash = 15, "" = 3 )) diff --git a/code/datums/elements/trash.dm b/code/datums/elements/trash.dm new file mode 100644 index 0000000000..e685f2ad22 --- /dev/null +++ b/code/datums/elements/trash.dm @@ -0,0 +1,18 @@ +/datum/element/trash + element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH + +/datum/element/trash/Attach(datum/target) + RegisterSignal(target, COMSIG_ITEM_ATTACK, .proc/UseFromHand) + +/datum/element/trash/proc/UseFromHand(obj/item/source, mob/living/M, mob/living/user) + if((M == user || user.vore_flags & TRASH_FORCEFEED) && ishuman(user)) + var/mob/living/carbon/human/H = user + if(HAS_TRAIT(H, TRAIT_TRASHCAN)) + playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1) + if(H.vore_selected) + H.visible_message("[H] [H.vore_selected.vore_verb]s the [source] into their [H.vore_selected]", + "You [H.vore_selected.vore_verb]s the [source] into your [H.vore_selected]") + source.forceMove(H.vore_selected) + else + H.visible_message("[H] consumes the [source].") + qdel(source) diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index 4280e7105f..16ebe20e51 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -387,6 +387,10 @@ CIGARETTE PACKETS ARE IN FANCY.DM throwforce = 0 grind_results = list(/datum/reagent/carbon = 2) +/obj/item/cigbutt/Initialize() + . = ..() + AddElement(/datum/element/trash) + /obj/item/cigbutt/cigarbutt name = "cigar butt" desc = "A manky old cigar butt." diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm index c0ff958612..1dc0378ea1 100644 --- a/code/game/objects/items/trash.dm +++ b/code/game/objects/items/trash.dm @@ -7,6 +7,9 @@ w_class = WEIGHT_CLASS_TINY resistance_flags = FLAMMABLE +/obj/item/trash/Initialize() + AddElement(/datum/element/trash) + /obj/item/trash/raisins name = "\improper 4no raisins" icon_state= "4no_raisins" @@ -80,17 +83,3 @@ name = "boritos bag" icon_state = "boritos" grind_results = list(/datum/reagent/aluminium = 1) //from the mylar bag - -/obj/item/trash/attack(mob/M, mob/living/user) - if((M == user || user.vore_flags & TRASH_FORCEFEED) && ishuman(user)) - var/mob/living/carbon/human/H = user - if(HAS_TRAIT(H, TRAIT_TRASHCAN)) - playsound(H.loc,'sound/items/eatfood.ogg', rand(10,50), 1) - if(H.vore_selected) - H.visible_message("[H] [H.vore_selected.vore_verb]s the [src] into their [H.vore_selected]", - "You [H.vore_selected.vore_verb]s the [src] into your [H.vore_selected]") - forceMove(H.vore_selected) - else - H.visible_message("[H] consumes the [src].") - qdel(src) - diff --git a/tgstation.dme b/tgstation.dme index ed85c32cc4..59a4f99b64 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -639,6 +639,7 @@ #include "code\datums\elements\swimming.dm" #include "code\datums\elements\sword_point.dm" #include "code\datums\elements\tactical.dm" +#include "code\datums\elements\trash.dm" #include "code\datums\elements\turf_transparency.dm" #include "code\datums\elements\update_icon_blocker.dm" #include "code\datums\elements\update_icon_updates_onmob.dm" From 41759dd163dd35af56c92374dced65b12abcccb0 Mon Sep 17 00:00:00 2001 From: timothyteakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Wed, 14 Jul 2021 18:15:33 +0100 Subject: [PATCH 26/55] fix --- code/datums/elements/trash.dm | 1 + code/game/objects/items/trash.dm | 1 + 2 files changed, 2 insertions(+) diff --git a/code/datums/elements/trash.dm b/code/datums/elements/trash.dm index e685f2ad22..3a4d5b0150 100644 --- a/code/datums/elements/trash.dm +++ b/code/datums/elements/trash.dm @@ -2,6 +2,7 @@ element_flags = ELEMENT_BESPOKE|ELEMENT_DETACH /datum/element/trash/Attach(datum/target) + . = ..() RegisterSignal(target, COMSIG_ITEM_ATTACK, .proc/UseFromHand) /datum/element/trash/proc/UseFromHand(obj/item/source, mob/living/M, mob/living/user) diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm index 1dc0378ea1..1816f26843 100644 --- a/code/game/objects/items/trash.dm +++ b/code/game/objects/items/trash.dm @@ -8,6 +8,7 @@ resistance_flags = FLAMMABLE /obj/item/trash/Initialize() + . = ..() AddElement(/datum/element/trash) /obj/item/trash/raisins From 2bf47b69d70f7d785f035d50898da29453cf417b Mon Sep 17 00:00:00 2001 From: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Thu, 15 Jul 2021 01:48:25 +0200 Subject: [PATCH 27/55] open keg --- icons/obj/objects.dmi | Bin 108877 -> 107583 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index b9c891ddb9089f41af04d1a4ef670aa05491c373..6d29b8df8e3c930d9045de20d70d7194ece9c43b 100644 GIT binary patch delta 55271 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%0A$X^d{=xb)ke44HDeUOC6C}KbF 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 Date: Thu, 15 Jul 2021 01:50:01 +0200 Subject: [PATCH 28/55] keg code, far away from kegs cause it's just a big barrel that doesn't ferment anything. --- code/modules/hydroponics/fermenting_barrel.dm | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/code/modules/hydroponics/fermenting_barrel.dm b/code/modules/hydroponics/fermenting_barrel.dm index 76e36a1725..3d6b90eb2d 100644 --- a/code/modules/hydroponics/fermenting_barrel.dm +++ b/code/modules/hydroponics/fermenting_barrel.dm @@ -73,3 +73,40 @@ icon_state = "barrel_open" else icon_state = "barrel" + +/obj/structure/custom_keg + name = "Plasteel Keg" + desc = "A large plasteel keg. You can use it to hold liquids. You may wanna label this, too." + icon = 'icons/obj/objects.dmi' + icon_state = "keg" + density = TRUE + anchored = FALSE + pressure_resistance = 2 * ONE_ATMOSPHERE + max_integrity = 300 + var/open = FALSE + +/obj/structure/custom_keg/Initialize() + create_reagents(1000, DRAINABLE | AMOUNT_VISIBLE) + . = ..() + +/obj/structure/custom_keg/examine(mob/user) + . = ..() + . += "It is currently [open?"open, letting you pour liquids in.":"closed, letting you draw liquids from the tap."]" + +/obj/structure/custom_keg/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) + open = !open + if(open) + DISABLE_BITFIELD(reagents.reagents_holder_flags, DRAINABLE) + ENABLE_BITFIELD(reagents.reagents_holder_flags, REFILLABLE) + to_chat(user, "You open [src], letting you fill it.") + else + DISABLE_BITFIELD(reagents.reagents_holder_flags, REFILLABLE) + ENABLE_BITFIELD(reagents.reagents_holder_flags, DRAINABLE) + to_chat(user, "You close [src], letting you draw from its tap.") + update_icon() + +/obj/structure/custom_keg/update_icon_state() + if(open) + icon_state = "keg_open" + else + icon_state = "keg" From 2e88a10ca65448db956988d6bcb8c4e3acdf2c7e Mon Sep 17 00:00:00 2001 From: WanderingFox95 <75953558+WanderingFox95@users.noreply.github.com> Date: Thu, 15 Jul 2021 01:50:44 +0200 Subject: [PATCH 29/55] Recipe --- code/game/objects/items/stacks/sheets/sheet_types.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm index 592b2e42cc..15153521ed 100644 --- a/code/game/objects/items/stacks/sheets/sheet_types.dm +++ b/code/game/objects/items/stacks/sheets/sheet_types.dm @@ -179,6 +179,7 @@ GLOBAL_LIST_INIT(metal_recipes, list ( \ GLOBAL_LIST_INIT(plasteel_recipes, list ( \ new/datum/stack_recipe("AI core", /obj/structure/AIcore, 4, time = 50, one_per_turf = TRUE), \ new/datum/stack_recipe("bomb assembly", /obj/machinery/syndicatebomb/empty, 10, time = 50), \ + new/datum/stack_recipe("plasteel keg", /obj/structure/custom_keg, 10, time = 50), \ new/datum/stack_recipe("micro powered fan assembly", /obj/machinery/fan_assembly, 5, time = 50, one_per_turf = TRUE, on_floor = TRUE), \ new /datum/stack_recipe_list("crates", list( \ new /datum/stack_recipe("gray crate", /obj/structure/closet/crate, 5, time = 50, one_per_turf = 1, on_floor = 1), \ From b6a99e120571265f61665791de384f2390fdbdf1 Mon Sep 17 00:00:00 2001 From: SandPoot <43283559+SandPoot@users.noreply.github.com> Date: Wed, 14 Jul 2021 21:25:51 -0300 Subject: [PATCH 30/55] Update changelog.html --- html/changelog.html | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/html/changelog.html b/html/changelog.html index 670468b057..025bf64fb0 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -590,6 +590,13 @@
    • vegas style bunny ears
    + +

    12 May 2021

    +

    DeltaFire15 updated:

    +
      +
    • find_safe_turf no longer always fails on safe oxygen levels(??)
    • +
    • Heretic bladeshatters now actually take the heretic's z into account as intended, instead of always being station z tweak: Message for failing the bladeshatter despite succeeding the do_after tweak: Improves bladeshatter a bit by making it safer codewise
    • +
    GoonStation 13 Development Team From 8b65421eb7f482a0ae1f2b9e51b662dadee5e276 Mon Sep 17 00:00:00 2001 From: SandPoot <43283559+SandPoot@users.noreply.github.com> Date: Wed, 14 Jul 2021 21:26:26 -0300 Subject: [PATCH 31/55] Update changelog.html --- html/changelog.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/changelog.html b/html/changelog.html index 025bf64fb0..7fc5e7ab5c 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -590,7 +590,7 @@
    • vegas style bunny ears
    - +

    12 May 2021

    DeltaFire15 updated:

      From 90b2292764bee9428ceb1deb2bbb3373e3ac035f Mon Sep 17 00:00:00 2001 From: cadyn <35672377+cadyn@users.noreply.github.com> Date: Wed, 14 Jul 2021 18:59:07 -0700 Subject: [PATCH 32/55] Fix tiny oopsies --- tools/tgs4_scripts/PreCompile.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/tgs4_scripts/PreCompile.sh b/tools/tgs4_scripts/PreCompile.sh index 7018b8f2e9..6463b1a0d6 100755 --- a/tools/tgs4_scripts/PreCompile.sh +++ b/tools/tgs4_scripts/PreCompile.sh @@ -67,7 +67,7 @@ mv target/i686-unknown-linux-gnu/release/librust_g.so "$1/librust_g.so" cd .. # Auxtools dependencies -apt-get install build-essential g++-multilib libc6-i386 libstdc++6:i386 +apt-get install -y build-essential g++-multilib libc6-i386 libstdc++6:i386 # Update auxmos if [ ! -d "auxmos" ]; then From 07fec51d920577f7ed89196d49c8487f4cf49ecf Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Thu, 15 Jul 2021 16:44:48 +0100 Subject: [PATCH 33/55] fix --- code/datums/elements/photosynthesis.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/elements/photosynthesis.dm b/code/datums/elements/photosynthesis.dm index 4fe0615b1f..8e1c8c53ff 100644 --- a/code/datums/elements/photosynthesis.dm +++ b/code/datums/elements/photosynthesis.dm @@ -59,7 +59,7 @@ var/mob/living/L = AM if(L.stat == DEAD) continue - if(light_nutrition_gain) + if(light_nutrition_gain && L.nutrition < NUTRITION_LEVEL_WELL_FED) L.adjust_nutrition(light_amount * light_nutrition_gain * attached_atoms[AM], NUTRITION_LEVEL_WELL_FED) if(light_amount > bonus_lum || light_amount < malus_lum) var/mult = ((light_amount > bonus_lum) ? 1 : -1) * attached_atoms[AM] From e9c7d61dc34627d1657081f4e805405c0feabb48 Mon Sep 17 00:00:00 2001 From: Timothy Teakettle <59849408+timothyteakettle@users.noreply.github.com> Date: Thu, 15 Jul 2021 19:13:56 +0100 Subject: [PATCH 34/55] Update tails.dm --- code/modules/mob/dead/new_player/sprite_accessories/tails.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm index e17dc43950..3834eb9231 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm @@ -679,7 +679,7 @@ icon_state = "crow" matrixed_sections = MATRIX_RED -/datum/sprite_accessory/tails/mam_tail/cow +/datum/sprite_accessory/tails/mam_tails/cow name = "Cow" icon_state = "cow" matrixed_sections = MATRIX_RED From 6445cfdd9d35e29188df2ee151b4fa36dc3ce667 Mon Sep 17 00:00:00 2001 From: SandPoot Date: Thu, 15 Jul 2021 17:32:03 -0300 Subject: [PATCH 35/55] Removes spontaneous vore and reorganizes buttons --- code/__DEFINES/voreconstants.dm | 4 +- code/modules/vore/eating/living.dm | 2 +- code/modules/vore/eating/vorepanel.dm | 7 --- tgui/packages/tgui/interfaces/VorePanel.js | 62 +++++++++------------- 4 files changed, 26 insertions(+), 49 deletions(-) diff --git a/code/__DEFINES/voreconstants.dm b/code/__DEFINES/voreconstants.dm index 67ef9bc81f..372c5b776c 100644 --- a/code/__DEFINES/voreconstants.dm +++ b/code/__DEFINES/voreconstants.dm @@ -21,11 +21,9 @@ #define ABSORBABLE (1<<9) /// Can get simplemob vored? #define MOBVORE (1<<10) -/// Spontaneous vore. Unused, usable in the future? -#define SPNTVORE (1<<11) /// Change this whenever you add a vore flag, must be largest vore flag*2-1 -#define MAX_VORE_FLAG (1<<12)-1 +#define MAX_VORE_FLAG (1<<11)-1 #define isbelly(A) istype(A, /obj/belly) diff --git a/code/modules/vore/eating/living.dm b/code/modules/vore/eating/living.dm index ff4a26e0e2..6bc44e6489 100644 --- a/code/modules/vore/eating/living.dm +++ b/code/modules/vore/eating/living.dm @@ -284,7 +284,7 @@ to_chat(src,"You attempted to apply your vore prefs but somehow you're in this character without a client.prefs variable. Tell a dev.") return FALSE ENABLE_BITFIELD(vore_flags,VOREPREF_INIT) - COPY_SPECIFIC_BITFIELDS(vore_flags, client.prefs.vore_flags, DIGESTABLE | DEVOURABLE | FEEDING | LICKABLE | SMELLABLE | ABSORBABLE | MOBVORE | SPNTVORE) + COPY_SPECIFIC_BITFIELDS(vore_flags, client.prefs.vore_flags, DIGESTABLE | DEVOURABLE | FEEDING | LICKABLE | SMELLABLE | ABSORBABLE | MOBVORE) vore_taste = client.prefs.vore_taste vore_smell = client.prefs.vore_smell diff --git a/code/modules/vore/eating/vorepanel.dm b/code/modules/vore/eating/vorepanel.dm index 489ed39094..a3adc89352 100644 --- a/code/modules/vore/eating/vorepanel.dm +++ b/code/modules/vore/eating/vorepanel.dm @@ -186,7 +186,6 @@ "feeding" = CHECK_BITFIELD(host.vore_flags, FEEDING), "absorbable" = CHECK_BITFIELD(host.vore_flags, ABSORBABLE), "allowmobvore" = CHECK_BITFIELD(host.vore_flags, MOBVORE), - "allow_spontaneous_tf" = CHECK_BITFIELD(host.vore_flags, SPNTVORE), "vore_sounds" = CHECK_BITFIELD(host.client.prefs.cit_toggles, EATING_NOISES), "digestion_sounds" = CHECK_BITFIELD(host.client.prefs.cit_toggles, DIGESTION_NOISES), "lickable" = CHECK_BITFIELD(host.vore_flags, LICKABLE), @@ -307,12 +306,6 @@ host.vore_smell = new_smell unsaved_changes = TRUE return TRUE - if("toggle_allow_spontaneous_tf") - TOGGLE_BITFIELD(host.vore_flags, SPNTVORE) - if(host.client.prefs) - COPY_SPECIFIC_BITFIELDS(host.client.prefs.vore_flags, host.vore_flags, SPNTVORE) - unsaved_changes = TRUE - return TRUE if("toggle_digest") TOGGLE_BITFIELD(host.vore_flags, DIGESTABLE) if(host.client.prefs) diff --git a/tgui/packages/tgui/interfaces/VorePanel.js b/tgui/packages/tgui/interfaces/VorePanel.js index 4a99bada10..3e29c8bff4 100644 --- a/tgui/packages/tgui/interfaces/VorePanel.js +++ b/tgui/packages/tgui/interfaces/VorePanel.js @@ -431,7 +431,6 @@ const VoreUserPreferences = (props, context) => { feeding, absorbable, allowmobvore, - allow_spontaneous_tf, vore_sounds, digestion_sounds, lickable, @@ -450,27 +449,6 @@ const VoreUserPreferences = (props, context) => { }> -