mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-23 21:12:24 +01:00
Skrell projector overhaul, includes all planets w/ a significant Skrell population (#13622)
This commit is contained in:
@@ -75,16 +75,18 @@
|
||||
|
||||
/obj/item/skrell_projector
|
||||
name = "nralakk projector"
|
||||
desc = "A projector meant to help Federation Skrell feel like theyre carrying home with them wherever they go. It looks very complex."
|
||||
desc = "A projector using technology that originated in Nralakk, meant to help Skrell feel like they're carrying home with them wherever they go. It looks very complex."
|
||||
icon = 'icons/obj/skrell_items.dmi'
|
||||
icon_state = "projector"
|
||||
light_color = LIGHT_COLOR_HALOGEN
|
||||
w_class = ITEMSIZE_TINY
|
||||
matter = list(MATERIAL_GLASS = 200)
|
||||
drop_sound = 'sound/items/drop/glass.ogg'
|
||||
pickup_sound = 'sound/items/pickup/glass.ogg'
|
||||
var/list/worlds_selection = list("Xrim", "Kal'lo", "Nralakk")
|
||||
var/list/worlds_selection = list("Nralakk", "Qerrbalak", "Qerr'Malic", "Aliose", "Aweiji", "Xrim", "the Traverse", "Europa", "New Gibson", "Mictlan", "the Starlight Zone")
|
||||
var/selected_world
|
||||
var/working = FALSE
|
||||
var/message_frequency = 10
|
||||
|
||||
/obj/item/skrell_projector/Destroy()
|
||||
STOP_PROCESSING(SSprocessing, src)
|
||||
@@ -93,71 +95,131 @@
|
||||
/obj/item/skrell_projector/examine(mob/user)
|
||||
..(user)
|
||||
if(selected_world && working)
|
||||
to_chat(user, "\The [src] displays the world of [selected_world].")
|
||||
to_chat(user, "\The [src] displays a hologram of [selected_world].")
|
||||
|
||||
/obj/item/skrell_projector/attack_self(mob/user as mob)
|
||||
working = !working
|
||||
|
||||
if(working)
|
||||
var/choice = input("You change the projector's world to;","Change the projector's world.") as null|anything in worlds_selection
|
||||
var/choice = input("You change the projector's hologram to display:","Change the projector's hologram.") as null|anything in worlds_selection
|
||||
apply_world(choice)
|
||||
START_PROCESSING(SSprocessing, src)
|
||||
else
|
||||
set_light(0)
|
||||
working = FALSE
|
||||
icon_state = initial(icon_state)
|
||||
update_icon()
|
||||
STOP_PROCESSING(SSprocessing, src)
|
||||
|
||||
/obj/item/skrell_projector/proc/apply_world(var/choice)
|
||||
set_light(2)
|
||||
var/brightness = 2
|
||||
|
||||
if(choice)
|
||||
selected_world = choice
|
||||
|
||||
switch(choice)
|
||||
|
||||
if("Xrim")
|
||||
icon_state = "projector_pink"
|
||||
light_color = LIGHT_COLOR_PINK
|
||||
|
||||
if("Kal'lo")
|
||||
icon_state = "projector_blue"
|
||||
light_color = LIGHT_COLOR_BLUE
|
||||
|
||||
if("Nralakk")
|
||||
icon_state = "projector_purple"
|
||||
light_color = LIGHT_COLOR_PURPLE
|
||||
light_color = "#BE1CFF"
|
||||
if("Qerrbalak")
|
||||
light_color = "#7B1CFF"
|
||||
if("Qerr'Malic")
|
||||
light_color = "#F9FF1C"
|
||||
brightness = 2.5
|
||||
if("Aliose")
|
||||
light_color = COLOR_WHITE
|
||||
if("Aweiji")
|
||||
light_color = "#00AE72"
|
||||
if("Xrim")
|
||||
light_color = "#25550f"
|
||||
if("the Traverse")
|
||||
light_color = "#220F95"
|
||||
brightness = 2.5
|
||||
if("Europa")
|
||||
light_color = "#1C50FF"
|
||||
if("New Gibson")
|
||||
light_color = COLOR_OFF_WHITE
|
||||
if("Mictlan")
|
||||
light_color = "#FF1C1C"
|
||||
if("the Starlight Zone")
|
||||
light_color = "#00D6FF"
|
||||
else
|
||||
brightness = 0
|
||||
working = FALSE
|
||||
set_light(0)
|
||||
icon_state = initial(icon_state)
|
||||
STOP_PROCESSING(SSprocessing, src)
|
||||
set_light(brightness)
|
||||
update_icon()
|
||||
|
||||
/obj/item/skrell_projector/update_icon()
|
||||
cut_overlays()
|
||||
if(working)
|
||||
var/image/overlay = overlay_image(icon, "projector_light", light_color, RESET_COLOR)
|
||||
add_overlay(overlay)
|
||||
|
||||
/obj/item/skrell_projector/process()
|
||||
if(!selected_world)
|
||||
return
|
||||
|
||||
if(prob(10))
|
||||
if(prob(message_frequency))
|
||||
var/hologram_message
|
||||
switch(selected_world)
|
||||
|
||||
if("Xrim")
|
||||
hologram_message = pick("You hear strange, warbling birdsong.",
|
||||
" You see sunlight filtered through overgrown trees projected on the ceiling.",
|
||||
"You see large insects hovering above the projector.")
|
||||
|
||||
if("Kal'lo")
|
||||
hologram_message = pick("You see the ocean surface projected on the ceiling.",
|
||||
"You see colorful fish swimming above the projector.",
|
||||
"You hear the muffled sound of waves breaking above you.")
|
||||
switch(selected_world) // If this gets bigger, should probably be a lookup. Switch seems ok for only 11 cases. - lly
|
||||
|
||||
if("Nralakk")
|
||||
hologram_message = pick("You see the Jargon system sky projected on the ceiling.",
|
||||
"You see planets slowly orbiting Nralakk above the projector.",
|
||||
"You hear faint ceremonial hymns.")
|
||||
if("Qerrbalak")
|
||||
hologram_message = pick("You hear the muffled sound of waves breaking above you.",
|
||||
"You see the ocean surface projected on the ceiling.",
|
||||
"You see the memorial of Kal'lo Square above the projector.")
|
||||
if("Qerr'Malic")
|
||||
hologram_message = pick("You hear the loud hustle and bustle of tourists rushing by.",
|
||||
"You see bright, colourful lights emitting from the projector, and hear the jingle of casino chips changing hands around you.",
|
||||
"You hear the spin of a roulette table, and the sound of cards being shuffled.")
|
||||
if("Aliose")
|
||||
hologram_message = pick("You see the bookshelves of the Orq'wesi archive projected on the walls around you.",
|
||||
"You hear the steady whistle of the wind.",
|
||||
"You see a snowy, arctic landscape projected across the floor.")
|
||||
if("Aweiji")
|
||||
hologram_message = pick("You see the imperious statue of the Tresja Monument displayed atop the projector.",
|
||||
"Above you, great white clouds are projected, obscuring the peaks of tall, grey mountaintops.",
|
||||
"You see rolling fields of farmland extending out from the projector.")
|
||||
if("Xrim")
|
||||
hologram_message = pick("You hear a strange, warbling birdsong.",
|
||||
"You see sunlight filtered through overgrown trees projected on the ceiling.",
|
||||
"You see large insects hovering above the projector.")
|
||||
if("the Traverse")
|
||||
hologram_message = pick("You see an empty, dark hologram that fills the room, scattered with infrequent planets in the distance.",
|
||||
"A holographic fleet of Jargon's generational ships are emitted from the projector. They pass by, before disappearing into the dark.",
|
||||
"Atop the projector is displayed a depiction of the crown of the Traverse, Pluat Ven'qop. Qukala ships patrol in circles around it.")
|
||||
if("Europa")
|
||||
hologram_message = pick("Upon the walls is projected the window of a submarine, and beyond it a vast, black ocean.",
|
||||
"You see colorful fish swimming around the projector.",
|
||||
"Above the projector, the hologram switches between depictions of the three Europan cryptids: a large squid, a giant crab, and a long, slithering eel.")
|
||||
if("New Gibson")
|
||||
hologram_message = pick("You see depicted tremendous archologies sprouting from the top of icy mountain peaks.",
|
||||
"Briefly, the hologram changes to that of a biodome. You can hear an arctic hail whipping by.",
|
||||
"You see a miniature Gibsonite Glacier Brick trundling through some holographic snow.")
|
||||
if("Mictlan")
|
||||
hologram_message = pick("The projector displays a hologram of a blue sea and cloudless skies - the skyline of Lago de Abundancia.",
|
||||
"A depiction of a bustling Mictlanian street rotates slowly around above the projector.",
|
||||
"You hear the collapsing of large waves upon a beachfront.")
|
||||
if("the Starlight Zone")
|
||||
hologram_message = pick("You see a holographic projection of the Weishiin sanctuaries around Severson's Rift.",
|
||||
"You see the homes of Lekan Village projected on the ceiling, and beneath them the deep waters that would contain Severson City.",
|
||||
"You hear the bubbling of water, as the projector briefly changes to a hologram of the Starlight Zone's underwater city.")
|
||||
|
||||
if(hologram_message)
|
||||
visible_message("<span class='notice'>[hologram_message]</span>")
|
||||
|
||||
/obj/item/skrell_projector/dream // Subtype that starts processing on init, for mapping/use in the dream - lly
|
||||
name = "dream projector"
|
||||
selected_world = "Nralakk"
|
||||
message_frequency = 5
|
||||
working = TRUE
|
||||
|
||||
/obj/item/skrell_projector/dream/Initialize()
|
||||
. = ..()
|
||||
apply_world(selected_world)
|
||||
START_PROCESSING(SSprocessing, src)
|
||||
|
||||
/obj/item/jargontag
|
||||
name = "\improper Jargon Federation loyalty ear-tag"
|
||||
desc = "An ear-tag that shows the wearer is loyal to the Jargon Federation. A small cable travels into the ear canal..."
|
||||
|
||||
Reference in New Issue
Block a user