mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 19:22:56 +00:00
Crayons
Updated the way they work. Clown now starts with a rainbow crayon that can draw in any two colours. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1533 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -490,6 +490,9 @@
|
|||||||
ticker.mode:update_all_rev_icons() //So the icon actually appears
|
ticker.mode:update_all_rev_icons() //So the icon actually appears
|
||||||
if (src.occupant.mind in ticker.mode:head_revolutionaries)
|
if (src.occupant.mind in ticker.mode:head_revolutionaries)
|
||||||
ticker.mode:update_all_rev_icons()
|
ticker.mode:update_all_rev_icons()
|
||||||
|
if ("nuclear emergency")
|
||||||
|
if (src.occupant.mind in ticker.mode:syndicates)
|
||||||
|
ticker.mode:update_all_synd_icons()
|
||||||
if ("cult")
|
if ("cult")
|
||||||
if (src.occupant.mind in ticker.mode:cult)
|
if (src.occupant.mind in ticker.mode:cult)
|
||||||
ticker.mode:add_cultist(src.occupant.mind)
|
ticker.mode:add_cultist(src.occupant.mind)
|
||||||
|
|||||||
@@ -223,101 +223,18 @@ obj/item/toy/blink
|
|||||||
/obj/item/toy/crayonbox
|
/obj/item/toy/crayonbox
|
||||||
name = "box of crayons"
|
name = "box of crayons"
|
||||||
desc = "A box of crayons for all your rune drawing needs."
|
desc = "A box of crayons for all your rune drawing needs."
|
||||||
icon = 'toy.dmi'
|
icon = 'crayons.dmi'
|
||||||
icon_state = "crayonbox6"
|
icon_state = "crayonbox"
|
||||||
|
w_class = 2.0
|
||||||
/obj/item/toy/crayonbox/New()
|
|
||||||
..()
|
|
||||||
new /obj/item/toy/crayon/red(src)
|
|
||||||
new /obj/item/toy/crayon/orange(src)
|
|
||||||
new /obj/item/toy/crayon/yellow(src)
|
|
||||||
new /obj/item/toy/crayon/green(src)
|
|
||||||
new /obj/item/toy/crayon/blue(src)
|
|
||||||
new /obj/item/toy/crayon/purple(src)
|
|
||||||
|
|
||||||
/obj/item/toy/crayonbox/attack_hand(mob/user as mob)
|
|
||||||
if(user.r_hand == src || user.l_hand == src)
|
|
||||||
if(!contents.len)
|
|
||||||
user << "\red You're out of crayons!"
|
|
||||||
return
|
|
||||||
else
|
|
||||||
var/crayon = contents[contents.len]
|
|
||||||
user.contents += crayon
|
|
||||||
if(user.hand)
|
|
||||||
user.l_hand = crayon
|
|
||||||
else
|
|
||||||
user.r_hand = crayon
|
|
||||||
crayon:layer = 20
|
|
||||||
else
|
|
||||||
return ..()
|
|
||||||
icon_state = "crayonbox[contents.len]"
|
|
||||||
return
|
|
||||||
|
|
||||||
/obj/item/toy/crayon
|
/obj/item/toy/crayon
|
||||||
name = "crayon"
|
name = "crayon"
|
||||||
desc = "A colourful crayon. Looks tasty. Mmmm..."
|
desc = "A colourful crayon. Looks tasty. Mmmm..."
|
||||||
icon = 'toy.dmi'
|
icon = 'crayons.dmi'
|
||||||
icon_state = "crayonred"
|
icon_state = "crayonred"
|
||||||
var/colour = "000000" //RGB
|
w_class = 1.0
|
||||||
var/shadeColour = "000000" //RGB
|
var/colour = "#FF0000" //RGB
|
||||||
|
var/shadeColour = "#220000" //RGB
|
||||||
/obj/item/toy/crayon/red
|
var/uses = 30 //0 for unlimited uses
|
||||||
icon_state = "crayonred"
|
var/instant = 0
|
||||||
colour = "DA0000"
|
var/colourName = "red" //for updateIcon purposes
|
||||||
shadeColour = "810C0C"
|
|
||||||
|
|
||||||
/obj/item/toy/crayon/orange
|
|
||||||
icon_state = "crayonorange"
|
|
||||||
colour = "FF9300"
|
|
||||||
shadeColour = "A55403"
|
|
||||||
|
|
||||||
/obj/item/toy/crayon/yellow
|
|
||||||
icon_state = "crayonyellow"
|
|
||||||
colour = "FFF200"
|
|
||||||
shadeColour = "886422"
|
|
||||||
|
|
||||||
/obj/item/toy/crayon/green
|
|
||||||
icon_state = "crayongreen"
|
|
||||||
colour = "A8E61D"
|
|
||||||
shadeColour = "61840F"
|
|
||||||
|
|
||||||
/obj/item/toy/crayon/blue
|
|
||||||
icon_state = "crayonblue"
|
|
||||||
colour = "00B7EF"
|
|
||||||
shadeColour = "0082A8"
|
|
||||||
|
|
||||||
/obj/item/toy/crayon/purple
|
|
||||||
icon_state = "crayonpurple"
|
|
||||||
colour = "DA00FF"
|
|
||||||
shadeColour = "810CFF"
|
|
||||||
|
|
||||||
/obj/item/toy/crayon/mime
|
|
||||||
icon_state = "crayonmime"
|
|
||||||
colour = "FFFFFF"
|
|
||||||
shadeColour = "000000"
|
|
||||||
|
|
||||||
/obj/item/toy/crayon/afterattack(atom/target, mob/user as mob)
|
|
||||||
if(istype(target,/turf/simulated/floor))
|
|
||||||
new /obj/crayonrune(target,colour,shadeColour)
|
|
||||||
user << "You draw a rune on the [target.name]."
|
|
||||||
return
|
|
||||||
|
|
||||||
/obj/crayonrune
|
|
||||||
name = "rune"
|
|
||||||
desc = "A rune drawn in crayon."
|
|
||||||
icon = 'rune.dmi'
|
|
||||||
layer = 2.1
|
|
||||||
|
|
||||||
/obj/crayonrune/New(location,main = "FFFFFF",shade = "000000")
|
|
||||||
..()
|
|
||||||
loc = location
|
|
||||||
var/runeShape = rand(1,6)
|
|
||||||
|
|
||||||
var/icon/mainOverlay = new/icon('rune.dmi',"main[runeShape]",2.1)
|
|
||||||
mainOverlay.Blend("#[main]",ICON_ADD)
|
|
||||||
|
|
||||||
var/icon/shadeOverlay = new/icon('rune.dmi',"shade[runeShape]",2.1)
|
|
||||||
shadeOverlay.Blend("#[shade]",ICON_ADD)
|
|
||||||
|
|
||||||
overlays += mainOverlay
|
|
||||||
overlays += shadeOverlay
|
|
||||||
@@ -339,7 +339,7 @@
|
|||||||
src.equip_if_possible(new /obj/item/weapon/reagent_containers/food/snacks/grown/banana(src), slot_in_backpack)
|
src.equip_if_possible(new /obj/item/weapon/reagent_containers/food/snacks/grown/banana(src), slot_in_backpack)
|
||||||
src.equip_if_possible(new /obj/item/weapon/bikehorn(src), slot_in_backpack)
|
src.equip_if_possible(new /obj/item/weapon/bikehorn(src), slot_in_backpack)
|
||||||
src.equip_if_possible(new /obj/item/weapon/stamp/clown(src), slot_in_backpack)
|
src.equip_if_possible(new /obj/item/weapon/stamp/clown(src), slot_in_backpack)
|
||||||
src.equip_if_possible(new /obj/item/toy/crayonbox(src), slot_in_backpack)
|
src.equip_if_possible(new /obj/item/toy/crayon/rainbow(src), slot_in_backpack)
|
||||||
src.mutations |= 16
|
src.mutations |= 16
|
||||||
|
|
||||||
if ("Mime")
|
if ("Mime")
|
||||||
|
|||||||
@@ -209,6 +209,7 @@ text("<A href='?src=\ref[src];operation=oddbutton'>[src.oddbutton ? "Yes" : "No"
|
|||||||
target_types += /obj/decal/cleanable/blood/gibs/
|
target_types += /obj/decal/cleanable/blood/gibs/
|
||||||
target_types += /obj/decal/cleanable/oil
|
target_types += /obj/decal/cleanable/oil
|
||||||
target_types += /obj/decal/cleanable/robot_debris
|
target_types += /obj/decal/cleanable/robot_debris
|
||||||
|
target_types += /obj/decal/cleanable/crayon
|
||||||
|
|
||||||
/obj/machinery/bot/cleanbot/proc/clean(var/obj/decal/cleanable/target)
|
/obj/machinery/bot/cleanbot/proc/clean(var/obj/decal/cleanable/target)
|
||||||
src.anchored = 1
|
src.anchored = 1
|
||||||
|
|||||||
@@ -812,6 +812,9 @@ obj/machinery/hydroponics/attackby(var/obj/item/O as obj, var/mob/user as mob)
|
|||||||
ticker.mode:update_all_rev_icons() //So the icon actually appears
|
ticker.mode:update_all_rev_icons() //So the icon actually appears
|
||||||
if (podman.mind in ticker.mode:head_revolutionaries)
|
if (podman.mind in ticker.mode:head_revolutionaries)
|
||||||
ticker.mode:update_all_rev_icons()
|
ticker.mode:update_all_rev_icons()
|
||||||
|
if ("nuclear emergency")
|
||||||
|
if (podman.mind in ticker.mode:syndicates)
|
||||||
|
ticker.mode:update_all_synd_icons()
|
||||||
if ("cult")
|
if ("cult")
|
||||||
if (podman.mind in ticker.mode:cult)
|
if (podman.mind in ticker.mode:cult)
|
||||||
ticker.mode:add_cultist(podman.mind)
|
ticker.mode:add_cultist(podman.mind)
|
||||||
|
|||||||
@@ -31,6 +31,15 @@ BIKE HORN
|
|||||||
M.stunned = 8
|
M.stunned = 8
|
||||||
M.weakened = 5
|
M.weakened = 5
|
||||||
|
|
||||||
|
/obj/item/weapon/soap/afterattack(atom/target, mob/user as mob)
|
||||||
|
if(istype(target,/obj/decal/cleanable))
|
||||||
|
del(target)
|
||||||
|
user << "\blue You scrub the [name] out."
|
||||||
|
else
|
||||||
|
target.clean_blood()
|
||||||
|
user << "\blue You clean the [target.name]."
|
||||||
|
return
|
||||||
|
|
||||||
/obj/item/weapon/bikehorn/attack_self(mob/user as mob)
|
/obj/item/weapon/bikehorn/attack_self(mob/user as mob)
|
||||||
if (spam_flag == 0)
|
if (spam_flag == 0)
|
||||||
spam_flag = 1
|
spam_flag = 1
|
||||||
|
|||||||
@@ -73,10 +73,10 @@ MOP
|
|||||||
A.clean_blood()
|
A.clean_blood()
|
||||||
for(var/obj/rune/R in A)
|
for(var/obj/rune/R in A)
|
||||||
del(R)
|
del(R)
|
||||||
for(var/obj/crayonrune/R in A)
|
for(var/obj/decal/cleanable/crayon/R in A)
|
||||||
del(R)
|
del(R)
|
||||||
mopcount++
|
mopcount++
|
||||||
else if (istype(A, /obj/decal/cleanable/blood) || istype(A, /obj/overlay) || istype(A, /obj/decal/cleanable/xenoblood) || istype(A, /obj/rune) || istype(A,/obj/crayonrune) )
|
else if (istype(A, /obj/decal/cleanable/blood) || istype(A, /obj/overlay) || istype(A, /obj/decal/cleanable/xenoblood) || istype(A, /obj/rune) || istype(A,/obj/decal/cleanable/crayon) )
|
||||||
for(var/mob/O in viewers(user, null))
|
for(var/mob/O in viewers(user, null))
|
||||||
O.show_message(text("\red <B>[user] begins to clean [A]</B>"), 1)
|
O.show_message(text("\red <B>[user] begins to clean [A]</B>"), 1)
|
||||||
sleep(20)
|
sleep(20)
|
||||||
|
|||||||
161
code/game/objects/toys.dm
Normal file
161
code/game/objects/toys.dm
Normal file
@@ -0,0 +1,161 @@
|
|||||||
|
/*--------
|
||||||
|
//CONTAINS
|
||||||
|
CRAYONS
|
||||||
|
--------*/
|
||||||
|
/obj/item/toy/crayonbox/New()
|
||||||
|
..()
|
||||||
|
new /obj/item/toy/crayon/red(src)
|
||||||
|
new /obj/item/toy/crayon/orange(src)
|
||||||
|
new /obj/item/toy/crayon/yellow(src)
|
||||||
|
new /obj/item/toy/crayon/green(src)
|
||||||
|
new /obj/item/toy/crayon/blue(src)
|
||||||
|
new /obj/item/toy/crayon/purple(src)
|
||||||
|
updateIcon()
|
||||||
|
|
||||||
|
/obj/item/toy/crayonbox/proc/updateIcon()
|
||||||
|
overlays = list() //resets list
|
||||||
|
overlays += image('crayons.dmi',"crayonbox")
|
||||||
|
for(var/obj/item/toy/crayon/crayon in contents)
|
||||||
|
overlays += image('crayons.dmi',crayon.colourName)
|
||||||
|
|
||||||
|
/obj/item/toy/crayonbox/attackby(obj/item/W as obj, mob/user as mob)
|
||||||
|
if(istype(W,/obj/item/toy/crayon))
|
||||||
|
switch(W:colourName)
|
||||||
|
if("mime")
|
||||||
|
usr << "This crayon is too sad to be contained in this box."
|
||||||
|
return
|
||||||
|
if("rainbow")
|
||||||
|
usr << "This crayon is too powerful to be contained in this box."
|
||||||
|
return
|
||||||
|
else
|
||||||
|
usr << "You add the crayon to the box."
|
||||||
|
user.u_equip(W)
|
||||||
|
W.loc = src
|
||||||
|
if ((user.client && user.s_active != src))
|
||||||
|
user.client.screen -= W
|
||||||
|
W.dropped(user)
|
||||||
|
add_fingerprint(user)
|
||||||
|
updateIcon()
|
||||||
|
return
|
||||||
|
else
|
||||||
|
..()
|
||||||
|
|
||||||
|
/obj/item/toy/crayonbox/attack_hand(mob/user as mob)
|
||||||
|
if(user.r_hand == src || user.l_hand == src)
|
||||||
|
if(!contents.len)
|
||||||
|
user << "\red You're out of crayons!"
|
||||||
|
return
|
||||||
|
else
|
||||||
|
var/crayon = pick(contents)
|
||||||
|
user.contents += crayon
|
||||||
|
if(user.hand)
|
||||||
|
user.l_hand = crayon
|
||||||
|
else
|
||||||
|
user.r_hand = crayon
|
||||||
|
crayon:layer = 20
|
||||||
|
user << "You take the [crayon:colourName] crayon out of the box."
|
||||||
|
updateIcon()
|
||||||
|
else
|
||||||
|
return ..()
|
||||||
|
icon_state = "crayonbox[contents.len]"
|
||||||
|
return
|
||||||
|
|
||||||
|
/obj/item/toy/crayon/red
|
||||||
|
icon_state = "crayonred"
|
||||||
|
colour = "#DA0000"
|
||||||
|
shadeColour = "#810C0C"
|
||||||
|
colourName = "red"
|
||||||
|
|
||||||
|
/obj/item/toy/crayon/orange
|
||||||
|
icon_state = "crayonorange"
|
||||||
|
colour = "#FF9300"
|
||||||
|
shadeColour = "#A55403"
|
||||||
|
colourName = "orange"
|
||||||
|
|
||||||
|
/obj/item/toy/crayon/yellow
|
||||||
|
icon_state = "crayonyellow"
|
||||||
|
colour = "#FFF200"
|
||||||
|
shadeColour = "#886422"
|
||||||
|
colourName = "yellow"
|
||||||
|
|
||||||
|
/obj/item/toy/crayon/green
|
||||||
|
icon_state = "crayongreen"
|
||||||
|
colour = "#A8E61D"
|
||||||
|
shadeColour = "#61840F"
|
||||||
|
colourName = "green"
|
||||||
|
|
||||||
|
/obj/item/toy/crayon/blue
|
||||||
|
icon_state = "crayonblue"
|
||||||
|
colour = "#00B7EF"
|
||||||
|
shadeColour = "#0082A8"
|
||||||
|
colourName = "blue"
|
||||||
|
|
||||||
|
/obj/item/toy/crayon/purple
|
||||||
|
icon_state = "crayonpurple"
|
||||||
|
colour = "#DA00FF"
|
||||||
|
shadeColour = "#810CFF"
|
||||||
|
colourName = "purple"
|
||||||
|
|
||||||
|
/obj/item/toy/crayon/mime
|
||||||
|
icon_state = "crayonmime"
|
||||||
|
desc = "A very sad-looking crayon."
|
||||||
|
colour = "#FFFFFF"
|
||||||
|
shadeColour = "#000000"
|
||||||
|
colourName = "mime"
|
||||||
|
uses = 0
|
||||||
|
|
||||||
|
/obj/item/toy/crayon/mime/attack_self(mob/living/user as mob) //inversion
|
||||||
|
if(colour != "#FFFFFF" && shadeColour != "#000000")
|
||||||
|
colour = "#FFFFFF"
|
||||||
|
shadeColour = "#000000"
|
||||||
|
user << "You will now draw in white and black with this crayon."
|
||||||
|
else
|
||||||
|
colour = "#000000"
|
||||||
|
shadeColour = "#FFFFFF"
|
||||||
|
user << "You will now draw in black and white with this crayon."
|
||||||
|
return
|
||||||
|
|
||||||
|
/obj/item/toy/crayon/rainbow
|
||||||
|
icon_state = "crayonrainbow"
|
||||||
|
colour = "#FFF000"
|
||||||
|
shadeColour = "#000FFF"
|
||||||
|
colourName = "rainbow"
|
||||||
|
uses = 0
|
||||||
|
|
||||||
|
/obj/item/toy/crayon/rainbow/attack_self(mob/living/user as mob)
|
||||||
|
colour = input(user, "Please select the main colour.", "Crayon colour") as color
|
||||||
|
shadeColour = input(user, "Please select the shade colour.", "Crayon colour") as color
|
||||||
|
return
|
||||||
|
|
||||||
|
/obj/item/toy/crayon/afterattack(atom/target, mob/user as mob)
|
||||||
|
if(istype(target,/turf/simulated/floor))
|
||||||
|
user << "You start drawing a rune on the [target.name]."
|
||||||
|
if(instant || do_after(user, 50))
|
||||||
|
new /obj/decal/cleanable/crayon(target,colour,shadeColour)
|
||||||
|
user << "You draw a rune on the [target.name]."
|
||||||
|
if(uses)
|
||||||
|
uses--
|
||||||
|
if(!uses)
|
||||||
|
user << "You used up your crayon!"
|
||||||
|
del(src)
|
||||||
|
return
|
||||||
|
|
||||||
|
/obj/decal/cleanable/crayon
|
||||||
|
name = "rune"
|
||||||
|
desc = "A rune drawn in crayon."
|
||||||
|
icon = 'rune.dmi'
|
||||||
|
layer = 2.1
|
||||||
|
|
||||||
|
/obj/decal/cleanable/crayon/New(location,main = "#FFFFFF",shade = "#000000")
|
||||||
|
..()
|
||||||
|
loc = location
|
||||||
|
var/runeShape = rand(1,6)
|
||||||
|
|
||||||
|
var/icon/mainOverlay = new/icon('rune.dmi',"main[runeShape]",2.1)
|
||||||
|
var/icon/shadeOverlay = new/icon('rune.dmi',"shade[runeShape]",2.1)
|
||||||
|
|
||||||
|
mainOverlay.Blend(main,ICON_ADD)
|
||||||
|
shadeOverlay.Blend(shade,ICON_ADD)
|
||||||
|
|
||||||
|
overlays += mainOverlay
|
||||||
|
overlays += shadeOverlay
|
||||||
BIN
icons/obj/crayons.dmi
Normal file
BIN
icons/obj/crayons.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 732 B |
Binary file not shown.
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.2 KiB |
@@ -482,6 +482,7 @@
|
|||||||
#include "code\game\objects\structures.dm"
|
#include "code\game\objects\structures.dm"
|
||||||
#include "code\game\objects\tables_racks.dm"
|
#include "code\game\objects\tables_racks.dm"
|
||||||
#include "code\game\objects\tank.dm"
|
#include "code\game\objects\tank.dm"
|
||||||
|
#include "code\game\objects\toys.dm"
|
||||||
#include "code\game\objects\traps.dm"
|
#include "code\game\objects\traps.dm"
|
||||||
#include "code\game\objects\weapons.dm"
|
#include "code\game\objects\weapons.dm"
|
||||||
#include "code\game\objects\window.dm"
|
#include "code\game\objects\window.dm"
|
||||||
@@ -794,5 +795,5 @@
|
|||||||
#include "code\WorkInProgress\recycling\scrap.dm"
|
#include "code\WorkInProgress\recycling\scrap.dm"
|
||||||
#include "code\WorkInProgress\recycling\sortingmachinery.dm"
|
#include "code\WorkInProgress\recycling\sortingmachinery.dm"
|
||||||
#include "interface\skin.dmf"
|
#include "interface\skin.dmf"
|
||||||
#include "maps\test_map.dmm"
|
#include "maps\tgstation.2.0.7.dmm"
|
||||||
// END_INCLUDE
|
// END_INCLUDE
|
||||||
|
|||||||
Reference in New Issue
Block a user