From 2be739d08207f40eee8622d560b15017fe170b41 Mon Sep 17 00:00:00 2001 From: AmoryBlaine Date: Mon, 5 Aug 2024 01:49:39 -0400 Subject: [PATCH] WIP --- .../vendor_types/antag/antag_clothing.dm | 41 +++++++ .../vending/vendor_types/antag/antag_gear.dm | 109 ++++++++++++++++++ code/modules/admin/admin_verbs.dm | 2 - code/modules/clothing/head/head.dm | 12 +- code/modules/clothing/head/helmet.dm | 2 +- code/modules/clothing/head/soft_caps.dm | 12 ++ .../survivors/lv_522/forcon_survivors.dm | 97 ++++++++++++++++ maps/map_files/generic/Admin_level.dmm | 13 --- 8 files changed, 266 insertions(+), 22 deletions(-) create mode 100644 code/game/machinery/vending/vendor_types/antag/antag_clothing.dm create mode 100644 code/game/machinery/vending/vendor_types/antag/antag_gear.dm create mode 100644 code/modules/clothing/head/soft_caps.dm create mode 100644 code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm diff --git a/code/game/machinery/vending/vendor_types/antag/antag_clothing.dm b/code/game/machinery/vending/vendor_types/antag/antag_clothing.dm new file mode 100644 index 0000000000..b04a9f5422 --- /dev/null +++ b/code/game/machinery/vending/vendor_types/antag/antag_clothing.dm @@ -0,0 +1,41 @@ +//------------ADAPTIVE ANTAG CLOSET--------------- +//Spawn one of these bad boys and you will have a proper automated closet for CLF/UPP players (for now, more can be always added later) + +/obj/structure/machinery/cm_vending/clothing/antag + name = "\improper Suspicious Automated Equipment Rack" + desc = "While similar in function to ColMarTech automated racks, this one is clearly not of USCM origin. Contains various equipment." + icon_state = "antag_clothing" + req_one_access = list(ACCESS_ILLEGAL_PIRATE, ACCESS_UPP_GENERAL, ACCESS_CLF_GENERAL) + req_access = null + + listed_products = list() + +/obj/structure/machinery/cm_vending/clothing/antag/Initialize() + . = ..() + vend_flags |= VEND_FACTION_THEMES + +/obj/structure/machinery/cm_vending/clothing/antag/get_listed_products(mob/user) + if(!user) + var/list/all_equipment = list() + var/list/presets = typesof(/datum/equipment_preset) + for(var/i in presets) + var/datum/equipment_preset/eq = new i + var/list/equipment = eq.get_antag_clothing_equipment() + if(LAZYLEN(equipment)) + all_equipment += equipment + qdel(eq) + return all_equipment + + if(!ishuman(user)) + return + var/mob/living/carbon/human/H = user + var/list/products_sets = list() + if(H.assigned_equipment_preset) + if(!(H.assigned_equipment_preset.type in listed_products)) + listed_products[H.assigned_equipment_preset.type] = H.assigned_equipment_preset.get_antag_clothing_equipment() + products_sets = listed_products[H.assigned_equipment_preset.type] + else + if(!(/datum/equipment_preset/clf in listed_products)) + listed_products[/datum/equipment_preset/clf] = GLOB.gear_path_presets_list[/datum/equipment_preset/clf].get_antag_clothing_equipment() + products_sets = listed_products[/datum/equipment_preset/clf] + return products_sets diff --git a/code/game/machinery/vending/vendor_types/antag/antag_gear.dm b/code/game/machinery/vending/vendor_types/antag/antag_gear.dm new file mode 100644 index 0000000000..3e847b4919 --- /dev/null +++ b/code/game/machinery/vending/vendor_types/antag/antag_gear.dm @@ -0,0 +1,109 @@ +//------------ADAPTIVE ANTAG GEAR VENDOR--------------- + +/obj/structure/machinery/cm_vending/gear/antag + name = "\improper Suspicious Automated Gear Rack" + desc = "While similar in function to ColMarTech automated racks, this one is clearly not of USCM origin. Contains various gear." + icon_state = "gear" + + req_one_access = list(ACCESS_ILLEGAL_PIRATE, ACCESS_UPP_GENERAL, ACCESS_CLF_GENERAL) + req_access = null + listed_products = list() + +/obj/structure/machinery/cm_vending/gear/antag/Initialize() + . = ..() + vend_flags |= VEND_FACTION_THEMES + +/obj/structure/machinery/cm_vending/gear/antag/get_listed_products(mob/user) + . = list() + if(!user) + var/list/all_equipment = list() + var/list/presets = typesof(/datum/equipment_preset) + for(var/i in presets) + var/datum/equipment_preset/eq = new i + var/list/equipment = eq.get_antag_gear_equipment() + if(LAZYLEN(equipment)) + all_equipment += equipment + qdel(eq) + return all_equipment + + var/mob/living/carbon/human/human = user + if(human.assigned_equipment_preset) + return human.assigned_equipment_preset.get_antag_gear_equipment() + else + var/datum/equipment_preset/default = new /datum/equipment_preset/clf + var/list/gear = default.get_antag_gear_equipment() + qdel(default) + return gear + +//--------------ESSENTIALS------------------------ + +/obj/effect/essentials_set/medic/upp + spawned_gear_list = list( + /obj/item/bodybag/cryobag, + /obj/item/device/defibrillator, + /obj/item/storage/firstaid/adv, + /obj/item/device/healthanalyzer, + /obj/item/roller, + /obj/item/tool/surgery/surgical_line, + /obj/item/tool/surgery/synthgraft, + ) + +/obj/effect/essentials_set/upp_heavy + spawned_gear_list = list( + /obj/item/weapon/gun/pkp, + /obj/item/ammo_magazine/pkp, + /obj/item/ammo_magazine/pkp, + ) + +/obj/effect/essentials_set/leader/upp + spawned_gear_list = list( + /obj/item/explosive/plastic, + /obj/item/device/binoculars/range, + /obj/item/map/current_map, + /obj/item/storage/box/zipcuffs, + ) + +/obj/effect/essentials_set/kit/svd + spawned_gear_list = list( + /obj/item/weapon/gun/rifle/sniper/svd, + /obj/item/ammo_magazine/sniper/svd, + /obj/item/ammo_magazine/sniper/svd, + /obj/item/ammo_magazine/sniper/svd, + ) + +/obj/effect/essentials_set/kit/custom_shotgun + spawned_gear_list = list( + /obj/item/weapon/gun/shotgun/merc, + /obj/item/ammo_magazine/shotgun/incendiary, + /obj/item/ammo_magazine/shotgun, + /obj/item/ammo_magazine/shotgun/flechette, + ) + +/obj/effect/essentials_set/kit/m60 + spawned_gear_list = list( + /obj/item/weapon/gun/m60, + /obj/item/ammo_magazine/m60, + /obj/item/ammo_magazine/m60, + ) + +/obj/effect/essentials_set/random/clf_bonus_item + spawned_gear_list = list( + /obj/item/storage/pill_bottle/tramadol/skillless, + /obj/item/storage/pill_bottle/tramadol/skillless, + /obj/item/storage/pill_bottle/tramadol/skillless, + /obj/item/tool/hatchet, + /obj/item/tool/hatchet, + /obj/item/weapon/twohanded/spear, + /obj/item/reagent_container/spray/pepper, + /obj/item/reagent_container/spray/pepper, + /obj/item/reagent_container/spray/pepper, + /obj/item/reagent_container/ld50_syringe/choral, + /obj/item/storage/bible, + /obj/item/clothing/mask/gas/pmc, + /obj/item/clothing/accessory/storage/holster, + /obj/item/clothing/accessory/storage/webbing, + /obj/item/storage/pill_bottle/happy, + /obj/item/storage/pill_bottle/happy, + /obj/item/storage/pill_bottle/happy, + /obj/item/explosive/grenade/smokebomb, + ) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 6e47391fc1..50cb19a7e9 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -330,7 +330,6 @@ var/list/roundstart_mod_verbs = list( if(CLIENT_HAS_RIGHTS(src, R_BUILDMODE)) add_verb(src, /client/proc/togglebuildmodeself) add_verb(src, /client/proc/toggle_game_master) - add_verb(src, /client/proc/open_resin_panel) add_verb(src, /client/proc/open_sound_panel) add_verb(src, /client/proc/toggle_join_xeno) add_verb(src, /client/proc/game_master_rename_platoon) @@ -366,7 +365,6 @@ var/list/roundstart_mod_verbs = list( admin_verbs_default, /client/proc/togglebuildmodeself, /client/proc/toggle_game_master, - /client/proc/open_resin_panel, /client/proc/open_sound_panel, /client/proc/toggle_join_xeno, /client/proc/game_master_rename_platoon, diff --git a/code/modules/clothing/head/head.dm b/code/modules/clothing/head/head.dm index 5ce61d3109..f338453f0f 100644 --- a/code/modules/clothing/head/head.dm +++ b/code/modules/clothing/head/head.dm @@ -384,7 +384,7 @@ desc = "A dark cap enscribed with the powerful letters of 'MARSHAL' representing justice, authority, and protection in the outer rim. The laws of the Earth stretch beyond the Sol." icon = 'icons/obj/items/clothing/cm_hats.dmi' item_icons = list( - WEAR_HEAD = 'icons/mob/humans/onmob/head_0.dmi' + WEAR_HEAD = 'icons/mob/humans/onmob/head-layer/head_0.dmi' ) icon_state = "cmbcap" flags_armor_protection = BODY_FLAG_HEAD @@ -404,7 +404,7 @@ desc = "A sturdy freelancer's cap. More protective than it seems." icon = 'icons/obj/items/clothing/cm_hats.dmi' item_icons = list( - WEAR_HEAD = 'icons/mob/humans/onmob/head_0.dmi' + WEAR_HEAD = 'icons/mob/humans/onmob/head-layer/head_0.dmi' ) icon_state = "freelancer_cap" siemens_coefficient = 2 @@ -431,7 +431,7 @@ desc = "A large hood in service with some militias, meant for obscurity on the frontier. Offers some head protection due to the study fibers utilized in production." icon = 'icons/obj/items/clothing/cm_hats.dmi' item_icons = list( - WEAR_HEAD = 'icons/mob/humans/onmob/head_0.dmi' + WEAR_HEAD = 'icons/mob/humans/onmob/head-layer/head_0.dmi' ) icon_state = "rebel_hood" siemens_coefficient = 2 @@ -480,7 +480,7 @@ icon = 'icons/obj/items/clothing/cm_hats.dmi' flags_inv_hide = HIDETOPHAIR item_icons = list( - WEAR_HEAD = 'icons/mob/humans/onmob/head_0.dmi' + WEAR_HEAD = 'icons/mob/humans/onmob/head-layer/head_0.dmi' ) /obj/item/clothing/head/durag/black @@ -499,7 +499,7 @@ icon_state = "drillhat" icon = 'icons/obj/items/clothing/cm_hats.dmi' item_icons = list( - WEAR_HEAD = 'icons/mob/humans/onmob/head_0.dmi' + WEAR_HEAD = 'icons/mob/humans/onmob/head-layer/head_0.dmi' ) #undef HAT_GARB_RELAY_ICON_STATE @@ -558,7 +558,7 @@ icon = 'icons/obj/items/clothing/cm_hats.dmi' flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE item_icons = list( - WEAR_HEAD = 'icons/mob/humans/onmob/head_0.dmi' + WEAR_HEAD = 'icons/mob/humans/onmob/head-layer/head_0.dmi' ) /obj/item/clothing/head/beret/royal_marine/team_leader diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index db21de2ef6..748cc44c3e 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -976,7 +976,7 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list( icon = 'icons/obj/items/clothing/cm_hats.dmi' icon_state = "upp_cap" item_icons = list( - WEAR_HEAD = 'icons/mob/humans/onmob/head_1.dmi' + WEAR_HEAD = 'icons/mob/humans/onmob/head-layer/head_0.dmi' ) siemens_coefficient = 2 flags_armor_protection = BODY_FLAG_HEAD diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm new file mode 100644 index 0000000000..6c6b7cb6e1 --- /dev/null +++ b/code/modules/clothing/head/soft_caps.dm @@ -0,0 +1,12 @@ + +/obj/item/clothing/head/soft/trucker + name = "trucker hat" + desc = "It's a blue trucker hat." + icon_state = "truckercap_bluesoft" + cap_color = "truckercap_blue" + +/obj/item/clothing/head/soft/trucker/red + name = "trucker hat" + desc = "It's a red trucker hat." + icon_state = "truckercap_redsoft" + cap_color = "truckercap_red" diff --git a/code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm b/code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm new file mode 100644 index 0000000000..14f58366e3 --- /dev/null +++ b/code/modules/gear_presets/survivors/lv_522/forcon_survivors.dm @@ -0,0 +1,97 @@ +///*****************************LV-522 Force Recon Survivors*******************************************************/ +//Nanu told me to put them here so they dont clutter up survivors.dm +/datum/equipment_preset/survivor/forecon + paygrade = "ME5" + idtype = /obj/item/card/id/dogtag + role_comm_title = "FORECON" + rank = JOB_SURVIVOR + faction_group = list(FACTION_USCM, FACTION_SURVIVOR) + flags = EQUIPMENT_PRESET_START_OF_ROUND + access = list( + ACCESS_CIVILIAN_PUBLIC, + ACCESS_CIVILIAN_ENGINEERING, + ACCESS_CIVILIAN_LOGISTICS, + ) + +/datum/equipment_preset/survivor/forecon/load_gear(mob/living/carbon/human/new_human) + var/obj/item/clothing/under/marine = new() + var/obj/item/clothing/accessory/storage/droppouch/pouch = new() + var/obj/item/clothing/accessory/ranks/marine/e5/pin = new() + var/obj/item/clothing/accessory/patch/patch_uscm = new() + var/obj/item/clothing/accessory/patch/forecon/patch_forecon = new() + uniform.attach_accessory(new_human,pouch) + uniform.attach_accessory(new_human,patch_uscm) + uniform.attach_accessory(new_human,pin) + uniform.attach_accessory(new_human,patch_forecon) + new_human.equip_to_slot_or_del(uniform, WEAR_BODY) + new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/forecon(new_human), WEAR_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/satchel(new_human), WEAR_BACK) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/large(new_human), WEAR_R_STORE) + new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full/alternate(new_human), WEAR_L_STORE) + new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/drinks/flask/marine(new_human), WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/facepaint/sniper(new_human), WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/storage/box/MRE(new_human), WEAR_IN_ACCESSORY) + new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar/tactical(new_human), WEAR_IN_JACKET) + new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/jungle/knife(new_human), WEAR_FEET) + new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/almayer/sof(new_human), WEAR_L_EAR) + GLOB.character_traits[/datum/character_trait/skills/spotter].apply_trait(new_human) + +/datum/equipment_preset/survivor/forecon/add_survivor_weapon_security(mob/living/carbon/human/new_human) + return + +/datum/equipment_preset/survivor/forecon/proc/add_forecon_weapon(mob/living/carbon/human/new_human) + var/random_gun = rand(1,3) + switch(random_gun) + if(1 , 2) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m41aMK1(new_human), WEAR_L_HAND) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m41aMK1(new_human), WEAR_IN_BACK) + if(3) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m4ra/pve(new_human), WEAR_L_HAND) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m4ra/pve(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle/m4ra/pve(new_human), WEAR_IN_BACK) + +/datum/equipment_preset/survivor/forecon/add_survivor_weapon_pistol(mob/living/carbon/human/new_human) + return + +/datum/equipment_preset/survivor/forecon/proc/add_forecon_weapon_pistol(mob/living/carbon/human/new_human) + var/random_pistol = rand(1,4) + switch(random_pistol) + if(1 , 2) + new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3(new_human), WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/m1911/socom(new_human), WEAR_IN_BELT) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/m1911(new_human), WEAR_IN_BELT) + new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/m1911(new_human), WEAR_IN_BELT) + if(3 , 4) + new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/general_belt(new_human), WEAR_WAIST) + new_human.equip_to_slot_or_del(new /obj/item/device/motiondetector(new_human),WEAR_IN_BELT) + +/datum/equipment_preset/survivor/forecon/add_random_survivor_equipment(mob/living/carbon/human/new_human) + return + +/datum/equipment_preset/survivor/forecon/proc/add_forecon_equipment(mob/living/carbon/human/new_human) + var/random_equipment = rand(1,3) + switch(random_equipment) + if(1) + new_human.equip_to_slot_or_del(new /obj/item/device/walkman(new_human), WEAR_IN_BACK) + new_human.equip_to_slot_or_del(new /obj/item/device/cassette_tape/indie(new_human), WEAR_IN_BACK) + if(2) + new_human.equip_to_slot_or_del(new /obj/item/toy/deck(new_human), WEAR_IN_ACCESSORY) + if(3) + new_human.equip_to_slot_or_del(new /obj/item/storage/fancy/cigarettes/lucky_strikes(new_human), WEAR_IN_ACCESSORY) + +/datum/equipment_preset/survivor/forecon/proc/spawn_random_headgear(mob/living/carbon/human/new_human) + var/i = rand(1,10) + switch(i) + if (1 , 2) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap(new_human), WEAR_HEAD) + if (3 , 4) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/boonie(new_human), WEAR_HEAD) + if (5 , 6) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/durag(new_human), WEAR_HEAD) + if (7 , 8) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/boonie/tan(new_human), WEAR_HEAD) + if (9) + new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/marine(new_human), WEAR_HEAD) + + diff --git a/maps/map_files/generic/Admin_level.dmm b/maps/map_files/generic/Admin_level.dmm index 6a045d9c03..08b3e31e90 100644 --- a/maps/map_files/generic/Admin_level.dmm +++ b/maps/map_files/generic/Admin_level.dmm @@ -60,7 +60,6 @@ /turf/open/floor/carpet, /area/adminlevel/ert_station) "bn" = ( -/obj/structure/closet/boxinggloves, /turf/open/floor/almayer{ icon_state = "silver" }, @@ -247,10 +246,6 @@ /area/centcom/control) "fu" = ( /obj/structure/surface/table/woodentable/fancy, -/obj/item/clothing/head/collectable/tophat{ - desc = "A top hat, placed here as a special thanks to someone often overlooked and forgotten. But who the community owes a thank you anyways."; - name = "Penguin" - }, /turf/open/floor/wood, /area/centcom/living) "fv" = ( @@ -2125,9 +2120,6 @@ /turf/open/floor/plating/almayer, /area/adminlevel/ert_station) "Sl" = ( -/obj/structure/machinery/cm_vending/clothing/antag{ - name = "\improper Response Team Automated Equipment Rack" - }, /turf/open/floor/almayer{ dir = 5; icon_state = "plating" @@ -2231,11 +2223,6 @@ }, /area/adminlevel/ert_station/shuttle_dispatch) "Ua" = ( -/obj/structure/machinery/cm_vending/gear/antag{ - hacked = 1; - name = "\improper Response Team Automated Gear Rack"; - use_snowflake_points = 1 - }, /turf/open/floor/almayer{ dir = 5; icon_state = "plating"