Skip to content

Commit

Permalink
upp machinegunner tweaks (cmss13-devs#198)
Browse files Browse the repository at this point in the history
  • Loading branch information
AndroBetel committed Jun 1, 2024
1 parent 485320d commit 0bd9e97
Show file tree
Hide file tree
Showing 7 changed files with 258 additions and 130 deletions.
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 @@ -712,6 +712,38 @@
desc = "Despite the fact that 1. drum magazines are incredibly non-ergonomical, and 2. require incredibly precise machining in order to fit universally (spoiler, they don't, adding further to the myth of 'Smartgun Personalities'), the USCM decided to issue a modified marine belt (more formally known by the designation M280) with hooks and dust covers (overly complex for the average jarhead) for the M56B system's drum munitions. When the carry catch on the drum isn't getting stuck in the oiled up velcro, the rig actually does do a decent job at holding a plentiful amount of drums. But at the end of the day, compared to standard rigs... it sucks, but isn't that what being a Marine is all about?"
icon_state = "s_sgbelt_ammo"

/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 @@ -1840,6 +1872,26 @@
icon_state = "s_sgbelt"
has_gamemode_skin = FALSE

/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
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 @@ -420,9 +420,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 @@ -461,6 +458,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
2 changes: 1 addition & 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
15 changes: 14 additions & 1 deletion code/modules/projectiles/guns/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -272,13 +272,26 @@
return FALSE
if(!skillcheck(user, SKILL_FIREARMS, SKILL_FIREARMS_TRAINED))
to_chat(user, SPAN_WARNING("You don't seem to know how to use [src]..."))
return 0
return FALSE

/obj/item/weapon/gun/pkp/iff
name = "\improper QYJ-72-I General Purpose Machine Gun"
desc = "The QYJ-72-I is an experimental variant of common UPP GPMG featuring IFF capabilities which were developed by reverse-engineering USCM smartweapons. Aside from that, not much has been done to this machinegun: it's still heavy, overheats rather quickly and is able to lay down range unprecedented amounts of lead. \n<b>Alt-click it to open the feed cover and allow for reloading.</b>"
actions_types = list(/datum/action/item_action/toggle_iff_pkp)
aim_slowdown = SLOWDOWN_ADS_SPECIALIST
var/iff_enabled = TRUE
var/requires_harness = TRUE

/obj/item/weapon/gun/pkp/iff/able_to_fire(mob/living/user)
. = ..()
if(.)
if(!ishuman(user))
return FALSE
var/mob/living/carbon/human/H = user
if(requires_harness)
if(!H.wear_suit || !(H.wear_suit.flags_inventory & SMARTGUN_HARNESS))
balloon_alert(user, "harness required")
return FALSE

/obj/item/weapon/gun/pkp/iff/set_bullet_traits()
LAZYADD(traits_to_give, list(
Expand Down
Binary file modified icons/mob/humans/onmob/belt.dmi
Binary file not shown.
Binary file modified icons/obj/items/clothing/belts.dmi
Binary file not shown.
Loading

0 comments on commit 0bd9e97

Please sign in to comment.