Skip to content

Commit

Permalink
Good Heavens, it's the [NOBLE AMBASSADOR]! (#422)
Browse files Browse the repository at this point in the history
  • Loading branch information
CRITAWAKETS authored Feb 23, 2024
1 parent c5712ba commit 8f1bbc6
Show file tree
Hide file tree
Showing 31 changed files with 281 additions and 5 deletions.
1 change: 1 addition & 0 deletions _maps/map_files/KiloStation/KiloStation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -67904,6 +67904,7 @@
},
/obj/structure/chair/comfy,
/obj/item/radio/intercom/command/directional/north,
/obj/effect/landmark/start/noble_ambassador,
/turf/open/floor/iron,
/area/station/security/courtroom)
"rFc" = (
Expand Down
6 changes: 5 additions & 1 deletion _maps/map_files/LimaStation/LimaStation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -895,6 +895,10 @@
},
/turf/open/floor/iron,
/area/station/hallway/secondary/entry)
"apP" = (
/obj/effect/landmark/start/noble_ambassador,
/turf/open/floor/iron/dark,
/area/station/command/bridge)
"apV" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable,
Expand Down Expand Up @@ -178598,7 +178602,7 @@ kwg
hbQ
pBO
pBO
kyk
apP
pBO
pBO
jAm
Expand Down
10 changes: 9 additions & 1 deletion _maps/map_files/PubbyStation/PubbyStation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -60811,6 +60811,14 @@
dir = 8
},
/area/station/medical/medbay/lobby)
"xlN" = (
/obj/structure/chair/office{
dir = 1
},
/obj/structure/cable,
/obj/effect/landmark/start/noble_ambassador,
/turf/open/floor/iron/dark,
/area/station/command/bridge)
"xmh" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable,
Expand Down Expand Up @@ -92991,7 +92999,7 @@ aaa
aaa
aqI
arM
asR
xlN
atU
auR
avX
Expand Down
1 change: 1 addition & 0 deletions code/datums/station_traits/positive_traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,7 @@
/datum/job/asset_protection = /obj/item/organ/internal/eyes/robotic/thermals,
/datum/job/bridge_assistant = /obj/item/organ/internal/eyes/robotic,
/datum/job/bridge_officer = /obj/item/organ/internal/eyes/robotic,
/datum/job/noble_ambassador = /obj/item/organ/internal/cyberimp/chest/nutriment/plus,
/datum/job/ordnance_tech = /obj/item/organ/internal/cyberimp/arm/toolset,
/datum/job/stowaway = /obj/item/organ/internal/eyes/robotic/xray,
/datum/job/xenobiologist = /obj/item/organ/internal/cyberimp/eyes/hud/medical,
Expand Down
7 changes: 7 additions & 0 deletions config/jobconfig.toml
Original file line number Diff line number Diff line change
Expand Up @@ -221,6 +221,13 @@
"# Spawn Positions" = 1
"# Total Positions" = 1

[NOBLE_AMBASSADOR]
"# Playtime Requirements" = 180
"# Required Account Age" = 10
"# Required Character Age" = 0
"# Spawn Positions" = 1
"# Total Positions" = 1

[PARAMEDIC]
"# Playtime Requirements" = 0
"# Required Account Age" = 0
Expand Down
3 changes: 3 additions & 0 deletions maplestation.dme
Original file line number Diff line number Diff line change
Expand Up @@ -6142,6 +6142,7 @@
#include "maplestation_modules\code\game\objects\effects\temporary_visuals\projectiles\tracer.dm"
#include "maplestation_modules\code\game\objects\items\bola.dm"
#include "maplestation_modules\code\game\objects\items\captain_weapons.dm"
#include "maplestation_modules\code\game\objects\items\cards_ids.dm"
#include "maplestation_modules\code\game\objects\items\holy_weapons.dm"
#include "maplestation_modules\code\game\objects\items\locker_spawners.dm"
#include "maplestation_modules\code\game\objects\items\plushes.dm"
Expand Down Expand Up @@ -6170,6 +6171,7 @@
#include "maplestation_modules\code\game\objects\structures\crate_lockers\closets\secure\asset_protection.dm"
#include "maplestation_modules\code\game\objects\structures\crate_lockers\closets\secure\bridge_officer.dm"
#include "maplestation_modules\code\game\objects\structures\crate_lockers\closets\secure\medical.dm"
#include "maplestation_modules\code\game\objects\structures\crate_lockers\closets\secure\noble_ambassador.dm"
#include "maplestation_modules\code\game\objects\structures\crate_lockers\closets\secure\quartermaster.dm"
#include "maplestation_modules\code\modules\admin\admin_vv.dm"
#include "maplestation_modules\code\modules\admin\smites\pain_smite.dm"
Expand Down Expand Up @@ -6314,6 +6316,7 @@
#include "maplestation_modules\code\modules\jobs\job_types\bridge_officer.dm"
#include "maplestation_modules\code\modules\jobs\job_types\captain.dm"
#include "maplestation_modules\code\modules\jobs\job_types\lawyer.dm"
#include "maplestation_modules\code\modules\jobs\job_types\noble_ambassador.dm"
#include "maplestation_modules\code\modules\jobs\job_types\ordnance_tech.dm"
#include "maplestation_modules\code\modules\jobs\job_types\psychologist.dm"
#include "maplestation_modules\code\modules\jobs\job_types\research_director.dm"
Expand Down
6 changes: 4 additions & 2 deletions maplestation_modules/code/__DEFINES/jobs.dm
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
/// -- Job defines. --
#define JOB_DISPLAY_ORDER_ASSET_PROTECTION 3.1
#define JOB_DISPLAY_ORDER_BRIDGE_OFFICER 3.2
#define JOB_DISPLAY_ORDER_NOBLE_AMBASSADOR 3.3
#define JOB_DISPLAY_ORDER_ORDNANCE_TECH 29.1
#define JOB_DISPLAY_ORDER_XENOBIOLOGIST 29.2

#define JOB_SYNDICATE (1<<0)

#define JOB_ASSET_PROTECTION "Asset Protection"
#define JOB_BRIDGE_OFFICER "Bridge Officer"
#define JOB_NOBLE_AMBASSADOR "Noble Ambassador"
#define JOB_ORDNANCE_TECH "Ordnance Technician"
#define JOB_XENOBIOLOGIST "Xenobiologist"

#define JOB_SYNDICATE (1<<0)
61 changes: 61 additions & 0 deletions maplestation_modules/code/datums/id_trim/jobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -84,3 +84,64 @@
minimal_access = list(ACCESS_AUX_BASE, ACCESS_MECH_SCIENCE, ACCESS_MINERAL_STOREROOM, ACCESS_RESEARCH, ACCESS_SCIENCE, ACCESS_XENOBIOLOGY)
template_access = list(ACCESS_CAPTAIN, ACCESS_RD, ACCESS_CHANGE_IDS)
job = /datum/job/xenobiologist

/datum/id_trim/job/noble_ambassador
assignment = "Noble Ambassador"
trim_icon = 'maplestation_modules/icons/obj/card.dmi'
trim_state = "trim_noble"
sechud_icon = 'maplestation_modules/icons/mob/huds/hud.dmi'
sechud_icon_state = "hudnoble"
extra_access = list(ACCESS_RESEARCH, ACCESS_SCIENCE)
extra_wildcard_access = list(ACCESS_ARMORY)
minimal_access = list(ACCESS_BRIG, ACCESS_CARGO, ACCESS_CONSTRUCTION, ACCESS_COURT, ACCESS_COMMAND,
ACCESS_KEYCARD_AUTH, ACCESS_LAWYER, ACCESS_SHIPPING, ACCESS_MAINT_TUNNELS, ACCESS_MEDICAL,
ACCESS_MINERAL_STOREROOM, ACCESS_RC_ANNOUNCE, ACCESS_BRIG_ENTRANCE, ACCESS_SECURITY, ACCESS_WEAPONS)
minimal_wildcard_access = list(ACCESS_VAULT)
template_access = list(ACCESS_CAPTAIN, ACCESS_HOP, ACCESS_CHANGE_IDS)
job = /datum/job/noble_ambassador

/datum/id_trim/job/noble_ambassador
assignment = "Noble Ambassador"
intern_alt_name = "Noble Squire"
trim_icon = 'maplestation_modules/icons/obj/card.dmi'
trim_state = "trim_noble"
sechud_icon = 'maplestation_modules/icons/mob/huds/hud.dmi'
sechud_icon_state = "hudnoble"
minimal_access = list(
ACCESS_AUX_BASE,
ACCESS_BAR,
ACCESS_BRIG_ENTRANCE,
ACCESS_CARGO,
ACCESS_CHAPEL_OFFICE,
ACCESS_CREMATORIUM,
ACCESS_COMMAND,
ACCESS_COURT,
ACCESS_ENGINEERING,
ACCESS_EVA,
ACCESS_GATEWAY,
ACCESS_HYDROPONICS,
ACCESS_JANITOR,
ACCESS_KEYCARD_AUTH,
ACCESS_KITCHEN,
ACCESS_LAWYER,
ACCESS_LIBRARY,
ACCESS_MEDICAL,
ACCESS_MINERAL_STOREROOM,
ACCESS_MORGUE,
ACCESS_MORGUE_SECURE,
ACCESS_PSYCHOLOGY,
ACCESS_RC_ANNOUNCE,
ACCESS_SCIENCE,
ACCESS_SERVICE,
ACCESS_TELEPORTER,
ACCESS_THEATRE,
ACCESS_WEAPONS, //nt scared shitless of finding out what happens if they weapons permit check a noble
)
minimal_wildcard_access = list()
extra_access = list()
extra_wildcard_access = list()
template_access = list(
ACCESS_CAPTAIN,
ACCESS_CHANGE_IDS,
)
job = /datum/job/noble_ambassador
6 changes: 6 additions & 0 deletions maplestation_modules/code/game/area/space_station_13_areas.dm
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,12 @@
icon = 'maplestation_modules/icons/turf/areas.dmi'
icon_state = "ap_office"

//Noble Ambassador's Office, currently unused
/area/station/command/noble_ambassador_office
name = "Noble Ambassador's Office"
icon = 'maplestation_modules/icons/turf/areas.dmi'
icon_state = "na_office"

/area/station/service/hydroponics/park
name = "Park"
associated_department_flags = NONE
Expand Down
19 changes: 19 additions & 0 deletions maplestation_modules/code/game/objects/effects/landmarks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
/obj/effect/landmark/start/ordnance_tech,
/obj/effect/landmark/start/bridge_officer,
/obj/effect/landmark/start/asset_protection,
/obj/effect/landmark/start/noble_ambassador,
)

/datum/controller/subsystem/minor_mapping/Initialize()
Expand Down Expand Up @@ -90,6 +91,19 @@
forceMove(open_turf)
return

// NA start location
/obj/effect/landmark/start/noble_ambassador
name = "Noble Ambassador"
icon = 'maplestation_modules/icons/mob/landmarks.dmi'
icon_state = "NobleAmbassador"

/obj/effect/landmark/start/noble_ambassador/find_spot_to_place()
var/area/station/command/bridge/bridge = locate() in GLOB.areas
for(var/turf/open/open_turf in bridge?.get_turfs_from_all_zlevels())
if(locate(/obj/structure/chair) in open_turf)
forceMove(open_turf)
return

// Global list for generic lockers
GLOBAL_LIST_EMPTY(locker_landmarks)

Expand Down Expand Up @@ -120,3 +134,8 @@ GLOBAL_LIST_EMPTY(locker_landmarks)
/obj/effect/landmark/locker_spawner/asset_protection_equipment
name = "asset protection locker"
spawned_path = /obj/structure/closet/secure_closet/asset_protection

// Landmark for mapping in Noble Ambassador equipment.
/obj/effect/landmark/locker_spawner/noble_ambassador_equipment
name = "noble ambassador locker"
spawned_path = /obj/structure/closet/secure_closet/noble_ambassador
6 changes: 6 additions & 0 deletions maplestation_modules/code/game/objects/items/cards_ids.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/obj/item/card/id/advanced/silver/mu
name = "\improper Mu identification card"
desc = "A pink ID card associated to the Aristocracy of Mu."
icon = 'maplestation_modules/icons/obj/card.dmi'
icon_state = "card_noble"
assigned_icon_state = "assigned_noble"
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
return list(
/obj/item/modular_computer/pda/heads/asset_protection = list(REGION_COMMAND),
/obj/item/modular_computer/pda/heads/bridge_officer = list(REGION_COMMAND),
/obj/item/modular_computer/pda/heads/noble_ambassador = list(REGION_COMMAND),
/obj/item/modular_computer/pda/ordnance = list(REGION_RESEARCH),
/obj/item/modular_computer/pda/xenobiologist = list(REGION_RESEARCH),
)
Expand Down Expand Up @@ -42,6 +43,19 @@
/datum/computer_file/program/status,
)

// Noble Ambassador PDA.
/obj/item/modular_computer/pda/heads/noble_ambassador
name = "noble ambassador PDA"
greyscale_config = /datum/greyscale_config/tablet/head
greyscale_colors = "#9d77a3#fdc052"
starting_programs = list(
/datum/computer_file/program/crew_manifest,
/datum/computer_file/program/status,
/datum/computer_file/program/science,
/datum/computer_file/program/robocontrol,
/datum/computer_file/program/budgetorders,
)

/// ordnance technician PDA
/obj/item/modular_computer/pda/ordnance
name = "ordnance technician PDA"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,11 @@
name = "\proper the asset protection's encryption key"
icon_state = "hos_cypherkey"
channels = list(RADIO_CHANNEL_SECURITY = 1, RADIO_CHANNEL_COMMAND = 1)

// Noble Ambassador's Key
/obj/item/encryptionkey/heads/noble_ambassador
name = "\proper the noble ambassador's encryption key"
icon_state = "cypherkey_cube"
channels = list(RADIO_CHANNEL_COMMAND = 1)
greyscale_config = /datum/greyscale_config/encryptionkey_cube
greyscale_colors = "#9d77a3#fdc052"
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,10 @@
/obj/item/radio/headset/heads/asset_protection/alt/Initialize(mapload)
. = ..()
AddComponent(/datum/component/wearertargeting/earprotection, list(ITEM_SLOT_EARS))

/obj/item/radio/headset/heads/noble_ambassador
name = "\proper the noble ambassador's headset"
desc = "The headset of the ambassador from Mu, responsible for upholding their laws and ensuring the crew's wellbeing."
icon = 'maplestation_modules/icons/obj/radio.dmi'
icon_state = "noble_headset"
keyslot = /obj/item/encryptionkey/heads/noble_ambassador
10 changes: 10 additions & 0 deletions maplestation_modules/code/game/objects/items/locker_spawners.dm
Original file line number Diff line number Diff line change
Expand Up @@ -57,3 +57,13 @@
for use when protecting the command staff of Nanotrasen research stations."
requires_job_path = /datum/job/asset_protection
spawned_locker_path = /obj/structure/closet/secure_closet/asset_protection

// NA Locker summoner
/obj/item/locker_spawner/noble_ambassador
name = "noble ambassador equipment beacon"
desc = "A beacon handed out for refined noble ambassadors being assigned to stations without proper \
accommodations made for their occupation. When used, drop-pods in a fully stocked locker of equipment \
for use when upholding the laws of joint Mu-Nanotrasen research stations."
requires_job_path = /datum/job/noble_ambassador
spawned_locker_path = /obj/structure/closet/secure_closet/noble_ambassador

10 changes: 10 additions & 0 deletions maplestation_modules/code/game/objects/items/plushes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,13 @@
/obj/item/toy/plush/peepy/examine(mob/user)
. = ..()
. += span_notice("A tag on the back says: \"This is a collectible artwork and not a toy. Do not give to children under 12 years old or pets.\"")

/obj/item/toy/plush/finster_fumo
name = "\improper Finster plushie"
desc = "A stuffed doll of Lord Finster, the reigning monarch of House Finster and therefore the supreme authority on Mu's side of the station. \
Now in a marketable form!"
icon = 'maplestation_modules/icons/obj/plushes.dmi'
icon_state = "finster"
divine = TRUE
young = TRUE
gender = MALE
14 changes: 14 additions & 0 deletions maplestation_modules/code/game/objects/items/storage/garment.dm
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,20 @@
new /obj/item/clothing/glasses/hud/security/sunglasses/gars(src)
new /obj/item/clothing/glasses/hud/security/sunglasses/eyepatch(src)

/obj/item/storage/bag/garment/noble_ambassador
name = "noble ambassador's garment bag"
desc = "A bag for storing extra clothes and shoes. This one belongs to the assigned noble ambassador."

/obj/item/storage/bag/garment/noble_ambassador/PopulateContents()
new /obj/item/clothing/under/rank/noble(src)
new /obj/item/clothing/under/rank/noblealt(src)
new /obj/item/clothing/suit/toggle/noble(src)
new /obj/item/clothing/head/costume/crown/noble(src)
new /obj/item/clothing/shoes/noble(src)
new /obj/item/clothing/shoes/noblealt(src)
new /obj/item/clothing/gloves/noble(src)
new /obj/item/clothing/gloves/noblealt(src)

// Making it so that all garment bags can hold a little more stuff.
/obj/item/storage/bag/garment/Initialize(mapload)
. = ..()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
/obj/structure/closet/secure_closet/noble_ambassador
name = "\proper noble ambassador's locker"
desc = "It's a card-locked storage unit. You sure wish it had less spartan decorations."
req_access = list(ACCESS_COMMAND)
icon = 'maplestation_modules/icons/obj/locker.dmi'
icon_state = "na"

/obj/structure/closet/secure_closet/noble_ambassador/PopulateContents()
new /obj/item/storage/bag/garment/noble_ambassador(src)
new /obj/item/storage/backpack/satchel/leather(src)
new /obj/item/radio/headset/heads/noble_ambassador(src)
new /obj/item/stamp/na(src)
new /obj/item/storage/photo_album/noble_ambassador(src)

/obj/item/storage/photo_album/noble_ambassador
name = "photo album (Noble Ambassador)"
icon_state = "album_blue"
persistence_id = "NA"
Loading

0 comments on commit 8f1bbc6

Please sign in to comment.