Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions code/datums/ammo/bullet/sniper.dm
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,10 @@
damage = 80
penetration = ARMOR_PENETRATION_TIER_10

/datum/ammo/bullet/sniper/upp/weak
name = "sniper bullet"
penetration = ARMOR_PENETRATION_TIER_1

/datum/ammo/bullet/sniper/upp_pve
name = "high-power sniper bullet"
damage = 180
Expand Down
4 changes: 4 additions & 0 deletions code/game/objects/items/storage/belt.dm
Original file line number Diff line number Diff line change
Expand Up @@ -694,6 +694,10 @@
for(var/i in 1 to storage_slots)
new /obj/item/ammo_magazine/sniper/svd(src)

/obj/item/storage/belt/marine/svd/weak/fill_preset_inventory()
for(var/i in 1 to storage_slots)
new /obj/item/ammo_magazine/sniper/svd/weak(src)

/obj/item/storage/belt/marine/smartgunner
name = "\improper M280 pattern smartgunner drum belt"
desc = "Despite the fact that 1. drum magazines are incredibly non-ergonomical, and 2. require incredibly precise machining in order to fit universally (spoiler, they don't, adding further to the myth of 'Smartgun Personalities'), the USCM decided to issue a modified marine belt (more formally known by the designation M280) with hooks and dust covers (overly complex for the average jarhead) for the M56B system's drum munitions. When the carry catch on the drum isn't getting stuck in the oiled up velcro, the rig actually does do a decent job at holding a plentiful amount of drums. But at the end of the day, compared to standard rigs... it sucks, but isn't that what being a Marine is all about?"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,10 @@
var/static/list/sniper_equipment_presets = list(
/datum/equipment_preset/clf/sniper::name = /datum/equipment_preset/clf/sniper,
/datum/equipment_preset/clf/sniper/svd::name = /datum/equipment_preset/clf/sniper/svd,
/datum/equipment_preset/clf/sniper/svd/weak::name = /datum/equipment_preset/clf/sniper/svd/weak,
/datum/equipment_preset/pmc/pmc_sniper::name = /datum/equipment_preset/pmc/pmc_sniper,
/datum/equipment_preset/upp/sniper::name = /datum/equipment_preset/upp/sniper,
/datum/equipment_preset/upp/sniper/weak::name = /datum/equipment_preset/upp/sniper/weak,
/datum/equipment_preset/uscm/specialist_equipped/sniper::name = /datum/equipment_preset/uscm/specialist_equipped/sniper,
/datum/equipment_preset/other/freelancer/marksman::name = /datum/equipment_preset/other/freelancer/marksman,
)
Expand Down
61 changes: 61 additions & 0 deletions code/modules/mob/living/carbon/human/ai/ai_equipment.dm
Original file line number Diff line number Diff line change
Expand Up @@ -159,6 +159,28 @@

new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CLF(new_human), WEAR_L_EAR)

/datum/equipment_preset/clf/sniper/svd/weak
name = "CLF Sniper (AI) (Weak SVD)"

/datum/equipment_preset/clf/sniper/svd/weak/load_gear(mob/living/carbon/human/new_human)
var/obj/item/clothing/under/colonist/clf/jumpsuit = new()
var/obj/item/clothing/accessory/storage/webbing/W = new()
jumpsuit.attach_accessory(new_human, W)
new_human.equip_to_slot_or_del(jumpsuit, WEAR_BODY)
spawn_rebel_suit(new_human)
spawn_rebel_helmet(new_human)
spawn_rebel_shoes(new_human)
spawn_rebel_gloves(new_human)
new_human.equip_to_slot_or_del(new /obj/item/tool/crowbar, WEAR_IN_JACKET)
new_human.equip_to_slot_or_del(new /obj/item/device/flashlight(new_human), WEAR_L_STORE)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/ert(new_human), WEAR_R_STORE)

new_human.equip_to_slot_or_del(new /obj/item/storage/belt/marine/svd/weak(new_human), WEAR_WAIST)
new_human.put_in_active_hand(new /obj/item/weapon/gun/rifle/sniper/svd/weak(new_human))

new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/CLF(new_human), WEAR_L_EAR)


/datum/equipment_preset/clf/engineer/ai
name = "CLF Engineer (AI)"

Expand Down Expand Up @@ -235,6 +257,45 @@
//waist
new_human.equip_to_slot_or_del(new /obj/item/storage/belt/marine/svd(new_human), WEAR_WAIST)

/datum/equipment_preset/upp/sniper/weak
name = "UPP Marksman (Weak)"

/datum/equipment_preset/upp/sniper/weak/load_gear(mob/living/carbon/human/new_human)
//back
new_human.equip_to_slot_or_del(new /obj/item/storage/backpack/lightpack/upp, WEAR_BACK)
new_human.equip_to_slot_or_del(new /obj/item/tool/extinguisher, WEAR_IN_BACK) //1
new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/upp, WEAR_IN_BACK) //1.33
new_human.equip_to_slot_or_del(new /obj/item/reagent_container/food/snacks/upp, WEAR_IN_BACK) //1.66
//face
new_human.equip_to_slot_or_del(new /obj/item/device/radio/headset/distress/UPP, WEAR_L_EAR)
//head
new_human.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/upp, WEAR_HEAD)
//body
var/obj/item/clothing/under/marine/veteran/UPP/UPP = new()
new_human.equip_to_slot_or_del(UPP, WEAR_BODY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp, WEAR_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/accessory/patch/upp/naval, WEAR_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/clothing/suit/storage/marine/faction/UPP, WEAR_JACKET)
//limbs
new_human.equip_to_slot_or_del(new /obj/item/clothing/shoes/marine/upp_knife, WEAR_FEET)
new_human.equip_to_slot_or_del(new /obj/item/clothing/gloves/marine, WEAR_HANDS)
//pockets
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/explosive/C4, WEAR_R_STORE)
new_human.equip_to_slot_or_del(new /obj/item/storage/pouch/firstaid/ert, WEAR_L_STORE)

if(SSmapping.configs[GROUND_MAP].environment_traits[MAP_COLD])
new_human.equip_to_slot_or_del(new /obj/item/clothing/mask/rebreather/scarf/tacticalmask/green, WEAR_FACE)

//body
var/obj/item/clothing/accessory/storage/black_vest/W = new()
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/sniper/svd/weak, WEAR_IN_ACCESSORY)
new_human.equip_to_slot_or_del(new /obj/item/weapon/gun/rifle/sniper/svd/weak, WEAR_J_STORE)
new_human.equip_to_slot_or_del(new /obj/item/ammo_magazine/sniper/svd/weak, WEAR_IN_JACKET)
//waist
new_human.equip_to_slot_or_del(new /obj/item/storage/belt/marine/svd/weak(new_human), WEAR_WAIST)


/datum/equipment_preset/other/freelancer/standard/rifleman
name = "Freelancer (Rifleman)"
Expand Down
3 changes: 3 additions & 0 deletions code/modules/projectiles/guns/specialist/sniper.dm
Original file line number Diff line number Diff line change
Expand Up @@ -540,5 +540,8 @@
recoil = RECOIL_AMOUNT_TIER_5
damage_falloff_mult = 0

/obj/item/weapon/gun/rifle/sniper/svd/weak
current_mag = /obj/item/ammo_magazine/sniper/svd/weak

/obj/item/weapon/gun/rifle/sniper/svd/pve
current_mag = /obj/item/ammo_magazine/sniper/svd/pve
9 changes: 7 additions & 2 deletions code/modules/projectiles/magazines/specialist.dm
Original file line number Diff line number Diff line change
Expand Up @@ -51,15 +51,20 @@
//Type 88 //Based on the actual Dragunov designated marksman rifle.

/obj/item/ammo_magazine/sniper/svd
name = "\improper Type-88 Magazine (7.62x54mmR)"
desc = "A large caliber magazine for the Type-88 designated marksman rifle."
name = "\improper Type-88 Armor Piercing Magazine (7.62x54mmR)"
desc = "A large caliber armor piercing magazine for the Type-88 designated marksman rifle."
caliber = "7.62x54mmR"
icon = 'icons/obj/items/weapons/guns/ammo_by_faction/upp.dmi'
icon_state = "type88mag"
default_ammo = /datum/ammo/bullet/sniper/upp
max_rounds = 12
gun_type = /obj/item/weapon/gun/rifle/sniper/svd

/obj/item/ammo_magazine/sniper/svd/weak
name = "\improper Type-88 Magazine (7.62x54mmR)"
desc = "A large caliber magazine for the Type-88 designated marksman rifle."
default_ammo = /datum/ammo/bullet/sniper/upp/weak

/obj/item/ammo_magazine/sniper/svd/pve
name = "\improper Type-88 HP Magazine (7.62x54mmR)"
default_ammo = /datum/ammo/bullet/sniper/upp_pve
Expand Down