Christmas time is once a year..
Made changes to allow casino manual to fit into the casino wallet for easy reading. Made Santa's sack! Only he can take presents from it! Made the new presents have a nice wide selection of gifts, but chaos presents are disabled so far! Fixed 'the cake' somewhat and made a grenade to spawn its components. made Santa's coat. made an overdrive version of the confetti gun.
@@ -650,6 +650,7 @@
|
||||
icon = 'icons/obj/casino_ch.dmi'
|
||||
icon_state ="casinomanual"
|
||||
author = "Sleazy Serpent Saren"
|
||||
w_class = 2 // To allow it to be stuffed away into wallets for easy readings during events
|
||||
title = "A dummy guide to losing your thalers"
|
||||
dat = {"<html>
|
||||
<head>
|
||||
|
||||
@@ -14,3 +14,61 @@
|
||||
pixel_y = rand(-10,10)
|
||||
icon_state = "gift[pick("1", "2", "3")]_[pick("g", "r", "b", "y", "p")]"
|
||||
return
|
||||
|
||||
/obj/structure/event/santa_sack
|
||||
|
||||
name = "Santa's sack"
|
||||
desc = "A huge velvet sack full of presents! Only those who has been nice gets one from Santa!"
|
||||
icon = 'icons/obj/storage_ch.dmi'
|
||||
icon_state = "santasack"
|
||||
|
||||
var/santa_ckey = null //The ckey set for the person acting as Santa, will be the only one able to anchor/unachor as well as retrieve presents.
|
||||
var/list/nice_list_log = list() //The log that will contain all characters and their ckeys that the santa has given a gift to.
|
||||
var/list/ckey_log = list() //The log that ensures nobody is naughty and tries to trick Santa into giving them twice!
|
||||
anchored = 1.0
|
||||
density = 1
|
||||
|
||||
/obj/structure/event/santa_sack/verb/setanchor()
|
||||
set name = "Bind/unbind sack"
|
||||
set category = "Object"
|
||||
set src in view(1)
|
||||
|
||||
if(usr.incapacitated())
|
||||
return
|
||||
if(usr.ckey == santa_ckey)
|
||||
if(anchored == 0)
|
||||
anchored = 1
|
||||
to_chat(usr,"<span class='notice'>You bind the sack, none can make off with it now!</span> ")
|
||||
else
|
||||
anchored = 0
|
||||
to_chat(usr,"<span class='You unbind the sack, you can now drag it off. But so can anyone else!</span> ")
|
||||
else
|
||||
to_chat(usr, span("warning", "Only Santa can bind and unbind his sack!"))
|
||||
return
|
||||
|
||||
/obj/structure/event/santa_sack/attack_hand(mob/user as mob)
|
||||
. = ..()
|
||||
if(usr.ckey != santa_ckey)
|
||||
to_chat(usr, span("warning", "Only Santa can give presents! (Be nice or you might end up in Santa's sack!)"))
|
||||
return
|
||||
|
||||
var/list/receivers = list()
|
||||
for(var/mob/living/R in oview(user.loc,1))
|
||||
receivers += R
|
||||
|
||||
var/mob/living/T = input("Choose who to give a present to.") as null| mob in view(user.loc,1)
|
||||
if(!T || !T.ckey)
|
||||
return
|
||||
|
||||
if(ckey_log[T.ckey])
|
||||
to_chat(usr, span("warning", "This one already got a present!"))
|
||||
return
|
||||
|
||||
new /obj/item/weapon/a_gift/advanced(src.loc)
|
||||
for(var/mob/O in view(src, null))
|
||||
O.show_message("<span class='warning'>Santa pulls out a present for [T.name]! \"Merry Christmas!</span>",1)
|
||||
|
||||
var/santa_log = "[T.ckey] playing as [T.name] got a present!"
|
||||
nice_list_log[++nice_list_log.len] = santa_log
|
||||
ckey_log[user.ckey] = TRUE
|
||||
//Currently doesnt have an ingame way to show. Can only be viewed through View-Variables, to ensure theres no chance of players ckeys exposed - Jack
|
||||
@@ -15,6 +15,7 @@
|
||||
pixel_x = rand(-10,10)
|
||||
pixel_y = rand(-10,10)
|
||||
|
||||
/* DISABLED FOR NOW: STRONG TOYS IN REWARDS OF POOL - Jack
|
||||
chaos = rand(1, 100)
|
||||
if(chaos == 1)
|
||||
icon_state = "gift_chaos"
|
||||
@@ -22,60 +23,114 @@
|
||||
else
|
||||
icon_state = "gift[pick("1", "2", "3")]_[pick("g", "r", "b", "y", "p")]"
|
||||
chaos = FALSE
|
||||
*/
|
||||
|
||||
icon_state = "gift[pick("1", "2", "3")]_[pick("g", "r", "b", "y", "p")]"
|
||||
item_state = icon_state
|
||||
chaos = FALSE
|
||||
return
|
||||
|
||||
/obj/item/weapon/a_gift/advanced/attack_self(mob/M as mob) //WIP - add more items to list! - Jack
|
||||
var/gift_type = pick(
|
||||
/obj/item/weapon/storage/wallet,
|
||||
/obj/item/weapon/storage/photo_album,
|
||||
/obj/item/weapon/storage/box/snappops,
|
||||
/obj/item/weapon/storage/fancy/crayons,
|
||||
/obj/item/weapon/storage/backpack/holding,
|
||||
/obj/item/weapon/storage/belt/champion,
|
||||
/obj/item/weapon/soap/deluxe,
|
||||
/obj/item/weapon/pickaxe/silver,
|
||||
/obj/item/weapon/pen/invisible,
|
||||
/obj/item/weapon/lipstick/random,
|
||||
/obj/item/weapon/grenade/smokebomb,
|
||||
/obj/item/weapon/corncob,
|
||||
/obj/item/weapon/contraband/poster,
|
||||
/obj/item/weapon/book/manual/barman_recipes,
|
||||
/obj/item/weapon/book/manual/chef_recipes,
|
||||
/obj/item/weapon/bikehorn,
|
||||
/obj/item/weapon/beach_ball,
|
||||
/obj/item/weapon/beach_ball/holoball,
|
||||
/obj/item/toy/balloon,
|
||||
/obj/item/toy/blink,
|
||||
/obj/item/toy/crossbow,
|
||||
/obj/item/weapon/gun/projectile/revolver/capgun,
|
||||
/obj/item/toy/katana,
|
||||
/obj/item/toy/mecha/deathripley,
|
||||
/obj/item/toy/mecha/durand,
|
||||
/obj/item/toy/mecha/fireripley,
|
||||
/obj/item/toy/mecha/gygax,
|
||||
/obj/item/toy/mecha/honk,
|
||||
/obj/item/toy/mecha/marauder,
|
||||
/obj/item/toy/mecha/mauler,
|
||||
/obj/item/toy/mecha/odysseus,
|
||||
/obj/item/toy/mecha/phazon,
|
||||
/obj/item/toy/mecha/ripley,
|
||||
/obj/item/toy/mecha/seraph,
|
||||
/obj/item/toy/spinningtoy,
|
||||
/obj/item/toy/sword,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiadeus,
|
||||
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris,
|
||||
/obj/item/device/paicard,
|
||||
/obj/item/device/instrument/violin,
|
||||
/obj/item/weapon/storage/belt/utility/full,
|
||||
/obj/item/clothing/accessory/tie/horrible)
|
||||
var/gift_type_advanced = pick(
|
||||
/obj/item/device/binoculars/spyglass,
|
||||
/obj/item/device/bodysnatcher,
|
||||
/obj/item/device/cataloguer/advanced,
|
||||
/obj/item/device/flashlight/slime,
|
||||
/obj/item/device/lightreplacer,
|
||||
/obj/item/weapon/book/tome,
|
||||
/obj/item/weapon/cell/device/weapon/recharge/alien/hybrid,
|
||||
/obj/item/weapon/disk/nifsoft/compliance,
|
||||
/obj/item/weapon/implanter/adrenalin,
|
||||
/obj/item/weapon/lego,
|
||||
/obj/item/weapon/moneybag,
|
||||
/obj/item/weapon/pickaxe/diamonddrill,
|
||||
/obj/item/weapon/rcd/advanced/loaded,
|
||||
/obj/item/weapon/bluespace_harpoon,
|
||||
/obj/item/weapon/storage/backpack/dufflebag/syndie,
|
||||
/obj/item/weapon/storage/belt/medical/alien,
|
||||
/obj/item/weapon/storage/toolbox/syndicate/powertools,
|
||||
/obj/item/weapon/surgical/FixOVein/alien,
|
||||
/obj/item/weapon/surgical/bone_clamp/alien,
|
||||
/obj/item/weapon/surgical/cautery/alien,
|
||||
/obj/item/weapon/surgical/circular_saw/alien,
|
||||
/obj/item/weapon/surgical/hemostat/alien,
|
||||
/obj/item/weapon/surgical/retractor/alien,
|
||||
/obj/item/weapon/surgical/scalpel/alien,
|
||||
/obj/item/weapon/surgical/surgicaldrill/alien,
|
||||
/obj/item/weapon/sword/fluff/joanaria/scisword,
|
||||
/obj/item/weapon/tool/wrench/alien,
|
||||
/obj/item/weapon/tool/wirecutters/alien,
|
||||
/obj/item/weapon/tool/screwdriver/alien,
|
||||
/obj/item/weapon/tool/crowbar/alien,
|
||||
/obj/item/weapon/weldingtool/alien,
|
||||
/obj/item/weapon/twohanded/fireaxe/fluff/mjollnir,
|
||||
/obj/item/weapon/gun/launcher/confetti_cannon/overdrive,
|
||||
/obj/item/weapon/gun/energy/sizegun,
|
||||
/obj/item/weapon/gun/energy/netgun,
|
||||
/obj/item/weapon/storage/belt/utility/alien,
|
||||
/obj/item/clothing/suit/armor/alien,
|
||||
/obj/item/clothing/glasses/monocoole,
|
||||
/obj/item/weapon/reagent_containers/spray/chemsprayer,
|
||||
/obj/item/weapon/reagent_containers/glass/beaker/bluespace,
|
||||
/obj/item/weapon/reagent_containers/glass/beaker/noreact,
|
||||
/obj/item/weapon/storage/box/casino/costume_whitebunny,
|
||||
/obj/item/weapon/storage/box/casino/costume_blackbunny,
|
||||
/obj/item/weapon/storage/box/casino/costume_sexymime,
|
||||
/obj/item/weapon/storage/box/casino/costume_sexyclown,
|
||||
/obj/item/weapon/storage/box/casino/costume_nyangirl,
|
||||
/obj/item/weapon/storage/box/casino/costume_wizard,
|
||||
/obj/item/weapon/storage/box/casino/costume_chicken,
|
||||
/obj/item/weapon/storage/box/casino/costume_gladiator,
|
||||
/obj/item/weapon/storage/box/casino/costume_pirate,
|
||||
/obj/item/weapon/storage/box/casino/costume_commie,
|
||||
/obj/item/weapon/storage/box/casino/costume_imperiummonk,
|
||||
/obj/item/weapon/storage/box/casino/costume_plaguedoctor,
|
||||
/obj/item/weapon/storage/box/casino/costume_cutewitch,
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino,
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/goat,
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/armadillo,
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/cat,
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/chicken,
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/cow,
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/corgi,
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/fox,
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/lizard,
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/penguin,
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/snake,
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/yithian,
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/tindalos,
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/fennec,
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/redpanda,
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/horse,
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/otie,
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/otie/chubby,
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/zorgoia,
|
||||
/obj/item/weapon/grenade/confetti)
|
||||
|
||||
if(!ispath(gift_type,/obj/item)) return
|
||||
var/gift_type_chaos = pick(
|
||||
/obj/item/weapon/lego/gib,
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/infinitycake,
|
||||
/obj/item/weapon/gun/energy/meteorgun,
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/universal_technomancer,
|
||||
/obj/item/weapon/spellbook,
|
||||
/obj/item/weapon/book/tome/imbued)
|
||||
|
||||
var/obj/item/I = new gift_type(M)
|
||||
if(!ispath(gift_type_advanced,/obj/item)) return
|
||||
|
||||
var/obj/item/I1 = new gift_type_advanced(M)
|
||||
|
||||
if(chaos == TRUE)
|
||||
var/obj/item/I2 = new gift_type_chaos(M)
|
||||
M.remove_from_mob(src)
|
||||
M.put_in_hands(I)
|
||||
I.add_fingerprint(M)
|
||||
M.put_in_hands(I2)
|
||||
I2.add_fingerprint(M)
|
||||
|
||||
qdel(src)
|
||||
return
|
||||
else
|
||||
M.remove_from_mob(src)
|
||||
M.put_in_hands(I1)
|
||||
I1.add_fingerprint(M)
|
||||
|
||||
qdel(src)
|
||||
return
|
||||
@@ -113,3 +113,37 @@
|
||||
desc = "It is set to detonate in 5 seconds. It will release a zorgoia that has been won from the golden goose casino!"
|
||||
name = "Casino Creature Container (Zorgoia)"
|
||||
spawner_type = /mob/living/simple_mob/otie/zorgoia/friendly
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/infinitycake
|
||||
desc = "Some say a cheese in his hubris made a cake to rival the gods. Sometimes it appears where it is least expected, only to vanish a few hours later.."
|
||||
name = "Mysterious Grenade"
|
||||
spawner_type = null
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/infinitycake/detonate()
|
||||
|
||||
var/turf/T = get_turf(src)
|
||||
playsound(T, 'sound/effects/phasein.ogg', 100, 1)
|
||||
|
||||
new /obj/structure/thecake(T)
|
||||
new /obj/item/weapon/thecake_layer(T)
|
||||
new /obj/item/weapon/thecake_layer/three(T)
|
||||
new /obj/item/weapon/thecake_layer/four(T)
|
||||
new /obj/item/weapon/thecake_layer/five(T)
|
||||
new /obj/item/weapon/thecake_layer/six(T)
|
||||
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/universal_technomancer
|
||||
name = "Mysterious grenade (Tell an admin on server or discord before playing with!)"
|
||||
desc = "Sometimes one wishes upon a lucky star and obtains by pure chance great power! (TELL AN ADMIN ON DISCORD OR SERVER BEFORE PLAYING WITH)"
|
||||
|
||||
/obj/item/weapon/grenade/spawnergrenade/casino/universal_technomancer/detonate()
|
||||
var/turf/T = get_turf(src)
|
||||
playsound(T, 'sound/effects/phasein.ogg', 100, 1)
|
||||
|
||||
new /obj/item/weapon/technomancer_catalog/universal(T)
|
||||
new /obj/item/weapon/technomancer_core/universal(T)
|
||||
|
||||
qdel(src)
|
||||
return
|
||||
12
code/modules/clothing/suits/hooded_ch.dm
Normal file
@@ -0,0 +1,12 @@
|
||||
|
||||
|
||||
/obj/item/clothing/suit/storage/hooded/wintercoat/security/santa
|
||||
name = "Santa's coat"
|
||||
icon = 'icons/obj/clothing/uniforms_ch.dmi'
|
||||
icon_override = 'icons/mob/suit_ch.dmi'
|
||||
icon_state = "santacoat"
|
||||
item_state_slots = list(slot_r_hand_str = "coatsecurity", slot_l_hand_str = "coatsecurity")
|
||||
hoodtype = /obj/item/clothing/head/hood/winter/security/santa
|
||||
|
||||
/obj/item/clothing/head/hood/winter/security/santa
|
||||
name = "Santa's hood"
|
||||
@@ -193,10 +193,10 @@
|
||||
if(edible == 1)
|
||||
HasSliceMissing()
|
||||
if(slices <= 0)
|
||||
user << "The cake hums away quietly as the singulo powered goodness slowly recovers the large amount of lost mass, best to give it a moment before cutting another slice."
|
||||
to_chat(usr, span("warning", "The cake hums away quietly as the singulo powered goodness slowly recovers the large amount of lost mass, best to give it a moment before cutting another slice."))
|
||||
return
|
||||
else
|
||||
user << "You cut a slice of the cake. The slice looks like the cake was just baked, and you can see before your eyes as the spot where you cut the slice slowly regenerates!"
|
||||
to_chat(user, "<span class='notice'>You cut a slice of the cake. The slice looks like the cake was just baked, and you can see before your eyes as the spot where you cut the slice slowly regenerates!</span>")
|
||||
slices = slices - 1
|
||||
new /obj/item/weapon/reagent_containers/food/snacks/thecakeslice(src.loc)
|
||||
|
||||
@@ -206,23 +206,24 @@
|
||||
if(istype(W,/obj/item/weapon/thecake_layer))
|
||||
var/obj/item/weapon/thecake_layer/C = W
|
||||
if(C.layer_stage == 5)
|
||||
user << "Finally! The cherry on the top, the almighty infinity cake is complete!"
|
||||
for(var/mob/O in view(src, null))
|
||||
O.show_message("<span class='warning'>It has been done! \The Infinity Cake has been assembled!</span>",1)
|
||||
qdel(W)
|
||||
stage++
|
||||
desc = desclist[stage]
|
||||
icon_state = "thecake_stage-[stage]"
|
||||
icon_state = "thecake_finished"
|
||||
edible = 1
|
||||
name = "The Infinity Cake!"
|
||||
else if(stage == maxstages)
|
||||
user << "The cake is already done!"
|
||||
to_chat(usr, span("warning", "The cake is already done!"))
|
||||
else if(stage == C.layer_stage)
|
||||
user << "You add another layer to the cake, nice."
|
||||
to_chat(usr, span("warning", "You add another layer to the cake, nice."))
|
||||
qdel(W)
|
||||
stage++
|
||||
desc = desclist[stage]
|
||||
icon_state = "thecake_stage-[stage]"
|
||||
else
|
||||
user << "Hmm, doesnt seem like this layer is supposed to be added there?"
|
||||
to_chat(usr, span("warning", "Hmm, doesnt seem like this layer is supposed to be added there?"))
|
||||
|
||||
// Chaos cake
|
||||
|
||||
|
||||
@@ -49,3 +49,9 @@
|
||||
|
||||
/obj/item/weapon/gun/launcher/confetti_cannon/handle_post_fire(mob/user)
|
||||
chambered = null
|
||||
|
||||
/obj/item/weapon/gun/launcher/confetti_cannon/overdrive
|
||||
name = "overdrive confetti cannon"
|
||||
desc = "For those times when you absolutely need colored paper everywhere, EVERYWHERE."
|
||||
confetti_charge = 50
|
||||
max_confetti = 50
|
||||
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 9.2 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.4 KiB |
@@ -2070,6 +2070,7 @@
|
||||
#include "code\modules\clothing\suits\bio.dm"
|
||||
#include "code\modules\clothing\suits\bio_vr.dm"
|
||||
#include "code\modules\clothing\suits\hooded.dm"
|
||||
#include "code\modules\clothing\suits\hooded_ch.dm"
|
||||
#include "code\modules\clothing\suits\hooded_vr.dm"
|
||||
#include "code\modules\clothing\suits\hooded_yw.dm"
|
||||
#include "code\modules\clothing\suits\jobs.dm"
|
||||
|
||||