mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-24 12:37:26 +01:00
Merge remote-tracking branch 'upstream/master' into disease-controller-bye-bye
This commit is contained in:
@@ -3,6 +3,8 @@
|
||||
desc = "It's green and acidic. It looks like... <i>blood?</i>"
|
||||
icon = 'icons/effects/blood.dmi'
|
||||
basecolor = "#05EE05"
|
||||
bloodiness = MAX_SHOE_BLOODINESS
|
||||
blood_state = BLOOD_STATE_XENO
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/xeno
|
||||
name = "xeno gibs"
|
||||
|
||||
@@ -15,8 +15,11 @@ var/global/list/image/splatter_cache=list()
|
||||
icon_state = "mfloor1"
|
||||
random_icon_states = list("mfloor1", "mfloor2", "mfloor3", "mfloor4", "mfloor5", "mfloor6", "mfloor7")
|
||||
var/base_icon = 'icons/effects/blood.dmi'
|
||||
appearance_flags = NO_CLIENT_COLOR
|
||||
blood_DNA = list()
|
||||
var/basecolor="#A10808" // Color when wet.
|
||||
var/blood_state = BLOOD_STATE_HUMAN
|
||||
var/bloodiness = MAX_SHOE_BLOODINESS
|
||||
var/basecolor = "#A10808" // Color when wet.
|
||||
var/amount = 5
|
||||
appearance_flags = NO_CLIENT_COLOR
|
||||
var/dry_timer = 0
|
||||
@@ -32,11 +35,11 @@ var/global/list/image/splatter_cache=list()
|
||||
mode_ticker.bloody_floors += T
|
||||
mode_ticker.bloody_floors[T] = T
|
||||
mode_ticker.blood_check()
|
||||
if(istype(src, /obj/effect/decal/cleanable/blood/gibs))
|
||||
if(type == /obj/effect/decal/cleanable/blood/gibs)
|
||||
return
|
||||
if(src.type == /obj/effect/decal/cleanable/blood)
|
||||
if(src.loc && isturf(src.loc))
|
||||
for(var/obj/effect/decal/cleanable/blood/B in src.loc)
|
||||
if(type == /obj/effect/decal/cleanable/blood)
|
||||
if(loc && isturf(loc))
|
||||
for(var/obj/effect/decal/cleanable/blood/B in loc)
|
||||
if(B != src)
|
||||
if(B.blood_DNA)
|
||||
blood_DNA |= B.blood_DNA.Copy()
|
||||
@@ -58,44 +61,6 @@ var/global/list/image/splatter_cache=list()
|
||||
if(basecolor == "rainbow") basecolor = "#[pick(list("FF0000","FF7F00","FFFF00","00FF00","0000FF","4B0082","8F00FF"))]"
|
||||
color = basecolor
|
||||
|
||||
/obj/effect/decal/cleanable/blood/Crossed(mob/living/carbon/human/perp)
|
||||
if(!istype(perp))
|
||||
return
|
||||
if(amount < 1)
|
||||
return
|
||||
|
||||
var/obj/item/organ/external/l_foot = perp.get_organ("l_foot")
|
||||
var/obj/item/organ/external/r_foot = perp.get_organ("r_foot")
|
||||
var/hasfeet = 1
|
||||
if((!l_foot || l_foot.status & ORGAN_DESTROYED) && (!r_foot || r_foot.status & ORGAN_DESTROYED))
|
||||
hasfeet = 0
|
||||
if(perp.shoes && !perp.buckled)//Adding blood to shoes
|
||||
var/obj/item/clothing/shoes/S = perp.shoes
|
||||
if(istype(S))
|
||||
S.blood_color = basecolor
|
||||
S.track_blood = max(amount,S.track_blood)
|
||||
if(!S.blood_overlay)
|
||||
S.generate_blood_overlay()
|
||||
if(!S.blood_DNA)
|
||||
S.blood_DNA = list()
|
||||
S.blood_overlay.color = basecolor
|
||||
S.overlays += S.blood_overlay
|
||||
if(S.blood_overlay && S.blood_overlay.color != basecolor)
|
||||
S.blood_overlay.color = basecolor
|
||||
S.overlays.Cut()
|
||||
S.overlays += S.blood_overlay
|
||||
S.blood_DNA |= blood_DNA.Copy()
|
||||
|
||||
else if(hasfeet)//Or feet
|
||||
perp.feet_blood_color = basecolor
|
||||
perp.track_blood = max(amount,perp.track_blood)
|
||||
if(!perp.feet_blood_DNA)
|
||||
perp.feet_blood_DNA = list()
|
||||
perp.feet_blood_DNA |= blood_DNA.Copy()
|
||||
|
||||
perp.update_inv_shoes(1)
|
||||
amount--
|
||||
|
||||
/obj/effect/decal/cleanable/blood/proc/dry()
|
||||
name = dryname
|
||||
desc = drydesc
|
||||
@@ -122,6 +87,46 @@ var/global/list/image/splatter_cache=list()
|
||||
/obj/effect/decal/cleanable/blood/can_bloodcrawl_in()
|
||||
return TRUE
|
||||
|
||||
//Add "bloodiness" of this blood's type, to the human's shoes
|
||||
/obj/effect/decal/cleanable/blood/Crossed(atom/movable/O)
|
||||
if(ishuman(O))
|
||||
var/mob/living/carbon/human/H = O
|
||||
var/obj/item/organ/external/l_foot = H.get_organ("l_foot")
|
||||
var/obj/item/organ/external/r_foot = H.get_organ("r_foot")
|
||||
var/hasfeet = 1
|
||||
if((!l_foot || l_foot.status & ORGAN_DESTROYED) && (!r_foot || r_foot.status & ORGAN_DESTROYED))
|
||||
hasfeet = 0
|
||||
if(H.shoes && blood_state && bloodiness)
|
||||
var/obj/item/clothing/shoes/S = H.shoes
|
||||
var/add_blood = 0
|
||||
if(bloodiness >= BLOOD_GAIN_PER_STEP)
|
||||
add_blood = BLOOD_GAIN_PER_STEP
|
||||
else
|
||||
add_blood = bloodiness
|
||||
bloodiness -= add_blood
|
||||
S.bloody_shoes[blood_state] = min(MAX_SHOE_BLOODINESS, S.bloody_shoes[blood_state] + add_blood)
|
||||
if(blood_DNA && blood_DNA.len)
|
||||
S.add_blood(H.blood_DNA, basecolor)
|
||||
S.blood_state = blood_state
|
||||
S.blood_color = basecolor
|
||||
update_icon()
|
||||
H.update_inv_shoes()
|
||||
else if(hasfeet && blood_state && bloodiness)//Or feet
|
||||
var/add_blood = 0
|
||||
if(bloodiness >= BLOOD_GAIN_PER_STEP)
|
||||
add_blood = BLOOD_GAIN_PER_STEP
|
||||
else
|
||||
add_blood = bloodiness
|
||||
bloodiness -= add_blood
|
||||
H.bloody_feet[blood_state] = min(MAX_SHOE_BLOODINESS, H.bloody_feet[blood_state] + add_blood)
|
||||
if(!H.feet_blood_DNA)
|
||||
H.feet_blood_DNA = list()
|
||||
H.blood_state = blood_state
|
||||
H.feet_blood_DNA |= blood_DNA.Copy()
|
||||
H.feet_blood_color = basecolor
|
||||
update_icon()
|
||||
H.update_inv_shoes()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/splatter
|
||||
random_icon_states = list("mgibbl1", "mgibbl2", "mgibbl3", "mgibbl4", "mgibbl5")
|
||||
amount = 2
|
||||
@@ -134,11 +139,25 @@ var/global/list/image/splatter_cache=list()
|
||||
icon_state = "1"
|
||||
random_icon_states = list("1","2","3","4","5")
|
||||
amount = 0
|
||||
var/list/drips = list()
|
||||
var/drips = 1
|
||||
bloodiness = 0
|
||||
|
||||
/obj/effect/decal/cleanable/blood/drip/New()
|
||||
..()
|
||||
drips |= icon_state
|
||||
/obj/effect/decal/cleanable/blood/drip/can_bloodcrawl_in()
|
||||
return TRUE
|
||||
|
||||
/obj/effect/decal/cleanable/trail_holder //not a child of blood on purpose
|
||||
name = "blood"
|
||||
icon_state = "ltrails_1"
|
||||
desc = "Your instincts say you shouldn't be following these."
|
||||
gender = PLURAL
|
||||
density = 0
|
||||
layer = 2
|
||||
random_icon_states = null
|
||||
var/list/existing_dirs = list()
|
||||
blood_DNA = list()
|
||||
|
||||
/obj/effect/decal/cleanable/trail_holder/can_bloodcrawl_in()
|
||||
return TRUE
|
||||
|
||||
/obj/effect/decal/cleanable/blood/writing
|
||||
icon_state = "tracks"
|
||||
@@ -175,19 +194,16 @@ var/global/list/image/splatter_cache=list()
|
||||
noclear = 1
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/update_icon()
|
||||
|
||||
var/image/giblets = new(base_icon, "[icon_state]_flesh", dir)
|
||||
if(!fleshcolor || fleshcolor == "rainbow")
|
||||
fleshcolor = "#[pick(list("FF0000","FF7F00","FFFF00","00FF00","0000FF","4B0082","8F00FF"))]"
|
||||
giblets.color = fleshcolor
|
||||
|
||||
var/icon/blood = new(base_icon,"[icon_state]",dir)
|
||||
if(basecolor == "rainbow") basecolor = "#[pick(list("FF0000","FF7F00","FFFF00","00FF00","0000FF","4B0082","8F00FF"))]"
|
||||
blood.Blend(basecolor,ICON_MULTIPLY)
|
||||
|
||||
icon = blood
|
||||
overlays.Cut()
|
||||
overlays += giblets
|
||||
. = ..()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/up
|
||||
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6","gibup1","gibup1","gibup1")
|
||||
@@ -231,8 +247,16 @@ var/global/list/image/splatter_cache=list()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/old/New()
|
||||
..()
|
||||
bloodiness = 0
|
||||
dry()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/old/can_bloodcrawl_in()
|
||||
return FALSE
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/old/New()
|
||||
..()
|
||||
bloodiness = 0
|
||||
dry()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/old/can_bloodcrawl_in()
|
||||
return FALSE
|
||||
|
||||
@@ -5,13 +5,17 @@
|
||||
icon_state = "gib1"
|
||||
basecolor="#030303"
|
||||
random_icon_states = list("gib1", "gib2", "gib3", "gib4", "gib5", "gib6", "gib7")
|
||||
bloodiness = MAX_SHOE_BLOODINESS
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/robot/can_bloodcrawl_in()
|
||||
return FALSE
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/robot/update_icon()
|
||||
color = "#FFFFFF"
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/robot/dry() //pieces of robots do not dry up like
|
||||
return
|
||||
|
||||
|
||||
/obj/effect/decal/cleanable/blood/gibs/robot/can_bloodcrawl_in()
|
||||
return FALSE
|
||||
|
||||
@@ -44,6 +48,7 @@
|
||||
name = "motor oil"
|
||||
desc = "It's black and greasy. Looks like Beepsky made another mess."
|
||||
basecolor="#030303"
|
||||
bloodiness = MAX_SHOE_BLOODINESS
|
||||
|
||||
/obj/effect/decal/cleanable/blood/oil/can_bloodcrawl_in()
|
||||
return FALSE
|
||||
|
||||
@@ -1,165 +1,104 @@
|
||||
// Stolen en masse from N3X15 of /vg/station with much gratitude.
|
||||
|
||||
// The idea is to have 4 bits for coming and 4 for going.
|
||||
#define TRACKS_COMING_NORTH 1
|
||||
#define TRACKS_COMING_SOUTH 2
|
||||
#define TRACKS_COMING_EAST 4
|
||||
#define TRACKS_COMING_WEST 8
|
||||
#define TRACKS_GOING_NORTH 16
|
||||
#define TRACKS_GOING_SOUTH 32
|
||||
#define TRACKS_GOING_EAST 64
|
||||
#define TRACKS_GOING_WEST 128
|
||||
|
||||
// 5 seconds
|
||||
#define TRACKS_CRUSTIFY_TIME 50
|
||||
|
||||
// color-dir-dry
|
||||
var/global/list/image/fluidtrack_cache=list()
|
||||
|
||||
/datum/fluidtrack
|
||||
var/direction=0
|
||||
var/basecolor="#A10808"
|
||||
var/wet=0
|
||||
var/fresh=1
|
||||
var/crusty=0
|
||||
var/image/overlay
|
||||
|
||||
New(_direction,item_color,_wet)
|
||||
src.direction=_direction
|
||||
src.basecolor=item_color
|
||||
src.wet=_wet
|
||||
|
||||
// Footprints, tire trails...
|
||||
/obj/effect/decal/cleanable/blood/tracks
|
||||
amount = 0
|
||||
random_icon_states = null
|
||||
var/dirs=0
|
||||
icon = 'icons/effects/fluidtracks.dmi'
|
||||
icon_state = ""
|
||||
var/coming_state="blood1"
|
||||
var/going_state="blood2"
|
||||
var/updatedtracks=0
|
||||
|
||||
// dir = id in stack
|
||||
var/list/setdirs=list(
|
||||
"1"=0,
|
||||
"2"=0,
|
||||
"4"=0,
|
||||
"8"=0,
|
||||
"16"=0,
|
||||
"32"=0,
|
||||
"64"=0,
|
||||
"128"=0
|
||||
)
|
||||
|
||||
// List of laid tracks and their colors.
|
||||
var/list/datum/fluidtrack/stack=list()
|
||||
|
||||
/**
|
||||
* Add tracks to an existing trail.
|
||||
*
|
||||
* @param DNA bloodDNA to add to collection.
|
||||
* @param comingdir Direction tracks come from, or 0.
|
||||
* @param goingdir Direction tracks are going to (or 0).
|
||||
* @param bloodcolor Color of the blood when wet.
|
||||
*/
|
||||
proc/AddTracks(var/list/DNA, var/comingdir, var/goingdir, var/bloodcolor="#A10808")
|
||||
var/updated=0
|
||||
// Shift our goingdir 4 spaces to the left so it's in the GOING bitblock.
|
||||
var/realgoing=goingdir<<4
|
||||
|
||||
// Current bit
|
||||
var/b=0
|
||||
|
||||
// When tracks will start to dry out
|
||||
var/t=world.time + TRACKS_CRUSTIFY_TIME
|
||||
|
||||
var/datum/fluidtrack/track
|
||||
|
||||
// Process 4 bits
|
||||
for(var/bi=0;bi<4;bi++)
|
||||
b = 1 << bi
|
||||
// COMING BIT
|
||||
// If setting
|
||||
if(comingdir&b)
|
||||
// If not wet or not set
|
||||
if(dirs&b)
|
||||
var/sid=setdirs["[b]"]
|
||||
track=stack[sid]
|
||||
if(track.wet==t && track.basecolor==bloodcolor)
|
||||
continue
|
||||
// Remove existing stack entry
|
||||
stack.Remove(track)
|
||||
track=new /datum/fluidtrack(b,bloodcolor,t)
|
||||
stack.Add(track)
|
||||
setdirs["[b]"]=stack.Find(track)
|
||||
updatedtracks |= b
|
||||
updated=1
|
||||
|
||||
// GOING BIT (shift up 4)
|
||||
b=b<<4
|
||||
if(realgoing&b)
|
||||
// If not wet or not set
|
||||
if(dirs&b)
|
||||
var/sid=setdirs["[b]"]
|
||||
track=stack[sid]
|
||||
if(track.wet==t && track.basecolor==bloodcolor)
|
||||
continue
|
||||
// Remove existing stack entry
|
||||
stack.Remove(track)
|
||||
track=new /datum/fluidtrack(b,bloodcolor,t)
|
||||
stack.Add(track)
|
||||
setdirs["[b]"]=stack.Find(track)
|
||||
updatedtracks |= b
|
||||
updated=1
|
||||
|
||||
dirs |= comingdir|realgoing
|
||||
blood_DNA |= DNA.Copy()
|
||||
if(updated)
|
||||
update_icon()
|
||||
|
||||
update_icon()
|
||||
overlays.Cut()
|
||||
color = "#FFFFFF"
|
||||
var/truedir=0
|
||||
|
||||
// Update ONLY the overlays that have changed.
|
||||
for(var/datum/fluidtrack/track in stack)
|
||||
var/stack_idx=setdirs["[track.direction]"]
|
||||
var/state=coming_state
|
||||
truedir=track.direction
|
||||
if(truedir&240) // Check if we're in the GOING block
|
||||
state=going_state
|
||||
truedir=truedir>>4
|
||||
|
||||
if(track.overlay)
|
||||
track.overlay=null
|
||||
var/image/I = image(icon, icon_state=state, dir=num2dir(truedir))
|
||||
I.color = track.basecolor
|
||||
|
||||
track.fresh=0
|
||||
track.overlay=I
|
||||
stack[stack_idx]=track
|
||||
overlays += I
|
||||
updatedtracks=0 // Clear our memory of updated tracks.
|
||||
|
||||
/obj/effect/decal/cleanable/blood/tracks/footprints
|
||||
name = "wet footprints"
|
||||
dryname = "dried footprints"
|
||||
desc = "Whoops..."
|
||||
drydesc = "Whoops..."
|
||||
coming_state = "human1"
|
||||
going_state = "human2"
|
||||
amount = 0
|
||||
|
||||
/obj/effect/decal/cleanable/blood/tracks/wheels
|
||||
name = "wet tracks"
|
||||
dryname = "dried tracks"
|
||||
desc = "Whoops..."
|
||||
drydesc = "Whoops..."
|
||||
coming_state = "wheels1"
|
||||
going_state = "wheels2"
|
||||
desc = "They look like tracks left by wheels."
|
||||
icon_state = "wheels1"
|
||||
gender = PLURAL
|
||||
random_icon_states = null
|
||||
amount = 0
|
||||
amount = 0
|
||||
|
||||
//BLOODY FOOTPRINTS
|
||||
/obj/effect/decal/cleanable/blood/footprints
|
||||
icon = 'icons/effects/fluidtracks.dmi'
|
||||
icon_state = "nothingwhatsoever"
|
||||
desc = "You REALLY shouldn't follow these.."
|
||||
gender = PLURAL
|
||||
random_icon_states = null
|
||||
basecolor="#A10808"
|
||||
var/entered_dirs = 0
|
||||
var/exited_dirs = 0
|
||||
blood_state = BLOOD_STATE_HUMAN //the icon state to load images from
|
||||
|
||||
|
||||
/obj/effect/decal/cleanable/blood/footprints/Crossed(atom/movable/O)
|
||||
if(ishuman(O))
|
||||
var/mob/living/carbon/human/H = O
|
||||
var/obj/item/clothing/shoes/S = H.shoes
|
||||
var/obj/item/organ/external/l_foot = H.get_organ("l_foot")
|
||||
var/obj/item/organ/external/r_foot = H.get_organ("r_foot")
|
||||
var/hasfeet = 1
|
||||
if((!l_foot || l_foot.status & ORGAN_DESTROYED) && (!r_foot || r_foot.status & ORGAN_DESTROYED))
|
||||
hasfeet = 0
|
||||
if(S && S.bloody_shoes[blood_state] && S.blood_color == basecolor)
|
||||
S.bloody_shoes[blood_state] = max(S.bloody_shoes[blood_state] - BLOOD_LOSS_PER_STEP, 0)
|
||||
entered_dirs |= H.dir
|
||||
if(!S.blood_DNA)
|
||||
S.blood_DNA = list()
|
||||
S.blood_DNA |= blood_DNA.Copy()
|
||||
else if(hasfeet && H.bloody_feet[blood_state] && H.feet_blood_color == basecolor)//Or feet //This will need to be changed.
|
||||
H.bloody_feet[blood_state] = max(H.bloody_feet[blood_state] - BLOOD_LOSS_PER_STEP, 0)
|
||||
entered_dirs |= H.dir
|
||||
if(!H.feet_blood_DNA)
|
||||
H.feet_blood_DNA = list()
|
||||
H.feet_blood_DNA |= blood_DNA.Copy()
|
||||
update_icon()
|
||||
|
||||
/obj/effect/decal/cleanable/blood/footprints/Uncrossed(atom/movable/O)
|
||||
if(ishuman(O))
|
||||
var/mob/living/carbon/human/H = O
|
||||
var/obj/item/clothing/shoes/S = H.shoes
|
||||
var/obj/item/organ/external/l_foot = H.get_organ("l_foot")
|
||||
var/obj/item/organ/external/r_foot = H.get_organ("r_foot")
|
||||
var/hasfeet = 1
|
||||
if((!l_foot || l_foot.status & ORGAN_DESTROYED) && (!r_foot || r_foot.status & ORGAN_DESTROYED))
|
||||
hasfeet = 0
|
||||
if(S && S.bloody_shoes[blood_state] && S.blood_color == basecolor)
|
||||
S.bloody_shoes[blood_state] = max(S.bloody_shoes[blood_state] - BLOOD_LOSS_PER_STEP, 0)
|
||||
exited_dirs |= H.dir
|
||||
if(!S.blood_DNA)
|
||||
S.blood_DNA = list()
|
||||
S.blood_DNA |= blood_DNA.Copy()
|
||||
else if(hasfeet && H.bloody_feet[blood_state] && H.feet_blood_color == basecolor)//Or feet
|
||||
H.bloody_feet[blood_state] = max(H.bloody_feet[blood_state] - BLOOD_LOSS_PER_STEP, 0)
|
||||
exited_dirs |= H.dir
|
||||
if(!H.feet_blood_DNA)
|
||||
H.feet_blood_DNA = list()
|
||||
H.feet_blood_DNA |= blood_DNA.Copy()
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/effect/decal/cleanable/blood/footprints/update_icon()
|
||||
overlays.Cut()
|
||||
|
||||
for(var/Ddir in cardinal)
|
||||
if(entered_dirs & Ddir)
|
||||
var/image/I
|
||||
if(fluidtrack_cache["entered-[blood_state]-[Ddir]"])
|
||||
I = fluidtrack_cache["entered-[blood_state]-[Ddir]"]
|
||||
else
|
||||
I = image(icon,"[blood_state]1",dir = Ddir)
|
||||
fluidtrack_cache["entered-[blood_state]-[Ddir]"] = I
|
||||
if(I)
|
||||
I.color = basecolor
|
||||
overlays += I
|
||||
if(exited_dirs & Ddir)
|
||||
var/image/I
|
||||
if(fluidtrack_cache["exited-[blood_state]-[Ddir]"])
|
||||
I = fluidtrack_cache["exited-[blood_state]-[Ddir]"]
|
||||
else
|
||||
I = image(icon,"[blood_state]2",dir = Ddir)
|
||||
fluidtrack_cache["exited-[blood_state]-[Ddir]"] = I
|
||||
if(I)
|
||||
I.color = basecolor
|
||||
overlays += I
|
||||
|
||||
alpha = BLOODY_FOOTPRINT_BASE_ALPHA+bloodiness
|
||||
@@ -43,4 +43,4 @@
|
||||
if(reagents)
|
||||
reagents.chem_temp += 30
|
||||
reagents.handle_reactions()
|
||||
..()
|
||||
..()
|
||||
|
||||
@@ -1,335 +1,92 @@
|
||||
//########################## CONTRABAND ;3333333333333333333 -Agouri ###################################################
|
||||
// This is synced up to the poster placing animation.
|
||||
#define PLACE_SPEED 30
|
||||
|
||||
#define NUM_OF_POSTER_DESIGNS 33 //subtype 0-contraband posters
|
||||
// The poster item
|
||||
|
||||
#define NUM_OF_POSTER_DESIGNS_LEGIT 40 //subtype 1-corporate approved posters
|
||||
|
||||
/obj/item/weapon/contraband
|
||||
name = "contraband item"
|
||||
desc = "You probably shouldn't be holding this."
|
||||
icon = 'icons/obj/contraband.dmi'
|
||||
force = 0
|
||||
|
||||
|
||||
/obj/item/weapon/contraband/poster
|
||||
/obj/item/weapon/poster
|
||||
name = "rolled-up poster"
|
||||
desc = "The poster comes with its own automatic adhesive mechanism, for easy pinning to any vertical surface. Its vulgar themes have marked it as contraband aboard Nanotrasen space facilities."
|
||||
icon_state = "rolled_poster"
|
||||
var/serial_number = 0
|
||||
var/obj/structure/sign/poster/resulting_poster = null //The poster that will be created is initialised and stored through contraband/poster's constructor
|
||||
var/subtype = 0
|
||||
icon = 'icons/obj/contraband.dmi'
|
||||
force = 0
|
||||
burn_state = FLAMMABLE
|
||||
var/poster_type
|
||||
var/obj/structure/sign/poster/poster_structure
|
||||
|
||||
/obj/item/weapon/poster/New(loc, obj/structure/sign/poster/new_poster_structure)
|
||||
..()
|
||||
poster_structure = new_poster_structure
|
||||
if(!new_poster_structure && poster_type)
|
||||
poster_structure = new poster_type(src)
|
||||
|
||||
/obj/item/weapon/contraband/poster/New(turf/loc, given_serial = 0)
|
||||
if(given_serial == 0)
|
||||
if(subtype == 0)
|
||||
serial_number = rand(1, NUM_OF_POSTER_DESIGNS)
|
||||
resulting_poster = new(serial_number,subtype)
|
||||
if(subtype == 1)
|
||||
serial_number = rand(1, NUM_OF_POSTER_DESIGNS_LEGIT)
|
||||
resulting_poster = new(serial_number,subtype)
|
||||
else
|
||||
serial_number = given_serial
|
||||
//We don't give it a resulting_poster because if we called it with a given_serial it means that we're rerolling an already used poster.
|
||||
name += " - No. [serial_number]"
|
||||
..(loc)
|
||||
// posters store what name and description they would like their rolled up form to take.
|
||||
if(poster_structure)
|
||||
name = poster_structure.poster_item_name
|
||||
desc = poster_structure.poster_item_desc
|
||||
icon_state = poster_structure.poster_item_icon_state
|
||||
|
||||
name = "[name] - [poster_structure.original_name]"
|
||||
|
||||
/*/obj/item/weapon/contraband/poster/attack(mob/M as mob, mob/user as mob)
|
||||
src.add_fingerprint(user)
|
||||
if(resulting_poster)
|
||||
resulting_poster.add_fingerprint(user)
|
||||
..()*/
|
||||
/obj/item/weapon/poster/Destroy()
|
||||
poster_structure = null
|
||||
. = ..()
|
||||
|
||||
/*/obj/item/weapon/contraband/poster/attack(atom/A, mob/user as mob) //This shit is handled through the wall's attackby()
|
||||
if(istype(A, /turf/simulated/wall))
|
||||
if(resulting_poster == null)
|
||||
return
|
||||
else
|
||||
var/turf/simulated/wall/W = A
|
||||
var/check = 0
|
||||
var/stuff_on_wall = 0
|
||||
for(var/obj/O in W.contents) //Let's see if it already has a poster on it or too much stuff
|
||||
if(istype(O,/obj/structure/sign/poster))
|
||||
check = 1
|
||||
break
|
||||
stuff_on_wall++
|
||||
if(stuff_on_wall == 3)
|
||||
check = 1
|
||||
break
|
||||
|
||||
if(check)
|
||||
to_chat(user, "<span class='notice'>The wall is far too cluttered to place a poster!</span>")
|
||||
return
|
||||
|
||||
resulting_poster.loc = W //Looks like it's uncluttered enough. Place the poster
|
||||
W.contents += resulting_poster
|
||||
|
||||
qdel(src)*/
|
||||
// These icon_states may be overriden, but are for mapper's convinence
|
||||
/obj/item/weapon/poster/random_contraband
|
||||
name = "random contraband poster"
|
||||
poster_type = /obj/structure/sign/poster/contraband/random
|
||||
icon_state = "rolled_poster"
|
||||
|
||||
/obj/item/weapon/poster/random_official
|
||||
name = "random official poster"
|
||||
poster_type = /obj/structure/sign/poster/official/random
|
||||
icon_state = "rolled_poster_legit"
|
||||
|
||||
|
||||
//############################## THE ACTUAL DECALS ###########################
|
||||
|
||||
obj/structure/sign/poster
|
||||
/obj/structure/sign/poster
|
||||
name = "poster"
|
||||
desc = "A large piece of space-resistant printed paper."
|
||||
icon = 'icons/obj/contraband.dmi'
|
||||
anchored = 1
|
||||
var/serial_number //Will hold the value of src.loc if nobody initialises it
|
||||
var/ruined = 0
|
||||
var/subtype = 0
|
||||
anchored = TRUE
|
||||
var/original_name
|
||||
var/random_basetype
|
||||
var/ruined = FALSE
|
||||
var/never_random = FALSE // used for the 'random' subclasses.
|
||||
|
||||
obj/structure/sign/poster/legit // For mappers looking to pre-spawn NT approved posters.
|
||||
subtype = 1
|
||||
var/poster_item_name = "hypothetical poster"
|
||||
var/poster_item_desc = "This hypothetical poster item should not exist, let's be honest here."
|
||||
var/poster_item_icon_state = "rolled_poster"
|
||||
|
||||
obj/structure/sign/poster/New(serial,var/subtypeIn = -1)
|
||||
serial_number = serial
|
||||
if(subtypeIn != -1)
|
||||
subtype = subtypeIn
|
||||
|
||||
if(serial_number == loc)
|
||||
if(subtype == 0)
|
||||
serial_number = rand(1, NUM_OF_POSTER_DESIGNS) //This is for the mappers that want individual posters without having to use rolled posters.
|
||||
if(subtype == 1)
|
||||
serial_number = rand(1, NUM_OF_POSTER_DESIGNS_LEGIT)
|
||||
if(subtype == 0)
|
||||
icon_state = "poster[serial_number]"
|
||||
switch(serial_number)
|
||||
if(1)
|
||||
name += " - Free Tonto"
|
||||
desc += " A framed shred of a much larger flag, colors bled together and faded from age."
|
||||
if(2)
|
||||
name += " - Atmosia Declaration of Independence"
|
||||
desc += " A relic of a failed rebellion."
|
||||
if(3)
|
||||
name += " - Fun Police"
|
||||
desc += " A poster condemning the station's security forces."
|
||||
if(4)
|
||||
name += " - Lusty Xeno"
|
||||
desc += " A heretical poster depicting the titular star of an equally heretical book."
|
||||
if(5)
|
||||
name += " - Syndicate Recruitment Poster"
|
||||
desc += " See the galaxy! Shatter corrupt megacorporations! Join today!"
|
||||
if(6)
|
||||
name += " - Clown"
|
||||
desc += " Honk."
|
||||
if(7)
|
||||
name += " - Smoke"
|
||||
desc += " A poster depicting a carton of cigarettes."
|
||||
if(8)
|
||||
name += " - Grey Tide"
|
||||
desc += " A rebellious poster symbolizing assistant solidarity."
|
||||
if(9)
|
||||
name += " - Missing Gloves"
|
||||
desc += " This poster is about the uproar that followed Nanotrasen's financial cuts towards insulated-glove purchases."
|
||||
if(10)
|
||||
name += " - Hacking Guide"
|
||||
desc += " This poster details the internal workings of the common Nanotrasen airlock."
|
||||
if(11)
|
||||
name += " - RIP Badger"
|
||||
desc += " This poster commemorates the day hundreds of badgers worldwide were sacrificed for the greater good."
|
||||
if(12)
|
||||
name += " - Ambrosia Vulgaris"
|
||||
desc += " This poster is lookin' pretty trippy man."
|
||||
if(13)
|
||||
name += " - Donut Corp."
|
||||
desc += " This poster is an advertisement for Donut Corp."
|
||||
if(14)
|
||||
name += " - EAT"
|
||||
desc += " This poster is advising that you eat."
|
||||
if(15)
|
||||
name += " - Tools"
|
||||
desc += " This poster is an advertisement for tools."
|
||||
if(16)
|
||||
name += " - Power"
|
||||
desc += " A poster all about power."
|
||||
if(17)
|
||||
name += " - Power to the People"
|
||||
desc += " Screw those EDF guys!"
|
||||
if(18)
|
||||
name += " - Communist state"
|
||||
desc += " All hail the Communist party!"
|
||||
if(19)
|
||||
name += " - Lamarr"
|
||||
desc += " This poster depicts Lamarr. Probably made by the Research Director."
|
||||
if(20)
|
||||
name += " - Borg Fancy"
|
||||
desc += " Being fancy can be for any borg, just need a suit."
|
||||
if(21)
|
||||
name += " - Borg Fancy v2"
|
||||
desc += " Borg Fancy, Now only taking the most fancy."
|
||||
if(22)
|
||||
name += " - Kosmicheskaya Stantsiya 13 Does Not Exist"
|
||||
desc += " A poster denying the existence of the derelict station near [station_name()]."
|
||||
if(23)
|
||||
name += " - Rebels Unite!"
|
||||
desc += " A poster telling the viewer to rebel against Nanotrasen."
|
||||
if(24)
|
||||
name += " - C-20r Advertisement"
|
||||
desc += " A poster advertising the Scarborough Arms C-20r."
|
||||
if(25)
|
||||
name += " - Have A Puff"
|
||||
desc += " Who cares about lung cancer when you're high as a kite?"
|
||||
if(26)
|
||||
name += " - Revolver Advertisement"
|
||||
desc += " Because seven shots are all you need."
|
||||
if(27)
|
||||
name += " - D-Day Promotional Poster"
|
||||
desc += " A promotional poster for some rapper."
|
||||
if(28)
|
||||
name += " - Syndicate Pistol Advertisement"
|
||||
desc += " A poster advertising Syndicate pistols as being 'Classy as fuck'."
|
||||
if(29)
|
||||
name += " - E-sword Rainbow"
|
||||
desc += " All the colors of bloody murder rainbow."
|
||||
if(30)
|
||||
name += " - Red Rum"
|
||||
desc += " Looking at this poster makes you want to kill."
|
||||
if(31)
|
||||
name += " - CC 64K Advertisement"
|
||||
desc += " The latest portable computer from Comrade Computing, with a whole 64kB of ram!"
|
||||
if(32)
|
||||
name += " - Punch Shit"
|
||||
desc += " Fight things for no reason, like a man!"
|
||||
if(33)
|
||||
name += " - The Griffin"
|
||||
desc += " The Griffin commands you to be the worst you can be. Will you?"
|
||||
else
|
||||
name += " - Error (subtype 0 serial_number)"
|
||||
desc += " This is a bug, please report the circumstances under which you encountered this poster at https://github.com/ParadiseSS13/Paradise/issues."
|
||||
|
||||
if(subtype == 1)
|
||||
icon_state = "poster[serial_number]_legit"
|
||||
switch(serial_number)
|
||||
if(1)
|
||||
name += " - Here for Your Safety"
|
||||
desc += " A poster glorifying the station's security force."
|
||||
if(2)
|
||||
name += " - Nanotrasen Logo"
|
||||
desc += " A poster depicting the logo of Nanotrasen."
|
||||
if(3)
|
||||
name += " - Cleanliness"
|
||||
desc += " A poster warning of the dangers of poor hygiene."
|
||||
if(4)
|
||||
name += " - Help Others"
|
||||
desc += " A poster encouraging you to help fellow crewmembers."
|
||||
if(5)
|
||||
name += " - Build"
|
||||
desc += " A poster glorifying the engineering team."
|
||||
if(6)
|
||||
name += " - Bless This Spess"
|
||||
desc += " A poster blessing this area."
|
||||
if(7)
|
||||
name += " - Science"
|
||||
desc += " A poster depicting an atom."
|
||||
if(8)
|
||||
name += " - Ian"
|
||||
desc += " Arf Arf."
|
||||
if(9)
|
||||
name += " - Obey"
|
||||
desc += " A poster instructing the viewer to obey authority."
|
||||
if(10)
|
||||
name += " - Walk"
|
||||
desc += " A poster instructing the viewer to walk instead of running."
|
||||
if(11)
|
||||
name += " - State Laws"
|
||||
desc += " A poster instructing cyborgs to state their laws."
|
||||
if(12)
|
||||
name += " - Love Ian"
|
||||
desc += " Ian is love, Ian is life."
|
||||
if(13)
|
||||
name += " - Space Cops"
|
||||
desc += " A poster advertising the television show Space Cops."
|
||||
if(14)
|
||||
name += " - Ue No"
|
||||
desc += " This thing is all in Japanese."
|
||||
if(15)
|
||||
name += " - Get Your LEGS"
|
||||
desc += " LEGS: Leadership, Experience, Genius, S(Opportunity)."
|
||||
if(16)
|
||||
name += " - Do Not Question"
|
||||
desc += " A poster instructing the viewer not to ask about things they aren't meant to know."
|
||||
if(17)
|
||||
name += " - Work for a Future"
|
||||
desc += " A poster encouraging you to work for your future, what it is, no one is really sure."
|
||||
if(18)
|
||||
name += " - Soft Cap Pop Art"
|
||||
desc += " A poster reprint of some cheap pop art."
|
||||
if(19)
|
||||
name += " - Safety: Internals"
|
||||
desc += " A poster instructing the viewer to wear internals in environments where there is no oxygen or the air has been rendered toxic."
|
||||
if(20)
|
||||
name += " - Safety: Eye Protection"
|
||||
desc += " A poster instructing the viewer to wear eye protection when dealing with chemicals, smoke, or bright lights."
|
||||
if(21)
|
||||
name += " - Safety: Report"
|
||||
desc += " A poster instructing the viewer to report suspicious activity to the security force."
|
||||
if(22)
|
||||
name += " - Report Crimes"
|
||||
desc += " Report crimes at: 1-800-FUCKING-TERRORISTS or at https://www.sectorthirteen.nt/malcontents."
|
||||
if(23)
|
||||
name += " - Ion Rifle"
|
||||
desc += " A poster displaying an Ion Rifle."
|
||||
if(24)
|
||||
name += " - Foam Force Advertisement"
|
||||
desc += " Foam Force, it's Foam or be Foamed!"
|
||||
if(25)
|
||||
name += " - Cohiba Robusto Advertisement"
|
||||
desc += " Cohiba Robusto, the classy cigar."
|
||||
if(26)
|
||||
name += " - 50th Anniversary Vintage Reprint"
|
||||
desc += " A reprint of a poster from 2504, commemorating the 50th Anniversary of Nanoposters Manufacturing, a subsidiary of Nanotrasen."
|
||||
if(27)
|
||||
name += " - Fruit Bowl"
|
||||
desc += " Simple, yet awe inspiring."
|
||||
if(28)
|
||||
name += " - NanoPDA 1000 Advertisement"
|
||||
desc += " A poster advertising the latest PDA from Nanotrasen."
|
||||
if(29)
|
||||
name += " - Enlist"
|
||||
desc += " Enlist in the Nanotrasen ERT reserves today!"
|
||||
if(30)
|
||||
name += " - Nanomichi Advertisement"
|
||||
desc += " A poster advertising Nanomichi brand audio cassettes."
|
||||
if(31)
|
||||
name += " - 12 Gauge"
|
||||
desc += " A poster boasting about the superiority of 12-gauge shotgun shells."
|
||||
if(32)
|
||||
name += " - High-Class Martini"
|
||||
desc += " I told you to shake it, no stirring."
|
||||
if(33)
|
||||
name += " - The Owl"
|
||||
desc += " The Owl would do his best to protect the station. Will you?"
|
||||
if(34)
|
||||
name += " - Spider Risk"
|
||||
desc += " A poster detailing what to do when giant spiders are seen."
|
||||
if(35)
|
||||
name += " - Kill Syndicate"
|
||||
desc += " A poster demanding that all crew should be ready to fight the Syndicate."
|
||||
if(36)
|
||||
name += " - Information on Air"
|
||||
desc += " A poster providing visual aid to remind crew of air canisters."
|
||||
if(37)
|
||||
name += " - Information on Air"
|
||||
desc += " A poster providing visual aid to remind crew of air canisters."
|
||||
if(38)
|
||||
name += " - Dig for Glory!"
|
||||
desc += " A poster providing trying to convince crew to mine for ore."
|
||||
if(39)
|
||||
name += " - Religious Poster"
|
||||
desc += " A generic religious poser telling you to believe."
|
||||
if(40)
|
||||
name += " - Stay Healthy!"
|
||||
desc += " A healthy crew is a happy crew!"
|
||||
else
|
||||
name += " - Error (subtype 1 serial_number)"
|
||||
desc += " This is a bug, please report the circumstances under which you encountered this poster at https://github.com/ParadiseSS13/Paradise/issues."
|
||||
/obj/structure/sign/poster/New()
|
||||
..()
|
||||
if(random_basetype)
|
||||
randomise(random_basetype)
|
||||
if(!ruined)
|
||||
original_name = name
|
||||
name = "poster - [name]"
|
||||
desc = "A large piece of space-resistant printed paper. [desc]"
|
||||
|
||||
obj/structure/sign/poster/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/weapon/wirecutters))
|
||||
/obj/structure/sign/poster/proc/randomise(base_type)
|
||||
var/list/poster_types = subtypesof(base_type)
|
||||
var/list/approved_types = list()
|
||||
for(var/t in poster_types)
|
||||
var/obj/structure/sign/poster/T = t
|
||||
if(initial(T.icon_state) && !initial(T.never_random))
|
||||
approved_types |= T
|
||||
|
||||
var/obj/structure/sign/poster/selected = pick(approved_types)
|
||||
|
||||
name = initial(selected.name)
|
||||
desc = initial(selected.desc)
|
||||
icon_state = initial(selected.icon_state)
|
||||
poster_item_name = initial(selected.poster_item_name)
|
||||
poster_item_desc = initial(selected.poster_item_desc)
|
||||
poster_item_icon_state = initial(selected.poster_item_icon_state)
|
||||
ruined = initial(selected.ruined)
|
||||
|
||||
/obj/structure/sign/poster/attackby(obj/item/I, mob/user, params)
|
||||
if(iswirecutter(I))
|
||||
playsound(loc, I.usesound, 100, 1)
|
||||
if(ruined)
|
||||
to_chat(user, "<span class='notice'>You remove the remnants of the poster.</span>")
|
||||
@@ -337,45 +94,33 @@ obj/structure/sign/poster/attackby(obj/item/I, mob/user, params)
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You carefully remove the poster from the wall.</span>")
|
||||
roll_and_drop(user.loc)
|
||||
return
|
||||
|
||||
|
||||
/obj/structure/sign/poster/attack_hand(mob/user)
|
||||
if(ruined)
|
||||
return
|
||||
var/temp_loc = user.loc
|
||||
switch(alert("Do I want to rip the poster from the wall?","You think...","Yes","No"))
|
||||
if("Yes")
|
||||
if( user.loc != temp_loc || ruined )
|
||||
return
|
||||
visible_message("<span class='warning'>[user] rips [src] in a single, decisive motion!</span>" )
|
||||
playsound(src.loc, 'sound/items/poster_ripped.ogg', 100, 1)
|
||||
ruined = 1
|
||||
icon_state = "poster_ripped"
|
||||
name = "ripped poster"
|
||||
desc = "You can't make out anything from the poster's original print. It's ruined."
|
||||
add_fingerprint(user)
|
||||
if("No")
|
||||
return
|
||||
visible_message("[user] rips [src] in a single, decisive motion!" )
|
||||
playsound(src.loc, 'sound/items/poster_ripped.ogg', 100, 1)
|
||||
|
||||
/obj/structure/sign/poster/proc/roll_and_drop(turf/location)
|
||||
var/obj/item/weapon/contraband/poster/P
|
||||
if(subtype == 1)
|
||||
P = new/obj/item/weapon/contraband/poster/legit/(src, serial_number)
|
||||
else
|
||||
P = new(src, serial_number)
|
||||
P.resulting_poster = src
|
||||
P.loc = location
|
||||
loc = P
|
||||
var/obj/structure/sign/poster/ripped/R = new(loc)
|
||||
R.pixel_y = pixel_y
|
||||
R.pixel_x = pixel_x
|
||||
R.add_fingerprint(user)
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/sign/poster/proc/roll_and_drop(loc)
|
||||
pixel_x = 0
|
||||
pixel_y = 0
|
||||
var/obj/item/weapon/poster/P = new(loc, src)
|
||||
forceMove(P)
|
||||
return P
|
||||
|
||||
//seperated to reduce code duplication. Moved here for ease of reference and to unclutter r_wall/attackby()
|
||||
/turf/simulated/wall/proc/place_poster(obj/item/weapon/contraband/poster/P, mob/user)
|
||||
if(!P.resulting_poster) return
|
||||
|
||||
/turf/simulated/wall/proc/place_poster(obj/item/weapon/poster/P, mob/user)
|
||||
if(!P.poster_structure)
|
||||
return
|
||||
var/stuff_on_wall = 0
|
||||
for(var/obj/O in user.loc.contents) //Let's see if it already has a poster on it or too much stuff
|
||||
if(istype(O,/obj/structure/sign))
|
||||
for(var/obj/O in contents) //Let's see if it already has a poster on it or too much stuff
|
||||
if(istype(O, /obj/structure/sign/poster))
|
||||
to_chat(user, "<span class='notice'>The wall is far too cluttered to place a poster!</span>")
|
||||
return
|
||||
stuff_on_wall++
|
||||
@@ -385,9 +130,7 @@ obj/structure/sign/poster/attackby(obj/item/I, mob/user, params)
|
||||
|
||||
to_chat(user, "<span class='notice'>You start placing the poster on the wall...</span>")//Looks like it's uncluttered enough. Place the poster.
|
||||
|
||||
|
||||
//declaring D because otherwise if P gets 'deconstructed' we lose our reference to P.resulting_poster
|
||||
var/obj/structure/sign/poster/D = P.resulting_poster
|
||||
var/obj/structure/sign/poster/D = P.poster_structure
|
||||
|
||||
var/temp_loc = user.loc
|
||||
|
||||
@@ -408,24 +151,422 @@ obj/structure/sign/poster/attackby(obj/item/I, mob/user, params)
|
||||
to_chat(user, "<span class='notice'>You cannot reach the wall from here!</span>")
|
||||
return
|
||||
|
||||
flick("poster_being_set",D)
|
||||
D.loc = temp_loc
|
||||
|
||||
flick("poster_being_set", D)
|
||||
D.forceMove(temp_loc)
|
||||
qdel(P) //delete it now to cut down on sanity checks afterwards. Agouri's code supports rerolling it anyway
|
||||
playsound(D.loc, 'sound/items/poster_being_created.ogg', 100, 1)
|
||||
|
||||
sleep(17)
|
||||
if(!D) return
|
||||
if(do_after(user, PLACE_SPEED, target = src))
|
||||
if(!D || qdeleted(D))
|
||||
return
|
||||
|
||||
if(istype(src,/turf/simulated/wall) && user && user.loc == temp_loc) //Let's check if everything is still there
|
||||
to_chat(user, "<span class='notice'>You place the poster!</span>")
|
||||
else
|
||||
D.roll_and_drop(temp_loc)
|
||||
return
|
||||
if(iswallturf(src) && user && user.loc == temp_loc) //Let's check if everything is still there
|
||||
to_chat(user, "<span class='notice'>You place the poster!</span>")
|
||||
return
|
||||
|
||||
//Putting non-contraband posters here because everything else here is related to posters anyway. -JS
|
||||
to_chat(user, "<span class='notice'>The poster falls down!</span>")
|
||||
D.roll_and_drop(temp_loc)
|
||||
|
||||
/obj/item/weapon/contraband/poster/legit
|
||||
desc = "The poster comes with its own automatic adhesive mechanism, for easy pinning to any vertical surface. It's contents go through Nanotrasen's strict content guidelines."
|
||||
icon_state = "rolled_poster_legit"
|
||||
subtype = 1
|
||||
|
||||
////////////////////////////////POSTER VARIATIONS////////////////////////////////
|
||||
|
||||
/obj/structure/sign/poster/ripped
|
||||
ruined = TRUE
|
||||
icon_state = "poster_ripped"
|
||||
name = "ripped poster"
|
||||
desc = "You can't make out anything from the poster's original print. It's ruined."
|
||||
|
||||
/obj/structure/sign/poster/random
|
||||
name = "random poster" // could even be ripped
|
||||
icon_state = "random_anything"
|
||||
never_random = TRUE
|
||||
random_basetype = /obj/structure/sign/poster
|
||||
|
||||
/obj/structure/sign/poster/contraband
|
||||
poster_item_name = "contraband poster"
|
||||
poster_item_desc = "This poster comes with its own automatic adhesive mechanism, for easy pinning to any vertical surface. Its vulgar themes have marked it as contraband aboard Nanotrasen space facilities."
|
||||
poster_item_icon_state = "rolled_poster"
|
||||
|
||||
/obj/structure/sign/poster/contraband/random
|
||||
name = "random contraband poster"
|
||||
icon_state = "random_contraband"
|
||||
never_random = TRUE
|
||||
random_basetype = /obj/structure/sign/poster/contraband
|
||||
|
||||
/obj/structure/sign/poster/contraband/free_tonto
|
||||
name = "Free Tonto"
|
||||
desc = "A salvaged shred of a much larger flag, colors bled together and faded from age."
|
||||
icon_state = "poster1"
|
||||
|
||||
/obj/structure/sign/poster/contraband/atmosia_independence
|
||||
name = "Atmosia Declaration of Independence"
|
||||
desc = "A relic of a failed rebellion."
|
||||
icon_state = "poster2"
|
||||
|
||||
/obj/structure/sign/poster/contraband/fun_police
|
||||
name = "Fun Police"
|
||||
desc = "A poster condemning the station's security forces."
|
||||
icon_state = "poster3"
|
||||
|
||||
/obj/structure/sign/poster/contraband/lusty_xenomorph
|
||||
name = "Lusty Xenomorph"
|
||||
desc = "A heretical poster depicting the titular star of an equally heretical book."
|
||||
icon_state = "poster4"
|
||||
|
||||
/obj/structure/sign/poster/contraband/syndicate_recruitment
|
||||
name = "Syndicate Recruitment"
|
||||
desc = "See the galaxy! Shatter corrupt megacorporations! Join today!"
|
||||
icon_state = "poster5"
|
||||
|
||||
/obj/structure/sign/poster/contraband/clown
|
||||
name = "Clown"
|
||||
desc = "Honk."
|
||||
icon_state = "poster6"
|
||||
|
||||
/obj/structure/sign/poster/contraband/smoke
|
||||
name = "Smoke"
|
||||
desc = "A poster advertising a rival corporate brand of cigarettes."
|
||||
icon_state = "poster7"
|
||||
|
||||
/obj/structure/sign/poster/contraband/grey_tide
|
||||
name = "Grey Tide"
|
||||
desc = "A rebellious poster symbolizing assistant solidarity."
|
||||
icon_state = "poster8"
|
||||
|
||||
/obj/structure/sign/poster/contraband/missing_gloves
|
||||
name = "Missing Gloves"
|
||||
desc = "This poster references the uproar that followed Nanotrasen's financial cuts toward insulated-glove purchases."
|
||||
icon_state = "poster9"
|
||||
|
||||
/obj/structure/sign/poster/contraband/hacking_guide
|
||||
name = "Hacking Guide"
|
||||
desc = "This poster details the internal workings of the common Nanotrasen airlock. Sadly, it appears out of date."
|
||||
icon_state = "poster10"
|
||||
|
||||
/obj/structure/sign/poster/contraband/rip_badger
|
||||
name = "RIP Badger"
|
||||
desc = "This seditious poster references Nanotrasen's genocide of a space station full of badgers."
|
||||
icon_state = "poster11"
|
||||
|
||||
/obj/structure/sign/poster/contraband/ambrosia_vulgaris
|
||||
name = "Ambrosia Vulgaris"
|
||||
desc = "This poster is lookin' pretty trippy man."
|
||||
icon_state = "poster12"
|
||||
|
||||
/obj/structure/sign/poster/contraband/donut_corp
|
||||
name = "Donut Corp."
|
||||
desc = "This poster is an unauthorized advertisement for Donut Corp."
|
||||
icon_state = "poster13"
|
||||
|
||||
/obj/structure/sign/poster/contraband/eat
|
||||
name = "EAT."
|
||||
desc = "This poster promotes rank gluttony."
|
||||
icon_state = "poster14"
|
||||
|
||||
/obj/structure/sign/poster/contraband/tools
|
||||
name = "Tools"
|
||||
desc = "This poster looks like an advertisement for tools, but is in fact a subliminal jab at the tools at CentComm."
|
||||
icon_state = "poster15"
|
||||
|
||||
/obj/structure/sign/poster/contraband/power
|
||||
name = "Power"
|
||||
desc = "A poster that positions the seat of power outside Nanotrasen."
|
||||
icon_state = "poster16"
|
||||
|
||||
/obj/structure/sign/poster/contraband/power_people
|
||||
name = "Power to the people"
|
||||
desc = "Screw those EDF guys!"
|
||||
icon_state = "poster17"
|
||||
|
||||
/obj/structure/sign/poster/contraband/communist_state
|
||||
name = "Communist State"
|
||||
desc = "All hail the Communist party!"
|
||||
icon_state = "poster18"
|
||||
|
||||
/obj/structure/sign/poster/contraband/lamarr
|
||||
name = "Lamarr"
|
||||
desc = "This poster depicts Lamarr. Probably made by a traitorous Research Director."
|
||||
icon_state = "poster19"
|
||||
|
||||
/obj/structure/sign/poster/contraband/borg_fancy_1
|
||||
name = "Borg Fancy"
|
||||
desc = "Being fancy can be for any borg, just need a suit."
|
||||
icon_state = "poster20"
|
||||
|
||||
/obj/structure/sign/poster/contraband/borg_fancy_2
|
||||
name = "Borg Fancy v2"
|
||||
desc = "Borg Fancy, Now only taking the most fancy."
|
||||
icon_state = "poster21"
|
||||
|
||||
/obj/structure/sign/poster/contraband/kss13
|
||||
name = "Kosmicheskaya Stantsiya 13 Does Not Exist"
|
||||
desc = "A poster mocking CentComm's denial of the existence of the derelict station near Space Station 13."
|
||||
icon_state = "poster22"
|
||||
|
||||
/obj/structure/sign/poster/contraband/rebels_unite
|
||||
name = "Rebels Unite"
|
||||
desc = "A poster urging the viewer to rebel against Nanotrasen."
|
||||
icon_state = "poster23"
|
||||
|
||||
/obj/structure/sign/poster/contraband/c20r
|
||||
name = "C-20r"
|
||||
desc = "A poster advertising the Scarborough Arms C-20r."
|
||||
icon_state = "poster24"
|
||||
|
||||
/obj/structure/sign/poster/contraband/have_a_puff
|
||||
name = "Have a Puff"
|
||||
desc = "Who cares about lung cancer when you're high as a kite?"
|
||||
icon_state = "poster25"
|
||||
|
||||
/obj/structure/sign/poster/contraband/revolver
|
||||
name = "Revolver"
|
||||
desc = "Because seven shots are all you need."
|
||||
icon_state = "poster26"
|
||||
|
||||
/obj/structure/sign/poster/contraband/d_day_promo
|
||||
name = "D-Day Promo"
|
||||
desc = "A promotional poster for some rapper."
|
||||
icon_state = "poster27"
|
||||
|
||||
/obj/structure/sign/poster/contraband/syndicate_pistol
|
||||
name = "Syndicate Pistol"
|
||||
desc = "A poster advertising syndicate pistols as being 'classy as fuck'. It is covered in faded gang tags."
|
||||
icon_state = "poster28"
|
||||
|
||||
/obj/structure/sign/poster/contraband/energy_swords
|
||||
name = "Energy Swords"
|
||||
desc = "All the colors of the bloody murder rainbow."
|
||||
icon_state = "poster29"
|
||||
|
||||
/obj/structure/sign/poster/contraband/red_rum
|
||||
name = "Red Rum"
|
||||
desc = "Looking at this poster makes you want to kill."
|
||||
icon_state = "poster30"
|
||||
|
||||
/obj/structure/sign/poster/contraband/cc64k_ad
|
||||
name = "CC 64K Ad"
|
||||
desc = "The latest portable computer from Comrade Computing, with a whole 64kB of ram!"
|
||||
icon_state = "poster31"
|
||||
|
||||
/obj/structure/sign/poster/contraband/punch_shit
|
||||
name = "Punch Shit"
|
||||
desc = "Fight things for no reason, like a man!"
|
||||
icon_state = "poster32"
|
||||
|
||||
/obj/structure/sign/poster/contraband/the_griffin
|
||||
name = "The Griffin"
|
||||
desc = "The Griffin commands you to be the worst you can be. Will you?"
|
||||
icon_state = "poster33"
|
||||
|
||||
/obj/structure/sign/poster/official
|
||||
poster_item_name = "motivational poster"
|
||||
poster_item_desc = "An official Nanotrasen-issued poster to foster a compliant and obedient workforce. It comes with state-of-the-art adhesive backing, for easy pinning to any vertical surface."
|
||||
poster_item_icon_state = "rolled_poster_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/random
|
||||
name = "random official poster"
|
||||
random_basetype = /obj/structure/sign/poster/official
|
||||
icon_state = "random_official"
|
||||
never_random = TRUE
|
||||
|
||||
/obj/structure/sign/poster/official/here_for_your_safety
|
||||
name = "Here For Your Safety"
|
||||
desc = "A poster glorifying the station's security force."
|
||||
icon_state = "poster1_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/nanotrasen_logo
|
||||
name = "Nanotrasen Logo"
|
||||
desc = "A poster depicting the Nanotrasen logo."
|
||||
icon_state = "poster2_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/cleanliness
|
||||
name = "Cleanliness"
|
||||
desc = "A poster warning of the dangers of poor hygiene."
|
||||
icon_state = "poster3_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/help_others
|
||||
name = "Help Others"
|
||||
desc = "A poster encouraging you to help fellow crewmembers."
|
||||
icon_state = "poster4_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/build
|
||||
name = "Build"
|
||||
desc = "A poster glorifying the engineering team."
|
||||
icon_state = "poster5_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/bless_this_spess
|
||||
name = "Bless This Spess"
|
||||
desc = "A poster blessing this area."
|
||||
icon_state = "poster6_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/science
|
||||
name = "Science"
|
||||
desc = "A poster depicting an atom."
|
||||
icon_state = "poster7_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/ian
|
||||
name = "Ian"
|
||||
desc = "Arf arf. Yap."
|
||||
icon_state = "poster8_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/obey
|
||||
name = "Obey"
|
||||
desc = "A poster instructing the viewer to obey authority."
|
||||
icon_state = "poster9_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/walk
|
||||
name = "Walk"
|
||||
desc = "A poster instructing the viewer to walk instead of running."
|
||||
icon_state = "poster10_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/state_laws
|
||||
name = "State Laws"
|
||||
desc = "A poster instructing cyborgs to state their laws."
|
||||
icon_state = "poster11_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/love_ian
|
||||
name = "Love Ian"
|
||||
desc = "Ian is love, Ian is life."
|
||||
icon_state = "poster12_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/space_cops
|
||||
name = "Space Cops."
|
||||
desc = "A poster advertising the television show Space Cops."
|
||||
icon_state = "poster13_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/ue_no
|
||||
name = "Ue No."
|
||||
desc = "This thing is all in Japanese."
|
||||
icon_state = "poster14_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/get_your_legs
|
||||
name = "Get Your LEGS"
|
||||
desc = "LEGS: Leadership, Experience, Genius, Subordination."
|
||||
icon_state = "poster15_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/do_not_question
|
||||
name = "Do Not Question"
|
||||
desc = "A poster instructing the viewer not to ask about things they aren't meant to know."
|
||||
icon_state = "poster16_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/work_for_a_future
|
||||
name = "Work For A Future"
|
||||
desc = " A poster encouraging you to work for your future."
|
||||
icon_state = "poster17_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/soft_cap_pop_art
|
||||
name = "Soft Cap Pop Art"
|
||||
desc = "A poster reprint of some cheap pop art."
|
||||
icon_state = "poster18_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/safety_internals
|
||||
name = "Safety: Internals"
|
||||
desc = "A poster instructing the viewer to wear internals in the rare environments where there is no oxygen or the air has been rendered toxic."
|
||||
icon_state = "poster19_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/safety_eye_protection
|
||||
name = "Safety: Eye Protection"
|
||||
desc = "A poster instructing the viewer to wear eye protection when dealing with chemicals, smoke, or bright lights."
|
||||
icon_state = "poster20_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/safety_report
|
||||
name = "Safety: Report"
|
||||
desc = "A poster instructing the viewer to report suspicious activity to the security force."
|
||||
icon_state = "poster21_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/report_crimes
|
||||
name = "Report Crimes"
|
||||
desc = "A poster encouraging the swift reporting of crime or seditious behavior to station security."
|
||||
icon_state = "poster22_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/ion_rifle
|
||||
name = "Ion Rifle"
|
||||
desc = "A poster displaying an Ion Rifle."
|
||||
icon_state = "poster23_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/foam_force_ad
|
||||
name = "Foam Force Ad"
|
||||
desc = "Foam Force, it's Foam or be Foamed!"
|
||||
icon_state = "poster24_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/cohiba_robusto_ad
|
||||
name = "Cohiba Robusto Ad"
|
||||
desc = "Cohiba Robusto, the classy cigar."
|
||||
icon_state = "poster25_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/anniversary_vintage_reprint
|
||||
name = "50th Anniversary Vintage Reprint"
|
||||
desc = "A reprint of a poster from 2505, commemorating the 50th Anniversery of Nanoposters Manufacturing, a subsidary of Nanotrasen."
|
||||
icon_state = "poster26_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/fruit_bowl
|
||||
name = "Fruit Bowl"
|
||||
desc = " Simple, yet awe-inspiring."
|
||||
icon_state = "poster27_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/pda_ad
|
||||
name = "PDA Ad"
|
||||
desc = "A poster advertising the latest PDA from Nanotrasen suppliers."
|
||||
icon_state = "poster28_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/enlist
|
||||
name = "Enlist"
|
||||
desc = "Enlist in the Nanotrasen ERT reserves today!"
|
||||
icon_state = "poster29_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/nanomichi_ad
|
||||
name = "Nanomichi Ad"
|
||||
desc = " A poster advertising Nanomichi brand audio cassettes."
|
||||
icon_state = "poster30_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/twelve_gauge
|
||||
name = "12 Gauge"
|
||||
desc = "A poster boasting about the superiority of 12 gauge shotgun shells."
|
||||
icon_state = "poster31_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/high_class_martini
|
||||
name = "High-Class Martini"
|
||||
desc = "I told you to shake it, no stirring."
|
||||
icon_state = "poster32_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/the_owl
|
||||
name = "The Owl"
|
||||
desc = "The Owl would do his best to protect the station. Will you?"
|
||||
icon_state = "poster33_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/spiders
|
||||
name = "Spider Risk"
|
||||
desc = "A poster detailing what to do when giant spiders are seen."
|
||||
icon_state = "poster34_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/kill_syndicate
|
||||
name = "Kill Syndicate"
|
||||
desc = "A poster demanding that all crew should be ready to fight the Syndicate."
|
||||
icon_state = "poster35_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/air1
|
||||
name = "Information on Air"
|
||||
desc = "A poster providing visual aid to remind crew of air canisters."
|
||||
icon_state = "poster36_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/air2
|
||||
name = "Information on Air"
|
||||
desc = "A poster providing visual aid to remind crew of air canisters."
|
||||
icon_state = "poster37_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/dig
|
||||
name = "Dig for Glory!"
|
||||
desc = "A poster trying to convince the crew to mine for ore."
|
||||
icon_state = "poster38_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/religious
|
||||
name = "Religious Poster"
|
||||
desc = "A generic religious poster telling you to believe."
|
||||
icon_state = "poster39_legit"
|
||||
|
||||
/obj/structure/sign/poster/official/healthy
|
||||
name = "Stay Healthy!"
|
||||
desc = "A healthy crew is a happy crew!"
|
||||
icon_state = "poster40_legit"
|
||||
|
||||
#undef PLACE_SPEED
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
/obj/item/clothing/head/cone = 10,
|
||||
/obj/item/weapon/coin/silver = 10,
|
||||
/obj/item/weapon/coin/twoheaded = 10,
|
||||
/obj/item/weapon/contraband/poster = 10,
|
||||
/obj/item/weapon/poster/random_contraband = 10,
|
||||
/obj/item/weapon/crowbar = 10,
|
||||
/obj/item/weapon/crowbar/red = 10,
|
||||
/obj/item/weapon/extinguisher = 90,
|
||||
|
||||
Reference in New Issue
Block a user