From 59819128b4bad0bd6b5d69fd37d93403cbd3cfb5 Mon Sep 17 00:00:00 2001 From: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Date: Sun, 22 Jan 2023 11:35:53 +1000 Subject: [PATCH] Adds loaded dice + a custom item --- .../loadout/loadout_fluffitems_vr.dm | 15 ++++++ code/modules/economy/vending_machines_vr.dm | 3 +- code/modules/games/dice.dm | 45 +++++++++++++++++- .../vore/fluffstuff/custom_items_vr.dm | 14 ++++++ icons/obj/dice.dmi | Bin 3130 -> 3435 bytes 5 files changed, 75 insertions(+), 2 deletions(-) diff --git a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm index 7dccf2dc13..89a62adbb7 100644 --- a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm @@ -1334,6 +1334,21 @@ // Y CKEYS +<<<<<<< HEAD +======= +/datum/gear/fluff/lemon_plush + path = /obj/item/toy/plushie/fluff/lemonplush + display_name = "yellow slime plushie" + ckeywhitelist = list("yecrowbarman") + character_name = list("Lemon Yellow", "Lemon Gettler Yellow", "Lemon Lee Yellow", "Lemon Jade Yellow") //different sleeves, same char + +/datum/gear/fluff/cephyra_d6 + path = /obj/item/weapon/dice/loaded/ceph + display_name = "engraved d6" + ckeywhitelist = list("yeehawguvnah") + character_name = list("Cephyra") + +>>>>>>> 1adfa7995a... Merge pull request #14358 from faaaay/loaded-dice // Z CKEYS /datum/gear/fluff/tachika_medal path = /obj/item/clothing/accessory/medal/conduct diff --git a/code/modules/economy/vending_machines_vr.dm b/code/modules/economy/vending_machines_vr.dm index 85a475c03f..533403e4da 100644 --- a/code/modules/economy/vending_machines_vr.dm +++ b/code/modules/economy/vending_machines_vr.dm @@ -1259,7 +1259,8 @@ /obj/item/weapon/deck/schnapsen = 100, /obj/item/weapon/deck/egy = 100) premium = list(/obj/item/toy/bosunwhistle = 1) - contraband = list(/obj/item/toy/katana = 1) + contraband = list(/obj/item/toy/katana = 1, + /obj/item/weapon/dice/loaded = 5) /obj/machinery/vending/loadout/overwear name = "Big D's Best" diff --git a/code/modules/games/dice.dm b/code/modules/games/dice.dm index 9b796995c5..b91fb73d1e 100644 --- a/code/modules/games/dice.dm +++ b/code/modules/games/dice.dm @@ -6,11 +6,48 @@ w_class = ITEMSIZE_TINY var/sides = 6 var/result = 6 + var/loaded = null //Set to an integer when the die is loaded + var/cheater = FALSE //TRUE if the die is able to be weighted by hand + var/tamper_proof = FALSE //Set to TRUE if the die needs to be unable to be weighted, such as for events attack_verb = list("diced") /obj/item/weapon/dice/New() icon_state = "[name][rand(1,sides)]" +/obj/item/weapon/dice/attackby(obj/item/weapon/W, mob/user) + ..() + if(istype(W, /obj/item/weapon/weldingtool) || istype(W, /obj/item/weapon/flame/lighter)) + if(cheater) + to_chat(user, "Wait, this [name] is already weighted!") + else if(tamper_proof) + to_chat(user, "This [name] is proofed against tampering!") + else + var/to_weight = input("What should the [name] be weighted towards? You can't undo this later, only change the number!","Set the desired result") as null|num + if(isnull(to_weight) || (to_weight < 1) || (to_weight > sides)) //You must input a number higher than 0 and no greater than the number of sides + return 0 + else + to_chat(user, "You partially melt the [name], weighting it towards [to_weight]...") + desc = "[initial(desc)] It looks a little misshapen, somehow..." + loaded = to_weight + +/obj/item/weapon/dice/AltClick(mob/user) + ..() + if(cheater) + if(!loaded) + var/to_weight = input("What should the [name] be weighted towards?","Set the desired result") as null|num + if(isnull(to_weight) || (to_weight < 1) || (to_weight > sides) ) //You must input a number higher than 0 and no greater than the number of sides + return 0 + else + to_chat(user, "You sneakily set the [name] to land on [to_weight]...") + loaded = to_weight + else + to_chat(user, "You set the [name] to roll randomly again.") + loaded = null + +/obj/item/weapon/dice/loaded + description_info = "This is a loaded die! To change the number it's weighted to, alt-click it. To put it back to normal, alt-click it again." + cheater = TRUE + /obj/item/weapon/dice/d4 name = "d4" desc = "A dice with four sides." @@ -58,6 +95,12 @@ /obj/item/weapon/dice/proc/rollDice(mob/user as mob, var/silent = 0) result = rand(1, sides) + if(loaded) + if(cheater) + if(prob(90)) + result = loaded + else if(prob(75)) //makeshift weighted dice don't always work + result = loaded icon_state = "[name][result]" if(!silent) @@ -158,4 +201,4 @@ /obj/item/weapon/storage/dicecup/loaded/New() ..() for(var/i = 1 to 5) - new /obj/item/weapon/dice( src ) \ No newline at end of file + new /obj/item/weapon/dice( src ) diff --git a/code/modules/vore/fluffstuff/custom_items_vr.dm b/code/modules/vore/fluffstuff/custom_items_vr.dm index 1334de6bb5..dae81f32ce 100644 --- a/code/modules/vore/fluffstuff/custom_items_vr.dm +++ b/code/modules/vore/fluffstuff/custom_items_vr.dm @@ -1554,3 +1554,17 @@ End CHOMP Removal*/ playsound(src, 'sound/items/drop/plushie.ogg', 25, 0) visible_message("[src] says, \"[pokephrase]\"") last_message = world.time + +//Yeehawguvnah - Cephyra + +/obj/item/weapon/dice/loaded/ceph + name = "engraved d6" + desc = "A die with six sides. It's fairly well-made, made of an unclear black material with silver pips. If you were to touch it, your hands tingle slightly as though from static. On closer inspection, it's finely engraved with curving, fractal patterns." + icon_state = "ceph_d66" + +/obj/item/weapon/dice/loaded/ceph/rollDice(mob/user, silent) + ..() + icon_state = "ceph_d6[result]" + +/obj/item/weapon/dice/loaded/ceph/New() + icon_state = "ceph_d6[rand(1,sides)]" diff --git a/icons/obj/dice.dmi b/icons/obj/dice.dmi index 17a3c64cd4163fba6faeeb4f102f22071d6aec7d..c017e2d082dbd2ddeeaf27ce92bc05feb190ce1f 100644 GIT binary patch delta 3303 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 delta 2995 zcmZXVdpy(oAIHBcb&yLrB4Qj$7osyl*ygT|;dEa_C6|6^C5)MU&r+etlv5Tqq6^B% z{WdzGI%Jb-DCTn5+!|))%Pv1W9;e?Qzki;O*XR9sKOUdY`}&#GuG1nL$yKE9yqKP8 z1fJ4TOqP?QTs+BunaX%m001;MH(zxDqTK<|3%GRxxN`<@ad8Pl0T>JhjYh}EYb>ld z$weOZJO-e~dV*H875@0?Naw(70TGw3L|(#P27s9C)GuY8Z_IzbIb=grEbdQdzP!{= zlCLZ}#KQfQoE5V>*Qj~Yigi;S6mr7GH#2B2@0&;j(kpgQe|uN_=y?-9R{H*J;$RW~ zqoG+_#FG(462geKS0KiJT_3=$QTauG?0J+ z?qh&_3{Z{%-e6GO;qJTBS=-KU%y1lYyJZ;_Z|7^eCJauCV?iYsRYt5-*xn&o6g>7tt0J*&y<> zO*PNW2>=vk4?8;?kIA0SRysCfz0DQ96^;(lc|=xoa(`!Q{wAP$-5ZubCS&{AXFuIl zcdz|6*&}|_gXzMA7sa6%g?|6^z?HH9KR8`jEhmKHWP1wgnpoDkRS2VDHZ6U@h(Y@e^JHkLlsviche~DqjTn*c|NJ zCd$LyhSLU8rkxo;w$u8LYLp+6P+|OoKeI*kw9^C z{;swxK1r+gX)-rqvD@XPo+5X|KOXBF;-7_v0;Wx&jdBM$56m2EiQD1!jzm9=p2}@8 zTG(EPI+AaKZIuq|^7~_;(L-bRb{618hi#eE-QPI6IU?q*$^_MVtU4CI|89#-oHKUO z1A8mJu?U42X@hXoUf|Eh=_Os-WOtXtz5>IlKtCE?Q)5TFd@28;x`+~Ur0)x@Qrr+z zeuUq;2)lJuL?I{)S5`mUDh*i19EhjYN?-lOUcXkW6@UQ2(vcgg{oQE={Pn9U5b^W` z5_$g*W^0oe^Y$w{7-lB0yem#o^!g+!A>5547Hb|7X>*3(#*GCRL02H%@xX)^BR(aw zHt+#TTH)9=c1$qwZK%{2n_kCeLQ9bdSGqom;p*?dGt=>`KObn1Sza<3N#KS)`knx; z@dw_lsx_3)K#!g-ufc@Ccsj24?~8%K;`A7V@dAI-ZE92U)LA1c6S~1s%?RYgo-pt? zd?Tj^W%K+9>t)NNB>uCo#B3;25z^76&df*!K7=*e9@Q5OxW(t4bpAvYh4mhP%z9#8OuHtwV{6=>?ofhZpf5Ziy?l%F8iF<(GhpjWlq&#aNX?)|}E789GAcz2+}>rxlPM*WKk z`zeD|7HUvaJNIM>&V0% z%?F&y8*#)S^O_w!PeW=%oy^U*-n0*qX?a5fwn#%dma-JO(^iZmf;rtr^3}9(zYxgJL}W=$|_;uCIek5VO=Af<>%0P(dV!% zRvGFc?qCS7#zBSI$%Ine5M1}okB1Lb8R$n90H39m| zl3I)ubTU~{I9!rc?OpN44GoMi^84Tc5TeYDKk#qLWi|-lZ~EH{pe3}3f+M;%tnbBVgoG(tvm!+=RJZEm&{~JBf%r=aajurJHRyZ-S^!I8*tjPaZ)aj)zDjpT(39KTB zzsVOavml*E{u<54$#tqZ^xD0OHp{~2yFD}tR!6=BbZvFlM1g&D{U|V#fHq*f=Cw+7 z&uT{E6n}5^lkd}{B6@_yT&%CM_91PHR~puH^Cgqry9&ouGw6GwbuBD;cq7eocAF~A zjtc)2z@z;ShH(7P`hy`Xq0o=im-d4Aj~0ItT2fhY|6~w27nyKTZn*OL-ax_-*KMc- z1|t0PJJlqWBm{vGR1vq`l1ZymrO~&fRTDb3CssDWl*l+9hVVC33Mu_jd0-LW@`3a1 z+c%?WLoW96<+l0P54FC!b#lC8N6N&s+Lj*13*<@ZSdbm%-MVp^heq21<{vQ{13Ps- zjMmz@@>AOHx2nA=cQt+rTrqQQ6nZZw*VH43zSqRB=WL=R)9BjzQAAVihZH|tX%)@d z9xfZ2v$B*-PlwkcipbJQj*>U=@u5YCVdu~u<6bIO#z~5lwZAql-311a$PpW9^e_7| zaO8=sDbqo7Kl|&JZNWnV%V^Mc&nf*$xQTwrseMV5rtQZ_V5IfdfW23;vt^~%ts$Mg zcMv;=)85BcUeAQG%AR9?iC&uSIqn}uKdA->;oElJPVM}p`E^pm`2**j)5l-!s{WS~ z_muIlBQr!srh3)BmQKzFVf%Pkt#3(C_mf^a_l^+Xi0NR9N4q<@i_myRUHO?Z-ABwq zTQEzRv%0=mM7-4#w-misy*afGqHFjTo`KId9i5+TL3KM$dG>&5Fb-E=%6 z1;$}c%uENpz2FGfcv#17&R!fN2kLfy+HokKqU)Rpw@mB|=~jst4N!T|RJN4-9VM9! z2x>rC@Ww9*Edrv+AuNGlEcSe#gN6W3643_H3YM686WykPuQ73q zL>O%x-uF>I*40NlBO1X4AnKe;m<#f1sq*8Mwd=tI`b=>(MfMLFvVzb_Ox|!ZZJi59uJ4FXOCG-`%BX$W zt1FkrFPn6KAYy|=shF#wd?8koUtrV)Q{p>MX|G+0QWV27@wr