diff --git a/code/__DEFINES/guns.dm b/code/__DEFINES/guns.dm
index 2ea9d11ce4..207f897065 100644
--- a/code/__DEFINES/guns.dm
+++ b/code/__DEFINES/guns.dm
@@ -9,7 +9,7 @@
#define AMMO_BAND_COLOR_TRAINING "#FFFFFF"
// Uncommon
#define AMMO_BAND_COLOR_HOLOTARGETING "#276A74"
-#define AMMO_BAND_COLOR_RUBBER "#556696"
+#define AMMO_BAND_COLOR_RUBBER "#d8d9db"
#define AMMO_BAND_COLOR_HOLLOWPOINT "#BA5D00"
#define AMMO_BAND_COLOR_INCENDIARY "#9C2219"
#define AMMO_BAND_COLOR_IMPACT "#7866FF"
diff --git a/code/datums/ammo/bullet/rifle.dm b/code/datums/ammo/bullet/rifle.dm
index 2bb063390e..5071482af4 100644
--- a/code/datums/ammo/bullet/rifle.dm
+++ b/code/datums/ammo/bullet/rifle.dm
@@ -4,8 +4,9 @@
//======
*/
+//====== 10X24 Pulse Rifle
/datum/ammo/bullet/rifle
- name = "rifle bullet"
+ name = "10x24 bullet"
headshot_state = HEADSHOT_OVERLAY_MEDIUM
damage = 40
@@ -18,54 +19,8 @@
damage_falloff = DAMAGE_FALLOFF_TIER_7
max_range = 24 //So S8 users don't have their bullets magically disappaer at 22 tiles (S8 can see 24 tiles)
-/datum/ammo/bullet/rifle/heavy
- name = "heavy rifle bullet"
- headshot_state = HEADSHOT_OVERLAY_MEDIUM
-
- damage = 55
- penetration = ARMOR_PENETRATION_TIER_4
- accuracy = HIT_ACCURACY_TIER_3
- shell_speed = AMMO_SPEED_TIER_6
- effective_range_max = 10
- damage_falloff = DAMAGE_FALLOFF_TIER_9
-
-/datum/ammo/bullet/rifle/heavy/ap
- name = "armor-piercing heavy rifle bullet"
- headshot_state = HEADSHOT_OVERLAY_MEDIUM
-
- damage = 45
- penetration = ARMOR_PENETRATION_TIER_8
-
-/datum/ammo/bullet/rifle/heavy/heap
- headshot_state = HEADSHOT_OVERLAY_HEAVY
- name = "armor-piercing heavy rifle bullet"
- headshot_state = HEADSHOT_OVERLAY_MEDIUM
-
- damage = 70
- penetration = ARMOR_PENETRATION_TIER_10
-
-// PvE M4RA rounds - pens&does toxin to whomever gets hit by it
-/datum/ammo/bullet/rifle/heavy/du
- name = "depleted uranium heavy rifle bullet"
-
- damage = 60
- accurate_range_min = 4
- penetration = ARMOR_PENETRATION_TIER_5
- scatter = -SCATTER_AMOUNT_TIER_8
-
-/datum/ammo/bullet/rifle/heavy/du/set_bullet_traits()
- . = ..()
- LAZYADD(traits_to_give, list(
- BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating)
- ))
-
-/datum/ammo/bullet/rifle/heavy/du/on_hit_mob(mob/target, obj/projectile/fired_proj)
- target.AddComponent(/datum/component/toxic_buildup)
- knockback(target, fired_proj, max_range = 2)
-
-
/datum/ammo/bullet/rifle/holo_target
- name = "holo-targeting rifle bullet"
+ name = "holo-targeting 10x24 bullet"
damage = 30
var/holo_stacks = 10
@@ -74,13 +29,12 @@
M.AddComponent(/datum/component/bonus_damage_stack, holo_stacks, world.time)
/datum/ammo/bullet/rifle/holo_target/hunting
- name = "holo-targeting hunting bullet"
+ name = "holo-targeting 10x24 bullet"
damage = 25
holo_stacks = 15
/datum/ammo/bullet/rifle/explosive
- name = "explosive rifle bullet"
-
+ name = "explosive 10x24 bullet"
damage = 25
accurate_range = 22
accuracy = 0
@@ -98,14 +52,14 @@
cell_explosion(T, 80, 40, EXPLOSION_FALLOFF_SHAPE_LINEAR, P.dir, P.weapon_cause_data)
/datum/ammo/bullet/rifle/ap
- name = "armor-piercing rifle bullet"
+ name = "armor-piercing 10x24 bullet"
damage = 30
penetration = ARMOR_PENETRATION_TIER_8
// Basically AP but better. Focused at taking out armour temporarily
/datum/ammo/bullet/rifle/ap/toxin
- name = "toxic rifle bullet"
+ name = "toxic 10x24 bullet"
var/acid_per_hit = 7
var/organic_damage_mult = 3
@@ -125,7 +79,7 @@
/datum/ammo/bullet/rifle/ap/penetrating
- name = "wall-penetrating rifle bullet"
+ name = "wall-penetrating 10x24 bullet"
shrapnel_chance = 0
damage = 35
@@ -138,29 +92,28 @@
))
/datum/ammo/bullet/rifle/le
- name = "armor-shredding rifle bullet"
+ name = "armor-shredding 10x24 bullet"
damage = 20
penetration = ARMOR_PENETRATION_TIER_4
pen_armor_punch = 5
/datum/ammo/bullet/rifle/heap
- name = "high-explosive armor-piercing rifle bullet"
+ name = "high-explosive armor-piercing 10x24 bullet"
headshot_state = HEADSHOT_OVERLAY_HEAVY
damage = 55//big damage, doesn't actually blow up because thats stupid.
penetration = ARMOR_PENETRATION_TIER_8
+ shrapnel_chance = SHRAPNEL_CHANCE_TIER_3
/datum/ammo/bullet/rifle/rubber
- name = "rubber rifle bullet"
- sound_override = 'sound/weapons/gun_c99.ogg'
-
- damage = 0
+ name = "rubber 10x24 bullet"
+ damage = 5
stamina_damage = 15
shrapnel_chance = 0
/datum/ammo/bullet/rifle/incendiary
- name = "incendiary rifle bullet"
+ name = "incendiary 10x24 bullet"
damage_type = BURN
shrapnel_chance = 0
flags_ammo_behavior = AMMO_BALLISTIC
@@ -176,8 +129,54 @@
BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary)
))
-/datum/ammo/bullet/rifle/m4ra
- name = "A19 high velocity bullet"
+//====== 10X28 Smartgun
+
+/datum/ammo/bullet/rifle/heavy
+ name = "10x28 bullet"
+ headshot_state = HEADSHOT_OVERLAY_MEDIUM
+ damage = 55
+ penetration = ARMOR_PENETRATION_TIER_3
+ accuracy = HIT_ACCURACY_TIER_3
+ shell_speed = AMMO_SPEED_TIER_6
+ effective_range_max = 10
+ damage_falloff = DAMAGE_FALLOFF_TIER_9
+
+/datum/ammo/bullet/rifle/heavy/ap
+ name = "armor-piercing 10x28 bullet"
+ headshot_state = HEADSHOT_OVERLAY_MEDIUM
+ damage = 45
+ penetration = ARMOR_PENETRATION_TIER_8
+
+/datum/ammo/bullet/rifle/heavy/heap
+ headshot_state = HEADSHOT_OVERLAY_HEAVY
+ name = "armor-piercing 10x28 bullet"
+ headshot_state = HEADSHOT_OVERLAY_MEDIUM
+ damage = 70
+ penetration = ARMOR_PENETRATION_TIER_10
+ shrapnel_chance = SHRAPNEL_CHANCE_TIER_3
+
+/datum/ammo/bullet/rifle/heavy/du
+ name = "depleted uranium 10x28 bullet"
+
+ damage = 60
+ accurate_range_min = 4
+ penetration = ARMOR_PENETRATION_TIER_5
+ scatter = -SCATTER_AMOUNT_TIER_8
+
+/datum/ammo/bullet/rifle/heavy/du/set_bullet_traits()
+ . = ..()
+ LAZYADD(traits_to_give, list(
+ BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_penetrating)
+ ))
+
+/datum/ammo/bullet/rifle/heavy/du/on_hit_mob(mob/target, obj/projectile/fired_proj)
+ target.AddComponent(/datum/component/toxic_buildup)
+ knockback(target, fired_proj, max_range = 2)
+
+// Custom Specialist M4RA rounds
+
+/datum/ammo/bullet/rifle/heavy/spec
+ name = "high velocity 10x28 bullet"
shrapnel_chance = 0
damage_falloff = 0
flags_ammo_behavior = AMMO_BALLISTIC
@@ -188,8 +187,8 @@
penetration= ARMOR_PENETRATION_TIER_7
shell_speed = AMMO_SPEED_TIER_6
-/datum/ammo/bullet/rifle/m4ra/incendiary
- name = "A19 high velocity incendiary bullet"
+/datum/ammo/bullet/rifle/heavy/spec/incendiary
+ name = "high velocity incendiary 10x28 bullet"
flags_ammo_behavior = AMMO_BALLISTIC
damage = 40
@@ -198,14 +197,14 @@
penetration= ARMOR_PENETRATION_TIER_5
shell_speed = AMMO_SPEED_TIER_6
-/datum/ammo/bullet/rifle/m4ra/incendiary/set_bullet_traits()
+/datum/ammo/bullet/rifle/heavy/spec/incendiary/set_bullet_traits()
. = ..()
LAZYADD(traits_to_give, list(
BULLET_TRAIT_ENTRY(/datum/element/bullet_trait_incendiary)
))
-/datum/ammo/bullet/rifle/m4ra/impact
- name = "A19 high velocity impact bullet"
+/datum/ammo/bullet/rifle/heavy/spec/impact
+ name = "high velocity impact 10x28 bullet"
flags_ammo_behavior = AMMO_BALLISTIC
damage = 40
@@ -214,10 +213,10 @@
penetration = ARMOR_PENETRATION_TIER_10
shell_speed = AMMO_SPEED_TIER_6
-/datum/ammo/bullet/rifle/m4ra/impact/on_hit_mob(mob/M, obj/projectile/P)
+/datum/ammo/bullet/rifle/heavy/spec/impact/on_hit_mob(mob/M, obj/projectile/P)
knockback(M, P, 32) // Can knockback basically at max range
-/datum/ammo/bullet/rifle/m4ra/impact/knockback_effects(mob/living/living_mob, obj/projectile/fired_projectile)
+/datum/ammo/bullet/rifle/heavy/spec/impact/knockback_effects(mob/living/living_mob, obj/projectile/fired_projectile)
if(iscarbonsizexeno(living_mob))
var/mob/living/carbon/xenomorph/target = living_mob
to_chat(target, SPAN_XENODANGER("You are shaken and slowed by the sudden impact!"))
@@ -232,26 +231,31 @@
to_chat(living_mob, SPAN_HIGHDANGER("The impact knocks you off-balance!"))
living_mob.apply_stamina_damage(fired_projectile.ammo.damage, fired_projectile.def_zone, ARMOR_BULLET)
-/datum/ammo/bullet/rifle/mar40
- name = "heavy rifle bullet"
-
- damage = 55
+//====== 10x31 Type 71
-/datum/ammo/bullet/rifle/type71
- name = "heavy rifle bullet"
+/datum/ammo/bullet/rifle/heavy/upp
+ name = "10x31 bullet"
damage = 55
- penetration = ARMOR_PENETRATION_TIER_3
+ penetration = ARMOR_PENETRATION_TIER_4
-/datum/ammo/bullet/rifle/type71/ap
- name = "heavy armor-piercing rifle bullet"
+/datum/ammo/bullet/rifle/heavy/upp/ap
+ name = "armor-piercing 10x31 bullet"
damage = 40
penetration = ARMOR_PENETRATION_TIER_10
-/datum/ammo/bullet/rifle/type71/heap
- name = "heavy high-explosive armor-piercing rifle bullet"
+/datum/ammo/bullet/rifle/heavy/upp/heap
+ name = "high-explosive armor-piercing 10x31 bullet"
headshot_state = HEADSHOT_OVERLAY_HEAVY
damage = 65
penetration = ARMOR_PENETRATION_TIER_10
+ shrapnel_chance = SHRAPNEL_CHANCE_TIER_3
+
+// Misc
+
+/datum/ammo/bullet/rifle/mar40
+ name = "7.62x39mm rifle bullet"
+ damage = 45
+ penetration = ARMOR_PENETRATION_TIER_2
diff --git a/code/datums/factions/upp.dm b/code/datums/factions/upp.dm
index fefd6b01d6..be9bdb761c 100644
--- a/code/datums/factions/upp.dm
+++ b/code/datums/factions/upp.dm
@@ -98,8 +98,8 @@
list("PRIMARY AMMUNITION", 0, null, null, null),
list("Type 64 Helical Magazine (7.62x19mm)", 5, /obj/item/ammo_magazine/smg/bizon, null, VENDOR_ITEM_REGULAR),
- list("Type 71 AP Magazine (5.45x39mm)", 15, /obj/item/ammo_magazine/rifle/type71/ap, null, VENDOR_ITEM_REGULAR),
- list("Type 71 Magazine (5.45x39mm)", 5, /obj/item/ammo_magazine/rifle/type71, null, VENDOR_ITEM_REGULAR),
+ list("Type 71 AP Magazine (10x31mm)", 15, /obj/item/ammo_magazine/rifle/type71/ap, null, VENDOR_ITEM_REGULAR),
+ list("Type 71 Magazine (10x31mm)", 5, /obj/item/ammo_magazine/rifle/type71, null, VENDOR_ITEM_REGULAR),
list("SIDEARMS", 0, null, null, null),
list("Type 73 Pistol", 25, /obj/item/weapon/gun/pistol/t73, null, VENDOR_ITEM_REGULAR),
@@ -137,8 +137,8 @@
list("PRIMARY AMMUNITION", -1, null, null),
list("Type 64 Helical Magazine (7.62x19mm)", 60, /obj/item/ammo_magazine/smg/bizon, VENDOR_ITEM_REGULAR),
- list("Type 71 AP Magazine (5.45x39mm)", 60, /obj/item/ammo_magazine/rifle/type71/ap, VENDOR_ITEM_REGULAR),
- list("Type 71 Magazine (5.45x39mm)", 60, /obj/item/ammo_magazine/rifle/type71, VENDOR_ITEM_REGULAR),
+ list("Type 71 AP Magazine (10x31mm)", 60, /obj/item/ammo_magazine/rifle/type71/ap, VENDOR_ITEM_REGULAR),
+ list("Type 71 Magazine (10x31mm)", 60, /obj/item/ammo_magazine/rifle/type71, VENDOR_ITEM_REGULAR),
list("SIDEARMS", -1, null, null),
list("Type 73 Pistol", 20, /obj/item/weapon/gun/pistol/t73, VENDOR_ITEM_REGULAR),
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index 0ed2894150..a4cab3be71 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -293,8 +293,8 @@ var/global/list/datum/stack_recipe/cardboard_recipes = list ( \
new/datum/stack_recipe("empty magazine box (Type71)", /obj/item/ammo_box/magazine/type71/empty), \
new/datum/stack_recipe("empty magazine box (Type71 AP)", /obj/item/ammo_box/magazine/type71/ap/empty), \
null, \
- new/datum/stack_recipe("empty rifle ammo box (5.45x39mm)", /obj/item/ammo_box/rounds/type71/empty), \
- new/datum/stack_recipe("empty rifle ammo box (5.45x39mm AP)", /obj/item/ammo_box/rounds/type71/ap/empty), \
+ new/datum/stack_recipe("empty rifle ammo box (10x31mm)", /obj/item/ammo_box/rounds/type71/empty), \
+ new/datum/stack_recipe("empty rifle ammo box (10x31mm AP)", /obj/item/ammo_box/rounds/type71/ap/empty), \
)) \
diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm
index ae476b0f73..c18874fd78 100644
--- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm
@@ -82,12 +82,6 @@
/obj/structure/closet/secure_closet/platoon_sergeant/Initialize()
. = ..()
- new /obj/item/weapon/gun/rifle/m41aMK1(src)
- new /obj/item/ammo_magazine/rifle/m41aMK1(src)
- new /obj/item/ammo_magazine/rifle/m41aMK1(src)
- new /obj/item/ammo_magazine/rifle/m41aMK1(src)
- new /obj/item/ammo_magazine/rifle/m41aMK1(src)
- new /obj/item/ammo_magazine/rifle/m41aMK1(src)
new /obj/item/clothing/head/helmet/marine/leader(src)
new /obj/item/device/binoculars/range/designator(src)
new /obj/item/device/whistle(src)
@@ -99,12 +93,6 @@
/obj/structure/closet/secure_closet/platoon_sergeant_forecon/Initialize()
. = ..()
- new /obj/item/weapon/gun/rifle/m41aMK1(src)
- new /obj/item/ammo_magazine/rifle/m41aMK1(src)
- new /obj/item/ammo_magazine/rifle/m41aMK1(src)
- new /obj/item/ammo_magazine/rifle/m41aMK1(src)
- new /obj/item/ammo_magazine/rifle/m41aMK1(src)
- new /obj/item/ammo_magazine/rifle/m41aMK1(src)
new /obj/item/device/binoculars/range/designator(src)
new /obj/item/device/whistle(src)
@@ -141,10 +129,6 @@
new /obj/item/clothing/suit/storage/marine/smartgunner(src)
new /obj/item/ammo_magazine/smartgun(src)
new /obj/item/ammo_magazine/smartgun(src)
- new /obj/item/ammo_magazine/smartgun(src)
- new /obj/item/ammo_magazine/smartgun(src)
- new /obj/item/ammo_magazine/smartgun(src)
- new /obj/item/ammo_magazine/smartgun(src)
new /obj/item/clothing/glasses/night/m56_goggles/no_nightvision(src)
/obj/structure/closet/secure_closet/smartgunner_forecon
@@ -159,10 +143,6 @@
new /obj/item/clothing/suit/storage/marine/smartgunner/standard(src)
new /obj/item/ammo_magazine/smartgun(src)
new /obj/item/ammo_magazine/smartgun(src)
- new /obj/item/ammo_magazine/smartgun(src)
- new /obj/item/ammo_magazine/smartgun(src)
- new /obj/item/ammo_magazine/smartgun(src)
- new /obj/item/ammo_magazine/smartgun(src)
new /obj/item/clothing/glasses/night/m56_goggles/no_nightvision(src)
/obj/structure/closet/cryo/Initialize()
diff --git a/code/modules/clothing/suits/marine_armor.dm b/code/modules/clothing/suits/marine_armor.dm
index 6bdb55e7d7..8dfb2f558c 100644
--- a/code/modules/clothing/suits/marine_armor.dm
+++ b/code/modules/clothing/suits/marine_armor.dm
@@ -398,6 +398,10 @@
)
var/list/smartgun_back = list(
/obj/item/storage/large_holster/machete,
+ /obj/item/storage/large_holster/m37,
+ /obj/item/weapon/gun/rifle,
+ /obj/item/weapon/gun/shotgun/combat,
+ /obj/item/weapon/gun/shotgun/pump,
)
/obj/item/clothing/suit/storage/marine/smartgunner/Initialize()
diff --git a/code/modules/gear_presets/upp.dm b/code/modules/gear_presets/upp.dm
index 6406cf5301..36e449e8a8 100644
--- a/code/modules/gear_presets/upp.dm
+++ b/code/modules/gear_presets/upp.dm
@@ -193,7 +193,7 @@
list("Sandbags x25", 5, /obj/item/stack/sandbags_empty/half, null, VENDOR_ITEM_RECOMMENDED),
list("SPECIAL AMMUNITION", 0, null, null, null),
- list("Type 71 AP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/ap , null, VENDOR_ITEM_REGULAR),
+ list("Type 71 AP Magazine (10x31mm)", 10, /obj/item/ammo_magazine/rifle/type71/ap , null, VENDOR_ITEM_REGULAR),
list("ATTACHMENTS", 0, null, null, null),
list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
@@ -363,7 +363,7 @@
list("Stasis Bag", 6, /obj/item/bodybag/cryobag, null, VENDOR_ITEM_REGULAR),
list("SPECIAL AMMUNITION", 0, null, null, null),
- list("Type 71 AP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/ap , null, VENDOR_ITEM_REGULAR),
+ list("Type 71 AP Magazine (10x31mm)", 10, /obj/item/ammo_magazine/rifle/type71/ap , null, VENDOR_ITEM_REGULAR),
list("ATTACHMENTS", 0, null, null, null),
list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
@@ -496,7 +496,7 @@
list("Sandbags x25", 10, /obj/item/stack/sandbags_empty/half, null, VENDOR_ITEM_RECOMMENDED),
list("SPECIAL AMMUNITION", 0, null, null, null),
- list("Type 71 AP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/ap , null, VENDOR_ITEM_REGULAR),
+ list("Type 71 AP Magazine (10x31mm)", 10, /obj/item/ammo_magazine/rifle/type71/ap , null, VENDOR_ITEM_REGULAR),
list("ATTACHMENTS", 0, null, null, null),
list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
@@ -916,7 +916,7 @@
list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY),
list("SPECIAL AMMUNITION", 0, null, null, null),
- list("Type 71 AP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/ap , null, VENDOR_ITEM_REGULAR),
+ list("Type 71 AP Magazine (10x31mm)", 10, /obj/item/ammo_magazine/rifle/type71/ap , null, VENDOR_ITEM_REGULAR),
list("ATTACHMENTS", 0, null, null, null),
list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
@@ -1068,7 +1068,7 @@
list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY),
list("SPECIAL AMMUNITION", 0, null, null, null),
- list("Type 71 AP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/ap , null, VENDOR_ITEM_REGULAR),
+ list("Type 71 AP Magazine (10x31mm)", 10, /obj/item/ammo_magazine/rifle/type71/ap , null, VENDOR_ITEM_REGULAR),
list("ATTACHMENTS", 0, null, null, null),
list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
@@ -1231,7 +1231,7 @@
list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY),
list("SPECIAL AMMUNITION", 0, null, null, null),
- list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
+ list("Type 71 HEAP Magazine (10x31mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
list("ATTACHMENTS", 0, null, null, null),
list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
@@ -1391,7 +1391,7 @@
list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY),
list("SPECIAL AMMUNITION", 0, null, null, null),
- list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
+ list("Type 71 HEAP Magazine (10x31mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
list("ATTACHMENTS", 0, null, null, null),
list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
@@ -1552,7 +1552,7 @@
list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY),
list("SPECIAL AMMUNITION", 0, null, null, null),
- list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
+ list("Type 71 HEAP Magazine (10x31mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
list("ATTACHMENTS", 0, null, null, null),
list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
@@ -1713,7 +1713,7 @@
list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY),
list("SPECIAL AMMUNITION", 0, null, null, null),
- list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
+ list("Type 71 HEAP Magazine (10x31mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
list("ATTACHMENTS", 0, null, null, null),
list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
@@ -1874,7 +1874,7 @@
list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY),
list("SPECIAL AMMUNITION", 0, null, null, null),
- list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
+ list("Type 71 HEAP Magazine (10x31mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
list("ATTACHMENTS", 0, null, null, null),
list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
@@ -2035,7 +2035,7 @@
list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY),
list("SPECIAL AMMUNITION", 0, null, null, null),
- list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
+ list("Type 71 HEAP Magazine (10x31mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
list("ATTACHMENTS", 0, null, null, null),
list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
@@ -2196,7 +2196,7 @@
list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY),
list("SPECIAL AMMUNITION", 0, null, null, null),
- list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
+ list("Type 71 HEAP Magazine (10x31mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
list("ATTACHMENTS", 0, null, null, null),
list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
@@ -2357,7 +2357,7 @@
list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY),
list("SPECIAL AMMUNITION", 0, null, null, null),
- list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
+ list("Type 71 HEAP Magazine (10x31mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
list("ATTACHMENTS", 0, null, null, null),
list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
@@ -2518,7 +2518,7 @@
list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY),
list("SPECIAL AMMUNITION", 0, null, null, null),
- list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
+ list("Type 71 HEAP Magazine (10x31mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
list("ATTACHMENTS", 0, null, null, null),
list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
@@ -3001,7 +3001,7 @@
list("Sandbags x25", 5, /obj/item/stack/sandbags_empty/half, null, VENDOR_ITEM_RECOMMENDED),
list("SPECIAL AMMUNITION", 0, null, null, null),
- list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
+ list("Type 71 HEAP Magazine (10x31mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
list("ATTACHMENTS", 0, null, null, null),
list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
@@ -3171,7 +3171,7 @@
list("Stasis Bag", 6, /obj/item/bodybag/cryobag, null, VENDOR_ITEM_REGULAR),
list("SPECIAL AMMUNITION", 0, null, null, null),
- list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
+ list("Type 71 HEAP Magazine (10x31mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
list("ATTACHMENTS", 0, null, null, null),
list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
@@ -3324,7 +3324,7 @@
list("Medical HUD Glasses", 4, /obj/item/clothing/glasses/hud/health, null, VENDOR_ITEM_MANDATORY),
list("SPECIAL AMMUNITION", 0, null, null, null),
- list("Type 71 HEAP Magazine (5.45x39mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
+ list("Type 71 HEAP Magazine (10x31mm)", 10, /obj/item/ammo_magazine/rifle/type71/heap , null, VENDOR_ITEM_REGULAR),
list("ATTACHMENTS", 0, null, null, null),
list("Angled Grip", 10, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
diff --git a/code/modules/projectiles/ammo_boxes/magazine_boxes.dm b/code/modules/projectiles/ammo_boxes/magazine_boxes.dm
index 4f09acbf11..da457a3bd5 100644
--- a/code/modules/projectiles/ammo_boxes/magazine_boxes.dm
+++ b/code/modules/projectiles/ammo_boxes/magazine_boxes.dm
@@ -60,7 +60,6 @@
/obj/item/ammo_box/magazine/heap/empty
empty = TRUE
-
/obj/item/ammo_box/magazine/mk1
name = "magazine box (M41A MK1 X 10)"
flags_equip_slot = SLOT_BACK
@@ -80,6 +79,16 @@
/obj/item/ammo_box/magazine/mk1/heap/empty
empty = TRUE
+
+/obj/item/ammo_box/magazine/mk1/rubber
+ name = "magazine box (Rubber M41A MK1 X 10)"
+ overlay_ammo_type = "_training"
+ overlay_content = "_reg"
+ magazine_type = /obj/item/ammo_magazine/rifle/m41aMK1/rubber
+
+/obj/item/ammo_box/magazine/mk1/rubber/empty
+ empty = TRUE
+
//-----------------------M39 Rifle Mag Boxes-----------------------
/obj/item/ammo_box/magazine/m39
diff --git a/code/modules/projectiles/ammo_boxes/round_boxes.dm b/code/modules/projectiles/ammo_boxes/round_boxes.dm
index 146f576b59..baf4f474e1 100644
--- a/code/modules/projectiles/ammo_boxes/round_boxes.dm
+++ b/code/modules/projectiles/ammo_boxes/round_boxes.dm
@@ -109,23 +109,23 @@
/obj/item/ammo_box/rounds/smg/heap/empty
empty = TRUE
-//----------------5.45x39mm Ammunition Boxes (for UPP Type71 family)------------------
+//----------------10x31mm Ammunition Boxes (for UPP Type71 family)------------------
/obj/item/ammo_box/rounds/type71
- name = "\improper rifle ammunition box (5.45x39mm)"
- desc = "A 5.45x39mm ammunition box. Used to refill Type71 magazines. It comes with a leather strap allowing to wear it on the back."
+ name = "\improper rifle ammunition box (10x31mm)"
+ desc = "A 10x31mm ammunition box. Used to refill Type71 magazines. It comes with a leather strap allowing to wear it on the back."
icon_state = "base_type71"
overlay_gun_type = "_rounds_type71"
overlay_content = "_type71_reg"
- caliber = "5.45x39mm"
+ caliber = "10x31mm"
default_ammo = /datum/ammo/bullet/rifle
/obj/item/ammo_box/rounds/type71/empty
empty = TRUE
/obj/item/ammo_box/rounds/type71/ap
- name = "\improper rifle ammunition box (5.45x39mm AP)"
- desc = "A 5.45x39mm armor-piercing ammunition box. Used to refill Type71 AP magazines. It comes with a leather strap allowing to wear it on the back."
+ name = "\improper rifle ammunition box (10x31mm AP)"
+ desc = "A 10x31mm armor-piercing ammunition box. Used to refill Type71 AP magazines. It comes with a leather strap allowing to wear it on the back."
icon_state = "base_type71"
overlay_gun_type = "_rounds_type71"
overlay_content = "_type71_ap"
@@ -135,12 +135,12 @@
empty = TRUE
/obj/item/ammo_box/rounds/type71/heap
- name = "rifle ammunition box (5.45x39mm HEAP)"
- desc = "A 5.45x39mm high-explosive armor-piercing ammunition box. Used to refill Type71 HEAP magazines. It comes with a leather strap allowing to wear it on the back."
+ name = "rifle ammunition box (10x31mm HEAP)"
+ desc = "A 10x31mm high-explosive armor-piercing ammunition box. Used to refill Type71 HEAP magazines. It comes with a leather strap allowing to wear it on the back."
icon_state = "base_type71"
overlay_gun_type = "_rounds_type71"
overlay_content = "_type71_heap"
- default_ammo = /datum/ammo/bullet/rifle/type71/heap
+ default_ammo = /datum/ammo/bullet/rifle/heavy/upp/heap
/obj/item/ammo_box/rounds/type71/heap/empty
empty = TRUE
diff --git a/code/modules/projectiles/guns/misc.dm b/code/modules/projectiles/guns/misc.dm
index c65d422344..71276e089e 100644
--- a/code/modules/projectiles/guns/misc.dm
+++ b/code/modules/projectiles/guns/misc.dm
@@ -161,7 +161,7 @@
/obj/item/weapon/gun/pkp
name = "\improper QYJ-72 General Purpose Machine Gun"
- desc = "The QYJ-72 is the standard GPMG of the Union of Progressive Peoples, chambered in 7.62x54mmR, it fires a hard-hitting cartridge with a high rate of fire. With an extremely large box at 250 rounds, the QJY-72 is designed with suppressing fire and accuracy by volume of fire at its forefront. \nAlt-click it to open the feed cover and allow for reloading."
+ desc = "The QYJ-72 is the standard GPMG of the Union of Progressive Peoples, chambered in 10x31mm, it fires a hard-hitting round with a high rate of fire. With an extremely large box at 250 rounds, the QJY-72 is designed with suppressing fire and accuracy by volume of fire at its forefront. \nAlt-click it to open the feed cover and allow for reloading."
icon = 'icons/obj/items/weapons/guns/guns_by_faction/upp.dmi'
icon_state = "qjy72"
item_state = "qjy72"
diff --git a/code/modules/projectiles/guns/rifles.dm b/code/modules/projectiles/guns/rifles.dm
index a5b096b1e4..ca02ebbfaf 100644
--- a/code/modules/projectiles/guns/rifles.dm
+++ b/code/modules/projectiles/guns/rifles.dm
@@ -31,7 +31,6 @@
/obj/item/weapon/gun/rifle/unique_action(mob/user)
cock(user)
-
//-------------------------------------------------------
//M41A PULSE RIFLE
@@ -1288,7 +1287,7 @@
/obj/item/weapon/gun/rifle/type71
name = "\improper Type 71 pulse rifle"
- desc = "The primary service rifle of the UPP space forces, the Type 71 is an ergonomic, lightweight pulse rifle chambered in 5.45x39mm. In accordance with doctrinal principles of overmatch and suppression, the rifle has a high rate of fire and a high-capacity casket magazine. Despite lackluster precision, an integrated recoil-dampening mechanism makes the rifle surprisingly controllable in bursts."
+ desc = "The primary service rifle of the UPP space forces, the Type 71 is an ergonomic, lightweight pulse rifle chambered in 10x31mm. In accordance with doctrinal principles of overmatch and suppression, the rifle has a high rate of fire and a high-capacity casket magazine. Despite lackluster precision, an integrated recoil-dampening mechanism makes the rifle surprisingly controllable in bursts."
icon = 'icons/obj/items/weapons/guns/guns_by_faction/upp.dmi'
icon_state = "type71"
item_state = "type71"
@@ -1336,7 +1335,7 @@
scatter = SCATTER_AMOUNT_TIER_6
burst_scatter_mult = SCATTER_AMOUNT_TIER_10
scatter_unwielded = SCATTER_AMOUNT_TIER_4
- damage_mult = BASE_BULLET_DAMAGE_MULT //10~ more damage than m41, as well as higher ap from bullet, slightly higher DPS, 133>137.5
+ damage_mult = BASE_BULLET_DAMAGE_MULT
recoil_unwielded = RECOIL_AMOUNT_TIER_3
/obj/item/weapon/gun/rifle/type71/handle_starting_attachment()
diff --git a/code/modules/projectiles/magazines/misc.dm b/code/modules/projectiles/magazines/misc.dm
index 9e832a2a05..cca2e4c020 100644
--- a/code/modules/projectiles/magazines/misc.dm
+++ b/code/modules/projectiles/magazines/misc.dm
@@ -32,14 +32,14 @@
gun_type = /obj/item/weapon/gun/m60
/obj/item/ammo_magazine/pkp
- name = "QYJ-72 ammo box (7.62x54mmR)"
- desc = "A 250 round box for the UPP's standard GPMG, the QYJ-72. Chambered in 7.62x54mmR."
- caliber = "7.62x54mmR"
+ name = "QYJ-72 ammo box (10x31mm)"
+ desc = "A 250 round box for the UPP's standard GPMG, the QYJ-72. Chambered in 10x31mm."
+ caliber = "10x31mm"
icon = 'icons/obj/items/weapons/guns/ammo_by_faction/upp.dmi'
icon_state = "qjy72"
matter = list("metal" = 10000)
- default_ammo = /datum/ammo/bullet/pkp
+ default_ammo = /datum/ammo/bullet/rifle/heavy/upp
max_rounds = 250
reload_delay = 12
gun_type = /obj/item/weapon/gun/pkp
diff --git a/code/modules/projectiles/magazines/rifles.dm b/code/modules/projectiles/magazines/rifles.dm
index d56995d969..db942a5215 100644
--- a/code/modules/projectiles/magazines/rifles.dm
+++ b/code/modules/projectiles/magazines/rifles.dm
@@ -89,17 +89,11 @@
bonus_overlay = "m41a_mk1_overlay"
/obj/item/ammo_magazine/rifle/m41aMK1/rubber
- name = "\improper M41A Less Lethal magazine"
+ name = "\improper M41A rubber magazine"
desc = "A long rectangular box magazine for the M41A. Holds 99 caseless 10x24mm less lethal rubber bullets. Be careful, they're LESS, lethal, not NON, lethal."
default_ammo = /datum/ammo/bullet/rifle/rubber
ammo_band_color = AMMO_BAND_COLOR_RUBBER
-/obj/item/ammo_magazine/rifle/m41aMK1/training
- name = "\improper M41A training magazine"
- desc = "A long rectangular box magazine for the M41A. Holds 99 caseless 10x24mm training rounds."
- default_ammo = /datum/ammo/bullet/rifle/rubber
- ammo_band_color = AMMO_BAND_COLOR_TRAINING
-
/obj/item/ammo_magazine/rifle/m41aMK1/ap
name = "\improper M41A AP magazine (10x24mm)"
desc = "A long rectangular box magazine for the M41A. Holds 99 caseless 10x24mm steelcore armor piercing rounds."
@@ -326,27 +320,27 @@
//UPP TYPE 71 RIFLE
/obj/item/ammo_magazine/rifle/type71
- name = "\improper Type 71 magazine (5.45x39mm)"
- desc = "A 5.45x39mm high-capacity casket magazine for the Type 71 rifle."
- caliber = "5.45x39mm"
+ name = "\improper Type 71 magazine (10x31mm)"
+ desc = "A 10x31mm high-capacity casket magazine for the Type 71 rifle."
+ caliber = "10x31mm"
icon = 'icons/obj/items/weapons/guns/ammo_by_faction/upp.dmi'
icon_state = "type71"
ammo_band_icon = "+type71_band"
ammo_band_icon_empty = "+type71_band_e"
- default_ammo = /datum/ammo/bullet/rifle/type71
+ default_ammo = /datum/ammo/bullet/rifle/heavy/upp
max_rounds = 60
gun_type = /obj/item/weapon/gun/rifle/type71
/obj/item/ammo_magazine/rifle/type71/ap
- name = "\improper Type 71 AP magazine (5.45x39mm)"
- desc = "A 5.45x39mm high-capacity casket magazine containing armor piercing rounds for the Type 71 rifle."
- default_ammo = /datum/ammo/bullet/rifle/type71/ap
+ name = "\improper Type 71 AP magazine (10x31mm)"
+ desc = "A 10x31mm high-capacity casket magazine containing armor piercing rounds for the Type 71 rifle."
+ default_ammo = /datum/ammo/bullet/rifle/heavy/upp/ap
ammo_band_color = AMMO_BAND_COLOR_AP
/obj/item/ammo_magazine/rifle/type71/heap
- name = "\improper Type 71 HEAP magazine (5.45x39mm)"
- desc = "A 5.45x39mm high-capacity casket magazine containing the standard high explosive armor piercing rounds for the Type 71 rifle."
- default_ammo = /datum/ammo/bullet/rifle/type71/heap
+ name = "\improper Type 71 HEAP magazine (10x31mm)"
+ desc = "A 10x31mm high-capacity casket magazine containing the standard high explosive armor piercing rounds for the Type 71 rifle."
+ default_ammo = /datum/ammo/bullet/rifle/heavy/upp/heap
ammo_band_color = AMMO_BAND_COLOR_HEAP
//-------------------------------------------------------
diff --git a/code/modules/projectiles/magazines/specialist.dm b/code/modules/projectiles/magazines/specialist.dm
index 7706df64cb..38333d410d 100644
--- a/code/modules/projectiles/magazines/specialist.dm
+++ b/code/modules/projectiles/magazines/specialist.dm
@@ -67,28 +67,28 @@
//M4RA magazines
/obj/item/ammo_magazine/rifle/m4ra/custom
- name = "\improper A19 HV magazine (10x24mm)"
+ name = "\improper A19 HV magazine (10x28mm)"
desc = "A magazine of A19 high velocity rounds for use in the M4RA custom battle rifle. The M4RA custom battle rifle is the only gun that can chamber these rounds."
icon_state = "a19"
- default_ammo = /datum/ammo/bullet/rifle/m4ra
- max_rounds = 18
+ default_ammo = /datum/ammo/bullet/rifle/heavy/spec
+ max_rounds = 30
gun_type = /obj/item/weapon/gun/rifle/m4ra_custom
ammo_band_icon = "+a19_band"
ammo_band_icon_empty = "+a19_band_e"
/obj/item/ammo_magazine/rifle/m4ra/custom/incendiary
- name = "\improper A19 HV incendiary magazine (10x24mm)"
+ name = "\improper A19 HV incendiary magazine (10x28mm)"
desc = "A magazine of A19 HV incendiary rounds for use in the M4RA battle rifle. The M4RA battle rifle is the only gun that can chamber these rounds."
- default_ammo = /datum/ammo/bullet/rifle/m4ra/incendiary
- max_rounds = 18
+ default_ammo = /datum/ammo/bullet/rifle/heavy/spec/incendiary
+ max_rounds = 30
gun_type = /obj/item/weapon/gun/rifle/m4ra_custom
ammo_band_color = AMMO_BAND_COLOR_INCENDIARY
/obj/item/ammo_magazine/rifle/m4ra/custom/impact
- name = "\improper A19 HV high impact magazine (10x24mm)"
+ name = "\improper A19 HV high impact magazine (10x28mm)"
desc = "A magazine of A19 HV high impact rounds for use in the M4RA battle rifle. The M4RA battle rifle is the only gun that can chamber these rounds."
- default_ammo = /datum/ammo/bullet/rifle/m4ra/impact
- max_rounds = 18
+ default_ammo = /datum/ammo/bullet/rifle/heavy/spec/impact
+ max_rounds = 30
gun_type = /obj/item/weapon/gun/rifle/m4ra_custom
ammo_band_color = AMMO_BAND_COLOR_HIGH_IMPACT