diff --git a/code/datums/fluff_emails.dm b/code/datums/fluff_emails.dm index f7083541dd..b57431cca9 100644 --- a/code/datums/fluff_emails.dm +++ b/code/datums/fluff_emails.dm @@ -3,7 +3,6 @@ var/title //email title var/entry_text //email content - //emails for the Almayer computers /datum/fluff_email/almayer diff --git a/code/game/machinery/ARES/ARES_interface.dm b/code/game/machinery/ARES/ARES_interface.dm index 0e45d5ee17..6b0d3b8648 100644 --- a/code/game/machinery/ARES/ARES_interface.dm +++ b/code/game/machinery/ARES/ARES_interface.dm @@ -1,7 +1,7 @@ // #################### ARES Interface Console ##################### /obj/structure/machinery/computer/ares_console - name = "ARES Interface" - desc = "A console built to interface with ARES, allowing for 1:1 communication." + name = "AI Interface" + desc = "A console built to interface with the ship AI, allowing for 1:1 communication." icon = 'icons/obj/structures/machinery/ares.dmi' icon_state = "console" exproof = TRUE @@ -384,7 +384,7 @@ return FALSE if(security_level < SEC_LEVEL_RED) set_security_level(SEC_LEVEL_RED, no_sound = TRUE, announce = FALSE) - shipwide_ai_announcement("ATTENTION! GENERAL QUARTERS. ALL HANDS, MAN YOUR BATTLESTATIONS.", MAIN_AI_SYSTEM, 'sound/effects/GQfullcall.ogg') + shipwide_ai_announcement("GENERAL QUARTERS GENERAL QUARTERS, ALL HANDS TO BATTLE STATIONS. SET CONDITION ZULU THROUGHOUT THE SHIP.", MAIN_AI_SYSTEM, 'sound/effects/GQfullcall.ogg') log_game("[key_name(usr)] has called for general quarters via ARES.") message_admins("[key_name_admin(usr)] has called for general quarters via ARES.") log_ares_security("General Quarters", "[last_login] has called for general quarters via ARES.") diff --git a/code/modules/admin/verbs/adminpanelgq.dm b/code/modules/admin/verbs/adminpanelgq.dm index 8ef1ed8696..11259b1545 100644 --- a/code/modules/admin/verbs/adminpanelgq.dm +++ b/code/modules/admin/verbs/adminpanelgq.dm @@ -10,7 +10,7 @@ if(prompt != "Yes") return FALSE - var/whattoannounce = "ATTENTION! GENERAL QUARTERS. ALL HANDS, MAN YOUR BATTLESTATIONS." + var/whattoannounce = "GENERAL QUARTERS GENERAL QUARTERS, ALL HANDS TO BATTLE STATIONS. SET CONDITION ZULU THROUGHOUT THE SHIP." var/log = "[key_name_admin(src)] Sent General Quarters!" prompt = tgui_alert(src, "Do you want to use a custom announcement?", "Choose.", list("Yes", "No"), 20 SECONDS) diff --git a/code/modules/admin/verbs/adminpanelweapons.dm b/code/modules/admin/verbs/adminpanelweapons.dm index 9fde4e96eb..a5bec2eea0 100644 --- a/code/modules/admin/verbs/adminpanelweapons.dm +++ b/code/modules/admin/verbs/adminpanelweapons.dm @@ -2,17 +2,27 @@ set name = "Weapons" set category = "Admin.Ship" - var/weapontype = tgui_alert(src, "What weapon?", "Choose wisely!", list("Missile", "Railgun"), 20 SECONDS) + var/weapontype = tgui_alert(src, "Which weapon?", list("Missile", "Railgun"), 20 SECONDS) if(!weapontype) return - var/hiteta = tgui_input_number(src, "Give an ETA for the weapon to hit.", "Don't make them wait too long!", 10, 120, 10, 20 SECONDS) + + var/hiteta = tgui_input_number(src, "Time on target, max 120s", 10, 120, 10, 20 SECONDS) if(!hiteta) return - var/point_defense = tgui_alert(src, "Allow Point Defence of the ship to intercept, or for the weapon to miss?", "standard PD/miss chance is 30%.", list("Yes", "No"), 20 SECONDS) + + var/point_defense = tgui_alert(src, "Allow Point Defence of the ship to attempt intercept? Normal is 30%. This can be configured!", list("Yes", "No"), 20 SECONDS) if(!point_defense) return point_defense = point_defense == "Yes" - var/exactplace = tgui_alert(src, "Shoot it at random places, or where you're at?", "Choose wisely!", list("Random", "Where I am"), 20 SECONDS) + if(point_defense == TRUE) + var/point_defense_custom = tgui_alert(src, "Configure intercept chance? If no, the standard chance will be used." list("Yes", "No"), 20 SECONDS) + if(!point_defense_custom) + return + if(point_defense_custom == TRUE) + point_defence_chance = tgui_input_number(src, "Percent chance of successful shootdown? Default is 30.", 5, 100, 5, 20 SECONDS) + + + var/exactplace = tgui_alert(src, "Target a random location or your current area?", list("Random", "Current"), 20 SECONDS) if(!exactplace) return exactplace = exactplace == "Where I am" @@ -27,7 +37,7 @@ if(salvo == TRUE) quantity = tgui_input_number(src, "How many?", "Don't go overboard. Please.", 2, 10, 2, 20 SECONDS) - var/prompt = tgui_alert(src, "Are you sure you want to open fire at the USS Almayer with those parameters?", "Choose wisely!", list("Yes", "No"), 20 SECONDS) + var/prompt = tgui_alert(src, "Are you sure you want to open fire at the ship with those parameters?", "Choose wisely!", list("Yes", "No"), 20 SECONDS) if(prompt != "Yes") return var/atom/picked_atom @@ -36,16 +46,16 @@ if("Missile") if(exactplace == TRUE) - shipwide_ai_announcement("DANGER: MISSILE WARNING. LAUNCH DETECTED, BRACE, BRACE, BRACE. ESTIMATED TIME: [hiteta] SECONDS.", MAIN_AI_SYSTEM, 'sound/effects/missile_warning.ogg') + shipwide_ai_announcement("INCOMING, INCOMING, INCOMING. NIGHTMARE, NIGHTMARE, IMPACT [hiteta] SECONDS.", MAIN_AI_SYSTEM, 'sound/effects/missile_warning.ogg') addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(weaponhits), 1, mob.loc, point_defense), hiteta SECONDS) message_admins("[key_name_admin(src)] Fired a Single Missile at the Almayer at their own location, [mob.loc], with point defense as [point_defense]") if(point_defense == TRUE) var/spoolup = hiteta - 4 - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(shipwide_ai_announcement), "ATTENTION: TRACKING TARGET, SPOOLING UP POINT DEFENSE. ATTEMPTING TO INTERCEPT." , MAIN_AI_SYSTEM, 'sound/effects/supercapacitors_charging.ogg'), spoolup SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(shipwide_ai_announcement), "AIR DEFENSE TRACKING. BRACE BRACE BRACE." , MAIN_AI_SYSTEM, 'sound/effects/supercapacitors_charging.ogg'), spoolup SECONDS) if(exactplace == FALSE) if(salvo == TRUE) - shipwide_ai_announcement("DANGER: MISSILE SALVO DETECTED, BRACE, BRACE, BRACE. SALVO SIZE: [quantity], ESTIMATED TIME: [hiteta] SECONDS." , MAIN_AI_SYSTEM, 'sound/effects/missile_warning.ogg') + shipwide_ai_announcement("INCOMING, INCOMING, INCOMING. NIGHTMARE, NIGHTMARE, RIPPLE [quantity] IMPACT [hiteta] SECONDS." , MAIN_AI_SYSTEM, 'sound/effects/missile_warning.ogg') targets = shipside_random_turf_picker(quantity) if(targets == null) tgui_alert(src, "Uh oh! Something broke at this point! Contact the coders!", "Acknowledge!", list("ok."), 10 SECONDS) @@ -54,9 +64,9 @@ message_admins("[key_name_admin(src)] Fired a salvo of [quantity] Missiles at the Almayer at random places, with point defense as [point_defense]") if(point_defense == TRUE) var/spoolup = hiteta - 4 - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(shipwide_ai_announcement), "ATTENTION: TRACKING TARGETS, SPOOLING UP POINT DEFENSE. ATTEMPTING TO INTERCEPT." , MAIN_AI_SYSTEM, 'sound/effects/supercapacitors_charging.ogg'), spoolup SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(shipwide_ai_announcement), "AIR DEFENSE TRACKING. BRACE BRACE BRACE." , MAIN_AI_SYSTEM, 'sound/effects/supercapacitors_charging.ogg'), spoolup SECONDS) else - shipwide_ai_announcement("DANGER: MISSILE WARNING. LAUNCH DETECTED, BRACE, BRACE, BRACE. ESTIMATED TIME: [hiteta] SECONDS.", MAIN_AI_SYSTEM, 'sound/effects/missile_warning.ogg') + shipwide_ai_announcement("INCOMING, INCOMING, INCOMING. NIGHTMARE, NIGHTMARE, IMPACT [hiteta] SECONDS.", MAIN_AI_SYSTEM, 'sound/effects/missile_warning.ogg') picked_atom = shipside_random_turf_picker(1) if(picked_atom == null) tgui_alert(src, "Uh oh! Something broke at this point! Contact the coders!", "Acknowledge!", list("ok."), 10 SECONDS) @@ -65,18 +75,21 @@ message_admins("[key_name_admin(src)] Fired a Single Missile at the Almayer at a random place, [picked_atom], with point defense as [point_defense]") if(point_defense == TRUE) var/spoolup = hiteta - 4 - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(shipwide_ai_announcement), "ATTENTION: TRACKING TARGET, SPOOLING UP POINT DEFENSE. ATTEMPTING TO INTERCEPT." , MAIN_AI_SYSTEM, 'sound/effects/supercapacitors_charging.ogg'), spoolup SECONDS) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(shipwide_ai_announcement), "AIR DEFENSE TRACKING. BRACE BRACE BRACE." , MAIN_AI_SYSTEM, 'sound/effects/supercapacitors_charging.ogg'), spoolup SECONDS) if("Railgun") if(exactplace == TRUE) - shipwide_ai_announcement("DANGER: RAILGUN EMISSIONS DETECTED, INCOMING SHOT. BRACE, BRACE, BRACE. ESTIMATED TIME: [hiteta] SECONDS." , MAIN_AI_SYSTEM, 'sound/effects/missile_warning.ogg') + shipwide_ai_announcement("INCOMING, INCOMING, INCOMING. RAILGUN BURST IDENTIFIED AND TRACKED, IMPACT [hiteta] SECONDS." , MAIN_AI_SYSTEM, 'sound/effects/missile_warning.ogg') addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(weaponhits), 2, mob.loc, point_defense), hiteta SECONDS) message_admins("[key_name_admin(src)] Fired a single Railgun Slug at the Almayer at their location, [mob.loc], with the possibility of missing as [point_defense]") + if(point_defense == TRUE) + var/spoolup = hiteta - 4 + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(shipwide_ai_announcement), "AIR DEFENSE TRACKING. BRACE BRACE BRACE." , MAIN_AI_SYSTEM, 'sound/effects/supercapacitors_charging.ogg'), spoolup SECONDS) if(exactplace == FALSE) if(salvo == TRUE) - shipwide_ai_announcement("DANGER: RAILGUN EMISSIONS DETECTED, SALVO INCOMING. BRACE, BRACE, BRACE. SALVO SIZE: [quantity], ESTIMATED TIME: [hiteta] SECONDS." , MAIN_AI_SYSTEM, 'sound/effects/missile_warning.ogg') + shipwide_ai_announcement("INCOMING, INCOMING, INCOMING. MULTIPLE RAILGUN BURSTS IDENTIFIED AND TRACKED, IMPACT [hiteta] SECONDS." , MAIN_AI_SYSTEM, 'sound/effects/missile_warning.ogg') targets = shipside_random_turf_picker(quantity) if(targets == null) tgui_alert(src, "Uh oh! Something broke at this point! Contact the coders!", "Acknowledge!", list("ok."), 10 SECONDS) @@ -85,17 +98,23 @@ message_admins("[key_name_admin(src)] Fired a salvo of Railgun Slugs at the Almayer at random places, with the possibility of missing [point_defense]") picked_atom = null targets = null + if(point_defense == TRUE) + var/spoolup = hiteta - 4 + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(shipwide_ai_announcement), "AIR DEFENSE TRACKING. BRACE BRACE BRACE." , MAIN_AI_SYSTEM, 'sound/effects/supercapacitors_charging.ogg'), spoolup SECONDS) if(salvo == FALSE) prompt = tgui_alert(src, "Are you sure you want to shoot a railgun slug at the USS Almayer at a random place?", "Choose wisely!", list("Yes", "No"), 20 SECONDS) if(prompt == "Yes") - shipwide_ai_announcement("DANGER: RAILGUN EMISSIONS DETECTED, INCOMING SHOT. BRACE, BRACE, BRACE. ESTIMATED TIME: [hiteta] SECONDS." , MAIN_AI_SYSTEM, 'sound/effects/missile_warning.ogg') + shipwide_ai_announcement("INCOMING, INCOMING, INCOMING. RAILGUN BURST IDENTIFIED AND TRACKED, IMPACT [hiteta] SECONDS." , MAIN_AI_SYSTEM, 'sound/effects/missile_warning.ogg') picked_atom = shipside_random_turf_picker(1) if(picked_atom == null) tgui_alert(src, "Uh oh! Something broke at this point! Contact the coders!", "Acknowledge!", list("ok."), 10 SECONDS) return addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(weaponhits), 2, picked_atom, point_defense), hiteta SECONDS) message_admins("[key_name_admin(src)] Fired a single Railgun Slug at the Almayer at a random location, [picked_atom], with the possibility of missing as [point_defense]") + if(point_defense == TRUE) + var/spoolup = hiteta - 4 + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(shipwide_ai_announcement), "AIR DEFENSE TRACKING. BRACE BRACE BRACE." , MAIN_AI_SYSTEM, 'sound/effects/supercapacitors_charging.ogg'), spoolup SECONDS) /proc/shipside_random_turf_picker(turfquantity) diff --git a/code/modules/almayer/weaponhits.dm b/code/modules/almayer/weaponhits.dm index 1f3a566ebb..64c9c49097 100644 --- a/code/modules/almayer/weaponhits.dm +++ b/code/modules/almayer/weaponhits.dm @@ -62,7 +62,9 @@ if(WEAPON_RAILGUN) var/datum/cause_data/antishiprailgun_cause_data = create_cause_data("Railgun shot") var/hitchance = HIT_CHANCE_CHEAT - if(point_defense == TRUE) + if(point_defense == TRUE && point_defense_custom == TRUE) + hitchance = HIT_CHANCE_CHEAT - point_defense_chance + else if(point_defense == TRUE) hitchance = HIT_CHANCE_STANDARD if(salvo == TRUE) var/confirmedhit @@ -115,7 +117,7 @@ if(!is_mainship_level(current_mob.z)) continue playsound_client (current_mob.client, 'sound/effects/railgun_miss.ogg', 60) - to_chat(current_mob.client, SPAN_DANGER("You hear railgun shots barely missing the hull!")) + to_chat(current_mob.client, SPAN_DANGER("You hear railgun bursts barely missing the hull!")) //REMOVE THIS WHEN WE USE THESE DEFS SOMEWHERE ELSE OR ELSE IT STRAIGHT UP WON'T WORK. #undef WEAPON_MISSILE #undef WEAPON_RAILGUN diff --git a/code/modules/defenses/sentry_computer.dm b/code/modules/defenses/sentry_computer.dm index 906473056e..d7afd52fc6 100644 --- a/code/modules/defenses/sentry_computer.dm +++ b/code/modules/defenses/sentry_computer.dm @@ -2,8 +2,8 @@ * Sentry gun computer which links to defensive structures. */ /obj/item/device/sentry_computer - name = "\improper Sentry Gun Network Laptop" - desc = "A laptop loaded with sentry control software." + name = "\improper AN/PSQ-55 Remote Weapons Console" + desc = "A TREE hardened laptop equipped with additional C2 software for the UA-571 family of robot sentries." icon = 'icons/obj/structures/props/sentrycomp.dmi' icon_state = "sentrycomp_cl" w_class = SIZE_SMALL