diff --git a/code/__DEFINES/stats.dm b/code/__DEFINES/stats.dm
index 1810d01e1d..bc7cbfc4a4 100644
--- a/code/__DEFINES/stats.dm
+++ b/code/__DEFINES/stats.dm
@@ -8,7 +8,11 @@
#define FACEHUG_TIER_3 100
#define FACEHUG_TIER_4 1000
+/// Consecutive rounds this player has readied up and failed to get a slot.
+#define PLAYER_STAT_UNASSIGNED_ROUND_STREAK "unassigned_round_streak"
+
// Stat Categories
#define STAT_CATEGORY_MARINE "marine"
#define STAT_CATEGORY_XENO "xeno"
#define STAT_CATEGORY_YAUTJA "yautja"
+#define STAT_CATEGORY_MISC "misc"
diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm
index ca6b0ab008..d97f35a146 100644
--- a/code/__HELPERS/_lists.dm
+++ b/code/__HELPERS/_lists.dm
@@ -143,6 +143,43 @@
return null
+/**
+ * Shuffles a provided list based on the weight of each element.
+ *
+ * Higher weight elements have a higher probability of being picked and tend to appear earlier in the list.
+ * Unweighted elements are never picked and are discarded.
+ *
+ * Arguments:
+ * * list_to_pick - assoc list in the form of: element = weight
+ *
+ * Returns list of shuffled weighted elements
+ */
+/proc/shuffle_weight(list/list_to_pick)
+ list_to_pick = list_to_pick.Copy() //not inplace
+
+ var/total_weight = 0
+ for(var/item in list_to_pick)
+ if(list_to_pick[item])
+ total_weight += list_to_pick[item]
+ else
+ list_to_pick -= item //discard unweighted
+
+ var/list_to_return = list()
+
+ while(length(list_to_pick))
+ var/target_weight = rand(1, total_weight)
+ for(var/item in list_to_pick)
+ var/item_weight = list_to_pick[item]
+ target_weight -= item_weight
+
+ if(target_weight <= 0)
+ list_to_return += item
+ list_to_pick -= item
+ total_weight -= item_weight
+ break
+
+ return list_to_return
+
/**
* Removes any null entries from the list
* Returns TRUE if the list had nulls, FALSE otherwise
diff --git a/code/controllers/subsystem/item_cleanup.dm b/code/controllers/subsystem/item_cleanup.dm
index 35d1fc2859..f23422329b 100644
--- a/code/controllers/subsystem/item_cleanup.dm
+++ b/code/controllers/subsystem/item_cleanup.dm
@@ -3,7 +3,7 @@ var/global/list/item_cleanup_list = list()
SUBSYSTEM_DEF(item_cleanup)
name = "Item Cleanup"
wait = 10 MINUTES //should be adjusted for WO
- var/start_processing_time = 35 MINUTES //should be adjusted for WO
+ var/start_processing_time = INFINITY //should be adjusted for WO
var/percentage_of_garbage_to_delete = 0.5 //should be adjusted for WO
//We keep a separate, private list
//So we don't get instant deletions of items
diff --git a/code/controllers/subsystem/xeno_ai.dm b/code/controllers/subsystem/xeno_ai.dm
index 9cd608f211..6f22d17e42 100644
--- a/code/controllers/subsystem/xeno_ai.dm
+++ b/code/controllers/subsystem/xeno_ai.dm
@@ -11,6 +11,43 @@ SUBSYSTEM_DEF(xeno_ai)
var/ai_kill = FALSE
+ //currently the only caste that has an actual targeting difference is facehugger
+ /// Assoc list of valid targets by hive & caste, in the form of: hive = (/caste = targets)
+ var/list/target_cache = list()
+
+/datum/controller/subsystem/xeno_ai/proc/get_valid_targets(mob/living/carbon/xenomorph/xeno)
+ var/datum/hive_status/hive = xeno.hive
+ LAZYINITLIST(target_cache[hive])
+
+ var/caste = xeno.type
+ if(target_cache[hive][caste])
+ return target_cache[hive][caste]
+
+ var/list/valid_targets = list()
+ target_cache[hive][caste] = valid_targets
+
+ for(var/mob/living/carbon/potential_target in GLOB.alive_mob_list)
+ if(!potential_target.ai_can_target(xeno))
+ continue
+
+ valid_targets += potential_target
+
+ for(var/obj/vehicle/multitile/potential_vehicle_target as anything in GLOB.all_multi_vehicles)
+ if(potential_vehicle_target.health <= 0)
+ continue
+
+ if(hive.faction_is_ally(potential_vehicle_target.vehicle_faction))
+ continue
+
+ if(!length(valid_targets & potential_vehicle_target.interior.get_passengers()))
+ continue
+
+ valid_targets += potential_vehicle_target
+
+ valid_targets += GLOB.all_active_defenses
+
+ return valid_targets
+
/datum/controller/subsystem/xeno_ai/stat_entry(msg)
msg = "P:[length(ai_mobs)]"
return ..()
@@ -26,6 +63,10 @@ SUBSYSTEM_DEF(xeno_ai)
message_admins("[key_name_admin(usr)] [SSxeno_ai.ai_kill? "killed" : "revived"] all xeno AI.")
/datum/controller/subsystem/xeno_ai/fire(resumed = FALSE)
+ for(var/datum/hive_status/hive as anything in target_cache)
+ for(var/caste as anything in target_cache[hive])
+ target_cache[hive][caste] = null
+
if(ai_kill)
return
diff --git a/code/datums/ammo/bullet/pistol.dm b/code/datums/ammo/bullet/pistol.dm
index 3ce778bb1f..d4bdbc3ae4 100644
--- a/code/datums/ammo/bullet/pistol.dm
+++ b/code/datums/ammo/bullet/pistol.dm
@@ -100,7 +100,7 @@
headshot_state = HEADSHOT_OVERLAY_MEDIUM
accuracy = HIT_ACCURACY_TIER_3
accuracy_var_low = PROJECTILE_VARIANCE_TIER_6
- damage = 55
+ damage = 45
penetration = ARMOR_PENETRATION_TIER_3
shrapnel_chance = SHRAPNEL_CHANCE_TIER_2
diff --git a/code/datums/ammo/bullet/shotgun.dm b/code/datums/ammo/bullet/shotgun.dm
index cf13fb9b01..b2bbf607ce 100644
--- a/code/datums/ammo/bullet/shotgun.dm
+++ b/code/datums/ammo/bullet/shotgun.dm
@@ -11,28 +11,30 @@
name = "shotgun slug"
handful_state = "slug_shell"
- accurate_range = 6
- max_range = 8
- damage = 70
- penetration = ARMOR_PENETRATION_TIER_4
+ accurate_range = 7
+ max_range = 14
+ damage = 90
+ penetration = ARMOR_PENETRATION_TIER_6
+ damage_var_low = PROJECTILE_VARIANCE_TIER_10
+ damage_var_high = PROJECTILE_VARIANCE_TIER_1
damage_armor_punch = 2
handful_state = "slug_shell"
/datum/ammo/bullet/shotgun/slug/on_hit_mob(mob/M,obj/projectile/P)
- knockback(M, P, 6)
+ knockback(M, P, 8)
/datum/ammo/bullet/shotgun/slug/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!"))
- target.KnockDown(0.5) // If you ask me the KD should be left out, but players like their visual cues
- target.Stun(0.5)
- target.apply_effect(1, SUPERSLOW)
- target.apply_effect(3, SLOW)
+ target.KnockDown(3.5)
+ target.Stun(3.5)
+ target.Slow(5)
else
if(!isyautja(living_mob)) //Not predators.
- living_mob.apply_effect(1, SUPERSLOW)
- living_mob.apply_effect(2, SLOW)
+ living_mob.KnockDown(2)
+ living_mob.Stun(2)
+ living_mob.Superslow(5)
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)
@@ -42,11 +44,9 @@
handful_state = "beanbag_slug"
icon_state = "beanbag"
flags_ammo_behavior = AMMO_BALLISTIC|AMMO_IGNORE_RESIST
- sound_override = 'sound/weapons/gun_shotgun_riot.ogg'
-
max_range = 12
shrapnel_chance = 0
- damage = 0
+ damage = 20
stamina_damage = 45
accuracy = HIT_ACCURACY_TIER_3
shell_speed = AMMO_SPEED_TIER_3
@@ -127,19 +127,36 @@
accuracy_var_low = PROJECTILE_VARIANCE_TIER_5
accuracy_var_high = PROJECTILE_VARIANCE_TIER_5
- accurate_range = 4
- max_range = 4
- damage = 65
- damage_var_low = PROJECTILE_VARIANCE_TIER_8
- damage_var_high = PROJECTILE_VARIANCE_TIER_8
+ accurate_range = 7
+ max_range = 9
+ damage = 50
+ damage_var_low = PROJECTILE_VARIANCE_TIER_10
+ damage_var_high = PROJECTILE_VARIANCE_TIER_1
penetration = ARMOR_PENETRATION_TIER_1
- bonus_projectiles_amount = EXTRA_PROJECTILES_TIER_3
+ bonus_projectiles_amount = EXTRA_PROJECTILES_TIER_7
shell_speed = AMMO_SPEED_TIER_2
damage_armor_punch = 0
pen_armor_punch = 0
handful_state = "buckshot_shell"
multiple_handful_name = TRUE
+/datum/ammo/bullet/shotgun/buckshot/on_hit_mob(mob/M,obj/projectile/P)
+ knockback(M, P, 4)
+/datum/ammo/bullet/shotgun/buckshot/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!"))
+ target.KnockDown(2.5)
+ target.Stun(2.5)
+ target.Slow(4)
+ else
+ if(!isyautja(living_mob)) //Not predators.
+ living_mob.KnockDown(3)
+ living_mob.Stun(3)
+ living_mob.Slow(5)
+ 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/shotgun/buckshot/incendiary
name = "incendiary buckshot shell"
handful_state = "incen_buckshot"
@@ -178,8 +195,8 @@
accuracy_var_low = PROJECTILE_VARIANCE_TIER_6
accuracy_var_high = PROJECTILE_VARIANCE_TIER_6
accurate_range = 4
- max_range = 4
- damage = 65
+ max_range = 6
+ damage = 50
damage_var_low = PROJECTILE_VARIANCE_TIER_8
damage_var_high = PROJECTILE_VARIANCE_TIER_8
penetration = ARMOR_PENETRATION_TIER_1
@@ -191,6 +208,23 @@
/datum/ammo/bullet/shotgun/spread/masterkey
damage = 20
+/datum/ammo/bullet/shotgun/spread/on_hit_mob(mob/M,obj/projectile/P)
+ knockback(M, P, 4)
+/datum/ammo/bullet/shotgun/spread/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!"))
+ target.KnockDown(2.5)
+ target.Stun(2.5)
+ target.Slow(4)
+ else
+ if(!isyautja(living_mob)) //Not predators.
+ living_mob.KnockDown(3)
+ living_mob.Stun(3)
+ living_mob.Slow(5)
+ 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/shotgun/spread/special
name = "additional buckshot, USCM special type"
@@ -209,24 +243,53 @@
handful_state = "heavy_buckshot"
multiple_handful_name = TRUE
bonus_projectiles_type = /datum/ammo/bullet/shotgun/heavy/buckshot/spread
- bonus_projectiles_amount = EXTRA_PROJECTILES_TIER_3
- accurate_range = 3
- max_range = 3
+ bonus_projectiles_amount = EXTRA_PROJECTILES_TIER_8
+ accurate_range = 8
+ max_range = 10
damage = 75
- penetration = 0
+ penetration = ARMOR_PENETRATION_TIER_2
shell_speed = AMMO_SPEED_TIER_2
damage_armor_punch = 0
pen_armor_punch = 0
/datum/ammo/bullet/shotgun/heavy/buckshot/on_hit_mob(mob/M,obj/projectile/P)
- knockback(M,P)
+ knockback(M,P,5)
+/datum/ammo/bullet/shotgun/heavy/buckshot/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!"))
+ target.KnockDown(5)
+ target.Stun(5)
+ target.Slow(8)
+ else
+ if(!isyautja(living_mob)) //Not predators.
+ living_mob.KnockDown(2)
+ living_mob.Stun(2)
+ living_mob.Slow(6)
+ 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/shotgun/heavy/buckshot/spread
name = "additional heavy buckshot"
- max_range = 4
+ max_range = 7
scatter = SCATTER_AMOUNT_TIER_1
bonus_projectiles_amount = 0
+/datum/ammo/bullet/shotgun/heavy/buckshot/spread/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!"))
+ target.KnockDown(5)
+ target.Stun(5)
+ target.Slow(8)
+ else
+ if(!isyautja(living_mob)) //Not predators.
+ living_mob.KnockDown(2)
+ living_mob.Stun(2)
+ living_mob.Slow(6)
+ 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/shotgun/heavy/buckshot/special
bonus_projectiles_type = /datum/ammo/bullet/shotgun/heavy/buckshot/spread/special
bonus_projectiles_amount = EXTRA_PROJECTILES_TIER_8
@@ -251,8 +314,8 @@
multiple_handful_name = TRUE
damage_type = BURN
damage = 60
- accurate_range = 3
- max_range = 4
+ accurate_range = 4
+ max_range = 6
bonus_projectiles_type = /datum/ammo/bullet/shotgun/heavy/buckshot/dragonsbreath/spread
/datum/ammo/bullet/shotgun/heavy/buckshot/dragonsbreath/set_bullet_traits()
@@ -264,9 +327,7 @@
/datum/ammo/bullet/shotgun/heavy/buckshot/dragonsbreath/spread
name = "additional dragon's breath"
bonus_projectiles_amount = 0
- accurate_range = 4
- max_range = 5 //make use of the ablaze property
- shell_speed = AMMO_SPEED_TIER_4 // so they hit before the main shell stuns
+ shell_speed = AMMO_SPEED_TIER_4
/datum/ammo/bullet/shotgun/heavy/slug
@@ -274,26 +335,26 @@
handful_state = "heavy_slug"
accurate_range = 7
- max_range = 8
- damage = 90 //ouch.
- penetration = ARMOR_PENETRATION_TIER_6
+ max_range = 17
+ damage = 120 //ouch.
+ penetration = ARMOR_PENETRATION_TIER_9
damage_armor_punch = 2
/datum/ammo/bullet/shotgun/heavy/slug/on_hit_mob(mob/M,obj/projectile/P)
- knockback(M, P, 7)
+ knockback(M, P, 8)
/datum/ammo/bullet/shotgun/heavy/slug/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!"))
- target.KnockDown(0.5) // If you ask me the KD should be left out, but players like their visual cues
- target.Stun(0.5)
- target.apply_effect(2, SUPERSLOW)
- target.apply_effect(5, SLOW)
+ target.KnockDown(7)
+ target.Stun(7)
+ target.Slow(10)
else
if(!isyautja(living_mob)) //Not predators.
- living_mob.apply_effect(1, SUPERSLOW)
- living_mob.apply_effect(2, SLOW)
+ living_mob.KnockDown(8)
+ living_mob.Stun(8)
+ living_mob.Superslow(15)
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)
@@ -303,14 +364,13 @@
headshot_state = HEADSHOT_OVERLAY_MEDIUM
handful_state = "heavy_beanbag"
flags_ammo_behavior = AMMO_BALLISTIC|AMMO_IGNORE_RESIST
- sound_override = 'sound/weapons/gun_shotgun_riot.ogg'
max_range = 7
shrapnel_chance = 0
- damage = 0
+ damage = 25
stamina_damage = 100
- accuracy = HIT_ACCURACY_TIER_2
- shell_speed = AMMO_SPEED_TIER_2
+ accuracy = HIT_ACCURACY_TIER_6
+ shell_speed = 3
/datum/ammo/bullet/shotgun/heavy/beanbag/on_hit_mob(mob/M, obj/projectile/P)
if(!M || M == P.firer)
diff --git a/code/datums/ammo/bullet/sniper.dm b/code/datums/ammo/bullet/sniper.dm
index 5f888efb1d..d8d751ca40 100644
--- a/code/datums/ammo/bullet/sniper.dm
+++ b/code/datums/ammo/bullet/sniper.dm
@@ -128,7 +128,7 @@
/datum/ammo/bullet/sniper/anti_materiel/vulture
damage = 400 // Fully intended to vaporize anything smaller than a mini cooper
- accurate_range_min = 10
+ accurate_range_min = 0
handful_state = "vulture_bullet"
sound_hit = 'sound/bullets/bullet_vulture_impact.ogg'
flags_ammo_behavior = AMMO_BALLISTIC|AMMO_SNIPER|AMMO_IGNORE_COVER|AMMO_ANTIVEHICLE
diff --git a/code/datums/components/xeno/ai_behavior_overrides/capture_override_behavior.dm b/code/datums/components/xeno/ai_behavior_overrides/capture_override_behavior.dm
index 96eaa7d8fb..1f84842e54 100644
--- a/code/datums/components/xeno/ai_behavior_overrides/capture_override_behavior.dm
+++ b/code/datums/components/xeno/ai_behavior_overrides/capture_override_behavior.dm
@@ -22,7 +22,7 @@
if(isfacehugger(checked_xeno))
return FALSE
- var/mob/parent_mob = parent
+ var/mob/living/parent_mob = parent
var/captee_stat = parent_mob.stat
var/mob/pulledby = parent_mob.pulledby
@@ -45,7 +45,7 @@
if(distance > 10)
return FALSE
- if(captee_stat == CONSCIOUS)
+ if(captee_stat == CONSCIOUS && !(locate(/datum/effects/crit) in parent_mob.effects_list))
return FALSE
if(isxeno(pulledby) && pulledby != checked_xeno)
diff --git a/code/datums/effects/mob_crit/human_crit.dm b/code/datums/effects/mob_crit/human_crit.dm
index ff4d0eeda0..8b25b2bc2a 100644
--- a/code/datums/effects/mob_crit/human_crit.dm
+++ b/code/datums/effects/mob_crit/human_crit.dm
@@ -8,7 +8,8 @@
qdel(src)
return FALSE
- affected_mob.apply_effect(3, PARALYZE)
+ affected_mob.KnockDown(3)
+ affected_mob.Stun(3)
if(!affected_mob.reagents || !affected_mob.reagents.has_reagent("inaprovaline"))
affected_mob.apply_damage(1, OXY)
diff --git a/code/datums/effects/pain/human_pain.dm b/code/datums/effects/pain/human_pain.dm
index 9c8070596b..bddd793077 100644
--- a/code/datums/effects/pain/human_pain.dm
+++ b/code/datums/effects/pain/human_pain.dm
@@ -58,7 +58,8 @@
var/mob/living/carbon/affected_mob = affected_atom
if(do_once)
- affected_mob.apply_effect(3, PARALYZE)
+ affected_mob.KnockDown(3)
+ affected_mob.Stun(3)
do_once = FALSE
affected_mob.EyeBlur(2)
@@ -83,7 +84,8 @@
affected_mob.EyeBlur(2)
if(affected_mob.pain && affected_mob.pain.feels_pain)
affected_mob.TalkStutter(2)
- affected_mob.apply_effect(2, PARALYZE)
+ affected_mob.KnockDown(2)
+ affected_mob.Stun(2)
if(!affected_mob.reagents || !affected_mob.reagents.has_reagent("inaprovaline"))
affected_mob.apply_damage(0.5, OXY)
diff --git a/code/datums/factions/clf.dm b/code/datums/factions/clf.dm
index 5456084b1a..45cedf3bbc 100644
--- a/code/datums/factions/clf.dm
+++ b/code/datums/factions/clf.dm
@@ -58,19 +58,19 @@
list("MP5 Magazine (9mm)", 5, /obj/item/ammo_magazine/smg/mp5, null, VENDOR_ITEM_REGULAR),
list("SIDEARMS", 0, null, null, null),
- list("88 Mod 4 Combat Pistol", 15, /obj/item/weapon/gun/pistol/mod88, null, VENDOR_ITEM_REGULAR),
+ list("VP70 Combat Pistol", 15, /obj/item/weapon/gun/pistol/vp70, null, VENDOR_ITEM_REGULAR),
list("Beretta 92FS Pistol", 15, /obj/item/weapon/gun/pistol/b92fs, null, VENDOR_ITEM_REGULAR),
- list("CMB Spearhead Autorevolver", 15, /obj/item/weapon/gun/revolver/cmb, null, VENDOR_ITEM_REGULAR),
+ list("CMB Spearhead revolver", 15, /obj/item/weapon/gun/revolver/spearhead, null, VENDOR_ITEM_REGULAR),
list("Holdout Pistol", 10, /obj/item/weapon/gun/pistol/holdout, null, VENDOR_ITEM_REGULAR),
list("KT-42 Automag", 15, /obj/item/weapon/gun/pistol/kt42, null, VENDOR_ITEM_REGULAR),
list("S&W .357 Revolver", 15, /obj/item/weapon/gun/revolver/small, null, VENDOR_ITEM_REGULAR),
list("SIDEARM AMMUNITION", 0, null, null, null),
- list("88M4 Magazine (9mm)", 5, /obj/item/ammo_magazine/pistol/mod88/normalpoint, null, VENDOR_ITEM_REGULAR),
+ list("VP70 Magazine (9mm)", 5, /obj/item/ammo_magazine/pistol/vp70, null, VENDOR_ITEM_REGULAR),
list("Beretta 92FS Magazine (9mm)", 5, /obj/item/ammo_magazine/pistol/b92fs, null, VENDOR_ITEM_REGULAR),
list("KT-42 Magazine (.44)", 5, /obj/item/ammo_magazine/pistol/kt42, null, VENDOR_ITEM_REGULAR),
- list("Spearhead Speed Loader (.357)", 10, /obj/item/ammo_magazine/revolver/cmb/normalpoint, VENDOR_ITEM_REGULAR),
- list("Hollowpoint Spearhead Speed Loader (.357)", 5, /obj/item/ammo_magazine/revolver/cmb, VENDOR_ITEM_REGULAR),
+ list("Spearhead Speed Loader (.357)", 10, /obj/item/ammo_magazine/revolver/spearhead, VENDOR_ITEM_REGULAR),
+ list("Hollowpoint Spearhead Speed Loader (.357)", 5, /obj/item/ammo_magazine/revolver/spearhead, VENDOR_ITEM_REGULAR),
list("S&W Speed Loader (.357)", 5, /obj/item/ammo_magazine/revolver/small, null, VENDOR_ITEM_REGULAR),
list("Tiny Pistol Magazine (.22)", 5, /obj/item/ammo_magazine/pistol/holdout, null, VENDOR_ITEM_REGULAR),
@@ -126,19 +126,19 @@
list("MP5 Magazine (9mm)", 60, /obj/item/ammo_magazine/smg/mp5, VENDOR_ITEM_REGULAR),
list("SIDEARMS", -1, null, null),
- list("88 Mod 4 Combat Pistol", 20, /obj/item/weapon/gun/pistol/mod88, VENDOR_ITEM_REGULAR),
+ list("VP70 Combat Pistol", 20, /obj/item/weapon/gun/pistol/vp70, VENDOR_ITEM_REGULAR),
list("Beretta 92FS Pistol", 20, /obj/item/weapon/gun/pistol/b92fs, VENDOR_ITEM_REGULAR),
- list("CMB Spearhead Autorevolver", 20, /obj/item/weapon/gun/revolver/cmb, VENDOR_ITEM_REGULAR),
+ list("CMB Spearhead revolver", 20, /obj/item/weapon/gun/revolver/spearhead, VENDOR_ITEM_REGULAR),
list("Holdout Pistol", 20, /obj/item/weapon/gun/pistol/holdout, VENDOR_ITEM_REGULAR),
list("KT-42 Automag", 20, /obj/item/weapon/gun/pistol/kt42, VENDOR_ITEM_REGULAR),
list("S&W .357 Revolver", 20, /obj/item/weapon/gun/revolver/small, VENDOR_ITEM_REGULAR),
list("SIDEARM AMMUNITION", -1, null, null),
- list("88M4 Magazine (9mm)", 40, /obj/item/ammo_magazine/pistol/mod88/normalpoint, VENDOR_ITEM_REGULAR),
+ list("VP70 Magazine (9mm)", 40, /obj/item/ammo_magazine/pistol/vp70, VENDOR_ITEM_REGULAR),
list("Beretta 92FS Magazine (9mm)", 40, /obj/item/ammo_magazine/pistol/b92fs, VENDOR_ITEM_REGULAR),
list("KT-42 Magazine (.44)", 40, /obj/item/ammo_magazine/pistol/kt42, VENDOR_ITEM_REGULAR),
- list("Spearhead Speed Loader (.357)", 40, /obj/item/ammo_magazine/revolver/cmb/normalpoint, VENDOR_ITEM_REGULAR),
- list("Hollowpoint Spearhead Speed Loader (.357)", 40, /obj/item/ammo_magazine/revolver/cmb, VENDOR_ITEM_REGULAR),
+ list("Spearhead Speed Loader (.357)", 40, /obj/item/ammo_magazine/revolver/spearhead, VENDOR_ITEM_REGULAR),
+ list("Hollowpoint Spearhead Speed Loader (.357)", 40, /obj/item/ammo_magazine/revolver/spearhead, VENDOR_ITEM_REGULAR),
list("S&W Speed Loader (.357)", 40, /obj/item/ammo_magazine/revolver/small, VENDOR_ITEM_REGULAR),
list("Tiny Pistol Magazine (.22)", 40, /obj/item/ammo_magazine/pistol/holdout, VENDOR_ITEM_REGULAR),
diff --git a/code/datums/factions/pmc.dm b/code/datums/factions/pmc.dm
index 186da1721c..29a9462d71 100644
--- a/code/datums/factions/pmc.dm
+++ b/code/datums/factions/pmc.dm
@@ -77,11 +77,11 @@
list("SIDEARMS", 0, null, null, null),
list("VP78 pistol", 20, /obj/item/weapon/gun/pistol/vp78, null, VENDOR_ITEM_REGULAR),
- list("88 Mod 4 Combat Pistol", 15, /obj/item/weapon/gun/pistol/mod88, null, VENDOR_ITEM_REGULAR),
+ list("VP70 Combat Pistol", 15, /obj/item/weapon/gun/pistol/vp70, null, VENDOR_ITEM_REGULAR),
list("SIDEARM AMMUNITION", 0, null, null, null),
list("VP78 magazine (9mm)", 5, /obj/item/ammo_magazine/pistol/vp78, null, VENDOR_ITEM_REGULAR),
- list("88M4 Magazine (9mm)", 5, /obj/item/ammo_magazine/pistol/mod88/normalpoint, null, VENDOR_ITEM_REGULAR),
+ list("VP70 Magazine (9mm)", 5, /obj/item/ammo_magazine/pistol/vp70, null, VENDOR_ITEM_REGULAR),
list("ATTACHMENTS", 0, null, null, null),
list("Angled Grip", 15, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
@@ -117,11 +117,11 @@
list("SIDEARMS", 0, null, null, null),
list("VP78 pistol", 20, /obj/item/weapon/gun/pistol/vp78, null, VENDOR_ITEM_REGULAR),
- list("88 Mod 4 Combat Pistol", 30, /obj/item/weapon/gun/pistol/mod88, null, VENDOR_ITEM_REGULAR),
+ list("VP70 Combat Pistol", 30, /obj/item/weapon/gun/pistol/vp70, null, VENDOR_ITEM_REGULAR),
list("SIDEARM AMMUNITION", 0, null, null, null),
list("VP78 magazine (9mm)", 50, /obj/item/ammo_magazine/pistol/vp78, null, VENDOR_ITEM_REGULAR),
- list("88M4 Magazine (9mm)", 50, /obj/item/ammo_magazine/pistol/mod88/normalpoint, null, VENDOR_ITEM_REGULAR),
+ list("VP70 Magazine (9mm)", 50, /obj/item/ammo_magazine/pistol/vp70, null, VENDOR_ITEM_REGULAR),
list("UTILITIES", 0, null, null, null),
list("M94 Marking Flare Pack", 30, /obj/item/storage/box/m94, null, VENDOR_ITEM_RECOMMENDED),
diff --git a/code/datums/factions/royalmarinescommando.dm b/code/datums/factions/royalmarinescommando.dm
index b5605ea61f..aa9db0f5f2 100644
--- a/code/datums/factions/royalmarinescommando.dm
+++ b/code/datums/factions/royalmarinescommando.dm
@@ -40,11 +40,11 @@
list("SIDEARMS", 0, null, null, null),
list("VP78 Pistol", 20, /obj/item/weapon/gun/pistol/vp78, null, VENDOR_ITEM_REGULAR),
- list("88 Mod 4 Combat Pistol", 15, /obj/item/weapon/gun/pistol/mod88, null, VENDOR_ITEM_REGULAR),
+ list("VP70 Combat Pistol", 15, /obj/item/weapon/gun/pistol/vp70, null, VENDOR_ITEM_REGULAR),
list("SIDEARM AMMUNITION", 0, null, null, null),
list("VP78 magazine (9mm)", 5, /obj/item/ammo_magazine/pistol/vp78, null, VENDOR_ITEM_REGULAR),
- list("88M4 Magazine (9mm)", 5, /obj/item/ammo_magazine/pistol/mod88/normalpoint, null, VENDOR_ITEM_REGULAR),
+ list("VP70 Magazine (9mm)", 5, /obj/item/ammo_magazine/pistol/vp70, null, VENDOR_ITEM_REGULAR),
list("ATTACHMENTS", 0, null, null, null),
list("Angled Grip", 15, /obj/item/attachable/angledgrip, null, VENDOR_ITEM_REGULAR),
@@ -79,11 +79,11 @@
list("SIDEARMS", -1, null, null),
list("VP78 Pistol", 20, /obj/item/weapon/gun/pistol/vp78, null, VENDOR_ITEM_REGULAR),
- list("88 Mod 4 Combat Pistol", 15, /obj/item/weapon/gun/pistol/mod88, null, VENDOR_ITEM_REGULAR),
+ list("VP70 Combat Pistol", 15, /obj/item/weapon/gun/pistol/vp70, null, VENDOR_ITEM_REGULAR),
list("SIDEARM AMMUNITION", -1, null, null),
list("VP78 magazine (9mm)", 5, /obj/item/ammo_magazine/pistol/vp78, null, VENDOR_ITEM_REGULAR),
- list("88M4 Magazine (9mm)", 5, /obj/item/ammo_magazine/pistol/mod88/normalpoint, null, VENDOR_ITEM_REGULAR),
+ list("VP70 Magazine (9mm)", 5, /obj/item/ammo_magazine/pistol/vp70, null, VENDOR_ITEM_REGULAR),
list("UTILITIES", -1, null, null),
list("M94 Marking Flare Pack", 3, /obj/item/storage/box/m94, null, VENDOR_ITEM_RECOMMENDED),
diff --git a/code/datums/supply_packs/ammo.dm b/code/datums/supply_packs/ammo.dm
index 164511c25c..6fdb2b4f09 100644
--- a/code/datums/supply_packs/ammo.dm
+++ b/code/datums/supply_packs/ammo.dm
@@ -240,16 +240,16 @@
containername = "\improper shotgun flechette crate"
group = "Ammo"
-//------------------------For 88M4 ----------------
+//------------------------For vp70 ----------------
-/datum/supply_packs/ammo_mod88_mag_box_ap
- name = "Magazine box (88 Mod 4 AP, 16x mags)"
+/datum/supply_packs/ammo_vp70_mag_box_ap
+ name = "Magazine box (VP70, 16x mags)"
contains = list(
- /obj/item/ammo_box/magazine/mod88,
+ /obj/item/ammo_box/magazine/vp70,
)
cost = 20
containertype = /obj/structure/closet/crate/ammo
- containername = "\improper 88 Mod 4 AP magazines crate"
+ containername = "\improper VP70 magazines crate"
group = "Ammo"
//------------------------Special or non common magazines----------------
diff --git a/code/datums/supply_packs/black_market.dm b/code/datums/supply_packs/black_market.dm
index e70d47c6be..16811680f2 100644
--- a/code/datums/supply_packs/black_market.dm
+++ b/code/datums/supply_packs/black_market.dm
@@ -151,7 +151,7 @@ Non-USCM items, from CLF, UPP, colonies, etc. Mostly combat-related.
new /obj/item/ammo_magazine/smg/mac15(src)
new /obj/item/ammo_magazine/smg/mac15(src)
if(4) //upp
- new /obj/item/weapon/gun/shotgun/type23/riot_control(src)
+ new /obj/item/weapon/gun/shotgun/type23/riot(src)
new /obj/item/ammo_magazine/handful/shotgun/heavy/beanbag(src)
new /obj/item/ammo_magazine/handful/shotgun/heavy/beanbag(src)
new /obj/item/ammo_magazine/handful/shotgun/heavy/flechette(src)
@@ -410,12 +410,12 @@ Additionally, weapons that are way too good to put in the basically-flavor black
/datum/supply_packs/contraband/seized/cmb
name = "CMB Spearhead revolver (x5 magazines included)"
contains = list(
- /obj/item/weapon/gun/revolver/cmb,
- /obj/item/ammo_magazine/revolver/cmb,
- /obj/item/ammo_magazine/revolver/cmb,
- /obj/item/ammo_magazine/revolver/cmb,
- /obj/item/ammo_magazine/revolver/cmb,
- /obj/item/ammo_magazine/revolver/cmb,
+ /obj/item/weapon/gun/revolver/spearhead,
+ /obj/item/ammo_magazine/revolver/spearhead,
+ /obj/item/ammo_magazine/revolver/spearhead,
+ /obj/item/ammo_magazine/revolver/spearhead,
+ /obj/item/ammo_magazine/revolver/spearhead,
+ /obj/item/ammo_magazine/revolver/spearhead,
)
dollar_cost = 20
containertype = /obj/structure/largecrate/black_market
@@ -683,7 +683,7 @@ USCM spare items, miscellaneous gear that's too niche and distant (or restricted
contains = list(
/obj/item/ammo_magazine/smg/m39/rubber,
/obj/item/ammo_magazine/pistol/rubber,
- /obj/item/ammo_magazine/pistol/mod88/rubber,
+ /obj/item/ammo_magazine/pistol/vp70/rubber,
/obj/item/ammo_magazine/rifle/rubber,
/obj/item/ammo_magazine/rifle/m4ra/rubber,
/obj/item/ammo_magazine/shotgun/beanbag,
@@ -694,9 +694,9 @@ USCM spare items, miscellaneous gear that's too niche and distant (or restricted
/* - Misc. USCM weaponry - */
/datum/supply_packs/contraband/surplus/mk45_automag
- name = "surplus MK-45 Automagnum case"
+ name = "surplus HG 45 case"
dollar_cost = 35
- contains = list(/obj/item/storage/box/guncase/mk45_automag)
+ contains = list(/obj/item/storage/box/guncase/hg45)
containertype = /obj/structure/largecrate/black_market
/datum/supply_packs/contraband/surplus/nsg23_marine
@@ -927,13 +927,13 @@ This is where the RO can reclaim their lost honor and purchase the M44 custom, t
/datum/supply_packs/contraband/deep_storage/cartridge_bayonet
name = "M8 Cartridge Bayonet Kit"
- contains = list(/obj/item/storage/box/co2_knife)
+ contains = list(/obj/item/storage/box/loadout/co2_knife)
dollar_cost = 10
containertype = /obj/structure/largecrate/black_market
/datum/supply_packs/contraband/deep_storage/clf_holdout
name = "D18 Holdout Pistol"
- contains = list(/obj/item/storage/box/clf)
+ contains = list(/obj/item/storage/box/loadout/clf)
dollar_cost = 10
crate_heat = 2
containertype = /obj/structure/largecrate/black_market
diff --git a/code/datums/weather/weather_events/long.dm b/code/datums/weather/weather_events/long.dm
new file mode 100644
index 0000000000..9e569dd172
--- /dev/null
+++ b/code/datums/weather/weather_events/long.dm
@@ -0,0 +1,48 @@
+// Weather events for Big Red
+/datum/weather_event/dust/infinite
+ name = "Duststorm (Infinite)"
+ length = INFINITY
+
+/datum/weather_event/sand/infinite
+ name = "Sandstorm (Infinite)"
+ length = INFINITY
+
+/datum/weather_event/rock/infinite
+ name = "Rockstorm (Infinite)"
+ length = INFINITY
+
+// Weather events for Chances Claim
+/datum/weather_event/light_rain/lv522/infinite
+ name = "LV522 Light Rain (Infinite)"
+ length = INFINITY
+
+// Weather events for LV624
+/datum/weather_event/light_rain/infinite
+ name = "Light Rain (Infinite)"
+ length = INFINITY
+
+/datum/weather_event/heavy_rain/infinite
+ name = "Heavy Rain (Infinite)"
+ length = INFINITY
+
+// Weather events for New Varadero
+/datum/weather_event/light_rain/varadero/infinite
+ name = "Tropical Storm (Infinite)"
+ length = INFINITY
+
+/datum/weather_event/monsoon/infinite
+ name = "Monsoon Warning (Infinite)"
+ length = INFINITY
+
+// Weather events for Sorokyne
+/datum/weather_event/snow/infinite
+ name = "Snow (Infinite)"
+ length = INFINITY
+
+/datum/weather_event/snowstorm/infinite
+ name = "Snowstorm (Infinite)"
+ length = INFINITY
+
+/datum/weather_event/blizzard/infinite
+ name = "Blizzard (Infinite)"
+ length = INFINITY
diff --git a/code/datums/weather/weather_events/lv522_chances_claim.dm b/code/datums/weather/weather_events/lv522_chances_claim.dm
index 6b7b296b8c..9d1ec84d71 100644
--- a/code/datums/weather/weather_events/lv522_chances_claim.dm
+++ b/code/datums/weather/weather_events/lv522_chances_claim.dm
@@ -1,4 +1,6 @@
/datum/weather_event/light_rain/lv522
+ name = "LV522 Light Rain"
+ display_name = "Light Rain"
length = 3 MINUTES
lightning_chance = 4
diff --git a/code/datums/weather/weather_events/new_varadero.dm b/code/datums/weather/weather_events/new_varadero.dm
index f2af23c3f1..36845a2940 100644
--- a/code/datums/weather/weather_events/new_varadero.dm
+++ b/code/datums/weather/weather_events/new_varadero.dm
@@ -1,22 +1,13 @@
-/datum/weather_event/light_rain
+/datum/weather_event/light_rain/varadero
name = "Tropical Storm"
display_name = "Tropical Storm"
length = 4 MINUTES
- fullscreen_type = /atom/movable/screen/fullscreen/weather/low
- turf_overlay_icon_state = "strata_storm"
turf_overlay_alpha = 40
- effect_message = null
- damage_per_tick = 0
-
has_process = TRUE
lightning_chance = 1
- ambience = 'sound/ambience/rainforest.ogg'
-
- fire_smothering_strength = 1
-
/datum/weather_event/monsoon
name = "Monsoon Warning"
display_name = "Monsoon Warning"
diff --git a/code/datums/weather/weather_map_holders/new_varadero.dm b/code/datums/weather/weather_map_holders/new_varadero.dm
index 8222001f47..1edb2c42c8 100644
--- a/code/datums/weather/weather_map_holders/new_varadero.dm
+++ b/code/datums/weather/weather_map_holders/new_varadero.dm
@@ -5,7 +5,7 @@
no_weather_turf_icon_state = "strata_clearsky"
potential_weather_events = list(
- /datum/weather_event/light_rain,
+ /datum/weather_event/light_rain/varadero,
/datum/weather_event/monsoon,
)
diff --git a/code/game/jobs/role_authority.dm b/code/game/jobs/role_authority.dm
index 55841a9a8a..60021e0f21 100644
--- a/code/game/jobs/role_authority.dm
+++ b/code/game/jobs/role_authority.dm
@@ -206,8 +206,8 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou
//PART II: Setting up our player variables and lists, to see if we have anyone to destribute.
unassigned_players = list()
- for(var/mob/new_player/M in GLOB.player_list) //Get all players who are ready.
- if(!M.ready || M.job)
+ for(var/mob/new_player/player as anything in GLOB.new_player_list)
+ if(!player.ready || player.job) //get only players who are ready and unassigned
continue
// [RU-PVE-EDIT]
if(M.client.total_enter_lock)
@@ -219,14 +219,42 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou
return
// [/RU-PVE-EDIT]
- unassigned_players += M
+ var/datum/preferences/prefs = player.client?.prefs
+ if(!prefs) //either no client to play, or no preferences
+ continue
+
+ if(prefs.alternate_option == RETURN_TO_LOBBY && !prefs.has_job_priorities()) //only try to assign players that could possibly be assigned
+ continue
+
+ unassigned_players += player
if(!length(unassigned_players)) //If we don't have any players, the round can't start.
unassigned_players = null
return
- unassigned_players = shuffle(unassigned_players, 1) //Shuffle the players.
+ var/list/player_weights = list()
+ var/debug_total_weight = 0
+ for(var/mob/new_player/cycled_unassigned as anything in unassigned_players)
+ var/base_weight = 1 //baseline weighting
+ var/new_bonus = 0
+ switch(cycled_unassigned.client.get_total_human_playtime()) //+1 for new players, +2 for really new players
+ if(0 to 2 HOURS)
+ new_bonus = 2
+ if(2 HOURS to 5 HOURS)
+ new_bonus = 1
+
+ var/streak_bonus = max(get_client_stat(cycled_unassigned.client, PLAYER_STAT_UNASSIGNED_ROUND_STREAK) - 2, 0) //+1 per missed round after 2
+
+ player_weights[cycled_unassigned] = base_weight + new_bonus + streak_bonus
+ debug_total_weight += player_weights[cycled_unassigned]
+ log_debug("ASSIGNMENT: player_weights generated with [length(player_weights)] players and [debug_total_weight] total weight.")
+
+ unassigned_players = shuffle_weight(player_weights)
+ var/list/debug_weight_order = list()
+ for(var/mob/new_player/cycled_unassigned as anything in unassigned_players)
+ debug_weight_order += player_weights[cycled_unassigned]
+ log_debug("ASSIGNMENT: unassigned_players by entry weight: ([debug_weight_order.Join(", ")])")
// How many positions do we open based on total pop
for(var/i in roles_by_name)
@@ -256,11 +284,11 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou
return
log_debug("ASSIGNMENT: Starting prime priority assignments.")
- for(var/mob/new_player/cycled_unassigned in shuffle(unassigned_players))
+ for(var/mob/new_player/cycled_unassigned in unassigned_players)
assign_role_to_player_by_priority(cycled_unassigned, roles_to_assign, unassigned_players, PRIME_PRIORITY)
log_debug("ASSIGNMENT: Starting regular priority assignments.")
- for(var/mob/new_player/cycled_unassigned in shuffle(unassigned_players))
+ for(var/mob/new_player/cycled_unassigned in unassigned_players)
var/player_assigned_job = FALSE
for(var/priority in HIGH_PRIORITY to LOW_PRIORITY)
@@ -273,20 +301,17 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou
break
if(!player_assigned_job)
- log_debug("ASSIGNMENT: [cycled_unassigned] was unable to be assigned a job based on preferences and roles to assign. Attempting alternate options.")
-
switch(cycled_unassigned.client.prefs.alternate_option)
if(GET_RANDOM_JOB)
- log_debug("ASSIGNMENT: [cycled_unassigned] has opted for random job alternate option. Finding random job.")
var/iterator = 0
while((cycled_unassigned in unassigned_players) || iterator >= 5)
iterator++
var/random_job_name = pick(roles_to_assign)
var/datum/job/random_job = roles_to_assign[random_job_name]
- log_debug("ASSIGNMENT: [cycled_unassigned] is attempting to be assigned to [random_job_name].")
if(assign_role(cycled_unassigned, random_job))
log_debug("ASSIGNMENT: We have randomly assigned [random_job_name] to [cycled_unassigned]")
+ cycled_unassigned.client.player_data.adjust_stat(PLAYER_STAT_UNASSIGNED_ROUND_STREAK, STAT_CATEGORY_MISC, 0, TRUE)
unassigned_players -= cycled_unassigned
if(random_job.spawn_positions != -1 && random_job.current_positions >= random_job.spawn_positions)
@@ -297,10 +322,10 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou
log_debug("ASSIGNMENT: [cycled_unassigned] was unable to be randomly assigned a job. Something has gone wrong.")
if(BE_MARINE)
- log_debug("ASSIGNMENT: [cycled_unassigned] has opted for marine alternate option. Checking if slot is available.")
var/datum/job/marine_job = GET_MAPPED_ROLE(JOB_SQUAD_MARINE)
if(assign_role(cycled_unassigned, marine_job))
log_debug("ASSIGNMENT: We have assigned [marine_job.title] to [cycled_unassigned] via alternate option.")
+ cycled_unassigned.client.player_data.adjust_stat(PLAYER_STAT_UNASSIGNED_ROUND_STREAK, STAT_CATEGORY_MISC, 0, TRUE)
unassigned_players -= cycled_unassigned
if(marine_job.spawn_positions != -1 && marine_job.current_positions >= marine_job.spawn_positions)
@@ -314,22 +339,22 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou
cycled_unassigned.ready = 0
log_debug("ASSIGNMENT: Assignment complete. Players unassigned: [length(unassigned_players)] Jobs unassigned: [length(roles_to_assign)]")
+ for(var/mob/new_player/cycled_unassigned in unassigned_players)
+ cycled_unassigned.client.player_data.adjust_stat(PLAYER_STAT_UNASSIGNED_ROUND_STREAK, STAT_CATEGORY_MISC, 1)
return roles_to_assign
/datum/authority/branch/role/proc/assign_role_to_player_by_priority(mob/new_player/cycled_unassigned, list/roles_to_assign, list/unassigned_players, priority)
- log_debug("ASSIGNMENT: We have started cycled through priority [priority] for [cycled_unassigned].")
- var/wanted_jobs_by_name = shuffle(cycled_unassigned.client?.prefs?.get_jobs_by_priority(priority))
+ var/wanted_jobs_by_name = shuffle(cycled_unassigned.client.prefs.get_jobs_by_priority(priority))
var/player_assigned_job = FALSE
for(var/job_name in wanted_jobs_by_name)
- log_debug("ASSIGNMENT: We are cycling through wanted jobs and are at [job_name] for [cycled_unassigned].")
if(job_name in roles_to_assign)
- log_debug("ASSIGNMENT: We have found [job_name] in roles to assign for [cycled_unassigned].")
var/datum/job/actual_job = roles_to_assign[job_name]
if(assign_role(cycled_unassigned, actual_job))
- log_debug("ASSIGNMENT: We have assigned [job_name] to [cycled_unassigned].")
+ log_debug("ASSIGNMENT: We have assigned [job_name] to [cycled_unassigned] at priority [priority].")
+ cycled_unassigned.client.player_data?.adjust_stat(PLAYER_STAT_UNASSIGNED_ROUND_STREAK, STAT_CATEGORY_MISC, 0, TRUE)
unassigned_players -= cycled_unassigned
if(actual_job.spawn_positions != -1 && actual_job.current_positions >= actual_job.spawn_positions)
@@ -340,10 +365,8 @@ I hope it's easier to tell what the heck this proc is even doing, unlike previou
break
if(player_assigned_job)
- log_debug("ASSIGNMENT: [cycled_unassigned] has been assigned a job.")
return player_assigned_job
- log_debug("ASSIGNMENT: [cycled_unassigned] did not get a job at priority [priority].")
return player_assigned_job
/**
diff --git a/code/game/machinery/computer/dropship_weapons.dm b/code/game/machinery/computer/dropship_weapons.dm
index ab77f35d26..b5022b4a75 100644
--- a/code/game/machinery/computer/dropship_weapons.dm
+++ b/code/game/machinery/computer/dropship_weapons.dm
@@ -694,10 +694,10 @@
if(CEILING_GLASS)
is_outside = TRUE
if(!is_outside && !cavebreaker) //cavebreaker doesn't care
- to_chat(weapon_operator, SPAN_WARNING("INVALID TARGET: target must be visible from high altitude."))
+ to_chat(weapon_operator, SPAN_WARNING("WARNING: Target obstructed by terrain features."))
return FALSE
if (protected_by_pylon(TURF_PROTECTION_CAS, TU))
- to_chat(weapon_operator, SPAN_WARNING("INVALID TARGET: biological-pattern interference with signal."))
+ to_chat(weapon_operator, SPAN_WARNING("WARNING: Signal garbled, launch aborted."))
return FALSE
if(!DEW.ammo_equipped.can_fire_at(TU, weapon_operator))
return FALSE
@@ -807,10 +807,10 @@
if (!istype(dropship))
return FALSE
if (!dropship.in_flyby || dropship.mode != SHUTTLE_CALL)
- to_chat(user, SPAN_WARNING("Has to be in Fly By mode"))
+ to_chat(user, SPAN_WARNING("You must be making a flyby!"))
return FALSE
if (dropship.timer && dropship.timeLeft(1) < firemission_envelope.flyoff_period)
- to_chat(user, SPAN_WARNING("Not enough time to complete the Fire Mission"))
+ to_chat(user, SPAN_WARNING("Not enough time on station to complete the firemission."))
return FALSE
var/datum/cas_signal/recorded_loc = firemission_envelope.recorded_loc
var/obj/source = recorded_loc.signal_loc
@@ -846,7 +846,7 @@
return
if(firemission_envelope.recorded_loc.obstructed_signal())
if(firemission_envelope.user_is_guided(user))
- to_chat(user, SPAN_WARNING("Signal Obstructed. You have to go in blind."))
+ to_chat(user, SPAN_WARNING("Signal obstructed. You have to go in blind."))
return
var/sx = 0
var/sy = 0
@@ -872,7 +872,7 @@
var/area/laser_area = get_area(shootloc)
if(!istype(laser_area) || CEILING_IS_PROTECTED(laser_area.ceiling, CEILING_PROTECTION_TIER_1))
if(firemission_envelope.user_is_guided(user))
- to_chat(user, SPAN_WARNING("Vision Obstructed. You have to go in blind."))
+ to_chat(user, SPAN_WARNING("Vision obstructed. You have to go in blind."))
firemission_envelope.change_current_loc()
else
firemission_envelope.change_current_loc(shootloc)
diff --git a/code/game/machinery/vending/cm_vending.dm b/code/game/machinery/vending/cm_vending.dm
index fee6f9a53c..9fd775b64f 100644
--- a/code/game/machinery/vending/cm_vending.dm
+++ b/code/game/machinery/vending/cm_vending.dm
@@ -1012,7 +1012,7 @@ GLOBAL_LIST_EMPTY(vending_products)
//---helper glob data
GLOBAL_LIST_INIT(cm_vending_gear_corresponding_types_list, list(
- /obj/item/ammo_box/magazine/mod88/empty = /obj/item/ammo_box/magazine/mod88,
+ /obj/item/ammo_box/magazine/vp70/empty = /obj/item/ammo_box/magazine/vp70,
/obj/item/ammo_box/magazine/m4a3/empty = /obj/item/ammo_box/magazine/m4a3,
/obj/item/ammo_box/magazine/m4a3/ap/empty = /obj/item/ammo_box/magazine/m4a3/ap,
/obj/item/ammo_box/magazine/m4a3/hp/empty = /obj/item/ammo_box/magazine/m4a3/hp,
diff --git a/code/game/machinery/vending/vending_types.dm b/code/game/machinery/vending/vending_types.dm
index 445a5c5b9f..8daba6187a 100644
--- a/code/game/machinery/vending/vending_types.dm
+++ b/code/game/machinery/vending/vending_types.dm
@@ -258,6 +258,20 @@
/obj/item/tape/regulation = 5,
)
+/obj/structure/machinery/vending/security/upp
+ name = "\improper People's Police Equipment Vendor"
+ desc = "A standard security vendor used by security forces of the UPP."
+ req_access = list(ACCESS_CIVILIAN_BRIG)
+ products = list(
+ /obj/item/handcuffs = 8,
+ /obj/item/reagent_container/spray/pepper = 4,
+ /obj/item/device/flashlight = 4,
+ /obj/item/storage/belt/security/MP/UPP = 4,
+ /obj/item/device/flash = 5,
+ /obj/item/storage/box/evidence = 6,
+ /obj/item/tape/regulation = 5,
+ )
+
/obj/structure/machinery/vending/sea
name = "\improper SeaTech"
desc = "An equipment vendor designed to save lives"
@@ -270,7 +284,7 @@
products = list(
/obj/item/ammo_magazine/smg/m39/rubber = 20,
/obj/item/ammo_magazine/pistol/rubber = 20,
- /obj/item/ammo_magazine/pistol/mod88/rubber = 20,
+ /obj/item/ammo_magazine/pistol/vp70/rubber = 20,
/obj/item/ammo_magazine/rifle/rubber = 20,
/obj/item/ammo_magazine/rifle/m4ra/rubber = 20,
/obj/item/ammo_magazine/shotgun/beanbag = 20,
diff --git a/code/game/machinery/vending/vendor_types/crew/mp.dm b/code/game/machinery/vending/vendor_types/crew/mp.dm
index b63a022481..f9dc3d45f2 100644
--- a/code/game/machinery/vending/vendor_types/crew/mp.dm
+++ b/code/game/machinery/vending/vendor_types/crew/mp.dm
@@ -15,7 +15,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_military_police, list(
list("MP Beret", 0, /obj/item/clothing/head/beret/marine/mp, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_MANDATORY),
list("HANDGUN CASE (CHOOSE 1)", 0, null, null, null),
- list("88 mod 4 Combat Pistol Case", 0, /obj/item/storage/box/guncase/mod88, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_MANDATORY),
+ list("VP70 Combat Pistol Case", 0, /obj/item/storage/box/guncase/vp70, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_MANDATORY),
list("M44 Combat Revolver Case", 0, /obj/item/storage/box/guncase/m44, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_MANDATORY),
list("M4A3 Service Pistol Case", 0, /obj/item/storage/box/guncase/m4a3, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_MANDATORY),
@@ -73,7 +73,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_military_police_warden, list(
list("Warden Peaked Cap", 0, /obj/item/clothing/head/beret/marine/mp/warden, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_MANDATORY),
list("HANDGUN CASE (CHOOSE 1)", 0, null, null, null),
- list("88 mod 4 Combat Pistol Case", 0, /obj/item/storage/box/guncase/mod88, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_MANDATORY),
+ list("VP70 Combat Pistol Case", 0, /obj/item/storage/box/guncase/vp70, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_MANDATORY),
list("M44 Combat Revolver Case", 0, /obj/item/storage/box/guncase/m44, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_MANDATORY),
list("M4A3 Service Pistol Case", 0, /obj/item/storage/box/guncase/m4a3, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_MANDATORY),
diff --git a/code/game/machinery/vending/vendor_types/crew/pilot_officer.dm b/code/game/machinery/vending/vendor_types/crew/pilot_officer.dm
index 14691dbe27..d3935a3bcc 100644
--- a/code/game/machinery/vending/vendor_types/crew/pilot_officer.dm
+++ b/code/game/machinery/vending/vendor_types/crew/pilot_officer.dm
@@ -24,13 +24,13 @@
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("VP70 Combat Pistol", 4, /obj/item/weapon/gun/pistol/vp70, 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("M82F Flare Gun", 4, /obj/item/weapon/gun/flare, VENDOR_ITEM_REGULAR),
list("SIDEARM AMMUNITION", -1, null, null),
- list("88M4 Magazine (9mm)", 20, /obj/item/ammo_magazine/pistol/mod88/normalpoint, VENDOR_ITEM_REGULAR),
+ list("VP70 Magazine (9mm)", 20, /obj/item/ammo_magazine/pistol/vp70, 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)", 12, /obj/item/ammo_magazine/pistol/ap, VENDOR_ITEM_REGULAR),
@@ -71,7 +71,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_pilot_officer, list(
list("M3-VL Pattern Flak Vest", 0, /obj/item/clothing/suit/storage/marine/light/vest/dcc, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY),
list("PERSONAL SIDEARM (CHOOSE 1)", 0, null, null, null),
- list("88 Mod 4 Combat Pistol", 0, /obj/item/weapon/gun/pistol/mod88, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("VP70 Combat Pistol", 0, /obj/item/weapon/gun/pistol/vp70, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
list("VP78 Pistol", 0, /obj/item/weapon/gun/pistol/vp78, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
list("BELT (CHOOSE 1)", 0, null, null, null),
@@ -160,7 +160,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_dropship_crew_chief, list(
list("M3-VL Pattern Flak Vest", 0, /obj/item/clothing/suit/storage/marine/light/vest/dcc, MARINE_CAN_BUY_ARMOR, VENDOR_ITEM_MANDATORY),
list("PERSONAL SIDEARM (CHOOSE 1)", 0, null, null, null),
- list("88 Mod 4 Combat Pistol", 0, /obj/item/weapon/gun/pistol/mod88, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("VP70 Combat Pistol", 0, /obj/item/weapon/gun/pistol/vp70, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
list("VP78 Pistol", 0, /obj/item/weapon/gun/pistol/vp78, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
list("BELT (CHOOSE 1)", 0, null, null, null),
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 b5bc42eabb..a0d37fb154 100644
--- a/code/game/machinery/vending/vendor_types/crew/senior_officers.dm
+++ b/code/game/machinery/vending/vendor_types/crew/senior_officers.dm
@@ -45,7 +45,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_military_police_chief, list(
list("CMP Beret", 0, /obj/item/clothing/head/beret/marine/mp/cmp, MARINE_CAN_BUY_HELMET, VENDOR_ITEM_MANDATORY),
list("HANDGUN CASE (CHOOSE 1)", 0, null, null, null),
- list("88 mod 4 Combat Pistol Case", 0, /obj/item/storage/box/guncase/mod88, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_MANDATORY),
+ list("VP70 Combat Pistol Case", 0, /obj/item/storage/box/guncase/vp70, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_MANDATORY),
list("M44 Combat Revolver Case", 0, /obj/item/storage/box/guncase/m44, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_MANDATORY),
list("M4A3 Service Pistol Case", 0, /obj/item/storage/box/guncase/m4a3, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_MANDATORY),
@@ -132,7 +132,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_chief_engineer, list(
list("PERSONAL SIDEARM (CHOOSE 1)", 0, null, null, null),
list("M4A3 Service Pistol", 0, /obj/item/storage/belt/gun/m4a3/full, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED),
- list("Mod 88 Pistol", 0, /obj/item/storage/belt/gun/m4a3/mod88, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED),
+ list("VP70 Pistol", 0, /obj/item/storage/belt/gun/m4a3/vp70, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED),
list("M44 Revolver", 0, /obj/item/storage/belt/gun/m44/mp, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED),
list("ACCESSORIES (CHOOSE 1)", 0, null, null, null),
@@ -158,7 +158,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_chief_engineer, list(
list("Heat Absorbent Coif", 0, /obj/item/clothing/mask/rebreather/scarf, MARINE_CAN_BUY_MASK, VENDOR_ITEM_REGULAR),
list("PRIMARY FIREARMS (CHOOSE 1)", 0, null, null, null),
- list("M37A2 Pump Shotgun", 0, /obj/item/storage/box/guncase/pumpshotgun, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_REGULAR),
+ list("M120 Tactical Shotgun", 0, /obj/item/storage/box/guncase/shotguncombat, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_REGULAR),
list("M41A Pulse Rifle MK2", 0, /obj/item/storage/box/guncase/m41a, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_REGULAR),
list("M240 Incinerator Unit", 0, /obj/item/storage/box/guncase/flamer, MARINE_CAN_BUY_ESSENTIALS, VENDOR_ITEM_REGULAR),
@@ -181,7 +181,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_req_officer, list(
list("PERSONAL SIDEARM (CHOOSE 1)", 0, null, null, null),
list("M4A3 Service Pistol", 0, /obj/item/storage/belt/gun/m4a3/full, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED),
- list("Mod 88 Pistol", 0, /obj/item/storage/belt/gun/m4a3/mod88, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED),
+ list("VP70 Pistol", 0, /obj/item/storage/belt/gun/m4a3/vp70, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED),
list("M44 Custom Revolver", 0, /obj/item/storage/belt/gun/m44/custom, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED),
list("COMBAT EQUIPMENT (TAKE ALL)", 0, null, null, null),
@@ -234,7 +234,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_cmo, list(
list("PERSONAL SIDEARM (CHOOSE 1)", 0, null, null, null),
list("M4A3 Service Pistol", 0, /obj/item/storage/belt/gun/m4a3/full, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_REGULAR),
- list("Mod 88 Pistol", 0, /obj/item/storage/belt/gun/m4a3/mod88, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_REGULAR),
+ list("VP70 Pistol", 0, /obj/item/storage/belt/gun/m4a3/vp70, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_REGULAR),
list("M44 Revolver", 0, /obj/item/storage/belt/gun/m44/mp, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED),
list("COMBAT EQUIPMENT (TAKE ALL)", 0, null, null, null),
@@ -283,7 +283,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_xo, list(
list("PERSONAL WEAPON (CHOOSE 1)", 0, null, null, null),
list("VP78 Pistol", 0, /obj/item/storage/belt/gun/m4a3/vp78, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED),
list("M4A3 Service Pistol", 0, /obj/item/storage/belt/gun/m4a3/commander, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_REGULAR),
- list("Mod 88 Pistol", 0, /obj/item/storage/belt/gun/m4a3/mod88, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_REGULAR),
+ list("VP70 Pistol", 0, /obj/item/storage/belt/gun/m4a3/vp70, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_REGULAR),
list("M44 Revolver", 0, /obj/item/storage/belt/gun/m44/mp, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_REGULAR),
list("COMBAT EQUIPMENT (TAKE ALL)", 0, null, null, null),
@@ -342,7 +342,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_auxiliary_officer, list(
list("PERSONAL SIDEARM (CHOOSE 1)", 0, null, null, null),
list("M4A3 Service Pistol", 0, /obj/item/storage/belt/gun/m4a3/full, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED),
- list("Mod 88 Pistol", 0, /obj/item/storage/belt/gun/m4a3/mod88, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED),
+ list("VP70 Pistol", 0, /obj/item/storage/belt/gun/m4a3/vp70, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED),
list("M44 Custom Revolver", 0, /obj/item/storage/belt/gun/m44/custom, MARINE_CAN_BUY_SECONDARY, VENDOR_ITEM_RECOMMENDED),
list("COMBAT EQUIPMENT (TAKE ALL)", 0, null, null, null),
diff --git a/code/game/machinery/vending/vendor_types/crew/vehicle_crew.dm b/code/game/machinery/vending/vendor_types/crew/vehicle_crew.dm
index 55046eaa2b..76b8eb6301 100644
--- a/code/game/machinery/vending/vendor_types/crew/vehicle_crew.dm
+++ b/code/game/machinery/vending/vendor_types/crew/vehicle_crew.dm
@@ -272,13 +272,13 @@ GLOBAL_LIST_INIT(cm_vending_vehicle_crew_apc_spare, list(
list("M41A Magazine (10x24mm)", 12, /obj/item/ammo_magazine/rifle, VENDOR_ITEM_REGULAR),
list("SIDEARMS", -1, null, null),
- list("88 Mod 4 Combat Pistol", 2, /obj/item/weapon/gun/pistol/mod88, VENDOR_ITEM_REGULAR),
+ list("VP70 Combat Pistol", 2, /obj/item/weapon/gun/pistol/vp70, VENDOR_ITEM_REGULAR),
list("M44 Combat Revolver", 2, /obj/item/weapon/gun/revolver/m44, VENDOR_ITEM_REGULAR),
list("M4A3 Service Pistol", 2, /obj/item/weapon/gun/pistol/m4a3, VENDOR_ITEM_REGULAR),
list("M82F Flare Gun", 2, /obj/item/weapon/gun/flare, VENDOR_ITEM_REGULAR),
list("SIDEARM AMMUNITION", -1, null, null),
- list("88M4 Magazine (9mm)", 10, /obj/item/ammo_magazine/pistol/mod88/normalpoint, VENDOR_ITEM_REGULAR),
+ list("VP70 Magazine (9mm)", 10, /obj/item/ammo_magazine/pistol/vp70, VENDOR_ITEM_REGULAR),
list("M44 Speedloader (.44)", 10, /obj/item/ammo_magazine/revolver, VENDOR_ITEM_REGULAR),
list("M4A3 Magazine (9mm)", 10, /obj/item/ammo_magazine/pistol, VENDOR_ITEM_REGULAR),
list("M4A3 AP Magazine (9mm)", 6, /obj/item/ammo_magazine/pistol/ap, VENDOR_ITEM_REGULAR),
@@ -313,7 +313,7 @@ GLOBAL_LIST_INIT(cm_vending_clothing_vehicle_crew, list(
list("MRE", 0, /obj/item/storage/box/MRE, MARINE_CAN_BUY_MRE, VENDOR_ITEM_MANDATORY),
list("PERSONAL SIDEARM (CHOOSE 1)", 0, null, null, null),
- list("88 Mod 4 Combat Pistol", 0, /obj/item/weapon/gun/pistol/mod88, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
+ list("VP70 Combat Pistol", 0, /obj/item/weapon/gun/pistol/vp70, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
list("VP78 Pistol", 0, /obj/item/weapon/gun/pistol/vp78, MARINE_CAN_BUY_ATTACHMENT, VENDOR_ITEM_REGULAR),
list("BELT (CHOOSE 1)", 0, null, null, null),
diff --git a/code/game/machinery/vending/vendor_types/requisitions.dm b/code/game/machinery/vending/vendor_types/requisitions.dm
index f3c4973c3f..1717d1e9de 100644
--- a/code/game/machinery/vending/vendor_types/requisitions.dm
+++ b/code/game/machinery/vending/vendor_types/requisitions.dm
@@ -30,7 +30,7 @@
list("M4RA Battle Rifle", round(scale * 20), /obj/item/weapon/gun/rifle/m4ra, VENDOR_ITEM_REGULAR),
list("SIDEARMS", -1, null, null),
- list("88 Mod 4 Combat Pistol", round(scale * 50), /obj/item/weapon/gun/pistol/mod88, VENDOR_ITEM_REGULAR),
+ list("VP70 Combat Pistol", round(scale * 50), /obj/item/weapon/gun/pistol/vp70, VENDOR_ITEM_REGULAR),
list("M44 Combat Revolver", round(scale * 50), /obj/item/weapon/gun/revolver/m44, VENDOR_ITEM_REGULAR),
list("M4A3 Service Pistol", round(scale * 50), /obj/item/weapon/gun/pistol/m4a3, VENDOR_ITEM_REGULAR),
list("M82F Flare Gun", round(scale * 20), /obj/item/weapon/gun/flare, VENDOR_ITEM_REGULAR),
@@ -224,7 +224,7 @@
list("M39 HV Magazine (10x20mm)", round(scale * 50), /obj/item/ammo_magazine/smg/m39, VENDOR_ITEM_REGULAR),
list("M44 Speed Loader (.44)", round(scale * 40), /obj/item/ammo_magazine/revolver, VENDOR_ITEM_REGULAR),
list("M4A3 Magazine (9mm)", round(scale * 50), /obj/item/ammo_magazine/pistol, VENDOR_ITEM_REGULAR),
- list("88 Mod 4 Magazine (9mm)", round(scale * 50), /obj/item/ammo_magazine/pistol/mod88/normalpoint, VENDOR_ITEM_REGULAR),
+ list("VP70 Magazine (9mm)", round(scale * 50), /obj/item/ammo_magazine/pistol/vp70, VENDOR_ITEM_REGULAR),
list("ARMOR-PIERCING AMMUNITION", -1, null, null),
list("M4RA AP Magazine (10x24mm)", round(scale * 15.7), /obj/item/ammo_magazine/rifle/m4ra/ap, VENDOR_ITEM_REGULAR),
@@ -497,11 +497,11 @@
list("M41A Rubber Magazine (10x24mm)", round(scale * 25), /obj/item/ammo_magazine/rifle/rubber, VENDOR_ITEM_REGULAR),
list("SIDEARMS", -1, null, null),
- list("88 Mod 4 Combat Pistol", round(scale * 25), /obj/item/weapon/gun/pistol/mod88, VENDOR_ITEM_REGULAR),
+ list("VP70 Combat Pistol", round(scale * 25), /obj/item/weapon/gun/pistol/vp70, VENDOR_ITEM_REGULAR),
list("M4A3 Service Pistol", round(scale * 25), /obj/item/weapon/gun/pistol/m4a3, VENDOR_ITEM_REGULAR),
list("SIDEARM NONLETHAL AMMUNITION", -1, null, null),
- list("88M4 Rubber Magazine (9mm)", round(scale * 25), /obj/item/ammo_magazine/pistol/mod88/rubber, VENDOR_ITEM_REGULAR),
+ list("VP70 Rubber Magazine (9mm)", round(scale * 25), /obj/item/ammo_magazine/pistol/vp70/rubber, VENDOR_ITEM_REGULAR),
list("M4A3 Rubber Magazine (9mm)", round(scale * 25), /obj/item/ammo_magazine/pistol/rubber, VENDOR_ITEM_REGULAR),
list("ATTACHMENTS", -1, null, null),
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 327af25c33..8ec93ab581 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
@@ -31,13 +31,13 @@
list("M41A Magazine (10x24mm)", round(scale * 25), /obj/item/ammo_magazine/rifle, VENDOR_ITEM_REGULAR),
list("SIDEARMS", -1, null, null),
- list("88 Mod 4 Combat Pistol", round(scale * 25), /obj/item/weapon/gun/pistol/mod88, VENDOR_ITEM_REGULAR),
+ list("VP70 Combat Pistol", round(scale * 25), /obj/item/weapon/gun/pistol/vp70, VENDOR_ITEM_REGULAR),
list("M44 Combat Revolver", round(scale * 25), /obj/item/weapon/gun/revolver/m44, VENDOR_ITEM_REGULAR),
list("M4A3 Service Pistol", round(scale * 25), /obj/item/weapon/gun/pistol/m4a3, VENDOR_ITEM_REGULAR),
list("M82F Flare Gun", round(scale * 10), /obj/item/weapon/gun/flare, VENDOR_ITEM_REGULAR),
list("SIDEARM AMMUNITION", -1, null, null),
- list("88M4 Magazine (9mm)", round(scale * 25), /obj/item/ammo_magazine/pistol/mod88/normalpoint, VENDOR_ITEM_REGULAR),
+ list("VP70 Magazine (9mm)", round(scale * 25), /obj/item/ammo_magazine/pistol/vp70, VENDOR_ITEM_REGULAR),
list("M44 Speedloader (.44)", round(scale * 20), /obj/item/ammo_magazine/revolver, VENDOR_ITEM_REGULAR),
list("M4A3 Magazine (9mm)", round(scale * 25), /obj/item/ammo_magazine/pistol, VENDOR_ITEM_REGULAR),
@@ -140,7 +140,7 @@
list("M1A1 Ballistic goggles", round(scale * 10), /obj/item/clothing/glasses/mgoggles/v2, VENDOR_ITEM_REGULAR),
list("Prescription ballistic goggles", round(scale * 10), /obj/item/clothing/glasses/mgoggles/prescription, VENDOR_ITEM_REGULAR),
list("Marine RPG glasses", round(scale * 10), /obj/item/clothing/glasses/regular, VENDOR_ITEM_REGULAR),
- list("M5 Integrated Gas Mask", round(scale * 10), /obj/item/prop/helmetgarb/helmet_gasmask, VENDOR_ITEM_REGULAR),
+ list("M10 Helmet Camouflage Wrap", round(scale * 10), /obj/item/prop/helmetgarb/camocover, VENDOR_ITEM_REGULAR),
list("M10 Helmet Netting", round(scale * 10), /obj/item/prop/helmetgarb/netting, VENDOR_ITEM_REGULAR),
list("M10 Helmet Rain Cover", round(scale * 10), /obj/item/prop/helmetgarb/raincover, VENDOR_ITEM_REGULAR),
list("Firearm Lubricant", round(scale * 15), /obj/item/prop/helmetgarb/gunoil, VENDOR_ITEM_REGULAR),
@@ -425,18 +425,10 @@
list("M89-S Signal Flare Pack", round(scale * 1), /obj/item/storage/box/m94/signal, VENDOR_ITEM_REGULAR),
list("SIDEARMS", -1, null, null),
- list("88 Mod 4 Combat Pistol", round(scale * 2), /obj/item/weapon/gun/pistol/mod88, VENDOR_ITEM_REGULAR),
- list("M44 Combat Revolver", round(scale * 2), /obj/item/weapon/gun/revolver/m44, VENDOR_ITEM_REGULAR),
+ list("VP70 Combat Pistol", round(scale * 2), /obj/item/weapon/gun/pistol/vp70, VENDOR_ITEM_REGULAR),
list("M4A3 Service Pistol", round(scale * 2), /obj/item/weapon/gun/pistol/m4a3, VENDOR_ITEM_REGULAR),
- list("VP78 pistol", round(scale * 2), /obj/item/weapon/gun/pistol/vp78, VENDOR_ITEM_REGULAR),
list("M82F Flare Gun", round(scale * 1), /obj/item/weapon/gun/flare, VENDOR_ITEM_REGULAR),
- list("SIDEARM AMMUNITION", -1, null, null),
- list("88M4 Magazine (9mm)", round(scale * 20), /obj/item/ammo_magazine/pistol/mod88/normalpoint, VENDOR_ITEM_REGULAR),
- list("M44 Speedloader (.44)", round(scale * 20), /obj/item/ammo_magazine/revolver, VENDOR_ITEM_REGULAR),
- list("M4A3 Magazine (9mm)", round(scale * 20), /obj/item/ammo_magazine/pistol, VENDOR_ITEM_REGULAR),
- list("VP78 magazine (9mm)", round(scale * 20), /obj/item/ammo_magazine/pistol/vp78, VENDOR_ITEM_REGULAR),
-
list("MISCELLANEOUS", -1, null, null),
list("Extinguisher", round(scale * 5), /obj/item/tool/extinguisher, VENDOR_ITEM_REGULAR),
list("Fire Extinguisher (Portable)", round(scale * 1), /obj/item/tool/extinguisher/mini, VENDOR_ITEM_REGULAR),
@@ -444,8 +436,9 @@
list("Machete Scabbard (Full)", round(scale * 5), /obj/item/storage/large_holster/machete/full, VENDOR_ITEM_REGULAR),
list("Binoculars", round(scale * 1), /obj/item/device/binoculars, VENDOR_ITEM_REGULAR),
list("AN/PSQ-55 Sentry Console", round(scale * 1), /obj/item/device/sentry_computer, VENDOR_ITEM_REGULAR),
- list("Spare PDT/L Battle Buddy Kit", round(scale * 3), /obj/item/storage/box/pdt_kit, VENDOR_ITEM_REGULAR),
+ list("Spare PDT/L Battle Buddy Kit", round(scale * 3), /obj/item/storage/box/pdt_kit/advanced, VENDOR_ITEM_REGULAR),
list("Rail Flashlight", round(scale * 5), /obj/item/attachable/flashlight, VENDOR_ITEM_REGULAR),
+ list("M5 'Night Raider' bayonet", round(scale * 5), /obj/item/attachable/bayonet, VENDOR_ITEM_REGULAR),
)
/obj/structure/machinery/cm_vending/sorted/cargo_guns/squad/upp
@@ -502,8 +495,9 @@
list("Roller Bed", round(scale * 2), /obj/item/roller, VENDOR_ITEM_REGULAR),
list("Machete Scabbard (Full)", round(scale * 5), /obj/item/storage/large_holster/machete/full, VENDOR_ITEM_REGULAR),
list("Binoculars", round(scale * 1), /obj/item/device/binoculars, VENDOR_ITEM_REGULAR),
- list("Spare PDT/L Battle Buddy Kit", round(scale * 3), /obj/item/storage/box/pdt_kit, VENDOR_ITEM_REGULAR),
+ list("Spare PDT/L Battle Buddy Kit", round(scale * 3), /obj/item/storage/box/pdt_kit/advanced, VENDOR_ITEM_REGULAR),
list("Rail Flashlight", round(scale * 5), /obj/item/attachable/flashlight, VENDOR_ITEM_REGULAR),
+ list("Type 80 Bayonet", round(scale * 5), /obj/item/attachable/bayonet/upp, null, VENDOR_ITEM_REGULAR),
list("CLOTHING", -1, null, null),
list("Cap", round(scale * 5), /obj/item/clothing/head/uppcap, VENDOR_ITEM_REGULAR),
@@ -544,7 +538,7 @@
list("SIDEARMS", -1, null, null), //forecon loves their pistols
list("M48A4 Service Pistol", round(scale * 5), /obj/item/weapon/gun/pistol/m1911/socom, VENDOR_ITEM_REGULAR),
- list("88 Mod 4 Combat Pistol", round(scale * 5), /obj/item/weapon/gun/pistol/mod88, VENDOR_ITEM_REGULAR),
+ list("VP70 Combat Pistol", round(scale * 5), /obj/item/weapon/gun/pistol/vp70, VENDOR_ITEM_REGULAR),
list("M44 Combat Revolver", round(scale * 5), /obj/item/weapon/gun/revolver/m44, VENDOR_ITEM_REGULAR),
list("M4A3 Service Pistol", round(scale * 5), /obj/item/weapon/gun/pistol/m4a3, VENDOR_ITEM_REGULAR),
list("VP78 pistol", round(scale * 5), /obj/item/weapon/gun/pistol/vp78, VENDOR_ITEM_REGULAR),
@@ -552,7 +546,7 @@
list("SIDEARM AMMUNITION", -1, null, null),
list("M1911 Magazine (.45)", round(scale * 20), /obj/item/ammo_magazine/pistol/m1911, VENDOR_ITEM_REGULAR),
- list("88M4 Magazine (9mm)", round(scale * 20), /obj/item/ammo_magazine/pistol/mod88/normalpoint, VENDOR_ITEM_REGULAR),
+ list("VP70 Magazine (9mm)", round(scale * 20), /obj/item/ammo_magazine/pistol/vp70, VENDOR_ITEM_REGULAR),
list("M44 Speedloader (.44)", round(scale * 20), /obj/item/ammo_magazine/revolver, VENDOR_ITEM_REGULAR),
list("M4A3 Magazine (9mm)", round(scale * 20), /obj/item/ammo_magazine/pistol, VENDOR_ITEM_REGULAR),
list("VP78 magazine (9mm)", round(scale * 20), /obj/item/ammo_magazine/pistol/vp78, VENDOR_ITEM_REGULAR),
@@ -563,8 +557,9 @@
list("Roller Bed", round(scale * 2), /obj/item/roller, VENDOR_ITEM_REGULAR),
list("Machete Scabbard (Full)", round(scale * 5), /obj/item/storage/large_holster/machete/full, VENDOR_ITEM_REGULAR),
list("Binoculars", round(scale * 1), /obj/item/device/binoculars, VENDOR_ITEM_REGULAR),
- list("Spare PDT/L Battle Buddy Kit", round(scale * 3), /obj/item/storage/box/pdt_kit, VENDOR_ITEM_REGULAR),
+ list("Spare PDT/L Battle Buddy Kit", round(scale * 3), /obj/item/storage/box/pdt_kit/advanced, VENDOR_ITEM_REGULAR),
list("Rail Flashlight", round(scale * 5), /obj/item/attachable/flashlight, VENDOR_ITEM_REGULAR),
+ list("M5 'Night Raider' bayonet", round(scale * 5), /obj/item/attachable/bayonet, VENDOR_ITEM_REGULAR),
list("CLOTHING", -1, null, null),
list("Poncho (green)", round(scale * 10), /obj/item/clothing/accessory/poncho/green, VENDOR_ITEM_REGULAR),
diff --git a/code/game/machinery/vending/vendor_types/wo_vendors.dm b/code/game/machinery/vending/vendor_types/wo_vendors.dm
index 37e5aa1c27..f12d787024 100644
--- a/code/game/machinery/vending/vendor_types/wo_vendors.dm
+++ b/code/game/machinery/vending/vendor_types/wo_vendors.dm
@@ -87,13 +87,13 @@
list("M41A MK2 Magazine (10x24mm)", round(scale * 25), /obj/item/ammo_magazine/rifle, VENDOR_ITEM_REGULAR),
list("SIDEARMS", -1, null, null),
- list("88 Mod 4 Combat Pistol", round(scale * 25), /obj/item/weapon/gun/pistol/mod88, VENDOR_ITEM_REGULAR),
+ list("VP70 Combat Pistol", round(scale * 25), /obj/item/weapon/gun/pistol/vp70, VENDOR_ITEM_REGULAR),
list("M44 Combat Revolver", round(scale * 25), /obj/item/weapon/gun/revolver/m44, VENDOR_ITEM_REGULAR),
list("M4A3 Service Pistol", round(scale * 25), /obj/item/weapon/gun/pistol/m4a3, VENDOR_ITEM_REGULAR),
list("M82F Flare Gun", round(scale * 5), /obj/item/weapon/gun/flare, VENDOR_ITEM_REGULAR),
list("SIDEARM AMMUNITION", -1, null, null),
- list("88M4 Magazine (9mm)", round(scale * 25), /obj/item/ammo_magazine/pistol/mod88/normalpoint, VENDOR_ITEM_REGULAR),
+ list("VP70 Magazine (9mm)", round(scale * 25), /obj/item/ammo_magazine/pistol/vp70, VENDOR_ITEM_REGULAR),
list("M44 Speedloader (.44)", round(scale * 20), /obj/item/ammo_magazine/revolver, VENDOR_ITEM_REGULAR),
list("M4A3 Magazine (9mm)", round(scale * 25), /obj/item/ammo_magazine/pistol, VENDOR_ITEM_REGULAR),
diff --git a/code/game/objects/effects/spawners/faction_spawners.dm b/code/game/objects/effects/spawners/faction_spawners.dm
index eb634e383d..6c80260d44 100644
--- a/code/game/objects/effects/spawners/faction_spawners.dm
+++ b/code/game/objects/effects/spawners/faction_spawners.dm
@@ -134,7 +134,7 @@
mags_min = 1
guns = list(
/obj/item/weapon/gun/pistol/vp78 = /obj/item/ammo_magazine/pistol/vp78,
- /obj/item/weapon/gun/pistol/mod88 = /obj/item/ammo_magazine/pistol/mod88/normalpoint
+ /obj/item/weapon/gun/pistol/vp70 = /obj/item/ammo_magazine/pistol/vp70
)
/obj/effect/spawner/random/gun/pmc_secondary/lowchance
diff --git a/code/game/objects/effects/spawners/random.dm b/code/game/objects/effects/spawners/random.dm
index d302e7794f..82192a9ca3 100644
--- a/code/game/objects/effects/spawners/random.dm
+++ b/code/game/objects/effects/spawners/random.dm
@@ -329,7 +329,7 @@
var/mags_min = 1
var/list/guns = list(
/obj/item/weapon/gun/pistol/b92fs = /obj/item/ammo_magazine/pistol/b92fs,
- /obj/item/weapon/gun/revolver/cmb = /obj/item/ammo_magazine/revolver/cmb,
+ /obj/item/weapon/gun/revolver/spearhead = /obj/item/ammo_magazine/revolver/spearhead,
/obj/item/weapon/gun/pistol/highpower = /obj/item/ammo_magazine/pistol/highpower,
/obj/item/weapon/gun/pistol/m1911 = /obj/item/ammo_magazine/pistol/m1911,
/obj/item/weapon/gun/revolver/small = /obj/item/ammo_magazine/revolver/small,
@@ -388,9 +388,9 @@
/obj/item/weapon/gun/pistol/b92fs = /obj/item/ammo_magazine/pistol/b92fs,
/obj/item/weapon/gun/pistol/b92fs = /obj/item/ammo_magazine/pistol/b92fs,
/obj/item/weapon/gun/pistol/b92fs = /obj/item/ammo_magazine/pistol/b92fs,
- /obj/item/weapon/gun/revolver/cmb = /obj/item/ammo_magazine/revolver/cmb,
- /obj/item/weapon/gun/revolver/cmb = /obj/item/ammo_magazine/revolver/cmb,
- /obj/item/weapon/gun/revolver/cmb = /obj/item/ammo_magazine/revolver/cmb,
+ /obj/item/weapon/gun/revolver/spearhead = /obj/item/ammo_magazine/revolver/spearhead,
+ /obj/item/weapon/gun/revolver/spearhead = /obj/item/ammo_magazine/revolver/spearhead,
+ /obj/item/weapon/gun/revolver/spearhead = /obj/item/ammo_magazine/revolver/spearhead,
/obj/item/weapon/gun/pistol/highpower = /obj/item/ammo_magazine/pistol/highpower,
/obj/item/weapon/gun/pistol/highpower = /obj/item/ammo_magazine/pistol/highpower,
/obj/item/weapon/gun/pistol/highpower = /obj/item/ammo_magazine/pistol/highpower,
diff --git a/code/game/objects/items/devices/motion_detector.dm b/code/game/objects/items/devices/motion_detector.dm
index 60cf62b4e2..4e72795510 100644
--- a/code/game/objects/items/devices/motion_detector.dm
+++ b/code/game/objects/items/devices/motion_detector.dm
@@ -217,6 +217,10 @@
range_bounds.set_shape(cur_turf.x, cur_turf.y, detector_range * 2)
+ var/list/ping_receivers = list()
+ for(var/mob/living/carbon/human/humans in range(1, human_user))
+ ping_receivers += humans
+
var/list/ping_candidates = SSquadtree.players_in_range(range_bounds, cur_turf.z, QTREE_EXCLUDE_OBSERVER | QTREE_SCAN_MOBS)
for(var/A in ping_candidates)
@@ -230,7 +234,8 @@
apply_debuff(M)
ping_count++
if(human_user)
- show_blip(human_user, M)
+ for(var/mob/living/carbon/human/show_ping_to as anything in ping_receivers)
+ show_blip(show_ping_to, M)
for(var/mob/hologram/holo as anything in GLOB.hologram_list)
if(!holo.motion_sensed)
diff --git a/code/game/objects/items/props/helmetgarb.dm b/code/game/objects/items/props/helmetgarb.dm
index 2c83f5beee..558c8b235c 100644
--- a/code/game/objects/items/props/helmetgarb.dm
+++ b/code/game/objects/items/props/helmetgarb.dm
@@ -52,6 +52,15 @@
desc = "The standard M10 combat helmet is already water-resistant at depths of up to 10 meters. This makes the top potentially water-proof. At least it's something."
icon_state = "raincover"
+/obj/item/prop/helmetgarb/camocover
+ name = "camocover"
+ desc = "A cover that goes over the top of an M10 pattern helmet to camoflauge it without needing the use of paints."
+ icon_state = "camocover"
+
+/obj/item/prop/helmetgarb/camocover/Initialize(mapload, ...)
+ . = ..()
+ select_gamemode_skin(/obj/item/prop/helmetgarb/camocover)
+
/obj/item/prop/helmetgarb/rabbitsfoot
name = "Rabbit's Foot"
desc = "Lucky for you, but not the rabbit, didn't really do it much good."
diff --git a/code/game/objects/items/stacks/sheets/sheet_types.dm b/code/game/objects/items/stacks/sheets/sheet_types.dm
index 0ed2894150..cefdee4c93 100644
--- a/code/game/objects/items/stacks/sheets/sheet_types.dm
+++ b/code/game/objects/items/stacks/sheets/sheet_types.dm
@@ -222,7 +222,7 @@ var/global/list/datum/stack_recipe/cardboard_recipes = list ( \
)), \
null, \
new/datum/stack_recipe_list("empty ammo boxes",list( \
- new/datum/stack_recipe("empty magazine box (88 Mod 4 AP)", /obj/item/ammo_box/magazine/mod88/empty), \
+ new/datum/stack_recipe("empty magazine box (VP70)", /obj/item/ammo_box/magazine/vp70/empty), \
new/datum/stack_recipe("empty magazine box (M4A3)", /obj/item/ammo_box/magazine/m4a3/empty), \
new/datum/stack_recipe("empty magazine box (M4A3 AP)", /obj/item/ammo_box/magazine/m4a3/ap/empty), \
new/datum/stack_recipe("empty magazine box (M4A3 HP)", /obj/item/ammo_box/magazine/m4a3/hp/empty), \
diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm
index 81e838b30b..619c50b90c 100644
--- a/code/game/objects/items/storage/backpack.dm
+++ b/code/game/objects/items/storage/backpack.dm
@@ -1027,7 +1027,7 @@
/obj/item/weapon/gun/rifle/m4ra/training,
/obj/item/weapon/gun/smg/m39/training,
/obj/item/weapon/gun/pistol/m4a3/training,
- /obj/item/weapon/gun/pistol/mod88/training) //Ivan doesn't carry toys.
+ /obj/item/weapon/gun/pistol/vp70/training) //Ivan doesn't carry toys.
var/list/picklist = subtypesof(/obj/item/weapon/gun) - (template_guns + bad_guns + emplacements + yautja_guns + smartguns + training_guns)
var/random_gun = pick(picklist)
diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm
index 2c17f447f1..5c8c36625a 100644
--- a/code/game/objects/items/storage/belt.dm
+++ b/code/game/objects/items/storage/belt.dm
@@ -418,8 +418,8 @@
new /obj/item/handcuffs(src)
new /obj/item/handcuffs(src)
new /obj/item/reagent_container/spray/pepper(src)
- new /obj/item/ammo_magazine/pistol/mod88/normalpoint(src)
- new /obj/item/ammo_magazine/pistol/mod88/normalpoint(src)
+ new /obj/item/ammo_magazine/pistol/vp70(src)
+ new /obj/item/ammo_magazine/pistol/vp70(src)
/obj/item/storage/belt/security/MP/UPP
@@ -448,8 +448,8 @@
new /obj/item/handcuffs(src)
new /obj/item/handcuffs(src)
new /obj/item/handcuffs(src)
- new /obj/item/ammo_magazine/revolver/cmb/normalpoint(src)
- new /obj/item/ammo_magazine/revolver/cmb/normalpoint(src)
+ new /obj/item/ammo_magazine/revolver/spearhead(src)
+ new /obj/item/ammo_magazine/revolver/spearhead(src)
/obj/item/storage/belt/security/MP/CMB/full/highpower/fill_preset_inventory()
new /obj/item/weapon/gun/energy/taser(src)
@@ -1184,15 +1184,15 @@
new /obj/item/ammo_magazine/pistol(src)
new /obj/item/ammo_magazine/pistol(src)
-/obj/item/storage/belt/gun/m4a3/mod88/fill_preset_inventory()
- handle_item_insertion(new /obj/item/weapon/gun/pistol/mod88())
+/obj/item/storage/belt/gun/m4a3/vp70/fill_preset_inventory()
+ handle_item_insertion(new /obj/item/weapon/gun/pistol/vp70())
for(var/i = 1 to storage_slots - 1)
- new /obj/item/ammo_magazine/pistol/mod88/normalpoint(src)
+ new /obj/item/ammo_magazine/pistol/vp70(src)
-/obj/item/storage/belt/gun/m4a3/mod88_near_empty/fill_preset_inventory()
- handle_item_insertion(new /obj/item/weapon/gun/pistol/mod88())
+/obj/item/storage/belt/gun/m4a3/vp70_near_empty/fill_preset_inventory()
+ handle_item_insertion(new /obj/item/weapon/gun/pistol/vp70())
for(var/i = 1 to 3)
- new /obj/item/ammo_magazine/pistol/mod88/normalpoint(src)
+ new /obj/item/ammo_magazine/pistol/vp70(src)
/obj/item/storage/belt/gun/m4a3/vp78/fill_preset_inventory()
handle_item_insertion(new /obj/item/weapon/gun/pistol/vp78())
@@ -1254,10 +1254,15 @@
for(var/i = 1 to storage_slots - 1)
new /obj/item/ammo_magazine/pistol/highpower/black(src)
-/obj/item/storage/belt/gun/m4a3/highpower/tactical/fill_preset_inventory()
- handle_item_insertion(new /obj/item/weapon/gun/pistol/highpower/tactical())
+/obj/item/storage/belt/gun/m4a3/highpower/automag/fill_preset_inventory()
+ handle_item_insertion(new /obj/item/weapon/gun/pistol/highpower/automag())
for(var/i = 1 to storage_slots - 1)
- new /obj/item/ammo_magazine/pistol/highpower/black(src)
+ new /obj/item/ammo_magazine/pistol/highpower/automag(src)
+
+/obj/item/storage/belt/gun/m4a3/highpower/automag/tactical/fill_preset_inventory()
+ handle_item_insertion(new /obj/item/weapon/gun/pistol/highpower/automag/tactical())
+ for(var/i = 1 to storage_slots - 1)
+ new /obj/item/ammo_magazine/pistol/highpower/automag(src)
/obj/item/storage/belt/gun/m39
name = "\improper M276 pattern M39 holster rig"
@@ -1582,11 +1587,11 @@
/obj/item/ammo_magazine/rifle/m4ra/rubber,
/obj/item/ammo_magazine/smg/m39/rubber,
/obj/item/ammo_magazine/pistol/rubber,
- /obj/item/ammo_magazine/pistol/mod88/rubber) //Ivan doesn't bring children's ammo.
+ /obj/item/ammo_magazine/pistol/vp70/rubber) //Ivan doesn't bring children's ammo.
var/list/picklist = subtypesof(/obj/item/ammo_magazine) - (internal_mags + bad_mags + sentry_mags + training_mags)
var/random_mag = pick(picklist)
- var/guntype = pick(subtypesof(/obj/item/weapon/gun/revolver) + subtypesof(/obj/item/weapon/gun/pistol) - list(/obj/item/weapon/gun/pistol/m4a3/training, /obj/item/weapon/gun/pistol/mod88/training))
+ var/guntype = pick(subtypesof(/obj/item/weapon/gun/revolver) + subtypesof(/obj/item/weapon/gun/pistol) - list(/obj/item/weapon/gun/pistol/m4a3/training, /obj/item/weapon/gun/pistol/vp70/training))
handle_item_insertion(new guntype())
for(var/total_storage_slots in 2 to storage_slots) //minus templates
new random_mag(src)
@@ -1872,7 +1877,7 @@
/obj/item/storage/belt/gun/utility/full/fill_preset_inventory()
- handle_item_insertion(new /obj/item/weapon/gun/pistol/mod88())
+ handle_item_insertion(new /obj/item/weapon/gun/pistol/vp70())
new /obj/item/tool/screwdriver(src)
new /obj/item/tool/wrench(src)
new /obj/item/tool/weldingtool(src)
diff --git a/code/game/objects/items/storage/misc.dm b/code/game/objects/items/storage/misc.dm
index 19e680a197..33b2b5f778 100644
--- a/code/game/objects/items/storage/misc.dm
+++ b/code/game/objects/items/storage/misc.dm
@@ -111,48 +111,117 @@
else
icon_state = "6_pack_[contents.len]"
-/obj/item/storage/box/clf
- name = "D18-storing box"
- desc = "A fairly decorated and ceremonial box containing a CLF D18 and a single additional magazine for it. I guess those CLF folk really care about their craftsmanship and prose rather than practicality, eh?"
- icon = 'icons/obj/items/storage.dmi'
- icon_state = "m43case"
- w_class = SIZE_SMALL
- max_w_class = SIZE_TINY
- storage_slots = 2
-
-/obj/item/storage/box/clf/fill_preset_inventory()
- new /obj/item/weapon/gun/pistol/clfpistol(src)
- new /obj/item/ammo_magazine/pistol/clfpistol(src)
-
-/obj/item/storage/box/upp //war trophy luger
- name = "Type 73 storing case"
- desc = "A small case containing the once-standard sidearm of the UPP, the Type 73, and two additional magazines. The contained sidearm is probably looted off a dead officer or from a captured stockpile, either way this thing is worth a pretty penny."
+/obj/item/storage/box/loadout
+ name = "storage case"
+ desc = "A wooden case that fits a pistol and a number of magazines."
icon = 'icons/obj/items/storage.dmi'
icon_state = "matebacase"
w_class = SIZE_LARGE
max_w_class = SIZE_MEDIUM
- storage_slots = 3
-
-/obj/item/storage/box/upp/fill_preset_inventory()
- new /obj/item/weapon/gun/pistol/t73(src)
- new /obj/item/ammo_magazine/pistol/t73(src)
- new /obj/item/ammo_magazine/pistol/t73(src)
+ storage_slots = 7
-/obj/item/storage/box/M1911_loadout
+/obj/item/storage/box/loadout/upp
+ name = "Type 73 storing case"
+ desc = "A small case containing a loaded Type 73, and additional magazines."
+/obj/item/storage/box/loadout/upp/fill_preset_inventory()
+ handle_item_insertion(new /obj/item/weapon/gun/pistol/t73())
+ for(var/i = 1 to storage_slots - 1)
+ new /obj/item/ammo_magazine/pistol/t73(src)
+
+/obj/item/storage/box/loadout/M4A3_custom_loadout
+ name = "M4A3 storage case"
+ desc = "A relatively large storage case containing a loaded M4A3 and additional magazines."
+
+/obj/item/storage/box/loadout/M4A3_custom_loadout/fill_preset_inventory()
+ handle_item_insertion(new /obj/item/weapon/gun/pistol/m4a3/custom())
+ for(var/i = 1 to storage_slots - 1)
+ new /obj/item/ammo_magazine/pistol(src)
+
+/obj/item/storage/box/loadout/HG45_civilian_loadout
+ name = "HG 45 'Aguila' storage case"
+ desc = "A relatively large storage case containing a loaded HG 45 'Aguila' and additional magazines."
+
+/obj/item/storage/box/loadout/HG45_civilian_loadout/fill_preset_inventory()
+ handle_item_insertion(new /obj/item/weapon/gun/pistol/highpower())
+ for(var/i = 1 to storage_slots - 1)
+ new /obj/item/ammo_magazine/pistol/highpower(src)
+
+/obj/item/storage/box/loadout/HG45_marine_loadout
+ name = "HG 45 'Marina' storage case"
+ desc = "A relatively large storage case containing a loaded HG 45 'Marina' and additional magazines."
+
+/obj/item/storage/box/loadout/HG45_marine_loadout/fill_preset_inventory()
+ handle_item_insertion(new /obj/item/weapon/gun/pistol/highpower/black())
+ for(var/i = 1 to storage_slots - 1)
+ new /obj/item/ammo_magazine/pistol/highpower/black(src)
+
+/obj/item/storage/box/loadout/HG44_loadout
+ name = "HG 44 'Automag' storage case"
+ desc = "A relatively large storage case containing a loaded HG 44 'Automag' and additional magazines."
+
+/obj/item/storage/box/loadout/HG44_loadout/fill_preset_inventory()
+ handle_item_insertion(new /obj/item/weapon/gun/pistol/highpower/automag())
+ for(var/i = 1 to storage_slots - 1)
+ new /obj/item/ammo_magazine/pistol/highpower/automag(src)
+
+/obj/item/storage/box/loadout/Spearhead_loadout
+ name = "Spearhead Armoury storage case"
+ desc = "A relatively large storage case containing a loaded Spearhead Armoury revolver and additional speedloaders."
+
+/obj/item/storage/box/loadout/Spearhead_loadout/fill_preset_inventory()
+ handle_item_insertion(new /obj/item/weapon/gun/revolver/spearhead())
+ for(var/i = 1 to storage_slots - 1)
+ new /obj/item/ammo_magazine/revolver/spearhead(src)
+
+/obj/item/storage/box/loadout/Spearhead_loadout/custom
+ name = "Spearhead Armoury storage case"
+ desc = "A relatively large storage case containing a loaded Spearhead Armoury revolver and additional speedloaders."
+
+/obj/item/storage/box/loadout/Spearhead_loadout/custom/fill_preset_inventory()
+ handle_item_insertion(new /obj/item/weapon/gun/revolver/spearhead/black())
+ for(var/i = 1 to storage_slots - 1)
+ new /obj/item/ammo_magazine/revolver/spearhead(src)
+
+/obj/item/storage/box/loadout/M1911_loadout
name = "M1911 storage case"
- desc = "A relatively large storage case containing the 1911 and additional magazines. Purchased by enlisted or aspiring PMCs looking to carry a timeless classic"
- icon = 'icons/obj/items/storage.dmi'
- icon_state = "matebacase"
- w_class = SIZE_LARGE
- max_w_class = SIZE_MEDIUM
- storage_slots = 3
+ desc = "A relatively large storage case containing a loaded M1911 and additional magazines."
+
+/obj/item/storage/box/loadout/M1911_loadout/fill_preset_inventory()
+ handle_item_insertion(new /obj/item/weapon/gun/pistol/m1911())
+ for(var/i = 1 to storage_slots - 1)
+ new /obj/item/ammo_magazine/pistol/m1911(src)
+
+/obj/item/storage/box/loadout/M44_loadout
+ name = "M44 storage case"
+ desc = "A relatively large storage case containing a loaded M44 revolver and additional speedloaders."
+
+/obj/item/storage/box/loadout/M44_loadout/fill_preset_inventory()
+ handle_item_insertion(new /obj/item/weapon/gun/revolver/m44())
+ for(var/i = 1 to storage_slots - 1)
+ new /obj/item/ammo_magazine/revolver(src)
+
+/obj/item/storage/box/loadout/M44_custom_loadout
+ name = "M44 storage case"
+ desc = "A relatively large storage case containing a loaded M44 revolver and additional speedloaders."
+
+/obj/item/storage/box/loadout/M44_custom_loadout/fill_preset_inventory()
+ handle_item_insertion(new /obj/item/weapon/gun/revolver/m44/custom())
+ for(var/i = 1 to storage_slots - 1)
+ new /obj/item/ammo_magazine/revolver(src)
+
+/obj/item/storage/box/loadout/clf
+ name = "Hummingbird storage box"
+ desc = "A slim storage case containing a loaded Hummingbird pistol and additional magazines."
+ w_class = SIZE_SMALL
+ max_w_class = SIZE_TINY
+ storage_slots = 4
-/obj/item/storage/box/M1911_loadout/fill_preset_inventory()
- new /obj/item/weapon/gun/pistol/m1911(src)
- new /obj/item/ammo_magazine/pistol/m1911(src)
- new /obj/item/ammo_magazine/pistol/m1911(src)
+/obj/item/storage/box/loadout/clf/fill_preset_inventory()
+ handle_item_insertion(new /obj/item/weapon/gun/pistol/clfpistol())
+ for(var/i = 1 to storage_slots - 1)
+ new /obj/item/ammo_magazine/pistol/clfpistol(src)
-/obj/item/storage/box/co2_knife
+/obj/item/storage/box/loadout/co2_knife
name = "M8 cartridge bayonet packaging"
desc = "Contains one M8 Cartridge Bayonet and two sister CO2 cartridges. Thanks for being a dedicated Boots magazine subscriber!"
icon_state = "co2_box"
@@ -162,7 +231,7 @@
w_class = SIZE_SMALL
max_w_class = SIZE_SMALL
-/obj/item/storage/box/co2_knife/fill_preset_inventory()
+/obj/item/storage/box/loadout/co2_knife/fill_preset_inventory()
new /obj/item/attachable/bayonet/co2(src)
new /obj/item/co2_cartridge(src)
new /obj/item/co2_cartridge(src)
diff --git a/code/game/objects/items/storage/pouch.dm b/code/game/objects/items/storage/pouch.dm
index e1f4a17204..6ab25f0b73 100644
--- a/code/game/objects/items/storage/pouch.dm
+++ b/code/game/objects/items/storage/pouch.dm
@@ -461,7 +461,7 @@
/obj/item/storage/pouch/magazine/pistol/pmc_mod88/fill_preset_inventory()
for(var/i = 1 to storage_slots)
- new /obj/item/ammo_magazine/pistol/mod88/normalpoint(src)
+ new /obj/item/ammo_magazine/pistol/vp70(src)
/obj/item/storage/pouch/magazine/pistol/pmc_vp78/fill_preset_inventory()
for(var/i = 1 to storage_slots)
diff --git a/code/game/objects/prop.dm b/code/game/objects/prop.dm
index ac94e8ab03..f24fec66a6 100644
--- a/code/game/objects/prop.dm
+++ b/code/game/objects/prop.dm
@@ -291,3 +291,22 @@
/obj/item/prop/magazine/boots/n055
name = "Boots!: Issue No.55"
desc = "The only official USCM magazine, the headline reads 'TEN tips to keep your UD4 cockpit both safer and more relaxing.'"
+
+/obj/item/prop/scrap
+ name = "scrap metal"
+ icon = 'icons/obj/items/fishing_atoms.dmi'
+ icon_state = "sheet-scrap"
+ item_state = ""
+ desc = "A rusty piece of scrap metal."
+ w_class = SIZE_MEDIUM
+
+/obj/item/prop/rock
+ name = "rock"
+ icon = 'icons/obj/items/plush.dmi'
+ icon_state = "rock"
+ item_state = ""
+ force = 30
+ throwforce = 25
+ desc = "The most ancient of tools."
+ w_class = SIZE_TINY
+ hitsound = 'sound/weapons/genhit3.ogg'
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 2379837c97..f5fee64f1a 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)
@@ -115,7 +103,6 @@
/obj/structure/closet/secure_closet/squad_sergeant/Initialize()
. = ..()
- new /obj/item/clothing/head/helmet/marine/rto(src)
new /obj/item/device/binoculars/range/designator(src)
new /obj/item/device/whistle(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/guncabinet/guncabinet.dm b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet/guncabinet.dm
index 4531a68c42..30b8ccb025 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/guncabinet/guncabinet.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet/guncabinet.dm
@@ -80,10 +80,10 @@
new /obj/item/weapon/shield/riot(src)
new /obj/item/weapon/shield/riot(src)
new /obj/item/weapon/shield/riot(src)
- new /obj/item/ammo_magazine/shotgun/beanbag/riot(src)
- new /obj/item/ammo_magazine/shotgun/beanbag/riot(src)
- new /obj/item/ammo_magazine/shotgun/beanbag/riot(src)
- new /obj/item/ammo_magazine/shotgun/beanbag/riot(src)
+ new /obj/item/ammo_magazine/shotgun/beanbag(src)
+ new /obj/item/ammo_magazine/shotgun/beanbag(src)
+ new /obj/item/ammo_magazine/shotgun/beanbag(src)
+ new /obj/item/ammo_magazine/shotgun/beanbag(src)
new /obj/item/weapon/gun/launcher/grenade/m81/riot(src, TRUE)
new /obj/item/storage/box/nade_box/tear_gas(src)
new /obj/item/clothing/mask/gas(src)
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/guncabinet/level_blue.dm b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet/level_blue.dm
index acc43c302e..a208a61a95 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/guncabinet/level_blue.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet/level_blue.dm
@@ -18,10 +18,10 @@
new /obj/item/weapon/shield/riot(src)
new /obj/item/weapon/shield/riot(src)
new /obj/item/weapon/shield/riot(src)
- new /obj/item/ammo_magazine/shotgun/beanbag/riot(src)
- new /obj/item/ammo_magazine/shotgun/beanbag/riot(src)
- new /obj/item/ammo_magazine/shotgun/beanbag/riot(src)
- new /obj/item/ammo_magazine/shotgun/beanbag/riot(src)
+ new /obj/item/ammo_magazine/shotgun/beanbag(src)
+ new /obj/item/ammo_magazine/shotgun/beanbag(src)
+ new /obj/item/ammo_magazine/shotgun/beanbag(src)
+ new /obj/item/ammo_magazine/shotgun/beanbag(src)
new /obj/item/weapon/gun/launcher/grenade/m81/riot(src, TRUE)
new /obj/item/storage/box/nade_box/tear_gas(src)
new /obj/item/clothing/mask/gas(src)
diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm
index 119615ab7a..9d9aaeb0f3 100644
--- a/code/game/objects/structures/crates_lockers/crates.dm
+++ b/code/game/objects/structures/crates_lockers/crates.dm
@@ -411,11 +411,11 @@
weapon_type = /obj/item/weapon/gun/pistol/m4a3/training
ammo_type = /obj/item/ammo_magazine/pistol/rubber
-/obj/structure/closet/crate/weapon/training/mod88
- name = "training 88 mod 4 crate"
- desc = "A crate with an 88 mod 4 pistol and nonlethal ammunition for it. Intended for use in combat exercises."
- weapon_type = /obj/item/weapon/gun/pistol/mod88/training
- ammo_type = /obj/item/ammo_magazine/pistol/mod88/rubber
+/obj/structure/closet/crate/weapon/training/vp70
+ name = "training VP70 crate"
+ desc = "A crate with an VP70 pistol and nonlethal ammunition for it. Intended for use in combat exercises."
+ weapon_type = /obj/item/weapon/gun/pistol/vp70/training
+ ammo_type = /obj/item/ammo_magazine/pistol/vp70/rubber
/obj/structure/closet/crate/weapon/training/grenade
name = "rubber pellet M15 grenades crate"
diff --git a/code/game/objects/structures/crates_lockers/largecrate.dm b/code/game/objects/structures/crates_lockers/largecrate.dm
index de4788d345..eb6b14d811 100644
--- a/code/game/objects/structures/crates_lockers/largecrate.dm
+++ b/code/game/objects/structures/crates_lockers/largecrate.dm
@@ -397,7 +397,7 @@
/obj/item/weapon/gun/pistol/m1911 = /obj/item/ammo_magazine/pistol/m1911,
/obj/item/weapon/gun/pistol/heavy = /obj/item/ammo_magazine/pistol/heavy,
/obj/item/weapon/gun/revolver/small = /obj/item/ammo_magazine/revolver/small,
- /obj/item/weapon/gun/revolver/cmb = /obj/item/ammo_magazine/revolver/cmb,
+ /obj/item/weapon/gun/revolver/spearhead = /obj/item/ammo_magazine/revolver/spearhead,
/obj/item/weapon/gun/shotgun/merc = /obj/item/ammo_magazine/handful/shotgun/buckshot,
/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb = /obj/item/ammo_magazine/handful/shotgun/buckshot,
/obj/item/weapon/gun/smg/mp27 = /obj/item/ammo_magazine/smg/mp27,
diff --git a/code/game/sound.dm b/code/game/sound.dm
index fd8f873aab..9f619ccbff 100644
--- a/code/game/sound.dm
+++ b/code/game/sound.dm
@@ -435,8 +435,8 @@
S = pick('sound/weapons/gun_shotgun_tactical_1.ogg','sound/weapons/gun_shotgun_tactical_2.ogg','sound/weapons/gun_shotgun_tactical_3.ogg','sound/weapons/gun_shotgun_tactical_4.ogg')
if("m4a3")
S = pick('sound/weapons/gun_m4a3_1.ogg','sound/weapons/gun_m4a3_2.ogg','sound/weapons/gun_m4a3_3.ogg','sound/weapons/gun_m4a3_4.ogg','sound/weapons/gun_m4a3_5.ogg')
- if("88m4")
- S = pick('sound/weapons/gun_88m4_v7.ogg')
+ if("vp70")
+ S = pick('sound/weapons/gun_vp70_v7.ogg')
if("gun_casing_shotgun")
S = pick ('sound/bullets/bulletcasing_shotgun_fall1.ogg')
if("gun_nsg23")
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 33d77b05c6..dc67dcd57d 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -21,7 +21,7 @@ GLOBAL_LIST_INIT(bgstate_options, list(
"whitefull"
))
-var/const/MAX_SAVE_SLOTS = 10
+var/const/MAX_SAVE_SLOTS = 20
/datum/preferences
var/client/owner
@@ -927,6 +927,18 @@ var/const/MAX_SAVE_SLOTS = 10
return jobs_to_return
+/// Returns TRUE if any job has a priority other than NEVER, FALSE otherwise.
+/datum/preferences/proc/has_job_priorities()
+ if(!length(job_preference_list))
+ ResetJobs()
+ return FALSE
+
+ for(var/job in job_preference_list)
+ if(job_preference_list[job] != NEVER_PRIORITY)
+ return TRUE
+
+ return FALSE
+
/datum/preferences/proc/SetJobDepartment(datum/job/J, priority)
if(!J || priority < 0 || priority > 4)
return FALSE
@@ -1594,7 +1606,7 @@ var/const/MAX_SAVE_SLOTS = 10
if("underwear")
var/list/underwear_options = gender == MALE ? GLOB.underwear_m : GLOB.underwear_f
var/old_gender = gender
- var/new_underwear = tgui_input_list(user, "Choose your character's underwear:", "Character Preference", underwear_options)
+ var/new_underwear = tgui_input_list(user, "Choose your character's underwear:", "Character Preference", underwear_options-GLOB.underwear_restricted)
if(old_gender != gender)
return
if(new_underwear)
@@ -1604,7 +1616,7 @@ var/const/MAX_SAVE_SLOTS = 10
if("undershirt")
var/list/undershirt_options = gender == MALE ? GLOB.undershirt_m : GLOB.undershirt_f
var/old_gender = gender
- var/new_undershirt = tgui_input_list(user, "Choose your character's undershirt:", "Character Preference", undershirt_options)
+ var/new_undershirt = tgui_input_list(user, "Choose your character's undershirt:", "Character Preference", undershirt_options-GLOB.undershirt_restricted)
if(old_gender != gender)
return
if(new_undershirt)
diff --git a/code/modules/client/preferences_gear.dm b/code/modules/client/preferences_gear.dm
index c66dc87008..e67414483f 100644
--- a/code/modules/client/preferences_gear.dm
+++ b/code/modules/client/preferences_gear.dm
@@ -720,31 +720,58 @@ var/global/list/gear_datums_by_name = list()
/datum/gear/weapon/m8_cartridge_bayonet
display_name = "M8 Cartridge Bayonet"
- path = /obj/item/storage/box/co2_knife
+ path = /obj/item/storage/box/loadout/co2_knife
/datum/gear/weapon/clfpistol
- display_name = "D18 Holdout Pistol"
- path = /obj/item/storage/box/clf
+ display_name = "Hummingbird Pistol"
+ path = /obj/item/storage/box/loadout/clf
-/datum/gear/weapon/upppistol //ww2 war trophy luger
+/datum/gear/weapon/upppistol
display_name = "Type 73 Pistol"
- path = /obj/item/storage/box/upp
- slot = WEAR_IN_BACK
- cost = 4
+ path = /obj/item/storage/box/loadout/upp
/datum/gear/weapon/m4a3_custom
- display_name = "M4A3 Custom Pistol"
- path = /obj/item/weapon/gun/pistol/m4a3/custom
+ display_name = "Custom M4A3 Pistol"
+ path = /obj/item/storage/box/loadout/M4A3_custom_loadout
+ allowed_origins = USCM_ORIGINS
+
+/datum/gear/weapon/m1911
+ display_name = "M1911 Pistol"
+ path = /obj/item/storage/box/loadout/M1911_loadout
+ allowed_origins = USCM_ORIGINS
+
+/datum/gear/weapon/m44
+ display_name = "M44 Revolver"
+ path = /obj/item/storage/box/loadout/M44_loadout
allowed_origins = USCM_ORIGINS
/datum/gear/weapon/m44_custom_revolver
- display_name = "M44 Custom Revolver"
- path = /obj/item/weapon/gun/revolver/m44/custom
+ display_name = "Custom M44 Revolver"
+ path = /obj/item/storage/box/loadout/M44_custom_loadout
allowed_origins = USCM_ORIGINS
-/datum/gear/weapon/m1911
- display_name = "M1911 Service Pistol"
- path = /obj/item/storage/box/M1911_loadout
+/datum/gear/weapon/hg45_civilian
+ display_name = "HG 45 'Aguila' Pistol"
+ path = /obj/item/storage/box/loadout/HG45_civilian_loadout
+
+/datum/gear/weapon/hg45_marine
+ display_name = "HG 45 'Marina' Pistol"
+ path = /obj/item/storage/box/loadout/HG45_marine_loadout
+ allowed_origins = USCM_ORIGINS
+
+/datum/gear/weapon/hg44
+ display_name = "HG 44 'Automag' Pistol"
+ path = /obj/item/storage/box/loadout/HG45_marine_loadout
+ allowed_origins = USCM_ORIGINS
+
+/datum/gear/weapon/spearhead
+ display_name = "Spearhead Armoury Revolver"
+ path = /obj/item/storage/box/loadout/Spearhead_loadout
+ allowed_origins = USCM_ORIGINS
+
+/datum/gear/weapon/spearhead_custom
+ display_name = "Custom Spearhead Armoury Revolver"
+ path = /obj/item/storage/box/loadout/Spearhead_loadout/custom
allowed_origins = USCM_ORIGINS
/datum/gear/weapon/m2100_machete
diff --git a/code/modules/clothing/glasses/night.dm b/code/modules/clothing/glasses/night.dm
index fbb6fcab27..8b3a1551cd 100644
--- a/code/modules/clothing/glasses/night.dm
+++ b/code/modules/clothing/glasses/night.dm
@@ -89,7 +89,7 @@
/obj/item/clothing/glasses/night/m56_goggles
name = "\improper M56 head mounted sight"
gender = NEUTER
- desc = "A headset and goggles system for the M56 Smartgun. Has a low-res short-range imager, allowing for view of terrain."
+ desc = "A headset and goggles system for the M56 Smartgun weapon system. Has a low-res short-range imager, allowing for view of terrain."
icon = 'icons/obj/items/clothing/glasses.dmi'
icon_state = "m56_goggles"
deactive_state = "m56_goggles_0"
diff --git a/code/modules/clothing/head/head.dm b/code/modules/clothing/head/head.dm
index f6a3297148..e5398bab46 100644
--- a/code/modules/clothing/head/head.dm
+++ b/code/modules/clothing/head/head.dm
@@ -375,7 +375,7 @@
/obj/item/clothing/head/cmcap/flap
name = "\improper USCM expedition cap"
- desc = "It's a cap, with flaps. A patch stitched across the front reads \"USS ALMAYER\"."
+ desc = "A casual cap issued as part of the non-combat uniform. While it only protects from the sun, it's much more comfortable than a helmet. This one comes with flaps to keep the sun off your neck."
icon = 'icons/obj/items/clothing/cm_hats.dmi'
icon_state = "flapcap"
flags_marine_hat = HAT_GARB_OVERLAY
diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm
index f885abfceb..a55bc37e26 100644
--- a/code/modules/clothing/head/helmet.dm
+++ b/code/modules/clothing/head/helmet.dm
@@ -283,6 +283,7 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list(
/obj/item/prop/helmetgarb/cartridge = "cartridge",
/obj/item/prop/helmetgarb/prescription_bottle = "prescription_bottle",
/obj/item/prop/helmetgarb/raincover = "raincover",
+ /obj/item/prop/helmetgarb/camocover = "camocover",
/obj/item/prop/helmetgarb/rabbitsfoot = "rabbitsfoot",
/obj/item/prop/helmetgarb/rosary = "helmet_rosary", // This one was already in the game for some reason, but never had an object
/obj/item/prop/helmetgarb/lucky_feather = "lucky_feather",
@@ -916,8 +917,7 @@ GLOBAL_LIST_INIT(allowed_helmet_items, list(
flags_inventory = BLOCKSHARPOBJ
flags_inv_hide = HIDEEARS|HIDETOPHAIR
flags_marine_helmet = HELMET_GARB_OVERLAY
- flags_item = MOB_LOCK_ON_EQUIP
- specialty = "M45 ghillie"
+ specialty = "M10 ghillie"
/obj/item/clothing/head/helmet/marine/CO
name = "\improper M10 pattern commanding officer helmet"
diff --git a/code/modules/clothing/suits/marine_armor.dm b/code/modules/clothing/suits/marine_armor.dm
index 6c5701c1a3..e3a1a3fe8d 100644
--- a/code/modules/clothing/suits/marine_armor.dm
+++ b/code/modules/clothing/suits/marine_armor.dm
@@ -376,7 +376,7 @@
/obj/item/clothing/suit/storage/marine/smartgunner
name = "\improper M56 combat harness"
- desc = "Lightweight vest composed of ballistic micromesh and a ceramic composite chestplate. Also contains the computers, straps, and bracing required for operating the M56 Smartgun itself."
+ desc = "Lightweight vest composed of ballistic micromesh and a ceramic composite chestplate for practical protection, as well as the computers, straps, and armature required for operating the M56 Smartgun itself."
icon_state = "8"
item_state = "armor"
armor_laser = CLOTHING_ARMOR_LOW
@@ -514,6 +514,16 @@
/obj/item/clothing/suit/storage/marine/medium
armor_variation = 6
+/obj/item/clothing/suit/storage/marine/medium/non_spec_ghillie //doesnt have sniper spec shit associated with it
+ name = "\improper M40 pattern ghillie armor"
+ desc = "An older variant of camouflage suit used by snipers and scouts. While cheap to produce and easy to use, this suit of armor doesn't offer same level of stealth as newer M45 with integrated heatsink."
+ icon_state = "ghillie_armor"
+ armor_bio = CLOTHING_ARMOR_MEDIUMHIGH
+ flags_marine_armor = ARMOR_LAMP_OVERLAY
+ specialty = "M40 pattern ghillie"
+ valid_accessory_slots = list(ACCESSORY_SLOT_ARMBAND, ACCESSORY_SLOT_DECOR, ACCESSORY_SLOT_MEDAL)
+ restricted_accessory_slots = list(ACCESSORY_SLOT_ARMBAND)
+
/obj/item/clothing/suit/storage/marine/light
name = "\improper M3-L pattern light armor"
desc = "A lighter, cut down version of the standard M3 pattern armor. It sacrifices durability for more speed."
diff --git a/code/modules/cm_marines/equipment/guncases.dm b/code/modules/cm_marines/equipment/guncases.dm
index 98af79c511..3162cc32e8 100644
--- a/code/modules/cm_marines/equipment/guncases.dm
+++ b/code/modules/cm_marines/equipment/guncases.dm
@@ -24,7 +24,7 @@
//------------
/obj/item/storage/box/guncase/vp78
name = "\improper VP78 pistol case"
- desc = "A gun case containing the VP78. Comes with two magazines."
+ desc = "A gun case containing a VP78. Comes with two magazines."
can_hold = list(/obj/item/weapon/gun/pistol/vp78, /obj/item/ammo_magazine/pistol/vp78)
storage_slots = 3
@@ -36,7 +36,7 @@
//------------
/obj/item/storage/box/guncase/smartpistol
name = "\improper SU-6 pistol case"
- desc = "A gun case containing the SU-6 smart pistol. Comes with a full belt holster."
+ desc = "A gun case containing a SU-6 smart pistol. Comes with a full belt holster."
can_hold = list(/obj/item/storage/belt/gun/smartpistol, /obj/item/weapon/gun/pistol/smart, /obj/item/ammo_magazine/pistol/smart)
storage_slots = 2
@@ -47,7 +47,7 @@
//------------
/obj/item/storage/box/guncase/mou53
name = "\improper MOU53 shotgun case"
- desc = "A gun case containing the MOU53 shotgun. It does come loaded, but you'll still have to find ammunition as you go."
+ desc = "A gun case containing a MOU53 shotgun. It does come loaded, but you'll still have to find ammunition as you go."
storage_slots = 2
can_hold = list(/obj/item/weapon/gun/shotgun/double/mou53, /obj/item/attachable/stock/mou53)
@@ -58,7 +58,7 @@
//------------
/obj/item/storage/box/guncase/lmg
name = "\improper M41AE2 heavy pulse rifle case"
- desc = "A gun case containing the M41AE2 heavy pulse rifle. You can get additional ammunition at requisitions."
+ desc = "A gun case containing a M41AE2 heavy pulse rifle. You can get additional ammunition at requisitions."
storage_slots = 5
can_hold = list(/obj/item/weapon/gun/rifle/lmg, /obj/item/ammo_magazine/rifle/lmg)
@@ -72,7 +72,7 @@
//------------
/obj/item/storage/box/guncase/m41aMK1
name = "\improper M41A pulse rifle MK1 case"
- desc = "A gun case containing the M41A pulse rifle MK1. It can only use proprietary MK1 magazines."
+ desc = "A gun case containing a loaded M41A pulse rifle MK1 and two additional magazines."
storage_slots = 3
can_hold = list(/obj/item/weapon/gun/rifle/m41aMK1, /obj/item/ammo_magazine/rifle/m41aMK1)
@@ -84,7 +84,7 @@
/obj/item/storage/box/guncase/m41aMK1AP
name = "\improper M41A pulse rifle MK1 AP case"
- desc = "A gun case containing the M41A pulse rifle MK1 loaded with AP rounds. It can only use proprietary MK1 magazines."
+ desc = "A gun case containing a M41A pulse rifle MK1 loaded with AP rounds and two additional magazines."
storage_slots = 3
can_hold = list(/obj/item/weapon/gun/rifle/m41aMK1, /obj/item/ammo_magazine/rifle/m41aMK1)
@@ -97,7 +97,7 @@
//M79 grenade launcher
/obj/item/storage/box/guncase/m79
name = "\improper M79 grenade launcher case"
- desc = "A gun case containing the modernized M79 grenade launcher. Comes with 3 baton slugs, 3 hornet shells and 3 star shell grenades."
+ desc = "A gun case containing a modernized M79 grenade launcher. Comes with 3 baton slugs, 3 hornet shells and 3 star shell grenades."
storage_slots = 4
can_hold = list(/obj/item/weapon/gun/launcher/grenade/m81/m79, /obj/item/storage/box/packet)
@@ -111,7 +111,7 @@
//R4T lever action rifle
/obj/item/storage/box/guncase/r4t_scout
name = "\improper R4T lever action rifle case"
- desc = "A gun case containing the R4T lever action rifle, intended for scouting. Comes with an ammunition belt, the optional revolver attachment for it, two boxes of ammunition, a sling, and a stock for the rifle."
+ desc = "A gun case containing a R4T lever action rifle, intended for scouting. Comes with an ammunition belt, the optional revolver attachment for it, two boxes of ammunition, a sling, and a stock for the rifle."
storage_slots = 7
can_hold = list(/obj/item/weapon/gun/lever_action/r4t, /obj/item/attachable/stock/r4t, /obj/item/attachable/magnetic_harness/lever_sling, /obj/item/ammo_magazine/lever_action, /obj/item/ammo_magazine/lever_action/training, /obj/item/storage/belt/shotgun/lever_action, /obj/item/storage/belt/gun/m44/lever_action/attach_holster, /obj/item/device/motiondetector/m717)
@@ -126,7 +126,7 @@
/obj/item/storage/box/guncase/xm88
name = "\improper XM88 heavy rifle case"
- desc = "A gun case containing the XM88 Heavy Rifle, a prototype weapon designed for use against heavily armored infantry targets and light vehicles. Contains an ammunition belt, two boxes of ammunition, the XS-9 Targeting Relay attachment, and the stock for the rifle."
+ desc = "A gun case containing a XM88 Heavy Rifle, a prototype weapon designed for use against heavily armored infantry targets and light vehicles. Contains an ammunition belt, two boxes of ammunition, the XS-9 Targeting Relay attachment, and the stock for the rifle."
storage_slots = 6
can_hold = list(/obj/item/weapon/gun/lever_action/xm88, /obj/item/attachable/stock/xm88, /obj/item/attachable/scope/mini/xm88, /obj/item/ammo_magazine/lever_action/xm88, /obj/item/storage/belt/shotgun/xm88)
@@ -141,7 +141,7 @@
//------------
/obj/item/storage/box/guncase/flamer
name = "\improper M240 incinerator case"
- desc = "A gun case containing the M240A1 incinerator unit. It does come loaded, but you'll still have to find extra tanks as you go."
+ desc = "A gun case containing a M240A1 incinerator unit. It does come loaded, but you'll still have to find extra tanks as you go."
storage_slots = 4
can_hold = list(/obj/item/weapon/gun/flamer, /obj/item/ammo_magazine/flamer_tank, /obj/item/attachable/attached_gun/extinguisher)
@@ -162,7 +162,7 @@
//------------
/obj/item/storage/box/guncase/m56d
name = "\improper M56D heavy machine gun case"
- desc = "A gun case containing the M56D heavy machine gun. You'll need to order resupplies from requisitions or scavenge them on the field. How do they fit all this into a case? Wouldn't you need a crate."
+ desc = "A gun case containing a M56D heavy machine gun. You'll need to order resupplies from requisitions or scavenge them on the field. How do they fit all this into a case? Wouldn't you need a crate."
storage_slots = 8
can_hold = list(/obj/item/device/m56d_gun, /obj/item/ammo_magazine/m56d, /obj/item/device/m56d_post, /obj/item/tool/wrench, /obj/item/tool/screwdriver, /obj/item/ammo_magazine/m56d, /obj/item/pamphlet/skill/machinegunner, /obj/item/storage/belt/marine/m2c)
@@ -179,7 +179,7 @@
//------------
/obj/item/storage/box/guncase/m2c
name = "\improper M2C heavy machine gun case"
- desc = "A gun case containing the M2C heavy machine gun. It doesn't come loaded, but it does have spare ammunition. You'll have to order extras from requisitions."
+ desc = "A gun case containing a M2C heavy machine gun. It doesn't come loaded, but it does have spare ammunition. You'll have to order extras from requisitions."
storage_slots = 7
can_hold = list(/obj/item/pamphlet/skill/machinegunner, /obj/item/device/m2c_gun, /obj/item/ammo_magazine/m2c, /obj/item/storage/belt/marine/m2c, /obj/item/pamphlet/skill/machinegunner)
@@ -195,7 +195,7 @@
//------------
/obj/item/storage/box/guncase/m41a
name = "\improper M41A pulse rifle MK2 case"
- desc = "A gun case containing the M41A pulse rifle MK2."
+ desc = "A gun case containing a M41A pulse rifle MK2."
storage_slots = 5
can_hold = list(/obj/item/weapon/gun/rifle/m41a, /obj/item/ammo_magazine/rifle)
@@ -206,43 +206,50 @@
//------------
-/obj/item/storage/box/guncase/pumpshotgun
- name = "\improper M37A2 Pump Shotgun case"
- desc = "A gun case containing the M37A2 Pump Shotgun."
- icon_state = "guncase_red"
- storage_slots = 4
- can_hold = list(/obj/item/weapon/gun/shotgun/pump, /obj/item/ammo_magazine/shotgun/buckshot, /obj/item/ammo_magazine/shotgun/flechette, /obj/item/ammo_magazine/shotgun/slugs, /obj/item/storage/pouch/shotgun)
+/obj/item/storage/box/guncase/shotguncombat
+ name = "\improper M120 tactical shotgun case"
+ desc = "A gun case containing an unloaded M120 tactical shotgun, two boxes of 12 gauge buckshot, and one box of 12 gauge slug."
+ icon_state = "guncase"
+ storage_slots = 3
+ can_hold = list(/obj/item/weapon/gun/shotgun/combat, /obj/item/ammo_magazine/shotgun/buckshot, /obj/item/ammo_magazine/shotgun/slugs)
+
+/obj/item/storage/box/guncase/shotguncombat/fill_preset_inventory()
+ new /obj/item/weapon/gun/shotgun/combat(src)
+ new /obj/item/ammo_magazine/shotgun/buckshot(src)
+ new /obj/item/ammo_magazine/shotgun/slugs(src)
+
+/obj/item/storage/box/guncase/shotgunpump
+ name = "\improper Ithaca 37 pump-action shotgun case"
+ desc = "A gun case containing an unloaded Ithaca 37 pump-action shotgun, a box of 12 gauge buckshot, and a box of 12 gauge slugs."
+ icon_state = "matebacase"
+ storage_slots = 3
+ can_hold = list(/obj/item/weapon/gun/shotgun/pump, /obj/item/ammo_magazine/shotgun/buckshot, /obj/item/ammo_magazine/shotgun/slugs)
-/obj/item/storage/box/guncase/pumpshotgun/fill_preset_inventory()
+/obj/item/storage/box/guncase/shotgunpump/fill_preset_inventory()
new /obj/item/weapon/gun/shotgun/pump(src)
- new /obj/item/storage/pouch/shotgun(src)
- new /obj/item/storage/large_holster/m37(src)
- for(var/i = 1 to 3)
- var/random_pick = rand(1, 3)
- switch(random_pick)
- if(1)
- new /obj/item/ammo_magazine/shotgun/buckshot(src)
- if(2)
- new /obj/item/ammo_magazine/shotgun/flechette(src)
- if(3)
- new /obj/item/ammo_magazine/shotgun/slugs(src)
-
-/obj/item/storage/box/guncase/pumpshotgun/special
+ new /obj/item/ammo_magazine/shotgun/buckshot(src)
+ new /obj/item/ammo_magazine/shotgun/slugs(src)
+
+
+/obj/item/storage/box/guncase/shotgunpump/special
+ name = "\improper Ithaca 37 pump-action shotgun case"
+ desc = "A gun case containing an unloaded Ithaca 37 pump-action shotgun and one box of 12 gauge USCM Special buckshot."
+ icon_state = "matebacase"
storage_slots = 2
-/obj/item/storage/box/guncase/pumpshotgun/special/fill_preset_inventory()
- new /obj/item/weapon/gun/shotgun/pump/special(src)
+/obj/item/storage/box/guncase/shotgunpump/special/fill_preset_inventory()
+ new /obj/item/weapon/gun/shotgun/pump(src)
new /obj/item/ammo_magazine/shotgun/buckshot/special(src)
new /obj/item/storage/pouch/shotgun(src)
new /obj/item/storage/large_holster/m37(src)
-/obj/item/storage/box/guncase/mk45_automag
- name = "\improper MK-45 Automagnum case"
- desc = "A gun case containing the MK-45 'High-Power' Automagnum sidearm. While this weapon was rejected as a replacement for the M44 Combat Revolver, it is often back-issued to troops who prefer its powerful bullets over more common sidearms."
+/obj/item/storage/box/guncase/hg45
+ name = "\improper HG 45 pistol case"
+ desc = "A gun case containing a HG 45 pistol."
storage_slots = 6
can_hold = list(/obj/item/weapon/gun/pistol/highpower, /obj/item/ammo_magazine/pistol/highpower)
-/obj/item/storage/box/guncase/mk45_automag/fill_preset_inventory()
+/obj/item/storage/box/guncase/hg45/fill_preset_inventory()
if(prob(30))
new /obj/item/weapon/gun/pistol/highpower(src)
new /obj/item/ammo_magazine/pistol/highpower(src)
@@ -251,19 +258,11 @@
new /obj/item/ammo_magazine/pistol/highpower(src)
new /obj/item/ammo_magazine/pistol/highpower(src)
new /obj/item/ammo_magazine/pistol/highpower(src)
- else
- new /obj/item/weapon/gun/pistol/highpower/black(src)
- new /obj/item/ammo_magazine/pistol/highpower/black(src)
- new /obj/item/ammo_magazine/pistol/highpower/black(src)
- new /obj/item/ammo_magazine/pistol/highpower/black(src)
- new /obj/item/ammo_magazine/pistol/highpower/black(src)
- new /obj/item/ammo_magazine/pistol/highpower/black(src)
- new /obj/item/ammo_magazine/pistol/highpower/black(src)
/obj/item/storage/box/guncase/nsg23_marine
name = "\improper NSG-23 assault rifle case"
- desc = "A gun case containing the NSG 23 assault rifle. While usually seen in the hands of PMCs, this weapon is sometimes issued to USCM personnel."
+ desc = "A gun case containing a NSG 23 assault rifle. While usually seen in the hands of PMCs, this weapon is sometimes issued to USCM personnel."
storage_slots = 6
can_hold = list(/obj/item/weapon/gun/rifle/nsg23/no_lock, /obj/item/ammo_magazine/rifle/nsg23)
@@ -277,7 +276,7 @@
/obj/item/storage/box/guncase/m3717
name = "\improper M37-17 pump shotgun case"
- desc = "A gun case containing the M37-17 pump shotgun. Rarely seen issued to USCM vessels on the edges of inhabited space who need the extra bang for their buck (literally) the M37-17 has. Like this one! Well, if it had the budget for it."
+ desc = "A gun case containing a M37-17 pump shotgun. Rarely seen issued to USCM vessels on the edges of inhabited space who need the extra bang for their buck (literally) the M37-17 has. Like this one! Well, if it had the budget for it."
storage_slots = 4
can_hold = list(/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb/m3717, /obj/item/ammo_magazine/shotgun/buckshot)
@@ -289,7 +288,7 @@
/obj/item/storage/box/guncase/m1911
name = "\improper M1911 service pistol case"
- desc = "A gun case containing the M1911 service pistol. It might be three centuries old but it's still a damn good pistol. Back-issue only, though."
+ desc = "A gun case containing a M1911 service pistol. It might be three centuries old but it's still a damn good pistol. Back-issue only, though."
storage_slots = 7
can_hold = list(/obj/item/weapon/gun/pistol/m1911, /obj/item/ammo_magazine/pistol/m1911)
@@ -331,7 +330,7 @@
/obj/item/storage/box/guncase/vulture
name = "\improper M707 anti-materiel rifle case"
- desc = "A gun case containing the M707 \"Vulture\" anti-materiel rifle and its requisite spotting tools."
+ desc = "A gun case containing a M707 \"Vulture\" anti-materiel rifle and its requisite spotting tools."
icon_state = "guncase_blue"
storage_slots = 7
can_hold = list(
@@ -364,24 +363,24 @@
//Handgun case for Military police vendor three mag , a railflashligh and the handgun.
-//88 Mod 4 Combat Pistol
-/obj/item/storage/box/guncase/mod88
- name = "\improper 88 Mod 4 Combat Pistol case"
- desc = "A gun case containing an 88 Mod 4 Combat Pistol."
+//VP70 Combat Pistol
+/obj/item/storage/box/guncase/vp70
+ name = "\improper VP70 Combat Pistol case"
+ desc = "A gun case containing a VP70 Combat Pistol."
storage_slots = 5
- can_hold = list(/obj/item/attachable/flashlight, /obj/item/weapon/gun/pistol/mod88, /obj/item/ammo_magazine/pistol/mod88)
+ can_hold = list(/obj/item/attachable/flashlight, /obj/item/weapon/gun/pistol/vp70, /obj/item/ammo_magazine/pistol/vp70)
-/obj/item/storage/box/guncase/mod88/fill_preset_inventory()
+/obj/item/storage/box/guncase/vp70/fill_preset_inventory()
new /obj/item/attachable/flashlight(src)
- new /obj/item/weapon/gun/pistol/mod88(src)
- new /obj/item/ammo_magazine/pistol/mod88/normalpoint(src)
- new /obj/item/ammo_magazine/pistol/mod88/normalpoint(src)
- new /obj/item/ammo_magazine/pistol/mod88/normalpoint(src)
+ new /obj/item/weapon/gun/pistol/vp70(src)
+ new /obj/item/ammo_magazine/pistol/vp70(src)
+ new /obj/item/ammo_magazine/pistol/vp70(src)
+ new /obj/item/ammo_magazine/pistol/vp70(src)
//M44 Combat Revolver
/obj/item/storage/box/guncase/m44
name = "\improper M44 Combat Revolver case"
- desc = "A gun case containing an M44 Combat Revolver loaded with marksman ammo."
+ desc = "A gun case containing a M44 Combat Revolver loaded with marksman ammo."
storage_slots = 5
can_hold = list(/obj/item/attachable/flashlight, /obj/item/weapon/gun/revolver/m44, /obj/item/ammo_magazine/revolver)
@@ -395,7 +394,7 @@
//M4A3 Service Pistol
/obj/item/storage/box/guncase/m4a3
name = "\improper M4A3 Service Pistol case"
- desc = "A gun case containing an M4A3 Service Pistol."
+ desc = "A gun case containing a M4A3 Service Pistol."
storage_slots = 5
can_hold = list(/obj/item/attachable/flashlight, /obj/item/weapon/gun/pistol/m4a3, /obj/item/ammo_magazine/pistol)
diff --git a/code/modules/cm_marines/equipment/kit_boxes.dm b/code/modules/cm_marines/equipment/kit_boxes.dm
index 6058ae93ec..f0172a2858 100644
--- a/code/modules/cm_marines/equipment/kit_boxes.dm
+++ b/code/modules/cm_marines/equipment/kit_boxes.dm
@@ -491,7 +491,7 @@
icon_state = "[initial(icon_state)]_e"
/obj/item/storage/box/kit/cryo_self_defense/fill_preset_inventory()
- new /obj/item/weapon/gun/pistol/mod88/flashlight(src)
+ new /obj/item/weapon/gun/pistol/vp70/flashlight(src)
new /obj/item/attachable/bayonet(src)
new /obj/item/reagent_container/food/snacks/packaged_meal(src, pick("boneless pork ribs", "grilled chicken", "pizza square", "spaghetti chunks", "chicken tender"))
diff --git a/code/modules/cm_marines/overwatch.dm b/code/modules/cm_marines/overwatch.dm
index c29b4ad5b5..8fcf1a4020 100644
--- a/code/modules/cm_marines/overwatch.dm
+++ b/code/modules/cm_marines/overwatch.dm
@@ -218,6 +218,9 @@
if(DEAD)
mob_state = "Dead"
+ if(mob_state == "Conscious" && (locate(/datum/effects/crit) in marine_human.effects_list))
+ mob_state = "Incapacitated"
+
if(!istype(marine_human.head, /obj/item/clothing/head/helmet/marine))
has_helmet = FALSE
diff --git a/code/modules/cm_tech/implements/ammo_kits.dm b/code/modules/cm_tech/implements/ammo_kits.dm
index bcf267a54c..8cce3da199 100644
--- a/code/modules/cm_tech/implements/ammo_kits.dm
+++ b/code/modules/cm_tech/implements/ammo_kits.dm
@@ -62,7 +62,7 @@
.[/obj/item/ammo_magazine/rifle/m41aMK1] = /obj/item/ammo_magazine/rifle/m41aMK1/incendiary
.[/obj/item/ammo_magazine/pistol] = /obj/item/ammo_magazine/pistol/incendiary
.[/obj/item/ammo_magazine/pistol/vp78] = /obj/item/ammo_magazine/pistol/vp78/incendiary
- .[/obj/item/ammo_magazine/pistol/mod88] = /obj/item/ammo_magazine/pistol/mod88/incendiary
+ .[/obj/item/ammo_magazine/pistol/vp70] = /obj/item/ammo_magazine/pistol/vp70/incendiary
.[/obj/item/ammo_magazine/revolver] = /obj/item/ammo_magazine/revolver/incendiary
/obj/item/storage/box/shotgun
@@ -110,7 +110,7 @@
.[/obj/item/ammo_magazine/rifle/m41aMK1] = /obj/item/ammo_magazine/rifle/m41aMK1/penetrating
.[/obj/item/ammo_magazine/pistol] = /obj/item/ammo_magazine/pistol/penetrating
.[/obj/item/ammo_magazine/pistol/vp78] = /obj/item/ammo_magazine/pistol/vp78/penetrating
- .[/obj/item/ammo_magazine/pistol/mod88] = /obj/item/ammo_magazine/pistol/mod88/penetrating
+ .[/obj/item/ammo_magazine/pistol/vp70] = /obj/item/ammo_magazine/pistol/vp70/penetrating
.[/obj/item/ammo_magazine/revolver] = /obj/item/ammo_magazine/revolver/penetrating
/obj/item/ammo_kit/toxin
@@ -126,5 +126,5 @@
.[/obj/item/ammo_magazine/rifle/m41aMK1] = /obj/item/ammo_magazine/rifle/m41aMK1/toxin
.[/obj/item/ammo_magazine/pistol] = /obj/item/ammo_magazine/pistol/toxin
.[/obj/item/ammo_magazine/pistol/vp78] = /obj/item/ammo_magazine/pistol/vp78/toxin
- .[/obj/item/ammo_magazine/pistol/mod88] = /obj/item/ammo_magazine/pistol/mod88/toxin
+ .[/obj/item/ammo_magazine/pistol/vp70] = /obj/item/ammo_magazine/pistol/vp70/toxin
.[/obj/item/ammo_magazine/revolver] = /obj/item/ammo_magazine/revolver/marksman/toxin
diff --git a/code/modules/fishing/bait/generic.dm b/code/modules/fishing/bait/generic.dm
index 8a8c8698d7..21716406a2 100644
--- a/code/modules/fishing/bait/generic.dm
+++ b/code/modules/fishing/bait/generic.dm
@@ -1,5 +1,7 @@
/obj/item/fish_bait
name = "fish bait"
+ icon = 'icons/obj/items/fishing_atoms.dmi'
+ icon_state = "other_meat"
desc = "A tasty piece of... meat? Whatever it is, fish love this."
var/common_mod = -10
diff --git a/code/modules/fishing/datums/generic.dm b/code/modules/fishing/datums/generic.dm
index 3d2766efba..94a1684513 100644
--- a/code/modules/fishing/datums/generic.dm
+++ b/code/modules/fishing/datums/generic.dm
@@ -2,20 +2,21 @@ GLOBAL_LIST_EMPTY(fishing_loot_tables)
/datum/fish_loot_table
var/list/common_fishable_atoms = list(
- /obj/item/clothing/shoes/leather,
- /obj/item/clothing/shoes/marine,
+ /obj/item/prop/scrap,
+ /obj/item/trash/crushed_cup,
+ /obj/item/trash/c_tube,
+ /obj/item/trash/cigbutt/bcigbutt,
+ /obj/item/trash/cigbutt/cigarbutt
)
var/list/uncommon_fishable_atoms = list(
- /obj/item/cell/high,
- /obj/item/device/multitool
+ /obj/item/reagent_container/food/snacks/fishable/squid/whorl,
+ /obj/item/reagent_container/food/snacks/fishable/crab
)
var/list/rare_fishable_atoms = list(
- /obj/item/reagent_container/food/snacks/packaged_burrito
+ /obj/item/coin/silver
)
var/list/ultra_rare_fishable_atoms = list(
- /obj/item/card/data/clown,
- /obj/item/reagent_container/food/snacks/clownburger,
- /obj/item/reagent_container/pill/ultrazine/unmarked
+ /obj/item/reagent_container/food/snacks/fishable/quadtopus
)
/datum/fish_loot_table/proc/return_caught_fish(common_weight, uncommon_weight, rare_weight, ultra_rare_weight)
diff --git a/code/modules/fishing/props/fishing_pole.dm b/code/modules/fishing/props/fishing_pole.dm
index 3d87a171e3..3782012514 100644
--- a/code/modules/fishing/props/fishing_pole.dm
+++ b/code/modules/fishing/props/fishing_pole.dm
@@ -9,7 +9,7 @@
/obj/structure/prop/fishing/pole_interactive
var/time_to_fish = 30 SECONDS
- var/fishing_success = 'sound/items/bikehorn.ogg'//to-do get a sound effect(s)
+ var/fishing_success = 'sound/items/fulton.ogg'//to-do get a sound effect(s)
var/fishing_start = 'sound/items/fulton.ogg'
var/fishing_failure = 'sound/items/jetpack_beep.ogg'
var/fishing_event = 'sound/items/component_pickup.ogg'
diff --git a/code/modules/gear_presets/_select_equipment.dm b/code/modules/gear_presets/_select_equipment.dm
index 6aefa9a673..8dafd13b36 100644
--- a/code/modules/gear_presets/_select_equipment.dm
+++ b/code/modules/gear_presets/_select_equipment.dm
@@ -893,8 +893,8 @@ var/list/rebel_rifles = list(
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/b92fs(new_human), WEAR_IN_BACK)
if(1)
- new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/revolver/cmb(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/revolver/spearhead(new_human), WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/spearhead(new_human), WEAR_IN_BACK)
if(2)
new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/highpower(new_human), WEAR_IN_BACK)
@@ -1050,20 +1050,11 @@ var/list/rebel_rifles = list(
)
/datum/equipment_preset/proc/load_upp_shotgun(mob/living/carbon/human/new_human)
- var/random_shotgun = rand(1,3)
- switch(random_shotgun)
- if(1)
- new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/type23/breacher, WEAR_J_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/shotgun/heavybuck, WEAR_L_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/shotgun/heavybuck, WEAR_R_STORE)
- if(2)
- new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/type23/breacher/slug, WEAR_J_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/shotgun/heavyslug, WEAR_L_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/shotgun/heavyslug, WEAR_R_STORE)
- if(3)
- new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/type23/breacher/flechette, WEAR_J_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/shotgun/heavyflechette, WEAR_L_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/shotgun/heavyflechette, WEAR_R_STORE)
+
+ new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/type23, WEAR_J_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/shotgun/heavybuck, WEAR_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/shotgun/heavybuck, WEAR_R_STORE)
+
/datum/equipment_preset/proc/add_upp_weapon(mob/living/carbon/human/new_human)
var/random_gun = rand(1,5)
diff --git a/code/modules/gear_presets/cbrn.dm b/code/modules/gear_presets/cbrn.dm
index 98a6b0665e..bcc24c101f 100644
--- a/code/modules/gear_presets/cbrn.dm
+++ b/code/modules/gear_presets/cbrn.dm
@@ -44,7 +44,7 @@
if("flamethrower")
new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/flamer/underextinguisher(new_human), WEAR_J_STORE)
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/engineerpack/flamethrower/kit(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88(new_human), WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp70(new_human), WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/flamer_tank(new_human), WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/flamer_tank(new_human), WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/flamer_tank(new_human), WEAR_IN_BACK)
@@ -91,7 +91,7 @@
if("flamethrower")
new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/flamer/underextinguisher(new_human), WEAR_J_STORE)
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/engineerpack/flamethrower/kit(new_human), WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88(new_human), WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp70(new_human), WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/flamer_tank(new_human), WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/flamer_tank(new_human), WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/flamer_tank(new_human), WEAR_IN_BACK)
@@ -122,7 +122,7 @@
. = ..()
new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/webbing/five_slots(new_human), WEAR_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88(new_human), WEAR_J_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp70(new_human), WEAR_J_STORE)
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/marine/medic(new_human), WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/full/dutch(new_human), WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/medkit/full_advanced(new_human), WEAR_L_STORE)
diff --git a/code/modules/gear_presets/clf.dm b/code/modules/gear_presets/clf.dm
index 91a44328e4..277c21036b 100644
--- a/code/modules/gear_presets/clf.dm
+++ b/code/modules/gear_presets/clf.dm
@@ -455,7 +455,7 @@
new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/swat(new_human), WEAR_HEAD)
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(new_human), WEAR_FEET)
new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88(new_human), WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp70(new_human), WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/night(new_human), WEAR_EYES)
new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CLF/cct(new_human), WEAR_L_EAR)
diff --git a/code/modules/gear_presets/cmb.dm b/code/modules/gear_presets/cmb.dm
index 0f5f67e071..c348f63fae 100644
--- a/code/modules/gear_presets/cmb.dm
+++ b/code/modules/gear_presets/cmb.dm
@@ -77,9 +77,9 @@
switch(choice)
if(1 to 6)
new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/holster, WEAR_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/revolver/cmb, WEAR_IN_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/revolver/spearhead, WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/spearhead, WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/spearhead, WEAR_IN_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/storage/belt/security/MP/CMB/full/revolver, WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb, WEAR_J_STORE)
new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_BACK)
@@ -111,9 +111,9 @@
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun, WEAR_IN_R_STORE)
if(10)
new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/holster, WEAR_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/revolver/cmb, WEAR_IN_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/revolver/spearhead, WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/spearhead, WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/spearhead, WEAR_IN_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/storage/belt/security/MP/CMB/full/revolver, WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m41aMK1, WEAR_J_STORE)
new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_BACK)
@@ -147,9 +147,9 @@
new_human.equip_to_slot_or_del(new headset_type, WEAR_L_EAR)
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/CM_uniform, WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/holster, WEAR_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/revolver/cmb, WEAR_IN_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/revolver/spearhead, WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/spearhead, WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/spearhead, WEAR_IN_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/CMB/marshal, WEAR_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/weapon/telebaton, WEAR_IN_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/pump/dual_tube/cmb/m3717, WEAR_J_STORE)
@@ -227,9 +227,9 @@
load_name(new_human)
//backpack
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/security, WEAR_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb/normalpoint, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/cmb, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/spearhead, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/spearhead, WEAR_IN_BACK)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver/spearhead, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/device/autopsy_scanner, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic/breaching_charge, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/device/radio, WEAR_IN_BACK)
@@ -296,9 +296,9 @@
new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CMB/ICC, WEAR_L_EAR)
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/liaison_suit/corporate_formal, WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/holster, WEAR_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/mod88, WEAR_IN_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/mod88/normalpoint, WEAR_IN_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/mod88/normalpoint, WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/vp70, WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/vp70, WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/vp70, WEAR_IN_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/health/ceramic_plate, WEAR_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/head/hardhat/white, WEAR_HEAD)
new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/hazardvest/yellow, WEAR_JACKET)
diff --git a/code/modules/gear_presets/corpses.dm b/code/modules/gear_presets/corpses.dm
index 33f20da1a6..403bb61e76 100644
--- a/code/modules/gear_presets/corpses.dm
+++ b/code/modules/gear_presets/corpses.dm
@@ -356,7 +356,7 @@
else
new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88(new_human), WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp70(new_human), WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/WY(new_human), WEAR_L_EAR)
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel(new_human), WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK)
@@ -786,7 +786,7 @@
new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf, WEAR_FACE)
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/satchel, WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/device/radio(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88, WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp70, WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/full(new_human), WEAR_R_STORE)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/ert(new_human), WEAR_L_STORE)
add_random_survivor_equipment(new_human)
@@ -814,7 +814,7 @@
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot, WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/weapon/baton, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88_near_empty, WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp70_near_empty, WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full, WEAR_R_STORE)
/datum/equipment_preset/corpse/pmc/goon/lead
@@ -835,7 +835,7 @@
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/five_slot, WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/weapon/baton, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88_near_empty, WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp70_near_empty, WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full, WEAR_R_STORE)
// Freelancer
diff --git a/code/modules/gear_presets/pmc.dm b/code/modules/gear_presets/pmc.dm
index 7bccf9ae6f..88e0077fcd 100644
--- a/code/modules/gear_presets/pmc.dm
+++ b/code/modules/gear_presets/pmc.dm
@@ -96,7 +96,7 @@
new_human.equip_to_slot_or_del(new /obj/item/explosive/plastic, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/weapon/baton, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88, WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp70, WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full, WEAR_R_STORE)
switch(choice)
@@ -235,7 +235,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null),
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack, WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/weapon/baton, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88, WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp70, WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/holster, WEAR_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/taser, WEAR_IN_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full, WEAR_R_STORE)
@@ -1374,7 +1374,7 @@ list("POUCHES (CHOOSE 2)", 0, null, null, null),
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/m39/ap, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/smg/m39/ap, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88, WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp70, WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/magazine/large/pmc_m39, WEAR_L_STORE)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full, WEAR_R_STORE)
diff --git a/code/modules/gear_presets/survivors/misc.dm b/code/modules/gear_presets/survivors/misc.dm
index b79df671af..f55ea6f30d 100644
--- a/code/modules/gear_presets/survivors/misc.dm
+++ b/code/modules/gear_presets/survivors/misc.dm
@@ -199,7 +199,7 @@ everything bellow isn't used or out of place.
new_human.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/large_stack(new_human), WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle(new_human), WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/rifle(new_human), WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88_near_empty, WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp70_near_empty, WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full, WEAR_R_STORE)
new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m41a/corporate/no_lock, WEAR_J_STORE)
diff --git a/code/modules/gear_presets/upp.dm b/code/modules/gear_presets/upp.dm
index 5488403e72..ada9398189 100644
--- a/code/modules/gear_presets/upp.dm
+++ b/code/modules/gear_presets/upp.dm
@@ -127,7 +127,10 @@
new_human.equip_to_slot_or_del(new /obj/item/storage/box/m94, WEAR_IN_BACK) //4.25
//waist
new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/np92, WEAR_WAIST)
- load_upp_shotgun(new_human)
+ new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/type23, WEAR_J_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/shotgun/heavybuck, WEAR_L_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/shotgun/heavybuck, WEAR_R_STORE)
+
/datum/equipment_preset/upp/soldier/proc/load_upp_double(mob/living/carbon/human/new_human, obj/item/clothing/under/marine/veteran/UPP/UPP)
@@ -135,7 +138,7 @@
var/rifle = prob(50) ? /obj/item/weapon/gun/rifle/type71/dual : /obj/item/weapon/gun/rifle/type71/carbine/dual
new_human.equip_to_slot_or_del(new rifle, WEAR_BACK)
//body
- new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/type23/dual, WEAR_J_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/type23, WEAR_J_STORE)
//waist
new_human.equip_to_slot_or_del(new /obj/item/storage/belt/marine/upp/full, WEAR_WAIST)
//pockets
@@ -567,7 +570,7 @@
UPP.attach_accessory(new_human, W)
for(var/i in 1 to W.hold.storage_slots)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun/heavy/dragonsbreath, WEAR_IN_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/type23/dragon, WEAR_J_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/type23, WEAR_J_STORE)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/handful/shotgun/heavy/dragonsbreath, WEAR_IN_JACKET)
//waist
var/uppvetsidearm = prob(50) ? /obj/item/storage/belt/gun/type47/t73 : /obj/item/storage/belt/gun/type47/np92
@@ -2572,7 +2575,7 @@
new_human.equip_to_slot_or_del(UPP, WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP, WEAR_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/device/binoculars, WEAR_IN_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/type23/dual, WEAR_J_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/shotgun/type23, WEAR_J_STORE)
//waist
new_human.equip_to_slot_or_del(new /obj/item/storage/belt/shotgun/upp/heavybuck(new_human), WEAR_WAIST)
//limb
diff --git a/code/modules/gear_presets/uscm.dm b/code/modules/gear_presets/uscm.dm
index 82ba128bcd..5e86f81086 100644
--- a/code/modules/gear_presets/uscm.dm
+++ b/code/modules/gear_presets/uscm.dm
@@ -26,7 +26,7 @@
var/ert_squad = FALSE
/datum/equipment_preset/uscm/load_status(mob/living/carbon/human/new_human)
- new_human.nutrition = rand(NUTRITION_VERYLOW, NUTRITION_LOW)
+ new_human.nutrition = NUTRITION_VERYLOW
/datum/equipment_preset/uscm/load_preset(mob/living/carbon/human/new_human, randomise, count_participant)
. = ..()
@@ -108,13 +108,6 @@
minimap_icon = "private"
-/datum/equipment_preset/uscm/pfc/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)
-
/datum/equipment_preset/uscm/pfc/lesser_rank
paygrade = "ME1"
@@ -126,13 +119,6 @@
faction_group = list(FACTION_UPP)
faction = FACTION_UPP
-/datum/equipment_preset/uscm/pfc/upp/load_gear(mob/living/carbon/human/new_human)
- var/back_item = /obj/item/storage/backpack/lightpack/upp
- 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)
-
/datum/equipment_preset/uscm/pfc/upp/lesser_rank
paygrade = "UE1"
@@ -141,14 +127,6 @@
paygrade = "ME3"
skills = /datum/skills/pfc/recon
-/datum/equipment_preset/uscm/pfc/forecon/load_gear(mob/living/carbon/human/new_human)
- var/back_item = /obj/item/storage/backpack/marine/satchel/standard
- if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1))
- back_item = /obj/item/storage/backpack/marine/standard
-
- new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK)
-
-
/datum/equipment_preset/uscm/pfc/forecon/lesser_rank
paygrade = "ME2"
@@ -167,14 +145,6 @@
minimap_icon = "smartgunner"
-/datum/equipment_preset/uscm/sg/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)
-
-
/datum/equipment_preset/uscm/sg/lesser_rank
paygrade = "ME3"
@@ -188,13 +158,6 @@
faction_group = list(FACTION_UPP)
faction = FACTION_UPP
-/datum/equipment_preset/uscm/sg/upp/load_gear(mob/living/carbon/human/new_human)
- var/back_item = /obj/item/storage/backpack/lightpack/upp
- 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)
-
/datum/equipment_preset/uscm/sg/upp/lesser_rank
paygrade = "UE3"
@@ -203,35 +166,11 @@
paygrade = "ME5"
skills = /datum/skills/smartgunner/recon
-/datum/equipment_preset/uscm/sg/forecon/load_gear(mob/living/carbon/human/new_human)
- var/back_item = /obj/item/storage/backpack/marine/satchel/standard
- if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1))
- back_item = /obj/item/storage/backpack/marine/standard
-
- new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK)
-
/datum/equipment_preset/uscm/sg/forecon/lesser_rank
paygrade = "ME4"
//*****************************************************************************************************/
-/datum/equipment_preset/uscm/sg/full
- name = "USCM Squad Smartgunner"
- flags = EQUIPMENT_PRESET_EXTRA|EQUIPMENT_PRESET_MARINE
-
-/datum/equipment_preset/uscm/sg/full/load_gear(mob/living/carbon/human/new_human)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/smartgunner(new_human), WEAR_JACKET)
- new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/smartgun(new_human), WEAR_J_STORE)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/specrag(new_human), WEAR_HEAD)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/night/m56_goggles/no_nightvision(new_human), WEAR_EYES)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/smartgunner/full(new_human), WEAR_WAIST)
- 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/gloves/marine(new_human), WEAR_HANDS)
-
-/datum/equipment_preset/uscm/sg/full/load_status(mob/living/carbon/human/new_human)
- return //No cryo munchies
-
/datum/equipment_preset/uscm/rto
name = "USCM Radio Telephone Operator"
flags = EQUIPMENT_PRESET_START_OF_ROUND|EQUIPMENT_PRESET_MARINE
@@ -245,13 +184,6 @@
minimap_icon = "rto"
-/datum/equipment_preset/uscm/rto/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)
-
/datum/equipment_preset/uscm/rto/lesser_rank
paygrade = "ME3"
@@ -305,7 +237,7 @@
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/tanker(new_human), WEAR_BODY)
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/gloves/yellow(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88(new_human), WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp70(new_human), WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/tanker(new_human), WEAR_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/tool/weldpack(new_human), WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/tools/tank(new_human), WEAR_R_STORE)
@@ -377,14 +309,6 @@
minimap_icon = "spec"
-/datum/equipment_preset/uscm/spec/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/head/helmet/specrag(new_human), WEAR_HEAD)
-
/datum/equipment_preset/uscm/spec/cryo
name = "USCM Cryo Squad Weapons Specialist"
auto_squad_name = SQUAD_MARINE_CRYO
@@ -435,13 +359,6 @@
utility_under = list(/obj/item/clothing/under/marine/medic)
-/datum/equipment_preset/uscm/medic/load_gear(mob/living/carbon/human/new_human)
- var/back_item = /obj/item/storage/backpack/marine/satchel/medic
- if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1))
- back_item = /obj/item/storage/backpack/marine/medic
-
- new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK)
-
/datum/equipment_preset/uscm/medic/lesser_rank
paygrade = "ME3"
@@ -454,13 +371,6 @@
faction_group = list(FACTION_UPP)
faction = FACTION_UPP
-/datum/equipment_preset/uscm/medic/upp/load_gear(mob/living/carbon/human/new_human)
- var/back_item = /obj/item/storage/backpack/lightpack/upp
- if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1))
- back_item = /obj/item/storage/backpack/marine/medic/upp
-
- new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK)
-
/datum/equipment_preset/uscm/medic/upp/lesser_rank
paygrade = "UE3"
@@ -470,13 +380,6 @@
paygrade = "ME5"
skills = /datum/skills/combat_medic/recon
-/datum/equipment_preset/uscm/medic/forecon/load_gear(mob/living/carbon/human/new_human)
- var/back_item = /obj/item/storage/backpack/marine/satchel/medic/standard
- if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1))
- back_item = /obj/item/storage/backpack/marine/medic/standard
-
- new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK)
-
/datum/equipment_preset/uscm/medic/forecon/lesser_rank
paygrade = "ME4"
@@ -494,13 +397,6 @@
skills = /datum/skills/tl
minimap_icon = "tl"
-/datum/equipment_preset/uscm/tl/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)
-
/datum/equipment_preset/uscm/tl/upp
name = "UPP Squad Sergeant"
paygrade = "UE5"
@@ -509,13 +405,6 @@
faction_group = list(FACTION_UPP)
faction = FACTION_UPP
-/datum/equipment_preset/uscm/tl/upp/load_gear(mob/living/carbon/human/new_human)
- var/back_item = /obj/item/storage/backpack/lightpack/upp
- 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)
-
/datum/equipment_preset/uscm/tl/forecon
name = "FORECON Assistant Squad Leader"
assignment = "Assistant Squad Leader"
@@ -523,13 +412,6 @@
role_comm_title = "aSL"
skills = /datum/skills/tl/recon
-/datum/equipment_preset/uscm/tl/forecon/load_gear(mob/living/carbon/human/new_human)
- var/back_item = /obj/item/storage/backpack/marine/satchel/standard
- if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1))
- back_item = /obj/item/storage/backpack/marine/standard
-
- new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK)
-
/*****************************************************************************************************/
/datum/equipment_preset/uscm/engineer
@@ -577,13 +459,6 @@
minimap_icon = "leader"
-/datum/equipment_preset/uscm/leader/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)
-
/datum/equipment_preset/uscm/leader/lesser_rank
paygrade = "ME6"
@@ -595,13 +470,6 @@
faction_group = list(FACTION_UPP)
faction = FACTION_UPP
-/datum/equipment_preset/uscm/leader/upp/load_gear(mob/living/carbon/human/new_human)
- var/back_item = /obj/item/storage/backpack/lightpack/upp
- 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)
-
/datum/equipment_preset/uscm/leader/upp/lesser_rank
paygrade = "UE6"
@@ -611,13 +479,6 @@
paygrade = "ME8"
role_comm_title = "SL"
-/datum/equipment_preset/uscm/leader/forecon/load_gear(mob/living/carbon/human/new_human)
- var/back_item = /obj/item/storage/backpack/marine/satchel/standard
- if (new_human.client && new_human.client.prefs && (new_human.client.prefs.backbag == 1))
- back_item = /obj/item/storage/backpack/marine/standard
-
- new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK)
-
/datum/equipment_preset/uscm/leader/forecon/lesser_rank
paygrade = "ME7"
@@ -794,20 +655,16 @@
new_human.equip_to_slot_or_del(new new_mask, WEAR_FACE)
/datum/equipment_preset/uscm/smartgunner_equipped/random/spawn_marine_sidearm(mob/living/carbon/human/new_human)
- var/sidearm = pick("m4a3", "mod88", "vp78", "m44")
+ var/sidearm = pick("m4a3", "vp70", "m44")
switch(sidearm)
if("m4a3")
new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/m4a3(new_human), WEAR_IN_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol(new_human), WEAR_IN_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol(new_human), WEAR_IN_ACCESSORY)
- if("mod88")
- new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/mod88(new_human), WEAR_IN_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/mod88(new_human), WEAR_IN_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/mod88(new_human), WEAR_IN_ACCESSORY)
- if("vp78")
- new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/vp78(new_human), WEAR_IN_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/vp78(new_human), WEAR_IN_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/vp78(new_human), WEAR_IN_ACCESSORY)
+ if("vp70")
+ new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/vp70(new_human), WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/vp70(new_human), WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/vp70(new_human), WEAR_IN_ACCESSORY)
if("m44")
new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/revolver/m44(new_human), WEAR_IN_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/revolver(new_human), WEAR_IN_ACCESSORY)
diff --git a/code/modules/gear_presets/uscm_event.dm b/code/modules/gear_presets/uscm_event.dm
index 5f7c40c016..690400ee48 100644
--- a/code/modules/gear_presets/uscm_event.dm
+++ b/code/modules/gear_presets/uscm_event.dm
@@ -293,7 +293,7 @@
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/mp/provost/senior(new_human), WEAR_BODY)
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/gloves/black(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88(new_human), WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp70(new_human), WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/jacket/marine/provost(new_human), WEAR_JACKET)
if(new_human.disabilities & NEARSIGHTED)
new_human.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud/prescription(new_human), WEAR_EYES)
diff --git a/code/modules/gear_presets/uscm_police.dm b/code/modules/gear_presets/uscm_police.dm
index 108aca26d9..619b88a1b6 100644
--- a/code/modules/gear_presets/uscm_police.dm
+++ b/code/modules/gear_presets/uscm_police.dm
@@ -48,9 +48,9 @@
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine(new_human), WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/armband/mpsec(new_human), WEAR_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/holster(new_human), WEAR_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/mod88(new_human), WEAR_IN_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/mod88/normalpoint(new_human), WEAR_IN_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/mod88/normalpoint(new_human), WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/vp70(new_human), WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/vp70(new_human), WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/vp70(new_human), WEAR_IN_ACCESSORY)
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/gloves/marine(new_human), WEAR_HANDS)
new_human.equip_to_slot_or_del(new /obj/item/storage/belt/security/MP/full(new_human), WEAR_WAIST)
@@ -110,9 +110,9 @@
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine(new_human), WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/armband/mpsec(new_human), WEAR_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/holster(new_human), WEAR_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/mod88(new_human), WEAR_IN_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/mod88/normalpoint(new_human), WEAR_IN_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/mod88/normalpoint(new_human), WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/vp70(new_human), WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/vp70(new_human), WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/vp70(new_human), WEAR_IN_ACCESSORY)
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/gloves/marine(new_human), WEAR_HANDS)
new_human.equip_to_slot_or_del(new /obj/item/storage/belt/security/MP/full(new_human), WEAR_WAIST)
@@ -172,9 +172,9 @@
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine(new_human), WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/armband/mpsec(new_human), WEAR_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/storage/holster(new_human), WEAR_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/mod88(new_human), WEAR_IN_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/mod88/normalpoint(new_human), WEAR_IN_ACCESSORY)
- new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/mod88/normalpoint(new_human), WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/pistol/vp70(new_human), WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/vp70(new_human), WEAR_IN_ACCESSORY)
+ new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/pistol/vp70(new_human), WEAR_IN_ACCESSORY)
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/gloves/marine(new_human), WEAR_HANDS)
new_human.equip_to_slot_or_del(new /obj/item/storage/belt/security/MP/full(new_human), WEAR_WAIST)
diff --git a/code/modules/gear_presets/uscm_ship.dm b/code/modules/gear_presets/uscm_ship.dm
index 905fa8265b..630669ad32 100644
--- a/code/modules/gear_presets/uscm_ship.dm
+++ b/code/modules/gear_presets/uscm_ship.dm
@@ -564,7 +564,7 @@
name = "USCM Platoon Commander (PltCo)"
flags = EQUIPMENT_PRESET_START_OF_ROUND|EQUIPMENT_PRESET_MARINE
- idtype = /obj/item/card/id/silver
+ idtype = /obj/item/card/id/dogtag
assignment = JOB_SO
rank = JOB_SO
paygrade = "MO2"
@@ -579,32 +579,39 @@
. = ..()
access = get_access(access_list)
-/datum/equipment_preset/uscm_ship/so/load_gear(mob/living/carbon/human/new_human)
+/datum/equipment_preset/uscm_ship/so/load_status(mob/living/carbon/human/new_human, client/mob_client)
+ . = ..()
+ new_human.nutrition = NUTRITION_VERYLOW
+ if(!new_human.client)
+ return
+
+ add_verb(new_human.client, /client/proc/commander_rename_platoon)
+
+/datum/equipment_preset/uscm_ship/so/lesser_rank
+ paygrade = "MO1"
+
+/datum/equipment_preset/uscm_ship/so/equipped
+ name = "USCM Platoon Commander (Equipped)"
+ flags = EQUIPMENT_PRESET_EXTRA|EQUIPMENT_PRESET_MARINE
+
+/datum/equipment_preset/uscm_ship/so/equipped/load_status(mob/living/carbon/human/new_human)
+ new_human.nutrition = NUTRITION_NORMAL
+
+/datum/equipment_preset/uscm_ship/so/equipped/load_gear(mob/living/carbon/human/new_human)
var/back_item = /obj/item/storage/backpack/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 /obj/item/device/radio/headset/almayer/mcom(new_human), WEAR_L_EAR)
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/bridge(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/dress(new_human), WEAR_FEET)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88(new_human), WEAR_WAIST)
+ 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/vp70(new_human), WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/clothing/head/cmcap/bridge(new_human), WEAR_HEAD)
new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/medium(new_human), WEAR_L_STORE)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/medium(new_human), WEAR_R_STORE)
new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range(new_human), WEAR_L_HAND)
-/datum/equipment_preset/uscm_ship/so/load_status(mob/living/carbon/human/new_human, client/mob_client)
- . = ..()
-
- if(!new_human.client)
- return
-
- add_verb(new_human.client, /client/proc/commander_rename_platoon)
-
-/datum/equipment_preset/uscm_ship/so/lesser_rank
- paygrade = "MO1"
-
/datum/equipment_preset/uscm_ship/so/upp
name = "UPP Platoon Commander (PltCo)"
languages = list(LANGUAGE_RUSSIAN, LANGUAGE_ENGLISH)
@@ -613,10 +620,20 @@
faction = FACTION_UPP
access_list = ACCESS_LIST_UPP_PLATOON
-/datum/equipment_preset/uscm_ship/so/upp/load_gear(mob/living/carbon/human/new_human)
+/datum/equipment_preset/uscm_ship/so/upp/lesser_rank
+ paygrade = "UO1"
+
+/datum/equipment_preset/uscm_ship/so/upp/equipped
+ name = "UPP Platoon Commander (Equipped)"
+ flags = EQUIPMENT_PRESET_EXTRA|EQUIPMENT_PRESET_MARINE
+
+/datum/equipment_preset/uscm_ship/so/upp/equipped/load_status(mob/living/carbon/human/new_human)
+ new_human.nutrition = NUTRITION_NORMAL
+
+/datum/equipment_preset/uscm_ship/so/upp/equipped/load_gear(mob/living/carbon/human/new_human)
new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP/command(new_human), WEAR_L_EAR)
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/veteran/UPP/officer(new_human), WEAR_BODY)
- new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/dress(new_human), WEAR_FEET)
+ new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp(new_human), WEAR_FEET)
new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/type47/np92(new_human), WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/clothing/head/uppcap/peaked(new_human), WEAR_HEAD)
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/upp(new_human), WEAR_BACK)
@@ -624,9 +641,6 @@
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/device/binoculars/range(new_human), WEAR_L_HAND)
-/datum/equipment_preset/uscm_ship/so/upp/lesser_rank
- paygrade = "UO1"
-
//*****************************************************************************************************/
/datum/equipment_preset/uscm_ship/sea
@@ -773,7 +787,7 @@
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/pilot(new_human), WEAR_BODY)
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/gloves/yellow(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88(new_human), WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp70(new_human), WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/pilot(new_human), WEAR_JACKET)
new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large(new_human), WEAR_R_STORE)
@@ -866,7 +880,7 @@
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/officer/pilot/dcc(new_human), WEAR_BODY)
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/gloves/yellow(new_human), WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88(new_human), WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp70(new_human), WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/light/vest/dcc(new_human), WEAR_JACKET)
new_human.equip_to_slot_or_del(new back_item(new_human), WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large(new_human), WEAR_R_STORE)
diff --git a/code/modules/gear_presets/wo.dm b/code/modules/gear_presets/wo.dm
index 81ea9b8f6a..29b2be28ce 100644
--- a/code/modules/gear_presets/wo.dm
+++ b/code/modules/gear_presets/wo.dm
@@ -309,7 +309,7 @@
new_human.equip_to_slot_or_del(new /obj/item/clothing/under/marine/engineer, WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/knife, WEAR_FEET)
new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/black, WEAR_HANDS)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88, WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp70, WEAR_WAIST)
new_human.equip_to_slot_or_del(new back_item, WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/general/large, WEAR_R_STORE)
new_human.equip_to_slot_or_del(new /obj/item/device/binoculars/range, WEAR_IN_R_STORE)
diff --git a/code/modules/gear_presets/wy_goons.dm b/code/modules/gear_presets/wy_goons.dm
index c0fc2b031e..f266425b53 100644
--- a/code/modules/gear_presets/wy_goons.dm
+++ b/code/modules/gear_presets/wy_goons.dm
@@ -79,7 +79,7 @@
new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88, WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp70, WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full, WEAR_R_STORE)
new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/m41a/corporate, WEAR_J_STORE)
@@ -116,7 +116,7 @@
new_human.equip_to_slot_or_del(new /obj/item/handcuffs/zip, WEAR_IN_BACK)
new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar, WEAR_IN_BACK)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88, WEAR_WAIST)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp70, WEAR_WAIST)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/full, WEAR_R_STORE)
new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/nsg23, WEAR_J_STORE)
@@ -150,7 +150,7 @@
new_human.equip_to_slot_or_del(new /obj/item/storage/belt/medical/lifesaver/full, WEAR_WAIST)
- new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/mod88, WEAR_J_STORE)
+ new_human.equip_to_slot_or_del(new /obj/item/storage/belt/gun/m4a3/vp70, WEAR_J_STORE)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/medical, WEAR_R_STORE)
new_human.equip_to_slot_or_del(new /obj/item/tool/surgery/surgical_line, WEAR_IN_R_STORE)
new_human.equip_to_slot_or_del(new /obj/item/tool/surgery/synthgraft, WEAR_IN_R_STORE)
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index c394431c72..1496ce2595 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -862,6 +862,7 @@
nutrition -= 40
apply_damage(-3, TOX)
addtimer(VARSET_CALLBACK(src, lastpuke, FALSE), 35 SECONDS)
+ reagents.remove_any(rand(15, 30))
/mob/living/carbon/human/proc/get_visible_gender()
if(wear_suit && wear_suit.flags_inv_hide & HIDEJUMPSUIT && ((head && head.flags_inv_hide & HIDEMASK) || wear_mask))
diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm
index fa35cb1fe9..a1c3b5a4d0 100644
--- a/code/modules/mob/living/carbon/human/human_attackhand.dm
+++ b/code/modules/mob/living/carbon/human/human_attackhand.dm
@@ -22,7 +22,7 @@
return 1
// If unconcious with oxygen damage, do CPR. If dead, we do CPR
- if(!(stat == UNCONSCIOUS && getOxyLoss() > 0) && !(stat == DEAD))
+ if(!((stat == UNCONSCIOUS || (locate(/datum/effects/crit) in effects_list)) && getOxyLoss() > 0) && !(stat == DEAD))
help_shake_act(attacking_mob)
return 1
diff --git a/code/modules/mob/living/carbon/human/life/handle_regular_hud_updates.dm b/code/modules/mob/living/carbon/human/life/handle_regular_hud_updates.dm
index b84c8e9d24..32dd9ddef8 100644
--- a/code/modules/mob/living/carbon/human/life/handle_regular_hud_updates.dm
+++ b/code/modules/mob/living/carbon/human/life/handle_regular_hud_updates.dm
@@ -7,7 +7,7 @@
if(stat != DEAD) //the dead get zero fullscreens
- if(stat == UNCONSCIOUS)
+ if(stat == UNCONSCIOUS || (locate(/datum/effects/crit) in effects_list))
var/severity = 0
switch(health)
if(-20 to -10) severity = 1
diff --git a/code/modules/mob/living/carbon/human/life/handle_regular_status_updates.dm b/code/modules/mob/living/carbon/human/life/handle_regular_status_updates.dm
index 5b37238d28..65f98d928e 100644
--- a/code/modules/mob/living/carbon/human/life/handle_regular_status_updates.dm
+++ b/code/modules/mob/living/carbon/human/life/handle_regular_status_updates.dm
@@ -42,7 +42,8 @@
//UNCONSCIOUS. NO-ONE IS HOME
if(regular_update && ((getOxyLoss() > 50)))
- apply_effect(3, PARALYZE)
+ KnockDown(3)
+ Stun(3)
if((src.species.flags & HAS_HARDCRIT) && HEALTH_THRESHOLD_CRIT > health)
var/already_in_crit = FALSE
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 6e5ca5f2c1..7ccd4cde55 100644
--- a/code/modules/mob/living/carbon/xenomorph/ai/xeno_ai.dm
+++ b/code/modules/mob/living/carbon/xenomorph/ai/xeno_ai.dm
@@ -235,16 +235,12 @@
var/atom/movable/closest_target
var/smallest_distance = INFINITY
- for(var/mob/living/carbon/potential_target as anything in GLOB.alive_mob_list)
- if(!istype(potential_target))
- continue
+ var/list/valid_targets = SSxeno_ai.get_valid_targets(src)
+ for(var/atom/movable/potential_target as anything in valid_targets)
if(z != potential_target.z)
continue
- if(!potential_target.ai_can_target(src))
- continue
-
var/distance = get_dist(src, potential_target)
if(distance > ai_range)
@@ -258,59 +254,6 @@
closest_target = potential_target
smallest_distance = distance
- for(var/obj/vehicle/multitile/potential_vehicle_target as anything in GLOB.all_multi_vehicles)
- if(z != potential_vehicle_target.z)
- continue
-
- var/distance = get_dist(src, potential_vehicle_target)
-
- if(distance > ai_range)
- continue
-
- if(potential_vehicle_target.health <= 0)
- continue
-
- var/multitile_faction = potential_vehicle_target.vehicle_faction
- if(hive.faction_is_ally(multitile_faction))
- continue
-
- var/skip_vehicle
- var/list/interior_living_mobs = potential_vehicle_target.interior.get_passengers()
- for(var/mob/living/carbon/human/human_mob in interior_living_mobs)
- if(!human_mob.ai_can_target(src))
- continue
-
- skip_vehicle = FALSE
- break
-
- if(skip_vehicle)
- continue
-
- viable_targets += potential_vehicle_target
-
- if(smallest_distance <= distance)
- continue
-
- closest_target = potential_vehicle_target
- smallest_distance = distance
-
- for(var/obj/structure/machinery/defenses/potential_defense_target as anything in GLOB.all_active_defenses)
- if(z != potential_defense_target.z)
- continue
-
- var/distance = get_dist(src, potential_defense_target)
-
- if(distance > ai_range)
- continue
-
- viable_targets += potential_defense_target
-
- if(smallest_distance <= distance)
- continue
-
- closest_target = potential_defense_target
- smallest_distance = distance
-
var/extra_check_distance = round(smallest_distance * EXTRA_CHECK_DISTANCE_MULTIPLIER)
if(extra_check_distance < 1)
diff --git a/code/modules/mob/living/carbon/xenomorph/xeno_ai_interaction.dm b/code/modules/mob/living/carbon/xenomorph/xeno_ai_interaction.dm
index 7e89c082d0..f912ade64c 100644
--- a/code/modules/mob/living/carbon/xenomorph/xeno_ai_interaction.dm
+++ b/code/modules/mob/living/carbon/xenomorph/xeno_ai_interaction.dm
@@ -137,7 +137,7 @@ At bare minimum, make sure the relevant checks from parent types gets copied in
// MOBS //
/////////////////////////////
/mob/living/ai_check_stat(mob/living/carbon/xenomorph/X)
- return stat == CONSCIOUS
+ return stat == CONSCIOUS && !(locate(/datum/effects/crit) in effects_list)
/////////////////////////////
diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm
index b76f980480..bbc70fdf1f 100644
--- a/code/modules/mob/new_player/preferences_setup.dm
+++ b/code/modules/mob/new_player/preferences_setup.dm
@@ -16,8 +16,10 @@
randomize_hair_color("facial")
randomize_eyes_color()
randomize_skin_color()
- underwear = gender == MALE ? pick(GLOB.underwear_m) : pick(GLOB.underwear_f)
- undershirt = gender == MALE ? pick(GLOB.undershirt_m) : pick(GLOB.undershirt_f)
+ var/list/undershirt_options = gender == MALE ? GLOB.undershirt_m : GLOB.undershirt_f
+ undershirt = pick(undershirt_options-GLOB.undershirt_restricted)
+ var/list/underwear_options = gender == MALE ? GLOB.underwear_m : GLOB.underwear_f
+ underwear = pick(underwear_options-GLOB.underwear_restricted)
backbag = 2
age = rand(AGE_MIN,AGE_MAX)
if(H)
@@ -249,7 +251,7 @@
return J.gear_preset_whitelist["[JOB_CO][J.get_whitelist_status(RoleAuthority.roles_whitelist, owner)]"]
return /datum/equipment_preset/uscm_ship/commander
if(JOB_SO)
- return /datum/equipment_preset/uscm_ship/so
+ return /datum/equipment_preset/uscm_ship/so/equipped
if(JOB_XO)
return /datum/equipment_preset/uscm_ship/xo
if(JOB_AUXILIARY_OFFICER)
diff --git a/code/modules/mob/new_player/sprite_accessories/undershirt.dm b/code/modules/mob/new_player/sprite_accessories/undershirt.dm
index 5919b75636..5fb59cf261 100644
--- a/code/modules/mob/new_player/sprite_accessories/undershirt.dm
+++ b/code/modules/mob/new_player/sprite_accessories/undershirt.dm
@@ -1,12 +1,15 @@
GLOBAL_LIST_INIT_TYPED(undershirt_m, /datum/sprite_accessory/undershirt, setup_undershirt(MALE))
GLOBAL_LIST_INIT_TYPED(undershirt_f, /datum/sprite_accessory/undershirt, setup_undershirt(FEMALE))
+GLOBAL_LIST_INIT_TYPED(undershirt_restricted, /datum/sprite_accessory/undershirt, setup_undershirt(null, TRUE))
-/proc/setup_undershirt(restricted_gender)
+/proc/setup_undershirt(restricted_gender, restricted)
var/list/undershirt_list = list()
for(var/undershirt_type in subtypesof(/datum/sprite_accessory/undershirt))
var/datum/sprite_accessory/undershirt/undershirt_datum = new undershirt_type
if(restricted_gender && undershirt_datum.gender != restricted_gender && (undershirt_datum.gender == MALE || undershirt_datum.gender == FEMALE))
continue
+ if(restricted && !undershirt_datum.restricted)
+ continue
if(undershirt_datum.camo_conforming)
undershirt_list["[undershirt_datum.name] (Camo Conforming)"] = undershirt_datum
var/datum/sprite_accessory/undershirt/classic_datum = new undershirt_type
@@ -28,6 +31,7 @@ GLOBAL_LIST_INIT_TYPED(undershirt_f, /datum/sprite_accessory/undershirt, setup_u
/datum/sprite_accessory/undershirt
icon = 'icons/mob/humans/undershirt.dmi'
var/camo_conforming = FALSE
+ var/restricted = FALSE
/datum/sprite_accessory/undershirt/proc/get_image(mob_gender)
var/selected_icon_state = icon_state
@@ -117,3 +121,10 @@ GLOBAL_LIST_INIT_TYPED(undershirt_f, /datum/sprite_accessory/undershirt, setup_u
icon_state = "strapless"
gender = FEMALE
camo_conforming = TRUE
+
+// Restricted
+/datum/sprite_accessory/undershirt/telnyashka
+ name = "Telnyashka"
+ icon_state = "telnyashka"
+ gender = NEUTER
+ restricted = TRUE
diff --git a/code/modules/mob/new_player/sprite_accessories/underwear.dm b/code/modules/mob/new_player/sprite_accessories/underwear.dm
index 869179619e..9c98abccb2 100644
--- a/code/modules/mob/new_player/sprite_accessories/underwear.dm
+++ b/code/modules/mob/new_player/sprite_accessories/underwear.dm
@@ -1,12 +1,15 @@
GLOBAL_LIST_INIT_TYPED(underwear_m, /datum/sprite_accessory/underwear, setup_underwear(MALE))
GLOBAL_LIST_INIT_TYPED(underwear_f, /datum/sprite_accessory/underwear, setup_underwear(FEMALE))
+GLOBAL_LIST_INIT_TYPED(underwear_restricted, /datum/sprite_accessory/underwear, setup_underwear(null, TRUE))
-/proc/setup_underwear(restricted_gender)
+/proc/setup_underwear(restricted_gender, restricted)
var/list/underwear_list = list()
for(var/underwear_type in subtypesof(/datum/sprite_accessory/underwear))
var/datum/sprite_accessory/underwear/underwear_datum = new underwear_type
if(restricted_gender && underwear_datum.gender != restricted_gender && (underwear_datum.gender == MALE || underwear_datum.gender == FEMALE))
continue
+ if(restricted && !underwear_datum.restricted)
+ continue
if(underwear_datum.camo_conforming)
underwear_list["[underwear_datum.name] (Camo Conforming)"] = underwear_datum
var/datum/sprite_accessory/underwear/classic_datum = new underwear_type
@@ -28,6 +31,7 @@ GLOBAL_LIST_INIT_TYPED(underwear_f, /datum/sprite_accessory/underwear, setup_und
/datum/sprite_accessory/underwear
icon = 'icons/mob/humans/underwear.dmi'
var/camo_conforming = FALSE
+ var/restricted = FALSE
/datum/sprite_accessory/underwear/proc/get_image(mob_gender)
var/selected_icon_state = icon_state
diff --git a/code/modules/projectiles/ammo_boxes/magazine_boxes.dm b/code/modules/projectiles/ammo_boxes/magazine_boxes.dm
index 4f09acbf11..fa0112641c 100644
--- a/code/modules/projectiles/ammo_boxes/magazine_boxes.dm
+++ b/code/modules/projectiles/ammo_boxes/magazine_boxes.dm
@@ -351,19 +351,19 @@
/obj/item/ammo_box/magazine/su6/empty
empty = TRUE
-//-----------------------88M4 Pistol Mag Box-----------------------
+//-----------------------VP70 Pistol Mag Box-----------------------
-/obj/item/ammo_box/magazine/mod88
- name = "\improper magazine box (88 Mod 4 x 16)"
+/obj/item/ammo_box/magazine/vp70
+ name = "\improper magazine box (VP70 x 16)"
icon_state = "base_mod88"
flags_equip_slot = SLOT_BACK
overlay_ammo_type = "_reg"
overlay_gun_type = "_mod88"
overlay_content = "_reg"
num_of_magazines = 16
- magazine_type = /obj/item/ammo_magazine/pistol/mod88
+ magazine_type = /obj/item/ammo_magazine/pistol/vp70
-/obj/item/ammo_box/magazine/mod88/empty
+/obj/item/ammo_box/magazine/vp70/empty
empty = TRUE
//-----------------------VP78 Pistol Mag Box-----------------------
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 7dc0a56943..32a0850443 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -1443,7 +1443,7 @@ and you're good to go.
if(projectile_to_fire.ammo.bonus_projectiles_amount)
var/obj/projectile/BP
for(var/i in 1 to projectile_to_fire.ammo.bonus_projectiles_amount)
- BP = new /obj/projectile(attacked_mob.loc, create_cause_data(initial(name), user))
+ BP = new /obj/projectile(null, create_cause_data(initial(name), user))
BP.generate_bullet(GLOB.ammo_list[projectile_to_fire.ammo.bonus_projectiles_type], 0, NO_FLAGS)
BP.accuracy = round(BP.accuracy * projectile_to_fire.accuracy/initial(projectile_to_fire.accuracy)) //Modifies accuracy of pellets per fire_bonus_projectiles.
BP.damage *= damage_buff
diff --git a/code/modules/projectiles/gun_attachables.dm b/code/modules/projectiles/gun_attachables.dm
index 6f972bdeb8..4941606a4b 100644
--- a/code/modules/projectiles/gun_attachables.dm
+++ b/code/modules/projectiles/gun_attachables.dm
@@ -1727,8 +1727,8 @@ Defined in conflicts.dm of the #defines folder.
icon = 'icons/obj/items/weapons/guns/attachments/stock.dmi'
/obj/item/attachable/stock/shotgun
- name = "\improper M37 wooden stock"
- desc = "A non-standard heavy wooden stock for the M37 Shotgun. More cumbersome than the standard issue stakeout, but reduces recoil and improves accuracy. Allegedly makes a pretty good club in a fight too."
+ name = "\improper Ithaca 37 wooden stock"
+ desc = "A standard wooden stock for the Ithaca pump-action shotgun. More cumbersome than the standard issue stakeout, but reduces recoil and improves accuracy. Allegedly makes a pretty good club in a fight too."
slot = "stock"
icon_state = "stock"
wield_delay_mod = WIELD_DELAY_FAST
@@ -1824,8 +1824,8 @@ Defined in conflicts.dm of the #defines folder.
// Doesn't give any stat additions due to the gun already having really good ones, and this is unremovable from the gun itself
/obj/item/attachable/stock/tactical
- name = "\improper MK221 tactical stock"
- desc = "A metal stock made for the MK221 tactical shotgun."
+ name = "\improper M120 tactical stock"
+ desc = "A metal stock made for the M120 tactical shotgun."
icon_state = "tactical_stock"
hud_offset_mod = 6
@@ -1859,6 +1859,33 @@ Defined in conflicts.dm of the #defines folder.
recoil_unwielded_mod = -RECOIL_AMOUNT_TIER_5
scatter_unwielded_mod = -SCATTER_AMOUNT_TIER_10
+/obj/item/attachable/stock/type23/wood
+ name = "\improper KS-29 wooden stock"
+ desc = "A standard heavy wooden stock for the KS-29 riot shotgun. Allegedly makes a pretty good club in a fight too."
+ slot = "stock"
+ icon_state = "type23_wood"
+ wield_delay_mod = WIELD_DELAY_FAST
+ pixel_shift_x = 32
+ pixel_shift_y = 15
+ hud_offset_mod = 6 //*Very* long sprite.
+ flags_attach_features = NO_FLAGS
+
+/obj/item/attachable/stock/type23/wood/New()
+ ..()
+ //it makes stuff much better when two-handed
+ accuracy_mod = HIT_ACCURACY_MULT_TIER_4
+ recoil_mod = -RECOIL_AMOUNT_TIER_4
+ scatter_mod = -SCATTER_AMOUNT_TIER_8
+ movement_onehanded_acc_penalty_mod = -MOVEMENT_ACCURACY_PENALTY_MULT_TIER_5
+ //it makes stuff much worse when one handed
+ accuracy_unwielded_mod = -HIT_ACCURACY_MULT_TIER_3
+ recoil_unwielded_mod = RECOIL_AMOUNT_TIER_4
+ scatter_unwielded_mod = SCATTER_AMOUNT_TIER_8
+ //but at the same time you are slow when 2 handed
+ aim_speed_mod = CONFIG_GET(number/slowdown_med)
+
+ matter = list("wood" = 2000)
+
/obj/item/attachable/stock/slavic
name = "wooden stock"
desc = "A non-standard heavy wooden stock for Slavic firearms."
@@ -2107,9 +2134,9 @@ Defined in conflicts.dm of the #defines folder.
flags_attach_features = NO_FLAGS
hud_offset_mod = 2
-/obj/item/attachable/stock/mod88
- name = "\improper Mod 88 burst stock"
- desc = "Increases the fire rate and burst amount on the Mod 88. Some versions act as a holster for the weapon when un-attached. This is a test item and should not be used in normal gameplay (yet)."
+/obj/item/attachable/stock/vp70
+ name = "\improper VP70 burst stock"
+ desc = "Increases the fire rate and burst amount on the VP70. Some versions act as a holster for the weapon when un-attached. This is a test item and should not be used in normal gameplay (yet)."
icon_state = "mod88_stock"
attach_icon = "mod88_stock_a"
wield_delay_mod = WIELD_DELAY_FAST
@@ -2118,7 +2145,7 @@ Defined in conflicts.dm of the #defines folder.
size_mod = 2
melee_mod = 5
-/obj/item/attachable/stock/mod88/New()
+/obj/item/attachable/stock/vp70/New()
..()
//2h
accuracy_mod = HIT_ACCURACY_MULT_TIER_3
@@ -2665,7 +2692,7 @@ Defined in conflicts.dm of the #defines folder.
name = "U1 grenade launcher"
desc = "A weapon-mounted, reloadable grenade launcher."
icon_state = "grenade"
- attach_icon = "grenade_a"
+ attach_icon = "grenade"
w_class = SIZE_MEDIUM
current_rounds = 0
max_rounds = 3
@@ -2834,12 +2861,22 @@ Defined in conflicts.dm of the #defines folder.
current_rounds = 0
max_rounds = 5
max_range = 10
- attachment_firing_delay = 30
+ attachment_firing_delay = 15
/obj/item/attachable/attached_gun/grenade/mk1/recon
icon_state = "green_grenade-mk1"
attach_icon = "green_grenade-mk1_a"
+/obj/item/attachable/attached_gun/grenade/m120
+ name = "\improper PN/c 30mm underslung grenade launcher"
+ desc = "Compact variant of the PN pump action underslung grenade launcher. Fits the M120 shotgun, three round tube, chambers one."
+ icon_state = "grenade-mk1"
+ attach_icon = "grenade-mk1_a"
+ current_rounds = 0
+ max_rounds = 3
+ max_range = 10
+ attachment_firing_delay = 15
+
/obj/item/attachable/attached_gun/grenade/m203 //M16 GL, only DD have it.
name = "\improper M203 Grenade Launcher"
desc = "An antique underbarrel grenade launcher. Adopted in 1969 for the M16, it was made obsolete centuries ago; how its ended up here is a mystery to you. Holds only one propriatary 40mm grenade, does not have modern IFF systems, it won't pass through your friends."
diff --git a/code/modules/projectiles/guns/pistols.dm b/code/modules/projectiles/guns/pistols.dm
index 9eed4553f1..d3fff0e05d 100644
--- a/code/modules/projectiles/guns/pistols.dm
+++ b/code/modules/projectiles/guns/pistols.dm
@@ -6,6 +6,7 @@
icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
reload_sound = 'sound/weapons/flipblade.ogg'
cocked_sound = 'sound/weapons/gun_pistol_cocked.ogg'
+ empty_sound = 'sound/weapons/gun_empty.ogg'
matter = list("metal" = 2000)
flags_equip_slot = SLOT_WAIST
@@ -48,12 +49,13 @@
/obj/item/weapon/gun/pistol/m4a3
name = "\improper M4A3 service pistol"
- desc = "An M4A3 Service Pistol, once the standard issue sidearm of the Colonial Marines but has recently been replaced with the Weyland Yutani 88 Mod 4 combat pistol. Fires 9mm pistol rounds."
+ desc = "The recently replaced semi-automatic 9mm service pistol of the USCM. It remains popular among marines due to its light trigger and familiarity."
icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
icon_state = "m4a3"
item_state = "m4a3"
+ fire_sound = "vp70"
current_mag = /obj/item/ammo_magazine/pistol
- flags_gun_features = GUN_AUTO_EJECTOR|GUN_CAN_POINTBLANK|GUN_ONE_HAND_WIELDED|GUN_AMMO_COUNTER
+ flags_gun_features = GUN_AUTO_EJECTOR|GUN_CAN_POINTBLANK|GUN_ONE_HAND_WIELDED
attachable_allowed = list(
/obj/item/attachable/suppressor,
/obj/item/attachable/reddot,
@@ -87,7 +89,7 @@
/obj/item/weapon/gun/pistol/m4a3/custom
name = "\improper M4A3 custom pistol"
- desc = "This M4A3 sports a nickel finish and faux ivory grips. This one is a slightly customized variant produced by a well known gunsmith on Gateway Station. These are commonly purchased by low level enlisted men and junior officers who have nothing better to spend their salary on. Chambered in 9mm."
+ desc = "Sporting a nickel finish and possibly faux ivory grips, this 9mm pistol has been customized by a well known gunsmith on Gateway Station. It offers no tactical advantages."
icon_state = "m4a3c"
item_state = "m4a3c"
@@ -102,37 +104,89 @@
damage_mult = BASE_BULLET_DAMAGE_MULT
+//VP70 - Counterpart to M1911, offers burst and capacity ine exchange of low accuracy and damage.
+
+/obj/item/weapon/gun/pistol/vp70
+ name = "\improper VP70 M5 service pistol"
+ desc = "Standard issue semi-automatic USCM service pistol. Recently replacing the M4A3, it retains its predecessor's 9mm chambering but offers both a higher magazine capacity and a 3-round burst selector."
+ icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
+ icon_state = "vp70"
+ item_state = "vp70"
+ fire_sound = "vp70"
+ firesound_volume = 20
+ reload_sound = 'sound/weapons/gun_vp70_reload.ogg'
+ unload_sound = 'sound/weapons/gun_vp70_unload.ogg'
+ current_mag = /obj/item/ammo_magazine/pistol/vp70
+ force = 8
+ flags_gun_features = GUN_AUTO_EJECTOR|GUN_CAN_POINTBLANK|GUN_ONE_HAND_WIELDED
+ attachable_allowed = list(
+ /obj/item/attachable/suppressor,
+ /obj/item/attachable/extended_barrel,
+ /obj/item/attachable/heavy_barrel,
+ /obj/item/attachable/compensator,
+ /obj/item/attachable/flashlight,
+ /obj/item/attachable/reflex,
+ /obj/item/attachable/reddot,
+ /obj/item/attachable/burstfire_assembly,
+ /obj/item/attachable/lasersight,
+ /obj/item/attachable/flashlight/grip,
+ /obj/item/attachable/magnetic_harness,
+ /obj/item/attachable/stock/vp70,
+ )
+
+/obj/item/weapon/gun/pistol/vp70/set_gun_attachment_offsets()
+ attachable_offset = list("muzzle_x" = 27, "muzzle_y" = 21,"rail_x" = 8, "rail_y" = 22, "under_x" = 21, "under_y" = 18, "stock_x" = 18, "stock_y" = 15)
+
+
+/obj/item/weapon/gun/pistol/vp70/set_gun_config_values()
+ ..()
+ set_fire_delay(FIRE_DELAY_TIER_11)
+ set_burst_amount(BURST_AMOUNT_TIER_3)
+ set_burst_delay(FIRE_DELAY_TIER_11)
+ accuracy_mult = BASE_ACCURACY_MULT
+ accuracy_mult_unwielded = BASE_ACCURACY_MULT
+ scatter = SCATTER_AMOUNT_TIER_7
+ burst_scatter_mult = SCATTER_AMOUNT_TIER_7
+ scatter_unwielded = SCATTER_AMOUNT_TIER_7
+ damage_mult = BASE_BULLET_DAMAGE_MULT
+
+
+/obj/item/weapon/gun/pistol/vp70/training
+ current_mag = /obj/item/ammo_magazine/pistol/vp70/rubber
+
+
+/obj/item/weapon/gun/pistol/vp70/flashlight/handle_starting_attachment()
+ ..()
+ var/obj/item/attachable/flashlight/flashlight = new(src)
+ flashlight.Attach(src)
+ update_attachable(flashlight.slot)
+
//-------------------------------------------------------
-//M4A3 45 //Inspired by the 1911
-//deprecated
/obj/item/weapon/gun/pistol/m1911
- name = "\improper M1911 service pistol"
- desc = "A timeless classic since the first World War. Once standard issue for the USCM, now back order only. Chambered in .45 ACP. Unfortunately, due to the progression of IFF technology, M1911 .45 ACP is NOT compatible with the SU-6."
+ name = "\improper M1911 pistol"
+ desc = "Despite never being an official service pistol of the USCM, its .45 ACP chambering and cultural connection to the Corps's predecessor keeps it a popular pistol, enough so that a large quantity are kept on backorder."
icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
icon_state = "m4a345"
item_state = "m4a3"
-
+ fire_sound = 'sound/weapons/gun_vp78_v2.ogg'
current_mag = /obj/item/ammo_magazine/pistol/m1911
-
/obj/item/weapon/gun/pistol/m1911/set_gun_attachment_offsets()
attachable_offset = list("muzzle_x" = 28, "muzzle_y" = 20,"rail_x" = 10, "rail_y" = 22, "under_x" = 21, "under_y" = 17, "stock_x" = 21, "stock_y" = 17)
-
/obj/item/weapon/gun/pistol/m1911/set_gun_config_values()
..()
set_fire_delay(FIRE_DELAY_TIER_9)
accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_4
accuracy_mult_unwielded = BASE_ACCURACY_MULT
scatter = SCATTER_AMOUNT_TIER_6
- burst_scatter_mult = SCATTER_AMOUNT_TIER_6
- scatter_unwielded = SCATTER_AMOUNT_TIER_6
+ scatter_unwielded = SCATTER_AMOUNT_TIER_4
damage_mult = BASE_BULLET_DAMAGE_MULT + BULLET_DAMAGE_MULT_TIER_5
-
+ recoil_unwielded = RECOIL_AMOUNT_TIER_4
/obj/item/weapon/gun/pistol/m1911/socom
- name = "\improper M48A4 service pistol"
+ name = "\improper M48A4 pistol"
desc = "A timeless classic since the first World War, the M1911A1 has limited use with the USCM, and is often used as a sidearm by non-governmental bodies due to its reliability. This is a modernized version with an ammo counter and a polymer grip, designated M48A4. Chambered in .45 ACP."
icon_state = "m4a345_s"
item_state = "m4a3"
@@ -146,116 +200,83 @@
scatter = SCATTER_AMOUNT_TIER_8
burst_scatter_mult = SCATTER_AMOUNT_TIER_6
scatter_unwielded = SCATTER_AMOUNT_TIER_6
- damage_mult = BASE_BULLET_DAMAGE_MULT + BULLET_DAMAGE_MULT_TIER_2
+ damage_mult = BASE_BULLET_DAMAGE_MULT + BULLET_DAMAGE_MULT_TIER_5
/obj/item/weapon/gun/pistol/m1911/socom/equipped
starting_attachment_types = list(/obj/item/attachable/suppressor, /obj/item/attachable/lasersight, /obj/item/attachable/reflex)
-//-------------------------------------------------------
-//Beretta 92FS, the gun McClane carries around in Die Hard. Very similar to the service pistol, all around.
-
-/obj/item/weapon/gun/pistol/b92fs
- name = "\improper Beretta 92FS pistol"
- desc = "A popular police firearm in the 20th century, often employed by hardboiled cops while confronting terrorists. A classic of its time, chambered in 9mm."
- icon = 'icons/obj/items/weapons/guns/guns_by_faction/colony.dmi'
- icon_state = "b92fs"
- item_state = "b92fs"
- current_mag = /obj/item/ammo_magazine/pistol/b92fs
-
-/obj/item/weapon/gun/pistol/b92fs/Initialize(mapload, spawn_empty)
- . = ..()
- if(prob(10))
- name = "\improper Beretta 93FR burst pistol"
- desc += " This specific pistol is a burst-fire, limited availability, police-issue 93FR type Beretta. Not too accurate, aftermarket modififcations are recommended."
- var/obj/item/attachable/burstfire_assembly/BFA = new(src)
- BFA.flags_attach_features &= ~ATTACH_REMOVABLE
- BFA.Attach(src)
- update_attachable(BFA.slot)
- add_firemode(GUN_FIREMODE_BURSTFIRE)
-
-/obj/item/weapon/gun/pistol/b92fs/set_gun_attachment_offsets()
- attachable_offset = list("muzzle_x" = 28, "muzzle_y" = 20,"rail_x" = 10, "rail_y" = 22, "under_x" = 21, "under_y" = 17, "stock_x" = 21, "stock_y" = 17)
-
-/obj/item/weapon/gun/pistol/b92fs/set_gun_config_values()
- ..()
- set_fire_delay(FIRE_DELAY_TIER_12)
- accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_5
- accuracy_mult_unwielded = BASE_ACCURACY_MULT
- scatter = SCATTER_AMOUNT_TIER_7
- burst_scatter_mult = SCATTER_AMOUNT_TIER_5
- scatter_unwielded = SCATTER_AMOUNT_TIER_7
- damage_mult = BASE_BULLET_DAMAGE_MULT - BULLET_DAMAGE_MULT_TIER_2
-
-
-//-------------------------------------------------------
-//DEAGLE //This one is obvious.
+//.45 MARSHALS PISTOL //Inspired by the Browning Hipower
+// rebalanced - singlefire, very strong bullets but slow to fire and heavy recoil
+// redesigned - now rejected USCM sidearm model, utilized by Colonial Marshals and other stray groups.
-/obj/item/weapon/gun/pistol/heavy
- name = "vintage Desert Eagle"
- desc = "A bulky 50 caliber pistol with a serious kick, probably taken from some museum somewhere. This one is engraved, 'Peace through superior firepower.'"
+/obj/item/weapon/gun/pistol/highpower
+ name = "\improper HG 45 'Aguila' pistol"
+ desc = "A semi-automatic Henjin-Garcia design chambered in .45 ACP that is slowly replacing the Office of the Colonial Marshals's Spearhead revolver."
icon = 'icons/obj/items/weapons/guns/guns_by_faction/colony.dmi'
- icon_state = "deagle"
- item_state = "deagle"
- fire_sound = 'sound/weapons/gun_DE50.ogg'
- firesound_volume = 40
- current_mag = /obj/item/ammo_magazine/pistol/heavy
- force = 13
-
+ icon_state = "highpower"
+ item_state = "highpower"
+ fire_sound = 'sound/weapons/gun_vp78_v2.ogg'
+ current_mag = /obj/item/ammo_magazine/pistol/highpower
+ force = 15
attachable_allowed = list(
- /obj/item/attachable/reddot,
- /obj/item/attachable/reflex,
- /obj/item/attachable/flashlight,
+ /obj/item/attachable/suppressor, // Barrel
+ /obj/item/attachable/bayonet,
+ /obj/item/attachable/bayonet/upp_replica,
+ /obj/item/attachable/bayonet/upp,
/obj/item/attachable/extended_barrel,
/obj/item/attachable/heavy_barrel,
- /obj/item/attachable/lasersight,
/obj/item/attachable/compensator,
+ /obj/item/attachable/reddot, // Rail
+ /obj/item/attachable/reflex,
+ /obj/item/attachable/flashlight,
+ /obj/item/attachable/magnetic_harness,
+ /obj/item/attachable/scope,
+ /obj/item/attachable/scope/mini,
+ /obj/item/attachable/gyro, // Under
+ /obj/item/attachable/lasersight,
+ /obj/item/attachable/burstfire_assembly,
)
+/obj/item/weapon/gun/pistol/highpower/set_gun_attachment_offsets()
+ attachable_offset = list("muzzle_x" = 29, "muzzle_y" = 20,"rail_x" = 6, "rail_y" = 22, "under_x" = 20, "under_y" = 15, "stock_x" = 0, "stock_y" = 0)
-/obj/item/weapon/gun/pistol/heavy/set_gun_attachment_offsets()
- attachable_offset = list("muzzle_x" = 30, "muzzle_y" = 20,"rail_x" = 17, "rail_y" = 21, "under_x" = 20, "under_y" = 17, "stock_x" = 20, "stock_y" = 17)
-
-
-/obj/item/weapon/gun/pistol/heavy/set_gun_config_values()
+/obj/item/weapon/gun/pistol/highpower/set_gun_config_values()
..()
- set_fire_delay(FIRE_DELAY_TIER_5)
- set_burst_amount(BURST_AMOUNT_TIER_2)
- set_burst_delay(FIRE_DELAY_TIER_8)
- accuracy_mult = BASE_ACCURACY_MULT
- accuracy_mult_unwielded = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_5
+ set_fire_delay(FIRE_DELAY_TIER_7)
+ accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_4
+ accuracy_mult_unwielded = BASE_ACCURACY_MULT
scatter = SCATTER_AMOUNT_TIER_6
- burst_scatter_mult = SCATTER_AMOUNT_TIER_6
- scatter_unwielded = SCATTER_AMOUNT_TIER_6
- damage_mult = BASE_BULLET_DAMAGE_MULT + BULLET_DAMAGE_MULT_TIER_1
- recoil = RECOIL_AMOUNT_TIER_5
- recoil_unwielded = RECOIL_AMOUNT_TIER_3
+ scatter_unwielded = SCATTER_AMOUNT_TIER_4
+ damage_mult = BASE_BULLET_DAMAGE_MULT + BULLET_DAMAGE_MULT_TIER_5
+ recoil_unwielded = RECOIL_AMOUNT_TIER_4
-/obj/item/weapon/gun/pistol/heavy/co
- name = "polished vintage Desert Eagle"
- desc = "The handcannon that needs no introduction, the .50-caliber Desert Eagle is expensive, unwieldy, and extremely heavy for a pistol. However, it makes up for it with its powerful shots capable of stopping a bear dead in its tracks. Iconic, glamorous, and above all, extremely deadly."
- icon = 'icons/obj/items/weapons/guns/guns_by_faction/colony.dmi'
- icon_state = "c_deagle"
- item_state = "c_deagle"
- current_mag = /obj/item/ammo_magazine/pistol/heavy/super/highimpact
- black_market_value = 100
+/obj/item/weapon/gun/pistol/highpower/black
+ name = "\improper HG 45 'Marina' pistol"
+ current_mag = /obj/item/ammo_magazine/pistol/highpower/black
+ icon_state = "highpower_b"
+ item_state = "highpower_b"
+ desc = "A semi-automatic Henjin-Garcia design chambered in .45 ACP that is slowly replacing the Office of the Colonial Marshals's Spearhead revolver. Unlike its more common siblings, this variant was marketed and successfully sold in small quantities to the USCM."
-/obj/item/weapon/gun/pistol/heavy/co/set_gun_config_values()
+/obj/item/weapon/gun/pistol/highpower/automag
+ name = "\improper HG 44 'Automag' pistol"
+ desc = "A semi-automatic Henjin-Garcia design chambered in .44 Magnum that was largely discontinued in favour of the HG 45 configuration chambered in .45 ACP."
+ current_mag = /obj/item/ammo_magazine/pistol/highpower/automag
+ icon_state = "highpower_tac"
+ item_state = "highpower_tac"
+ fire_sound = 'sound/weapons/gun_kt42.ogg'
+ flags_gun_features = GUN_AUTO_EJECTOR|GUN_CAN_POINTBLANK|GUN_ONE_HAND_WIELDED
+
+/obj/item/weapon/gun/pistol/highpower/automag/set_gun_config_values()
..()
- set_fire_delay(FIRE_DELAY_TIER_5)
- accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_4
- accuracy_mult_unwielded = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_7
- scatter = SCATTER_AMOUNT_TIER_6
- burst_scatter_mult = SCATTER_AMOUNT_TIER_4
- scatter_unwielded = SCATTER_AMOUNT_TIER_3
- damage_mult = BASE_BULLET_DAMAGE_MULT + BULLET_DAMAGE_MULT_TIER_8
- recoil = RECOIL_AMOUNT_TIER_3
- recoil_unwielded = RECOIL_AMOUNT_TIER_2
+ set_fire_delay(FIRE_DELAY_TIER_6)
+ recoil = RECOIL_AMOUNT_TIER_5
+ recoil_unwielded = RECOIL_AMOUNT_TIER_3
-/obj/item/weapon/gun/pistol/heavy/co/gold
- name = "golden vintage Desert Eagle"
- desc = "A Desert Eagle anodized in gold and adorned with rosewood grips. The living definition of ostentatious, it's flashy, unwieldy, tremendously heavy, and kicks like a mule. But as a symbol of power, there's nothing like it."
- icon_state = "g_deagle"
- item_state = "g_deagle"
+/obj/item/weapon/gun/pistol/highpower/automag/tactical
+ name = "\improper HG 44 'Automag' pistol"
+ desc = "A semi-automatic Henjin-Garcia design chambered in .44 Magnum that was largely discontinued in favour of the HG 45 configuration chambered in .45 ACP."
+ starting_attachment_types = list(/obj/item/attachable/suppressor, /obj/item/attachable/lasersight, /obj/item/attachable/reflex)
+ flags_gun_features = GUN_AUTO_EJECTOR|GUN_CAN_POINTBLANK|GUN_ONE_HAND_WIELDED
//-------------------------------------------------------
//NP92 pistol
@@ -263,13 +284,13 @@
/obj/item/weapon/gun/pistol/np92
name = "\improper NP92 pistol"
- desc = "The standard issue sidearm of the UPP. The NP92 is a small but powerful sidearm, well-liked by most it is issued to, although some prefer the weapon it was meant to replace, the Type 73. Takes 12 round magazines."
+ desc = "The standard issue sidearm of the UPP. Chambered in 9x18mm Makarov, The NP92 is a small versatile pistol."
icon = 'icons/obj/items/weapons/guns/guns_by_faction/upp.dmi'
icon_state = "np92"
item_state = "np92"
- fire_sound = "88m4"
+ fire_sound = "vp70"
current_mag = /obj/item/ammo_magazine/pistol/np92
- flags_gun_features = GUN_AUTO_EJECTOR|GUN_CAN_POINTBLANK|GUN_ONE_HAND_WIELDED|GUN_AMMO_COUNTER
+ flags_gun_features = GUN_AUTO_EJECTOR|GUN_CAN_POINTBLANK|GUN_ONE_HAND_WIELDED
attachable_allowed = list(
/obj/item/attachable/suppressor,
/obj/item/attachable/reddot,
@@ -299,7 +320,7 @@
inherent_traits = list(TRAIT_GUN_SILENCED)
fire_sound = "gun_silenced"
current_mag = /obj/item/ammo_magazine/pistol/np92/suppressed
- flags_gun_features = GUN_AUTO_EJECTOR|GUN_CAN_POINTBLANK|GUN_ONE_HAND_WIELDED|GUN_AMMO_COUNTER
+ flags_gun_features = GUN_AUTO_EJECTOR|GUN_CAN_POINTBLANK|GUN_ONE_HAND_WIELDED
attachable_allowed = list(
/obj/item/attachable/reddot,
/obj/item/attachable/reflex,
@@ -315,13 +336,14 @@
/obj/item/weapon/gun/pistol/t73
name = "\improper Type 73 pistol"
- desc = "The Type 73 is the once-standard issue sidearm of the UPP. Replaced by the NP92 in UPP use, it remains popular with veteran UPP troops due to familiarity and extra power. Due to an extremely large amount being produced, they tend to end up in the hands of forces attempting to arm themselves on a budget. Users include the Union of Progressive Peoples, Colonial Liberation Front, and just about any mercenary or pirate group out there."
+ desc = "Once the standard issue sidearm of the UPP it has since been replaced by the smaller NP92. Chambered with 7.62x25mm Tokarev, it remains popular with veterans due to its extra firepower."
icon = 'icons/obj/items/weapons/guns/guns_by_faction/upp.dmi'
icon_state = "tt"
item_state = "tt"
- fire_sound = 'sound/weapons/gun_tt.ogg'
+ fire_sound = 'sound/weapons/gun_vp78_v2.ogg'
+// fire_sound = 'sound/weapons/gun_tt.ogg'
current_mag = /obj/item/ammo_magazine/pistol/t73
- flags_gun_features = GUN_AUTO_EJECTOR|GUN_CAN_POINTBLANK|GUN_ONE_HAND_WIELDED|GUN_AMMO_COUNTER
+ flags_gun_features = GUN_AUTO_EJECTOR|GUN_CAN_POINTBLANK|GUN_ONE_HAND_WIELDED
attachable_allowed = list(
/obj/item/attachable/reddot,
/obj/item/attachable/reflex,
@@ -351,7 +373,7 @@
icon_state = "ttb"
item_state = "ttb"
current_mag = /obj/item/ammo_magazine/pistol/t73_impact
- flags_gun_features = GUN_AUTO_EJECTOR|GUN_CAN_POINTBLANK|GUN_ONE_HAND_WIELDED|GUN_AMMO_COUNTER
+ flags_gun_features = GUN_AUTO_EJECTOR|GUN_CAN_POINTBLANK|GUN_ONE_HAND_WIELDED
accepted_ammo = list(
/obj/item/ammo_magazine/pistol/t73,
/obj/item/ammo_magazine/pistol/t73_impact,
@@ -410,7 +432,6 @@
//-------------------------------------------------------
-//PIZZACHIMP PROTECTION
/obj/item/weapon/gun/pistol/holdout
name = "holdout pistol"
@@ -454,20 +475,17 @@
//-------------------------------------------------------
//CLF HOLDOUT PISTOL
/obj/item/weapon/gun/pistol/clfpistol
- name = "D18 Hummingbird Pistol"
- desc = "The D18 Hummingbird Pistol was produced in the mid-2170s as a cheap and concealable firearm for CLF Sleeper Cell agents for assassinations and ambushes, and is able to be concealed in shoes and workboots."
+ name = "Hummingbird pistol"
+ desc = "Chambering .50 AE catridges this gun is as compact as it could possibly be. Rumored to be designed and produced by the UPP before being distributed into UA space for arming sleeper cells with throwaway weapons capable of penetrating standard M3 pattern armor."
icon = 'icons/obj/items/weapons/guns/guns_by_faction/colony.dmi'
icon_state = "m43"
item_state = "m43"
- flags_gun_features = GUN_CAN_POINTBLANK|GUN_ONE_HAND_WIELDED
+ flags_gun_features = GUN_AUTO_EJECTOR|GUN_CAN_POINTBLANK|GUN_ONE_HAND_WIELDED
fire_sound = 'sound/weapons/gun_m43.ogg'
current_mag = /obj/item/ammo_magazine/pistol/clfpistol
w_class = SIZE_TINY
force = 5
- attachable_allowed = list(
- /obj/item/attachable/suppressor,
- /obj/item/attachable/flashlight,
- )
+ attachable_allowed = null
/obj/item/weapon/gun/pistol/clfpistol/set_gun_attachment_offsets()
attachable_offset = list("muzzle_x" = 28, "muzzle_y" = 20,"rail_x" = 10, "rail_y" = 21, "under_x" = 21, "under_y" = 17, "stock_x" = 21, "stock_y" = 17)
@@ -481,163 +499,12 @@
burst_scatter_mult = SCATTER_AMOUNT_TIER_5
scatter_unwielded = SCATTER_AMOUNT_TIER_8
scatter = SCATTER_AMOUNT_TIER_9
- damage_mult = BASE_BULLET_DAMAGE_MULT + BULLET_DAMAGE_MULT_TIER_4
+ damage_mult = BASE_BULLET_DAMAGE_MULT + BULLET_DAMAGE_MULT_TIER_10
+ recoil = RECOIL_AMOUNT_TIER_2
+ recoil_unwielded = RECOIL_AMOUNT_TIER_1
//-------------------------------------------------------
-//.45 MARSHALS PISTOL //Inspired by the Browning Hipower
-// rebalanced - singlefire, very strong bullets but slow to fire and heavy recoil
-// redesigned - now rejected USCM sidearm model, utilized by Colonial Marshals and other stray groups.
-
-/obj/item/weapon/gun/pistol/highpower
- name = "\improper MK-45 'High-Power' Automagnum"
- desc = "Originally designed as a replacement for the USCM's M44 combat revolver, it was rejected at the last minute by a committee, citing its need to be cocked after every loaded magazine to be too cumbersone and antiquated. The design has recently been purchased by the Henjin-Garcia company, refitted for .45 ACP, and sold to the Colonial Marshals and other various unscrupulous armed groups."
- icon = 'icons/obj/items/weapons/guns/guns_by_faction/colony.dmi'
- icon_state = "highpower"
- item_state = "highpower"
- fire_sound = 'sound/weapons/gun_kt42.ogg'
- current_mag = /obj/item/ammo_magazine/pistol/highpower
- force = 15
- attachable_allowed = list(
- /obj/item/attachable/suppressor, // Barrel
- /obj/item/attachable/bayonet,
- /obj/item/attachable/bayonet/upp_replica,
- /obj/item/attachable/bayonet/upp,
- /obj/item/attachable/extended_barrel,
- /obj/item/attachable/heavy_barrel,
- /obj/item/attachable/compensator,
- /obj/item/attachable/reddot, // Rail
- /obj/item/attachable/reflex,
- /obj/item/attachable/flashlight,
- /obj/item/attachable/magnetic_harness,
- /obj/item/attachable/scope,
- /obj/item/attachable/scope/mini,
- /obj/item/attachable/gyro, // Under
- /obj/item/attachable/lasersight,
- /obj/item/attachable/burstfire_assembly,
- )
- /// This weapon needs to be manually racked every time a new magazine is loaded. I tried and failed to touch gun shitcode so this will do.
- var/manually_slided = FALSE
-
-/obj/item/weapon/gun/pistol/highpower/Initialize(mapload, spawn_empty)
- . = ..()
- manually_slided = TRUE
-
-/obj/item/weapon/gun/pistol/highpower/Fire(atom/target, mob/living/user, params, reflex = 0, dual_wield)
- if(!manually_slided)
- click_empty()
- to_chat(user, SPAN_DANGER("\The [src] makes a clicking noise! You need to manually rack the slide after loading in a new magazine!"))
- return NONE
- return ..()
-
-/obj/item/weapon/gun/pistol/highpower/unique_action(mob/user)
- if(!manually_slided)
- user.visible_message(SPAN_NOTICE("[user] racks \the [src]'s slide."), SPAN_NOTICE("You rack \the [src]'s slide, loading the next bullet in."))
- manually_slided = TRUE
- cock_gun(user, TRUE)
- return
- ..()
-
-/obj/item/weapon/gun/pistol/highpower/cock_gun(mob/user, manual = FALSE)
- if(manual)
- ..()
- else return
-
-/obj/item/weapon/gun/pistol/highpower/reload(mob/user, obj/item/ammo_magazine/magazine)
- //reset every time its reloaded
- manually_slided = FALSE
- ..()
-
-/obj/item/weapon/gun/pistol/highpower/set_gun_attachment_offsets()
- attachable_offset = list("muzzle_x" = 29, "muzzle_y" = 20,"rail_x" = 6, "rail_y" = 22, "under_x" = 20, "under_y" = 15, "stock_x" = 0, "stock_y" = 0)
-
-/obj/item/weapon/gun/pistol/highpower/set_gun_config_values()
- ..()
- set_fire_delay(FIRE_DELAY_TIER_5)
- accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_4
- accuracy_mult_unwielded = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_3
- scatter = SCATTER_AMOUNT_TIER_6
- scatter_unwielded = SCATTER_AMOUNT_TIER_4
- damage_mult = BASE_BULLET_DAMAGE_MULT + BULLET_DAMAGE_MULT_TIER_8
- recoil = RECOIL_AMOUNT_TIER_4
- recoil_unwielded = RECOIL_AMOUNT_TIER_4
-//also comes in.... BLAPCK
-//the parent has a blueish tint, making it look best for civilian usage (colonies, marshals). this one has a black tint on its metal, making it best for military groups like VAIPO, elite mercs, etc.
-// black tinted magazines also included
-/obj/item/weapon/gun/pistol/highpower/black
- current_mag = /obj/item/ammo_magazine/pistol/highpower/black
- icon_state = "highpower_b"
- item_state = "highpower_b"
-
-//unimplemented
-/obj/item/weapon/gun/pistol/highpower/tactical
- name = "\improper MK-44 SOCOM Automagnum"
- desc = "Originally designed as a replacement for the USCM's M44 combat revolver, it was rejected at the last minute by a committee, citing its need to be cocked after every loaded magazine to be too cumbersone and antiquated. The design has recently been purchased by the Henjin-Garcia company and sold to the Colonial Marshals and other various unscrupulous armed groups. This one has a sleek, dark design."
- current_mag = /obj/item/ammo_magazine/pistol/highpower/black
- icon_state = "highpower_tac"
- item_state = "highpower_tac"
- starting_attachment_types = list(/obj/item/attachable/suppressor, /obj/item/attachable/lasersight, /obj/item/attachable/reflex)
- flags_gun_features = GUN_AUTO_EJECTOR|GUN_CAN_POINTBLANK|GUN_ONE_HAND_WIELDED|GUN_AMMO_COUNTER
-
-//-------------------------------------------------------
-//mod88 based off VP70 - Counterpart to M1911, offers burst and capacity ine exchange of low accuracy and damage.
-
-/obj/item/weapon/gun/pistol/mod88
- name = "\improper 88 Mod 4 combat pistol"
- desc = "Standard issue USCM firearm. Also found in the hands of Weyland-Yutani PMC teams. Fires 9mm armor shredding rounds and is capable of 3-round burst."
- icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
- icon_state = "_88m4" // to comply with css standards
- item_state = "_88m4"
- fire_sound = "88m4"
- firesound_volume = 20
- reload_sound = 'sound/weapons/gun_88m4_reload.ogg'
- unload_sound = 'sound/weapons/gun_88m4_unload.ogg'
- current_mag = /obj/item/ammo_magazine/pistol/mod88/normalpoint
- force = 8
- flags_gun_features = GUN_AUTO_EJECTOR|GUN_CAN_POINTBLANK|GUN_ONE_HAND_WIELDED|GUN_AMMO_COUNTER
- attachable_allowed = list(
- /obj/item/attachable/suppressor,
- /obj/item/attachable/extended_barrel,
- /obj/item/attachable/heavy_barrel,
- /obj/item/attachable/compensator,
- /obj/item/attachable/flashlight,
- /obj/item/attachable/reflex,
- /obj/item/attachable/reddot,
- /obj/item/attachable/burstfire_assembly,
- /obj/item/attachable/lasersight,
- /obj/item/attachable/flashlight/grip,
- /obj/item/attachable/magnetic_harness,
- /obj/item/attachable/stock/mod88,
- )
-
-/obj/item/weapon/gun/pistol/mod88/set_gun_attachment_offsets()
- attachable_offset = list("muzzle_x" = 27, "muzzle_y" = 21,"rail_x" = 8, "rail_y" = 22, "under_x" = 21, "under_y" = 18, "stock_x" = 18, "stock_y" = 15)
-
-
-/obj/item/weapon/gun/pistol/mod88/set_gun_config_values()
- ..()
- set_fire_delay(FIRE_DELAY_TIER_11)
- set_burst_amount(BURST_AMOUNT_TIER_3)
- set_burst_delay(FIRE_DELAY_TIER_11)
- accuracy_mult = BASE_ACCURACY_MULT
- accuracy_mult_unwielded = BASE_ACCURACY_MULT
- scatter = SCATTER_AMOUNT_TIER_7
- burst_scatter_mult = SCATTER_AMOUNT_TIER_7
- scatter_unwielded = SCATTER_AMOUNT_TIER_7
- damage_mult = BASE_BULLET_DAMAGE_MULT
-
-
-/obj/item/weapon/gun/pistol/mod88/training
- current_mag = /obj/item/ammo_magazine/pistol/mod88/rubber
-
-
-/obj/item/weapon/gun/pistol/mod88/flashlight/handle_starting_attachment()
- ..()
- var/obj/item/attachable/flashlight/flashlight = new(src)
- flashlight.Attach(src)
- update_attachable(flashlight.slot)
-
-//-------------------------------------------------------
// ES-4 - Basically a CL-exclusive reskin of the 88 mod 4 that only uses less-lethal ammo.
/obj/item/weapon/gun/pistol/es4
@@ -648,8 +515,8 @@
item_state = "es4"
fire_sound = 'sound/weapons/gun_es4.ogg'
firesound_volume = 20
- reload_sound = 'sound/weapons/gun_88m4_reload.ogg'
- unload_sound = 'sound/weapons/gun_88m4_unload.ogg'
+ reload_sound = 'sound/weapons/gun_vp70_reload.ogg'
+ unload_sound = 'sound/weapons/gun_vp70_unload.ogg'
current_mag = /obj/item/ammo_magazine/pistol/es4
force = 8
muzzle_flash = "muzzle_flash_blue"
@@ -683,7 +550,6 @@
icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
icon_state = "vp78"
item_state = "vp78"
-
fire_sound = 'sound/weapons/gun_vp78_v2.ogg'
reload_sound = 'sound/weapons/gun_vp78_reload.ogg'
unload_sound = 'sound/weapons/gun_vp78_unload.ogg'
@@ -760,6 +626,113 @@ It is a modified Beretta 93R, and can fire three-round burst or single fire. Whe
recoil_unwielded = RECOIL_AMOUNT_TIER_3
+//-------------------------------------------------------
+//Beretta 92FS, the gun McClane carries around in Die Hard. Very similar to the service pistol, all around.
+
+/obj/item/weapon/gun/pistol/b92fs
+ name = "\improper Beretta 92FS pistol"
+ desc = "A popular police firearm in the 20th century, often employed by hardboiled cops while confronting terrorists. A classic of its time, chambered in 9mm."
+ icon = 'icons/obj/items/weapons/guns/guns_by_faction/colony.dmi'
+ icon_state = "b92fs"
+ item_state = "b92fs"
+ current_mag = /obj/item/ammo_magazine/pistol/b92fs
+
+/obj/item/weapon/gun/pistol/b92fs/Initialize(mapload, spawn_empty)
+ . = ..()
+ if(prob(10))
+ name = "\improper Beretta 93FR burst pistol"
+ desc += " This specific pistol is a burst-fire, limited availability, police-issue 93FR type Beretta. Not too accurate, aftermarket modififcations are recommended."
+ var/obj/item/attachable/burstfire_assembly/BFA = new(src)
+ BFA.flags_attach_features &= ~ATTACH_REMOVABLE
+ BFA.Attach(src)
+ update_attachable(BFA.slot)
+ add_firemode(GUN_FIREMODE_BURSTFIRE)
+
+/obj/item/weapon/gun/pistol/b92fs/set_gun_attachment_offsets()
+ attachable_offset = list("muzzle_x" = 28, "muzzle_y" = 20,"rail_x" = 10, "rail_y" = 22, "under_x" = 21, "under_y" = 17, "stock_x" = 21, "stock_y" = 17)
+
+/obj/item/weapon/gun/pistol/b92fs/set_gun_config_values()
+ ..()
+ set_fire_delay(FIRE_DELAY_TIER_12)
+ accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_5
+ accuracy_mult_unwielded = BASE_ACCURACY_MULT
+ scatter = SCATTER_AMOUNT_TIER_7
+ burst_scatter_mult = SCATTER_AMOUNT_TIER_5
+ scatter_unwielded = SCATTER_AMOUNT_TIER_7
+ damage_mult = BASE_BULLET_DAMAGE_MULT - BULLET_DAMAGE_MULT_TIER_2
+
+
+//-------------------------------------------------------
+//DEAGLE //This one is obvious.
+
+/obj/item/weapon/gun/pistol/heavy
+ name = "vintage Desert Eagle"
+ desc = "A bulky 50 caliber pistol with a serious kick, probably taken from some museum somewhere. This one is engraved, 'Peace through superior firepower.'"
+ icon = 'icons/obj/items/weapons/guns/guns_by_faction/colony.dmi'
+ icon_state = "deagle"
+ item_state = "deagle"
+ fire_sound = 'sound/weapons/gun_DE50.ogg'
+ firesound_volume = 40
+ current_mag = /obj/item/ammo_magazine/pistol/heavy
+ force = 13
+
+ attachable_allowed = list(
+ /obj/item/attachable/reddot,
+ /obj/item/attachable/reflex,
+ /obj/item/attachable/flashlight,
+ /obj/item/attachable/extended_barrel,
+ /obj/item/attachable/heavy_barrel,
+ /obj/item/attachable/lasersight,
+ /obj/item/attachable/compensator,
+ )
+
+
+/obj/item/weapon/gun/pistol/heavy/set_gun_attachment_offsets()
+ attachable_offset = list("muzzle_x" = 30, "muzzle_y" = 20,"rail_x" = 17, "rail_y" = 21, "under_x" = 20, "under_y" = 17, "stock_x" = 20, "stock_y" = 17)
+
+
+/obj/item/weapon/gun/pistol/heavy/set_gun_config_values()
+ ..()
+ set_fire_delay(FIRE_DELAY_TIER_5)
+ set_burst_amount(BURST_AMOUNT_TIER_2)
+ set_burst_delay(FIRE_DELAY_TIER_8)
+ accuracy_mult = BASE_ACCURACY_MULT
+ accuracy_mult_unwielded = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_5
+ scatter = SCATTER_AMOUNT_TIER_6
+ burst_scatter_mult = SCATTER_AMOUNT_TIER_6
+ scatter_unwielded = SCATTER_AMOUNT_TIER_6
+ damage_mult = BASE_BULLET_DAMAGE_MULT + BULLET_DAMAGE_MULT_TIER_1
+ recoil = RECOIL_AMOUNT_TIER_5
+ recoil_unwielded = RECOIL_AMOUNT_TIER_3
+
+/obj/item/weapon/gun/pistol/heavy/co
+ name = "polished vintage Desert Eagle"
+ desc = "The handcannon that needs no introduction, the .50-caliber Desert Eagle is expensive, unwieldy, and extremely heavy for a pistol. However, it makes up for it with its powerful shots capable of stopping a bear dead in its tracks. Iconic, glamorous, and above all, extremely deadly."
+ icon = 'icons/obj/items/weapons/guns/guns_by_faction/colony.dmi'
+ icon_state = "c_deagle"
+ item_state = "c_deagle"
+ base_gun_icon = "c_deagle"
+ current_mag = /obj/item/ammo_magazine/pistol/heavy/super/highimpact
+ black_market_value = 100
+
+/obj/item/weapon/gun/pistol/heavy/co/set_gun_config_values()
+ ..()
+ set_fire_delay(FIRE_DELAY_TIER_5)
+ accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_4
+ accuracy_mult_unwielded = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_7
+ scatter = SCATTER_AMOUNT_TIER_6
+ burst_scatter_mult = SCATTER_AMOUNT_TIER_4
+ scatter_unwielded = SCATTER_AMOUNT_TIER_3
+ damage_mult = BASE_BULLET_DAMAGE_MULT + BULLET_DAMAGE_MULT_TIER_8
+ recoil = RECOIL_AMOUNT_TIER_3
+ recoil_unwielded = RECOIL_AMOUNT_TIER_2
+
+/obj/item/weapon/gun/pistol/heavy/co/gold
+ name = "golden vintage Desert Eagle"
+ desc = "A Desert Eagle anodized in gold and adorned with rosewood grips. The living definition of ostentatious, it's flashy, unwieldy, tremendously heavy, and kicks like a mule. But as a symbol of power, there's nothing like it."
+ icon_state = "g_deagle"
+ item_state = "g_deagle"
+ base_gun_icon = "g_deagle"
//-------------------------------------------------------
//The first rule of monkey pistol is we don't talk about monkey pistol.
diff --git a/code/modules/projectiles/guns/revolvers.dm b/code/modules/projectiles/guns/revolvers.dm
index 76e3e07106..6fd17ef1a7 100644
--- a/code/modules/projectiles/guns/revolvers.dm
+++ b/code/modules/projectiles/guns/revolvers.dm
@@ -293,14 +293,14 @@
icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
icon_state = "m44r"
item_state = "m44r"
-
+ fire_sounds = list('sound/weapons/gun_cmb_1.ogg', 'sound/weapons/gun_cmb_2.ogg')
cocked_sound = 'sound/weapons/gun_revolver_spun.ogg'
unload_sound = 'sound/weapons/handling/pkd_open_chamber.ogg'
chamber_close_sound = 'sound/weapons/handling/pkd_close_chamber.ogg'
current_mag = /obj/item/ammo_magazine/internal/revolver/m44
force = 8
- flags_gun_features = GUN_INTERNAL_MAG|GUN_CAN_POINTBLANK|GUN_ONE_HAND_WIELDED|GUN_AMMO_COUNTER
+ flags_gun_features = GUN_INTERNAL_MAG|GUN_CAN_POINTBLANK|GUN_ONE_HAND_WIELDED
attachable_allowed = list(
/obj/item/attachable/bayonet,
/obj/item/attachable/bayonet/upp,
@@ -405,7 +405,7 @@
name = "\improper PKL 'Double' Blaster"
desc = "Sold to civilians and private corporations, the Pflager Katsumata Series-L Blaster is a premium double barrel sidearm that can fire two rounds at the same time. Usually found in the hands of combat synths and replicants, this hand cannon is worth more than the combined price of three Emanators. Originally commissioned by the Wallace Corporation, it has since been released onto public market as a luxury firearm."
icon_state = "pkd_double"
- item_state = "88m4" //placeholder
+ item_state = "vp70" //placeholder
attachable_allowed = list(
/obj/item/attachable/flashlight,
@@ -699,18 +699,20 @@
//-------------------------------------------------------
//MARSHALS REVOLVER //Spearhead exists in Alien cannon.
-/obj/item/weapon/gun/revolver/cmb
- name = "\improper CMB Spearhead autorevolver"
- desc = "An automatic revolver chambered in .357, often loaded with hollowpoint on spaceships to prevent hull damage. Commonly issued to Colonial Marshals."
+/obj/item/weapon/gun/revolver/spearhead
+ name = "\improper Spearhead Armoury revolver"
+ desc = "A sleek high-quality revolver designed by Spearhead Armoury chambered in .357 commonly issued to Colonial Marshals."
icon = 'icons/obj/items/weapons/guns/guns_by_faction/colony.dmi'
icon_state = "spearhead"
item_state = "spearhead"
fire_sound = null
fire_sounds = list('sound/weapons/gun_cmb_1.ogg', 'sound/weapons/gun_cmb_2.ogg')
fire_rattle = 'sound/weapons/gun_cmb_rattle.ogg'
- cylinder_click = list('sound/weapons/handling/gun_cmb_click1.ogg', 'sound/weapons/handling/gun_cmb_click2.ogg')
- current_mag = /obj/item/ammo_magazine/internal/revolver/cmb/hollowpoint
- force = 12
+ //cylinder_click = list('sound/weapons/handling/gun_cmb_click1.ogg', 'sound/weapons/handling/gun_cmb_click2.ogg')
+ unload_sound = 'sound/weapons/handling/pkd_open_chamber.ogg'
+ chamber_close_sound = 'sound/weapons/handling/pkd_close_chamber.ogg'
+ current_mag = /obj/item/ammo_magazine/internal/revolver/spearhead
+ force = 15
attachable_allowed = list(
/obj/item/attachable/suppressor, // Muzzle
/obj/item/attachable/extended_barrel,
@@ -724,21 +726,21 @@
/obj/item/attachable/lasersight,
)
-/obj/item/weapon/gun/revolver/cmb/click_empty(mob/user)
+/obj/item/weapon/gun/revolver/spearhead/click_empty(mob/user)
if(user)
to_chat(user, SPAN_WARNING("*click*"))
playsound(user, pick('sound/weapons/handling/gun_cmb_click1.ogg', 'sound/weapons/handling/gun_cmb_click2.ogg'), 25, 1, 5) //5 tile range
else
playsound(src, pick('sound/weapons/handling/gun_cmb_click1.ogg', 'sound/weapons/handling/gun_cmb_click2.ogg'), 25, 1, 5)
-/obj/item/weapon/gun/revolver/cmb/Fire(atom/target, mob/living/user, params, reflex = 0, dual_wield)
+/obj/item/weapon/gun/revolver/spearhead/Fire(atom/target, mob/living/user, params, reflex = 0, dual_wield)
playsound('sound/weapons/gun_cmb_bass.ogg') // badass shooting bass
return ..()
-/obj/item/weapon/gun/revolver/cmb/set_gun_attachment_offsets()
+/obj/item/weapon/gun/revolver/spearhead/set_gun_attachment_offsets()
attachable_offset = list("muzzle_x" = 29, "muzzle_y" = 22,"rail_x" = 11, "rail_y" = 25, "under_x" = 20, "under_y" = 18, "stock_x" = 20, "stock_y" = 18)
-/obj/item/weapon/gun/revolver/cmb/set_gun_config_values()
+/obj/item/weapon/gun/revolver/spearhead/set_gun_config_values()
..()
set_fire_delay(FIRE_DELAY_TIER_6)
accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_4
@@ -749,5 +751,12 @@
recoil = RECOIL_AMOUNT_TIER_5
recoil_unwielded = RECOIL_AMOUNT_TIER_3
-/obj/item/weapon/gun/revolver/cmb/normalpoint
- current_mag = /obj/item/ammo_magazine/internal/revolver/cmb
+/obj/item/weapon/gun/revolver/spearhead/hollowpoint
+ current_mag = /obj/item/ammo_magazine/internal/revolver/spearhead/hollowpoint
+
+/obj/item/weapon/gun/revolver/spearhead/black
+ name = "\improper Spearhead Armoury revolver"
+ desc = "A sleek high-quality revolver designed by Spearhead Armoury chambered in .357 commonly issued to Colonial Marshals, though this version has been customized with a black metal finish indicating it is unlikely to be a service weapon."
+ icon = 'icons/obj/items/weapons/guns/guns_by_faction/colony.dmi'
+ icon_state = "spearhead_black"
+ item_state = "spearhead_black"
diff --git a/code/modules/projectiles/guns/shotguns.dm b/code/modules/projectiles/guns/shotguns.dm
index a705861f98..6035aaf612 100644
--- a/code/modules/projectiles/guns/shotguns.dm
+++ b/code/modules/projectiles/guns/shotguns.dm
@@ -20,6 +20,7 @@ can cause issues with ammo types getting mixed up during the burst.
has_empty_icon = FALSE
has_open_icon = FALSE
fire_delay_group = list(FIRE_DELAY_GROUP_SHOTGUN)
+ map_specific_decoration = FALSE
var/gauge = "12g"
/obj/item/weapon/gun/shotgun/Initialize(mapload, spawn_empty)
@@ -153,7 +154,6 @@ can cause issues with ammo types getting mixed up during the burst.
current_mag.chamber_position--
return in_chamber
-
/obj/item/weapon/gun/shotgun/ready_in_chamber()
return ready_shotgun_tube()
@@ -229,7 +229,7 @@ can cause issues with ammo types getting mixed up during the burst.
scatter = SCATTER_AMOUNT_TIER_5
burst_scatter_mult = SCATTER_AMOUNT_TIER_3
scatter_unwielded = SCATTER_AMOUNT_TIER_1
- damage_mult = BASE_BULLET_DAMAGE_MULT - BULLET_DAMAGE_MULT_TIER_2
+ damage_mult = BASE_BULLET_DAMAGE_MULT
recoil = RECOIL_AMOUNT_TIER_3
recoil_unwielded = RECOIL_AMOUNT_TIER_1
@@ -237,15 +237,17 @@ can cause issues with ammo types getting mixed up during the burst.
//TACTICAL SHOTGUN
/obj/item/weapon/gun/shotgun/combat
- name = "\improper MK221 tactical shotgun"
- desc = "The Weyland-Yutani MK221 Shotgun, a semi-automatic shotgun with a quick fire rate."
+ name = "\improper M120 tactical shotgun"
+ desc = "A successor to the Benelli M4 Super 90, the M120 tactical shotgun is in service with the USCM due its easy maneuverability in close quarters, 12 gauge chambering, high firerate and integrated U1 underslung grenade launcher. While not part of the standard doctrine, they are common none the less. The internal tube magazine stores 6 shells and the U1 grenade launcher stores three grenades."
icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
icon_state = "mk221"
item_state = "mk221"
fire_sound = "gun_shotgun_tactical"
firesound_volume = 20
- current_mag = /obj/item/ammo_magazine/internal/shotgun
+
+ flags_equip_slot = SLOT_BACK
+ current_mag = /obj/item/ammo_magazine/internal/shotgun/combat
attachable_allowed = list(
/obj/item/attachable/bayonet,
/obj/item/attachable/bayonet/upp,
@@ -264,26 +266,12 @@ can cause issues with ammo types getting mixed up during the burst.
if(current_mag && current_mag.current_rounds > 0)
load_into_chamber()
-/obj/item/weapon/gun/shotgun/combat/handle_starting_attachment()
- ..()
- var/obj/item/attachable/attached_gun/grenade/ugl = new(src)
- var/obj/item/attachable/stock/tactical/stock = new(src)
- ugl.flags_attach_features &= ~ATTACH_REMOVABLE
- ugl.hidden = TRUE
- ugl.Attach(src)
- update_attachable(ugl.slot)
- stock.hidden = FALSE
- stock.Attach(src)
- update_attachable(stock.slot)
-
/obj/item/weapon/gun/shotgun/combat/set_gun_attachment_offsets()
- attachable_offset = list("muzzle_x" = 33, "muzzle_y" = 19,"rail_x" = 10, "rail_y" = 21, "under_x" = 14, "under_y" = 16, "stock_x" = 11, "stock_y" = 13.)
-
-
+ attachable_offset = list("muzzle_x" = 33, "muzzle_y" = 19,"rail_x" = 10, "rail_y" = 21, "under_x" = 22, "under_y" = 14, "stock_x" = 11, "stock_y" = 13.)
/obj/item/weapon/gun/shotgun/combat/set_gun_config_values()
..()
- set_fire_delay(FIRE_DELAY_TIER_5*2)
+ set_fire_delay(FIRE_DELAY_TIER_9)
accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_3
accuracy_mult_unwielded = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_10
scatter = SCATTER_AMOUNT_TIER_6
@@ -292,7 +280,7 @@ can cause issues with ammo types getting mixed up during the burst.
damage_mult = BASE_BULLET_DAMAGE_MULT
recoil = RECOIL_AMOUNT_TIER_4
recoil_unwielded = RECOIL_AMOUNT_TIER_2
-
+ starting_attachment_types = list(/obj/item/attachable/attached_gun/grenade/m120, /obj/item/attachable/stock/tactical)
/obj/item/weapon/gun/shotgun/combat/get_examine_text(mob/user)
. = ..()
@@ -300,32 +288,31 @@ can cause issues with ammo types getting mixed up during the burst.
/obj/item/weapon/gun/shotgun/combat/riot
- name = "\improper MK221 riot shotgun"
+ name = "\improper M120/R tactical shotgun"
icon_state = "mp220"
item_state = "mp220"
- desc = "The Weyland-Yutani MK221 Shotgun, a semi-automatic shotgun with a quick fire rate. Equipped with a steel blue finish to signify use in riot control. It has been modified to only fire 20G beanbags."
+ desc = "A successor to the Benelli M4 Super 90, the M120 tactical shotgun is in service with the USCM due its easy maneuverability in close quarters, 12 gauge chambering, high firerate and integrated U1 underslung grenade launcher. While not part of the standard doctrine, they are common none the less. This one comes with a blue steel finish to denote its function as a riot shotgun. The internal tube magazine stores 6 shells and the U1 grenade launcher stores three grenades."
current_mag = /obj/item/ammo_magazine/internal/shotgun/combat/riot
- gauge = "20g"
/obj/item/weapon/gun/shotgun/combat/guard
- desc = "The Weyland-Yutani MK221 Shotgun, a semi-automatic shotgun with a quick fire rate. Equipped with a red handle to signify its use with Military Police Honor Guards."
+ desc = "The Weyland-Yutani M120 Shotgun, a semi-automatic shotgun with a quick fire rate. Equipped with a red handle to signify its use with Military Police Honor Guards."
icon_state = "mp221"
item_state = "mp221"
starting_attachment_types = list(/obj/item/attachable/magnetic_harness, /obj/item/attachable/bayonet)
- current_mag = /obj/item/ammo_magazine/internal/shotgun/buckshot
+ current_mag = /obj/item/ammo_magazine/internal/shotgun/combat
/obj/item/weapon/gun/shotgun/combat/covert
starting_attachment_types = list(/obj/item/attachable/magnetic_harness, /obj/item/attachable/extended_barrel)
- current_mag = /obj/item/ammo_magazine/internal/shotgun/buckshot
+ current_mag = /obj/item/ammo_magazine/internal/shotgun/combat
//SOF MK210, an earlier developmental variant of the MK211 tactical used by USCM SOF.
/obj/item/weapon/gun/shotgun/combat/marsoc
name = "\improper XM38 tactical shotgun"
- desc = "Way back in 2168, Wey-Yu began testing the MK221. The USCM picked up an early prototype, and later adopted it with a limited military contract. But the USCM Special Operations Forces wasn't satisfied, and iterated on the early prototypes they had access to; eventually, their internal armorers and tinkerers produced the MK210, designated XM38, a lightweight folding shotgun that snaps to the belt. And to boot, it's fully automatic, made of stamped medal, and keeps the UGL. Truly an engineering marvel."
+ desc = "An ARMAT design adopted for testing by the Marine Raiders due to it's compact size, high firerate and integrated magnetic harness system. You might think the size would leave its magazine tube wanting, but through engineering magic, the XM38 is capable of holding six shells with its internal tube magazine."
icon_state = "mk210"
item_state = "mk210"
- current_mag = /obj/item/ammo_magazine/internal/shotgun/buckshot
+ current_mag = /obj/item/ammo_magazine/internal/shotgun/marsoc
flags_equip_slot = SLOT_WAIST|SLOT_BACK
flags_gun_features = GUN_CAN_POINTBLANK|GUN_INTERNAL_MAG
@@ -353,7 +340,7 @@ can cause issues with ammo types getting mixed up during the burst.
..()
set_fire_delay(FIRE_DELAY_TIER_6)
accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_3
- accuracy_mult_unwielded = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_3 - HIT_ACCURACY_MULT_TIER_5
+ accuracy_mult_unwielded = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_3
scatter = SCATTER_AMOUNT_TIER_6
burst_scatter_mult = SCATTER_AMOUNT_TIER_6
scatter_unwielded = SCATTER_AMOUNT_TIER_2
@@ -365,18 +352,19 @@ can cause issues with ammo types getting mixed up during the burst.
//TYPE 23. SEMI-AUTO UPP SHOTGUN, BASED ON KS-23
/obj/item/weapon/gun/shotgun/type23
- name = "\improper Type 23 riot shotgun"
- desc = "As UPP soldiers frequently reported being outmatched by enemy combatants, UPP High Command commissioned a large amount of Type 23 shotguns, originally used for quelling defector colony riots. This slow semi-automatic shotgun chambers 8 gauge, and packs a mean punch."
+ name = "\improper KS-29/4 combat shotgun"
+ desc = "A contemporary semi-automatic design based off of the KS-23, a Soviet-era pump-action riot shotgun chambered in 6 gauge shells. Updated for the UPP's Naval Infantry as a boarding gun, it was downgraded to 8 gauge chambering in order to make it more controllable without much loss to overall firepower and allow for easier storage of large quantities of shells on the individual user. Its internal tube magazine can store 4 shells."
icon = 'icons/obj/items/weapons/guns/guns_by_faction/upp.dmi'
- icon_state = "type23"
- item_state = "type23"
- fire_sound = 'sound/weapons/gun_type23.ogg' //not perfect, too small
+ icon_state = "type23_tactical"
+ item_state = "type23_tactical"
+ fire_sound = 'sound/weapons/gun_type23.ogg'
current_mag = /obj/item/ammo_magazine/internal/shotgun/type23
attachable_allowed = list(
/obj/item/attachable/reddot, // Rail
/obj/item/attachable/reddot/upp,
/obj/item/attachable/reflex,
/obj/item/attachable/reflex/upp,
+ /obj/item/attachable/scope/upp,
/obj/item/attachable/flashlight,
/obj/item/attachable/magnetic_harness,
/obj/item/attachable/bayonet, // Muzzle
@@ -392,9 +380,8 @@ can cause issues with ammo types getting mixed up during the burst.
/obj/item/attachable/burstfire_assembly,
/obj/item/attachable/stock/type23, // Stock
)
- flags_gun_features = GUN_CAN_POINTBLANK|GUN_AMMO_COUNTER|GUN_INTERNAL_MAG
+ flags_gun_features = GUN_CAN_POINTBLANK|GUN_INTERNAL_MAG
flags_equip_slot = SLOT_BACK
- map_specific_decoration = FALSE
gauge = "8g"
starting_attachment_types = list(/obj/item/attachable/stock/type23)
@@ -403,101 +390,26 @@ can cause issues with ammo types getting mixed up during the burst.
/obj/item/weapon/gun/shotgun/type23/set_gun_config_values()
..()
- set_fire_delay(2.5 SECONDS)
+ set_fire_delay(FIRE_DELAY_TIER_8)
accuracy_mult = BASE_ACCURACY_MULT
- accuracy_mult_unwielded = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_10
+ accuracy_mult_unwielded = BASE_ACCURACY_MULT
scatter = SCATTER_AMOUNT_TIER_4
scatter_unwielded = SCATTER_AMOUNT_TIER_1
damage_mult = BASE_BULLET_DAMAGE_MULT
recoil = RECOIL_AMOUNT_TIER_1
recoil_unwielded = RECOIL_AMOUNT_TIER_1
-/obj/item/weapon/gun/shotgun/type23/breacher
- random_spawn_chance = 100
- random_rail_chance = 100
- random_spawn_rail = list(
- /obj/item/attachable/magnetic_harness,
- /obj/item/attachable/flashlight,
- )
- random_muzzle_chance = 100
- random_spawn_muzzle = list(
- /obj/item/attachable/bayonet/upp,
- )
- random_under_chance = 40
- random_spawn_under = list(
- /obj/item/attachable/verticalgrip/upp,
- )
-
-/obj/item/weapon/gun/shotgun/type23/breacher/slug
- current_mag = /obj/item/ammo_magazine/internal/shotgun/type23/slug
-
-/obj/item/weapon/gun/shotgun/type23/breacher/flechette
- current_mag = /obj/item/ammo_magazine/internal/shotgun/type23/flechette
-
-/obj/item/weapon/gun/shotgun/type23/dual
- random_spawn_chance = 100
- random_rail_chance = 100
- random_spawn_rail = list(
- /obj/item/attachable/magnetic_harness,
- )
- random_muzzle_chance = 80
- random_spawn_muzzle = list(
- /obj/item/attachable/bayonet/upp,
- /obj/item/attachable/heavy_barrel,
- )
- random_under_chance = 100
- random_spawn_under = list(
- /obj/item/attachable/flashlight/grip,
- /obj/item/attachable/verticalgrip/upp,
- )
-
-/obj/item/weapon/gun/shotgun/type23/dragon
- current_mag = /obj/item/ammo_magazine/internal/shotgun/type23/dragonsbreath
- random_spawn_chance = 100
- random_rail_chance = 100
- random_spawn_rail = list(
- /obj/item/attachable/magnetic_harness,
- )
- random_muzzle_chance = 70
- random_spawn_muzzle = list(
- /obj/item/attachable/bayonet/upp,
- /obj/item/attachable/heavy_barrel,
- )
- random_under_chance = 100
- random_spawn_under = list(
- /obj/item/attachable/attached_gun/extinguisher,
- )
-
-/obj/item/weapon/gun/shotgun/type23/riot_control
- name = "\improper Type 23-R riot control shotgun"
- desc = "This slow semi-automatic shotgun chambers 8 gauge, and packs a mean punch. The -R version is designed for UPP colony security personnel and handling colony rioting, sporting an integrated vertical grip but lacking in attachment choices."
- current_mag = /obj/item/ammo_magazine/internal/shotgun/type23/beanbag
- attachable_allowed = list(
- /obj/item/attachable/reddot, //Rail
- /obj/item/attachable/reddot/upp,
- /obj/item/attachable/reflex,
- /obj/item/attachable/reflex/upp,
- /obj/item/attachable/flashlight,
- /obj/item/attachable/magnetic_harness,
- /obj/item/attachable/verticalgrip, //Underbarrel
- /obj/item/attachable/verticalgrip/upp,
- /obj/item/attachable/stock/type23, //Stock
- )
- flags_gun_features = GUN_CAN_POINTBLANK|GUN_AMMO_COUNTER|GUN_INTERNAL_MAG
- flags_equip_slot = SLOT_BACK
- map_specific_decoration = FALSE
- gauge = "8g"
- starting_attachment_types = list(/obj/item/attachable/stock/type23)
-/obj/item/weapon/gun/shotgun/type23/riot_control/handle_starting_attachment()
- . = ..()
- var/obj/item/attachable/verticalgrip/integrated_grip = new(src)
- integrated_grip.flags_attach_features &= ~ATTACH_REMOVABLE
- integrated_grip.Attach(src)
- update_attachable(integrated_grip.slot)
+/obj/item/weapon/gun/shotgun/type23/riot
+ name = "\improper KS-29 riot shotgun"
+ desc = "A contemporary semi-automatic design based off of the KS-23, a Soviet-era riot shotgun chambered in 6 gauge shells. Like its Naval Infantry sibling, it is downgraded to 8 gauge chambering in order to make it more controllable without much loss to overall firepower and allow for easier storage of large quantities of shells on the individual user. Its internal tube magazine can store 4 shells."
+ icon = 'icons/obj/items/weapons/guns/guns_by_faction/upp.dmi'
+ icon_state = "type23_wood"
+ item_state = "type23_wood"
+ starting_attachment_types = list(/obj/item/attachable/stock/type23/wood)
-/obj/item/weapon/gun/shotgun/type23/pve
- current_mag = /obj/item/ammo_magazine/internal/shotgun/type23/special
+/obj/item/weapon/gun/shotgun/type23/riot/set_gun_attachment_offsets()
+ attachable_offset = list("muzzle_x" = 33, "muzzle_y" = 19,"rail_x" = 13, "rail_y" = 21, "under_x" = 24, "under_y" = 15, "stock_x" = 16, "stock_y" = 15)
//-------------------------------------------------------
//DOUBLE SHOTTY
@@ -653,7 +565,7 @@ can cause issues with ammo types getting mixed up during the burst.
accuracy_mult_unwielded = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_10
scatter = SCATTER_AMOUNT_TIER_7
scatter_unwielded = SCATTER_AMOUNT_TIER_1
- damage_mult = BASE_BULLET_DAMAGE_MULT - BULLET_DAMAGE_MULT_TIER_7
+ damage_mult = BASE_BULLET_DAMAGE_MULT
recoil = RECOIL_AMOUNT_TIER_3
recoil_unwielded = RECOIL_AMOUNT_TIER_1
@@ -676,7 +588,7 @@ can cause issues with ammo types getting mixed up during the burst.
scatter = SCATTER_AMOUNT_TIER_6
burst_scatter_mult = SCATTER_AMOUNT_TIER_10
scatter_unwielded = SCATTER_AMOUNT_TIER_2
- damage_mult = BASE_BULLET_DAMAGE_MULT + BULLET_DAMAGE_MULT_TIER_7
+ damage_mult = BASE_BULLET_DAMAGE_MULT
recoil = RECOIL_AMOUNT_TIER_3
recoil_unwielded = RECOIL_AMOUNT_TIER_1
@@ -720,7 +632,7 @@ can cause issues with ammo types getting mixed up during the burst.
set_fire_delay(FIRE_DELAY_TIER_7)
accuracy_mult_unwielded = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_10
scatter_unwielded = SCATTER_AMOUNT_TIER_7
- damage_mult = BASE_BULLET_DAMAGE_MULT + BULLET_DAMAGE_MULT_TIER_5
+ damage_mult = BASE_BULLET_DAMAGE_MULT
recoil = RECOIL_AMOUNT_TIER_2
recoil_unwielded = RECOIL_AMOUNT_TIER_3
@@ -793,7 +705,6 @@ can cause issues with ammo types getting mixed up during the burst.
/obj/item/attachable/lasersight,
/obj/item/attachable/stock/mou53,
)
- map_specific_decoration = TRUE
civilian_usable_override = FALSE
/obj/item/weapon/gun/shotgun/double/mou53/set_gun_attachment_offsets()
@@ -1076,8 +987,8 @@ can cause issues with ammo types getting mixed up during the burst.
//Shotguns in this category will need to be pumped each shot.
/obj/item/weapon/gun/shotgun/pump
- name = "\improper M37A2 pump shotgun"
- desc = "An Armat Battlefield Systems classic design, the M37A2 combines close-range firepower with long term reliability. Requires a pump, which is a Unique Action."
+ name = "Ithaca 37 pump-action shotgun"
+ desc = "A customized Ithaca 37 hunting shotgun. Its wooden stock has been replaced with a bakelite pistol grip, and its barrel and magazine tube have been cut down to half their lengths for easier handling in close quarters at the cost of magazine size, only fitting four shells and one chambered."
icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
icon_state = "m37"
item_state = "m37"
@@ -1111,11 +1022,10 @@ can cause issues with ammo types getting mixed up during the burst.
/obj/item/attachable/attached_gun/flamer/advanced,
/obj/item/attachable/stock/shotgun,
)
- map_specific_decoration = TRUE
/obj/item/weapon/gun/shotgun/pump/Initialize(mapload, spawn_empty)
. = ..()
- pump_delay = FIRE_DELAY_TIER_5*2
+ pump_delay = FIRE_DELAY_TIER_8
additional_fire_group_delay += pump_delay
@@ -1126,7 +1036,7 @@ can cause issues with ammo types getting mixed up during the burst.
/obj/item/weapon/gun/shotgun/pump/set_gun_config_values()
..()
set_burst_amount(BURST_AMOUNT_TIER_1)
- set_fire_delay(FIRE_DELAY_TIER_7 * 4)
+ set_fire_delay(FIRE_DELAY_TIER_7)
accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_3
accuracy_mult_unwielded = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_10
scatter = SCATTER_AMOUNT_TIER_6
@@ -1135,7 +1045,7 @@ can cause issues with ammo types getting mixed up during the burst.
damage_mult = BASE_BULLET_DAMAGE_MULT
recoil = RECOIL_AMOUNT_TIER_4
recoil_unwielded = RECOIL_AMOUNT_TIER_2
- wield_delay = WIELD_DELAY_MIN
+ //wield_delay = WIELD_DELAY_MIN
/obj/item/weapon/gun/shotgun/pump/unique_action(mob/user)
pump_shotgun(user)
@@ -1199,9 +1109,6 @@ can cause issues with ammo types getting mixed up during the burst.
//-------------------------------------------------------
-/obj/item/weapon/gun/shotgun/pump/special
- current_mag = /obj/item/ammo_magazine/internal/shotgun/special
-
/obj/item/weapon/gun/shotgun/pump/dual_tube
name = "generic dual-tube pump shotgun"
desc = "A twenty-round pump action shotgun with dual internal tube magazines. You can switch the active internal magazine by toggling the shotgun tube."
@@ -1252,7 +1159,7 @@ can cause issues with ammo types getting mixed up during the burst.
/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb
name = "\improper HG 37-12 pump shotgun"
- desc = "A eight-round pump action shotgun with four-round capacity dual internal tube magazines allowing for quick reloading and highly accurate fire. Used exclusively by Colonial Marshals. You can switch the active internal magazine by toggling the shotgun tube."
+ desc = "An eight-round pump action shotgun with four-round capacity dual internal tube magazines allowing for quick reloading and highly accurate fire. Standard issue shotgun of the Colonial Marshals Bureau. By toggling the shotgun tube, you can swap between the internal magazines."
icon = 'icons/obj/items/weapons/guns/guns_by_faction/colony.dmi'
icon_state = "hg3712"
item_state = "hg3712"
@@ -1270,7 +1177,6 @@ can cause issues with ammo types getting mixed up during the burst.
/obj/item/attachable/attached_gun/flamer/advanced,
)
starting_attachment_types = list(/obj/item/attachable/stock/hg3712)
- map_specific_decoration = FALSE
civilian_usable_override = TRUE // Come on. It's THE, er, other, survivor shotgun.
@@ -1280,7 +1186,7 @@ can cause issues with ammo types getting mixed up during the burst.
/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb/set_gun_config_values()
..()
- set_fire_delay(1.6 SECONDS)
+ set_fire_delay(FIRE_DELAY_TIER_7)
accuracy_mult = BASE_ACCURACY_MULT + HIT_ACCURACY_MULT_TIER_3
accuracy_mult_unwielded = BASE_ACCURACY_MULT - HIT_ACCURACY_MULT_TIER_10
scatter = SCATTER_AMOUNT_TIER_6
@@ -1299,8 +1205,4 @@ can cause issues with ammo types getting mixed up during the burst.
current_mag = /obj/item/ammo_magazine/internal/shotgun/cmb/m3717
starting_attachment_types = list(/obj/item/attachable/stock/hg3712/m3717)
-/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb/m3717/set_gun_config_values()
- ..()
- damage_mult = BASE_BULLET_DAMAGE_MULT + BULLET_DAMAGE_MULT_TIER_3
-
//-------------------------------------------------------
diff --git a/code/modules/projectiles/guns/smartgun.dm b/code/modules/projectiles/guns/smartgun.dm
index dca1410900..b19195127e 100644
--- a/code/modules/projectiles/guns/smartgun.dm
+++ b/code/modules/projectiles/guns/smartgun.dm
@@ -3,7 +3,7 @@
//Come get some.
/obj/item/weapon/gun/smartgun
- name = "\improper M56B smartgun"
+ name = "\improper M56A2 smartgun"
desc = "The actual firearm in the 4-piece M56 Smartgun System. Essentially a heavy, mobile machinegun.\nYou may toggle firing restrictions by using a special action.\nAlt-click it to open the feed cover and allow for reloading."
icon = 'icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi'
icon_state = "m56"
diff --git a/code/modules/projectiles/guns/specialist/launcher/grenade_launcher.dm b/code/modules/projectiles/guns/specialist/launcher/grenade_launcher.dm
index 0f767d679d..9148062d0c 100644
--- a/code/modules/projectiles/guns/specialist/launcher/grenade_launcher.dm
+++ b/code/modules/projectiles/guns/specialist/launcher/grenade_launcher.dm
@@ -330,7 +330,7 @@
icon_state = "m79"
item_state = "m79"
flags_equip_slot = SLOT_BACK
- preload = /obj/item/explosive/grenade/slug/baton
+ preload = null
is_lobbing = TRUE
actions_types = list(/datum/action/item_action/toggle_firing_level)
diff --git a/code/modules/projectiles/magazines/pistols.dm b/code/modules/projectiles/magazines/pistols.dm
index 3ae221fd42..ddcbefcb63 100644
--- a/code/modules/projectiles/magazines/pistols.dm
+++ b/code/modules/projectiles/magazines/pistols.dm
@@ -60,48 +60,52 @@
//-------------------------------------------------------
-//88M4 based off VP70
+//vp70 based off VP70
-/obj/item/ammo_magazine/pistol/mod88
- name = "\improper 88M4 AP magazine (9mm)"
- default_ammo = /datum/ammo/bullet/pistol/ap
- caliber = "9mm"
- icon_state = "88m4"
- max_rounds = 19
- gun_type = /obj/item/weapon/gun/pistol/mod88
- ammo_band_icon = "+88m4_band"
- ammo_band_icon_empty = "+88m4_band_e"
- ammo_band_color = AMMO_BAND_COLOR_AP
-/obj/item/ammo_magazine/pistol/mod88/normalpoint // Unused
- name = "\improper 88M4 magazine (9mm)"
+/obj/item/ammo_magazine/pistol/vp70
+ name = "\improper VP70 Magazine (9mm)"
default_ammo = /datum/ammo/bullet/pistol
caliber = "9mm"
+ icon_state = "vp70"
+ max_rounds = 19
+ gun_type = /obj/item/weapon/gun/pistol/vp70
+ ammo_band_icon = "+vp70_band"
+ ammo_band_icon_empty = "+vp70_band_e"
ammo_band_color = null
-/obj/item/ammo_magazine/pistol/mod88/normalpoint/extended // Unused
- name = "\improper 88M4 extended magazine (9mm)"
- icon_state = "88m4_mag_ex"
+/obj/item/ammo_magazine/pistol/vp70/ap
+ name = "\improper VP70 AP magazine (9mm)"
+ default_ammo = /datum/ammo/bullet/pistol/ap
+ caliber = "9mm"
+ icon_state = "vp70"
+ max_rounds = 19
+ gun_type = /obj/item/weapon/gun/pistol/vp70
+ ammo_band_color = AMMO_BAND_COLOR_AP
+
+/obj/item/ammo_magazine/pistol/vp70/extended // Unused
+ name = "\improper vp70 extended magazine (9mm)"
+ icon_state = "vp70_mag_ex"
default_ammo = /datum/ammo/bullet/pistol
caliber = "9mm"
-/obj/item/ammo_magazine/pistol/mod88/toxin
- name = "\improper 88M4 toxic magazine (9mm)"
+/obj/item/ammo_magazine/pistol/vp70/toxin
+ name = "\improper vp70 toxic magazine (9mm)"
default_ammo = /datum/ammo/bullet/pistol/ap/toxin
ammo_band_color = AMMO_BAND_COLOR_TOXIN
-/obj/item/ammo_magazine/pistol/mod88/penetrating
- name = "\improper 88M4 wall-penetrating magazine (9mm)"
+/obj/item/ammo_magazine/pistol/vp70/penetrating
+ name = "\improper vp70 wall-penetrating magazine (9mm)"
default_ammo = /datum/ammo/bullet/pistol/ap/penetrating
ammo_band_color = AMMO_BAND_COLOR_PENETRATING
-/obj/item/ammo_magazine/pistol/mod88/incendiary
- name = "\improper 88M4 incendiary magazine (9mm)"
+/obj/item/ammo_magazine/pistol/vp70/incendiary
+ name = "\improper vp70 incendiary magazine (9mm)"
default_ammo = /datum/ammo/bullet/pistol/incendiary
ammo_band_color = AMMO_BAND_COLOR_INCENDIARY
-/obj/item/ammo_magazine/pistol/mod88/rubber
- name = "\improper 88M4 rubber magazine (9mm)"
+/obj/item/ammo_magazine/pistol/vp70/rubber
+ name = "\improper vp70 rubber magazine (9mm)"
default_ammo = /datum/ammo/bullet/pistol/rubber
ammo_band_color = AMMO_BAND_COLOR_RUBBER
@@ -269,36 +273,41 @@
//-------------------------------------------------------
//CLF HOLDOUT PISTOL
/obj/item/ammo_magazine/pistol/clfpistol
- name = "D18 magazine (9mm)"
- desc = "A small D18 magazine storing 7 9mm bullets. How is it even this small?"
- default_ammo = /datum/ammo/bullet/pistol
- caliber = "9mm"
+ name = "Type 18 magazine (.50)"
+ default_ammo = /datum/ammo/bullet/pistol/heavy/super
+ caliber = ".50"
icon = 'icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi'
icon_state = "m4a3" // placeholder
- max_rounds = 7
+ max_rounds = 3
w_class = SIZE_TINY
gun_type = /obj/item/weapon/gun/pistol/clfpistol
-
//-------------------------------------------------------
//.45 MARSHALS PISTOL //Inspired by the Browning Hipower
// rebalanced - singlefire, very strong bullets but slow to fire and heavy recoil
// redesigned - now rejected USCM sidearm model, utilized by Colonial Marshals and other stray groups.
/obj/item/ammo_magazine/pistol/highpower
- name = "\improper MK-45 Automagnum magazine (.45)"
- default_ammo = /datum/ammo/bullet/pistol/highpower
+ name = "\improper HG-45 'Aguila' magazine (.45)"
+ default_ammo = /datum/ammo/bullet/pistol/heavy
caliber = ".45"
icon = 'icons/obj/items/weapons/guns/ammo_by_faction/colony.dmi'
icon_state = "highpower"
- max_rounds = 13
+ max_rounds = 11
gun_type = /obj/item/weapon/gun/pistol/highpower
//comes in black, for the black variant of the highpower, better for military usage
/obj/item/ammo_magazine/pistol/highpower/black
+ name = "\improper HG 45 'Marina' magazine (.45)"
icon_state = "highpower_b"
+/obj/item/ammo_magazine/pistol/highpower/automag
+ name = "\improper HG 44 'Automag' magazine (.44)"
+ icon_state = "highpower_b"
+ max_rounds = 13
+ default_ammo = /datum/ammo/bullet/revolver
+
//-------------------------------------------------------
/*
Auto 9 The gun RoboCop uses. A better version of the VP78, with more rounds per magazine. Probably the best pistol around, but takes no attachments.
@@ -310,7 +319,7 @@ It is a modified Beretta 93R, and can fire three-round burst or single fire. Whe
default_ammo = /datum/ammo/bullet/pistol/squash
caliber = "9mm"
icon = 'icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi'
- icon_state = "88m4" //PLACEHOLDER
+ icon_state = "vp70" //PLACEHOLDER
max_rounds = 50
gun_type = /obj/item/weapon/gun/pistol/auto9
diff --git a/code/modules/projectiles/magazines/revolvers.dm b/code/modules/projectiles/magazines/revolvers.dm
index 7d56612530..8b32587c7a 100644
--- a/code/modules/projectiles/magazines/revolvers.dm
+++ b/code/modules/projectiles/magazines/revolvers.dm
@@ -78,21 +78,21 @@
max_rounds = 6
gun_type = /obj/item/weapon/gun/revolver/small
-/obj/item/ammo_magazine/revolver/cmb
- name = "\improper Spearhead hollowpoint speed loader (.357)"
- desc = "A speedloader of 6 hollowpoint .357 bullets, issued to Colonial Marshals to both prevent overpenetration and improve performance against unarmored criminals or wildlife. Less effective against hard targets, but what're the chances of encountering those?"
- default_ammo = /datum/ammo/bullet/revolver/small/hollowpoint
+/obj/item/ammo_magazine/revolver/spearhead
+ name = "\improper Spearhead speed loader (.357)"
+ desc = "A speedloader of 6 FMJ .357 bullets, uncommonly issued to Colonial Marshals due to overpenetration risks."
+ default_ammo = /datum/ammo/bullet/revolver/small
caliber = ".357"
icon = 'icons/obj/items/weapons/guns/ammo_by_faction/colony.dmi'
- icon_state = "cmb_hp"
+ icon_state = "cmb"
max_rounds = 6
- gun_type = /obj/item/weapon/gun/revolver/cmb
+ gun_type = /obj/item/weapon/gun/revolver/spearhead
-/obj/item/ammo_magazine/revolver/cmb/normalpoint //put these in the marshal ert - ok sure :)
+/obj/item/ammo_magazine/revolver/spearhead/hollowpoint
name = "\improper Spearhead speed loader (.357)"
- desc = "A speedloader of 6 FMJ .357 bullets, uncommonly issued to Colonial Marshals due to overpenetration risks."
- default_ammo = /datum/ammo/bullet/revolver/small
- icon_state = "cmb"
+ desc = "A speedloader of 6 hollowpoint .357 bullets, commonly issued to Colonial Marshals to both prevent overpenetration and improve performance against unarmored criminals or wildlife."
+ default_ammo = /datum/ammo/bullet/revolver/small/hollowpoint
+ icon_state = "cmb_hp"
/**
* MATEBA REVOLVER
@@ -205,15 +205,15 @@
//-------------------------------------------------------
//MARSHALS REVOLVER //Spearhead exists in Alien cannon.
-/obj/item/ammo_magazine/internal/revolver/cmb
+/obj/item/ammo_magazine/internal/revolver/spearhead
default_ammo = /datum/ammo/bullet/revolver/small
caliber = ".357"
- gun_type = /obj/item/weapon/gun/revolver/cmb
+ gun_type = /obj/item/weapon/gun/revolver/spearhead
-/obj/item/ammo_magazine/internal/revolver/cmb/hollowpoint
+/obj/item/ammo_magazine/internal/revolver/spearhead/hollowpoint
default_ammo = /datum/ammo/bullet/revolver/small/hollowpoint
caliber = ".357"
- gun_type = /obj/item/weapon/gun/revolver/cmb
+ gun_type = /obj/item/weapon/gun/revolver/spearhead
//-------------------------------------------------------
//BIG GAME HUNTER'S REVOLVER
diff --git a/code/modules/projectiles/magazines/shotguns.dm b/code/modules/projectiles/magazines/shotguns.dm
index 3c26685a55..e378aed3c4 100644
--- a/code/modules/projectiles/magazines/shotguns.dm
+++ b/code/modules/projectiles/magazines/shotguns.dm
@@ -24,7 +24,7 @@ var/list/shotgun_boxes_12g = list(
caliber = "12g"
gun_type = /obj/item/weapon/gun/shotgun
max_rounds = 25 // Real shotgun boxes are usually 5 or 25 rounds. This works with the new system, five handfuls.
- w_class = SIZE_LARGE // Can't throw it in your pocket, friend.
+ w_class = SIZE_MEDIUM // Can't throw it in your pocket, friend.
flags_magazine = AMMUNITION_REFILLABLE|AMMUNITION_HANDFUL_BOX
handful_state = "slug_shell"
transfer_handful_amount = 5
@@ -70,15 +70,6 @@ var/list/shotgun_boxes_12g = list(
default_ammo = /datum/ammo/bullet/shotgun/beanbag
handful_state = "beanbag_slug"
-/obj/item/ammo_magazine/shotgun/beanbag/riot
- name = "box of RC beanbag slugs"
- desc = "A box filled with beanbag shotgun shells used for non-lethal crowd control. Riot Control use only."
- icon_state = "beanbag"
- item_state = "beanbag"
- default_ammo = /datum/ammo/bullet/shotgun/beanbag
- handful_state = "beanbag_slug"
- caliber = "20g"
-
/obj/item/ammo_magazine/shotgun/buckshot/special
name = "box of buckshot shells, USCM special type"
desc = "A box filled with buckshot spread shotgun shells, USCM special type. 12 Gauge."
@@ -91,12 +82,14 @@ Generic internal magazine. All shotguns will use this or a variation with differ
Since all shotguns share ammo types, the gun path is going to be the same for all of them. And it
also doesn't really matter. You can only reload them with handfuls.
*/
+
/obj/item/ammo_magazine/internal/shotgun
name = "shotgun tube"
desc = "An internal magazine. It is not supposed to be seen or removed."
default_ammo = /datum/ammo/bullet/shotgun/buckshot
caliber = "12g"
- max_rounds = 9
+ max_rounds = 4
+ current_rounds = 0
chamber_closed = 0
/obj/item/ammo_magazine/internal/shotgun/double //For a double barrel.
@@ -117,36 +110,26 @@ also doesn't really matter. You can only reload them with handfuls.
caliber = "2 bore"
default_ammo = /datum/ammo/bullet/shotgun/twobore
+/obj/item/ammo_magazine/internal/shotgun/combat
+ caliber = "12g"
+ max_rounds = 6
+
/obj/item/ammo_magazine/internal/shotgun/combat/riot
- caliber = "20g"
default_ammo = /datum/ammo/bullet/shotgun/beanbag
+ current_rounds = 6
+
+/obj/item/ammo_magazine/internal/shotgun/marsoc
+ caliber = "12g"
+ max_rounds = 7
+ current_rounds = 7
/obj/item/ammo_magazine/internal/shotgun/merc
max_rounds = 5
-/obj/item/ammo_magazine/internal/shotgun/buckshot
- default_ammo = /datum/ammo/bullet/shotgun/buckshot
-
/obj/item/ammo_magazine/internal/shotgun/type23
- default_ammo = /datum/ammo/bullet/shotgun/heavy/buckshot
caliber = "8g"
max_rounds = 4
-/obj/item/ammo_magazine/internal/shotgun/type23/slug
- default_ammo = /datum/ammo/bullet/shotgun/heavy/slug
-
-/obj/item/ammo_magazine/internal/shotgun/type23/flechette
- default_ammo = /datum/ammo/bullet/shotgun/heavy/flechette
-
-/obj/item/ammo_magazine/internal/shotgun/type23/dragonsbreath
- default_ammo = /datum/ammo/bullet/shotgun/heavy/buckshot/dragonsbreath
-
-/obj/item/ammo_magazine/internal/shotgun/type23/beanbag
- default_ammo = /datum/ammo/bullet/shotgun/heavy/beanbag
-
-/obj/item/ammo_magazine/internal/shotgun/type23/special
- default_ammo = /datum/ammo/bullet/shotgun/heavy/buckshot/special
-
/obj/item/ammo_magazine/internal/shotgun/cmb
default_ammo = /datum/ammo/bullet/shotgun/buckshot
max_rounds = 4
@@ -154,9 +137,6 @@ also doesn't really matter. You can only reload them with handfuls.
/obj/item/ammo_magazine/internal/shotgun/cmb/m3717
max_rounds = 5
-/obj/item/ammo_magazine/internal/shotgun/special
- default_ammo = /datum/ammo/bullet/shotgun/buckshot/special
-
//-------------------------------------------------------
/*
diff --git a/code/modules/reagents/chemistry_reagents/other.dm b/code/modules/reagents/chemistry_reagents/other.dm
index bbeeca2e3c..557e977929 100644
--- a/code/modules/reagents/chemistry_reagents/other.dm
+++ b/code/modules/reagents/chemistry_reagents/other.dm
@@ -109,10 +109,10 @@
description = "A ubiquitous chemical substance that is composed of hydrogen and oxygen. It is a vital component to all known forms of organic life, even though it provides no calories or organic nutrients. It is also an effective solvent and can be used for cleaning."
reagent_state = LIQUID
color = "#0064C8" // rgb: 0, 100, 200
- custom_metabolism = AMOUNT_PER_TIME(1, 200 SECONDS)
chemclass = CHEM_CLASS_BASIC
chemfiresupp = TRUE
intensitymod = -3
+ properties = list(PROPERTY_HEMOGENIC = 1)
/datum/reagent/water/reaction_turf(turf/T, volume)
if(!istype(T)) return
@@ -132,6 +132,12 @@
if(M.fire_stacks <= 0)
M.ExtinguishMob()
+/datum/reagent/water/on_mob_life(mob/living/M)
+ . = ..()
+ if(ishuman(M) && volume >= 100 && prob(25))
+ var/mob/living/carbon/human/human = M
+ human.vomit()
+
/datum/reagent/water/holywater
name = "Holy Water"
id = "holywater"
diff --git a/code/modules/shuttle/computers/dropship_computer.dm b/code/modules/shuttle/computers/dropship_computer.dm
index 0024958c8e..ccc7c891e5 100644
--- a/code/modules/shuttle/computers/dropship_computer.dm
+++ b/code/modules/shuttle/computers/dropship_computer.dm
@@ -259,8 +259,8 @@
hijack.fire()
GLOB.alt_ctrl_disabled = TRUE
- marine_announcement("Unscheduled dropship departure detected from operational area. Hijack likely. Shutting down autopilot.", "Dropship Alert", 'sound/AI/hijack.ogg', logging = ARES_LOG_SECURITY)
- log_ares_flight("Unknown", "Unscheduled dropship departure detected from operational area. Hijack likely. Shutting down autopilot.")
+ marine_announcement("Unknown fault in remote flight control. Resolving as possible hijack. Marking dropship as possibly hostile and disconnecting from sensor matrix.", "Dropship Alert", 'sound/misc/notice2.ogg', logging = ARES_LOG_SECURITY)
+ log_ares_flight("Unknown", "Unknown fault in remote flight control. Resolving as possible hijack. Marking dropship as possibly hostile and disconnecting from sensor matrix.")
var/mob/living/carbon/xenomorph/xeno = user
var/hivenumber = XENO_HIVE_NORMAL
@@ -306,7 +306,7 @@
.["target_destination"] = shuttle.in_flyby? "Flyby" : shuttle.destination.name
.["door_status"] = is_remote ? list() : shuttle.get_door_data()
- .["has_flyby_skill"] = skillcheck(user, SKILL_PILOT, SKILL_PILOT_EXPERT)
+ .["has_flyby_skill"] = skillcheck(user, SKILL_PILOT, SKILL_PILOT_TRAINED)
// Launch Alarm Variables
.["playing_launch_announcement_alarm"] = shuttle.playing_launch_announcement_alarm
@@ -363,7 +363,7 @@
var/dock_id = params["target"]
if(dock_id == DROPSHIP_FLYBY_ID)
- if(!skillcheck(user, SKILL_PILOT, SKILL_PILOT_EXPERT))
+ if(!skillcheck(user, SKILL_PILOT, SKILL_PILOT_TRAINED))
to_chat(user, SPAN_WARNING("You don't have the skill to perform a flyby."))
return FALSE
update_equipment(is_optimised, TRUE)
@@ -465,7 +465,7 @@
shuttle.setTimer(DROPSHIP_WARMUP_TIME)
if("play_launch_announcement_alarm")
if (shuttle.mode != SHUTTLE_IDLE && shuttle.mode != SHUTTLE_RECHARGING)
- to_chat(usr, SPAN_WARNING("The Launch Announcement Alarm is designed to tell people that you're going to take off soon."))
+ to_chat(usr, SPAN_WARNING("The launch warning alarm is only for alerting people to a takeoff."))
return
shuttle.alarm_sound_loop.start()
shuttle.playing_launch_announcement_alarm = TRUE
@@ -503,7 +503,7 @@
/obj/structure/machinery/computer/shuttle/dropship/flight/toc
name = "dropship control screen"
- desc = "A screen on the TOC computer for controlling the dropship linked to it."
+ desc = "A screen on the TOC computer for controlling the dropship linked to it. Has an abbreviated version of the flight controls and data."
icon = 'icons/obj/structures/machinery/computer.dmi'
icon_state = "toc_shuttle"
shuttleId = DROPSHIP_MIDWAY
diff --git a/code/modules/shuttle/dropship.dm b/code/modules/shuttle/dropship.dm
index bf38f9fa3b..02b225d917 100644
--- a/code/modules/shuttle/dropship.dm
+++ b/code/modules/shuttle/dropship.dm
@@ -222,8 +222,19 @@
opacity = TRUE
/obj/structure/shuttle/part/midway/transparent
+ desc = "The cockpit canopy transparency of a UD-4 gunship. Composed of a composite material that matches the hull's radar absorbency while providing protection against glare and sniping lasers."
opacity = FALSE
+/obj/structure/shuttle/part/midway/transparent/nosecone
+ desc = "Part of the nose assembly of the UD-4 Cheyenne. Contains the forward sensor complex."
+
+/obj/structure/shuttle/part/midway/gunpod_prop
+ name = "\improper Midway"
+ desc = "The nose of a UD-4 Cheyenne dropship. Contains the AESA radar system and the chin-mounted powered gunpod containing the GAU-113/B 25mm rotary autocannon with a 900 round drum."
+ icon = 'icons/turf/dropship4.dmi'
+ icon_state = "101a"
+ opacity = TRUE
+
/obj/structure/shuttle/part/cyclone
name = "\improper Cyclone"
icon = 'icons/turf/dropship2.dmi'
@@ -231,8 +242,19 @@
opacity = TRUE
/obj/structure/shuttle/part/cyclone/transparent
+ desc = "The cockpit canopy transparency of a UD-4 gunship. Composed of a composite material that matches the hull's radar absorbency while providing protection against glare and sniping lasers."
opacity = FALSE
+/obj/structure/shuttle/part/cyclone/transparent/nosecone
+ desc = "Part of the nose assembly of the UD-4 Cheyenne. Contains the forward sensor complex."
+
+/obj/structure/shuttle/part/cyclone/gunpod_prop
+ name = "\improper Cyclone"
+ desc = "The nose of a UD-4 Cheyenne dropship. Contains the AESA radar system and the chin-mounted powered gunpod containing the GAU-113/B 25mm rotary autocannon with a 900 round drum."
+ icon = 'icons/turf/dropship2.dmi'
+ icon_state = "101a"
+ opacity = TRUE
+
/obj/structure/shuttle/part/tornado
name = "\improper Tornado"
icon = 'icons/turf/dropship3.dmi'
@@ -240,8 +262,19 @@
opacity = TRUE
/obj/structure/shuttle/part/tornado/transparent
+ desc = "The cockpit canopy transparency of a UD-4 gunship. Composed of a composite material that matches the hull's radar absorbency while providing protection against glare and sniping lasers."
opacity = FALSE
+/obj/structure/shuttle/part/tornado/transparent/nosecone
+ desc = "Part of the nose assembly of the UD-4 Cheyenne. Contains the forward sensor complex."
+
+/obj/structure/shuttle/part/tornado/gunpod_prop
+ name = "\improper Tornado"
+ desc = "The nose of a UD-4 Cheyenne dropship. Contains the AESA radar system and the chin-mounted powered gunpod containing the GAU-113/B 25mm rotary autocannon with a 900 round drum."
+ icon = 'icons/turf/dropship3.dmi'
+ icon_state = "101a"
+ opacity = TRUE
+
/obj/structure/shuttle/part/typhoon
name = "\improper Typhoon"
icon = 'icons/turf/dropship3.dmi'
@@ -249,8 +282,19 @@
opacity = TRUE
/obj/structure/shuttle/part/typhoon/transparent
+ desc = "The cockpit canopy transparency of a UD-4 gunship. Composed of a composite material that matches the hull's radar absorbency while providing protection against glare and sniping lasers."
opacity = FALSE
+/obj/structure/shuttle/part/typhoon/transparent/nosecone
+ desc = "Part of the nose assembly of the UD-4 Cheyenne. Contains the forward sensor complex."
+
+/obj/structure/shuttle/part/typhoon/gunpod_prop
+ name = "\improper Typhoon"
+ desc = "The nose of a UD-4 Cheyenne dropship. Contains the AESA radar system and the chin-mounted powered gunpod containing the GAU-113/B 25mm rotary autocannon with a 900 round drum."
+ icon = 'icons/turf/dropship3.dmi'
+ icon_state = "101a"
+ opacity = TRUE
+
/obj/structure/shuttle/part/tripoli
name = "\improper Tripoli"
icon = 'icons/turf/dropship.dmi'
@@ -258,4 +302,15 @@
opacity = TRUE
/obj/structure/shuttle/part/tripoli/transparent
+ desc = "The cockpit canopy transparency of a UD-4 gunship. Composed of a composite material that matches the hull's radar absorbency while providing protection against glare and sniping lasers."
opacity = FALSE
+
+/obj/structure/shuttle/part/tripoli/transparent/nosecone
+ desc = "Part of the nose assembly of the UD-4 Cheyenne. Contains the forward sensor complex."
+
+/obj/structure/shuttle/part/tripoli/gunpod_prop
+ name = "\improper Tripoli"
+ desc = "The nose of a UD-4 Cheyenne dropship. Contains the AESA radar system and the chin-mounted powered gunpod containing the GAU-113/B 25mm rotary autocannon with a 900 round drum."
+ icon = 'icons/turf/dropship.dmi'
+ icon_state = "101a"
+ opacity = TRUE
diff --git a/code/modules/vehicles/interior/interactable/vendors.dm b/code/modules/vehicles/interior/interactable/vendors.dm
index aa2411f89f..fc77d4d0d5 100644
--- a/code/modules/vehicles/interior/interactable/vendors.dm
+++ b/code/modules/vehicles/interior/interactable/vendors.dm
@@ -185,7 +185,7 @@
list("M4RA Battle Rifle", round(scale * 2), /obj/item/weapon/gun/rifle/m4ra, VENDOR_ITEM_REGULAR),
list("SIDEARMS", -1, null, null),
- list("88 Mod 4 Combat Pistol", round(scale * 2), /obj/item/weapon/gun/pistol/mod88, VENDOR_ITEM_REGULAR),
+ list("VP70 Combat Pistol", round(scale * 2), /obj/item/weapon/gun/pistol/vp70, VENDOR_ITEM_REGULAR),
list("M44 Combat Revolver", round(scale * 1.5), /obj/item/weapon/gun/revolver/m44, VENDOR_ITEM_REGULAR),
list("M4A3 Service Pistol", round(scale * 2.5), /obj/item/weapon/gun/pistol/m4a3, VENDOR_ITEM_REGULAR),
@@ -215,7 +215,7 @@
list("M39 HV Magazine (10x20mm)", round(scale * 6), /obj/item/ammo_magazine/smg/m39, VENDOR_ITEM_REGULAR),
list("M44 Speed Loader (.44)", round(scale * 4), /obj/item/ammo_magazine/revolver, VENDOR_ITEM_REGULAR),
list("M4A3 Magazine (9mm)", round(scale * 10), /obj/item/ammo_magazine/pistol, VENDOR_ITEM_REGULAR),
- list("88 Mod 4 Magazine (9mm)", round(scale * 8), /obj/item/ammo_magazine/pistol/mod88/normalpoint, VENDOR_ITEM_REGULAR),
+ list("VP70 Magazine (9mm)", round(scale * 8), /obj/item/ammo_magazine/pistol/vp70, VENDOR_ITEM_REGULAR),
list("ARMOR-PIERCING AMMUNITION", -1, null, null),
list("M4RA AP Magazine (10x24mm)", 0, /obj/item/ammo_magazine/rifle/m4ra/ap, VENDOR_ITEM_REGULAR),
diff --git a/colonialmarines.dme b/colonialmarines.dme
index 8137368e04..04770682c0 100644
--- a/colonialmarines.dme
+++ b/colonialmarines.dme
@@ -677,6 +677,7 @@
#include "code\datums\weather\weather_map_holder.dm"
#include "code\datums\weather\weather_events\big_red.dm"
#include "code\datums\weather\weather_events\faction_clash.dm"
+#include "code\datums\weather\weather_events\long.dm"
#include "code\datums\weather\weather_events\lv522_chances_claim.dm"
#include "code\datums\weather\weather_events\lv624.dm"
#include "code\datums\weather\weather_events\lv759_hybrisa_prospera.dm"
diff --git a/html/changelogs/archive/2024-08.yml b/html/changelogs/archive/2024-08.yml
index 8e750b78f6..65fe0ef0b8 100644
--- a/html/changelogs/archive/2024-08.yml
+++ b/html/changelogs/archive/2024-08.yml
@@ -104,9 +104,29 @@
- rscadd: Added something
private-tristan:
- rscadd: ports TG strip menu
+2024-08-26:
+ sunofang:
+ - admin: Added infinite weather options.
+2024-08-27:
+ Max-023:
+ - rscadd: Helmet cover item, added to the squad prep vendor
+ - imageadd: Helmet cover sprites
+ Meatstuff882:
+ - rscadd: 'The utility vendor now has knives in it.
+
+ :cl:'
2024-08-29:
- ChaplainMaximum:
- - rscadd: "\u0414\u043E\u0431\u0430\u0432\u0438\u043B \u0413\u043E\u043B\u0434\u0435\
- \u043D \u0410\u0440\u0440\u043E\u0443"
- - bugfix: "\u042E\u0445\u0443! \u0412\u043E\u0440\u043A\u0444\u043B\u043E\u0443\
- \ \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442!!!"
+ AndroBetel:
+ - rscadd: Water now helps you regen blood.
+ - rscadd: Vomiting now removes some reagents, helping negate OD effects.
+ - balance: Vulture no longer has minimum range requirements to hit bugs.
+ - rscadd: Adds restricted underwear.
+ Doubleumc:
+ - code_imp: changed slotting - new players and players that got skipped previous
+ rounds have a higher chance to get a slot
+ - code_imp: AI caches valid targets for better performance
+ Merrgear:
+ - qol: made crit less boring
+ - code_imp: 'changed the crit code to not knock you unconcious
+
+ :cl:'
diff --git a/html/changelogs/archive/2024-09.yml b/html/changelogs/archive/2024-09.yml
new file mode 100644
index 0000000000..4a7d473306
--- /dev/null
+++ b/html/changelogs/archive/2024-09.yml
@@ -0,0 +1,7 @@
+2024-09-04:
+ AndroBetel:
+ - rscadd: MD blips now show up for humans in 1 tile radius from MD user.
+ Max-023:
+ - rscadd: on Sorokyne, UPP 'Territorial Guard' vendor to replace USCM MP Vendors
+ - rscdel: on Sorokyne, removed USCM Galley Vendors
+ - bugfix: on Sorokyne, Replaces USCM/CMB guns, ammunition, and belts with UPP counterparts
diff --git a/icons/mob/humans/onmob/back.dmi b/icons/mob/humans/onmob/back.dmi
index 24840d6348..d237128b24 100644
Binary files a/icons/mob/humans/onmob/back.dmi and b/icons/mob/humans/onmob/back.dmi differ
diff --git a/icons/mob/humans/onmob/belt.dmi b/icons/mob/humans/onmob/belt.dmi
index 9079bda5e7..5c3e8a6dc6 100644
Binary files a/icons/mob/humans/onmob/belt.dmi and b/icons/mob/humans/onmob/belt.dmi differ
diff --git a/icons/mob/humans/onmob/head_1.dmi b/icons/mob/humans/onmob/head_1.dmi
index 5b981b77b6..f228b4fa72 100644
Binary files a/icons/mob/humans/onmob/head_1.dmi and b/icons/mob/humans/onmob/head_1.dmi differ
diff --git a/icons/mob/humans/onmob/helmet_garb.dmi b/icons/mob/humans/onmob/helmet_garb.dmi
index 31ce025b09..062400725a 100644
Binary files a/icons/mob/humans/onmob/helmet_garb.dmi and b/icons/mob/humans/onmob/helmet_garb.dmi differ
diff --git a/icons/mob/humans/onmob/items_lefthand_1.dmi b/icons/mob/humans/onmob/items_lefthand_1.dmi
index b0b7a1d9ac..46bc771b52 100644
Binary files a/icons/mob/humans/onmob/items_lefthand_1.dmi and b/icons/mob/humans/onmob/items_lefthand_1.dmi differ
diff --git a/icons/mob/humans/onmob/items_righthand_1.dmi b/icons/mob/humans/onmob/items_righthand_1.dmi
index 25c47289e0..8a0fbd85c6 100644
Binary files a/icons/mob/humans/onmob/items_righthand_1.dmi and b/icons/mob/humans/onmob/items_righthand_1.dmi differ
diff --git a/icons/mob/humans/onmob/suit_1.dmi b/icons/mob/humans/onmob/suit_1.dmi
index a316ccf8c4..c9727790e0 100644
Binary files a/icons/mob/humans/onmob/suit_1.dmi and b/icons/mob/humans/onmob/suit_1.dmi differ
diff --git a/icons/mob/humans/onmob/suit_slot.dmi b/icons/mob/humans/onmob/suit_slot.dmi
index 555b5a0e7a..4790ee7af6 100644
Binary files a/icons/mob/humans/onmob/suit_slot.dmi and b/icons/mob/humans/onmob/suit_slot.dmi differ
diff --git a/icons/mob/humans/onmob/uniform_0.dmi b/icons/mob/humans/onmob/uniform_0.dmi
index 8656f89278..cfe9cd70bb 100644
Binary files a/icons/mob/humans/onmob/uniform_0.dmi and b/icons/mob/humans/onmob/uniform_0.dmi differ
diff --git a/icons/mob/humans/undershirt.dmi b/icons/mob/humans/undershirt.dmi
index 468778851c..928dc332e6 100644
Binary files a/icons/mob/humans/undershirt.dmi and b/icons/mob/humans/undershirt.dmi differ
diff --git a/icons/obj/items/clothing/belts.dmi b/icons/obj/items/clothing/belts.dmi
index 4e9a85cc90..90aacb3563 100644
Binary files a/icons/obj/items/clothing/belts.dmi and b/icons/obj/items/clothing/belts.dmi differ
diff --git a/icons/obj/items/clothing/cm_hats.dmi b/icons/obj/items/clothing/cm_hats.dmi
index 3799f5faba..f6061c5dbd 100644
Binary files a/icons/obj/items/clothing/cm_hats.dmi and b/icons/obj/items/clothing/cm_hats.dmi differ
diff --git a/icons/obj/items/clothing/cm_suits.dmi b/icons/obj/items/clothing/cm_suits.dmi
index 2b3b3a091c..e5c2820849 100644
Binary files a/icons/obj/items/clothing/cm_suits.dmi and b/icons/obj/items/clothing/cm_suits.dmi differ
diff --git a/icons/obj/items/clothing/uniforms.dmi b/icons/obj/items/clothing/uniforms.dmi
index 4442a8049d..1e852ba5d5 100644
Binary files a/icons/obj/items/clothing/uniforms.dmi and b/icons/obj/items/clothing/uniforms.dmi differ
diff --git a/icons/obj/items/helmet_garb.dmi b/icons/obj/items/helmet_garb.dmi
index 6886ec3556..5403ae28b7 100644
Binary files a/icons/obj/items/helmet_garb.dmi and b/icons/obj/items/helmet_garb.dmi differ
diff --git a/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi b/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi
index 0d50208cc8..0ea04eeb2a 100644
Binary files a/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi and b/icons/obj/items/weapons/guns/ammo_by_faction/uscm.dmi differ
diff --git a/icons/obj/items/weapons/guns/attachments.dmi b/icons/obj/items/weapons/guns/attachments.dmi
index 332217fe1c..96038c374a 100644
Binary files a/icons/obj/items/weapons/guns/attachments.dmi and b/icons/obj/items/weapons/guns/attachments.dmi differ
diff --git a/icons/obj/items/weapons/guns/attachments/stock.dmi b/icons/obj/items/weapons/guns/attachments/stock.dmi
index d3a95284a2..506148cedf 100644
Binary files a/icons/obj/items/weapons/guns/attachments/stock.dmi and b/icons/obj/items/weapons/guns/attachments/stock.dmi differ
diff --git a/icons/obj/items/weapons/guns/attachments/under.dmi b/icons/obj/items/weapons/guns/attachments/under.dmi
index 8947ecd174..b98e185f02 100644
Binary files a/icons/obj/items/weapons/guns/attachments/under.dmi and b/icons/obj/items/weapons/guns/attachments/under.dmi differ
diff --git a/icons/obj/items/weapons/guns/guns_by_faction/colony.dmi b/icons/obj/items/weapons/guns/guns_by_faction/colony.dmi
index dd1d630aae..feca8443db 100644
Binary files a/icons/obj/items/weapons/guns/guns_by_faction/colony.dmi and b/icons/obj/items/weapons/guns/guns_by_faction/colony.dmi differ
diff --git a/icons/obj/items/weapons/guns/guns_by_faction/upp.dmi b/icons/obj/items/weapons/guns/guns_by_faction/upp.dmi
index 669efcfc59..16e37d5f4e 100644
Binary files a/icons/obj/items/weapons/guns/guns_by_faction/upp.dmi and b/icons/obj/items/weapons/guns/guns_by_faction/upp.dmi differ
diff --git a/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi b/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi
index e57c625158..b107511d67 100644
Binary files a/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi and b/icons/obj/items/weapons/guns/guns_by_faction/uscm.dmi differ
diff --git a/icons/obj/items/weapons/guns/lineart.dmi b/icons/obj/items/weapons/guns/lineart.dmi
index 6920290c7e..7e8537cca5 100644
Binary files a/icons/obj/items/weapons/guns/lineart.dmi and b/icons/obj/items/weapons/guns/lineart.dmi differ
diff --git a/icons/turf/dropship.dmi b/icons/turf/dropship.dmi
index ba08ecf600..0b5cebe9e2 100644
Binary files a/icons/turf/dropship.dmi and b/icons/turf/dropship.dmi differ
diff --git a/icons/turf/dropship2.dmi b/icons/turf/dropship2.dmi
index 787d72e04f..f1ba788021 100644
Binary files a/icons/turf/dropship2.dmi and b/icons/turf/dropship2.dmi differ
diff --git a/icons/turf/dropship3.dmi b/icons/turf/dropship3.dmi
index bd13e33fbb..937b20a182 100644
Binary files a/icons/turf/dropship3.dmi and b/icons/turf/dropship3.dmi differ
diff --git a/icons/turf/dropship4.dmi b/icons/turf/dropship4.dmi
index db0f58dcee..4452412254 100644
Binary files a/icons/turf/dropship4.dmi and b/icons/turf/dropship4.dmi differ
diff --git a/maps/map_files/BigRed/BigRed.dmm b/maps/map_files/BigRed/BigRed.dmm
index c1ff18c9fa..0eb6024a5a 100644
--- a/maps/map_files/BigRed/BigRed.dmm
+++ b/maps/map_files/BigRed/BigRed.dmm
@@ -1662,7 +1662,7 @@
/area/bigredv2/outside/marshal_office)
"afo" = (
/obj/structure/surface/rack,
-/obj/item/weapon/gun/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
/turf/open/floor{
dir = 8;
icon_state = "vault"
@@ -1670,7 +1670,7 @@
/area/bigredv2/outside/marshal_office)
"afp" = (
/obj/structure/surface/rack,
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor{
dir = 8;
icon_state = "vault"
@@ -1681,7 +1681,7 @@
/obj/structure/machinery/light{
dir = 1
},
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor{
dir = 8;
icon_state = "vault"
@@ -24149,7 +24149,7 @@
},
/obj/structure/closet/cabinet,
/obj/item/disk/nuclear,
-/obj/item/weapon/gun/pistol/mod88,
+/obj/item/weapon/gun/pistol/vp70,
/obj/structure/pipes/vents/pump/on,
/turf/open/floor{
icon_state = "wood"
@@ -24760,8 +24760,8 @@
/area/bigredv2/caves_se)
"bMa" = (
/obj/structure/surface/rack,
-/obj/item/weapon/gun/pistol/mod88,
-/obj/item/weapon/gun/pistol/mod88,
+/obj/item/weapon/gun/pistol/vp70,
+/obj/item/weapon/gun/pistol/vp70,
/turf/open/floor{
dir = 8;
icon_state = "redcorner"
@@ -31566,7 +31566,7 @@
"miD" = (
/obj/effect/decal/cleanable/blood,
/obj/effect/landmark/corpsespawner/security/marshal,
-/obj/item/weapon/gun/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
/turf/open/mars_cave{
icon_state = "mars_cave_2"
},
@@ -38204,7 +38204,7 @@
},
/area/bigredv2/caves_north)
"vBy" = (
-/obj/item/ammo_magazine/shotgun/beanbag/riot,
+/obj/item/ammo_magazine/shotgun/beanbag,
/turf/open/mars_cave{
icon_state = "mars_cave_17"
},
diff --git a/maps/map_files/BigRed/sprinkles/10.prison_breakout.dmm b/maps/map_files/BigRed/sprinkles/10.prison_breakout.dmm
index e2e995af42..744ef04af7 100644
--- a/maps/map_files/BigRed/sprinkles/10.prison_breakout.dmm
+++ b/maps/map_files/BigRed/sprinkles/10.prison_breakout.dmm
@@ -223,7 +223,7 @@
/area/bigredv2/outside/marshal_office)
"aF" = (
/obj/structure/surface/rack,
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor{
dir = 8;
icon_state = "vault"
@@ -231,7 +231,7 @@
/area/bigredv2/outside/marshal_office)
"aG" = (
/obj/structure/surface/rack,
-/obj/item/weapon/gun/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
/turf/open/floor{
dir = 8;
icon_state = "vault"
@@ -242,7 +242,7 @@
/obj/structure/machinery/light{
dir = 1
},
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor{
dir = 8;
icon_state = "vault"
diff --git a/maps/map_files/BigRed/sprinkles/20.etatunnel_open.dmm b/maps/map_files/BigRed/sprinkles/20.etatunnel_open.dmm
index 633a79f6ac..9666ca41a4 100644
--- a/maps/map_files/BigRed/sprinkles/20.etatunnel_open.dmm
+++ b/maps/map_files/BigRed/sprinkles/20.etatunnel_open.dmm
@@ -374,7 +374,7 @@
/area/bigredv2/outside/lz2_south_cas)
"Jy" = (
/obj/structure/surface/table/reinforced/prison,
-/obj/item/weapon/gun/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
/obj/item/device/flashlight/lamp/on{
pixel_x = -5;
pixel_y = 17
diff --git a/maps/map_files/CORSAT/Corsat.dmm b/maps/map_files/CORSAT/Corsat.dmm
index a87db5ef1e..a0a3bb64d9 100644
--- a/maps/map_files/CORSAT/Corsat.dmm
+++ b/maps/map_files/CORSAT/Corsat.dmm
@@ -371,12 +371,12 @@
/area/corsat/gamma/hangar)
"abn" = (
/obj/structure/surface/rack,
-/obj/item/weapon/gun/pistol/mod88,
-/obj/item/weapon/gun/pistol/mod88,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
+/obj/item/weapon/gun/pistol/vp70,
+/obj/item/weapon/gun/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
/turf/open/floor/corsat{
dir = 9;
icon_state = "red"
@@ -1005,12 +1005,12 @@
/area/corsat/gamma/hangar/checkpoint)
"adc" = (
/obj/structure/surface/rack,
-/obj/item/weapon/gun/pistol/mod88,
-/obj/item/weapon/gun/pistol/mod88,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
+/obj/item/weapon/gun/pistol/vp70,
+/obj/item/weapon/gun/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
/turf/open/floor/corsat{
dir = 1;
icon_state = "red"
@@ -9023,9 +9023,9 @@
/obj/structure/closet/secure_closet/security_empty,
/obj/item/storage/belt/security/MP/full,
/obj/item/clothing/accessory/storage/holster/armpit,
-/obj/item/weapon/gun/pistol/mod88,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
+/obj/item/weapon/gun/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
/obj/item/storage/pouch/general/medium,
/obj/item/storage/pouch/pistol,
/turf/open/floor/corsat{
@@ -11307,16 +11307,16 @@
/turf/open/floor/wood,
/area/corsat/gamma/residential/researcher)
"aGc" = (
-/obj/item/weapon/gun/pistol/mod88,
-/obj/item/weapon/gun/pistol/mod88,
-/obj/item/weapon/gun/pistol/mod88,
+/obj/item/weapon/gun/pistol/vp70,
+/obj/item/weapon/gun/pistol/vp70,
+/obj/item/weapon/gun/pistol/vp70,
/obj/structure/surface/rack,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
/turf/open/floor/corsat{
dir = 9;
icon_state = "red"
@@ -13781,9 +13781,9 @@
/obj/structure/closet/secure_closet/security_empty,
/obj/item/storage/belt/security/MP/full,
/obj/item/clothing/accessory/storage/holster/armpit,
-/obj/item/weapon/gun/pistol/mod88,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
+/obj/item/weapon/gun/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
/obj/item/storage/pouch/general/medium,
/obj/item/storage/pouch/pistol,
/turf/open/floor/corsat{
@@ -19090,9 +19090,9 @@
/obj/structure/closet/secure_closet/security_empty,
/obj/item/storage/belt/security/MP/full,
/obj/item/clothing/accessory/storage/holster/armpit,
-/obj/item/weapon/gun/pistol/mod88,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
+/obj/item/weapon/gun/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
/obj/item/storage/pouch/general/medium,
/obj/item/storage/pouch/pistol,
/turf/open/floor/corsat{
@@ -19111,9 +19111,9 @@
/obj/structure/closet/secure_closet/security_empty,
/obj/item/storage/belt/security/MP/full,
/obj/item/clothing/accessory/storage/holster/armpit,
-/obj/item/weapon/gun/pistol/mod88,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
+/obj/item/weapon/gun/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
/obj/item/storage/pouch/general/medium,
/obj/item/storage/pouch/pistol,
/turf/open/floor/corsat{
@@ -28907,9 +28907,9 @@
"bDd" = (
/obj/item/storage/belt/security/MP/full,
/obj/item/clothing/accessory/storage/holster/armpit,
-/obj/item/weapon/gun/pistol/mod88,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
+/obj/item/weapon/gun/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
/obj/item/storage/pouch/general/medium,
/obj/item/storage/pouch/pistol,
/obj/structure/closet/secure_closet/security,
@@ -28944,9 +28944,9 @@
"bDk" = (
/obj/item/storage/belt/security/MP/full,
/obj/item/clothing/accessory/storage/holster/armpit,
-/obj/item/weapon/gun/pistol/mod88,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
+/obj/item/weapon/gun/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
/obj/item/storage/pouch/general/medium,
/obj/item/storage/pouch/pistol,
/obj/structure/closet/secure_closet/security,
@@ -41809,7 +41809,7 @@
/area/corsat/sigma/southeast/datalab)
"gys" = (
/obj/structure/surface/rack,
-/obj/item/weapon/gun/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
/turf/open/floor/corsat{
icon_state = "red"
},
@@ -43618,9 +43618,9 @@
/obj/structure/closet/secure_closet/security_empty,
/obj/item/storage/belt/security/MP/full,
/obj/item/clothing/accessory/storage/holster/armpit,
-/obj/item/weapon/gun/pistol/mod88,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
+/obj/item/weapon/gun/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
/obj/item/storage/pouch/general/medium,
/obj/item/storage/pouch/pistol,
/turf/open/floor/corsat{
@@ -56944,10 +56944,10 @@
/area/corsat/sigma/hangar/security)
"rRh" = (
/obj/structure/surface/rack,
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor/corsat{
dir = 6;
icon_state = "red"
@@ -58917,9 +58917,9 @@
/obj/structure/closet/secure_closet/security_empty,
/obj/item/storage/belt/security/MP/full,
/obj/item/clothing/accessory/storage/holster/armpit,
-/obj/item/weapon/gun/pistol/mod88,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
+/obj/item/weapon/gun/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
/obj/item/storage/pouch/general/medium,
/obj/item/storage/pouch/pistol,
/turf/open/floor/corsat{
@@ -59390,7 +59390,7 @@
/area/corsat/gamma/hallwaysouth)
"tFs" = (
/obj/structure/surface/table/almayer,
-/obj/item/weapon/gun/pistol/mod88,
+/obj/item/weapon/gun/pistol/vp70,
/turf/open/floor/corsat{
dir = 8;
icon_state = "red"
diff --git a/maps/map_files/DesertDam/Desert_Dam.dmm b/maps/map_files/DesertDam/Desert_Dam.dmm
index 6325533e9b..cc04cfc015 100644
--- a/maps/map_files/DesertDam/Desert_Dam.dmm
+++ b/maps/map_files/DesertDam/Desert_Dam.dmm
@@ -4609,14 +4609,14 @@
/area/desert_dam/interior/lab_northeast/east_lab_security_armory)
"anS" = (
/obj/structure/surface/table/reinforced,
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor/prison{
icon_state = "darkredfull2"
},
/area/desert_dam/interior/lab_northeast/east_lab_security_armory)
"anT" = (
/obj/structure/surface/rack,
-/obj/item/weapon/gun/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
/turf/open/floor/prison{
icon_state = "darkredfull2"
},
@@ -19966,7 +19966,7 @@
/turf/open/asphalt,
/area/desert_dam/exterior/valley/valley_wilderness)
"bkG" = (
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/ammo_magazine/revolver/spearhead,
/obj/structure/surface/table/woodentable/fancy,
/turf/open/floor/interior/wood/alt,
/area/desert_dam/building/security/marshals_office)
@@ -31817,13 +31817,13 @@
/area/desert_dam/building/security/armory)
"bYq" = (
/obj/structure/surface/rack,
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb{
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead{
pixel_x = 6;
pixel_y = -4
},
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb{
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead{
pixel_x = 6;
pixel_y = -4
},
@@ -43409,7 +43409,7 @@
/area/desert_dam/building/security/armory)
"cJv" = (
/obj/structure/surface/rack,
-/obj/item/weapon/gun/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
/turf/open/floor/prison{
icon_state = "darkredfull2"
},
diff --git a/maps/map_files/FOP_v3_Sciannex/sprinkles/15.wardenofficedecorated.dmm b/maps/map_files/FOP_v3_Sciannex/sprinkles/15.wardenofficedecorated.dmm
index fa4a9b8b7b..eb34c85224 100644
--- a/maps/map_files/FOP_v3_Sciannex/sprinkles/15.wardenofficedecorated.dmm
+++ b/maps/map_files/FOP_v3_Sciannex/sprinkles/15.wardenofficedecorated.dmm
@@ -112,7 +112,7 @@
pixel_y = 21
},
/obj/structure/surface/table/woodentable/fancy,
-/obj/item/weapon/gun/pistol/highpower/tactical,
+/obj/item/weapon/gun/pistol/highpower/automag/tactical,
/turf/open/floor/plating,
/area/template_noop)
"W" = (
diff --git a/maps/map_files/FOP_v3_Sciannex/sprinkles/20.poolparty.dmm b/maps/map_files/FOP_v3_Sciannex/sprinkles/20.poolparty.dmm
index 63fb17b8f8..5ba86e60f7 100644
--- a/maps/map_files/FOP_v3_Sciannex/sprinkles/20.poolparty.dmm
+++ b/maps/map_files/FOP_v3_Sciannex/sprinkles/20.poolparty.dmm
@@ -1357,7 +1357,7 @@
pixel_y = -2
},
/obj/item/weapon/gun/pistol/heavy,
-/obj/item/weapon/gun/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
/turf/open/floor/wood,
/area/template_noop)
"We" = (
diff --git a/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm b/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm
index e406258040..7b1a34d0ec 100644
--- a/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm
+++ b/maps/map_files/Ice_Colony_v2/Ice_Colony_v2.dmm
@@ -10309,7 +10309,7 @@
},
/area/ice_colony/surface/command/control/office)
"aDb" = (
-/obj/item/weapon/gun/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
/obj/structure/pipes/standard/simple/hidden/green,
/turf/open/floor{
icon_state = "dark2"
@@ -26765,8 +26765,8 @@
/area/ice_colony/underground/security/detective)
"bCc" = (
/obj/structure/surface/table/woodentable,
-/obj/item/weapon/gun/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor/wood,
/area/ice_colony/underground/security/marshal)
"bCd" = (
@@ -32159,8 +32159,8 @@
/area/ice_colony/underground/maintenance/security)
"bRx" = (
/obj/structure/surface/rack,
-/obj/item/weapon/gun/revolver/cmb,
-/obj/item/weapon/gun/revolver/cmb{
+/obj/item/weapon/gun/revolver/spearhead,
+/obj/item/weapon/gun/revolver/spearhead{
pixel_x = 6;
pixel_y = -4
},
@@ -32365,13 +32365,13 @@
/obj/structure/machinery/light{
dir = 8
},
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb{
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead{
pixel_x = 6;
pixel_y = -4
},
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb{
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead{
pixel_x = 6;
pixel_y = -4
},
diff --git a/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm b/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm
index 0332274d42..3b48073ec6 100644
--- a/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm
+++ b/maps/map_files/Ice_Colony_v3/Shivas_Snowball.dmm
@@ -1734,8 +1734,8 @@
/area/shiva/interior/colony/medseceng)
"ahP" = (
/obj/structure/surface/rack,
-/obj/item/weapon/gun/revolver/cmb,
-/obj/item/weapon/gun/revolver/cmb{
+/obj/item/weapon/gun/revolver/spearhead,
+/obj/item/weapon/gun/revolver/spearhead{
pixel_x = 6;
pixel_y = -4
},
@@ -1847,8 +1847,8 @@
/area/shiva/interior/aerodrome)
"aim" = (
/obj/structure/surface/rack,
-/obj/item/weapon/gun/revolver/cmb,
-/obj/item/weapon/gun/revolver/cmb{
+/obj/item/weapon/gun/revolver/spearhead,
+/obj/item/weapon/gun/revolver/spearhead{
pixel_x = 6;
pixel_y = -4
},
@@ -2383,13 +2383,13 @@
dir = 8;
pixel_y = -5
},
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb{
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead{
pixel_x = 6;
pixel_y = -4
},
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb{
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead{
pixel_x = 6;
pixel_y = -4
},
@@ -2831,8 +2831,8 @@
/area/shiva/interior/warehouse)
"anP" = (
/obj/structure/surface/table/woodentable,
-/obj/item/weapon/gun/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor/wood,
/area/shiva/interior/colony/medseceng)
"anR" = (
@@ -17922,13 +17922,13 @@
/area/shiva/interior/colony/central)
"nfg" = (
/obj/structure/surface/rack,
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb{
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead{
pixel_x = 6;
pixel_y = -4
},
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb{
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead{
pixel_x = 6;
pixel_y = -4
},
@@ -20274,7 +20274,7 @@
},
/area/shiva/interior/colony/deck)
"pME" = (
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor/shiva{
icon_state = "floor3"
},
@@ -21558,7 +21558,7 @@
/area/shiva/interior/colony/s_admin)
"reV" = (
/obj/structure/surface/table,
-/obj/item/weapon/gun/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
/turf/open/floor/shiva{
dir = 8;
icon_state = "purplefull"
@@ -24239,7 +24239,7 @@
},
/area/shiva/interior/colony/research_hab)
"uee" = (
-/obj/item/weapon/gun/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
/turf/open/auto_turf/snow/layer0,
/area/shiva/exterior/cp_lz2)
"ueu" = (
@@ -24540,7 +24540,7 @@
/turf/open/auto_turf/snow/layer3,
/area/shiva/exterior/junkyard/fortbiceps)
"upp" = (
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor/shiva{
dir = 8;
icon_state = "purplefull"
diff --git a/maps/map_files/Kutjevo/Kutjevo.dmm b/maps/map_files/Kutjevo/Kutjevo.dmm
index 558f1a637d..42a46a0d9e 100644
--- a/maps/map_files/Kutjevo/Kutjevo.dmm
+++ b/maps/map_files/Kutjevo/Kutjevo.dmm
@@ -1324,7 +1324,7 @@
/area/kutjevo/interior/oob)
"bRa" = (
/obj/structure/surface/rack,
-/obj/item/weapon/gun/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
/turf/open/floor/kutjevo/colors/orange/edge{
dir = 1
},
@@ -3197,7 +3197,7 @@
/turf/open/floor/kutjevo/plate,
/area/kutjevo/interior/colony_central)
"emn" = (
-/obj/item/weapon/gun/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
/turf/open/floor/kutjevo/tan/multi_tiles,
/area/kutjevo/interior/complex/botany)
"emU" = (
@@ -5278,7 +5278,7 @@
/turf/closed/wall/kutjevo/rock,
/area/kutjevo/interior/complex/botany)
"hkY" = (
-/obj/item/weapon/gun/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
/turf/open/gm/river/desert/deep/covered,
/area/kutjevo/interior/power/comms)
"hmi" = (
@@ -6684,7 +6684,7 @@
/turf/open/auto_turf/sand/layer1,
/area/kutjevo/interior/colony_S_East)
"jtu" = (
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor/kutjevo/colors/orange,
/area/kutjevo/interior/power/comms)
"jtJ" = (
@@ -7554,7 +7554,7 @@
/obj/structure/barricade/deployable{
dir = 1
},
-/obj/item/weapon/gun/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
/turf/open/floor/kutjevo/tan,
/area/kutjevo/interior/complex/Northwest_Flight_Control)
"kIn" = (
@@ -11306,7 +11306,7 @@
/turf/open/auto_turf/sand/layer1,
/area/kutjevo/exterior/Northwest_Colony)
"pKO" = (
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor/kutjevo/tan/multi_tiles,
/area/kutjevo/interior/power/comms)
"pKP" = (
@@ -12682,7 +12682,7 @@
},
/area/kutjevo/exterior/runoff_river)
"rNG" = (
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor/kutjevo/tan,
/area/kutjevo/interior/complex/botany)
"rOd" = (
@@ -13389,7 +13389,7 @@
/turf/open/auto_turf/sand/layer2,
/area/kutjevo/interior/colony_N_East)
"sOc" = (
-/obj/item/ammo_magazine/revolver/cmb{
+/obj/item/ammo_magazine/revolver/spearhead{
pixel_x = 6;
pixel_y = -4
},
@@ -13649,7 +13649,7 @@
/turf/open/floor/kutjevo/grey/plate,
/area/kutjevo/interior/complex/botany/east_tech)
"tgl" = (
-/obj/item/weapon/gun/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
/turf/open/floor/kutjevo/tan,
/area/kutjevo/interior/complex/Northwest_Flight_Control)
"tgO" = (
@@ -13659,7 +13659,7 @@
/area/kutjevo/interior/colony_S_East)
"tgZ" = (
/obj/structure/surface/table/almayer,
-/obj/item/weapon/gun/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
/turf/open/floor/kutjevo/colors/purple,
/area/kutjevo/interior/construction)
"tha" = (
@@ -13908,7 +13908,7 @@
/turf/open/floor/kutjevo/grey/plate,
/area/kutjevo/interior/complex/botany/east_tech)
"tyW" = (
-/obj/item/weapon/gun/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
/turf/open/floor/kutjevo/tan,
/area/kutjevo/interior/complex/botany)
"tzJ" = (
@@ -13927,7 +13927,7 @@
/turf/open/floor/kutjevo/grey/plate,
/area/kutjevo/interior/construction)
"tBB" = (
-/obj/item/ammo_magazine/revolver/cmb{
+/obj/item/ammo_magazine/revolver/spearhead{
pixel_x = 7;
pixel_y = 6
},
@@ -15048,15 +15048,15 @@
/area/kutjevo/interior/complex/botany)
"vaG" = (
/obj/structure/surface/table/almayer,
-/obj/item/ammo_magazine/revolver/cmb{
+/obj/item/ammo_magazine/revolver/spearhead{
pixel_x = 7;
pixel_y = 6
},
-/obj/item/ammo_magazine/revolver/cmb{
+/obj/item/ammo_magazine/revolver/spearhead{
pixel_x = -7;
pixel_y = -6
},
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor/kutjevo/colors/purple,
/area/kutjevo/interior/construction)
"vbl" = (
@@ -15959,7 +15959,7 @@
/turf/open/gm/river/desert/shallow,
/area/kutjevo/interior/oob/dev_room)
"wpY" = (
-/obj/item/ammo_magazine/revolver/cmb{
+/obj/item/ammo_magazine/revolver/spearhead{
pixel_x = 6;
pixel_y = -4
},
@@ -16532,7 +16532,7 @@
/turf/open/floor/kutjevo/tan/multi_tiles,
/area/kutjevo/interior/complex/botany/east)
"xkE" = (
-/obj/item/ammo_magazine/revolver/cmb{
+/obj/item/ammo_magazine/revolver/spearhead{
pixel_x = 7;
pixel_y = 6
},
diff --git a/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm b/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm
index a92e396785..99c77f860a 100644
--- a/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm
+++ b/maps/map_files/LV522_Chances_Claim/LV522_Chances_Claim.dmm
@@ -3511,7 +3511,7 @@
/area/lv522/indoors/a_block/security)
"bSa" = (
/obj/effect/decal/cleanable/blood,
-/obj/item/weapon/gun/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
/obj/structure/pipes/standard/simple/hidden/green{
dir = 4
},
@@ -3542,7 +3542,7 @@
},
/obj/effect/decal/cleanable/blood/gibs,
/obj/effect/decal/cleanable/blood,
-/obj/item/weapon/gun/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
/turf/open/floor/shiva{
icon_state = "radiator_tile2"
},
@@ -4306,7 +4306,7 @@
/turf/open/auto_turf/shale/layer1,
/area/lv522/outdoors/w_rockies)
"ckT" = (
-/obj/item/weapon/gun/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
/obj/structure/pipes/standard/simple/hidden/green{
dir = 6
},
@@ -22691,8 +22691,8 @@
"jmd" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/surface/rack,
-/obj/item/weapon/gun/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor/prison{
icon_state = "darkredfull2"
},
@@ -38900,7 +38900,7 @@
},
/area/lv522/landing_zone_1)
"pni" = (
-/obj/item/weapon/gun/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
/turf/open/floor/prison,
/area/lv522/indoors/a_block/kitchen/glass)
"pnj" = (
@@ -43194,7 +43194,7 @@
},
/area/lv522/atmos/command_centre)
"qPu" = (
-/obj/item/weapon/gun/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
/obj/item/clothing/head/soft/sec,
/obj/structure/curtain/medical,
/turf/open/floor/strata{
@@ -60611,8 +60611,8 @@
/area/lv522/indoors/c_block/mining)
"xbj" = (
/obj/structure/surface/rack,
-/obj/item/weapon/gun/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/prison{
icon_state = "darkredfull2"
diff --git a/maps/map_files/LV624/LV624.dmm b/maps/map_files/LV624/LV624.dmm
index c9c82635d8..d512590d7d 100644
--- a/maps/map_files/LV624/LV624.dmm
+++ b/maps/map_files/LV624/LV624.dmm
@@ -8865,10 +8865,10 @@
dir = 4
},
/obj/structure/surface/table,
-/obj/item/weapon/gun/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor{
dir = 5;
icon_state = "red"
@@ -8880,10 +8880,10 @@
},
/obj/structure/surface/table,
/obj/item/clothing/ears/earmuffs,
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/weapon/gun/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/weapon/gun/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor{
dir = 9;
icon_state = "red"
diff --git a/maps/map_files/LV624/armory/10.cheese.dmm b/maps/map_files/LV624/armory/10.cheese.dmm
index 96b4ef5942..347e392787 100644
--- a/maps/map_files/LV624/armory/10.cheese.dmm
+++ b/maps/map_files/LV624/armory/10.cheese.dmm
@@ -159,10 +159,10 @@
dir = 4
},
/obj/structure/surface/table,
-/obj/item/weapon/gun/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor{
dir = 5;
icon_state = "red"
diff --git a/maps/map_files/LV624/armory/10.extra.dmm b/maps/map_files/LV624/armory/10.extra.dmm
index cf1aaaa538..53a94ef204 100644
--- a/maps/map_files/LV624/armory/10.extra.dmm
+++ b/maps/map_files/LV624/armory/10.extra.dmm
@@ -164,10 +164,10 @@
dir = 4
},
/obj/structure/surface/table,
-/obj/item/weapon/gun/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor{
dir = 5;
icon_state = "red"
diff --git a/maps/map_files/LV624/armory/10.looted.dmm b/maps/map_files/LV624/armory/10.looted.dmm
index cf2d4a9e02..ae5bbef21b 100644
--- a/maps/map_files/LV624/armory/10.looted.dmm
+++ b/maps/map_files/LV624/armory/10.looted.dmm
@@ -137,10 +137,10 @@
dir = 4
},
/obj/structure/surface/table,
-/obj/item/weapon/gun/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor{
dir = 5;
icon_state = "red"
diff --git a/maps/map_files/LV624_Fixed/LV624_repaired.dmm b/maps/map_files/LV624_Fixed/LV624_repaired.dmm
index 0054709887..5334b7a123 100644
--- a/maps/map_files/LV624_Fixed/LV624_repaired.dmm
+++ b/maps/map_files/LV624_Fixed/LV624_repaired.dmm
@@ -14919,7 +14919,7 @@
/area/lv624/lazarus/landing_zones/lz1)
"qwG" = (
/obj/structure/surface/rack,
-/obj/item/storage/box/clf,
+/obj/item/storage/box/loadout/clf,
/turf/open/shuttle{
icon_state = "floor4"
},
@@ -17585,10 +17585,10 @@
dir = 4
},
/obj/structure/surface/table,
-/obj/item/weapon/gun/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor{
dir = 5;
icon_state = "red"
@@ -19048,10 +19048,10 @@
},
/obj/structure/surface/table,
/obj/item/clothing/ears/earmuffs,
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/weapon/gun/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/weapon/gun/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor{
dir = 9;
icon_state = "red"
diff --git a/maps/map_files/New_Varadero/New_Varadero.dmm b/maps/map_files/New_Varadero/New_Varadero.dmm
index be2e218d2f..0b29155026 100644
--- a/maps/map_files/New_Varadero/New_Varadero.dmm
+++ b/maps/map_files/New_Varadero/New_Varadero.dmm
@@ -1381,7 +1381,7 @@
dir = 1;
pixel_y = 17
},
-/obj/item/weapon/gun/revolver/cmb{
+/obj/item/weapon/gun/revolver/spearhead{
pixel_y = 2
},
/obj/item/clothing/ears/earmuffs{
@@ -3754,8 +3754,8 @@
/area/varadero/interior/hall_SE)
"cur" = (
/obj/structure/surface/rack,
-/obj/item/weapon/gun/pistol/mod88,
-/obj/item/weapon/gun/pistol/mod88{
+/obj/item/weapon/gun/pistol/vp70,
+/obj/item/weapon/gun/pistol/vp70{
pixel_y = -2
},
/obj/structure/machinery/storm_siren{
@@ -4748,7 +4748,7 @@
},
/area/varadero/interior/hall_NW)
"dcM" = (
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/auto_turf/sand_white/layer1,
/area/varadero/interior/caves/north_research)
"dda" = (
@@ -14358,7 +14358,7 @@
},
/area/varadero/interior/records)
"jvF" = (
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor/shiva{
icon_state = "multi_tiles"
},
@@ -14369,7 +14369,7 @@
/turf/open/auto_turf/sand_white/layer1,
/area/varadero/interior_protected/caves/digsite)
"jwy" = (
-/obj/item/weapon/gun/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
/turf/open/floor/shiva{
icon_state = "purple"
},
@@ -24832,16 +24832,16 @@
/area/varadero/interior/hall_SE)
"qfb" = (
/obj/structure/closet/crate/ammo/alt,
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb{
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead{
pixel_x = -4;
pixel_y = -5
},
-/obj/item/ammo_magazine/revolver/cmb{
+/obj/item/ammo_magazine/revolver/spearhead{
pixel_x = -4;
pixel_y = -5
},
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor/shiva{
icon_state = "floor3"
},
@@ -26627,7 +26627,7 @@
/obj/structure/machinery/light{
dir = 1
},
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor/shiva{
icon_state = "purple"
},
@@ -28679,15 +28679,15 @@
/area/varadero/interior/maintenance/security)
"syb" = (
/obj/structure/surface/rack,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
/obj/structure/machinery/light{
dir = 4
},
@@ -32044,7 +32044,7 @@
icon_state = "cartridge_1_1"
},
/obj/effect/decal/cleanable/blood,
-/obj/item/weapon/gun/pistol/mod88,
+/obj/item/weapon/gun/pistol/vp70,
/turf/open/floor/plating/icefloor{
icon_state = "asteroidplating"
},
@@ -37068,8 +37068,8 @@
/area/varadero/interior/electrical)
"xRx" = (
/obj/structure/surface/table/woodentable,
-/obj/item/weapon/gun/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor/wood,
/area/varadero/interior/security)
"xRF" = (
diff --git a/maps/map_files/New_Varadero_Fixed/New_Varadero_Repaired.dmm b/maps/map_files/New_Varadero_Fixed/New_Varadero_Repaired.dmm
index 1413a053bc..7a81776beb 100644
--- a/maps/map_files/New_Varadero_Fixed/New_Varadero_Repaired.dmm
+++ b/maps/map_files/New_Varadero_Fixed/New_Varadero_Repaired.dmm
@@ -1273,7 +1273,7 @@
dir = 1;
pixel_y = 17
},
-/obj/item/weapon/gun/revolver/cmb{
+/obj/item/weapon/gun/revolver/spearhead{
pixel_y = 2
},
/obj/item/clothing/ears/earmuffs{
@@ -3523,8 +3523,8 @@
/area/varadero/interior/hall_SE)
"cur" = (
/obj/structure/surface/rack,
-/obj/item/weapon/gun/pistol/mod88,
-/obj/item/weapon/gun/pistol/mod88{
+/obj/item/weapon/gun/pistol/vp70,
+/obj/item/weapon/gun/pistol/vp70{
pixel_y = -2
},
/obj/structure/machinery/storm_siren{
@@ -23255,16 +23255,16 @@
/area/varadero/interior/bunks)
"qfb" = (
/obj/structure/closet/crate/ammo/alt,
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb{
+/obj/item/ammo_magazine/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead{
pixel_x = -4;
pixel_y = -5
},
-/obj/item/ammo_magazine/revolver/cmb{
+/obj/item/ammo_magazine/revolver/spearhead{
pixel_x = -4;
pixel_y = -5
},
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor/shiva{
icon_state = "floor3"
},
@@ -26894,15 +26894,15 @@
/area/varadero/interior/maintenance/security)
"syb" = (
/obj/structure/surface/rack,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
/obj/structure/machinery/light{
dir = 4
},
@@ -30093,7 +30093,7 @@
},
/area/varadero/interior/technical_storage)
"uMQ" = (
-/obj/item/weapon/gun/pistol/mod88,
+/obj/item/weapon/gun/pistol/vp70,
/turf/open/floor/plating/icefloor{
icon_state = "asteroidplating"
},
@@ -34783,8 +34783,8 @@
/area/varadero/interior/electrical)
"xRx" = (
/obj/structure/surface/table/woodentable,
-/obj/item/weapon/gun/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/weapon/gun/revolver/spearhead,
+/obj/item/ammo_magazine/revolver/spearhead,
/turf/open/floor/wood,
/area/varadero/interior/security)
"xRF" = (
diff --git a/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm b/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm
index 9cc753e4bd..421df0856e 100644
--- a/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm
+++ b/maps/map_files/Sorokyne_Strata/Sorokyne_Strata.dmm
@@ -2191,13 +2191,10 @@
/area/strata/ag/interior/dorms/hive)
"agD" = (
/obj/effect/decal/cleanable/blood,
-/obj/item/ammo_magazine/revolver/cmb{
- pixel_x = 6;
- pixel_y = -4
- },
/obj/structure/pipes/standard/simple/hidden/cyan{
dir = 4
},
+/obj/item/ammo_magazine/revolver/upp,
/turf/open/floor/strata{
icon_state = "multi_tiles"
},
@@ -2238,11 +2235,8 @@
/area/strata/ag/exterior/paths/cabin_area)
"agI" = (
/obj/structure/bed/nest,
-/obj/item/weapon/gun/revolver/cmb{
- pixel_x = 6;
- pixel_y = -4
- },
/obj/effect/decal/cleanable/blood/gibs/core,
+/obj/item/weapon/gun/revolver/upp,
/turf/open/floor/strata{
icon_state = "multi_tiles"
},
@@ -2447,12 +2441,9 @@
/area/strata/ag/interior/dorms/hive)
"aht" = (
/obj/structure/bed/nest,
-/obj/item/ammo_magazine/revolver/cmb{
- pixel_x = 6;
- pixel_y = -4
- },
/obj/effect/decal/cleanable/blood/gibs/core,
/obj/effect/landmark/corpsespawner/russian,
+/obj/item/ammo_magazine/revolver/upp,
/turf/open/floor/strata{
icon_state = "multi_tiles"
},
@@ -2824,21 +2815,15 @@
/obj/effect/decal/cleanable/blood{
icon_state = "xgib2"
},
-/obj/item/ammo_magazine/revolver/cmb{
- pixel_x = 6;
- pixel_y = -4
- },
+/obj/item/ammo_magazine/revolver/upp,
/turf/open/floor/strata{
icon_state = "multi_tiles"
},
/area/strata/ag/interior/dorms/hive)
"aiC" = (
/obj/effect/landmark/structure_spawner/setup/distress/xeno_weed_node,
-/obj/item/ammo_magazine/revolver/cmb{
- pixel_x = 6;
- pixel_y = -4
- },
/obj/structure/pipes/standard/simple/hidden/cyan,
+/obj/item/ammo_magazine/revolver/upp,
/turf/open/floor/strata{
icon_state = "multi_tiles"
},
@@ -3043,13 +3028,10 @@
},
/area/strata/ag/interior/dorms/hive)
"ajk" = (
-/obj/item/weapon/gun/revolver/cmb{
- pixel_x = 6;
- pixel_y = -4
- },
/obj/structure/pipes/standard/manifold/hidden/cyan{
dir = 4
},
+/obj/item/weapon/gun/revolver/upp,
/turf/open/floor/strata{
icon_state = "multi_tiles"
},
@@ -3062,7 +3044,6 @@
/obj/effect/decal/strata_decals/catwalk/prison,
/obj/structure/largecrate/random,
/obj/item/storage/backpack/lightpack,
-/obj/item/storage/belt/shotgun,
/turf/open/floor/greengrid,
/area/strata/ag/interior/dorms/hive)
"ajn" = (
@@ -3419,17 +3400,15 @@
/area/strata/ug/interior/jungle/deep/structures/res)
"ako" = (
/obj/structure/surface/table/reinforced/prison,
-/obj/item/ammo_magazine/shotgun/buckshot{
- pixel_x = 6;
- pixel_y = -4
- },
+/obj/item/ammo_magazine/handful/shotgun/heavy/buckshot,
+/obj/item/ammo_magazine/handful/shotgun/heavy/buckshot,
/turf/open/floor/strata{
icon_state = "red1"
},
/area/strata/ag/interior/dorms/flight_control)
"akq" = (
/obj/structure/surface/table/reinforced/prison,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
icon_state = "red1"
},
@@ -3645,7 +3624,7 @@
"akY" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/reagent_container/food/snacks/cubancarp,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
dir = 4;
icon_state = "cyan1"
@@ -3654,7 +3633,7 @@
"ala" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/reagent_container/food/snacks/fishfingers,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
dir = 4;
icon_state = "cyan1"
@@ -4342,15 +4321,11 @@
/area/strata/ag/interior/dorms/canteen)
"anr" = (
/obj/structure/surface/rack,
-/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb,
-/obj/item/ammo_magazine/shotgun/slugs{
- pixel_x = 6;
- pixel_y = -4
- },
-/obj/item/ammo_magazine/shotgun/buckshot{
- pixel_x = 6;
- pixel_y = -4
- },
+/obj/item/ammo_magazine/handful/shotgun/heavy/buckshot,
+/obj/item/ammo_magazine/handful/shotgun/heavy/buckshot,
+/obj/item/ammo_magazine/handful/shotgun/heavy/slug,
+/obj/item/ammo_magazine/handful/shotgun/heavy/slug,
+/obj/item/weapon/gun/shotgun/type23/riot,
/turf/open/floor/strata{
icon_state = "red1"
},
@@ -4901,7 +4876,7 @@
/obj/structure/surface/rack,
/obj/item/storage/box/m94,
/obj/item/storage/box/m94,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
icon_state = "floor3"
},
@@ -5215,7 +5190,7 @@
/obj/structure/surface/rack,
/obj/item/storage/box/cups,
/obj/item/storage/box/cups,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
icon_state = "floor3"
},
@@ -5404,7 +5379,7 @@
},
/area/strata/ug/interior/jungle/deep/structures/res)
"arb" = (
-/obj/item/storage/belt/security,
+/obj/item/storage/belt/security/MP/UPP,
/turf/open/floor/strata{
icon_state = "floor2"
},
@@ -5496,7 +5471,7 @@
/obj/item/storage/box/donkpockets,
/obj/item/storage/box/donkpockets,
/obj/item/storage/box/donkpockets,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
icon_state = "floor3"
},
@@ -5507,7 +5482,7 @@
/obj/item/storage/box/handcuffs,
/obj/item/storage/box/holobadge,
/obj/item/storage/box/evidence,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
icon_state = "floor3"
},
@@ -5517,7 +5492,7 @@
/obj/item/storage/box/lightstick/red,
/obj/item/storage/box/lightstick/red,
/obj/item/storage/box/lightstick/red,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
icon_state = "floor3"
},
@@ -5847,7 +5822,7 @@
/obj/item/storage/box/donkpockets,
/obj/item/storage/box/donkpockets,
/obj/item/storage/box/donkpockets,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
icon_state = "floor3"
},
@@ -5880,7 +5855,7 @@
/obj/structure/pipes/standard/simple/hidden/cyan{
dir = 4
},
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
icon_state = "floor3"
},
@@ -6251,7 +6226,6 @@
/obj/item/clothing/suit/storage/hazardvest,
/obj/item/clothing/suit/storage/hazardvest,
/obj/structure/surface/rack,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
/turf/open/floor/strata,
/area/strata/ag/interior/dorms)
"atz" = (
@@ -7019,7 +6993,7 @@
/area/strata/ag/interior/outpost/engi)
"avX" = (
/obj/structure/surface/table/reinforced/prison,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
dir = 10;
icon_state = "multi_tiles"
@@ -8526,13 +8500,6 @@
/obj/structure/pipes/standard/simple/hidden/cyan,
/turf/open/floor/strata,
/area/strata/ag/interior/outpost/canteen/lower_cafeteria)
-"aAM" = (
-/obj/structure/machinery/cm_vending/sorted/marine_food,
-/turf/open/floor/strata{
- dir = 10;
- icon_state = "multi_tiles"
- },
-/area/strata/ag/interior/outpost/canteen)
"aAO" = (
/obj/effect/decal/cleanable/blood{
layer = 3
@@ -8754,7 +8721,7 @@
/obj/effect/decal/strata_decals/catwalk/prison,
/obj/item/prop/almayer/box,
/obj/item/coin/marine/engineer,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/greengrid,
/area/strata/ag/interior/dorms)
"aBw" = (
@@ -10178,10 +10145,10 @@
/area/strata/ag/interior/dorms)
"aFR" = (
/obj/effect/decal/cleanable/blood,
-/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb,
/obj/structure/pipes/standard/simple/hidden/cyan{
dir = 4
},
+/obj/item/weapon/gun/shotgun/type23/riot,
/turf/open/floor/strata{
icon_state = "white_cyan1"
},
@@ -10925,13 +10892,11 @@
},
/area/strata/ag/interior/dorms)
"aIm" = (
-/obj/item/ammo_magazine/shotgun/buckshot{
- pixel_x = 6;
- pixel_y = -4
- },
/obj/effect/decal/strata_decals/grime/grime4{
dir = 8
},
+/obj/item/ammo_magazine/handful/shotgun/heavy/buckshot,
+/obj/item/ammo_magazine/handful/shotgun/heavy/buckshot,
/turf/open/floor/strata{
icon_state = "white_cyan1"
},
@@ -13024,7 +12989,7 @@
"aPy" = (
/obj/structure/closet/bombcloset,
/obj/item/clothing/suit/armor/bulletproof,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
dir = 10;
icon_state = "multi_tiles"
@@ -13557,7 +13522,6 @@
"aQZ" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/storage/box/pizza,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
/turf/open/floor/strata{
icon_state = "fake_wood"
},
@@ -13583,7 +13547,6 @@
/obj/structure/surface/table/reinforced/prison,
/obj/item/tool/crowbar,
/obj/effect/spawner/random/toolbox,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
/turf/open/floor/strata,
/area/strata/ag/interior/outpost/engi)
"aRd" = (
@@ -15462,7 +15425,7 @@
/turf/closed/wall/strata_outpost/reinforced,
/area/strata/ug/interior/jungle/deep/structures/res)
"aYA" = (
-/obj/structure/machinery/vending/security,
+/obj/structure/machinery/vending/security/upp,
/turf/open/floor/strata{
dir = 10;
icon_state = "multi_tiles"
@@ -17814,14 +17777,6 @@
},
/turf/open/auto_turf/snow/brown_base/layer1,
/area/strata/ag/exterior/marsh/river)
-"bgR" = (
-/obj/structure/surface/rack,
-/obj/item/tool/shovel/snow,
-/obj/item/device/flashlight/flare,
-/obj/item/device/flashlight,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
-/turf/open/auto_turf/snow/brown_base/layer1,
-/area/strata/ag/exterior/marsh/river)
"bgS" = (
/turf/open/auto_turf/snow/brown_base/layer1,
/area/strata/ag/exterior/marsh/crash)
@@ -18061,19 +18016,6 @@
},
/turf/open/gm/river,
/area/strata/ag/exterior/marsh/river)
-"bhL" = (
-/obj/item/clothing/shoes/snow,
-/obj/structure/surface/rack,
-/obj/item/clothing/shoes/snow,
-/obj/item/clothing/suit/storage/snow_suit,
-/obj/item/clothing/suit/storage/snow_suit,
-/obj/item/tank/emergency_oxygen/engi,
-/obj/effect/decal/strata_decals/grime/grime3{
- dir = 8
- },
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
-/turf/open/auto_turf/snow/brown_base/layer1,
-/area/strata/ag/exterior/marsh/river)
"bhM" = (
/obj/structure/surface/rack,
/obj/item/tool/shovel/snow,
@@ -19712,7 +19654,7 @@
/area/strata/ag/interior/administration)
"bot" = (
/obj/structure/surface/table/reinforced/prison,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
icon_state = "blue1"
},
@@ -19775,7 +19717,6 @@
/obj/structure/machinery/camera/autoname{
dir = 8
},
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
/turf/open/floor/strata{
icon_state = "blue1"
},
@@ -20102,7 +20043,6 @@
/obj/structure/surface/rack,
/obj/item/tank/emergency_oxygen/engi,
/obj/item/tank/emergency_oxygen/engi,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
/turf/open/floor/strata{
dir = 10;
icon_state = "multi_tiles"
@@ -21015,7 +20955,7 @@
/turf/open/auto_turf/snow/brown_base/layer1,
/area/strata/ag/exterior/paths/southresearch)
"bth" = (
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/auto_turf/snow/brown_base/layer4,
/area/strata/ag/exterior/paths/southresearch)
"bti" = (
@@ -21191,7 +21131,6 @@
/obj/structure/machinery/light/small{
dir = 8
},
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
/turf/open/floor/strata,
/area/strata/ag/interior/disposals)
"btW" = (
@@ -21204,7 +21143,6 @@
/obj/structure/machinery/light/small{
dir = 4
},
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
/turf/open/floor/strata,
/area/strata/ag/interior/disposals)
"btX" = (
@@ -21966,7 +21904,6 @@
"bxb" = (
/obj/structure/surface/rack,
/obj/item/storage/belt/utility/full,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
/turf/open/floor/strata,
/area/strata/ag/interior/disposals)
"bxc" = (
@@ -22648,7 +22585,6 @@
"bAw" = (
/obj/structure/surface/rack,
/obj/item/storage/briefcase,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
/turf/open/floor/strata,
/area/strata/ag/interior/disposals)
"bAx" = (
@@ -22667,6 +22603,7 @@
/obj/structure/machinery/camera/autoname{
dir = 8
},
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata,
/area/strata/ag/interior/disposals)
"bAB" = (
@@ -23219,12 +23156,12 @@
/area/strata/ag/interior/disposals)
"bEY" = (
/obj/structure/surface/rack,
-/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb,
/obj/effect/landmark/good_item,
/obj/structure/surface/rack,
/obj/structure/machinery/light/small{
dir = 4
},
+/obj/item/weapon/gun/shotgun/type23,
/turf/open/floor/strata,
/area/strata/ag/interior/disposals)
"bFf" = (
@@ -23474,7 +23411,6 @@
/area/strata/ag/interior/outpost/med)
"bHr" = (
/obj/structure/surface/table/reinforced/prison,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
/turf/open/floor/strata{
icon_state = "floor2"
},
@@ -24150,7 +24086,7 @@
"bMZ" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/reagent_container/food/snacks/meatballsoup,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
dir = 4;
icon_state = "cyan1"
@@ -24305,7 +24241,7 @@
pixel_x = 8;
pixel_y = 6
},
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
icon_state = "blue1"
},
@@ -24963,15 +24899,11 @@
/obj/structure/machinery/light/small{
dir = 8
},
-/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb,
-/obj/item/ammo_magazine/shotgun/slugs{
- pixel_x = 6;
- pixel_y = -4
- },
-/obj/item/ammo_magazine/shotgun/buckshot{
- pixel_x = 6;
- pixel_y = -4
- },
+/obj/item/ammo_magazine/handful/shotgun/heavy/buckshot,
+/obj/item/ammo_magazine/handful/shotgun/heavy/buckshot,
+/obj/item/ammo_magazine/handful/shotgun/heavy/slug,
+/obj/item/ammo_magazine/handful/shotgun/heavy/slug,
+/obj/item/weapon/gun/shotgun/type23/riot,
/turf/open/floor/strata{
icon_state = "red1"
},
@@ -24994,7 +24926,7 @@
/obj/structure/surface/rack,
/obj/item/storage/firstaid/adv,
/obj/item/reagent_container/spray/pepper,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
icon_state = "red1"
},
@@ -25093,7 +25025,7 @@
"bVL" = (
/obj/structure/surface/rack,
/obj/item/storage/box/condimentbottles,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
icon_state = "floor3"
},
@@ -25169,7 +25101,6 @@
/area/strata/ug/interior/jungle/deep/minehead)
"bWi" = (
/obj/structure/largecrate/random,
-/obj/item/storage/belt/shotgun,
/obj/item/storage/backpack/lightpack,
/turf/open/floor/strata{
icon_state = "orange_cover"
@@ -25192,7 +25123,7 @@
/obj/item/storage/box/lightstick,
/obj/item/storage/box/lightstick,
/obj/item/storage/box/lightstick,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
icon_state = "floor3"
},
@@ -26419,7 +26350,7 @@
/area/strata/ag/interior/administration)
"cfX" = (
/obj/structure/largecrate/random,
-/obj/item/storage/belt/grenade/large/full,
+/obj/item/storage/belt/marine/upp/sapper,
/turf/open/asphalt/cement,
/area/strata/ag/exterior/research_decks)
"cfY" = (
@@ -27742,21 +27673,15 @@
},
/area/strata/ag/interior/nearlz1)
"coY" = (
-/obj/item/ammo_magazine/revolver/cmb{
- pixel_x = 6;
- pixel_y = -4
- },
+/obj/item/ammo_magazine/revolver/upp,
/turf/open/floor/strata{
icon_state = "multi_tiles"
},
/area/strata/ag/interior/dorms/hive)
"coZ" = (
/obj/effect/decal/cleanable/blood,
-/obj/item/ammo_magazine/revolver/cmb{
- pixel_x = 6;
- pixel_y = -4
- },
/obj/structure/pipes/standard/simple/hidden/cyan,
+/obj/item/ammo_magazine/revolver/upp,
/turf/open/floor/strata{
icon_state = "multi_tiles"
},
@@ -29320,7 +29245,7 @@
/turf/closed/wall/strata_ice/jungle,
/area/strata/ug/interior/jungle/deep/tearlake)
"dMw" = (
-/obj/structure/cargo_container/wy/left,
+/obj/structure/cargo_container/ferret/left,
/turf/open/auto_turf/ice/layer1,
/area/strata/ag/exterior/marsh)
"dNq" = (
@@ -29593,7 +29518,6 @@
/turf/closed/wall/strata_ice/jungle,
/area/strata/ug/interior/jungle/deep/south_engi)
"ekZ" = (
-/obj/item/storage/belt/knifepouch,
/obj/structure/surface/rack,
/turf/open/floor/strata{
dir = 4;
@@ -30307,7 +30231,7 @@
/obj/structure/barricade/handrail/strata{
dir = 4
},
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
dir = 4;
icon_state = "floor3"
@@ -30658,7 +30582,7 @@
"fWV" = (
/obj/structure/surface/table/reinforced/prison,
/obj/item/reagent_container/food/drinks/bottle/sake,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
icon_state = "orange_tile"
},
@@ -31384,7 +31308,7 @@
"haN" = (
/obj/structure/largecrate/random,
/obj/item/trash/pistachios,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/prison{
icon_state = "darkyellowfull2"
},
@@ -32031,7 +31955,7 @@
/area/strata/ag/interior/dorms/hive)
"ioM" = (
/obj/structure/surface/table/almayer,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata,
/area/strata/ag/interior/landingzone_checkpoint)
"ipd" = (
@@ -33135,13 +33059,13 @@
/turf/closed/wall/strata_outpost,
/area/strata/ug/interior/outpost/jung/dorms/med2)
"jXD" = (
-/obj/item/weapon/gun/revolver/cmb,
/obj/structure/surface/rack{
layer = 2.5
},
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/item/ammo_magazine/revolver/cmb,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/item/weapon/gun/revolver/upp,
+/obj/item/ammo_magazine/revolver/upp,
+/obj/item/ammo_magazine/revolver/upp,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
dir = 4;
icon_state = "floor3"
@@ -33950,7 +33874,7 @@
/turf/open/asphalt/cement,
/area/strata/ag/interior/tcomms)
"lrO" = (
-/obj/structure/cargo_container/wy/mid,
+/obj/structure/cargo_container/ferret/mid,
/turf/open/auto_turf/ice/layer0,
/area/strata/ag/exterior/marsh)
"lsz" = (
@@ -34181,29 +34105,18 @@
/area/strata/ug/interior/jungle/deep/structures/engi)
"lNr" = (
/obj/structure/surface/rack,
-/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb,
-/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb,
-/obj/item/weapon/gun/shotgun/pump/dual_tube/cmb{
- pixel_x = 6;
- pixel_y = -4
- },
-/obj/item/ammo_magazine/shotgun/buckshot{
- pixel_x = 6;
- pixel_y = -4
- },
-/obj/item/ammo_magazine/shotgun/buckshot{
- pixel_x = 6;
- pixel_y = -4
- },
-/obj/item/ammo_magazine/shotgun/buckshot{
- pixel_x = 6;
- pixel_y = -4
- },
-/obj/item/ammo_magazine/shotgun/buckshot{
- pixel_x = 6;
- pixel_y = -4
- },
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/item/ammo_magazine/handful/shotgun/heavy/buckshot,
+/obj/item/ammo_magazine/handful/shotgun/heavy/buckshot,
+/obj/item/ammo_magazine/handful/shotgun/heavy/buckshot,
+/obj/item/ammo_magazine/handful/shotgun/heavy/buckshot,
+/obj/item/ammo_magazine/handful/shotgun/heavy/buckshot,
+/obj/item/ammo_magazine/handful/shotgun/heavy/buckshot,
+/obj/item/ammo_magazine/handful/shotgun/heavy/buckshot,
+/obj/item/ammo_magazine/handful/shotgun/heavy/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
+/obj/item/weapon/gun/shotgun/type23/riot,
+/obj/item/weapon/gun/shotgun/type23/riot,
+/obj/item/weapon/gun/shotgun/type23/riot,
/turf/open/floor/strata{
icon_state = "red1"
},
@@ -34361,10 +34274,7 @@
/obj/structure/pipes/vents/pump{
dir = 1
},
-/obj/item/ammo_magazine/revolver/cmb{
- pixel_x = 6;
- pixel_y = -4
- },
+/obj/item/ammo_magazine/revolver/upp,
/turf/open/floor/strata{
icon_state = "multi_tiles"
},
@@ -35212,7 +35122,7 @@
/obj/item/explosive/grenade/phosphorus,
/obj/item/explosive/grenade/phosphorus,
/obj/item/folder/red,
-/obj/item/ammo_box/magazine/shotgun/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
icon_state = "red1"
},
@@ -35441,7 +35351,7 @@
/turf/open/floor/strata,
/area/strata/ag/interior/outpost/engi/drome)
"nPW" = (
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
icon_state = "orange_cover"
},
@@ -35478,7 +35388,7 @@
/turf/open/auto_turf/ice/layer1,
/area/strata/ag/exterior/marsh/center)
"nSQ" = (
-/obj/structure/cargo_container/wy/right,
+/obj/structure/cargo_container/ferret/right,
/turf/open/auto_turf/ice/layer0,
/area/strata/ag/exterior/marsh)
"nST" = (
@@ -36915,7 +36825,7 @@
/turf/open/floor/strata,
/area/strata/ug/interior/outpost/jung/dorms/med2)
"qdI" = (
-/obj/item/ammo_magazine/revolver/cmb,
+/obj/item/ammo_magazine/revolver/upp,
/turf/open/auto_turf/ice/layer1,
/area/strata/ag/exterior/paths/southresearch)
"qer" = (
@@ -37042,14 +36952,6 @@
/obj/structure/sign/safety/storage,
/turf/closed/wall/strata_outpost/reinforced/hull,
/area/strata/ag/exterior/tcomms/tcomms_deck)
-"qmW" = (
-/obj/structure/largecrate/random,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
-/turf/open/floor/strata{
- dir = 4;
- icon_state = "floor3"
- },
-/area/strata/ag/exterior/research_decks)
"qns" = (
/obj/structure/machinery/light/small{
dir = 1;
@@ -37687,7 +37589,7 @@
/area/strata/ag/exterior/tcomms/tcomms_deck)
"rkb" = (
/obj/item/clothing/glasses/thermal/syndi,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
dir = 8;
icon_state = "multi_tiles"
@@ -38535,14 +38437,14 @@
/turf/open/auto_turf/strata_grass/layer1,
/area/strata/ug/interior/jungle/deep/tearlake)
"sMj" = (
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata,
/area/strata/ag/exterior/research_decks)
"sMX" = (
/obj/structure/bed/chair/dropship/passenger{
dir = 4
},
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/almayer{
icon_state = "test_floor5"
},
@@ -38834,7 +38736,7 @@
/obj/item/storage/box/beakers,
/obj/item/storage/box/gloves,
/obj/item/storage/box/pillbottles,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
icon_state = "floor3"
},
@@ -39160,7 +39062,7 @@
/obj/structure/barricade/wooden{
dir = 8
},
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/auto_turf/ice/layer1,
/area/strata/ag/exterior/paths/southresearch)
"tLI" = (
@@ -39388,7 +39290,6 @@
pixel_x = 8;
pixel_y = 6
},
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
/turf/open/floor/strata{
icon_state = "floor3"
},
@@ -39446,7 +39347,7 @@
/obj/item/tool/shovel/etool/folded,
/obj/item/weapon/gun/pistol/t73,
/obj/item/attachable/bayonet/upp,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/prison{
icon_state = "darkredfull2"
},
@@ -39951,7 +39852,7 @@
/obj/item/tool/shovel/etool/folded,
/obj/item/weapon/gun/pistol/t73,
/obj/item/attachable/bayonet/upp,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
icon_state = "red1"
},
@@ -40157,7 +40058,6 @@
/area/strata/ag/exterior/research_decks)
"vhv" = (
/obj/structure/surface/rack,
-/obj/item/storage/belt/knifepouch,
/turf/open/floor/strata,
/area/strata/ag/interior/outpost/engi/drome)
"vhG" = (
@@ -40221,7 +40121,7 @@
/obj/structure/machinery/light/small{
dir = 1
},
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
icon_state = "orange_cover"
},
@@ -40370,7 +40270,7 @@
/area/strata/ag/interior/outpost/med)
"vth" = (
/obj/structure/closet/lawcloset,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
dir = 4;
icon_state = "floor3"
@@ -40802,7 +40702,7 @@
},
/area/strata/ag/interior/research_decks/security)
"wgu" = (
-/obj/item/weapon/gun/revolver/cmb,
+/obj/item/weapon/gun/revolver/upp,
/turf/open/auto_turf/ice/layer1,
/area/strata/ag/exterior/paths/southresearch)
"wgB" = (
@@ -41156,7 +41056,7 @@
/obj/item/tool/stamp,
/obj/item/paper_bin,
/obj/structure/pipes/standard/manifold/hidden/cyan,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
icon_state = "red1"
},
@@ -41375,7 +41275,7 @@
/area/strata/ag/interior/outpost/med)
"xnZ" = (
/obj/structure/surface/rack,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
dir = 4;
icon_state = "floor3"
@@ -41594,7 +41494,7 @@
"xDX" = (
/obj/structure/bed/nest,
/obj/effect/decal/cleanable/blood/gibs/core,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
icon_state = "multi_tiles"
},
@@ -41817,7 +41717,7 @@
dir = 8
},
/obj/effect/decal/cleanable/blood,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/almayer{
icon_state = "test_floor5"
},
@@ -42019,7 +41919,7 @@
/obj/structure/surface/table/reinforced/prison,
/obj/item/storage/pouch/flare/full,
/obj/item/weapon/gun/pistol/t73,
-/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot,
+/obj/effect/landmark/item_pool_spawner/survivor_ammo/buckshot/upp,
/turf/open/floor/strata{
icon_state = "orange_tile"
},
@@ -43148,7 +43048,7 @@ nTS
crN
aZv
bgQ
-bhL
+bgQ
aZv
aZv
bia
@@ -43537,7 +43437,7 @@ bjN
aVq
bjN
aVq
-bgR
+bhM
bhM
bgS
bgS
@@ -58538,7 +58438,7 @@ aRR
aRR
aZe
iLJ
-qmW
+bGk
aac
ccd
cmX
@@ -72549,10 +72449,10 @@ ccp
ccp
ckM
cjn
-aAM
-aAM
-aAM
-aAM
+cgu
+cgu
+cgu
+cgu
cjn
aGM
cgp
diff --git a/maps/map_files/USS_Almayer/USS_Almayer.dmm b/maps/map_files/USS_Almayer/USS_Almayer.dmm
index 128256587e..1f3bf36f78 100644
--- a/maps/map_files/USS_Almayer/USS_Almayer.dmm
+++ b/maps/map_files/USS_Almayer/USS_Almayer.dmm
@@ -23563,7 +23563,7 @@
dir = 4
},
/obj/structure/surface/table/reinforced/almayer_B,
-/obj/item/storage/box/co2_knife{
+/obj/item/storage/box/loadout/co2_knife{
pixel_x = 8;
pixel_y = 9
},
diff --git a/maps/map_files/Whiskey_Outpost_v2/Whiskey_Outpost_v2.dmm b/maps/map_files/Whiskey_Outpost_v2/Whiskey_Outpost_v2.dmm
index 36c8e9abe7..e5461db06c 100644
--- a/maps/map_files/Whiskey_Outpost_v2/Whiskey_Outpost_v2.dmm
+++ b/maps/map_files/Whiskey_Outpost_v2/Whiskey_Outpost_v2.dmm
@@ -6689,7 +6689,7 @@
/obj/structure/surface/rack,
/obj/item/ammo_box/magazine/m4a3,
/obj/item/ammo_box/magazine/m44,
-/obj/item/ammo_box/magazine/mod88,
+/obj/item/ammo_box/magazine/vp70,
/turf/open/floor/prison{
icon_state = "floor_plate"
},
diff --git a/maps/map_files/chapaev/chapaev.dmm b/maps/map_files/chapaev/chapaev.dmm
index ec03e22945..61f68cb840 100644
--- a/maps/map_files/chapaev/chapaev.dmm
+++ b/maps/map_files/chapaev/chapaev.dmm
@@ -2686,7 +2686,7 @@
/obj/item/ammo_magazine/handful/shotgun/heavy/buckshot/special,
/obj/item/ammo_magazine/handful/shotgun/heavy/buckshot/special,
/obj/item/ammo_magazine/handful/shotgun/heavy/buckshot/special,
-/obj/item/weapon/gun/shotgun/type23/pve,
+/obj/item/weapon/gun/shotgun/type23,
/turf/open/floor/strata{
icon_state = "floor2"
},
@@ -4342,6 +4342,7 @@
job = "Platoon Commander"
},
/obj/item/clothing/under/marine/veteran/UPP/boiler,
+/obj/item/clothing/under/marine/veteran/UPP/officer,
/turf/open/floor/strata{
dir = 6;
icon_state = "multi_tiles"
@@ -4735,7 +4736,7 @@
/obj/item/ammo_magazine/handful/shotgun/heavy/buckshot/special,
/obj/item/ammo_magazine/handful/shotgun/heavy/buckshot/special,
/obj/item/ammo_magazine/handful/shotgun/heavy/buckshot/special,
-/obj/item/weapon/gun/shotgun/type23/pve,
+/obj/item/weapon/gun/shotgun/type23,
/turf/open/floor/strata{
icon_state = "floor2"
},
diff --git a/maps/map_files/derelict_almayer/derelict_almayer.dmm b/maps/map_files/derelict_almayer/derelict_almayer.dmm
index aeab7ffa35..5b9cb948c1 100644
--- a/maps/map_files/derelict_almayer/derelict_almayer.dmm
+++ b/maps/map_files/derelict_almayer/derelict_almayer.dmm
@@ -60103,7 +60103,7 @@
dir = 4
},
/obj/structure/surface/table/reinforced/almayer_B,
-/obj/item/storage/box/co2_knife{
+/obj/item/storage/box/loadout/co2_knife{
pixel_x = 8;
pixel_y = 9
},
diff --git a/maps/map_files/golden_arrow/golden_arrow.dmm b/maps/map_files/golden_arrow/golden_arrow.dmm
index 18f231aad2..3c70bcd776 100644
--- a/maps/map_files/golden_arrow/golden_arrow.dmm
+++ b/maps/map_files/golden_arrow/golden_arrow.dmm
@@ -541,7 +541,6 @@
},
/obj/item/defenses/handheld/sentry,
/obj/structure/largecrate/supply/explosives/grenades/less{
- icon_state = "case";
layer = 3.1;
pixel_x = 20;
pixel_y = 10
@@ -2294,7 +2293,6 @@
"iF" = (
/obj/structure/largecrate/supply/motiondetectors,
/obj/structure/largecrate/supply/explosives/grenades/less{
- icon_state = "case";
pixel_y = 10
},
/obj/item/ammo_box/magazine/mk1{
@@ -3608,6 +3606,9 @@
/obj/item/ammo_magazine/rifle/m4ra/pve,
/obj/item/ammo_magazine/rifle/m4ra/pve,
/obj/effect/decal/cleanable/dirt,
+/obj/item/weapon/gun/rifle/m4ra/pve{
+ pixel_y = 8
+ },
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -3937,17 +3938,6 @@
},
/turf/open/floor/plating,
/area/golden_arrow/hangar)
-"oK" = (
-/obj/item/storage/box/guncase/pumpshotgun/special{
- pixel_y = 4
- },
-/obj/item/storage/box/guncase/flamer/special{
- layer = 3.1;
- pixel_y = 10
- },
-/obj/structure/surface/rack,
-/turf/open/floor/almayer,
-/area/golden_arrow/platoonarmory)
"oM" = (
/obj/structure/filingcabinet{
density = 0;
@@ -5235,7 +5225,7 @@
/area/golden_arrow/engineering)
"tP" = (
/obj/structure/surface/table/almayer,
-/obj/item/storage/box/co2_knife{
+/obj/item/storage/box/loadout/co2_knife{
pixel_x = 3;
pixel_y = 13
},
@@ -8007,8 +7997,16 @@
"Fe" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/surface/table/almayer,
-/obj/item/weapon/gun/rifle/m4ra/pve{
- pixel_y = 8
+/obj/item/storage/box/guncase/shotgunpump{
+ pixel_y = 17
+ },
+/obj/item/ammo_magazine/shotgun/buckshot{
+ pixel_y = 6;
+ pixel_x = -4
+ },
+/obj/item/ammo_magazine/shotgun/buckshot{
+ pixel_y = 6;
+ pixel_x = 6
},
/turf/open/floor/almayer{
icon_state = "plate"
@@ -8092,6 +8090,7 @@
/obj/item/clothing/under/marine/officer/boiler,
/obj/item/clothing/suit/storage/jacket/marine/service,
/obj/item/clothing/suit/storage/jacket/marine/dress/officer/bomber,
+/obj/item/clothing/under/marine/officer/bridge,
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -9822,6 +9821,23 @@
},
/turf/open/floor/almayer,
/area/golden_arrow/hangar)
+"LP" = (
+/obj/item/storage/box/guncase/flamer/special{
+ layer = 3.1;
+ pixel_y = 10
+ },
+/obj/structure/surface/rack,
+/obj/item/storage/box/guncase/shotguncombat,
+/obj/item/ammo_box/magazine/m4a3{
+ layer = 3;
+ pixel_y = -5;
+ pixel_x = -2
+ },
+/obj/item/ammo_box/magazine/vp70{
+ layer = 3
+ },
+/turf/open/floor/almayer,
+/area/golden_arrow/platoonarmory)
"LQ" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/pipes/standard/simple/hidden/supply,
@@ -24263,7 +24279,7 @@ EG
EG
EG
HZ
-oK
+LP
NU
pI
Ot
@@ -25175,7 +25191,7 @@ EG
EG
EG
HZ
-oK
+LP
pd
Jx
Ot
diff --git a/maps/map_files/golden_arrow_classic/golden_arrow_classic.dmm b/maps/map_files/golden_arrow_classic/golden_arrow_classic.dmm
index ab5d87ee73..8b6ad0c427 100644
--- a/maps/map_files/golden_arrow_classic/golden_arrow_classic.dmm
+++ b/maps/map_files/golden_arrow_classic/golden_arrow_classic.dmm
@@ -533,7 +533,7 @@
pixel_x = 5;
pixel_y = 7
},
-/obj/item/storage/box/co2_knife{
+/obj/item/storage/box/loadout/co2_knife{
pixel_x = 3;
pixel_y = 13
},
@@ -613,7 +613,7 @@
/area/golden_arrow/prep_hallway)
"cV" = (
/obj/structure/surface/table/almayer,
-/obj/item/storage/box/guncase/pumpshotgun/special,
+/obj/item/storage/box/guncase/shotguncombat,
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -4989,7 +4989,7 @@
name = "spent snailshot";
layer = 2.7
},
-/obj/item/storage/box/guncase/pumpshotgun/special,
+/obj/item/storage/box/guncase/shotguncombat,
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -6236,7 +6236,6 @@
"Kp" = (
/obj/structure/largecrate/supply/motiondetectors,
/obj/structure/largecrate/supply/explosives/grenades/less{
- icon_state = "case";
pixel_y = 10;
pixel_x = 3
},
@@ -7126,9 +7125,7 @@
},
/area/golden_arrow/cryo_cells)
"Pm" = (
-/obj/structure/largecrate/supply/explosives/grenades/less{
- icon_state = "case"
- },
+/obj/structure/largecrate/supply/explosives/grenades/less,
/obj/structure/largecrate/supply/motiondetectors{
pixel_y = 10
},
diff --git a/maps/map_files/rover/rover.dmm b/maps/map_files/rover/rover.dmm
index e672e1b887..fcd21b1f3a 100644
--- a/maps/map_files/rover/rover.dmm
+++ b/maps/map_files/rover/rover.dmm
@@ -485,13 +485,13 @@
/area/golden_arrow/hangar)
"en" = (
/obj/structure/surface/rack,
-/obj/item/weapon/gun/shotgun/pump/special{
- pixel_y = 10
- },
/obj/structure/machinery/light{
dir = 8
},
-/obj/item/ammo_magazine/shotgun/buckshot/special,
+/obj/item/storage/box/guncase/shotguncombat,
+/obj/item/storage/box/guncase/shotguncombat{
+ pixel_y = 6
+ },
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -1136,6 +1136,7 @@
/obj/structure/machinery/light{
dir = 8
},
+/obj/item/weapon/gun/rifle/m4ra/pve,
/turf/open/floor/almayer{
icon_state = "plate"
},
@@ -4707,7 +4708,6 @@
/area/golden_arrow/dorms)
"Uc" = (
/obj/structure/surface/rack,
-/obj/item/weapon/gun/rifle/m4ra/pve,
/turf/open/floor/almayer{
icon_state = "plate"
},
diff --git a/maps/shuttles/dropship_cyclone.dmm b/maps/shuttles/dropship_cyclone.dmm
index 2a5ac47a67..2976d18827 100644
--- a/maps/shuttles/dropship_cyclone.dmm
+++ b/maps/shuttles/dropship_cyclone.dmm
@@ -334,9 +334,7 @@
/turf/template_noop,
/area/shuttle/cyclone)
"yA" = (
-/obj/structure/shuttle/part/cyclone/transparent{
- icon_state = "101"
- },
+/obj/structure/shuttle/part/cyclone/gunpod_prop,
/turf/template_noop,
/area/shuttle/cyclone)
"yP" = (
@@ -364,7 +362,7 @@
},
/area/shuttle/cyclone)
"zL" = (
-/obj/structure/shuttle/part/cyclone/transparent{
+/obj/structure/shuttle/part/cyclone/transparent/nosecone{
icon_state = "102"
},
/turf/template_noop,
@@ -578,7 +576,7 @@
/turf/template_noop,
/area/shuttle/cyclone)
"RR" = (
-/obj/structure/shuttle/part/cyclone/transparent{
+/obj/structure/shuttle/part/cyclone/transparent/nosecone{
icon_state = "100"
},
/turf/template_noop,
diff --git a/maps/shuttles/dropship_midway.dmm b/maps/shuttles/dropship_midway.dmm
index a1e0627e88..19582a7611 100644
--- a/maps/shuttles/dropship_midway.dmm
+++ b/maps/shuttles/dropship_midway.dmm
@@ -49,7 +49,7 @@
/turf/template_noop,
/area/shuttle/midway)
"go" = (
-/obj/structure/shuttle/part/midway/transparent{
+/obj/structure/shuttle/part/midway/transparent/nosecone{
icon_state = "102"
},
/turf/template_noop,
@@ -215,10 +215,6 @@
},
/area/shuttle/midway)
"tf" = (
-/obj/structure/machinery/cm_vending/sorted/medical/wall_med{
- pixel_y = 26;
- pixel_x = -10
- },
/turf/closed/shuttle/midway/transparent{
icon_state = "97a"
},
@@ -350,7 +346,7 @@
},
/area/shuttle/midway)
"Cr" = (
-/obj/structure/shuttle/part/midway/transparent{
+/obj/structure/shuttle/part/midway/transparent/nosecone{
icon_state = "100"
},
/turf/template_noop,
@@ -528,9 +524,7 @@
},
/area/shuttle/midway)
"LY" = (
-/obj/structure/shuttle/part/midway/transparent{
- icon_state = "101"
- },
+/obj/structure/shuttle/part/midway/gunpod_prop,
/turf/template_noop,
/area/shuttle/midway)
"LZ" = (
diff --git a/maps/shuttles/dropship_tornado.dmm b/maps/shuttles/dropship_tornado.dmm
index 240420ff0d..4586189c82 100644
--- a/maps/shuttles/dropship_tornado.dmm
+++ b/maps/shuttles/dropship_tornado.dmm
@@ -174,9 +174,7 @@
},
/area/shuttle/tornado)
"hE" = (
-/obj/structure/shuttle/part/tornado/transparent{
- icon_state = "101"
- },
+/obj/structure/shuttle/part/tornado/gunpod_prop,
/turf/template_noop,
/area/shuttle/tornado)
"jP" = (
@@ -259,7 +257,7 @@
},
/area/shuttle/tornado)
"sx" = (
-/obj/structure/shuttle/part/tornado/transparent{
+/obj/structure/shuttle/part/tornado/transparent/nosecone{
icon_state = "100"
},
/turf/template_noop,
@@ -536,7 +534,7 @@
},
/area/shuttle/tornado)
"Pi" = (
-/obj/structure/shuttle/part/tornado/transparent{
+/obj/structure/shuttle/part/tornado/transparent/nosecone{
icon_state = "102"
},
/turf/template_noop,
diff --git a/maps/shuttles/dropship_tripoli.dmm b/maps/shuttles/dropship_tripoli.dmm
index 9caea2f03a..f068b75d85 100644
--- a/maps/shuttles/dropship_tripoli.dmm
+++ b/maps/shuttles/dropship_tripoli.dmm
@@ -320,7 +320,7 @@
/turf/template_noop,
/area/shuttle/tripoli)
"wL" = (
-/obj/structure/shuttle/part/tripoli{
+/obj/structure/shuttle/part/tripoli/transparent/nosecone{
icon_state = "100"
},
/turf/template_noop,
@@ -347,9 +347,7 @@
/turf/template_noop,
/area/shuttle/tripoli)
"yF" = (
-/obj/structure/shuttle/part/tripoli{
- icon_state = "101"
- },
+/obj/structure/shuttle/part/tripoli/gunpod_prop,
/turf/template_noop,
/area/shuttle/tripoli)
"zt" = (
@@ -461,7 +459,7 @@
/turf/template_noop,
/area/shuttle/tripoli)
"Fq" = (
-/obj/structure/shuttle/part/tripoli{
+/obj/structure/shuttle/part/tripoli/transparent/nosecone{
icon_state = "102"
},
/turf/template_noop,
diff --git a/maps/shuttles/dropship_typhoon.dmm b/maps/shuttles/dropship_typhoon.dmm
index 331bb09506..9e184dd846 100644
--- a/maps/shuttles/dropship_typhoon.dmm
+++ b/maps/shuttles/dropship_typhoon.dmm
@@ -105,7 +105,7 @@
},
/area/shuttle/tornado)
"jt" = (
-/obj/structure/shuttle/part/typhoon/transparent{
+/obj/structure/shuttle/part/typhoon/transparent/nosecone{
icon_state = "102"
},
/turf/template_noop,
@@ -172,9 +172,7 @@
/turf/template_noop,
/area/shuttle/tornado)
"qa" = (
-/obj/structure/shuttle/part/typhoon/transparent{
- icon_state = "101"
- },
+/obj/structure/shuttle/part/typhoon/gunpod_prop,
/turf/template_noop,
/area/shuttle/tornado)
"rb" = (
@@ -354,7 +352,7 @@
},
/area/shuttle/tornado)
"FO" = (
-/obj/structure/shuttle/part/typhoon/transparent{
+/obj/structure/shuttle/part/typhoon/transparent/nosecone{
icon_state = "100"
},
/turf/template_noop,
diff --git a/maps/shuttles/ert_shuttle_big.dmm b/maps/shuttles/ert_shuttle_big.dmm
index 96fb88a3ea..dcb88ddd2d 100644
--- a/maps/shuttles/ert_shuttle_big.dmm
+++ b/maps/shuttles/ert_shuttle_big.dmm
@@ -22,11 +22,11 @@
/area/shuttle/ert)
"cx" = (
/obj/structure/surface/table/almayer,
-/obj/item/weapon/gun/pistol/mod88{
+/obj/item/weapon/gun/pistol/vp70{
pixel_y = 4
},
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
-/obj/item/ammo_magazine/pistol/mod88/normalpoint,
+/obj/item/ammo_magazine/pistol/vp70,
+/obj/item/ammo_magazine/pistol/vp70,
/turf/open/floor/almayer{
icon_state = "plate"
},
diff --git a/sound/weapons/gun_88m4_reload.ogg b/sound/weapons/gun_vp70_reload.ogg
similarity index 100%
rename from sound/weapons/gun_88m4_reload.ogg
rename to sound/weapons/gun_vp70_reload.ogg
diff --git a/sound/weapons/gun_88m4_unload.ogg b/sound/weapons/gun_vp70_unload.ogg
similarity index 100%
rename from sound/weapons/gun_88m4_unload.ogg
rename to sound/weapons/gun_vp70_unload.ogg
diff --git a/sound/weapons/gun_88m4_v7.ogg b/sound/weapons/gun_vp70_v7.ogg
similarity index 100%
rename from sound/weapons/gun_88m4_v7.ogg
rename to sound/weapons/gun_vp70_v7.ogg
diff --git a/tgui/packages/tgui/interfaces/OverwatchConsole.jsx b/tgui/packages/tgui/interfaces/OverwatchConsole.jsx
index 0c2c4e801c..db9987529e 100644
--- a/tgui/packages/tgui/interfaces/OverwatchConsole.jsx
+++ b/tgui/packages/tgui/interfaces/OverwatchConsole.jsx
@@ -370,12 +370,13 @@ const SquadMonitor = (props) => {
let determine_status_color = (status) => {
let conscious = status.includes('Conscious');
+ let incapacitated = status.includes('Incapacitated');
let unconscious = status.includes('Unconscious');
let state_color = 'red';
if (conscious) {
state_color = 'green';
- } else if (unconscious) {
+ } else if (incapacitated || unconscious) {
state_color = 'yellow';
}
return state_color;