diff --git a/code/game/objects/items/skrell.dm b/code/game/objects/items/skrell.dm index 9944288611b..33eefc0de6c 100644 --- a/code/game/objects/items/skrell.dm +++ b/code/game/objects/items/skrell.dm @@ -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("[hologram_message]") +/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..." diff --git a/html/changelogs/llywelwyn-skrell-projector-additions.yml b/html/changelogs/llywelwyn-skrell-projector-additions.yml new file mode 100644 index 00000000000..deacb219904 --- /dev/null +++ b/html/changelogs/llywelwyn-skrell-projector-additions.yml @@ -0,0 +1,8 @@ + +author: Llywelwyn + +delete-after: True + +changes: + - tweak: "Nralakk projector description tweaked - it is no longer exclusive to Federation Skrell." + - rscadd: "Added all planets with a significant Skrell population to the projector loadout item, and made it easier to add new holograms in the future." diff --git a/icons/obj/skrell_items.dmi b/icons/obj/skrell_items.dmi index 15b79c671c0..2a1830e2e07 100644 Binary files a/icons/obj/skrell_items.dmi and b/icons/obj/skrell_items.dmi differ