From baaf06c7e92caa12760302db2da54510621f8447 Mon Sep 17 00:00:00 2001 From: Morrow Date: Wed, 11 Oct 2023 04:27:09 -0400 Subject: [PATCH] Removes a bunch of intel stuff, fixes PROC_REFs --- code/_globalvars/lists/mapping_globals.dm | 6 - .../subsystem/objectives_controller.dm | 2 + code/datums/mind.dm | 32 -- code/game/gamemodes/cm_initialize.dm | 2 - .../colonialmarines/ai/colonialmarines_ai.dm | 18 +- .../jobs/job/civilians/other/survivors.dm | 1 - code/game/machinery/telecomms/presets.dm | 6 +- .../vendor_types/crew/senior_officers.dm | 1 - .../vendor_types/crew/staff_officer.dm | 1 - .../vending/vendor_types/crew/synthetic.dm | 1 - .../vendor_types/intelligence_officer.dm | 179 ---------- .../vending/vendor_types/requisitions.dm | 1 - .../vendor_types/squad_prep/squad_prep.dm | 1 - .../vendor_types/squad_prep/squad_rifleman.dm | 1 - .../objects/items/devices/data_detector.dm | 14 +- code/game/objects/items/fulton.dm | 6 - code/game/objects/items/storage/pouch.dm | 23 -- .../closets/secure/cm_closets.dm | 2 - code/game/objects/structures/safe.dm | 9 - code/modules/admin/admin_verbs.dm | 1 - code/modules/admin/tabs/debug_tab.dm | 8 - .../modules/cm_marines/equipment/kit_boxes.dm | 1 - code/modules/cm_tech/research_memories.dm | 3 +- code/modules/cm_tech/tech_memories.dm | 234 ------------- code/modules/cm_tech/trees/marine.dm | 22 -- code/modules/gear_presets/pmc.dm | 6 - code/modules/gear_presets/survivors/misc.dm | 1 - .../gear_presets/survivors/survivors.dm | 3 - code/modules/gear_presets/uscm.dm | 66 ---- code/modules/mob/living/carbon/human/human.dm | 47 --- .../mob/living/carbon/xenomorph/ai/xeno_ai.dm | 4 +- .../mob/new_player/preferences_setup.dm | 2 - code/modules/objectives/analyze_chems.dm | 4 - code/modules/objectives/communications.dm | 13 - code/modules/objectives/data_retrieval.dm | 328 ------------------ code/modules/objectives/documents.dm | 249 ------------- .../objectives/experimental_devices.dm | 95 ----- code/modules/objectives/mob_objectives.dm | 238 ------------- code/modules/objectives/objective.dm | 68 ---- .../modules/objectives/objective_landmarks.dm | 55 --- .../objectives/objective_memory_storage.dm | 245 ------------- code/modules/objectives/power_objectives.dm | 64 ---- code/modules/objectives/retrieve_items.dm | 117 ------- code/modules/objectives/safe_cracking.dm | 56 --- .../chemical_research/Chemical-Research.dm | 4 +- .../shuttle/computers/dropship_computer.dm | 4 - code/modules/shuttle/shuttles/dropship.dm | 2 +- colonialmarines.dme | 14 - 48 files changed, 15 insertions(+), 2245 deletions(-) delete mode 100644 code/game/machinery/vending/vendor_types/intelligence_officer.dm delete mode 100644 code/modules/cm_tech/tech_memories.dm delete mode 100644 code/modules/objectives/analyze_chems.dm delete mode 100644 code/modules/objectives/communications.dm delete mode 100644 code/modules/objectives/data_retrieval.dm delete mode 100644 code/modules/objectives/documents.dm delete mode 100644 code/modules/objectives/experimental_devices.dm delete mode 100644 code/modules/objectives/mob_objectives.dm delete mode 100644 code/modules/objectives/objective.dm delete mode 100644 code/modules/objectives/objective_landmarks.dm delete mode 100644 code/modules/objectives/objective_memory_storage.dm delete mode 100644 code/modules/objectives/power_objectives.dm delete mode 100644 code/modules/objectives/retrieve_items.dm delete mode 100644 code/modules/objectives/safe_cracking.dm diff --git a/code/_globalvars/lists/mapping_globals.dm b/code/_globalvars/lists/mapping_globals.dm index 47cc22dae5..5a2b953ed6 100644 --- a/code/_globalvars/lists/mapping_globals.dm +++ b/code/_globalvars/lists/mapping_globals.dm @@ -56,12 +56,6 @@ GLOBAL_LIST_EMPTY(nightmare_landmarks) GLOBAL_LIST_EMPTY(ship_areas) -// Objective landmarks. Value is TRUE if it contains documents -GLOBAL_LIST_EMPTY_TYPED(objective_landmarks_close, /obj/effect/landmark/objective_landmark/close) -GLOBAL_LIST_EMPTY_TYPED(objective_landmarks_medium, /obj/effect/landmark/objective_landmark/medium) -GLOBAL_LIST_EMPTY_TYPED(objective_landmarks_far, /obj/effect/landmark/objective_landmark/far) -GLOBAL_LIST_EMPTY_TYPED(objective_landmarks_science, /obj/effect/landmark/objective_landmark/science) - GLOBAL_LIST_EMPTY(comm_tower_landmarks_net_one) GLOBAL_LIST_EMPTY(comm_tower_landmarks_net_two) diff --git a/code/controllers/subsystem/objectives_controller.dm b/code/controllers/subsystem/objectives_controller.dm index a858dff074..d0bf2ca0cd 100644 --- a/code/controllers/subsystem/objectives_controller.dm +++ b/code/controllers/subsystem/objectives_controller.dm @@ -1,3 +1,4 @@ +/* #define CORPSES_TO_SPAWN 25 SUBSYSTEM_DEF(objectives) @@ -372,3 +373,4 @@ SUBSYSTEM_DEF(objectives) /datum/controller/subsystem/objectives/proc/stop_processing_objective(datum/cm_objective/O) processing_objectives -= O +*/ diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 2e56b963e8..ecd3a26db4 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -15,24 +15,10 @@ //put this here for easier tracking ingame var/datum/money_account/initial_account - // List of objectives you have knowledge about - var/datum/objective_memory_storage/objective_memory - var/datum/objective_memory_interface/objective_interface - var/datum/research_objective_memory_interface/research_objective_interface - /datum/mind/New(key, ckey) src.key = key src.ckey = ckey player_entity = setup_player_entity(ckey) - objective_memory = new() - objective_interface = new() - research_objective_interface = new() - -/datum/mind/Destroy() - QDEL_NULL(objective_memory) - QDEL_NULL(objective_interface) - QDEL_NULL(research_objective_interface) - return ..() /datum/mind/proc/transfer_to(mob/living/new_character, force = FALSE) if(QDELETED(new_character)) @@ -131,21 +117,3 @@ . = 1 //successfully created a new mind if(!mind.name) mind.name = real_name mind.current = src - -//this is an objective that the player has just completed -//and we want to store the objective clues generated based on it -spookydonut -/datum/mind/proc/store_objective(datum/cm_objective/O) - if(objective_memory) - objective_memory.store_objective(O) - -/datum/mind/proc/view_objective_memories(mob/recipient) - if(!objective_memory) - return - - objective_memory.synchronize_objectives() - - objective_interface.holder = GET_TREE(TREE_MARINE) - objective_interface.tgui_interact(current) - -/datum/mind/proc/view_research_objective_memories(mob/recipient) - research_objective_interface.tgui_interact(current) diff --git a/code/game/gamemodes/cm_initialize.dm b/code/game/gamemodes/cm_initialize.dm index effd3325f8..c732a564c9 100644 --- a/code/game/gamemodes/cm_initialize.dm +++ b/code/game/gamemodes/cm_initialize.dm @@ -807,7 +807,6 @@ Additional game mode variables. H.mind.memory += temp_story //remove ourselves, so we don't get stuff generated for us survivors -= H.mind - new /datum/cm_objective/move_mob/almayer/survivor(H) /datum/game_mode/proc/survivor_non_event_transform(mob/living/carbon/human/H, obj/effect/landmark/spawn_point, is_synth = FALSE, is_CO = FALSE) H.forceMove(get_turf(spawn_point)) @@ -816,7 +815,6 @@ Additional game mode variables. //Give them some information if(!H.first_xeno) //Only give objectives/back-stories to uninfected survivors - new /datum/cm_objective/move_mob/almayer/survivor(H) spawn(4) to_chat(H, "

You are a survivor!

") to_chat(H, SPAN_NOTICE(SSmapping.configs[GROUND_MAP].survivor_message)) diff --git a/code/game/gamemodes/colonialmarines/ai/colonialmarines_ai.dm b/code/game/gamemodes/colonialmarines/ai/colonialmarines_ai.dm index 2691aeecc3..c812113aac 100644 --- a/code/game/gamemodes/colonialmarines/ai/colonialmarines_ai.dm +++ b/code/game/gamemodes/colonialmarines/ai/colonialmarines_ai.dm @@ -72,7 +72,7 @@ /datum/game_mode/colonialmarines/ai/pre_setup() // game_shuttle = SSshuttle.getShuttle(game_shuttle_id) - RegisterSignal(SSdcs, COMSIG_GLOB_XENO_SPAWN, .proc/handle_xeno_spawn) + RegisterSignal(SSdcs, COMSIG_GLOB_XENO_SPAWN, PROC_REF(handle_xeno_spawn)) /* for(var/i in RoleAuthority.squads.Copy()) var/datum/squad/S = i if(!(S.name in squad_limit)) @@ -405,21 +405,7 @@ return //if(!length(GLOB.alive_client_human_list)) - // round_finished = MODE_PVE_LOSE - -GLOBAL_LIST_EMPTY_TYPED(objective_landmarks, /obj/effect/landmark/objective_landmark) - -/obj/effect/landmark/objective_landmark - name = "Objective Landmark" - icon_state = "landmark_node" - -/obj/effect/landmark/objective_landmark/Initialize(mapload, ...) - . = ..() - GLOB.objective_landmarks += src - -/obj/effect/landmark/objective_landmark/Destroy() - GLOB.objective_landmarks -= src - return ..() + // round_finished = MODE_PVE_LOSEs /*GLOBAL_LIST_EMPTY_TYPED(boss_entrance_landmarks, /obj/effect/landmark/boss_entrance) diff --git a/code/game/jobs/job/civilians/other/survivors.dm b/code/game/jobs/job/civilians/other/survivors.dm index 5c82241c47..747ec60d73 100644 --- a/code/game/jobs/job/civilians/other/survivors.dm +++ b/code/game/jobs/job/civilians/other/survivors.dm @@ -59,7 +59,6 @@ if(picked_spawner.story_text) story_text = picked_spawner.story_text - new /datum/cm_objective/move_mob/almayer/survivor(H) /datum/job/civilian/survivor/generate_entry_message(mob/living/carbon/human/H) if(intro_text) diff --git a/code/game/machinery/telecomms/presets.dm b/code/game/machinery/telecomms/presets.dm index 5f26e9d5ed..d93304c663 100644 --- a/code/game/machinery/telecomms/presets.dm +++ b/code/game/machinery/telecomms/presets.dm @@ -66,10 +66,10 @@ playsound(src, 'sound/machines/tcomms_on.ogg', vol = 80, vary = FALSE, sound_range = 16, falloff = 0.5) msg_admin_niche("Portable communication relay started for Z-Level [src.z] [ADMIN_JMP(src)]") - if(SSobjectives && SSobjectives.comms) + //if(SSobjectives && SSobjectives.comms) // This is the first time colony comms have been established. - if (SSobjectives.comms.state != OBJECTIVE_COMPLETE && is_ground_level(loc.z) && operable()) - SSobjectives.comms.complete() + // if (SSobjectives.comms.state != OBJECTIVE_COMPLETE && is_ground_level(loc.z) && operable()) + // SSobjectives.comms.complete() /obj/structure/machinery/telecomms/relay/preset/tower/tcomms_shutdown() . = ..() diff --git a/code/game/machinery/vending/vendor_types/crew/senior_officers.dm b/code/game/machinery/vending/vendor_types/crew/senior_officers.dm index 56eeb2b8a6..c37d39304d 100644 --- a/code/game/machinery/vending/vendor_types/crew/senior_officers.dm +++ b/code/game/machinery/vending/vendor_types/crew/senior_officers.dm @@ -309,7 +309,6 @@ GLOBAL_LIST_INIT(cm_vending_clothing_xo, list( list("Sidearm Pouch", 0, /obj/item/storage/pouch/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Large Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Medical Pouch", 0, /obj/item/storage/pouch/medical, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Document Pouch", 0, /obj/item/storage/pouch/document, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Shotgun Shell Pouch", 0, /obj/item/storage/pouch/shotgun, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), diff --git a/code/game/machinery/vending/vendor_types/crew/staff_officer.dm b/code/game/machinery/vending/vendor_types/crew/staff_officer.dm index 85a8a58d16..11c9341da0 100644 --- a/code/game/machinery/vending/vendor_types/crew/staff_officer.dm +++ b/code/game/machinery/vending/vendor_types/crew/staff_officer.dm @@ -55,7 +55,6 @@ GLOBAL_LIST_INIT(cm_vending_clothing_staff_officer, list( list("POUCHES (CHOOSE 2)", 0, null, null, null), list("Autoinjector Pouch", 0, /obj/item/storage/pouch/autoinjector, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Construction Pouch", 0, /obj/item/storage/pouch/construction, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Document Pouch", 0, /obj/item/storage/pouch/document, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Electronics Pouch (Full)", 0, /obj/item/storage/pouch/electronics/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("First-Aid Pouch (Refillable Injectors)", 0, /obj/item/storage/pouch/firstaid/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("First-Aid Pouch (Splints, Gauze, Ointment)", 0, /obj/item/storage/pouch/firstaid/full/alternate, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), diff --git a/code/game/machinery/vending/vendor_types/crew/synthetic.dm b/code/game/machinery/vending/vendor_types/crew/synthetic.dm index 472db608c0..8e556318c7 100644 --- a/code/game/machinery/vending/vendor_types/crew/synthetic.dm +++ b/code/game/machinery/vending/vendor_types/crew/synthetic.dm @@ -146,7 +146,6 @@ GLOBAL_LIST_INIT(cm_vending_clothing_synth, list( list("POUCHES (CHOOSE 2)", 0, null, null, null), list("Autoinjector Pouch", 0, /obj/item/storage/pouch/autoinjector, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Construction Pouch", 0, /obj/item/storage/pouch/construction, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Document Pouch", 0, /obj/item/storage/pouch/document, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Electronics Pouch (Full)", 0, /obj/item/storage/pouch/electronics/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("First-Aid Pouch (Refillable Injectors)", 0, /obj/item/storage/pouch/firstaid/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("First-Aid Pouch (Splints, Gauze, Ointment)", 0, /obj/item/storage/pouch/firstaid/full/alternate, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), diff --git a/code/game/machinery/vending/vendor_types/intelligence_officer.dm b/code/game/machinery/vending/vendor_types/intelligence_officer.dm deleted file mode 100644 index ad10037ccf..0000000000 --- a/code/game/machinery/vending/vendor_types/intelligence_officer.dm +++ /dev/null @@ -1,179 +0,0 @@ -//------------GEAR VENDOR--------------- - -GLOBAL_LIST_INIT(cm_vending_gear_intelligence_officer, list( - list("INTELLIGENCE SET (MANDATORY)", 0, null, null, null), - list("Essential Intelligence Set", 0, /obj/effect/essentials_set/intelligence_officer, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_MANDATORY), - - list("SUPPLIES", 0, null, null, null), - list("Power Control Module", 5, /obj/item/circuitboard/apc, null, VENDOR_ITEM_REGULAR), - list("Binoculars", 5, /obj/item/device/binoculars, null, VENDOR_ITEM_REGULAR), - list("Night Vision Optic", 25, /obj/item/device/helmet_visor/night_vision, null, VENDOR_ITEM_RECOMMENDED), - list("Data Detector", 5, /obj/item/device/motiondetector/intel, null, VENDOR_ITEM_REGULAR), - list("Intel Radio Encryption Key", 5, /obj/item/device/encryptionkey/intel, null, VENDOR_ITEM_REGULAR), - list("Fire Extinguisher (Portable)", 5, /obj/item/tool/extinguisher/mini, null, VENDOR_ITEM_REGULAR), - list("Fulton Recovery Device", 10, /obj/item/stack/fulton, null, VENDOR_ITEM_REGULAR), - list("Motion Detector", 15, /obj/item/device/motiondetector, null, VENDOR_ITEM_RECOMMENDED), - list("Plastic Explosive", 10, /obj/item/explosive/plastic, null, VENDOR_ITEM_REGULAR), - list("Welding Visor", 5, /obj/item/device/helmet_visor/welding_visor, null, VENDOR_ITEM_REGULAR), - list("Medical Helmet Optic", 5, /obj/item/device/helmet_visor/medical, null, VENDOR_ITEM_REGULAR), - list("Welding Goggles", 5, /obj/item/clothing/glasses/welding, null, VENDOR_ITEM_REGULAR), - - list("POUCHES", 0, null, null, null), - list("Large Magazine Pouch", 10, /obj/item/storage/pouch/magazine/large, null, VENDOR_ITEM_REGULAR), - list("Large Shotgun Shell Pouch", 10, /obj/item/storage/pouch/shotgun/large, null, VENDOR_ITEM_REGULAR), - list("Autoinjector Pouch (Full)", 15, /obj/item/storage/pouch/autoinjector/full, null, VENDOR_ITEM_RECOMMENDED), - list("Machete Pouch (Full)", 10, /obj/item/storage/pouch/machete/full, null, VENDOR_ITEM_REGULAR), - - list("PRIMARY AMMUNITION", 0, null, null, null), - list("M4RA AP Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/m4ra/ap, null, VENDOR_ITEM_REGULAR), - list("M39 AP Magazine (10x20mm)", 10, /obj/item/ammo_magazine/smg/m39/ap , null, VENDOR_ITEM_REGULAR), - list("M39 Extended Magazine (10x20mm)", 10, /obj/item/ammo_magazine/smg/m39/extended , null, VENDOR_ITEM_REGULAR), - list("M41A AP Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/ap , null, VENDOR_ITEM_REGULAR), - list("M41A Extended Magazine (10x24mm)", 10, /obj/item/ammo_magazine/rifle/extended , null, VENDOR_ITEM_REGULAR), - - list("SIDEARM AMMUNITION", 0, null, null, null), - list("M44 Heavy Speed Loader (.44)", 10, /obj/item/ammo_magazine/revolver/heavy, null, VENDOR_ITEM_REGULAR), - list("M4A3 HP Magazine", 5, /obj/item/ammo_magazine/pistol/hp, null, VENDOR_ITEM_REGULAR), - list("M4A3 AP Magazine", 5, /obj/item/ammo_magazine/pistol/ap, null, VENDOR_ITEM_REGULAR), - list("VP78 Magazine", 5, /obj/item/ammo_magazine/pistol/vp78, null, VENDOR_ITEM_REGULAR) - )) - -/obj/structure/machinery/cm_vending/gear/intelligence_officer - name = "ColMarTech Intelligence Officer Gear Rack" - desc = "An automated gear rack for IOs." - icon_state = "intel_gear" - req_access = list(ACCESS_MARINE_COMMAND) - vendor_role = list(JOB_INTEL) - -/obj/structure/machinery/cm_vending/gear/intelligence_officer/get_listed_products(mob/user) - return GLOB.cm_vending_gear_intelligence_officer - -//------------CLOTHING VENDOR--------------- - -GLOBAL_LIST_INIT(cm_vending_clothing_intelligence_officer, list( - list("STANDARD EQUIPMENT (TAKE ALL)", 0, null, null, null), - list("Gloves", 0, /obj/item/clothing/gloves/marine/insulated, MARINE_CAN_BUY_GLOVES, VENDOR_ITEM_MANDATORY), - list("Headset", 0, /obj/item/device/radio/headset/almayer/intel, MARINE_CAN_BUY_EAR, VENDOR_ITEM_MANDATORY), - list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY), - - list("ARMOR (CHOOSE 1)", 0, null, null, null), - list("XM4 Pattern Intel Armor", 0, /obj/item/clothing/suit/storage/marine/rto/intel, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), - list("Service Jacket", 0, /obj/item/clothing/suit/storage/jacket/marine/service, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY), - - list("BACKPACK (CHOOSE 1)", 0, null, null, null), - list("Expedition Pack", 0, /obj/item/storage/backpack/marine/satchel/intel, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_RECOMMENDED), - list("Radio Telephone Pack", 0, /obj/item/storage/backpack/marine/satchel/rto/io, MARINE_CAN_BUY_BACKPACK, VENDOR_ITEM_REGULAR), - - list("HELMET (CHOOSE 1)", 0, null, null, null), - list("XM12 Officer Helmet", 0, /obj/item/clothing/head/helmet/marine/rto/intel, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_RECOMMENDED), - list("Beret, Standard", 0, /obj/item/clothing/head/beret/cm, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), - list("Beret, Tan", 0, /obj/item/clothing/head/beret/cm/tan, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), - list("USCM Officer Cap", 0, /obj/item/clothing/head/cmcap/bridge, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_REGULAR), - - list("BELT (CHOOSE 1)", 0, null, null, null), - list("G8-A General Utility Pouch", 0, /obj/item/storage/backpack/general_belt, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), - list("M276 Ammo Load Rig", 0, /obj/item/storage/belt/marine, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), - list("M276 General Pistol Holster Rig", 0, /obj/item/storage/belt/gun/m4a3, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), - list("M276 M39 Holster Rig", 0, /obj/item/storage/belt/gun/m39, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), - list("M276 M44 Holster Rig", 0, /obj/item/storage/belt/gun/m44, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), - list("M276 Shotgun Shell Loading Rig", 0, /obj/item/storage/belt/shotgun, MARINE_CAN_BUY_BELT, VENDOR_ITEM_REGULAR), - list("M276 Toolbelt Rig (Full)", 0, /obj/item/storage/belt/utility/full, MARINE_CAN_BUY_BELT, VENDOR_ITEM_RECOMMENDED), - - list("POUCHES (CHOOSE 2)", 0, null, null, null), - list("Document Pouch", 0, /obj/item/storage/pouch/document, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), - list("First-Aid Pouch (Refillable Injectors)", 0, /obj/item/storage/pouch/firstaid/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("First-Aid Pouch (Splints, Gauze, Ointment)", 0, /obj/item/storage/pouch/firstaid/full/alternate, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("First-Aid Pouch (Pills)", 0, /obj/item/storage/pouch/firstaid/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Fuel Tank Strap Pouch", 0, /obj/item/storage/pouch/flamertank, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Large General Pouch", 0, /obj/item/storage/pouch/general/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Large Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Magazine Pouch", 0, /obj/item/storage/pouch/magazine, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Shotgun Shell Pouch", 0, /obj/item/storage/pouch/shotgun, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Sidearm Pouch", 0, /obj/item/storage/pouch/pistol, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Tools Pouch (Full)", 0, /obj/item/storage/pouch/tools/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), - list("Sling Pouch", 0, /obj/item/storage/pouch/sling, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - - list("ACCESSORIES (CHOOSE 1)", 0, null, null, null), - list("Black Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), - list("Brown Webbing Vest", 0, /obj/item/clothing/accessory/storage/black_vest/brown_vest, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_RECOMMENDED), - list("Shoulder Holster", 0, /obj/item/clothing/accessory/storage/holster, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), - list("Webbing", 0, /obj/item/clothing/accessory/storage/webbing, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), - list("Drop Pouch", 0, /obj/item/clothing/accessory/storage/droppouch, MARINE_CAN_BUY_ACCESSORY, VENDOR_ITEM_REGULAR), - - list("MASK (CHOOSE 1)", 0, null, null, null), - list("Gas Mask", 0, /obj/item/clothing/mask/gas, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR), - list("Heat Absorbent Coif", 0, /obj/item/clothing/mask/rebreather/scarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR) - )) - -//MARINE_CAN_BUY_SHOES MARINE_CAN_BUY_UNIFORM currently not used -/obj/structure/machinery/cm_vending/clothing/intelligence_officer - name = "ColMarTech Intelligence Officer Equipment Rack" - desc = "An automated rack hooked up to a colossal storage of IO standard-issue equipment." - req_access = list(ACCESS_MARINE_COMMAND) - vendor_role = list(JOB_INTEL) - -/obj/structure/machinery/cm_vending/clothing/intelligence_officer/get_listed_products(mob/user) - return GLOB.cm_vending_clothing_intelligence_officer - -//------------GUNS VENDOR--------------- - -/obj/structure/machinery/cm_vending/sorted/cargo_guns/intelligence_officer - name = "\improper ColMarTech Intelligence Officer Weapons Rack" - desc = "An automated weapon rack hooked up to a small storage of standard-issue weapons. Can be accessed only by the Intelligence Officers." - icon_state = "guns" - req_access = list(ACCESS_MARINE_COMMAND) - vendor_role = list(JOB_INTEL) - vend_flags = VEND_CLUTTER_PROTECTION | VEND_LIMITED_INVENTORY | VEND_TO_HAND - -/obj/structure/machinery/cm_vending/sorted/cargo_guns/intelligence_officer/get_listed_products(mob/user) - return GLOB.cm_vending_guns_intelligence_officer - -GLOBAL_LIST_INIT(cm_vending_guns_intelligence_officer, list( - list("PRIMARY FIREARMS", -1, null, null), - list("M4RA Battle Rifle", 4, /obj/item/weapon/gun/rifle/m4ra, VENDOR_ITEM_REGULAR), - list("M39 Submachine Gun", 4, /obj/item/weapon/gun/smg/m39, VENDOR_ITEM_REGULAR), - list("M37A2 Pump Shotgun", 4, /obj/item/weapon/gun/shotgun/pump, VENDOR_ITEM_REGULAR), - list("M41A Pulse Rifle MK2", 4, /obj/item/weapon/gun/rifle/m41a, VENDOR_ITEM_REGULAR), - - list("PRIMARY AMMUNITION", -1, null, null), - list("Box of Buckshot Shells (12g)", 12, /obj/item/ammo_magazine/shotgun/buckshot, VENDOR_ITEM_REGULAR), - list("Box of Flechette Shells (12g)", 12, /obj/item/ammo_magazine/shotgun/flechette, VENDOR_ITEM_REGULAR), - list("Box of Shotgun Slugs (12g)", 12, /obj/item/ammo_magazine/shotgun/slugs, VENDOR_ITEM_REGULAR), - list("M4RA Magazine (10x24mm)", 24, /obj/item/ammo_magazine/rifle/m4ra, VENDOR_ITEM_REGULAR), - list("M39 HV Magazine (10x20mm)", 24, /obj/item/ammo_magazine/smg/m39, VENDOR_ITEM_REGULAR), - list("M41A Magazine (10x24mm)", 24, /obj/item/ammo_magazine/rifle, VENDOR_ITEM_REGULAR), - - list("SIDEARMS", -1, null, null), - list("88 Mod 4 Combat Pistol", 4, /obj/item/weapon/gun/pistol/mod88, VENDOR_ITEM_REGULAR), - list("M44 Combat Revolver", 4, /obj/item/weapon/gun/revolver/m44, VENDOR_ITEM_REGULAR), - list("M4A3 Service Pistol", 4, /obj/item/weapon/gun/pistol/m4a3, VENDOR_ITEM_REGULAR), - - list("SIDEARM AMMUNITION", -1, null, null), - list("88M4 AP Magazine (9mm)", 20, /obj/item/ammo_magazine/pistol/mod88, VENDOR_ITEM_REGULAR), - list("M44 Speedloader (.44)", 20, /obj/item/ammo_magazine/revolver, VENDOR_ITEM_REGULAR), - list("M4A3 Magazine (9mm)", 20, /obj/item/ammo_magazine/pistol, VENDOR_ITEM_REGULAR), - list("M4A3 AP Magazine (9mm)", 8, /obj/item/ammo_magazine/pistol/ap, VENDOR_ITEM_REGULAR), - list("M4A3 HP Magazine (9mm)", 8, /obj/item/ammo_magazine/pistol/hp, VENDOR_ITEM_REGULAR), - list("VP78 Magazine (9mm)", 16, /obj/item/ammo_magazine/pistol/vp78, VENDOR_ITEM_REGULAR), - - list("ATTACHMENTS", -1, null, null), - list("Rail Flashlight", 8, /obj/item/attachable/flashlight, VENDOR_ITEM_REGULAR), - list("Underbarrel Flashlight Grip", 4, /obj/item/attachable/flashlight/grip, VENDOR_ITEM_RECOMMENDED), - - list("UTILITIES", -1, null, null), - list("M11 Throwing Knife", 18, /obj/item/weapon/throwing_knife, VENDOR_ITEM_REGULAR), - list("M5 Bayonet", 4, /obj/item/attachable/bayonet, VENDOR_ITEM_REGULAR), - list("M89-S Signal Flare Pack", 2, /obj/item/storage/box/m94/signal, VENDOR_ITEM_REGULAR), - list("M94 Marking Flare pack", 20, /obj/item/storage/box/m94, VENDOR_ITEM_RECOMMENDED) - )) - -//------------ESSENTIAL SETS--------------- - -/obj/effect/essentials_set/intelligence_officer - spawned_gear_list = list( - /obj/item/tool/crowbar, - /obj/item/stack/fulton, - /obj/item/device/motiondetector/intel, - /obj/item/device/binoculars, - ) diff --git a/code/game/machinery/vending/vendor_types/requisitions.dm b/code/game/machinery/vending/vendor_types/requisitions.dm index 07284e7f8e..2b46d0bead 100644 --- a/code/game/machinery/vending/vendor_types/requisitions.dm +++ b/code/game/machinery/vending/vendor_types/requisitions.dm @@ -101,7 +101,6 @@ list("Electronics Pouch", round(scale * 2), /obj/item/storage/pouch/electronics, VENDOR_ITEM_REGULAR), list("Explosive Pouch", round(scale * 2), /obj/item/storage/pouch/explosive, VENDOR_ITEM_REGULAR), list("Flare Pouch (Full)", round(scale * 5), /obj/item/storage/pouch/flare/full, VENDOR_ITEM_REGULAR), - list("Document Pouch", round(scale * 2), /obj/item/storage/pouch/document/small, VENDOR_ITEM_REGULAR), list("Sling Pouch", round(scale * 2), /obj/item/storage/pouch/sling, VENDOR_ITEM_REGULAR), list("Machete Pouch (Full)", round(scale * 0.5), /obj/item/storage/pouch/machete/full, VENDOR_ITEM_REGULAR), list("Bayonet Pouch", round(scale * 2), /obj/item/storage/pouch/bayonet, VENDOR_ITEM_REGULAR), diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm index 222cd4693c..f67b56b8ca 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_prep.dm @@ -126,7 +126,6 @@ list("First-Aid Pouch (Splints, Gauze, Ointment)", round(scale * 15), /obj/item/storage/pouch/firstaid/full/alternate, VENDOR_ITEM_REGULAR), list("First-Aid Pouch (Pill Packets)", round(scale * 15), /obj/item/storage/pouch/firstaid/full/pills, VENDOR_ITEM_REGULAR), list("Flare Pouch (Full)", round(scale * 15), /obj/item/storage/pouch/flare/full, VENDOR_ITEM_REGULAR), - list("Small Document Pouch", round(scale * 15), /obj/item/storage/pouch/document/small, VENDOR_ITEM_REGULAR), list("Magazine Pouch", round(scale * 15), /obj/item/storage/pouch/magazine, VENDOR_ITEM_REGULAR), list("Shotgun Shell Pouch", round(scale * 15), /obj/item/storage/pouch/shotgun, VENDOR_ITEM_REGULAR), list("Medium General Pouch", round(scale * 15), /obj/item/storage/pouch/general/medium, VENDOR_ITEM_REGULAR), diff --git a/code/game/machinery/vending/vendor_types/squad_prep/squad_rifleman.dm b/code/game/machinery/vending/vendor_types/squad_prep/squad_rifleman.dm index 6a56963898..efc3c9eb8e 100644 --- a/code/game/machinery/vending/vendor_types/squad_prep/squad_rifleman.dm +++ b/code/game/machinery/vending/vendor_types/squad_prep/squad_rifleman.dm @@ -33,7 +33,6 @@ GLOBAL_LIST_INIT(cm_vending_clothing_marine, list( list("First-Aid Pouch (Splints, Gauze, Ointment)", 0, /obj/item/storage/pouch/firstaid/full/alternate, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), list("First-Aid Pouch (Pill Packets)", 0, /obj/item/storage/pouch/firstaid/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), - list("Small Document Pouch", 0, /obj/item/storage/pouch/document/small, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Magazine Pouch", 0, /obj/item/storage/pouch/magazine, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Shotgun Shell Pouch", 0, /obj/item/storage/pouch/shotgun, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Medium General Pouch", 0, /obj/item/storage/pouch/general/medium, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), diff --git a/code/game/objects/items/devices/data_detector.dm b/code/game/objects/items/devices/data_detector.dm index 6a358ec09b..fdf3efd42b 100644 --- a/code/game/objects/items/devices/data_detector.dm +++ b/code/game/objects/items/devices/data_detector.dm @@ -4,19 +4,7 @@ icon_state = "datadetector" item_state = "data_detector" blip_type = "data" - var/objects_to_detect = list( - /obj/item/document_objective, - /obj/item/disk/objective, - /obj/item/device/mass_spectrometer/adv/objective, - /obj/item/device/reagent_scanner/adv/objective, - /obj/item/device/healthanalyzer/objective, - /obj/item/device/autopsy_scanner/objective, - /obj/item/paper/research_notes, - /obj/item/reagent_container/glass/beaker/vial/random, - /obj/item/storage/fancy/vials/random, - /obj/structure/machinery/computer/objective, - /obj/item/limb/head/synth, - ) + var/objects_to_detect = list() var/detect_empty_vial_boxes = FALSE /obj/item/device/motiondetector/intel/get_help_text() diff --git a/code/game/objects/items/fulton.dm b/code/game/objects/items/fulton.dm index 98987d1cd2..afaaaa6d20 100644 --- a/code/game/objects/items/fulton.dm +++ b/code/game/objects/items/fulton.dm @@ -169,12 +169,6 @@ var/global/list/deployed_fultons = list() attached_atom.anchored = FALSE playsound(attached_atom.loc,'sound/effects/bamf.ogg', 50, 1) - if(intel_system) - if (!LAZYISIN(GLOB.failed_fultons, attached_atom)) - //Giving marines an objective to retrieve that fulton (so they'd know what they lost and where) - var/datum/cm_objective/retrieve_item/fulton/objective = new /datum/cm_objective/retrieve_item/fulton(attached_atom) - intel_system.store_single_objective(objective) - qdel(reservation) qdel(src) return diff --git a/code/game/objects/items/storage/pouch.dm b/code/game/objects/items/storage/pouch.dm index ee274aaab3..12ac8bfed3 100644 --- a/code/game/objects/items/storage/pouch.dm +++ b/code/game/objects/items/storage/pouch.dm @@ -1059,29 +1059,6 @@ inner = null update_icon() -/obj/item/storage/pouch/document - name = "large document pouch" - desc = "It can contain papers, folders, disks, technical manuals, and clipboards." - icon_state = "document" - storage_slots = 21 - max_w_class = SIZE_MEDIUM - max_storage_space = 21 - storage_flags = STORAGE_FLAGS_POUCH|STORAGE_CLICK_GATHER - can_hold = list( - /obj/item/paper, - /obj/item/clipboard, - /obj/item/document_objective/paper, - /obj/item/document_objective/report, - /obj/item/document_objective/folder, - /obj/item/disk/objective, - /obj/item/document_objective/technical_manual, - ) - -/obj/item/storage/pouch/document/small - name = "small document pouch" - desc = "A smaller version of the document pouch. It can contain papers, folders, disks, technical manuals, and clipboards." - storage_slots = 7 - /obj/item/storage/pouch/flare name = "flare pouch" desc = "A pouch designed to hold flares. Refillable with an M94 flare pack." diff --git a/code/game/objects/structures/crates_lockers/closets/secure/cm_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/cm_closets.dm index ffd9937776..0d25b6702e 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/cm_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/cm_closets.dm @@ -105,8 +105,6 @@ GLOBAL_LIST_EMPTY(co_secure_boxes) new /obj/item/storage/belt/gun/m4a3(src) new /obj/item/storage/backpack/marine/satchel/intel(src) new /obj/item/clothing/suit/storage/marine/rto/intel(src) - new /obj/item/storage/pouch/document(src) - new /obj/item/storage/pouch/document(src) new /obj/item/device/motiondetector/intel(src) new /obj/item/tool/crowbar(src) new /obj/item/clothing/accessory/storage/webbing(src) diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm index 87e713ad0a..23231492fc 100644 --- a/code/game/objects/structures/safe.dm +++ b/code/game/objects/structures/safe.dm @@ -54,10 +54,6 @@ FLOOR SAFES tumbler_2_pos = 0 tumbler_2_open = (rand(0,10) * 5) - if(is_ground_level(loc.z)) - //adding an objective for cracking open the safe - new /datum/cm_objective/crack_safe(src) - for(var/obj/item/I in loc) if(space >= maxspace) return @@ -68,11 +64,6 @@ FLOOR SAFES if(spawnkey) new /obj/item/paper/safe_key(loc) //Spawn the key on top of the safe. -/obj/structure/safe/Destroy() - qdel(objective) - objective = null - return ..() - /obj/structure/safe/proc/check_unlocked(mob/user as mob, canhear) if(user && canhear) if(tumbler_1_pos == tumbler_1_open) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 7d91273130..5554aba066 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -207,7 +207,6 @@ var/list/admin_verbs_debug = list( /client/proc/debug_game_history, /client/proc/enter_tree, /client/proc/set_tree_points, - /client/proc/purge_data_tab, /client/proc/getserverlog, /*allows us to fetch any server logs (diary) for other days*/ /client/proc/getruntimelog, /*allows us to access any runtime logs (can be granted by giveruntimelog)*/ /datum/admins/proc/view_game_log, /*shows the server game log (diary) for this round*/ diff --git a/code/modules/admin/tabs/debug_tab.dm b/code/modules/admin/tabs/debug_tab.dm index d8187abe37..15a02d197c 100644 --- a/code/modules/admin/tabs/debug_tab.dm +++ b/code/modules/admin/tabs/debug_tab.dm @@ -76,14 +76,6 @@ tree.set_points(number_to_set) -/client/proc/purge_data_tab() - set category = "Debug" - set name = "Reset Intel Data Tab" - - if(tgui_alert(src, "Clear the data tab?", "Confirm", list("Yes", "No"), 10 SECONDS) == "Yes") - for(var/datum/cm_objective/Objective in intel_system.oms.disks) - intel_system.oms.disks -= Objective - /client/proc/check_round_statistics() set category = "Debug" set name = "Round Statistics" diff --git a/code/modules/cm_marines/equipment/kit_boxes.dm b/code/modules/cm_marines/equipment/kit_boxes.dm index 43cf733adb..53ccb4aa13 100644 --- a/code/modules/cm_marines/equipment/kit_boxes.dm +++ b/code/modules/cm_marines/equipment/kit_boxes.dm @@ -454,7 +454,6 @@ new /obj/item/device/encryptionkey/intel(src) new /obj/item/pamphlet/skill/intel(src) new /obj/item/device/motiondetector/intel(src) - new /obj/item/storage/pouch/document/small(src) /obj/item/storage/box/kit/mini_grenadier name = "\improper Frontline M40 Grenadier Kit" diff --git a/code/modules/cm_tech/research_memories.dm b/code/modules/cm_tech/research_memories.dm index d46a52b8b4..a82575c350 100644 --- a/code/modules/cm_tech/research_memories.dm +++ b/code/modules/cm_tech/research_memories.dm @@ -42,6 +42,7 @@ return objective +/* // Get our progression for each objective. /datum/research_objective_memory_interface/proc/get_objectives() var/list/objectives = list() @@ -56,6 +57,7 @@ )) return objectives +*/ /datum/research_objective_memory_interface/ui_data(mob/user) . = list() @@ -65,7 +67,6 @@ if(chemical_data.clearance_x_access) clearance +="X" .["clearance"] = clearance - .["objectives"] = get_objectives(user) .["clue_categories"] = get_clues(user) /datum/research_objective_memory_interface/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) diff --git a/code/modules/cm_tech/tech_memories.dm b/code/modules/cm_tech/tech_memories.dm deleted file mode 100644 index 966b23067e..0000000000 --- a/code/modules/cm_tech/tech_memories.dm +++ /dev/null @@ -1,234 +0,0 @@ -/datum/objective_memory_interface - var/datum/techtree/holder - -/datum/objective_memory_interface/tgui_interact(mob/user, datum/tgui/ui) - ui = SStgui.try_update_ui(user, src, ui) - if(!ui) - ui = new(user, src, "TechMemories", "[holder.name] Objectives") - ui.open() - ui.set_autoupdate(TRUE) - -/datum/objective_memory_interface/proc/get_clues(mob/user) - var/datum/objective_memory_storage/memories = user.mind.objective_memory - var/list/clue_categories = list() - - - // Progress reports - var/list/clue_category = list() - clue_category["name"] = "Reports" - clue_category["icon"] = "scroll" - clue_category["clues"] = list() - for (var/datum/cm_objective/document/progress_report/report in memories.progress_reports) - if (report.state == OBJECTIVE_ACTIVE) - clue_category["clues"] += list(report.get_tgui_data()) - clue_categories += list(clue_category) - - - // Folders - clue_category = list() - clue_category["name"] = "Folders" - clue_category["icon"] = "folder" - clue_category["clues"] = list() - for (var/datum/cm_objective/document/folder/folder in memories.folders) - if (folder.state == OBJECTIVE_ACTIVE) - clue_category["clues"] += list(folder.get_tgui_data()) - clue_categories += list(clue_category) - - - // Technical manuals - clue_category = list() - clue_category["name"] = "Manuals" - clue_category["icon"] = "book" - clue_category["clues"] = list() - for (var/datum/cm_objective/document/technical_manual/manual in memories.technical_manuals) - if (manual.state == OBJECTIVE_ACTIVE) - clue_category["clues"] += list(manual.get_tgui_data()) - clue_categories += list(clue_category) - - - // Data (disks + terminals) - clue_category = list() - clue_category["name"] = "Data" - clue_category["icon"] = "save" - clue_category["clues"] = list() - for (var/datum/cm_objective/retrieve_data/disk/disk in memories.disks) - if (disk.state == OBJECTIVE_ACTIVE) - clue_category["clues"] += list(disk.get_tgui_data()) - for (var/datum/cm_objective/retrieve_data/terminal/terminal in memories.terminals) - if (terminal.state == OBJECTIVE_ACTIVE) - clue_category["clues"] += list(terminal.get_tgui_data()) - clue_categories += list(clue_category) - - - // Retrieve items (devices + documents) - clue_category = list() - clue_category["name"] = "Retrieve" - clue_category["icon"] = "box" - clue_category["compact"] = TRUE - clue_category["clues"] = list() - for (var/datum/cm_objective/retrieve_item/objective in memories.retrieve_items) - if (objective.state == OBJECTIVE_ACTIVE) - clue_category["clues"] += list(objective.get_tgui_data()) - clue_categories += list(clue_category) - - - // Other (safes) - clue_category = list() - clue_category["name"] = "Other" - clue_category["icon"] = "ellipsis-h" - clue_category["clues"] = list() - for (var/datum/cm_objective/objective in memories.other) - - // Safes - if(istype(objective, /datum/cm_objective/crack_safe)) - var/datum/cm_objective/crack_safe/safe = objective - if (safe.state == OBJECTIVE_ACTIVE) - clue_category["clues"] += list(safe.get_tgui_data()) - continue - - clue_categories += list(clue_category) - - return clue_categories - -/datum/objective_memory_interface/proc/get_objective(label, completed, instances, points_earned, custom_color = FALSE, custom_status = FALSE) - var/list/objective = list() - objective["label"] = label - objective["content_credits"] = (points_earned ? "([points_earned])" : "") - - if (!custom_status) - objective["content"] = "[completed] / [(instances ? instances : "∞")]" - else - objective["content"] = custom_status - - if (custom_color) - objective["content_color"] = custom_color - else - if (!completed) - objective["content_color"] = "red" - else if (completed == instances) - objective["content_color"] = "green" - else - objective["content_color"] = "orange" - - return objective - -// Get our progression for each objective. -/datum/objective_memory_interface/proc/get_objectives() - var/list/objectives = list() - - // Documents (papers + reports + folders + manuals) - objectives += list(get_objective( - "Documents", - SSobjectives.statistics["documents_completed"], - SSobjectives.statistics["documents_total_instances"], - SSobjectives.statistics["documents_total_points_earned"] - )) - - // Data (disks + terminals) - objectives += list(get_objective( - "Upload data", - SSobjectives.statistics["data_retrieval_completed"], - SSobjectives.statistics["data_retrieval_total_instances"], - SSobjectives.statistics["data_retrieval_total_points_earned"] - )) - - // Retrieve items (devices + documents + fultons) - objectives += list(get_objective( - "Retrieve items", - SSobjectives.statistics["item_retrieval_completed"], - SSobjectives.statistics["item_retrieval_total_instances"], - SSobjectives.statistics["item_retrieval_total_points_earned"] - )) - - // Miscellaneous (safes) - objectives += list(get_objective( - "Miscellaneous", - SSobjectives.statistics["miscellaneous_completed"], - SSobjectives.statistics["miscellaneous_total_instances"], - SSobjectives.statistics["miscellaneous_total_points_earned"] - )) - - // Chemicals - objectives += list(get_objective( - "Analyze chemicals", - SSobjectives.statistics["chemicals_completed"], - FALSE, - SSobjectives.statistics["chemicals_total_points_earned"], - "white" - )) - - // Rescue survivors - objectives += list(get_objective( - "Rescue survivors", - SSobjectives.statistics["survivors_rescued"], - FALSE, - SSobjectives.statistics["survivors_rescued_total_points_earned"], - "white" - )) - - // Corpses (human + xeno) - objectives += list(get_objective( - "Recover corpses", - SSobjectives.statistics["corpses_recovered"], - FALSE, - SSobjectives.statistics["corpses_total_points_earned"], - "white" - )) - - // Communications - objectives += list(get_objective( - "Colony communications", - FALSE, - FALSE, - (SSobjectives.comms.state == OBJECTIVE_COMPLETE ? SSobjectives.comms.value : FALSE), - (SSobjectives.comms.state == OBJECTIVE_COMPLETE ? "green" : "red"), - (SSobjectives.comms.state == OBJECTIVE_COMPLETE ? "Online" : "Offline"), - )) - - // Power (smes) - var/message - var/color - if (!SSobjectives.first_drop_complete) - message = "Unable to remotely interface with powernet" - color = "white" - else if (SSobjectives.power.state == OBJECTIVE_COMPLETE) - message = "Online" - color = "green" - else if (SSobjectives.power.last_power_output) - message = "[SSobjectives.power.last_power_output]W, [SSobjectives.power.minimum_power_required]W required" - color = "orange" - else - message = "Offline" - color = "red" - - objectives += list(get_objective( - "Colony power", - FALSE, - FALSE, - (SSobjectives.power.state == OBJECTIVE_COMPLETE ? SSobjectives.power.value : FALSE), - color, - message, - )) - - return objectives - -/datum/objective_memory_interface/ui_data(mob/user) - . = list() - - var/datum/techtree/tree = GET_TREE(TREE_MARINE) - - .["tech_points"] = holder.points - .["total_tech_points"] = tree.total_points - .["objectives"] = get_objectives(user) - .["clue_categories"] = get_clues(user) - -/datum/objective_memory_interface/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) - . = ..() - - switch(action) - if("enter_techtree") - var/datum/techtree/tree = GET_TREE(TREE_MARINE) - tree.enter_mob(usr, FALSE) - -/datum/objective_memory_interface/ui_status(mob/user, datum/ui_state/state) - return UI_INTERACTIVE diff --git a/code/modules/cm_tech/trees/marine.dm b/code/modules/cm_tech/trees/marine.dm index 8a805647e0..ec6df5d21a 100644 --- a/code/modules/cm_tech/trees/marine.dm +++ b/code/modules/cm_tech/trees/marine.dm @@ -147,28 +147,6 @@ GLOBAL_LIST_EMPTY(tech_controls_marine) var/datum/techtree/tree = GET_TREE(TREE_MARINE) tree.enter_mob(usr, FALSE) -/obj/structure/machinery/computer/view_objectives - name = "Intel Database Computer" - desc = "An USCM Intel Computer for consulting the current Intel database." - icon_state = "terminal1_old" - unslashable = TRUE - unacidable = TRUE - - -/obj/structure/machinery/computer/view_objectives/attack_hand(mob/living/user) - if(!user || !istype(user) || !user.mind || !user.mind.objective_memory) - return FALSE - if(!powered()) - to_chat(user, SPAN_WARNING("This computer has no power!")) - return FALSE - if(!intel_system) - to_chat(user, SPAN_WARNING("The computer doesn't seem to be connected to anything...")) - return FALSE - if(user.action_busy) - return FALSE - - user.mind.view_objective_memories(src) - /datum/techtree/marine/on_tier_change(datum/tier/oldtier) if(tier.tier < 2) return //No need to announce tier updates for tier 1 diff --git a/code/modules/gear_presets/pmc.dm b/code/modules/gear_presets/pmc.dm index 1e8baa9182..586e3c8afa 100644 --- a/code/modules/gear_presets/pmc.dm +++ b/code/modules/gear_presets/pmc.dm @@ -145,7 +145,6 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), list("First-Aid Pouch (Splints, Gauze, Ointment)", 0, /obj/item/storage/pouch/firstaid/full/alternate, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), list("First-Aid Pouch (Pill Packets)", 0, /obj/item/storage/pouch/firstaid/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), - list("Small Document Pouch", 0, /obj/item/storage/pouch/document/small, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Large Magazine Pouch", 0, /obj/item/storage/pouch/magazine/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Medium General Pouch", 0, /obj/item/storage/pouch/general/medium, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Large Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), @@ -274,7 +273,6 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), list("First-Aid Pouch (Splints, Gauze, Ointment)", 0, /obj/item/storage/pouch/firstaid/full/alternate, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), list("First-Aid Pouch (Pill Packets)", 0, /obj/item/storage/pouch/firstaid/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), - list("Small Document Pouch", 0, /obj/item/storage/pouch/document/small, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Large Magazine Pouch", 0, /obj/item/storage/pouch/magazine/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Medium General Pouch", 0, /obj/item/storage/pouch/general/medium, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Large Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), @@ -1034,7 +1032,6 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), list("First-Aid Pouch (Splints, Gauze, Ointment)", 0, /obj/item/storage/pouch/firstaid/full/alternate, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), list("First-Aid Pouch (Pill Packets)", 0, /obj/item/storage/pouch/firstaid/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), - list("Small Document Pouch", 0, /obj/item/storage/pouch/document/small, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Large Magazine Pouch", 0, /obj/item/storage/pouch/magazine/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Medium General Pouch", 0, /obj/item/storage/pouch/general/medium, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Large Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), @@ -1157,7 +1154,6 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), list("First-Aid Pouch (Splints, Gauze, Ointment)", 0, /obj/item/storage/pouch/firstaid/full/alternate, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), list("First-Aid Pouch (Pill Packets)", 0, /obj/item/storage/pouch/firstaid/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), - list("Small Document Pouch", 0, /obj/item/storage/pouch/document/small, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Large Magazine Pouch", 0, /obj/item/storage/pouch/magazine/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Medium General Pouch", 0, /obj/item/storage/pouch/general/medium, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Large Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), @@ -1733,7 +1729,6 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), list("First-Aid Pouch (Splints, Gauze, Ointment)", 0, /obj/item/storage/pouch/firstaid/full/alternate, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), list("First-Aid Pouch (Pill Packets)", 0, /obj/item/storage/pouch/firstaid/full/pills, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), list("Flare Pouch (Full)", 0, /obj/item/storage/pouch/flare/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_RECOMMENDED), - list("Small Document Pouch", 0, /obj/item/storage/pouch/document/small, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Large Magazine Pouch", 0, /obj/item/storage/pouch/magazine/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Medium General Pouch", 0, /obj/item/storage/pouch/general/medium, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Large Pistol Magazine Pouch", 0, /obj/item/storage/pouch/magazine/pistol/large, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), @@ -1958,7 +1953,6 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null), list("POUCHES (CHOOSE 2)", 0, null, null, null), list("Autoinjector Pouch", 0, /obj/item/storage/pouch/autoinjector, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Construction Pouch", 0, /obj/item/storage/pouch/construction, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), - list("Document Pouch", 0, /obj/item/storage/pouch/document, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("Electronics Pouch (Full)", 0, /obj/item/storage/pouch/electronics/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("First-Aid Pouch (Refillable Injectors)", 0, /obj/item/storage/pouch/firstaid/full, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), list("First-Aid Pouch (Splints, Gauze, Ointment)", 0, /obj/item/storage/pouch/firstaid/full/alternate, MARINE_CAN_BUY_POUCH, VENDOR_ITEM_REGULAR), diff --git a/code/modules/gear_presets/survivors/misc.dm b/code/modules/gear_presets/survivors/misc.dm index 3beba6a31b..b79df671af 100644 --- a/code/modules/gear_presets/survivors/misc.dm +++ b/code/modules/gear_presets/survivors/misc.dm @@ -114,7 +114,6 @@ everything bellow isn't used or out of place. add_ice_colony_survivor_equipment(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/wcoat(new_human), WEAR_JACKET) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/document(new_human), WEAR_R_STORE) add_random_cl_survivor_loot(new_human) add_survivor_weapon_civilian(new_human) ..() diff --git a/code/modules/gear_presets/survivors/survivors.dm b/code/modules/gear_presets/survivors/survivors.dm index 6d7036635b..9cb2c29f11 100644 --- a/code/modules/gear_presets/survivors/survivors.dm +++ b/code/modules/gear_presets/survivors/survivors.dm @@ -280,7 +280,6 @@ Everything bellow is a parent used as a base for one or multiple maps. new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine(new_human), WEAR_HEAD) add_survivor_weapon_civilian(new_human) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/document(new_human), WEAR_R_STORE) ..() @@ -316,7 +315,6 @@ Everything bellow is a parent used as a base for one or multiple maps. add_random_cl_survivor_loot(new_human) new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/centcom(new_human), WEAR_FEET) add_survivor_weapon_civilian(new_human) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/document(new_human), WEAR_R_STORE) ..() @@ -432,7 +430,6 @@ and is used as a base for all of the maps. new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/centcom(new_human), WEAR_FEET) new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/white(new_human), WEAR_HEAD) new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine/insulated(new_human), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/document(new_human), WEAR_R_STORE) add_survivor_weapon_civilian(new_human) add_random_cl_survivor_loot(new_human) diff --git a/code/modules/gear_presets/uscm.dm b/code/modules/gear_presets/uscm.dm index ec0195e928..b170684456 100644 --- a/code/modules/gear_presets/uscm.dm +++ b/code/modules/gear_presets/uscm.dm @@ -200,72 +200,6 @@ spawn_weapon(/obj/item/weapon/gun/smg/m39, /obj/item/ammo_magazine/smg/m39/extended, new_human, 0, 3) -//*****************************************************************************************************/ - -/datum/equipment_preset/uscm/intel - name = "USCM Intelligence Officer (IO) (Cryo)" - flags = EQUIPMENT_PRESET_START_OF_ROUND|EQUIPMENT_PRESET_MARINE - - idtype = /obj/item/card/id/silver - access = list( - ACCESS_MARINE_COMMAND, - ACCESS_MARINE_DROPSHIP, - ACCESS_MARINE_PREP, - ACCESS_MARINE_ALPHA, - ACCESS_MARINE_BRAVO, - ACCESS_MARINE_CHARLIE, - ACCESS_MARINE_DELTA, - ) - assignment = JOB_INTEL - rank = JOB_INTEL - paygrade = "MO1" - role_comm_title = "IO" - skills = /datum/skills/intel - - utility_under = list(/obj/item/clothing/under/marine/officer/intel) - - minimap_icon = "io" - -/datum/equipment_preset/uscm/intel/load_gear(mob/living/carbon/human/new_human) - var/back_item = /obj/item/storage/backpack/marine/satchel - if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1)) - back_item = /obj/item/storage/backpack/marine - - new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/intel(new_human), WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) - -/datum/equipment_preset/uscm/intel/load_status() - return //No cryo munchies - -//*****************************************************************************************************/ - -/datum/equipment_preset/uscm/intel/full - name = "USCM Intelligence Officer (IO)" - flags = EQUIPMENT_PRESET_EXTRA|EQUIPMENT_PRESET_MARINE - - utility_under = list(/obj/item/clothing/under/marine/officer/intel) - -/datum/equipment_preset/uscm/intel/full/load_gear(mob/living/carbon/human/new_human) - - var/obj/item/clothing/under/marine/officer/intel/U = new(new_human) - var/obj/item/clothing/accessory/storage/webbing/W = new() - U.attach_accessory(new_human, W) - new_human.equip_to_slot_or_del(U, WEAR_BODY) - new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/intel(new_human), WEAR_L_EAR) - new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife(new_human), WEAR_FEET) - new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp78(new_human), WEAR_WAIST) - new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine/rto/intel(new_human), WEAR_HEAD) - new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/rto/intel(src), WEAR_JACKET) - new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow(src), WEAR_HANDS) - new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel/intel(new_human), WEAR_BACK) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large(new_human), WEAR_R_STORE) - new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/document(new_human), WEAR_L_STORE) - new_human.equip_to_slot_or_del(new /obj/item/device/binoculars(new_human), WEAR_L_HAND) - - - new_human.hud_set_squad() - /*****************************************************************************************************/ /datum/equipment_preset/uscm/spec name = "USCM (Cryo) Squad Weapons Specialist" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index c9092ed479..3a78487e51 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1120,53 +1120,6 @@ show_browser(src, dat, "Crew Manifest", "manifest", "size=400x750") -/mob/living/carbon/human/verb/view_objective_memory() - set name = "View objectives" - set category = "IC" - - if(!mind) - to_chat(src, "The game appears to have misplaced your mind datum.") - return - - if(!skillcheck(usr, SKILL_INTEL, SKILL_INTEL_TRAINED) || faction != FACTION_MARINE && !(faction in FACTION_LIST_WY)) - to_chat(usr, SPAN_WARNING("You have no access to the [MAIN_SHIP_NAME] intel network.")) - return - - mind.view_objective_memories(src) - -/mob/living/carbon/human/verb/view_research_objective_memory() - set name = "View research objectives" - set category = "IC" - - if(!mind) - to_chat(src, "The game appears to have misplaced your mind datum.") - return - - if(!skillcheck(usr, SKILL_RESEARCH, SKILL_RESEARCH_TRAINED) || faction != FACTION_MARINE && !(faction in FACTION_LIST_WY)) - to_chat(usr, SPAN_WARNING("You have no access to the [MAIN_SHIP_NAME] research network.")) - return - - mind.view_research_objective_memories(src) - -/mob/living/carbon/human/verb/purge_objective_memory() - set name = "Reset view objectives" - set category = "OOC.Fix" - - if(!mind) - to_chat(src, "The game appears to have misplaced your mind datum.") - return - - if(tgui_alert(src, "Remove the faulty entry?", "Confirm", list("Yes", "No"), 10 SECONDS) == "Yes") - for(var/datum/cm_objective/retrieve_data/disk/Objective in src.mind.objective_memory.disks) - if(!Objective.disk.disk_color || !Objective.disk.display_color) - src.mind.objective_memory.disks -= Objective - else - return - - if(tgui_alert(src, "Did it work?", "Confirm", list("Yes", "No"), 10 SECONDS) == "No") - for(var/datum/cm_objective/Objective in src.mind.objective_memory.disks) - src.mind.objective_memory.disks -= Objective - /mob/living/carbon/human/proc/set_species(new_species, default_colour) if(!new_species) new_species = "Human" diff --git a/code/modules/mob/living/carbon/xenomorph/ai/xeno_ai.dm b/code/modules/mob/living/carbon/xenomorph/ai/xeno_ai.dm index eae02127ae..534e6ddd2d 100644 --- a/code/modules/mob/living/carbon/xenomorph/ai/xeno_ai.dm +++ b/code/modules/mob/living/carbon/xenomorph/ai/xeno_ai.dm @@ -142,7 +142,7 @@ GLOBAL_LIST_INIT(ai_target_limbs, list( if(!current_path || (next_path_generation < world.time && current_target_turf != T)) if(!XENO_CALCULATING_PATH(src) || current_target_turf != T) - SSxeno_pathfinding.calculate_path(src, T, max_range, src, CALLBACK(src, .proc/set_path), list(src, current_target)) + SSxeno_pathfinding.calculate_path(src, T, max_range, src, CALLBACK(src, PROC_REF(set_path)), list(src, current_target)) current_target_turf = T next_path_generation = world.time + path_update_period @@ -174,7 +174,7 @@ GLOBAL_LIST_INIT(ai_target_limbs, list( var/atom/A = a if(A.xeno_ai_obstacle(src, get_dir(loc, next_turf)) == INFINITY) return FALSE - INVOKE_ASYNC(A, /atom.proc/xeno_ai_act, src) + INVOKE_ASYNC(A, TYPE_PROC_REF(/atom, xeno_ai_act), src) var/successful_move = Move(next_turf, get_dir(src, next_turf)) if(successful_move) ai_timeout_time = world.time diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index fb4dbac3c1..e4ecf80655 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -247,8 +247,6 @@ return /datum/equipment_preset/uscm_ship/xo if(JOB_AUXILIARY_OFFICER) return /datum/equipment_preset/uscm_ship/auxiliary_officer - if(JOB_INTEL) - return /datum/equipment_preset/uscm/intel/full if(JOB_PILOT) return /datum/equipment_preset/uscm_ship/po/full if(JOB_DROPSHIP_CREW_CHIEF) diff --git a/code/modules/objectives/analyze_chems.dm b/code/modules/objectives/analyze_chems.dm deleted file mode 100644 index dab41cbe53..0000000000 --- a/code/modules/objectives/analyze_chems.dm +++ /dev/null @@ -1,4 +0,0 @@ -/datum/cm_objective/analyze_chems - name = "Analyze chems" - objective_flags = OBJECTIVE_DO_NOT_TREE - controller = TREE_MARINE diff --git a/code/modules/objectives/communications.dm b/code/modules/objectives/communications.dm deleted file mode 100644 index a8d95878af..0000000000 --- a/code/modules/objectives/communications.dm +++ /dev/null @@ -1,13 +0,0 @@ -// -------------------------------------------- -// *** Get communications up *** -// -------------------------------------------- -/datum/cm_objective/communications - name = "Restore Colony Communications" - objective_flags = OBJECTIVE_DO_NOT_TREE - value = OBJECTIVE_EXTREME_VALUE - controller = TREE_MARINE - -/datum/cm_objective/communications/complete() - ai_silent_announcement("SYSTEMS REPORT: Colony communications link online.", ":v") - state = OBJECTIVE_COMPLETE - award_points() diff --git a/code/modules/objectives/data_retrieval.dm b/code/modules/objectives/data_retrieval.dm deleted file mode 100644 index 955d2cc8e6..0000000000 --- a/code/modules/objectives/data_retrieval.dm +++ /dev/null @@ -1,328 +0,0 @@ -// -------------------------------------------- -// *** Slightly more complicated data retrieval *** -// -------------------------------------------- -/datum/cm_objective/retrieve_data - name = "Retrieve Important Data" - objective_flags = OBJECTIVE_DEAD_END - var/data_total = 100 - var/data_retrieved = 0 - var/data_transfer_rate = 10 - var/area/initial_area - controller = TREE_MARINE - var/decryption_password - number_of_clues_to_generate = 2 - -/datum/cm_objective/retrieve_data/New() - . = ..() - decryption_password = "[pick(alphabet_uppercase)][rand(100,999)][pick(alphabet_uppercase)][rand(10,99)]" - -/datum/cm_objective/retrieve_data/pre_round_start() - SSobjectives.statistics["data_retrieval_total_instances"]++ - -/datum/cm_objective/retrieve_data/Destroy() - initial_area = null - return ..() - -/datum/cm_objective/retrieve_data/process() - data_retrieved += data_transfer_rate - -/datum/cm_objective/retrieve_data/check_completion() - if(data_retrieved == data_total) - complete() - -/datum/cm_objective/retrieve_data/complete() - SSobjectives.statistics["data_retrieval_total_points_earned"] += value - SSobjectives.statistics["data_retrieval_completed"]++ - -// -------------------------------------------- -// *** Upload data from a terminal *** -// -------------------------------------------- -/datum/cm_objective/retrieve_data/terminal - var/obj/structure/machinery/computer/objective/terminal - var/uploading = FALSE - value = OBJECTIVE_EXTREME_VALUE - -/datum/cm_objective/retrieve_data/terminal/New(obj/structure/machinery/computer/objective/D) - . = ..() - terminal = D - initial_area = get_area(terminal) - -/datum/cm_objective/retrieve_data/terminal/Destroy() - terminal?.objective = null - terminal = null - return ..() - -/datum/cm_objective/retrieve_data/terminal/get_related_label() - return terminal.label - -/datum/cm_objective/retrieve_data/terminal/process() - if(!terminal.powered()) - terminal.visible_message(SPAN_WARNING("\The [terminal] powers down mid-operation as the area looses power.")) - playsound(terminal, 'sound/machines/terminal_shutdown.ogg', 25, 1) - SSobjectives.stop_processing_objective(src) - uploading = FALSE - return - if(!SSobjectives.comms.state == OBJECTIVE_COMPLETE) - terminal.visible_message(SPAN_WARNING("\The [terminal] stops mid-operation due to a network connection error.")) - playsound(terminal, 'sound/machines/terminal_shutdown.ogg', 25, 1) - SSobjectives.stop_processing_objective(src) - uploading = FALSE - return - - ..() - -/datum/cm_objective/retrieve_data/terminal/complete() - state = OBJECTIVE_COMPLETE - uploading = FALSE - terminal.visible_message(SPAN_NOTICE("[terminal] pings softly as it finishes the upload.")) - playsound(terminal, 'sound/machines/screen_output1.ogg', 25, 1) - award_points() - - ..() - -/datum/cm_objective/retrieve_data/terminal/get_tgui_data() - var/list/clue = list() - - clue["text"] = "Upload data from terminal" - clue["itemID"] = terminal.label - clue["key_text"] = ", password is " - clue["key"] = decryption_password - clue["location"] = initial_area.name - - return clue - -/datum/cm_objective/retrieve_data/terminal/get_clue() - return SPAN_DANGER("Upload data from data terminal [terminal.label] in [get_area(terminal)], the password is [decryption_password]") - -// -------------------------------------------- -// *** Retrieve a disk and upload it *** -// -------------------------------------------- -/datum/cm_objective/retrieve_data/disk - var/obj/item/disk/objective/disk - value = OBJECTIVE_HIGH_VALUE - -/datum/cm_objective/retrieve_data/disk/New(obj/item/disk/objective/O) - . = ..() - disk = O - initial_area = get_area(disk) - -/datum/cm_objective/retrieve_data/disk/Destroy() - disk?.objective = null - disk = null - return ..() - -/datum/cm_objective/retrieve_data/disk/get_related_label() - return disk.label - -/datum/cm_objective/retrieve_data/disk/process() - var/obj/structure/machinery/computer/disk_reader/reader = disk.loc - if(!reader.powered()) - reader.visible_message(SPAN_WARNING("\The [reader] powers down mid-operation as the area looses power.")) - playsound(reader, 'sound/machines/terminal_shutdown.ogg', 25, 1) - SSobjectives.stop_processing_objective(src) - disk.forceMove(reader.loc) - reader.disk = null - return - - ..() - -/datum/cm_objective/retrieve_data/disk/complete() - state = OBJECTIVE_COMPLETE - var/obj/structure/machinery/computer/disk_reader/reader = disk.loc - reader.visible_message("\The [reader] pings softly as the upload finishes and ejects the disk.") - playsound(reader, 'sound/machines/screen_output1.ogg', 25, 1) - disk.forceMove(reader.loc) - disk.name = "[disk.name] (complete)" - reader.disk = null - award_points() - - // Now enable the objective to store this disk in the lab. - disk.retrieve_objective.state = OBJECTIVE_ACTIVE - disk.retrieve_objective.activate() - - ..() - -/datum/cm_objective/retrieve_data/disk/get_tgui_data() - var/list/clue = list() - - if(disk.disk_color == null || disk.display_color == null) - clue = null - return clue - - clue["text"] = "disk" - clue["itemID"] = disk.label - clue["color"] = disk.disk_color - clue["color_name"] = disk.display_color - clue["key_text"] = ", decryption key is " - clue["key"] = decryption_password - clue["location"] = initial_area.name - - return clue - -/datum/cm_objective/retrieve_data/disk/get_clue() - return SPAN_DANGER("Retrieve [disk.disk_color] computer disk [disk.label] in [initial_area], decryption password is [decryption_password]") - -// -------------------------------------------- -// *** Mapping objects *** -// *** Retrieve a disk and upload it *** -// -------------------------------------------- -/obj/item/disk/objective - name = "computer disk" - var/label = "" - desc = "A boring looking computer disk. The name label is just a gibberish collection of letters and numbers." - unacidable = TRUE - indestructible = TRUE - is_objective = TRUE - var/datum/cm_objective/retrieve_data/disk/objective - var/datum/cm_objective/retrieve_item/document/retrieve_objective - var/display_color = "white" - var/disk_color = "White" - -/obj/item/disk/objective/Initialize(mapload, ...) - . = ..() - var/diskvar = rand(1,15) - icon_state = "disk_[diskvar]" - - switch(diskvar) - if (1,2) - disk_color = "Grey" - display_color = "#8f9494" - if (3 to 5) - disk_color = "White" - display_color = "#e8eded" - if (6,7) - disk_color = "Green" - display_color = "#64c242" - if (8 to 10) - disk_color = "Red" - display_color = "#ed5353" - if (11 to 13) - disk_color = "Blue" - display_color = "#5296e3" - if (14) - disk_color = "Cracked blue" - display_color = "#5296e3" - if (15) - disk_color = "Bloodied blue" - display_color = "#5296e3" - - label = "[pick(greek_letters)]-[rand(100,999)]" - name = "[disk_color] computer disk [label]" - objective = new /datum/cm_objective/retrieve_data/disk(src) - retrieve_objective = new /datum/cm_objective/retrieve_item/document(src) - pixel_y = rand(-8, 8) - pixel_x = rand(-9, 9) - w_class = SIZE_TINY - -/obj/item/disk/objective/Destroy() - qdel(objective) - objective = null - qdel(retrieve_objective) - retrieve_objective = null - return ..() - -// -------------------------------------------- -// *** Upload data from a terminal *** -// -------------------------------------------- -/obj/structure/machinery/computer/objective - name = "data terminal" - var/label = "" - desc = "A computer data terminal with an incomprehensible label." - var/uploading = 0 - icon_state = "medlaptop" - unslashable = TRUE - unacidable = TRUE - indestructible = TRUE - var/datum/cm_objective/retrieve_data/terminal/objective - -/obj/structure/machinery/computer/objective/Initialize() - . = ..() - label = "[pick(greek_letters)]-[rand(100,999)]" - name = "data terminal [label]" - objective = new /datum/cm_objective/retrieve_data/terminal(src) - -///Disabled explosions due to issues with the Objectives UI should it be destroyed. -/obj/structure/machinery/computer/objective/ex_act(severity) - return - -/obj/structure/machinery/computer/objective/Destroy() - objective?.terminal = null - qdel(objective) - objective = null - return ..() - -/obj/structure/machinery/computer/objective/attack_hand(mob/living/user) - if (!check_if_usable(user)) - return - - if(input(user,"Enter the password","Password","") != objective.decryption_password) - to_chat(user, SPAN_WARNING("The terminal rejects the password.")) - return - - // Check if the terminal became unusable since we started entering the password. - if (!check_if_usable(user)) - return - - uploading = 1 - objective.activate() - to_chat(user, SPAN_NOTICE("You start uploading the data.")) - user.count_niche_stat(STATISTICS_NICHE_UPLOAD) - -/obj/structure/machinery/computer/objective/proc/check_if_usable(mob/living/user) - if(!powered()) - to_chat(user, SPAN_WARNING("This terminal has no power!")) - return - if(!SSobjectives.comms.state == OBJECTIVE_COMPLETE) - to_chat(user, SPAN_WARNING("The terminal flashes a network connection error.")) - return - if(objective.state == OBJECTIVE_COMPLETE) - to_chat(user, SPAN_WARNING("There's a message on the screen that the data upload finished successfully.")) - return - if(uploading) - to_chat(user, SPAN_WARNING("Looks like the terminal is already uploading, better make sure nothing interupts it!")) - return - - return TRUE - -// -------------------------------------------- -// *** Upload data from an inserted disk *** -// -------------------------------------------- -/obj/structure/machinery/computer/disk_reader - name = "universal disk reader" - desc = "A console able to read any format of disk known to man." - var/obj/item/disk/objective/disk - icon_state = "medlaptop" - unslashable = TRUE - unacidable = TRUE - -/obj/structure/machinery/computer/disk_reader/attack_hand(mob/living/user) - if(isxeno(user)) - return - if(disk) - to_chat(user, SPAN_NOTICE("[disk] is currently being uploaded to ARES.")) - -/obj/structure/machinery/computer/disk_reader/attackby(obj/item/W, mob/living/user) - if(istype(W, /obj/item/disk/objective)) - if(istype(disk)) - to_chat(user, SPAN_WARNING("There is a disk in the drive being uploaded already!")) - return FALSE - var/obj/item/disk/objective/newdisk = W - if(newdisk.objective.state == OBJECTIVE_COMPLETE) - to_chat(user, SPAN_WARNING("The reader displays a message stating this disk has already been read and refuses to accept it.")) - return FALSE - if(input(user,"Enter the encryption key","Decrypting [newdisk]","") != newdisk.objective.decryption_password) - to_chat(user, SPAN_WARNING("The reader asks for the encryption key for this disk, not having the correct key you eject the disk.")) - return FALSE - if(istype(disk)) - to_chat(user, SPAN_WARNING("There is a disk in the drive being uploaded already!")) - return FALSE - - if(!(newdisk in user.contents)) - return FALSE - - newdisk.objective.activate() - - user.drop_inv_item_to_loc(W, src) - disk = W - to_chat(user, SPAN_NOTICE("You insert \the [W] and enter the decryption key.")) - user.count_niche_stat(STATISTICS_NICHE_DISK) diff --git a/code/modules/objectives/documents.dm b/code/modules/objectives/documents.dm deleted file mode 100644 index 14bef02245..0000000000 --- a/code/modules/objectives/documents.dm +++ /dev/null @@ -1,249 +0,0 @@ -// -------------------------------------------- -// *** Find a document and read it *** -// These are intended as the initial breadcrumbs that lead to more objectives such as data retrieval -// -------------------------------------------- -/datum/cm_objective/document - name = "Paper scrap objective" - var/obj/item/document_objective/document - var/area/initial_area - value = OBJECTIVE_LOW_VALUE - state = OBJECTIVE_ACTIVE - controller = TREE_MARINE - -/datum/cm_objective/document/New(obj/item/document_objective/D) - . = ..() - document = D - initial_area = get_area(document) - -/datum/cm_objective/document/pre_round_start() - SSobjectives.statistics["documents_total_instances"]++ - -/datum/cm_objective/document/Destroy() - document?.objective = null - document = null - initial_area = null - return ..() - -/datum/cm_objective/document/get_related_label() - return document.label - -/datum/cm_objective/document/complete(mob/living/carbon/human/user) - . = ..() - - SSobjectives.statistics["documents_total_points_earned"] += value - award_points() - - if (user && user.mind) - user.mind.store_objective(document.retrieve_objective) - - // Enable child objectives - for(var/datum/cm_objective/child_objective in enables_objectives) - if(child_objective.state & OBJECTIVE_INACTIVE) - child_objective.state = OBJECTIVE_ACTIVE - if(child_objective.objective_flags & OBJECTIVE_START_PROCESSING_ON_DISCOVERY) - child_objective.activate() - -/datum/cm_objective/document/get_clue() - return SPAN_DANGER("[document.name] in [initial_area]") - -// Paper scrap -/datum/cm_objective/document/get_tgui_data() - var/list/clue = list() - - clue["text"] = "Paper scrap" - clue["location"] = initial_area.name - - return clue - -// Progress report -/datum/cm_objective/document/progress_report - name = "Progress report objective" - value = OBJECTIVE_MEDIUM_VALUE - -/datum/cm_objective/document/progress_report/get_tgui_data() - var/list/clue = list() - - clue["text"] = "Progress report" - clue["location"] = initial_area.name - - return clue - -/datum/cm_objective/document/progress_report/get_clue() - return SPAN_DANGER("A progress report in [initial_area].") - -// Folder -/datum/cm_objective/document/folder - name = "Folder objective" - value = OBJECTIVE_MEDIUM_VALUE - var/color // Text name of the color - var/display_color // Color of the sprite - number_of_clues_to_generate = 2 - state = OBJECTIVE_INACTIVE - -/datum/cm_objective/document/folder/get_tgui_data() - var/list/clue = list() - - clue["text"] = "folder" - clue["itemID"] = document.label - clue["color"] = color - clue["color_name"] = display_color - clue["location"] = initial_area.name - - return clue - -/datum/cm_objective/document/folder/get_clue() - return SPAN_DANGER("A [color] folder [document.label] in [initial_area].") - -// Technical manual -/datum/cm_objective/document/technical_manual - name = "Technical manual objective" - value = OBJECTIVE_HIGH_VALUE - state = OBJECTIVE_INACTIVE - number_of_clues_to_generate = 2 - -/datum/cm_objective/document/technical_manual/get_tgui_data() - var/list/clue = list() - - clue["text"] = "Technical manual" - clue["itemID"] = document.label - clue["location"] = initial_area.name - - return clue - -// -------------------------------------------- -// *** Mapping objects *** -// -------------------------------------------- - -/obj/item/document_objective - var/datum/cm_objective/document/objective - var/datum/cm_objective/retrieve_item/document/retrieve_objective - var/reading_time = 10 - var/objective_type = /datum/cm_objective/document - unacidable = TRUE - indestructible = 1 - is_objective = TRUE - var/label // label on the document - var/renamed = FALSE //Once someone reads a document the item gets renamed based on the objective they are linked to) - -/obj/item/document_objective/Initialize(mapload, ...) - . = ..() - label = "[pick(alphabet_uppercase)][rand(100,999)]" - objective = new objective_type(src) - retrieve_objective = new /datum/cm_objective/retrieve_item/document(src) - LAZYADD(objective.enables_objectives, retrieve_objective) - pixel_y = rand(-8, 8) - pixel_x = rand(-9, 9) - -/obj/item/document_objective/Destroy() - qdel(objective) - objective = null - qdel(retrieve_objective) - retrieve_objective = null - return ..() - -/obj/item/document_objective/proc/display_read_message(mob/living/user) - if(user && user.mind) - user.mind.store_objective(objective) - var/related_labels = "" - for(var/datum/cm_objective/D in objective.enables_objectives) - var/clue = D.get_clue() - - // Some objectives don't have clues. - if (!clue) - continue - - to_chat(user, SPAN_NOTICE("You make out something about [clue].")) - if (related_labels != "") - related_labels+="," - related_labels+=D.get_related_label() - to_chat(user, SPAN_INFO("You finish reading \the [src].")) - - // Our first time reading this successfully, add the clue labels. - if(!(objective.state & OBJECTIVE_COMPLETE)) - src.name+= " ([related_labels])" - renamed = TRUE - -/obj/item/document_objective/attack_self(mob/living/carbon/human/user) - . = ..() - - to_chat(user, SPAN_NOTICE("You start reading \the [src].")) - - if(!do_after(user, reading_time * user.get_skill_duration_multiplier(SKILL_INTEL), INTERRUPT_INCAPACITATED|INTERRUPT_NEEDHAND, BUSY_ICON_GENERIC)) // Can move while reading intel - to_chat(user, SPAN_WARNING("You get distracted and lose your train of thought, you'll have to start over reading this.")) - return - - // Prerequisit objective not complete. - if(objective.state & OBJECTIVE_INACTIVE) - to_chat(user, SPAN_NOTICE("You don't notice anything useful. You probably need to find its instructions on a paper scrap.")) - return - - display_read_message(user) - - // Our first time reading this successfully. - if(!(objective.state & OBJECTIVE_COMPLETE)) - objective.complete(user) - SSobjectives.statistics["documents_completed"]++ - objective.state = OBJECTIVE_COMPLETE - -/obj/item/document_objective/paper - name = "Paper scrap" - desc = "A scrap of paper, you think some of the words might still be readable." - icon = 'icons/obj/items/paper.dmi' - icon_state = "paper_words" - w_class = SIZE_TINY - -/obj/item/document_objective/report - name = "Progress report" - desc = "A written report from someone for their supervisor about the status of some kind of project." - icon = 'icons/obj/items/paper.dmi' - icon_state = "paper_p_words" - w_class = SIZE_TINY - reading_time = 60 - objective_type = /datum/cm_objective/document/progress_report - -/obj/item/document_objective/folder - name = "Intel folder" - desc = "A folder with some documents inside." - icon = 'icons/obj/items/paper.dmi' - icon_state = "folder" - var/folder_color = "white" //display color - reading_time = 40 - objective_type = /datum/cm_objective/document/folder - w_class = SIZE_TINY - -/obj/item/document_objective/folder/Initialize(mapload, ...) - . = ..() - var/datum/cm_objective/document/folder/F = objective - var/col = pick("Red", "Black", "Blue", "Yellow", "White") - switch(col) - if ("Red") - folder_color = "#ed5353" - if ("Black") - folder_color = "#8f9494" //can't display black on black! - if ("Blue") - folder_color = "#5296e3" - if ("Yellow") - folder_color = "#e3cd52" - if ("White") - folder_color = "#e8eded" - icon_state = "folder_[lowertext(col)]" - F.color = col - F.display_color = folder_color - name = "[initial(name)] ([label])" - -/obj/item/document_objective/folder/get_examine_text(mob/living/user) - . = ..() - if(get_dist(user, src) < 2 && ishuman(user)) - . += SPAN_INFO("\The [src] is labelled [label].") - -/obj/item/document_objective/technical_manual - name = "Technical Manual" - desc = "A highly specified technical manual, may be of use to someone in the relevant field." - icon = 'icons/obj/items/books.dmi' - icon_state = "book" - reading_time = 200 - objective_type = /datum/cm_objective/document/technical_manual - -/obj/item/document_objective/technical_manual/Initialize(mapload, ...) - . = ..() - name = "[initial(name)] ([label])" diff --git a/code/modules/objectives/experimental_devices.dm b/code/modules/objectives/experimental_devices.dm deleted file mode 100644 index b86a6c5959..0000000000 --- a/code/modules/objectives/experimental_devices.dm +++ /dev/null @@ -1,95 +0,0 @@ -// -------------------------------------------- -// *** Retrieve an experimental device *** -// -------------------------------------------- - -/datum/cm_objective/retrieve_item/device - value = OBJECTIVE_EXTREME_VALUE - -/datum/cm_objective/retrieve_item/pre_round_start() - SSobjectives.statistics["item_retrieval_total_instances"]++ - -/datum/cm_objective/retrieve_item/device/complete() - ..() - SSobjectives.statistics["item_retrieval_completed"]++ - -/datum/cm_objective/retrieve_item/device - objective_flags = OBJECTIVE_DEAD_END | OBJECTIVE_START_PROCESSING_ON_DISCOVERY - number_of_clues_to_generate = 8 - -/datum/cm_objective/retrieve_item/device/get_clue() - return SPAN_DANGER("Retrieve [target_item] in [initial_area].") - -/datum/cm_objective/retrieve_item/device/get_related_label() - var/obj/item/device/D = target_item - return D.serial_number - -// -------------------------------------------- -// *** Experimental devices *** -// -------------------------------------------- -/obj/item/device/mass_spectrometer/adv/objective - var/datum/cm_objective/retrieve_item/device/objective - unacidable = TRUE - indestructible = TRUE - is_objective = TRUE - -/obj/item/device/mass_spectrometer/adv/objective/Initialize() - . = ..() - objective = new /datum/cm_objective/retrieve_item/device(src) - name += " #[serial_number]" - -/obj/item/device/mass_spectrometer/adv/objective/Destroy() - qdel(objective) - objective = null - // see [/datum/cm_objective/retrieve_item/proc/clean_up_ref] - return ..() - -/obj/item/device/reagent_scanner/adv/objective - var/datum/cm_objective/retrieve_item/device/objective - unacidable = TRUE - indestructible = TRUE - is_objective = TRUE - -/obj/item/device/reagent_scanner/adv/objective/Initialize(mapload, ...) - . = ..() - objective = new /datum/cm_objective/retrieve_item/device(src) - name += " #[serial_number]" - -/obj/item/device/reagent_scanner/adv/objective/Destroy() - qdel(objective) - objective = null - // see [/datum/cm_objective/retrieve_item/proc/clean_up_ref] - return ..() - -/obj/item/device/healthanalyzer/objective - var/datum/cm_objective/retrieve_item/device/objective - unacidable = TRUE - indestructible = TRUE - is_objective = TRUE - -/obj/item/device/healthanalyzer/objective/Initialize(mapload, ...) - . = ..() - objective = new /datum/cm_objective/retrieve_item/device(src) - name += " #[serial_number]" - -/obj/item/device/healthanalyzer/objective/Destroy() - qdel(objective) - objective = null - // see [/datum/cm_objective/retrieve_item/proc/clean_up_ref] - return ..() - -/obj/item/device/autopsy_scanner/objective - var/datum/cm_objective/retrieve_item/device/objective - unacidable = TRUE - indestructible = TRUE - is_objective = TRUE - -/obj/item/device/autopsy_scanner/objective/Initialize(mapload, ...) - . = ..() - objective = new /datum/cm_objective/retrieve_item/device(src) - name += " #[serial_number]" - -/obj/item/device/autopsy_scanner/objective/Destroy() - qdel(objective) - objective = null - // see [/datum/cm_objective/retrieve_item/proc/clean_up_ref] - return ..() diff --git a/code/modules/objectives/mob_objectives.dm b/code/modules/objectives/mob_objectives.dm deleted file mode 100644 index 244da2c6af..0000000000 --- a/code/modules/objectives/mob_objectives.dm +++ /dev/null @@ -1,238 +0,0 @@ -// -------------------------------------------- -// *** Recover the dead *** -// -------------------------------------------- -/datum/cm_objective/recover_corpses - name = "Recover corpses" - objective_flags = OBJECTIVE_DO_NOT_TREE - state = OBJECTIVE_ACTIVE - controller = TREE_MARINE - /// List of list of active corpses per tech-faction ownership - var/list/corpses = list() - var/list/scored_corpses = list() - -/datum/cm_objective/recover_corpses/New() - . = ..() - - RegisterSignal(SSdcs, list( - COMSIG_GLOB_MARINE_DEATH, - COMSIG_GLOB_XENO_DEATH - ), PROC_REF(handle_mob_deaths)) - -/datum/cm_objective/recover_corpses/Destroy() - corpses = null - . = ..() - -/datum/cm_objective/recover_corpses/proc/generate_corpses(numCorpsesToSpawn) - var/list/obj/effect/landmark/corpsespawner/objective_spawn_corpse = GLOB.corpse_spawns.Copy() - while(numCorpsesToSpawn--) - if(!length(objective_spawn_corpse)) - break - var/obj/effect/landmark/corpsespawner/spawner = pick(objective_spawn_corpse) - var/turf/spawnpoint = get_turf(spawner) - if(spawnpoint) - var/mob/living/carbon/human/M = new /mob/living/carbon/human(spawnpoint) - M.create_hud() //Need to generate hud before we can equip anything apparently... - arm_equipment(M, spawner.equip_path, TRUE, FALSE) - for(var/obj/structure/bed/nest/found_nest in spawnpoint) - for(var/turf/the_turf in list(get_step(found_nest, NORTH),get_step(found_nest, EAST),get_step(found_nest, WEST))) - if(the_turf.density) - found_nest.dir = get_dir(found_nest, the_turf) - found_nest.pixel_x = found_nest.buckling_x["[found_nest.dir]"] - found_nest.pixel_y = found_nest.buckling_y["[found_nest.dir]"] - M.dir = get_dir(the_turf,found_nest) - if(!found_nest.buckled_mob) - found_nest.do_buckle(M,M) - objective_spawn_corpse.Remove(spawner) - -/datum/cm_objective/recover_corpses/post_round_start() - activate() - -/datum/cm_objective/recover_corpses/proc/handle_mob_deaths(datum/source, mob/living/carbon/dead_mob, gibbed) - SIGNAL_HANDLER - - if(!iscarbon(dead_mob)) - return - - // This mob has already been scored before - if(LAZYISIN(scored_corpses, dead_mob)) - return - - LAZYDISTINCTADD(corpses, dead_mob) - RegisterSignal(dead_mob, COMSIG_PARENT_QDELETING, PROC_REF(handle_corpse_deletion)) - RegisterSignal(dead_mob, COMSIG_LIVING_REJUVENATED, PROC_REF(handle_mob_revival)) - - if (isxeno(dead_mob)) - RegisterSignal(dead_mob, COMSIG_XENO_REVIVED, PROC_REF(handle_mob_revival)) - else - RegisterSignal(dead_mob, COMSIG_HUMAN_REVIVED, PROC_REF(handle_mob_revival)) - - -/datum/cm_objective/recover_corpses/proc/handle_mob_revival(mob/living/carbon/revived_mob) - SIGNAL_HANDLER - - UnregisterSignal(revived_mob, list(COMSIG_LIVING_REJUVENATED, COMSIG_PARENT_QDELETING)) - - if (isxeno(revived_mob)) - UnregisterSignal(revived_mob, COMSIG_XENO_REVIVED) - else - UnregisterSignal(revived_mob, COMSIG_HUMAN_REVIVED) - - LAZYREMOVE(corpses, revived_mob) - - -/datum/cm_objective/recover_corpses/proc/handle_corpse_deletion(mob/living/carbon/deleted_mob) - SIGNAL_HANDLER - - UnregisterSignal(deleted_mob, list( - COMSIG_LIVING_REJUVENATED, - COMSIG_PARENT_QDELETING - )) - - if (isxeno(deleted_mob)) - UnregisterSignal(deleted_mob, COMSIG_XENO_REVIVED) - else - UnregisterSignal(deleted_mob, COMSIG_HUMAN_REVIVED) - - LAZYREMOVE(corpses, deleted_mob) - -/// Get score value for a given corpse -/datum/cm_objective/recover_corpses/proc/score_corpse(mob/target) - var/value = 0 - - if(isyautja(target)) - value = OBJECTIVE_ABSOLUTE_VALUE - - else if(isxeno(target)) - var/mob/living/carbon/xenomorph/X = target - switch(X.tier) - if(1) - if(ispredalien(X)) - value = OBJECTIVE_ABSOLUTE_VALUE - else value = OBJECTIVE_LOW_VALUE - if(2) - value = OBJECTIVE_MEDIUM_VALUE - if(3) - value = OBJECTIVE_EXTREME_VALUE - else - if(isqueen(X)) //Queen is Tier 0 for some reason... - value = OBJECTIVE_ABSOLUTE_VALUE - - else if(ishumansynth_strict(target)) - return OBJECTIVE_LOW_VALUE - - return value - -/datum/cm_objective/recover_corpses/process() - - for(var/mob/target as anything in corpses) - if(QDELETED(target)) - LAZYREMOVE(corpses, target) - continue - - // Get the corpse value - var/corpse_val = score_corpse(target) - - // Add points depending on who controls it - var/turf/T = get_turf(target) - var/area/A = get_area(T) - if(istype(A, /area/almayer/medical/morgue) || istype(A, /area/almayer/medical/containment)) - SSobjectives.statistics["corpses_recovered"]++ - SSobjectives.statistics["corpses_total_points_earned"] += corpse_val - award_points(corpse_val) - - corpses -= target - scored_corpses += target - - if (isxeno(target)) - UnregisterSignal(target, COMSIG_XENO_REVIVED) - else - UnregisterSignal(target, COMSIG_HUMAN_REVIVED) - -// -------------------------------------------- -// *** Get a mob to an area/level *** -// -------------------------------------------- -#define MOB_CAN_COMPLETE_AFTER_DEATH 1 -#define MOB_FAILS_ON_DEATH 2 - -/datum/cm_objective/move_mob - var/area/destination - var/mob/living/target - var/mob_can_die = MOB_CAN_COMPLETE_AFTER_DEATH - objective_flags = OBJECTIVE_DO_NOT_TREE - - -/datum/cm_objective/move_mob/New(mob/living/survivor) - if(istype(survivor, /mob/living)) - target = survivor - RegisterSignal(survivor, COMSIG_MOB_DEATH, PROC_REF(handle_death)) - RegisterSignal(survivor, COMSIG_PARENT_QDELETING, PROC_REF(handle_corpse_deletion)) - activate() - . = ..() - -/datum/cm_objective/move_mob/Destroy() - UnregisterSignal(target, list( - COMSIG_MOB_DEATH, - COMSIG_PARENT_QDELETING, - COMSIG_LIVING_REJUVENATED, - )) - if (isxeno(target)) - UnregisterSignal(target, COMSIG_XENO_REVIVED) - else - UnregisterSignal(target, COMSIG_HUMAN_REVIVED) - destination = null - target = null - return ..() - -/datum/cm_objective/move_mob/proc/handle_corpse_deletion(mob/living/carbon/deleted_mob) - SIGNAL_HANDLER - - qdel(src) - -/datum/cm_objective/move_mob/proc/handle_death(mob/living/carbon/dead_mob) - SIGNAL_HANDLER - - if(mob_can_die == MOB_FAILS_ON_DEATH) - deactivate() - if (isxeno(dead_mob)) - RegisterSignal(dead_mob, COMSIG_XENO_REVIVED, PROC_REF(handle_mob_revival)) - else - RegisterSignal(dead_mob, COMSIG_HUMAN_REVIVED, PROC_REF(handle_mob_revival)) - RegisterSignal(dead_mob, COMSIG_LIVING_REJUVENATED, PROC_REF(handle_mob_revival)) - -/datum/cm_objective/move_mob/proc/handle_mob_revival(mob/living/carbon/revived_mob) - SIGNAL_HANDLER - - UnregisterSignal(revived_mob, list(COMSIG_LIVING_REJUVENATED)) - - if (isxeno(revived_mob)) - UnregisterSignal(revived_mob, COMSIG_XENO_REVIVED) - else - UnregisterSignal(revived_mob, COMSIG_HUMAN_REVIVED) - activate() - -/datum/cm_objective/move_mob/check_completion() - . = ..() - if(istype(get_area(target),destination)) - if(target.stat != DEAD || mob_can_die & MOB_CAN_COMPLETE_AFTER_DEATH) - complete() - return TRUE - -/datum/cm_objective/move_mob/complete() - SSobjectives.statistics["survivors_rescued"]++ - SSobjectives.statistics["survivors_rescued_total_points_earned"] += value - award_points() - deactivate() - -/datum/cm_objective/move_mob/almayer - destination = /area/almayer - -/datum/cm_objective/move_mob/almayer/survivor - name = "Rescue the Survivor" - mob_can_die = MOB_FAILS_ON_DEATH - value = OBJECTIVE_EXTREME_VALUE - -/datum/cm_objective/move_mob/almayer/vip - name = "Rescue the VIP" - mob_can_die = MOB_FAILS_ON_DEATH - value = OBJECTIVE_ABSOLUTE_VALUE - objective_flags = OBJECTIVE_DO_NOT_TREE diff --git a/code/modules/objectives/objective.dm b/code/modules/objectives/objective.dm deleted file mode 100644 index 80fd98b690..0000000000 --- a/code/modules/objectives/objective.dm +++ /dev/null @@ -1,68 +0,0 @@ -// -------------------------------------------- -// *** The core objective interface to allow generic handling of objectives *** -// -------------------------------------------- -/datum/cm_objective - var/name = "An objective to complete" - var/state = OBJECTIVE_INACTIVE // Whether the objective is inactive, active or complete. - var/value = OBJECTIVE_NO_VALUE // The tech-point value of this objective. - var/list/required_objectives //List of objectives that are required to complete this objectives. - var/list/enables_objectives //List of objectives that require this objective to complete. - var/objective_flags = NO_FLAGS // functionality related flags. - var/number_of_clues_to_generate = 1 // miminum number of clues we generate for the objective(aka how many things will point to this objective). - var/controller = TREE_NONE // Controlling tree - this is the tree-faction we consider in control of the objective for purpose of awarding points. - -/datum/cm_objective/New() - SSobjectives.add_objective(src) - -/datum/cm_objective/Destroy() - SSobjectives.stop_processing_objective(src) - SSobjectives.remove_objective(src) - for(var/datum/cm_objective/R as anything in required_objectives) - LAZYREMOVE(R.enables_objectives, src) - for(var/datum/cm_objective/E as anything in enables_objectives) - LAZYREMOVE(E.required_objectives, src) - required_objectives = null - enables_objectives = null - return ..() - -// initial setup after the map has loaded -/datum/cm_objective/proc/Initialize() - -// called by game mode just before the round starts -/datum/cm_objective/proc/pre_round_start() - -// called by game mode on a short delay after round starts -/datum/cm_objective/proc/post_round_start() - -// Get the objective data to display on the TGUI interface. -/datum/cm_objective/proc/get_tgui_data() - -/// Add points to the techtree of whoever owns the objective. -/datum/cm_objective/proc/award_points(override_points = -1) - var/datum/techtree/controlling_tree = GET_TREE(controller) - if (!controlling_tree) - return - - if (override_points != -1) - controlling_tree.add_points(override_points) - else - controlling_tree.add_points(value) - -/datum/cm_objective/proc/get_clue() - -//For returning labels of related items (folders, discs, etc.) -/datum/cm_objective/proc/get_related_label() - -// Set this objective to complete. -/datum/cm_objective/proc/complete() - -// Check if the objective's aim are met. -/datum/cm_objective/proc/check_completion() - -// Make this objective call process() and check_completion() every SS tick. -/datum/cm_objective/proc/activate() - SSobjectives.start_processing_objective(src) - -// Stops the Objective from processing -/datum/cm_objective/proc/deactivate() - SSobjectives.stop_processing_objective(src) diff --git a/code/modules/objectives/objective_landmarks.dm b/code/modules/objectives/objective_landmarks.dm deleted file mode 100644 index f79e7d2a02..0000000000 --- a/code/modules/objectives/objective_landmarks.dm +++ /dev/null @@ -1,55 +0,0 @@ -/obj/effect/landmark/objective_landmark - name = "Objective Landmark" - icon_state = "intel" - var/document_holder_present = FALSE - -/obj/effect/landmark/objective_landmark/Initialize(mapload, ...) - . = ..() - if(!mapload) - return INITIALIZE_HINT_QDEL - return INITIALIZE_HINT_LATELOAD - -/obj/effect/landmark/objective_landmark/LateInitialize() - for(var/obj/structure/filingcabinet/fc in loc) - document_holder_present = TRUE - break - -/obj/effect/landmark/objective_landmark/close - name = "Objective Landmark Close" - icon_state = "intel_close" -/obj/effect/landmark/objective_landmark/close/Initialize(mapload, ...) - . = ..() - GLOB.objective_landmarks_close[src] = document_holder_present -/obj/effect/landmark/objective_landmark/close/Destroy(force = FALSE) - GLOB.objective_landmarks_close.Remove(src) - return ..() - -/obj/effect/landmark/objective_landmark/medium - name = "Objective Landmark Medium" - icon_state = "intel_medium" -/obj/effect/landmark/objective_landmark/medium/Initialize(mapload, ...) - . = ..() - GLOB.objective_landmarks_medium[src] = document_holder_present -/obj/effect/landmark/objective_landmark/medium/Destroy(force = FALSE) - GLOB.objective_landmarks_medium.Remove(src) - return ..() - -/obj/effect/landmark/objective_landmark/far - name = "Objective Landmark Far" - icon_state = "intel_far" -/obj/effect/landmark/objective_landmark/far/Initialize(mapload, ...) - . = ..() - GLOB.objective_landmarks_far[src] = document_holder_present -/obj/effect/landmark/objective_landmark/far/Destroy(force = FALSE) - GLOB.objective_landmarks_far.Remove(src) - return ..() - -/obj/effect/landmark/objective_landmark/science - name = "Objective Landmark Science" - icon_state = "intel_sci" -/obj/effect/landmark/objective_landmark/science/Initialize(mapload, ...) - . = ..() - GLOB.objective_landmarks_science[src] = document_holder_present -/obj/effect/landmark/objective_landmark/science/Destroy(force = FALSE) - GLOB.objective_landmarks_science.Remove(src) - return ..() diff --git a/code/modules/objectives/objective_memory_storage.dm b/code/modules/objectives/objective_memory_storage.dm deleted file mode 100644 index 08dfc8cdb2..0000000000 --- a/code/modules/objectives/objective_memory_storage.dm +++ /dev/null @@ -1,245 +0,0 @@ -//A datum for storing objective data in the mind in an organised fashion -/datum/objective_memory_storage - var/list/datum/cm_objective/folders = list() - var/list/datum/cm_objective/progress_reports = list() - var/list/datum/cm_objective/technical_manuals = list() - var/list/datum/cm_objective/terminals = list() - var/list/datum/cm_objective/disks = list() - var/list/datum/cm_objective/retrieve_items = list() - var/list/datum/cm_objective/other = list() - -//this is an objective that the player has just completed -//and we want to store the objective clues generated based on it -spookydonut -/datum/objective_memory_storage/proc/store_objective(datum/cm_objective/O) - for(var/datum/cm_objective/R in O.enables_objectives) - store_single_objective(R) - -/datum/objective_memory_storage/proc/store_single_objective(datum/cm_objective/O) - if(!istype(O)) - return - if (O.state == OBJECTIVE_COMPLETE) - return - if(istype(O, /datum/cm_objective/document/folder)) - addToListNoDupe(folders, O) - else if(istype(O, /datum/cm_objective/document/progress_report)) - addToListNoDupe(progress_reports, O) - else if(istype(O, /datum/cm_objective/document/technical_manual)) - addToListNoDupe(technical_manuals, O) - else if(istype(O, /datum/cm_objective/retrieve_data/terminal)) - addToListNoDupe(terminals, O) - else if(istype(O, /datum/cm_objective/retrieve_data/disk)) - addToListNoDupe(disks, O) - else if(istype(O, /datum/cm_objective/retrieve_item)) - addToListNoDupe(retrieve_items, O) - else - addToListNoDupe(other, O) - -//returns TRUE if we have the objective already -/datum/objective_memory_storage/proc/has_objective(datum/cm_objective/O) - if(O in folders) - return TRUE - if(O in progress_reports) - return TRUE - if(O in technical_manuals) - return TRUE - if(O in terminals) - return TRUE - if(O in disks) - return TRUE - if(O in retrieve_items) - return TRUE - if(O in other) - return TRUE - return FALSE - -/datum/objective_memory_storage/proc/clean_objectives() - for(var/datum/cm_objective/O in folders) - if(O.state == OBJECTIVE_COMPLETE) - folders -= O - for(var/datum/cm_objective/O in progress_reports) - if(O.state == OBJECTIVE_COMPLETE) - progress_reports -= O - for(var/datum/cm_objective/O in technical_manuals) - if(O.state == OBJECTIVE_COMPLETE) - technical_manuals -= O - for(var/datum/cm_objective/O in terminals) - if(O.state == OBJECTIVE_COMPLETE) - terminals -= O - for(var/datum/cm_objective/O in disks) - if(O.state == OBJECTIVE_COMPLETE) - disks -= O - for(var/datum/cm_objective/O in retrieve_items) - if(O.state == OBJECTIVE_COMPLETE) - retrieve_items -= O - for(var/datum/cm_objective/O in other) - if(O.state == OBJECTIVE_COMPLETE) - other -= O - -/datum/objective_memory_storage/proc/synchronize_objectives() - clean_objectives() - if(!intel_system || !intel_system.oms) - return - intel_system.oms.clean_objectives() - - for(var/datum/cm_objective/O in intel_system.oms.folders) - addToListNoDupe(folders, O) - for(var/datum/cm_objective/O in intel_system.oms.progress_reports) - addToListNoDupe(progress_reports, O) - for(var/datum/cm_objective/O in intel_system.oms.technical_manuals) - addToListNoDupe(technical_manuals, O) - for(var/datum/cm_objective/O in intel_system.oms.terminals) - addToListNoDupe(terminals, O) - for(var/datum/cm_objective/O in intel_system.oms.disks) - addToListNoDupe(disks, O) - for(var/datum/cm_objective/O in intel_system.oms.retrieve_items) - addToListNoDupe(retrieve_items, O) - for(var/datum/cm_objective/O in intel_system.oms.other) - addToListNoDupe(other, O) - -var/global/datum/intel_system/intel_system = new() - -/datum/intel_system - var/datum/objective_memory_storage/oms = new() - -/datum/intel_system/proc/store_objective(datum/cm_objective/O) - oms.store_objective(O) - -/datum/intel_system/proc/store_single_objective(datum/cm_objective/O) - oms.store_single_objective(O) - - -// -------------------------------------------- -// *** Upload clues with the computer *** -// -------------------------------------------- -/obj/structure/machinery/computer/intel - name = "Intel Computer" - var/label = "" - desc = "An USCM Intel Computer for data cataloguing and distribution." - icon_state = "terminal1_old" - unslashable = TRUE - unacidable = TRUE - var/typing_time = 20 - - -/obj/structure/machinery/computer/intel/attack_hand(mob/living/user) - if(!user || !istype(user) || !user.mind || !user.mind.objective_memory) - return FALSE - if(!powered()) - to_chat(user, SPAN_WARNING("This computer has no power!")) - return FALSE - if(!intel_system) - to_chat(user, SPAN_WARNING("The computer doesn't seem to be connected to anything...")) - return FALSE - if(user.action_busy) - return FALSE - - to_chat(user, SPAN_NOTICE("You start typing in intel into the computer...")) - - var/total_transferred = 0 - var/outcome = 0 //outcome of an individual upload - if something interrupts us, we cancel the rest - - user.mind.objective_memory.clean_objectives() // Don't upload completed objectives, there's no point. - - for(var/datum/cm_objective/O in user.mind.objective_memory.folders) - outcome = transfer_intel(user, O) - if(outcome < 0) - return FALSE - if(outcome > 0) - total_transferred++ - - for(var/datum/cm_objective/O in user.mind.objective_memory.progress_reports) - outcome = transfer_intel(user, O) - if(outcome < 0) - return FALSE - if(outcome > 0) - total_transferred++ - - for(var/datum/cm_objective/O in user.mind.objective_memory.technical_manuals) - outcome = transfer_intel(user, O) - if(outcome < 0) - return FALSE - if(outcome > 0) - total_transferred++ - - for(var/datum/cm_objective/O in user.mind.objective_memory.terminals) - outcome = transfer_intel(user, O) - if(outcome < 0) - return FALSE - if(outcome > 0) - total_transferred++ - - for(var/datum/cm_objective/O in user.mind.objective_memory.disks) - outcome = transfer_intel(user, O) - if(outcome < 0) - return FALSE - if(outcome > 0) - total_transferred++ - - for(var/datum/cm_objective/O in user.mind.objective_memory.retrieve_items) - outcome = transfer_intel(user, O) - if(outcome < 0) - return FALSE - if(outcome > 0) - total_transferred++ - - for(var/datum/cm_objective/O in user.mind.objective_memory.other) - outcome = transfer_intel(user, O) - if(outcome < 0) - return FALSE - if(outcome > 0) - total_transferred++ - - if(total_transferred > 0) - to_chat(user, SPAN_NOTICE("...and done! You uploaded [total_transferred] entries!")) - else - to_chat(user, SPAN_NOTICE("...and you have nothing new to add...")) - - return TRUE - -/obj/structure/machinery/computer/intel/proc/transfer_intel(mob/living/user, datum/cm_objective/O) - if(!intel_system || !intel_system.oms) - return 0 - if(intel_system.oms.has_objective(O)) - return 0 - if(user.action_busy) - return 0 - - var/clue = O.get_clue() - if(!clue) // Not all objectives have clues. - return 0 - - playsound(user, pick('sound/machines/computer_typing4.ogg', 'sound/machines/computer_typing5.ogg', 'sound/machines/computer_typing6.ogg'), 5, 1) - - if(!do_after(user, typing_time * user.get_skill_duration_multiplier(SKILL_INTEL), INTERRUPT_ALL, BUSY_ICON_GENERIC)) // Can't move from the spot - to_chat(user, SPAN_WARNING("You get distracted and lose your train of thought, you'll have to start the typing over...")) - return -1 - - to_chat(user, SPAN_NOTICE("...something about \"[clue]\"...")) - intel_system.store_single_objective(O) - return 1 - -// -------------------------------------------- -// *** View objectives with the computer *** -// -------------------------------------------- - -/obj/structure/machinery/computer/view_objectives - name = "Intel Database Computer" - desc = "An USCM Intel Database Computer used for consulting the current intel database." - icon_state = "terminal1_old" - unslashable = TRUE - unacidable = TRUE - - -/obj/structure/machinery/computer/view_objectives/attack_hand(mob/living/user) - if(!user || !istype(user) || !user.mind || !user.mind.objective_memory) - return FALSE - if(!powered()) - to_chat(user, SPAN_WARNING("This computer has no power!")) - return FALSE - if(!intel_system) - to_chat(user, SPAN_WARNING("The computer doesn't seem to be connected to anything...")) - return FALSE - if(user.action_busy) - return FALSE - - user.mind.view_objective_memories(src) diff --git a/code/modules/objectives/power_objectives.dm b/code/modules/objectives/power_objectives.dm deleted file mode 100644 index ecd192caa3..0000000000 --- a/code/modules/objectives/power_objectives.dm +++ /dev/null @@ -1,64 +0,0 @@ -#define MINIMUM_POWER_OUTPUT 300000 - -// Parent objective for power-related objectives, tracks APCs and such -// Tracks APCs/SMESes here so we don't have to check every APC/SMES every time we want to score an objective -/datum/cm_objective/power - name = "Something power-related" - objective_flags = OBJECTIVE_DO_NOT_TREE - value = OBJECTIVE_NO_VALUE - state = OBJECTIVE_ACTIVE - var/list/power_objects - var/uses_smes = FALSE - -/datum/cm_objective/power/Destroy() - power_objects = null - ..() - -/datum/cm_objective/power/pre_round_start() - if(uses_smes) - for(var/obj/structure/machinery/power/smes/colony_smes in machines) - if(!is_ground_level(colony_smes.loc.z)) - continue - LAZYADD(power_objects, colony_smes) - RegisterSignal(colony_smes, COMSIG_PARENT_QDELETING, PROC_REF(remove_machine)) - -/datum/cm_objective/power/proc/remove_machine(obj/structure/machinery/power/machine) - SIGNAL_HANDLER - LAZYREMOVE(power_objects, machine) - UnregisterSignal(machine, COMSIG_PARENT_QDELETING) - -// -------------------------------------------- -// *** Basic power up the colony objective *** -// -------------------------------------------- - -/datum/cm_objective/power/establish_power - var/minimum_power_required = MINIMUM_POWER_OUTPUT - var/last_power_output = 0 // for displaying progress - objective_flags = OBJECTIVE_DO_NOT_TREE - value = OBJECTIVE_POWER_VALUE - controller = TREE_MARINE - uses_smes = TRUE - -/datum/cm_objective/power/establish_power/post_round_start() - activate() - -/datum/cm_objective/power/establish_power/check_completion() - if(!SSobjectives.first_drop_complete) - return - var/total_power_output = 0 - for(var/obj/structure/machinery/power/smes/colony_smes in power_objects) - if(colony_smes.charge <= 0) - continue - if(!colony_smes.outputting) - continue - if(colony_smes.output_level <= 0) - continue - if(colony_smes.inputting == 2 && colony_smes.input_level >= colony_smes.output_level) - total_power_output += colony_smes.output_level - last_power_output = total_power_output - if(total_power_output >= minimum_power_required) - complete() - -/datum/cm_objective/power/establish_power/complete() - award_points() - state = OBJECTIVE_COMPLETE diff --git a/code/modules/objectives/retrieve_items.dm b/code/modules/objectives/retrieve_items.dm deleted file mode 100644 index 9f9f600eac..0000000000 --- a/code/modules/objectives/retrieve_items.dm +++ /dev/null @@ -1,117 +0,0 @@ -// -------------------------------------------- -// *** Basic retrieve item and get it to an area *** -// -------------------------------------------- -/datum/cm_objective/retrieve_item - name = "Retrieve an Item" - var/obj/target_item - var/list/area/target_areas - var/area/initial_area - controller = TREE_MARINE - objective_flags = OBJECTIVE_START_PROCESSING_ON_DISCOVERY - target_areas = list( - /area/almayer/command/securestorage, - /area/almayer/command/computerlab, - /area/almayer/medical/medical_science, - ) - -/datum/cm_objective/retrieve_item/New(T) - ..() - if(T) - target_item = T - initial_area = get_area(target_item) - RegisterSignal(target_item, COMSIG_PARENT_PREQDELETED, PROC_REF(clean_up_ref)) - -/datum/cm_objective/retrieve_item/Destroy() - target_item = null - target_areas = null - initial_area = null - return ..() - -/datum/cm_objective/retrieve_item/proc/clean_up_ref() - SIGNAL_HANDLER - - qdel(src) - -/datum/cm_objective/retrieve_item/get_clue() - return SPAN_DANGER("[target_item] in [initial_area]") - -/datum/cm_objective/retrieve_item/check_completion() - for(var/T in target_areas) - var/area/target_area = T //not sure why the cast is necessary (rather than casting in the loop), but it doesn't work without it... ~ThePiachu - if(istype(get_area(target_item.loc), target_area)) - complete() - return - -/datum/cm_objective/retrieve_item/complete() - state = OBJECTIVE_COMPLETE - award_points() - SSobjectives.statistics["item_retrieval_total_points_earned"] += value - -/datum/cm_objective/retrieve_item/get_tgui_data() - var/list/clue = list() - - clue["text"] = target_item.name - clue["location"] = initial_area.name - - return clue - -// -------------------------------------------- -// *** Fulton retrieval *** -// -------------------------------------------- - -/datum/cm_objective/retrieve_item/fulton - name = "Recover a lost fulton" - state = OBJECTIVE_ACTIVE - objective_flags = OBJECTIVE_DO_NOT_TREE - target_areas = list( - /area/almayer, - ) - -/datum/cm_objective/retrieve_item/fulton/proc/clean_up_fulton() - SIGNAL_HANDLER - state = OBJECTIVE_COMPLETE - GLOB.failed_fultons -= target_item - qdel(src) - return - -/datum/cm_objective/retrieve_item/fulton/New() - . = ..() - GLOB.failed_fultons += target_item - activate() - -/datum/cm_objective/retrieve_item/fulton/get_clue() - return SPAN_DANGER("Retrieve lost fulton of [target_item] in [initial_area]") - -/datum/cm_objective/retrieve_item/fulton/get_tgui_data() - RegisterSignal(target_item, COMSIG_PARENT_PREQDELETED, PROC_REF(clean_up_fulton), override = TRUE) - - var/list/clue = list() - - clue["text"] = "Retrieve lost fulton" - clue["itemID"] = "([target_item.name])" - clue["location"] = initial_area.name - - return clue - -/datum/cm_objective/retrieve_item/fulton/complete() - ..() - - -// ----------------------------------------------------------- -// *** Documents and data disks after they have been read *** -// ----------------------------------------------------------- - -/datum/cm_objective/retrieve_item/document - name = "Store document in ship lab" - value = OBJECTIVE_LOW_VALUE - objective_flags = OBJECTIVE_DO_NOT_TREE | OBJECTIVE_START_PROCESSING_ON_DISCOVERY - -/datum/cm_objective/retrieve_item/document/pre_round_start() - SSobjectives.statistics["item_retrieval_total_instances"]++ - -/datum/cm_objective/retrieve_item/document/complete() - ..() - SSobjectives.statistics["item_retrieval_completed"]++ - -/datum/cm_objective/retrieve_item/document/get_clue() - return diff --git a/code/modules/objectives/safe_cracking.dm b/code/modules/objectives/safe_cracking.dm deleted file mode 100644 index 149d940635..0000000000 --- a/code/modules/objectives/safe_cracking.dm +++ /dev/null @@ -1,56 +0,0 @@ -//An objective to open a safe -/datum/cm_objective/crack_safe - name = "Crack Safe" - var/obj/structure/safe/target - var/area/initial_area - value = OBJECTIVE_HIGH_VALUE - objective_flags = OBJECTIVE_DEAD_END - controller = TREE_MARINE - number_of_clues_to_generate = 2 - -/datum/cm_objective/crack_safe/New(obj/structure/safe/safe) - target = safe - initial_area = get_area(target) - - - RegisterSignal(safe, COMSIG_SAFE_OPENED, PROC_REF(on_safe_open)) - RegisterSignal(safe, COMSIG_PARENT_QDELETING, PROC_REF(on_safe_open)) - safe.objective = src - . = ..() - -/datum/cm_objective/crack_safe/pre_round_start() - SSobjectives.statistics["miscellaneous_total_instances"]++ - -/datum/cm_objective/crack_safe/Destroy() - target = null - initial_area = null - return ..() - -/datum/cm_objective/crack_safe/get_clue() - return SPAN_DANGER("Crack open a safe in [initial_area], the combination lock is [target.tumbler_1_open]|[target.tumbler_2_open]") - -/datum/cm_objective/crack_safe/get_related_label() - return "Safe" - -/datum/cm_objective/crack_safe/get_tgui_data() - var/list/clue = list() - - clue["text"] = "Crack open the safe" - clue["key_text"] = ", combination lock is " - clue["key"] = "[target.tumbler_1_open]|[target.tumbler_2_open]" - clue["location"] = initial_area.name - - return clue - -/datum/cm_objective/crack_safe/complete() - state = OBJECTIVE_COMPLETE - SSobjectives.statistics["miscellaneous_completed"]++ - SSobjectives.statistics["miscellaneous_total_points_earned"] += value - award_points() - -/datum/cm_objective/crack_safe/proc/on_safe_open(obj/structure/safe) - SIGNAL_HANDLER - - if (state != OBJECTIVE_COMPLETE) - UnregisterSignal(safe, COMSIG_SAFE_OPENED) - complete() diff --git a/code/modules/reagents/chemical_research/Chemical-Research.dm b/code/modules/reagents/chemical_research/Chemical-Research.dm index 0b1152154d..7d74c9480c 100644 --- a/code/modules/reagents/chemical_research/Chemical-Research.dm +++ b/code/modules/reagents/chemical_research/Chemical-Research.dm @@ -134,8 +134,8 @@ var/global/datum/chemical_data/chemical_data = new /datum/chemical_data chemical_identified_list[chem.id] = chem.objective_value chemical_not_completed_objective_list -= chem.id - SSobjectives.statistics["chemicals_completed"]++ - SSobjectives.statistics["chemicals_total_points_earned"] += chem.objective_value + //SSobjectives.statistics["chemicals_completed"]++ + //SSobjectives.statistics["chemicals_total_points_earned"] += chem.objective_value var/datum/techtree/tree = GET_TREE(TREE_MARINE) tree.add_points(chem.objective_value) diff --git a/code/modules/shuttle/computers/dropship_computer.dm b/code/modules/shuttle/computers/dropship_computer.dm index c7a79b9c44..bb9268c379 100644 --- a/code/modules/shuttle/computers/dropship_computer.dm +++ b/code/modules/shuttle/computers/dropship_computer.dm @@ -165,10 +165,6 @@ to_chat(xeno, SPAN_NOTICE("This terminal is inactive.")) return - if(!SSobjectives.first_drop_complete) - to_chat(xeno, SPAN_NOTICE("This terminal is inactive.")) - return - var/obj/docking_port/mobile/shuttle = SSshuttle.getShuttle(shuttleId) if(linked_lz) playsound(loc, 'sound/machines/terminal_success.ogg', KEYBOARD_SOUND_VOLUME, 1) diff --git a/code/modules/shuttle/shuttles/dropship.dm b/code/modules/shuttle/shuttles/dropship.dm index d81484b034..363fd8bf28 100644 --- a/code/modules/shuttle/shuttles/dropship.dm +++ b/code/modules/shuttle/shuttles/dropship.dm @@ -219,7 +219,7 @@ dropship.control_doors("unlock", "all", force=FALSE) var/obj/structure/machinery/computer/shuttle/dropship/flight/console = dropship.getControlConsole() console?.update_equipment() - if(is_ground_level(z) && !SSobjectives.first_drop_complete) + if(is_ground_level(z)) SSticker.mode.ds_first_landed(src) SSticker.mode.flags_round_type |= MODE_DS_LANDED diff --git a/colonialmarines.dme b/colonialmarines.dme index a1abc2ded9..897d4eacf9 100644 --- a/colonialmarines.dme +++ b/colonialmarines.dme @@ -893,7 +893,6 @@ s// DM Environment file for colonialmarines.dme. #include "code\game\machinery\vending\vendor_types\engineering.dm" #include "code\game\machinery\vending\vendor_types\food.dm" #include "code\game\machinery\vending\vendor_types\general.dm" -#include "code\game\machinery\vending\vendor_types\intelligence_officer.dm" #include "code\game\machinery\vending\vendor_types\medical.dm" #include "code\game\machinery\vending\vendor_types\requisitions.dm" #include "code\game\machinery\vending\vendor_types\supplies.dm" @@ -1566,7 +1565,6 @@ s// DM Environment file for colonialmarines.dme. #include "code\modules\cm_tech\hologram.dm" #include "code\modules\cm_tech\research_memories.dm" #include "code\modules\cm_tech\tech.dm" -#include "code\modules\cm_tech\tech_memories.dm" #include "code\modules\cm_tech\tech_node.dm" #include "code\modules\cm_tech\tech_tiers.dm" #include "code\modules\cm_tech\techtree.dm" @@ -2082,18 +2080,6 @@ s// DM Environment file for colonialmarines.dme. #include "code\modules\nightmare\nmtasks\mapscheduler.dm" #include "code\modules\nightmare\nmtasks\nmtask.dm" #include "code\modules\nightmare\nmtasks\scheduler.dm" -#include "code\modules\objectives\analyze_chems.dm" -#include "code\modules\objectives\communications.dm" -#include "code\modules\objectives\data_retrieval.dm" -#include "code\modules\objectives\documents.dm" -#include "code\modules\objectives\experimental_devices.dm" -#include "code\modules\objectives\mob_objectives.dm" -#include "code\modules\objectives\objective.dm" -#include "code\modules\objectives\objective_landmarks.dm" -#include "code\modules\objectives\objective_memory_storage.dm" -#include "code\modules\objectives\power_objectives.dm" -#include "code\modules\objectives\retrieve_items.dm" -#include "code\modules\objectives\safe_cracking.dm" #include "code\modules\organs\limb_objects.dm" #include "code\modules\organs\limbs.dm" #include "code\modules\organs\organ_internal.dm"