diff --git a/code/game/objects/items/weapons/dice.dm b/code/game/objects/items/weapons/dice.dm deleted file mode 100644 index 9099ff3bd10..00000000000 --- a/code/game/objects/items/weapons/dice.dm +++ /dev/null @@ -1,59 +0,0 @@ -/obj/item/weapon/dice - name = "d6" - desc = "A dice with six sides." - icon = 'icons/obj/dice.dmi' - icon_state = "d66" - w_class = ITEMSIZE_TINY - var/sides = 6 - attack_verb = list("diced") - -/obj/item/weapon/dice/New() - icon_state = "[name][rand(1,sides)]" - -/obj/item/weapon/dice/d4 - name = "d4" - desc = "A dice with four sides." - icon_state = "d44" - sides = 4 - -/obj/item/weapon/dice/d8 - name = "d8" - desc = "A dice with eight sides." - icon_state = "d88" - sides = 8 - -/obj/item/weapon/dice/d10 - name = "d10" - desc = "A dice with ten sides." - icon_state = "d1010" - sides = 10 - -/obj/item/weapon/dice/d12 - name = "d12" - desc = "A dice with twelve sides." - icon_state = "d1212" - sides = 12 - -/obj/item/weapon/dice/d20 - name = "d20" - desc = "A dice with twenty sides." - icon_state = "d2020" - sides = 20 - -/obj/item/weapon/dice/d100 - name = "d100" - desc = "A dice with ten sides. This one is for the tens digit." - icon_state = "d10010" - sides = 10 - -/obj/item/weapon/dice/attack_self(mob/user as mob) - var/result = rand(1, sides) - var/comment = "" - if(sides == 20 && result == 20) - comment = "Nat 20!" - else if(sides == 20 && result == 1) - comment = "Ouch, bad luck." - icon_state = "[name][result]" - user.visible_message("[user] has thrown [src]. It lands on [result]. [comment]", \ - "You throw [src]. It lands on a [result]. [comment]", \ - "You hear [src] landing on a [result]. [comment]") diff --git a/code/modules/games/dice.dm b/code/modules/games/dice.dm new file mode 100644 index 00000000000..333d5ee5c36 --- /dev/null +++ b/code/modules/games/dice.dm @@ -0,0 +1,117 @@ +/obj/item/weapon/dice + name = "d6" + desc = "A dice with six sides." + icon = 'icons/obj/dice.dmi' + icon_state = "d66" + w_class = ITEMSIZE_TINY + var/sides = 6 + var/result = 6 + attack_verb = list("diced") + +/obj/item/weapon/dice/New() + icon_state = "[name][rand(1,sides)]" + +/obj/item/weapon/dice/d4 + name = "d4" + desc = "A dice with four sides." + icon_state = "d44" + sides = 4 + result = 4 + +/obj/item/weapon/dice/d8 + name = "d8" + desc = "A dice with eight sides." + icon_state = "d88" + sides = 8 + result = 8 + +/obj/item/weapon/dice/d10 + name = "d10" + desc = "A dice with ten sides." + icon_state = "d1010" + sides = 10 + result = 10 + +/obj/item/weapon/dice/d12 + name = "d12" + desc = "A dice with twelve sides." + icon_state = "d1212" + sides = 12 + result = 12 + +/obj/item/weapon/dice/d20 + name = "d20" + desc = "A dice with twenty sides." + icon_state = "d2020" + sides = 20 + result = 20 + +/obj/item/weapon/dice/d100 + name = "d100" + desc = "A dice with ten sides. This one is for the tens digit." + icon_state = "d10010" + sides = 10 + result = 10 + +/obj/item/weapon/dice/attack_self(mob/user as mob) + rollDice(user, 0) + +/obj/item/weapon/dice/proc/rollDice(mob/user as mob, var/silent = 0) + result = rand(1, sides) + icon_state = "[name][result]" + + if(!silent) + var/comment = "" + if(sides == 20 && result == 20) + comment = "Nat 20!" + else if(sides == 20 && result == 1) + comment = "Ouch, bad luck." + + user.visible_message("[user] has thrown [src]. It lands on [result]. [comment]", \ + "You throw [src]. It lands on a [result]. [comment]", \ + "You hear [src] landing on a [result]. [comment]") + +//Liar's Dice cup +/obj/item/weapon/storage/dicecup + name = "dice cup" + desc = "A cup used to conceal and hold dice." + icon = 'icons/obj/dice.dmi' + icon_state = "dicecup" + w_class = ITEMSIZE_SMALL + storage_slots = 5 + can_hold = list( + /obj/item/weapon/dice, + ) + +/obj/item/weapon/storage/dicecup/attack_self(mob/user as mob) + user.visible_message("[user] shakes [src].", \ + "You shake [src].", \ + "You hear dice rolling.") + rollCup(user) + +/obj/item/weapon/storage/dicecup/proc/rollCup(mob/user as mob) + for(var/obj/item/weapon/dice/I in src.contents) + var/obj/item/weapon/dice/D = I + D.rollDice(user, 1) + +/obj/item/weapon/storage/dicecup/proc/revealDice(var/mob/viewer) + for(var/obj/item/weapon/dice/I in src.contents) + var/obj/item/weapon/dice/D = I + to_chat(viewer, "The [D.name] shows a [D.result].") + +/obj/item/weapon/storage/dicecup/verb/peekAtDice() + set category = "Object" + set name = "Peek at Dice" + set desc = "Peek at the dice under your cup." + + revealDice(usr) + +/obj/item/weapon/storage/dicecup/verb/revealDiceHand() + + set category = "Object" + set name = "Reveal Dice" + set desc = "Reveal the dice hidden under your cup." + + for(var/mob/living/player in viewers(3)) + to_chat(player, "[usr] reveals their dice.") + revealDice(player) \ No newline at end of file diff --git a/icons/obj/dice.dmi b/icons/obj/dice.dmi index f6a209b4687..17a3c64cd41 100644 Binary files a/icons/obj/dice.dmi and b/icons/obj/dice.dmi differ diff --git a/polaris.dme b/polaris.dme index 14c6914ade6..f0502791443 100644 --- a/polaris.dme +++ b/polaris.dme @@ -818,7 +818,6 @@ #include "code\game\objects\items\weapons\cigs_lighters.dm" #include "code\game\objects\items\weapons\clown_items.dm" #include "code\game\objects\items\weapons\cosmetics.dm" -#include "code\game\objects\items\weapons\dice.dm" #include "code\game\objects\items\weapons\dna_injector.dm" #include "code\game\objects\items\weapons\explosives.dm" #include "code\game\objects\items\weapons\extinguisher.dm" @@ -1394,6 +1393,7 @@ #include "code\modules\games\cah_white_cards.dm" #include "code\modules\games\cardemon.dm" #include "code\modules\games\cards.dm" +#include "code\modules\games\dice.dm" #include "code\modules\games\spaceball_cards.dm" #include "code\modules\games\tarot.dm" #include "code\modules\genetics\side_effects.dm"