mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-23 05:00:55 +01:00
Replaces my old and crusty pp-95 with the cool new nukeops tech on the block, smart SMGs (#85211)
## About The Pull Request   Adds the Abielle Smart-SMG to replace the pp-95 entirely. The Abielle performs nearly identically to the pp-95 in nearly all aspects, doing 0.5 less damage because it's not a projectile modifier on 9mm anymore. What the Abielle does do majorly differently, is give it's bullets a slight homing ability VS whatever you clicked on. This keeps the weapon equally useless to it's predecessor at spraying blindly down hallways, while rewarding careful aim with bullets that slightly track the target. ## Why It's Good For The Game The surplus smg sucks, and I don't mean performance-wise (although it certainly does, that's the idea). The surplus smg sucks because typically you would be better suited using it as a melee weapon due to the inaccuracy and low damage. Making the cheapo "I forgot to buy a weapon" gun practically useless is super punishing especially for newer ops who might not remember to buy a weapon first. The smartgun makes the surplus smg still pretty shit compared to the other nukeops guns that can down a man nearly instantly, but means that reinforcements or broke ass nukeops can still be relatively effective so long as they can click on a spaceman across the screen. ## Changelog 🆑 balance: The nukeops surplus smg, the pp-95, has been reworked into the Abielle Smart-SMG. It performs nearly identically to the pp-95, however it's projectiles get a slight homing ability towards whatever you click on. sound: New firing sounds for the surplus smg, credit to the m41 sound effects from tgmc image: New sprites for the surplus smg, made by me /🆑
This commit is contained in:
@@ -26,7 +26,7 @@
|
||||
desc = "A 10mm reaper bullet casing."
|
||||
projectile_type = /obj/projectile/bullet/c10mm/reaper
|
||||
|
||||
// 9mm (Makarov, Stechkin APS, PP-95)
|
||||
// 9mm (Makarov, Stechkin APS)
|
||||
|
||||
/obj/item/ammo_casing/c9mm
|
||||
name = "9mm bullet casing"
|
||||
@@ -49,7 +49,6 @@
|
||||
desc = "A 9mm incendiary bullet casing."
|
||||
projectile_type = /obj/projectile/bullet/incendiary/c9mm
|
||||
|
||||
|
||||
// .50AE (Desert Eagle)
|
||||
|
||||
/obj/item/ammo_casing/a50ae
|
||||
@@ -57,3 +56,21 @@
|
||||
desc = "A .50AE bullet casing."
|
||||
caliber = CALIBER_50AE
|
||||
projectile_type = /obj/projectile/bullet/a50ae
|
||||
|
||||
// .160 Smart (Abielle smartgun)
|
||||
|
||||
/obj/item/ammo_casing/c160smart
|
||||
name = ".160 smart bullet casing"
|
||||
desc = "A .160 smart bullet with a small charge of booster propellant at the bottom."
|
||||
icon_state = "smartgun_casing"
|
||||
caliber = CALIBER_160SMART
|
||||
projectile_type = /obj/projectile/bullet/c160smart
|
||||
|
||||
/obj/item/ammo_casing/c160smart/Initialize(mapload)
|
||||
. = ..()
|
||||
AddElement(/datum/element/caseless)
|
||||
|
||||
/obj/item/ammo_casing/c160smart/ready_proj(atom/target, mob/living/user, quiet, zone_override, atom/fired_from)
|
||||
. = ..()
|
||||
if(!isturf(target))
|
||||
loaded_projectile.set_homing_target(target)
|
||||
|
||||
+8
-10
@@ -30,18 +30,16 @@
|
||||
. = ..()
|
||||
icon_state = "[base_icon_state]-[round(ammo_count(), 4)]"
|
||||
|
||||
/obj/item/ammo_box/magazine/plastikov9mm
|
||||
name = "PP-95 magazine (9mm)"
|
||||
icon_state = "9x19-50"
|
||||
base_icon_state = "9x19"
|
||||
ammo_type = /obj/item/ammo_casing/c9mm
|
||||
caliber = CALIBER_9MM
|
||||
/obj/item/ammo_box/magazine/smartgun
|
||||
name = "Abielle magazine (.160 Smart)"
|
||||
icon_state = "smartgun"
|
||||
base_icon_state = "smartgun"
|
||||
ammo_type = /obj/item/ammo_casing/c160smart
|
||||
multiple_sprites = AMMO_BOX_FULL_EMPTY
|
||||
multiple_sprite_use_base = TRUE
|
||||
caliber = CALIBER_160SMART
|
||||
max_ammo = 50
|
||||
|
||||
/obj/item/ammo_box/magazine/plastikov9mm/update_icon_state()
|
||||
. = ..()
|
||||
icon_state = "[base_icon_state]-[ammo_count() ? 50 : 0]"
|
||||
|
||||
/obj/item/ammo_box/magazine/uzim9mm
|
||||
name = "uzi magazine (9mm)"
|
||||
icon_state = "uzi9mm-32"
|
||||
|
||||
@@ -86,20 +86,33 @@
|
||||
/obj/item/gun/ballistic/automatic/wt550/add_bayonet_point()
|
||||
AddComponent(/datum/component/bayonet_attachable, offset_x = 25, offset_y = 12)
|
||||
|
||||
/obj/item/gun/ballistic/automatic/plastikov
|
||||
name = "\improper PP-95 SMG"
|
||||
desc = "An ancient 9mm submachine gun pattern updated and simplified to lower costs, though perhaps simplified too much."
|
||||
icon_state = "plastikov"
|
||||
inhand_icon_state = "plastikov"
|
||||
accepted_magazine_type = /obj/item/ammo_box/magazine/plastikov9mm
|
||||
burst_size = 5
|
||||
spread = 25
|
||||
can_suppress = FALSE
|
||||
/obj/item/gun/ballistic/automatic/smartgun
|
||||
name = "\improper Abielle Smart-SMG"
|
||||
desc = "An old experiment in smart-weapon technology that guides bullets towards the target the gun was aimed at when fired. \
|
||||
While the tracking functions worked fine, the gun is prone to insanely wide spread thanks to it's practically non-existant barrel."
|
||||
icon_state = "smartgun"
|
||||
inhand_icon_state = "smartgun"
|
||||
accepted_magazine_type = /obj/item/ammo_box/magazine/smartgun
|
||||
burst_size = 4
|
||||
fire_delay = 1
|
||||
spread = 40
|
||||
dual_wield_spread = 20
|
||||
actions_types = list()
|
||||
projectile_damage_multiplier = 0.35 //It's like 10.5 damage per bullet, it's close enough to 10 shots
|
||||
bolt_type = BOLT_TYPE_LOCKING
|
||||
can_suppress = FALSE
|
||||
mag_display = TRUE
|
||||
empty_indicator = TRUE
|
||||
fire_sound = 'sound/weapons/gun/smg/shot_alt.ogg'
|
||||
click_on_low_ammo = FALSE
|
||||
/// List of the possible firing sounds
|
||||
var/list/firing_sound_list = list(
|
||||
'sound/weapons/gun/smartgun/smartgun_shoot_1.ogg',
|
||||
'sound/weapons/gun/smartgun/smartgun_shoot_2.ogg',
|
||||
'sound/weapons/gun/smartgun/smartgun_shoot_3.ogg',
|
||||
)
|
||||
|
||||
/obj/item/gun/ballistic/automatic/smartgun/fire_sounds()
|
||||
var/picked_fire_sound = pick(firing_sound_list)
|
||||
playsound(src, picked_fire_sound, fire_sound_volume, vary_fire_sound)
|
||||
|
||||
/obj/item/gun/ballistic/automatic/mini_uzi
|
||||
name = "\improper Type U3 Uzi"
|
||||
|
||||
@@ -71,3 +71,25 @@
|
||||
impact_light_intensity = 5
|
||||
impact_light_range = 1
|
||||
impact_light_color_override = LIGHT_COLOR_DIM_YELLOW
|
||||
|
||||
// .160 Smart
|
||||
|
||||
/obj/projectile/bullet/c160smart
|
||||
name = ".160 smart bullet"
|
||||
icon_state = "smartgun"
|
||||
damage = 10
|
||||
embed_type = /datum/embed_data/bullet_c160smart
|
||||
speed = 2
|
||||
homing_turn_speed = 5
|
||||
homing_inaccuracy_min = 4
|
||||
homing_inaccuracy_max = 10
|
||||
|
||||
/datum/embed_data/bullet_c160smart
|
||||
embed_chance = 10
|
||||
fall_chance = 5
|
||||
jostle_chance = 3
|
||||
ignore_throwspeed_threshold = TRUE
|
||||
pain_stam_pct = 0.25
|
||||
pain_mult = 3
|
||||
jostle_pain_mult = 6
|
||||
rip_time = 5
|
||||
|
||||
Reference in New Issue
Block a user