Skip to content

Commit

Permalink
A new space ruin, the telecommunications satellite? [100% done, ready…
Browse files Browse the repository at this point in the history
… for final review] (ParadiseSS13#25820)

* THE WORK, IT GOES AND SO IT GOES

* darker yet darker

* more changes

* Almost done, let's post the pr and have some dev people test it out.

* update comment

* small change

* pushing , then we address changes

* Apply suggestions from code review

Co-authored-by: 1080pCat <[email protected]>
Signed-off-by: Qwertytoforty <[email protected]>

* more progress

* final bar lines

* aditional tweaks

* Update telecomns_returns.dmm

* Update code/modules/awaymissions/mission_code/ruins/telecomns.dm

Co-authored-by: Ryan <[email protected]>
Signed-off-by: Qwertytoforty <[email protected]>

* Apply suggestions from code review

Co-authored-by: Ryan <[email protected]>
Signed-off-by: Qwertytoforty <[email protected]>

* sirian changes

* emp weakness, light changes

* no runtimes, shoot borgs

* sorry for all the commits just update to master thanks

* Update code/modules/awaymissions/mission_code/ruins/telecomns.dm

Co-authored-by: warriorstar-orion <[email protected]>
Signed-off-by: Qwertytoforty <[email protected]>

* fixes

* fixes pathing. Voices

* removes always spawn

* Apply suggestions from code review

Co-authored-by: Luc <[email protected]>
Signed-off-by: Qwertytoforty <[email protected]>

* more changes

* requested string change

* Update code/modules/awaymissions/mission_code/ruins/telecomns.dm

Co-authored-by: Luc <[email protected]>
Signed-off-by: Qwertytoforty <[email protected]>

* lewcs final changes

* Apply suggestions from code review

Co-authored-by: Luc <[email protected]>
Signed-off-by: Qwertytoforty <[email protected]>

---------

Signed-off-by: Qwertytoforty <[email protected]>
Co-authored-by: 1080pCat <[email protected]>
Co-authored-by: Ryan <[email protected]>
Co-authored-by: warriorstar-orion <[email protected]>
Co-authored-by: Luc <[email protected]>
  • Loading branch information
5 people committed Jul 25, 2024
1 parent e4ed1b1 commit 26f28cb
Show file tree
Hide file tree
Showing 56 changed files with 12,362 additions and 16 deletions.
11,670 changes: 11,670 additions & 0 deletions _maps/map_files/RandomRuins/SpaceRuins/telecomns_returns.dmm

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion code/_onclick/ai_onclick.dm
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@
/obj/machinery/power/apc/AICtrlClick(mob/living/user) // turns off/on APCs.
if(stat & BROKEN)
return
if(aidisabled)
if(!user.can_remote_apc_interface(src))
to_chat(user, "<span class='warning'>Unable to interface: Connection refused.</span>")
return
toggle_breaker(user)
Expand Down
24 changes: 24 additions & 0 deletions code/datums/datacore.dm
Original file line number Diff line number Diff line change
Expand Up @@ -362,6 +362,28 @@ GLOBAL_VAR_INIT(record_id_num, 1001)
face_s.Blend(h_marking_s, ICON_OVERLAY)

preview_icon.Blend(face_s, ICON_OVERLAY)
//Underwear
var/icon/underwear_standing = new /icon('icons/mob/clothing/underwear.dmi', "nude")
if(H.underwear && H.dna.species.clothing_flags & HAS_UNDERWEAR)
var/datum/sprite_accessory/underwear/U = GLOB.underwear_list[H.underwear]
if(U)
var/u_icon = U.sprite_sheets && (H.dna.species.sprite_sheet_name in U.sprite_sheets) ? U.sprite_sheets[H.dna.species.sprite_sheet_name] : U.icon //Species-fit the undergarment.
underwear_standing.Blend(new /icon(u_icon, "uw_[U.icon_state]_s"), ICON_OVERLAY)

if(H.undershirt && H.dna.species.clothing_flags & HAS_UNDERSHIRT)
var/datum/sprite_accessory/undershirt/U2 = GLOB.undershirt_list[H.undershirt]
if(U2)
var/u2_icon = U2.sprite_sheets && (H.dna.species.sprite_sheet_name in U2.sprite_sheets) ? U2.sprite_sheets[H.dna.species.sprite_sheet_name] : U2.icon
underwear_standing.Blend(new /icon(u2_icon, "us_[U2.icon_state]_s"), ICON_OVERLAY)

if(H.socks && H.dna.species.clothing_flags & HAS_SOCKS)
var/datum/sprite_accessory/socks/U3 = GLOB.socks_list[H.socks]
if(U3)
var/u3_icon = U3.sprite_sheets && (H.dna.species.sprite_sheet_name in U3.sprite_sheets) ? U3.sprite_sheets[H.dna.species.sprite_sheet_name] : U3.icon
underwear_standing.Blend(new /icon(u3_icon, "sk_[U3.icon_state]_s"), ICON_OVERLAY)

if(underwear_standing)
preview_icon.Blend(underwear_standing, ICON_OVERLAY)

var/icon/hands_icon = icon(preview_icon)
hands_icon.Blend(icon('icons/mob/clothing/masking_helpers.dmi', "l_hand_mask"), ICON_MULTIPLY)
Expand Down Expand Up @@ -536,6 +558,8 @@ GLOBAL_VAR_INIT(record_id_num, 1001)
clothes_s = new /icon('icons/mob/clothing/under/centcom.dmi', "officer_s")
clothes_s.Blend(new /icon('icons/mob/clothing/feet.dmi', "jackboots"), ICON_UNDERLAY)
clothes_s.Blend(new /icon('icons/mob/clothing/hands.dmi', "swat_gl"), ICON_UNDERLAY)
if("Naked")
clothes_s = null
else
if(H.mind && (H.mind.assigned_role in get_all_centcom_jobs()))
clothes_s = new /icon('icons/mob/clothing/under/centcom.dmi', "officer_s")
Expand Down
8 changes: 8 additions & 0 deletions code/datums/ruins/space_ruins.dm
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,14 @@
cost = 5 // This is a chonky boy
allow_duplicates = FALSE // Absolutely huge, also has its own APC and the area isnt set to allow many

/datum/map_template/ruin/space/malftcommsat
id = "malftcommsat"
suffix = "telecomns_returns.dmm"
name = "D.V.O.R.A.K'S Telecommunications Satellite"
description = "Seems the telecomunication satellite that went dark 4 years ago finally re-appeared on scanners? Strange signals are coming from it."
cost = 5 // Huge. Large. In charge
allow_duplicates = FALSE // One sadistic malfunctioning AI is enough. Also unique apcs.

/datum/map_template/ruin/space/clownmime
id = "clownmime"
suffix = "clownmime.dmm"
Expand Down
27 changes: 27 additions & 0 deletions code/game/area/areas/ruins/space_areas.dm
Original file line number Diff line number Diff line change
Expand Up @@ -213,3 +213,30 @@

/area/ruin/space/powered/casino/maints
name = "Service Tunnels"

/// telecomms: Alternative telecomms sat
/area/ruin/space/telecomms
name = "\improper Telecommunications Sat"
icon_state = "tcomms"
tele_proof = TRUE // No patrick, you can not syndicate teleport or hand teleport instantly into or out of this ruin

/area/ruin/space/telecomms/powercontrol
name = "\improper Telecommunications Power Control"
icon_state = "engine_smes"

/area/ruin/space/telecomms/tele
name = "\improper Tel3coMMunic@tions-SS-S KILL_Welcoming Room" // If you teleport to it. With a name like that. Thats on you.
icon_state = "teleporter"
tele_proof = FALSE // Oh, right. The teleporter room. The teleporter room for Kuzco, the poison chosen especially to teleport Kuzco, Kuzco's teleporter room. That teleporter room?

/area/ruin/space/telecomms/foyer
name = "\improper Telecommunications Foyer"
icon_state = "entry"

/area/ruin/space/telecomms/computer
name = "\improper Telecommunications Control Room"
icon_state = "bridge"

/area/ruin/space/telecomms/chamber
name = "\improper Telecommunications Central Compartment"
icon_state = "ai_chamber"
5 changes: 5 additions & 0 deletions code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm
Original file line number Diff line number Diff line change
Expand Up @@ -804,6 +804,11 @@
/mob/living/simple_animal/demon/pulse_demon/mob_has_gravity()
return TRUE

/mob/living/simple_animal/demon/pulse_demon/can_remote_apc_interface(obj/machinery/power/apc/ourapc)
if(ourapc.hacked_by_ruin_AI || ourapc.malfai || ourapc.malfhack)
return FALSE
return TRUE

/obj/item/organ/internal/heart/demon/pulse
name = "perpetual pacemaker"
desc = "It still beats furiously, thousands of bright lights shine within it."
Expand Down
5 changes: 2 additions & 3 deletions code/game/machinery/computer/law.dm
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,7 @@
return
if(!emagged) //non-emag law change
var/obj/item/aiModule/M = O
M.install(src)
return
return M.install(src)
apply_emag_laws(user)
return

Expand All @@ -46,7 +45,7 @@
to_chat(user, "<span class='danger'>No AI selected. Please choose a target before proceeding with upload.</span>")
return FALSE
var/turf/T = get_turf(current)
if(!atoms_share_level(T, src))//off Z level
if(!atoms_share_level(T, get_turf(src))) // off Z level
to_chat(user, "<span class='danger'>Unable to establish a connection: You're too far away from the target silicon!</span>")
return FALSE
return TRUE
Expand Down
16 changes: 16 additions & 0 deletions code/game/machinery/doors/airlock_types.dm
Original file line number Diff line number Diff line change
Expand Up @@ -380,6 +380,22 @@
to_chat(user, "<span class='notice'>The electronic systems in this door are far too advanced for your primitive hacking peripherals.</span>")
return

/// This door is used in the malf AI telecomms ruin. This door starts early access, and will try to crush someone to death who enters it's turf like how an AI door crushes.
/obj/machinery/door/airlock/hatch/syndicate/command/trapped
emergency = TRUE
hackProof = TRUE
aiControlDisabled = AICONTROLDISABLED_ON
safe = FALSE
normal_integrity = 100 // going to get boosted by security level anyway

/obj/machinery/door/airlock/hatch/syndicate/command/trapped/process()
if(locate(/mob/living) in get_turf(src))
unlock(TRUE)
if(density)
open()
else
close()

/obj/machinery/door/airlock/hatch/syndicate/vault
name = "syndicate vault hatch"
req_access_txt = "151"
Expand Down
1 change: 1 addition & 0 deletions code/game/machinery/shieldgen.dm
Original file line number Diff line number Diff line change
Expand Up @@ -392,6 +392,7 @@
/obj/machinery/shieldwallgen/proc/activate()
activated = TRUE
START_PROCESSING(SSmachines, src)
update_icon(UPDATE_ICON_STATE)
for(var/direction in GLOB.cardinal)
INVOKE_ASYNC(src, PROC_REF(try_link_generators), direction)

Expand Down
8 changes: 8 additions & 0 deletions code/game/machinery/tcomms/tcomms_presets.dm
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,14 @@
hidden_link = TRUE
password_bypass = TRUE

/// DVORAK RELAY
/obj/machinery/tcomms/relay/dvorak
network_id = "DEBUG_RELAY_DO_NOT_REMOVE" // I'll change this if needed to avoid confusion, but if I was trying to sneak into a relay system, well...
autolink_id = "STATION-CORE"
hidden_link = TRUE
password_bypass = TRUE // No one can steal this anyway.
active = TRUE

GLOBAL_VAR(cc_tcomms_relay_uid)
/obj/machinery/tcomms/relay/cc/Initialize(mapload)
. = ..()
Expand Down
7 changes: 6 additions & 1 deletion code/game/machinery/vendors/vending.dm
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,9 @@
/// The category of this vendor. Used for announcing brand intelligence.
var/category = VENDOR_TYPE_GENERIC

/// How often will the vendor tip when you walk by it when aggressive is true?
var/aggressive_tilt_chance = 25

/obj/machinery/economy/vending/Initialize(mapload)
. = ..()
var/build_inv = FALSE
Expand Down Expand Up @@ -176,6 +179,8 @@
power_change()
RegisterSignal(src, COMSIG_MOVABLE_UNTILTED, PROC_REF(on_untilt))
RegisterSignal(src, COMSIG_MOVABLE_TRY_UNTILT, PROC_REF(on_try_untilt))
if(aggressive)
AddComponent(/datum/component/proximity_monitor)

/obj/machinery/economy/vending/Destroy()
SStgui.close_uis(wires)
Expand Down Expand Up @@ -414,7 +419,7 @@
if(!aggressive || tilted || !tiltable)
return

if(isliving(AM) && prob(25))
if(isliving(AM) && prob(aggressive_tilt_chance))
AM.visible_message(
"<span class='danger'>[src] suddenly topples over onto [AM]!</span>",
"<span class='userdanger'>[src] topples over onto you without warning!</span>"
Expand Down
4 changes: 4 additions & 0 deletions code/game/objects/effects/spawners/airlock_spawner.dm
Original file line number Diff line number Diff line change
Expand Up @@ -313,6 +313,10 @@ This spawner places pipe leading up to the interior door, you will need to finis
tiles_in_x_direction = 3
tiles_in_y_direction = 3

/obj/effect/spawner/airlock/long/square/e_to_s/telecoms
door_name = "telecoms external access"
door_type = /obj/machinery/door/airlock/external

#undef HALF_X
#undef HALF_Y
#undef CHAMBER_LONG
Expand Down
10 changes: 10 additions & 0 deletions code/game/objects/items/documents.dm
Original file line number Diff line number Diff line change
Expand Up @@ -56,3 +56,13 @@
poison_total -= poison_dose
add_attack_logs(src, user, "Picked up [src], the trapped syndicate documents")
return ..()

/obj/item/documents/syndicate/dvorak_blackbox
name = "\improper D.V.O.R.A.K Blackbox Disk"
desc = "This disk contains a full record of all information that passed through D.V.O.R.A.K's systems during its uptime, not to mention what may have gone wrong. NT might be interested in this."
icon = 'icons/obj/module.dmi'
w_class = WEIGHT_CLASS_TINY
item_state = "card-id"
icon_state = "holodisk"
drop_sound = 'sound/items/handling/disk_drop.ogg'
pickup_sound = 'sound/items/handling/disk_pickup.ogg'
1 change: 1 addition & 0 deletions code/game/objects/items/weapons/AI_modules.dm
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ AI MODULES
to_chat(R, "These are your laws now:")
R.show_laws()
to_chat(usr, "<span class='notice'>Upload complete. The AI's laws have been modified.</span>")
return TRUE

else if(istype(C, /obj/machinery/computer/borgupload))
var/obj/machinery/computer/borgupload/comp = C
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/weapons/teleprod.dm
Original file line number Diff line number Diff line change
Expand Up @@ -16,5 +16,5 @@
"<span class='userdanger'>You accidentally hit yourself with [src]!</span>")
deductcharge(hitcost)
do_teleport(user, get_turf(user), 50)//honk honk
else if(iscarbon(M) && !M.anchored)
else if(isliving(M) && !M.anchored)
do_teleport(M, get_turf(M), 15)
4 changes: 3 additions & 1 deletion code/game/objects/structures/displaycase.dm
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@
var/list/start_showpieces = list()
/// A flavor message to show with this item.
var/trophy_message = ""
/// Do we want to force alarms even if off station?
var/force_alarm = FALSE

/obj/structure/displaycase/Initialize(mapload)
. = ..()
Expand Down Expand Up @@ -107,7 +109,7 @@

/obj/structure/displaycase/proc/trigger_alarm()
set waitfor = FALSE
if(alert && is_station_contact(z))
if(alert && (is_station_contact(z) || force_alarm))
var/area/alarmed = get_area(src)
alarmed.burglaralert(src)
visible_message("<span class='danger'>The burglar alarm goes off!</span>")
Expand Down
Loading

0 comments on commit 26f28cb

Please sign in to comment.