Skrell projector overhaul, includes all planets w/ a significant Skrell population (#13622)

This commit is contained in:
Llywelwyn
2022-05-01 01:13:02 +02:00
committed by GitHub
parent 6527f6e518
commit 99c792bd65
3 changed files with 102 additions and 32 deletions
+94 -32
View File
@@ -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..."