diff --git a/code/__DEFINES/_macros.dm b/code/__DEFINES/_macros.dm index 322a97a0dda..ea53525c62d 100644 --- a/code/__DEFINES/_macros.dm +++ b/code/__DEFINES/_macros.dm @@ -83,9 +83,9 @@ #define isaccessory(A) istype(A, /obj/item/clothing/accessory) /// Projectile helpers -#define isprojectile(A) istype(A, /obj/item/projectile) -#define isbeam(A) istype(A, /obj/item/projectile/beam) -#define isenergy(A) istype(A, /obj/item/projectile/energy) +#define isprojectile(A) istype(A, /obj/projectile) +#define isbeam(A) istype(A, /obj/projectile/beam) +#define isenergy(A) istype(A, /obj/projectile/energy) /// General I/O helpers #define to_target(target, payload) target << (payload) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index a57fbf004ab..5eb8be64a77 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -341,7 +341,7 @@ setClickCooldown(4) var/turf/T = get_turf(src) src.visible_message(SPAN_DANGER("\The [src]'s eyes flare with ruby light!")) - var/obj/item/projectile/beam/LE = new (T) + var/obj/projectile/beam/LE = new (T) LE.muzzle_type = /obj/effect/projectile/muzzle/eyelaser LE.tracer_type = /obj/effect/projectile/tracer/eyelaser LE.impact_type = /obj/effect/projectile/impact/eyelaser diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 71a6160989d..7c361666043 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -118,7 +118,7 @@ /atom/proc/flash_act(intensity = FLASH_PROTECTION_MODERATE, override_blindness_check = FALSE, affect_silicon = FALSE, ignore_inherent = FALSE, type = /obj/screen/fullscreen/flash, length = 2.5 SECONDS) return -/atom/proc/bullet_act(obj/item/projectile/P, def_zone) +/atom/proc/bullet_act(obj/projectile/P, def_zone) P.on_hit(src, 0, def_zone) . = 0 @@ -626,7 +626,7 @@ /atom/proc/handle_pointed_at(var/mob/pointer) return -/atom/proc/create_bullethole(obj/item/projectile/Proj) +/atom/proc/create_bullethole(obj/projectile/Proj) var/p_x = Proj.p_x + rand(-6, 6) var/p_y = Proj.p_y + rand(-6, 6) diff --git a/code/game/gamemodes/changeling/implements/items.dm b/code/game/gamemodes/changeling/implements/items.dm index 6fddcdc2ad1..8d49bf8bf61 100644 --- a/code/game/gamemodes/changeling/implements/items.dm +++ b/code/game/gamemodes/changeling/implements/items.dm @@ -109,9 +109,9 @@ QDEL_IN(src, 1) /obj/item/shield/riot/changeling/get_block_chance(mob/user, var/damage, atom/damage_source = null, mob/attacker = null) - if(istype(damage_source, /obj/item/projectile)) - var/obj/item/projectile/P = damage_source - if((is_sharp(P) && damage > 10) || istype(P, /obj/item/projectile/beam)) + if(istype(damage_source, /obj/projectile)) + var/obj/projectile/P = damage_source + if((is_sharp(P) && damage > 10) || istype(P, /obj/projectile/beam)) return base_block_chance / 2 //lings still have a 35% chance of blocking these kinds of attacks return base_block_chance diff --git a/code/game/gamemodes/cult/structures/pylon.dm b/code/game/gamemodes/cult/structures/pylon.dm index f3835c31d4b..55cbefc7e42 100644 --- a/code/game/gamemodes/cult/structures/pylon.dm +++ b/code/game/gamemodes/cult/structures/pylon.dm @@ -328,15 +328,15 @@ last_target_loc = get_turf(target.loc) process_interval = 1 //Instantly wake up if we found a target - var/obj/item/projectile/beam/cult/A + var/obj/projectile/beam/cult/A if(empowered > 0) - A = new /obj/item/projectile/beam/cult/heavy(loc) + A = new /obj/projectile/beam/cult/heavy(loc) empowered = max(0, empowered-1) playsound(loc, 'sound/weapons/laserdeep.ogg', 100, 1) if(empowered <= 0) update_icon() else - A = new /obj/item/projectile/beam/cult(loc) + A = new /obj/projectile/beam/cult(loc) playsound(loc, 'sound/weapons/laserdeep.ogg', 65, 1) A.ignore = sacrificer A.launch_projectile(target) @@ -398,7 +398,7 @@ return return ..() -/obj/structure/cult/pylon/bullet_act(var/obj/item/projectile/Proj) +/obj/structure/cult/pylon/bullet_act(var/obj/projectile/Proj) attackpylon(Proj.firer, Proj.damage, Proj) //Explosions will usually cause instant shattering, or heavy damage @@ -420,10 +420,10 @@ to_chat(user, SPAN_WARNING("You swing at the pylon to no effect.")) return - if(istype(source, /obj/item/projectile)) - if(istype(source, /obj/item/projectile/beam/cult)) + if(istype(source, /obj/projectile)) + if(istype(source, /obj/projectile/beam/cult)) return //No feedback loops - var/obj/item/projectile/proj = source + var/obj/projectile/proj = source if(proj.damage_type == DAMAGE_BURN) if(empowered <= 0) visible_message(SPAN_CULT("The beam refracts inside the pylon, splitting into an indistinct violet glow. The crystal takes on a new, more ominous aura!")) diff --git a/code/game/gamemodes/technomancer/devices/shield_armor.dm b/code/game/gamemodes/technomancer/devices/shield_armor.dm index 424e49eef38..b4fa472e621 100644 --- a/code/game/gamemodes/technomancer/devices/shield_armor.dm +++ b/code/game/gamemodes/technomancer/devices/shield_armor.dm @@ -50,8 +50,8 @@ damage = damage - damage_blocked - if(istype(damage_source, /obj/item/projectile)) - var/obj/item/projectile/P = damage_source + if(istype(damage_source, /obj/projectile)) + var/obj/projectile/P = damage_source P.sharp = 0 P.edge = 0 P.embed_chance = 0 diff --git a/code/game/gamemodes/technomancer/devices/tesla_armor.dm b/code/game/gamemodes/technomancer/devices/tesla_armor.dm index 5b55ab380bf..59157671d16 100644 --- a/code/game/gamemodes/technomancer/devices/tesla_armor.dm +++ b/code/game/gamemodes/technomancer/devices/tesla_armor.dm @@ -24,13 +24,13 @@ /obj/item/clothing/suit/armor/tesla/handle_shield(mob/user, var/on_back, var/damage, atom/damage_source = null, mob/attacker = null, var/def_zone = null, var/attack_text = "the attack") //First, some retaliation. if(active) - if(istype(damage_source, /obj/item/projectile)) - var/obj/item/projectile/P = damage_source + if(istype(damage_source, /obj/projectile)) + var/obj/projectile/P = damage_source if(P.firer && get_dist(user, P.firer) <= 3) if(ready) shoot_lightning(P.firer, 2000) else - shoot_lightning(P.firer, 1000, /obj/item/projectile/beam/lightning/small) + shoot_lightning(P.firer, 1000, /obj/projectile/beam/lightning/small) else if(attacker && attacker != user) @@ -38,7 +38,7 @@ if(ready) shoot_lightning(attacker, 2000) else - shoot_lightning(attacker, 1000, /obj/item/projectile/beam/lightning/small) + shoot_lightning(attacker, 1000, /obj/projectile/beam/lightning/small) //Deal with protecting our wearer now. if(ready) @@ -77,8 +77,8 @@ H.update_action_buttons() ..() -/obj/item/clothing/suit/armor/tesla/proc/shoot_lightning(mob/target, power, lightning_type = /obj/item/projectile/beam/lightning) - var/obj/item/projectile/beam/lightning/lightning = new lightning_type(get_turf(src)) +/obj/item/clothing/suit/armor/tesla/proc/shoot_lightning(mob/target, power, lightning_type = /obj/projectile/beam/lightning) + var/obj/projectile/beam/lightning/lightning = new lightning_type(get_turf(src)) lightning.power = power lightning.old_style_target(target) lightning.fire() diff --git a/code/game/gamemodes/technomancer/spells/energy_siphon.dm b/code/game/gamemodes/technomancer/spells/energy_siphon.dm index 42078a0c7cb..1b498824e81 100644 --- a/code/game/gamemodes/technomancer/spells/energy_siphon.dm +++ b/code/game/gamemodes/technomancer/spells/energy_siphon.dm @@ -165,21 +165,21 @@ if(user && source && user != source) var/i = 7 // process() takes two seconds to tick, this ensures the appearance of a ongoing beam. while(i) - var/obj/item/projectile/beam/lightning/energy_siphon/lightning = new(get_turf(source)) + var/obj/projectile/beam/lightning/energy_siphon/lightning = new(get_turf(source)) lightning.firer = user lightning.old_style_target(user) lightning.fire() i-- sleep(3) -/obj/item/projectile/beam/lightning/energy_siphon +/obj/projectile/beam/lightning/energy_siphon name = "energy stream" icon_state = "lightning" range = 6 // Backup plan in-case the effect somehow misses the Technomancer. power = 5 // This fires really fast, so this may add up if someone keeps standing in the beam. penetrating = 5 -/obj/item/projectile/beam/lightning/energy_siphon/Bump(atom/A as mob|obj|turf|area, forced=0) +/obj/projectile/beam/lightning/energy_siphon/Bump(atom/A as mob|obj|turf|area, forced=0) if(A == firer) // For this, you CAN shoot yourself. on_impact(A) @@ -190,7 +190,7 @@ return 1 ..() -/obj/item/projectile/beam/lightning/energy_siphon/attack_mob(var/mob/living/target_mob, var/distance, var/miss_modifier=0) +/obj/projectile/beam/lightning/energy_siphon/attack_mob(var/mob/living/target_mob, var/distance, var/miss_modifier=0) if(target_mob == firer) // This shouldn't actually occur due to Bump(), but just in-case. return 1 if(ishuman(target_mob)) // Otherwise someone else stood in the beam and is going to pay for it. diff --git a/code/game/gamemodes/technomancer/spells/projectile/beam.dm b/code/game/gamemodes/technomancer/spells/projectile/beam.dm index 06d2a36ed5e..e2bd77f9ba8 100644 --- a/code/game/gamemodes/technomancer/spells/projectile/beam.dm +++ b/code/game/gamemodes/technomancer/spells/projectile/beam.dm @@ -13,13 +13,13 @@ desc = "Boring, but practical." cast_methods = CAST_RANGED aspect = ASPECT_LIGHT - spell_projectile = /obj/item/projectile/beam/techno + spell_projectile = /obj/projectile/beam/techno energy_cost_per_shot = 400 instability_per_shot = 3 cooldown = 10 fire_sound = 'sound/weapons/laserstrong.ogg' -/obj/item/projectile/beam/techno +/obj/projectile/beam/techno damage = 35 armor_penetration = 25 diff --git a/code/game/gamemodes/technomancer/spells/projectile/force_missile.dm b/code/game/gamemodes/technomancer/spells/projectile/force_missile.dm index b445076b545..ae597d6481e 100644 --- a/code/game/gamemodes/technomancer/spells/projectile/force_missile.dm +++ b/code/game/gamemodes/technomancer/spells/projectile/force_missile.dm @@ -14,13 +14,13 @@ desc = "Make it rain!" cast_methods = CAST_RANGED aspect = ASPECT_FORCE - spell_projectile = /obj/item/projectile/force_missile + spell_projectile = /obj/projectile/force_missile energy_cost_per_shot = 300 instability_per_shot = 2 cooldown = 5 fire_sound = 'sound/weapons/wave.ogg' -/obj/item/projectile/force_missile +/obj/projectile/force_missile name = "force missile" icon_state = "plasma_bolt" damage = 25 diff --git a/code/game/gamemodes/technomancer/spells/projectile/ionic_bolt.dm b/code/game/gamemodes/technomancer/spells/projectile/ionic_bolt.dm index 68dd4fca2a1..aabfd137726 100644 --- a/code/game/gamemodes/technomancer/spells/projectile/ionic_bolt.dm +++ b/code/game/gamemodes/technomancer/spells/projectile/ionic_bolt.dm @@ -13,7 +13,7 @@ desc = "For those pesky security units." cast_methods = CAST_RANGED aspect = ASPECT_EMP - spell_projectile = /obj/item/projectile/ion + spell_projectile = /obj/projectile/ion energy_cost_per_shot = 500 instability_per_shot = 6 cooldown = 10 diff --git a/code/game/gamemodes/technomancer/spells/projectile/lightning.dm b/code/game/gamemodes/technomancer/spells/projectile/lightning.dm index 6241462901b..88370ad5b61 100644 --- a/code/game/gamemodes/technomancer/spells/projectile/lightning.dm +++ b/code/game/gamemodes/technomancer/spells/projectile/lightning.dm @@ -14,14 +14,14 @@ desc = "Now you can feel like Zeus." cast_methods = CAST_RANGED aspect = ASPECT_SHOCK - spell_projectile = /obj/item/projectile/beam/lightning + spell_projectile = /obj/projectile/beam/lightning energy_cost_per_shot = 2500 instability_per_shot = 10 cooldown = 20 pre_shot_delay = 10 fire_sound = 'sound/effects/psi/thunderstrike.ogg' -/obj/item/projectile/beam/lightning +/obj/projectile/beam/lightning name = "lightning" icon_state = "lightning" damage = 25 @@ -34,7 +34,7 @@ var/power = 6000 -/obj/item/projectile/beam/lightning/small +/obj/projectile/beam/lightning/small name = "shock" damage = 15 armor_penetration = 15 @@ -42,7 +42,7 @@ power = 1000 -/obj/item/projectile/beam/lightning/attack_mob(var/mob/living/target_mob, var/distance, var/miss_modifier=0) +/obj/projectile/beam/lightning/attack_mob(var/mob/living/target_mob, var/distance, var/miss_modifier=0) ..() tesla_zap(target_mob, 3, power) return 1 diff --git a/code/game/gamemodes/technomancer/spells/projectile/overload.dm b/code/game/gamemodes/technomancer/spells/projectile/overload.dm index 3f1ecde4308..142c485fd08 100644 --- a/code/game/gamemodes/technomancer/spells/projectile/overload.dm +++ b/code/game/gamemodes/technomancer/spells/projectile/overload.dm @@ -15,21 +15,21 @@ desc = "Hope your Core's full." cast_methods = CAST_RANGED aspect = ASPECT_UNSTABLE - spell_projectile = /obj/item/projectile/overload + spell_projectile = /obj/projectile/overload energy_cost_per_shot = 0 // Handled later instability_per_shot = 12 cooldown = 10 pre_shot_delay = 4 fire_sound = 'sound/effects/supermatter.ogg' -/obj/item/projectile/overload +/obj/projectile/overload name = "overloaded bolt" icon_state = "bluespace" damage_type = DAMAGE_BURN armor_penetration = 100 -/obj/item/spell/projectile/overload/make_projectile(obj/item/projectile/projectile_type, mob/living/user) - var/obj/item/projectile/overload/P = new projectile_type(get_turf(user)) +/obj/item/spell/projectile/overload/make_projectile(obj/projectile/projectile_type, mob/living/user) + var/obj/projectile/overload/P = new projectile_type(get_turf(user)) var/energy_before_firing = core.energy if(check_for_scepter()) P.damage = round(energy_before_firing * 0.004) // .4% of their current energy pool. diff --git a/code/game/gamemodes/technomancer/spells/projectile/projectile.dm b/code/game/gamemodes/technomancer/spells/projectile/projectile.dm index 35758fe7a92..c16b1d9d50b 100644 --- a/code/game/gamemodes/technomancer/spells/projectile/projectile.dm +++ b/code/game/gamemodes/technomancer/spells/projectile/projectile.dm @@ -3,7 +3,7 @@ icon_state = "generic" desc = "This is a generic template that shoots projectiles. If you can read this, the game broke!" cast_methods = CAST_RANGED - var/obj/item/projectile/spell_projectile = null + var/obj/projectile/spell_projectile = null var/energy_cost_per_shot = 0 var/instability_per_shot = 0 var/pre_shot_delay = 0 @@ -16,7 +16,7 @@ /obj/item/spell/projectile/on_ranged_cast(atom/hit_atom, mob/living/user, atom/pb_target) . = ..(hit_atom, user, TRUE) if(set_up(hit_atom, user)) - var/obj/item/projectile/new_projectile = make_projectile(spell_projectile, user) + var/obj/projectile/new_projectile = make_projectile(spell_projectile, user) new_projectile.old_style_target(hit_atom) new_projectile.fire(direct_target = pb_target) log_and_message_admins("has casted [src] at \the [hit_atom].") @@ -27,8 +27,8 @@ return TRUE return FALSE -/obj/item/spell/projectile/proc/make_projectile(obj/item/projectile/projectile_type, mob/living/user) - var/obj/item/projectile/P = new projectile_type(get_turf(user)) +/obj/item/spell/projectile/proc/make_projectile(obj/projectile/projectile_type, mob/living/user) + var/obj/projectile/P = new projectile_type(get_turf(user)) P.firer = user if(aspect != ASPECT_PSIONIC) P.damage = calculate_spell_power(P.damage) diff --git a/code/game/gamemodes/technomancer/spells/reflect.dm b/code/game/gamemodes/technomancer/spells/reflect.dm index c80298af3b9..030e715fb4f 100644 --- a/code/game/gamemodes/technomancer/spells/reflect.dm +++ b/code/game/gamemodes/technomancer/spells/reflect.dm @@ -41,8 +41,8 @@ var/bad_arc = reverse_direction(user.dir) //arc of directions from which we cannot block if(check_shield_arc(user, bad_arc, damage_source, attacker)) - if(istype(damage_source, /obj/item/projectile)) - var/obj/item/projectile/P = damage_source + if(istype(damage_source, /obj/projectile)) + var/obj/projectile/P = damage_source if(P.starting && !P.reflected) visible_message(SPAN_DANGER("\The [user]'s [src.name] reflects [attack_text]!")) diff --git a/code/game/machinery/anti_bluespace.dm b/code/game/machinery/anti_bluespace.dm index b1b65057c6f..9f736bef925 100644 --- a/code/game/machinery/anti_bluespace.dm +++ b/code/game/machinery/anti_bluespace.dm @@ -74,7 +74,7 @@ var/global/list/bluespace_inhibitors do_break() -/obj/machinery/anti_bluespace/bullet_act(var/obj/item/projectile/Proj) +/obj/machinery/anti_bluespace/bullet_act(var/obj/projectile/Proj) if(!(Proj.damage_type == DAMAGE_BRUTE || Proj.damage_type == DAMAGE_BURN)) return if(!Proj.damage) diff --git a/code/game/machinery/atmoalter/canister.dm b/code/game/machinery/atmoalter/canister.dm index 4bd3d0260ab..0ed6e8f4b1e 100644 --- a/code/game/machinery/atmoalter/canister.dm +++ b/code/game/machinery/atmoalter/canister.dm @@ -393,7 +393,7 @@ update_flag return GM.return_pressure() return 0 -/obj/machinery/portable_atmospherics/canister/bullet_act(var/obj/item/projectile/Proj) +/obj/machinery/portable_atmospherics/canister/bullet_act(var/obj/projectile/Proj) if(!(Proj.damage_type == DAMAGE_BRUTE || Proj.damage_type == DAMAGE_BURN)) return diff --git a/code/game/machinery/bots/bots.dm b/code/game/machinery/bots/bots.dm index 8449e5a24fd..e07a948b1df 100644 --- a/code/game/machinery/bots/bots.dm +++ b/code/game/machinery/bots/bots.dm @@ -92,7 +92,7 @@ else return ..() -/obj/machinery/bot/bullet_act(var/obj/item/projectile/Proj) +/obj/machinery/bot/bullet_act(var/obj/projectile/Proj) if(!(Proj.damage_type == DAMAGE_BRUTE || Proj.damage_type == DAMAGE_BURN)) return health -= Proj.damage diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 718ef09840b..0558173d2e9 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -138,7 +138,7 @@ update_icon() update_coverage() -/obj/machinery/camera/bullet_act(var/obj/item/projectile/P) +/obj/machinery/camera/bullet_act(var/obj/projectile/P) take_damage(P.get_structure_damage()) /obj/machinery/camera/ex_act(severity) diff --git a/code/game/machinery/computer/computer.dm b/code/game/machinery/computer/computer.dm index ebd9297d6ad..8f95e7ca493 100644 --- a/code/game/machinery/computer/computer.dm +++ b/code/game/machinery/computer/computer.dm @@ -63,7 +63,7 @@ set_broken() return -/obj/machinery/computer/bullet_act(var/obj/item/projectile/Proj) +/obj/machinery/computer/bullet_act(var/obj/projectile/Proj) if(prob(Proj.get_structure_damage())) set_broken() ..() @@ -197,7 +197,7 @@ /obj/machinery/computer/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) if (!mover) return 1 - if(istype(mover,/obj/item/projectile) && density && is_holographic) + if(istype(mover,/obj/projectile) && density && is_holographic) if (prob(80)) //Holoscreens are non solid, and the frames of the computers are thin. So projectiles will usually //pass through diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 5645b029f3b..984e7ef5042 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -232,7 +232,7 @@ /obj/machinery/constructable_frame/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) if(!mover) return TRUE - if(istype(mover,/obj/item/projectile) && density) + if(istype(mover,/obj/projectile) && density) if(prob(50)) return TRUE else diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index 8ba4db2c128..7f942748527 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -41,7 +41,7 @@ Deployable Kits maxhealth = material.integrity health = maxhealth -/obj/structure/blocker/bullet_act(obj/item/projectile/P, def_zone) +/obj/structure/blocker/bullet_act(obj/projectile/P, def_zone) var/damage_modifier = 0.4 switch(P.damage_type) if(DAMAGE_BURN) @@ -105,8 +105,8 @@ Deployable Kits /obj/structure/blocker/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)//So bullets will fly over and stuff. if(air_group || (height==0)) return TRUE - if(istype(mover, /obj/item/projectile)) - var/obj/item/projectile/P = mover + if(istype(mover, /obj/projectile)) + var/obj/projectile/P = mover if(P.original == src) return FALSE if(P.firer && Adjacent(P.firer)) diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm index 5037d6926c6..b598d327644 100644 --- a/code/game/machinery/doors/door.dm +++ b/code/game/machinery/doors/door.dm @@ -236,7 +236,7 @@ else do_animate("deny") return -/obj/machinery/door/bullet_act(var/obj/item/projectile/Proj) +/obj/machinery/door/bullet_act(var/obj/projectile/Proj) ..() var/damage = Proj.get_structure_damage() diff --git a/code/game/machinery/howitzer.dm b/code/game/machinery/howitzer.dm index ba3f98dbfa4..92417a950a5 100644 --- a/code/game/machinery/howitzer.dm +++ b/code/game/machinery/howitzer.dm @@ -297,7 +297,7 @@ var/datum/projectile_data/shot_data = projectile_trajectory(T.x, T.y, horizontal_angle, vertical_angle, fire_power) //Use the projectile and the pellets - var/obj/item/projectile/shot_projectile = loaded_shot.expend() + var/obj/projectile/shot_projectile = loaded_shot.expend() QDEL_LIST(loaded_howitzer_pellets) //Casing already expended, nothing to shoot @@ -367,7 +367,7 @@ drop_sound = 'sound/items/drop/shell_drop.ogg' pickup_sound = 'sound/items/pickup/weldingtool.ogg' - projectile_type = /obj/item/projectile/howitzer + projectile_type = /obj/projectile/howitzer /obj/item/ammo_casing/howitzer/get_examine_text(mob/user, distance, is_adjacent, infix, suffix) . = ..() @@ -381,8 +381,8 @@ * * Howitzer ammo is a type of ammo that can be used in howitzers. */ -/obj/item/projectile/howitzer - abstract_type = /obj/item/projectile/howitzer +/obj/projectile/howitzer + abstract_type = /obj/projectile/howitzer name = "howitzer ammo" icon = 'icons/obj/machinery/howitzer/howitzer_ammo.dmi' @@ -391,19 +391,19 @@ range = 999 //Follow what the path says, not range forcedodge = TRUE //Don't directly hit people -/obj/item/projectile/howitzer/can_hit_target(atom/target, list/passthrough) +/obj/projectile/howitzer/can_hit_target(atom/target, list/passthrough) if(target == original) return TRUE else return FALSE //We have to handle collisions like the snowflake projectile we are. Or rewrite the projectile logic, you can do that if you want, I do not -/obj/item/projectile/howitzer/Collide(atom/A) +/obj/projectile/howitzer/Collide(atom/A) if(A == original) on_impact(A) qdel(src) -/obj/item/projectile/howitzer/on_impact(atom/A, affected_limb) +/obj/projectile/howitzer/on_impact(atom/A, affected_limb) . = ..() if(A == original) @@ -414,7 +414,7 @@ * * * impacted_turf - The `/turf` that the projectile landed on */ -/obj/item/projectile/howitzer/proc/terminal_effect(turf/impacted_turf) +/obj/projectile/howitzer/proc/terminal_effect(turf/impacted_turf) SHOULD_NOT_SLEEP(TRUE) SHOULD_CALL_PARENT(TRUE) @@ -430,15 +430,15 @@ name = "high explosive howitzer ammo" abstract_type = /obj/item/ammo_casing/howitzer/high_explosive - projectile_type = /obj/item/projectile/howitzer/high_explosive + projectile_type = /obj/projectile/howitzer/high_explosive /** * # High Explosive howitzer ammo * * Big boom, many fragments */ -/obj/item/projectile/howitzer/high_explosive - abstract_type = /obj/item/projectile/howitzer/high_explosive +/obj/projectile/howitzer/high_explosive + abstract_type = /obj/projectile/howitzer/high_explosive name = "high explosive howitzer ammo" @@ -459,7 +459,7 @@ ///Boolean, if people can cover from the explosion var/can_cover = TRUE -/obj/item/projectile/howitzer/high_explosive/terminal_effect(turf/impacted_turf) +/obj/projectile/howitzer/high_explosive/terminal_effect(turf/impacted_turf) . = ..() if(!.) return @@ -524,9 +524,9 @@ /obj/item/ammo_casing/howitzer/high_explosive/gadpathur_105mm name = "gadpathur 105mm light field howitzer HE ammo" desc = "A 105mm light field howitzer ammo, designed with the idea of obliterating any Solarian that might put foot on the surface of the planet." - projectile_type = /obj/item/projectile/howitzer/high_explosive/gadpathur_105mm + projectile_type = /obj/projectile/howitzer/high_explosive/gadpathur_105mm -/obj/item/projectile/howitzer/high_explosive/gadpathur_105mm +/obj/projectile/howitzer/high_explosive/gadpathur_105mm name = "gadpathur 105mm light field howitzer HE projectile" fragment_minimum = 30 fragment_maximum = 50 diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index e99d1f4450a..b40cb55625d 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -504,7 +504,7 @@ Class Procs: paper.forceMove(loc) printing = FALSE -/obj/machinery/bullet_act(obj/item/projectile/P, def_zone) +/obj/machinery/bullet_act(obj/projectile/P, def_zone) . = ..() if(P.get_structure_damage() > 5) bullet_ping(P) diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index 6fbdb9181f3..1cf8558dc0a 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -62,8 +62,8 @@ var/lethal = 0 //whether in lethal or stun mode var/disabled = 0 - var/projectile =/obj/item/projectile/beam/stun //holder for stun (main) mode beam - var/eprojectile = /obj/item/projectile/beam //holder for lethal (secondary) mode beam + var/projectile =/obj/projectile/beam/stun //holder for stun (main) mode beam + var/eprojectile = /obj/projectile/beam //holder for lethal (secondary) mode beam var/shot_sound = 'sound/weapons/Taser.ogg' //what sound should play when the turret fires var/eshot_sound = 'sound/weapons/laser1.ogg' //what sound should play when the lethal turret fires @@ -444,7 +444,7 @@ if(health <= 0) die() //the death process :( -/obj/machinery/porta_turret/bullet_act(obj/item/projectile/Proj) +/obj/machinery/porta_turret/bullet_act(obj/projectile/Proj) var/damage = Proj.get_structure_damage() if(!damage) @@ -606,7 +606,7 @@ return TURRET_NOT_TARGET var/flags = PASSTABLE|PASSTRACE|PASSRAILING - if(ispath(projectile, /obj/item/projectile/beam) || ispath(eprojectile, /obj/item/projectile/beam)) + if(ispath(projectile, /obj/projectile/beam) || ispath(eprojectile, /obj/projectile/beam)) flags |= PASSTABLE|PASSGLASS|PASSGRILLE|PASSRAILING if(!(L in check_trajectory(L, src, pass_flags=flags))) //check if we have true line of sight @@ -752,7 +752,7 @@ return update_icon() - var/obj/item/projectile/A + var/obj/projectile/A if(emagged || lethal) A = new eprojectile(loc) @@ -1072,7 +1072,7 @@ egun = 0 sprite_set = "xray" - eprojectile = /obj/item/projectile/beam/xray + eprojectile = /obj/projectile/beam/xray eshot_sound = 'sound/weapons/laser3.ogg' req_one_access = list(ACCESS_SYNDICATE) @@ -1083,8 +1083,8 @@ egun = 1 sprite_set = "ion" - projectile = /obj/item/projectile/ion/stun - eprojectile = /obj/item/projectile/ion + projectile = /obj/projectile/ion/stun + eprojectile = /obj/projectile/ion shot_sound = 'sound/weapons/laser1.ogg' eshot_sound = 'sound/weapons/laser1.ogg' req_one_access = list(ACCESS_SYNDICATE) @@ -1096,7 +1096,7 @@ egun = 0 sprite_set = "crossbow" - eprojectile = /obj/item/projectile/energy/bolt/large + eprojectile = /obj/projectile/energy/bolt/large eshot_sound = 'sound/weapons/Genhit.ogg' req_one_access = list(ACCESS_SYNDICATE) @@ -1107,7 +1107,7 @@ egun = 0 sprite_set = "cannon" - eprojectile = /obj/item/projectile/beam/heavylaser + eprojectile = /obj/projectile/beam/heavylaser eshot_sound = 'sound/weapons/lasercannonfire.ogg' req_one_access = list(ACCESS_SYNDICATE) @@ -1119,7 +1119,7 @@ sprite_set = "pulse" no_salvage = TRUE - eprojectile = /obj/item/projectile/beam/pulse + eprojectile = /obj/projectile/beam/pulse eshot_sound = 'sound/weapons/pulse.ogg' req_one_access = list(ACCESS_SYNDICATE) @@ -1131,7 +1131,7 @@ sprite_set = "sniper" no_salvage = TRUE - eprojectile = /obj/item/projectile/beam/sniper + eprojectile = /obj/projectile/beam/sniper eshot_sound = 'sound/weapons/marauder.ogg' req_one_access = list(ACCESS_SYNDICATE) @@ -1142,7 +1142,7 @@ egun = 0 sprite_set = "net" - eprojectile = /obj/item/projectile/beam/energy_net + eprojectile = /obj/projectile/beam/energy_net eshot_sound = 'sound/weapons/plasma_cutter.ogg' req_one_access = list(ACCESS_SYNDICATE) @@ -1153,7 +1153,7 @@ egun = 0 sprite_set = "thermaldrill" - eprojectile = /obj/item/projectile/beam/thermaldrill + eprojectile = /obj/projectile/beam/thermaldrill eshot_sound = 'sound/magic/lightningbolt.ogg' req_one_access = list(ACCESS_SYNDICATE) @@ -1165,7 +1165,7 @@ sprite_set = "meteor" no_salvage = TRUE - eprojectile = /obj/item/projectile/meteor + eprojectile = /obj/projectile/meteor eshot_sound = 'sound/weapons/lasercannonfire.ogg' req_one_access = list(ACCESS_SYNDICATE) @@ -1177,7 +1177,7 @@ sprite_set = "ballistic" no_salvage = TRUE - eprojectile = /obj/item/projectile/bullet/pistol/medium + eprojectile = /obj/projectile/bullet/pistol/medium eshot_sound = 'sound/weapons/gunshot/gunshot_saw.ogg' req_one_access = list(ACCESS_SYNDICATE) @@ -1192,7 +1192,7 @@ installation = /obj/item/gun/energy/blaster/carbine sprite_set = "blaster" cover_set = "legion" - eprojectile = /obj/item/projectile/energy/blaster/heavy + eprojectile = /obj/projectile/energy/blaster/heavy check_arrest = 0 check_records = 0 diff --git a/code/game/objects/auras/auras.dm b/code/game/objects/auras/auras.dm index 7514cbcbd9f..94fb660c765 100644 --- a/code/game/objects/auras/auras.dm +++ b/code/game/objects/auras/auras.dm @@ -24,7 +24,7 @@ They should also be used for when you want to effect the ENTIRE mob, like having /obj/aura/attackby(obj/item/attacking_item, mob/user) return FALSE -/obj/aura/bullet_act(obj/item/projectile/P, def_zone) +/obj/aura/bullet_act(obj/projectile/P, def_zone) return FALSE /obj/aura/hitby(atom/movable/M, speed) diff --git a/code/game/objects/auras/personal_shield.dm b/code/game/objects/auras/personal_shield.dm index 7877076a8da..917a156f1ff 100644 --- a/code/game/objects/auras/personal_shield.dm +++ b/code/game/objects/auras/personal_shield.dm @@ -8,7 +8,7 @@ playsound(user, 'sound/weapons/flash.ogg', 35, 1) to_chat(user, SPAN_NOTICE("You feel your body prickle as \the [src] comes online.")) -/obj/aura/personal_shield/bullet_act(obj/item/projectile/P, var/def_zone) +/obj/aura/personal_shield/bullet_act(obj/projectile/P, var/def_zone) user.visible_message(SPAN_WARNING("\The [user]'s [src.name] flashes before \the [P] can hit them!")) flick("shield_impact", src) diff --git a/code/game/objects/auras/radiant_aura.dm b/code/game/objects/auras/radiant_aura.dm index a5295340be3..62d3f0257cb 100644 --- a/code/game/objects/auras/radiant_aura.dm +++ b/code/game/objects/auras/radiant_aura.dm @@ -14,7 +14,7 @@ to_chat(user, SPAN_WARNING("Your protective aura dissipates, leaving you feeling cold and unsafe.")) return ..() -/obj/aura/radiant_aura/bullet_act(obj/item/projectile/P, var/def_zone) +/obj/aura/radiant_aura/bullet_act(obj/projectile/P, var/def_zone) if(P.check_armor == LASER) user.visible_message(SPAN_WARNING("\The [P] refracts, bending into \the [user]'s aura.")) return AURA_FALSE diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm index c015498ed97..2a76560fc2d 100644 --- a/code/game/objects/effects/effect_system.dm +++ b/code/game/objects/effects/effect_system.dm @@ -178,8 +178,8 @@ steam.start() -- spawns the effect /obj/effect/effect/smoke/bad/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) if(air_group || (height==0)) return 1 - if(istype(mover, /obj/item/projectile/beam)) - var/obj/item/projectile/beam/B = mover + if(istype(mover, /obj/projectile/beam)) + var/obj/projectile/beam/B = mover B.damage = (B.damage/2) return 1 ///////////////////////////////////////////// diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index 1a41692751e..ffb00f983c6 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -37,7 +37,7 @@ health -= damage healthcheck() -/obj/effect/spider/bullet_act(var/obj/item/projectile/Proj) +/obj/effect/spider/bullet_act(var/obj/projectile/Proj) ..() health -= Proj.get_structure_damage() healthcheck() @@ -75,7 +75,7 @@ if(prob(50)) to_chat(mover, SPAN_WARNING("You get stuck in \the [src] for a moment.")) return FALSE - else if(istype(mover, /obj/item/projectile)) + else if(istype(mover, /obj/projectile)) return prob(30) return TRUE diff --git a/code/game/objects/items/airbubble.dm b/code/game/objects/items/airbubble.dm index c464918040d..fc041d2fe4b 100644 --- a/code/game/objects/items/airbubble.dm +++ b/code/game/objects/items/airbubble.dm @@ -291,7 +291,7 @@ t_air.merge(inside_air) // When we shoot bubble, make it rip. -/obj/structure/closet/airbubble/bullet_act(var/obj/item/projectile/Proj) +/obj/structure/closet/airbubble/bullet_act(var/obj/projectile/Proj) ..() ripped = TRUE update_icon() diff --git a/code/game/objects/items/devices/magnetic_lock.dm b/code/game/objects/items/devices/magnetic_lock.dm index dd5159d71be..daa54ac4a08 100644 --- a/code/game/objects/items/devices/magnetic_lock.dm +++ b/code/game/objects/items/devices/magnetic_lock.dm @@ -107,7 +107,7 @@ else ..() -/obj/item/device/magnetic_lock/bullet_act(var/obj/item/projectile/Proj) +/obj/item/device/magnetic_lock/bullet_act(var/obj/projectile/Proj) takedamage(Proj.damage) ..() diff --git a/code/game/objects/items/shooting_range.dm b/code/game/objects/items/shooting_range.dm index 5ec32261127..3fd1b43f340 100644 --- a/code/game/objects/items/shooting_range.dm +++ b/code/game/objects/items/shooting_range.dm @@ -48,7 +48,7 @@ desc = "A shooting target with a threatening silhouette." hp = 2350 // alium onest too kinda -/obj/item/target/bullet_act(var/obj/item/projectile/Proj) +/obj/item/target/bullet_act(var/obj/projectile/Proj) var/p_x = Proj.p_x + pick(0,0,0,0,0,-1,1) // really ugly way of coding "sometimes offset Proj.p_x!" var/p_y = Proj.p_y + pick(0,0,0,0,0,-1,1) var/decaltype = (Proj.damage_flags & DAMAGE_FLAG_BULLET) ? DECAL_BULLET : DECAL_SCORCH @@ -75,7 +75,7 @@ bmark.pixel_x-- bmark.pixel_y-- - if(Proj.damage >= 20 || istype(Proj, /obj/item/projectile/beam/practice)) + if(Proj.damage >= 20 || istype(Proj, /obj/projectile/beam/practice)) bmark.icon_state = "scorch" bmark.set_dir(pick(NORTH,SOUTH,EAST,WEST)) // random scorch design else diff --git a/code/game/objects/items/weapons/grenades/fragmentation.dm b/code/game/objects/items/weapons/grenades/fragmentation.dm index 70bdc676889..db41c80356b 100644 --- a/code/game/objects/items/weapons/grenades/fragmentation.dm +++ b/code/game/objects/items/weapons/grenades/fragmentation.dm @@ -7,7 +7,7 @@ for(var/turf/T in target_turfs) sleep(0) - var/obj/item/projectile/bullet/pellet/fragment/P = new (O) + var/obj/projectile/bullet/pellet/fragment/P = new (O) P.damage = p_dam P.pellets = fragments_per_projectile @@ -28,7 +28,7 @@ P.attack_mob(M, 0, 100) //otherwise, allow a decent amount of fragments to pass //Fragmentation grenade projectile -/obj/item/projectile/bullet/pellet/fragment +/obj/projectile/bullet/pellet/fragment damage = 20 armor_penetration = 35 range_step = 2 @@ -37,7 +37,6 @@ spread_step = 20 suppressed = TRUE //embedding messages are still produced so it's kind of weird when enabled. - no_attack_log = 1 muzzle_type = null /obj/item/grenade/frag diff --git a/code/game/objects/items/weapons/grenades/stinger.dm b/code/game/objects/items/weapons/grenades/stinger.dm index 01c9d2013ea..ec0210f9958 100644 --- a/code/game/objects/items/weapons/grenades/stinger.dm +++ b/code/game/objects/items/weapons/grenades/stinger.dm @@ -1,5 +1,5 @@ ///Stinger grenade projectile -/obj/item/projectile/bullet/rubberball/stinger_ball +/obj/projectile/bullet/rubberball/stinger_ball damage = 2 agony = 50 armor_penetration = 10 @@ -10,7 +10,6 @@ spread_step = 20 suppressed = TRUE //embedding messages are still produced so it's kind of weird when enabled. - no_attack_log = 1 muzzle_type = null /obj/item/grenade/stinger @@ -34,7 +33,7 @@ var/fragments_per_projectile = round(fragger/target_turfs.len) for(var/turf/T in target_turfs) - var/obj/item/projectile/bullet/rubberball/stinger_ball/P = new (O) + var/obj/projectile/bullet/rubberball/stinger_ball/P = new (O) P.damage = p_dam P.balls = fragments_per_projectile diff --git a/code/game/objects/items/weapons/landmines.dm b/code/game/objects/items/weapons/landmines.dm index 4b26407ed4d..a6feca0d791 100644 --- a/code/game/objects/items/weapons/landmines.dm +++ b/code/game/objects/items/weapons/landmines.dm @@ -471,7 +471,7 @@ for(var/i = 0; i < SHOTS_TO_LAUNCH; i++) var/turf/to_hit = pick(candidate_turfs) - var/obj/item/projectile/bullet/pellet/shotgun/pellet = new(get_turf(src)) + var/obj/projectile/bullet/pellet/shotgun/pellet = new(get_turf(src)) pellet.fire(Get_Angle(get_turf(src), to_hit)) qdel(src) diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm index 16bdca52f8b..ba2c4cab7ae 100644 --- a/code/game/objects/items/weapons/melee/energy.dm +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -89,8 +89,8 @@ shield_power = 0 return FALSE - if(istype(damage_source, /obj/item/projectile/energy) || istype(damage_source, /obj/item/projectile/beam)) - var/obj/item/projectile/P = damage_source + if(istype(damage_source, /obj/projectile/energy) || istype(damage_source, /obj/projectile/beam)) + var/obj/projectile/P = damage_source var/reflectchance = base_reflectchance - round(damage/3) if(!(def_zone in list(BP_CHEST, BP_GROIN,BP_HEAD))) @@ -111,7 +111,7 @@ user.visible_message(SPAN_DANGER("\The [user] blocks [attack_text] with \the [src]!")) return PROJECTILE_STOPPED - else if(istype(damage_source, /obj/item/projectile/bullet) && can_block_bullets) + else if(istype(damage_source, /obj/projectile/bullet) && can_block_bullets) var/reflectchance = (base_reflectchance) - round(damage/3) if(!(def_zone in list(BP_CHEST, BP_GROIN,BP_HEAD))) reflectchance /= 2 diff --git a/code/game/objects/items/weapons/shields.dm b/code/game/objects/items/weapons/shields.dm index 1655118cc67..8f908cc07f8 100644 --- a/code/game/objects/items/weapons/shields.dm +++ b/code/game/objects/items/weapons/shields.dm @@ -5,8 +5,8 @@ /proc/check_shield_arc(mob/user, bad_arc, atom/damage_source = null, mob/attacker = null) //check attack direction var/attack_dir = 0 //direction from the user to the source of the attack - if(istype(damage_source, /obj/item/projectile)) - var/obj/item/projectile/P = damage_source + if(istype(damage_source, /obj/projectile)) + var/obj/projectile/P = damage_source attack_dir = get_dir(get_turf(user), P.starting) else if(attacker) attack_dir = get_dir(get_turf(user), get_turf(attacker)) @@ -19,7 +19,7 @@ /proc/default_parry_check(mob/user, mob/attacker, atom/damage_source) //parry only melee attacks - if(istype(damage_source, /obj/item/projectile) || (attacker && get_dist(user, attacker) > 1) || user.incapacitated()) + if(istype(damage_source, /obj/projectile) || (attacker && get_dist(user, attacker) > 1) || user.incapacitated()) return 0 //block as long as they are not directly behind us @@ -77,10 +77,10 @@ if(.) playsound(user.loc, 'sound/weapons/Genhit.ogg', 50, 1) /obj/item/shield/riot/get_block_chance(mob/user, var/damage, atom/damage_source = null, mob/attacker = null) - if(istype(damage_source, /obj/item/projectile)) - var/obj/item/projectile/P = damage_source + if(istype(damage_source, /obj/projectile)) + var/obj/projectile/P = damage_source //plastic shields do not stop bullets or lasers, even in space. Will block beanbags, rubber bullets, and stunshots just fine though. - if((is_sharp(P) && damage > 10) || istype(P, /obj/item/projectile/beam)) + if((is_sharp(P) && damage > 10) || istype(P, /obj/projectile/beam)) return 0 return base_block_chance @@ -116,9 +116,9 @@ if(.) playsound(user.loc, 'sound/weapons/Genhit.ogg', 50, 1) /obj/item/shield/buckler/get_block_chance(mob/user, var/damage, atom/damage_source = null, mob/attacker = null) - if(istype(damage_source, /obj/item/projectile)) - var/obj/item/projectile/P = damage_source - if((is_sharp(P) && damage > 10) || istype(P, /obj/item/projectile/beam)) + if(istype(damage_source, /obj/projectile)) + var/obj/projectile/P = damage_source + if((is_sharp(P) && damage > 10) || istype(P, /obj/projectile/beam)) return 0 return base_block_chance @@ -192,7 +192,7 @@ HandleShutOff() if(isenergy(damage_source) || isbeam(damage_source)) - var/obj/item/projectile/P = damage_source + var/obj/projectile/P = damage_source var/reflectchance = 80 - (damage/3) if(P.starting && prob(reflectchance)) diff --git a/code/game/objects/items/weapons/traps.dm b/code/game/objects/items/weapons/traps.dm index 5e578428446..1b359dbca3e 100644 --- a/code/game/objects/items/weapons/traps.dm +++ b/code/game/objects/items/weapons/traps.dm @@ -574,7 +574,7 @@ new /obj/item/stack/material/steel(get_turf(src)) qdel(src) -/obj/item/trap/animal/bullet_act(var/obj/item/projectile/Proj) +/obj/item/trap/animal/bullet_act(var/obj/projectile/Proj) var/mob/living/captured_mob = captured ? captured.resolve() : null if(captured_mob) captured_mob.bullet_act(Proj) diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index ee54312819a..f867880a92e 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -74,7 +74,7 @@ qdel(src) return -/obj/effect/energy_net/bullet_act(var/obj/item/projectile/Proj) +/obj/effect/energy_net/bullet_act(var/obj/projectile/Proj) health -= Proj.get_structure_damage() health_check() return FALSE diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm index de30051f704..86f25b20ef0 100644 --- a/code/game/objects/structures.dm +++ b/code/game/objects/structures.dm @@ -78,7 +78,7 @@ dismantle_material.place_sheet(loc) qdel(src) -/obj/structure/bullet_act(obj/item/projectile/P, def_zone) +/obj/structure/bullet_act(obj/projectile/P, def_zone) . = ..() bullet_ping(P) diff --git a/code/game/objects/structures/barricades/_barricade.dm b/code/game/objects/structures/barricades/_barricade.dm index 93dcf7c4a97..26d8467acb8 100644 --- a/code/game/objects/structures/barricades/_barricade.dm +++ b/code/game/objects/structures/barricades/_barricade.dm @@ -85,14 +85,14 @@ /obj/structure/barricade/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) if(air_group || (height==0)) return TRUE - if(istype(mover, /obj/item/projectile)) + if(istype(mover, /obj/projectile)) return (check_cover(mover,target)) if (get_dir(loc, target) == dir) return !density else return TRUE -/obj/structure/barricade/proc/check_cover(obj/item/projectile/P, turf/from) +/obj/structure/barricade/proc/check_cover(obj/projectile/P, turf/from) var/turf/cover = get_turf(src) if(!cover) return TRUE @@ -197,7 +197,7 @@ playsound(src, barricade_hitsound, 25, 1) hit_barricade(attacking_item, user) -/obj/structure/barricade/bullet_act(obj/item/projectile/P) +/obj/structure/barricade/bullet_act(obj/projectile/P) bullet_ping(P) var/damage_to_take = P.damage * P.anti_materiel_potential take_damage(damage_to_take) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 4d3b74a4eea..ae1c889254b 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -316,12 +316,12 @@ new /obj/item/stack/material/steel(get_turf(src)) qdel(src) -/obj/structure/closet/bullet_act(var/obj/item/projectile/Proj) +/obj/structure/closet/bullet_act(var/obj/projectile/Proj) var/proj_damage = Proj.get_structure_damage() if(!proj_damage) return - if(Proj.penetrating || istype(Proj, /obj/item/projectile/bullet)) + if(Proj.penetrating || istype(Proj, /obj/projectile/bullet)) var/distance = get_dist(Proj.starting, get_turf(loc)) for(var/mob/living/L in contents) Proj.attack_mob(L, distance) diff --git a/code/game/objects/structures/crates_lockers/closets/statue.dm b/code/game/objects/structures/crates_lockers/closets/statue.dm index 02401c1814d..44b001e2e06 100644 --- a/code/game/objects/structures/crates_lockers/closets/statue.dm +++ b/code/game/objects/structures/crates_lockers/closets/statue.dm @@ -124,7 +124,7 @@ for(var/mob/M in src) shatter(M) -/obj/structure/closet/statue/bullet_act(var/obj/item/projectile/Proj) +/obj/structure/closet/statue/bullet_act(var/obj/projectile/Proj) health -= Proj.get_structure_damage() check_health() diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm index 06c2c5950e5..3d8119701c5 100644 --- a/code/game/objects/structures/crates_lockers/crates.dm +++ b/code/game/objects/structures/crates_lockers/crates.dm @@ -103,7 +103,7 @@ return TRUE else return FALSE - if (istype(mover,/obj/item/projectile)) + if (istype(mover,/obj/projectile)) // Crates on a table always block shots, otherwise they only occasionally do so. return tablestatus == ABOVE_TABLE ? FALSE : (prob(15) ? FALSE : TRUE) else if((istype(mover) && (mover.pass_flags & PASSTABLE)) && tablestatus == ABOVE_TABLE) diff --git a/code/game/objects/structures/curtains.dm b/code/game/objects/structures/curtains.dm index 2018206dc03..52a6ae0ff56 100644 --- a/code/game/objects/structures/curtains.dm +++ b/code/game/objects/structures/curtains.dm @@ -20,7 +20,7 @@ layer = ABOVE_HUMAN_LAYER opacity = 0 -/obj/structure/curtain/bullet_act(obj/item/projectile/P, def_zone) +/obj/structure/curtain/bullet_act(obj/projectile/P, def_zone) if(!P.nodamage) visible_message(SPAN_WARNING("[P] tears [src] down!")) qdel(src) diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index 5992a41054c..7724d5ae6a7 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -34,7 +34,7 @@ health_check() -/obj/structure/displaycase/bullet_act(var/obj/item/projectile/Proj) +/obj/structure/displaycase/bullet_act(var/obj/projectile/Proj) health -= Proj.get_structure_damage() ..() health_check() diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index 815fbc4a48f..3dae26aa439 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -41,7 +41,7 @@ health = 50 cover = 25 -/obj/structure/girder/bullet_act(var/obj/item/projectile/Proj) +/obj/structure/girder/bullet_act(var/obj/projectile/Proj) //Girders only provide partial cover. There's a chance that the projectiles will just pass through. (unless you are trying to shoot the girder) if(Proj.original != src && !prob(cover)) return PROJECTILE_CONTINUE //pass through @@ -50,7 +50,7 @@ if(!damage) return - if(!istype(Proj, /obj/item/projectile/beam)) + if(!istype(Proj, /obj/projectile/beam)) damage *= 0.4 //non beams do reduced damage take_damage(damage) @@ -376,7 +376,7 @@ /obj/structure/girder/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) if (!mover) return 1 - if(istype(mover,/obj/item/projectile) && density) + if(istype(mover,/obj/projectile) && density) if (prob(50)) return 1 else diff --git a/code/game/objects/structures/gore/core.dm b/code/game/objects/structures/gore/core.dm index cae9c9fdb71..7195c23681d 100644 --- a/code/game/objects/structures/gore/core.dm +++ b/code/game/objects/structures/gore/core.dm @@ -31,7 +31,7 @@ visible_message(SPAN_WARNING(final_message)) qdel(src) -/obj/structure/gore/bullet_act(var/obj/item/projectile/Proj) +/obj/structure/gore/bullet_act(var/obj/projectile/Proj) health -= Proj.damage healthcheck() return ..() diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 6c4a6048144..b29c9f20f51 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -107,12 +107,12 @@ if(istype(mover) && mover.pass_flags & PASSGRILLE) return 1 else - if(istype(mover, /obj/item/projectile)) + if(istype(mover, /obj/projectile)) return prob(30) else return !density -/obj/structure/grille/bullet_act(var/obj/item/projectile/Proj) +/obj/structure/grille/bullet_act(var/obj/projectile/Proj) if(!Proj) return //Flimsy grilles aren't so great at stopping projectiles. However they can absorb some of the impact diff --git a/code/game/objects/structures/hadii_statue.dm b/code/game/objects/structures/hadii_statue.dm index cb8779f5ac7..00968d1b2ac 100644 --- a/code/game/objects/structures/hadii_statue.dm +++ b/code/game/objects/structures/hadii_statue.dm @@ -63,7 +63,7 @@ if(health <= 0) topple() -/obj/structure/hadii_statue/bullet_act(var/obj/item/projectile/Proj) +/obj/structure/hadii_statue/bullet_act(var/obj/projectile/Proj) if(toppled) return if(!Proj) diff --git a/code/game/objects/structures/inflatable.dm b/code/game/objects/structures/inflatable.dm index 021112f30ff..ccbcb92a91a 100644 --- a/code/game/objects/structures/inflatable.dm +++ b/code/game/objects/structures/inflatable.dm @@ -66,7 +66,7 @@ return TRUE return FALSE -/obj/structure/inflatable/bullet_act(var/obj/item/projectile/Proj) +/obj/structure/inflatable/bullet_act(var/obj/projectile/Proj) var/proj_damage = Proj.get_structure_damage() if(!proj_damage) return diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index 905da3072e8..9800d4b09a4 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -429,7 +429,7 @@ if(istype(mover, /mob/living) && mover == pulling) return 1 else - if(istype(mover, /obj/item/projectile)) + if(istype(mover, /obj/projectile)) return prob(30) else return !density diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm index 0d581b40376..f00afcb565e 100644 --- a/code/game/objects/structures/kitchen_spike.dm +++ b/code/game/objects/structures/kitchen_spike.dm @@ -67,7 +67,7 @@ if (!mover) return 1 - if(istype(mover,/obj/item/projectile) && density) + if(istype(mover,/obj/projectile) && density) if (!occupied && prob(80)) //Wiry frame, usually wont be cover return 1 diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index d39abd41080..ece956e5481 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -57,7 +57,7 @@ reflection.update_mirror_filters() -/obj/structure/mirror/bullet_act(var/obj/item/projectile/Proj) +/obj/structure/mirror/bullet_act(var/obj/projectile/Proj) if(prob(Proj.get_structure_damage() * 2)) if(!shattered) shatter() diff --git a/code/game/objects/structures/railing.dm b/code/game/objects/structures/railing.dm index bfc6ab5ccc5..821cf90b71a 100644 --- a/code/game/objects/structures/railing.dm +++ b/code/game/objects/structures/railing.dm @@ -88,7 +88,7 @@ . += FONT_SMALL(SPAN_NOTICE("\The [src] is [anchored ? "" : "not"] screwed to the floor.")) /obj/structure/railing/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) - if(istype(mover,/obj/item/projectile)) + if(istype(mover,/obj/projectile)) return TRUE if(!istype(mover) || mover.pass_flags & PASSRAILING) return TRUE diff --git a/code/game/objects/structures/simple_doors.dm b/code/game/objects/structures/simple_doors.dm index 07e7e972ddc..b3cc7be472f 100644 --- a/code/game/objects/structures/simple_doors.dm +++ b/code/game/objects/structures/simple_doors.dm @@ -193,7 +193,7 @@ attack_hand(user) return -/obj/structure/simple_door/bullet_act(var/obj/item/projectile/Proj) +/obj/structure/simple_door/bullet_act(var/obj/projectile/Proj) health -= Proj.damage bullet_ping(Proj) CheckHealth() diff --git a/code/game/objects/structures/urban.dm b/code/game/objects/structures/urban.dm index 06254707689..253e2848386 100644 --- a/code/game/objects/structures/urban.dm +++ b/code/game/objects/structures/urban.dm @@ -263,7 +263,7 @@ anchored = TRUE /obj/structure/rod_railing/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) - if(istype(mover,/obj/item/projectile)) + if(istype(mover,/obj/projectile)) return TRUE if(!istype(mover) || mover.pass_flags & PASSRAILING) return TRUE @@ -315,7 +315,7 @@ icon_state = "guard_top_end" /obj/structure/road_barrier/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) - if(istype(mover,/obj/item/projectile)) + if(istype(mover,/obj/projectile)) return TRUE if(!istype(mover) || mover.pass_flags & PASSRAILING) return TRUE @@ -347,8 +347,8 @@ /obj/structure/chainlink_fence/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)//So bullets will fly over and stuff. if(air_group || (height==0)) return TRUE - if(istype(mover, /obj/item/projectile)) - var/obj/item/projectile/P = mover + if(istype(mover, /obj/projectile)) + var/obj/projectile/P = mover if(P.original == src) return FALSE if(P.firer && Adjacent(P.firer)) @@ -380,7 +380,7 @@ can_be_unanchored = FALSE /obj/structure/rope_railing/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) - if(istype(mover,/obj/item/projectile)) + if(istype(mover,/obj/projectile)) return TRUE if(!istype(mover) || mover.pass_flags & PASSRAILING) return TRUE diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index a0a3a4d4e9f..805b12fe29f 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -138,7 +138,7 @@ qdel(src) return -/obj/structure/window/bullet_act(var/obj/item/projectile/Proj) +/obj/structure/window/bullet_act(var/obj/projectile/Proj) var/proj_damage = Proj.get_structure_damage() if(!proj_damage) return diff --git a/code/game/turfs/flooring/urban.dm b/code/game/turfs/flooring/urban.dm index f9119ff11f3..2fa5d06ade5 100644 --- a/code/game/turfs/flooring/urban.dm +++ b/code/game/turfs/flooring/urban.dm @@ -94,7 +94,7 @@ layer = ABOVE_HUMAN_LAYER /obj/structure/ledge/roof/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) - if(istype(mover,/obj/item/projectile)) + if(istype(mover,/obj/projectile)) return TRUE if(!istype(mover) || mover.pass_flags & PASSRAILING) return TRUE diff --git a/code/game/turfs/simulated/abyss.dm b/code/game/turfs/simulated/abyss.dm index d904f71a7b4..b4df3595dec 100644 --- a/code/game/turfs/simulated/abyss.dm +++ b/code/game/turfs/simulated/abyss.dm @@ -8,7 +8,7 @@ var/static/list/forbidden_types = typecacheof(list( /obj/singularity, /obj/structure/lattice, - /obj/item/projectile, + /obj/projectile, /obj/effect )) diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 6df426177c3..ace19989e24 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -84,10 +84,10 @@ return TRUE return ..() -/turf/simulated/wall/bullet_act(var/obj/item/projectile/Proj) - if(istype(Proj,/obj/item/projectile/beam)) +/turf/simulated/wall/bullet_act(var/obj/projectile/Proj) + if(istype(Proj,/obj/projectile/beam)) burn(2500) - else if(istype(Proj,/obj/item/projectile/ion)) + else if(istype(Proj,/obj/projectile/ion)) burn(500) bullet_ping(Proj) diff --git a/code/modules/blob/blob.dm b/code/modules/blob/blob.dm index bea3ea56510..a132675307a 100644 --- a/code/modules/blob/blob.dm +++ b/code/modules/blob/blob.dm @@ -190,7 +190,7 @@ attack_living(victim) attack_time = world.time -/obj/effect/blob/bullet_act(var/obj/item/projectile/Proj) +/obj/effect/blob/bullet_act(var/obj/projectile/Proj) if(!Proj) return diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index fda82fa24bb..34b5a207e24 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -393,12 +393,12 @@ matter = list() fire_sound = 'sound/weapons/gunshot/gunshot1.ogg' - projectile_type = /obj/item/projectile/chameleon + projectile_type = /obj/projectile/chameleon charge_meter = 0 charge_cost = 20 //uses next to no power, since it's just holograms max_shots = 50 - var/obj/item/projectile/copy_projectile + var/obj/projectile/copy_projectile var/global/list/gun_choices /obj/item/gun/energy/chameleon/Initialize() @@ -411,7 +411,7 @@ src.gun_choices[initial(G.name)] = gun_type /obj/item/gun/energy/chameleon/consume_next_projectile() - var/obj/item/projectile/P = ..() + var/obj/projectile/P = ..() if(P && ispath(copy_projectile)) P.name = initial(copy_projectile.name) P.icon = initial(copy_projectile.icon) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 8cdb57792a2..f28c846c7c1 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -286,8 +286,8 @@ if(!material || unbreakable) return - if(istype(source, /obj/item/projectile)) - var/obj/item/projectile/P = source + if(istype(source, /obj/projectile)) + var/obj/projectile/P = source if(P.pass_flags & PASSGLASS) if(material.opacity - 0.3 <= 0) return // Lasers ignore 'fully' transparent material. @@ -319,8 +319,8 @@ return ..() if(material.reflectivity) - if(istype(damage_source, /obj/item/projectile/energy) || istype(damage_source, /obj/item/projectile/beam)) - var/obj/item/projectile/P = damage_source + if(istype(damage_source, /obj/projectile/energy) || istype(damage_source, /obj/projectile/beam)) + var/obj/projectile/P = damage_source var/reflectchance = 40 - round(damage/3) if(!(def_zone in list(BP_CHEST, BP_GROIN))) diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index 3e72ec0c2ff..052f6a4f620 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -404,7 +404,7 @@ else var/turf/T = get_turf(user) user.visible_message(SPAN_DANGER("\The [user] crackles with energy!")) - var/obj/item/projectile/beam/tesla/LE = new (T) + var/obj/projectile/beam/tesla/LE = new (T) LE.launch_projectile(A, user.zone_sel? user.zone_sel.selecting : null, user) spark(src, 3, GLOB.alldirs) playsound(user.loc, 'sound/magic/LightningShock.ogg', 75, 1) diff --git a/code/modules/cooking/trays.dm b/code/modules/cooking/trays.dm index 63b19efe9f1..506f5b979bc 100644 --- a/code/modules/cooking/trays.dm +++ b/code/modules/cooking/trays.dm @@ -70,7 +70,7 @@ /obj/item/tray/proc/attempt_load_item(var/obj/item/I, var/mob/user, var/messages = TRUE, var/click_params) if(!I || (I in contents)) return - if(I == src || I.anchored || istype(I, /obj/item/projectile)) + if(I == src || I.anchored || istype(I, /obj/projectile)) return if(istype(I, /obj/item/tray)) var/obj/item/tray/T = I diff --git a/code/modules/custom_ka/barrels.dm b/code/modules/custom_ka/barrels.dm index 134738cc9bb..e7f437f454a 100644 --- a/code/modules/custom_ka/barrels.dm +++ b/code/modules/custom_ka/barrels.dm @@ -11,7 +11,7 @@ cell_increase = 0 capacity_increase = -1 fire_sound = 'sound/weapons/kinetic_accel.ogg' - projectile_type = /obj/item/projectile/kinetic + projectile_type = /obj/projectile/kinetic origin_tech = list(TECH_MATERIAL = 1,TECH_ENGINEERING = 1,TECH_MAGNET = 1, TECH_PHORON = 2) /obj/item/custom_ka_upgrade/barrels/barrel02 @@ -27,7 +27,7 @@ cell_increase = 0 capacity_increase = -2 fire_sound = 'sound/weapons/kinetic_accel.ogg' - projectile_type = /obj/item/projectile/kinetic + projectile_type = /obj/projectile/kinetic origin_tech = list(TECH_MATERIAL = 1,TECH_ENGINEERING = 1,TECH_MAGNET = 3, TECH_PHORON = 2) /obj/item/custom_ka_upgrade/barrels/barrel03 @@ -43,7 +43,7 @@ cell_increase = 0 capacity_increase = -3 fire_sound = 'sound/weapons/resonator_fire.ogg' - projectile_type = /obj/item/projectile/kinetic + projectile_type = /obj/projectile/kinetic origin_tech = list(TECH_MATERIAL = 4,TECH_ENGINEERING = 3,TECH_MAGNET = 3, TECH_PHORON = 3) @@ -60,7 +60,7 @@ cell_increase = 0 capacity_increase = -4 fire_sound = 'sound/weapons/pulse.ogg' - projectile_type = /obj/item/projectile/kinetic + projectile_type = /obj/projectile/kinetic origin_tech = list(TECH_MATERIAL = 6,TECH_ENGINEERING = 3,TECH_MAGNET = 5, TECH_PHORON = 4) /obj/item/custom_ka_upgrade/barrels/barrel05 @@ -76,7 +76,7 @@ cell_increase = 0 capacity_increase = -5 fire_sound = 'sound/weapons/resonator_blast.ogg' - projectile_type = /obj/item/projectile/kinetic + projectile_type = /obj/projectile/kinetic origin_tech = list(TECH_MATERIAL = 6,TECH_ENGINEERING = 5,TECH_MAGNET = 6, TECH_PHORON = 5) /obj/item/custom_ka_upgrade/barrels/illegal @@ -92,7 +92,7 @@ cell_increase = 0 capacity_increase = 0 fire_sound = 'sound/weapons/lasercannonfire.ogg' - projectile_type = /obj/item/projectile/beam/midlaser + projectile_type = /obj/projectile/beam/midlaser origin_tech = list(TECH_MATERIAL = 4,TECH_ENGINEERING = 4,TECH_MAGNET = 4,TECH_COMBAT = 5,TECH_ILLEGAL = 5) /obj/item/custom_ka_upgrade/barrels/barrel02_alt @@ -109,7 +109,7 @@ capacity_increase = -2 aoe_increase = -100 fire_sound = 'sound/weapons/kinetic_accel.ogg' - projectile_type = /obj/item/projectile/kinetic + projectile_type = /obj/projectile/kinetic origin_tech = list(TECH_MATERIAL = 1,TECH_ENGINEERING = 1,TECH_MAGNET = 3, TECH_PHORON = 2) /obj/item/custom_ka_upgrade/barrels/phoron @@ -125,7 +125,7 @@ cell_increase = 0 capacity_increase = -5 fire_sound = 'sound/weapons/marauder.ogg' - projectile_type = /obj/item/projectile/kinetic + projectile_type = /obj/projectile/kinetic origin_tech = list(TECH_MATERIAL = 6,TECH_ENGINEERING = 5,TECH_MAGNET = 6, TECH_PHORON = 6) disallow_chip = TRUE @@ -142,6 +142,6 @@ cell_increase = 0 capacity_increase = -5 fire_sound = 'sound/weapons/pulse2.ogg' - projectile_type = /obj/item/projectile/kinetic + projectile_type = /obj/projectile/kinetic origin_tech = list(TECH_MATERIAL = 8,TECH_ENGINEERING = 8,TECH_MAGNET = 8, TECH_ILLEGAL = 8) disallow_chip = TRUE diff --git a/code/modules/custom_ka/core.dm b/code/modules/custom_ka/core.dm index 5cbff55856b..9c770f01fbc 100644 --- a/code/modules/custom_ka/core.dm +++ b/code/modules/custom_ka/core.dm @@ -28,7 +28,7 @@ dispersion = list(0) reliability = 100 - var/obj/item/projectile/projectile_type = /obj/item/projectile/kinetic + var/obj/projectile/projectile_type = /obj/projectile/kinetic needspin = FALSE @@ -242,8 +242,8 @@ if(T) var/datum/gas_mixture/environment = T.return_air() var/pressure = (environment)? environment.return_pressure() : 0 - if(ispath(installed_barrel.projectile_type, /obj/item/projectile/kinetic)) - var/obj/item/projectile/kinetic/shot_projectile = new installed_barrel.projectile_type(get_turf(src)) + if(ispath(installed_barrel.projectile_type, /obj/projectile/kinetic)) + var/obj/projectile/kinetic/shot_projectile = new installed_barrel.projectile_type(get_turf(src)) shot_projectile.damage = damage_increase shot_projectile.range = range_increase shot_projectile.aoe = max(1, aoe_increase) @@ -255,8 +255,8 @@ shot_projectile.base_damage = damage_increase return shot_projectile - if(ispath(installed_barrel.projectile_type, /obj/item/projectile/beam)) - var/obj/item/projectile/beam/shot_projectile = new installed_barrel.projectile_type(get_turf(src)) + if(ispath(installed_barrel.projectile_type, /obj/projectile/beam)) + var/obj/projectile/beam/shot_projectile = new installed_barrel.projectile_type(get_turf(src)) shot_projectile.damage = damage_increase shot_projectile.range = range_increase return shot_projectile @@ -549,7 +549,7 @@ capacity_increase = 0 mod_limit_increase = 0 var/fire_sound = 'sound/weapons/kinetic_accel.ogg' - var/projectile_type = /obj/item/projectile/kinetic + var/projectile_type = /obj/projectile/kinetic origin_tech = list(TECH_MATERIAL = 2,TECH_ENGINEERING = 2,TECH_MAGNET = 2) /obj/item/custom_ka_upgrade/upgrade_chips diff --git a/code/modules/custom_ka/projectiles.dm b/code/modules/custom_ka/projectiles.dm index b0cbdc71708..e354d5f844e 100644 --- a/code/modules/custom_ka/projectiles.dm +++ b/code/modules/custom_ka/projectiles.dm @@ -1,5 +1,5 @@ //Projectiles -/obj/item/projectile/kinetic +/obj/projectile/kinetic name = "kinetic force" icon_state = null damage = 0 //Base damage handled elsewhere. @@ -11,21 +11,21 @@ var/aoe_shot = FALSE ignore_source_check = TRUE -/obj/item/projectile/kinetic/mech +/obj/projectile/kinetic/mech damage = 40 aoe = 5 -/obj/item/projectile/kinetic/mech/burst +/obj/projectile/kinetic/mech/burst damage = 25 -/obj/item/projectile/kinetic/on_impact(var/atom/A) +/obj/projectile/kinetic/on_impact(var/atom/A) var/turf/target_turf = get_turf(A) if(!target_turf) target_turf = get_turf(src) if(istype(target_turf)) strike_thing(target_turf) -/obj/item/projectile/kinetic/proc/do_damage(var/turf/T, var/living_damage = 1, var/mineral_damage = 1) +/obj/projectile/kinetic/proc/do_damage(var/turf/T, var/living_damage = 1, var/mineral_damage = 1) if(!istype(T)) return var/datum/gas_mixture/environment = T.return_air() living_damage *= max(1 - (environment.return_pressure() / 100) * 0.75, 0) @@ -37,7 +37,7 @@ var/turf/simulated/mineral/M = T M.kinetic_hit(mineral_damage) -/obj/item/projectile/kinetic/proc/strike_thing(var/turf/target_turf) +/obj/projectile/kinetic/proc/strike_thing(var/turf/target_turf) for(var/new_target in RANGE_TURFS(aoe, target_turf)) var/turf/aoe_turf = new_target do_damage(aoe_turf, max(base_damage - base_damage * get_dist(aoe_turf, target_turf) * 0.25, 0), damage) diff --git a/code/modules/heavy_vehicle/equipment/combat.dm b/code/modules/heavy_vehicle/equipment/combat.dm index 1e169c0e86b..08a196d450e 100644 --- a/code/modules/heavy_vehicle/equipment/combat.dm +++ b/code/modules/heavy_vehicle/equipment/combat.dm @@ -96,19 +96,19 @@ use_external_power = TRUE self_recharge = TRUE has_safety = FALSE - projectile_type = /obj/item/projectile/beam/heavylaser/mech + projectile_type = /obj/projectile/beam/heavylaser/mech /obj/item/gun/energy/pulse/mounted/mech use_external_power = TRUE self_recharge = TRUE has_safety = FALSE - projectile_type = /obj/item/projectile/beam/pulse/mech + projectile_type = /obj/projectile/beam/pulse/mech /obj/item/gun/energy/xray/mounted/mech use_external_power = TRUE self_recharge = TRUE has_safety = FALSE - projectile_type = /obj/item/projectile/beam/xray/mech + projectile_type = /obj/projectile/beam/xray/mech /*Launchers*/ @@ -409,7 +409,7 @@ else icon_state = "shield_null" -/obj/aura/mechshield/bullet_act(obj/item/projectile/P, var/def_zone) +/obj/aura/mechshield/bullet_act(obj/projectile/P, var/def_zone) if(!active) return if(shields?.charge) diff --git a/code/modules/holodeck/HolodeckObjects.dm b/code/modules/holodeck/HolodeckObjects.dm index 30b769e0393..71a7bb2cc77 100644 --- a/code/modules/holodeck/HolodeckObjects.dm +++ b/code/modules/holodeck/HolodeckObjects.dm @@ -354,7 +354,7 @@ /obj/structure/holohoop/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) if (istype(mover,/obj/item) && mover.throwing) var/obj/item/I = mover - if(istype(I, /obj/item/projectile)) + if(istype(I, /obj/projectile)) return if(prob(50)) I.forceMove(src.loc) diff --git a/code/modules/hydroponics/trays/tray.dm b/code/modules/hydroponics/trays/tray.dm index 9d9eafababc..73041a72691 100644 --- a/code/modules/hydroponics/trays/tray.dm +++ b/code/modules/hydroponics/trays/tray.dm @@ -208,22 +208,22 @@ connect() update_icon() -/obj/machinery/portable_atmospherics/hydroponics/bullet_act(var/obj/item/projectile/Proj) +/obj/machinery/portable_atmospherics/hydroponics/bullet_act(var/obj/projectile/Proj) //Don't act on seeds like dionaea that shouldn't change. if(seed && seed.get_trait(TRAIT_IMMUTABLE) > 0) return //Override for somatoray projectiles. - if(istype(Proj ,/obj/item/projectile/energy/floramut)&& prob(20)) - if(istype(Proj, /obj/item/projectile/energy/floramut/gene)) - var/obj/item/projectile/energy/floramut/gene/G = Proj + if(istype(Proj ,/obj/projectile/energy/floramut)&& prob(20)) + if(istype(Proj, /obj/projectile/energy/floramut/gene)) + var/obj/projectile/energy/floramut/gene/G = Proj if(seed) seed = seed.diverge_mutate_gene(G.gene, get_turf(loc)) //get_turf just in case it's not in a turf. else mutate(1) return - else if(istype(Proj ,/obj/item/projectile/energy/florayield) && prob(20)) + else if(istype(Proj ,/obj/projectile/energy/florayield) && prob(20)) yield_mod = min(10,yield_mod+rand(1,2)) return diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index e668b9a0d32..d7991f95271 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -129,16 +129,16 @@ var/list/mineral_can_smooth_with = list( GetDrilled() SSicon_smooth.add_to_queue_neighbors(src) -/turf/simulated/mineral/bullet_act(var/obj/item/projectile/Proj) - if(istype(Proj, /obj/item/projectile/beam/plasmacutter)) - var/obj/item/projectile/beam/plasmacutter/PC_beam = Proj +/turf/simulated/mineral/bullet_act(var/obj/projectile/Proj) + if(istype(Proj, /obj/projectile/beam/plasmacutter)) + var/obj/projectile/beam/plasmacutter/PC_beam = Proj var/list/cutter_results = PC_beam.pass_check(src) . = cutter_results[1] if(cutter_results[2]) // the cutter mined the turf, just pass on return // Emitter blasts - if(istype(Proj, /obj/item/projectile/beam/emitter)) + if(istype(Proj, /obj/projectile/beam/emitter)) emitter_blasts_taken++ if(emitter_blasts_taken >= 3) diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index c496ffc88f1..32b02f3aa42 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -28,7 +28,7 @@ sleeping = 0 willfully_sleeping = FALSE -/mob/living/carbon/bullet_act(var/obj/item/projectile/P, var/def_zone) +/mob/living/carbon/bullet_act(var/obj/projectile/P, var/def_zone) ..(P, def_zone) var/show_ssd var/mob/living/carbon/human/H diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index b2cea63631f..bf70649e87a 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -2104,7 +2104,7 @@ return BULLET_IMPACT_METAL return BULLET_IMPACT_MEAT -/mob/living/carbon/human/bullet_impact_visuals(var/obj/item/projectile/P, var/def_zone, var/damage, var/blocked_ratio) +/mob/living/carbon/human/bullet_impact_visuals(var/obj/projectile/P, var/def_zone, var/damage, var/blocked_ratio) ..() if(blocked_ratio > 0.7) return diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 0ea22f2b46a..83d0bbe2709 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -8,7 +8,7 @@ emp_act */ -/mob/living/carbon/human/bullet_act(var/obj/item/projectile/P, var/def_zone) +/mob/living/carbon/human/bullet_act(var/obj/projectile/P, var/def_zone) var/species_check = src.species.bullet_act(P, def_zone, src) if(species_check) diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index 630645f18d4..9dc4f01c584 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -770,7 +770,7 @@ if(!.) return move_trail -/datum/species/proc/bullet_act(var/obj/item/projectile/P, var/def_zone, var/mob/living/carbon/human/H) +/datum/species/proc/bullet_act(var/obj/projectile/P, var/def_zone, var/mob/living/carbon/human/H) return 0 /datum/species/proc/handle_speech_problems(mob/living/carbon/human/H, message, say_verb, message_mode, message_range) diff --git a/code/modules/mob/living/carbon/human/species/station/golem.dm b/code/modules/mob/living/carbon/human/species/station/golem.dm index 895874232ad..9b6c2e032a9 100644 --- a/code/modules/mob/living/carbon/human/species/station/golem.dm +++ b/code/modules/mob/living/carbon/human/species/station/golem.dm @@ -392,8 +392,8 @@ var/global/list/golem_types = list( golem_designation = "Glass" -/datum/species/golem/glass/bullet_act(var/obj/item/projectile/P, var/def_zone, var/mob/living/carbon/human/H) - if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)) +/datum/species/golem/glass/bullet_act(var/obj/projectile/P, var/def_zone, var/mob/living/carbon/human/H) + if(istype(P, /obj/projectile/energy) || istype(P, /obj/projectile/beam)) var/reflectchance = 50 - round(P.damage/3) if(prob(reflectchance)) H.visible_message(SPAN_DANGER("The [P.name] gets reflected by [H]!"), \ @@ -598,8 +598,8 @@ var/global/list/golem_types = list( H.update_dna() ..() -/datum/species/golem/diamond/bullet_act(var/obj/item/projectile/P, var/def_zone, var/mob/living/carbon/human/H) - if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)) +/datum/species/golem/diamond/bullet_act(var/obj/projectile/P, var/def_zone, var/mob/living/carbon/human/H) + if(istype(P, /obj/projectile/energy) || istype(P, /obj/projectile/beam)) var/reflectchance = 80 - round(P.damage/3) if(prob(reflectchance)) H.visible_message(SPAN_DANGER("The [P.name] gets reflected by [H]!"), \ diff --git a/code/modules/mob/living/carbon/slime/slime.dm b/code/modules/mob/living/carbon/slime/slime.dm index b09aeea4312..d0a11e93e04 100644 --- a/code/modules/mob/living/carbon/slime/slime.dm +++ b/code/modules/mob/living/carbon/slime/slime.dm @@ -246,7 +246,7 @@ ..(-abs(amount)) // Heals them return -/mob/living/carbon/slime/bullet_act(var/obj/item/projectile/Proj) +/mob/living/carbon/slime/bullet_act(var/obj/projectile/Proj) attacked += 10 ..(Proj) return FALSE diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 1757996e036..1dd413de0d0 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -23,7 +23,7 @@ if(armor) . += armor -/mob/living/bullet_act(var/obj/item/projectile/P, var/def_zone, var/used_weapon = null) +/mob/living/bullet_act(var/obj/projectile/P, var/def_zone, var/used_weapon = null) //Being hit while using a cloaking device var/obj/item/cloaking_device/C = locate(/obj/item/cloaking_device) in src @@ -86,7 +86,7 @@ break //For visuals, blood splatters and so on. -/mob/living/proc/bullet_impact_visuals(var/obj/item/projectile/P, var/def_zone, var/damage, var/blocked_ratio) +/mob/living/proc/bullet_impact_visuals(var/obj/projectile/P, var/def_zone, var/damage, var/blocked_ratio) var/list/impact_sounds = LAZYACCESS(P.impact_sounds, get_bullet_impact_effect_type(def_zone)) if(length(impact_sounds)) playsound(src, pick(impact_sounds), 75) diff --git a/code/modules/mob/living/silicon/robot/combat_robot.dm b/code/modules/mob/living/silicon/robot/combat_robot.dm index 2382b4f015f..6210e112306 100644 --- a/code/modules/mob/living/silicon/robot/combat_robot.dm +++ b/code/modules/mob/living/silicon/robot/combat_robot.dm @@ -64,7 +64,7 @@ charge_meter = 0 max_shots = 20 charge_cost = 100 - projectile_type = /obj/item/projectile/bullet/pistol/medium/ap + projectile_type = /obj/projectile/bullet/pistol/medium/ap self_recharge = 1 use_external_power = 1 recharge_time = 5 diff --git a/code/modules/mob/living/silicon/robot/items/guns/ballistic_cannon.dm b/code/modules/mob/living/silicon/robot/items/guns/ballistic_cannon.dm index 16b4deecd1f..1dd733734b3 100644 --- a/code/modules/mob/living/silicon/robot/items/guns/ballistic_cannon.dm +++ b/code/modules/mob/living/silicon/robot/items/guns/ballistic_cannon.dm @@ -8,7 +8,7 @@ charge_meter = FALSE max_shots = 10 charge_cost = 300 - projectile_type = /obj/item/projectile/bullet/gyro + projectile_type = /obj/projectile/bullet/gyro self_recharge = TRUE use_external_power = TRUE recharge_time = 5 diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 0901b15dc5b..16cfb1b451e 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -567,7 +567,7 @@ /mob/living/silicon/robot/restrained() return FALSE -/mob/living/silicon/robot/bullet_act(var/obj/item/projectile/Proj) +/mob/living/silicon/robot/bullet_act(var/obj/projectile/Proj) ..(Proj) if(prob(75) && Proj.damage > 0) spark_system.queue() diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index d128a775876..662850314b8 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -138,7 +138,7 @@ /mob/living/silicon/IsAdvancedToolUser() return TRUE -/mob/living/silicon/bullet_act(obj/item/projectile/Proj) +/mob/living/silicon/bullet_act(obj/projectile/Proj) if(!Proj.nodamage) switch(Proj.damage_type) if(DAMAGE_BRUTE) diff --git a/code/modules/mob/living/simple_animal/constructs/constructs/juggernaut.dm b/code/modules/mob/living/simple_animal/constructs/constructs/juggernaut.dm index 10000bd4835..7e0041a144d 100644 --- a/code/modules/mob/living/simple_animal/constructs/constructs/juggernaut.dm +++ b/code/modules/mob/living/simple_animal/constructs/constructs/juggernaut.dm @@ -22,8 +22,8 @@ resistance = 10 construct_spells = list(/spell/aoe_turf/conjure/forcewall/lesser) -/mob/living/simple_animal/construct/armored/bullet_act(var/obj/item/projectile/P) - if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)) +/mob/living/simple_animal/construct/armored/bullet_act(var/obj/projectile/P) + if(istype(P, /obj/projectile/energy) || istype(P, /obj/projectile/beam)) var/reflectchance = 80 - round(P.damage / 3) if(prob(reflectchance)) adjustBruteLoss(P.damage * 0.3) diff --git a/code/modules/mob/living/simple_animal/friendly/adhomai.dm b/code/modules/mob/living/simple_animal/friendly/adhomai.dm index b90d133904f..b17420236fd 100644 --- a/code/modules/mob/living/simple_animal/friendly/adhomai.dm +++ b/code/modules/mob/living/simple_animal/friendly/adhomai.dm @@ -239,7 +239,7 @@ unburrow() ..() -/mob/living/simple_animal/ice_catcher/bullet_act(obj/item/projectile/P, def_zone) +/mob/living/simple_animal/ice_catcher/bullet_act(obj/projectile/P, def_zone) if(burrowed && (stat != DEAD)) unburrow() ..() diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index 27b5943836e..bbacdedde9f 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -185,7 +185,7 @@ . = ..() set_flee_target(src.loc) -/mob/living/simple_animal/cat/bullet_act(var/obj/item/projectile/proj) +/mob/living/simple_animal/cat/bullet_act(var/obj/projectile/proj) . = ..() set_flee_target(proj.firer? proj.firer : src.loc) diff --git a/code/modules/mob/living/simple_animal/friendly/schlorrgo.dm b/code/modules/mob/living/simple_animal/friendly/schlorrgo.dm index bb8c84bd738..ad3c0177126 100644 --- a/code/modules/mob/living/simple_animal/friendly/schlorrgo.dm +++ b/code/modules/mob/living/simple_animal/friendly/schlorrgo.dm @@ -298,7 +298,7 @@ /mob/living/simple_animal/hostile/cybernetic_schlorrgo/Initialize() . = ..() if(prob(25)) - projectiletype = /obj/item/projectile/beam/pistol + projectiletype = /obj/projectile/beam/pistol projectilesound = 'sound/weapons/laser1.ogg' rapid = FALSE ranged = TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/adhomai.dm b/code/modules/mob/living/simple_animal/hostile/adhomai.dm index d9a8bdd0c0e..23ea80afdc7 100644 --- a/code/modules/mob/living/simple_animal/hostile/adhomai.dm +++ b/code/modules/mob/living/simple_animal/hostile/adhomai.dm @@ -136,7 +136,7 @@ smart_ranged = TRUE ranged = TRUE - projectiletype = /obj/item/projectile/beam/tesla/plasmageist + projectiletype = /obj/projectile/beam/tesla/plasmageist projectilesound = 'sound/magic/LightningShock.ogg' pass_flags = PASSTABLE|PASSRAILING @@ -168,7 +168,7 @@ /mob/living/simple_animal/hostile/plasmageist/ex_act(severity) return -/obj/item/projectile/beam/tesla/plasmageist/on_impact(atom/target) +/obj/projectile/beam/tesla/plasmageist/on_impact(atom/target) . = ..() if(isliving(target)) explosion(target, -1, 0, 2) diff --git a/code/modules/mob/living/simple_animal/hostile/bear.dm b/code/modules/mob/living/simple_animal/hostile/bear.dm index 5f35c98039d..5a9b8d68201 100644 --- a/code/modules/mob/living/simple_animal/hostile/bear.dm +++ b/code/modules/mob/living/simple_animal/hostile/bear.dm @@ -274,7 +274,7 @@ instant_aggro(1) -/mob/living/simple_animal/hostile/bear/bullet_act(obj/item/projectile/P, def_zone)//Teleport around when shot, so its harder to burst it down with a carbine +/mob/living/simple_animal/hostile/bear/bullet_act(obj/projectile/P, def_zone)//Teleport around when shot, so its harder to burst it down with a carbine var/healthbefore = health ..() spawn(1) @@ -508,7 +508,7 @@ forceMove(target) spark_system.queue() -/mob/living/simple_animal/hostile/bear/spatial/bullet_act(obj/item/projectile/P, def_zone)//Teleport around when shot, so its harder to burst it down with a carbine +/mob/living/simple_animal/hostile/bear/spatial/bullet_act(obj/projectile/P, def_zone)//Teleport around when shot, so its harder to burst it down with a carbine ..(P, def_zone) if (prob(P.damage*1.5))//Bear has a good chance of teleporting when shot, making it harder to burst down teleport_tactical() diff --git a/code/modules/mob/living/simple_animal/hostile/changeling.dm b/code/modules/mob/living/simple_animal/hostile/changeling.dm index dba3f45b266..f51f2a63704 100644 --- a/code/modules/mob/living/simple_animal/hostile/changeling.dm +++ b/code/modules/mob/living/simple_animal/hostile/changeling.dm @@ -28,7 +28,7 @@ melee_damage_upper = 45 armor_penetration = 30 ranged = 1 - projectiletype = /obj/item/projectile/bonedart/ling + projectiletype = /obj/projectile/bonedart/ling projectilesound = 'sound/weapons/bloodyslice.ogg' resist_mod = 15 mob_size = 25 diff --git a/code/modules/mob/living/simple_animal/hostile/commanded/commanded.dm b/code/modules/mob/living/simple_animal/hostile/commanded/commanded.dm index d3d448392bb..d9b32c047ca 100644 --- a/code/modules/mob/living/simple_animal/hostile/commanded/commanded.dm +++ b/code/modules/mob/living/simple_animal/hostile/commanded/commanded.dm @@ -310,7 +310,7 @@ change_stance(HOSTILE_STANCE_IDLE) audible_emote("[pick(sad_emote)].",0) -/mob/living/simple_animal/hostile/commanded/bullet_act(var/obj/item/projectile/P, var/def_zone) +/mob/living/simple_animal/hostile/commanded/bullet_act(var/obj/projectile/P, var/def_zone) ..() // We forgive our master diff --git a/code/modules/mob/living/simple_animal/hostile/commanded/ives.dm b/code/modules/mob/living/simple_animal/hostile/commanded/ives.dm index 538dda74c48..014627f5d67 100644 --- a/code/modules/mob/living/simple_animal/hostile/commanded/ives.dm +++ b/code/modules/mob/living/simple_animal/hostile/commanded/ives.dm @@ -33,7 +33,7 @@ ranged = TRUE projectilesound = 'sound/weapons/taser2.ogg' - projectiletype = /obj/item/projectile/beam/hivebot/harmless + projectiletype = /obj/projectile/beam/hivebot/harmless attacktext = "harmlessly clawed" harm_intent_damage = 5 // the damage we take diff --git a/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot.dm index 084587c294a..3e7bf222d2b 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot.dm @@ -15,7 +15,7 @@ attacktext = "slashed" attack_sound = /singleton/sound_category/hivebot_melee projectilesound = 'sound/weapons/gunshot/gunshot_suppressed.ogg' - projectiletype = /obj/item/projectile/bullet/pistol/hivebotspike + projectiletype = /obj/projectile/bullet/pistol/hivebotspike organ_names = list("head", "core", "side thruster", "bottom thruster") faction = "hivebot" min_oxy = 0 @@ -81,9 +81,8 @@ else return "blood_overlay_armed" -/mob/living/simple_animal/hostile/hivebot/bullet_act(var/obj/item/projectile/Proj) - if(istype(Proj, /obj/item/projectile/bullet/pistol/hivebotspike) || istype(Proj, /obj/item/projectile/beam/hivebot)) - Proj.no_attack_log = 1 +/mob/living/simple_animal/hostile/hivebot/bullet_act(var/obj/projectile/Proj) + if(istype(Proj, /obj/projectile/bullet/pistol/hivebotspike) || istype(Proj, /obj/projectile/beam/hivebot)) return PROJECTILE_CONTINUE else return ..(Proj) @@ -195,9 +194,8 @@ has_exploded = TRUE addtimer(CALLBACK(src, PROC_REF(burst)), 20) -/mob/living/simple_animal/hostile/hivebot/bomber/bullet_act(var/obj/item/projectile/Proj) - if(istype(Proj, /obj/item/projectile/bullet/pistol/hivebotspike) || istype(Proj, /obj/item/projectile/beam/hivebot)) - Proj.no_attack_log = 1 +/mob/living/simple_animal/hostile/hivebot/bomber/bullet_act(var/obj/projectile/Proj) + if(istype(Proj, /obj/projectile/bullet/pistol/hivebotspike) || istype(Proj, /obj/projectile/beam/hivebot)) return PROJECTILE_CONTINUE else if(!has_exploded) has_exploded = TRUE @@ -217,5 +215,5 @@ ranged = 1 /mob/living/simple_animal/hostile/hivebot/range/rapid - projectiletype = /obj/item/projectile/bullet/pistol/hivebotspike/needle + projectiletype = /obj/projectile/bullet/pistol/hivebotspike/needle rapid = 1 diff --git a/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_beacon.dm b/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_beacon.dm index 21bf1d830a0..b382bd7c672 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_beacon.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_beacon.dm @@ -15,7 +15,7 @@ maxHealth = 300 blood_type = COLOR_OIL projectilesound = 'sound/weapons/taser2.ogg' - projectiletype = /obj/item/projectile/beam/hivebot + projectiletype = /obj/projectile/beam/hivebot wander = 0 stop_automated_movement = 1 status_flags = 0 @@ -208,9 +208,8 @@ /mob/living/simple_animal/hostile/hivebotbeacon/AirflowCanMove(n) return 0 -/mob/living/simple_animal/hostile/hivebotbeacon/bullet_act(var/obj/item/projectile/Proj) - if(istype(Proj, /obj/item/projectile/bullet/pistol/hivebotspike) || istype(Proj, /obj/item/projectile/beam/hivebot)) - Proj.no_attack_log = 1 +/mob/living/simple_animal/hostile/hivebotbeacon/bullet_act(var/obj/projectile/Proj) + if(istype(Proj, /obj/projectile/bullet/pistol/hivebotspike) || istype(Proj, /obj/projectile/beam/hivebot)) return PROJECTILE_CONTINUE else ..(Proj) @@ -341,7 +340,7 @@ ################*/ /mob/living/simple_animal/hostile/hivebotbeacon/incendiary - projectiletype = /obj/item/projectile/beam/hivebot/incendiary + projectiletype = /obj/projectile/beam/hivebot/incendiary projectilesound = 'sound/weapons/plasma_cutter.ogg' rapid = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_beacon_projectiles.dm b/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_beacon_projectiles.dm index 045766b63fe..fcb910f2055 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_beacon_projectiles.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_beacon_projectiles.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/beam/hivebot +/obj/projectile/beam/hivebot name = "electrical discharge" damage = 20 damage_type = DAMAGE_BURN @@ -8,13 +8,13 @@ tracer_type = /obj/effect/projectile/tracer/stun impact_type = /obj/effect/projectile/impact/stun -/obj/item/projectile/beam/hivebot/harmless +/obj/projectile/beam/hivebot/harmless name = "harmless electrical discharge" damage = 0 damage_type = DAMAGE_PAIN agony = 0 -/obj/item/projectile/beam/hivebot/incendiary +/obj/projectile/beam/hivebot/incendiary name = "archaic energy welder" damage_type = DAMAGE_BURN damage = 20 diff --git a/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_harvester.dm b/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_harvester.dm index 3546ed5ea7f..ac54554539d 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_harvester.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_harvester.dm @@ -14,7 +14,7 @@ ranged = 1 attacktext = "skewered" projectilesound = 'sound/weapons/lasercannonfire.ogg' - projectiletype = /obj/item/projectile/beam/hivebot/incendiary/heavy + projectiletype = /obj/projectile/beam/hivebot/incendiary/heavy organ_names = list("head", "core", "side thruster", "harvesting array") faction = "hivebot" min_oxy = 0 @@ -72,9 +72,8 @@ /mob/living/simple_animal/hostile/retaliate/hivebotharvester/AirflowCanMove(n) return 0 -/mob/living/simple_animal/hostile/retaliate/hivebotharvester/bullet_act(var/obj/item/projectile/Proj) - if(istype(Proj, /obj/item/projectile/bullet/pistol/hivebotspike) || istype(Proj, /obj/item/projectile/beam/hivebot)) - Proj.no_attack_log = 1 +/mob/living/simple_animal/hostile/retaliate/hivebotharvester/bullet_act(var/obj/projectile/Proj) + if(istype(Proj, /obj/projectile/bullet/pistol/hivebotspike) || istype(Proj, /obj/projectile/beam/hivebot)) return PROJECTILE_CONTINUE else return ..(Proj) diff --git a/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_harvester_projectiles.dm b/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_harvester_projectiles.dm index 23f0f53221e..6e73cb02ec5 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_harvester_projectiles.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_harvester_projectiles.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/beam/hivebot/incendiary/heavy +/obj/projectile/beam/hivebot/incendiary/heavy name = "archaic mining laser" damage = 25 incinerate = 10 diff --git a/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_projectiles.dm b/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_projectiles.dm index f8e46f09f9e..0e7e033d028 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_projectiles.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_projectiles.dm @@ -1,11 +1,11 @@ -/obj/item/projectile/bullet/pistol/hivebotspike +/obj/projectile/bullet/pistol/hivebotspike name = "spike" damage = 10 armor_penetration = 40 sharp = 1 embed = 0 -/obj/item/projectile/bullet/pistol/hivebotspike/needle +/obj/projectile/bullet/pistol/hivebotspike/needle name = "needle" damage = 5 armor_penetration = 60 diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 52479f8e81f..923ea46a62e 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -120,7 +120,7 @@ change_stance(HOSTILE_STANCE_ATTACKING) visible_message(SPAN_WARNING("\The [src] gets taunted by \the [H] and begins to retaliate!")) -/mob/living/simple_animal/hostile/bullet_act(var/obj/item/projectile/P, var/def_zone) +/mob/living/simple_animal/hostile/bullet_act(var/obj/projectile/P, var/def_zone) ..() if (ismob(P.firer) && target_mob != P.firer) target_mob = P.firer @@ -353,7 +353,7 @@ return FALSE var/target_hit = FALSE - var/flags = ispath(projectiletype, /obj/item/projectile/beam) ? PASSTABLE|PASSGLASS|PASSGRILLE : PASSTABLE + var/flags = ispath(projectiletype, /obj/projectile/beam) ? PASSTABLE|PASSGLASS|PASSGRILLE : PASSTABLE for(var/V in check_trajectory(target_mob, src, pass_flags=flags)) if(V == target_mob) target_hit = TRUE @@ -376,7 +376,7 @@ if(target == start) return - var/obj/item/projectile/A = new projectiletype(user.loc) + var/obj/projectile/A = new projectiletype(user.loc) playsound(user, projectilesound, 100, 1) if(!A) return var/def_zone = get_exposed_defense_zone(target) diff --git a/code/modules/mob/living/simple_animal/hostile/icarus_drone.dm b/code/modules/mob/living/simple_animal/hostile/icarus_drone.dm index e4f4c2d47d3..bfd6f141d1e 100644 --- a/code/modules/mob/living/simple_animal/hostile/icarus_drone.dm +++ b/code/modules/mob/living/simple_animal/hostile/icarus_drone.dm @@ -22,7 +22,7 @@ maxHealth = 300 blood_type = COLOR_OIL speed = 8 - projectiletype = /obj/item/projectile/beam/drone + projectiletype = /obj/projectile/beam/drone projectilesound = 'sound/weapons/laser3.ogg' destroy_surroundings = 0 var/datum/effect_system/ion_trail/ion_trail @@ -67,7 +67,7 @@ set_light(1.2, 3, LIGHT_COLOR_BLUE) if(prob(5)) - projectiletype = /obj/item/projectile/beam/pulse/drone + projectiletype = /obj/projectile/beam/pulse/drone projectilesound = 'sound/weapons/pulse2.ogg' ion_trail = new(src) ion_trail.start() @@ -352,10 +352,10 @@ return ..() -/obj/item/projectile/beam/drone +/obj/projectile/beam/drone damage = 15 -/obj/item/projectile/beam/pulse/drone +/obj/projectile/beam/pulse/drone damage = 10 /mob/living/simple_animal/hostile/icarus_drone/malf diff --git a/code/modules/mob/living/simple_animal/hostile/mimic.dm b/code/modules/mob/living/simple_animal/hostile/mimic.dm index 1209c2f5436..969cca74ef8 100644 --- a/code/modules/mob/living/simple_animal/hostile/mimic.dm +++ b/code/modules/mob/living/simple_animal/hostile/mimic.dm @@ -120,7 +120,7 @@ // Copy Mimic // -var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/cable, /obj/structure/window, /obj/item/projectile/animate) +var/global/list/protected_objects = list(/obj/structure/table, /obj/structure/cable, /obj/structure/window, /obj/projectile/animate) /mob/living/simple_animal/hostile/mimic/copy diff --git a/code/modules/mob/living/simple_animal/hostile/pirate.dm b/code/modules/mob/living/simple_animal/hostile/pirate.dm index d26789c20ed..ea9417a4b7d 100644 --- a/code/modules/mob/living/simple_animal/hostile/pirate.dm +++ b/code/modules/mob/living/simple_animal/hostile/pirate.dm @@ -44,7 +44,7 @@ projectilesound = 'sound/weapons/laser1.ogg' ranged = 1 rapid = 1 - projectiletype = /obj/item/projectile/beam + projectiletype = /obj/projectile/beam corpse = /obj/effect/landmark/mobcorpse/pirate/ranged weapon1 = /obj/item/gun/energy/laser diff --git a/code/modules/mob/living/simple_animal/hostile/pra.dm b/code/modules/mob/living/simple_animal/hostile/pra.dm index 6dfee3f92c0..d47dd8cbd7f 100644 --- a/code/modules/mob/living/simple_animal/hostile/pra.dm +++ b/code/modules/mob/living/simple_animal/hostile/pra.dm @@ -122,13 +122,13 @@ rapid = TRUE projectilesound = 'sound/weapons/gunshot/gunshot_saw.ogg' - projectiletype = /obj/item/projectile/bullet/rifle/a762 + projectiletype = /obj/projectile/bullet/rifle/a762 casingtype = /obj/item/ammo_casing/a762/spent /mob/living/simple_animal/hostile/republicon/ranged/Initialize() . = ..() if(prob(25)) - projectiletype = /obj/item/projectile/bullet/gyro/law + projectiletype = /obj/projectile/bullet/gyro/law projectilesound = 'sound/effects/Explosion1.ogg' rapid = FALSE casingtype = null @@ -177,7 +177,7 @@ speed = 1 ranged = TRUE - projectiletype = /obj/item/projectile/beam/pistol + projectiletype = /obj/projectile/beam/pistol projectilesound = 'sound/weapons/laser1.ogg' emote_see = list("examines","hovers","blinks") diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/cavern.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/cavern.dm index 7584e2382c7..9655e35b11a 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/cavern.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/cavern.dm @@ -26,7 +26,7 @@ attacktext = "chomped" attack_sound = 'sound/weapons/bite.ogg' speed = 4 - projectiletype = /obj/item/projectile/beam/cavern + projectiletype = /obj/projectile/beam/cavern projectilesound = 'sound/magic/lightningbolt.ogg' break_stuff_probability = 2 @@ -50,7 +50,7 @@ /mob/living/simple_animal/hostile/retaliate/cavern_dweller/Allow_Spacemove(var/check_drift = 0) return 1 -/obj/item/projectile/beam/cavern +/obj/projectile/beam/cavern name = "electrical discharge" icon_state = "stun" damage_type = DAMAGE_BURN @@ -67,7 +67,7 @@ else ..() -/obj/item/projectile/beam/cavern/on_hit(var/atom/target, var/blocked = 0) +/obj/projectile/beam/cavern/on_hit(var/atom/target, var/blocked = 0) if(ishuman(target)) var/mob/living/carbon/human/M = target var/shock_damage = rand(10,20) @@ -95,7 +95,7 @@ a_intent = I_HURT speak_emote = list("chirps","buzzes","whirrs") emote_hear = list("chirps cheerfully","buzzes","whirrs","hums placidly","chirps","hums") - projectiletype = /obj/item/projectile/beam/plasmacutter + projectiletype = /obj/projectile/beam/plasmacutter projectilesound = 'sound/weapons/plasma_cutter.ogg' destroy_surroundings = FALSE min_oxy = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/russian.dm b/code/modules/mob/living/simple_animal/hostile/russian.dm index 597614e8425..e754504a9c7 100644 --- a/code/modules/mob/living/simple_animal/hostile/russian.dm +++ b/code/modules/mob/living/simple_animal/hostile/russian.dm @@ -44,7 +44,7 @@ corpse = /obj/effect/landmark/mobcorpse/russian/ranged weapon1 = /obj/item/gun/projectile/revolver/mateba ranged = 1 - projectiletype = /obj/item/projectile/bullet + projectiletype = /obj/projectile/bullet projectilesound = 'sound/weapons/gunshot/gunshot1.ogg' casingtype = /obj/item/ammo_casing/a357 smart_ranged = TRUE diff --git a/code/modules/mob/living/simple_animal/hostile/sarlacc.dm b/code/modules/mob/living/simple_animal/hostile/sarlacc.dm index 43c41aef92f..43bf9bf47d9 100644 --- a/code/modules/mob/living/simple_animal/hostile/sarlacc.dm +++ b/code/modules/mob/living/simple_animal/hostile/sarlacc.dm @@ -340,7 +340,7 @@ minbodytemp = 0 ranged = 1 projectilesound = 'sound/magic/WandODeath.ogg' - projectiletype = /obj/item/projectile/energy/thoughtbubble + projectiletype = /obj/projectile/energy/thoughtbubble speak_emote = list("gargles") emote_hear = list("gargles") emote_see = list("ooozes","pulses","drips","pumps") @@ -358,7 +358,7 @@ /mob/living/simple_animal/hostile/greatwormking/Move() return -/obj/item/projectile/energy/thoughtbubble +/obj/projectile/energy/thoughtbubble name = "psionic blast" icon_state = "ion" nodamage = TRUE @@ -391,7 +391,7 @@ "You've got a bad feeling about this." ) -/obj/item/projectile/energy/thoughtbubble/on_impact(var/atom/A) +/obj/projectile/energy/thoughtbubble/on_impact(var/atom/A) ..() if(istype(A, /mob/living)) var/mob/living/L = A diff --git a/code/modules/mob/living/simple_animal/hostile/space_fauna.dm b/code/modules/mob/living/simple_animal/hostile/space_fauna.dm index eb7f5a3e172..882cb45ef22 100644 --- a/code/modules/mob/living/simple_animal/hostile/space_fauna.dm +++ b/code/modules/mob/living/simple_animal/hostile/space_fauna.dm @@ -222,7 +222,7 @@ has_exploded = TRUE addtimer(CALLBACK(src, PROC_REF(explode)), 5) -/mob/living/simple_animal/hostile/carp/bloater/bullet_act(var/obj/item/projectile/Proj) +/mob/living/simple_animal/hostile/carp/bloater/bullet_act(var/obj/projectile/Proj) if(!has_exploded) has_exploded = TRUE explode() diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index 5abf6be6aee..05bdcf0262c 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -78,7 +78,7 @@ visible_message(SPAN_WARNING("[user] gently taps [src] with the [attacking_item].")) -/mob/living/simple_animal/hostile/syndicate/melee/bullet_act(var/obj/item/projectile/Proj) +/mob/living/simple_animal/hostile/syndicate/melee/bullet_act(var/obj/projectile/Proj) if(!Proj) return if(prob(65)) src.health -= Proj.damage @@ -114,7 +114,7 @@ icon_living = "syndicateranged" casingtype = /obj/item/ammo_casing/c10mm projectilesound = 'sound/weapons/gunshot/gunshot_light.ogg' - projectiletype = /obj/item/projectile/bullet/pistol/medium + projectiletype = /obj/projectile/bullet/pistol/medium weapon1 = /obj/item/gun/projectile/automatic/c20r diff --git a/code/modules/mob/living/simple_animal/hostile/vannatusk.dm b/code/modules/mob/living/simple_animal/hostile/vannatusk.dm index 2db7f9c64d8..72095c89e47 100644 --- a/code/modules/mob/living/simple_animal/hostile/vannatusk.dm +++ b/code/modules/mob/living/simple_animal/hostile/vannatusk.dm @@ -62,7 +62,7 @@ /mob/living/simple_animal/hostile/vannatusk/proc/fire_spike(var/mob/living/target_mob) visible_message(SPAN_DANGER("\The [src] fires a spike at [target_mob]!")) playsound(get_turf(src), 'sound/weapons/bloodyslice.ogg', 50, 1) - var/obj/item/projectile/bonedart/A = new /obj/item/projectile/bonedart(get_turf(src)) + var/obj/projectile/bonedart/A = new /obj/projectile/bonedart(get_turf(src)) var/def_zone = get_exposed_defense_zone(target_mob) A.launch_projectile(target_mob, def_zone) diff --git a/code/modules/mob/living/simple_animal/illusion.dm b/code/modules/mob/living/simple_animal/illusion.dm index 49c5e697fdf..3938914993d 100644 --- a/code/modules/mob/living/simple_animal/illusion.dm +++ b/code/modules/mob/living/simple_animal/illusion.dm @@ -38,7 +38,7 @@ else return list("???") -/mob/living/simple_animal/illusion/bullet_act(obj/item/projectile/P) +/mob/living/simple_animal/illusion/bullet_act(obj/projectile/P) if(!P) return diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index 7984a09c343..07b4d04dde8 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -254,7 +254,7 @@ return //Bullets -/mob/living/simple_animal/parrot/bullet_act(var/obj/item/projectile/Proj) +/mob/living/simple_animal/parrot/bullet_act(var/obj/projectile/Proj) ..() if(!stat && !client) if(parrot_state == PARROT_PERCH) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 460efa13734..8bfb4e183d6 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -651,7 +651,7 @@ if(ismob(AM.throwing?.thrower?.resolve())) handle_attack_by(AM.throwing?.thrower?.resolve()) -/mob/living/simple_animal/bullet_act(obj/item/projectile/P, def_zone) +/mob/living/simple_animal/bullet_act(obj/projectile/P, def_zone) . = ..() if(ismob(P.firer)) handle_attack_by(P.firer) @@ -962,7 +962,7 @@ /mob/living/simple_animal/get_digestion_product() return /singleton/reagent/nutriment -/mob/living/simple_animal/bullet_impact_visuals(var/obj/item/projectile/P, var/def_zone, var/damage) +/mob/living/simple_animal/bullet_impact_visuals(var/obj/projectile/P, var/def_zone, var/damage) ..() switch(get_bullet_impact_effect_type(def_zone)) if(BULLET_IMPACT_MEAT) diff --git a/code/modules/modular_computers/computers/modular_computer/damage.dm b/code/modules/modular_computers/computers/modular_computer/damage.dm index c25f162c2d4..e5a83c4c529 100644 --- a/code/modules/modular_computers/computers/modular_computer/damage.dm +++ b/code/modules/modular_computers/computers/modular_computer/damage.dm @@ -52,7 +52,7 @@ // "Stun" weapons can cause minor damage to components (short-circuits?) // "Burn" damage is equally strong against internal components and exterior casing // "Brute" damage mostly damages the casing. -/obj/item/modular_computer/bullet_act(var/obj/item/projectile/Proj) +/obj/item/modular_computer/bullet_act(var/obj/projectile/Proj) switch(Proj.damage_type) if(DAMAGE_BRUTE) take_damage(Proj.damage, Proj.damage / 2) diff --git a/code/modules/modular_computers/computers/subtypes/preset_console.dm b/code/modules/modular_computers/computers/subtypes/preset_console.dm index 6fd316f78ec..fbe4f879522 100644 --- a/code/modules/modular_computers/computers/subtypes/preset_console.dm +++ b/code/modules/modular_computers/computers/subtypes/preset_console.dm @@ -1,5 +1,5 @@ /obj/item/modular_computer/console/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) - if(istype(mover,/obj/item/projectile)) + if(istype(mover,/obj/projectile)) if(prob(80)) //Holoscreens are non solid, and the frames of the computers are thin. So projectiles will usually //pass through diff --git a/code/modules/multiz/structures.dm b/code/modules/multiz/structures.dm index 9ae11953e3e..79bf0a7497a 100644 --- a/code/modules/multiz/structures.dm +++ b/code/modules/multiz/structures.dm @@ -347,7 +347,7 @@ density = TRUE /obj/structure/stairs_railing/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) - if(istype(mover,/obj/item/projectile)) + if(istype(mover,/obj/projectile)) return TRUE if(!istype(mover) || mover.pass_flags & PASSRAILING) return TRUE @@ -425,7 +425,7 @@ color = COLOR_DARK_GUNMETAL /obj/structure/platform/CanPass(atom/movable/mover, turf/target, height, air_group) - if(istype(mover, /obj/item/projectile)) + if(istype(mover, /obj/projectile)) return TRUE if(!istype(mover) || mover.pass_flags & PASSRAILING) return TRUE diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 6eafa569b61..b47dbae1480 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -513,7 +513,7 @@ var/obj/item/W = used_weapon dam_flags = W.damage_flags() if(isprojectile(W)) - var/obj/item/projectile/P = W + var/obj/projectile/P = W if(dam_flags & DAMAGE_FLAG_BULLET) blunt_eligible = TRUE maim_bonus_to_add += P.maim_rate diff --git a/code/modules/overmap/exoplanets/decor/flora/potted_big.dm b/code/modules/overmap/exoplanets/decor/flora/potted_big.dm index 09470fffceb..77ba5024862 100644 --- a/code/modules/overmap/exoplanets/decor/flora/potted_big.dm +++ b/code/modules/overmap/exoplanets/decor/flora/potted_big.dm @@ -65,7 +65,7 @@ to_chat(user,SPAN_NOTICE("You take \the [stored_item] from [src].")) stored_item = null -/obj/structure/flora/pottedplant/bullet_act(var/obj/item/projectile/Proj) +/obj/structure/flora/pottedplant/bullet_act(var/obj/projectile/Proj) if (prob(Proj.damage*2)) death() return 1 diff --git a/code/modules/overmap/exoplanets/decor/flora/potted_small.dm b/code/modules/overmap/exoplanets/decor/flora/potted_small.dm index b5b3faf2542..ff89a1c371e 100644 --- a/code/modules/overmap/exoplanets/decor/flora/potted_small.dm +++ b/code/modules/overmap/exoplanets/decor/flora/potted_small.dm @@ -23,7 +23,7 @@ death() return ..() -/obj/item/flora/pottedplant_small/bullet_act(var/obj/item/projectile/Proj) +/obj/item/flora/pottedplant_small/bullet_act(var/obj/projectile/Proj) if (prob(Proj.damage*2)) death() return 1 diff --git a/code/modules/overmap/exoplanets/decor/turfs/abyss.dm b/code/modules/overmap/exoplanets/decor/turfs/abyss.dm index d446bdfb579..249ba14979b 100644 --- a/code/modules/overmap/exoplanets/decor/turfs/abyss.dm +++ b/code/modules/overmap/exoplanets/decor/turfs/abyss.dm @@ -8,7 +8,7 @@ var/static/list/forbidden_types = typecacheof(list( /obj/singularity, /obj/structure/lattice, - /obj/item/projectile, + /obj/projectile, /obj/effect )) has_resources = FALSE diff --git a/code/modules/overmap/ship_weaponry/_ship_ammunition.dm b/code/modules/overmap/ship_weaponry/_ship_ammunition.dm index 168cac0c4b4..25526a128fa 100644 --- a/code/modules/overmap/ship_weaponry/_ship_ammunition.dm +++ b/code/modules/overmap/ship_weaponry/_ship_ammunition.dm @@ -22,7 +22,7 @@ var/obj/effect/overmap/origin var/atom/overmap_target var/obj/entry_point - var/obj/item/projectile/original_projectile + var/obj/projectile/original_projectile var/heading = SOUTH var/range = OVERMAP_PROJECTILE_RANGE_MEDIUM var/mob_carry_size = 12 //How large a mob has to be to carry the shell @@ -202,7 +202,7 @@ //SNOWFLAKE CODE: ACTIVATE //The problem is getting the projectile from the gun to the map edge. We want to do this naturally, but using process() and BYOND's walk procs makes it look very... unnatural. And also slow! //The solution? Let's co-opt projectile code! -/obj/item/projectile/ship_ammo +/obj/projectile/ship_ammo name = "ship ammunition" icon = 'icons/obj/guns/ship/physical_projectiles.dmi' icon_state = "small" @@ -214,12 +214,12 @@ var/primed = FALSE var/hit_target = FALSE //First target we hit. Used to report if a hit was successful. -/obj/item/projectile/ship_ammo/Destroy() +/obj/projectile/ship_ammo/Destroy() ammo = null hit_target = null return ..() -/obj/item/projectile/ship_ammo/touch_map_edge() +/obj/projectile/ship_ammo/touch_map_edge() if(primed) for(var/mob/living/carbon/human/H in GLOB.human_mob_list) if(AreConnectedZLevels(H.z, z)) @@ -231,7 +231,7 @@ ammo.original_projectile = src forceMove(ammo) -/obj/item/projectile/ship_ammo/on_hit(atom/target, blocked, def_zone, var/is_landmark_hit = FALSE) //is_landmark_hit is TRUE when we hit a landmark on a visitable non-ship overmap object. +/obj/projectile/ship_ammo/on_hit(atom/target, blocked, def_zone, var/is_landmark_hit = FALSE) //is_landmark_hit is TRUE when we hit a landmark on a visitable non-ship overmap object. if(target && !hit_target) hit_target = TRUE var/target_name = target.name @@ -244,11 +244,11 @@ ammo.origin.signal_hit(hit_data) return ..() -/obj/item/projectile/ship_ammo/proc/on_translate(var/turf/entry_turf, var/target_turf) //This proc is called when the projectile enters a new ship's overmap zlevel. +/obj/projectile/ship_ammo/proc/on_translate(var/turf/entry_turf, var/target_turf) //This proc is called when the projectile enters a new ship's overmap zlevel. if(ammo.burst) for(var/i = 1 to ammo.burst) var/turf/new_turf = get_random_turf_in_range(entry_turf, ammo.burst + rand(0, ammo.burst), 0, TRUE, FALSE) - var/obj/item/projectile/ship_ammo/pellet = new type + var/obj/projectile/ship_ammo/pellet = new type pellet.forceMove(new_turf) pellet.ammo = new ammo.type pellet.ammo.origin = ammo.origin diff --git a/code/modules/overmap/ship_weaponry/_ship_gun.dm b/code/modules/overmap/ship_weaponry/_ship_gun.dm index d11416bc0f8..b98ad0c5cd5 100644 --- a/code/modules/overmap/ship_weaponry/_ship_gun.dm +++ b/code/modules/overmap/ship_weaponry/_ship_gun.dm @@ -10,7 +10,7 @@ var/max_damage = 1000 var/heavy_firing_sound = 'sound/weapons/gunshot/ship_weapons/120mm_mortar.ogg' //The sound in the immediate firing area. Very loud. var/light_firing_sound = 'sound/effects/explosionfar.ogg' //The sound played when you're a few walls away. Kind of loud. - var/projectile_type = /obj/item/projectile/ship_ammo + var/projectile_type = /obj/projectile/ship_ammo var/special_firing_mechanism = FALSE //If set to TRUE, the gun won't show up on normal controls. var/charging_sound //The sound played when the gun is charging up. var/caliber = SHIP_CALIBER_NONE @@ -221,7 +221,7 @@ if(!barrel) crash_with("No barrel found for [src] at [x] [y] [z]! Cannot fire!") var/turf/firing_turf = get_step(barrel, barrel.dir) - var/obj/item/projectile/ship_ammo/projectile + var/obj/projectile/ship_ammo/projectile if(SA.projectile_type_override) projectile = new SA.projectile_type_override(firing_turf) else @@ -300,7 +300,7 @@ M.turf_collision(src, speed) return -/obj/structure/ship_weapon_dummy/bullet_act(obj/item/projectile/P, def_zone) +/obj/structure/ship_weapon_dummy/bullet_act(obj/projectile/P, def_zone) connected.bullet_act(P) /obj/structure/ship_weapon_dummy/ex_act(severity) diff --git a/code/modules/overmap/ship_weaponry/projectiles/_overmap_projectiles.dm b/code/modules/overmap/ship_weaponry/projectiles/_overmap_projectiles.dm index f39ccbd0221..6e3560782cd 100644 --- a/code/modules/overmap/ship_weaponry/projectiles/_overmap_projectiles.dm +++ b/code/modules/overmap/ship_weaponry/projectiles/_overmap_projectiles.dm @@ -88,7 +88,7 @@ . = TRUE //Manually stopping because this proc needs to sleep for a bit. prepare_for_entry() - var/obj/item/projectile/ship_ammo/widowmaker = new ammunition.original_projectile.type + var/obj/projectile/ship_ammo/widowmaker = new ammunition.original_projectile.type widowmaker.ammo = ammunition qdel(ammunition.original_projectile) //No longer needed. var/turf/laze = get_turf(entry_target) @@ -114,7 +114,7 @@ else //if it's not a ship it doesn't have a fore direction, so we need to autocorrect ammunition.heading = entry_target.dir prepare_for_entry() - var/obj/item/projectile/ship_ammo/widowmaker = new ammunition.original_projectile.type + var/obj/projectile/ship_ammo/widowmaker = new ammunition.original_projectile.type widowmaker.ammo = ammunition qdel(ammunition.original_projectile) //No longer needed. ammunition.original_projectile = widowmaker diff --git a/code/modules/overmap/ship_weaponry/weaponry/blaster.dm b/code/modules/overmap/ship_weaponry/weaponry/blaster.dm index be0439ac576..5d13dafd5ce 100644 --- a/code/modules/overmap/ship_weaponry/weaponry/blaster.dm +++ b/code/modules/overmap/ship_weaponry/weaponry/blaster.dm @@ -4,7 +4,7 @@ desc_extended = "Originally produced during the waning years of Solarian hegemony over much of the Orion Spur, the Model 2396 remains, despite its age, a very common piece of mining equipment in remote or underdeveloped areas of the Spur such as the former Solarian Frontier Sectors where newer equipment is either too rare to use widely. Threats from pirates and privateers have driven miners and independent merchants in these areas to long rely on field-modified M96s as improvised ship-to-ship artillery pieces as their mining charges are perfectly capable of ripping through hulls as effectively as they rip through rock. It is, however, awkward and kludgy to aim due to its nature as an improvised weapon and most discard the M96 when more modern -- or practical -- weaponry is acquired." icon = 'icons/obj/machinery/ship_guns/blaster.dmi' icon_state = "weapon_base" - projectile_type = /obj/item/projectile/ship_ammo/blaster + projectile_type = /obj/projectile/ship_ammo/blaster heavy_firing_sound = 'sound/weapons/railgun.ogg' firing_effects = FIRING_EFFECT_FLAG_EXTREMELY_LOUD @@ -21,14 +21,14 @@ overmap_icon_state = "med_laser" impact_type = SHIP_AMMO_IMPACT_BLASTER -/obj/item/projectile/ship_ammo/blaster +/obj/projectile/ship_ammo/blaster name = "blaster charge" icon_state = "blaster" damage = 10000 armor_penetration = 1000 penetrating = 1 -/obj/item/projectile/ship_ammo/blaster/on_hit(atom/target, blocked, def_zone, is_landmark_hit) +/obj/projectile/ship_ammo/blaster/on_hit(atom/target, blocked, def_zone, is_landmark_hit) . = ..() if(ismob(target)) var/mob/M = target diff --git a/code/modules/overmap/ship_weaponry/weaponry/bruiser.dm b/code/modules/overmap/ship_weaponry/weaponry/bruiser.dm index 51b58e9fc3a..bf2bd9908ea 100644 --- a/code/modules/overmap/ship_weaponry/weaponry/bruiser.dm +++ b/code/modules/overmap/ship_weaponry/weaponry/bruiser.dm @@ -6,7 +6,7 @@ heavy_firing_sound = 'sound/weapons/gunshot/cannon.ogg' icon_state = "weapon_base" max_ammo = 1 - projectile_type = /obj/item/projectile/ship_ammo/bruiser + projectile_type = /obj/projectile/ship_ammo/bruiser caliber = SHIP_CALIBER_178MM screenshake_type = SHIP_GUN_SCREENSHAKE_SCREEN load_time = 4 SECONDS @@ -42,7 +42,7 @@ desc = "A rough, handmade shell that should fit in a bruiser cannon. This one is filled with projectiles that easily get through the hull, but do little damage." icon_state = "shell_flechette" burst = 9 - projectile_type_override = /obj/item/projectile/ship_ammo/bruiser/flechette + projectile_type_override = /obj/projectile/ship_ammo/bruiser/flechette /obj/item/ship_ammunition/bruiser/he name = "makeshift bruiser explosive shell" @@ -54,7 +54,7 @@ burst = 0 cookoff_heavy = 1 overmap_icon_state = "cannon_heavy" - projectile_type_override = /obj/item/projectile/ship_ammo/bruiser/he + projectile_type_override = /obj/projectile/ship_ammo/bruiser/he /obj/item/ship_ammunition/bruiser/real/he name = "bruiser explosive shell" @@ -66,7 +66,7 @@ burst = 0 cookoff_heavy = 2 overmap_icon_state = "cannon_heavy" - projectile_type_override = /obj/item/projectile/ship_ammo/bruiser/real/he + projectile_type_override = /obj/projectile/ship_ammo/bruiser/real/he /obj/item/ship_ammunition/bruiser/real/ap name = "bruiser armor-piercing shell" @@ -78,7 +78,7 @@ burst = 0 cookoff_heavy = 2 overmap_icon_state = "cannon_heavy" - projectile_type_override = /obj/item/projectile/ship_ammo/bruiser/real/ap + projectile_type_override = /obj/projectile/ship_ammo/bruiser/real/ap /obj/item/ship_ammunition/bruiser/real/canister name = "bruiser canister shell" @@ -86,7 +86,7 @@ desc = "An expensive shell designed for the Hegemony Bruiser cannon by Hephaestus Industries. This one bursts into many small pellets." icon_state = "shell_canister_real" burst = 23 - projectile_type_override = /obj/item/projectile/ship_ammo/bruiser/real/canister + projectile_type_override = /obj/projectile/ship_ammo/bruiser/real/canister /obj/item/ship_ammunition/bruiser/real/beehive name = "bruiser beehive shell" @@ -94,16 +94,16 @@ desc = "An expensive shell designed for the Hegemony Bruiser cannon by Hephaestus Industries. Very popular among Unathi, this shell bursts into many slugger projectiles that punch through the hull with less mass, but more force." icon_state = "shell_flechette_real" burst = 9 - projectile_type_override = /obj/item/projectile/ship_ammo/bruiser/real/beehive + projectile_type_override = /obj/projectile/ship_ammo/bruiser/real/beehive -/obj/item/projectile/ship_ammo/bruiser +/obj/projectile/ship_ammo/bruiser name = "canister shot pellet" icon_state = "small" damage = 35 armor_penetration = 35 penetrating = 1 -/obj/item/projectile/ship_ammo/bruiser/flechette +/obj/projectile/ship_ammo/bruiser/flechette name = "beehive flechette" icon_state = "small_burst" damage = 20 @@ -113,38 +113,38 @@ embed_chance = 40 shrapnel_type = /obj/item/material/shard/shrapnel/flechette -/obj/item/projectile/ship_ammo/bruiser/he +/obj/projectile/ship_ammo/bruiser/he name = "178mm shell" icon_state = "heavy" damage = 150 armor_penetration = 75 penetrating = 0 -/obj/item/projectile/ship_ammo/bruiser/he/on_hit(atom/target, blocked, def_zone, is_landmark_hit) +/obj/projectile/ship_ammo/bruiser/he/on_hit(atom/target, blocked, def_zone, is_landmark_hit) . = ..() explosion(target, 1, 3, 6) -/obj/item/projectile/ship_ammo/bruiser/real/he +/obj/projectile/ship_ammo/bruiser/real/he name = "178mm shell" icon_state = "heavy" damage = 350 armor_penetration = 125 penetrating = 0 -/obj/item/projectile/ship_ammo/bruiser/real/ap +/obj/projectile/ship_ammo/bruiser/real/ap name = "178mm shell" icon_state = "heavy" damage = 250 armor_penetration = 250 penetrating = 2 -/obj/item/projectile/ship_ammo/bruiser/real/canister +/obj/projectile/ship_ammo/bruiser/real/canister damage = 40 armor_penetration = 40 penetrating = 2 stun = 2 -/obj/item/projectile/ship_ammo/bruiser/real/beehive //comparable to slugger projectiles but slightly stronger +/obj/projectile/ship_ammo/bruiser/real/beehive //comparable to slugger projectiles but slightly stronger name = "massive slug" icon_state = "heavy" damage = 65 @@ -157,14 +157,14 @@ maim_type = DROPLIMB_BLUNT anti_materiel_potential = 2 -/obj/item/projectile/ship_ammo/bruiser/real/on_hit(atom/target, blocked, def_zone, is_landmark_hit) +/obj/projectile/ship_ammo/bruiser/real/on_hit(atom/target, blocked, def_zone, is_landmark_hit) . = ..() if(ammo.impact_type == SHIP_AMMO_IMPACT_HE) explosion(target, 3, 6, 8) if(ammo.impact_type == SHIP_AMMO_IMPACT_AP) explosion(target, 0, 2, 4) -/obj/item/projectile/ship_ammo/bruiser/real/beehive/on_hit(atom/movable/target, blocked, def_zone, is_landmark_hit) +/obj/projectile/ship_ammo/bruiser/real/beehive/on_hit(atom/movable/target, blocked, def_zone, is_landmark_hit) if(istype(target)) var/throwdir = dir target.throw_at(get_edge_target_turf(target, throwdir),9,8) diff --git a/code/modules/overmap/ship_weaponry/weaponry/coilgun.dm b/code/modules/overmap/ship_weaponry/weaponry/coilgun.dm index 29960c8def8..91f1e17fbc5 100644 --- a/code/modules/overmap/ship_weaponry/weaponry/coilgun.dm +++ b/code/modules/overmap/ship_weaponry/weaponry/coilgun.dm @@ -4,7 +4,7 @@ desc_extended = "Although originally an expensive blunder made by over-worked Kumar Arms designers, the Nadziak later preformed to an outstanding degree following numerous improvements. Its fame among post-War Admirals was such that its name and purpose has largely remained the same, with a new 'Type' iteration commissioned every decade or so. With the expulsion of Zavodskoi and its subsidiary from Solarian space, this aging giant and symbol of military might is under threat of being consumed by the resulting arms manufacturing vacuum." icon = 'icons/obj/machinery/ship_guns/sol_coilgun.dmi' icon_state = "weapon_base" - projectile_type = /obj/item/projectile/ship_ammo/coilgun + projectile_type = /obj/projectile/ship_ammo/coilgun heavy_firing_sound = 'sound/weapons/railgun.ogg' firing_effects = FIRING_EFFECT_FLAG_EXTREMELY_LOUD @@ -21,14 +21,14 @@ overmap_icon_state = "cannon" impact_type = SHIP_AMMO_IMPACT_HE -/obj/item/projectile/ship_ammo/coilgun +/obj/projectile/ship_ammo/coilgun name = "high-power tungsten rod" icon_state = "heavy" damage = 10000 armor_penetration = 1000 penetrating = 1 -/obj/item/projectile/ship_ammo/coilgun/on_hit(atom/target, blocked, def_zone, is_landmark_hit) +/obj/projectile/ship_ammo/coilgun/on_hit(atom/target, blocked, def_zone, is_landmark_hit) . = ..() if(ismob(target)) var/mob/M = target diff --git a/code/modules/overmap/ship_weaponry/weaponry/francisca.dm b/code/modules/overmap/ship_weaponry/weaponry/francisca.dm index e34e707ca85..44d58f78ccc 100644 --- a/code/modules/overmap/ship_weaponry/weaponry/francisca.dm +++ b/code/modules/overmap/ship_weaponry/weaponry/francisca.dm @@ -5,7 +5,7 @@ heavy_firing_sound = 'sound/weapons/gunshot/ship_weapons/rotary_fire.ogg' icon_state = "weapon_base" max_ammo = 3 - projectile_type = /obj/item/projectile/ship_ammo/francisca + projectile_type = /obj/projectile/ship_ammo/francisca caliber = SHIP_CALIBER_40MM screenshake_type = SHIP_GUN_SCREENSHAKE_SCREEN @@ -35,7 +35,7 @@ desc = "A box of AP shells for use in a Francisca rotary gun." icon_state = "box_ap" impact_type = SHIP_AMMO_IMPACT_AP - projectile_type_override = /obj/item/projectile/ship_ammo/francisca/ap + projectile_type_override = /obj/projectile/ship_ammo/francisca/ap /obj/item/ship_ammunition/francisca/frag name = "40mm fragmentation ammunition box" @@ -43,27 +43,27 @@ desc = "A box of fragmentation shells for use in a Francisca rotary gun." icon_state = "box_inc" impact_type = SHIP_AMMO_IMPACT_HE - projectile_type_override = /obj/item/projectile/ship_ammo/francisca/frag + projectile_type_override = /obj/projectile/ship_ammo/francisca/frag -/obj/item/projectile/ship_ammo/francisca +/obj/projectile/ship_ammo/francisca name = "40mm FMJ shell" icon_state = "small" damage = 50 armor_penetration = 50 penetrating = 2 -/obj/item/projectile/ship_ammo/francisca/ap +/obj/projectile/ship_ammo/francisca/ap name = "40mm AP shell" damage = 30 armor_penetration = 100 penetrating = 4 -/obj/item/projectile/ship_ammo/francisca/frag +/obj/projectile/ship_ammo/francisca/frag name = "40mm FRAG shell" damage = 30 armor_penetration = 50 penetrating = 1 -/obj/item/projectile/ship_ammo/francisca/frag/on_impact(var/atom/A) +/obj/projectile/ship_ammo/francisca/frag/on_impact(var/atom/A) fragem(src, 70, 70, 1, 2, 10, 4, TRUE) ..() diff --git a/code/modules/overmap/ship_weaponry/weaponry/grauwolf.dm b/code/modules/overmap/ship_weaponry/weaponry/grauwolf.dm index ae2c7531c81..49da76702f0 100644 --- a/code/modules/overmap/ship_weaponry/weaponry/grauwolf.dm +++ b/code/modules/overmap/ship_weaponry/weaponry/grauwolf.dm @@ -20,7 +20,7 @@ overmap_icon_state = "flak" caliber = SHIP_CALIBER_90MM ammunition_behaviour = SHIP_AMMO_BEHAVIOUR_DUMBFIRE - projectile_type_override = /obj/item/projectile/ship_ammo/grauwolf + projectile_type_override = /obj/projectile/ship_ammo/grauwolf burst = 4 /obj/item/ship_ammunition/grauwolf_bundle/ap @@ -28,23 +28,23 @@ desc = "A bundle of armor-piercing flak shells." icon_state = "bundle_ap" impact_type = SHIP_AMMO_IMPACT_AP - projectile_type_override = /obj/item/projectile/ship_ammo/grauwolf/ap + projectile_type_override = /obj/projectile/ship_ammo/grauwolf/ap -/obj/item/projectile/ship_ammo/grauwolf +/obj/projectile/ship_ammo/grauwolf name = "high-explosive flak" icon_state = "small_burst" damage = 100 armor_penetration = 50 penetrating = 0 -/obj/item/projectile/ship_ammo/grauwolf/on_hit(atom/target, blocked, def_zone, is_landmark_hit) +/obj/projectile/ship_ammo/grauwolf/on_hit(atom/target, blocked, def_zone, is_landmark_hit) . = ..() if(ammo && ammo.impact_type == SHIP_AMMO_IMPACT_HE) explosion(target, 0, 2, 4) else explosion(target, 0, 1, 2) -/obj/item/projectile/ship_ammo/grauwolf/ap +/obj/projectile/ship_ammo/grauwolf/ap name = "armor-piercing flak" damage = 50 armor_penetration = 50 diff --git a/code/modules/overmap/ship_weaponry/weaponry/grauwolf_probe.dm b/code/modules/overmap/ship_weaponry/weaponry/grauwolf_probe.dm index 18384c031bf..7787f1b2a90 100644 --- a/code/modules/overmap/ship_weaponry/weaponry/grauwolf_probe.dm +++ b/code/modules/overmap/ship_weaponry/weaponry/grauwolf_probe.dm @@ -8,7 +8,7 @@ ammunition_behaviour = SHIP_AMMO_BEHAVIOUR_DUMBFIRE impact_type = SHIP_AMMO_IMPACT_PROBE overmap_behaviour = null // This ammo cannot hit anything - projectile_type_override = /obj/item/projectile/ship_ammo/grauwolf_probe + projectile_type_override = /obj/projectile/ship_ammo/grauwolf_probe overmap_projectile_type_override = /obj/effect/overmap/projectile/probe burst = 1 @@ -82,7 +82,7 @@ sensor_console.datalink_remove_contact(contact, ship) . = ..() -/obj/item/projectile/ship_ammo/grauwolf_probe +/obj/projectile/ship_ammo/grauwolf_probe name = "sensor probe projectile" icon_state = "small_burst" damage = 0 diff --git a/code/modules/overmap/ship_weaponry/weaponry/lammergeier.dm b/code/modules/overmap/ship_weaponry/weaponry/lammergeier.dm index 78f79bcf853..0df4bfe9abd 100644 --- a/code/modules/overmap/ship_weaponry/weaponry/lammergeier.dm +++ b/code/modules/overmap/ship_weaponry/weaponry/lammergeier.dm @@ -3,7 +3,7 @@ desc = "One of the most common naval guns produced by the Zhurong Imperial Naval Arsenal, the ZA-98/5 is the fifth revision of a gun which has proudly served the Imperial Fleet since 2398. Produced in cooperation with Zavodskoi Interstellar, the ZA-98/5 features and updates reloading mechanism and further improvements to the ballistic profile of its shots. This naval gun is commonly seen on Imperial Fleet corvettes and frigates as their main armament, and is often seen on larger Fleet vessels as a secondary armament to support larger weaponry. It is easily capable of destroying a smaller vessel if the Goddess ensures its shot flies true." icon = 'icons/obj/machinery/ship_guns/lammergeier.dmi' icon_state = "weapon_base" - projectile_type = /obj/item/projectile/ship_ammo/lammergeier + projectile_type = /obj/projectile/ship_ammo/lammergeier heavy_firing_sound = 'sound/weapons/railgun.ogg' firing_effects = FIRING_EFFECT_FLAG_EXTREMELY_LOUD @@ -20,14 +20,14 @@ overmap_icon_state = "cannon" impact_type = SHIP_AMMO_IMPACT_HE -/obj/item/projectile/ship_ammo/lammergeier +/obj/projectile/ship_ammo/lammergeier name = "typhoon shell" icon_state = "heavy" damage = 10000 armor_penetration = 1000 penetrating = 1 -/obj/item/projectile/ship_ammo/lammergeier/on_hit(atom/target, blocked, def_zone, is_landmark_hit) +/obj/projectile/ship_ammo/lammergeier/on_hit(atom/target, blocked, def_zone, is_landmark_hit) . = ..() if(ismob(target)) var/mob/M = target diff --git a/code/modules/overmap/ship_weaponry/weaponry/leviathan.dm b/code/modules/overmap/ship_weaponry/weaponry/leviathan.dm index 83ef1a72977..9bb6e628534 100644 --- a/code/modules/overmap/ship_weaponry/weaponry/leviathan.dm +++ b/code/modules/overmap/ship_weaponry/weaponry/leviathan.dm @@ -6,7 +6,7 @@ special_firing_mechanism = TRUE max_damage = 10000 - projectile_type = /obj/item/projectile/ship_ammo/leviathan + projectile_type = /obj/projectile/ship_ammo/leviathan use_ammunition = FALSE heavy_firing_sound = 'sound/weapons/gunshot/ship_weapons/leviathan_fire.ogg' caliber = SHIP_CALIBER_ZAT @@ -136,7 +136,7 @@ /obj/item/ship_ammunition/leviathan/get_speed() return 2 -/obj/item/projectile/ship_ammo/leviathan +/obj/projectile/ship_ammo/leviathan name = "zero-point artillery beam" desc = "A concentrated stream of pure energy." icon_state = "pulse" @@ -150,7 +150,7 @@ tracer_type = /obj/effect/projectile/tracer/pulse impact_type = /obj/effect/projectile/impact/pulse -/obj/item/projectile/ship_ammo/leviathan/on_hit(atom/target, blocked, def_zone, is_landmark_hit) +/obj/projectile/ship_ammo/leviathan/on_hit(atom/target, blocked, def_zone, is_landmark_hit) if(!is_landmark_hit) if(ismob(target)) var/mob/M = target @@ -162,7 +162,7 @@ target.visible_message(SPAN_DANGER("A giant, purple laser descends from the sky!")) explosion(target, 30, 30, 30) -/obj/item/projectile/ship_ammo/leviathan/check_penetrate(atom/A) +/obj/projectile/ship_ammo/leviathan/check_penetrate(atom/A) on_hit(A) return TRUE diff --git a/code/modules/overmap/ship_weaponry/weaponry/longbow.dm b/code/modules/overmap/ship_weaponry/weaponry/longbow.dm index d4284dec003..b51b5cebddf 100644 --- a/code/modules/overmap/ship_weaponry/weaponry/longbow.dm +++ b/code/modules/overmap/ship_weaponry/weaponry/longbow.dm @@ -3,7 +3,7 @@ desc = "A Kumar Arms high-velocity cannon and flagship of \"Chivalry\" weapons line, developed in 2461 as an upgrade to its predecessor, the Ballista. Its upgrades include a bigger payload, a more streamlined loading process, and easier maintenance, making this cannon one of the best armaments in the Spur." icon_state = "weapon_base" - projectile_type = /obj/item/projectile/ship_ammo/longbow + projectile_type = /obj/projectile/ship_ammo/longbow caliber = SHIP_CALIBER_406MM firing_effects = FIRING_EFFECT_FLAG_EXTREMELY_LOUD screenshake_type = SHIP_GUN_SCREENSHAKE_ALL_MOBS @@ -11,20 +11,20 @@ /obj/machinery/ammunition_loader/longbow name = "longbow shell loader" -/obj/item/projectile/ship_ammo/longbow +/obj/projectile/ship_ammo/longbow icon_state = "heavy" damage = 1000 armor_penetration = 1000 var/penetrated = FALSE -/obj/item/projectile/ship_ammo/longbow/launch_projectile(atom/target, target_zone, mob/user, params, angle_override, forced_spread) +/obj/projectile/ship_ammo/longbow/launch_projectile(atom/target, target_zone, mob/user, params, angle_override, forced_spread) if(ammo.impact_type == SHIP_AMMO_IMPACT_AP) penetrating = 1 if(ammo.impact_type == SHIP_AMMO_IMPACT_BUNKERBUSTER) penetrating = 3 . = ..() -/obj/item/projectile/ship_ammo/longbow/on_hit(atom/target, blocked, def_zone, is_landmark_hit) +/obj/projectile/ship_ammo/longbow/on_hit(atom/target, blocked, def_zone, is_landmark_hit) . = ..() if(ismob(target)) var/mob/M = target diff --git a/code/modules/overmap/ship_weaponry/weaponry/longbow_ammo.dm b/code/modules/overmap/ship_weaponry/weaponry/longbow_ammo.dm index 2012d08a15f..753d0087ffd 100644 --- a/code/modules/overmap/ship_weaponry/weaponry/longbow_ammo.dm +++ b/code/modules/overmap/ship_weaponry/weaponry/longbow_ammo.dm @@ -140,7 +140,7 @@ if(prob(10)) cookoff(FALSE) -/obj/item/warhead/longbow/bullet_act(obj/item/projectile/P, def_zone) +/obj/item/warhead/longbow/bullet_act(obj/projectile/P, def_zone) . = ..() if(P.damage > 5) cookoff(TRUE) diff --git a/code/modules/overmap/ships/computers/sensors.dm b/code/modules/overmap/ships/computers/sensors.dm index 2d42624ec43..2ff9bc851de 100644 --- a/code/modules/overmap/ships/computers/sensors.dm +++ b/code/modules/overmap/ships/computers/sensors.dm @@ -503,7 +503,7 @@ else if(health < max_health * 0.75) . += "\The [src] shows signs of damage!" -/obj/machinery/shipsensors/bullet_act(var/obj/item/projectile/Proj) +/obj/machinery/shipsensors/bullet_act(var/obj/projectile/Proj) take_damage(Proj.get_structure_damage()) ..() diff --git a/code/modules/power/fusion/core/_core.dm b/code/modules/power/fusion/core/_core.dm index 1432c9a94b9..13eef03f1c0 100644 --- a/code/modules/power/fusion/core/_core.dm +++ b/code/modules/power/fusion/core/_core.dm @@ -55,7 +55,7 @@ owned_field.AddParticles(name, quantity) . = 1 -/obj/machinery/power/fusion_core/bullet_act(obj/item/projectile/Proj) +/obj/machinery/power/fusion_core/bullet_act(obj/projectile/Proj) if(owned_field) . = owned_field.bullet_act(Proj) diff --git a/code/modules/power/fusion/core/core_field.dm b/code/modules/power/fusion/core/core_field.dm index 84ce5cafcbb..13f9e7089fa 100644 --- a/code/modules/power/fusion/core/core_field.dm +++ b/code/modules/power/fusion/core/core_field.dm @@ -26,7 +26,7 @@ var/list/particle_catchers = list() var/list/ignore_types = list( - /obj/item/projectile, + /obj/projectile, /obj/effect, /obj/structure/cable, /obj/machinery/atmospherics, @@ -582,7 +582,7 @@ STOP_PROCESSING(SSprocessing, src) . = ..() -/obj/effect/fusion_em_field/bullet_act(obj/item/projectile/Proj) +/obj/effect/fusion_em_field/bullet_act(obj/projectile/Proj) AddEnergy(Proj.damage) update_icon() return 0 diff --git a/code/modules/power/fusion/fusion_particle_catcher.dm b/code/modules/power/fusion/fusion_particle_catcher.dm index baeb316624d..c7fecc3728f 100644 --- a/code/modules/power/fusion/fusion_particle_catcher.dm +++ b/code/modules/power/fusion/fusion_particle_catcher.dm @@ -31,7 +31,7 @@ density = FALSE name = "collector [mysize] OFF" -/obj/effect/fusion_particle_catcher/bullet_act(obj/item/projectile/Proj) +/obj/effect/fusion_particle_catcher/bullet_act(obj/projectile/Proj) parent.AddEnergy(Proj.damage) update_icon() return FALSE diff --git a/code/modules/power/fusion/gyrotron/gyrotron.dm b/code/modules/power/fusion/gyrotron/gyrotron.dm index b5b8dec5224..da744ae6ca1 100644 --- a/code/modules/power/fusion/gyrotron/gyrotron.dm +++ b/code/modules/power/fusion/gyrotron/gyrotron.dm @@ -29,7 +29,7 @@ return rate * 10 /obj/machinery/power/emitter/gyrotron/get_emitter_beam() - var/obj/item/projectile/beam/emitter/E = ..() + var/obj/projectile/beam/emitter/E = ..() E.damage = mega_energy * 50 return E diff --git a/code/modules/power/lights/fixtures.dm b/code/modules/power/lights/fixtures.dm index d6726018da7..85bdc7510ac 100644 --- a/code/modules/power/lights/fixtures.dm +++ b/code/modules/power/lights/fixtures.dm @@ -507,7 +507,7 @@ else user.visible_message(SPAN_WARNING("\The [user] hits \the [src], but it doesn't break."), SPAN_WARNING("You hit \the [src], but it doesn't break."), SPAN_WARNING("You hear something hitting against glass.")) -/obj/machinery/light/bullet_act(obj/item/projectile/P, def_zone) +/obj/machinery/light/bullet_act(obj/projectile/P, def_zone) bullet_ping(P) shatter() diff --git a/code/modules/power/singularity/act.dm b/code/modules/power/singularity/act.dm index bd3c9342638..6cb7fd02abd 100644 --- a/code/modules/power/singularity/act.dm +++ b/code/modules/power/singularity/act.dm @@ -92,7 +92,7 @@ qdel(src) return 50000 -/obj/item/projectile/beam/emitter/singularity_pull() +/obj/projectile/beam/emitter/singularity_pull() return /obj/item/storage/backpack/holding/singularity_act(S, current_size) diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 6167f53a473..ac0a977a8a1 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -156,7 +156,7 @@ if(prob(35)) spark_system.queue() - var/obj/item/projectile/beam/emitter/A = get_emitter_beam() + var/obj/projectile/beam/emitter/A = get_emitter_beam() A.damage = round(power_per_shot / EMITTER_DAMAGE_POWER_TRANSFER) A.launch_projectile(get_step(src, dir)) shot_counter++ @@ -270,7 +270,7 @@ return 0.2 SECONDS // This value doesn't really affect normal emitters, but *does* affect subtypes like the gyrotron that can have very long delays /obj/machinery/power/emitter/proc/get_emitter_beam() - return new /obj/item/projectile/beam/emitter(get_turf(src)) + return new /obj/projectile/beam/emitter(get_turf(src)) #undef EMITTER_LOOSE #undef EMITTER_BOLTED diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index 86dfcdc4425..21390d85b50 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -160,8 +160,8 @@ field_generator power level display return 0 -/obj/machinery/field_generator/bullet_act(var/obj/item/projectile/Proj) - if(istype(Proj, /obj/item/projectile/beam)) +/obj/machinery/field_generator/bullet_act(var/obj/projectile/Proj) + if(istype(Proj, /obj/projectile/beam)) power += Proj.damage * 1.25 * EMITTER_DAMAGE_POWER_TRANSFER update_icon() return 0 diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index 3444e04639b..b7c4aa32396 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -71,7 +71,7 @@ energy += round((rand(20,60)/2),1) return -/obj/singularity/bullet_act(obj/item/projectile/P) +/obj/singularity/bullet_act(obj/projectile/P) return 0 //Will there be an impact? Who knows. Will we see it? No. /obj/singularity/Collide(atom/A) diff --git a/code/modules/power/smes_construction.dm b/code/modules/power/smes_construction.dm index 2e3a8d4876c..f1a982d9f52 100644 --- a/code/modules/power/smes_construction.dm +++ b/code/modules/power/smes_construction.dm @@ -135,7 +135,7 @@ wires = null return ..() -/obj/machinery/power/smes/buildable/bullet_act(obj/item/projectile/P, def_zone) +/obj/machinery/power/smes/buildable/bullet_act(obj/projectile/P, def_zone) . = ..() visible_message(SPAN_WARNING("\The [src] is hit by \the [P]!")) health_check(P.damage) diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm index 637c242119b..ea752952851 100644 --- a/code/modules/projectiles/ammunition.dm +++ b/code/modules/projectiles/ammunition.dm @@ -13,7 +13,7 @@ var/caliber = "" //Which kind of guns it can be loaded into var/max_stack = 5 // how many of us can fit in a pile var/projectile_type //The bullet type to create when New() is called - var/obj/item/projectile/BB = null //The loaded bullet - make it so that the projectiles are created only when needed? + var/obj/projectile/BB = null //The loaded bullet - make it so that the projectiles are created only when needed? var/spent_icon = "s-casing-spent" drop_sound = /singleton/sound_category/casing_drop_sound diff --git a/code/modules/projectiles/ammunition/bullets.dm b/code/modules/projectiles/ammunition/bullets.dm index 7827986f1cb..80bd290132b 100644 --- a/code/modules/projectiles/ammunition/bullets.dm +++ b/code/modules/projectiles/ammunition/bullets.dm @@ -1,39 +1,39 @@ /obj/item/ammo_casing/a357 desc = "A .357 bullet casing." caliber = "357" - projectile_type = /obj/item/projectile/bullet/pistol/revolver + projectile_type = /obj/projectile/bullet/pistol/revolver /obj/item/ammo_casing/a454 desc = "A .454 bullet casing." caliber = "454" - projectile_type = /obj/item/projectile/bullet/pistol/strong + projectile_type = /obj/projectile/bullet/pistol/strong /obj/item/ammo_casing/a50 desc = "A .50AE bullet casing." caliber = ".50" - projectile_type = /obj/item/projectile/bullet/pistol/strong + projectile_type = /obj/projectile/bullet/pistol/strong /obj/item/ammo_casing/a75 desc = "A 20mm bullet casing." caliber = "75" - projectile_type = /obj/item/projectile/bullet/gyro + projectile_type = /obj/projectile/bullet/gyro /obj/item/ammo_casing/c38 desc = "A .38 bullet casing." caliber = "38" - projectile_type = /obj/item/projectile/bullet/pistol + projectile_type = /obj/projectile/bullet/pistol max_stack = 6 /obj/item/ammo_casing/c38/rubber desc = "A .38 rubber bullet casing." - projectile_type = /obj/item/projectile/bullet/pistol/rubber + projectile_type = /obj/projectile/bullet/pistol/rubber icon_state = "r-casing" spent_icon = "r-casing-spent" /obj/item/ammo_casing/c38/emp name = ".38 haywire round" desc = "A .38 bullet casing fitted with a single-use ion pulse generator." - projectile_type = /obj/item/projectile/ion/small + projectile_type = /obj/projectile/ion/small icon_state = "empcasing" matter = list(DEFAULT_WALL_MATERIAL = 130, MATERIAL_URANIUM = 100) @@ -45,78 +45,78 @@ desc = "hyperdense tungsten rod residue." icon_state = "trod" caliber = "trod" - projectile_type = /obj/item/projectile/bullet/trod + projectile_type = /obj/projectile/bullet/trod /obj/item/ammo_casing/c9mm desc = "A 9mm bullet casing." caliber = "9mm" - projectile_type = /obj/item/projectile/bullet/pistol + projectile_type = /obj/projectile/bullet/pistol max_stack = 15 /obj/item/ammo_casing/c9mm/flash desc = "A 9mm flash shell casing." - projectile_type = /obj/item/projectile/energy/flash + projectile_type = /obj/projectile/energy/flash /obj/item/ammo_casing/c45/revolver desc = "A .45 revolver bullet casing." max_stack = 6 - projectile_type = /obj/item/projectile/bullet/pistol/revolver + projectile_type = /obj/projectile/bullet/pistol/revolver /obj/item/ammo_casing/c9mm/rubber desc = "A 9mm rubber bullet casing." - projectile_type = /obj/item/projectile/bullet/pistol/rubber + projectile_type = /obj/projectile/bullet/pistol/rubber icon_state = "r-casing" spent_icon = "r-casing-spent" /obj/item/ammo_casing/c9mm/practice desc = "A 9mm practice bullet casing." - projectile_type = /obj/item/projectile/bullet/pistol/practice + projectile_type = /obj/projectile/bullet/pistol/practice /obj/item/ammo_casing/c10mm desc = "A 10mm bullet casing." caliber = "10mm" - projectile_type = /obj/item/projectile/bullet/pistol + projectile_type = /obj/projectile/bullet/pistol max_stack = 10 /obj/item/ammo_casing/c10mm/rubber desc = "A 10mm rubber bullet casing." - projectile_type = /obj/item/projectile/bullet/pistol/rubber + projectile_type = /obj/projectile/bullet/pistol/rubber /obj/item/ammo_casing/c45 desc = "A .45 bullet casing." caliber = ".45" - projectile_type = /obj/item/projectile/bullet/pistol/medium + projectile_type = /obj/projectile/bullet/pistol/medium max_stack = 10 /obj/item/ammo_casing/c45/practice desc = "A .45 practice bullet casing." - projectile_type = /obj/item/projectile/bullet/pistol/practice + projectile_type = /obj/projectile/bullet/pistol/practice /obj/item/ammo_casing/c45/rubber desc = "A .45 rubber bullet casing." - projectile_type = /obj/item/projectile/bullet/pistol/rubber + projectile_type = /obj/projectile/bullet/pistol/rubber icon_state = "r-casing" spent_icon = "r-casing-spent" /obj/item/ammo_casing/c45/flash desc = "A .45 flash shell casing." - projectile_type = /obj/item/projectile/energy/flash + projectile_type = /obj/projectile/energy/flash /obj/item/ammo_casing/a12mm desc = "A 12mm bullet casing." caliber = "12mm" - projectile_type = /obj/item/projectile/bullet/pistol/medium + projectile_type = /obj/projectile/bullet/pistol/medium max_stack = 7 /obj/item/ammo_casing/smg10mm desc = "A 10mm bullet casing." caliber = "10mm" - projectile_type = /obj/item/projectile/bullet/pistol + projectile_type = /obj/projectile/bullet/pistol /obj/item/ammo_casing/c46mm desc = "A 4.6mm bullet casing." caliber = "4.6mm" - projectile_type = /obj/item/projectile/bullet/pistol + projectile_type = /obj/projectile/bullet/pistol max_stack = 15 /obj/item/ammo_casing/shotgun @@ -125,7 +125,7 @@ icon_state = "slshell" spent_icon = "slshell-spent" caliber = "shotgun" - projectile_type = /obj/item/projectile/bullet/shotgun + projectile_type = /obj/projectile/bullet/shotgun matter = list(DEFAULT_WALL_MATERIAL = 360) reload_sound = /singleton/sound_category/shotgun_reload drop_sound = /singleton/sound_category/casing_drop_sound_shotgun @@ -142,7 +142,7 @@ desc = "A 12-gauge shell." icon_state = "gshell" spent_icon = "gshell-spent" - projectile_type = /obj/item/projectile/bullet/pellet/shotgun + projectile_type = /obj/projectile/bullet/pellet/shotgun matter = list(DEFAULT_WALL_MATERIAL = 360) /obj/item/ammo_casing/shotgun/pellet/used/Initialize() @@ -156,7 +156,7 @@ desc = "A 12-gauge blank shell." icon_state = "blshell" spent_icon = "blshell-spent" - projectile_type = /obj/item/projectile/bullet/blank + projectile_type = /obj/projectile/bullet/blank matter = list(DEFAULT_WALL_MATERIAL = 90) /obj/item/ammo_casing/shotgun/practice @@ -164,7 +164,7 @@ desc = "A 12-gauge practice shell." icon_state = "pshell" spent_icon = "pshell-spent" - projectile_type = /obj/item/projectile/bullet/shotgun/practice + projectile_type = /obj/projectile/bullet/shotgun/practice matter = list(MATERIAL_STEEL = 90) /obj/item/ammo_casing/shotgun/beanbag @@ -172,7 +172,7 @@ desc = "A 12-gauge beanbag shell." icon_state = "bshell" spent_icon = "bshell-spent" - projectile_type = /obj/item/projectile/bullet/shotgun/beanbag + projectile_type = /obj/projectile/bullet/shotgun/beanbag matter = list(DEFAULT_WALL_MATERIAL = 180) //Can stun in one hit if aimed at the head, but @@ -182,7 +182,7 @@ desc = "A 12-gauge taser cartridge." icon_state = "stunshell" spent_icon = "stunshell-spent" - projectile_type = /obj/item/projectile/energy/electrode/stunshot + projectile_type = /obj/projectile/energy/electrode/stunshot matter = list(DEFAULT_WALL_MATERIAL = 360, MATERIAL_GLASS = 720) reload_sound = 'sound/weapons/reload_shell_emp.ogg' @@ -200,7 +200,7 @@ desc = "A 12-gauge chemical shell used to signal distress or provide illumination." icon_state = "fshell" spent_icon = "fshell-spent" - projectile_type = /obj/item/projectile/energy/flash/flare + projectile_type = /obj/projectile/energy/flash/flare matter = list(DEFAULT_WALL_MATERIAL = 90, MATERIAL_GLASS = 90) reload_sound = 'sound/weapons/reload_shell_emp.ogg' @@ -209,7 +209,7 @@ desc = "A 12-gauge incendiary shell." icon_state = "ishell" spent_icon = "ishell-spent" - projectile_type = /obj/item/projectile/bullet/shotgun/incendiary + projectile_type = /obj/projectile/bullet/shotgun/incendiary matter = list(DEFAULT_WALL_MATERIAL = 450) /obj/item/ammo_casing/shotgun/emp @@ -217,7 +217,7 @@ desc = "A 12-gauge shotgun slug fitted with a single-use ion pulse generator." icon_state = "empshell" spent_icon = "empshell-spent" - projectile_type = /obj/item/projectile/ion + projectile_type = /obj/projectile/ion matter = list(DEFAULT_WALL_MATERIAL = 260, MATERIAL_URANIUM = 200) reload_sound = 'sound/weapons/reload_shell_emp.ogg' @@ -226,7 +226,7 @@ desc = "A 12-gauge shotgun slug fitted with a tracking implant, set to activate upon embedding flesh." icon_state = "trackingshell" spent_icon = "trackingshell-spent" - projectile_type = /obj/item/projectile/bullet/tracking + projectile_type = /obj/projectile/bullet/tracking /obj/item/ammo_casing/shotgun/moghes name = "wall shell" @@ -234,7 +234,7 @@ desc_extended = "This complicated and expensive shotgun shell fires both a solid slug and a hail of shots at the same time, making it a destructive and dangerous ammunition at all ranges, assuming the user can point in the target's general direction. Somehow it seems to somewhat fit in other shotgun type weaponry too." icon_state = "moghes_shell" spent_icon = "moghes_shell_spent" - projectile_type = /obj/item/projectile/bullet/shotgun/moghes + projectile_type = /obj/projectile/bullet/shotgun/moghes /obj/item/ammo_casing/tranq name = "PPS shell" @@ -242,13 +242,13 @@ icon_state = "ishell" spent_icon = "ishell-spent" caliber = "PPS" - projectile_type = /obj/item/projectile/bullet/rifle/tranq + projectile_type = /obj/projectile/bullet/rifle/tranq max_stack = 6 /obj/item/ammo_casing/a762 desc = "A 7.62mm bullet casing." caliber = "a762" - projectile_type = /obj/item/projectile/bullet/rifle/a762 + projectile_type = /obj/projectile/bullet/rifle/a762 icon_state = "rifle-casing" spent_icon = "rifle-casing-spent" max_stack = 2 @@ -259,13 +259,13 @@ /obj/item/ammo_casing/a762/blank desc = "A 7.62mm blank casing." - projectile_type = /obj/item/projectile/bullet/blank + projectile_type = /obj/projectile/bullet/blank /obj/item/ammo_casing/a145 name = "shell casing" desc = "A 14.5mm shell." caliber = "14.5mm" - projectile_type = /obj/item/projectile/bullet/rifle/a145 + projectile_type = /obj/projectile/bullet/rifle/a145 matter = list(DEFAULT_WALL_MATERIAL = 1250) icon_state = "lcasing" spent_icon = "lcasing-spent" @@ -274,26 +274,26 @@ /obj/item/ammo_casing/a556 desc = "A 5.56mm bullet casing." caliber = "a556" - projectile_type = /obj/item/projectile/bullet/rifle/a556 + projectile_type = /obj/projectile/bullet/rifle/a556 icon_state = "rifle-casing" spent_icon = "rifle-casing-spent" max_stack = 7 /obj/item/ammo_casing/a556/ap desc = "A 5.56mm armor piercing round." - projectile_type = /obj/item/projectile/bullet/rifle/a556/ap + projectile_type = /obj/projectile/bullet/rifle/a556/ap /obj/item/ammo_casing/a556/practice desc = "A 5.56mm practice bullet casing." - projectile_type = /obj/item/projectile/bullet/rifle/a556/practice + projectile_type = /obj/projectile/bullet/rifle/a556/practice /obj/item/ammo_casing/a556/polymer desc = "A 5.56mm polymer bullet casing." - projectile_type = /obj/item/projectile/bullet/rifle/a556/polymer + projectile_type = /obj/projectile/bullet/rifle/a556/polymer /obj/item/ammo_casing/a556/blank desc = "A 5.56mm blank casing." - projectile_type = /obj/item/projectile/bullet/blank + projectile_type = /obj/projectile/bullet/blank /obj/item/ammo_casing/a556/spent/Initialize() . = ..() @@ -303,7 +303,7 @@ desc = "A 6.5mm bullet casing." desc_extended = "Designed by de Namur not long after the interstellar war, the 6.5mmx40mm cartridge, designed to fit the needs of Xanu's military while going away from the legacy rounds used by the Sol Alliance. This cartridge has been wildly successful, and has been adopted by the majority of the Coalition of Colonies and beyond." caliber = "a65" - projectile_type = /obj/item/projectile/bullet/rifle/a65 + projectile_type = /obj/projectile/bullet/rifle/a65 icon_state = "rifle-casing" spent_icon = "rifle-casing-spent" max_stack = 7 @@ -322,7 +322,7 @@ /obj/item/ammo_casing/chameleon name = "chameleon bullets" desc = "A set of bullets for the Chameleon Gun." - projectile_type = /obj/item/projectile/bullet/chameleon + projectile_type = /obj/projectile/bullet/chameleon caliber = ".45" /obj/item/ammo_casing/cap @@ -330,7 +330,7 @@ desc = "A cap for children toys." caliber = "caps" color = "#FF0000" - projectile_type = /obj/item/projectile/bullet/pistol/cap + projectile_type = /obj/projectile/bullet/pistol/cap max_stack = 6 /obj/item/ammo_casing/flechette @@ -338,14 +338,14 @@ icon = 'icons/obj/terminator.dmi' icon_state = "flechette_casing" caliber = "flechette" - projectile_type = /obj/item/projectile/bullet/flechette + projectile_type = /obj/projectile/bullet/flechette max_stack = 4 /obj/item/ammo_casing/flechette/explosive - projectile_type = /obj/item/projectile/bullet/flechette/explosive + projectile_type = /obj/projectile/bullet/flechette/explosive /obj/item/ammo_casing/vintage - projectile_type = /obj/item/projectile/bullet/rifle/vintage + projectile_type = /obj/projectile/bullet/rifle/vintage desc = "A .30-06 Government bullet casing. It looks old, and you can barely understand the writing stamped on it." caliber = "30-06 govt" icon_state = "lcasing" @@ -357,7 +357,7 @@ expend() /obj/item/ammo_casing/govt - projectile_type = /obj/item/projectile/bullet/rifle/govt + projectile_type = /obj/projectile/bullet/rifle/govt desc = "A .45-70 Government bullet casing." caliber = "45-70 govt" icon_state = "gcasing" @@ -365,7 +365,7 @@ max_stack = 4 /obj/item/ammo_casing/slugger - projectile_type = /obj/item/projectile/bullet/rifle/slugger + projectile_type = /obj/projectile/bullet/rifle/slugger caliber = "slugger" icon_state = "slugger-sharp" spent_icon = "slugger-spent" @@ -377,19 +377,19 @@ caliber = "gauss" icon_state = "tungstenslug" spent_icon = "tungstenslug-spent" - projectile_type = /obj/item/projectile/bullet/gauss + projectile_type = /obj/projectile/bullet/gauss max_stack = 2 /obj/item/ammo_casing/gauss/carbine name = "compact tungsten slug" desc = "A heavy tungsten gauss slug. This one has a casing adapated for carbine models." - projectile_type = /obj/item/projectile/bullet/gauss/carbine + projectile_type = /obj/projectile/bullet/gauss/carbine /obj/item/ammo_casing/gauss/emp name = "ion slug" desc = "A heavy ion gauss slug." icon_state = "empslug" - projectile_type = /obj/item/projectile/ion/gauss + projectile_type = /obj/projectile/ion/gauss reload_sound = 'sound/weapons/reload_shell_emp.ogg' /obj/item/ammo_casing/plasma_slug @@ -397,7 +397,7 @@ desc = "A plasma slug." icon_state = "plasmaslug" caliber = "plasma slug" - projectile_type = /obj/item/projectile/plasma + projectile_type = /obj/projectile/plasma max_stack = 2 /obj/item/ammo_casing/plasma_bolt @@ -405,7 +405,7 @@ desc = "A plasma bolt." icon_state = "plasmabolt" caliber = "plasma bolt" - projectile_type = /obj/item/projectile/plasma/light + projectile_type = /obj/projectile/plasma/light max_stack = 4 /obj/item/ammo_casing/cannon @@ -413,7 +413,7 @@ desc = "A solid metal projectile." icon_state = "cannonball" caliber = "cannon" - projectile_type = /obj/item/projectile/bullet/cannonball + projectile_type = /obj/projectile/bullet/cannonball matter = list(DEFAULT_WALL_MATERIAL = 800) w_class = ITEMSIZE_NORMAL slot_flags = null @@ -425,12 +425,12 @@ name = "explosive cannonball" desc = "A solid metal projectile loaded with an explosive charge." icon_state = "cannonball_explosive" - projectile_type = /obj/item/projectile/bullet/cannonball/explosive + projectile_type = /obj/projectile/bullet/cannonball/explosive /obj/item/ammo_casing/cannon/canister name = "canister shot" desc = "A solid projectile filled with deadly shrapnel." - projectile_type = /obj/item/projectile/bullet/pellet/shotgun/canister + projectile_type = /obj/projectile/bullet/pellet/shotgun/canister /obj/item/ammo_casing/nuke name = "miniaturized nuclear warhead" @@ -439,7 +439,7 @@ w_class = ITEMSIZE_NORMAL slot_flags = null desc = "A miniaturized version of a nuclear bomb." - projectile_type = /obj/item/projectile/bullet/nuke + projectile_type = /obj/projectile/bullet/nuke drop_sound = /singleton/sound_category/generic_drop_sound max_stack = 2 @@ -448,7 +448,7 @@ desc = "A solid ball made of lead." icon_state = "musketball" caliber = "musket" - projectile_type = /obj/item/projectile/bullet/pistol/strong + projectile_type = /obj/projectile/bullet/pistol/strong reload_sound = 'sound/weapons/reloads/shotgun_pump.ogg' /obj/item/ammo_casing/recoilless_rifle @@ -457,7 +457,7 @@ caliber = "recoilless_rifle" w_class = ITEMSIZE_NORMAL slot_flags = null - projectile_type = /obj/item/projectile/bullet/recoilless_rifle + projectile_type = /obj/projectile/bullet/recoilless_rifle reload_sound = 'sound/weapons/reloads/shotgun_pump.ogg' max_stack = 1 @@ -468,7 +468,7 @@ caliber = "peac" w_class = ITEMSIZE_NORMAL slot_flags = null - projectile_type = /obj/item/projectile/bullet/peac + projectile_type = /obj/projectile/bullet/peac drop_sound = 'sound/items/drop/shell_drop.ogg' pickup_sound = 'sound/items/pickup/weldingtool.ogg' reload_sound = 'sound/weapons/railgun_insert_emp.ogg' @@ -476,24 +476,24 @@ /obj/item/ammo_casing/peac/he name = "anti-materiel HE cannon cartridge" - projectile_type = /obj/item/projectile/bullet/peac/he + projectile_type = /obj/projectile/bullet/peac/he /obj/item/ammo_casing/peac/shrapnel name = "anti-materiel FRAG cannon cartridge" - projectile_type = /obj/item/projectile/bullet/peac/shrapnel + projectile_type = /obj/projectile/bullet/peac/shrapnel /obj/item/ammo_casing/kumar_super name =".599 kumar super casing" icon_state = "rifle-casing" spent_icon = "rifle-casing-spent" caliber = ".599 Kumar Super" - projectile_type = /obj/item/projectile/bullet + projectile_type = /obj/projectile/bullet max_stack = 5 /obj/item/ammo_casing/c6mm desc = "A 6mm bullet casing." caliber = "6mm" - projectile_type = /obj/item/projectile/bullet/pistol/assassin + projectile_type = /obj/projectile/bullet/pistol/assassin max_stack = 15 /obj/item/ammo_casing/moghes_pistol @@ -501,7 +501,7 @@ icon_state = "moghes_casing_p" spent_icon = "moghes_casing_p_spent" caliber = "11.6mm" - projectile_type = /obj/item/projectile/bullet/pistol/medium/ap + projectile_type = /obj/projectile/bullet/pistol/medium/ap max_stack = 15 /obj/item/ammo_casing/moghes_rifle @@ -509,5 +509,5 @@ icon_state = "moghes_casing" spent_icon = "moghes_casing_spent" caliber = "5.8mm" - projectile_type = /obj/item/projectile/bullet/rifle/a556 + projectile_type = /obj/projectile/bullet/rifle/a556 max_stack = 7 diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index fbae2803a32..7b4e48585d0 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -422,7 +422,7 @@ break if(isprojectile(projectile)) - var/obj/item/projectile/P = projectile + var/obj/projectile/P = projectile var/acc = burst_accuracy[min(i, burst_accuracy.len)] var/disp = dispersion[min(i, dispersion.len)] @@ -510,7 +510,7 @@ playsound(loc, fire_sound, fire_sound_volume, vary_fire_sound, falloff_distance = 0.5) /obj/item/gun/proc/process_point_blank(obj/projectile, mob/user, atom/target) - var/obj/item/projectile/P = projectile + var/obj/projectile/P = projectile if(!istype(P)) return //default behaviour only applies to true projectiles @@ -533,7 +533,7 @@ P.point_blank = TRUE /obj/item/gun/proc/process_accuracy(obj/projectile, mob/user, atom/target, acc_mod, dispersion) - var/obj/item/projectile/P = projectile + var/obj/projectile/P = projectile if(!istype(P)) return //default behaviour only applies to true projectiles @@ -560,7 +560,7 @@ //does the actual launching of the projectile /obj/item/gun/proc/process_projectile(obj/projectile, mob/user, atom/target, target_zone, params) - var/obj/item/projectile/P = projectile + var/obj/projectile/P = projectile if(!istype(P)) return FALSE //default behaviour only applies to true projectiles @@ -588,7 +588,7 @@ M.visible_message(SPAN_GOOD("\The [user] takes \the [src] out of their mouth.")) mouthshoot = FALSE return - var/obj/item/projectile/in_chamber = consume_next_projectile() + var/obj/projectile/in_chamber = consume_next_projectile() if(istype(in_chamber)) user.visible_message(SPAN_DANGER("\The [user] pulls the trigger.")) if (!pin && needspin) // Checks the pin of the gun. diff --git a/code/modules/projectiles/guns/alien.dm b/code/modules/projectiles/guns/alien.dm index 34a31b7f585..64689892e02 100644 --- a/code/modules/projectiles/guns/alien.dm +++ b/code/modules/projectiles/guns/alien.dm @@ -71,7 +71,7 @@ recoil = 1 force = 15 - projectile_type = /obj/item/projectile/energy/sonic + projectile_type = /obj/projectile/energy/sonic cell_type = /obj/item/cell/super fire_delay = 40 fire_sound = 'sound/effects/basscannon.ogg' @@ -93,7 +93,7 @@ return //Projectile. -/obj/item/projectile/energy/sonic +/obj/projectile/energy/sonic name = "distortion" icon = 'icons/obj/machinery/particle_accelerator2.dmi' icon_state = "particle" diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index d19f3bd52ed..68f0c705206 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -20,7 +20,7 @@ var/charge_cost = 200 //How much energy is needed to fire. var/max_shots = 10 //Determines the capacity of the weapon's power cell. Specifying a cell_type overrides this value. var/cell_type = null - var/projectile_type = /obj/item/projectile/beam/practice //also passed to turrets + var/projectile_type = /obj/projectile/beam/practice //also passed to turrets var/modifystate var/charge_meter = 1 //if set, the icon state will be chosen based on the current charge var/list/required_firemode_auth //This list matches with firemode index, used to determine which firemodes get unlocked with what level of authorization. @@ -287,12 +287,12 @@ if(initial(self_recharge)) . += "Recharge Time: [initial(recharge_time)]
" . += "
Primary Projectile
" - var/obj/item/projectile/P = new projectile_type + var/obj/projectile/P = new projectile_type . += P.get_print_info() if(secondary_projectile_type) . += "
Secondary Projectile
" - var/obj/item/projectile/P_second = new secondary_projectile_type + var/obj/projectile/P_second = new secondary_projectile_type . += P_second.get_print_info() . += "
" diff --git a/code/modules/projectiles/guns/energy/blaster.dm b/code/modules/projectiles/guns/energy/blaster.dm index 6c9865ba8f4..717a7f20ab2 100644 --- a/code/modules/projectiles/guns/energy/blaster.dm +++ b/code/modules/projectiles/guns/energy/blaster.dm @@ -12,7 +12,7 @@ origin_tech = list(TECH_COMBAT = 2, TECH_MAGNET = 2) matter = list(DEFAULT_WALL_MATERIAL = 2000) offhand_accuracy = 1 - projectile_type = /obj/item/projectile/energy/blaster + projectile_type = /obj/projectile/energy/blaster max_shots = 6 burst_delay = 2 @@ -27,7 +27,7 @@ name = "rapidfire blaster" desc = "An aged but reliable rapidfire blaster tuned to expel projectiles at high fire rates." fire_sound = 'sound/weapons/laserstrong.ogg' - projectile_type = /obj/item/projectile/energy/blaster/heavy + projectile_type = /obj/projectile/energy/blaster/heavy burst = 5 burst_delay = 3 max_shots = 30 @@ -52,7 +52,7 @@ icon_state = "blaster_revolver" item_state = "blaster_revolver" fire_sound = 'sound/weapons/laserstrong.ogg' - projectile_type = /obj/item/projectile/energy/blaster + projectile_type = /obj/projectile/energy/blaster max_shots = 8 w_class = ITEMSIZE_SMALL @@ -69,7 +69,7 @@ max_shots = 12 origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2) offhand_accuracy = 0 - projectile_type = /obj/item/projectile/energy/blaster + projectile_type = /obj/projectile/energy/blaster slot_flags = SLOT_BELT w_class = ITEMSIZE_NORMAL @@ -82,7 +82,7 @@ max_shots = 20 origin_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 3) offhand_accuracy = 0 - projectile_type = /obj/item/projectile/energy/blaster/heavy + projectile_type = /obj/projectile/energy/blaster/heavy force = 15 slot_flags = SLOT_BACK @@ -117,7 +117,7 @@ icon_state = "blaster_ar" item_state = "blaster_ar" max_shots = 20 - projectile_type = /obj/item/projectile/energy/blaster/heavy + projectile_type = /obj/projectile/energy/blaster/heavy fire_sound = 'sound/weapons/laserstrong.ogg' slot_flags = SLOT_BACK w_class = ITEMSIZE_LARGE @@ -145,7 +145,7 @@ icon = 'icons/obj/guns/himeo_blaster.dmi' icon_state = "himeoblaster" item_state = "himeoblaster" - projectile_type = /obj/item/projectile/energy/blaster + projectile_type = /obj/projectile/energy/blaster usesound = 'sound/weapons/plasma_cutter.ogg' fire_sound = 'sound/weapons/gunshot/slammer.ogg' cell_type = /obj/item/cell/hydrogen @@ -223,7 +223,7 @@ icon = 'icons/obj/guns/himeo_pistol.dmi' icon_state = "himeopistol" item_state = "himeopistol" - projectile_type = /obj/item/projectile/energy/blaster/heavy + projectile_type = /obj/projectile/energy/blaster/heavy usesound = 'sound/weapons/plasma_cutter.ogg' fire_sound = 'sound/weapons/laserstrong.ogg' charge_cost = 1250 // leaky but lethal diff --git a/code/modules/projectiles/guns/energy/crank.dm b/code/modules/projectiles/guns/energy/crank.dm index b3affdcc261..cbacc6f8ea1 100644 --- a/code/modules/projectiles/guns/energy/crank.dm +++ b/code/modules/projectiles/guns/energy/crank.dm @@ -12,7 +12,7 @@ fire_delay = 10 fire_delay_wielded = 8 origin_tech = list(TECH_COMBAT = 1, TECH_MAGNET = 1) - projectile_type = /obj/item/projectile/beam/midlaser/ice + projectile_type = /obj/projectile/beam/midlaser/ice secondary_projectile_type = null secondary_fire_sound = null charge_failure_message = "'s charging socket was removed to make room for a crank." diff --git a/code/modules/projectiles/guns/energy/cult.dm b/code/modules/projectiles/guns/energy/cult.dm index 3d6f6041713..7515c17e35c 100644 --- a/code/modules/projectiles/guns/energy/cult.dm +++ b/code/modules/projectiles/guns/energy/cult.dm @@ -25,7 +25,7 @@ fire_delay_wielded = 1 accuracy_wielded = 2 - projectile_type = /obj/item/projectile/bullet/shard + projectile_type = /obj/projectile/bullet/shard secondary_projectile_type = null secondary_fire_sound = null firemodes = list() @@ -75,4 +75,4 @@ self_recharge = TRUE has_safety = FALSE does_process = FALSE - projectile_type = /obj/item/projectile/bullet/shard/heavy + projectile_type = /obj/projectile/bullet/shard/heavy diff --git a/code/modules/projectiles/guns/energy/disruptor.dm b/code/modules/projectiles/guns/energy/disruptor.dm index d53d91b8e09..e14e714156c 100644 --- a/code/modules/projectiles/guns/energy/disruptor.dm +++ b/code/modules/projectiles/guns/energy/disruptor.dm @@ -11,8 +11,8 @@ force = 11 origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2) matter = list(DEFAULT_WALL_MATERIAL = 2000) - projectile_type = /obj/item/projectile/energy/disruptorstun - secondary_projectile_type = /obj/item/projectile/energy/blaster/disruptor + projectile_type = /obj/projectile/energy/disruptorstun + secondary_projectile_type = /obj/projectile/energy/blaster/disruptor max_shots = 10 charge_cost = 150 accuracy = 1 @@ -20,8 +20,8 @@ modifystate = "disruptorpistolstun" sel_mode = 1 firemodes = list( - list(mode_name="stun", projectile_type=/obj/item/projectile/energy/disruptorstun, modifystate="disruptorpistolstun", fire_sound = 'sound/weapons/gunshot/bolter.ogg'), - list(mode_name="lethal", projectile_type=/obj/item/projectile/energy/blaster/disruptor, modifystate="disruptorpistolkill", recoil = 1, fire_sound = 'sound/weapons/gunshot/bolter.ogg') + list(mode_name="stun", projectile_type=/obj/projectile/energy/disruptorstun, modifystate="disruptorpistolstun", fire_sound = 'sound/weapons/gunshot/bolter.ogg'), + list(mode_name="lethal", projectile_type=/obj/projectile/energy/blaster/disruptor, modifystate="disruptorpistolkill", recoil = 1, fire_sound = 'sound/weapons/gunshot/bolter.ogg') ) required_firemode_auth = list(WIRELESS_PIN_STUN, WIRELESS_PIN_LETHAL) var/selectframecheck = FALSE @@ -29,11 +29,11 @@ /obj/item/gun/energy/disruptorpistol/practice name = "practice disruptor pistol" desc = "A variant of the NT DP-7. It fires less concentrated energy bolts that are visible, but ultimately harmless, designed for target practice." - projectile_type = /obj/item/projectile/energy/disruptorstun/practice - secondary_projectile_type = /obj/item/projectile/energy/blaster/disruptor/practice + projectile_type = /obj/projectile/energy/disruptorstun/practice + secondary_projectile_type = /obj/projectile/energy/blaster/disruptor/practice firemodes = list( - list(mode_name="stun (practice)", projectile_type=/obj/item/projectile/energy/disruptorstun/practice, modifystate="disruptorpistolstun", fire_sound = 'sound/weapons/gunshot/bolter.ogg'), - list(mode_name="lethal (practice)", projectile_type=/obj/item/projectile/energy/blaster/disruptor/practice, modifystate="disruptorpistolkill", recoil = 1, fire_sound = 'sound/weapons/gunshot/bolter.ogg') + list(mode_name="stun (practice)", projectile_type=/obj/projectile/energy/disruptorstun/practice, modifystate="disruptorpistolstun", fire_sound = 'sound/weapons/gunshot/bolter.ogg'), + list(mode_name="lethal (practice)", projectile_type=/obj/projectile/energy/blaster/disruptor/practice, modifystate="disruptorpistolkill", recoil = 1, fire_sound = 'sound/weapons/gunshot/bolter.ogg') ) /obj/item/gun/energy/disruptorpistol/security diff --git a/code/modules/projectiles/guns/energy/freezeray.dm b/code/modules/projectiles/guns/energy/freezeray.dm index c2f7045bd19..a1c384ca494 100644 --- a/code/modules/projectiles/guns/energy/freezeray.dm +++ b/code/modules/projectiles/guns/energy/freezeray.dm @@ -12,9 +12,9 @@ origin_tech = list(TECH_COMBAT = 2, TECH_MATERIAL = 4, TECH_POWER = 4) slot_flags = SLOT_BELT - projectile_type = /obj/item/projectile/beam/freezer + projectile_type = /obj/projectile/beam/freezer firemodes = list( - list(mode_name="freeze", projectile_type= /obj/item/projectile/beam/freezer, fire_sound='sound/weapons/pulse3.ogg'), - list(mode_name="ice bolt", projectile_type= /obj/item/projectile/ice, fire_sound='sound/weapons/crossbow.ogg') + list(mode_name="freeze", projectile_type= /obj/projectile/beam/freezer, fire_sound='sound/weapons/pulse3.ogg'), + list(mode_name="ice bolt", projectile_type= /obj/projectile/ice, fire_sound='sound/weapons/crossbow.ogg') ) diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index e80906c8eb0..28336070322 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -12,7 +12,7 @@ force = 15 origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2) matter = list(DEFAULT_WALL_MATERIAL = 2000) - projectile_type = /obj/item/projectile/beam/midlaser + projectile_type = /obj/projectile/beam/midlaser can_turret = 1 turret_is_lethal = 1 turret_sprite_set = "laser" @@ -33,7 +33,7 @@ /obj/item/gun/energy/laser/practice name = "practice laser carbine" desc = "A modified version of the HI G40E, this one fires less concentrated energy bolts designed for target practice." - projectile_type = /obj/item/projectile/beam/practice + projectile_type = /obj/projectile/beam/practice /obj/item/gun/energy/retro name = "retro laser" @@ -48,7 +48,7 @@ slot_flags = SLOT_BELT w_class = ITEMSIZE_NORMAL offhand_accuracy = 1 - projectile_type = /obj/item/projectile/beam + projectile_type = /obj/projectile/beam fire_delay = 5 can_turret = 1 turret_is_lethal = 1 @@ -70,7 +70,7 @@ slot_flags = SLOT_BELT w_class = ITEMSIZE_NORMAL offhand_accuracy = 2 - projectile_type = /obj/item/projectile/beam + projectile_type = /obj/projectile/beam origin_tech = null max_shots = 5 //to compensate a bit for self-recharging self_recharge = 1 @@ -88,7 +88,7 @@ fire_sound = 'sound/weapons/lasercannonfire.ogg' origin_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3, TECH_POWER = 3) slot_flags = SLOT_BELT|SLOT_BACK - projectile_type = /obj/item/projectile/beam/heavylaser + projectile_type = /obj/projectile/beam/heavylaser charge_cost = 400 max_shots = 5 fire_delay = 20 @@ -119,7 +119,7 @@ has_item_ratio = FALSE fire_sound = 'sound/weapons/laser3.ogg' origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 3, TECH_MAGNET = 2, TECH_ILLEGAL = 2) - projectile_type = /obj/item/projectile/beam/xray + projectile_type = /obj/projectile/beam/xray charge_cost = 100 max_shots = 20 fire_delay = 4 @@ -148,7 +148,7 @@ has_item_ratio = FALSE // same as the laserrifle fire_sound = 'sound/weapons/marauder.ogg' origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 5, TECH_POWER = 4) - projectile_type = /obj/item/projectile/beam/sniper + projectile_type = /obj/projectile/beam/sniper slot_flags = SLOT_BACK charge_cost = 400 max_shots = 4 @@ -192,7 +192,7 @@ force = 15 matter = list(DEFAULT_WALL_MATERIAL = 2000) origin_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 2) - projectile_type = /obj/item/projectile/beam/shotgun + projectile_type = /obj/projectile/beam/shotgun max_shots = 20 sel_mode = 1 is_wieldable = TRUE @@ -222,7 +222,7 @@ recharge_time = 2 matter = list(DEFAULT_WALL_MATERIAL = 2000) fire_sound = 'sound/weapons/laser1.ogg' - projectile_type = /obj/item/projectile/beam/laser_tag + projectile_type = /obj/projectile/beam/laser_tag pin = /obj/item/device/firing_pin/tag/red can_turret = TRUE turret_is_lethal = FALSE @@ -239,7 +239,7 @@ return ..() /obj/item/gun/energy/lasertag/proc/get_tag_color(var/set_color) - projectile_type = text2path("/obj/item/projectile/beam/laser_tag/[set_color]") + projectile_type = text2path("/obj/projectile/beam/laser_tag/[set_color]") if(pin) QDEL_NULL(pin) var/pin_path = text2path("/obj/item/device/firing_pin/tag/[set_color]") @@ -258,7 +258,7 @@ icon = 'icons/obj/guns/bluetag.dmi' icon_state = "bluetag" item_state = "bluetag" - projectile_type = /obj/item/projectile/beam/laser_tag/blue + projectile_type = /obj/projectile/beam/laser_tag/blue pin = /obj/item/device/firing_pin/tag/blue turret_sprite_set = "blue" diff --git a/code/modules/projectiles/guns/energy/lawgiver.dm b/code/modules/projectiles/guns/energy/lawgiver.dm index 47aa5b3d708..df0314627c9 100644 --- a/code/modules/projectiles/guns/energy/lawgiver.dm +++ b/code/modules/projectiles/guns/energy/lawgiver.dm @@ -24,7 +24,7 @@ fire_delay = 3, recoil = 1, accuracy = 1, - projectile_type = /obj/item/projectile/bullet/pistol, + projectile_type = /obj/projectile/bullet/pistol, fire_sound = 'sound/weapons/gunshot/gunshot_smg.ogg' ), list( @@ -36,7 +36,7 @@ move_delay = 4, accuracy = list(1, 0, 0,-1,-1), dispersion = list(0, 10, 10), - projectile_type = /obj/item/projectile/bullet/pistol, + projectile_type = /obj/projectile/bullet/pistol, fire_sound = 'sound/weapons/gunshot/gunshot_smg.ogg' ), list( @@ -45,7 +45,7 @@ fire_delay = 6, recoil = 3, accuracy = 0, - projectile_type = /obj/item/projectile/bullet/gyro/law, + projectile_type = /obj/projectile/bullet/gyro/law, fire_sound = 'sound/effects/Explosion1.ogg' ), list( @@ -54,7 +54,7 @@ fire_delay = 4, recoil = 0, accuracy = 1, - projectile_type = /obj/item/projectile/energy/electrode, + projectile_type = /obj/projectile/energy/electrode, fire_sound = 'sound/weapons/Taser.ogg' ), list( @@ -63,7 +63,7 @@ fire_delay = 4, recoil = 3, accuracy = 1, - projectile_type = /obj/item/projectile/bullet/shotgun/incendiary, + projectile_type = /obj/projectile/bullet/shotgun/incendiary, fire_sound = 'sound/weapons/gunshot/gunshot1.ogg' ), list( @@ -72,7 +72,7 @@ fire_delay = 6, recoil = 3, accuracy = 1, - projectile_type = /obj/item/projectile/bullet/rifle/a556, + projectile_type = /obj/projectile/bullet/rifle/a556, fire_sound = 'sound/weapons/gunshot/gunshot1.ogg' ), list( @@ -81,7 +81,7 @@ fire_delay = 6, recoil = 3, accuracy = 0, - projectile_type = /obj/item/projectile/bullet/pellet/shotgun, + projectile_type = /obj/projectile/bullet/pellet/shotgun, fire_sound = 'sound/weapons/gunshot/gunshot1.ogg' ) ) diff --git a/code/modules/projectiles/guns/energy/magic.dm b/code/modules/projectiles/guns/energy/magic.dm index 241df4035de..d96e866964e 100644 --- a/code/modules/projectiles/guns/energy/magic.dm +++ b/code/modules/projectiles/guns/energy/magic.dm @@ -13,7 +13,7 @@ w_class = ITEMSIZE_NORMAL max_shots = 10 charge_cost = 100 - projectile_type = /obj/item/projectile/magic + projectile_type = /obj/projectile/magic origin_tech = list(TECH_COMBAT = 6, TECH_MAGNET = 5, TECH_BLUESPACE = 6) charge_meter = 0 has_safety = FALSE diff --git a/code/modules/projectiles/guns/energy/mining.dm b/code/modules/projectiles/guns/energy/mining.dm index ef6db5b185d..01212187909 100644 --- a/code/modules/projectiles/guns/energy/mining.dm +++ b/code/modules/projectiles/guns/energy/mining.dm @@ -16,7 +16,7 @@ edge = TRUE origin_tech = list(TECH_MATERIAL = 4, TECH_PHORON = 3, TECH_ENGINEERING = 3) matter = list(DEFAULT_WALL_MATERIAL = 4000, MATERIAL_GLASS = 2000) - projectile_type = /obj/item/projectile/beam/plasmacutter + projectile_type = /obj/projectile/beam/plasmacutter cell_type = /obj/item/cell/high charge_cost = 666.66 // 15 shots on a high cap cell needspin = FALSE @@ -66,7 +66,7 @@ cell_type = null max_shots = 15 -/obj/item/projectile/beam/plasmacutter +/obj/projectile/beam/plasmacutter name = "plasma arc" icon_state = "omnilaser" damage = 20 @@ -83,14 +83,14 @@ maiming = TRUE maim_rate = 1 -/obj/item/projectile/beam/plasmacutter/proc/pass_check(var/turf/simulated/mineral/mine_turf) +/obj/projectile/beam/plasmacutter/proc/pass_check(var/turf/simulated/mineral/mine_turf) if(mineral_passes <= 0) return list(null, FALSE) // the projectile stops mineral_passes-- var/mineral_destroyed = on_impact(mine_turf) return list(PROJECTILE_CONTINUE, mineral_destroyed) // the projectile tunnels deeper -/obj/item/projectile/beam/plasmacutter/on_impact(var/atom/A) +/obj/projectile/beam/plasmacutter/on_impact(var/atom/A) if(istype(A, /turf/simulated/mineral)) var/turf/simulated/mineral/M = A if(prob(33)) diff --git a/code/modules/projectiles/guns/energy/modular.dm b/code/modules/projectiles/guns/energy/modular.dm index db50c714e55..547c58d968b 100644 --- a/code/modules/projectiles/guns/energy/modular.dm +++ b/code/modules/projectiles/guns/energy/modular.dm @@ -171,7 +171,7 @@ return null if (self_recharge) addtimer(CALLBACK(src, PROC_REF(try_recharge)), recharge_time * 2 SECONDS, TIMER_UNIQUE) - var/obj/item/projectile/beam/A = new projectile_type(src) + var/obj/projectile/beam/A = new projectile_type(src) A.damage = capacitor.damage var/damage_coeff = 1 for(var/obj/item/laser_components/modifier/modifier in gun_mods) diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index aea279973fb..ddd8f0a4228 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -13,18 +13,18 @@ accuracy = 1 max_shots = 10 can_turret = 1 - secondary_projectile_type = /obj/item/projectile/beam + secondary_projectile_type = /obj/projectile/beam secondary_fire_sound = 'sound/weapons/laser1.ogg' can_switch_modes = 1 turret_is_lethal = 0 - projectile_type = /obj/item/projectile/beam/stun + projectile_type = /obj/projectile/beam/stun origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2) modifystate = "energystun" firemodes = list( - list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, modifystate="energystun", fire_sound='sound/weapons/Taser.ogg'), - list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, modifystate="energykill", fire_sound='sound/weapons/laser1.ogg') + list(mode_name="stun", projectile_type=/obj/projectile/beam/stun, modifystate="energystun", fire_sound='sound/weapons/Taser.ogg'), + list(mode_name="lethal", projectile_type=/obj/projectile/beam, modifystate="energykill", fire_sound='sound/weapons/laser1.ogg') ) has_item_ratio = FALSE @@ -56,8 +56,8 @@ charge_failure_message = "'s charging socket was removed to make room for a minaturized reactor." firemodes = list( - list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg'), - list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, fire_sound='sound/weapons/laser1.ogg') + list(mode_name="stun", projectile_type=/obj/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg'), + list(mode_name="lethal", projectile_type=/obj/projectile/beam, fire_sound='sound/weapons/laser1.ogg') ) var/lightfail = 0 @@ -136,19 +136,19 @@ max_shots = 7 fire_delay = 4 can_turret = 1 - secondary_projectile_type = /obj/item/projectile/beam/pistol + secondary_projectile_type = /obj/projectile/beam/pistol secondary_fire_sound = 'sound/weapons/laser1.ogg' can_switch_modes = 1 turret_sprite_set = "carbine" turret_is_lethal = 0 - projectile_type = /obj/item/projectile/beam/stun + projectile_type = /obj/projectile/beam/stun origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2) modifystate = "epistolstun" firemodes = list( - list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, modifystate="epistolstun", fire_sound='sound/weapons/Taser.ogg'), - list(mode_name="lethal", projectile_type=/obj/item/projectile/beam/pistol, modifystate="epistolkill", fire_sound='sound/weapons/laser1.ogg') + list(mode_name="stun", projectile_type=/obj/projectile/beam/stun, modifystate="epistolstun", fire_sound='sound/weapons/Taser.ogg'), + list(mode_name="lethal", projectile_type=/obj/projectile/beam/pistol, modifystate="epistolkill", fire_sound='sound/weapons/laser1.ogg') ) /obj/item/gun/energy/pistol/hegemony @@ -164,17 +164,17 @@ max_shots = 10 fire_delay = 3 can_turret = FALSE - secondary_projectile_type = /obj/item/projectile/beam/pistol/hegemony + secondary_projectile_type = /obj/projectile/beam/pistol/hegemony secondary_fire_sound = 'sound/weapons/laser1.ogg' can_switch_modes = TRUE - projectile_type = /obj/item/projectile/beam/stun + projectile_type = /obj/projectile/beam/stun origin_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 3) modifystate = "hegemony_pistol" firemodes = list( - list(mode_name="incapacitate", projectile_type=/obj/item/projectile/beam/stun, modifystate="hegemony_pistol", fire_sound='sound/weapons/Taser.ogg'), - list(mode_name="smite", projectile_type=/obj/item/projectile/beam/pistol/hegemony, modifystate="hegemony_pistol", fire_sound='sound/weapons/laser1.ogg') + list(mode_name="incapacitate", projectile_type=/obj/projectile/beam/stun, modifystate="hegemony_pistol", fire_sound='sound/weapons/Taser.ogg'), + list(mode_name="smite", projectile_type=/obj/projectile/beam/pistol/hegemony, modifystate="hegemony_pistol", fire_sound='sound/weapons/laser1.ogg') ) /obj/item/gun/energy/pistol/goldendeep @@ -190,17 +190,17 @@ max_shots = 10 fire_delay = 3 can_turret = FALSE - secondary_projectile_type = /obj/item/projectile/beam/pistol + secondary_projectile_type = /obj/projectile/beam/pistol secondary_fire_sound = 'sound/weapons/laser3.ogg' can_switch_modes = TRUE - projectile_type = /obj/item/projectile/beam/disorient + projectile_type = /obj/projectile/beam/disorient origin_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 3) modifystate = "ornatepistolstun" firemodes = list( - list(mode_name="disorient", projectile_type=/obj/item/projectile/beam/disorient, modifystate="ornatepistolstun", fire_sound='sound/weapons/Taser.ogg'), - list(mode_name="lethal", projectile_type=/obj/item/projectile/beam/pistol, modifystate="ornatepistollethal", fire_sound='sound/weapons/laser1.ogg') + list(mode_name="disorient", projectile_type=/obj/projectile/beam/disorient, modifystate="ornatepistolstun", fire_sound='sound/weapons/Taser.ogg'), + list(mode_name="lethal", projectile_type=/obj/projectile/beam/pistol, modifystate="ornatepistollethal", fire_sound='sound/weapons/laser1.ogg') ) /obj/item/gun/energy/repeater @@ -219,7 +219,7 @@ offhand_accuracy = 6 // same as firing it in your main hand - projectile_type = /obj/item/projectile/beam/pistol/scc + projectile_type = /obj/projectile/beam/pistol/scc origin_tech = list(TECH_COMBAT = 5, TECH_MAGNET = 4) firemodes = list( @@ -240,17 +240,17 @@ slot_flags = SLOT_BELT|SLOT_HOLSTER max_shots = 8 fire_delay = 5 - secondary_projectile_type = /obj/item/projectile/beam/pistol/scc/weak + secondary_projectile_type = /obj/projectile/beam/pistol/scc/weak secondary_fire_sound = 'sound/weapons/energy_repeater.ogg' can_switch_modes = 1 - projectile_type = /obj/item/projectile/beam/stun + projectile_type = /obj/projectile/beam/stun origin_tech = list(TECH_COMBAT = 4, TECH_MAGNET = 3) modifystate = "sccpistolstun" firemodes = list( - list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, modifystate="sccpistolstun", fire_sound='sound/weapons/Taser.ogg'), - list(mode_name="lethal", projectile_type=/obj/item/projectile/beam/pistol/scc/weak, modifystate="sccpistolkill", fire_sound='sound/weapons/energy_repeater.ogg') + list(mode_name="stun", projectile_type=/obj/projectile/beam/stun, modifystate="sccpistolstun", fire_sound='sound/weapons/Taser.ogg'), + list(mode_name="lethal", projectile_type=/obj/projectile/beam/pistol/scc/weak, modifystate="sccpistolkill", fire_sound='sound/weapons/energy_repeater.ogg') ) /obj/item/gun/energy/gun/skrell @@ -273,12 +273,12 @@ item_state = "particlepistol" slot_flags = SLOT_BELT|SLOT_HOLSTER force = 11 - projectile_type = /obj/item/projectile/beam/stun/skrell - secondary_projectile_type = /obj/item/projectile/beam/pulse/skrell + projectile_type = /obj/projectile/beam/stun/skrell + secondary_projectile_type = /obj/projectile/beam/pulse/skrell firemodes = list( - list(mode_name="disable", projectile_type=/obj/item/projectile/beam/stun/skrell, fire_sound='sound/weapons/Laser2.ogg'), - list(mode_name="lethal", projectile_type=/obj/item/projectile/beam/pulse/skrell, fire_sound='sound/weapons/laser3.ogg') + list(mode_name="disable", projectile_type=/obj/projectile/beam/stun/skrell, fire_sound='sound/weapons/Laser2.ogg'), + list(mode_name="lethal", projectile_type=/obj/projectile/beam/pulse/skrell, fire_sound='sound/weapons/laser3.ogg') ) /obj/item/gun/energy/gun/skrell/smg @@ -290,12 +290,12 @@ slot_flags = SLOT_BELT|SLOT_HOLSTER|SLOT_BACK max_shots = 14 force = 16 - projectile_type = /obj/item/projectile/beam/stun/skrell - secondary_projectile_type = /obj/item/projectile/beam/pulse/skrell + projectile_type = /obj/projectile/beam/stun/skrell + secondary_projectile_type = /obj/projectile/beam/pulse/skrell firemodes = list( - list(mode_name="disable", projectile_type=/obj/item/projectile/beam/stun/skrell, fire_sound='sound/weapons/Laser2.ogg'), - list(mode_name="lethal", projectile_type=/obj/item/projectile/beam/pulse/skrell, fire_sound='sound/weapons/laser3.ogg', burst = 2, burst_delay = 2) + list(mode_name="disable", projectile_type=/obj/projectile/beam/stun/skrell, fire_sound='sound/weapons/Laser2.ogg'), + list(mode_name="lethal", projectile_type=/obj/projectile/beam/pulse/skrell, fire_sound='sound/weapons/laser3.ogg', burst = 2, burst_delay = 2) ) /obj/item/gun/energy/gun/qukala @@ -309,17 +309,17 @@ slot_flags = SLOT_BELT accuracy = 2 max_shots = 25 - secondary_projectile_type = /obj/item/projectile/beam + secondary_projectile_type = /obj/projectile/beam secondary_fire_sound = 'sound/weapons/laser1.ogg' can_switch_modes = 1 - projectile_type = /obj/item/projectile/beam/stun + projectile_type = /obj/projectile/beam/stun origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2) modifystate = "qukalagun" firemodes = list( - list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg'), - list(mode_name="lethal", projectile_type=/obj/item/projectile/beam/midlaser/skrell, fire_sound='sound/weapons/laser1.ogg') + list(mode_name="stun", projectile_type=/obj/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg'), + list(mode_name="lethal", projectile_type=/obj/projectile/beam/midlaser/skrell, fire_sound='sound/weapons/laser1.ogg') ) has_item_ratio = FALSE @@ -343,16 +343,16 @@ max_shots = 8 fire_delay = 4 can_turret = FALSE - secondary_projectile_type = /obj/item/projectile/energy/blaster/skrell + secondary_projectile_type = /obj/projectile/energy/blaster/skrell secondary_fire_sound = 'sound/weapons/laser3.ogg' can_switch_modes = TRUE - projectile_type = /obj/item/projectile/energy/disruptorstun/skrell + projectile_type = /obj/projectile/energy/disruptorstun/skrell modifystate = "psipistolstun" firemodes = list( - list(mode_name="stun", projectile_type=/obj/item/projectile/energy/disruptorstun/skrell, modifystate="psipistolstun", fire_sound='sound/weapons/Taser.ogg'), - list(mode_name="lethal", projectile_type=/obj/item/projectile/energy/blaster/skrell, modifystate="psipistollethal", fire_sound='sound/weapons/laser3.ogg'), - list(mode_name="ion", projectile_type=/obj/item/projectile/ion/small, modifystate="psipistolion", fire_sound='sound/weapons/laser1.ogg') + list(mode_name="stun", projectile_type=/obj/projectile/energy/disruptorstun/skrell, modifystate="psipistolstun", fire_sound='sound/weapons/Taser.ogg'), + list(mode_name="lethal", projectile_type=/obj/projectile/energy/blaster/skrell, modifystate="psipistollethal", fire_sound='sound/weapons/laser3.ogg'), + list(mode_name="ion", projectile_type=/obj/projectile/ion/small, modifystate="psipistolion", fire_sound='sound/weapons/laser1.ogg') ) /obj/item/gun/energy/fedpistol/nopsi diff --git a/code/modules/projectiles/guns/energy/pulse.dm b/code/modules/projectiles/guns/energy/pulse.dm index e8d30ff2fd4..8e4665e1be2 100644 --- a/code/modules/projectiles/guns/energy/pulse.dm +++ b/code/modules/projectiles/guns/energy/pulse.dm @@ -7,21 +7,21 @@ slot_flags = SLOT_BELT force = 11 fire_sound='sound/weapons/laser1.ogg' - projectile_type = /obj/item/projectile/beam + projectile_type = /obj/projectile/beam sel_mode = 2 accuracy = 1 max_shots = 10 can_turret = 1 - secondary_projectile_type = /obj/item/projectile/beam/pulse + secondary_projectile_type = /obj/projectile/beam/pulse secondary_fire_sound = 'sound/weapons/pulse.ogg' can_switch_modes = 0 turret_sprite_set = "pulse" turret_is_lethal = 1 firemodes = list( - list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg'), - list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, fire_sound='sound/weapons/laser1.ogg'), - list(mode_name="DESTROY", projectile_type=/obj/item/projectile/beam/pulse, fire_sound='sound/weapons/pulse.ogg', fire_delay=25) + list(mode_name="stun", projectile_type=/obj/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg'), + list(mode_name="lethal", projectile_type=/obj/projectile/beam, fire_sound='sound/weapons/laser1.ogg'), + list(mode_name="DESTROY", projectile_type=/obj/projectile/beam/pulse, fire_sound='sound/weapons/pulse.ogg', fire_delay=25) ) /obj/item/gun/energy/pulse/mounted diff --git a/code/modules/projectiles/guns/energy/rifle.dm b/code/modules/projectiles/guns/energy/rifle.dm index cfa5d0a0e4c..fbd5bf860fc 100644 --- a/code/modules/projectiles/guns/energy/rifle.dm +++ b/code/modules/projectiles/guns/energy/rifle.dm @@ -14,7 +14,7 @@ burst_delay = 3 accuracy = -1 can_turret = 1 - secondary_projectile_type = /obj/item/projectile/beam + secondary_projectile_type = /obj/projectile/beam secondary_fire_sound = 'sound/weapons/laser1.ogg' can_switch_modes = 1 turret_sprite_set = "carbine" @@ -25,7 +25,7 @@ accuracy_wielded = 2 sel_mode = 1 - projectile_type = /obj/item/projectile/beam/stun + projectile_type = /obj/projectile/beam/stun matter = list(DEFAULT_WALL_MATERIAL = 2000) origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 2, TECH_MAGNET = 3) modifystate = "eriflestun" @@ -33,8 +33,8 @@ is_wieldable = TRUE firemodes = list( - list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, modifystate="eriflestun", fire_sound='sound/weapons/Taser.ogg'), - list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, modifystate="eriflekill", fire_sound='sound/weapons/laser1.ogg') + list(mode_name="stun", projectile_type=/obj/projectile/beam/stun, modifystate="eriflestun", fire_sound='sound/weapons/Taser.ogg'), + list(mode_name="lethal", projectile_type=/obj/projectile/beam, modifystate="eriflekill", fire_sound='sound/weapons/laser1.ogg') ) /obj/item/gun/energy/rifle/laser @@ -49,7 +49,7 @@ max_shots = 15 fire_delay = 6 origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 2) - projectile_type = /obj/item/projectile/beam/midlaser + projectile_type = /obj/projectile/beam/midlaser secondary_projectile_type = null secondary_fire_sound = null can_switch_modes = 0 @@ -62,7 +62,7 @@ /obj/item/gun/energy/rifle/laser/practice name = "practice laser rifle" desc = "A modified version of the NT LR-6. It fires less concentrated laser beams that are visible, but ultimately harmless, designed for target practice." - projectile_type = /obj/item/projectile/beam/practice + projectile_type = /obj/projectile/beam/practice /obj/item/gun/energy/rifle/laser/noctiluca name = "combat laser rifle" @@ -79,13 +79,13 @@ fire_delay = 5 burst_delay = 5 origin_tech = list(TECH_COMBAT = 8, TECH_MAGNET = 4) - projectile_type = /obj/item/projectile/beam/noctiluca - secondary_projectile_type = /obj/item/projectile/beam/noctiluca/armor_piercing + projectile_type = /obj/projectile/beam/noctiluca + secondary_projectile_type = /obj/projectile/beam/noctiluca/armor_piercing secondary_fire_sound = 'sound/weapons/laserstrong.ogg' can_switch_modes = TRUE firemodes = list( - list(mode_name = "fire normal diffusion lasers", projectile_type = /obj/item/projectile/beam/noctiluca, fire_sound = 'sound/weapons/laser1.ogg'), - list(mode_name = "fire specialized armor piercing lasers", projectile_type = /obj/item/projectile/beam/noctiluca/armor_piercing, fire_sound = 'sound/weapons/laserstrong.ogg') + list(mode_name = "fire normal diffusion lasers", projectile_type = /obj/projectile/beam/noctiluca, fire_sound = 'sound/weapons/laser1.ogg'), + list(mode_name = "fire specialized armor piercing lasers", projectile_type = /obj/projectile/beam/noctiluca/armor_piercing, fire_sound = 'sound/weapons/laserstrong.ogg') ) /obj/item/gun/energy/rifle/laser/heavy @@ -97,7 +97,7 @@ item_state = "lasercannon100" has_item_ratio = TRUE fire_sound = 'sound/weapons/lasercannonfire.ogg' - projectile_type = /obj/item/projectile/beam/heavylaser + projectile_type = /obj/projectile/beam/heavylaser origin_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 3, TECH_POWER = 3) charge_cost = 400 max_shots = 5 @@ -122,7 +122,7 @@ icon_state = "xrifle" item_state = "xrifle" fire_sound = 'sound/weapons/laser3.ogg' - projectile_type = /obj/item/projectile/beam/xray + projectile_type = /obj/projectile/beam/xray origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 3, TECH_MAGNET = 2, TECH_ILLEGAL = 2) max_shots = 40 fire_delay = 6 @@ -140,10 +140,10 @@ icon_state = "pulse" item_state = "pulse" fire_sound = 'sound/weapons/laser1.ogg' - projectile_type = /obj/item/projectile/beam + projectile_type = /obj/projectile/beam sel_mode = 2 origin_tech = list(TECH_COMBAT = 7, TECH_MATERIAL = 6, TECH_MAGNET = 4) - secondary_projectile_type = /obj/item/projectile/beam/pulse + secondary_projectile_type = /obj/projectile/beam/pulse secondary_fire_sound = 'sound/weapons/pulse.ogg' can_switch_modes = 0 turret_sprite_set = "pulse" @@ -152,16 +152,16 @@ modifystate = null firemodes = list( - list(mode_name="stun", projectile_type=/obj/item/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg'), - list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, fire_sound='sound/weapons/laser1.ogg'), - list(mode_name="DESTROY", projectile_type=/obj/item/projectile/beam/pulse, fire_sound='sound/weapons/pulse.ogg') + list(mode_name="stun", projectile_type=/obj/projectile/beam/stun, fire_sound='sound/weapons/Taser.ogg'), + list(mode_name="lethal", projectile_type=/obj/projectile/beam, fire_sound='sound/weapons/laser1.ogg'), + list(mode_name="DESTROY", projectile_type=/obj/projectile/beam/pulse, fire_sound='sound/weapons/pulse.ogg') ) /obj/item/gun/energy/rifle/pulse/destroyer name = "pulse destroyer" desc = "A heavy-duty, pulse-based energy weapon. Because of its complexity and cost, it is rarely seen in use except by specialists." fire_sound = 'sound/weapons/pulse.ogg' - projectile_type = /obj/item/projectile/beam/pulse + projectile_type = /obj/projectile/beam/pulse burst_delay = 5 burst = 3 max_shots = 30 @@ -179,7 +179,7 @@ item_state = "tachyonrifle" has_item_ratio = FALSE fire_sound = 'sound/weapons/laser3.ogg' - projectile_type = /obj/item/projectile/beam/tachyon + projectile_type = /obj/projectile/beam/tachyon origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 3, TECH_MAGNET = 2, TECH_ILLEGAL = 2) secondary_projectile_type = null secondary_fire_sound = null @@ -206,7 +206,7 @@ item_state = "ionrifle" has_item_ratio = FALSE modifystate = null - projectile_type = /obj/item/projectile/ion/stun + projectile_type = /obj/projectile/ion/stun fire_sound = 'sound/weapons/laser1.ogg' origin_tech = list(TECH_COMBAT = 2, TECH_MAGNET = 4) w_class = ITEMSIZE_LARGE @@ -238,7 +238,7 @@ item_state = "qukala_heavy" max_shots = 10 self_recharge = TRUE - projectile_type = /obj/item/projectile/beam/midlaser/skrell/heavy + projectile_type = /obj/projectile/beam/midlaser/skrell/heavy /obj/item/gun/energy/rifle/hegemony name = "hegemony energy rifle" @@ -253,7 +253,7 @@ max_shots = 15 can_turret = TRUE turret_is_lethal = TRUE - projectile_type = /obj/item/projectile/beam/midlaser/hegemony + projectile_type = /obj/projectile/beam/midlaser/hegemony can_switch_modes = FALSE secondary_projectile_type = null firemodes = list() diff --git a/code/modules/projectiles/guns/energy/scythe.dm b/code/modules/projectiles/guns/energy/scythe.dm index 038ab409c3a..e9ef5687578 100644 --- a/code/modules/projectiles/guns/energy/scythe.dm +++ b/code/modules/projectiles/guns/energy/scythe.dm @@ -19,12 +19,12 @@ max_shots = 20 self_recharge = TRUE reliability = 100 - projectile_type = /obj/item/projectile/bullet/flechette + projectile_type = /obj/projectile/bullet/flechette firemodes = list( - list(mode_name="semiauto", burst=1, projectile_type=/obj/item/projectile/bullet/flechette), - list(mode_name="3-round bursts", burst=3, burst_delay=ROF_SUPERHEAVY, burst_accuracy=list(2,1,1), dispersion=list(0, 10, 15), projectile_type=/obj/item/projectile/bullet/flechette), - list(mode_name="explosive", burst=1, projectile_type=/obj/item/projectile/bullet/flechette/explosive) + list(mode_name="semiauto", burst=1, projectile_type=/obj/projectile/bullet/flechette), + list(mode_name="3-round bursts", burst=3, burst_delay=ROF_SUPERHEAVY, burst_accuracy=list(2,1,1), dispersion=list(0, 10, 15), projectile_type=/obj/projectile/bullet/flechette), + list(mode_name="explosive", burst=1, projectile_type=/obj/projectile/bullet/flechette/explosive) ) diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index b0b41a4e05b..f30241e1739 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -8,7 +8,7 @@ fire_sound = 'sound/weapons/pulse3.ogg' origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 4, TECH_POWER = 3) max_shots = 10 - projectile_type = /obj/item/projectile/energy/declone + projectile_type = /obj/projectile/energy/declone /obj/item/gun/energy/floragun name = "floral somatoray" @@ -20,16 +20,16 @@ fire_sound = 'sound/effects/stealthoff.ogg' charge_cost = 100 max_shots = 10 - projectile_type = /obj/item/projectile/energy/floramut + projectile_type = /obj/projectile/energy/floramut origin_tech = list(TECH_MATERIAL = 2, TECH_BIO = 3, TECH_POWER = 3) modifystate = "floramut" self_recharge = 1 var/singleton/plantgene/gene = null firemodes = list( - list(mode_name="induce mutations", projectile_type=/obj/item/projectile/energy/floramut, modifystate="floramut"), - list(mode_name="increase yield", projectile_type=/obj/item/projectile/energy/florayield, modifystate="florayield"), - list(mode_name="induce specific mutations", projectile_type=/obj/item/projectile/energy/floramut/gene, modifystate="floramut"), + list(mode_name="induce mutations", projectile_type=/obj/projectile/energy/floramut, modifystate="floramut"), + list(mode_name="increase yield", projectile_type=/obj/projectile/energy/florayield, modifystate="florayield"), + list(mode_name="induce specific mutations", projectile_type=/obj/projectile/energy/floramut/gene, modifystate="floramut"), ) needspin = FALSE @@ -56,8 +56,8 @@ /obj/item/gun/energy/floragun/consume_next_projectile() . = ..() - if(istype(., /obj/item/projectile/energy/floramut/gene)) - var/obj/item/projectile/energy/floramut/gene/projectile = . + if(istype(., /obj/projectile/energy/floramut/gene)) + var/obj/projectile/energy/floramut/gene/projectile = . projectile.gene = gene /obj/item/gun/energy/meteorgun @@ -70,7 +70,7 @@ slot_flags = SLOT_BELT|SLOT_BACK w_class = ITEMSIZE_LARGE max_shots = 10 - projectile_type = /obj/item/projectile/meteor + projectile_type = /obj/projectile/meteor self_recharge = 1 recharge_time = 5 //Time it takes for shots to recharge (in ticks) charge_meter = 0 @@ -96,7 +96,7 @@ icon_state = "xray" item_state = "xray" has_item_ratio = FALSE - projectile_type = /obj/item/projectile/beam/mindflayer + projectile_type = /obj/projectile/beam/mindflayer fire_sound = 'sound/weapons/laser1.ogg' can_turret = 1 turret_sprite_set = "xray" @@ -111,7 +111,7 @@ fire_sound = 'sound/effects/stealthoff.ogg' w_class = ITEMSIZE_NORMAL origin_tech = list(TECH_COMBAT = 5, TECH_PHORON = 4) - projectile_type = /obj/item/projectile/energy/phoron + projectile_type = /obj/projectile/energy/phoron can_turret = 1 turret_is_lethal = 0 turret_sprite_set = "net" @@ -127,7 +127,7 @@ w_class = ITEMSIZE_NORMAL fire_sound = 'sound/weapons/taser2.ogg' force = 11 - projectile_type = /obj/item/projectile/beam/mousegun + projectile_type = /obj/projectile/beam/mousegun slot_flags = SLOT_HOLSTER | SLOT_BELT max_shots = 6 sel_mode = 1 @@ -143,7 +143,7 @@ if(!emagged) to_chat(user, SPAN_WARNING("You overload \the [src]'s shock modulator.")) max_shots = initial(max_shots) + 4 - projectile_type = /obj/item/projectile/beam/mousegun/emag + projectile_type = /obj/projectile/beam/mousegun/emag emagged = TRUE QDEL_NULL(power_supply) power_supply = new /obj/item/cell/device/variable(src, max_shots * charge_cost) @@ -155,7 +155,7 @@ icon = 'icons/obj/guns/xenogun.dmi' icon_state = "xenogun" item_state = "xenogun" - projectile_type = /obj/item/projectile/beam/mousegun/xenofauna + projectile_type = /obj/projectile/beam/mousegun/xenofauna max_shots = 12 /obj/item/gun/energy/net @@ -165,7 +165,7 @@ icon_state = "netgun" item_state = "netgun" has_item_ratio = FALSE - projectile_type = /obj/item/projectile/beam/energy_net + projectile_type = /obj/projectile/beam/energy_net fire_sound = 'sound/weapons/plasma_cutter.ogg' slot_flags = SLOT_HOLSTER | SLOT_BELT w_class = ITEMSIZE_NORMAL @@ -201,7 +201,7 @@ w_class = ITEMSIZE_LARGE fire_sound = 'sound/magic/LightningShock.ogg' force = 33 - projectile_type = /obj/item/projectile/energy/bfg + projectile_type = /obj/projectile/energy/bfg slot_flags = SLOT_BACK max_shots = 3 sel_mode = 1 @@ -225,7 +225,7 @@ slot_flags = SLOT_BACK w_class = ITEMSIZE_LARGE force = 15 - projectile_type = /obj/item/projectile/beam/gatlinglaser + projectile_type = /obj/projectile/beam/gatlinglaser max_shots = 350 sel_mode = 1 burst = 10 @@ -284,7 +284,7 @@ accuracy = 1 recoil = 1 force = 15 - projectile_type = /obj/item/projectile/energy/blaster/incendiary + projectile_type = /obj/projectile/energy/blaster/incendiary max_shots = 7 burst = 1 burst_delay = 1 @@ -310,7 +310,7 @@ w_class = ITEMSIZE_HUGE accuracy = 3 // It's a massive beam, okay. force = 60 - projectile_type = /obj/item/projectile/beam/megaglaive + projectile_type = /obj/projectile/beam/megaglaive max_shots = 36 sel_mode = 1 burst = 10 @@ -396,7 +396,7 @@ slot_flags = SLOT_BACK w_class = ITEMSIZE_LARGE force = 22 - projectile_type = /obj/item/projectile/beam/thermaldrill + projectile_type = /obj/projectile/beam/thermaldrill max_shots = 90 burst = 10 burst_delay = 1 @@ -458,7 +458,7 @@ item_state = "tachyoncarbine" has_item_ratio = FALSE fire_sound = 'sound/weapons/laser3.ogg' - projectile_type = /obj/item/projectile/beam/tachyon + projectile_type = /obj/projectile/beam/tachyon origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 3, TECH_MAGNET = 2, TECH_ILLEGAL = 2) max_shots = 10 accuracy = 1 @@ -476,7 +476,7 @@ w_class = ITEMSIZE_LARGE fire_sound = 'sound/magic/LightningShock.ogg' force = 33 - projectile_type = /obj/item/projectile/beam/tesla + projectile_type = /obj/projectile/beam/tesla slot_flags = SLOT_BACK max_shots = 3 sel_mode = 1 @@ -502,7 +502,7 @@ w_class = ITEMSIZE_LARGE fire_sound = 'sound/magic/Repulse.ogg' force = 33 - projectile_type = /obj/item/projectile/energy/gravitydisabler + projectile_type = /obj/projectile/energy/gravitydisabler slot_flags = SLOT_BACK max_shots = 2 sel_mode = 1 @@ -631,7 +631,7 @@ needspin = FALSE origin_tech = null charge_meter = FALSE - projectile_type = /obj/item/projectile/beam/xray // can't wear a hardsuit, and it's only 15 damage with a lot of AP + projectile_type = /obj/projectile/beam/xray // can't wear a hardsuit, and it's only 15 damage with a lot of AP charge_cost = 100 max_shots = 20 self_recharge = 1 // bioreactor in the backpack; not entirely defenseless against EMPs diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index 14207dbc288..5f73b77d339 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -7,7 +7,7 @@ fire_sound = 'sound/weapons/Taser.ogg' max_shots = 5 accuracy = 1 // More of a buff to secborgs and mounted taser users. - projectile_type = /obj/item/projectile/energy/electrode + projectile_type = /obj/projectile/energy/electrode can_turret = 1 turret_sprite_set = "carbine" turret_is_lethal = 0 @@ -28,7 +28,7 @@ has_item_ratio = FALSE fire_sound = 'sound/weapons/gunshot/gunshot1.ogg' origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 3, TECH_POWER = 2) - projectile_type = /obj/item/projectile/energy/electrode + projectile_type = /obj/projectile/energy/electrode max_shots = 8 @@ -50,7 +50,7 @@ suppressed = TRUE can_unsuppress = FALSE fire_sound = 'sound/weapons/Genhit.ogg' - projectile_type = /obj/item/projectile/energy/bolt + projectile_type = /obj/projectile/energy/bolt max_shots = 5 self_recharge = 1 charge_meter = 0 @@ -63,7 +63,7 @@ /obj/item/gun/energy/crossbow/ninja name = "energy dart thrower" - projectile_type = /obj/item/projectile/energy/dart + projectile_type = /obj/projectile/energy/dart /obj/item/gun/energy/crossbow/largecrossbow name = "energy crossbow" @@ -73,4 +73,4 @@ icon_state = "crossbowlarge" item_state = "crossbow" matter = list(DEFAULT_WALL_MATERIAL = 200000) - projectile_type = /obj/item/projectile/energy/bolt/large + projectile_type = /obj/projectile/energy/bolt/large diff --git a/code/modules/projectiles/guns/energy/temperature.dm b/code/modules/projectiles/guns/energy/temperature.dm index 49c9001fc80..101787e0811 100644 --- a/code/modules/projectiles/guns/energy/temperature.dm +++ b/code/modules/projectiles/guns/energy/temperature.dm @@ -13,7 +13,7 @@ origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 4, TECH_POWER = 3, TECH_MAGNET = 2) slot_flags = SLOT_BELT|SLOT_BACK - projectile_type = /obj/item/projectile/temp + projectile_type = /obj/projectile/temp can_turret = 1 turret_sprite_set = "temperature" diff --git a/code/modules/projectiles/guns/projectile.dm b/code/modules/projectiles/guns/projectile.dm index 23beef93483..fec2bbf3765 100644 --- a/code/modules/projectiles/guns/projectile.dm +++ b/code/modules/projectiles/guns/projectile.dm @@ -318,7 +318,7 @@ . += "Max Shots: [max_shells]
" if(length(loaded)) var/obj/item/ammo_casing/casing = loaded[1] - var/obj/item/projectile/P = new casing.projectile_type + var/obj/projectile/P = new casing.projectile_type . += "
Projectile
" . += P.get_print_info() else @@ -327,7 +327,7 @@ . += "Load Type: Magazine
" if(ammo_magazine) var/obj/item/ammo_casing/casing = new ammo_magazine.ammo_type - var/obj/item/projectile/P = new casing.projectile_type + var/obj/projectile/P = new casing.projectile_type . += "
Projectile
" . += P.get_print_info() else diff --git a/code/modules/projectiles/guns/projectile/dartgun.dm b/code/modules/projectiles/guns/projectile/dartgun.dm index c7e0fa65364..ce2a70c9159 100644 --- a/code/modules/projectiles/guns/projectile/dartgun.dm +++ b/code/modules/projectiles/guns/projectile/dartgun.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/bullet/chemdart +/obj/projectile/bullet/chemdart name = "dart" icon_state = "dart" damage = 5 @@ -9,11 +9,11 @@ muzzle_type = null -/obj/item/projectile/bullet/chemdart/New() +/obj/projectile/bullet/chemdart/New() reagents = new/datum/reagents(reagent_amount) reagents.my_atom = src -/obj/item/projectile/bullet/chemdart/on_hit(var/atom/target, var/blocked = 0, var/def_zone = null) +/obj/projectile/bullet/chemdart/on_hit(var/atom/target, var/blocked = 0, var/def_zone = null) if(blocked < 100 && ishuman(target)) var/mob/living/carbon/human/H = target if(H.can_inject(target_zone=def_zone)) @@ -24,7 +24,7 @@ desc = "A small hardened, hollow dart." icon_state = "dart" caliber = "dart" - projectile_type = /obj/item/projectile/bullet/chemdart + projectile_type = /obj/projectile/bullet/chemdart /obj/item/ammo_casing/chemdart/expend() qdel(src) @@ -92,7 +92,7 @@ /obj/item/gun/projectile/dartgun/consume_next_projectile() . = ..() - var/obj/item/projectile/bullet/chemdart/dart = . + var/obj/projectile/bullet/chemdart/dart = . if(istype(dart)) fill_dart(dart) @@ -122,7 +122,7 @@ ..() //fills the given dart with reagents -/obj/item/gun/projectile/dartgun/proc/fill_dart(var/obj/item/projectile/bullet/chemdart/dart) +/obj/item/gun/projectile/dartgun/proc/fill_dart(var/obj/projectile/bullet/chemdart/dart) if(mixing.len) var/mix_amount = dart.reagent_amount/mixing.len for(var/obj/item/reagent_containers/glass/beaker/B in mixing) diff --git a/code/modules/projectiles/guns/projectile/plasma.dm b/code/modules/projectiles/guns/projectile/plasma.dm index a8ea23825e0..cc1c228cfa8 100644 --- a/code/modules/projectiles/guns/projectile/plasma.dm +++ b/code/modules/projectiles/guns/projectile/plasma.dm @@ -45,7 +45,7 @@ charge_cost = 100 use_external_power = TRUE self_recharge = TRUE - projectile_type = /obj/item/projectile/plasma + projectile_type = /obj/projectile/plasma /obj/item/gun/projectile/plasma/bolter/pistol name = "plasma pistol" diff --git a/code/modules/projectiles/guns/projectile/rifle.dm b/code/modules/projectiles/guns/projectile/rifle.dm index 0fda74bdb74..cd61a142d69 100644 --- a/code/modules/projectiles/guns/projectile/rifle.dm +++ b/code/modules/projectiles/guns/projectile/rifle.dm @@ -368,7 +368,7 @@ charge_meter = 0 max_shots = 3 charge_cost = 500 - projectile_type = /obj/item/projectile/bullet/gauss/highex + projectile_type = /obj/projectile/bullet/gauss/highex self_recharge = 1 use_external_power = 1 recharge_time = 12 diff --git a/code/modules/projectiles/modular/laser_base.dm b/code/modules/projectiles/modular/laser_base.dm index 55c52f42837..b6c530d7d25 100644 --- a/code/modules/projectiles/modular/laser_base.dm +++ b/code/modules/projectiles/modular/laser_base.dm @@ -128,7 +128,7 @@ desc = "A modification that modulates the beam into a standard laser beam." icon_state = "laser" origin_tech = list(TECH_COMBAT = 1, TECH_MAGNET = 2) - var/obj/item/projectile/beam/projectile = /obj/item/projectile/beam + var/obj/projectile/beam/projectile = /obj/projectile/beam var/firing_sound = 'sound/weapons/laser1.ogg' /obj/item/laser_components/modulator/degrade() diff --git a/code/modules/projectiles/modular/laser_components.dm b/code/modules/projectiles/modular/laser_components.dm index 91a7eaa83d7..e35352d3613 100644 --- a/code/modules/projectiles/modular/laser_components.dm +++ b/code/modules/projectiles/modular/laser_components.dm @@ -307,21 +307,21 @@ name = "TASER modulator" desc = "A modification that modulates the beam into a nonlethal electrical arc." damage = 0 - projectile = /obj/item/projectile/beam/stun + projectile = /obj/projectile/beam/stun icon_state = "taser" firing_sound = 'sound/weapons/Taser.ogg' /obj/item/laser_components/modulator/tesla name = "tesla modulator" desc = "A modification that modulates the beam into a lethal electrical arc." - projectile = /obj/item/projectile/beam/tesla + projectile = /obj/projectile/beam/tesla icon_state = "tesla" firing_sound = 'sound/magic/LightningShock.ogg' /obj/item/laser_components/modulator/pulse name = "pulse modulator" desc = "Amplifies the laser beam into a highly lethal pulse beam." - projectile = /obj/item/projectile/beam/pulse + projectile = /obj/projectile/beam/pulse damage = 1.5 icon_state = "pulse" firing_sound = 'sound/weapons/pulse.ogg' @@ -329,35 +329,35 @@ /obj/item/laser_components/modulator/xray name = "xray modulator" desc = "Modulates the beam into a concentrated x-ray blast." - projectile = /obj/item/projectile/beam/xray + projectile = /obj/projectile/beam/xray icon_state = "xray" firing_sound = 'sound/weapons/laser3.ogg' /obj/item/laser_components/modulator/ion name = "ion cannon" desc = "Modulates the prototype to fire disparate ion projectiles." - projectile = /obj/item/projectile/ion + projectile = /obj/projectile/ion icon_state = "ion" origin_tech = list(TECH_COMBAT = 2, TECH_MAGNET = 3) /obj/item/laser_components/modulator/floramut name = "floral somatomodulator" desc = "Modulates the beam into firing controlled radiation which induces mutation in plant cells." - projectile = /obj/item/projectile/energy/floramut + projectile = /obj/projectile/energy/floramut icon_state = "somatoray" firing_sound = 'sound/effects/stealthoff.ogg' /obj/item/laser_components/modulator/floramut2 name = "betaray modulator" desc = "Modulates the beam into firing controlled radiation which induces enhanced reproduction in plant cells." - projectile = /obj/item/projectile/energy/florayield + projectile = /obj/projectile/energy/florayield icon_state = "betaray" firing_sound = 'sound/effects/stealthoff.ogg' /obj/item/laser_components/modulator/arodentia name = "arodentia modulator" desc = "Modulates the beam into firing precise electrical arcs designed for pest control." - projectile = /obj/item/projectile/beam/mousegun + projectile = /obj/projectile/beam/mousegun damage = 0 icon_state = "pesker" firing_sound = 'sound/weapons/taser2.ogg' @@ -365,42 +365,42 @@ /obj/item/laser_components/modulator/red name = "red team modulator" desc = "Modulates the beam into firing red team tagger beams." - projectile = /obj/item/projectile/beam/laser_tag + projectile = /obj/projectile/beam/laser_tag damage = 0 icon_state = "red" /obj/item/laser_components/modulator/blue name = "blue team modulator" desc = "Modulates the beam into firing blue team tagger beams." - projectile = /obj/item/projectile/beam/laser_tag/blue + projectile = /obj/projectile/beam/laser_tag/blue damage = 0 icon_state = "blue" /obj/item/laser_components/modulator/omni name = "omni team modulator" desc = "Modulates the beam into firing omni team tagger beams." - projectile = /obj/item/projectile/beam/laser_tag/omni + projectile = /obj/projectile/beam/laser_tag/omni damage = 0 icon_state = "omni" /obj/item/laser_components/modulator/practice name = "practice beam modulator" desc = "Modulates the beam into firing nonlethal practice beams." - projectile = /obj/item/projectile/beam/practice + projectile = /obj/projectile/beam/practice damage = 0 icon_state = "practice" /obj/item/laser_components/modulator/mindflayer name = "mind flayer modulator" desc = "Modulates the beam into firing \"mind flayer\" beams." - projectile = /obj/item/projectile/beam/mindflayer + projectile = /obj/projectile/beam/mindflayer damage = 0.5 icon_state = "flayer" /obj/item/laser_components/modulator/decloner name = "decloner modulator" desc = "Modulates the beam into firing highly radioactive particulates." - projectile = /obj/item/projectile/energy/declone + projectile = /obj/projectile/energy/declone damage = 0.5 icon_state = "decloner" firing_sound = 'sound/weapons/pulse3.ogg' @@ -409,7 +409,7 @@ /obj/item/laser_components/modulator/ebow name = "dart modulator" desc = "Modulates the beam into firing minute energy darts." - projectile = /obj/item/projectile/energy/dart + projectile = /obj/projectile/energy/dart damage = 0.25 icon_state = "dart" firing_sound = 'sound/weapons/Genhit.ogg' @@ -418,14 +418,14 @@ /obj/item/laser_components/modulator/blaster name = "blaster-bolt modulator" desc = "Modulates the beam into firing disparate energy bolts." - projectile = /obj/item/projectile/energy/blaster/incendiary + projectile = /obj/projectile/energy/blaster/incendiary icon_state = "lensatic" origin_tech = list(TECH_COMBAT = 2, TECH_PHORON = 4) /obj/item/laser_components/modulator/bfg name = "bioforce modulator" desc = "Modulates the beam into firing big green balls of death." - projectile = /obj/item/projectile/energy/bfg + projectile = /obj/projectile/energy/bfg damage = 2 icon_state = "bfg" firing_sound = 'sound/magic/LightningShock.ogg' @@ -433,7 +433,7 @@ /obj/item/laser_components/modulator/tox name = "phoron bolt modulator" desc = "Modulates the beam into firing toxic phoron bolts." - projectile = /obj/item/projectile/energy/phoron + projectile = /obj/projectile/energy/phoron icon_state = "tox" firing_sound = 'sound/effects/stealthoff.ogg' origin_tech = list(TECH_COMBAT = 4, TECH_PHORON = 4) @@ -441,7 +441,7 @@ /obj/item/laser_components/modulator/net name = "energy net modulator" desc = "Modulates the beam into firing an energy net." - projectile = /obj/item/projectile/beam/energy_net + projectile = /obj/projectile/beam/energy_net icon_state = "xray" firing_sound = 'sound/weapons/plasma_cutter.ogg' origin_tech = list(TECH_COMBAT = 3, TECH_PHORON = 4, TECH_ILLEGAL = 4) @@ -449,7 +449,7 @@ /obj/item/laser_components/modulator/freeze name = "freeze ray modulator" desc = "Modulates the beam into freezing rays." - projectile = /obj/item/projectile/beam/freezer + projectile = /obj/projectile/beam/freezer icon_state = "blue" firing_sound = 'sound/weapons/pulse3.ogg' origin_tech = list(TECH_COMBAT = 3, TECH_MAGNET = 5, TECH_MATERIAL = 4) diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 9e7f4623a9e..2d97e078670 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -1,6 +1,6 @@ #define MUZZLE_EFFECT_PIXEL_INCREMENT 16 //How many pixels to move the muzzle flash up so your character doesn't look like they're shitting out lasers. -/obj/item/projectile +/obj/projectile name = "projectile" icon = 'icons/obj/projectiles.dmi' icon_state = "bullet" @@ -10,7 +10,7 @@ pass_flags = PASSTABLE|PASSRAILING mouse_opacity = MOUSE_OPACITY_TRANSPARENT animate_movement = 0 //Use SLIDE_STEPS in conjunction with legacy - var/projectile_type = /obj/item/projectile + var/projectile_type = /obj/projectile var/ping_effect = "ping_b" //Effect displayed when a bullet hits a barricade. See atom/proc/bullet_ping. var/def_zone = "" //Aiming at @@ -105,11 +105,11 @@ ///If the projectile launches a secondary projectile in addition to itself. var/secondary_projectile -/obj/item/projectile/CanPass() +/obj/projectile/CanPass() return TRUE //TODO: make it so this is called more reliably, instead of sometimes by bullet_act() and sometimes not -/obj/item/projectile/proc/on_hit(var/atom/target, var/blocked = 0, var/def_zone = null) +/obj/projectile/proc/on_hit(var/atom/target, var/blocked = 0, var/def_zone = null) if(blocked >= 100) //Full block return FALSE if(!isliving(target)) @@ -133,17 +133,17 @@ return 1 //called when the projectile stops flying because it collided with something -/obj/item/projectile/proc/on_impact(var/atom/A, var/affected_limb) +/obj/projectile/proc/on_impact(var/atom/A, var/affected_limb) return //Checks if the projectile is eligible for embedding. Not that it necessarily will. -/obj/item/projectile/proc/can_embed() +/obj/projectile/proc/can_embed() //embed must be enabled and damage type must be brute if(!embed || damage_type != DAMAGE_BRUTE) return FALSE return TRUE -/obj/item/projectile/proc/do_embed(var/obj/item/organ/external/organ) +/obj/projectile/proc/do_embed(var/obj/item/organ/external/organ) var/obj/item/SP = new shrapnel_type(organ) SP.edge = TRUE SP.sharp = TRUE @@ -153,16 +153,16 @@ organ.embed(SP) return SP -/obj/item/projectile/proc/get_structure_damage() +/obj/projectile/proc/get_structure_damage() if(damage_type == DAMAGE_BRUTE || damage_type == DAMAGE_BURN) return damage * anti_materiel_potential return FALSE //return TRUE if the projectile should be allowed to pass through after all, FALSE if not. -/obj/item/projectile/proc/check_penetrate(atom/A) +/obj/projectile/proc/check_penetrate(atom/A) return TRUE -/obj/item/projectile/proc/launch_projectile(atom/target, target_zone, mob/user, params, angle_override, forced_spread = 0) +/obj/projectile/proc/launch_projectile(atom/target, target_zone, mob/user, params, angle_override, forced_spread = 0) original = target def_zone = check_zone(target_zone) firer = user @@ -171,14 +171,14 @@ direct_target = target if(ispath(secondary_projectile)) - var/obj/item/projectile/BB = new secondary_projectile(src) + var/obj/projectile/BB = new secondary_projectile(src) BB.launch_projectile(target, target_zone, user, params, angle_override, forced_spread) preparePixelProjectile(target, user? user : get_turf(src), params, forced_spread) return fire(angle_override, direct_target) //called to launch a projectile from a gun -/obj/item/projectile/proc/launch_from_gun(atom/target, target_zone, mob/user, params, angle_override, forced_spread, obj/item/gun/launcher) +/obj/projectile/proc/launch_from_gun(atom/target, target_zone, mob/user, params, angle_override, forced_spread, obj/item/gun/launcher) shot_from = launcher.name suppressed = launcher.suppressed @@ -188,14 +188,14 @@ return launch_projectile(target, target_zone, user, params, angle_override, forced_spread) -/obj/item/projectile/proc/get_iff_from_user(var/mob/user) +/obj/projectile/proc/get_iff_from_user(var/mob/user) var/obj/item/card/id/ID = user.GetIdCard() if(ID) return ID.iff_faction return null //Called when the projectile intercepts a mob. Returns 1 if the projectile hit the mob, 0 if it missed and should keep flying. -/obj/item/projectile/proc/attack_mob(var/mob/living/target_mob, var/distance, var/miss_modifier=0) +/obj/projectile/proc/attack_mob(var/mob/living/target_mob, var/distance, var/miss_modifier=0) if(!istype(target_mob)) return @@ -241,9 +241,7 @@ if(M.client) no_clients = FALSE break - if(no_clients) - no_attack_log = TRUE - if(!no_attack_log) + if(!no_clients) if(ismob(firer)) var/attacker_message = "shot with \a [src.type]" @@ -261,7 +259,7 @@ return TRUE -/obj/item/projectile/Collide(atom/A) +/obj/projectile/Collide(atom/A) . = ..() if(A == src) return FALSE //no. @@ -327,7 +325,7 @@ qdel(src) return TRUE -/obj/item/projectile/proc/check_iff(var/mob/M) +/obj/projectile/proc/check_iff(var/mob/M) if(isnull(iff)) return FALSE var/obj/item/card/id/ID = M.GetIdCard() @@ -335,18 +333,18 @@ return TRUE return FALSE -/obj/item/projectile/ex_act(var/severity = 2.0) +/obj/projectile/ex_act(var/severity = 2.0) return //explosions probably shouldn't delete projectiles //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// -/obj/item/projectile/proc/old_style_target(atom/target, atom/source) +/obj/projectile/proc/old_style_target(atom/target, atom/source) if(!source) source = get_turf(src) starting = get_turf(source) original = target setAngle(get_projectile_angle(source, target)) -/obj/item/projectile/proc/fire(angle, atom/direct_target) +/obj/projectile/proc/fire(angle, atom/direct_target) //If no angle needs to resolve it from xo/yo! if(direct_target) direct_target.bullet_act(src, def_zone) @@ -385,7 +383,7 @@ START_PROCESSING(SSprojectiles, src) pixel_move(1) //move it now! -/obj/item/projectile/proc/preparePixelProjectile(atom/target, atom/source, params, angle_offset = 0) +/obj/projectile/proc/preparePixelProjectile(atom/target, atom/source, params, angle_offset = 0) var/turf/curloc = get_turf(source) var/turf/targloc = get_turf(target) forceMove(get_turf(source)) @@ -409,25 +407,25 @@ if(angle_offset) setAngle(Angle + angle_offset) -/obj/item/projectile/proc/before_move() +/obj/projectile/proc/before_move() return -/obj/item/projectile/proc/after_move() +/obj/projectile/proc/after_move() return -/obj/item/projectile/Crossed(atom/movable/AM) //A mob moving on a tile with a projectile is hit by it. +/obj/projectile/Crossed(atom/movable/AM) //A mob moving on a tile with a projectile is hit by it. ..() if(isliving(AM) && (AM.density || AM == original) && !(pass_flags & PASSMOB)) Collide(AM) -/obj/item/projectile/Initialize() +/obj/projectile/Initialize() . = ..() permutated = list() -/obj/item/projectile/damage_flags() +/obj/projectile/damage_flags() return damage_flags -/obj/item/projectile/proc/pixel_move(moves, trajectory_multiplier = 1, hitscanning = FALSE) +/obj/projectile/proc/pixel_move(moves, trajectory_multiplier = 1, hitscanning = FALSE) if(!loc || !trajectory) if(!QDELETED(src)) if(loc) @@ -477,7 +475,7 @@ Range() //Returns true if the target atom is on our current turf and above the right layer -/obj/item/projectile/proc/can_hit_target(atom/target, var/list/passthrough) +/obj/projectile/proc/can_hit_target(atom/target, var/list/passthrough) return (target && ((target.layer >= TURF_LAYER + 0.3) || ismob(target)) && (loc == get_turf(target)) && (!(target in passthrough))) /proc/calculate_projectile_angle_and_pixel_offsets(mob/user, params) @@ -514,21 +512,21 @@ angle = Atan2(y - oy, x - ox) return list(angle, p_x, p_y) -/obj/item/projectile/proc/Range() +/obj/projectile/proc/Range() range-- if(range <= 0 && loc) on_range() -/obj/item/projectile/proc/on_range() //if we want there to be effects when they reach the end of their range +/obj/projectile/proc/on_range() //if we want there to be effects when they reach the end of their range on_impact(loc) qdel(src) -/obj/item/projectile/proc/store_hitscan_collision(datum/point/pcache) +/obj/projectile/proc/store_hitscan_collision(datum/point/pcache) beam_segments[beam_index] = pcache beam_index = pcache beam_segments[beam_index] = null -/obj/item/projectile/proc/return_predicted_turf_after_moves(moves, forced_angle) //I say predicted because there's no telling that the projectile won't change direction/location in flight. +/obj/projectile/proc/return_predicted_turf_after_moves(moves, forced_angle) //I say predicted because there's no telling that the projectile won't change direction/location in flight. if(!trajectory && isnull(forced_angle) && isnull(Angle)) return FALSE var/datum/point/vector/current = trajectory @@ -538,12 +536,12 @@ var/datum/point/vector/v = current.return_vector_after_increments(moves) return v.return_turf() -/obj/item/projectile/proc/return_pathing_turfs_in_moves(moves, forced_angle) +/obj/projectile/proc/return_pathing_turfs_in_moves(moves, forced_angle) var/turf/current = get_turf(src) var/turf/ending = return_predicted_turf_after_moves(moves, forced_angle) return getline(current, ending) -/obj/item/projectile/proc/process_hitscan() +/obj/projectile/proc/process_hitscan() var/safety = range * 3 var/return_vector = RETURN_POINT_VECTOR_INCREMENT(src, Angle, MUZZLE_EFFECT_PIXEL_INCREMENT, 1) record_hitscan_start(return_vector) @@ -557,23 +555,23 @@ return //Kill! pixel_move(1, 1, TRUE) -/obj/item/projectile/proc/record_hitscan_start(datum/point/pcache) +/obj/projectile/proc/record_hitscan_start(datum/point/pcache) beam_segments = list() //initialize segment list with the list for the first segment beam_index = pcache beam_segments[beam_index] = null //record start. -/obj/item/projectile/proc/vol_by_damage() +/obj/projectile/proc/vol_by_damage() if(src.damage) return Clamp((src.damage) * 0.67, 30, 100)// Multiply projectile damage by 0.67, then CLAMP the value between 30 and 100 else return 50 //if the projectile doesn't do damage, play its hitsound at 50% volume. -/obj/item/projectile/proc/before_z_change(turf/oldloc, turf/newloc) +/obj/projectile/proc/before_z_change(turf/oldloc, turf/newloc) var/datum/point/pcache = trajectory.copy_to() if(hitscan) store_hitscan_collision(pcache) -/obj/item/projectile/process() +/obj/projectile/process() last_process = world.time if(!loc || !fired || !trajectory) fired = FALSE @@ -599,7 +597,7 @@ for(var/i = 1; i <= required_moves && !QDELETED(src); i++) pixel_move(required_moves) -/obj/item/projectile/proc/setAngle(new_angle) //wrapper for overrides. +/obj/projectile/proc/setAngle(new_angle) //wrapper for overrides. Angle = new_angle if(!nondirectional_sprite) var/matrix/M = new @@ -609,15 +607,15 @@ trajectory.set_angle(new_angle) return TRUE -/obj/item/projectile/proc/redirect(x, y, starting, source) +/obj/projectile/proc/redirect(x, y, starting, source) old_style_target(locate(x, y, z), starting? get_turf(starting) : get_turf(source)) -/obj/item/projectile/forceMove(atom/target) +/obj/projectile/forceMove(atom/target) . = ..() if(trajectory && !trajectory_ignore_forcemove && isturf(target)) trajectory.initialize_location(target.x, target.y, target.z, 0, 0) -/obj/item/projectile/Destroy() +/obj/projectile/Destroy() if(hitscan) if(loc && trajectory) var/datum/point/pcache = trajectory.copy_to() @@ -626,7 +624,7 @@ STOP_PROCESSING(SSprojectiles, src) return ..() -/obj/item/projectile/proc/generate_muzzle_flash(duration = 3) +/obj/projectile/proc/generate_muzzle_flash(duration = 3) if(duration <= 0) return if(!muzzle_type || suppressed) @@ -639,7 +637,7 @@ thing.transform = M QDEL_IN(thing, duration) -/obj/item/projectile/proc/generate_hitscan_tracers(cleanup = TRUE, duration = 3) +/obj/projectile/proc/generate_hitscan_tracers(cleanup = TRUE, duration = 3) if(!length(beam_segments)) return if(duration <= 0) @@ -669,7 +667,7 @@ beam_segments = null QDEL_NULL(beam_index) -/obj/item/projectile/get_print_info() +/obj/projectile/proc/get_print_info() . = "
" . += "Damage: [initial(damage)]
" . += "Damage Type: [initial(damage_type)]
" @@ -681,7 +679,7 @@ . += "Armor Penetration: [initial(armor_penetration)]%
" //This is where the bullet bounces off. -/atom/proc/bullet_ping(obj/item/projectile/P, var/pixel_x_offset, var/pixel_y_offset) +/atom/proc/bullet_ping(obj/projectile/P, var/pixel_x_offset, var/pixel_y_offset) if(!P || !P.ping_effect) return diff --git a/code/modules/projectiles/projectile/animate.dm b/code/modules/projectiles/projectile/animate.dm index 6ff7c98fced..a2f9f5a4d7a 100644 --- a/code/modules/projectiles/projectile/animate.dm +++ b/code/modules/projectiles/projectile/animate.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/animate +/obj/projectile/animate name = "bolt of animation" icon_state = "ice_1" damage = 0 @@ -6,7 +6,7 @@ nodamage = 1 check_armor = "energy" -/obj/item/projectile/animate/Collide(atom/change) +/obj/projectile/animate/Collide(atom/change) if((istype(change, /obj/item) || istype(change, /obj/structure)) && !is_type_in_list(change, protected_objects)) var/obj/O = change new /mob/living/simple_animal/hostile/mimic/copy(O.loc, O, firer) diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 408bf498513..a85c1cad4d1 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/beam +/obj/projectile/beam name = "laser" icon_state = "laser" ping_effect = "ping_s" @@ -18,25 +18,25 @@ tracer_type = /obj/effect/projectile/tracer/laser impact_type = /obj/effect/projectile/impact/laser -/obj/item/projectile/beam/practice +/obj/projectile/beam/practice name = "laser" damage = 5 armor_penetration = 0 damage_type = DAMAGE_PAIN eyeblur = 0 -/obj/item/projectile/beam/pistol +/obj/projectile/beam/pistol damage = 25 armor_penetration = 5 -/obj/item/projectile/beam/pistol/scc +/obj/projectile/beam/pistol/scc armor_penetration = 15 muzzle_type = /obj/effect/projectile/muzzle/laser/scc tracer_type = /obj/effect/projectile/tracer/laser/scc impact_type = /obj/effect/projectile/impact/laser/scc -/obj/item/projectile/beam/pistol/scc/weak +/obj/projectile/beam/pistol/scc/weak damage = 20 armor_penetration = 10 @@ -44,7 +44,7 @@ tracer_type = /obj/effect/projectile/tracer/laser/scc impact_type = /obj/effect/projectile/impact/laser/scc -/obj/item/projectile/beam/pistol/hegemony +/obj/projectile/beam/pistol/hegemony icon = 'icons/obj/guns/hegemony_pistol.dmi' icon_state = "hegemony_pistol" damage = 30 @@ -53,29 +53,29 @@ tracer_type = /obj/effect/projectile/tracer/hegemony impact_type = /obj/effect/projectile/impact/hegemony -/obj/item/projectile/beam/midlaser +/obj/projectile/beam/midlaser damage = 30 armor_penetration = 20 -/obj/item/projectile/beam/midlaser/skrell +/obj/projectile/beam/midlaser/skrell armor_penetration = 0 -/obj/item/projectile/beam/midlaser/skrell/heavy +/obj/projectile/beam/midlaser/skrell/heavy damage = 40 armor_penetration = 20 -/obj/item/projectile/beam/midlaser/hegemony +/obj/projectile/beam/midlaser/hegemony armor_penetration = 30 muzzle_type = /obj/effect/projectile/muzzle/hegemony tracer_type = /obj/effect/projectile/tracer/hegemony impact_type = /obj/effect/projectile/impact/hegemony -/obj/item/projectile/beam/noctiluca +/obj/projectile/beam/noctiluca damage = 20 armor_penetration = 40 -/obj/item/projectile/beam/noctiluca/armor_piercing +/obj/projectile/beam/noctiluca/armor_piercing name = "concentrated laser" damage = 20 armor_penetration = 50 @@ -84,11 +84,11 @@ tracer_type = /obj/effect/projectile/tracer/laser/scc impact_type = /obj/effect/projectile/impact/laser/scc -/obj/item/projectile/beam/midlaser/ice +/obj/projectile/beam/midlaser/ice damage = 25 armor_penetration = 10 -/obj/item/projectile/beam/heavylaser +/obj/projectile/beam/heavylaser name = "heavy laser" icon_state = "heavylaser" damage = 45 @@ -98,11 +98,11 @@ tracer_type = /obj/effect/projectile/tracer/heavy_laser impact_type = /obj/effect/projectile/impact/heavy_laser -/obj/item/projectile/beam/heavylaser/mech +/obj/projectile/beam/heavylaser/mech damage = 35 armor_penetration = 35 -/obj/item/projectile/beam/xray +/obj/projectile/beam/xray name = "xray beam" icon_state = "xray" damage = 15 @@ -112,11 +112,11 @@ tracer_type = /obj/effect/projectile/tracer/xray impact_type = /obj/effect/projectile/impact/xray -/obj/item/projectile/beam/xray/mech +/obj/projectile/beam/xray/mech damage = 40 armor_penetration = 75 -/obj/item/projectile/beam/pulse +/obj/projectile/beam/pulse name = "pulse" icon_state = "u_laser" damage = 50 @@ -126,27 +126,27 @@ tracer_type = /obj/effect/projectile/tracer/pulse impact_type = /obj/effect/projectile/impact/pulse -/obj/item/projectile/beam/pulse/mech +/obj/projectile/beam/pulse/mech damage = 45 armor_penetration = 40 -/obj/item/projectile/beam/pulse/on_hit(var/atom/target, var/blocked = 0) +/obj/projectile/beam/pulse/on_hit(var/atom/target, var/blocked = 0) if(isturf(target)) target.ex_act(2) ..() -/obj/item/projectile/beam/pulse/heavy +/obj/projectile/beam/pulse/heavy name = "heavy pulse laser" icon_state = "pulse1_bl" var/life = 20 -/obj/item/projectile/beam/pulse/heavy/Collide(atom/A) +/obj/projectile/beam/pulse/heavy/Collide(atom/A) A.bullet_act(src, def_zone) src.life -= 10 if(life <= 0) qdel(src) -/obj/item/projectile/beam/emitter +/obj/projectile/beam/emitter name = "emitter beam" icon_state = "emitter" damage = 0 // The actual damage is computed in /code/modules/power/singularity/emitter.dm @@ -155,12 +155,11 @@ tracer_type = /obj/effect/projectile/tracer/emitter impact_type = /obj/effect/projectile/impact/emitter -/obj/item/projectile/beam/laser_tag +/obj/projectile/beam/laser_tag name = "lasertag beam" icon_state = "laser" pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE | PASSRAILING damage = 0 - no_attack_log = 1 damage_type = DAMAGE_BURN check_armor = "laser" var/laser_tag_color = "red" @@ -169,7 +168,7 @@ tracer_type = /obj/effect/projectile/tracer/laser impact_type = /obj/effect/projectile/impact/laser -/obj/item/projectile/beam/laser_tag/on_hit(var/atom/target, var/blocked = 0) +/obj/projectile/beam/laser_tag/on_hit(var/atom/target, var/blocked = 0) if(ishuman(target)) var/mob/living/carbon/human/H = target var/obj/item/clothing/suit/armor/riot/laser_tag/LT = H.wear_suit @@ -177,7 +176,7 @@ LT.laser_hit() return TRUE -/obj/item/projectile/beam/laser_tag/blue +/obj/projectile/beam/laser_tag/blue name = "lasertag beam" icon_state = "bluelaser" laser_tag_color = "blue" @@ -186,7 +185,7 @@ tracer_type = /obj/effect/projectile/tracer/laser/blue impact_type = /obj/effect/projectile/impact/laser/blue -/obj/item/projectile/beam/laser_tag/omni//A laser tag bolt that stuns EVERYONE +/obj/projectile/beam/laser_tag/omni//A laser tag bolt that stuns EVERYONE name = "lasertag beam" icon_state = "omnilaser" laser_tag_color = "omni" @@ -196,7 +195,7 @@ impact_type = /obj/effect/projectile/impact/disabler -/obj/item/projectile/beam/sniper +/obj/projectile/beam/sniper name = "sniper beam" icon_state = "xray" damage = 50 @@ -209,7 +208,7 @@ tracer_type = /obj/effect/projectile/tracer/xray impact_type = /obj/effect/projectile/impact/xray -/obj/item/projectile/beam/stun +/obj/projectile/beam/stun name = "stun beam" icon_state = "stun" damage = 1 @@ -222,7 +221,7 @@ tracer_type = /obj/effect/projectile/tracer/stun impact_type = /obj/effect/projectile/impact/stun -/obj/item/projectile/beam/disorient +/obj/projectile/beam/disorient name = "disorienting pulse" icon_state = "stun" damage = 1 @@ -235,7 +234,7 @@ tracer_type = /obj/effect/projectile/tracer/disabler impact_type = /obj/effect/projectile/impact/disabler -/obj/item/projectile/beam/disorient/on_hit(var/atom/target, var/blocked = 0) +/obj/projectile/beam/disorient/on_hit(var/atom/target, var/blocked = 0) if(ishuman(target) && blocked < 100 && !issilicon(target) && !isipc(target)) //Make them trip var/mob/living/carbon/human/H = target H.druggy = min(H.druggy + 15, 75) @@ -249,18 +248,17 @@ H.slurring = min(H.slurring + 15, 75) . = ..() -/obj/item/projectile/beam/gatlinglaser +/obj/projectile/beam/gatlinglaser name = "diffused laser" icon_state = "heavylaser" damage = 20 armor_penetration = 35 - no_attack_log = 1 muzzle_type = /obj/effect/projectile/muzzle/disabler tracer_type = /obj/effect/projectile/tracer/disabler impact_type = /obj/effect/projectile/impact/disabler -/obj/item/projectile/beam/mousegun +/obj/projectile/beam/mousegun name = "electrical arc" icon_state = "stun" damage = 1 @@ -270,11 +268,11 @@ tracer_type = /obj/effect/projectile/tracer/stun impact_type = /obj/effect/projectile/impact/stun -/obj/item/projectile/beam/mousegun/on_impact(var/atom/A) +/obj/projectile/beam/mousegun/on_impact(var/atom/A) mousepulse(A, 1) ..() -/obj/item/projectile/beam/mousegun/proc/mousepulse(turf/epicenter, range, log=0) +/obj/projectile/beam/mousegun/proc/mousepulse(turf/epicenter, range, log=0) if(!epicenter) return @@ -309,7 +307,7 @@ to_chat(M, 'sound/effects/basscannon.ogg') return TRUE -/obj/item/projectile/beam/mousegun/emag +/obj/projectile/beam/mousegun/emag name = "diffuse electrical arc" nodamage = FALSE @@ -317,7 +315,7 @@ damage = 15 agony = 30 -/obj/item/projectile/beam/mousegun/emag/mousepulse(turf/epicenter, range, log=0) +/obj/projectile/beam/mousegun/emag/mousepulse(turf/epicenter, range, log=0) if(!epicenter) return @@ -350,36 +348,35 @@ to_chat(M, 'sound/effects/basscannon.ogg') return TRUE -/obj/item/projectile/beam/mousegun/xenofauna +/obj/projectile/beam/mousegun/xenofauna nodamage = FALSE damage = 10 -/obj/item/projectile/beam/mousegun/xenofauna/mousepulse(atom/target, range, log) +/obj/projectile/beam/mousegun/xenofauna/mousepulse(atom/target, range, log) if(is_type_in_list(target, list(/mob/living/simple_animal/hostile/retaliate/cavern_dweller, /mob/living/simple_animal/hostile/carp, /mob/living/simple_animal/carp, /mob/living/simple_animal/hostile/giant_spider))) var/mob/living/simple_animal/SA = target SA.take_organ_damage(0, 20) return TRUE -/obj/item/projectile/beam/shotgun +/obj/projectile/beam/shotgun name = "diffuse laser" icon_state = "laser" pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE | PASSRAILING damage = 20 eyeblur = 4 -/obj/item/projectile/beam/megaglaive +/obj/projectile/beam/megaglaive name = "thermal lance" icon_state = "gauss" damage = 10 incinerate = 5 armor_penetration = 10 - no_attack_log = 1 muzzle_type = /obj/effect/projectile/muzzle/solar tracer_type = /obj/effect/projectile/tracer/solar impact_type = /obj/effect/projectile/impact/solar -/obj/item/projectile/beam/megaglaive/on_impact(var/atom/A) +/obj/projectile/beam/megaglaive/on_impact(var/atom/A) if(isturf(A)) if(istype(A, /turf/simulated/mineral)) if(prob(75)) //likely because its a mining tool @@ -396,17 +393,16 @@ explosion(A, -1, 0, 2) ..() -/obj/item/projectile/beam/thermaldrill +/obj/projectile/beam/thermaldrill name = "thermal drill" icon_state = "gauss" damage = 15 - no_attack_log = TRUE muzzle_type = /obj/effect/projectile/muzzle/solar tracer_type = /obj/effect/projectile/tracer/solar impact_type = /obj/effect/projectile/impact/solar -/obj/item/projectile/beam/thermaldrill/on_impact(var/atom/hit_atom) +/obj/projectile/beam/thermaldrill/on_impact(var/atom/hit_atom) if(istype(hit_atom, /turf/simulated/mineral)) var/turf/simulated/mineral/mineral = hit_atom mineral.GetDrilled(TRUE) @@ -417,7 +413,7 @@ //Beams of magical veil energy fired by empowered pylons. Some inbuilt armor penetration cuz magic. //Ablative armor is still overwhelmingly useful //These beams are very weak but rapid firing, ~twice per second. -/obj/item/projectile/beam/cult +/obj/projectile/beam/cult name = "energy bolt" //For projectiles name is only shown in onhit messages, so its more of a layman's description //of what the projectile looks like @@ -430,7 +426,7 @@ tracer_type = /obj/effect/projectile/tracer/cult impact_type = /obj/effect/projectile/impact/cult -/obj/item/projectile/beam/cult/attack_mob(var/mob/living/target_mob, var/distance, var/miss_modifier=0) +/obj/projectile/beam/cult/attack_mob(var/mob/living/target_mob, var/distance, var/miss_modifier=0) //Harmlessly passes through cultists and constructs if (target_mob == ignore) return 0 @@ -439,7 +435,7 @@ return ..() -/obj/item/projectile/beam/cult/heavy +/obj/projectile/beam/cult/heavy name = "glowing energy bolt" damage = 10 //Stronger and better armor penetration, though still much weaker than a typical laser armor_penetration = 10 @@ -448,7 +444,7 @@ tracer_type = /obj/effect/projectile/tracer/cult/heavy impact_type = /obj/effect/projectile/impact/cult/heavy -/obj/item/projectile/beam/energy_net +/obj/projectile/beam/energy_net name = "energy net projection" icon_state = "xray" nodamage = 1 @@ -458,15 +454,15 @@ tracer_type = /obj/effect/projectile/tracer/xray impact_type = /obj/effect/projectile/impact/xray -/obj/item/projectile/beam/energy_net/on_hit(var/atom/netted) +/obj/projectile/beam/energy_net/on_hit(var/atom/netted) do_net(netted) ..() -/obj/item/projectile/beam/energy_net/proc/do_net(var/mob/M) +/obj/projectile/beam/energy_net/proc/do_net(var/mob/M) var/obj/item/energy_net/net = new (get_turf(M)) net.throw_impact(M) -/obj/item/projectile/beam/tachyon +/obj/projectile/beam/tachyon name = "particle beam" icon_state = "xray" damage = 25 @@ -481,7 +477,7 @@ tracer_type = /obj/effect/projectile/tracer/tachyon impact_type = /obj/effect/projectile/impact/tachyon -/obj/item/projectile/beam/tesla +/obj/projectile/beam/tesla name = "tesla bolt" icon_state = "lightning" damage = 10 @@ -494,12 +490,12 @@ tracer_type = /obj/effect/projectile/tracer/tesla impact_type = /obj/effect/projectile/impact/tesla -/obj/item/projectile/beam/tesla/on_impact(atom/target) +/obj/projectile/beam/tesla/on_impact(atom/target) . = ..() if(isliving(target)) tesla_zap(target, 5, 5000) -/obj/item/projectile/beam/freezer +/obj/projectile/beam/freezer name = "freezing ray" icon_state = "bluelaser" pass_flags = PASSTABLE | PASSRAILING @@ -511,7 +507,7 @@ tracer_type = /obj/effect/projectile/tracer/laser/blue impact_type = /obj/effect/projectile/impact/laser/blue -/obj/item/projectile/beam/freezer/on_impact(atom/target) +/obj/projectile/beam/freezer/on_impact(atom/target) . = ..() if(isliving(target)) var/mob/living/L = target @@ -523,7 +519,7 @@ new /obj/structure/closet/statue/ice(H.loc, H) H.visible_message(SPAN_WARNING("\The [H] freezes!")) -/obj/item/projectile/beam/stun/skrell +/obj/projectile/beam/stun/skrell name = "particle stun beam" icon_state = "beam_omni" agony = 50 @@ -532,5 +528,5 @@ tracer_type = /obj/effect/projectile/tracer/disabler impact_type = /obj/effect/projectile/impact/disabler -/obj/item/projectile/beam/pulse/skrell +/obj/projectile/beam/pulse/skrell name = "particle lethal beam" diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index ba0c0b85311..c636ca968c4 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/bullet +/obj/projectile/bullet name = "bullet" icon_state = "bullet" damage = 60 @@ -13,25 +13,25 @@ muzzle_type = /obj/effect/projectile/muzzle/bullet -/obj/item/projectile/bullet/on_hit(var/atom/target, var/blocked = 0, var/def_zone = null) +/obj/projectile/bullet/on_hit(var/atom/target, var/blocked = 0, var/def_zone = null) if (..(target, blocked, def_zone)) var/mob/living/L = target shake_camera(L, 3, 2) -/obj/item/projectile/bullet/attack_mob(var/mob/living/target_mob, var/distance, var/miss_modifier) +/obj/projectile/bullet/attack_mob(var/mob/living/target_mob, var/distance, var/miss_modifier) if(penetrating > 0 && damage > 20 && prob(damage)) mob_passthrough_check = 1 else mob_passthrough_check = 0 return ..() -/obj/item/projectile/bullet/can_embed() +/obj/projectile/bullet/can_embed() //prevent embedding if the projectile is passing through the mob if(mob_passthrough_check) return 0 return ..() -/obj/item/projectile/bullet/check_penetrate(var/atom/A) +/obj/projectile/bullet/check_penetrate(var/atom/A) if(!A || !A.density) return 1 //if whatever it was got destroyed when we hit it, then I guess we can just keep going if(ismob(A)) @@ -67,7 +67,7 @@ * * For projectiles that actually represent clouds of projectiles */ -/obj/item/projectile/bullet/pellet +/obj/projectile/bullet/pellet name = "shrapnel" //'shrapnel' sounds more dangerous (i.e. cooler) than 'pellet' icon_state = "pellets" damage = 20 @@ -84,11 +84,11 @@ ///Higher means the pellets spread more across body parts with distance var/spread_step = 10 -/obj/item/projectile/bullet/pellet/proc/get_pellets(var/distance) +/obj/projectile/bullet/pellet/proc/get_pellets(var/distance) var/pellet_loss = round((distance - 1)/range_step) //pellets lost due to distance return max(pellets - pellet_loss, 1) -/obj/item/projectile/bullet/pellet/attack_mob(var/mob/living/target_mob, var/distance, var/miss_modifier) +/obj/projectile/bullet/pellet/attack_mob(var/mob/living/target_mob, var/distance, var/miss_modifier) if (pellets < 0) return TRUE @@ -127,11 +127,11 @@ return TRUE return FALSE -/obj/item/projectile/bullet/pellet/get_structure_damage() +/obj/projectile/bullet/pellet/get_structure_damage() var/distance = get_dist(loc, starting) return ..() * get_pellets(distance) -/obj/item/projectile/bullet/pellet/Move() +/obj/projectile/bullet/pellet/Move() . = ..() //If this is a shrapnel explosion, allow mobs that are prone to get hit, too @@ -141,7 +141,7 @@ if(Collide(M)) //Bump will make sure we don't hit a mob multiple times return -/obj/item/projectile/bullet/rubberball +/obj/projectile/bullet/rubberball name = "rubber ball" icon_state = "pellets" damage = 2 @@ -153,11 +153,11 @@ var/base_spread = 90 var/spread_step = 10 -/obj/item/projectile/bullet/rubberball/proc/get_balls(var/distance) +/obj/projectile/bullet/rubberball/proc/get_balls(var/distance) var/ball_loss = round((distance - 1)/range_step) return max(balls - ball_loss, 1) -/obj/item/projectile/bullet/rubberball/attack_mob(var/mob/living/target_mob, var/distance, var/miss_modifier) +/obj/projectile/bullet/rubberball/attack_mob(var/mob/living/target_mob, var/distance, var/miss_modifier) if (balls < 0) return TRUE @@ -184,7 +184,7 @@ return TRUE return FALSE -/obj/item/projectile/bullet/rubberball/Move() +/obj/projectile/bullet/rubberball/Move() . = ..() if(. && !base_spread && isturf(loc)) @@ -195,45 +195,45 @@ /* short-casing projectiles, like the kind used in pistols or SMGs */ -/obj/item/projectile/bullet/pistol +/obj/projectile/bullet/pistol damage = 20 armor_penetration = 15 -/obj/item/projectile/bullet/pistol/medium +/obj/projectile/bullet/pistol/medium damage = 30 armor_penetration = 0 -/obj/item/projectile/bullet/pistol/medium/ap +/obj/projectile/bullet/pistol/medium/ap armor_penetration = 15 penetrating = FALSE -/obj/item/projectile/bullet/pistol/strong +/obj/projectile/bullet/pistol/strong damage = 45 armor_penetration = 20 -/obj/item/projectile/bullet/pistol/revolver +/obj/projectile/bullet/pistol/revolver damage = 40 armor_penetration = 15 -/obj/item/projectile/bullet/pistol/rubber //"rubber" bullets +/obj/projectile/bullet/pistol/rubber //"rubber" bullets name = "rubber bullet" check_armor = "melee" damage = 5 agony = 40 embed = 0 -/obj/item/projectile/bullet/pistol/assassin +/obj/projectile/bullet/pistol/assassin damage = 20 armor_penetration = 5 /* shotgun projectiles */ -/obj/item/projectile/bullet/shotgun +/obj/projectile/bullet/shotgun name = "slug" damage = 55 armor_penetration = 5 -/obj/item/projectile/bullet/shotgun/beanbag //because beanbags are not bullets +/obj/projectile/bullet/shotgun/beanbag //because beanbags are not bullets name = "beanbag" check_armor = "melee" damage = 10 @@ -241,7 +241,7 @@ embed = 0 sharp = 0 -/obj/item/projectile/bullet/shotgun/incendiary +/obj/projectile/bullet/shotgun/incendiary name = "incendiary" check_armor = "melee" damage = 5 @@ -250,14 +250,14 @@ sharp = 0 incinerate = 10 -/obj/item/projectile/bullet/tracking +/obj/projectile/bullet/tracking name = "tracking shot" damage = 20 embed_chance = 60 // this thing was designed to embed, so it has a 80% base chance to embed (damage + this flat increase) agony = 20 shrapnel_type = /obj/item/implant/tracking -/obj/item/projectile/bullet/tracking/do_embed(obj/item/organ/external/organ) +/obj/projectile/bullet/tracking/do_embed(obj/item/organ/external/organ) . = ..() if(.) var/obj/item/implant/tracking/T = . @@ -266,57 +266,57 @@ T.part = organ LAZYADD(organ.implants, T) -/obj/item/projectile/bullet/shotgun/moghes +/obj/projectile/bullet/shotgun/moghes name = "wall shot" - secondary_projectile = /obj/item/projectile/bullet/pellet/shotgun/canister + secondary_projectile = /obj/projectile/bullet/pellet/shotgun/canister //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 -/obj/item/projectile/bullet/pellet/shotgun +/obj/projectile/bullet/pellet/shotgun name = "pellet" damage = 25 pellets = 3 range_step = 1 spread_step = 10 -/obj/item/projectile/bullet/pellet/shotgun/canister +/obj/projectile/bullet/pellet/shotgun/canister pellets = 15 range_step = 3 spread_step = 15 /* "Rifle" rounds */ -/obj/item/projectile/bullet/rifle +/obj/projectile/bullet/rifle damage = 40 armor_penetration = 15 penetrating = FALSE -/obj/item/projectile/bullet/rifle/a762 +/obj/projectile/bullet/rifle/a762 damage = 35 armor_penetration = 22 penetrating = TRUE -/obj/item/projectile/bullet/rifle/a556 +/obj/projectile/bullet/rifle/a556 damage = 30 armor_penetration = 28 penetrating = FALSE -/obj/item/projectile/bullet/rifle/a556/ap +/obj/projectile/bullet/rifle/a556/ap damage = 25 armor_penetration = 45 penetrating = TRUE -/obj/item/projectile/bullet/rifle/a556/polymer +/obj/projectile/bullet/rifle/a556/polymer damage = 25 armor_penetration = 34 penetrating = FALSE -/obj/item/projectile/bullet/rifle/a65 +/obj/projectile/bullet/rifle/a65 damage = 30 armor_penetration = 30 penetrating = FALSE -/obj/item/projectile/bullet/rifle/a145 +/obj/projectile/bullet/rifle/a145 damage = 80 stun = 3 weaken = 3 @@ -328,22 +328,22 @@ maim_type = DROPLIMB_BLUNT anti_materiel_potential = 2 -/obj/item/projectile/rifle/kumar_super +/obj/projectile/rifle/kumar_super damage = 40 armor_penetration = 30 penetrating = TRUE -/obj/item/projectile/bullet/rifle/vintage +/obj/projectile/bullet/rifle/vintage name = ".30-06 Govt. bullet" damage = 50 weaken = 1 penetrating = TRUE -/obj/item/projectile/bullet/rifle/govt +/obj/projectile/bullet/rifle/govt name = ".40-70 Govt. bullet" damage = 50 -/obj/item/projectile/bullet/rifle/slugger +/obj/projectile/bullet/rifle/slugger name = "slugger round" damage = 60 weaken = 3 @@ -354,7 +354,7 @@ maim_type = DROPLIMB_BLUNT anti_materiel_potential = 2 -/obj/item/projectile/bullet/rifle/slugger/on_hit(var/atom/movable/target, var/blocked = 0) +/obj/projectile/bullet/rifle/slugger/on_hit(var/atom/movable/target, var/blocked = 0) if(!istype(target)) return FALSE var/throwdir = get_dir(firer, target) @@ -362,7 +362,7 @@ ..() return TRUE -/obj/item/projectile/bullet/rifle/tranq +/obj/projectile/bullet/rifle/tranq name = "dart" icon_state = "dart" damage = 5 @@ -373,7 +373,7 @@ damage_type = DAMAGE_BRUTE speed = 0.3 -/obj/item/projectile/bullet/rifle/tranq/on_hit(var/atom/target, var/blocked = 0, var/def_zone = null) +/obj/projectile/bullet/rifle/tranq/on_hit(var/atom/target, var/blocked = 0, var/def_zone = null) var/mob/living/L = target if(!(isanimal(target))) if(!(isipc(target))) @@ -398,28 +398,28 @@ ..() /* Miscellaneous */ -/obj/item/projectile/bullet/blank +/obj/projectile/bullet/blank invisibility = 101 damage = 1 embed = 0 -/obj/item/projectile/bullet/chameleon +/obj/projectile/bullet/chameleon damage = 1 // stop trying to murderbone with a fake gun dumbass!!! embed = 0 // nope /* Practice */ -/obj/item/projectile/bullet/pistol/practice +/obj/projectile/bullet/pistol/practice damage = 5 -/obj/item/projectile/bullet/rifle/a556/practice +/obj/projectile/bullet/rifle/a556/practice damage = 5 -/obj/item/projectile/bullet/shotgun/practice +/obj/projectile/bullet/shotgun/practice name = "practice" damage = 5 -/obj/item/projectile/bullet/pistol/cap +/obj/projectile/bullet/pistol/cap name = "cap" damage_type = DAMAGE_PAIN damage = 0 @@ -427,11 +427,11 @@ embed = 0 sharp = 0 -/obj/item/projectile/bullet/pistol/cap/process() +/obj/projectile/bullet/pistol/cap/process() loc = null qdel(src) -/obj/item/projectile/bullet/flechette +/obj/projectile/bullet/flechette name = "flechette" icon = 'icons/obj/terminator.dmi' icon_state = "flechette_bullet" @@ -445,13 +445,13 @@ muzzle_type = /obj/effect/projectile/muzzle/pulse -/obj/item/projectile/bullet/flechette/explosive +/obj/projectile/bullet/flechette/explosive shrapnel_type = /obj/item/material/shard/shrapnel/flechette penetrating = 0 damage = 10 armor_penetration = 60 -/obj/item/projectile/bullet/gauss +/obj/projectile/bullet/gauss name = "slug" icon_state = "heavygauss" damage = 40 @@ -459,20 +459,20 @@ muzzle_type = /obj/effect/projectile/muzzle/gauss embed = 0 -/obj/item/projectile/bullet/gauss/carbine +/obj/projectile/bullet/gauss/carbine name = "compact slug" damage = 20 -/obj/item/projectile/bullet/gauss/highex +/obj/projectile/bullet/gauss/highex name = "high-ex shell" damage = 10 armor_penetration = 30 -/obj/item/projectile/bullet/gauss/highex/on_impact(var/atom/A) +/obj/projectile/bullet/gauss/highex/on_impact(var/atom/A) explosion(A, -1, 0, 2) ..() -/obj/item/projectile/bullet/gauss/highex/on_hit(var/atom/target, var/blocked = 0) +/obj/projectile/bullet/gauss/highex/on_hit(var/atom/target, var/blocked = 0) explosion(target, -1, 0, 2) if(ismovable(target)) var/atom/movable/T = target @@ -480,7 +480,7 @@ INVOKE_ASYNC(T, TYPE_PROC_REF(/atom/movable, throw_at), get_edge_target_turf(target, throwdir), 3, 3) return TRUE -/obj/item/projectile/bullet/cannonball +/obj/projectile/bullet/cannonball name = "cannonball" icon_state = "cannonball" damage = 60 @@ -489,22 +489,22 @@ armor_penetration = 25 anti_materiel_potential = 2 -/obj/item/projectile/bullet/cannonball/explosive +/obj/projectile/bullet/cannonball/explosive damage = 50 penetrating = 0 armor_penetration = 5 -/obj/item/projectile/bullet/cannonball/explosive/on_impact(var/atom/A) +/obj/projectile/bullet/cannonball/explosive/on_impact(var/atom/A) explosion(A, -1, 1, 2) ..() -/obj/item/projectile/bullet/nuke +/obj/projectile/bullet/nuke name = "miniaturized nuclear warhead" icon_state = "nuke" damage = 25 anti_materiel_potential = 2 -/obj/item/projectile/bullet/nuke/on_impact(var/atom/A) +/obj/projectile/bullet/nuke/on_impact(var/atom/A) for(var/mob/living/carbon/human/mob in GLOB.human_mob_list) var/turf/T = get_turf(mob) if(T && (loc.z == T.z)) @@ -514,17 +514,17 @@ explosion(A,2,5,9) ..() -/obj/item/projectile/bullet/shard +/obj/projectile/bullet/shard name = "shard" icon_state = "shard" damage = 15 muzzle_type = /obj/effect/projectile/muzzle/bolt -/obj/item/projectile/bullet/shard/heavy +/obj/projectile/bullet/shard/heavy damage = 30 armor_penetration = 15 -/obj/item/projectile/bullet/recoilless_rifle +/obj/projectile/bullet/recoilless_rifle name = "anti-tank warhead" icon_state = "missile" damage = 30 @@ -534,11 +534,11 @@ penetrating = FALSE var/heavy_impact_range = 1 -/obj/item/projectile/bullet/recoilless_rifle/on_impact(var/atom/A) +/obj/projectile/bullet/recoilless_rifle/on_impact(var/atom/A) explosion(A, -1, heavy_impact_range, 2) ..() -/obj/item/projectile/bullet/peac +/obj/projectile/bullet/peac name = "anti-tank missile" icon_state = "peac" damage = 25 @@ -551,15 +551,15 @@ var/heavy_impact_range = -1 var/light_impact_range = 2 -/obj/item/projectile/bullet/peac/check_penetrate(atom/hit_atom) +/obj/projectile/bullet/peac/check_penetrate(atom/hit_atom) if(hit_atom == original) return FALSE return ..() -/obj/item/projectile/bullet/peac/on_impact(var/atom/hit_atom) +/obj/projectile/bullet/peac/on_impact(var/atom/hit_atom) explosion(hit_atom, devastation_range, heavy_impact_range, light_impact_range) -/obj/item/projectile/bullet/peac/he +/obj/projectile/bullet/peac/he name = "high-explosive missile" armor_penetration = 0 anti_materiel_potential = 3 @@ -568,22 +568,22 @@ heavy_impact_range = 2 light_impact_range = 4 -/obj/item/projectile/bullet/peac/shrapnel +/obj/projectile/bullet/peac/shrapnel name = "fragmentation missile" armor_penetration = 0 anti_materiel_potential = 2 light_impact_range = 1 -/obj/item/projectile/bullet/peac/shrapnel/preparePixelProjectile() +/obj/projectile/bullet/peac/shrapnel/preparePixelProjectile() . = ..() range = get_dist(firer, original) -/obj/item/projectile/bullet/peac/shrapnel/on_impact(var/atom/hit_atom) +/obj/projectile/bullet/peac/shrapnel/on_impact(var/atom/hit_atom) ..() spawn_shrapnel(starting ? get_dir(starting, original) : dir) -/obj/item/projectile/bullet/peac/shrapnel/proc/spawn_shrapnel(var/shrapnel_dir) +/obj/projectile/bullet/peac/shrapnel/proc/spawn_shrapnel(var/shrapnel_dir) set waitfor = FALSE var/turf/O = get_turf(src) @@ -593,7 +593,7 @@ target_turfs += get_step(O, turn(shrapnel_dir, 45)) for(var/turf/T in target_turfs) - var/obj/item/projectile/bullet/pellet/fragment/P = new(O) + var/obj/projectile/bullet/pellet/fragment/P = new(O) P.damage = 30 P.pellets = 4 P.range_step = 3 diff --git a/code/modules/projectiles/projectile/change.dm b/code/modules/projectiles/projectile/change.dm index c18c057ecb2..c95f3da25b6 100644 --- a/code/modules/projectiles/projectile/change.dm +++ b/code/modules/projectiles/projectile/change.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/change +/obj/projectile/change name = "bolt of change" icon_state = "ice_1" damage = 0 @@ -6,10 +6,10 @@ nodamage = 1 check_armor = "energy" -/obj/item/projectile/change/on_hit(var/atom/change) +/obj/projectile/change/on_hit(var/atom/change) wabbajack(change) -/obj/item/projectile/change/proc/wabbajack(var/mob/M) +/obj/projectile/change/proc/wabbajack(var/mob/M) if(istype(M, /mob/living) && M.stat != DEAD) if(M.transforming) return diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index 17fd1aa6528..84c45d39af4 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/energy +/obj/projectile/energy name = "energy" icon_state = "spark" damage = 0 @@ -6,7 +6,7 @@ check_armor = "energy" //releases a burst of light on impact or after travelling a distance -/obj/item/projectile/energy/flash +/obj/projectile/energy/flash name = "chemical shell" icon_state = "bullet" damage = 5 @@ -16,7 +16,7 @@ var/brightness = 7 var/light_duration = 5 -/obj/item/projectile/energy/flash/on_impact(var/atom/A, affected_limb) +/obj/projectile/energy/flash/on_impact(var/atom/A, affected_limb) var/turf/T = flash_range ? src.loc : get_turf(A) if(!istype(T)) return @@ -37,13 +37,13 @@ new /obj/effect/effect/smoke/illumination(T, brightness=max(flash_range*2, brightness), lifetime=light_duration) //blinds people like the flash round, but can also be used for temporary illumination -/obj/item/projectile/energy/flash/flare +/obj/projectile/energy/flash/flare damage = 10 flash_range = 1 brightness = 9 //similar to a flare light_duration = 200 -/obj/item/projectile/energy/electrode +/obj/projectile/energy/electrode name = "electrode" icon_state = "spark" damage = 2 //Flavor. @@ -52,26 +52,26 @@ eyeblur = 1 //Damage will be handled on the MOB side, to prevent window shattering. -/obj/item/projectile/energy/electrode/stunshot +/obj/projectile/energy/electrode/stunshot name = "stunshot" damage = 5 agony = 80 -/obj/item/projectile/energy/declone +/obj/projectile/energy/declone name = "decloner beam" icon_state = "declone" damage = 20 damage_type = DAMAGE_CLONE irradiate = 40 -/obj/item/projectile/energy/dart +/obj/projectile/energy/dart name = "dart" icon_state = "toxin" damage = 5 damage_type = DAMAGE_TOXIN weaken = 5 -/obj/item/projectile/energy/bolt +/obj/projectile/energy/bolt name = "bolt" icon_state = "cbbolt" damage = 1 @@ -79,25 +79,25 @@ agony = 45 stutter = 10 -/obj/item/projectile/energy/bolt/large +/obj/projectile/energy/bolt/large name = "largebolt" damage = 2 damage_type = DAMAGE_BURN agony = 60 -/obj/item/projectile/energy/neurotoxin +/obj/projectile/energy/neurotoxin name = "neuro" icon_state = "neurotoxin" damage = 5 damage_type = DAMAGE_TOXIN weaken = 5 -/obj/item/projectile/energy/phoron +/obj/projectile/energy/phoron name = "phoron bolt" icon_state = "energy" irradiate = 20 -/obj/item/projectile/energy/bfg +/obj/projectile/energy/bfg name = "distortion" icon = 'icons/obj/projectiles.dmi' icon_state = "bfg" @@ -111,20 +111,20 @@ light_range = 4 light_color = "#b5ff5b" -/obj/item/projectile/energy/bfg/on_impact(var/atom/A) +/obj/projectile/energy/bfg/on_impact(var/atom/A) if(ismob(A)) var/mob/M = A M.gib() explosion(A, -1, 0, 5) ..() -/obj/item/projectile/energy/bfg/New() +/obj/projectile/energy/bfg/New() var/matrix/M = matrix() M.Scale(2) src.transform = M ..() -/obj/item/projectile/energy/bfg/after_move() +/obj/projectile/energy/bfg/after_move() for(var/a in range(1, src)) if(isliving(a) && a != firer) var/mob/living/M = a @@ -140,7 +140,7 @@ A.ex_act(2) playsound(src, 'sound/magic/LightningShock.ogg', 75, 1) -/obj/item/projectile/energy/gravitydisabler +/obj/projectile/energy/gravitydisabler name = "gravity disabler" icon = 'icons/obj/projectiles.dmi' icon_state = "bluespace" @@ -153,7 +153,7 @@ light_range = 4 light_color = "#b5ff5b" -/obj/item/projectile/energy/gravitydisabler/on_impact(atom/target) +/obj/projectile/energy/gravitydisabler/on_impact(atom/target) . = ..() var/area/A = get_area(target) if(A && A.has_gravity()) @@ -164,10 +164,10 @@ var/obj/machinery/gravity_generator/main/T = target T.eshutoff() -/obj/item/projectile/energy/gravitydisabler/proc/turnongravity(var/area/A) +/obj/projectile/energy/gravitydisabler/proc/turnongravity(var/area/A) A.gravitychange(TRUE) -/obj/item/projectile/energy/blaster +/obj/projectile/energy/blaster name = "blaster bolt" icon_state = "laser" damage = 30 @@ -178,21 +178,21 @@ muzzle_type = /obj/effect/projectile/muzzle/bolt hit_effect = /obj/effect/temp_visual/blaster_effect -/obj/item/projectile/energy/blaster/disruptor +/obj/projectile/energy/blaster/disruptor damage = 20 pass_flags = PASSTABLE | PASSRAILING -/obj/item/projectile/energy/blaster/disruptor/practice +/obj/projectile/energy/blaster/disruptor/practice damage = 5 damage_type = DAMAGE_PAIN eyeblur = 0 -/obj/item/projectile/energy/blaster/skrell // for nralakk fed consular pistol +/obj/projectile/energy/blaster/skrell // for nralakk fed consular pistol damage = 30 armor_penetration = 5 pass_flags = PASSTABLE | PASSRAILING -/obj/item/projectile/energy/disruptorstun +/obj/projectile/energy/disruptorstun name = "disruptor bolt" icon_state = "bluelaser" damage = 1 @@ -203,20 +203,20 @@ pass_flags = PASSTABLE | PASSRAILING muzzle_type = /obj/effect/projectile/muzzle/bolt -/obj/item/projectile/energy/disruptorstun/practice +/obj/projectile/energy/disruptorstun/practice damage = 5 damage_type = DAMAGE_PAIN eyeblur = 0 -/obj/item/projectile/energy/blaster/heavy +/obj/projectile/energy/blaster/heavy damage = 35 armor_penetration = 10 -/obj/item/projectile/energy/blaster/incendiary +/obj/projectile/energy/blaster/incendiary icon_state = "laser" damage = 35 armor_penetration = 60 incinerate = 15 -/obj/item/projectile/energy/disruptorstun/skrell // for nralakk fed consular pistol +/obj/projectile/energy/disruptorstun/skrell // for nralakk fed consular pistol agony = 45 diff --git a/code/modules/projectiles/projectile/force.dm b/code/modules/projectiles/projectile/force.dm index 7d671f71a24..21ef0171747 100644 --- a/code/modules/projectiles/projectile/force.dm +++ b/code/modules/projectiles/projectile/force.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/forcebolt +/obj/projectile/forcebolt name = "force bolt" icon = 'icons/obj/projectiles.dmi' icon_state = "bluespace" @@ -6,17 +6,17 @@ check_armor = "energy" embed = 1 -/obj/item/projectile/forcebolt/strong +/obj/projectile/forcebolt/strong name = "force bolt" icon_state = "bluespace" -/obj/item/projectile/forcebolt/on_hit(var/atom/movable/target, var/blocked = 0) +/obj/projectile/forcebolt/on_hit(var/atom/movable/target, var/blocked = 0) if(istype(target)) var/throwdir = get_dir(firer,target) target.throw_at(get_edge_target_turf(target, throwdir),10,10) return 1 -/obj/item/projectile/forcebolt/strong/on_hit(var/atom/target, var/blocked = 0) +/obj/projectile/forcebolt/strong/on_hit(var/atom/target, var/blocked = 0) for(var/mob/M in hearers(2, src)) if(M.loc != src.loc) var/throwdir = get_dir(firer,target) diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm index dbb96684b2d..e0d08e12656 100644 --- a/code/modules/projectiles/projectile/special.dm +++ b/code/modules/projectiles/projectile/special.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/ion +/obj/projectile/ion name = "ion bolt" icon_state = "ion" damage = 0 @@ -7,10 +7,10 @@ check_armor = "energy" var/pulse_range = 1 -/obj/item/projectile/ion/on_impact(var/atom/A) +/obj/projectile/ion/on_impact(var/atom/A) empulse(A, pulse_range, pulse_range) -/obj/item/projectile/ion/stun/on_impact(var/atom/A) +/obj/projectile/ion/stun/on_impact(var/atom/A) if(isipc(A)) var/mob/living/carbon/human/H = A var/obj/item/organ/internal/surge/s = H.internal_organs_by_name["surge"] @@ -51,19 +51,19 @@ A.emp_act(EMP_LIGHT) return -/obj/item/projectile/ion/small +/obj/projectile/ion/small name = "ion pulse" pulse_range = 0 -/obj/item/projectile/ion/heavy +/obj/projectile/ion/heavy name = "heavy ion pulse" pulse_range = 5 -/obj/item/projectile/ion/gauss +/obj/projectile/ion/gauss name = "ion slug" icon_state = "heavygauss" -/obj/item/projectile/bullet/gyro +/obj/projectile/bullet/gyro name ="explosive bolt" icon_state= "bolter" damage = 50 @@ -71,23 +71,23 @@ sharp = 1 edge = TRUE -/obj/item/projectile/bullet/gyro/on_impact(var/atom/A) +/obj/projectile/bullet/gyro/on_impact(var/atom/A) explosion(A, -1, 0, 2) ..() -/obj/item/projectile/bullet/gyro/law +/obj/projectile/bullet/gyro/law name ="high-ex round" icon_state= "bolter" damage = 15 -/obj/item/projectile/bullet/gyro/law/on_hit(var/atom/target, var/blocked = 0) +/obj/projectile/bullet/gyro/law/on_hit(var/atom/target, var/blocked = 0) explosion(target, -1, 0, 2) var/obj/T = target var/throwdir = get_dir(firer,target) T.throw_at(get_edge_target_turf(target, throwdir),3,3) return 1 -/obj/item/projectile/temp +/obj/projectile/temp name = "freeze beam" icon_state = "ice_2" damage = 0 @@ -97,13 +97,13 @@ //var/temperature = 300 -/obj/item/projectile/temp/on_hit(var/atom/target, var/blocked = 0)//These two could likely check temp protection on the mob +/obj/projectile/temp/on_hit(var/atom/target, var/blocked = 0)//These two could likely check temp protection on the mob if(istype(target, /mob/living)) var/mob/M = target M.bodytemperature = -273 return 1 -/obj/item/projectile/meteor +/obj/projectile/meteor name = "meteor" icon = 'icons/obj/meteor.dmi' icon_state = "small1" @@ -112,7 +112,7 @@ nodamage = 1 check_armor = "bullet" -/obj/item/projectile/meteor/Collide(atom/A) +/obj/projectile/meteor/Collide(atom/A) if(A == firer) loc = A.loc return @@ -131,7 +131,7 @@ else return 0 -/obj/item/projectile/energy/floramut +/obj/projectile/energy/floramut name = "alpha somatoray" icon_state = "energy" damage = 0 @@ -139,7 +139,7 @@ nodamage = 1 check_armor = "energy" -/obj/item/projectile/energy/floramut/gene +/obj/projectile/energy/floramut/gene name = "gamma somatoray" icon_state = "energy2" damage = 0 @@ -147,7 +147,7 @@ nodamage = TRUE var/singleton/plantgene/gene = null -/obj/item/projectile/energy/floramut/on_hit(var/atom/target, var/blocked = 0) +/obj/projectile/energy/floramut/on_hit(var/atom/target, var/blocked = 0) var/mob/living/M = target if(ishuman(target)) var/mob/living/carbon/human/H = M @@ -172,7 +172,7 @@ else return 1 -/obj/item/projectile/energy/florayield +/obj/projectile/energy/florayield name = "beta somatoray" icon_state = "energy2" damage = 0 @@ -180,7 +180,7 @@ nodamage = 1 check_armor = "energy" -/obj/item/projectile/energy/florayield/on_hit(var/atom/target, var/blocked = 0) +/obj/projectile/energy/florayield/on_hit(var/atom/target, var/blocked = 0) var/mob/M = target if(ishuman(target)) //These rays make plantmen fat. var/mob/living/carbon/human/H = M @@ -192,16 +192,16 @@ return 1 -/obj/item/projectile/beam/mindflayer +/obj/projectile/beam/mindflayer name = "flayer ray" -/obj/item/projectile/beam/mindflayer/on_hit(var/atom/target, var/blocked = 0) +/obj/projectile/beam/mindflayer/on_hit(var/atom/target, var/blocked = 0) if(ishuman(target)) var/mob/living/carbon/human/M = target M.adjustBrainLoss(5) M.hallucination += 20 -/obj/item/projectile/bullet/trod +/obj/projectile/bullet/trod name ="tungsten rod" icon_state= "gauss" damage = 75 @@ -209,11 +209,11 @@ sharp = 1 edge = TRUE -/obj/item/projectile/bullet/trod/on_impact(var/atom/A) +/obj/projectile/bullet/trod/on_impact(var/atom/A) explosion(A, 0, 0, 4) ..() -/obj/item/projectile/chameleon +/obj/projectile/chameleon name = "bullet" icon_state = "bullet" damage = 1 // stop trying to murderbone with a fake gun dumbass!!! @@ -222,7 +222,7 @@ damage_type = DAMAGE_PAIN muzzle_type = /obj/effect/projectile/muzzle/bullet -/obj/item/projectile/bullet/cannon +/obj/projectile/bullet/cannon name ="armor-piercing shell" icon = 'icons/obj/grenade.dmi' icon_state = "shell" @@ -230,13 +230,13 @@ armor_penetration = 80 penetrating = 1 -/obj/item/projectile/bullet/cannon/on_impact(var/atom/A) +/obj/projectile/bullet/cannon/on_impact(var/atom/A) explosion(A, 1, 2, 3, 3) ..() //magic -/obj/item/projectile/magic +/obj/projectile/magic name = "bolt of nothing" icon = 'icons/obj/projectiles.dmi' icon_state = "spell" @@ -245,23 +245,23 @@ embed = 0 damage_type = DAMAGE_PAIN -/obj/item/projectile/magic/fireball +/obj/projectile/magic/fireball name = "fireball" icon_state = "fireball" damage = 20 damage_type = DAMAGE_BURN -/obj/item/projectile/magic/fireball/on_impact(var/atom/A) +/obj/projectile/magic/fireball/on_impact(var/atom/A) explosion(A, 0, 0, 4) ..() -/obj/item/projectile/magic/teleport //literaly bluespace crystal code, because i am lazy and it seems to work +/obj/projectile/magic/teleport //literaly bluespace crystal code, because i am lazy and it seems to work name = "bolt of teleportation" icon = 'icons/obj/projectiles.dmi' icon_state = "energy2" var/blink_range = 8 -/obj/item/projectile/magic/teleport/on_hit(var/atom/hit_atom) +/obj/projectile/magic/teleport/on_hit(var/atom/hit_atom) var/turf/T = get_turf(hit_atom) single_spark(T) playsound(src.loc, /singleton/sound_category/spark_sound, 50, 1) @@ -269,10 +269,10 @@ blink_mob(hit_atom) return ..() -/obj/item/projectile/magic/teleport/proc/blink_mob(mob/living/L) +/obj/projectile/magic/teleport/proc/blink_mob(mob/living/L) do_teleport(L, get_turf(L), blink_range, asoundin = 'sound/effects/phasein.ogg') -/obj/item/projectile/plasma +/obj/projectile/plasma name = "plasma slug" icon_state = "plasma_bolt" damage = 20 @@ -283,7 +283,7 @@ armor_penetration = 60 penetrating = 1 -/obj/item/projectile/plasma/light +/obj/projectile/plasma/light name = "plasma bolt" damage = 15 armor_penetration = 60 @@ -303,14 +303,14 @@ ..() return -/obj/item/projectile/ice +/obj/projectile/ice name ="ice bolt" icon_state= "icer_bolt" damage = 15 damage_type = DAMAGE_BRUTE check_armor = "energy" -/obj/item/projectile/bonedart +/obj/projectile/bonedart name = "bone dart" icon_state = "bonedart" damage = 35 @@ -322,7 +322,7 @@ sharp = TRUE shrapnel_type = /obj/item/bone_dart/vannatusk -/obj/item/projectile/bonedart/ling +/obj/projectile/bonedart/ling name = "bone dart" damage = 10 armor_penetration = 10 diff --git a/code/modules/projectiles/projectile/trace.dm b/code/modules/projectiles/projectile/trace.dm index 20022039e2d..b5620b05959 100644 --- a/code/modules/projectiles/projectile/trace.dm +++ b/code/modules/projectiles/projectile/trace.dm @@ -3,38 +3,36 @@ if(!istype(target) || !istype(firer)) return 0 - var/obj/item/projectile/test/trace = new /obj/item/projectile/test(get_turf(firer)) //Making the test.... + var/obj/projectile/test/trace = new /obj/projectile/test(get_turf(firer)) //Making the test.... //Set the flags and pass flags to that of the real projectile... if(!isnull(obj_flags)) trace.obj_flags = obj_flags - if(!isnull(item_flags)) - trace.item_flags = item_flags trace.pass_flags = pass_flags return trace.launch_projectile(target) //Test it! -/obj/item/projectile/proc/_check_fire(atom/target as mob, mob/living/user as mob) //Checks if you can hit them or not. - check_trajectory(target, user, pass_flags, obj_flags, item_flags) +/obj/projectile/proc/_check_fire(atom/target as mob, mob/living/user as mob) //Checks if you can hit them or not. + check_trajectory(target, user, pass_flags, obj_flags) //"Tracing" projectile -/obj/item/projectile/test //Used to see if you can hit them. +/obj/projectile/test //Used to see if you can hit them. invisibility = 101 //Nope! Can't see me! hitscan = TRUE nodamage = TRUE damage = 0 var/list/hit = list() -/obj/item/projectile/test/process_hitscan() +/obj/projectile/test/process_hitscan() . = ..() if(!QDELING(src)) qdel(src) return hit -/obj/item/projectile/test/Collide(atom/A) +/obj/projectile/test/Collide(atom/A) if(A != src) hit |= A return ..() -/obj/item/projectile/test/attack_mob() +/obj/projectile/test/attack_mob() return diff --git a/code/modules/psionics/abilities/air_bullet.dm b/code/modules/psionics/abilities/air_bullet.dm index 60b5ca13b5e..b6c4b844b9e 100644 --- a/code/modules/psionics/abilities/air_bullet.dm +++ b/code/modules/psionics/abilities/air_bullet.dm @@ -13,7 +13,7 @@ icon_state = "force_missile" cast_methods = CAST_RANGED|CAST_USE aspect = ASPECT_PSIONIC - spell_projectile = /obj/item/projectile/air_bullet + spell_projectile = /obj/projectile/air_bullet fire_sound = 'sound/weapons/wave.ogg' cooldown = 5 psi_cost = 0 @@ -48,7 +48,7 @@ bullets-- maptext = SMALL_FONTS(7, bullets) -/obj/item/projectile/air_bullet +/obj/projectile/air_bullet name = "air bullet" icon_state = "plasma_bolt" damage = 30 diff --git a/code/modules/psionics/abilities/hollow_purple.dm b/code/modules/psionics/abilities/hollow_purple.dm index e9f356a8a87..b021572b2f2 100644 --- a/code/modules/psionics/abilities/hollow_purple.dm +++ b/code/modules/psionics/abilities/hollow_purple.dm @@ -15,7 +15,7 @@ icon_state = "destablize" cast_methods = CAST_RANGED aspect = ASPECT_PSIONIC - spell_projectile = /obj/item/projectile/hollow_purple + spell_projectile = /obj/projectile/hollow_purple fire_sound = 'sound/magic/WandODeath.ogg' cooldown = 10 psi_cost = 50 @@ -53,7 +53,7 @@ for(var/mob/living/L in get_hearers_in_view(7, src)) shake_camera(L, 5, 5) -/obj/item/projectile/hollow_purple +/obj/projectile/hollow_purple name = "hollow purple" icon_state = "hollow_purple" color = COLOR_PURPLE @@ -65,14 +65,14 @@ anti_materiel_potential = 100 damage_type = DAMAGE_BRUTE -/obj/item/projectile/hollow_purple/Initialize() +/obj/projectile/hollow_purple/Initialize() . = ..() set_light(10, 10, COLOR_PURPLE) -/obj/item/projectile/hollow_purple/Destroy() +/obj/projectile/hollow_purple/Destroy() return ..() -/obj/item/projectile/hollow_purple/on_impact(var/atom/A) +/obj/projectile/hollow_purple/on_impact(var/atom/A) if(ismob(A)) if(A != firer) var/mob/M = A @@ -80,7 +80,7 @@ explosion(A, 5, 5, 5) ..() -/obj/item/projectile/hollow_purple/on_hit(atom/target, blocked, def_zone) +/obj/projectile/hollow_purple/on_hit(atom/target, blocked, def_zone) if(ismob(target)) if(target != firer) var/mob/M = target @@ -88,11 +88,11 @@ explosion(target, 5, 5, 5) ..() -/obj/item/projectile/hollow_purple/check_penetrate(atom/A) +/obj/projectile/hollow_purple/check_penetrate(atom/A) on_hit(A) return TRUE -/obj/item/projectile/hollow_purple/after_move() +/obj/projectile/hollow_purple/after_move() for(var/a in range(3, src)) if(isliving(a) && a != firer) var/mob/living/M = a diff --git a/code/modules/psionics/abilities/lightning.dm b/code/modules/psionics/abilities/lightning.dm index 37e3b0028f7..4c478c47b86 100644 --- a/code/modules/psionics/abilities/lightning.dm +++ b/code/modules/psionics/abilities/lightning.dm @@ -12,7 +12,7 @@ icon_state = "chain_lightning" cast_methods = CAST_RANGED|CAST_USE aspect = ASPECT_PSIONIC - spell_projectile = /obj/item/projectile/beam/psi_lightning + spell_projectile = /obj/projectile/beam/psi_lightning fire_sound = 'sound/magic/LightningShock.ogg' cooldown = 10 psi_cost = 15 @@ -23,13 +23,13 @@ mode = !mode if(mode) to_chat(user, SPAN_NOTICE("You will now fire area-of-effect lightning in a 4x3 area in front of you.")) - spell_projectile = /obj/item/projectile/beam/psi_lightning/wide + spell_projectile = /obj/projectile/beam/psi_lightning/wide else to_chat(user, SPAN_NOTICE("You will now fire a normal lightning bolt.")) - spell_projectile = /obj/item/projectile/beam/psi_lightning + spell_projectile = /obj/projectile/beam/psi_lightning -/obj/item/projectile/beam/psi_lightning +/obj/projectile/beam/psi_lightning name = "psionic lightning" damage = 30 armor_penetration = 30 @@ -43,18 +43,18 @@ impact_type = /obj/effect/projectile/impact/tesla -/obj/item/projectile/beam/psi_lightning/pellet +/obj/projectile/beam/psi_lightning/pellet damage = 20 armor_penetration = 20 -/obj/item/projectile/beam/psi_lightning/wide +/obj/projectile/beam/psi_lightning/wide damage = 20 armor_penetration = 20 -/obj/item/projectile/beam/psi_lightning/wide/Initialize() +/obj/projectile/beam/psi_lightning/wide/Initialize() . = ..() for(var/i = 1 to 4) var/turf/new_turf = get_random_turf_in_range(get_turf(firer), i + rand(0, i), 0, TRUE, FALSE) - var/obj/item/projectile/beam/psi_lightning/pellet/pellet = new type(new_turf) + var/obj/projectile/beam/psi_lightning/pellet/pellet = new type(new_turf) var/turf/front_turf = get_step(pellet, pellet.dir) - INVOKE_ASYNC(pellet, TYPE_PROC_REF(/obj/item/projectile/beam/psi_lightning/pellet, launch_projectile), front_turf) + INVOKE_ASYNC(pellet, TYPE_PROC_REF(/obj/projectile/beam/psi_lightning/pellet, launch_projectile), front_turf) diff --git a/code/modules/psionics/abilities/throw.dm b/code/modules/psionics/abilities/throw.dm index ea4a434b245..005c7cb425d 100644 --- a/code/modules/psionics/abilities/throw.dm +++ b/code/modules/psionics/abilities/throw.dm @@ -12,7 +12,7 @@ icon_state = "aspect_bolt" cast_methods = CAST_RANGED aspect = ASPECT_PSIONIC - spell_projectile = /obj/item/projectile/psionic_throw + spell_projectile = /obj/projectile/psionic_throw fire_sound = 'sound/weapons/wave.ogg' cooldown = 20 psi_cost = 20 @@ -48,8 +48,8 @@ item_to_throw = null ClearOverlays() -/obj/item/spell/projectile/throw_item/make_projectile(obj/item/projectile/projectile_type, mob/living/user) - var/obj/item/projectile/psionic_throw/P = ..() +/obj/item/spell/projectile/throw_item/make_projectile(obj/projectile/projectile_type, mob/living/user) + var/obj/projectile/psionic_throw/P = ..() if(P && item_to_throw) var/base_damage = item_to_throw.force > 5 ? item_to_throw.force : 10 /// Why is it called a fucking divisor? It's a multiplier... @@ -80,13 +80,13 @@ P.source_item = item_to_throw return P -/obj/item/projectile/psionic_throw +/obj/projectile/psionic_throw name = "thrown projectile" damage_type = DAMAGE_BRUTE impact_sounds = list(BULLET_IMPACT_MEAT = SOUNDS_BULLET_MEAT, BULLET_IMPACT_METAL = SOUNDS_BULLET_METAL) var/obj/source_item -/obj/item/projectile/psionic_throw/Destroy() +/obj/projectile/psionic_throw/Destroy() if(source_item) source_item.forceMove(loc) source_item = null diff --git a/code/modules/reagents/reagent_containers/food/cans.dm b/code/modules/reagents/reagent_containers/food/cans.dm index f2e3f539651..90e192fe10b 100644 --- a/code/modules/reagents/reagent_containers/food/cans.dm +++ b/code/modules/reagents/reagent_containers/food/cans.dm @@ -208,7 +208,7 @@ else desc = initial(desc) -/obj/item/reagent_containers/food/drinks/cans/bullet_act(obj/item/projectile/P) +/obj/item/reagent_containers/food/drinks/cans/bullet_act(obj/projectile/P) if(P.firer && REAGENT_VOLUME(reagents, /singleton/reagent/fuel) >= LETHAL_FUEL_CAPACITY) visible_message(SPAN_DANGER("\The [name] is hit by the [P]!")) log_and_message_admins("shot an improvised [name] explosive", P.firer) diff --git a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm index b94dcfd79a3..9cdd229b9b9 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm @@ -434,24 +434,23 @@ update_icon() make_froth(offset_x = 0, offset_y = sabraged ? 13 : 15, intensity = froth_severity) //the y offset for sabraged is lower because the bottle's lip is smashed ///Type of cork to fire away - var/obj/item/projectile/bullet/cork_to_fire = sabraged ? /obj/item/projectile/bullet/champagne_cork/sabrage : /obj/item/projectile/bullet/champagne_cork + var/obj/projectile/bullet/cork_to_fire = sabraged ? /obj/projectile/bullet/champagne_cork/sabrage : /obj/projectile/bullet/champagne_cork ///Our resulting cork projectile - var/obj/item/projectile/bullet/champagne_cork/popped_cork = new cork_to_fire(get_turf(src)) + var/obj/projectile/bullet/champagne_cork/popped_cork = new cork_to_fire(get_turf(src)) popped_cork.firer = user popped_cork.fire(dir2angle(user.dir) + rand(-30, 30)) -/obj/item/projectile/bullet/champagne_cork +/obj/projectile/bullet/champagne_cork name = "champagne cork" icon = 'icons/obj/item/reagent_containers/food/drinks/bottle.dmi' icon_state = "champagne_cork" - hitsound = 'sound/weapons/genhit.ogg' damage = 5 embed = FALSE sharp = FALSE agony = 10 // ow! var/drop_type = /obj/item/trash/champagne_cork -/obj/item/projectile/bullet/champagne_cork/on_impact(var/atom/A) +/obj/projectile/bullet/champagne_cork/on_impact(var/atom/A) ..() new drop_type(src.loc) //always use src.loc so that ash doesn't end up inside windows @@ -460,7 +459,7 @@ icon = 'icons/obj/item/reagent_containers/food/drinks/bottle.dmi' icon_state = "champagne_cork" -/obj/item/projectile/bullet/champagne_cork/sabrage +/obj/projectile/bullet/champagne_cork/sabrage icon_state = "champagne_cork_sabrage" drop_type = /obj/item/trash/champagne_cork/sabrage diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 4312980c582..971f65662cb 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -194,13 +194,13 @@ src.defuse = 0 message_admins("[key_name_admin(user)] reset fuse on fueltank at ([loc.x],[loc.y],[loc.z]).") -/obj/structure/reagent_dispensers/fueltank/bullet_act(var/obj/item/projectile/Proj) +/obj/structure/reagent_dispensers/fueltank/bullet_act(var/obj/projectile/Proj) if(Proj.get_structure_damage()) if(istype(Proj.firer)) log_and_message_admins("shot a welding tank", Proj.firer) log_game("[key_name(Proj.firer)] shot fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]).") - if(!istype(Proj ,/obj/item/projectile/beam/laser_tag) && !istype(Proj ,/obj/item/projectile/beam/practice) && !istype(Proj ,/obj/item/projectile/kinetic)) + if(!istype(Proj ,/obj/projectile/beam/laser_tag) && !istype(Proj ,/obj/projectile/beam/practice) && !istype(Proj ,/obj/projectile/kinetic)) ex_act(2.0) /obj/structure/reagent_dispensers/fueltank/ex_act(var/severity = 3.0) @@ -396,7 +396,7 @@ capacity = 5000 reagents_to_add = list(/singleton/reagent/nutriment/triglyceride/oil/corn = 5000) -/obj/structure/reagent_dispensers/cookingoil/bullet_act(var/obj/item/projectile/Proj) +/obj/structure/reagent_dispensers/cookingoil/bullet_act(var/obj/projectile/Proj) if(Proj.get_structure_damage()) ex_act(2.0) @@ -409,7 +409,7 @@ amount_per_transfer_from_this = 10 reagents_to_add = list(/singleton/reagent/coolant = 1000) -/obj/structure/reagent_dispensers/coolanttank/bullet_act(var/obj/item/projectile/Proj) +/obj/structure/reagent_dispensers/coolanttank/bullet_act(var/obj/projectile/Proj) if(Proj.get_structure_damage()) if (Proj.damage_type != DAMAGE_PAIN) explode() diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index b06db263203..3c29b3c08a1 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -596,7 +596,7 @@ qdel(H) /obj/machinery/disposal/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) - if(istype(mover, /obj/item/projectile)) + if(istype(mover, /obj/projectile)) return 1 if(istype(mover,/obj/item) && mover.throwing) var/obj/item/I = mover diff --git a/code/modules/recycling/sortingmachinery.dm b/code/modules/recycling/sortingmachinery.dm index 9720e2cc749..394fb35ab2d 100755 --- a/code/modules/recycling/sortingmachinery.dm +++ b/code/modules/recycling/sortingmachinery.dm @@ -315,7 +315,7 @@ /obj/machinery/disposal/deliveryChute/CollidedWith(atom/bumped_atom) //Go straight into the chute . = ..() - if(istype(bumped_atom, /obj/item/projectile) || istype(bumped_atom, /obj/effect)) + if(istype(bumped_atom, /obj/projectile) || istype(bumped_atom, /obj/effect)) return switch(dir) diff --git a/code/modules/research/weaponsanalyzer.dm b/code/modules/research/weaponsanalyzer.dm index 8310141b68a..d758f9af556 100644 --- a/code/modules/research/weaponsanalyzer.dm +++ b/code/modules/research/weaponsanalyzer.dm @@ -174,7 +174,7 @@ if(istype(gun, /obj/item/gun/energy)) var/obj/item/gun/energy/E = gun - var/obj/item/projectile/P = new E.projectile_type + var/obj/projectile/P = new E.projectile_type data["gun"]["max_shots"] = initial(E.max_shots) data["gun"]["recharge"] = initial(E.self_recharge) ? "self recharging" : "not self recharging" data["gun"]["recharge_time"] = initial(E.recharge_time) @@ -208,7 +208,7 @@ data["gun_mods"] = mods if(E.secondary_projectile_type) - var/obj/item/projectile/P_second = E.secondary_projectile_type + var/obj/projectile/P_second = E.secondary_projectile_type data["gun"]["secondary_damage"] = initial(P_second.damage) data["gun"]["secondary_damage_type"] = initial(P_second.damage_type) data["gun"]["secondary_check_armor"] = initial(P_second.check_armor) @@ -219,7 +219,7 @@ else var/obj/item/gun/projectile/P_gun = gun var/obj/item/ammo_casing/casing = new P_gun.ammo_type - var/obj/item/projectile/P = new casing.projectile_type + var/obj/projectile/P = new casing.projectile_type data["gun"]["max_shots"] = P_gun.max_shells data["gun"]["damage"] = initial(P.damage) data["gun"]["damage_type"] = initial(P.damage_type) diff --git a/code/modules/research/xenoarchaeology/artifact/artifact_crystal_madness.dm b/code/modules/research/xenoarchaeology/artifact/artifact_crystal_madness.dm index b1c8363c872..3388ab5e3ee 100644 --- a/code/modules/research/xenoarchaeology/artifact/artifact_crystal_madness.dm +++ b/code/modules/research/xenoarchaeology/artifact/artifact_crystal_madness.dm @@ -117,8 +117,8 @@ A large crystal, seemingly floating in the air, and giving off a light blue glow.\ " -/obj/structure/crystal_madness/bullet_act(var/obj/item/projectile/projectile) - if(istype(projectile, /obj/item/projectile/bullet)) +/obj/structure/crystal_madness/bullet_act(var/obj/projectile/projectile) + if(istype(projectile, /obj/projectile/bullet)) src.visible_message( pick( SPAN_WARNING("\The [src] appears to deflect \the [projectile], shattering it into dust."), @@ -130,7 +130,7 @@ SPAN_WARNING("\The [src] appears to bounce off \the [projectile]. It has little effect."), ), ) - else if(istype(projectile, /obj/item/projectile/energy)) + else if(istype(projectile, /obj/projectile/energy)) src.visible_message( pick( SPAN_WARNING("\The [src] appears to absorb \the [projectile]."), @@ -140,7 +140,7 @@ SPAN_WARNING("\The [src] appears to consume \the [projectile]. It has little effect."), ), ) - else if(istype(projectile, /obj/item/projectile/beam)) + else if(istype(projectile, /obj/projectile/beam)) var/damage = projectile.get_structure_damage() if(damage < 20) src.visible_message( diff --git a/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm b/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm index ed2e7d7cfcb..ca141b46047 100644 --- a/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm +++ b/code/modules/research/xenoarchaeology/artifact/artifact_unknown.dm @@ -279,17 +279,17 @@ to_chat(H, "You accidentally touch [src].") ..() -/obj/machinery/artifact/bullet_act(var/obj/item/projectile/P) - if(istype(P,/obj/item/projectile/bullet) ||\ - istype(P,/obj/item/projectile/bullet/pistol/hivebotspike)) +/obj/machinery/artifact/bullet_act(var/obj/projectile/P) + if(istype(P,/obj/projectile/bullet) ||\ + istype(P,/obj/projectile/bullet/pistol/hivebotspike)) if(my_effect.trigger == TRIGGER_FORCE) my_effect.ToggleActivate() if(secondary_effect?.trigger == TRIGGER_FORCE) secondary_effect.ToggleActivate() - else if(istype(P,/obj/item/projectile/beam) ||\ - istype(P,/obj/item/projectile/ion) ||\ - istype(P,/obj/item/projectile/energy)) + else if(istype(P,/obj/projectile/beam) ||\ + istype(P,/obj/projectile/ion) ||\ + istype(P,/obj/projectile/energy)) if(my_effect.trigger == TRIGGER_ENERGY) my_effect.ToggleActivate() if(secondary_effect?.trigger == TRIGGER_ENERGY) diff --git a/code/modules/shieldgen/emergency_shield.dm b/code/modules/shieldgen/emergency_shield.dm index fd50392904d..ce80f70aa16 100644 --- a/code/modules/shieldgen/emergency_shield.dm +++ b/code/modules/shieldgen/emergency_shield.dm @@ -74,7 +74,7 @@ ..() -/obj/machinery/shield/bullet_act(var/obj/item/projectile/Proj) +/obj/machinery/shield/bullet_act(var/obj/projectile/Proj) health -= Proj.get_structure_damage() ..() check_failure() diff --git a/code/modules/shieldgen/energy_field.dm b/code/modules/shieldgen/energy_field.dm index 8275cb95277..6ad41fc515f 100644 --- a/code/modules/shieldgen/energy_field.dm +++ b/code/modules/shieldgen/energy_field.dm @@ -54,7 +54,7 @@ /obj/effect/energy_field/ex_act(var/severity) Stress(0.5 + severity) -/obj/effect/energy_field/bullet_act(var/obj/item/projectile/Proj) +/obj/effect/energy_field/bullet_act(var/obj/projectile/Proj) Stress(Proj.get_structure_damage() / 10) /obj/effect/energy_field/proc/Stress(var/severity) diff --git a/code/modules/shieldgen/shieldwallgen.dm b/code/modules/shieldgen/shieldwallgen.dm index 7a94805d30a..eacc42b45d9 100644 --- a/code/modules/shieldgen/shieldwallgen.dm +++ b/code/modules/shieldgen/shieldwallgen.dm @@ -195,7 +195,7 @@ alldir_cleanup() return ..() -/obj/machinery/shieldwallgen/bullet_act(var/obj/item/projectile/Proj) +/obj/machinery/shieldwallgen/bullet_act(var/obj/projectile/Proj) storedpower -= 400 * Proj.get_structure_damage() if(power_state >= POWER_STARTING) visible_message(SPAN_WARNING("\The [src]'s shielding sparks as \the [Proj] hits it!")) @@ -255,7 +255,7 @@ gen_primary.storedpower -= power_usage / 2 gen_secondary.storedpower -= power_usage / 2 -/obj/shieldwall/bullet_act(var/obj/item/projectile/Proj) +/obj/shieldwall/bullet_act(var/obj/projectile/Proj) if(needs_power) var/obj/machinery/shieldwallgen/G if(prob(50)) @@ -297,7 +297,7 @@ if(istype(mover) && mover.pass_flags & PASSGLASS) return prob(20) else - if(istype(mover, /obj/item/projectile)) + if(istype(mover, /obj/projectile)) return prob(10) else return !density diff --git a/code/modules/shuttles/shuttle_console.dm b/code/modules/shuttles/shuttle_console.dm index b28fce44422..9450252dc27 100644 --- a/code/modules/shuttles/shuttle_console.dm +++ b/code/modules/shuttles/shuttle_console.dm @@ -160,7 +160,7 @@ to_chat(user, "You short out the console's ID checking system. It's now available to everyone!") return TRUE -/obj/machinery/computer/shuttle_control/bullet_act(var/obj/item/projectile/Proj) +/obj/machinery/computer/shuttle_control/bullet_act(var/obj/projectile/Proj) visible_message("\The [Proj] ricochets off \the [src]!") /obj/machinery/computer/shuttle_control/ex_act() diff --git a/code/modules/spell_system/artifacts/items/poppet.dm b/code/modules/spell_system/artifacts/items/poppet.dm index 03cb7f2b779..5871264a6bf 100644 --- a/code/modules/spell_system/artifacts/items/poppet.dm +++ b/code/modules/spell_system/artifacts/items/poppet.dm @@ -140,7 +140,7 @@ if(H) H.electrocute_act(power, src) -/obj/item/poppet/bullet_act(var/obj/item/projectile/Proj) +/obj/item/poppet/bullet_act(var/obj/projectile/Proj) var/mob/living/carbon/human/H = target.resolve() if(H) H.apply_damage(Proj.damage, DAMAGE_PAIN) diff --git a/code/modules/spell_system/spells/spell_list/projectile.dm b/code/modules/spell_system/spells/spell_list/projectile.dm index 72d43c0a38d..64a258374bb 100644 --- a/code/modules/spell_system/spells/spell_list/projectile.dm +++ b/code/modules/spell_system/spells/spell_list/projectile.dm @@ -10,7 +10,7 @@ If the spell_projectile is seeking, it will update its target every process and range = 7 - var/proj_type = /obj/item/projectile/spell_projectile //use these. They are very nice + var/proj_type = /obj/projectile/spell_projectile //use these. They are very nice var/proj_step_delay = 1 //lower = faster var/cast_prox_range = 1 @@ -21,7 +21,7 @@ If the spell_projectile is seeking, it will update its target every process and proj_type = text2path(proj_type) // sanity filters for(var/atom/target in targets) - var/obj/item/projectile/projectile = new proj_type(user.loc, user.dir) + var/obj/projectile/projectile = new proj_type(user.loc, user.dir) if(!projectile) return @@ -30,8 +30,8 @@ If the spell_projectile is seeking, it will update its target every process and projectile.shot_from = user //fired from the user projectile.hitscan = !proj_step_delay projectile.speed = proj_step_delay - if(istype(projectile, /obj/item/projectile/spell_projectile)) - var/obj/item/projectile/spell_projectile/SP = projectile + if(istype(projectile, /obj/projectile/spell_projectile)) + var/obj/projectile/spell_projectile/SP = projectile SP.carried = src //casting is magical projectile.launch_projectile(target, target_zone=BP_CHEST) return diff --git a/code/modules/spell_system/spells/spell_list/self/conjure/forcewall.dm b/code/modules/spell_system/spells/spell_list/self/conjure/forcewall.dm index cf93f21cde5..db04501496b 100644 --- a/code/modules/spell_system/spells/spell_list/self/conjure/forcewall.dm +++ b/code/modules/spell_system/spells/spell_list/self/conjure/forcewall.dm @@ -21,7 +21,7 @@ density = 1 unacidable = 1 -/obj/effect/forcefield/bullet_act(var/obj/item/projectile/Proj, var/def_zone) +/obj/effect/forcefield/bullet_act(var/obj/projectile/Proj, var/def_zone) var/turf/T = get_turf(src.loc) if(T) for(var/mob/M in T) diff --git a/code/modules/spell_system/spells/spell_projectile.dm b/code/modules/spell_system/spells/spell_projectile.dm index 7e5ec4d3109..2accd3a8782 100644 --- a/code/modules/spell_system/spells/spell_projectile.dm +++ b/code/modules/spell_system/spells/spell_projectile.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/spell_projectile +/obj/projectile/spell_projectile name = "spell" icon = 'icons/obj/projectiles.dmi' @@ -15,16 +15,16 @@ var/proj_trail_icon_state = "trail" var/list/trails = new() -/obj/item/projectile/spell_projectile/Destroy() +/obj/projectile/spell_projectile/Destroy() for(var/trail in trails) qdel(trail) carried = null return ..() -/obj/item/projectile/spell_projectile/ex_act(var/severity = 2.0) +/obj/projectile/spell_projectile/ex_act(var/severity = 2.0) return -/obj/item/projectile/spell_projectile/before_move() +/obj/projectile/spell_projectile/before_move() if(proj_trail && src && src.loc) //pretty trails var/obj/effect/overlay/trail = new /obj/effect/overlay(src.loc) trails += trail @@ -33,25 +33,25 @@ trail.density = 0 addtimer(CALLBACK(src, PROC_REF(post_trail), trail), proj_trail_lifespan) -/obj/item/projectile/spell_projectile/proc/post_trail(obj/effect/overlay/trail) +/obj/projectile/spell_projectile/proc/post_trail(obj/effect/overlay/trail) trails -= trail qdel(trail) -/obj/item/projectile/spell_projectile/proc/prox_cast(var/list/targets) +/obj/projectile/spell_projectile/proc/prox_cast(var/list/targets) if(loc) carried.prox_cast(targets, src) qdel(src) return -/obj/item/projectile/spell_projectile/Collide(atom/A) +/obj/projectile/spell_projectile/Collide(atom/A) if(loc && carried) prox_cast(carried.choose_prox_targets(user = carried.holder, spell_holder = src)) return 1 -/obj/item/projectile/spell_projectile/on_impact() +/obj/projectile/spell_projectile/on_impact() if(loc && carried) prox_cast(carried.choose_prox_targets(user = carried.holder, spell_holder = src)) return 1 -/obj/item/projectile/spell_projectile/seeking +/obj/projectile/spell_projectile/seeking name = "seeking spell" diff --git a/code/modules/supermatter/supermatter.dm b/code/modules/supermatter/supermatter.dm index 1dae12466b8..57eb37727f1 100644 --- a/code/modules/supermatter/supermatter.dm +++ b/code/modules/supermatter/supermatter.dm @@ -340,7 +340,7 @@ return 1 -/obj/machinery/power/supermatter/bullet_act(var/obj/item/projectile/Proj) +/obj/machinery/power/supermatter/bullet_act(var/obj/projectile/Proj) var/turf/L = loc if(!istype(L)) // We don't run process() when we are in space return 0 // This stops people from being able to really power up the supermatter @@ -348,7 +348,7 @@ var/proj_damage = Proj.get_structure_damage() - if(istype(Proj, /obj/item/projectile/beam)) + if(istype(Proj, /obj/projectile/beam)) power += proj_damage * config_bullet_energy * CHARGING_FACTOR / POWER_FACTOR else damage += proj_damage * config_bullet_energy diff --git a/code/modules/tables/interactions.dm b/code/modules/tables/interactions.dm index 416770ab91a..a89b04ff7e5 100644 --- a/code/modules/tables/interactions.dm +++ b/code/modules/tables/interactions.dm @@ -1,6 +1,6 @@ /obj/structure/table/CanPass(atom/movable/mover, turf/target, height=0, air_group=0) if(air_group || (height==0)) return 1 - if(istype(mover,/obj/item/projectile)) + if(istype(mover,/obj/projectile)) return (check_cover(mover,target)) if (flipped == 1) if (get_dir(loc, target) == dir) @@ -16,7 +16,7 @@ return 0 //checks if projectile 'P' from turf 'from' can hit whatever is behind the table. Returns 1 if it can, 0 if bullet stops. -/obj/structure/table/proc/check_cover(obj/item/projectile/P, turf/from) +/obj/structure/table/proc/check_cover(obj/projectile/P, turf/from) var/turf/cover if(flipped==1) cover = get_turf(src) diff --git a/code/modules/vehicles/animal.dm b/code/modules/vehicles/animal.dm index cbb259b47cd..43c4e9a95dc 100644 --- a/code/modules/vehicles/animal.dm +++ b/code/modules/vehicles/animal.dm @@ -83,7 +83,7 @@ to_chat(user, "You unbuckle [load] from \the [src]") to_chat(load, "You were unbuckled from \the [src] by [user]") -/obj/vehicle/animal/bullet_act(var/obj/item/projectile/Proj) +/obj/vehicle/animal/bullet_act(var/obj/projectile/Proj) var/datum/component/armor/armor_component = GetComponent(/datum/component/armor) if(buckled && prob((1 - armor_component.get_blocked(Proj.damage_type, Proj.damage_flags, Proj.armor_penetration))*100)) buckled.bullet_act(Proj) diff --git a/code/modules/vehicles/bike.dm b/code/modules/vehicles/bike.dm index 6e304f6db58..5ef53a177db 100644 --- a/code/modules/vehicles/bike.dm +++ b/code/modules/vehicles/bike.dm @@ -251,7 +251,7 @@ ..() -/obj/vehicle/bike/bullet_act(var/obj/item/projectile/Proj) +/obj/vehicle/bike/bullet_act(var/obj/projectile/Proj) if(buckled && prob(protection_percent)) buckled.bullet_act(Proj) return diff --git a/code/modules/vehicles/cargo_train.dm b/code/modules/vehicles/cargo_train.dm index 1b127e6f8c0..df558f75a8a 100644 --- a/code/modules/vehicles/cargo_train.dm +++ b/code/modules/vehicles/cargo_train.dm @@ -149,7 +149,7 @@ // Cargo trains are open topped, so you can shoot at the driver. // Or you can shoot at the tug itself, if you're good. -/obj/vehicle/train/cargo/bullet_act(var/obj/item/projectile/Proj) +/obj/vehicle/train/cargo/bullet_act(var/obj/projectile/Proj) if (buckled && Proj.original == buckled) buckled.bullet_act(Proj) else diff --git a/code/modules/vehicles/vehicle.dm b/code/modules/vehicles/vehicle.dm index 73f13f61a8e..71a97240e05 100644 --- a/code/modules/vehicles/vehicle.dm +++ b/code/modules/vehicles/vehicle.dm @@ -124,7 +124,7 @@ else ..() -/obj/vehicle/bullet_act(var/obj/item/projectile/Proj) +/obj/vehicle/bullet_act(var/obj/projectile/Proj) health -= Proj.get_structure_damage() ..() diff --git a/code/modules/vehicles/wasp_torpedo.dm b/code/modules/vehicles/wasp_torpedo.dm index 508b953dcd5..c2f00beca76 100644 --- a/code/modules/vehicles/wasp_torpedo.dm +++ b/code/modules/vehicles/wasp_torpedo.dm @@ -88,7 +88,7 @@ return ..() -/obj/vehicle/bike/wasp_torpedo/bullet_act(var/obj/item/projectile/Proj) +/obj/vehicle/bike/wasp_torpedo/bullet_act(var/obj/projectile/Proj) if(Proj.get_structure_damage()) if(prob(10)) torpedo_explosion() diff --git a/code/unit_tests/create_and_destroy.dm b/code/unit_tests/create_and_destroy.dm index d6413afe3fd..073aed7715b 100644 --- a/code/unit_tests/create_and_destroy.dm +++ b/code/unit_tests/create_and_destroy.dm @@ -94,7 +94,7 @@ GLOBAL_VAR_INIT(running_create_and_destroy, FALSE) /obj/screen/new_player/selection/polls, //Temporary exclusion while matt fixes it - /obj/item/projectile/beam/psi_lightning/wide, + /obj/projectile/beam/psi_lightning/wide, /obj/effect/fusion_particle_catcher, /obj/item/fuel_assembly, diff --git a/html/changelogs/fluffyghost-projectilerepath.yml b/html/changelogs/fluffyghost-projectilerepath.yml new file mode 100644 index 00000000000..cdeb7cbf80b --- /dev/null +++ b/html/changelogs/fluffyghost-projectilerepath.yml @@ -0,0 +1,58 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# - (fixes bugs) +# wip +# - (work in progress) +# qol +# - (quality of life) +# soundadd +# - (adds a sound) +# sounddel +# - (removes a sound) +# rscadd +# - (adds a feature) +# rscdel +# - (removes a feature) +# imageadd +# - (adds an image or sprite) +# imagedel +# - (removes an image or sprite) +# spellcheck +# - (fixes spelling or grammar) +# experiment +# - (experimental change) +# balance +# - (balance changes) +# code_imp +# - (misc internal code change) +# refactor +# - (refactors code) +# config +# - (makes a change to the config files) +# admin +# - (makes changes to administrator tools) +# server +# - (miscellaneous changes to server) +################################# + +# Your name. +author: FluffyGhost + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. +# Please surround your changes in double quotes ("). It works without them, but if you use certain characters it screws up compiling. The quotes will not show up in the changelog. +changes: + - refactor: "Repathed /obj/item/projectile to /obj/projectile, same as TG and Bay, that's pretty much it." diff --git a/maps/away/ships/dionae/diona_rokz_ship/diona_rokz_ship.dmm b/maps/away/ships/dionae/diona_rokz_ship/diona_rokz_ship.dmm index 22645cfcab3..43a0deedca6 100644 --- a/maps/away/ships/dionae/diona_rokz_ship/diona_rokz_ship.dmm +++ b/maps/away/ships/dionae/diona_rokz_ship/diona_rokz_ship.dmm @@ -916,7 +916,7 @@ /area/ship/diona_rokz_ship/kitchen) "LB" = ( /obj/structure/table/diona, -/obj/item/projectile/beam/pistol/hegemony, +/obj/projectile/beam/pistol/hegemony, /obj/structure/diona/bulb, /turf/simulated/floor/diona/airless, /area/ship/diona_rokz_ship/bridge) diff --git a/maps/random_ruins/exoplanets/moghes/moghes_wasteland_priests.dmm b/maps/random_ruins/exoplanets/moghes/moghes_wasteland_priests.dmm index 98123b1ecef..9f0be065199 100644 --- a/maps/random_ruins/exoplanets/moghes/moghes_wasteland_priests.dmm +++ b/maps/random_ruins/exoplanets/moghes/moghes_wasteland_priests.dmm @@ -140,8 +140,8 @@ /obj/structure/closet/crate/weapon/alt, /obj/item/material/sword/longsword, /obj/item/material/sword/axe, -/obj/item/projectile/beam/pistol/hegemony, -/obj/item/projectile/beam/pistol/hegemony, +/obj/projectile/beam/pistol/hegemony, +/obj/projectile/beam/pistol/hegemony, /obj/item/gun/energy/rifle/hegemony, /obj/item/clothing/suit/armor/unathi/hegemony, /obj/item/clothing/accessory/poncho/unathimantle/med{