From 6cc824b9cb23aba03a6e4a499fa4e640004efa6b Mon Sep 17 00:00:00 2001 From: CHOMPStation2StaffMirrorBot <94713762+CHOMPStation2StaffMirrorBot@users.noreply.github.com> Date: Thu, 1 Jan 2026 16:41:53 -0700 Subject: [PATCH] [MIRROR] Makes clicking gun HUD icon swap (#12198) Co-authored-by: Cameron Lennox --- code/_onclick/hud/hud.dm | 2 + code/_onclick/hud/screen_objects.dm | 15 + code/modules/examine/descriptions/weapons.dm | 9 +- code/modules/mining/fulton.dm | 1 - code/modules/projectiles/guns/projectile.dm | 35 ++- .../modules/projectiles/guns/projectile_ch.dm | 158 +--------- .../projectiles/projectile/bullets_ch.dm | 271 +----------------- .../guns/zBallisticPort/projectiles.dm | 1 - .../common_submaps/gateway/snowfield_ch.dm | 1 - 9 files changed, 51 insertions(+), 442 deletions(-) diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index 04ef074a99..c3ec0cf18d 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -583,6 +583,7 @@ GLOBAL_LIST_INIT(global_huds, list( var/atom/movable/screen/ammo/ammo_hud = new ammo_hud_list[G] = ammo_hud ammo_hud.screen_loc = ammo_hud.ammo_screen_loc_list[length(ammo_hud_list)] + ammo_hud.our_gun = WEAKREF(G) ammo_hud.add_hud(user, G) ammo_hud.update_hud(user, G) @@ -591,6 +592,7 @@ GLOBAL_LIST_INIT(global_huds, list( var/atom/movable/screen/ammo/ammo_hud = ammo_hud_list[G] if(isnull(ammo_hud)) return + ammo_hud.our_gun = null ammo_hud.remove_hud(user, G) qdel(ammo_hud) ammo_hud_list -= G diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 77722d250d..10c1f42460 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -1009,6 +1009,21 @@ screen_loc = ui_ammo_hud1 var/warned = FALSE var/static/list/ammo_screen_loc_list = list(ui_ammo_hud1, ui_ammo_hud2, ui_ammo_hud3 ,ui_ammo_hud4) + var/datum/weakref/our_gun + +/atom/movable/screen/ammo/Click() + var/mob/user = usr + if(!user.checkClickCooldown()) + return TRUE + if(user.stat || user.paralysis || user.stunned || user.weakened) + return TRUE + if(istype(user.loc,/obj/mecha)) // stops inventory actions in a mech + return TRUE + var/obj/item/gun/gun = our_gun.resolve() + if(!gun) + return TRUE + gun.switch_firemodes(user) + return TRUE /atom/movable/screen/ammo/proc/add_hud(var/mob/living/user, var/obj/item/gun/G) diff --git a/code/modules/examine/descriptions/weapons.dm b/code/modules/examine/descriptions/weapons.dm index e1c2ebf0ef..383a7a8bab 100644 --- a/code/modules/examine/descriptions/weapons.dm +++ b/code/modules/examine/descriptions/weapons.dm @@ -24,7 +24,8 @@ /obj/item/gun/energy/gun description_info = "This is an energy weapon. To fire the weapon, ensure your intent is *not* set to 'help', have your gun mode set to 'fire', \ then click where you want to fire. Most energy weapons can fire through windows harmlessly. To switch between stun and lethal, click the weapon \ - in your hand. To recharge this weapon, use a weapon recharger." + in your hand. To recharge this weapon, use a weapon recharger. \ + If the gun has multiple firemodes, you can cycle through them by clicking the ammo HUD in the top right of your screen." /obj/item/gun/energy/gun/taser description_info = "This is an energy weapon. To fire the weapon, ensure your intent is *not* set to 'help', have your gun mode set to 'fire', \ @@ -37,7 +38,8 @@ /obj/item/gun/energy/gun/nuclear description_info = "This is an energy weapon. To fire the weapon, ensure your intent is *not* set to 'help', have your gun mode set to 'fire', \ then click where you want to fire. Most energy weapons can fire through windows harmlessly. To switch between stun and lethal, click the weapon \ - in your hand. Unlike most weapons, this weapon recharges itself." + in your hand or by clicking the ammo HUD in the top right of your screen. \ + Unlike most weapons, this weapon recharges itself." /obj/item/gun/energy/captain description_info = "This is an energy weapon. To fire the weapon, ensure your intent is *not* set to 'help', have your gun mode set to 'fire', \ @@ -51,7 +53,8 @@ /obj/item/gun/projectile description_info = "This is a ballistic weapon. To fire the weapon, ensure your intent is *not* set to 'help', have your gun mode set to 'fire', \ then click where you want to fire. To reload, click the weapon in your hand to unload (if needed), then add the appropriate ammo. The description \ - will tell you what caliber you need." + will tell you what caliber you need. \ + If the gun has multiple firemodes, you can cycle through them by clicking the ammo HUD in the top right of your screen." /obj/item/gun/energy/chameleon description_info = null //The chameleon gun adopts the description_info of the weapon it is impersonating as, to make meta-ing harder. diff --git a/code/modules/mining/fulton.dm b/code/modules/mining/fulton.dm index 253cb4d721..8a285402a2 100644 --- a/code/modules/mining/fulton.dm +++ b/code/modules/mining/fulton.dm @@ -150,7 +150,6 @@ if(.) return TRUE var/turf/T = get_turf(user) - var/outdoors = T.is_outdoors() if(do_after(user, 1.5 SECONDS, target = user) && !QDELETED(src)) new /obj/structure/extraction_point(get_turf(user)) qdel(src) diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm index 02b8b1080d..c8a55f1075 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -56,15 +56,18 @@ update_icon() /obj/item/gun/projectile/consume_next_projectile() - //get the next casing - if(loaded.len) - chambered = loaded[1] //load next casing. - if(handle_casings != HOLD_CASINGS) - loaded -= chambered - else if(ammo_magazine && ammo_magazine.stored_ammo.len) - chambered = ammo_magazine.stored_ammo[ammo_magazine.stored_ammo.len] - if(handle_casings != HOLD_CASINGS) - ammo_magazine.stored_ammo -= chambered + if(!manual_chamber) //CHOMPEdit Start - Manual Chambering + //get the next casing + if(loaded.len) + chambered = loaded[1] //load next casing. + if(handle_casings != HOLD_CASINGS) + loaded -= chambered + else if(ammo_magazine && ammo_magazine.stored_ammo.len) + chambered = ammo_magazine.stored_ammo[ammo_magazine.stored_ammo.len] + if(handle_casings != HOLD_CASINGS) + ammo_magazine.stored_ammo -= chambered + if(manual_chamber && auto_loading_type && CHECK_BITFIELD(auto_loading_type,OPEN_BOLT) && bolt_open) + chamber_bullet() //CHOMPEdit End - Manual Chambering var/mob/living/M = loc // TGMC Ammo HUD if(istype(M)) // TGMC Ammo HUD @@ -82,7 +85,8 @@ /obj/item/gun/projectile/handle_click_empty() ..() - process_chambered() + if(!manual_chamber) //CHOMPEdit - Manual Chambering + process_chambered() //CHOMPEdit - Manual Chambering /obj/item/gun/projectile/proc/process_chambered() if (!chambered) return @@ -197,6 +201,10 @@ //attempts to unload src. If allow_dump is set to 0, the speedloader unloading method will be disabled /obj/item/gun/projectile/proc/unload_ammo(mob/user, var/allow_dump=1) + if(manual_chamber && only_open_load && !bolt_open) //CHOMPEdit - Manual Chambering + to_chat(user,span_warning("You must open the bolt to load or unload this gun!")) //CHOMPEdit - Manual Chambering + return //CHOMPEdit - Manual Chambering + if(ammo_magazine) user.put_in_hands(ammo_magazine) user.visible_message("[user] removes [ammo_magazine] from [src].", span_notice("You remove [ammo_magazine] from [src].")) @@ -238,7 +246,10 @@ return TRUE if(special_weapon_handling && !callback) return FALSE - if(firemodes.len > 1) + if(manual_chamber) //CHOMPEdit Gun Rework + if(do_after(user, 0.4 SECONDS, src)) //CHOMPEdit Gun Rework + bolt_handle(user) //CHOMPEdit Gun Rework + else if(firemodes.len > 1) //CHOMPEdit Gun Rework switch_firemodes(user) else unload_ammo(user) @@ -251,7 +262,7 @@ /obj/item/gun/projectile/afterattack(atom/A, mob/living/user) ..() - if(auto_eject && ammo_magazine && ammo_magazine.stored_ammo && !ammo_magazine.stored_ammo.len) + if(auto_eject && ammo_magazine && ammo_magazine.stored_ammo && !ammo_magazine.stored_ammo.len && !(manual_chamber && chambered && chambered.BB != null)) //CHOMPEdit - Manual Chambering ammo_magazine.loc = get_turf(src.loc) user.visible_message( "[ammo_magazine] falls out and clatters on the floor!", diff --git a/code/modules/projectiles/guns/projectile_ch.dm b/code/modules/projectiles/guns/projectile_ch.dm index e718fe3201..533ad44dbf 100644 --- a/code/modules/projectiles/guns/projectile_ch.dm +++ b/code/modules/projectiles/guns/projectile_ch.dm @@ -19,7 +19,6 @@ var/bolt_open = FALSE var/bolt_locked = FALSE var/bolt_release = "bolt release" - var/muzzle_velocity = 500 // meters per second var/sound_ejectchamber = 'sound/weapons/ballistics/pistol_ejectchamber.ogg' var/sound_eject = 'sound/weapons/ballistics/pistol_eject.ogg' var/sound_chamber = 'sound/weapons/ballistics/pistol_chamber.ogg' @@ -67,18 +66,6 @@ if(manual_chamber && auto_loading_type) bolt_toggle() -/obj/item/gun/projectile/attack_self(mob/user as mob) - . = ..(user) - if(.) - return TRUE - if(manual_chamber) - if(do_after(user, 0.4 SECONDS, src)) - bolt_handle(user) - else if(firemodes.len > 1) - switch_firemodes(user) - else - unload_ammo(user) - /obj/item/gun/projectile/proc/bolt_handle(mob/user) var/previous_chambered = chambered var/result = bolt_toggle(TRUE) @@ -198,64 +185,9 @@ if(chambering) output |= BOLT_CASING_CHAMBERED return output - -/obj/item/gun/projectile/process_chambered() - if (!chambered) return 0 - - // Aurora forensics port, gunpowder residue. - if(chambered.leaves_residue) - var/mob/living/carbon/human/H = loc - if(istype(H)) - if(!istype(H.gloves, /obj/item/clothing)) - H.add_gunshotresidue(chambered) - else - var/obj/item/clothing/G = H.gloves - G.add_gunshotresidue(chambered) - - switch(handle_casings) - if(EJECT_CASINGS) //eject casing onto ground. - if(chambered.caseless) - qdel(chambered) - chambered = null - return 0 - else - chambered.loc = get_turf(src) - playsound(src, "casing", 50, 1) - chambered = null - return 1 - if(CYCLE_CASINGS) //cycle the casing back to the end. - if(ammo_magazine) - ammo_magazine.stored_ammo += chambered - else - loaded += chambered - chambered = null - return 0 - - if(handle_casings != HOLD_CASINGS) - chambered = null - return 0 - -/obj/item/gun/projectile/consume_next_projectile() - if(!manual_chamber) - //get the next casing - if(loaded.len) - chambered = loaded[1] //load next casing. - if(handle_casings != HOLD_CASINGS) - loaded -= chambered - else if(ammo_magazine && ammo_magazine.stored_ammo.len) - chambered = ammo_magazine.stored_ammo[ammo_magazine.stored_ammo.len] - if(handle_casings != HOLD_CASINGS) - ammo_magazine.stored_ammo -= chambered - if(manual_chamber && auto_loading_type && CHECK_BITFIELD(auto_loading_type,OPEN_BOLT) && bolt_open) - chamber_bullet() - - if(chambered) - return chambered.BB - return null - /obj/item/gun/projectile/proc/chamber_bullet() if(chambered) - return 0 + return FALSE var/obj/item/ammo_casing/to_chamber if(loaded.len) to_chamber = loaded[1] //load next casing. @@ -267,9 +199,9 @@ ammo_magazine.stored_ammo -= to_chamber chambered = to_chamber if(to_chamber) - return 1 + return TRUE else - return 0 + return FALSE /obj/item/gun/projectile/load_ammo(var/obj/item/A, mob/user) if(istype(A, /obj/item/ammo_magazine)) @@ -390,38 +322,6 @@ update_icon() -/obj/item/gun/projectile/afterattack(atom/A, mob/living/user, adjacent, params) - afteratt(A,user,adjacent,params) - if(auto_eject && ammo_magazine && ammo_magazine.stored_ammo && !ammo_magazine.stored_ammo.len && !(manual_chamber && chambered && chambered.BB != null)) - ammo_magazine.loc = get_turf(src.loc) - user.visible_message( - "[ammo_magazine] falls out and clatters on the floor!", - span_notice("[ammo_magazine] falls out and clatters on the floor!") - ) - if(auto_eject_sound) - playsound(src, auto_eject_sound, 40, 1) - ammo_magazine.update_icon() - ammo_magazine = null - update_icon() - -/obj/item/gun/projectile/proc/afteratt(atom/A, mob/living/user, adjacent, params) - if(adjacent) return //A is adjacent, is the user, or is on the user's person - - if(!user.aiming) - user.aiming = new(user) - - if(user && user.client && user.aiming && user.aiming.active && user.aiming.aiming_at != A) - PreFire(A,user,params) //They're using the new gun system, locate what they're aiming at. - return - - if(user && user.a_intent == I_HELP && user.read_preference(/datum/preference/toggle/safefiring)) //regardless of what happens, refuse to shoot if help intent is on - to_chat(user, span_warning("You refrain from firing your [src] as your intent is set to help.")) - return - - else - Fire(A, user, params) //Otherwise, fire normally. - return - /obj/item/gun/projectile/special_check(var/mob/user) if(..()) if(manual_chamber) @@ -439,58 +339,6 @@ else return 1 -/obj/item/gun/projectile/unload_ammo(mob/user, var/allow_dump=1) - if(manual_chamber && only_open_load && !bolt_open) - to_chat(user,span_warning("You must open the bolt to load or unload this gun!")) - else - return ..() - -/obj/item/gun/projectile/handle_click_empty(mob/user) - if (user) - user.visible_message("*click click*", span_danger("*click*")) - else - src.visible_message("*click click*") - playsound(src, 'sound/weapons/empty.ogg', 100, 1) - if(!manual_chamber) - process_chambered() - -/obj/item/gun/projectile/Initialize(mapload, var/starts_loaded = 1) - . = ..() - if(manual_chamber) - verbs |= /obj/item/gun/projectile/verb/change_firemode - update_icon() - -/obj/item/gun/projectile/verb/change_firemode() - set name = "Switch firemode" - set category = "Object" - set src in view(1) - - switch_firemodes(usr) - -/obj/item/gun/projectile/process_accuracy(obj/projectile, mob/living/user, atom/target, var/burst, var/held_twohanded) - . = ..() - var/obj/item/projectile/bullet/P = projectile - if(!istype(P)) - return - P.velocity = muzzle_velocity - -//Special ammo handling bullshit - -/obj/item/gun/projectile/pirate/process_accuracy(obj/projectile, mob/living/user, atom/target, var/burst, var/held_twohanded) - . = ..() - var/obj/item/projectile/bullet/P = projectile - if(!istype(P)) - return - P.sub_velocity(P.velocity * 0.3) //Yeah, a gun that supposedly shoots any bullet is gonna be pretty shit. - -/obj/item/gun/projectile/revolver/lemat/process_accuracy(obj/projectile, mob/living/user, atom/target, var/burst, var/held_twohanded) - . = ..() - var/obj/item/projectile/bullet/P = projectile - P.velocity = initial(P.velocity) - if(!istype(P)) - return - P.sub_velocity(P.velocity - 35) - #undef BOLT_NOEVENT #undef BOLT_CLOSED #undef BOLT_OPENED diff --git a/code/modules/projectiles/projectile/bullets_ch.dm b/code/modules/projectiles/projectile/bullets_ch.dm index a062046484..f8ad6a7bb6 100644 --- a/code/modules/projectiles/projectile/bullets_ch.dm +++ b/code/modules/projectiles/projectile/bullets_ch.dm @@ -1,162 +1,70 @@ -#define GRAINS_PER_KG 15432.4 - -/obj/item/projectile/bullet - var/diam = 9 //mm - var/energy_add = 0 //See note below. Adds velocity, basically. - var/velocity = 500 //Meters per second - var/hollow_point = FALSE //Determines if the round leaves additional shrapnel in the wound - var/grains = 115 //I hope the unit is obvious - var/energy //Joules - var/old_bullet_act = TRUE //This makes it so that the game ignores the new ballistic stuff and uses old damage system for the bullet. - -/*energy_add -Pretty much, when a bullet is a fired from a gun, it replaces the default muzzle velocity of the round with it's own muzzle velocity, -so if you want a certain round to have extra velocity, you have the option to add energy. For example, -if I have an AP round that shoots 650 m/s and the base round only shoots 600 m/s, I need to take the weight of the round in grains (say 60), -convert it to kilograms (divide by 15432 or some wacky number like that, just google grains to kilograms), then multiply the weight in kilograms by -the velocity squared for both the 650, and 600, and subtract the result for 650 from the result for 600, then that number is what I would put there. -If you want to be lazy, or you can't find more specific numbers for the AP/HP versions of a round, then just don't bother with changing any of that and -only use the hollow_point and armor_penetration values.*/ - -/obj/item/projectile/bullet/launch_projectile(atom/target, target_zone, mob/user, params, angle_override, forced_spread = 0) - energy = 0.5 * velocity * velocity * (grains / GRAINS_PER_KG) + energy_add - sub_energy(0) - return ..() - -/obj/item/projectile/bullet/proc/sub_velocity(var/amount) - velocity = max(0,velocity - amount) - energy = 0.5 * velocity * velocity * (grains / GRAINS_PER_KG) - -/obj/item/projectile/bullet/proc/sub_energy(var/amount) - energy = max(0,energy - amount) - velocity = sqrt(2*energy/(grains / GRAINS_PER_KG)) - -#undef GRAINS_PER_KG - //Pistol projectiles /obj/item/projectile/bullet/pistol //9x19mm fire_sound = 'sound/weapons/ballistics/a9mm.ogg' - diam = 9 - grains = 108 - velocity = 381 /obj/item/projectile/bullet/pistol/ap - grains = 66 - energy_add = 893 - velocity = 595 armor_penetration = 15 /obj/item/projectile/bullet/pistol/hp - grains = 131 - velocity = 350 - energy_add = -96.18 - hollow_point = TRUE armor_penetration = -10 /obj/item/projectile/bullet/pistol/medium //.45 fire_sound = 'sound/weapons/ballistics/a45.ogg' - diam = 11.43 - grains = 230 - velocity = 295 - -/obj/item/projectile/bullet/pistol/medium/ap - grains = 173 - energy_add = 374 - velocity = 347 - armor_penetration = 15 /obj/item/projectile/bullet/pistol/medium/hp - grains = 230 - velocity = 286 armor_penetration = -10 -/obj/item/projectile/bullet/pistol/strong //.357 and .44 are grouped because ftw //Time to fix that ffs, this is just .44 now. - diam = 10.9 - grains = 240 - velocity = 360 - /obj/item/projectile/bullet/a57 fire_sound = 'sound/weapons/ballistics/smg_heavy.ogg' - diam = 5.7 - grains = 31 - velocity = 716 damage = 10 armor_penetration = 15 //Unfortunately my penetration code doesn't recognize the glory of 5.7x28 FN, so we must show it the wae. hud_state = "smg_light" /obj/item/projectile/bullet/a57/ap - grains = 23 - energy_add = 312.75 - velocity = 850 damage = 15 armor_penetration = 25 //Also, no, this isn't as high as it looks because of the formulas I was using. This would have around a 35% chance of piercing combat armor(50 bullet armor) hud_state = "smg_ap" /obj/item/projectile/bullet/a57/hp - hollow_point = TRUE damage = 15 armor_penetration = -10 hud_state = "smg" /obj/item/projectile/bullet/a357 fire_sound = 'sound/weapons/gunshot4.ogg' - diam = 9.1 - grains = 125 - velocity = 440 damage = 20 hud_state = "revolver" /obj/item/projectile/bullet/a357/ap - energy_add = 298.07 - velocity = 480 armor_penetration = 15 hud_state = "revolver_heavy" /obj/item/projectile/bullet/a357/hp - hollow_point = TRUE armor_penetration = -10 hud_state = "revolver_slim" /obj/item/projectile/bullet/a38 fire_sound = 'sound/weapons/gunshot2.ogg' - diam = 9.1 - grains = 147 - velocity = 270 hud_state = "revolver_small" /obj/item/projectile/bullet/a38/ap - grains = 125 - energy_add = 138 - velocity = 300 armor_penetration = 15 hud_state = "pistol_lightap" /obj/item/projectile/bullet/a38/hp - grains = 158 - energy_add = 175.07 - velocity = 297 - hollow_point = TRUE armor_penetration = -10 hud_state = "pistol_hollow" /obj/item/projectile/bullet/a762x25 fire_sound = 'sound/weapons/gunshot2.ogg' - diam = 7.92 - grains = 85 - velocity = 469 hud_state = "pistol_light" /obj/item/projectile/bullet/a9x18 fire_sound = 'sound/weapons/gunshot2.ogg' - diam = 9.27 - grains = 95 - velocity = 319 hud_state = "pistol" /obj/item/projectile/bullet/a9x18/rubber armor_penetration = -10 - grains = 102 - velocity = 301 damage = 10 agony = 40 embed_chance = 0 @@ -165,31 +73,19 @@ only use the hollow_point and armor_penetration values.*/ /obj/item/projectile/bullet/a10mm fire_sound = 'sound/weapons/gunshot2.ogg' - diam = 10.17 - grains = 180 - velocity = 400 hud_state = "pistol" damage = 20 /obj/item/projectile/bullet/a10mm/ap - grains = 200 - energy_add = 435 - velocity = 440 armor_penetration = 15 hud_state = "pistol_ap" /obj/item/projectile/bullet/a10mm/hp - grains = 135 - energy_add = 700.7 - velocity = 490 armor_penetration = -10 - hollow_point = TRUE hud_state = "pistol_hollow" /obj/item/projectile/bullet/a10mm/rubber armor_penetration = -10 - grains = 142 - velocity = 301 damage = 10 agony = 50 embed_chance = 0 @@ -198,43 +94,25 @@ only use the hollow_point and armor_penetration values.*/ /obj/item/projectile/bullet/a380 fire_sound = 'sound/weapons/gunshot2.ogg' - diam = 9 - grains= 95 - velocity = 300 hud_state = "pistol_light" /obj/item/projectile/bullet/a380/ap - grains = 45 - energy_add = 648.74 - velocity = 559 armor_penetration = 15 hud_state = "pistol_lightap" /obj/item/projectile/bullet/a380/hp - grains = 95 - energy_add = 170 - velocity = 343 armor_penetration = -10 - hollow_point = TRUE hud_state = "pistol_hollow" /obj/item/projectile/bullet/a22lr fire_sound = 'sound/weapons/gunshot_pathetic.ogg' - grains = 40 - diam = 5.7 - velocity = 370 hud_state = "pistol_light" /obj/item/projectile/bullet/a22lr/ap - grains = 31 - velocity = 530 armor_penetration = 15 hud_state = "pistol_ap" /obj/item/projectile/bullet/a22lr/hp - grains = 38 - velocity = 380 - hollow_point = TRUE armor_penetration = -5 hud_state = "pistol_hollow" @@ -242,16 +120,11 @@ only use the hollow_point and armor_penetration values.*/ /obj/item/projectile/bullet/shotgun //Slug fire_sound = 'sound/weapons/ballistics/a12g.ogg' - grains = 657 - velocity = 489 armor_penetration = -15 //Slugs needed a nerf. Will probably fix the stats for shotguns in general in future updates. /obj/item/projectile/bullet/shotgun/buckshot //#00 Buckshot damage = 13 name = "buckshot pellet" - diam = 8.38 - grains = 53.8 - velocity = 489 armor_penetration = 0 /obj/item/projectile/bullet/shotgun/buckshot/shell @@ -266,26 +139,15 @@ only use the hollow_point and armor_penetration values.*/ /obj/item/projectile/bullet/rifle/a762 //7.62x51 NATO fire_sound = 'sound/weapons/ballistics/a762.ogg' - diam = 7.82 - grains = 147 - velocity = 850 /obj/item/projectile/bullet/rifle/a762/ap - grains = 150.5 - velocity = 854.6 armor_penetration = 25 /obj/item/projectile/bullet/rifle/a762/hp - grains = 175 - energy_add = -539.978 - velocity = 792 armor_penetration = -10 - hollow_point = TRUE /obj/item/projectile/bullet/rifle/a762/rubber armor_penetration = -10 - grains = 142 - velocity = 661 damage = 25 //this still hurts like a motherfucker agony = 100 embed_chance = 0 @@ -294,27 +156,18 @@ only use the hollow_point and armor_penetration values.*/ /obj/item/projectile/bullet/rifle/a762x39 //7.62x39 Soviet fire_sound = 'sound/weapons/ballistics/a762.ogg' - diam = 7.85 - grains = 122 - velocity = 730 hud_state = "rifle" /obj/item/projectile/bullet/rifle/a762x39/ap - grains = 123 - velocity = 740 - energy_add = 117.16 armor_penetration = 25 hud_state = "rifle_ap" /obj/item/projectile/bullet/rifle/a762x39/hp - hollow_point = TRUE armor_penetration = -10 hud_state = "hivelo_iff" /obj/item/projectile/bullet/rifle/a762x39/rubber armor_penetration = -10 - grains = 142 - velocity = 661 damage = 15 //this still hurts like a motherfucker agony = 70 embed_chance = 0 @@ -323,19 +176,12 @@ only use the hollow_point and armor_penetration values.*/ /obj/item/projectile/bullet/rifle/a545 fire_sound = 'sound/weapons/ballistics/a545.ogg' - diam = 5.6 - grains = 53 - velocity = 880 /obj/item/projectile/bullet/rifle/a545/ap - grains = 57 - velocity = 890 armor_penetration = 15 /obj/item/projectile/bullet/rifle/a545/rubber armor_penetration = -10 - grains = 82 - velocity = 761 damage = 15 agony = 60 embed_chance = 0 @@ -343,31 +189,21 @@ only use the hollow_point and armor_penetration values.*/ check_armour = "melee" /obj/item/projectile/bullet/rifle/a545/hp - hollow_point = TRUE armor_penetration = -10 /obj/item/projectile/bullet/rifle/a556 //5.56x45mm NATO - diam = 5.7 - grains = 62 - velocity = 961 hud_state = "rifle" /obj/item/projectile/bullet/rifle/a556/ap - grains = 52 - velocity = 1030 - energy_add = 462.92 armor_penetration = 25 hud_state = "rifle_ap" /obj/item/projectile/bullet/rifle/a556/hp - hollow_point = TRUE armor_penetration = -10 hud_state = "hivelo_iff" /obj/item/projectile/bullet/rifle/a556/rubber armor_penetration = -10 - grains = 82 - velocity = 861 damage = 15 agony = 60 embed_chance = 0 @@ -376,79 +212,39 @@ only use the hollow_point and armor_penetration values.*/ /obj/item/projectile/bullet/rifle/a145 // 14.5×114mm fire_sound = 'sound/weapons/ballistics/a145.ogg' - diam = 14.88 - grains = 921 - velocity = 1000 - -/obj/item/projectile/bullet/rifle/a145/highvel - grains = 700 - energy_add = 9979 - velocity = 1200 /obj/item/projectile/bullet/rifle/a44rifle fire_sound = 'sound/weapons/ballistics/a44rifle.ogg' - diam = 10.9 - grains = 240 - velocity = 536.448 - -/obj/item/projectile/bullet/rifle/a95 //I hate you. There is no real world analog for 9.5x40mm, I will guestimate from the 9x39mm russian round and give it some bonus for future points or whatever - diam = 9.5 - grains = 310 - velocity = 365 //cadyn cope above, beware ^^ - hud_state = "rifle" //beware of cadyn cope above ^^ - Ocelot /obj/item/projectile/bullet/rifle/a9x39 //We also have actual 9x39mm damage = 30 //9mm pistol with 7.62 cartridge? idk russiain chambers. fire_sound = 'sound/weapons/ballistics/a545.ogg' - diam = 9.25 - grains = 259 - velocity = 280 hud_state = "smartgun" /obj/item/projectile/bullet/rifle/a9x39/ap - grains = 267 armor_penetration = 25 hud_state = "minigun" /obj/item/projectile/bullet/rifle/a9x39/rubber armor_penetration = -10 - grains = 282 - velocity = 161 damage = 20 agony = 70 embed_chance = 0 sharp = FALSE check_armour = "melee" -/obj/item/projectile/bullet/rifle/a10x24 - grains = 210 - diam = 10.2 - velocity = 840 - hud_state = "rifle" - /obj/item/projectile/bullet/rifle/a10x24/rubber armor_penetration = -10 - grains = 280 - velocity = 400 damage = 20 agony = 80 embed_chance = 0 sharp = FALSE check_armour = "melee" -/obj/item/projectile/bullet/rifle/a762/lmg //This is actually 7.92x57 ffs - diam = 7.92 - grains = 181 - velocity = 820 - hud_state = "rifle" - /obj/item/projectile/bullet/rifle/a762x54 fire_sound = 'sound/weapons/ballistics/a762x54.ogg' - diam = 7.92 - grains = 151 - velocity = 830 hitscan = 1 hud_state = "sniper_crude" @@ -459,9 +255,6 @@ only use the hollow_point and armor_penetration values.*/ /obj/item/projectile/bullet/rifle/a338 fire_sound = 'sound/weapons/ballistics/a762x54.ogg' damage = 45 - diam = 8.61 - grains = 250 - velocity = 921 hitscan = 1 penetrating = 2 hud_state = "sniper_crude" @@ -473,9 +266,6 @@ only use the hollow_point and armor_penetration values.*/ /obj/item/projectile/bullet/rifle/a50bmg fire_sound = 'sound/weapons/ballistics/a145.ogg' damage = 65 - diam = 13 - grains = 750 - velocity = 860 hitscan = 1 penetrating = 2 hud_state = "sniper_supersonic" @@ -486,74 +276,17 @@ only use the hollow_point and armor_penetration values.*/ /obj/item/projectile/bullet/rifle/a127x108 //Bigass fuckoff LMG round, bigger than 50 BMG fire_sound = 'sound/weapons/serdy/strela.ogg' damage = 60 - diam = 13 - grains = 855 - velocity = 820 penetrating = 2 - armor_penetration=30 + armor_penetration = 30 hud_state = "sniper_fire" -/obj/item/projectile/bullet/rifle/a45lc //yee haw - diam = 11.43 - grains = 250 - velocity = 600 - -/obj/item/projectile/bullet/rifle/a45lc/rifle - grains = 267 - velocity = 800 +/obj/item/projectile/bullet/rifle/a45lc armor_penetration = 15 /obj/item/projectile/bullet/rifle/a45lc/rubber armor_penetration = -10 - grains = 282 - velocity = 200 damage = 20 agony = 70 embed_chance = 0 sharp = FALSE check_armour = "melee" - -//NOTE: Ammo casings and magazines used to be in this part of the file. They have been moved to respective files in the projectiles/ammunition folder. - -//Various "We're not dealing with this shit because of how bad it is" (Some of these may be implemented into the new system with later updates) -/obj/item/projectile/bullet/magnetic - old_bullet_act = TRUE - -/obj/item/projectile/bullet/pellet - old_bullet_act = TRUE - -/obj/item/projectile/bullet/pellet/shotgun/flak - old_bullet_act = TRUE - -/obj/item/projectile/bullet/rifle/a762/hunter - old_bullet_act = TRUE - -/obj/item/projectile/bullet/rifle/a545/hunter - old_bullet_act = TRUE - -/obj/item/projectile/bullet/suffocationbullet - old_bullet_act = TRUE - -/obj/item/projectile/bullet/cyanideround - old_bullet_act = TRUE - -/obj/item/projectile/bullet/burstbullet - old_bullet_act = TRUE - -/obj/item/projectile/bullet/incendiary - old_bullet_act = TRUE - -/obj/item/projectile/bullet/practice - old_bullet_act = TRUE - -/obj/item/projectile/bullet/blank - old_bullet_act = TRUE - -/obj/item/projectile/bullet/srmrocket - old_bullet_act = TRUE - -/obj/item/projectile/bullet/chemdart - old_bullet_act = TRUE - -/obj/item/projectile/bullet/gyro - old_bullet_act = TRUE diff --git a/modular_chomp/code/modules/projectiles/guns/zBallisticPort/projectiles.dm b/modular_chomp/code/modules/projectiles/guns/zBallisticPort/projectiles.dm index 5b174e940b..053a96e5a9 100644 --- a/modular_chomp/code/modules/projectiles/guns/zBallisticPort/projectiles.dm +++ b/modular_chomp/code/modules/projectiles/guns/zBallisticPort/projectiles.dm @@ -106,7 +106,6 @@ /obj/item/projectile/bullet/rifle/a556/hp damage = 40 - hollow_point = TRUE armor_penetration = -10 hud_state = "hivelo_iff" diff --git a/modular_chomp/maps/common_submaps/gateway/snowfield_ch.dm b/modular_chomp/maps/common_submaps/gateway/snowfield_ch.dm index 25669602ce..425279662f 100644 --- a/modular_chomp/maps/common_submaps/gateway/snowfield_ch.dm +++ b/modular_chomp/maps/common_submaps/gateway/snowfield_ch.dm @@ -455,7 +455,6 @@ ) auto_loading_type = CLOSED_BOLT | LOCK_OPEN_EMPTY | LOCK_SLAPPABLE load_method = MAGAZINE - muzzle_velocity = 880 w_class = ITEMSIZE_HUGE actions_types = list(/datum/action/item_action/use_scope) accuracy = 10