From 0cdd2da44ca50a54ecc6343e654210d750080bd0 Mon Sep 17 00:00:00 2001 From: Rykka Date: Tue, 5 Apr 2022 22:44:02 -0600 Subject: [PATCH] Adds hud_states to almost all weaponry, credit to Serdy Reshuffles files to match Polaris --- code/_onclick/hud/screen_objects.dm | 81 +++++++++++++++++ code/_onclick/hud/screen_objects_ch.dm | 82 +----------------- .../guns/energy/cell_loaded_vr/nerd_cells.dm | 1 + code/modules/projectiles/projectile/beams.dm | 40 +++++++-- .../projectiles/projectile/beams_ch.dm | 7 ++ .../modules/projectiles/projectile/bullets.dm | 38 ++++++++ .../projectiles/projectile/bullets_ch.dm | 44 +++++++++- code/modules/projectiles/projectile/energy.dm | 32 ++++++- .../projectiles/projectile/energy_ch.dm | 2 + .../projectiles/projectile/energy_yw.dm | 7 ++ .../projectiles/projectile/magnetic.dm | 13 +++ .../projectiles/projectile/magnetic_ch.dm | 2 + .../modules/projectiles/projectile/special.dm | 14 ++- icons/mob/screen_ammo.dmi | Bin 5639 -> 5633 bytes 14 files changed, 272 insertions(+), 91 deletions(-) diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 00446add6d..c4b80f27ae 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -898,3 +898,84 @@ icon_state = null plane = PLANE_HOLOMAP_ICONS appearance_flags = KEEP_TOGETHER + +// Begin TGMC Ammo HUD Port +/obj/screen/ammo + name = "ammo" + icon = 'icons/mob/screen_ammo.dmi' + icon_state = "ammo" + 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) + +/obj/screen/ammo/proc/add_hud(var/mob/living/user, var/obj/item/weapon/gun/G) + + if(!user?.client) + return + + // var/obj/item/weapon/gun/G = user.get_active_hand() + + if(!G) + CRASH("/obj/screen/ammo/proc/add_hud() has been called from [src] without the required param of G") + + if(!G.has_ammo_counter()) + return + + user.client.screen += src + +/obj/screen/ammo/proc/remove_hud(var/mob/living/user) + user?.client?.screen -= src + +/obj/screen/ammo/proc/update_hud(var/mob/living/user, var/obj/item/weapon/gun/G) + if(!user?.client?.screen.Find(src)) + return + + // var/obj/item/weapon/gun/G = user.get_active_hand() + + if(!G || !istype(G) || !G.has_ammo_counter() || !G.get_ammo_type() || isnull(G.get_ammo_count())) + remove_hud() + return + + var/list/ammo_type = G.get_ammo_type() + var/rounds = G.get_ammo_count() + + var/hud_state = ammo_type[1] + var/hud_state_empty = ammo_type[2] + + overlays.Cut() + + var/empty = image('icons/mob/screen_ammo.dmi', src, "[hud_state_empty]") + + if(rounds == 0) + if(warned) + overlays += empty + else + warned = TRUE + var/obj/screen/ammo/F = new /obj/screen/ammo(src) + F.icon_state = "frame" + user.client.screen += F + flick("[hud_state_empty]_flash", F) + spawn(20) + user.client.screen -= F + qdel(F) + overlays += empty + else + warned = FALSE + overlays += image('icons/mob/screen_ammo.dmi', src, "[hud_state]") + + rounds = num2text(rounds) + //Handle the amount of rounds + switch(length(rounds)) + if(1) + overlays += image('icons/mob/screen_ammo.dmi', src, "o[rounds[1]]") + if(2) + overlays += image('icons/mob/screen_ammo.dmi', src, "o[rounds[2]]") + overlays += image('icons/mob/screen_ammo.dmi', src, "t[rounds[1]]") + if(3) + overlays += image('icons/mob/screen_ammo.dmi', src, "o[rounds[3]]") + overlays += image('icons/mob/screen_ammo.dmi', src, "t[rounds[2]]") + overlays += image('icons/mob/screen_ammo.dmi', src, "h[rounds[1]]") + else //"0" is still length 1 so this means it's over 999 + overlays += image('icons/mob/screen_ammo.dmi', src, "o9") + overlays += image('icons/mob/screen_ammo.dmi', src, "t9") + overlays += image('icons/mob/screen_ammo.dmi', src, "h9") \ No newline at end of file diff --git a/code/_onclick/hud/screen_objects_ch.dm b/code/_onclick/hud/screen_objects_ch.dm index 0d70f974a5..c229c3c57c 100644 --- a/code/_onclick/hud/screen_objects_ch.dm +++ b/code/_onclick/hud/screen_objects_ch.dm @@ -28,84 +28,4 @@ object_overlays += item_overlay add_overlay(object_overlays) - -// Begin TGMC Ammo HUD Port -/obj/screen/ammo - name = "ammo" - icon = 'icons/mob/screen_ammo.dmi' - icon_state = "ammo" - 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) - -/obj/screen/ammo/proc/add_hud(var/mob/living/user, var/obj/item/weapon/gun/G) - - if(!user?.client) - return - - // var/obj/item/weapon/gun/G = user.get_active_hand() - - if(!G) - CRASH("/obj/screen/ammo/proc/add_hud() has been called from [src] without the required param of G") - - if(!G.has_ammo_counter()) - return - - user.client.screen += src - -/obj/screen/ammo/proc/remove_hud(var/mob/living/user) - user?.client?.screen -= src - -/obj/screen/ammo/proc/update_hud(var/mob/living/user, var/obj/item/weapon/gun/G) - if(!user?.client?.screen.Find(src)) - return - - // var/obj/item/weapon/gun/G = user.get_active_hand() - - if(!G || !istype(G) || !G.has_ammo_counter() || !G.get_ammo_type() || isnull(G.get_ammo_count())) - remove_hud() - return - - var/list/ammo_type = G.get_ammo_type() - var/rounds = G.get_ammo_count() - - var/hud_state = ammo_type[1] - var/hud_state_empty = ammo_type[2] - - overlays.Cut() - - var/empty = image('icons/mob/screen_ammo.dmi', src, "[hud_state_empty]") - - if(rounds == 0) - if(warned) - overlays += empty - else - warned = TRUE - var/obj/screen/ammo/F = new /obj/screen/ammo(src) - F.icon_state = "frame" - user.client.screen += F - flick("[hud_state_empty]_flash", F) - spawn(20) - user.client.screen -= F - qdel(F) - overlays += empty - else - warned = FALSE - overlays += image('icons/mob/screen_ammo.dmi', src, "[hud_state]") - - rounds = num2text(rounds) - //Handle the amount of rounds - switch(length(rounds)) - if(1) - overlays += image('icons/mob/screen_ammo.dmi', src, "o[rounds[1]]") - if(2) - overlays += image('icons/mob/screen_ammo.dmi', src, "o[rounds[2]]") - overlays += image('icons/mob/screen_ammo.dmi', src, "t[rounds[1]]") - if(3) - overlays += image('icons/mob/screen_ammo.dmi', src, "o[rounds[3]]") - overlays += image('icons/mob/screen_ammo.dmi', src, "t[rounds[2]]") - overlays += image('icons/mob/screen_ammo.dmi', src, "h[rounds[1]]") - else //"0" is still length 1 so this means it's over 999 - overlays += image('icons/mob/screen_ammo.dmi', src, "o9") - overlays += image('icons/mob/screen_ammo.dmi', src, "t9") - overlays += image('icons/mob/screen_ammo.dmi', src, "h9") \ No newline at end of file + \ No newline at end of file diff --git a/code/modules/projectiles/guns/energy/cell_loaded_vr/nerd_cells.dm b/code/modules/projectiles/guns/energy/cell_loaded_vr/nerd_cells.dm index 48e16029e2..34a1790ffb 100644 --- a/code/modules/projectiles/guns/energy/cell_loaded_vr/nerd_cells.dm +++ b/code/modules/projectiles/guns/energy/cell_loaded_vr/nerd_cells.dm @@ -13,6 +13,7 @@ damage = 0 check_armour = "laser" light_color = "#80F5FF" + hud_state = "laser_disabler" combustion = FALSE diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 4635684f25..d363bc7ccf 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -20,7 +20,7 @@ muzzle_type = /obj/effect/projectile/muzzle/laser tracer_type = /obj/effect/projectile/tracer/laser impact_type = /obj/effect/projectile/impact/laser - + hud_state = "laser" hud_state_empty = "battery_empty" @@ -32,15 +32,18 @@ damage_type = BURN check_armour = "laser" eyeblur = 2 + hud_state = "laser" /obj/item/projectile/beam/weaklaser name = "weak laser" icon_state = "laser" damage = 15 + hud_state = "laser" /obj/item/projectile/beam/weaklaser/blue icon_state = "bluelaser" light_color = "#0066FF" + hud_state = "laser_disabler" muzzle_type = /obj/effect/projectile/muzzle/laser_blue tracer_type = /obj/effect/projectile/tracer/laser_blue @@ -48,14 +51,17 @@ /obj/item/projectile/beam/smalllaser damage = 25 + hud_state = "laser" /obj/item/projectile/beam/burstlaser damage = 30 armor_penetration = 10 + hud_state = "laser" /obj/item/projectile/beam/midlaser damage = 40 armor_penetration = 10 + hud_state = "laser" /obj/item/projectile/beam/heavylaser name = "heavy laser" @@ -70,6 +76,7 @@ muzzle_type = /obj/effect/projectile/muzzle/laser_heavy tracer_type = /obj/effect/projectile/tracer/laser_heavy impact_type = /obj/effect/projectile/impact/laser_heavy + hud_state = "laser_overcharge" /obj/item/projectile/beam/heavylaser/fakeemitter name = "emitter beam" @@ -77,6 +84,7 @@ fire_sound = 'sound/weapons/emitter.ogg' light_color = "#00CC33" excavation_amount = 140 // 2 shots to dig a standard rock turf. Superior due to being a mounted tool beam, to make it actually viable. + hud_state = "laser_overcharge" muzzle_type = /obj/effect/projectile/muzzle/emitter tracer_type = /obj/effect/projectile/tracer/emitter @@ -86,6 +94,7 @@ damage = 80 armor_penetration = 50 light_color = "#FF0D00" + hud_state = "laser_overcharge" /obj/item/projectile/beam/xray name = "xray beam" @@ -94,6 +103,7 @@ damage = 25 armor_penetration = 50 light_color = "#00CC33" + hud_state = "laser_sniper" muzzle_type = /obj/effect/projectile/muzzle/xray tracer_type = /obj/effect/projectile/tracer/xray @@ -107,6 +117,7 @@ armor_penetration = 90 irradiate = 20 light_color = "#00CC33" + hud_state = "laser_sniper" muzzle_type = /obj/effect/projectile/muzzle/xray tracer_type = /obj/effect/projectile/tracer/xray @@ -118,6 +129,7 @@ fire_sound = 'sound/weapons/eluger.ogg' damage = 40 light_color = "#00C6FF" + hud_state = "laser_disabler" muzzle_type = /obj/effect/projectile/muzzle/laser_omni tracer_type = /obj/effect/projectile/tracer/laser_omni @@ -130,6 +142,7 @@ damage = 100 //Badmin toy, don't care armor_penetration = 100 light_color = "#0066FF" + hud_state = "pulse" muzzle_type = /obj/effect/projectile/muzzle/laser_pulse tracer_type = /obj/effect/projectile/tracer/laser_pulse @@ -147,6 +160,7 @@ damage = 0 // The actual damage is computed in /code/modules/power/singularity/emitter.dm light_color = "#00CC33" excavation_amount = 70 // 3 shots to mine a turf + hud_state = "laser_overcharge" muzzle_type = /obj/effect/projectile/muzzle/emitter tracer_type = /obj/effect/projectile/tracer/emitter @@ -160,13 +174,14 @@ no_attack_log = 1 damage_type = BURN check_armour = "laser" + hud_state = "monkey" combustion = FALSE /obj/item/projectile/beam/lasertag/blue icon_state = "bluelaser" light_color = "#0066FF" - + hud_state = "monkey" muzzle_type = /obj/effect/projectile/muzzle/laser_blue tracer_type = /obj/effect/projectile/tracer/laser_blue impact_type = /obj/effect/projectile/impact/laser_blue @@ -181,6 +196,7 @@ /obj/item/projectile/beam/lasertag/red icon_state = "laser" light_color = "#FF0D00" + hud_state = "monkey" /obj/item/projectile/beam/lasertag/red/on_hit(var/atom/target, var/blocked = 0) if(ishuman(target)) @@ -192,6 +208,7 @@ /obj/item/projectile/beam/lasertag/omni//A laser tag bolt that stuns EVERYONE icon_state = "omnilaser" light_color = "#00C6FF" + hud_state = "monkey" muzzle_type = /obj/effect/projectile/muzzle/laser_omni tracer_type = /obj/effect/projectile/tracer/laser_omni @@ -211,6 +228,7 @@ damage = 50 armor_penetration = 10 light_color = "#00CC33" + hud_state = "laser_sniper" muzzle_type = /obj/effect/projectile/muzzle/xray tracer_type = /obj/effect/projectile/tracer/xray @@ -227,12 +245,13 @@ light_color = "#FFFFFF" hitsound = 'sound/weapons/zapbang.ogg' + combustion = FALSE muzzle_type = /obj/effect/projectile/muzzle/stun tracer_type = /obj/effect/projectile/tracer/stun impact_type = /obj/effect/projectile/impact/stun - + hud_state = "taser" // TGMC Ammo HUD port /obj/item/projectile/beam/stun/weak @@ -269,6 +288,7 @@ muzzle_type = /obj/effect/projectile/muzzle/laser_omni tracer_type = /obj/effect/projectile/tracer/laser_omni impact_type = /obj/effect/projectile/impact/laser_omni + hud_state = "laser_disabler" /obj/item/projectile/beam/stun/blue icon_state = "bluelaser" @@ -276,6 +296,7 @@ muzzle_type = /obj/effect/projectile/muzzle/laser_blue tracer_type = /obj/effect/projectile/tracer/laser_blue impact_type = /obj/effect/projectile/impact/laser_blue + hud_state = "laser_disabler" /obj/item/projectile/beam/disable name = "disabler beam" @@ -285,6 +306,7 @@ agony = 100 //One shot stuns for the time being until adjustments are fully made. damage_type = HALLOSS light_color = "#00CECE" + hud_state = "laser_disabler" muzzle_type = /obj/effect/projectile/muzzle/laser_omni tracer_type = /obj/effect/projectile/tracer/laser_omni @@ -303,6 +325,7 @@ agony = 15 eyeblur = 2 hitsound = 'sound/weapons/zapbang.ogg' + hud_state = "taser" /obj/item/projectile/beam/shock/weak damage = 5 @@ -317,7 +340,7 @@ muzzle_type = /obj/effect/projectile/muzzle/precursor tracer_type = /obj/effect/projectile/tracer/precursor impact_type = /obj/effect/projectile/impact/precursor - + hud_state = "plasma_rifle" damage = 48 armor_penetration = 10 /obj/item/projectile/beam/eluger @@ -327,6 +350,7 @@ muzzle_type = /obj/effect/projectile/muzzle/xray tracer_type = /obj/effect/projectile/tracer/xray impact_type = /obj/effect/projectile/impact/xray + hud_state = "laser" /obj/item/projectile/beam/imperial name = "laser beam" @@ -336,7 +360,7 @@ muzzle_type = /obj/effect/projectile/muzzle/darkmatter tracer_type = /obj/effect/projectile/tracer/darkmatter impact_type = /obj/effect/projectile/impact/darkmatter - + hud_state = "plasma_rifle_blast" // // Projectile Beam Definitions // @@ -347,7 +371,7 @@ damage_type = ELECTROCUTE //You should be safe inside a voidsuit sharp = FALSE //"Wide" spectrum beam light_color = COLOR_GOLD - + hud_state = "monkey" excavation_amount = 200 // Good at shooting rocks muzzle_type = /obj/effect/projectile/muzzle/pointdefense @@ -364,6 +388,8 @@ agony = 5 damage_type = HALLOSS light_color = "#00CC33" + hud_state = "flame_green" + hud_state_empty = "flame_empty" muzzle_type = /obj/effect/projectile/muzzle/xray tracer_type = /obj/effect/projectile/tracer/xray @@ -389,7 +415,7 @@ damage_type = BURN check_armour = "laser" light_color = "#80F5FF" - + hud_state = "laser_disabler" combustion = FALSE muzzle_type = /obj/effect/projectile/muzzle/medigun diff --git a/code/modules/projectiles/projectile/beams_ch.dm b/code/modules/projectiles/projectile/beams_ch.dm index cc0925cad5..6c2afaf856 100644 --- a/code/modules/projectiles/projectile/beams_ch.dm +++ b/code/modules/projectiles/projectile/beams_ch.dm @@ -8,6 +8,7 @@ muzzle_type = /obj/effect/projectile/muzzle/phaser tracer_type = /obj/effect/projectile/tracer/phaser impact_type = /obj/effect/projectile/impact/phaser + hud_state = "laser_heat" /obj/item/projectile/beam/phaser/light @@ -20,6 +21,7 @@ tracer_type = /obj/effect/projectile/tracer/phaser/light impact_type = /obj/effect/projectile/impact/phaser/light + /obj/item/projectile/beam/phaser/heavy SA_bonus_damage = 55 icon_state = "phaser_heavy" @@ -29,16 +31,19 @@ tracer_type = /obj/effect/projectile/tracer/phaser/heavy impact_type = /obj/effect/projectile/impact/phaser/heavy + /obj/item/projectile/beam/phaser/heavy/cannon damage = 15 SA_bonus_damage = 60 + /obj/effect/projectile/tracer/phaser icon = 'icons/obj/projectiles_ch.dmi' icon_state = "phaser_tracer" light_color = "#F18F12" light_range = 2 light_power = 0.5 + hud_state = "laser_heat" /obj/effect/projectile/tracer/phaser/heavy icon_state = "phaser_heavy_tracer" @@ -56,6 +61,7 @@ light_color = "#F18F12" light_range = 2 light_power = 0.5 + hud_state = "laser_heat" /obj/effect/projectile/muzzle/phaser/heavy icon_state = "phaser_heavy_muzzle" @@ -73,6 +79,7 @@ light_color = "#F18F12" light_range = 2 light_power = 0.5 + hud_state = "laser_heat" /obj/effect/projectile/impact/phaser/heavy icon_state = "phaser_heavy_impact" diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 2c2e0c12da..9e6724b0fa 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -12,6 +12,7 @@ hitsound_wall = "ricochet" impact_effect_type = /obj/effect/temp_visual/impact_effect var/mob_passthrough_check = 0 + hud_state = "pistol_lightap" muzzle_type = /obj/effect/projectile/muzzle/bullet @@ -110,6 +111,7 @@ embed_chance = 0 sharp = FALSE check_armour = "melee" + hud_state = "pistol_special" /obj/item/projectile/bullet/pistol/rubber // "Rubber" bullets for all other pistols. name = "rubber bullet" @@ -118,6 +120,7 @@ embed_chance = 0 sharp = FALSE check_armour = "melee" + hud_state = "pistol_special" fire_sound ='sound/weapons/Gunshot_pathetic.ogg' // Rubber shots have less powder in the casing. /* shotgun projectiles */ @@ -128,6 +131,8 @@ fire_sound = 'sound/weapons/Gunshot_shotgun.ogg' damage = 50 armor_penetration = 20 + hud_state = "shotgun_slug" + hud_state_empty = "shotgun_empty" /obj/item/projectile/bullet/shotgun/beanbag //because beanbags are not bullets name = "beanbag" @@ -136,6 +141,7 @@ embed_chance = 0 sharp = FALSE check_armour = "melee" + hud_state = "shotgun_beanbag" //Should do about 80 damage at 1 tile distance (adjacent), and 50 damage at 3 tiles distance. //Overall less damage than slugs in exchange for more damage at very close range and more embedding @@ -146,12 +152,14 @@ pellets = 6 range_step = 1 spread_step = 10 + hud_state = "shotgun_buckshot" /obj/item/projectile/bullet/pellet/shotgun/flak damage = 2 //The main weapon using these fires four at a time, usually with different destinations. Usually. range_step = 2 spread_step = 30 armor_penetration = 10 + hud_state = "shotgun_flechette" //EMP shotgun 'slug', it's basically a beanbag that pops a tiny emp when it hits. //Not currently used /obj/item/projectile/bullet/shotgun/ion @@ -161,6 +169,7 @@ embed_chance = 0 sharp = FALSE check_armour = "melee" + hud_state = "shotgun_ion" combustion = FALSE @@ -176,46 +185,57 @@ fire_sound = 'sound/weapons/Gunshot_generic_rifle.ogg' armor_penetration = 15 penetrating = 1 + hud_state = "rifle" + hud_state_empty = "rifle_empty" /obj/item/projectile/bullet/rifle/a762 fire_sound = 'sound/weapons/Gunshot_heavy.ogg' damage = 35 + hud_state = "rifle_heavy" /obj/item/projectile/bullet/rifle/a762/sniper // Hitscan specifically for sniper ammo; to be implimented at a later date, probably for the SVD. -Ace fire_sound = 'sound/weapons/Gunshot_sniper.ogg' hitscan = 1 //so the ammo isn't useless as a sniper weapon + hud_state = "hivelo" /obj/item/projectile/bullet/rifle/a762/ap damage = 30 armor_penetration = 50 // At 30 or more armor, this will do more damage than standard rounds. + hud_state = "rifle_ap" /obj/item/projectile/bullet/rifle/a762/hp damage = 40 armor_penetration = -50 penetrating = 0 + hud_state = "hivelo_iff" /obj/item/projectile/bullet/rifle/a762/hunter // Optimized for killing simple animals and not people, because Balance(tm) damage = 20 SA_bonus_damage = 50 // 70 total on animals. SA_vulnerability = SA_ANIMAL + hud_state = "rifle_heavy" /obj/item/projectile/bullet/rifle/a545 fire_sound = 'sound/weapons/Gunshot_light.ogg' damage = 25 + hud_state = "rifle" /obj/item/projectile/bullet/rifle/a545/ap damage = 20 armor_penetration = 50 // At 40 or more armor, this will do more damage than standard rounds. + hud_state = "rifle_ap" /obj/item/projectile/bullet/rifle/a545/hp damage = 35 armor_penetration = -50 penetrating = 0 + hud_state = "hivelo_iff" /obj/item/projectile/bullet/rifle/a545/hunter damage = 15 SA_bonus_damage = 35 // 50 total on animals. SA_vulnerability = SA_ANIMAL + hud_state = "rifle_heavy" /obj/item/projectile/bullet/rifle/a145 // 14.5�114mm is bigger than a .50 BMG round. fire_sound = 'sound/weapons/Gunshot_cannon.ogg' // This is literally an anti-tank rifle caliber. It better sound like a fucking cannon. @@ -225,6 +245,7 @@ penetrating = 5 armor_penetration = 80 hitscan = 1 //so the PTR isn't useless as a sniper weapon + hud_state = "sniper" icon_state = "bullet_alt" tracer_type = /obj/effect/projectile/tracer/cannon @@ -235,10 +256,12 @@ weaken = 0 penetrating = 15 armor_penetration = 90 + hud_state = "sniper_flak" /obj/item/projectile/bullet/rifle/a44rifle fire_sound = 'sound/weapons/gunshot4.ogg' damage = 50 + hud_state = "revolver" /* Miscellaneous */ @@ -246,11 +269,13 @@ name = "co bullet" damage = 20 damage_type = OXY + hud_state = "pistol_tranq" /obj/item/projectile/bullet/cyanideround name = "poison bullet" damage = 40 damage_type = TOX + hud_state = "pistol_tranq" /obj/item/projectile/bullet/burstbullet name = "exploding bullet" @@ -258,6 +283,7 @@ damage = 20 embed_chance = 0 edge = TRUE + hud_state = "pistol_fire" /obj/item/projectile/bullet/burstbullet/on_hit(var/atom/target, var/blocked = 0) if(isturf(target)) @@ -273,6 +299,7 @@ damage_type = BURN incendiary = 0.5 flammability = 2 + hud_state = "pistol_fire" /obj/item/projectile/bullet/incendiary/flamethrower name = "ball of fire" @@ -285,12 +312,14 @@ agony = 30 range = 4 vacuum_traversal = 0 + hud_state = "flame" /obj/item/projectile/bullet/incendiary/flamethrower/large damage = 5 incendiary = 3 flammability = 2 range = 6 + hud_state = "flame" /obj/item/projectile/bullet/incendiary/flamethrower/tiny damage = 2 @@ -300,11 +329,13 @@ modifier_duration = 20 SECONDS range = 6 agony = 0 + hud_state = "flame" /* Practice rounds and blanks */ /obj/item/projectile/bullet/practice damage = 5 + hud_state = "smg_light" /obj/item/projectile/bullet/pistol/cap // Just the primer, such as a cap gun. name = "cap" @@ -314,6 +345,7 @@ nodamage = 1 embed_chance = 0 sharp = FALSE + hud_state = "monkey" combustion = FALSE @@ -329,6 +361,7 @@ nodamage = 1 embed_chance = 0 sharp = FALSE + hud_state = "smg_light" /* BB Rounds */ /obj/item/projectile/bullet/bb // Generic single BB @@ -338,6 +371,7 @@ embed_chance = 0 sharp = FALSE silenced = TRUE + hud_state = "pistol_light" /obj/item/projectile/bullet/pellet/shotgun/bb // Shotgun name = "BB" @@ -349,6 +383,7 @@ range_step = 1 spread_step = 10 silenced = TRUE + hud_state = "pistol_light" /* toy projectiles */ /obj/item/projectile/bullet/cap @@ -362,6 +397,7 @@ impact_effect_type = null fire_sound = 'sound/effects/snap.ogg' combustion = FALSE + hud_state = "pistol_light" /obj/item/projectile/bullet/cap/process() loc = null @@ -381,6 +417,7 @@ icon = 'icons/obj/gun_toy.dmi' icon_state = "foamdart_proj" range = 15 + hud_state = "grenade_dummy" /obj/item/projectile/bullet/foam_dart/on_impact(var/atom/A) . = ..() @@ -409,6 +446,7 @@ icon = 'icons/obj/gun_toy.dmi' icon_state = "foamdart_riot_proj" range = 15 + hud_state = "grenade_he" /obj/item/projectile/bullet/foam_dart_riot/on_impact(var/atom/A) . = ..() diff --git a/code/modules/projectiles/projectile/bullets_ch.dm b/code/modules/projectiles/projectile/bullets_ch.dm index 27f3c5e259..5a86baf385 100644 --- a/code/modules/projectiles/projectile/bullets_ch.dm +++ b/code/modules/projectiles/projectile/bullets_ch.dm @@ -80,16 +80,19 @@ only use the hollow_point and armor_penetration values.*/ velocity = 716 damage = 15 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 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 armor_penetration = -10 + hud_state = "smg" /obj/item/projectile/bullet/a357 fire_sound = 'sound/weapons/gunshot4.ogg' @@ -97,27 +100,32 @@ only use the hollow_point and armor_penetration values.*/ 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 @@ -125,18 +133,21 @@ only use the hollow_point and armor_penetration values.*/ 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 @@ -153,12 +164,14 @@ only use the hollow_point and armor_penetration values.*/ diam = 10.17 grains = 180 velocity = 400 + hud_state = "pistol" /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 @@ -166,6 +179,7 @@ only use the hollow_point and armor_penetration values.*/ velocity = 490 armor_penetration = -10 hollow_point = TRUE + hud_state = "pistol_hollow" /obj/item/projectile/bullet/a10mm/rubber armor_penetration = -10 @@ -182,12 +196,14 @@ only use the hollow_point and armor_penetration values.*/ 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 @@ -195,23 +211,27 @@ only use the hollow_point and armor_penetration values.*/ 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" //Shotgun projectiles @@ -233,6 +253,7 @@ only use the hollow_point and armor_penetration values.*/ use_submunitions = TRUE submunition_spread_max = 67.5 submunitions = list(/obj/item/projectile/bullet/shotgun/buckshot = 8) + hud_state = "shotgun_buckshot" //Rifle projectiles /obj/item/projectile/bullet/rifle @@ -271,16 +292,19 @@ only use the hollow_point and armor_penetration values.*/ 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 @@ -321,16 +345,19 @@ only use the hollow_point and armor_penetration values.*/ 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 @@ -363,16 +390,21 @@ only use the hollow_point and armor_penetration values.*/ 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 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 @@ -388,6 +420,7 @@ only use the hollow_point and armor_penetration values.*/ grains = 210 diam = 10.2 velocity = 840 + hud_state = "rifle" /obj/item/projectile/bullet/rifle/a10x24/rubber armor_penetration = -10 @@ -403,6 +436,7 @@ only use the hollow_point and armor_penetration values.*/ diam = 7.92 grains = 181 velocity = 820 + hud_state = "rifle" /obj/item/projectile/bullet/rifle/a762x54 fire_sound = 'sound/weapons/ballistics/a762x54.ogg' @@ -410,9 +444,11 @@ only use the hollow_point and armor_penetration values.*/ grains = 151 velocity = 830 hitscan = 1 + hud_state = "sniper_crude" /obj/item/projectile/bullet/rifle/a762x54/ap armor_penetration = 35 + hud_state = "sniper_supersonic" /obj/item/projectile/bullet/rifle/a338 fire_sound = 'sound/weapons/ballistics/a762x54.ogg' @@ -422,9 +458,11 @@ only use the hollow_point and armor_penetration values.*/ velocity = 921 hitscan = 1 penetrating = 2 + hud_state = "sniper_crude" /obj/item/projectile/bullet/rifle/a338/ap armor_penetration = 50 + hud_state = "sniper_supersonic" /obj/item/projectile/bullet/rifle/a50bmg fire_sound = 'sound/weapons/ballistics/a145.ogg' @@ -434,6 +472,7 @@ only use the hollow_point and armor_penetration values.*/ velocity = 860 hitscan = 1 penetrating = 2 + hud_state = "sniper_supersonic" /obj/item/projectile/bullet/rifle/a50bmg/ap armor_penetration = 50 @@ -446,6 +485,7 @@ only use the hollow_point and armor_penetration values.*/ velocity = 820 penetrating = 2 armor_penetration=30 + hud_state = "sniper_fire" /obj/item/projectile/bullet/rifle/a45lc //yee haw diam = 11.43 @@ -521,6 +561,8 @@ only use the hollow_point and armor_penetration values.*/ accuracy = -20 // he do miss actually speed = 0.4 // if the pathfinder gets a funny burst rifle, they deserve a rival // that's 2x projectile speed btw + hud_state = "monkey" /obj/item/projectile/bullet/pistol/medium/ap/suppressor/turbo // spicy boys - speed = 0.2 // this is 4x projectile speed \ No newline at end of file + speed = 0.2 // this is 4x projectile speed + hud_state = "monkey" \ No newline at end of file diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index 5af79cc519..4325d25ed4 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -8,6 +8,7 @@ impact_effect_type = /obj/effect/temp_visual/impact_effect hitsound_wall = 'sound/weapons/effects/searwall.ogg' hitsound = 'sound/weapons/zapbang.ogg' + hud_state = "monkey" var/flash_strength = 10 @@ -22,6 +23,7 @@ var/flash_range = 0 var/brightness = 7 var/light_colour = "#ffffff" + hud_state = "grenade_dummy" /obj/item/projectile/energy/flash/on_impact(var/atom/A) var/turf/T = flash_range? src.loc : get_turf(A) @@ -59,6 +61,7 @@ flash_range = 1 brightness = 15 flash_strength = 20 + hud_state = "grenade_dummy" /obj/item/projectile/energy/flash/flare/on_impact(var/atom/A) light_colour = pick("#e58775", "#ffffff", "#90ff90", "#a09030") @@ -77,15 +80,18 @@ light_range = 2 light_power = 0.5 light_color = "#FFFFFF" + hud_state = "taser" //Damage will be handled on the MOB side, to prevent window shattering. /obj/item/projectile/energy/electrode/strong agony = 55 + hud_state = "taser" /obj/item/projectile/energy/electrode/stunshot name = "stunshot" damage = 5 agony = 80 + hud_state = "taser" /obj/item/projectile/energy/electrode/stunshot/strong name = "stunshot" @@ -93,6 +99,7 @@ damage = 10 taser_effect = 1 agony = 100 + hud_state = "taser" /obj/item/projectile/energy/declone name = "declone" @@ -107,6 +114,7 @@ impact_effect_type = /obj/effect/temp_visual/impact_effect/monochrome_laser combustion = FALSE + hud_state = "plasma_pistol" /obj/item/projectile/energy/excavate name = "kinetic blast" @@ -120,6 +128,7 @@ vacuum_traversal = 0 combustion = FALSE + hud_state = "plasma_blast" /obj/item/projectile/energy/dart name = "dart" @@ -128,6 +137,7 @@ damage_type = TOX agony = 120 check_armour = "energy" + hud_state = "pistol_tranq" combustion = FALSE @@ -138,23 +148,28 @@ damage_type = TOX agony = 40 stutter = 10 + hud_state = "electrothermal" /obj/item/projectile/energy/bolt/large name = "largebolt" damage = 20 + hud_state = "electrothermal" /obj/item/projectile/energy/bow name = "engergy bolt" icon_state = "cbbolt" damage = 20 + hud_state = "electrothermal" /obj/item/projectile/energy/bow/heavy damage = 30 icon_state = "cbbolt" + hud_state = "electrothermal" /obj/item/projectile/energy/bow/stun name = "stun bolt" agony = 30 + hud_state = "electrothermal" /obj/item/projectile/energy/acid //Slightly up-gunned (Read: The thing does agony and checks bio resist) variant of the simple alien mob's projectile, for queens and sentinels. name = "acidic spit" @@ -166,6 +181,7 @@ armor_penetration = 25 // It's acid hitsound_wall = 'sound/weapons/effects/alien_spit_wall.ogg' hitsound = 'sound/weapons/effects/alien_spit_wall.ogg' + hud_state = "electrothermal" combustion = FALSE @@ -179,6 +195,7 @@ armor_penetration = 25 // It's acid-based hitsound_wall = 'sound/weapons/effects/alien_spit_wall.ogg' hitsound = 'sound/weapons/effects/alien_spit_wall.ogg' + hud_state = "electrothermal" combustion = FALSE @@ -188,6 +205,7 @@ damage = 20 damage_type = BIOACID agony = 20 + hud_state = "electrothermal" check_armour = "bio" armor_penetration = 25 // It's acid-based @@ -202,6 +220,7 @@ light_power = 0.5 light_color = "#33CC00" impact_effect_type = /obj/effect/temp_visual/impact_effect/monochrome_laser + hud_state = "plasma_rifle" combustion = FALSE @@ -215,6 +234,7 @@ agony = 55 damage_type = BURN vacuum_traversal = 0 //Projectile disappears in empty space + hud_state = "plasma_rifle_blast" /obj/item/projectile/energy/plasmastun/proc/bang(var/mob/living/carbon/M) @@ -259,6 +279,7 @@ embed_chance = 0 muzzle_type = /obj/effect/projectile/muzzle/pulse impact_effect_type = /obj/effect/temp_visual/impact_effect/monochrome_laser + hud_state = "plasma_sphere" /obj/item/projectile/energy/phase name = "phase wave" @@ -267,28 +288,35 @@ damage = 5 SA_bonus_damage = 45 // 50 total on animals SA_vulnerability = list(SA_ANIMAL, MOB_CLASS_SYNTHETIC, MOB_CLASS_ABERRATION, MOB_CLASS_HUMANOID) //CHOMP Edit expand this list + hud_state = "laser_heat" /obj/item/projectile/energy/phase/light range = 4 SA_bonus_damage = 35 // 40 total on animals + hud_state = "laser_heat" /obj/item/projectile/energy/phase/heavy range = 8 SA_bonus_damage = 55 // 60 total on animals + hud_state = "laser_heat" /obj/item/projectile/energy/phase/heavy/cannon range = 10 damage = 15 SA_bonus_damage = 60 // 75 total on animals + hud_state = "laser_heat" /obj/item/projectile/energy/electrode/strong agony = 70 + hud_state = "taser" /obj/item/projectile/energy flash_strength = 10 + hud_state = "taser" /obj/item/projectile/energy/flash flash_range = 1 + hud_state = "grenade_dummy" /obj/item/projectile/energy/flash/strong name = "chemical shell" @@ -297,6 +325,8 @@ range = 15 //if the shell hasn't hit anything after travelling this far it just explodes. flash_strength = 15 brightness = 15 + hud_state = "grenade_dummy" /obj/item/projectile/energy/flash/flare - flash_range = 2 \ No newline at end of file + flash_range = 2 + hud_state = "grenade_dummy" \ No newline at end of file diff --git a/code/modules/projectiles/projectile/energy_ch.dm b/code/modules/projectiles/projectile/energy_ch.dm index 94d3f925c6..60a6bd0b26 100644 --- a/code/modules/projectiles/projectile/energy_ch.dm +++ b/code/modules/projectiles/projectile/energy_ch.dm @@ -2,10 +2,12 @@ range = 4 SA_bonus_damage = 15 // 30 total on animals icon_state = "cbbolt" + hud_state = "taser" /obj/item/projectile/energy/phase/bolt/heavy range = 4 SA_bonus_damage = 25 // 20 total on animals + hud_state = "taser" /obj/item/projectile/energy/plasma/vepr name = "plasma bolt" diff --git a/code/modules/projectiles/projectile/energy_yw.dm b/code/modules/projectiles/projectile/energy_yw.dm index b49c224bf7..4c0a709e03 100644 --- a/code/modules/projectiles/projectile/energy_yw.dm +++ b/code/modules/projectiles/projectile/energy_yw.dm @@ -11,6 +11,7 @@ damage_type = BURN pass_flags = PASSTABLE | PASSGRILLE check_armour = "laser" + hud_state = "alloy_spike" /obj/item/projectile/energy/gaussweak name = "gauss bolt" @@ -23,6 +24,7 @@ damage_type = BURN pass_flags = PASSTABLE | PASSGRILLE check_armour = "laser" + hud_state = "alloy_spike" /obj/item/projectile/energy/gaussrifle name = "gauss bolt" @@ -36,6 +38,8 @@ pass_flags = PASSTABLE | PASSGRILLE penetrating = 0 check_armour = "laser" + hud_state = "alloy_spike" + //End of gaussguns// //Stun projectile for HOSgun @@ -48,6 +52,8 @@ agony = 65 damage_type = HALLOSS stutter = 10 + hud_state = "taser" + //plasma weaponry /obj/item/projectile/energy/Plasma name = "Plasma Blast" @@ -57,3 +63,4 @@ damage_type = BURN pass_flags = PASSGRILLE check_armour = "laser" + hud_state = "plasma_rifle_blast" diff --git a/code/modules/projectiles/projectile/magnetic.dm b/code/modules/projectiles/projectile/magnetic.dm index dd4ea1a07f..588a20820e 100644 --- a/code/modules/projectiles/projectile/magnetic.dm +++ b/code/modules/projectiles/projectile/magnetic.dm @@ -9,12 +9,14 @@ weaken = 1 penetrating = 5 armor_penetration = 70 + hud_state = "alloy_spike" /obj/item/projectile/bullet/magnetic/slug name = "slug" icon_state = "gauss_silenced" damage = 75 armor_penetration = 90 + hud_state = "alloy_spike" /obj/item/projectile/bullet/magnetic/flechette name = "flechette" @@ -22,6 +24,7 @@ fire_sound = 'sound/weapons/rapidslice.ogg' damage = 20 armor_penetration = 100 + hud_state = "alloy_spike" /obj/item/projectile/bullet/magnetic/flechette/small name = "small flechette" @@ -29,6 +32,7 @@ fire_sound = 'sound/weapons/rapidslice.ogg' damage = 12 armor_penetration = 100 + hud_state = "alloy_spike" /obj/item/projectile/bullet/magnetic/flechette/small/khi name = "small carbyne flechette" @@ -37,12 +41,14 @@ damage = 18 armor_penetration = 100 penetrating = 10 + hud_state = "alloy_spike" /obj/item/projectile/bullet/magnetic/flechette/hunting name = "shredder slug" armor_penetration = 30 SA_bonus_damage = 40 SA_vulnerability = SA_ANIMAL + hud_state = "alloy_spike" /obj/item/projectile/bullet/magnetic/heated name = "slug" @@ -54,6 +60,7 @@ embed_chance = 0 armor_penetration = 40 penetrating = 1 + hud_state = "alloy_spike" /obj/item/projectile/bullet/magnetic/heated/weak icon_state = "gauss_silenced" @@ -62,6 +69,7 @@ embed_chance = 0 armor_penetration = 30 penetrating = 0 + hud_state = "alloy_spike" /obj/item/projectile/bullet/magnetic/fuelrod name = "fuel rod" @@ -76,6 +84,7 @@ embed_chance = 0 armor_penetration = 40 range = 20 + hud_state = "rocket_he" var/searing = 0 //Does this fuelrod ignore shields? var/detonate_travel = 0 //Will this fuelrod explode when it reaches maximum distance? @@ -122,6 +131,7 @@ flammability = -1 armor_penetration = 50 penetrating = 3 + hud_state = "rocket_ap" /obj/item/projectile/bullet/magnetic/fuelrod/phoron name = "blazing fuel rod" @@ -133,6 +143,7 @@ penetrating = 5 irradiate = 20 detonate_mob = 1 + hud_state = "rocket_fire" /obj/item/projectile/bullet/magnetic/fuelrod/supermatter name = "painfully incandescent fuel rod" @@ -149,6 +160,7 @@ detonate_travel = 1 detonate_mob = 1 energetic_impact = 1 + hud_state = "rocket_thermobaric" /obj/item/projectile/bullet/magnetic/fuelrod/supermatter/on_hit(var/atom/target, var/blocked = 0, var/def_zone = null) //You cannot touch the supermatter without disentigrating. Assumedly, this is true for condensed rods of it flying at relativistic speeds. if(istype(target,/turf/simulated/wall) || istype(target,/mob/living)) @@ -169,6 +181,7 @@ check_armour = "melee" irradiate = 20 range = 6 + hud_state = "plasma_rifle_blast" /obj/item/projectile/bullet/magnetic/bore/Initialize(loc, range_mod) // i'm gonna be real honest i dunno how this works but it does . = ..() diff --git a/code/modules/projectiles/projectile/magnetic_ch.dm b/code/modules/projectiles/projectile/magnetic_ch.dm index 663e6ffd0b..41d11cfe40 100644 --- a/code/modules/projectiles/projectile/magnetic_ch.dm +++ b/code/modules/projectiles/projectile/magnetic_ch.dm @@ -4,6 +4,7 @@ fire_sound = 'sound/weapons/rapidslice.ogg' damage = 10 armor_penetration = 35 + hud_state = "alloy_spike" /obj/item/projectile/bullet/magnetic/fuelrod/blitz name = "blitz rod" @@ -22,6 +23,7 @@ detonate_travel = 1 detonate_mob = 1 energetic_impact = 1 + hud_state = "rocket_thermobaric" /obj/item/projectile/bullet/magnetic/fuelrod/blitz/on_impact(var/atom/A) if(src.loc) diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm index 142cde4071..c439197fe3 100644 --- a/code/modules/projectiles/projectile/special.dm +++ b/code/modules/projectiles/projectile/special.dm @@ -9,6 +9,7 @@ light_range = 2 light_power = 0.5 light_color = "#55AAFF" + hud_state = "plasma_blast" combustion = FALSE impact_effect_type = /obj/effect/temp_visual/impact_effect/ion @@ -43,6 +44,7 @@ check_armour = "bullet" sharp = TRUE edge = TRUE + hud_state = "rocket_fire" /obj/item/projectile/bullet/gyro/on_hit(var/atom/target, var/blocked = 0) explosion(target, -1, 0, 2) @@ -62,6 +64,7 @@ light_power = 0.5 light_color = "#55AAFF" impact_effect_type = /obj/effect/temp_visual/impact_effect/monochrome_laser + hud_state = "water" combustion = FALSE @@ -98,6 +101,7 @@ /obj/item/projectile/temp/hot name = "heat beam" target_temperature = 1000 + hud_state = "flame" combustion = TRUE @@ -109,6 +113,7 @@ damage_type = BRUTE nodamage = 1 check_armour = "bullet" + hud_state = "monkey" /obj/item/projectile/meteor/Bump(atom/A as mob|obj|turf|area) if(A == firer) @@ -145,6 +150,7 @@ impact_effect_type = /obj/effect/temp_visual/impact_effect/monochrome_laser var/lasermod = 0 combustion = FALSE + hud_state = "electrothermal" /obj/item/projectile/energy/floramut/on_hit(var/atom/target, var/blocked = 0) var/mob/living/M = target @@ -187,6 +193,7 @@ nodamage = 1 check_armour = "energy" var/decl/plantgene/gene = null + hud_state = "electrothermal" /obj/item/projectile/energy/florayield name = "beta somatoray" @@ -201,6 +208,7 @@ light_color = "#FFFFFF" impact_effect_type = /obj/effect/temp_visual/impact_effect/monochrome_laser var/lasermod = 0 + hud_state = "electrothermal" /obj/item/projectile/energy/florayield/on_hit(var/atom/target, var/blocked = 0) var/mob/living/M = target @@ -218,6 +226,7 @@ name = "flayer ray" combustion = FALSE + hud_state = "electrothermal" /obj/item/projectile/beam/mindflayer/on_hit(var/atom/target, var/blocked = 0) if(ishuman(target)) @@ -233,6 +242,7 @@ nodamage = 1 damage_type = HALLOSS muzzle_type = /obj/effect/projectile/muzzle/bullet + hud_state = "monkey" /obj/item/projectile/bola name = "bola" @@ -241,6 +251,7 @@ embed_chance = 0 //Nada. damage_type = HALLOSS muzzle_type = null + hud_state = "monkey" combustion = FALSE @@ -260,7 +271,7 @@ embed_chance = 0 //Nada. damage_type = BRUTE muzzle_type = null - + hud_state = "monkey" combustion = FALSE /obj/item/projectile/webball/on_hit(var/atom/target, var/blocked = 0) @@ -282,6 +293,7 @@ light_range = 4 light_power = 3 light_color = "#3300ff" + hud_state = "alloy_spike" muzzle_type = /obj/effect/projectile/muzzle/tungsten tracer_type = /obj/effect/projectile/tracer/tungsten diff --git a/icons/mob/screen_ammo.dmi b/icons/mob/screen_ammo.dmi index e138438e0e69bfbba9d2a16cc384aac0a3e73b8e..57ab8e772e95e5c28da09592b8f1c4b0afc4d4bc 100644 GIT binary patch delta 4995 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 delta 5006 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