Merge pull request #7939 from VOREStation/Arokha/holoposters

Adds holoposters
This commit is contained in:
Aronai Sieyes
2020-05-17 22:40:17 -04:00
committed by GitHub
11 changed files with 2736 additions and 2410 deletions
+116
View File
@@ -0,0 +1,116 @@
GLOBAL_LIST_EMPTY(holoposters)
/obj/machinery/holoposter
name = "Holographic Poster"
desc = "A wall-mounted holographic projector displaying advertisements by all manner of factions. How much do they pay to advertise here?"
icon = 'icons/obj/holoposter_vr.dmi'
icon_state = "off"
anchored = 1
use_power = 1
idle_power_usage = 80
power_channel = ENVIRON
var/icon_forced = FALSE
var/examine_addon = "It appears to be powered off."
var/mytimer
var/alerting = FALSE
var/list/postertypes = list(
"hephaestus" = list(LIGHT_COLOR_CYAN, "Hephaestus Aeronautics, a subsidiary of Hephaestus Industries. Known to make the best - if pricy - atmospheric to orbit shuttles and gliders for the consumer market."),
"aether" = list(LIGHT_COLOR_CYAN, "Aether Atmospherics, one of the lesser-known TSCs. They're ubiquitious in the Periphery - the very air you're breathing was probably sold and delivered by them."),
"moreau" = list(LIGHT_COLOR_ORANGE, "Children of Moreau. The hologram is a call to action by the local Moreau sect. 'Terraform, Prosper, and Be Sustainable, children!'"),
"cybersun" = list(LIGHT_COLOR_GREEN, "Cybersun Industries. A complex diagram without labels, showing the inner workings of a backup implant sold by Cybersun. 'The highest quality, for an affordable price!' says the tagline."),
"veymed" = list(LIGHT_COLOR_GREEN, "Vey-Med. This is an advertisement for a local clinic a few systems away. The tagline reads 'The mark of a truly civilized civilization is rewriting what evolution could not'."),
"grayson" = list(LIGHT_COLOR_ORANGE, "Grayson Manufactories Ltd. An advertisement for a sale from Grayson, including up to 50% off on lathe parts. Truly, a delight for DIY tinkerers out there."),
"ares" = list(LIGHT_COLOR_PINK, "Friends of Ares. Who managed to slip this poster into the rotation? A local charity set up by the Ares Confederation to help workers unionize or found their own colonies. 'Donate today!'"),
"moebius" = list(LIGHT_COLOR_PURPLE, "Moebius. One of the few companies worth merit beyond their local bubble staffed completely by synthetics. 'For synths, by synths.'")
)
/obj/machinery/holoposter/Initialize()
. = ..()
set_rand_sprite()
GLOB.holoposters += src
mytimer = addtimer(CALLBACK(src, .proc/set_rand_sprite), 30 MINUTES + rand(0, 5 MINUTES), TIMER_STOPPABLE | TIMER_LOOP)
/obj/machinery/holoposter/Destroy()
GLOB.holoposters -= src
return ..()
/obj/machinery/holoposter/process()
return PROCESS_KILL
/obj/machinery/holoposter/examine(mob/user, infix, suffix)
. = ..()
. += examine_addon
/obj/machinery/holoposter/update_icon()
if(stat & NOPOWER)
icon_state = "off"
examine_addon = "It appears to be powered off."
set_light(0)
return
var/new_color = LIGHT_COLOR_HALOGEN
if(stat & BROKEN)
icon_state = "glitch"
examine_addon = "It appears to be malfunctioning."
new_color = "#6A6C71"
else
if((z in using_map.station_levels) && global.security_level) // 0 is fine, everything higher is alert levels
icon_state = "attention"
examine_addon = "It warns you to remain calm and contact your supervisor as soon as possible."
new_color = "#AA7039"
alerting = TRUE
else if(alerting && !global.security_level) // coming out of alert
alerting = FALSE
set_rand_sprite()
return
else if(icon_state in postertypes)
var/list/settings = postertypes[icon_state]
new_color = settings[1]
examine_addon = settings[2]
set_light(l_range = 2, l_power = 2, l_color = new_color)
/obj/machinery/holoposter/proc/set_rand_sprite()
if(alerting)
return
if(icon_forced && mytimer)
deltimer(mytimer)
return
icon_state = pick(postertypes)
update_icon()
/obj/machinery/holoposter/attackby(obj/item/W, mob/user)
src.add_fingerprint(user)
if(stat & (NOPOWER))
return
if (W.is_multitool())
playsound(user.loc, 'sound/items/penclick.ogg', 60, 1)
icon_state = input("Available Posters", "Holographic Poster") as null|anything in postertypes + "random"
if(!Adjacent(user))
return
if(icon_state == "random")
stat &= ~BROKEN
icon_forced = FALSE
if(!mytimer)
mytimer = addtimer(CALLBACK(src, .proc/set_rand_sprite), 30 MINUTES + rand(0, 5 MINUTES), TIMER_STOPPABLE | TIMER_LOOP)
set_rand_sprite()
return
icon_forced = TRUE
if(mytimer)
deltimer(mytimer)
stat &= ~BROKEN
update_icon()
return
/obj/machinery/holoposter/attack_ai(mob/user as mob)
return attack_hand(user)
/obj/machinery/holoposter/power_change()
var/wasUnpowered = stat & NOPOWER
..()
if(wasUnpowered != (stat & NOPOWER))
update_icon()
/obj/machinery/holoposter/emp_act()
stat |= BROKEN
update_icon()
@@ -75,6 +75,11 @@
for(var/obj/machinery/status_display/FA in machines)
if(FA.z in using_map.contact_levels)
FA.on_alert_changed(newlevel)
//VOREStation Add
for(var/hp in GLOB.holoposters)
var/obj/machinery/holoposter/HP = hp
HP.update_icon()
//VOREStation Add End
if(level >= SEC_LEVEL_RED)
atc.reroute_traffic(yes = 1) // Tell them fuck off we're busy.
Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+131 -66
View File
@@ -1147,25 +1147,6 @@
},
/turf/simulated/floor/tiled,
/area/tether/surfacebase/surface_three_hall)
"acl" = (
/obj/effect/floor_decal/borderfloor{
dir = 1
},
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 1
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
/obj/effect/floor_decal/steeldecal/steel_decals7{
dir = 4
},
/obj/effect/floor_decal/steeldecal/steel_decals7,
/obj/effect/floor_decal/corner/lightgrey/border{
dir = 1
},
/turf/simulated/floor/tiled,
/area/tether/surfacebase/surface_three_hall)
"acm" = (
/obj/structure/sink{
dir = 4;
@@ -12647,22 +12628,6 @@
},
/turf/simulated/floor/tiled,
/area/tether/surfacebase/surface_three_hall)
"avi" = (
/obj/structure/disposalpipe/segment,
/obj/effect/floor_decal/borderfloor{
dir = 8
},
/obj/effect/floor_decal/steeldecal/steel_decals7{
dir = 5
},
/obj/effect/floor_decal/steeldecal/steel_decals7{
dir = 6
},
/obj/effect/floor_decal/corner/blue/border{
dir = 8
},
/turf/simulated/floor/tiled,
/area/tether/surfacebase/surface_three_hall)
"avj" = (
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
@@ -17371,22 +17336,6 @@
},
/turf/simulated/floor/tiled/dark,
/area/rnd/outpost/xenobiology/outpost_hallway)
"aCn" = (
/obj/machinery/atmospherics/unary/vent_scrubber/on,
/obj/effect/floor_decal/borderfloor{
dir = 1;
pixel_y = 0
},
/obj/effect/floor_decal/corner/mauve/border{
dir = 1
},
/obj/structure/bed/chair,
/obj/effect/floor_decal/steeldecal/steel_decals7{
dir = 4
},
/obj/effect/floor_decal/steeldecal/steel_decals7,
/turf/simulated/floor/tiled,
/area/rnd/research/researchdivision)
"aCo" = (
/obj/structure/table/gamblingtable,
/obj/item/weapon/deck/cards,
@@ -20099,12 +20048,6 @@
},
/turf/simulated/floor/lino,
/area/crew_quarters/bar)
"aGH" = (
/obj/effect/floor_decal/spline/plain{
dir = 1
},
/turf/simulated/floor/lino,
/area/crew_quarters/bar)
"aGI" = (
/obj/structure/disposalpipe/segment{
dir = 1;
@@ -31875,6 +31818,20 @@
/obj/effect/floor_decal/industrial/outline/red,
/turf/simulated/floor/tiled/monotile,
/area/tether/surfacebase/shuttle_pad)
"cmQ" = (
/obj/effect/floor_decal/borderfloor,
/obj/effect/floor_decal/corner/lightgrey/border,
/obj/effect/floor_decal/steeldecal/steel_decals7{
dir = 1
},
/obj/effect/floor_decal/steeldecal/steel_decals7{
dir = 8
},
/obj/machinery/holoposter{
pixel_y = -30
},
/turf/simulated/floor/tiled,
/area/hallway/lower/third_south)
"cMs" = (
/obj/machinery/power/smes/buildable{
charge = 500000
@@ -31936,6 +31893,28 @@
},
/turf/simulated/floor/tiled/steel_dirty,
/area/shuttle/tourbus/general)
"dMP" = (
/obj/effect/floor_decal/borderfloor{
dir = 1
},
/obj/machinery/atmospherics/pipe/manifold/hidden/supply{
dir = 1
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 4
},
/obj/effect/floor_decal/steeldecal/steel_decals7{
dir = 4
},
/obj/effect/floor_decal/steeldecal/steel_decals7,
/obj/effect/floor_decal/corner/lightgrey/border{
dir = 1
},
/obj/machinery/holoposter{
pixel_y = 30
},
/turf/simulated/floor/tiled,
/area/tether/surfacebase/surface_three_hall)
"esm" = (
/obj/structure/bed/chair/bay/chair{
dir = 8;
@@ -32080,6 +32059,23 @@
},
/turf/simulated/floor/tiled,
/area/tether/surfacebase/shuttle_pad)
"gLg" = (
/obj/item/weapon/stool/padded,
/obj/machinery/holoposter{
dir = 8;
pixel_x = 30
},
/turf/simulated/floor/tiled,
/area/crew_quarters/pool)
"hJt" = (
/obj/effect/floor_decal/borderfloorblack{
dir = 8
},
/obj/machinery/holoposter{
pixel_x = -30
},
/turf/simulated/floor/tiled,
/area/rnd/outpost/xenobiology/outpost_hallway)
"ieb" = (
/obj/effect/floor_decal/borderfloorblack,
/obj/effect/floor_decal/industrial/danger,
@@ -32429,6 +32425,13 @@
},
/turf/simulated/floor/tiled/monotile,
/area/tether/surfacebase/shuttle_pad)
"sXa" = (
/obj/machinery/holoposter{
pixel_x = -30;
pixel_y = 30
},
/turf/simulated/floor/grass,
/area/tether/surfacebase/public_garden_three)
"tdA" = (
/obj/structure/bed/chair/bay/chair{
dir = 4;
@@ -32513,6 +32516,16 @@
/obj/structure/cable,
/turf/simulated/floor/tiled/steel_dirty,
/area/shuttle/tourbus/general)
"uxo" = (
/obj/effect/floor_decal/spline/plain{
dir = 1
},
/obj/machinery/holoposter{
dir = 8;
pixel_x = 30
},
/turf/simulated/floor/lino,
/area/crew_quarters/bar)
"uxT" = (
/obj/effect/floor_decal/steeldecal/steel_decals_central5{
dir = 8;
@@ -32579,6 +32592,26 @@
},
/turf/simulated/floor/tiled/dark,
/area/shuttle/tourbus/engines)
"viF" = (
/obj/structure/disposalpipe/segment,
/obj/effect/floor_decal/borderfloor{
dir = 8
},
/obj/effect/floor_decal/steeldecal/steel_decals7{
dir = 5
},
/obj/effect/floor_decal/steeldecal/steel_decals7{
dir = 6
},
/obj/effect/floor_decal/corner/blue/border{
dir = 8
},
/obj/machinery/holoposter{
dir = 4;
pixel_x = -30
},
/turf/simulated/floor/tiled,
/area/tether/surfacebase/surface_three_hall)
"voF" = (
/obj/effect/floor_decal/borderfloorblack{
dir = 8
@@ -32597,6 +32630,19 @@
},
/turf/simulated/floor/tiled,
/area/tether/surfacebase/shuttle_pad)
"vtN" = (
/obj/effect/floor_decal/corner/lightgrey{
dir = 9
},
/obj/effect/floor_decal/corner/lightgrey{
dir = 6
},
/obj/machinery/holoposter{
dir = 4;
pixel_x = -30
},
/turf/simulated/floor/tiled,
/area/tether/surfacebase/surface_three_hall)
"wiX" = (
/obj/machinery/camera/network/civilian{
dir = 9
@@ -32663,6 +32709,25 @@
},
/turf/simulated/floor/tiled/white,
/area/shuttle/tourbus/cockpit)
"xdM" = (
/obj/machinery/atmospherics/unary/vent_scrubber/on,
/obj/effect/floor_decal/borderfloor{
dir = 1;
pixel_y = 0
},
/obj/effect/floor_decal/corner/mauve/border{
dir = 1
},
/obj/structure/bed/chair,
/obj/effect/floor_decal/steeldecal/steel_decals7{
dir = 4
},
/obj/effect/floor_decal/steeldecal/steel_decals7,
/obj/machinery/holoposter{
pixel_y = 30
},
/turf/simulated/floor/tiled,
/area/rnd/research/researchdivision)
"xoe" = (
/obj/structure/table/standard,
/turf/simulated/floor/tiled/white,
@@ -37432,7 +37497,7 @@ aac
aCZ
aDc
aiq
aDe
sXa
aDe
aDe
aDe
@@ -38196,7 +38261,7 @@ aCc
aIp
aIW
aCc
aCc
hJt
aBV
aCc
aCc
@@ -40717,7 +40782,7 @@ amU
anB
aoa
aot
aoa
gLg
amv
apM
aiK
@@ -40849,7 +40914,7 @@ aTW
aTW
aTW
agw
acl
dMP
ajG
aWN
akY
@@ -42447,7 +42512,7 @@ atU
ayt
ayV
atU
aCn
xdM
azC
aCV
azE
@@ -43589,7 +43654,7 @@ aXg
axg
aHa
aHR
awf
cmQ
ats
aKb
aKU
@@ -45540,7 +45605,7 @@ ajX
akn
alk
aZt
alk
vtN
ayx
aZn
aYq
@@ -46545,7 +46610,7 @@ aZS
aZZ
anL
axb
avi
viF
avk
axQ
aiX
@@ -48556,7 +48621,7 @@ asX
asX
aFD
asX
aGH
uxo
aHB
aIn
aIT
+24 -21
View File
@@ -104,8 +104,8 @@
dir = 5
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
icon_state = "intact-scrubbers";
dir = 5
dir = 5;
icon_state = "intact-scrubbers"
},
/obj/structure/cable{
d1 = 1;
@@ -117,8 +117,8 @@
/area/maintenance/tether_midpoint)
"k" = (
/obj/machinery/light{
icon_state = "tube1";
dir = 8
dir = 8;
icon_state = "tube1"
},
/obj/structure/flora/pottedplant/unusual,
/turf/simulated/floor/wood,
@@ -150,16 +150,10 @@
/obj/structure/table/woodentable,
/turf/simulated/floor/wood,
/area/tether/midpoint)
"o" = (
/obj/machinery/vending/coffee{
dir = 1
},
/turf/simulated/floor/tiled/dark,
/area/tether/midpoint)
"p" = (
/obj/machinery/light{
icon_state = "tube1";
dir = 8
dir = 8;
icon_state = "tube1"
},
/obj/structure/flora/pottedplant/unusual,
/obj/structure/cable,
@@ -188,8 +182,8 @@
icon_state = "1-8"
},
/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers{
icon_state = "map-scrubbers";
dir = 4
dir = 4;
icon_state = "map-scrubbers"
},
/obj/machinery/atmospherics/pipe/manifold/visible/supply{
dir = 4
@@ -419,8 +413,8 @@
dir = 5
},
/obj/machinery/light{
icon_state = "tube1";
dir = 8
dir = 8;
icon_state = "tube1"
},
/turf/simulated/floor/tiled/dark,
/area/tether/midpoint)
@@ -441,12 +435,12 @@
"V" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
icon_state = "intact-scrubbers";
dir = 5
dir = 5;
icon_state = "intact-scrubbers"
},
/obj/machinery/light{
icon_state = "tube1";
dir = 8
dir = 8;
icon_state = "tube1"
},
/turf/simulated/floor/tiled/dark,
/area/tether/midpoint)
@@ -457,6 +451,15 @@
},
/turf/simulated/floor/tiled/dark,
/area/tether/midpoint)
"X" = (
/obj/machinery/vending/coffee{
dir = 1
},
/obj/machinery/holoposter{
pixel_y = -30
},
/turf/simulated/floor/tiled/dark,
/area/tether/midpoint)
"Y" = (
/obj/structure/cable{
d1 = 4;
@@ -10357,7 +10360,7 @@ r
r
W
S
o
X
y
u
u
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+53 -36
View File
@@ -5610,28 +5610,6 @@
},
/turf/simulated/floor/tiled,
/area/security/hallway)
"ajm" = (
/obj/effect/floor_decal/corner/lightgrey{
dir = 9
},
/obj/effect/floor_decal/corner/lightgrey{
dir = 6
},
/obj/structure/sign/poster{
pixel_x = -32
},
/obj/effect/floor_decal/steeldecal/steel_decals6{
dir = 1
},
/obj/effect/floor_decal/steeldecal/steel_decals6{
dir = 8
},
/obj/item/device/radio/intercom{
dir = 8;
pixel_x = -24
},
/turf/simulated/floor/tiled,
/area/hallway/station/upper)
"ajn" = (
/obj/machinery/newscaster/security_unit{
pixel_y = 32
@@ -20434,11 +20412,6 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/teleporter/departing)
"aGg" = (
/obj/effect/floor_decal/techfloor/orange,
/obj/effect/floor_decal/techfloor/hole,
/turf/simulated/floor/tiled/techfloor,
/area/teleporter/departing)
"aGh" = (
/obj/effect/floor_decal/techfloor/orange,
/obj/machinery/camera/network/tether{
@@ -20446,11 +20419,6 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/teleporter/departing)
"aGi" = (
/obj/effect/floor_decal/techfloor/orange,
/obj/effect/floor_decal/techfloor/hole/right,
/turf/simulated/floor/tiled/techfloor,
/area/teleporter/departing)
"aGj" = (
/obj/effect/floor_decal/techfloor/orange{
dir = 6
@@ -32188,6 +32156,14 @@
},
/turf/simulated/floor/tiled/dark,
/area/security/warden)
"fuV" = (
/obj/structure/bed/chair/comfy/brown,
/obj/machinery/holoposter{
dir = 8;
pixel_x = 30
},
/turf/simulated/floor/wood,
/area/hallway/station/upper)
"fxI" = (
/obj/item/device/radio/intercom{
dir = 4;
@@ -32272,6 +32248,31 @@
},
/turf/simulated/floor/tiled/dark,
/area/shuttle/securiship/general)
"gBy" = (
/obj/effect/floor_decal/corner/lightgrey{
dir = 9
},
/obj/effect/floor_decal/corner/lightgrey{
dir = 6
},
/obj/structure/sign/poster{
pixel_x = -32
},
/obj/effect/floor_decal/steeldecal/steel_decals6{
dir = 1
},
/obj/effect/floor_decal/steeldecal/steel_decals6{
dir = 8
},
/obj/item/device/radio/intercom{
dir = 8;
pixel_x = -24
},
/obj/machinery/holoposter{
pixel_y = 30
},
/turf/simulated/floor/tiled,
/area/hallway/station/upper)
"gJa" = (
/obj/machinery/door/airlock/multi_tile/metal/mait,
/obj/structure/cable/cyan{
@@ -32588,6 +32589,14 @@
},
/turf/simulated/floor/tiled,
/area/security/hallway)
"mPW" = (
/obj/effect/floor_decal/techfloor/orange,
/obj/effect/floor_decal/techfloor/hole/right,
/obj/machinery/holoposter{
pixel_y = -30
},
/turf/simulated/floor/tiled/techfloor,
/area/teleporter/departing)
"ngb" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 9
@@ -33106,6 +33115,14 @@
/obj/effect/catwalk_plated/dark,
/turf/simulated/floor,
/area/security/armory/blue)
"uSa" = (
/obj/effect/floor_decal/techfloor/orange,
/obj/effect/floor_decal/techfloor/hole,
/obj/machinery/holoposter{
pixel_y = -30
},
/turf/simulated/floor/tiled/techfloor,
/area/teleporter/departing)
"vbE" = (
/obj/structure/cable/green{
d1 = 1;
@@ -39382,7 +39399,7 @@ aDb
aDG
aEC
aFq
aGg
uSa
aDa
aab
aab
@@ -39666,7 +39683,7 @@ aDb
aDI
aEC
aFq
aGi
mPW
aDa
aab
aab
@@ -42213,7 +42230,7 @@ avO
awu
awX
asp
ajm
gBy
azv
aAq
aAw
@@ -44054,7 +44071,7 @@ aiV
aiV
asq
awL
ava
fuV
avQ
awy
axb
+1
View File
@@ -778,6 +778,7 @@
#include "code\game\machinery\floorlayer.dm"
#include "code\game\machinery\frame.dm"
#include "code\game\machinery\hologram.dm"
#include "code\game\machinery\holoposter.dm"
#include "code\game\machinery\holosign.dm"
#include "code\game\machinery\igniter.dm"
#include "code\game\machinery\iv_drip.dm"