From fd070196dd3f8a84ab03609a3c8b6cf0c8f374d9 Mon Sep 17 00:00:00 2001 From: Anewbe Date: Sat, 15 Apr 2017 20:18:46 -0500 Subject: [PATCH 1/2] Adds the Liar's Dice game --- code/game/objects/items/weapons/dice.dm | 59 ------------ code/modules/games/dice.dm | 117 ++++++++++++++++++++++++ icons/obj/dice.dmi | Bin 2961 -> 3130 bytes polaris.dme | 2 +- 4 files changed, 118 insertions(+), 60 deletions(-) delete mode 100644 code/game/objects/items/weapons/dice.dm create mode 100644 code/modules/games/dice.dm diff --git a/code/game/objects/items/weapons/dice.dm b/code/game/objects/items/weapons/dice.dm deleted file mode 100644 index 9099ff3bd1..0000000000 --- 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 0000000000..333d5ee5c3 --- /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 f6a209b4687244f764fa7fe155f776199588d020..17a3c64cd4163fba6faeeb4f102f22071d6aec7d 100644 GIT binary patch delta 2957 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 Date: Mon, 17 Apr 2017 12:44:34 -0500 Subject: [PATCH 2/2] Changelog, adds the dicecup to the loadout --- .../objects/items/weapons/storage/misc.dm | 27 ------------ .../loadout/loadout_general.dm | 4 ++ code/modules/games/dice.dm | 44 ++++++++++++++++++- html/changelogs/Anewbe - Dice Cup.yml | 36 +++++++++++++++ 4 files changed, 82 insertions(+), 29 deletions(-) create mode 100644 html/changelogs/Anewbe - Dice Cup.yml diff --git a/code/game/objects/items/weapons/storage/misc.dm b/code/game/objects/items/weapons/storage/misc.dm index bf4856501a..64952046a5 100644 --- a/code/game/objects/items/weapons/storage/misc.dm +++ b/code/game/objects/items/weapons/storage/misc.dm @@ -1,30 +1,3 @@ -/obj/item/weapon/storage/pill_bottle/dice //7d6 - name = "bag of dice" - desc = "It's a small bag with dice inside." - icon = 'icons/obj/dice.dmi' - icon_state = "dicebag" - -/obj/item/weapon/storage/pill_bottle/dice/New() - ..() - for(var/i = 1 to 7) - new /obj/item/weapon/dice( src ) - -/obj/item/weapon/storage/pill_bottle/dice_nerd //DnD dice - name = "bag of gaming dice" - desc = "It's a small bag with gaming dice inside." - icon = 'icons/obj/dice.dmi' - icon_state = "magicdicebag" - -/obj/item/weapon/storage/pill_bottle/dice_nerd/New() - ..() - new /obj/item/weapon/dice/d4( src ) - new /obj/item/weapon/dice( src ) - new /obj/item/weapon/dice/d8( src ) - new /obj/item/weapon/dice/d10( src ) - new /obj/item/weapon/dice/d12( src ) - new /obj/item/weapon/dice/d20( src ) - new /obj/item/weapon/dice/d100( src ) - /* * Donut Box */ diff --git a/code/modules/client/preference_setup/loadout/loadout_general.dm b/code/modules/client/preference_setup/loadout/loadout_general.dm index a97d5776fc..6f3115fd2f 100644 --- a/code/modules/client/preference_setup/loadout/loadout_general.dm +++ b/code/modules/client/preference_setup/loadout/loadout_general.dm @@ -10,6 +10,10 @@ display_name = "dice pack (gaming)" path = /obj/item/weapon/storage/pill_bottle/dice_nerd +/datum/gear/dice/cup + display_name = "dice cup and dice" + path = /obj/item/weapon/storage/dicecup/loaded + /datum/gear/cards display_name = "deck of cards" path = /obj/item/weapon/deck/cards diff --git a/code/modules/games/dice.dm b/code/modules/games/dice.dm index 333d5ee5c3..039631cdb4 100644 --- a/code/modules/games/dice.dm +++ b/code/modules/games/dice.dm @@ -71,7 +71,41 @@ "You throw [src]. It lands on a [result]. [comment]", \ "You hear [src] landing on a [result]. [comment]") -//Liar's Dice cup +/* + * Dice packs + */ + +/obj/item/weapon/storage/pill_bottle/dice //7d6 + name = "bag of dice" + desc = "It's a small bag with dice inside." + icon = 'icons/obj/dice.dmi' + icon_state = "dicebag" + +/obj/item/weapon/storage/pill_bottle/dice/New() + ..() + for(var/i = 1 to 7) + new /obj/item/weapon/dice( src ) + +/obj/item/weapon/storage/pill_bottle/dice_nerd //DnD dice + name = "bag of gaming dice" + desc = "It's a small bag with gaming dice inside." + icon = 'icons/obj/dice.dmi' + icon_state = "magicdicebag" + +/obj/item/weapon/storage/pill_bottle/dice_nerd/New() + ..() + new /obj/item/weapon/dice/d4( src ) + new /obj/item/weapon/dice( src ) + new /obj/item/weapon/dice/d8( src ) + new /obj/item/weapon/dice/d10( src ) + new /obj/item/weapon/dice/d12( src ) + new /obj/item/weapon/dice/d20( src ) + new /obj/item/weapon/dice/d100( src ) + +/* + *Liar's Dice cup + */ + /obj/item/weapon/storage/dicecup name = "dice cup" desc = "A cup used to conceal and hold dice." @@ -114,4 +148,10 @@ for(var/mob/living/player in viewers(3)) to_chat(player, "[usr] reveals their dice.") - revealDice(player) \ No newline at end of file + revealDice(player) + + +/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 diff --git a/html/changelogs/Anewbe - Dice Cup.yml b/html/changelogs/Anewbe - Dice Cup.yml new file mode 100644 index 0000000000..8c9803b363 --- /dev/null +++ b/html/changelogs/Anewbe - Dice Cup.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Anewbe + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Adds a cup for dice games, in the loadout." \ No newline at end of file