Here we go.

This commit is contained in:
JTGSZ
2019-05-21 12:30:44 -04:00
parent 03f129fa6e
commit 84016ed3ef
4 changed files with 30 additions and 43 deletions
@@ -3,6 +3,7 @@
desc = "Graffiti. Damn kids."
icon = 'icons/effects/crayondecal.dmi'
icon_state = "rune1"
plane = GAME_PLANE //makes the graffiti visible over a wall.
gender = NEUTER
mergeable_decal = FALSE
var/do_icon_rotate = TRUE
+23 -37
View File
@@ -68,8 +68,7 @@
var/pre_noise = FALSE
var/post_noise = FALSE
var/datum/team/gang/gang //For marking territory, spraycans are gang-locked to their initial gang due to colors
var/datum/team/gang/gang //For marking territory.
/obj/item/toy/crayon/suicide_act(mob/user)
user.visible_message("<span class='suicide'>[user] is jamming [src] up [user.p_their()] nose and into [user.p_their()] brain. It looks like [user.p_theyre()] trying to commit suicide!</span>")
@@ -290,8 +289,14 @@
else if(drawing in numerals)
temp = "number"
temp = gang_check(user,target)
if(!temp) return // gang check
// If a gang member is using a gang spraycan, it'll behave differently
var/gang_mode = FALSE
if(gang && user.mind && user.mind.has_antag_datum(/datum/antagonist/gang)) //Heres a check.
gang_mode = TRUE // No more runtimes if a non-gang member sprays a gang can, it just works like normal cans.
// discontinue if the area isn't valid for tagging because gang "honour"
if(gang_mode && (!can_claim_for_gang(user, target)))
return
var/graf_rot
if(drawing in oriented)
switch(user.dir)
@@ -320,12 +325,13 @@
playsound(user.loc, 'sound/effects/spray.ogg', 5, 1, 5)
var/takes_time = !instant
if(gang_mode)
takes_time = TRUE
var/wait_time = 50
if(paint_mode == PAINT_LARGE_HORIZONTAL)
wait_time *= 3
if(gang) takes_time = TRUE // gang tagging takes time.
if(takes_time)
if(!do_after(user, 50, target = target))
return
@@ -336,8 +342,15 @@
var/list/turf/affected_turfs = list()
if(!gang) //drawing is done in gang_final() if it's a gang type
if(actually_paints)
if(actually_paints)
if(gang_mode)
// Double check it wasn't tagged in the meanwhile
if(!can_claim_for_gang(user, target))
return
tag_for_gang(user, target)
affected_turfs += target
else
switch(paint_mode)
if(PAINT_NORMAL)
var/obj/effect/decal/cleanable/crayon/C = new(target, paint_color, drawing, temp, graf_rot)
@@ -357,8 +370,6 @@
else
to_chat(user, "<span class='warning'>There isn't enough space to paint!</span>")
return
else // gangstuff
if(gang_final(user, target, affected_turfs)) return // gangstuff
if(!instant)
to_chat(user, "<span class='notice'>You finish drawing \the [temp].</span>")
@@ -382,27 +393,6 @@
//////////////Gang mode stuff/////////////////
/obj/item/toy/crayon/proc/gang_check(mob/user, atom/target) // hooked into afterattack
var/gang_mode = FALSE
if(gang && user.mind)
var/datum/antagonist/gang/G = user.mind.has_antag_datum(/datum/antagonist/gang)
if(G.gang != gang)
to_chat(user, "<span class='danger'>This spraycan's color isn't your gang's one! You cannot use it.</span>")
return FALSE
gang_mode = TRUE
instant = FALSE
. = "graffiti"
// discontinue if the area isn't valid for tagging because gang "honour"
if(gang_mode && (!can_claim_for_gang(user, target)))
return FALSE
/obj/item/toy/crayon/proc/gang_final(mob/user, atom/target, list/affected_turfs) // hooked into afterattack
// Double check it wasn't tagged in the meanwhile
if(!can_claim_for_gang(user, target))
return TRUE
tag_for_gang(user, target)
affected_turfs += target
/obj/item/toy/crayon/proc/can_claim_for_gang(mob/user, atom/target)
// Check area validity.
// Reject space, player-created areas, and non-station z-levels.
@@ -420,10 +410,6 @@
spraying_over = TRUE
break
for(var/obj/machinery/power/apc in target)
to_chat(user, "<span class='warning'>You can't tag an APC.</span>")
return FALSE
var/occupying_gang = territory_claimed(A, user)
if(occupying_gang && !spraying_over)
to_chat(user, "<span class='danger'>[A] has already been tagged by the [occupying_gang] gang! You must get rid of or spray over the old tag first!</span>")
@@ -446,9 +432,9 @@
var/datum/antagonist/gang/G = user.mind.has_antag_datum(/datum/antagonist/gang)
var/area/territory = get_area(target)
new /obj/effect/decal/cleanable/crayon/gang(target,G.gang,"graffiti",0,user)
new /obj/effect/decal/cleanable/crayon/gang(target,G.gang,"graffiti",0,user) // Heres the gang tag.
to_chat(user, "<span class='notice'>You tagged [territory] for your gang!</span>")
////////////Gang end////////////////////
/////////////////Gang end////////////////////
/obj/item/toy/crayon/attack(mob/M, mob/user)
@@ -782,7 +768,7 @@
reagent_contents = list("nothing" = 1, "mutetoxin" = 1)
/obj/item/toy/crayon/spraycan/gang
charges = 20
charges = 10 // Charges are at 10 because the tagger trait exists.
gang = TRUE
pre_noise = FALSE