diff --git a/code/game/machinery/bots/medbot.dm b/code/game/machinery/bots/medbot.dm index 65a40289d0..a83f59d03f 100644 --- a/code/game/machinery/bots/medbot.dm +++ b/code/game/machinery/bots/medbot.dm @@ -455,7 +455,7 @@ return /obj/machinery/bot/medbot/bullet_act(var/obj/item/projectile/Proj) - if(Proj.flag == "taser") + if(Proj.taser_effect) src.stunned = min(stunned+10,20) ..() diff --git a/code/game/mecha/equipment/tools/tools.dm b/code/game/mecha/equipment/tools/tools.dm index 5b71a34ec6..8338e2caa7 100644 --- a/code/game/mecha/equipment/tools/tools.dm +++ b/code/game/mecha/equipment/tools/tools.dm @@ -585,7 +585,7 @@ chassis.visible_message("The [chassis.name] armor deflects the projectile") chassis.log_append_to_last("Armor saved.") else - chassis.take_damage(round(Proj.damage*src.damage_coeff),Proj.flag) + chassis.take_damage(round(Proj.damage*src.damage_coeff),Proj.check_armour) chassis.check_for_internal_damage(list(MECHA_INT_FIRE,MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST)) Proj.on_hit(chassis) set_ready_state(0) diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 4790550700..f57e2e046d 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -487,7 +487,7 @@ /obj/mecha/bullet_act(var/obj/item/projectile/Proj) //wrapper - src.log_message("Hit by projectile. Type: [Proj.name]([Proj.flag]).",1) + src.log_message("Hit by projectile. Type: [Proj.name]([Proj.check_armour]).",1) call((proc_res["dynbulletdamage"]||src), "dynbulletdamage")(Proj) //calls equipment ..() return @@ -506,10 +506,10 @@ var/ignore_threshold if(istype(Proj, /obj/item/projectile/beam/pulse)) ignore_threshold = 1 - src.take_damage(Proj.damage, Proj.flag) + src.take_damage(Proj.damage, Proj.check_armour) if(prob(25)) spark_system.start() src.check_for_internal_damage(list(MECHA_INT_FIRE,MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST,MECHA_INT_SHORT_CIRCUIT),ignore_threshold) - + //AP projectiles have a chance to cause additional damage if(Proj.penetrating) var/distance = get_dist(Proj.starting, get_turf(loc)) @@ -520,9 +520,9 @@ hit_occupant = 0 else src.check_for_internal_damage(list(MECHA_INT_FIRE,MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST,MECHA_INT_SHORT_CIRCUIT), 1) - + Proj.penetrating-- - + if(prob(15)) break //give a chance to exit early diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index b33c182b28..1783bad912 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -63,10 +63,10 @@ return //Armor - var/absorb = run_armor_check(def_zone, P.flag) + var/absorb = run_armor_check(def_zone, P.check_armour) var/proj_sharp = is_sharp(P) var/proj_edge = has_edge(P) - if ((proj_sharp || proj_edge) && prob(getarmor(def_zone, P.flag))) + if ((proj_sharp || proj_edge) && prob(getarmor(def_zone, P.check_armour))) proj_sharp = 0 proj_edge = 0 diff --git a/code/modules/power/antimatter/control.dm b/code/modules/power/antimatter/control.dm index b6eb7915d2..23c5e0243a 100644 --- a/code/modules/power/antimatter/control.dm +++ b/code/modules/power/antimatter/control.dm @@ -127,7 +127,7 @@ /obj/machinery/power/am_control_unit/bullet_act(var/obj/item/projectile/Proj) - if(Proj.flag != "bullet") + if(Proj.check_armour != "bullet") stability -= Proj.force return 0 diff --git a/code/modules/power/antimatter/shielding.dm b/code/modules/power/antimatter/shielding.dm index bdaeb0c659..5085fb6c85 100644 --- a/code/modules/power/antimatter/shielding.dm +++ b/code/modules/power/antimatter/shielding.dm @@ -117,7 +117,7 @@ proc/cardinalrange(var/center) /obj/machinery/am_shielding/bullet_act(var/obj/item/projectile/Proj) - if(Proj.flag != "bullet") + if(Proj.check_armour != "bullet") stability -= Proj.force/2 return 0 diff --git a/code/modules/power/rust/virtual_particle_catcher.dm b/code/modules/power/rust/virtual_particle_catcher.dm index 2d32a9a785..350d9f66fc 100644 --- a/code/modules/power/rust/virtual_particle_catcher.dm +++ b/code/modules/power/rust/virtual_particle_catcher.dm @@ -42,7 +42,7 @@ name = "collector [mysize] OFF" /obj/effect/rust_particle_catcher/bullet_act(var/obj/item/projectile/Proj) - if(Proj.flag != "bullet" && parent) + if(Proj.check_armour != "bullet" && parent) parent.AddEnergy(Proj.damage * 20, 0, 1) update_icon() return 0 diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 73806d1d4e..d0158816ca 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -53,15 +53,18 @@ if(HULK in M.mutations) M << "Your fingers are much too large for the trigger guard!" return 0 - if((CLUMSY in M.mutations) && prob(40) && can_fire()) //Clumsy handling - var/obj/P = get_next_projectile() - if(P && process_projectile(P, user, user, pick("l_foot", "r_foot"))) - handle_post_fire(user, user) - user.visible_message( - "[user] shoots \himself in the foot with \the [src]!", - "You shoot yourself in the foot with \the [src]!" - ) - M.drop_item() + if((CLUMSY in M.mutations) && prob(40)) //Clumsy handling + var/obj/P = consume_next_projectile() + if(P) + if(process_projectile(P, user, user, pick("l_foot", "r_foot"))) + handle_post_fire(user, user) + user.visible_message( + "[user] shoots \himself in the foot with \the [src]!", + "You shoot yourself in the foot with \the [src]!" + ) + M.drop_item() + else + handle_click_empty(user) return 0 return 1 @@ -110,14 +113,14 @@ user << "[src] is not ready to fire again!" return - var/obj/in_chamber = get_next_projectile() - if(!in_chamber) + var/obj/projectile = consume_next_projectile() + if(!projectile) handle_click_empty(user) return user.next_move = world.time + 4 - if(process_projectile(in_chamber, user, target, user.zone_sel.selecting, params, pointblank, reflex)) + if(process_projectile(projectile, user, target, user.zone_sel.selecting, params, pointblank, reflex)) handle_post_fire(user, target, pointblank, reflex) update_icon() @@ -127,20 +130,17 @@ user.update_inv_r_hand() -//returns the next projectile to fire -/obj/item/weapon/gun/proc/get_next_projectile() +//obtains the next projectile to fire +/obj/item/weapon/gun/proc/consume_next_projectile() return null -//TODO integrate this with gun code better. -//TODO maybe provide user so that subtypes can emit messages if they want? -/obj/item/weapon/gun/proc/can_fire() - return 0 - //used by aiming code /obj/item/weapon/gun/proc/can_hit(atom/target as mob, var/mob/living/user as mob) if(!special_check(user)) return 2 - return 0 //in_chamber.check_fire(target,user) + //just assume we can shoot through glass and stuff. No big deal, the player can just choose to not target someone + //on the other side of a window if it makes a difference. Or if they run behind a window, too bad. + return check_trajectory(target, user) //called if there was no projectile to shoot /obj/item/weapon/gun/proc/handle_click_empty(mob/user) @@ -208,7 +208,7 @@ M.visible_message("\blue [user] decided life was worth living") mouthshoot = 0 return - var/obj/item/projectile/in_chamber = get_next_projectile() + var/obj/item/projectile/in_chamber = consume_next_projectile() if (istype(in_chamber)) user.visible_message("[user] pulls the trigger.") if(silenced) diff --git a/code/modules/projectiles/guns/alien.dm b/code/modules/projectiles/guns/alien.dm index c7efc4e3b6..a351760da5 100644 --- a/code/modules/projectiles/guns/alien.dm +++ b/code/modules/projectiles/guns/alien.dm @@ -50,10 +50,7 @@ /obj/item/weapon/gun/launcher/spikethrower/update_release_force() return -/obj/item/weapon/gun/launcher/spikethrower/can_fire() - return (spikes >= 1) - -/obj/item/weapon/gun/launcher/spikethrower/get_next_projectile() +/obj/item/weapon/gun/launcher/spikethrower/consume_next_projectile() if(spikes < 1) return null spikes-- return new /obj/item/weapon/spike(src) @@ -100,7 +97,7 @@ icon_state = "particle" damage = 60 damage_type = BRUTE - flag = "bullet" + check_armour = "bullet" pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE embed = 0 diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index e8997ea24f..047fe7ca06 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -54,7 +54,7 @@ update_icon() return 1 -/obj/item/weapon/gun/energy/get_next_projectile() +/obj/item/weapon/gun/energy/consume_next_projectile() if(!power_supply) return null if(!ispath(projectile_type)) return null if(!power_supply.use(charge_cost)) return null diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm index 78c33cc507..b467b31a1e 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -35,16 +35,8 @@ if(ispath(magazine_type) && (load_method & MAGAZINE)) ammo_magazine = new magazine_type(src) update_icon() - -/obj/item/weapon/gun/projectile/can_fire() - var/obj/item/ammo_casing/C - if(loaded.len) - C = loaded[1] - else if(ammo_magazine && ammo_magazine.stored_ammo.len) - C = ammo_magazine.stored_ammo[1] - return (C && C.BB) -/obj/item/weapon/gun/projectile/get_next_projectile() +/obj/item/weapon/gun/projectile/consume_next_projectile() //store the next ammo_casing in a var so that handle_post_fire() knows which one to eject //also we might as well remove chambered here, so that we don't have to figure out where it came from later if(loaded.len) diff --git a/code/modules/projectiles/guns/projectile/crossbow.dm b/code/modules/projectiles/guns/projectile/crossbow.dm index a9e95254be..8891b29960 100644 --- a/code/modules/projectiles/guns/projectile/crossbow.dm +++ b/code/modules/projectiles/guns/projectile/crossbow.dm @@ -66,19 +66,13 @@ if(cell && severity) cell.use(100*severity) -/obj/item/weapon/gun/launcher/crossbow/special_check(user) - if(tension <= 0) - user << "\red \The [src] is not drawn back!" - return 0 - return 1 - /obj/item/weapon/gun/launcher/crossbow/update_release_force() release_force = tension*release_speed -/obj/item/weapon/gun/launcher/crossbow/can_fire() - return (tension && bolt) - -/obj/item/weapon/gun/launcher/crossbow/get_next_projectile() +/obj/item/weapon/gun/launcher/crossbow/consume_next_projectile(mob/user=null) + if(tension <= 0) + user << "\red \The [src] is not drawn back!" + return null return bolt /obj/item/weapon/gun/launcher/crossbow/handle_post_fire(mob/user, atom/target) diff --git a/code/modules/projectiles/guns/projectile/pneumatic.dm b/code/modules/projectiles/guns/projectile/pneumatic.dm index 96dc344dd1..3e653bfeeb 100644 --- a/code/modules/projectiles/guns/projectile/pneumatic.dm +++ b/code/modules/projectiles/guns/projectile/pneumatic.dm @@ -86,16 +86,19 @@ user << "There is nothing to remove in \the [src]." return -/obj/item/weapon/gun/launcher/pneumatic/get_next_projectile() +/obj/item/weapon/gun/launcher/pneumatic/consume_next_projectile(mob/user=null) if(!contents.len) return null - return contents[1] + if (!tank) + user << "There is no gas tank in [src]!" + return null -/obj/item/weapon/gun/launcher/pneumatic/can_fire() - if(!contents.len) - return 0 var/fire_pressure = (tank.air_contents.return_pressure()/100)*pressure_setting - return (fire_pressure >= minimum_tank_pressure) + if(fire_pressure < minimum_tank_pressure) + user << "There isn't enough gas in the tank to fire [src]." + return null + + return contents[1] /obj/item/weapon/gun/launcher/pneumatic/examine(mob/user) if(!..(user, 2)) @@ -106,18 +109,6 @@ else user << "Nothing is attached to the tank valve!" -/obj/item/weapon/gun/launcher/pneumatic/special_check(user) - if (!tank) - user << "There is no gas tank in [src]!" - return 0 - - fire_pressure = (tank.air_contents.return_pressure()/100)*pressure_setting - if (fire_pressure < minimum_tank_pressure) - user << "There isn't enough gas in the tank to fire [src]." - return 0 - - return ..() - /obj/item/weapon/gun/launcher/pneumatic/update_release_force(obj/item/projectile) if(tank) release_force = ((fire_pressure*tank.volume)/projectile.w_class)/force_divisor //projectile speed. diff --git a/code/modules/projectiles/guns/projectile/revolver.dm b/code/modules/projectiles/guns/projectile/revolver.dm index 36aba0f8c5..0d23d63d7b 100644 --- a/code/modules/projectiles/guns/projectile/revolver.dm +++ b/code/modules/projectiles/guns/projectile/revolver.dm @@ -81,88 +81,3 @@ caliber = "38" desc = initial(desc) user << "You remove the modifications on [src]! Now it will fire .38 rounds." - -/* -// A gun to play Russian Roulette! -// You can spin the chamber to randomize the position of the bullet. -/obj/item/weapon/gun/projectile/russian - name = "\improper Russian revolver" - desc = "A Russian made revolver. Uses .357 ammo. It has a single slot in it's chamber for a bullet." - max_shells = 6 - origin_tech = "combat=2;materials=2" - -/obj/item/weapon/gun/projectile/russian/New() - Spin() - update_icon() - -/obj/item/weapon/gun/projectile/russian/proc/Spin() - for(var/obj/item/ammo_casing/AC in loaded) - del(AC) - loaded = list() - var/random = rand(1, max_shells) - for(var/i = 1; i <= max_shells; i++) - if(i != random) - loaded += i // Basically null - else - loaded += new ammo_type(src) - - -/obj/item/weapon/gun/projectile/russian/attackby(var/obj/item/A as obj, mob/user as mob) - if(!A) return - - var/num_loaded = 0 - if(istype(A, /obj/item/ammo_magazine)) - - if((load_method == MAGAZINE) && loaded.len) return - var/obj/item/ammo_magazine/AM = A - for(var/obj/item/ammo_casing/AC in AM.stored_ammo) - if(getAmmo() > 0 || loaded.len >= max_shells) - break - if(AC.caliber == caliber && loaded.len < max_shells) - AC.loc = src - AM.stored_ammo -= AC - loaded += AC - num_loaded++ - break - A.update_icon() - - if(num_loaded) - user.visible_message("[user] loads a single bullet into the revolver and spins the chamber.", "You load a single bullet into the chamber and spin it.") - else - user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber.") - if(getAmmo() > 0) - Spin() - update_icon() - return - -/obj/item/weapon/gun/projectile/russian/attack_self(mob/user as mob) - user.visible_message("[user] spins the chamber of the revolver.", "You spin the revolver's chamber.") - if(getAmmo() > 0) - Spin() - -/obj/item/weapon/gun/projectile/russian/attack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj) - if(!loaded.len) - user.visible_message("\red *click*", "\red *click*") - playsound(user, 'sound/weapons/empty.ogg', 100, 1) - return - - if(isliving(target) && isliving(user)) - if(target == user) - var/datum/organ/external/affecting = user.zone_sel.selecting - if(affecting == "head") - - var/obj/item/ammo_casing/AC = loaded[1] - if(!load_into_chamber()) - user.visible_message("\red *click*", "\red *click*") - playsound(user, 'sound/weapons/empty.ogg', 100, 1) - return - if(!in_chamber) - return - var/obj/item/projectile/P = new AC.projectile_type - playsound(user, fire_sound, 50, 1) - user.visible_message("[user.name] fires [src] at \his head!", "You fire [src] at your head!", "You hear a [istype(in_chamber, /obj/item/projectile/beam) ? "laser blast" : "gunshot"]!") - if(!P.nodamage) - user.apply_damage(300, BRUTE, affecting, sharp=1) // You are dead, dead, dead. - return - ..() -*/ \ No newline at end of file diff --git a/code/modules/projectiles/guns/projectile/rocket.dm b/code/modules/projectiles/guns/projectile/rocket.dm index 8020c250f0..fd86302fb8 100644 --- a/code/modules/projectiles/guns/projectile/rocket.dm +++ b/code/modules/projectiles/guns/projectile/rocket.dm @@ -33,10 +33,7 @@ else usr << "\red [src] cannot hold more rockets." -/obj/item/weapon/gun/launcher/rocket/can_fire() - return rockets.len - -/obj/item/weapon/gun/launcher/rocket/get_next_projectile() +/obj/item/weapon/gun/launcher/rocket/consume_next_projectile() if(rockets.len) var/obj/item/ammo_casing/rocket/I = rockets[1] var/obj/item/missile/M = new (src) diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index f070699991..77a9867e93 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -15,10 +15,7 @@ handle_casings = HOLD_CASINGS var/recentpump = 0 // to prevent spammage -/obj/item/weapon/gun/projectile/shotgun/pump/can_fire() - return (chambered && chambered.BB) - -/obj/item/weapon/gun/projectile/shotgun/pump/get_next_projectile() +/obj/item/weapon/gun/projectile/shotgun/pump/consume_next_projectile() if(chambered) return chambered.BB return null diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 793c53616b..131e152354 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -37,7 +37,7 @@ var/damage_type = BRUTE //BRUTE, BURN, TOX, OXY, CLONE are the only things that should be in here var/nodamage = 0 //Determines if the projectile will skip any damage inflictions var/taser_effect = 0 //If set then the projectile will apply it's agony damage using stun_effect_act() to mobs it hits, and other damage will be ignored - var/flag = "bullet" //Defines what armor to use when it hits things. Must be set to bullet, laser, energy,or bomb //Cael - bio and rad are also valid + var/check_armour = "bullet" //Defines what armor to use when it hits things. Must be set to bullet, laser, energy,or bomb //Cael - bio and rad are also valid var/projectile_type = /obj/item/projectile var/penetrating = 0 //If greater than zero, the projectile will pass through dense objects as specified by on_penetrate() var/kill_count = 50 //This will de-increment every process(). When 0, it will delete the projectile. @@ -70,16 +70,7 @@ return 1 /obj/item/projectile/proc/check_fire(atom/target as mob, var/mob/living/user as mob) //Checks if you can hit them or not. - if(!istype(target) || !istype(user)) - return 0 - var/obj/item/projectile/test/trace = new /obj/item/projectile/test(get_step_to(user,target)) //Making the test.... - trace.target = target - trace.flags = flags //Set the flags... - trace.pass_flags = pass_flags //And the pass flags to that of the real projectile... - trace.firer = user - var/output = trace.process() //Test it! - del(trace) //No need for it anymore - return output //Send it back to the gun! + check_trajectory(target, user, pass_flags, flags) //sets the click point of the projectile using mouse input params /obj/item/projectile/proc/set_clickpoint(var/params) @@ -293,3 +284,16 @@ M = locate() in get_step(src,target) if(istype(M)) return 1 + +/proc/check_trajectory(atom/target as mob, var/mob/living/user as mob, var/pass_flags=PASSTABLE|PASSGLASS|PASSGRILLE, flags=null) //Checks if you can hit them or not. + if(!istype(target) || !istype(user)) + return 0 + var/obj/item/projectile/test/trace = new /obj/item/projectile/test(get_step_to(user,target)) //Making the test.... + trace.target = target + if(!isnull(flags)) + trace.flags = flags //Set the flags... + trace.pass_flags = pass_flags //And the pass flags to that of the real projectile... + trace.firer = user + var/output = trace.process() //Test it! + del(trace) //No need for it anymore + return output //Send it back to the gun! \ No newline at end of file diff --git a/code/modules/projectiles/projectile/animate.dm b/code/modules/projectiles/projectile/animate.dm index 490227d233..0f92729ad4 100644 --- a/code/modules/projectiles/projectile/animate.dm +++ b/code/modules/projectiles/projectile/animate.dm @@ -4,7 +4,7 @@ damage = 0 damage_type = BURN nodamage = 1 - flag = "energy" + check_armour = "energy" /obj/item/projectile/animate/Bump(var/atom/change) if((istype(change, /obj/item) || istype(change, /obj/structure)) && !is_type_in_list(change, protected_objects)) diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 23ee20e132..06bf1146b4 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -14,7 +14,7 @@ var/list/beam_master = list() pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE damage = 40 damage_type = BURN - flag = "laser" + check_armour = "laser" eyeblur = 4 var/frequency = 1 @@ -87,7 +87,7 @@ var/list/beam_master = list() pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE damage = 0 damage_type = BURN - flag = "laser" + check_armour = "laser" eyeblur = 2 /obj/item/projectile/beam/heavylaser @@ -121,7 +121,7 @@ var/list/beam_master = list() pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE damage = 0 damage_type = BURN - flag = "laser" + check_armour = "laser" /obj/item/projectile/beam/lastertag/blue/on_hit(var/atom/target, var/blocked = 0) if(istype(target, /mob/living/carbon/human)) @@ -136,7 +136,7 @@ var/list/beam_master = list() pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE damage = 0 damage_type = BURN - flag = "laser" + check_armour = "laser" /obj/item/projectile/beam/lastertag/red/on_hit(var/atom/target, var/blocked = 0) if(istype(target, /mob/living/carbon/human)) @@ -151,7 +151,7 @@ var/list/beam_master = list() pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE damage = 0 damage_type = BURN - flag = "laser" + check_armour = "laser" /obj/item/projectile/beam/lastertag/omni/on_hit(var/atom/target, var/blocked = 0) if(istype(target, /mob/living/carbon/human)) diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 5da27e9ef0..938b8b300a 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -4,7 +4,7 @@ damage = 60 damage_type = BRUTE nodamage = 0 - flag = "bullet" + check_armour = "bullet" embed = 1 sharp = 1 diff --git a/code/modules/projectiles/projectile/change.dm b/code/modules/projectiles/projectile/change.dm index 215c117342..24e2d4b6ef 100644 --- a/code/modules/projectiles/projectile/change.dm +++ b/code/modules/projectiles/projectile/change.dm @@ -4,7 +4,7 @@ damage = 0 damage_type = BURN nodamage = 1 - flag = "energy" + check_armour = "energy" on_hit(var/atom/change) wabbajack(change) diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index dc0376b7c7..76aa608b3d 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -3,7 +3,7 @@ icon_state = "spark" damage = 0 damage_type = BURN - flag = "energy" + check_armour = "energy" //releases a very short burst of light on impact, mainly used to blind people diff --git a/code/modules/projectiles/projectile/force.dm b/code/modules/projectiles/projectile/force.dm index 4dffe4ce89..71b7d34d04 100644 --- a/code/modules/projectiles/projectile/force.dm +++ b/code/modules/projectiles/projectile/force.dm @@ -3,7 +3,7 @@ icon = 'icons/obj/projectiles.dmi' icon_state = "ice_1" damage = 20 - flag = "energy" + check_armour = "energy" /obj/item/projectile/forcebolt/strong name = "force bolt" diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm index c7c2c05c4a..fc69f6ec94 100644 --- a/code/modules/projectiles/projectile/special.dm +++ b/code/modules/projectiles/projectile/special.dm @@ -4,7 +4,7 @@ damage = 0 damage_type = BURN nodamage = 1 - flag = "energy" + check_armour = "energy" on_hit(var/atom/target, var/blocked = 0) @@ -16,7 +16,7 @@ name ="explosive bolt" icon_state= "bolter" damage = 50 - flag = "bullet" + check_armour = "bullet" sharp = 1 edge = 1 @@ -30,7 +30,7 @@ damage = 0 damage_type = BURN nodamage = 1 - flag = "energy" + check_armour = "energy" var/temperature = 300 @@ -47,7 +47,7 @@ damage = 0 damage_type = BRUTE nodamage = 1 - flag = "bullet" + check_armour = "bullet" Bump(atom/A as mob|obj|turf|area) if(A == firer) @@ -76,7 +76,7 @@ damage = 0 damage_type = TOX nodamage = 1 - flag = "energy" + check_armour = "energy" on_hit(var/atom/target, var/blocked = 0) var/mob/living/M = target @@ -115,7 +115,7 @@ damage = 0 damage_type = TOX nodamage = 1 - flag = "energy" + check_armour = "energy" on_hit(var/atom/target, var/blocked = 0) var/mob/M = target