Skip to content

Commit

Permalink
Merge branch 'master' of https://github.com/PvE-CMSS13/PvE-CMSS13
Browse files Browse the repository at this point in the history
  • Loading branch information
Dumbgunner committed May 21, 2024
2 parents 2aa51ac + bf56402 commit 47fb185
Show file tree
Hide file tree
Showing 64 changed files with 1,826 additions and 260 deletions.
1 change: 1 addition & 0 deletions code/__DEFINES/shuttles.dm
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@

#define MOBILE_SHUTTLE_LIFEBOAT_PORT "lifeboat-port"
#define MOBILE_SHUTTLE_LIFEBOAT_STARBOARD "lifeboat-starboard"
#define MOBILE_SHUTTLE_LIFEBOAT_COMPACT "lifeboat-compact"
#define MOBILE_SHUTTLE_VEHICLE_ELEVATOR "vehicle_elevator"

#define DROPSHIP_MIDWAY "dropship_midway"
Expand Down
9 changes: 7 additions & 2 deletions code/__DEFINES/tgs.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// tgstation-server DMAPI

#define TGS_DMAPI_VERSION "7.1.1"
#define TGS_DMAPI_VERSION "7.1.2"

// All functions and datums outside this document are subject to change with any version and should not be relied on.

Expand Down Expand Up @@ -312,6 +312,7 @@
var/datum/tgs_chat_embed/structure/embed

/datum/tgs_message_content/New(text)
..()
if(!istext(text))
TGS_ERROR_LOG("[/datum/tgs_message_content] created with no text!")
text = null
Expand Down Expand Up @@ -354,6 +355,7 @@
var/proxy_url

/datum/tgs_chat_embed/media/New(url)
..()
if(!istext(url))
CRASH("[/datum/tgs_chat_embed/media] created with no url!")

Expand All @@ -367,6 +369,7 @@
var/proxy_icon_url

/datum/tgs_chat_embed/footer/New(text)
..()
if(!istext(text))
CRASH("[/datum/tgs_chat_embed/footer] created with no text!")

Expand All @@ -383,6 +386,7 @@
var/proxy_icon_url

/datum/tgs_chat_embed/provider/author/New(name)
..()
if(!istext(name))
CRASH("[/datum/tgs_chat_embed/provider/author] created with no name!")

Expand All @@ -395,6 +399,7 @@
var/is_inline

/datum/tgs_chat_embed/field/New(name, value)
..()
if(!istext(name))
CRASH("[/datum/tgs_chat_embed/field] created with no name!")

Expand Down Expand Up @@ -510,7 +515,7 @@
/*
The MIT License
Copyright (c) 2017-2023 Jordan Brown
Copyright (c) 2017-2024 Jordan Brown
Permission is hereby granted, free of charge,
to any person obtaining a copy of this software and
Expand Down
2 changes: 1 addition & 1 deletion code/datums/medal_awards.dm
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ GLOBAL_LIST_EMPTY(jelly_awards)
to_chat(user, SPAN_WARNING("You must have an authenticated ID Card to award medals."))
return

if(!((card.paygrade in GLOB.co_paygrades) || (card.paygrade in GLOB.highcom_paygrades)))
if(!((card.paygrade in GLOB.co_paygrades) || (card.paygrade in GLOB.platco_paygrades) || (card.paygrade in GLOB.highcom_paygrades)))
to_chat(user, SPAN_WARNING("Only a Senior Officer can award medals!"))
return

Expand Down
3 changes: 3 additions & 0 deletions code/datums/paygrades/paygrade.dm
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,9 @@ GLOBAL_LIST_INIT(co_paygrades, list(
"MO6C",
"MO5",
"MO4",
))

GLOBAL_LIST_INIT(platco_paygrades, list(
"MO3",
"MO2",
"MO1",
Expand Down
4 changes: 4 additions & 0 deletions code/datums/vehicles.dm
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@
name = "Movie APC"
interior_id = "apc_movie"

/datum/map_template/interior/arc
name = "ARC"
interior_id = "arc"

/datum/map_template/interior/fancy_locker
name = "Fancy Locker"
interior_id = "fancylocker"
Expand Down
3 changes: 3 additions & 0 deletions code/game/gamemodes/colonialmarines/ai/colonialmarines_ai.dm
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,9 @@
/datum/game_mode/colonialmarines/ai/get_roles_list()
return GLOB.platoon_to_role_list[MAIN_SHIP_PLATOON]

/datum/game_mode/colonialmarines/ai/check_queen_status()
return

GLOBAL_LIST_INIT(platoon_to_jobs, list(/datum/squad/marine/alpha = list(/datum/job/command/bridge/ai = JOB_SO,\
/datum/job/marine/leader/ai = JOB_SQUAD_LEADER,\
/datum/job/marine/medic/ai = JOB_SQUAD_MEDIC,\
Expand Down
2 changes: 2 additions & 0 deletions code/game/machinery/ARES/ARES_procs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,8 @@ GLOBAL_LIST_INIT(maintenance_categories, list(
return ARES_ACCESS_HIGH
if(card.paygrade in GLOB.co_paygrades)
return ARES_ACCESS_CO
if(card.paygrade in GLOB.platco_paygrades)
return ARES_ACCESS_COMMAND
if(ACCESS_MARINE_SENIOR in card.access)
return ARES_ACCESS_SENIOR
if(ACCESS_WY_GENERAL in card.access)
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/doors/brig_system.dm
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@
var/obj/item/card/id/id_card = human.get_idcard()

if (id_card)
if ((id_card.paygrade in GLOB.co_paygrades) || (id_card.paygrade in GLOB.highcom_paygrades) || (id_card.paygrade == "PvI"))
if ((id_card.paygrade in GLOB.co_paygrades) || ((id_card.paygrade in GLOB.platco_paygrades)) || (id_card.paygrade in GLOB.highcom_paygrades) || (id_card.paygrade == "PvI"))
return TRUE

return FALSE
Expand Down
24 changes: 24 additions & 0 deletions code/game/objects/items/props/helmetgarb.dm
Original file line number Diff line number Diff line change
Expand Up @@ -496,6 +496,30 @@
desc = "The USCM had its funding pulled for these when it became apparent that not every deployed enlisted was wearing a helmet 24/7; much to the bafflement of UA High Command."
icon_state = "helmet_gasmask"

/obj/item/prop/helmetgarb/helmet_gasmask/on_enter_storage(obj/item/storage/internal/helmet_internal_inventory)
..()
if(!istype(helmet_internal_inventory))
return
var/obj/item/clothing/head/helmet/helmet_item = helmet_internal_inventory.master_object

if(!istype(helmet_item))
return

helmet_item.flags_inventory |= BLOCKGASEFFECT
helmet_item.flags_inv_hide |= HIDEFACE

/obj/item/prop/helmetgarb/helmet_gasmask/on_exit_storage(obj/item/storage/internal/helmet_internal_inventory)
..()
if(!istype(helmet_internal_inventory))
return
var/obj/item/clothing/head/helmet/helmet_item = helmet_internal_inventory.master_object

if(!istype(helmet_item))
return

helmet_item.flags_inventory &= ~(BLOCKGASEFFECT)
helmet_item.flags_inv_hide &= ~(HIDEFACE)

/obj/item/prop/helmetgarb/trimmed_wire
name = "trimmed barbed wire"
desc = "It is a length of barbed wire that's had most of the sharp points filed down so that it is safe to handle."
Expand Down
52 changes: 52 additions & 0 deletions code/game/objects/items/storage/belt.dm
Original file line number Diff line number Diff line change
Expand Up @@ -611,6 +611,38 @@
/obj/item/storage/belt/marine/smartgunner/standard
has_gamemode_skin = FALSE

/obj/item/storage/belt/marine/smartgunner/upp
name = "\improper Type 90 pattern machinegunner belt"
desc = "Recently adopted by UPP military, this belt allows machinegunners to carry more ammo boxes into battle. It also found use with SOF breachers using Type 23 shotguns."
icon_state = "upp_machinegun"
item_state = "upp_machinegun"
storage_slots = 7
bypass_w_limit = list(
/obj/item/ammo_magazine/pkp,
)
can_hold = list(
/obj/item/attachable/bayonet,
/obj/item/device/flashlight/flare,
/obj/item/ammo_magazine/pkp,
/obj/item/ammo_magazine/rifle,
/obj/item/ammo_magazine/smg,
/obj/item/ammo_magazine/pistol,
/obj/item/ammo_magazine/revolver,
/obj/item/ammo_magazine/sniper,
/obj/item/ammo_magazine/handful,
/obj/item/explosive/grenade,
/obj/item/explosive/mine,
/obj/item/reagent_container/food/snacks,
)

has_gamemode_skin = FALSE
item_state_slots = list(
WEAR_L_HAND = "upp_belt",
WEAR_R_HAND = "upp_belt")

/obj/item/storage/belt/marine/smartgunner/upp/fill_preset_inventory()
return

/obj/item/storage/belt/marine/quackers
name = "Mr. Quackers"
desc = "What are we going to do today, Mr. Quackers?"
Expand Down Expand Up @@ -1721,6 +1753,26 @@
new /obj/item/ammo_magazine/smartgun(src)
new /obj/item/ammo_magazine/smartgun(src)

/obj/item/storage/belt/gun/smartgunner/upp
name = "\improper Type 92 pattern machinegunner sidearm rig"
desc = "Type 92 is an experimental ammo-carrying rig issued to UPP machinegunners which combines a sidearm holster with box-shaped pouches for limited storage."
icon_state = "upp_machinegun_pistol"
storage_slots = 7
can_hold = list(
/obj/item/weapon/gun/pistol/t73,
/obj/item/ammo_magazine/pistol/t73,
/obj/item/ammo_magazine/pistol/t73_impact,
/obj/item/weapon/gun/pistol/np92,
/obj/item/ammo_magazine/pistol/np92,
/obj/item/weapon/gun/revolver/upp,
/obj/item/ammo_magazine/revolver/upp,
/obj/item/ammo_magazine/pkp,
)
has_gamemode_skin = FALSE
item_state_slots = list(
WEAR_L_HAND = "upp_belt",
WEAR_R_HAND = "upp_belt")

/obj/item/storage/belt/gun/mortarbelt
name="\improper M276 pattern mortar operator belt"
desc="An M276 load-bearing rig configured to carry ammunition for the M402 mortar, along with a sidearm."
Expand Down
2 changes: 1 addition & 1 deletion code/global.dm
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ var/list/AAlarmWireColorToIndex

//Don't set this very much higher then 1024 unless you like inviting people in to dos your server with message spam
#define MAX_MESSAGE_LEN 1024
#define MAX_EMOTE_LEN 256
#define MAX_EMOTE_LEN 1024
#define MAX_PAPER_MESSAGE_LEN 3072
#define MAX_BOOK_MESSAGE_LEN 9216
#define MAX_NAME_LEN 28
Expand Down
6 changes: 6 additions & 0 deletions code/modules/clothing/gloves/marine_gloves.dm
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,12 @@
flags_item = MOB_LOCK_ON_EQUIP|NO_CRYO_STORE
adopts_squad_color = FALSE

/obj/item/clothing/gloves/marine/pve_mopp
name = "\improper M2 MOPP gloves"
desc = "M2 MOPP gloves to protect your insides from nerve gas and deadly chemicals. You'd probably feel safer if there was duct tape wrapped around these."
icon_state = "cbrn"
item_state = "cbrn"

/obj/item/clothing/gloves/marine/veteran
name = "armored gloves"
desc = "Non-standard para-aramid fiber gloves. They're insulated and heavily armored."
Expand Down
12 changes: 11 additions & 1 deletion code/modules/clothing/masks/gasmask.dm
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,17 @@
icon_state = "kutjevo_respirator"
item_state = "kutjevo_respirator"

/obj/item/clothing/mask/gas/pve_mopp
name = "\improper M2 MOPP mask"
desc = "The M2 MOPP mask includes a full covering cowl that securely attaches to the MOPP suit. It is capable of protecting of a variety of radiological and biological threats."
icon = 'icons/obj/items/clothing/cm_hats.dmi'
icon_state = "cbrn_hood"
item_state = "cbrn_hood"
flags_inv_hide = HIDEEARS|HIDEFACE|HIDEALLHAIR
item_icons = list(
WEAR_FACE = 'icons/mob/humans/onmob/head_1.dmi'
)

/obj/item/clothing/mask/gas/pmc
name = "\improper M8 pattern armored balaclava"
desc = "An armored balaclava designed to conceal both the identity of the operator and act as an air-filter."
Expand Down Expand Up @@ -72,7 +83,6 @@




//Plague Dr suit can be found in clothing/suits/bio.dm
/obj/item/clothing/mask/gas/plaguedoctor
name = "plague doctor mask"
Expand Down
8 changes: 8 additions & 0 deletions code/modules/clothing/shoes/marine_shoes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,14 @@
armor_internaldamage = CLOTHING_ARMOR_MEDIUMLOW
knife_type = /obj/item/attachable/bayonet

/obj/item/clothing/shoes/marine/pve_mopp
name = "\improper M2 MOPP boots"
desc = "M2 MOPP boots excel at keeping viscera or other biological contaminants away from your feet."
icon_state = "cbrn"
item_state = "cbrn"
armor_rad = CLOTHING_ARMOR_GIGAHIGHPLUS
armor_bio = CLOTHING_ARMOR_GIGAHIGHPLUS

/obj/item/clothing/shoes/dress
name = "dress shoes"
desc = "Pre-polished fancy dress shoes. You can see your reflection in them."
Expand Down
41 changes: 38 additions & 3 deletions code/modules/clothing/suits/marine_armor.dm
Original file line number Diff line number Diff line change
Expand Up @@ -404,9 +404,6 @@
. = ..()
if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD] && name == "M56 combat harness")
name = "M56 snow combat harness"
else
name = "M56 combat harness"
//select_gamemode_skin(type)

/obj/item/clothing/suit/storage/marine/smartgunner/mob_can_equip(mob/equipping_mob, slot, disable_warning = FALSE)
. = ..()
Expand Down Expand Up @@ -445,6 +442,44 @@
/obj/item/clothing/suit/storage/marine/smartgunner/standard
flags_atom = NO_SNOW_TYPE

/obj/item/clothing/suit/storage/marine/smartgunner/upp
name = "\improper UH7-I heavy plated harness"
desc = "An experimental set of heavy armor with additional harnesses designed to support QYJ-72-I smartmachinegun. Heavy plates along with harnesses make wearing backpacks extremely uncomfortable and borderline impossible."
icon_state = "upp_armor_heavy"
storage_slots = 1
slowdown = SLOWDOWN_ARMOR_HEAVY
flags_atom = NO_SNOW_TYPE|NO_NAME_OVERRIDE
flags_inventory = BLOCKSHARPOBJ|SMARTGUN_HARNESS|BLOCK_KNOCKDOWN
armor_melee = CLOTHING_ARMOR_MEDIUMHIGH
armor_bullet = CLOTHING_ARMOR_HIGHPLUS
armor_laser = CLOTHING_ARMOR_MEDIUMLOW
armor_energy = CLOTHING_ARMOR_MEDIUM
armor_bomb = CLOTHING_ARMOR_HIGH
armor_bio = CLOTHING_ARMOR_MEDIUM
armor_rad = CLOTHING_ARMOR_MEDIUMLOW
armor_internaldamage = CLOTHING_ARMOR_HIGHPLUS
uniform_restricted = list(/obj/item/clothing/under/marine/veteran/UPP, /obj/item/clothing/under/marine/veteran/UPP/medic, /obj/item/clothing/under/marine/veteran/UPP/engi)
allowed = list(
/obj/item/tank/emergency_oxygen,
/obj/item/device/flashlight,
/obj/item/ammo_magazine,
/obj/item/explosive/mine,
/obj/item/attachable/bayonet,
/obj/item/weapon/gun/pkp,
/obj/item/storage/backpack/general_belt,
/obj/item/device/motiondetector,
/obj/item/device/walkman,
)


/obj/item/clothing/suit/storage/marine/smartgunner/upp/Initialize()
. = ..()
pockets.bypass_w_limit = list(
/obj/item/ammo_magazine/minigun,
/obj/item/ammo_magazine/pkp,
)


/obj/item/clothing/suit/storage/marine/leader
name = "\improper B12 pattern marine armor"
desc = "Semi-experimental body armor system similar to M3, incorporating primarily carbon fiber instead of boron carbide. \nDesigned in a lovely olive green, slightly improved protection against blunt impact and biological hazards."
Expand Down
16 changes: 15 additions & 1 deletion code/modules/clothing/under/marine_uniform.dm
Original file line number Diff line number Diff line change
Expand Up @@ -527,7 +527,7 @@
min_cold_protection_temperature = ICE_PLANET_MIN_COLD_PROT
has_sensor = UNIFORM_HAS_SENSORS
sensor_faction = FACTION_UPP
suit_restricted = list(/obj/item/clothing/suit/storage/marine/faction/UPP, /obj/item/clothing/suit/gimmick/jason, /obj/item/clothing/suit/storage/snow_suit/soviet, /obj/item/clothing/suit/storage/snow_suit/survivor, /obj/item/clothing/suit/storage/webbing)
suit_restricted = list(/obj/item/clothing/suit/storage/marine/faction/UPP, /obj/item/clothing/suit/gimmick/jason, /obj/item/clothing/suit/storage/snow_suit/soviet, /obj/item/clothing/suit/storage/snow_suit/survivor, /obj/item/clothing/suit/storage/webbing, /obj/item/clothing/suit/storage/marine/smartgunner/upp)
flags_jumpsuit = UNIFORM_SLEEVE_ROLLABLE

/obj/item/clothing/under/marine/veteran/UPP/boiler
Expand Down Expand Up @@ -1048,6 +1048,20 @@
icon_state = "rmc_uniform_lt"
worn_state = "rmc_uniform_lt"

/obj/item/clothing/under/marine/pve_mopp
name = "\improper M2 MOPP suit"
desc = "M2 MOPP suits are purpose built to defend the wearer against biological and radioactive contaminants, from nerve gas to nuclear fallout."
desc_lore = "The several-paragraph long expository pamphlet that usually comes with these is missing."
flags_atom = NO_NAME_OVERRIDE|NO_SNOW_TYPE
flags_jumpsuit = NO_FLAGS
icon_state = "cbrn"
worn_state = "cbrn"

item_icons = list(
WEAR_BODY = 'icons/mob/humans/onmob/uniform_1.dmi',
)


/obj/item/clothing/under/marine/cbrn //CBRN MOPP suit
name = "\improper M3 MOPP suit"
desc = "M3 MOPP suits are specially designed and engineered to protect the wearer from unshielded exposure to any Chemical, Biological, Radiological, or Nuclear (CBRN) threats in the field. Despite somewhat resembling commonplace synthetic rubber HAZMAT suits, the Venlar composition provides a significantly more dense and durable baseline material, allowing for modifications without the loss of its air-tight nature. The wearer’s comfort has been significantly taken into consideration, with the suit providing sufficient freedom of movement for even delicate maneuvers and movements once it is donned. As the sealed environment retains many issues from the past, measures have been taken to significantly reduce the suit's passive heat absorption and increase internal absorbance through linings, as well as the capability to fully integrate with external cooling, air cycling, and other life support systems. Strips of M11 detector paper are included with each suit, designed to be slotted into the dominant arm of the wearer’s protective suit, the non-dominant wrist, and then back to the knee, providing at-a-glance warning signs across alternating sides of the body while working. The arm and knee markers are intended to be on the user's dominant The papers change color upon contact with harmful chemical agents, displaying a clear white initially and turning red when activated. The suit has a recommended lifespan of twenty-four hours once contact with a toxic environment is made, but depending on the severity this can be shortened to eight hours or less. Beyond that point, the accuracy of the detector papers deteriorates significantly, as does the protection of the suit itself."
Expand Down
8 changes: 8 additions & 0 deletions code/modules/mob/living/carbon/human/human.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1660,3 +1660,11 @@
// clamped to max 500
if(dizziness > 100 && !is_dizzy)
INVOKE_ASYNC(src, PROC_REF(dizzy_process))

/mob/living/carbon/human/point_to_atom(atom/A, turf/T)
if(isitem(A))
var/obj/item/item = A
if(item == get_active_hand() || item == get_inactive_hand())
item.showoff(src)
return TRUE
return ..()
Loading

0 comments on commit 47fb185

Please sign in to comment.