This commit is contained in:
FalseIncarnate
2015-03-08 20:29:07 -04:00
109 changed files with 2796 additions and 1351 deletions
+34 -50
View File
@@ -1,100 +1,84 @@
/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/white
icon_state = "crayonwhite"
colour = "#FFFFFF"
colourName = "white"
/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."
/obj/item/toy/crayon/mime/attack_self(mob/living/user as mob)
update_window(user)
/obj/item/toy/crayon/mime/update_window(mob/living/user as mob)
dat += "<center><span style='border:1px solid #161616; background-color: [colour];'>&nbsp;&nbsp;&nbsp;</span><a href='?src=\ref[src];color=1'>Change color</a></center>"
..()
/obj/item/toy/crayon/mime/Topic(href,href_list)
if ((usr.restrained() || usr.stat || usr.get_active_hand() != src))
return
if(href_list["color"])
if(colour != "#FFFFFF")
colour = "#FFFFFF"
else
colour = "#000000"
update_window(usr)
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
update_window(user)
/obj/item/toy/crayon/afterattack(atom/target, mob/user as mob, proximity)
if(!proximity) return
if(istype(target,/turf/simulated/floor))
var/drawtype = input("Choose what you'd like to draw.", "Crayon scribbles") in list("graffiti","rune","letter")
switch(drawtype)
if("letter")
drawtype = input("Choose the letter.", "Crayon scribbles") in list("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z")
user << "You start drawing a letter on the [target.name]."
if("graffiti")
user << "You start drawing graffiti on the [target.name]."
if("rune")
user << "You start drawing a rune on the [target.name]."
if(instant || do_after(user, 50))
new /obj/effect/decal/cleanable/crayon(target,colour,shadeColour,drawtype)
user << "You finish drawing."
if(uses)
uses--
if(!uses)
user << "\red You used up your crayon!"
del(src)
return
/obj/item/toy/crayon/rainbow/update_window(mob/living/user as mob)
dat += "<center><span style='border:1px solid #161616; background-color: [colour];'>&nbsp;&nbsp;&nbsp;</span><a href='?src=\ref[src];color=1'>Change color</a></center>"
..()
/obj/item/toy/crayon/attack(mob/M as mob, mob/user as mob)
if(M == user)
user << "You take a bite of the crayon. Delicious!"
user.nutrition += 5
if(uses)
uses -= 5
if(uses <= 0)
user << "\red You ate your crayon!"
del(src)
/obj/item/toy/crayon/rainbow/Topic(href,href_list[])
if(href_list["color"])
var/temp = input(usr, "Please select colour.", "Crayon colour") as color
if ((usr.restrained() || usr.stat || usr.get_active_hand() != src))
return
colour = temp
update_window(usr)
else
..()
@@ -286,6 +286,8 @@
src.overlays.Cut()
src.overlays += "pai-off"
/obj/item/device/paicard
var/current_emotion = 1
/obj/item/device/paicard/proc/setEmotion(var/emotion)
if(pai)
src.overlays.Cut()
@@ -299,6 +301,7 @@
if(7) src.overlays += "pai-sad"
if(8) src.overlays += "pai-angry"
if(9) src.overlays += "pai-what"
current_emotion = emotion
/obj/item/device/paicard/proc/alertUpdate()
var/turf/T = get_turf_or_move(src.loc)
+89 -5
View File
@@ -438,20 +438,104 @@
desc = "A colourful crayon. Looks tasty. Mmmm..."
icon = 'icons/obj/crayons.dmi'
icon_state = "crayonred"
slot_flags = SLOT_EARS
w_class = 1.0
attack_verb = list("attacked", "coloured")
var/colour = "#FF0000" //RGB
var/shadeColour = "#220000" //RGB
var/drawtype = "rune"
var/list/graffiti = list("amyjon","face","matt","revolution","engie","guy","end","dwarf","uboa","body","cyka")
var/list/letters = list("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z")
var/uses = 30 //0 for unlimited uses
var/instant = 0
var/colourName = "red" //for updateIcon purposes
var/dat
suicide_act(mob/user)
viewers(user) << "<span class='suicide'>[user] is jamming the [src.name] up \his nose and into \his brain. It looks like \he's trying to commit suicide.</span>"
return (BRUTELOSS|OXYLOSS)
/obj/item/toy/crayon/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is jamming the [src.name] up \his nose and into \his brain. It looks like \he's trying to commit suicide.</span>")
return (BRUTELOSS|OXYLOSS)
/obj/item/toy/crayon/New()
..()
name = "[colourName] crayon" //Makes crayons identifiable in things like grinders
drawtype = pick(pick(graffiti), pick(letters), "rune[rand(1,6)]")
/obj/item/toy/crayon/attack_self(mob/living/user as mob)
update_window(user)
/obj/item/toy/crayon/proc/update_window(mob/living/user as mob)
dat += "<center><h2>Currently selected: [drawtype]</h2><br>"
dat += "<a href='?src=\ref[src];type=random_letter'>Random letter</a><a href='?src=\ref[src];type=letter'>Pick letter</a>"
dat += "<hr>"
dat += "<h3>Runes:</h3><br>"
dat += "<a href='?src=\ref[src];type=random_rune'>Random rune</a>"
for(var/i = 1; i <= 6; i++)
dat += "<a href='?src=\ref[src];type=rune[i]'>Rune[i]</a>"
if(!((i + 1) % 3)) //3 buttons in a row
dat += "<br>"
dat += "<hr>"
graffiti.Find()
dat += "<h3>Graffiti:</h3><br>"
dat += "<a href='?src=\ref[src];type=random_graffiti'>Random graffiti</a>"
var/c = 1
for(var/T in graffiti)
dat += "<a href='?src=\ref[src];type=[T]'>[T]</a>"
if(!((c + 1) % 3)) //3 buttons in a row
dat += "<br>"
c++
dat += "<hr>"
var/datum/browser/popup = new(user, "crayon", name, 300, 500)
popup.set_content(dat)
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
popup.open()
dat = ""
/obj/item/toy/crayon/Topic(href, href_list, hsrc)
var/temp = "a"
switch(href_list["type"])
if("random_letter")
temp = pick(letters)
if("letter")
temp = input("Choose the letter.", "Crayon scribbles") in letters
if("random_rune")
temp = "rune[rand(1,6)]"
if("random_graffiti")
temp = pick(graffiti)
else
temp = href_list["type"]
if ((usr.restrained() || usr.stat || usr.get_active_hand() != src))
return
drawtype = temp
update_window(usr)
/obj/item/toy/crayon/afterattack(atom/target, mob/user as mob, proximity)
if(!proximity) return
if(istype(target,/turf/simulated/floor))
var/temp = "rune"
if(letters.Find(drawtype))
temp = "letter"
else if(graffiti.Find(drawtype))
temp = "graffiti"
user << "You start drawing a [temp] on the [target.name]."
if(instant || do_after(user, 50))
new /obj/effect/decal/cleanable/crayon(target,colour,drawtype,temp)
user << "You finish drawing [temp]."
if(uses)
uses--
if(!uses)
user << "<span class='danger'>You used up your crayon!</span>"
qdel(src)
return
/obj/item/toy/crayon/attack(mob/M as mob, mob/user as mob)
if(M == user)
user << "You take a bite of the crayon. Delicious!"
user.nutrition += 5
if(uses)
uses -= 5
if(uses <= 0)
user << "<span class='danger'>You ate your crayon!</span>"
qdel(src)
else
..()
/*
@@ -1,4 +1,4 @@
/obj/item/weapon/plastique
/obj/item/weapon/c4
name = "plastic explosives"
desc = "Used to put holes in specific areas without too much extra hole."
gender = PLURAL
@@ -13,11 +13,11 @@
var/atom/target = null
var/open_panel = 0
/obj/item/weapon/plastique/New()
/obj/item/weapon/c4/New()
wires = new(src)
..()
/obj/item/weapon/plastique/suicide_act(var/mob/user)
/obj/item/weapon/c4/suicide_act(var/mob/user)
. = (BRUTELOSS)
viewers(user) << "<span class='suicide'>[user] activates the C4 and holds it above his head! It looks like \he's going out with a bang!</span>"
var/message_say = "FOR NO RAISIN!"
@@ -44,7 +44,7 @@
explode(get_turf(user))
return .
/obj/item/weapon/plastique/attackby(var/obj/item/I, var/mob/user, params)
/obj/item/weapon/c4/attackby(var/obj/item/I, var/mob/user, params)
if(istype(I, /obj/item/weapon/screwdriver))
open_panel = !open_panel
user << "<span class='notice'>You [open_panel ? "open" : "close"] the wire panel.</span>"
@@ -53,7 +53,7 @@
else
..()
/obj/item/weapon/plastique/attack_self(mob/user as mob)
/obj/item/weapon/c4/attack_self(mob/user as mob)
var/newtime = input(usr, "Please set the timer.", "Timer", 10) as num
if(newtime < 10)
newtime = 10
@@ -63,7 +63,7 @@
user << "Timer set for [timer] seconds."
/obj/item/weapon/plastique/afterattack(atom/target as obj|turf, mob/user as mob, flag)
/obj/item/weapon/c4/afterattack(atom/target as obj|turf, mob/user as mob, flag)
if (!flag)
return
if (ismob(target) || istype(target, /turf/unsimulated) || istype(target, /turf/simulated/shuttle) || istype(target, /obj/item/weapon/storage) || istype(target, /obj/item/clothing/accessory/storage) || istype(target, /obj/item/clothing/under))
@@ -90,7 +90,7 @@
spawn(timer*10)
explode(get_turf(target))
/obj/item/weapon/plastique/proc/explode(var/location)
/obj/item/weapon/c4/proc/explode(var/location)
if(!target)
target = get_atom_on_turf(src)
@@ -110,5 +110,5 @@
del(target)
del(src)
/obj/item/weapon/plastique/attack(mob/M as mob, mob/user as mob, def_zone)
/obj/item/weapon/c4/attack(mob/M as mob, mob/user as mob, def_zone)
return
@@ -128,6 +128,13 @@
name = "pulse pistol power cell"
maxcharge = 1600
/obj/item/weapon/stock_parts/cell/ninja
name = "spider-clan power cell"
desc = "A standard ninja-suit power cell."
maxcharge = 10000
rating = 3
g_amt = 60
/obj/item/weapon/stock_parts/cell/emproof
name = "\improper EMP-proof cell"
desc = "An EMP-proof cell."
@@ -299,4 +299,40 @@
name = "smiles von wiggleton"
desc = "A duffelbag designed to hold bananas and bike horns."
icon_state = "duffel-clown"
item_state = "duffel-clown"
item_state = "duffel-clown"
//ERT backpacks.
/obj/item/weapon/storage/backpack/ert
name = "emergency response team backpack"
desc = "A spacious backpack with lots of pockets, used by members of the Nanotrasen Emergency Response Team."
icon_state = "ert_commander"
item_state = "backpack"
//Commander
/obj/item/weapon/storage/backpack/ert/commander
name = "emergency response team commander backpack"
desc = "A spacious backpack with lots of pockets, worn by the commander of a Nanotrasen Emergency Response Team."
//Security
/obj/item/weapon/storage/backpack/ert/security
name = "emergency response team security backpack"
desc = "A spacious backpack with lots of pockets, worn by security members of a Nanotrasen Emergency Response Team."
icon_state = "ert_security"
//Engineering
/obj/item/weapon/storage/backpack/ert/engineer
name = "emergency response team engineer backpack"
desc = "A spacious backpack with lots of pockets, worn by engineering members of a Nanotrasen Emergency Response Team."
icon_state = "ert_engineering"
//Medical
/obj/item/weapon/storage/backpack/ert/medical
name = "emergency response team medical backpack"
desc = "A spacious backpack with lots of pockets, worn by medical members of a Nanotrasen Emergency Response Team."
icon_state = "ert_medical"
//Janitorial
/obj/item/weapon/storage/backpack/ert/janitor
name = "emergency response team janitor backpack"
desc = "A spacious backpack with lots of pockets, worn by janitorial members of a Nanotrasen Emergency Response Team."
icon_state = "ert_janitor"
@@ -135,10 +135,10 @@
..()
contents.Cut()
new /obj/item/weapon/kitchenknife/combat(src)
new /obj/item/weapon/grenade/flashbang(src)
new /obj/item/weapon/grenade/flashbang(src)
new /obj/item/weapon/melee/baton/loaded(src)
new /obj/item/device/flash(src)
new /obj/item/weapon/melee/telebaton(src)
new /obj/item/weapon/restraints/handcuffs(src)
new /obj/item/weapon/grenade/flashbang(src)
/obj/item/weapon/storage/belt/soulstone
name = "soul stone belt"
@@ -64,7 +64,7 @@
new /obj/item/stack/cable_coil(src,30,color)
new /obj/item/stack/cable_coil(src,30,color)
if(prob(5))
new /obj/item/clothing/gloves/yellow(src)
new /obj/item/clothing/gloves/color/yellow(src)
else
new /obj/item/stack/cable_coil(src,30,color)
@@ -37,7 +37,10 @@
new /obj/item/weapon/gun/projectile/revolver(src)
new /obj/item/ammo_box/a357(src)
new /obj/item/weapon/card/emag(src)
new /obj/item/weapon/plastique(src)
new /obj/item/weapon/c4(src)
new /obj/item/clothing/gloves/color/latex/nitrile(src)
new /obj/item/clothing/mask/gas/clown_hat(src)
new /obj/item/clothing/under/suit_jacket/really_black(src)
return
if("murder")
@@ -125,6 +125,7 @@
/obj/item/weapon/tank/plasma/plasmaman
desc = "The lifeblood of plasmamen. Warning: Extremely flammable, do not inhale (unless you're a plasman)."
icon_state = "plasma_fr"
distribute_pressure = ONE_ATMOSPHERE*O2STANDARD
/obj/item/weapon/tank/plasma/plasmaman/examine()
set src in usr