changes projectile's armor resistance flag to "armor_flag" (#65487)

* IHATEVARIABLES

* removes the face
This commit is contained in:
capsaicinz
2022-03-22 17:14:53 -04:00
committed by GitHub
parent 0d4f2c1e47
commit 75f7c7a69c
31 changed files with 42 additions and 44 deletions
+1 -1
View File
@@ -326,7 +326,7 @@
var/a_incidence_s = abs(incidence_s)
if(a_incidence_s > 90 && a_incidence_s < 270)
return FALSE
if((ricocheting_projectile.flag in list(BULLET, BOMB)) && ricocheting_projectile.ricochet_incidence_leeway)
if((ricocheting_projectile.armor_flag in list(BULLET, BOMB)) && ricocheting_projectile.ricochet_incidence_leeway)
if((a_incidence_s < 90 && a_incidence_s < 90 - ricocheting_projectile.ricochet_incidence_leeway) || (a_incidence_s > 270 && a_incidence_s -270 > ricocheting_projectile.ricochet_incidence_leeway))
return FALSE
var/new_angle_s = SIMPLIFY_DEGREES(face_angle + incidence_s)
+1 -1
View File
@@ -26,7 +26,7 @@
playsound(src, P.hitsound, 50, TRUE)
var/damage
if(!QDELETED(src)) //Bullet on_hit effect might have already destroyed this object
damage = take_damage(P.damage, P.damage_type, P.flag, 0, turn(P.dir, 180), P.armour_penetration)
damage = take_damage(P.damage, P.damage_type, P.armor_flag, 0, turn(P.dir, 180), P.armour_penetration)
if(P.suppressed != SUPPRESSED_VERY)
visible_message(span_danger("[src] is hit by \a [P][damage ? "" : ", without leaving a mark"]!"), null, null, COMBAT_MESSAGE_RANGE)
+1 -1
View File
@@ -371,7 +371,7 @@
/obj/handle_ricochet(obj/projectile/P)
. = ..()
if(. && receive_ricochet_damage_coeff)
take_damage(P.damage * receive_ricochet_damage_coeff, P.damage_type, P.flag, 0, turn(P.dir, 180), P.armour_penetration) // pass along receive_ricochet_damage_coeff damage to the structure for the ricochet
take_damage(P.damage * receive_ricochet_damage_coeff, P.damage_type, P.armor_flag, 0, turn(P.dir, 180), P.armour_penetration) // pass along receive_ricochet_damage_coeff damage to the structure for the ricochet
/obj/update_overlays()
. = ..()
@@ -188,7 +188,7 @@
nodamage = TRUE
damage = 0 //We're just here to mark people. This is still a melee weapon.
damage_type = BRUTE
flag = BOMB
armor_flag = BOMB
range = 6
log_override = TRUE
var/obj/item/kinetic_crusher/hammer_synced
@@ -603,7 +603,7 @@
/obj/projectile/soulscythe
name = "soulslash"
icon_state = "soulslash"
flag = MELEE //jokair
armor_flag = MELEE //jokair
damage = 15
light_range = 1
light_power = 1
@@ -435,7 +435,7 @@
/datum/species/golem/sand/bullet_act(obj/projectile/P, mob/living/carbon/human/H)
if(!(P.original == H && P.firer == H))
if(P.flag == BULLET || P.flag == BOMB)
if(P.armor_flag == BULLET || P.armor_flag == BOMB)
playsound(H, 'sound/effects/shovel_dig.ogg', 70, TRUE)
H.visible_message(span_danger("The [P.name] sinks harmlessly in [H]'s sandy body!"), \
span_userdanger("The [P.name] sinks harmlessly in [H]'s sandy body!"))
@@ -467,7 +467,7 @@
/datum/species/golem/glass/bullet_act(obj/projectile/P, mob/living/carbon/human/H)
if(!(P.original == H && P.firer == H)) //self-shots don't reflect
if(P.flag == LASER || P.flag == ENERGY)
if(P.armor_flag == LASER || P.armor_flag == ENERGY)
H.visible_message(span_danger("The [P.name] gets reflected by [H]'s glass skin!"), \
span_userdanger("The [P.name] gets reflected by [H]'s glass skin!"))
if(P.starting)
@@ -958,7 +958,7 @@
/datum/species/golem/bronze/bullet_act(obj/projectile/P, mob/living/carbon/human/H)
if(!(world.time > last_gong_time + gong_cooldown))
return ..()
if(P.flag == BULLET || P.flag == BOMB)
if(P.armor_flag == BULLET || P.armor_flag == BOMB)
gong(H)
return ..()
+1 -1
View File
@@ -68,7 +68,7 @@
return . ? BULLET_ACT_HIT : BULLET_ACT_BLOCK
/mob/living/check_projectile_armor(def_zone, obj/projectile/impacting_projectile, is_silent)
return run_armor_check(def_zone, impacting_projectile.flag, "","",impacting_projectile.armour_penetration, "", is_silent, impacting_projectile.weak_against_armour)
return run_armor_check(def_zone, impacting_projectile.armor_flag, "","",impacting_projectile.armour_penetration, "", is_silent, impacting_projectile.weak_against_armour)
/mob/living/proc/check_projectile_dismemberment(obj/projectile/P, def_zone)
return 0
@@ -38,5 +38,5 @@
icon_state = "declone"
damage = 4
damage_type = BURN
flag = ENERGY
armor_flag = ENERGY
temperature = -100 // closer to the old temp loss
@@ -44,7 +44,7 @@
damage = 10
damage_type = BURN
light_range = 2
flag = ENERGY
armor_flag = ENERGY
light_color = LIGHT_COLOR_YELLOW
hitsound = 'sound/weapons/sear.ogg'
hitsound_wall = 'sound/weapons/effects/searwall.ogg'
@@ -268,7 +268,7 @@
if(istype(P, /obj/projectile/magic))
ActivationReaction(P.firer, ACTIVATE_MAGIC, P.damage_type)
return
ActivationReaction(P.firer, P.flag, P.damage_type)
ActivationReaction(P.firer, P.armor_flag, P.damage_type)
/obj/machinery/anomalous_crystal/proc/ActivationReaction(mob/user, method, damtype)
if(!COOLDOWN_FINISHED(src, cooldown_timer))
@@ -43,7 +43,7 @@
damage = 10
damage_type = BURN
nodamage = FALSE
flag = ENERGY
armor_flag = ENERGY
temperature = -50 // Cools you down! per hit!
var/slowdown = TRUE //Determines if the projectile applies a slowdown status effect on carbons or not
+1 -1
View File
@@ -538,7 +538,7 @@
nodamage = TRUE
range = 6
suppressed = SUPPRESSED_VERY
flag = BOMB
armor_flag = BOMB
light_system = MOVABLE_LIGHT
light_range = 1
light_power = 1
@@ -176,7 +176,7 @@ no power level overlay is currently in the overlays list.
return ..()
/obj/machinery/field/generator/bullet_act(obj/projectile/considered_bullet)
if(considered_bullet.flag != BULLET)
if(considered_bullet.armor_flag != BULLET)
power = min(power + considered_bullet.damage, field_generator_max_power)
check_power_level()
. = ..()
@@ -890,7 +890,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
return FALSE
if(!istype(projectile.firer, /obj/machinery/power/emitter) && power_changes)
investigate_log("has been hit by [projectile] fired by [key_name(projectile.firer)]", INVESTIGATE_SUPERMATTER)
if(projectile.flag != BULLET || kiss_power)
if(projectile.armor_flag != BULLET || kiss_power)
if(kiss_power)
psyCoeff = 1
psy_overlay = TRUE
@@ -414,7 +414,7 @@
hitsound = 'sound/effects/explosion3.ogg'
damage = 0 //Handled manually.
damage_type = BURN
flag = ENERGY
armor_flag = ENERGY
range = 150
jitter = 10
var/obj/item/gun/energy/beam_rifle/gun
@@ -176,7 +176,7 @@
icon_state = null
damage = 40
damage_type = BRUTE
flag = BOMB
armor_flag = BOMB
range = 3
log_override = TRUE
@@ -405,7 +405,7 @@
M.gets_drilled(K.firer, TRUE)
if(modifier)
for(var/mob/living/L in range(1, target_turf) - K.firer - target)
var/armor = L.run_armor_check(K.def_zone, K.flag, "", "", K.armour_penetration)
var/armor = L.run_armor_check(K.def_zone, K.armor_flag, "", "", K.armour_penetration)
L.apply_damage(K.damage*modifier, K.damage_type, K.def_zone, armor)
to_chat(L, span_userdanger("You're struck by a [K.name]!"))
@@ -511,7 +511,7 @@
var/kill_modifier = 1
if(K.pressure_decrease_active)
kill_modifier *= K.pressure_decrease
var/armor = L.run_armor_check(K.def_zone, K.flag, "", "", K.armour_penetration)
var/armor = L.run_armor_check(K.def_zone, K.armor_flag, "", "", K.armour_penetration)
L.apply_damage(bounties_reaped[L.type]*kill_modifier, K.damage_type, K.def_zone, armor)
/obj/item/borg/upgrade/modkit/bounty/proc/get_kill(mob/living/L)
@@ -290,7 +290,7 @@
icon_state = "blastwave"
damage = 0
nodamage = FALSE
flag = BOMB // Doesn't actually have any functional purpose. But it makes sense.
armor_flag = BOMB // Doesn't actually have any functional purpose. But it makes sense.
movement_type = FLYING
projectile_phasing = ALL // just blows up the turfs lmao
phasing_ignore_direct_target = TRUE // If we don't do this the blastcannon shot can be blocked by random items.
+3 -3
View File
@@ -133,7 +133,7 @@
var/damage_type = BRUTE //BRUTE, BURN, TOX, OXY, CLONE are the only things that should be in here
var/nodamage = FALSE //Determines if the projectile will skip any damage inflictions
///Defines what armor to use when it hits things. Must be set to bullet, laser, energy, or bomb
var/flag = BULLET
var/armor_flag = BULLET
///How much armor this projectile pierces.
var/armour_penetration = 0
///Whether or not our bullet lacks penetrative power, and is easily stopped by armor.
@@ -606,10 +606,10 @@
return FALSE
/obj/projectile/proc/check_ricochet_flag(atom/A)
if((flag in list(ENERGY, LASER)) && (A.flags_ricochet & RICOCHET_SHINY))
if((armor_flag in list(ENERGY, LASER)) && (A.flags_ricochet & RICOCHET_SHINY))
return TRUE
if((flag in list(BOMB, BULLET)) && (A.flags_ricochet & RICOCHET_HARD))
if((armor_flag in list(BOMB, BULLET)) && (A.flags_ricochet & RICOCHET_HARD))
return TRUE
return FALSE
+3 -5
View File
@@ -6,7 +6,7 @@
damage_type = BURN
hitsound = 'sound/weapons/sear.ogg'
hitsound_wall = 'sound/weapons/effects/searwall.ogg'
flag = LASER
armor_flag = LASER
eyeblur = 2
impact_effect_type = /obj/effect/temp_visual/impact_effect/red_laser
light_system = MOVABLE_LIGHT
@@ -73,7 +73,6 @@
/obj/projectile/beam/xray
name = "\improper X-ray beam"
icon_state = "xray"
flag = TOX
damage = 15
range = 15
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE | PASSCLOSEDTURF | PASSMACHINE | PASSSTRUCTURE | PASSDOORS
@@ -89,7 +88,7 @@
icon_state = "omnilaser"
damage = 30
damage_type = STAMINA
flag = ENERGY
armor_flag = ENERGY
hitsound = 'sound/weapons/tap.ogg'
eyeblur = 0
impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser
@@ -166,7 +165,6 @@
hitsound = null
damage = 0
damage_type = STAMINA
flag = LASER
var/suit_types = list(/obj/item/clothing/suit/redtag, /obj/item/clothing/suit/bluetag)
impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser
light_color = LIGHT_COLOR_BLUE
@@ -208,7 +206,7 @@
hitsound = 'sound/weapons/shrink_hit.ogg'
damage = 0
damage_type = STAMINA
flag = ENERGY
armor_flag = ENERGY
impact_effect_type = /obj/effect/temp_visual/impact_effect/shrink
light_color = LIGHT_COLOR_BLUE
var/shrink_time = 90
@@ -4,7 +4,7 @@
damage = 60
damage_type = BRUTE
nodamage = FALSE
flag = BULLET
armor_flag = BULLET
hitsound_wall = SFX_RICOCHET
sharpness = SHARP_POINTY
impact_effect_type = /obj/effect/temp_visual/impact_effect
@@ -31,7 +31,7 @@
ricochet_incidence_leeway = 0
suppressed = SUPPRESSED_VERY
damage_type = BURN
flag = BOMB
armor_flag = BOMB
speed = 1.2
wound_bonus = 30
bare_wound_bonus = 30
@@ -3,6 +3,6 @@
icon_state = "spark"
damage = 0
damage_type = BURN
flag = ENERGY
armor_flag = ENERGY
reflectable = REFLECT_NORMAL
impact_effect_type = /obj/effect/temp_visual/impact_effect/energy
@@ -3,7 +3,7 @@
name = "nuclear particle"
icon_state = "nuclear_particle"
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
flag = ENERGY
armor_flag = ENERGY
damage_type = TOX
damage = 10
speed = 0.4
@@ -3,7 +3,7 @@
icon_state = "infernoshot"
damage = 20
damage_type = BURN
flag = ENERGY
armor_flag = ENERGY
armour_penetration = 10
reflectable = NONE
wound_bonus = 0
@@ -29,7 +29,7 @@
damage = 20
damage_type = BRUTE
armour_penetration = 10
flag = ENERGY
armor_flag = ENERGY
sharpness = SHARP_POINTY //it's a big ol' shard of ice
reflectable = NONE
wound_bonus = 0
+1 -1
View File
@@ -5,7 +5,7 @@
damage_type = OXY
nodamage = TRUE
armour_penetration = 100
flag = NONE
armor_flag = NONE
/obj/projectile/magic/death
name = "bolt of death"
@@ -4,7 +4,7 @@
damage = 0
damage_type = TOX
nodamage = TRUE
flag = ENERGY
armor_flag = ENERGY
/obj/projectile/energy/floramut/on_hit(atom/target, blocked = FALSE)
. = ..()
@@ -34,7 +34,7 @@
damage = 0
damage_type = TOX
nodamage = TRUE
flag = ENERGY
armor_flag = ENERGY
/obj/projectile/energy/florayield/on_hit(atom/target, blocked = FALSE)
. = ..()
@@ -49,7 +49,7 @@
damage = 0
damage_type = TOX
nodamage = TRUE
flag = ENERGY
armor_flag = ENERGY
/obj/projectile/energy/florarevolution/on_hit(atom/target, blocked = FALSE)
. = ..()
@@ -4,7 +4,7 @@
damage = 0
damage_type = BURN
nodamage = TRUE
flag = ENERGY
armor_flag = ENERGY
impact_effect_type = /obj/effect/temp_visual/impact_effect/ion
var/emp_radius = 1
@@ -7,7 +7,7 @@
dismemberment = 90
armour_penetration = 100
damage_type = BRUTE
flag = BULLET
armor_flag = BULLET
/obj/projectile/meteor/on_hit(atom/target, blocked = FALSE)
. = ..()
@@ -5,7 +5,7 @@
damage_type = TOX
nodamage = FALSE
paralyze = 100
flag = BIO
armor_flag = BIO
impact_effect_type = /obj/effect/temp_visual/impact_effect/neurotoxin
/obj/projectile/neurotoxin/on_hit(atom/target, blocked = FALSE)
@@ -4,7 +4,7 @@
damage = 0
damage_type = BURN
nodamage = FALSE
flag = ENERGY
armor_flag = ENERGY
var/temperature = -50 // reduce the body temperature by 50 points
/obj/projectile/temp/on_hit(atom/target, blocked = 0)
+1 -1
View File
@@ -114,7 +114,7 @@
var/mob/living/hitmob = m
hitmob.bullet_act(Proj) //If the sides are open, the occupant can be hit
return BULLET_ACT_HIT
log_message("Hit by projectile. Type: [Proj.name]([Proj.flag]).", LOG_MECHA, color="red")
log_message("Hit by projectile. Type: [Proj.name]([Proj.armor_flag]).", LOG_MECHA, color="red")
. = ..()
/obj/vehicle/sealed/mecha/ex_act(severity, target)