Adds hud_states to almost all weaponry, credit to Serdy

Reshuffles files to match Polaris
This commit is contained in:
Rykka
2022-04-05 22:44:02 -06:00
parent ce6f0e568c
commit 0cdd2da44c
14 changed files with 272 additions and 91 deletions

View File

@@ -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")

View File

@@ -29,83 +29,3 @@
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")

View File

@@ -13,6 +13,7 @@
damage = 0
check_armour = "laser"
light_color = "#80F5FF"
hud_state = "laser_disabler"
combustion = FALSE

View File

@@ -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,6 +245,7 @@
light_color = "#FFFFFF"
hitsound = 'sound/weapons/zapbang.ogg'
combustion = FALSE
muzzle_type = /obj/effect/projectile/muzzle/stun
@@ -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

View File

@@ -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"

View File

@@ -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<EFBFBD>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)
. = ..()

View File

@@ -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
hud_state = "monkey"

View File

@@ -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
hud_state = "grenade_dummy"

View File

@@ -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"

View File

@@ -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"

View File

@@ -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
. = ..()

View File

@@ -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)

View File

@@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB