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
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