Skip to content
This repository has been archived by the owner on Nov 5, 2023. It is now read-only.

Adds Mr. Yuma to the waste #427

Closed
wants to merge 15 commits into from
Closed
9 changes: 8 additions & 1 deletion _maps/map_files/Pahrump-Sunset/Pahrump-Sunset.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -35139,6 +35139,13 @@
/obj/structure/flora/tallgrass6,
/turf/open/indestructible/ground/outside/dirt,
/area/f13/wasteland)
"jiz" = (
/obj/structure/table,
/obj/machinery/announcement_system/Mr_Yuma,
/turf/open/floor/f13{
icon_state = "floorrusty"
},
/area/f13/building/trainstation)
"jiJ" = (
/obj/machinery/trading_machine/ammo,
/obj/machinery/light{
Expand Down Expand Up @@ -131068,7 +131075,7 @@ xLC
dgy
lRe
dgn
ogp
jiz
ajR
aks
lRe
Expand Down
32 changes: 32 additions & 0 deletions code/game/machinery/announcement_system.dm
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,33 @@ GLOBAL_LIST_EMPTY(announcement_systems)
var/arrivalToggle = 1
var/newhead = "%PERSON, %RANK, is the department head."
var/newheadToggle = 1
var/factionleave = "%PERSON, the %RANK, has left these lands for a (hopefully) better land in the wasteland." //this is used to announce a faction of when a player leaves by the matrix
var/factionleavedead = "the corpse of %PERSON, the %RANK, is now feeding the vultures, at the other side of the border" //same but dead


var/greenlight = "Light_Green"
var/pinklight = "Light_Pink"
var/errorlight = "Error_Red"

/obj/machinery/announcement_system/Mr_Yuma //ATOM EDIT, adds a lore friendly announcer in the form of Mr. Yuma, a parody of Mr. New Vegas
density = TRUE
name = "Mr. Yuma"
desc = "A Modified Autonomos AI Persona locutor, designed by Robco Industries, which announce many things over the radio."
icon = 'icons/obj/machines/telecomms.dmi'
icon_state = "Mr_Yuma_On"

verb_say = "smoothly says"
verb_ask = "wonders"
verb_exclaim = "warns"

idle_power_usage = 20
active_power_usage = 50

circuit = /obj/item/circuitboard/machine/announcement_system/Mr_Yuma

arrival = "%PERSON, the %RANK has joined us today in this fine day for the week"
newhead = "%PERSON, the %RANK is the head honcho of the barn"

/obj/machinery/announcement_system/Initialize()
. = ..()
GLOB.announcement_systems += src
Expand All @@ -38,6 +60,12 @@ GLOBAL_LIST_EMPTY(announcement_systems)
else
icon_state = (panel_open ? "AAS_Off_Open" : "AAS_Off")

/obj/machinery/announcement_system/Mr_Yuma/update_icon_state()
if(is_operational())
icon_state = (panel_open ? "Mr_Yuma_On_Open" : "Mr_Yuma_On")
else
icon_state = (panel_open ? "Mr_Yuma_Off_Open" : "Mr_Yuma_Off")

/obj/machinery/announcement_system/update_overlays()
. = ..()
if(arrivalToggle)
Expand Down Expand Up @@ -84,6 +112,10 @@ GLOBAL_LIST_EMPTY(announcement_systems)
message = CompileText(arrival, user, rank)
else if(message_type == "NEWHEAD" && newheadToggle)
message = CompileText(newhead, user, rank)
else if(message_type == "FACTIONLEAVE")
message = CompileText(factionleave, user, rank)
else if(message_type == "FACTIONLEAVEDEAD")
message = CompileText(factionleavedead, user, rank)
else if(message_type == "ARRIVALS_BROKEN")
message = "The arrivals shuttle has been damaged. Docking for repairs..."

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,13 @@
/obj/item/stack/cable_coil = 2,
/obj/item/stack/sheet/glass = 1)

/obj/item/circuitboard/machine/announcement_system/Mr_Yuma
name = "Announcement System (Machine Board)"
build_path = /obj/machinery/announcement_system/Mr_Yuma
req_components = list(
/obj/item/stack/cable_coil = 2,
/obj/item/stack/sheet/glass = 1)

/obj/item/circuitboard/machine/autolathe
name = "Autolathe (Machine Board)"
build_path = /obj/machinery/autolathe
Expand Down
8 changes: 8 additions & 0 deletions code/modules/fallout/turf/walls.dm
Original file line number Diff line number Diff line change
Expand Up @@ -324,8 +324,16 @@ turf/closed/wall/f13/wood/house/update_damage_overlay()
log_admin(dat)
if(departing_mob.stat == DEAD)
departing_mob.visible_message(span_notice("[user] pushes the body of [departing_mob] over the border. They're someone else's problem now."))
if(GLOB.announcement_systems.len)
var/obj/machinery/announcement_system/announcer = pick(GLOB.announcement_systems)
announcer.announce("FACTIONLEAVEDEAD", departing_mob.real_name, departing_mob.job, list())
message_admins("sent the announcement")
xTrainx marked this conversation as resolved.
Show resolved Hide resolved
else
departing_mob.visible_message(span_notice("[departing_mob == user ? "Out of their own volition, " : "Ushered by [user], "][departing_mob] crosses the border and departs the area."))
if(GLOB.announcement_systems.len)
var/obj/machinery/announcement_system/announcer = pick(GLOB.announcement_systems)
announcer.announce("FACTIONLEAVE", departing_mob.real_name, departing_mob.job, list())
message_admins("sent the announcement")
xTrainx marked this conversation as resolved.
Show resolved Hide resolved
departing_mob.despawn()


Expand Down
Binary file modified icons/obj/machines/telecomms.dmi
Binary file not shown.