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{