mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-22 19:47:22 +01:00
Adding new graffiti types
This commit is contained in:
@@ -1,3 +1,114 @@
|
||||
/*
|
||||
* Crayons
|
||||
*/
|
||||
|
||||
/obj/item/toy/crayon
|
||||
name = "crayon"
|
||||
desc = "A colourful crayon. Looks tasty. Mmmm..."
|
||||
icon = 'icons/obj/crayons.dmi'
|
||||
icon_state = "crayonred"
|
||||
w_class = 1.0
|
||||
attack_verb = list("attacked", "coloured")
|
||||
var/colour = "#FF0000" //RGB
|
||||
var/drawtype = "rune"
|
||||
var/list/graffiti = list("body","amyjon","face","matt","revolution","engie","guy","end","dwarf","uboa","up","down","left","right","heart","borgsrogue","voxpox","shitcurity","catbeast","hieroglyphs1","hieroglyphs2","hieroglyphs3","security","syndicate1","syndicate2","nanotrasen","lie","dick1","dick2","dick3","valid")
|
||||
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
|
||||
var/list/validSurfaces = list(/turf/simulated/floor)
|
||||
|
||||
/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,10)]")
|
||||
|
||||
/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 <= 10; 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.", "Scribbles") in letters
|
||||
if("random_rune")
|
||||
temp = "rune[rand(1,10)]"
|
||||
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(is_type_in_list(target,validSurfaces))
|
||||
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 [src.name]!</span>"
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/toy/crayon/attack(mob/M as mob, mob/user as mob)
|
||||
var/huffable = istype(src,/obj/item/toy/crayon/spraycan)
|
||||
if(M == user)
|
||||
user << "You take a [huffable ? "huff" : "bite"] of the [src.name]. Delicious!"
|
||||
user.nutrition += 5
|
||||
if(uses)
|
||||
uses -= 5
|
||||
if(uses <= 0)
|
||||
user << "<span class='danger'>There is no more of [src.name] left!</span>"
|
||||
qdel(src)
|
||||
else
|
||||
..()
|
||||
|
||||
|
||||
/obj/item/toy/crayon/red
|
||||
icon_state = "crayonred"
|
||||
colour = "#DA0000"
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
* Toy Tommy Gun
|
||||
* Toy swords
|
||||
* Toy mechs
|
||||
* Crayons
|
||||
* Snap pops
|
||||
* Water flower
|
||||
* Toy Nuke
|
||||
@@ -432,116 +431,6 @@
|
||||
user.visible_message("<span class='suicide'>[dmsg] It looks like they are trying to commit suicide.</span>")
|
||||
return (BRUTELOSS)
|
||||
|
||||
/*
|
||||
* Crayons
|
||||
*/
|
||||
|
||||
/obj/item/toy/crayon
|
||||
name = "crayon"
|
||||
desc = "A colourful crayon. Looks tasty. Mmmm..."
|
||||
icon = 'icons/obj/crayons.dmi'
|
||||
icon_state = "crayonred"
|
||||
w_class = 1.0
|
||||
attack_verb = list("attacked", "coloured")
|
||||
var/colour = "#FF0000" //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
|
||||
var/list/validSurfaces = list(/turf/simulated/floor)
|
||||
|
||||
/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,10)]")
|
||||
|
||||
/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 <= 10; 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.", "Scribbles") in letters
|
||||
if("random_rune")
|
||||
temp = "rune[rand(1,10)]"
|
||||
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(is_type_in_list(target,validSurfaces))
|
||||
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 [src.name]!</span>"
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/item/toy/crayon/attack(mob/M as mob, mob/user as mob)
|
||||
var/huffable = istype(src,/obj/item/toy/crayon/spraycan)
|
||||
if(M == user)
|
||||
user << "You take a [huffable ? "huff" : "bite"] of the [src.name]. Delicious!"
|
||||
user.nutrition += 5
|
||||
if(uses)
|
||||
uses -= 5
|
||||
if(uses <= 0)
|
||||
user << "<span class='danger'>There is no more of [src.name] left!</span>"
|
||||
qdel(src)
|
||||
else
|
||||
..()
|
||||
|
||||
|
||||
/*
|
||||
* Snap pops viral shit
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 16 KiB |
Reference in New Issue
Block a user