diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm index d68031adfb1..d920cf84b35 100644 --- a/code/game/objects/effects/effect_system.dm +++ b/code/game/objects/effects/effect_system.dm @@ -337,7 +337,7 @@ steam.start() -- spawns the effect name = "white phosphorous smoke" /obj/effect/effect/smoke/white_phosphorous/affect(mob/living/carbon/M) - M.fire_stacks += 5 + M.adjust_fire_stacks(5) M.fire_act() ///////////////////////////////////////////// diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 8c3db43c43f..39163d8e64e 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -259,6 +259,8 @@ /obj/proc/add_projectile_penetration(newmult) armor_divisor = initial(armor_divisor) + newmult +/obj/proc/wound_mult_adder(newmult) + /obj/proc/multiply_pierce_penetration(newmult) /obj/proc/multiply_projectile_step_delay(newmult) diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index bcf0fe9b3ef..4f2ff362d6b 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -31,6 +31,8 @@ var/auto_eject_sound = 'sound/weapons/smg_empty_alarm.ogg' //The sound that places when a mag is dropped var/damage_multiplier = 1 //Multiplies damage of projectiles fired from this gun + var/wound_mult_addition = 0 //Directly adds the value to the projectiles wound scaling. + var/penetration_multiplier = 1 //Multiplies armor penetration of projectiles fired from this gun var/pierce_multiplier = 0 //ADDITIVE wall penetration to projectiles fired from this gun var/extra_damage_mult_scoped = 0 //Adds even more damage mulitplier, when scopped so snipers can sniper @@ -557,6 +559,9 @@ For the sake of consistency, I suggest always rounding up on even values when ap if(extra_proj_wallbangmult) projectile.multiply_pierce_penetration(extra_proj_wallbangmult) + if(wound_mult_addition) + projectile.wound_mult_adder(wound_mult_addition) + projectile.multiply_pierce_penetration(pierce_multiplier) if(extra_proj_stepdelaymult) @@ -1294,7 +1299,7 @@ For the sake of consistency, I suggest always rounding up on even values when ap data += list(list("name" = "Overall Damage", "type" = "String", "value" = (P.get_total_damage() * damage_multiplier) + get_total_damage_adjust())) data += list(list("name" = "Armor Divisor", "type" = "String", "value" = P.armor_divisor * penetration_multiplier)) data += list(list("name" = "Overall Pain", "type" = "String", "value" = (P.get_pain_damage()) * proj_agony_multiplier)) - data += list(list("name" = "Wound Scale", "type" = "String", "value" = P.wounding_mult)) + data += list(list("name" = "Wound Scale", "type" = "String", "value" = P.wounding_mult + wound_mult_addition)) data += list(list("name" = "Recoil Multiplier", "type" = "String", "value" = P.recoil)) return data diff --git a/code/modules/projectiles/guns/projectile/automatic/duty.dm b/code/modules/projectiles/guns/projectile/automatic/duty.dm index f2326fdf69e..939364981cc 100644 --- a/code/modules/projectiles/guns/projectile/automatic/duty.dm +++ b/code/modules/projectiles/guns/projectile/automatic/duty.dm @@ -2,11 +2,11 @@ name = "\"Duty\" carbine" desc = "The Duty is a carbine designed by Marshal and Blackshield gunsmiths \ to supplement the ancient pattern boltguns as a standard issue rifle of Blackshield, \ - having the stopping power of the Kardashev-Mosin but with a faster rate of fire and less recoil. \ + boasting a faster rate of fire and more recoil control over other Blackshield weapons. \ The carbine is modernized with a 6,5mm caliber and a light polymer body balanced with heavy steel and plasteel. \ A mass-produced rifle, it has a bayonet for melee engagements \ and it can be reloaded with a stripper clip due to the adapter guide installed on the receiver. \ - Overall a solid battle rifle for a Blackshield trooper." + The Duty has a specialized role in taking down groups of lightly armored personnel while still being a solid battle rifle for a Blackshield trooper." icon = 'icons/obj/guns/projectile/duty.dmi' icon_state = "duty" item_state = "duty" @@ -16,8 +16,9 @@ load_method = SINGLE_CASING|SPEEDLOADER|MAGAZINE matter = list(MATERIAL_PLASTEEL = 25, MATERIAL_PLASTIC = 25) price_tag = 900 - penetration_multiplier = 1.2 - damage_multiplier = 1.2 + penetration_multiplier = 0.8 + wound_mult_addition = 0.4 + damage_multiplier = 1 init_recoil = CARBINE_RECOIL(1.0) fire_sound = 'sound/weapons/guns/fire/carbine.ogg' force = WEAPON_FORCE_ROBUST diff --git a/code/modules/projectiles/guns/projectile/automatic/solmarine.dm b/code/modules/projectiles/guns/projectile/automatic/solmarine.dm index 32165823f1c..3be7a303d0e 100644 --- a/code/modules/projectiles/guns/projectile/automatic/solmarine.dm +++ b/code/modules/projectiles/guns/projectile/automatic/solmarine.dm @@ -23,6 +23,9 @@ saw_off = TRUE sawn = /obj/item/gun/projectile/automatic/omnirifle/solmarine/sawn serial_type = "Sol Fed" + wield_delay = 1 SECOND + wield_delay_factor = 0.3 // 30 vig for insta wield + var/obj/item/gun/projectile/automatic/underslung/shotgun_3/shotgun var/shotgun_haver = TRUE @@ -93,6 +96,8 @@ ) shotgun_haver = FALSE + wield_delay = 0.1 SECOND + wield_delay_factor = 0.1 // 10 vig for insta wield /obj/item/gun/projectile/automatic/omnirifle/solmarine/shotgunless name = "\"Saturnian\" carbine" @@ -112,6 +117,8 @@ BURST_3_ROUND ) gun_parts = list(/obj/item/part/gun/frame/solmarine = 1, /obj/item/part/gun/grip/black = 1, /obj/item/part/gun/mechanism/autorifle = 1, /obj/item/part/gun/barrel/srifle = 1) + wield_delay = 0.2 SECOND + wield_delay_factor = 0.2 // 20 vig for insta wield /obj/item/gun/projectile/automatic/omnirifle/solmarine/shotgunless/update_icon() ..() @@ -154,6 +161,9 @@ SEMI_AUTO_NODELAY, BURST_3_ROUND ) + wield_delay = 0.1 SECOND + wield_delay_factor = 0.01 // 1 vig for insta wield + /obj/item/part/gun/frame/solmarine name = "Solmarine frame" diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 0999c61915c..9a8958e007e 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -179,6 +179,9 @@ /obj/item/projectile/add_projectile_penetration(newmult) armor_divisor = initial(armor_divisor) + newmult +/obj/item/projectile/wound_mult_adder(newadd) + wounding_mult += newadd + /obj/item/projectile/multiply_pierce_penetration(newmult) penetrating = initial(penetrating) + newmult