mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 00:29:02 +01:00
changes projectile's armor resistance flag to "armor_flag" (#65487)
* IHATEVARIABLES * removes the face
This commit is contained in:
+1
-1
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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 ..()
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user