diff --git a/_maps/map_files/RandomRuins/SpaceRuins/submaps/telecomns_returns_submap.dmm b/_maps/map_files/RandomRuins/SpaceRuins/submaps/telecomns_returns_submap.dmm index dfbebdb425f..1148fca9dc1 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/submaps/telecomns_returns_submap.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/submaps/telecomns_returns_submap.dmm @@ -198,7 +198,7 @@ lethal = 1; scan_range = 12; faction = "malf_drone"; - initial_eprojectile = /obj/item/projectile/beam/laser/ai_turret/heavylaser; + initial_eprojectile = /obj/projectile/beam/laser/ai_turret/heavylaser; ailock = 1; check_borgs = 1 }, diff --git a/_maps/map_files/RandomRuins/SpaceRuins/telecomns_returns.dmm b/_maps/map_files/RandomRuins/SpaceRuins/telecomns_returns.dmm index ab2312887aa..2d76c6f5467 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/telecomns_returns.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/telecomns_returns.dmm @@ -560,7 +560,7 @@ lethal = 1; scan_range = 12; faction = "malf_drone"; - initial_eprojectile = /obj/item/projectile/beam/laser/ai_turret/heavylaser; + initial_eprojectile = /obj/projectile/beam/laser/ai_turret/heavylaser; ailock = 1; check_borgs = 1 }, diff --git a/code/__DEFINES/dcs/atom_signals.dm b/code/__DEFINES/dcs/atom_signals.dm index e388110c76a..0208eea5aab 100644 --- a/code/__DEFINES/dcs/atom_signals.dm +++ b/code/__DEFINES/dcs/atom_signals.dm @@ -96,7 +96,7 @@ #define COMSIG_ATOM_HITBY "atom_hitby" /// Called when an atom is sharpened or dulled. #define COMSIG_ATOM_UPDATE_SHARPNESS "atom_update_sharpness" -///from base of atom/atom_prehit(obj/item/projectile/P): +///from base of atom/atom_prehit(obj/projectile/P): #define COMSIG_ATOM_PREHIT "atom_prehit" #define ATOM_PREHIT_SUCCESS (1<<0) #define ATOM_PREHIT_FAILURE (1<<1) diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 7826847a04c..8947a87be90 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -76,7 +76,7 @@ #define ismask(A) (istype(A, /obj/item/clothing/mask)) -#define isprojectile(A) (istype(A, /obj/item/projectile)) +#define isprojectile(A) (istype(A, /obj/projectile)) #define isgun(A) (istype(A, /obj/item/gun)) diff --git a/code/__HELPERS/radiation_helpers.dm b/code/__HELPERS/radiation_helpers.dm index 017d29a78cd..0ac09e8e445 100644 --- a/code/__HELPERS/radiation_helpers.dm +++ b/code/__HELPERS/radiation_helpers.dm @@ -9,7 +9,7 @@ /mob/dead, /obj/effect, /obj/docking_port, - /obj/item/projectile, + /obj/projectile, /atom/movable/emissive_blocker, )) var/list/processing_list = list(location) @@ -54,7 +54,7 @@ /mob/dead, /obj/effect, /obj/docking_port, - /obj/item/projectile, + /obj/projectile, /atom/movable/emissive_blocker, )) var/list/processing_list = list(location) @@ -109,7 +109,7 @@ /mob/dead, /obj/effect, /obj/docking_port, - /obj/item/projectile, + /obj/projectile, /atom/movable/emissive_blocker, )) var/list/processing_list = list(location) + location.contents diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 151fdc5a924..4f2f1fcdcda 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1548,7 +1548,7 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) /obj/item/organ/internal = "INT_ORG", /obj/item/organ = "ORGAN", /obj/item/pda = "PDA", - /obj/item/projectile = "PROJ", + /obj/projectile = "PROJ", /obj/item/radio/headset = "HEADSET", /obj/item/reagent_containers/glass/beaker = "BEAKER", /obj/item/reagent_containers/glass/bottle = "BOTTLE", diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 441a53667fb..187fb1918bf 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -443,7 +443,7 @@ var/turf/T = get_turf(src) var/turf/U = get_turf(A) - var/obj/item/projectile/beam/LE = new /obj/item/projectile/beam(loc) + var/obj/projectile/beam/LE = new /obj/projectile/beam(loc) LE.icon = 'icons/effects/genetics.dmi' LE.icon_state = "eyelasers" playsound(usr.loc, 'sound/weapons/taser2.ogg', 75, 1) diff --git a/code/datums/components/debris.dm b/code/datums/components/debris.dm index 57bd8c8e32f..aed2a45ebe5 100644 --- a/code/datums/components/debris.dm +++ b/code/datums/components/debris.dm @@ -26,11 +26,11 @@ if(parent) UnregisterSignal(parent, COMSIG_ATOM_BULLET_ACT) -/datum/component/debris/proc/register_for_impact(datum/source, obj/item/projectile/proj) +/datum/component/debris/proc/register_for_impact(datum/source, obj/projectile/proj) SIGNAL_HANDLER // COMSIG_ATOM_BULLET_ACT INVOKE_ASYNC(src, PROC_REF(on_impact), proj) -/datum/component/debris/proc/on_impact(obj/item/projectile/P) +/datum/component/debris/proc/on_impact(obj/projectile/P) var/angle = !isnull(P.Angle) ? P.Angle : round(get_angle(P.starting, parent), 1) var/x_component = sin(angle) * debris_velocity var/y_component = cos(angle) * debris_velocity diff --git a/code/datums/components/riding/riding_vehicle.dm b/code/datums/components/riding/riding_vehicle.dm index e91b41f73ed..2b2ff091bef 100644 --- a/code/datums/components/riding/riding_vehicle.dm +++ b/code/datums/components/riding/riding_vehicle.dm @@ -148,7 +148,7 @@ if(rider.m_intent == MOVE_INTENT_WALK) vehicle_move_delay += 0.6 -/datum/component/riding/vehicle/scooter/skateboard/proc/check_knockoff(datum/source, obj/item/projectile) +/datum/component/riding/vehicle/scooter/skateboard/proc/check_knockoff(datum/source, obj/projectile) SIGNAL_HANDLER // COMSIG_ATOM_BULLET_ACT if(!istype(parent, /obj/tgvehicle/scooter/skateboard)) return diff --git a/code/datums/components/shielded.dm b/code/datums/components/shielded.dm index 862cc5ea372..010e675e98a 100644 --- a/code/datums/components/shielded.dm +++ b/code/datums/components/shielded.dm @@ -154,7 +154,7 @@ var/charge_loss = 1 // how many charges do we lose if(isprojectile(hitby)) - var/obj/item/projectile/P = hitby + var/obj/projectile/P = hitby if(P.shield_buster) charge_loss = 3 if(lose_multiple_charges) diff --git a/code/datums/components/squeak.dm b/code/datums/components/squeak.dm index 0583c1f8a4f..ff7301435bb 100644 --- a/code/datums/components/squeak.dm +++ b/code/datums/components/squeak.dm @@ -94,7 +94,7 @@ if(I.flags & ABSTRACT) return if(isprojectile(entered)) - var/obj/item/projectile/P = entered + var/obj/projectile/P = entered if(P.original != parent) return if(ismob(source)) diff --git a/code/datums/diseases/wizard_diseases.dm b/code/datums/diseases/wizard_diseases.dm index e27e6cda287..2208317452e 100644 --- a/code/datums/diseases/wizard_diseases.dm +++ b/code/datums/diseases/wizard_diseases.dm @@ -156,7 +156,7 @@ /datum/disease/wand_rot/proc/sneeze_fireballs() var/fuck_you_dir = pick(GLOB.alldirs) var/turf/target_tile = get_edge_target_turf(affected_mob, fuck_you_dir) - var/obj/item/projectile/magic/fireball/FB = new /obj/item/projectile/magic/fireball(affected_mob.loc) + var/obj/projectile/magic/fireball/FB = new /obj/projectile/magic/fireball(affected_mob.loc) FB.current = get_turf(affected_mob) FB.original = target_tile FB.firer = affected_mob diff --git a/code/datums/elements/relay_attackers.dm b/code/datums/elements/relay_attackers.dm index 524bb619b8f..4b21b241fe3 100644 --- a/code/datums/elements/relay_attackers.dm +++ b/code/datums/elements/relay_attackers.dm @@ -65,7 +65,7 @@ return /// Even if another component blocked this hit, someone still shot at us -/datum/element/relay_attackers/proc/on_bullet_act(atom/target, obj/item/projectile/hit_projectile) +/datum/element/relay_attackers/proc/on_bullet_act(atom/target, obj/projectile/hit_projectile) SIGNAL_HANDLER // COMSIG_ATOM_BULLET_ACT if(!hit_projectile.is_hostile_projectile()) return diff --git a/code/datums/proximity/singulo_proximity_monitor.dm b/code/datums/proximity/singulo_proximity_monitor.dm index e7b870ba346..3d9e09d5c61 100644 --- a/code/datums/proximity/singulo_proximity_monitor.dm +++ b/code/datums/proximity/singulo_proximity_monitor.dm @@ -8,7 +8,7 @@ var/angle_to_singulo = ATAN2(host.y - source.y, host.x - source.x) var/distance_to_singulo = get_dist(source, host) - var/obj/item/projectile/P = entered + var/obj/projectile/P = entered var/distance = distance_to_singulo var/projectile_angle = P.Angle var/angle_to_projectile = angle_to_singulo diff --git a/code/datums/spells/alien_spells/neurotoxin_spit.dm b/code/datums/spells/alien_spells/neurotoxin_spit.dm index 55048177d82..79290eacacf 100644 --- a/code/datums/spells/alien_spells/neurotoxin_spit.dm +++ b/code/datums/spells/alien_spells/neurotoxin_spit.dm @@ -5,7 +5,7 @@ plasma_cost = 50 selection_activated_message = "Your prepare some neurotoxin!" selection_deactivated_message = "You swallow your prepared neurotoxin." - var/neurotoxin_type = /obj/item/projectile/bullet/neurotoxin + var/neurotoxin_type = /obj/projectile/bullet/neurotoxin action_icon_state = "alien_neurotoxin_0" /datum/spell/alien_spell/neurotoxin/create_new_targeting() @@ -24,7 +24,7 @@ if(!istype(U) || !istype(T)) return FALSE - var/obj/item/projectile/bullet/neurotoxin/neurotoxin = new neurotoxin_type(user.loc) + var/obj/projectile/bullet/neurotoxin/neurotoxin = new neurotoxin_type(user.loc) neurotoxin.current = get_turf(user) neurotoxin.original = target neurotoxin.firer = user @@ -36,5 +36,5 @@ /datum/spell/alien_spell/neurotoxin/death_to_xenos desc = "This ability allows you to fire some neurotoxin. Knocks aliens down." - neurotoxin_type = /obj/item/projectile/bullet/anti_alien_toxin + neurotoxin_type = /obj/projectile/bullet/anti_alien_toxin base_cooldown = 2 SECONDS diff --git a/code/datums/spells/construct_spells.dm b/code/datums/spells/construct_spells.dm index e1b2c59643e..78937804090 100644 --- a/code/datums/spells/construct_spells.dm +++ b/code/datums/spells/construct_spells.dm @@ -126,7 +126,7 @@ holy_area_cancast = FALSE //Stops cult magic from working on holy ground eg: chapel proj_lifespan = 10 proj_step_delay = 5 - proj_type = /obj/item/projectile/magic/magic_missile/lesser + proj_type = /obj/projectile/magic/magic_missile/lesser /datum/spell/projectile/magic_missile/lesser/create_new_targeting() var/datum/spell_targeting/targeted/T = new() @@ -135,7 +135,7 @@ T.max_targets = 6 return T -/obj/item/projectile/magic/magic_missile/lesser +/obj/projectile/magic/magic_missile/lesser name = "lesser magic missile" knockdown = 6 SECONDS weaken = 0 diff --git a/code/datums/spells/infinite_guns.dm b/code/datums/spells/infinite_guns.dm index 108cd977291..73778f8eef9 100644 --- a/code/datums/spells/infinite_guns.dm +++ b/code/datums/spells/infinite_guns.dm @@ -44,5 +44,5 @@ ammo_type = /obj/item/ammo_casing/magic/arcane_barrage/fireball /obj/item/ammo_casing/magic/arcane_barrage/fireball - projectile_type = /obj/item/projectile/magic/fireball + projectile_type = /obj/projectile/magic/fireball muzzle_flash_effect = null diff --git a/code/datums/spells/projectile_spell.dm b/code/datums/spells/projectile_spell.dm index 07e83ec6686..192a65d4365 100644 --- a/code/datums/spells/projectile_spell.dm +++ b/code/datums/spells/projectile_spell.dm @@ -25,7 +25,7 @@ for(var/mob/living/target in targets) spawn(0) - var/obj/item/projectile/projectile = new proj_type(get_turf(user)) + var/obj/projectile/projectile = new proj_type(get_turf(user)) projectile.icon = proj_icon projectile.icon_state = proj_icon_state projectile.dir = get_dir(target, projectile) diff --git a/code/datums/spells/wizard_spells.dm b/code/datums/spells/wizard_spells.dm index c8fd91e7374..53bafc0f5a9 100644 --- a/code/datums/spells/wizard_spells.dm +++ b/code/datums/spells/wizard_spells.dm @@ -10,7 +10,7 @@ proj_icon_state = "magicm" proj_name = "a magic missile" proj_lingering = 1 - proj_type = /obj/item/projectile/magic/magic_missile + proj_type = /obj/projectile/magic/magic_missile proj_lifespan = 20 proj_step_delay = 2 @@ -29,7 +29,7 @@ T.max_targets = INFINITY return T -/obj/item/projectile/magic/magic_missile +/obj/projectile/magic/magic_missile name = "Magic Missile" hitsound = 'sound/magic/mm_hit.ogg' weaken = 6 SECONDS @@ -48,7 +48,7 @@ proj_icon_state = "bike_horn" proj_name = "A bike horn" proj_lingering = 1 - proj_type = /obj/item/projectile/magic/magic_missile/honk_missile + proj_type = /obj/projectile/magic/magic_missile/honk_missile proj_lifespan = 20 proj_step_delay = 5 @@ -68,7 +68,7 @@ T.max_targets = INFINITY return T -/obj/item/projectile/magic/magic_missile/honk_missile +/obj/projectile/magic/magic_missile/honk_missile name = "Funny Missile" hitsound = 'sound/items/bikehorn.ogg' @@ -324,7 +324,7 @@ selection_activated_message = "You prepare to cast your fireball spell! Left-click to cast at a target!" selection_deactivated_message = "You extinguish your fireball...for now." - var/fireball_type = /obj/item/projectile/magic/fireball + var/fireball_type = /obj/projectile/magic/fireball action_icon_state = "fireball0" sound = 'sound/magic/fireball.ogg' @@ -350,7 +350,7 @@ if(!isturf(U) || !isturf(T)) return FALSE - var/obj/item/projectile/magic/fireball/FB = new fireball_type(user.loc) + var/obj/projectile/magic/fireball/FB = new fireball_type(user.loc) FB.current = get_turf(user) FB.original = target FB.firer = user @@ -364,7 +364,7 @@ name = "Homing Toolbox" desc = "This spell summons and throws a magical homing toolbox at your opponent." sound = 'sound/weapons/smash.ogg' - fireball_type = /obj/item/projectile/homing/magic/toolbox + fireball_type = /obj/projectile/homing/magic/toolbox invocation = "ROBUSTIO!" selection_activated_message = "You prepare to cast your homing toolbox! Left-click to cast at a target!" @@ -374,7 +374,7 @@ name = "Greater Homing Fireball" desc = "This spell fires a strong homing fireball at a target." invocation = "ZI-ONI SOMA" - fireball_type = /obj/item/projectile/homing/magic/homing_fireball + fireball_type = /obj/projectile/homing/magic/homing_fireball selection_activated_message = "You prepare to cast your greater homing fireball spell! Left-click to cast at a target!" diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm index 0d5f225e486..794d90b7444 100644 --- a/code/datums/status_effects/buffs.dm +++ b/code/datums/status_effects/buffs.dm @@ -922,8 +922,8 @@ if(L.affects_vampire(owner)) L.adjust_bodytemperature(-1.5 * TEMPERATURE_DAMAGE_COEFFICIENT) continue - if(istype(AM, /obj/item/projectile)) - var/obj/item/projectile/P = AM + if(istype(AM, /obj/projectile)) + var/obj/projectile/P = AM if(P.flag == ENERGY || P.flag == LASER) P.damage *= 0.85 diff --git a/code/game/atoms.dm b/code/game/atoms.dm index acc3ea44fe5..eacca1640af 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -381,7 +381,7 @@ /atom/proc/water_act(volume, temperature, source, method = REAGENT_TOUCH) //amount of water acting : temperature of water in kelvin : object that called it (for shennagins) return TRUE -/atom/proc/bullet_act(obj/item/projectile/P, def_zone) +/atom/proc/bullet_act(obj/projectile/P, def_zone) SEND_SIGNAL(src, COMSIG_ATOM_BULLET_ACT, P, def_zone) . = P.on_hit(src, 0, def_zone) @@ -1213,7 +1213,7 @@ GLOBAL_LIST_EMPTY(blood_splatter_icons) /atom/proc/zap_act(power, zap_flags) return -/atom/proc/handle_ricochet(obj/item/projectile/ricocheting_projectile) +/atom/proc/handle_ricochet(obj/projectile/ricocheting_projectile) var/turf/p_turf = get_turf(ricocheting_projectile) var/face_direction = get_dir(src, p_turf) || get_dir(src, ricocheting_projectile) var/face_angle = dir2angle(face_direction) @@ -1451,7 +1451,7 @@ GLOBAL_LIST_EMPTY(blood_splatter_icons) . = !density -/atom/proc/atom_prehit(obj/item/projectile/P) +/atom/proc/atom_prehit(obj/projectile/P) return SEND_SIGNAL(src, COMSIG_ATOM_PREHIT, P) /// Passes Stat Browser Panel clicks to the game and calls client click on an atom diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index 1f33e89a855..bcb138e8cfe 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -461,7 +461,7 @@ // Hit by a projectile if(isprojectile(hitby)) - var/obj/item/projectile/P = hitby + var/obj/projectile/P = hitby var/shatter_chance = 0 // Percent chance of the shield shattering on a projectile hit var/threshold // Depends on the damage Type (Brute or Burn) if(P.damage_type == BRUTE) @@ -663,17 +663,17 @@ ammo_type = /obj/item/ammo_casing/magic/arcane_barrage/blood /obj/item/ammo_casing/magic/arcane_barrage/blood - projectile_type = /obj/item/projectile/magic/arcane_barrage/blood + projectile_type = /obj/projectile/magic/arcane_barrage/blood muzzle_flash_effect = /obj/effect/temp_visual/emp/cult -/obj/item/projectile/magic/arcane_barrage/blood +/obj/projectile/magic/arcane_barrage/blood name = "blood bolt" icon_state = "blood_bolt" damage_type = BRUTE impact_effect_type = /obj/effect/temp_visual/dir_setting/bloodsplatter hitsound = 'sound/effects/splat.ogg' -/obj/item/projectile/magic/arcane_barrage/blood/prehit(atom/target) +/obj/projectile/magic/arcane_barrage/blood/prehit(atom/target) if(IS_CULTIST(target)) damage = 0 nodamage = TRUE diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm index a13c4ed2fc8..9e6758e28b5 100644 --- a/code/game/gamemodes/malfunction/Malf_Modules.dm +++ b/code/game/gamemodes/malfunction/Malf_Modules.dm @@ -359,7 +359,7 @@ var/turf/T = get_turf(turret) if(is_station_level(T.z)) turret.health += 30 - turret.eprojectile = /obj/item/projectile/beam/laser/ai_turret/heavylaser //Once you see it, you will know what it means to FEAR. + turret.eprojectile = /obj/projectile/beam/laser/ai_turret/heavylaser //Once you see it, you will know what it means to FEAR. turret.eshot_sound = 'sound/weapons/lasercannonfire.ogg' AI.turrets_upgraded = TRUE @@ -691,7 +691,7 @@ //If turrets are already upgraded, beef it up if(user.turrets_upgraded) turret.health += 30 - turret.eprojectile = /obj/item/projectile/beam/laser/ai_turret/heavylaser //Big gun + turret.eprojectile = /obj/projectile/beam/laser/ai_turret/heavylaser //Big gun turret.eshot_sound = 'sound/weapons/lasercannonfire.ogg' if(do_after_once(user, 5 SECONDS, target = T, allow_moving = TRUE)) //Once this is done, turret is armed and dangerous diff --git a/code/game/gamemodes/miniantags/demons/shadow_demon/shadow_demon.dm b/code/game/gamemodes/miniantags/demons/shadow_demon/shadow_demon.dm index c68be3da098..5a75c97211a 100644 --- a/code/game/gamemodes/miniantags/demons/shadow_demon/shadow_demon.dm +++ b/code/game/gamemodes/miniantags/demons/shadow_demon/shadow_demon.dm @@ -201,7 +201,7 @@ name = "Shadow Grapple" desc = "Fire one of your hands, if it hits a person it pulls them in. If you hit a structure you get pulled to the structure. Any light source hit with this will be disabled in a two tile radius." base_cooldown = 10 SECONDS - fireball_type = /obj/item/projectile/magic/shadow_hand + fireball_type = /obj/projectile/magic/shadow_hand selection_activated_message = "You raise your hand, full of demonic energy! Left-click to cast at a target!" selection_deactivated_message = "You re-absorb the energy...for now." @@ -215,20 +215,20 @@ /datum/spell/fireball/shadow_grapple/update_spell_icon() return -/obj/item/projectile/magic/shadow_hand +/obj/projectile/magic/shadow_hand name = "shadow hand" icon_state = "shadow_hand" plane = FLOOR_PLANE hitsound = 'sound/shadowdemon/shadowattack1.ogg' // Plays when hitting something living or a light var/hit = FALSE -/obj/item/projectile/magic/shadow_hand/pixel_move(trajectory_multiplier, hitscanning) +/obj/projectile/magic/shadow_hand/pixel_move(trajectory_multiplier, hitscanning) . = ..() var/obj/machinery/light/floor/floor_light = locate(/obj/machinery/light/floor) in get_turf(src) if(floor_light) Bump(floor_light) -/obj/item/projectile/magic/shadow_hand/fire(setAngle) +/obj/projectile/magic/shadow_hand/fire(setAngle) if(firer) var/mob/living/simple_animal/demon/shadow/current_demon = firer if(istype(current_demon)) @@ -236,7 +236,7 @@ firer.Beam(src, icon_state = "grabber_beam", time = INFINITY, maxdistance = INFINITY, beam_type = /obj/effect/ebeam/floor) return ..() -/obj/item/projectile/magic/shadow_hand/on_hit(atom/target, blocked, hit_zone) +/obj/projectile/magic/shadow_hand/on_hit(atom/target, blocked, hit_zone) if(hit) return hit = TRUE // to prevent double hits from the pull @@ -258,12 +258,12 @@ L.apply_damage(40, BRUTE, BODY_ZONE_CHEST) L.throw_at(get_step(firer, get_dir(firer, target)), 50, 10) -/obj/item/projectile/magic/shadow_hand/Destroy() +/obj/projectile/magic/shadow_hand/Destroy() if(!hit) unblock_shadowdemon_crawl() return ..() -/obj/item/projectile/magic/shadow_hand/proc/unblock_shadowdemon_crawl() +/obj/projectile/magic/shadow_hand/proc/unblock_shadowdemon_crawl() var/mob/living/simple_animal/demon/shadow/current_demon = firer if(istype(current_demon)) current_demon.unblock_shadow_crawl() diff --git a/code/game/gamemodes/miniantags/guardian/types/protector.dm b/code/game/gamemodes/miniantags/guardian/types/protector.dm index 39db9deeb97..6ab3420209c 100644 --- a/code/game/gamemodes/miniantags/guardian/types/protector.dm +++ b/code/game/gamemodes/miniantags/guardian/types/protector.dm @@ -127,7 +127,7 @@ return TRUE return FALSE -/obj/effect/guardianshield/bullet_act(obj/item/projectile/P) +/obj/effect/guardianshield/bullet_act(obj/projectile/P) if(!P) return linked_guardian.apply_damage(P.damage, P.damage_type) diff --git a/code/game/gamemodes/miniantags/guardian/types/ranged.dm b/code/game/gamemodes/miniantags/guardian/types/ranged.dm index 31796fb0a11..d82d279097e 100644 --- a/code/game/gamemodes/miniantags/guardian/types/ranged.dm +++ b/code/game/gamemodes/miniantags/guardian/types/ranged.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/guardian +/obj/projectile/guardian name = "crystal spray" icon_state = "guardian" damage = 20 @@ -8,7 +8,7 @@ friendly = "quietly assesses" melee_damage_lower = 10 melee_damage_upper = 10 - projectiletype = /obj/item/projectile/guardian + projectiletype = /obj/projectile/guardian ranged_cooldown_time = 5 //fast! projectilesound = 'sound/effects/hit_on_shattered_glass.ogg' ranged = TRUE diff --git a/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm b/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm index f83fefaa147..19b69942a0d 100644 --- a/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm +++ b/code/game/gamemodes/miniantags/pulsedemon/pulsedemon.dm @@ -829,10 +829,10 @@ /mob/living/simple_animal/demon/pulse_demon/CanPass(atom/movable/mover, border_dir) . = ..() - if(istype(mover, /obj/item/projectile/ion)) + if(istype(mover, /obj/projectile/ion)) return FALSE -/mob/living/simple_animal/demon/pulse_demon/bullet_act(obj/item/projectile/proj) +/mob/living/simple_animal/demon/pulse_demon/bullet_act(obj/projectile/proj) if(proj.damage_type == BURN) regen_lock = max(regen_lock, 1) return ..() diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index 8f197336525..01954660639 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -65,7 +65,7 @@ else if(isprojectile(mover)) if(!anchored) return TRUE - var/obj/item/projectile/proj = mover + var/obj/projectile/proj = mover if(directional_blockage) if(one_eighty_check(mover)) return FALSE @@ -275,7 +275,7 @@ ..() take_damage(40 / severity, BRUTE) //chances are the EMP will also hit the generator, we don't want it to double up too heavily -/obj/structure/barricade/dropwall/bullet_act(obj/item/projectile/P) +/obj/structure/barricade/dropwall/bullet_act(obj/projectile/P) if(P.shield_buster) qdel(src) else @@ -381,7 +381,7 @@ else return ..() -/obj/structure/dropwall_generator/bullet_act(obj/item/projectile/P) +/obj/structure/dropwall_generator/bullet_act(obj/projectile/P) if(!protected) return ..() else @@ -455,7 +455,7 @@ /obj/structure/barricade/dropwall/firewall/proc/on_atom_entered(datum/source, atom/movable/entered) if(!isprojectile(entered)) return - var/obj/item/projectile/P = entered + var/obj/projectile/P = entered P.immolate ++ /obj/item/grenade/turret @@ -497,7 +497,7 @@ . += "It would need [(5 - foam_level)] more blobs of foam to fully block the airlock." /obj/structure/barricade/foam/CanPass(atom/movable/mover, border_dir) - return istype(mover, /obj/item/projectile/c_foam) // Only c_foam blobs hit the airlock underneat/pass through the foam. The rest is hitting the barricade + return istype(mover, /obj/projectile/c_foam) // Only c_foam blobs hit the airlock underneat/pass through the foam. The rest is hitting the barricade /obj/structure/barricade/foam/welder_act(mob/user, obj/item/I) return FALSE diff --git a/code/game/machinery/portable_tag_turret.dm b/code/game/machinery/portable_tag_turret.dm index 276c70c0d0c..a5499f30b1d 100644 --- a/code/game/machinery/portable_tag_turret.dm +++ b/code/game/machinery/portable_tag_turret.dm @@ -36,16 +36,16 @@ ) return data -/obj/machinery/porta_turret/tag/bullet_act(obj/item/projectile/P) +/obj/machinery/porta_turret/tag/bullet_act(obj/projectile/P) ..() if(!disabled) if(team_color == "blue") - if(istype(P, /obj/item/projectile/beam/lasertag/redtag)) + if(istype(P, /obj/projectile/beam/lasertag/redtag)) disabled = TRUE spawn(100) disabled = FALSE else if(team_color == "red") - if(istype(P, /obj/item/projectile/beam/lasertag/bluetag)) + if(istype(P, /obj/projectile/beam/lasertag/bluetag)) disabled = TRUE spawn(100) disabled = FALSE diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index b4603fad18a..2600b0fddb0 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -150,7 +150,7 @@ if(/obj/item/gun/energy/laser/practice) lethal_is_configurable = FALSE iconholder = 1 - eprojectile = /obj/item/projectile/beam + eprojectile = /obj/projectile/beam if(/obj/item/gun/energy/laser/retro) iconholder = 1 @@ -163,26 +163,26 @@ if(/obj/item/gun/energy/taser) lethal_is_configurable = FALSE - eprojectile = /obj/item/projectile/beam + eprojectile = /obj/projectile/beam eshot_sound = 'sound/weapons/laser.ogg' if(/obj/item/gun/energy/gun) - eprojectile = /obj/item/projectile/beam //If it has, going to kill mode + eprojectile = /obj/projectile/beam //If it has, going to kill mode eshot_sound = 'sound/weapons/laser.ogg' egun = 1 if(/obj/item/gun/energy/gun/nuclear) - eprojectile = /obj/item/projectile/beam //If it has, going to kill mode + eprojectile = /obj/projectile/beam //If it has, going to kill mode eshot_sound = 'sound/weapons/laser.ogg' egun = 1 if(/obj/item/gun/energy/gun/turret) - eprojectile = /obj/item/projectile/beam //If it has, going to copypaste mode + eprojectile = /obj/projectile/beam //If it has, going to copypaste mode eshot_sound = 'sound/weapons/laser.ogg' egun = 1 if(/obj/item/gun/energy/pulse/turret) - eprojectile = /obj/item/projectile/beam/pulse/hitscan + eprojectile = /obj/projectile/beam/pulse/hitscan eshot_sound = 'sound/weapons/pulse.ogg' if(initial_eprojectile) eprojectile = initial_eprojectile @@ -535,7 +535,7 @@ if(health <= 0) Destroy() -/obj/machinery/porta_turret/bullet_act(obj/item/projectile/Proj) +/obj/machinery/porta_turret/bullet_act(obj/projectile/Proj) if(Proj.damage_type == STAMINA) return @@ -835,7 +835,7 @@ return update_icon(UPDATE_ICON_STATE) - var/obj/item/projectile/A + var/obj/projectile/A if(emagged || lethal) if(eprojectile) A = new eprojectile(loc) @@ -868,11 +868,11 @@ return A /obj/machinery/porta_turret/ai_turret - initial_eprojectile = /obj/item/projectile/beam/laser/ai_turret + initial_eprojectile = /obj/projectile/beam/laser/ai_turret /obj/machinery/porta_turret/ai_turret/disable name = "hallway turret" - initial_projectile = /obj/item/projectile/beam/disabler + initial_projectile = /obj/projectile/beam/disabler /obj/machinery/porta_turret/centcom name = "\improper Centcomm turret" @@ -1123,8 +1123,8 @@ /obj/machinery/porta_turret/syndicate icon_state = "syndie_off" base_icon_state = "syndie" - projectile = /obj/item/projectile/bullet - eprojectile = /obj/item/projectile/bullet + projectile = /obj/projectile/bullet + eprojectile = /obj/projectile/bullet // Syndicate turrets *always* operate in lethal mode. // So, nothing, not even emagging them, makes them switch bullet type. // So, its best to always have their projectile and eprojectile settings be the same. That way, you know what they will shoot. @@ -1187,14 +1187,14 @@ /obj/machinery/porta_turret/syndicate/pod health = 90 - projectile = /obj/item/projectile/bullet/weakbullet3 - eprojectile = /obj/item/projectile/bullet/weakbullet3 + projectile = /obj/projectile/bullet/weakbullet3 + eprojectile = /obj/projectile/bullet/weakbullet3 /obj/machinery/porta_turret/syndicate/interior name = "machine gun turret (.45)" desc = "Syndicate interior defense turret chambered for .45 rounds. Designed to down intruders without damaging the hull." - projectile = /obj/item/projectile/bullet/midbullet - eprojectile = /obj/item/projectile/bullet/midbullet + projectile = /obj/projectile/bullet/midbullet + eprojectile = /obj/projectile/bullet/midbullet /obj/machinery/porta_turret/syndicate/exterior name = "machine gun turret (7.62)" @@ -1203,21 +1203,21 @@ /obj/machinery/porta_turret/syndicate/turret_outpost name = "machine gun turret (5.56x45mm)" desc = "Syndicate exterior defense turret chambered for 5.56x45mm rounds. Designed to down intruders with rifle caliber bullets." - projectile = /obj/item/projectile/bullet/heavybullet2 - eprojectile = /obj/item/projectile/bullet/heavybullet2 + projectile = /obj/projectile/bullet/heavybullet2 + eprojectile = /obj/projectile/bullet/heavybullet2 /obj/machinery/porta_turret/syndicate/grenade name = "mounted grenade launcher (40mm)" desc = "Syndicate 40mm grenade launcher defense turret. If you've had this much time to look at it, you're probably already dead." - projectile = /obj/item/projectile/bullet/a40mm - eprojectile = /obj/item/projectile/bullet/a40mm + projectile = /obj/projectile/bullet/a40mm + eprojectile = /obj/projectile/bullet/a40mm /obj/machinery/porta_turret/syndicate/assault_pod name = "machine gun turret (4.6x30mm)" desc = "Syndicate exterior defense turret chambered for 4.6x30mm rounds. Designed to be fitted to assault pods, it uses low calliber bullets to save space." health = 150 - projectile = /obj/item/projectile/bullet/weakbullet3 - eprojectile = /obj/item/projectile/bullet/weakbullet3 + projectile = /obj/projectile/bullet/weakbullet3 + eprojectile = /obj/projectile/bullet/weakbullet3 /obj/machinery/porta_turret/syndicate/pod/nuke_ship_interior health = 150 @@ -1227,8 +1227,8 @@ desc = "Looks cheaply made on the defensive side but the gun barrel still shoots." icon_state = "syndie_off" base_icon_state = "syndie" - projectile = /obj/item/projectile/bullet/weakbullet3 - eprojectile = /obj/item/projectile/bullet/weakbullet3 + projectile = /obj/projectile/bullet/weakbullet3 + eprojectile = /obj/projectile/bullet/weakbullet3 shot_sound = 'sound/weapons/gunshots/gunshot_mg.ogg' eshot_sound = 'sound/weapons/gunshots/gunshot_mg.ogg' health = 100 diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 2ed5256816d..6ef847ec2b8 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -454,7 +454,7 @@ deactivate() return ..() -/obj/machinery/shieldwallgen/bullet_act(obj/item/projectile/Proj) +/obj/machinery/shieldwallgen/bullet_act(obj/projectile/Proj) stored_power -= Proj.damage ..() return @@ -506,7 +506,7 @@ gen_secondary.stored_power = max(gen_secondary.stored_power - 10, 0) -/obj/machinery/shieldwall/bullet_act(obj/item/projectile/Proj) +/obj/machinery/shieldwall/bullet_act(obj/projectile/Proj) if(needs_power) var/obj/machinery/shieldwallgen/G if(prob(50)) @@ -590,7 +590,7 @@ phaseout() return ..() -/obj/machinery/shieldwall/syndicate/bullet_act(obj/item/projectile/Proj) +/obj/machinery/shieldwall/syndicate/bullet_act(obj/projectile/Proj) phaseout() return ..() diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index b6a82bb2f19..05467ae7e6c 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -41,7 +41,7 @@ set_ready_state(0) for(var/i=1 to get_shot_amount()) - var/obj/item/projectile/A = new projectile(curloc) + var/obj/projectile/A = new projectile(curloc) A.firer = chassis.occupant A.firer_source_atom = src A.original = target @@ -75,7 +75,7 @@ icon_state = "mecha_firedart" origin_tech = "magnets=3;combat=3;engineering=3" energy_drain = 30 - projectile = /obj/item/projectile/beam + projectile = /obj/projectile/beam fire_sound = 'sound/weapons/laser.ogg' harmful = TRUE @@ -85,7 +85,7 @@ desc = "A weapon for combat exosuits. Shoots basic disablers." icon_state = "mecha_disabler" energy_drain = 30 - projectile = /obj/item/projectile/beam/disabler + projectile = /obj/projectile/beam/disabler fire_sound = 'sound/weapons/taser2.ogg' /obj/item/mecha_parts/mecha_equipment/weapon/energy/laser/heavy @@ -94,7 +94,7 @@ icon_state = "mecha_solaris" origin_tech = "magnets=4;combat=4;engineering=3" energy_drain = 60 - projectile = /obj/item/projectile/beam/laser/heavylaser + projectile = /obj/projectile/beam/laser/heavylaser fire_sound = 'sound/weapons/lasercannonfire.ogg' /obj/item/mecha_parts/mecha_equipment/weapon/energy/shotgun_disabler @@ -104,7 +104,7 @@ icon_state = "mecha_disabler_shotgun" origin_tech = "materials=4;combat=5;" energy_drain = 30 // This is per shot + 1x cost, so 300 per shot - projectile = /obj/item/projectile/beam/disabler/pellet + projectile = /obj/projectile/beam/disabler/pellet projectiles_per_shot = 9 variance = 40 fire_sound = 'sound/weapons/taser2.ogg' @@ -116,7 +116,7 @@ icon_state = "mecha_laser_shotgun" origin_tech = "materials=4;combat=5;" energy_drain = 35 // This is per shot + 1x cost, so 560 per shot - projectile = /obj/item/projectile/beam/scatter/eshotgun + projectile = /obj/projectile/beam/scatter/eshotgun projectiles_per_shot = 15 variance = 40 fire_sound = 'sound/weapons/lasercannonfire.ogg' @@ -128,7 +128,7 @@ icon_state = "mecha_ion" origin_tech = "materials=4;combat=5;magnets=4" energy_drain = 215 // This is per shot + 1x cost, so ~1500 per shotgun shot - projectile = /obj/item/projectile/ion/weak + projectile = /obj/projectile/ion/weak projectiles_per_shot = 6 variance = 40 fire_sound = 'sound/weapons/ionrifle.ogg' @@ -145,7 +145,7 @@ icon_state = "mecha_teslacannon" origin_tech = "materials=4;engineering=4;combat=6;magnets=6" energy_drain = 500 - projectile = /obj/item/projectile/energy/tesla_bolt + projectile = /obj/projectile/energy/tesla_bolt fire_sound = 'sound/magic/lightningbolt.ogg' harmful = TRUE @@ -156,7 +156,7 @@ icon_state = "mecha_xray" origin_tech = "materials=3;combat=5;magnets=2;syndicate=2" energy_drain = 80 - projectile = /obj/item/projectile/beam/xray + projectile = /obj/projectile/beam/xray fire_sound = 'sound/weapons/laser3.ogg' harmful = TRUE @@ -172,7 +172,7 @@ icon_state = "mecha_immolator" origin_tech = "materials=4;engineering=4;combat=6;magnets=6" energy_drain = 80 - projectile = /obj/item/projectile/beam/immolator + projectile = /obj/projectile/beam/immolator fire_sound = 'sound/weapons/laser3.ogg' harmful = TRUE @@ -182,18 +182,18 @@ icon_state = "mecha_pulse" energy_drain = 120 origin_tech = "materials=3;combat=6;powerstorage=4" - projectile = /obj/item/projectile/beam/pulse/hitscan/heavy + projectile = /obj/projectile/beam/pulse/hitscan/heavy fire_sound = 'sound/weapons/marauder.ogg' harmful = TRUE -/obj/item/projectile/beam/pulse/hitscan/heavy +/obj/projectile/beam/pulse/hitscan/heavy name = "heavy pulse laser" icon_state = "pulse1_bl" var/life = 20 -/obj/item/projectile/beam/pulse/hitscan/heavy/Bump(atom/A) +/obj/projectile/beam/pulse/hitscan/heavy/Bump(atom/A) A.bullet_act(src, def_zone) life -= 10 if(ismob(A)) @@ -212,7 +212,7 @@ icon_state = "mecha_taser" origin_tech = "combat=3" energy_drain = 20 - projectile = /obj/item/projectile/energy/electrode + projectile = /obj/projectile/energy/electrode fire_sound = 'sound/weapons/taser.ogg' size = 1 @@ -303,7 +303,7 @@ name = "\improper FNX-66 Carbine" icon_state = "mecha_carbine" origin_tech = "materials=4;combat=4" - projectile = /obj/item/projectile/bullet/incendiary/shell/dragonsbreath + projectile = /obj/projectile/bullet/incendiary/shell/dragonsbreath fire_sound = 'sound/weapons/gunshots/gunshot_rifle.ogg' projectiles = 24 projectile_energy_cost = 15 @@ -314,7 +314,7 @@ name = "\improper S.H.H. \"Quietus\" Carbine" fire_sound = 'sound/weapons/gunshots/gunshot_silenced.ogg' icon_state = "mecha_mime" - projectile = /obj/item/projectile/bullet/mime/nonlethal + projectile = /obj/projectile/bullet/mime/nonlethal projectiles = 20 projectile_energy_cost = 50 @@ -328,7 +328,7 @@ name = "\improper LBX AC 10 \"Scattershot\"" icon_state = "mecha_scatter" origin_tech = "combat=4" - projectile = /obj/item/projectile/bullet/midbullet2 + projectile = /obj/projectile/bullet/midbullet2 fire_sound = 'sound/weapons/gunshots/gunshot_shotgun.ogg' projectiles = 40 projectile_energy_cost = 25 @@ -340,14 +340,14 @@ /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot/syndie //Version used for Dark Gygax name = "\improper LBX AC 20-r \"Scattershot .45\"" origin_tech = "combat=4;syndicate=2" //Crew is not going to get it normally anyways - projectile = /obj/item/projectile/bullet/midbullet + projectile = /obj/projectile/bullet/midbullet /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/lmg equip_cooldown = 1 SECONDS name = "\improper Ultra AC 2" icon_state = "mecha_uac2" origin_tech = "combat=4" - projectile = /obj/item/projectile/bullet/weakbullet3 + projectile = /obj/projectile/bullet/weakbullet3 fire_sound = 'sound/weapons/gunshots/gunshot_mg.ogg' projectiles = 300 projectile_energy_cost = 20 @@ -365,7 +365,7 @@ name = "\improper SRM-8 Light Missile Rack" icon_state = "mecha_missilerack_six" origin_tech = "combat=5;materials=4;engineering=4" - projectile = /obj/item/projectile/missile/light + projectile = /obj/projectile/missile/light fire_sound = 'sound/effects/bang.ogg' projectiles = 6 projectile_energy_cost = 1000 @@ -376,7 +376,7 @@ /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/heavy name = "\improper SRX-13 Heavy Missile Launcher" icon_state = "mecha_missilerack" - projectile = /obj/item/projectile/missile + projectile = /obj/projectile/missile projectiles = 9 /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/missile_rack/flashbang @@ -564,7 +564,7 @@ righthand_file = 'icons/mob/inhands/guns_righthand.dmi' energy_drain = 30 origin_tech = "materials=3;plasmatech=4;engineering=3" - projectile = /obj/item/projectile/plasma/adv/mech + projectile = /obj/projectile/plasma/adv/mech fire_sound = 'sound/weapons/laser.ogg' harmful = TRUE equip_cooldown = 1 SECONDS @@ -579,7 +579,7 @@ name = "\improper \"Little boy\" Mining Grenade Launcher" icon_state = "mining_launcher" origin_tech = "combat=5;materials=4;engineering=4" - projectile = /obj/item/projectile/bullet/reusable/mining_bomb/mecha + projectile = /obj/projectile/bullet/reusable/mining_bomb/mecha fire_sound = 'sound/effects/bang.ogg' energy_drain = 150 // cost a lot, but powerful miner tool equip_cooldown = 2 SECONDS diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index edf2eaf7ccd..bbcb846ebb3 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -642,7 +642,7 @@ add_attack_logs(locateUID(I.thrownby), OCCUPANT_LOGGING, "threw [AM] at mech [src]") . = ..() -/obj/mecha/bullet_act(obj/item/projectile/Proj) //wrapper +/obj/mecha/bullet_act(obj/projectile/Proj) //wrapper log_message("Hit by projectile. Type: [Proj.name]([Proj.flag]).") add_attack_logs(Proj.firer, OCCUPANT_LOGGING, "shot [Proj.name]([Proj.flag]) at mech [src]") if(Proj.shield_buster && istype(selected, /obj/item/mecha_parts/mecha_equipment/pulse_shield)) diff --git a/code/game/objects/effects/anomalies.dm b/code/game/objects/effects/anomalies.dm index 7490f7ca50e..50ed4b56edd 100644 --- a/code/game/objects/effects/anomalies.dm +++ b/code/game/objects/effects/anomalies.dm @@ -464,7 +464,7 @@ var/turf/U = get_turf(target) if(!T || !U) return - var/obj/item/projectile/temp/basilisk/O = new /obj/item/projectile/temp/basilisk(T) + var/obj/projectile/temp/basilisk/O = new /obj/projectile/temp/basilisk(T) playsound(get_turf(src), 'sound/weapons/taser2.ogg', 75, TRUE) if(drops_core) O.stun = 0.5 SECONDS diff --git a/code/game/objects/effects/effect_system/effects_smoke.dm b/code/game/objects/effects/effect_system/effects_smoke.dm index 4199d27440e..96847ec399a 100644 --- a/code/game/objects/effects/effect_system/effects_smoke.dm +++ b/code/game/objects/effects/effect_system/effects_smoke.dm @@ -129,8 +129,8 @@ causes_coughing = TRUE /obj/effect/particle_effect/smoke/bad/CanPass(atom/movable/mover, border_dir) - 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 TRUE diff --git a/code/game/objects/effects/effects.dm b/code/game/objects/effects/effects.dm index b3582b7a471..ab5b40d5cd8 100644 --- a/code/game/objects/effects/effects.dm +++ b/code/game/objects/effects/effects.dm @@ -61,7 +61,7 @@ armor = list(MELEE = 100, BULLET = 100, LASER = 100, ENERGY = 100, BOMB = 100, RAD = 100, FIRE = 100, ACID = 100) // Most of these overrides procs below are overkill, but better safe than sorry. -/obj/effect/abstract/bullet_act(obj/item/projectile/P) +/obj/effect/abstract/bullet_act(obj/projectile/P) return /obj/effect/abstract/decompile_act(obj/item/matter_decompiler/C, mob/user) diff --git a/code/game/objects/explosion.dm b/code/game/objects/explosion.dm index b3ffde3d1df..0ca168b027e 100644 --- a/code/game/objects/explosion.dm +++ b/code/game/objects/explosion.dm @@ -286,10 +286,10 @@ * Creates an explosion of shrapnel at a turf. * - /turf/epicenter - where the explosion occurs * - shrapnel_number - the amount of shrapnel to create - * - /obj/item/projectile/shrapnel_type - the type of shrapnel bullets to shoot + * - /obj/projectile/shrapnel_type - the type of shrapnel bullets to shoot * - chance_to_hit_same_turf - the probability to hit someone on the same turf, doubled for someone lying down */ -/proc/create_shrapnel(turf/epicenter, shrapnel_number = 10, obj/item/projectile/shrapnel_type = /obj/item/projectile/bullet/shrapnel, chance_to_hit_same_turf = 50) +/proc/create_shrapnel(turf/epicenter, shrapnel_number = 10, obj/projectile/shrapnel_type = /obj/projectile/bullet/shrapnel, chance_to_hit_same_turf = 50) epicenter = get_turf(epicenter) if(!epicenter || !shrapnel_number || !shrapnel_type) return @@ -306,7 +306,7 @@ mob_lying_on_turf = M for(var/i in 1 to shrapnel_number) - var/obj/item/projectile/Shrapnel = new shrapnel_type(epicenter) + var/obj/projectile/Shrapnel = new shrapnel_type(epicenter) // You can't just stand over a shrapnel explosion to avoid it if(mob_standing_on_turf && prob(chance_to_hit_same_turf)) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 6bd6bc7a0d7..6c68c48fb62 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -217,6 +217,8 @@ GLOBAL_DATUM_INIT(welding_sparks, /mutable_appearance, mutable_appearance('icons new path(src) if(isstorage(loc)) //marks all items in storage as being such in_storage = TRUE + if(sharp) + AddComponent(/datum/component/surgery_initiator) /// This proc is used to add text for items with ABSTRACT flag after default examine text. /obj/item/proc/customised_abstract_text(mob/living/carbon/owner) diff --git a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm index 1a156199a53..fde5ba4fe2f 100644 --- a/code/game/objects/items/cardboard_cutouts.dm +++ b/code/game/objects/items/cardboard_cutouts.dm @@ -64,7 +64,7 @@ if(prob(I.force)) push_over() -/obj/item/cardboard_cutout/bullet_act(obj/item/projectile/P) +/obj/item/cardboard_cutout/bullet_act(obj/projectile/P) visible_message("[src] is hit by [P]!") playsound(src, 'sound/weapons/slice.ogg', 50, 1) if(prob(P.damage)) diff --git a/code/game/objects/items/latexballoon.dm b/code/game/objects/items/latexballoon.dm index e081b8c9477..58c7c8dc9fb 100644 --- a/code/game/objects/items/latexballoon.dm +++ b/code/game/objects/items/latexballoon.dm @@ -49,7 +49,7 @@ if(prob(50)) qdel(src) -/obj/item/latexballon/bullet_act(obj/item/projectile/P) +/obj/item/latexballon/bullet_act(obj/projectile/P) if(!P.nodamage) burst() return ..() diff --git a/code/game/objects/items/shooting_range.dm b/code/game/objects/items/shooting_range.dm index 88f712cb6a5..e5431ef8987 100644 --- a/code/game/objects/items/shooting_range.dm +++ b/code/game/objects/items/shooting_range.dm @@ -78,11 +78,11 @@ #define DECALTYPE_SCORCH 1 #define DECALTYPE_BULLET 2 -/obj/item/target/bullet_act(obj/item/projectile/P) +/obj/item/target/bullet_act(obj/projectile/P) var/p_x = P.p_x + pick(0,0,0,0,0,-1,1) // really ugly way of coding "sometimes offset P.p_x!" var/p_y = P.p_y + pick(0,0,0,0,0,-1,1) var/decaltype = DECALTYPE_SCORCH - if(istype(P, /obj/item/projectile/bullet)) + if(istype(P, /obj/projectile/bullet)) decaltype = DECALTYPE_BULLET var/icon/C = icon(icon, icon_state) @@ -96,7 +96,7 @@ bullet_hole.pixel_x = p_x - 1 //offset correction bullet_hole.pixel_y = p_y - 1 if(decaltype == DECALTYPE_SCORCH) - if(P.damage >= 20 || istype(P, /obj/item/projectile/beam/practice)) + if(P.damage >= 20 || istype(P, /obj/projectile/beam/practice)) bullet_hole.dir = pick(NORTH,SOUTH,EAST,WEST) // random scorch design. light_scorch does not have different directions else bullet_hole.icon_state = "light_scorch" diff --git a/code/game/objects/items/weapons/c_foam_launcher.dm b/code/game/objects/items/weapons/c_foam_launcher.dm index 1c9ae12fcad..793ea31ceef 100644 --- a/code/game/objects/items/weapons/c_foam_launcher.dm +++ b/code/game/objects/items/weapons/c_foam_launcher.dm @@ -20,12 +20,12 @@ /obj/item/gun/projectile/c_foam_launcher/update_icon_state() icon_state = "c_foam_launcher[magazine ? "_loaded" : ""]" -/obj/item/projectile/c_foam +/obj/projectile/c_foam name = "blob of foam" icon_state = "foam_blob" damage = 0 -/obj/item/projectile/c_foam/on_hit(atom/target, blocked, hit_zone) +/obj/projectile/c_foam/on_hit(atom/target, blocked, hit_zone) . = ..() if(isairlock(target)) var/obj/machinery/door/airlock = target diff --git a/code/game/objects/items/weapons/chrono_eraser.dm b/code/game/objects/items/weapons/chrono_eraser.dm index 518ad8a757c..47972cd1f1c 100644 --- a/code/game/objects/items/weapons/chrono_eraser.dm +++ b/code/game/objects/items/weapons/chrono_eraser.dm @@ -117,7 +117,7 @@ TED.pass_mind(M) -/obj/item/projectile/energy/chrono_beam +/obj/projectile/energy/chrono_beam name = "eradication beam" icon_state = "chronobolt" range = CHRONO_BEAM_RANGE @@ -125,21 +125,21 @@ nodamage = 1 var/obj/item/gun/energy/chrono_gun/gun = null -/obj/item/projectile/energy/chrono_beam/fire() +/obj/projectile/energy/chrono_beam/fire() gun = firer.get_active_hand() if(istype(gun)) return ..() else return 0 -/obj/item/projectile/energy/chrono_beam/on_hit(atom/target) +/obj/projectile/energy/chrono_beam/on_hit(atom/target) if(target && gun && isliving(target)) var/obj/structure/chrono_field/F = new(target.loc, target, gun) gun.field_connect(F) /obj/item/ammo_casing/energy/chrono_beam name = "eradication beam" - projectile_type = /obj/item/projectile/energy/chrono_beam + projectile_type = /obj/projectile/energy/chrono_beam muzzle_flash_color = null icon = 'icons/obj/projectiles.dmi' icon_state = "chronobolt" @@ -228,9 +228,9 @@ qdel(src) -/obj/structure/chrono_field/bullet_act(obj/item/projectile/P) - if(istype(P, /obj/item/projectile/energy/chrono_beam)) - var/obj/item/projectile/energy/chrono_beam/beam = P +/obj/structure/chrono_field/bullet_act(obj/projectile/P) + if(istype(P, /obj/projectile/energy/chrono_beam)) + var/obj/projectile/energy/chrono_beam/beam = P var/obj/item/gun/energy/chrono_gun/Pgun = beam.gun if(Pgun && istype(Pgun)) Pgun.field_connect(src) diff --git a/code/game/objects/items/weapons/flamethrower.dm b/code/game/objects/items/weapons/flamethrower.dm index 8fb177ff5d2..da68ea7167e 100644 --- a/code/game/objects/items/weapons/flamethrower.dm +++ b/code/game/objects/items/weapons/flamethrower.dm @@ -292,7 +292,7 @@ create_with_tank = TRUE /obj/item/flamethrower/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - var/obj/item/projectile/P = hitby + var/obj/projectile/P = hitby if(damage && attack_type == PROJECTILE_ATTACK && P.damage_type != STAMINA && prob(15)) owner.visible_message("[attack_text] hits the fueltank on [owner]'s [src], rupturing it! What a shot!") var/turf/target_turf = get_turf(owner) diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index e8d5d406c68..a9fe2c2a708 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -115,7 +115,7 @@ prime() /obj/item/grenade/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) - var/obj/item/projectile/P = hitby + var/obj/projectile/P = hitby if(damage && attack_type == PROJECTILE_ATTACK && P.damage_type != STAMINA && prob(15)) owner.visible_message("[hitby] hits [owner]'s [name], setting it off! What a shot!") var/turf/T = get_turf(src) diff --git a/code/game/objects/items/weapons/grenades/frag.dm b/code/game/objects/items/weapons/grenades/frag.dm index a6c997cf2da..62c41fe1ba2 100644 --- a/code/game/objects/items/weapons/grenades/frag.dm +++ b/code/game/objects/items/weapons/grenades/frag.dm @@ -8,7 +8,7 @@ /// How much shrapnel the grenade will launch. var/shrapnel_contained = 20 /// The type of projectile that will fired. - var/embedded_type = /obj/item/projectile/bullet/shrapnel + var/embedded_type = /obj/projectile/bullet/shrapnel /obj/item/grenade/frag/prime() update_mob() @@ -22,7 +22,7 @@ icon_state = "stinger" modifiable_timer = FALSE shrapnel_contained = 50 - embedded_type = /obj/item/projectile/bullet/pellet/rubber/stinger + embedded_type = /obj/projectile/bullet/pellet/rubber/stinger /obj/item/grenade/frag/stinger/prime() update_mob() @@ -33,7 +33,7 @@ /** * Shrapnel that flies through the air and hits you */ -/obj/item/projectile/bullet/shrapnel +/obj/projectile/bullet/shrapnel name = "shrapnel" icon_state = "magspear" gender = PLURAL @@ -42,7 +42,7 @@ var/embed_prob = 100 //reduced by armor var/embedded_type = /obj/item/shrapnel -/obj/item/projectile/bullet/shrapnel/on_hit(atom/target, blocked) +/obj/projectile/bullet/shrapnel/on_hit(atom/target, blocked) . = ..() var/obj/item/new_possible_embed = new embedded_type(get_turf(src)) // drop it on the floor if we hit somethig non-living if(!.) @@ -56,7 +56,7 @@ return human.try_embed_object(new_possible_embed) -/obj/item/projectile/bullet/shrapnel/on_range() +/obj/projectile/bullet/shrapnel/on_range() var/obj/item/we_missed = new embedded_type(get_turf(src)) // we missed, lets toss the shrapnel var/range = gaussian(4, 2) if(range > 0) diff --git a/code/game/objects/items/weapons/melee/energy_melee_weapons.dm b/code/game/objects/items/weapons/melee/energy_melee_weapons.dm index e4404d7810e..5a9eabfe6a2 100644 --- a/code/game/objects/items/weapons/melee/energy_melee_weapons.dm +++ b/code/game/objects/items/weapons/melee/energy_melee_weapons.dm @@ -311,7 +311,7 @@ if(!.) // they did not block the attack return if(isprojectile(hitby)) - var/obj/item/projectile/P = hitby + var/obj/projectile/P = hitby if(P.reflectability == REFLECTABILITY_ENERGY) owner.visible_message("[owner] parries [attack_text] with [src]!") add_attack_logs(P.firer, src, "hit by [P.type] but got parried by [src]") diff --git a/code/game/objects/items/weapons/shields.dm b/code/game/objects/items/weapons/shields.dm index 865e757f1cb..f4cd0aab451 100644 --- a/code/game/objects/items/weapons/shields.dm +++ b/code/game/objects/items/weapons/shields.dm @@ -94,7 +94,7 @@ /obj/item/shield/energy/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(isprojectile(hitby)) - var/obj/item/projectile/P = hitby + var/obj/projectile/P = hitby if(P.shield_buster && active) toggle(owner, TRUE) to_chat(owner, "[hitby] overloaded your [src]!") diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm index 0d8cb40b684..d63596800e0 100644 --- a/code/game/objects/obj_defense.dm +++ b/code/game/objects/obj_defense.dm @@ -85,7 +85,7 @@ if(3) take_damage(rand(10, 90), BRUTE, BOMB, 0) -/obj/bullet_act(obj/item/projectile/P) +/obj/bullet_act(obj/projectile/P) . = ..() playsound(src, P.hitsound, 50, TRUE) visible_message("[src] is hit by \a [P]!") diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 90f989a81c2..f5d9a8517ee 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -60,8 +60,6 @@ armor = getArmor() else if(!istype(armor, /datum/armor)) stack_trace("Invalid type [armor.type] found in .armor during /obj Initialize()") - if(sharp) - AddComponent(/datum/component/surgery_initiator) if(obj_integrity == null) obj_integrity = max_integrity @@ -296,7 +294,7 @@ C.take_organ_damage(damage) C.KnockDown(3 SECONDS) -/obj/handle_ricochet(obj/item/projectile/P) +/obj/handle_ricochet(obj/projectile/P) . = ..() if(. && receive_ricochet_damage_coeff) // pass along receive_ricochet_damage_coeff damage to the structure for the ricochet diff --git a/code/game/objects/structures/crates_lockers/closets/coffin.dm b/code/game/objects/structures/crates_lockers/closets/coffin.dm index 934f5feced7..53ee749d84c 100644 --- a/code/game/objects/structures/crates_lockers/closets/coffin.dm +++ b/code/game/objects/structures/crates_lockers/closets/coffin.dm @@ -50,7 +50,7 @@ igniting = FALSE return ITEM_INTERACT_COMPLETE -/obj/structure/closet/coffin/vampire/bullet_act(obj/item/projectile/P) +/obj/structure/closet/coffin/vampire/bullet_act(obj/projectile/P) if(!P.immolate) return ..() fire_act() diff --git a/code/game/objects/structures/holosigns.dm b/code/game/objects/structures/holosigns.dm index 840330adf00..c9bb8d3c870 100644 --- a/code/game/objects/structures/holosigns.dm +++ b/code/game/objects/structures/holosigns.dm @@ -106,11 +106,11 @@ max_integrity = 10 allow_walk = FALSE -/obj/structure/holosign/barrier/cyborg/bullet_act(obj/item/projectile/P) +/obj/structure/holosign/barrier/cyborg/bullet_act(obj/projectile/P) take_damage((P.damage / 5) , BRUTE, MELEE, 1) //Doesn't really matter what damage flag it is. - if(istype(P, /obj/item/projectile/energy/electrode)) + if(istype(P, /obj/projectile/energy/electrode)) take_damage(10, BRUTE, MELEE, 1) //Tasers aren't harmful. - if(istype(P, /obj/item/projectile/beam/disabler)) + if(istype(P, /obj/projectile/beam/disabler)) take_damage(5, BRUTE, MELEE, 1) //Disablers aren't harmful. /obj/structure/holosign/barrier/cyborg/hacked @@ -119,7 +119,7 @@ max_integrity = 20 var/shockcd = 0 -/obj/structure/holosign/barrier/cyborg/hacked/bullet_act(obj/item/projectile/P) +/obj/structure/holosign/barrier/cyborg/hacked/bullet_act(obj/projectile/P) take_damage(P.damage, BRUTE, MELEE, 1) //Yeah no this doesn't get projectile resistance. /obj/structure/holosign/barrier/cyborg/hacked/proc/cooldown() diff --git a/code/game/objects/structures/lavaland/necropolis_tendril.dm b/code/game/objects/structures/lavaland/necropolis_tendril.dm index b69b523b9ed..2891e79533c 100644 --- a/code/game/objects/structures/lavaland/necropolis_tendril.dm +++ b/code/game/objects/structures/lavaland/necropolis_tendril.dm @@ -47,7 +47,7 @@ GLOBAL_LIST_EMPTY(tendrils) . = ..() SEND_SIGNAL(src, COMSIG_SPAWNER_SET_TARGET, user) -/obj/structure/spawner/lavaland/bullet_act(obj/item/projectile/P) +/obj/structure/spawner/lavaland/bullet_act(obj/projectile/P) . = ..() if(P.firer) SEND_SIGNAL(src, COMSIG_SPAWNER_SET_TARGET, P.firer) diff --git a/code/game/objects/structures/reflector.dm b/code/game/objects/structures/reflector.dm index 92ce2edecc2..abac74a4b70 100644 --- a/code/game/objects/structures/reflector.dm +++ b/code/game/objects/structures/reflector.dm @@ -14,10 +14,10 @@ if(mapload) anchored = TRUE -/obj/structure/reflector/bullet_act(obj/item/projectile/P) +/obj/structure/reflector/bullet_act(obj/projectile/P) var/turf/reflector_turf = get_turf(src) var/turf/reflect_turf - if(!istype(P, /obj/item/projectile/beam)) + if(!istype(P, /obj/projectile/beam)) return ..() var/new_dir = get_reflection(dir, P.dir) if(new_dir && anchored) diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index 195d6e21a04..cb77dcf8f86 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -94,7 +94,7 @@ if(exposed_temperature > 300) PlasmaBurn(exposed_temperature) -/obj/structure/statue/plasma/bullet_act(obj/item/projectile/P) +/obj/structure/statue/plasma/bullet_act(obj/projectile/P) if(!QDELETED(src)) //wasn't deleted by the projectile's effects. if(!P.nodamage && ((P.damage_type == BURN) || (P.damage_type == BRUTE))) if(P.firer) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index f430de16a51..9283fb880cb 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -129,7 +129,7 @@ return /obj/structure/table/CanPass(atom/movable/mover, border_dir) - if(istype(mover,/obj/item/projectile)) + if(istype(mover,/obj/projectile)) return check_cover(mover, border_dir) var/mob/living/living_mover = mover @@ -163,7 +163,7 @@ * * P - The projectile trying to cross. * * proj_dir - The incoming direction of the projectile. */ -/obj/structure/table/proc/check_cover(obj/item/projectile/P, proj_dir) +/obj/structure/table/proc/check_cover(obj/projectile/P, proj_dir) . = TRUE if(!flipped) return diff --git a/code/game/turfs/simulated/floor/chasm.dm b/code/game/turfs/simulated/floor/chasm.dm index 1e288e42677..06a58abac66 100644 --- a/code/game/turfs/simulated/floor/chasm.dm +++ b/code/game/turfs/simulated/floor/chasm.dm @@ -17,7 +17,7 @@ /obj/docking_port, /obj/structure/lattice, /obj/structure/stone_tile, - /obj/item/projectile, + /obj/projectile, /obj/effect/portal, /obj/effect/hotspot, /obj/effect/landmark, diff --git a/code/game/turfs/simulated/walls_mineral.dm b/code/game/turfs/simulated/walls_mineral.dm index a4253b4efbf..e620a822e38 100644 --- a/code/game/turfs/simulated/walls_mineral.dm +++ b/code/game/turfs/simulated/walls_mineral.dm @@ -124,12 +124,12 @@ if(exposed_temperature > 300) PlasmaBurn(exposed_temperature) -/turf/simulated/wall/mineral/plasma/bullet_act(obj/item/projectile/Proj) +/turf/simulated/wall/mineral/plasma/bullet_act(obj/projectile/Proj) if(Proj.damage == 0)//lasertag guns and so on don't set off plasma anymore. can't use nodamage here because lasertag guns actually don't have it. return - if(istype(Proj,/obj/item/projectile/beam)) + if(istype(Proj,/obj/projectile/beam)) PlasmaBurn(2500) - else if(istype(Proj,/obj/item/projectile/ion)) + else if(istype(Proj,/obj/projectile/ion)) PlasmaBurn(500) ..() diff --git a/code/game/turfs/simulated/walls_misc.dm b/code/game/turfs/simulated/walls_misc.dm index 4d343d72d2e..d73b19feddb 100644 --- a/code/game/turfs/simulated/walls_misc.dm +++ b/code/game/turfs/simulated/walls_misc.dm @@ -16,7 +16,7 @@ new /obj/effect/temp_visual/cult/turf(src) icon_state = GET_CULT_DATA(cult_wall_icon_state, initial(icon_state)) -/turf/simulated/wall/cult/bullet_act(obj/item/projectile/Proj) +/turf/simulated/wall/cult/bullet_act(obj/projectile/Proj) . = ..() new /obj/effect/temp_visual/cult/turf(src) @@ -58,7 +58,7 @@ new /obj/effect/temp_visual/ratvar/wall(src) new /obj/effect/temp_visual/ratvar/beam(src) -/turf/simulated/wall/clockwork/bullet_act(obj/item/projectile/Proj) +/turf/simulated/wall/clockwork/bullet_act(obj/projectile/Proj) . = ..() new /obj/effect/temp_visual/ratvar/wall(get_turf(src)) new /obj/effect/temp_visual/ratvar/beam(get_turf(src)) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 78640958434..bc43a0120d9 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -206,8 +206,8 @@ else if(our_rpd.mode == RPD_DELETE_MODE) our_rpd.delete_all_pipes(user, src) -/turf/bullet_act(obj/item/projectile/Proj) - if(istype(Proj, /obj/item/projectile/bullet/gyro)) +/turf/bullet_act(obj/projectile/Proj) + if(istype(Proj, /obj/projectile/bullet/gyro)) explosion(src, -1, 0, 2, cause = "[Proj.type] fired by [key_name(Proj.firer)] (hit turf)") ..() return FALSE diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index 0fb06849d78..3afcdfab2ae 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -253,7 +253,7 @@ /obj/item/ammo_casing/magic/tentacle name = "tentacle" desc = "a tentacle." - projectile_type = /obj/item/projectile/tentacle + projectile_type = /obj/projectile/tentacle caliber = "tentacle" icon = 'icons/obj/projectiles.dmi' icon_state = "tentacle_end" @@ -269,7 +269,7 @@ gun = null return ..() -/obj/item/projectile/tentacle +/obj/projectile/tentacle name = "tentacle" icon_state = "tentacle_end" damage = 0 @@ -278,11 +278,11 @@ reflectability = REFLECTABILITY_NEVER //Let us not reflect this ever. It's not quite a bullet, and a cling should never wrap its tentacle around itself, it controls its body well var/obj/item/ammo_casing/magic/tentacle/source //the item that shot it -/obj/item/projectile/tentacle/New(obj/item/ammo_casing/magic/tentacle/tentacle_casing) +/obj/projectile/tentacle/New(obj/item/ammo_casing/magic/tentacle/tentacle_casing) source = tentacle_casing ..() -/obj/item/projectile/tentacle/fire(setAngle) +/obj/projectile/tentacle/fire(setAngle) if(firer) chain = firer.Beam(src, icon_state = "tentacle", time = INFINITY, maxdistance = INFINITY) ..() @@ -298,7 +298,7 @@ I.melee_attack_chain(src, C)//Hits the victim with whatever they are holding that is no the zero force tentacle -/obj/item/projectile/tentacle/on_hit(atom/target, blocked = 0) +/obj/projectile/tentacle/on_hit(atom/target, blocked = 0) var/mob/living/carbon/human/H = firer source.gun.hit_something = TRUE source.gun.check_should_delete() @@ -369,7 +369,7 @@ C.throw_at(get_step_towards(H,C), 8, 2, callback=CALLBACK(H, TYPE_PROC_REF(/mob, tentacle_stab), C)) return TRUE -/obj/item/projectile/tentacle/Destroy() +/obj/projectile/tentacle/Destroy() qdel(chain) source = null return ..() diff --git a/code/modules/antagonists/mind_flayer/powers/flayer_weapon_powers.dm b/code/modules/antagonists/mind_flayer/powers/flayer_weapon_powers.dm index c5fa4fb08c3..09283f9878f 100644 --- a/code/modules/antagonists/mind_flayer/powers/flayer_weapon_powers.dm +++ b/code/modules/antagonists/mind_flayer/powers/flayer_weapon_powers.dm @@ -133,7 +133,7 @@ /obj/item/ammo_casing/magic/grapple_ammo name = "grapple" desc = "a hand" - projectile_type = /obj/item/projectile/tether/flayer + projectile_type = /obj/projectile/tether/flayer icon = 'icons/obj/clothing/modsuit/mod_modules.dmi' icon_state = "flayer_claw" caliber = "grapple" @@ -149,7 +149,7 @@ . = ..() grapple = null -/obj/item/projectile/tether/flayer +/obj/projectile/tether/flayer name = "Grapple Arm" range = 10 damage = 15 @@ -160,20 +160,20 @@ /// The ammo this came from var/obj/item/ammo_casing/magic/grapple_ammo/ammo -/obj/item/projectile/tether/flayer/Initialize(mapload, obj/item/ammo_casing/magic/grapple_ammo/grapple_casing) +/obj/projectile/tether/flayer/Initialize(mapload, obj/item/ammo_casing/magic/grapple_ammo/grapple_casing) . = ..() ammo = grapple_casing -/obj/item/projectile/tether/flayer/fire(setAngle) +/obj/projectile/tether/flayer/fire(setAngle) . = ..() make_chain() SEND_SIGNAL(firer, COMSIG_FLAYER_RETRACT_IMPLANTS) -/obj/item/projectile/tether/flayer/Destroy() +/obj/projectile/tether/flayer/Destroy() . = ..() ammo = null -/obj/item/projectile/tether/flayer/on_hit(atom/target, blocked = 0) +/obj/projectile/tether/flayer/on_hit(atom/target, blocked = 0) . = ..() playsound(target, 'sound/items/zip.ogg', 75, TRUE) if(isliving(target) && blocked < 100) diff --git a/code/modules/antagonists/vampire/vampire_powers/gargantua_powers.dm b/code/modules/antagonists/vampire/vampire_powers/gargantua_powers.dm index bd0a16cceba..56ce0626c87 100644 --- a/code/modules/antagonists/vampire/vampire_powers/gargantua_powers.dm +++ b/code/modules/antagonists/vampire/vampire_powers/gargantua_powers.dm @@ -129,7 +129,7 @@ desc = "Summon a hand of demonic energy, snaring and throwing its target around, based on your intent. Disarm pushes, grab pulls." gain_desc = "You have gained the ability to snare and disrupt people with demonic appendages." base_cooldown = 30 SECONDS - fireball_type = /obj/item/projectile/magic/demonic_grasp + fireball_type = /obj/projectile/magic/demonic_grasp selection_activated_message = "You raise your hand, full of demonic energy! Left-click to cast at a target!" selection_deactivated_message = "You re-absorb the energy...for now." @@ -149,17 +149,17 @@ V.required_blood = 20 return V -/obj/item/projectile/magic/demonic_grasp +/obj/projectile/magic/demonic_grasp name = "demonic grasp" // parry this you filthy casual reflectability = REFLECTABILITY_NEVER icon_state = null -/obj/item/projectile/magic/demonic_grasp/pixel_move(trajectory_multiplier) +/obj/projectile/magic/demonic_grasp/pixel_move(trajectory_multiplier) . = ..() new /obj/effect/temp_visual/demonic_grasp(loc) -/obj/item/projectile/magic/demonic_grasp/on_hit(atom/target, blocked, hit_zone) +/obj/projectile/magic/demonic_grasp/on_hit(atom/target, blocked, hit_zone) . = ..() if(!.) return @@ -184,7 +184,7 @@ throw_target = get_step(firer, get_dir(firer, L)) L.throw_at(throw_target, 2, 5, spin = FALSE, diagonals_first = TRUE, callback = CALLBACK(src, PROC_REF(create_snare), L)) // pull towards -/obj/item/projectile/magic/demonic_grasp/proc/create_snare(mob/target) +/obj/projectile/magic/demonic_grasp/proc/create_snare(mob/target) new /obj/effect/temp_visual/demonic_snare(target.loc) /obj/effect/temp_visual/demonic_grasp diff --git a/code/modules/antagonists/vampire/vampire_powers/umbrae_powers.dm b/code/modules/antagonists/vampire/vampire_powers/umbrae_powers.dm index c603ef914dc..cdb8d941306 100644 --- a/code/modules/antagonists/vampire/vampire_powers/umbrae_powers.dm +++ b/code/modules/antagonists/vampire/vampire_powers/umbrae_powers.dm @@ -323,7 +323,7 @@ for(var/mob/living/L in view(8, owner)) if(L.affects_vampire(owner)) L.adjust_bodytemperature(-3 * TEMPERATURE_DAMAGE_COEFFICIENT) //The dark is cold and unforgiving. Equivelnt to -60 with previous values. - for(var/obj/item/projectile/P in view(8, owner)) + for(var/obj/projectile/P in view(8, owner)) if(P.flag == ENERGY || P.flag == LASER) P.damage *= 0.7 diff --git a/code/modules/awaymissions/cordon.dm b/code/modules/awaymissions/cordon.dm index 512ef2b6a93..37c71c8610a 100644 --- a/code/modules/awaymissions/cordon.dm +++ b/code/modules/awaymissions/cordon.dm @@ -24,7 +24,7 @@ /turf/cordon/TerraformTurf(path, list/new_baseturfs, flags) return -/turf/cordon/bullet_act(obj/item/projectile/hitting_projectile, def_zone, piercing_hit) +/turf/cordon/bullet_act(obj/projectile/hitting_projectile, def_zone, piercing_hit) SHOULD_CALL_PARENT(FALSE) // Fuck you return diff --git a/code/modules/awaymissions/mission_code/ruins/deepstorage.dm b/code/modules/awaymissions/mission_code/ruins/deepstorage.dm index 6c850c76278..8893052c8d6 100644 --- a/code/modules/awaymissions/mission_code/ruins/deepstorage.dm +++ b/code/modules/awaymissions/mission_code/ruins/deepstorage.dm @@ -229,7 +229,7 @@ ranged = TRUE retreat_distance = 5 minimum_distance = 5 - projectiletype = /obj/item/projectile/neurotox + projectiletype = /obj/projectile/neurotox projectilesound = 'sound/weapons/pierce.ogg' // Below here is ruin specific code diff --git a/code/modules/awaymissions/mission_code/ruins/sieged_lab.dm b/code/modules/awaymissions/mission_code/ruins/sieged_lab.dm index 8bc2689482f..eeea5b50585 100644 --- a/code/modules/awaymissions/mission_code/ruins/sieged_lab.dm +++ b/code/modules/awaymissions/mission_code/ruins/sieged_lab.dm @@ -37,7 +37,7 @@ icon_state = "syndicate_harbinger" icon_living = "syndicate_harbinger" speak_emote = list("snarls") - projectiletype = /obj/item/projectile/bullet/heavybullet + projectiletype = /obj/projectile/bullet/heavybullet projectilesound = 'sound/weapons/gunshots/gunshot_rifle.ogg' internal_gps = null faction = list("syndicate", "spawned_corpse") diff --git a/code/modules/awaymissions/mission_code/ruins/telecomns.dm b/code/modules/awaymissions/mission_code/ruins/telecomns.dm index 027333914b2..9255ac83b9e 100644 --- a/code/modules/awaymissions/mission_code/ruins/telecomns.dm +++ b/code/modules/awaymissions/mission_code/ruins/telecomns.dm @@ -190,7 +190,7 @@ GLOBAL_LIST_EMPTY(telecomms_trap_tank) GLOB.telecomms_trap_tank -= src return ..() -/obj/structure/telecomms_trap_tank/bullet_act(obj/item/projectile/P) +/obj/structure/telecomms_trap_tank/bullet_act(obj/projectile/P) explode() /obj/structure/telecomms_trap_tank/proc/explode() @@ -337,7 +337,7 @@ GLOBAL_LIST_EMPTY(telecomms_trap_tank) maxHealth = 200 faction = list("malf_drone") speed = 0.5 - projectile_type = /obj/item/projectile/beam/disabler/weak + projectile_type = /obj/projectile/beam/disabler/weak projectile_sound = 'sound/weapons/taser2.ogg' ranged_burst_count = 2 gold_core_spawnable = NO_SPAWN // Could you imagine xenobio with this? lmao. diff --git a/code/modules/awaymissions/mission_code/ruins/watcher_grave.dm b/code/modules/awaymissions/mission_code/ruins/watcher_grave.dm index 398eda18c09..32c6226b6c4 100644 --- a/code/modules/awaymissions/mission_code/ruins/watcher_grave.dm +++ b/code/modules/awaymissions/mission_code/ruins/watcher_grave.dm @@ -150,7 +150,7 @@ /// Datum which keeps us hanging out with our parent var/datum/movement_detector/tracker /// Type of projectile we fire - var/projectile_type = /obj/item/projectile/baby_watcher_blast + var/projectile_type = /obj/projectile/baby_watcher_blast /// Sound to make when we shoot var/projectile_sound = 'sound/weapons/pierce.ogg' /// Time between taking potshots at goliaths @@ -193,7 +193,7 @@ var/turf/U = get_turf(target) if(!T || !U) return - var/obj/item/projectile/O = new projectile_type(T) + var/obj/projectile/O = new projectile_type(T) playsound(get_turf(src), projectile_sound, 75, TRUE) O.firer = parent // no hitting owner. O.current = T @@ -253,6 +253,6 @@ /// Beam fired by a baby watcher, doesn't actually do less damage than its parent -/obj/item/projectile/baby_watcher_blast +/obj/projectile/baby_watcher_blast name = "hatchling beam" icon_state = "ice_2" diff --git a/code/modules/clothing/suits/armor_suits.dm b/code/modules/clothing/suits/armor_suits.dm index a8c50b63d4d..906d7279d99 100644 --- a/code/modules/clothing/suits/armor_suits.dm +++ b/code/modules/clothing/suits/armor_suits.dm @@ -454,8 +454,8 @@ /obj/item/clothing/suit/armor/reactive/proc/reaction_check(hitby) if(prob(hit_reaction_chance)) if(isprojectile(hitby)) - var/obj/item/projectile/P = hitby - if(istype(P, /obj/item/projectile/ion)) + var/obj/projectile/P = hitby + if(istype(P, /obj/projectile/ion)) return FALSE if(!P.nodamage || P.stun || P.weaken) return TRUE @@ -550,7 +550,7 @@ var/turf/U = get_turf(target) if(!T || !U) return - var/obj/item/projectile/temp/basilisk/O = new /obj/item/projectile/temp/basilisk(T) + var/obj/projectile/temp/basilisk/O = new /obj/projectile/temp/basilisk(T) playsound(get_turf(src), 'sound/weapons/taser2.ogg', 75, TRUE) O.current = T O.yo = U.y - T.y diff --git a/code/modules/events/blob/theblob.dm b/code/modules/events/blob/theblob.dm index c845a48aba6..cd38bf57611 100644 --- a/code/modules/events/blob/theblob.dm +++ b/code/modules/events/blob/theblob.dm @@ -75,8 +75,8 @@ GLOBAL_LIST_EMPTY(blob_minions) /obj/structure/blob/blob_act(obj/structure/blob/B) return -/obj/structure/blob/bullet_act(obj/item/projectile/P) - if(istype(P, /obj/item/projectile/kinetic)) +/obj/structure/blob/bullet_act(obj/projectile/P) + if(istype(P, /obj/projectile/kinetic)) P.damage /= 2 return ..() diff --git a/code/modules/events/demon_incursion.dm b/code/modules/events/demon_incursion.dm index bbeba50d97b..d1e0318b1fb 100644 --- a/code/modules/events/demon_incursion.dm +++ b/code/modules/events/demon_incursion.dm @@ -225,7 +225,7 @@ . = ..() SEND_SIGNAL(src, COMSIG_SPAWNER_SET_TARGET, user) -/obj/structure/spawner/nether/demon_incursion/bullet_act(obj/item/projectile/P) +/obj/structure/spawner/nether/demon_incursion/bullet_act(obj/projectile/P) . = ..() if(P.firer) SEND_SIGNAL(src, COMSIG_SPAWNER_SET_TARGET, P.firer) diff --git a/code/modules/hallucinations/effects/major.dm b/code/modules/hallucinations/effects/major.dm index ec088a1b2ae..1fcf559b0fe 100644 --- a/code/modules/hallucinations/effects/major.dm +++ b/code/modules/hallucinations/effects/major.dm @@ -501,7 +501,7 @@ /obj/effect/hallucination/sniper/proc/fire_bullet(turf/shot_loc, mob/living/carbon/target) // Fire the bullet - var/obj/item/projectile/bullet/sniper/penetrator/hallucination/bullet = new(shot_loc) + var/obj/projectile/bullet/sniper/penetrator/hallucination/bullet = new(shot_loc) bullet.hallucinator = target bullet.def_zone = BODY_ZONE_HEAD bullet.suppressed = TRUE @@ -537,7 +537,7 @@ hallucination_icon_state = pick("mfloor1", "mfloor2", "mfloor3", "mfloor4", "mfloor5", "mfloor6", "mfloor7") -/obj/item/projectile/bullet/sniper/penetrator/hallucination +/obj/projectile/bullet/sniper/penetrator/hallucination nodamage = TRUE invisibility = INVISIBILITY_MAXIMUM // You no see boolet /// The hallucinator @@ -545,7 +545,7 @@ /// Handles only the victim seeing it var/image/bullet_image = null -/obj/item/projectile/bullet/sniper/penetrator/hallucination/on_hit(atom/target, blocked, hit_zone) +/obj/projectile/bullet/sniper/penetrator/hallucination/on_hit(atom/target, blocked, hit_zone) if(!isliving(target)) return if(target != hallucinator) @@ -560,7 +560,7 @@ new /obj/effect/hallucination/sniper_bloodsplatter(get_turf(src), hit_target) to_chat(hit_target, "You're shot by \a [src][organ_hit_text]!") -/obj/item/projectile/bullet/sniper/penetrator/hallucination/Bump(atom/A, yes) +/obj/projectile/bullet/sniper/penetrator/hallucination/Bump(atom/A, yes) if(!yes) // prevents double bumps. return var/turf/target_turf = get_turf(A) diff --git a/code/modules/hydroponics/hydroponics_tray.dm b/code/modules/hydroponics/hydroponics_tray.dm index b08dbadebdd..42e38d2a97b 100644 --- a/code/modules/hydroponics/hydroponics_tray.dm +++ b/code/modules/hydroponics/hydroponics_tray.dm @@ -169,13 +169,13 @@ update_state() -/obj/machinery/hydroponics/bullet_act(obj/item/projectile/Proj) //Works with the Somatoray to modify plant variables. +/obj/machinery/hydroponics/bullet_act(obj/projectile/Proj) //Works with the Somatoray to modify plant variables. if(!myseed) return ..() - if(istype(Proj ,/obj/item/projectile/energy/floramut)) + if(istype(Proj ,/obj/projectile/energy/floramut)) mut_beamed = TRUE return ..() - else if(istype(Proj ,/obj/item/projectile/energy/florayield)) + else if(istype(Proj ,/obj/projectile/energy/florayield)) yield_beamed = TRUE return ..() else diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index 4b5e820d986..a0e3f5a3faf 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -174,8 +174,8 @@ if("weed chance") adjust_weed_chance(mod) -/obj/item/seeds/bullet_act(obj/item/projectile/Proj) // Works with the Somatoray to modify plant variables. - if(istype(Proj, /obj/item/projectile/energy/florayield)) +/obj/item/seeds/bullet_act(obj/projectile/Proj) // Works with the Somatoray to modify plant variables. + if(istype(Proj, /obj/projectile/energy/florayield)) var/rating = 1 if(istype(loc, /obj/machinery/hydroponics)) var/obj/machinery/hydroponics/H = loc diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index 03de0bf0e33..bee64aa4256 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -118,7 +118,7 @@ var/turf/proj_turf = get_turf_for_projectile(user) if(!isturf(proj_turf)) return - var/obj/item/projectile/destabilizer/D = new /obj/item/projectile/destabilizer(proj_turf) + var/obj/projectile/destabilizer/D = new /obj/projectile/destabilizer(proj_turf) for(var/t in trophies) var/obj/item/crusher_trophy/T = t T.on_projectile_fire(D, user) @@ -197,7 +197,7 @@ update_action_buttons() //destablizing force -/obj/item/projectile/destabilizer +/obj/projectile/destabilizer name = "destabilizing force" icon_state = "pulse1" nodamage = TRUE @@ -207,11 +207,11 @@ log_override = TRUE var/obj/item/kinetic_crusher/hammer_synced -/obj/item/projectile/destabilizer/Destroy() +/obj/projectile/destabilizer/Destroy() hammer_synced = null return ..() -/obj/item/projectile/destabilizer/on_hit(atom/target, blocked = FALSE) +/obj/projectile/destabilizer/on_hit(atom/target, blocked = FALSE) if(isliving(target)) var/mob/living/L = target var/had_effect = (L.has_status_effect(STATUS_EFFECT_CRUSHERMARK)) //used as a boolean @@ -279,7 +279,7 @@ /obj/item/crusher_trophy/proc/on_melee_hit(mob/living/target, mob/living/user) //the target and the user return -/obj/item/crusher_trophy/proc/on_projectile_fire(obj/item/projectile/destabilizer/marker, mob/living/user) //the projectile fired and the user +/obj/item/crusher_trophy/proc/on_projectile_fire(obj/projectile/destabilizer/marker, mob/living/user) //the projectile fired and the user return /obj/item/crusher_trophy/proc/on_mark_application(mob/living/target, datum/status_effect/crusher_mark/mark, had_mark) //the target, the mark applied, and if the target had a mark before @@ -346,7 +346,7 @@ /obj/item/crusher_trophy/blaster_tubes/magma_wing/effect_desc() return "mark detonation to make the next destabilizer shot deal [bonus_value] damage" -/obj/item/crusher_trophy/blaster_tubes/magma_wing/on_projectile_fire(obj/item/projectile/destabilizer/marker, mob/living/user) +/obj/item/crusher_trophy/blaster_tubes/magma_wing/on_projectile_fire(obj/projectile/destabilizer/marker, mob/living/user) if(deadly_shot) marker.name = "heated [marker.name]" marker.icon_state = "lava" @@ -479,7 +479,7 @@ /obj/item/crusher_trophy/blaster_tubes/effect_desc() return "mark detonation to make the next destabilizer shot deal [bonus_value] damage but move slower" -/obj/item/crusher_trophy/blaster_tubes/on_projectile_fire(obj/item/projectile/destabilizer/marker, mob/living/user) +/obj/item/crusher_trophy/blaster_tubes/on_projectile_fire(obj/projectile/destabilizer/marker, mob/living/user) if(deadly_shot) marker.name = "deadly [marker.name]" marker.icon_state = "chronobolt" diff --git a/code/modules/mining/lavaland/loot/colossus_loot.dm b/code/modules/mining/lavaland/loot/colossus_loot.dm index 8f721222a35..7974445f834 100644 --- a/code/modules/mining/lavaland/loot/colossus_loot.dm +++ b/code/modules/mining/lavaland/loot/colossus_loot.dm @@ -34,9 +34,9 @@ ActivationReaction(user, "weapon") return ..() -/obj/machinery/anomalous_crystal/bullet_act(obj/item/projectile/P, def_zone) +/obj/machinery/anomalous_crystal/bullet_act(obj/projectile/P, def_zone) ..() - if(istype(P, /obj/item/projectile/magic)) + if(istype(P, /obj/projectile/magic)) ActivationReaction(P.firer, "magic", P.damage_type) return ActivationReaction(P.firer, P.flag, P.damage_type) @@ -140,16 +140,16 @@ /// Generates a projectile when interacted with /obj/machinery/anomalous_crystal/emitter cooldown_add = 50 - var/generated_projectile = /obj/item/projectile/beam/emitter + var/generated_projectile = /obj/projectile/beam/emitter /obj/machinery/anomalous_crystal/emitter/Initialize(mapload) . = ..() - generated_projectile = pick(/obj/item/projectile/magic/fireball/infernal, - /obj/item/projectile/bullet/meteorshot, /obj/item/projectile/beam/xray, /obj/item/projectile/colossus) + generated_projectile = pick(/obj/projectile/magic/fireball/infernal, + /obj/projectile/bullet/meteorshot, /obj/projectile/beam/xray, /obj/projectile/colossus) /obj/machinery/anomalous_crystal/emitter/ActivationReaction(mob/user, method) if(..()) - var/obj/item/projectile/P = new generated_projectile(get_turf(src)) + var/obj/projectile/P = new generated_projectile(get_turf(src)) P.dir = dir switch(dir) if(NORTH) diff --git a/code/modules/mining/lavaland/loot/tendril_loot.dm b/code/modules/mining/lavaland/loot/tendril_loot.dm index edde0108c51..933780e329f 100644 --- a/code/modules/mining/lavaland/loot/tendril_loot.dm +++ b/code/modules/mining/lavaland/loot/tendril_loot.dm @@ -349,13 +349,13 @@ /obj/item/ammo_casing/magic/hook name = "hook" desc = "a hook." - projectile_type = /obj/item/projectile/hook + projectile_type = /obj/projectile/hook caliber = "hook" icon = 'icons/obj/lavaland/artefacts.dmi' icon_state = "hook" muzzle_flash_effect = null -/obj/item/projectile/hook +/obj/projectile/hook name = "hook" icon_state = "hook" icon = 'icons/obj/lavaland/artefacts.dmi' @@ -365,13 +365,13 @@ weaken = 1 SECONDS knockdown = 6 SECONDS -/obj/item/projectile/hook/fire(setAngle) +/obj/projectile/hook/fire(setAngle) if(firer) chain = firer.Beam(src, icon_state = "chain", time = INFINITY, maxdistance = INFINITY) ..() //TODO: root the firer until the chain returns -/obj/item/projectile/hook/on_hit(atom/target) +/obj/projectile/hook/on_hit(atom/target) . = ..() if(isliving(target)) var/mob/living/L = target @@ -382,7 +382,7 @@ L.forceMove(get_turf(firer)) L.density = old_density -/obj/item/projectile/hook/Destroy() +/obj/projectile/hook/Destroy() QDEL_NULL(chain) return ..() diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index e3fcfc653e3..5a230dfe38e 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -243,7 +243,7 @@ if(berserk_active) return if(isprojectile(hitby)) - var/obj/item/projectile/P = hitby + var/obj/projectile/P = hitby if(P.damage_type == STAMINA) return //no disabler rage var/berserk_value = damage * DAMAGE_TO_CHARGE_SCALE diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index 51cdee2a420..a6a84193957 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -311,7 +311,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ else ..() -/obj/item/gibtonite/bullet_act(obj/item/projectile/P) +/obj/item/gibtonite/bullet_act(obj/projectile/P) GibtoniteReaction(P.firer) ..() @@ -416,7 +416,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ materials = list(MAT_PLASMA = 400) credits = 80 -/obj/item/coin/plasma/bullet_act(obj/item/projectile/P) +/obj/item/coin/plasma/bullet_act(obj/projectile/P) if(!QDELETED(src) && !P.nodamage && (P.damage_type == BURN)) log_and_set_aflame(P.firer, P) diff --git a/code/modules/mob/living/basic/hostile/alien/alien_mob_queen.dm b/code/modules/mob/living/basic/hostile/alien/alien_mob_queen.dm index 242441696df..5b98d6d4b41 100644 --- a/code/modules/mob/living/basic/hostile/alien/alien_mob_queen.dm +++ b/code/modules/mob/living/basic/hostile/alien/alien_mob_queen.dm @@ -12,7 +12,7 @@ ai_controller = /datum/ai_controller/basic_controller/alien/queen is_ranged = TRUE - projectile_type = /obj/item/projectile/neurotox + projectile_type = /obj/projectile/neurotox projectile_sound = 'sound/weapons/pierce.ogg' ranged_cooldown = 3 SECONDS diff --git a/code/modules/mob/living/basic/hostile/alien/alien_mob_sentinel.dm b/code/modules/mob/living/basic/hostile/alien/alien_mob_sentinel.dm index 3514258cf9b..8002719a29f 100644 --- a/code/modules/mob/living/basic/hostile/alien/alien_mob_sentinel.dm +++ b/code/modules/mob/living/basic/hostile/alien/alien_mob_sentinel.dm @@ -11,7 +11,7 @@ ai_controller = /datum/ai_controller/basic_controller/alien/sentinel is_ranged = TRUE - projectile_type = /obj/item/projectile/neurotox + projectile_type = /obj/projectile/neurotox projectile_sound = 'sound/weapons/pierce.ogg' ranged_cooldown = 3 SECONDS diff --git a/code/modules/mob/living/basic/hostile/hivebot.dm b/code/modules/mob/living/basic/hostile/hivebot.dm index c01e6821d29..d1d06974cec 100644 --- a/code/modules/mob/living/basic/hostile/hivebot.dm +++ b/code/modules/mob/living/basic/hostile/hivebot.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/hivebotbullet +/obj/projectile/hivebotbullet /mob/living/basic/hivebot name = "Hivebot" @@ -28,7 +28,7 @@ basic_mob_flags = DEL_ON_DEATH step_type = FOOTSTEP_MOB_CLAW ai_controller = /datum/ai_controller/basic_controller/hivebot - projectile_type = /obj/item/projectile/hivebotbullet + projectile_type = /obj/projectile/hivebotbullet projectile_sound = 'sound/weapons/gunshots/gunshot.ogg' /mob/living/basic/hivebot/range diff --git a/code/modules/mob/living/basic/hostile/pirate.dm b/code/modules/mob/living/basic/hostile/pirate.dm index f00080b1da9..d7f578002a7 100644 --- a/code/modules/mob/living/basic/hostile/pirate.dm +++ b/code/modules/mob/living/basic/hostile/pirate.dm @@ -59,7 +59,7 @@ icon_state = "piratespaceranged" icon_living = "piratespaceranged" is_ranged = TRUE - projectile_type = /obj/item/projectile/beam + projectile_type = /obj/projectile/beam projectile_sound = 'sound/weapons/laser.ogg' ranged_burst_count = 2 ranged_burst_interval = 0.5 SECONDS // Same fire rate as people! diff --git a/code/modules/mob/living/basic/hostile/vox_raiders.dm b/code/modules/mob/living/basic/hostile/vox_raiders.dm index f56b0c66ca1..7af9b16430d 100644 --- a/code/modules/mob/living/basic/hostile/vox_raiders.dm +++ b/code/modules/mob/living/basic/hostile/vox_raiders.dm @@ -36,7 +36,7 @@ step_type = FOOTSTEP_MOB_SHOE is_ranged = TRUE - projectile_type = /obj/item/projectile/plasma/adv + projectile_type = /obj/projectile/plasma/adv projectile_sound = 'sound/weapons/laser.ogg' ranged_cooldown = 1.75 SECONDS @@ -73,7 +73,7 @@ icon_state = "vox_foreman" icon_living = "vox_foreman" ai_controller = /datum/ai_controller/basic_controller/simple/vox_foreman - projectile_type = /obj/item/projectile/bullet/spike + projectile_type = /obj/projectile/bullet/spike projectile_sound = 'sound/weapons/bladeslice.ogg' ranged_burst_count = 2 ranged_burst_interval = 0.5 SECONDS diff --git a/code/modules/mob/living/basic/minebots/minebot.dm b/code/modules/mob/living/basic/minebots/minebot.dm index cc5b8880bcf..dfefd41084c 100644 --- a/code/modules/mob/living/basic/minebots/minebot.dm +++ b/code/modules/mob/living/basic/minebots/minebot.dm @@ -130,14 +130,14 @@ return ..() /mob/living/basic/mining_drone/CanPass(atom/movable/O) - if(istype(O, /obj/item/projectile/kinetic)) - var/obj/item/projectile/kinetic/K = O + if(istype(O, /obj/projectile/kinetic)) + var/obj/projectile/kinetic/K = O if(K.kinetic_gun) for(var/A in K.kinetic_gun.get_modkits()) var/obj/item/borg/upgrade/modkit/M = A if(istype(M, /obj/item/borg/upgrade/modkit/minebot_passthrough)) return TRUE - if(istype(O, /obj/item/projectile/destabilizer)) + if(istype(O, /obj/projectile/destabilizer)) return TRUE return ..() diff --git a/code/modules/mob/living/basic/mining/basilisk.dm b/code/modules/mob/living/basic/mining/basilisk.dm index fb51260d6bb..33d15a6d6f6 100644 --- a/code/modules/mob/living/basic/mining/basilisk.dm +++ b/code/modules/mob/living/basic/mining/basilisk.dm @@ -25,7 +25,7 @@ ai_controller = /datum/ai_controller/basic_controller/watcher is_ranged = TRUE ranged_cooldown = 3 SECONDS - projectile_type = /obj/item/projectile/temp/basilisk + projectile_type = /obj/projectile/temp/basilisk projectile_sound = 'sound/weapons/pierce.ogg' loot = list(/obj/item/stack/ore/diamond{layer = ABOVE_MOB_LAYER}, @@ -35,12 +35,12 @@ . = ..() AddElement(/datum/element/ai_retaliate) -/obj/item/projectile/temp/basilisk +/obj/projectile/temp/basilisk name = "freezing blast" icon_state = "ice_2" temperature = 50 -/obj/item/projectile/temp/basilisk/on_hit(atom/target, blocked) +/obj/projectile/temp/basilisk/on_hit(atom/target, blocked) ..() if(isrobot(target)) var/mob/living/silicon/robot/cyborg = target @@ -94,7 +94,7 @@ light_range = 3 light_power = 2.5 light_color = LIGHT_COLOR_LAVA - projectile_type = /obj/item/projectile/temp/basilisk/magmawing + projectile_type = /obj/projectile/temp/basilisk/magmawing crusher_loot = /obj/item/crusher_trophy/blaster_tubes/magma_wing crusher_drop_mod = 100 // These things are extremely rare (1/133 per spawner). You shouldn't have to hope for another stroke of luck to get it's trophy after finding it @@ -107,12 +107,12 @@ icon_dead = "watcher_icewing_dead" maxHealth = 170 health = 170 - projectile_type = /obj/item/projectile/temp/basilisk/icewing + projectile_type = /obj/projectile/temp/basilisk/icewing butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/bone = 1) // No sinew; the wings are too fragile to be usable crusher_loot = /obj/item/crusher_trophy/watcher_wing/ice_wing crusher_drop_mod = 100 // These things are extremely rare (1/400 per spawner). You shouldn't have to hope for another stroke of luck to get it's trophy after finding it -/obj/item/projectile/temp/basilisk/magmawing +/obj/projectile/temp/basilisk/magmawing name = "scorching blast" icon_state = "lava" damage = 5 @@ -120,11 +120,11 @@ temperature = 500 // Heats you up! immolate = 1 -/obj/item/projectile/temp/basilisk/icewing +/obj/projectile/temp/basilisk/icewing damage = 5 nodamage = FALSE -/obj/item/projectile/temp/basilisk/icewing/on_hit(atom/target, blocked = FALSE) +/obj/projectile/temp/basilisk/icewing/on_hit(atom/target, blocked = FALSE) . = ..() if(.) var/mob/living/L = target diff --git a/code/modules/mob/living/basic/mining/goldgrub/goldgrub.dm b/code/modules/mob/living/basic/mining/goldgrub/goldgrub.dm index c4b580f2db1..a95254d08d6 100644 --- a/code/modules/mob/living/basic/mining/goldgrub/goldgrub.dm +++ b/code/modules/mob/living/basic/mining/goldgrub/goldgrub.dm @@ -48,7 +48,7 @@ for(var/obj/item/stack/ore/ore in src) ore.forceMove(loc) -/mob/living/basic/mining/goldgrub/bullet_act(obj/item/projectile/P) +/mob/living/basic/mining/goldgrub/bullet_act(obj/projectile/P) if(P.armor_penetration_flat + P.armor_penetration_percentage >= 100) return ..() visible_message("[P.name] was repelled by [name]'s girth!") diff --git a/code/modules/mob/living/basic/mining/mining_mobs.dm b/code/modules/mob/living/basic/mining/mining_mobs.dm index efa770edc16..4bc709c10f9 100644 --- a/code/modules/mob/living/basic/mining/mining_mobs.dm +++ b/code/modules/mob/living/basic/mining/mining_mobs.dm @@ -27,7 +27,7 @@ /// Message to output if throwing damage is absorbed var/throw_blocked_message = "bounces off" -/mob/living/basic/mining/bullet_act(obj/item/projectile/P) // Reduces damage from most projectiles to curb off-screen kills +/mob/living/basic/mining/bullet_act(obj/projectile/P) // Reduces damage from most projectiles to curb off-screen kills if(P.damage < 30 && P.damage_type != BRUTE && has_laser_resist) P.damage = (P.damage / 3) visible_message("[P] has a reduced effect on [src]!") diff --git a/code/modules/mob/living/basic/nether_mobs/nether_mobs.dm b/code/modules/mob/living/basic/nether_mobs/nether_mobs.dm index 8b72354c24c..0bdd7bdf478 100644 --- a/code/modules/mob/living/basic/nether_mobs/nether_mobs.dm +++ b/code/modules/mob/living/basic/nether_mobs/nether_mobs.dm @@ -30,7 +30,7 @@ /mob/living/basic/netherworld/Initialize(mapload) . = ..() if(prob(grappler_chance)) - AddComponent(/datum/component/ranged_attacks, projectile_type = /obj/item/projectile/energy/demonic_grappler, projectile_sound = 'sound/weapons/wave.ogg') + AddComponent(/datum/component/ranged_attacks, projectile_type = /obj/projectile/energy/demonic_grappler, projectile_sound = 'sound/weapons/wave.ogg') name = "grappling " + name ai_controller = new /datum/ai_controller/basic_controller/simple/simple_skirmisher/prowler(src) update_appearance(UPDATE_NAME) diff --git a/code/modules/mob/living/basic/retaliate/combat_drone.dm b/code/modules/mob/living/basic/retaliate/combat_drone.dm index b0b08cd82df..21d1c33583c 100644 --- a/code/modules/mob/living/basic/retaliate/combat_drone.dm +++ b/code/modules/mob/living/basic/retaliate/combat_drone.dm @@ -15,7 +15,7 @@ is_ranged = TRUE ranged_burst_count = 3 ranged_burst_interval = 0.4 - projectile_type = /obj/item/projectile/beam/immolator/weak/hitscan + projectile_type = /obj/projectile/beam/immolator/weak/hitscan projectile_sound = 'sound/weapons/laser3.ogg' atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minimum_survivable_temperature = 0 @@ -88,7 +88,7 @@ update_icons() /// We overide the basic effect, as malfunctioning drones are in space, and use jets to dodge. Also lets us do cool effects. -/mob/living/basic/malf_drone/advanced_bullet_dodge(mob/living/source, obj/item/projectile/hitting_projectile) +/mob/living/basic/malf_drone/advanced_bullet_dodge(mob/living/source, obj/projectile/hitting_projectile) if(HAS_TRAIT(source, TRAIT_IMMOBILIZED)) return NONE if(source.stat != CONSCIOUS) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 5411923516d..004f6b5d1af 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(obj/item/projectile/P, def_zone) +/mob/living/carbon/human/bullet_act(obj/projectile/P, def_zone) if(!dna.species.bullet_act(P, src, def_zone)) add_attack_logs(P.firer, src, "hit by [P.type] but got deflected by species '[dna.species]'") P.reflect_back(src) //It has to be here, not on species. Why? Who knows. Testing showed me no reason why it doesn't work on species, and neither did tracing. It has to be here, or it gets qdel'd by bump. @@ -21,7 +21,7 @@ emp_act if(1) // proper reflection reflected = TRUE if(2) //If target is holding a toy sword - var/static/list/safe_list = list(/obj/item/projectile/beam/lasertag, /obj/item/projectile/beam/practice) + var/static/list/safe_list = list(/obj/projectile/beam/lasertag, /obj/projectile/beam/practice) reflected = is_type_in_list(P, safe_list) //And it's safe if(reflected) @@ -147,7 +147,7 @@ emp_act log_game("[key_name(user)] set [key_name(src)] on fire with [I]") -/mob/living/carbon/human/check_projectile_dismemberment(obj/item/projectile/P, def_zone) +/mob/living/carbon/human/check_projectile_dismemberment(obj/projectile/P, def_zone) var/obj/item/organ/external/affecting = get_organ(check_zone(def_zone)) if(affecting && !(affecting.limb_flags & CANNOT_DISMEMBER) && affecting.get_damage() >= (affecting.max_damage - P.dismemberment)) var/damtype = DROPLIMB_SHARP @@ -826,7 +826,7 @@ emp_act return FALSE return TRUE -/mob/living/carbon/human/projectile_hit_check(obj/item/projectile/P) +/mob/living/carbon/human/projectile_hit_check(obj/projectile/P) return (HAS_TRAIT(src, TRAIT_FLOORED) || HAS_TRAIT(src, TRAIT_NOKNOCKDOWNSLOWDOWN)) && !density && !(P.always_hit_living_nondense && (stat != DEAD) && !isLivingSSD(src)) // hit mobs that are intentionally lying down to prevent combat crawling. /mob/living/carbon/human/canBeHandcuffed() diff --git a/code/modules/mob/living/carbon/human/human_mob.dm b/code/modules/mob/living/carbon/human/human_mob.dm index 0524833feb8..ca60e468bba 100644 --- a/code/modules/mob/living/carbon/human/human_mob.dm +++ b/code/modules/mob/living/carbon/human/human_mob.dm @@ -95,7 +95,7 @@ var/last_hit = 0 var/timer_id = TIMER_ID_NULL -/mob/living/carbon/human/dummy/bullet_act(obj/item/projectile/P, def_zone) +/mob/living/carbon/human/dummy/bullet_act(obj/projectile/P, def_zone) if(!first_hit) first_hit = world.time visible_message("Started tracking hit at time [first_hit]!") diff --git a/code/modules/mob/living/carbon/human/species/_species.dm b/code/modules/mob/living/carbon/human/species/_species.dm index 3b477391507..aa174f54e36 100644 --- a/code/modules/mob/living/carbon/human/species/_species.dm +++ b/code/modules/mob/living/carbon/human/species/_species.dm @@ -1071,7 +1071,7 @@ It'll return null if the organ doesn't correspond, so include null checks when u /datum/species/proc/water_act(mob/living/carbon/human/M, volume, temperature, source, method = REAGENT_TOUCH) M.adjust_bodytemperature(clamp((temperature + M.bodytemperature) * 0.5 - M.bodytemperature, BODYTEMP_COOLING_MAX, BODYTEMP_HEATING_MAX)) // Approximation for gradual heating or cooling. -/datum/species/proc/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H) //return TRUE if hit, FALSE if stopped/reflected/etc +/datum/species/proc/bullet_act(obj/projectile/P, mob/living/carbon/human/H) //return TRUE if hit, FALSE if stopped/reflected/etc return TRUE /datum/species/proc/spec_hitby(atom/movable/AM, mob/living/carbon/human/H) diff --git a/code/modules/mob/living/carbon/human/species/diona_species.dm b/code/modules/mob/living/carbon/human/species/diona_species.dm index 746ba23bc6f..bf656aa6390 100644 --- a/code/modules/mob/living/carbon/human/species/diona_species.dm +++ b/code/modules/mob/living/carbon/human/species/diona_species.dm @@ -114,8 +114,8 @@ H.adjustBruteLoss(2) ..() -/datum/species/diona/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H, def_zone) - if(istype(P, /obj/item/projectile/energy/floramut)) +/datum/species/diona/bullet_act(obj/projectile/P, mob/living/carbon/human/H, def_zone) + if(istype(P, /obj/projectile/energy/floramut)) P.nodamage = TRUE H.Weaken(1 SECONDS) if(prob(80)) @@ -123,7 +123,7 @@ else randmutg(H) H.visible_message("[H] writhes for a moment as [H.p_their()] nymphs squirm and mutate.", "All of you squirm uncomfortably for a moment as you feel your genes changing.") - else if(istype(P, /obj/item/projectile/energy/florayield)) + else if(istype(P, /obj/projectile/energy/florayield)) P.nodamage = TRUE var/obj/item/organ/external/organ = H.get_organ(check_zone(def_zone)) if(!organ) diff --git a/code/modules/mob/living/carbon/human/species/golem.dm b/code/modules/mob/living/carbon/human/species/golem.dm index 185bf606ef9..c1b86ca1992 100644 --- a/code/modules/mob/living/carbon/human/species/golem.dm +++ b/code/modules/mob/living/carbon/human/species/golem.dm @@ -384,7 +384,7 @@ new /obj/item/stack/ore/glass(get_turf(H)) qdel(H) -/datum/species/golem/sand/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H) +/datum/species/golem/sand/bullet_act(obj/projectile/P, mob/living/carbon/human/H) if(!(P.original == H && P.firer == H)) if((P.flag == BULLET || P.flag == BOMB) && P.armor_penetration_percentage < 100) playsound(H, 'sound/effects/shovel_dig.ogg', 70, 1) @@ -418,7 +418,7 @@ new /obj/item/shard(get_turf(H)) qdel(H) -/datum/species/golem/glass/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H) +/datum/species/golem/glass/bullet_act(obj/projectile/P, mob/living/carbon/human/H) if(!(P.original == H && P.firer == H)) //self-shots don't reflect if(P.is_reflectable(REFLECTABILITY_ENERGY)) H.visible_message("[P] gets reflected by [H]'s glass skin!", \ @@ -485,7 +485,7 @@ if(world.time > last_teleport + teleport_cooldown && user != H) reactive_teleport(H) -/datum/species/golem/bluespace/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H) +/datum/species/golem/bluespace/bullet_act(obj/projectile/P, mob/living/carbon/human/H) if(world.time > last_teleport + teleport_cooldown) reactive_teleport(H) return TRUE @@ -604,7 +604,7 @@ new/obj/item/grown/bananapeel/specialpeel(get_turf(H)) last_banana = world.time -/datum/species/golem/bananium/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H) +/datum/species/golem/bananium/bullet_act(obj/projectile/P, mob/living/carbon/human/H) if(world.time > last_banana + banana_cooldown) new/obj/item/grown/bananapeel/specialpeel(get_turf(H)) last_banana = world.time diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index a924c29823d..e7df7231330 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -46,7 +46,7 @@ /mob/living/proc/is_eyes_covered(check_glasses = TRUE, check_head = TRUE, check_mask = TRUE) return FALSE -/mob/living/bullet_act(obj/item/projectile/P, def_zone) +/mob/living/bullet_act(obj/projectile/P, def_zone) SEND_SIGNAL(src, COMSIG_ATOM_BULLET_ACT, P, def_zone) //Armor var/armor = run_armor_check(def_zone, P.flag, armor_penetration_flat = P.armor_penetration_flat, armor_penetration_percentage = P.armor_penetration_percentage) @@ -57,7 +57,7 @@ return P.on_hit(src, armor, def_zone) /// Tries to dodge incoming bullets if we aren't disabled for any reasons. Advised to overide with advanced effects, this is as basic example admins can apply. -/mob/living/proc/advanced_bullet_dodge(mob/living/source, obj/item/projectile/hitting_projectile) +/mob/living/proc/advanced_bullet_dodge(mob/living/source, obj/projectile/hitting_projectile) SIGNAL_HANDLER if(HAS_TRAIT(source, TRAIT_IMMOBILIZED)) @@ -79,7 +79,7 @@ advanced_bullet_dodge_chance = 0 return ATOM_PREHIT_FAILURE -/mob/living/proc/check_projectile_dismemberment(obj/item/projectile/P, def_zone) +/mob/living/proc/check_projectile_dismemberment(obj/projectile/P, def_zone) return 0 ///As the name suggests, this should be called to apply electric shocks. diff --git a/code/modules/mob/living/silicon/ai/ai_mob.dm b/code/modules/mob/living/silicon/ai/ai_mob.dm index 7218b738e8f..bbff7675a25 100644 --- a/code/modules/mob/living/silicon/ai/ai_mob.dm +++ b/code/modules/mob/living/silicon/ai/ai_mob.dm @@ -904,7 +904,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list( if(target) open_nearest_door(target) -/mob/living/silicon/ai/bullet_act(obj/item/projectile/Proj) +/mob/living/silicon/ai/bullet_act(obj/projectile/Proj) ..(Proj) return 2 diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index b011e02b1af..1e794197fec 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -393,7 +393,7 @@ . += msg -/mob/living/silicon/pai/bullet_act(obj/item/projectile/Proj) +/mob/living/silicon/pai/bullet_act(obj/projectile/Proj) ..(Proj) if(stat != 2) spawn(1) diff --git a/code/modules/mob/living/silicon/robot/robot_mob.dm b/code/modules/mob/living/silicon/robot/robot_mob.dm index e0c078655eb..82ff3460ea1 100644 --- a/code/modules/mob/living/silicon/robot/robot_mob.dm +++ b/code/modules/mob/living/silicon/robot/robot_mob.dm @@ -929,7 +929,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( return -/mob/living/silicon/robot/bullet_act(obj/item/projectile/Proj) +/mob/living/silicon/robot/bullet_act(obj/projectile/Proj) ..(Proj) if(prob(75) && Proj.damage > 0) spark_system.start() return 2 @@ -1212,7 +1212,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( if(emagged) to_chat(user, "The emag sparks, and flashes red. [src] has already been emagged!") return - + if(wiresexposed) to_chat(user, "You must close the wiring panel first!") return @@ -1614,7 +1614,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( else to_chat(src, "Your allegiance has not been compromised. Keep serving all Syndicate agents to the best of your abilities.") to_chat(src, "Warning: Remote lockdown and detonation protections have been disabled due to system instability.") - + if(module) module.emag_act(flayer) module.module_type = "Malf" // For the cool factor. @@ -1626,7 +1626,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( /mob/living/silicon/robot/proc/remove_robot_mindslave() clear_zeroth_law() - if(mind) + if(mind) mind.remove_antag_datum(/datum/antagonist/mindslave/malf_robot) mind.remove_antag_datum(/datum/antagonist/mindslave/emagged_robot) mind.remove_antag_datum(/datum/antagonist/mindslave/mindflayer_mindslave_robot) @@ -1683,7 +1683,7 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( radio.recalculateChannels() playsound(get_turf(src), 'sound/mecha/nominalnano.ogg', 75, FALSE) -/mob/living/silicon/robot/deathsquad/bullet_act(obj/item/projectile/P) +/mob/living/silicon/robot/deathsquad/bullet_act(obj/projectile/P) if(istype(P) && P.is_reflectable(REFLECTABILITY_ENERGY) && P.starting) visible_message("[P] gets reflected by [src]!", "[P] gets reflected by [src]!") P.reflect_back(src) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index beec2010df6..351d0729b6b 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -421,7 +421,7 @@ if(!current_syringes || chambered?.BB) return - chambered.BB = new /obj/item/projectile/bullet/dart/syringe/heavyduty(src) + chambered.BB = new /obj/projectile/bullet/dart/syringe/heavyduty(src) chambered.BB.reagents.add_reagent_list(list("toxin" = 2)) chambered.BB.name = "heavy duty syringe" current_syringes-- diff --git a/code/modules/mob/living/silicon/silicon_mob.dm b/code/modules/mob/living/silicon/silicon_mob.dm index d52ad84faa5..55b67a49a40 100644 --- a/code/modules/mob/living/silicon/silicon_mob.dm +++ b/code/modules/mob/living/silicon/silicon_mob.dm @@ -284,7 +284,7 @@ user.visible_message("[user] patches some dents on [src] with [I].") -/mob/living/silicon/bullet_act(obj/item/projectile/Proj) +/mob/living/silicon/bullet_act(obj/projectile/Proj) if(!Proj.nodamage) var/damage = run_armor(Proj.damage, Proj.damage_type, Proj.flag, 0, Proj.armor_penetration_flat, Proj.armor_penetration_percentage) switch(Proj.damage_type) diff --git a/code/modules/mob/living/simple_animal/animal_defense.dm b/code/modules/mob/living/simple_animal/animal_defense.dm index 8d80e665ced..ce1fe8109cc 100644 --- a/code/modules/mob/living/simple_animal/animal_defense.dm +++ b/code/modules/mob/living/simple_animal/animal_defense.dm @@ -83,7 +83,7 @@ apply_damage(damage, damagetype, null, getarmor(armor_type = armorcheck)) return TRUE -/mob/living/simple_animal/bullet_act(obj/item/projectile/Proj) +/mob/living/simple_animal/bullet_act(obj/projectile/Proj) if(!Proj) return apply_damage(Proj.damage, Proj.damage_type) diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index 12fdc97d080..a4390d38651 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -515,7 +515,7 @@ add_fingerprint(user) user.visible_message("[user] repairs [src]!","You repair [src].") -/mob/living/simple_animal/bot/bullet_act(obj/item/projectile/Proj) +/mob/living/simple_animal/bot/bullet_act(obj/projectile/Proj) if(Proj && (Proj.damage_type == BRUTE || Proj.damage_type == BURN)) if(prob(75) && Proj.damage > 0) do_sparks(5, 1, src) diff --git a/code/modules/mob/living/simple_animal/bot/ed209bot.dm b/code/modules/mob/living/simple_animal/bot/ed209bot.dm index b8b78faac8e..f92bc1f9c42 100644 --- a/code/modules/mob/living/simple_animal/bot/ed209bot.dm +++ b/code/modules/mob/living/simple_animal/bot/ed209bot.dm @@ -38,7 +38,7 @@ var/weapons_check = TRUE //If true, arrest people for weapons if they don't have access var/check_records = TRUE //Does it check security records? var/no_handcuffs = FALSE //If true, don't handcuff - var/projectile = /obj/item/projectile/beam/disabler //Holder for projectile type + var/projectile = /obj/projectile/beam/disabler //Holder for projectile type var/shoot_sound = 'sound/weapons/taser.ogg' var/baton_delayed = FALSE var/obj/item/melee/baton/infinite_cell/baton = null // stunbaton bot uses to melee attack @@ -200,15 +200,15 @@ icon_state = "[lasercolor]ed209[on]" set_weapon() -/mob/living/simple_animal/bot/ed209/bullet_act(obj/item/projectile/Proj) +/mob/living/simple_animal/bot/ed209/bullet_act(obj/projectile/Proj) if(!disabled) var/lasertag_check = FALSE if(lasercolor == "b") - if(istype(Proj, /obj/item/projectile/beam/lasertag/redtag)) + if(istype(Proj, /obj/projectile/beam/lasertag/redtag)) lasertag_check = TRUE else if(lasercolor == "r") - if(istype(Proj, /obj/item/projectile/beam/lasertag/bluetag)) + if(istype(Proj, /obj/projectile/beam/lasertag/bluetag)) lasertag_check = TRUE if(lasertag_check) @@ -219,7 +219,7 @@ addtimer(CALLBACK(src, PROC_REF(unset_disabled)), 10 SECONDS) return TRUE - if(istype(Proj ,/obj/item/projectile/beam)||istype(Proj,/obj/item/projectile/bullet)) + if(istype(Proj ,/obj/projectile/beam)||istype(Proj,/obj/projectile/bullet)) if((Proj.damage_type == BURN) || (Proj.damage_type == BRUTE)) if(!Proj.nodamage && Proj.damage < src.health) retaliate(Proj.firer) @@ -440,16 +440,16 @@ shoot_sound = 'sound/weapons/laser.ogg' if(emagged) if(lasercolor) - projectile = /obj/item/projectile/beam/disabler + projectile = /obj/projectile/beam/disabler else - projectile = /obj/item/projectile/beam + projectile = /obj/projectile/beam else if(!lasercolor) - projectile = /obj/item/projectile/beam/disabler + projectile = /obj/projectile/beam/disabler else if(lasercolor == "b") - projectile = /obj/item/projectile/beam/lasertag/bluetag + projectile = /obj/projectile/beam/lasertag/bluetag else if(lasercolor == "r") - projectile = /obj/item/projectile/beam/lasertag/redtag + projectile = /obj/projectile/beam/lasertag/redtag /mob/living/simple_animal/bot/ed209/proc/shootAt(mob/target) if(lastfired && world.time - lastfired < shot_delay) @@ -469,7 +469,7 @@ if(!isturf(U)) return - var/obj/item/projectile/A = new projectile(loc) + var/obj/projectile/A = new projectile(loc) playsound(loc, shoot_sound, 50, 1) A.current = U A.yo = U.y - T.y diff --git a/code/modules/mob/living/simple_animal/bot/griefsky.dm b/code/modules/mob/living/simple_animal/bot/griefsky.dm index e122750b31e..e2b333a103d 100644 --- a/code/modules/mob/living/simple_animal/bot/griefsky.dm +++ b/code/modules/mob/living/simple_animal/bot/griefsky.dm @@ -69,7 +69,7 @@ var/mob/living/carbon/C = A sword_attack(C) -/mob/living/simple_animal/bot/secbot/griefsky/bullet_act(obj/item/projectile/P) //so uncivilized +/mob/living/simple_animal/bot/secbot/griefsky/bullet_act(obj/projectile/P) //so uncivilized retaliate(P.firer) if((icon_state == spin_icon) && (prob(block_chance_ranged))) //only when the eswords are on visible_message("[src] deflects [P] with its energy swords!") diff --git a/code/modules/mob/living/simple_animal/bot/honkbot.dm b/code/modules/mob/living/simple_animal/bot/honkbot.dm index c29d9d2a7b9..2855cef2cc7 100644 --- a/code/modules/mob/living/simple_animal/bot/honkbot.dm +++ b/code/modules/mob/living/simple_animal/bot/honkbot.dm @@ -156,8 +156,8 @@ if(HAS_TRAIT(src, TRAIT_CMAGGED)) . += "Yellow ooze seems to be seeping from the case..." -/mob/living/simple_animal/bot/honkbot/bullet_act(obj/item/projectile/Proj) - if((istype(Proj,/obj/item/projectile/beam)) || (istype(Proj,/obj/item/projectile/bullet) && (Proj.damage_type == BURN))||(Proj.damage_type == BRUTE) && (!Proj.nodamage && Proj.damage < health && ishuman(Proj.firer))) +/mob/living/simple_animal/bot/honkbot/bullet_act(obj/projectile/Proj) + if((istype(Proj,/obj/projectile/beam)) || (istype(Proj,/obj/projectile/bullet) && (Proj.damage_type == BURN))||(Proj.damage_type == BRUTE) && (!Proj.nodamage && Proj.damage < health && ishuman(Proj.firer))) retaliate(Proj.firer) ..() diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index ff0fed1d89c..75b333a951c 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -223,7 +223,7 @@ wires.cut_random() return -/mob/living/simple_animal/bot/mulebot/bullet_act(obj/item/projectile/Proj) +/mob/living/simple_animal/bot/mulebot/bullet_act(obj/projectile/Proj) if(..()) if(prob(50) && !isnull(load)) unload(0) diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index 01bf64f0104..89928abf395 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -207,14 +207,14 @@ declare_arrests = FALSE icon_state = "[base_icon][on]" -/mob/living/simple_animal/bot/secbot/bullet_act(obj/item/projectile/Proj) - if(istype(Proj ,/obj/item/projectile/beam)||istype(Proj,/obj/item/projectile/bullet)) +/mob/living/simple_animal/bot/secbot/bullet_act(obj/projectile/Proj) + if(istype(Proj ,/obj/projectile/beam)||istype(Proj,/obj/projectile/bullet)) if((Proj.damage_type == BURN) || (Proj.damage_type == BRUTE)) if(!Proj.nodamage && Proj.damage < src.health) retaliate(Proj.firer) ..() -/mob/living/simple_animal/bot/secbot/projectile_hit_check(obj/item/projectile/P) +/mob/living/simple_animal/bot/secbot/projectile_hit_check(obj/projectile/P) return FALSE diff --git a/code/modules/mob/living/simple_animal/bot/syndicate_bots.dm b/code/modules/mob/living/simple_animal/bot/syndicate_bots.dm index 6b09e40452b..ddc4def7093 100644 --- a/code/modules/mob/living/simple_animal/bot/syndicate_bots.dm +++ b/code/modules/mob/living/simple_animal/bot/syndicate_bots.dm @@ -150,7 +150,7 @@ if(lastfired && world.time - lastfired < shot_delay) return lastfired = world.time - var/obj/item/projectile/P = new projectile(loc) + var/obj/projectile/P = new projectile(loc) playsound(loc, shoot_sound, 100, 1) P.current = loc P.starting = loc @@ -176,7 +176,7 @@ qdel(src) /mob/living/simple_animal/bot/ed209/syndicate/set_weapon() - projectile = /obj/item/projectile/bullet/a40mm + projectile = /obj/projectile/bullet/a40mm /mob/living/simple_animal/bot/ed209/syndicate/emp_act(severity) return diff --git a/code/modules/mob/living/simple_animal/clockwork_constructs.dm b/code/modules/mob/living/simple_animal/clockwork_constructs.dm index 5fd4b91745f..942e38dae78 100644 --- a/code/modules/mob/living/simple_animal/clockwork_constructs.dm +++ b/code/modules/mob/living/simple_animal/clockwork_constructs.dm @@ -61,7 +61,7 @@ damage_shield() playsound(src,'sound/hallucinations/veryfar_noise.ogg', 40, 1) -/mob/living/simple_animal/hostile/clockwork_construct/clockwork_marauder/bullet_act(obj/item/projectile/Proj) +/mob/living/simple_animal/hostile/clockwork_construct/clockwork_marauder/bullet_act(obj/projectile/Proj) if(shield_health > 0) damage_shield() to_chat(src, "Your shield blocks the attack!") diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index a2e9479bf26..a3c5c6c3c9f 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -138,7 +138,7 @@ AIStatus = AI_ON environment_smash = 1 //only token destruction, don't smash the cult wall NO STOP -/mob/living/simple_animal/hostile/construct/armoured/bullet_act(obj/item/projectile/P) +/mob/living/simple_animal/hostile/construct/armoured/bullet_act(obj/projectile/P) if(P.is_reflectable(REFLECTABILITY_ENERGY)) if(P.damage_type == BRUTE || P.damage_type == BURN) adjustBruteLoss(P.damage * 0.8) // 16 hit with security laser gun diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm index 82c6bc9dce8..2e00076bdf8 100644 --- a/code/modules/mob/living/simple_animal/friendly/dog.dm +++ b/code/modules/mob/living/simple_animal/friendly/dog.dm @@ -621,7 +621,7 @@ var/turf/U = get_turf(target) if(!T || !U) return - var/obj/item/projectile/beam/A = new /obj/item/projectile/beam(loc) + var/obj/projectile/beam/A = new /obj/projectile/beam(loc) A.icon = 'icons/effects/genetics.dmi' A.icon_state = "eyelasers" playsound(src.loc, 'sound/weapons/taser2.ogg', 75, 1) diff --git a/code/modules/mob/living/simple_animal/hostile/headslug.dm b/code/modules/mob/living/simple_animal/hostile/headslug.dm index 4dcdc0e41d5..380059e147d 100644 --- a/code/modules/mob/living/simple_animal/hostile/headslug.dm +++ b/code/modules/mob/living/simple_animal/hostile/headslug.dm @@ -63,7 +63,7 @@ to_chat(src, "With our egg laid, our death approaches rapidly...") addtimer(CALLBACK(src, PROC_REF(death)), 25 SECONDS) -/mob/living/simple_animal/hostile/headslug/projectile_hit_check(obj/item/projectile/P) +/mob/living/simple_animal/hostile/headslug/projectile_hit_check(obj/projectile/P) return (stat || FALSE) /obj/item/organ/internal/body_egg/changeling_egg diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 3a424121441..2bd407df65d 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -122,7 +122,7 @@ if(stat == CONSCIOUS && !target && AIStatus != AI_OFF && !client && user) FindTarget(list(user), 1) -/mob/living/simple_animal/hostile/bullet_act(obj/item/projectile/P) +/mob/living/simple_animal/hostile/bullet_act(obj/projectile/P) if(stat == CONSCIOUS && !target && AIStatus != AI_OFF && !client) if(P.firer && get_dist(src, P.firer) <= aggro_vision_range) FindTarget(list(P.firer), 1) @@ -397,7 +397,7 @@ playsound(src, projectilesound, 100, 1) casing.fire(targeted_atom, src, zone_override = ran_zone(), firer_source_atom = src) else if(projectiletype) - var/obj/item/projectile/P = new projectiletype(startloc) + var/obj/projectile/P = new projectiletype(startloc) playsound(src, projectilesound, 100, 1) P.current = startloc P.starting = startloc diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm index 45241004609..e7a85631280 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/ancient_robot.dm @@ -359,7 +359,7 @@ Difficulty: Hard addtimer(CALLBACK(src, PROC_REF(body_shield)), BODY_SHIELD_COOLDOWN_TIME) -/mob/living/simple_animal/hostile/megafauna/ancient_robot/bullet_act(obj/item/projectile/P) +/mob/living/simple_animal/hostile/megafauna/ancient_robot/bullet_act(obj/projectile/P) if(!body_shield_enabled) return ..() do_sparks(2, 1, src) @@ -435,7 +435,7 @@ Difficulty: Hard var/turf/S = get_turf(src) if(!S || !T) return - var/obj/item/projectile/energy/tesla_bolt/O = new /obj/item/projectile/energy/tesla_bolt(S) + var/obj/projectile/energy/tesla_bolt/O = new /obj/projectile/energy/tesla_bolt(S) O.current = S O.yo = T.y - S.y O.xo = T.x - S.x @@ -488,7 +488,7 @@ Difficulty: Hard var/turf/T = get_turf(target) if(!spot || !T) return - var/obj/item/projectile/bullet/rock/O = new /obj/item/projectile/bullet/rock(spot) + var/obj/projectile/bullet/rock/O = new /obj/projectile/bullet/rock(spot) O.current = spot O.yo = T.y - spot.y O.xo = T.x - spot.x @@ -662,7 +662,7 @@ Difficulty: Hard check_friendly_fire = 1 ranged = TRUE projectilesound = 'sound/weapons/gunshots/gunshot.ogg' - projectiletype = /obj/item/projectile/bullet/ancient_robot_bullet + projectiletype = /obj/projectile/bullet/ancient_robot_bullet attacktext = "stomps on" armor_penetration_percentage = 50 melee_damage_lower = 15 @@ -707,7 +707,7 @@ Difficulty: Hard ..() health_and_snap_check(TRUE) -/mob/living/simple_animal/hostile/ancient_robot_leg/bullet_act(obj/item/projectile/P) +/mob/living/simple_animal/hostile/ancient_robot_leg/bullet_act(obj/projectile/P) if(core.stat == CONSCIOUS && !core.target && core.AIStatus != AI_OFF && !core.client) if(P.firer && get_dist(core, P.firer) <= core.aggro_vision_range) core.FindTarget(list(P.firer), 1) @@ -809,10 +809,10 @@ Difficulty: Hard /mob/living/simple_animal/hostile/ancient_robot_leg/electrocute_act(shock_damage, source, siemens_coeff, flags) return -/obj/item/projectile/bullet/ancient_robot_bullet +/obj/projectile/bullet/ancient_robot_bullet damage = 8 -/obj/item/projectile/bullet/rock +/obj/projectile/bullet/rock name= "thrown rock" damage = 25 icon = 'icons/obj/meteor.dmi' @@ -827,7 +827,7 @@ Difficulty: Hard /// Leaving here for adminbus / so vetus still uses it. -/obj/item/projectile/energy/tesla_bolt +/obj/projectile/energy/tesla_bolt name = "shock bolt" icon_state = "purple_laser" impact_effect_type = /obj/effect/temp_visual/impact_effect/purple_laser @@ -838,16 +838,16 @@ Difficulty: Hard /obj/item/ammo_casing/energy/tesla_bolt/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") ..() - var/obj/item/projectile/energy/tesla_bolt/P = BB + var/obj/projectile/energy/tesla_bolt/P = BB spawn(1) P.chain = P.Beam(user, icon_state = "purple_lightning", icon = 'icons/effects/effects.dmi', time = 1000, maxdistance = 30) -/obj/item/projectile/energy/tesla_bolt/on_hit(atom/target) +/obj/projectile/energy/tesla_bolt/on_hit(atom/target) . = ..() tesla_zap(src, zap_range, power, zap_flags) qdel(src) -/obj/item/projectile/energy/tesla_bolt/Bump(atom/A) // Don't want the projectile hitting the legs +/obj/projectile/energy/tesla_bolt/Bump(atom/A) // Don't want the projectile hitting the legs if(!istype(/mob/living/simple_animal/hostile/ancient_robot_leg, A)) return ..() var/turf/target_turf = get_turf(A) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm index d7d96239e68..783398915bc 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm @@ -32,7 +32,7 @@ Difficulty: Medium light_color = "#E4C7C5" speak_emote = list("roars") speed = 3 - projectiletype = /obj/item/projectile/kinetic/miner + projectiletype = /obj/projectile/kinetic/miner projectilesound = 'sound/weapons/kenetic_accel.ogg' ranged = TRUE ranged_cooldown_time = 16 @@ -120,13 +120,13 @@ Difficulty: Medium ..() target.remove_stun_absorption("miner") -/obj/item/projectile/kinetic/miner +/obj/projectile/kinetic/miner damage = 20 speed = 0.9 icon_state = "ka_tracer" range = MINER_DASH_RANGE -/obj/item/projectile/kinetic/miner/enraged +/obj/projectile/kinetic/miner/enraged damage = 35 /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/adjustHealth(amount, updating_health = TRUE) @@ -201,7 +201,7 @@ Difficulty: Medium miner_saw = new /obj/item/melee/energy/cleaving_saw(src) //Real saw for real men. dash_cooldown_to_use = 0.5 SECONDS //Becomes a teleporting shit. ranged_cooldown_time = 5 //They got some cooldown mods. - projectiletype = /obj/item/projectile/kinetic/miner/enraged + projectiletype = /obj/projectile/kinetic/miner/enraged maxHealth = 1800 health = 1800 //Bit more of a challenge. diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm index fb738453aa2..1541c5fb335 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -513,7 +513,7 @@ Difficulty: Hard if(.) recovery_time = world.time + 20 // can only attack melee once every 2 seconds but rapid_melee gives higher priority -/mob/living/simple_animal/hostile/megafauna/bubblegum/bullet_act(obj/item/projectile/P) +/mob/living/simple_animal/hostile/megafauna/bubblegum/bullet_act(obj/projectile/P) if(BUBBLEGUM_IS_ENRAGED) visible_message("[src] deflects the projectile; [p_they()] can't be hit with ranged weapons while enraged!", "You deflect the projectile!") playsound(src, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 300, TRUE) @@ -654,7 +654,7 @@ Difficulty: Hard second_life = TRUE enraged = TRUE rapid_melee = 12 - projectiletype = /obj/item/projectile/magic/arcane_barrage/blood + projectiletype = /obj/projectile/magic/arcane_barrage/blood projectilesound = 'sound/effects/splat.ogg' deathmessage = null death_sound = 'sound/hallucinations/veryfar_noise.ogg' diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index 8523928e320..db9392c0fce 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -222,7 +222,7 @@ Difficulty: Very Hard if(!startloc || !endloc || endloc == loc) return - var/obj/item/projectile/P = new /obj/item/projectile/colossus(startloc) + var/obj/projectile/P = new /obj/projectile/colossus(startloc) P.preparePixelProjectile(endloc, startloc) P.firer = src P.firer_source_atom = src @@ -334,7 +334,7 @@ Difficulty: Very Hard target = new_target INVOKE_ASYNC(src, TYPE_PROC_REF(/atom/movable, orbit), target, 0, FALSE, 0, 0, FALSE, TRUE) -/mob/living/simple_animal/hostile/megafauna/colossus/bullet_act(obj/item/projectile/P) +/mob/living/simple_animal/hostile/megafauna/colossus/bullet_act(obj/projectile/P) if(stat == CONSCIOUS) var/obj/effect/temp_visual/at_shield/AT = new /obj/effect/temp_visual/at_shield(loc, src) var/random_x = rand(-32, 32) @@ -356,14 +356,14 @@ Difficulty: Very Hard for(var/I in 1 to 2) loot += pick_n_take(choices) -/obj/item/projectile/colossus +/obj/projectile/colossus name = "death bolt" icon_state = "chronobolt" damage = 25 armor_penetration_percentage = 100 speed = 2 -/obj/item/projectile/colossus/on_hit(atom/target, blocked = 0) +/obj/projectile/colossus/on_hit(atom/target, blocked = 0) . = ..() if(isturf(target) || isobj(target)) target.ex_act(EXPLODE_HEAVY) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index bf5ee946c59..6fa856fb7a4 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -549,7 +549,7 @@ Difficulty: Hard burst_range = initial(burst_range) + round(anger_modifier * 0.08) beam_range = initial(beam_range) + round(anger_modifier * 0.12) -/mob/living/simple_animal/hostile/megafauna/hierophant/bullet_act(obj/item/projectile/P) +/mob/living/simple_animal/hostile/megafauna/hierophant/bullet_act(obj/projectile/P) if(stat == CONSCIOUS && !target && AIStatus != AI_OFF && !client) if(P.firer && get_dist(src, P.firer) <= aggro_vision_range) FindTarget(list(P.firer), 1) @@ -608,7 +608,7 @@ Difficulty: Hard if(mover == caster.pulledby) return TRUE if(isprojectile(mover)) - var/obj/item/projectile/P = mover + var/obj/projectile/P = mover if(P.firer == caster) return TRUE if(mover == caster) diff --git a/code/modules/mob/living/simple_animal/hostile/mining/abandoned_minebot.dm b/code/modules/mob/living/simple_animal/hostile/mining/abandoned_minebot.dm index 76531edc994..e94419e8135 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining/abandoned_minebot.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining/abandoned_minebot.dm @@ -19,7 +19,7 @@ environment_smash = ENVIRONMENT_SMASH_STRUCTURES attacktext = "drills into" attack_sound = 'sound/weapons/circsawhit.ogg' - projectiletype = /obj/item/projectile/kinetic + projectiletype = /obj/projectile/kinetic projectilesound = 'sound/weapons/kenetic_accel.ogg' speak_emote = list("states") throw_message = "does not go through the armor of" @@ -70,9 +70,9 @@ . += "[rand(-30, 110)]% mod capacity remaining.\nThere is a module installed, using [rand(-5, 35)]% capacity.\n...or at least you think so." /mob/living/simple_animal/hostile/asteroid/abandoned_minebot/CanPass(atom/movable/O) - if(!istype(O, /obj/item/projectile/kinetic)) + if(!istype(O, /obj/projectile/kinetic)) return ..() - var/obj/item/projectile/kinetic/K = O + var/obj/projectile/kinetic/K = O if(K.kinetic_gun) for(var/A in K.kinetic_gun.get_modkits()) var/obj/item/borg/upgrade/modkit/M = A diff --git a/code/modules/mob/living/simple_animal/hostile/mining/elites/herald.dm b/code/modules/mob/living/simple_animal/hostile/mining/elites/herald.dm index 697e3cdecca..96d32d9f5df 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining/elites/herald.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining/elites/herald.dm @@ -128,7 +128,7 @@ /mob/living/simple_animal/hostile/asteroid/elite/herald/proc/shoot_projectile(turf/marker, set_angle, is_teleshot, is_trishot) var/turf/startloc = get_turf(src) if(!is_teleshot) - var/obj/item/projectile/H = new /obj/item/projectile/herald(startloc) + var/obj/projectile/H = new /obj/projectile/herald(startloc) H.preparePixelProjectile(marker, startloc) H.firer = src H.firer_source_atom = src @@ -139,7 +139,7 @@ shoot_projectile(marker, set_angle + 15, FALSE, FALSE) shoot_projectile(marker, set_angle - 15, FALSE, FALSE) else - var/obj/item/projectile/H = new /obj/item/projectile/herald/teleshot(startloc) + var/obj/projectile/H = new /obj/projectile/herald/teleshot(startloc) H.preparePixelProjectile(marker, startloc) H.firer = src H.firer_source_atom = src @@ -222,19 +222,19 @@ my_master = null . = ..() -/obj/item/projectile/herald +/obj/projectile/herald name = "death bolt" icon_state = "chronobolt" damage = 15 armor_penetration_percentage = 50 speed = 2 -/obj/item/projectile/herald/teleshot +/obj/projectile/herald/teleshot name = "golden bolt" damage = 0 color = rgb(255,255,102) -/obj/item/projectile/herald/prehit(atom/target) +/obj/projectile/herald/prehit(atom/target) if(ismob(target) && ismob(firer)) var/mob/living/mob_target = target if(mob_target.faction_check_mob(firer)) @@ -244,13 +244,13 @@ if(mob_target.buckled && mob_target.stat == DEAD) mob_target.dust() //no body cheese -/obj/item/projectile/herald/on_hit(atom/target, blocked = FALSE) +/obj/projectile/herald/on_hit(atom/target, blocked = FALSE) . = ..() if(ismineralturf(target)) var/turf/simulated/mineral/M = target M.gets_drilled() -/obj/item/projectile/herald/teleshot/on_hit(atom/target, blocked = FALSE) +/obj/projectile/herald/teleshot/on_hit(atom/target, blocked = FALSE) . = ..() if(!istype(target, /mob/living/simple_animal/hostile/asteroid/elite/herald)) firer.forceMove(get_turf(src)) diff --git a/code/modules/mob/living/simple_animal/hostile/mining/mining.dm b/code/modules/mob/living/simple_animal/hostile/mining/mining.dm index 4ba267e3448..689cf8c8b5e 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining/mining.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining/mining.dm @@ -32,7 +32,7 @@ return icon_state = icon_living -/mob/living/simple_animal/hostile/asteroid/bullet_act(obj/item/projectile/P)//Reduces damage from most projectiles to curb off-screen kills +/mob/living/simple_animal/hostile/asteroid/bullet_act(obj/projectile/P)//Reduces damage from most projectiles to curb off-screen kills if(stat == CONSCIOUS) Aggro() if(P.damage < 30 && P.damage_type != BRUTE && has_laser_resist) diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate_mobs.dm b/code/modules/mob/living/simple_animal/hostile/syndicate_mobs.dm index 47357d0a897..5bc8b1275c1 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate_mobs.dm @@ -511,7 +511,7 @@ return ..() -/mob/living/simple_animal/hostile/syndicate/bullet_act(obj/item/projectile/Proj) +/mob/living/simple_animal/hostile/syndicate/bullet_act(obj/projectile/Proj) if(!Proj) return if(((melee_type == MELEE_WEAPON_DSWORD || syndie_flags & ESHIELD) || (melee_type == MELEE_WEAPON_ESWORD && prob(reflect_chance))) && Proj.is_reflectable(REFLECTABILITY_ENERGY)) diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/actions.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/actions.dm index 49032fa3112..45003d25e2d 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/actions.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/actions.dm @@ -172,7 +172,7 @@ /obj/structure/spider/terrorweb/CanPass(atom/movable/mover, border_dir) if(isterrorspider(mover)) return TRUE - if(istype(mover, /obj/item/projectile/terrorqueenspit)) + if(istype(mover, /obj/projectile/terrorqueenspit)) return TRUE if(isliving(mover)) var/mob/living/M = mover @@ -202,7 +202,7 @@ if(!QDELETED(C) && C.loc == loc) qdel(src) -/obj/structure/spider/terrorweb/bullet_act(obj/item/projectile/Proj) +/obj/structure/spider/terrorweb/bullet_act(obj/projectile/Proj) if(Proj.damage_type != BRUTE && Proj.damage_type != BURN) visible_message("[src] is undamaged by [Proj]!") // Webs don't care about disablers, tasers, etc. Or toxin damage. They're organic, but not alive. diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/empress_terror.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/empress_terror.dm index 5ce6056da41..90c09fa1dd6 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/empress_terror.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/empress_terror.dm @@ -22,7 +22,7 @@ ai_playercontrol_allowtype = 0 canlay = 1000 spider_tier = TS_TIER_5 - projectiletype = /obj/item/projectile/terrorqueenspit/empress + projectiletype = /obj/projectile/terrorqueenspit/empress icon = 'icons/mob/terrorspider64.dmi' pixel_x = -16 mob_size = MOB_SIZE_LARGE @@ -107,6 +107,6 @@ qdel(T) to_chat(src, "All Terror Spiders, except yourself, will die off shortly.") -/obj/item/projectile/terrorqueenspit/empress +/obj/projectile/terrorqueenspit/empress damage = 90 diff --git a/code/modules/mob/living/simple_animal/hostile/terror_spiders/queen_terror.dm b/code/modules/mob/living/simple_animal/hostile/terror_spiders/queen_terror.dm index d359fa58e56..a96be22ea2f 100644 --- a/code/modules/mob/living/simple_animal/hostile/terror_spiders/queen_terror.dm +++ b/code/modules/mob/living/simple_animal/hostile/terror_spiders/queen_terror.dm @@ -33,7 +33,7 @@ retreat_distance = 5 minimum_distance = 5 projectilesound = 'sound/weapons/pierce.ogg' - projectiletype = /obj/item/projectile/terrorqueenspit + projectiletype = /obj/projectile/terrorqueenspit spider_tier = TS_TIER_4 loudspeaker = TRUE spider_opens_doors = 2 @@ -352,7 +352,7 @@ if(is_station_level((get_turf(src)).z) && stat != DEAD) return list(ASSIGNMENT_SECURITY = 3, ASSIGNMENT_CREW = 30, ASSIGNMENT_MEDICAL = 2) -/obj/item/projectile/terrorqueenspit +/obj/projectile/terrorqueenspit name = "acid spit" damage = 40 icon_state = "toxin" diff --git a/code/modules/mob/living/simple_animal/hostile/winter_mobs.dm b/code/modules/mob/living/simple_animal/hostile/winter_mobs.dm index e4b7ae82da3..b28dd794cd2 100644 --- a/code/modules/mob/living/simple_animal/hostile/winter_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/winter_mobs.dm @@ -49,7 +49,7 @@ ranged = TRUE retreat_distance = 5 minimum_distance = 5 - projectiletype = /obj/item/projectile/snowball + projectiletype = /obj/projectile/snowball /mob/living/simple_animal/hostile/winter/reindeer name = "reindeer" @@ -104,7 +104,7 @@ maxHealth = 200 //DID YOU REALLY BELIEVE IT WOULD BE THIS EASY!??!! health = 200 ranged = TRUE - projectiletype = /obj/item/projectile/ornament + projectiletype = /obj/projectile/ornament retreat_distance = 5 minimum_distance = 5 @@ -118,7 +118,7 @@ ranged = TRUE rapid = 3 speed = 0 //he's lost some weight from the fighting - projectiletype = /obj/item/projectile/ornament + projectiletype = /obj/projectile/ornament retreat_distance = 3 minimum_distance = 3 diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index 22f8854565b..a26ec5a2e05 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -192,7 +192,7 @@ drop_held_item(FALSE) //Bullets -/mob/living/simple_animal/parrot/bullet_act(obj/item/projectile/P) +/mob/living/simple_animal/parrot/bullet_act(obj/projectile/P) ..() if(stat == CONSCIOUS && !client) if(parrot_state == PARROT_PERCH) diff --git a/code/modules/mob/living/simple_animal/slime/slime_mob.dm b/code/modules/mob/living/simple_animal/slime/slime_mob.dm index eb76f36d791..f329ebb7df3 100644 --- a/code/modules/mob/living/simple_animal/slime/slime_mob.dm +++ b/code/modules/mob/living/simple_animal/slime/slime_mob.dm @@ -263,7 +263,7 @@ amount = -abs(amount) return ..() //Heals them -/mob/living/simple_animal/slime/bullet_act(obj/item/projectile/Proj) +/mob/living/simple_animal/slime/bullet_act(obj/projectile/Proj) if(!Proj) return attacked += 10 diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index 301ffaed121..a9f4ae5ca17 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -20,7 +20,7 @@ return TRUE return (!mover.density || !density || horizontal) -/mob/proc/projectile_hit_check(obj/item/projectile/P) +/mob/proc/projectile_hit_check(obj/projectile/P) return !(P.always_hit_living_nondense && (stat != DEAD) && !isLivingSSD(src)) && !density /client/verb/toggle_throw_mode() diff --git a/code/modules/mod/modules/modules_antag.dm b/code/modules/mod/modules/modules_antag.dm index 37618b86127..7189ffde5d2 100644 --- a/code/modules/mod/modules/modules_antag.dm +++ b/code/modules/mod/modules/modules_antag.dm @@ -318,7 +318,7 @@ return unstealth(source) -/obj/item/mod/module/stealth/proc/on_bullet_act(datum/source, obj/item/projectile) +/obj/item/mod/module/stealth/proc/on_bullet_act(datum/source, obj/projectile) SIGNAL_HANDLER unstealth(source) diff --git a/code/modules/mod/modules/modules_engineering.dm b/code/modules/mod/modules/modules_engineering.dm index 4ec0a69fdbd..9d52eb4ccd2 100644 --- a/code/modules/mod/modules/modules_engineering.dm +++ b/code/modules/mod/modules/modules_engineering.dm @@ -119,16 +119,16 @@ . = ..() if(!.) return - var/obj/item/projectile/tether = new /obj/item/projectile/tether(get_turf(mod.wearer)) + var/obj/projectile/tether = new /obj/projectile/tether(get_turf(mod.wearer)) tether.original = target tether.firer = mod.wearer tether.preparePixelProjectile(target, mod.wearer) tether.fire() playsound(src, 'sound/weapons/batonextend.ogg', 25, TRUE) - INVOKE_ASYNC(tether, TYPE_PROC_REF(/obj/item/projectile/tether, make_chain)) + INVOKE_ASYNC(tether, TYPE_PROC_REF(/obj/projectile/tether, make_chain)) drain_power(use_power_cost) -/obj/item/projectile/tether +/obj/projectile/tether name = "tether" icon_state = "tether_projectile" icon = 'icons/obj/clothing/modsuit/mod_modules.dmi' @@ -141,18 +141,18 @@ ///How fast the tether will throw the user at the target var/yank_speed = 1 -/obj/item/projectile/tether/proc/make_chain() +/obj/projectile/tether/proc/make_chain() if(firer) chain = Beam(firer, chain_icon_state, icon, time = 10 SECONDS, maxdistance = range) -/obj/item/projectile/tether/on_hit(atom/target) +/obj/projectile/tether/on_hit(atom/target) . = ..() if(firer && isliving(firer)) var/mob/living/L = firer L.apply_status_effect(STATUS_EFFECT_IMPACT_IMMUNE) L.throw_at(target, 15, yank_speed, L, FALSE, FALSE, callback = CALLBACK(L, TYPE_PROC_REF(/mob/living, remove_status_effect), STATUS_EFFECT_IMPACT_IMMUNE), block_movement = FALSE) -/obj/item/projectile/tether/Destroy() +/obj/projectile/tether/Destroy() QDEL_NULL(chain) return ..() diff --git a/code/modules/mod/modules/modules_supply.dm b/code/modules/mod/modules/modules_supply.dm index 795717a8432..b0bcc241eae 100644 --- a/code/modules/mod/modules/modules_supply.dm +++ b/code/modules/mod/modules/modules_supply.dm @@ -474,7 +474,7 @@ . = ..() if(!.) return - var/obj/item/projectile/bomb = new /obj/item/projectile/bullet/reusable/mining_bomb(get_turf(mod.wearer)) + var/obj/projectile/bomb = new /obj/projectile/bullet/reusable/mining_bomb(get_turf(mod.wearer)) bomb.original = target bomb.firer = mod.wearer bomb.preparePixelProjectile(target, mod.wearer) @@ -494,7 +494,7 @@ return on_deactivation() -/obj/item/projectile/bullet/reusable/mining_bomb +/obj/projectile/bullet/reusable/mining_bomb name = "mining bomb" desc = "A bomb. Why are you staring at this?" icon_state = "mine_bomb" @@ -506,7 +506,7 @@ light_color = LIGHT_COLOR_ORANGE ammo_type = /obj/structure/mining_bomb -/obj/item/projectile/bullet/reusable/mining_bomb/handle_drop() +/obj/projectile/bullet/reusable/mining_bomb/handle_drop() if(!dropped) new ammo_type(loc, firer) dropped = TRUE @@ -566,7 +566,7 @@ object.take_damage(damage, BRUTE, BOMB) qdel(src) -/obj/item/projectile/bullet/reusable/mining_bomb/mecha +/obj/projectile/bullet/reusable/mining_bomb/mecha ammo_type = /obj/structure/mining_bomb/mecha /obj/structure/mining_bomb/mecha diff --git a/code/modules/power/engines/singularity/emitter.dm b/code/modules/power/engines/singularity/emitter.dm index 13ffc61892a..41c5fc1fb7b 100644 --- a/code/modules/power/engines/singularity/emitter.dm +++ b/code/modules/power/engines/singularity/emitter.dm @@ -33,7 +33,7 @@ /// Locked by an ID card var/locked = FALSE - var/projectile_type = /obj/item/projectile/beam/emitter/hitscan + var/projectile_type = /obj/projectile/beam/emitter/hitscan var/projectile_sound = 'sound/weapons/emitter.ogg' var/datum/effect_system/spark_spread/sparks @@ -282,7 +282,7 @@ return FALSE /obj/machinery/power/emitter/proc/fire_beam() - var/obj/item/projectile/P = new projectile_type(get_turf(src)) + var/obj/projectile/P = new projectile_type(get_turf(src)) playsound(get_turf(src), projectile_sound, 50, TRUE) if(prob(35)) sparks.start() diff --git a/code/modules/power/engines/singularity/field_generator.dm b/code/modules/power/engines/singularity/field_generator.dm index d10420963a4..0cfa4965708 100644 --- a/code/modules/power/engines/singularity/field_generator.dm +++ b/code/modules/power/engines/singularity/field_generator.dm @@ -180,7 +180,7 @@ field_generator energy level display else ..() -/obj/machinery/field/generator/bullet_act(obj/item/projectile/Proj) +/obj/machinery/field/generator/bullet_act(obj/projectile/Proj) if(Proj.flag != BULLET && !Proj.nodamage) energy = min(energy + Proj.damage, FIELD_GENERATOR_MAX_ENERGY) check_energy_level() diff --git a/code/modules/power/engines/singularity/singularity.dm b/code/modules/power/engines/singularity/singularity.dm index 225feefc09e..dd050246370 100644 --- a/code/modules/power/engines/singularity/singularity.dm +++ b/code/modules/power/engines/singularity/singularity.dm @@ -129,7 +129,7 @@ GLOBAL_VAR_INIT(global_singulo_id, 1) return -/obj/singularity/bullet_act(obj/item/projectile/P) +/obj/singularity/bullet_act(obj/projectile/P) qdel(P) return 0 //Will there be an impact? Who knows. Will we see it? No. diff --git a/code/modules/power/engines/supermatter/supermatter.dm b/code/modules/power/engines/supermatter/supermatter.dm index 4ca433d3072..fef121f8caf 100644 --- a/code/modules/power/engines/supermatter/supermatter.dm +++ b/code/modules/power/engines/supermatter/supermatter.dm @@ -692,11 +692,11 @@ countdown() return 1 -/obj/machinery/atmospherics/supermatter_crystal/bullet_act(obj/item/projectile/proj) +/obj/machinery/atmospherics/supermatter_crystal/bullet_act(obj/projectile/proj) var/turf/L = loc if(!istype(L)) return FALSE - if(!istype(proj, /obj/item/projectile/beam/emitter/hitscan) && power_changes) + if(!istype(proj, /obj/projectile/beam/emitter/hitscan) && power_changes) investigate_log("has been hit by [proj] fired by [key_name(proj.firer)]", INVESTIGATE_SUPERMATTER) if(proj.flag != BULLET) if(power_changes) //This needs to be here I swear diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm index fed0e72ce9a..7f170a742fb 100644 --- a/code/modules/projectiles/ammunition.dm +++ b/code/modules/projectiles/ammunition.dm @@ -11,7 +11,7 @@ var/casing_drop_sound = "casingdrop" //What sound should play when this ammo hits the ground var/caliber = null //Which kind of guns it can be loaded into var/projectile_type = null //The bullet type to create when New() is called - var/obj/item/projectile/BB = null //The loaded bullet + var/obj/projectile/BB = null //The loaded bullet var/pellets = 1 //Pellets for spreadshot var/variance = 0 //Variance for inaccuracy fundamental to the casing var/delay = 0 //Delay for energy weapons diff --git a/code/modules/projectiles/ammunition/ammo_casings.dm b/code/modules/projectiles/ammunition/ammo_casings.dm index d2dce8c6b87..219634d28b5 100644 --- a/code/modules/projectiles/ammunition/ammo_casings.dm +++ b/code/modules/projectiles/ammunition/ammo_casings.dm @@ -3,7 +3,7 @@ desc = "A .357 magnum cartridge, often used in revolvers. Very deadly." icon_state = "magnum_steel" caliber = "357" - projectile_type = /obj/item/projectile/bullet + projectile_type = /obj/projectile/bullet muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_NORMAL muzzle_flash_range = MUZZLE_FLASH_RANGE_STRONG @@ -12,44 +12,44 @@ desc = "A 9mm pistol cartridge. This one has a rubber tip for less-lethal takedowns." icon_state = "pistol_brass_rubber" caliber = "9mm" - projectile_type = /obj/item/projectile/bullet/weakbullet4 + projectile_type = /obj/projectile/bullet/weakbullet4 /obj/item/ammo_casing/a762 name = "7.62mm round" desc = "A 7.62mm rifle cartridge, often used in Soviet rifles." icon_state = "rifle_brass" caliber = "a762" - projectile_type = /obj/item/projectile/bullet + projectile_type = /obj/projectile/bullet muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_STRONG muzzle_flash_range = MUZZLE_FLASH_RANGE_STRONG /obj/item/ammo_casing/a762/enchanted name = "enchanted 7.62 round" desc = "A 7.62mm rifle cartridge. It sparkles with magic." - projectile_type = /obj/item/projectile/bullet/weakbullet3 + projectile_type = /obj/projectile/bullet/weakbullet3 /obj/item/ammo_casing/a50 name = ".50 AE round" desc = "A .50AE pistol cartridge, used in large caliber handguns." icon_state = "magnum_steel" caliber = ".50" - projectile_type = /obj/item/projectile/bullet + projectile_type = /obj/projectile/bullet muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_NORMAL muzzle_flash_range = MUZZLE_FLASH_RANGE_STRONG /obj/item/ammo_casing/c38/invisible - projectile_type = /obj/item/projectile/bullet/mime + projectile_type = /obj/projectile/bullet/mime muzzle_flash_effect = null // invisible eh /obj/item/ammo_casing/c38/invisible/fake - projectile_type = /obj/item/projectile/bullet/mime/fake + projectile_type = /obj/projectile/bullet/mime/fake /obj/item/ammo_casing/c10mm name = "10mm round" desc = "A 10mm pistol cartridge, commonly used in Syndicate sidearms." icon_state = "pistol_steel" caliber = "10mm" - projectile_type = /obj/item/projectile/bullet/midbullet3 + projectile_type = /obj/projectile/bullet/midbullet3 muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_NORMAL muzzle_flash_range = MUZZLE_FLASH_RANGE_NORMAL @@ -57,51 +57,51 @@ name = "10mm armor piercing round" desc = "A 10mm pistol cartridge, with a Teflon coating to increase armor penetration, at the cost of damage." icon_state = "pistol_steel_ap" - projectile_type = /obj/item/projectile/bullet/midbullet3/ap + projectile_type = /obj/projectile/bullet/midbullet3/ap /obj/item/ammo_casing/c10mm/fire name = "10mm incendiary round" desc = "A 10mm pistol cartridge, containing a payload of flammable chemicals." icon_state = "pistol_steel_incin" - projectile_type = /obj/item/projectile/bullet/midbullet3/fire + projectile_type = /obj/projectile/bullet/midbullet3/fire muzzle_flash_color = LIGHT_COLOR_FIRE /obj/item/ammo_casing/c10mm/hp name = "10mm hollow point round" desc = "A 10mm pistol cartridge, with an expanding tip that greatly increases stopping power, at the cost of armor penetration." icon_state = "pistol_steel_hollow" - projectile_type = /obj/item/projectile/bullet/midbullet3/hp + projectile_type = /obj/projectile/bullet/midbullet3/hp /obj/item/ammo_casing/overgrown name = "overgrown round" desc = "A pistol cartridge... probably. Why does it resemble a pea?" - projectile_type = /obj/item/projectile/bullet/midbullet3/overgrown + projectile_type = /obj/projectile/bullet/midbullet3/overgrown icon_state = "peashooter_bullet" /obj/item/ammo_casing/c9mm name = "9mm round" desc = "A 9mm pistol cartridge, commonly used in handguns and submachine guns." caliber = "9mm" - projectile_type = /obj/item/projectile/bullet/weakbullet3 + projectile_type = /obj/projectile/bullet/weakbullet3 muzzle_flash_range = MUZZLE_FLASH_RANGE_NORMAL /obj/item/ammo_casing/c9mm/ap name = "9mm armor piercing round" desc = "A 9mm pistol cartridge, with a Teflon coating to increase armor penetration, at the cost of stopping power." icon_state = "pistol_brass_ap" - projectile_type = /obj/item/projectile/bullet/armourpiercing + projectile_type = /obj/projectile/bullet/armourpiercing /obj/item/ammo_casing/c9mm/tox name = "9mm toxic round" desc = "A 9mm pistol cartridge, tipped with lethal toxins. Likely a war crime." icon_state = "pistol_brass_toxin" - projectile_type = /obj/item/projectile/bullet/toxinbullet + projectile_type = /obj/projectile/bullet/toxinbullet /obj/item/ammo_casing/c9mm/inc name = "9mm incendiary round" desc = "A 9mm pistol cartridge, tipped with an incendiary chemical payload." icon_state = "pistol_brass_incin" - projectile_type = /obj/item/projectile/bullet/incendiary/firebullet + projectile_type = /obj/projectile/bullet/incendiary/firebullet muzzle_flash_color = LIGHT_COLOR_FIRE /obj/item/ammo_casing/c46x30mm @@ -109,26 +109,26 @@ desc = "A 4.6x30mm PDW cartridge, commonly used in submachine guns and small-caliber rifles." icon_state = "magnum_brass" caliber = "4.6x30mm" - projectile_type = /obj/item/projectile/bullet/weakbullet3 + projectile_type = /obj/projectile/bullet/weakbullet3 muzzle_flash_range = MUZZLE_FLASH_RANGE_NORMAL /obj/item/ammo_casing/c46x30mm/ap name = "4.6x30mm armor piercing round" desc = "A 4.6x30mm PDW cartridge, with a tungsten core to increase armor penetration, at the cost of stopping power." icon_state = "magnum_brass_ap" - projectile_type = /obj/item/projectile/bullet/armourpiercing/wt550 + projectile_type = /obj/projectile/bullet/armourpiercing/wt550 /obj/item/ammo_casing/c46x30mm/tox name = "4.6x30mm toxic round" desc = "A 4.6x30mm PDW cartridge, tipped with lethal toxins. Probably a war crime." icon_state = "magnum_brass_toxin" - projectile_type = /obj/item/projectile/bullet/toxinbullet + projectile_type = /obj/projectile/bullet/toxinbullet /obj/item/ammo_casing/c46x30mm/inc name = "4.6x30 incendiary round" desc = "a 4.6x30mm PDW cartridge, tipped with an incendiary chemical payload." icon_state = "magnum_brass_incin" - projectile_type = /obj/item/projectile/bullet/incendiary/firebullet + projectile_type = /obj/projectile/bullet/incendiary/firebullet muzzle_flash_color = LIGHT_COLOR_FIRE /obj/item/ammo_casing/rubber45 @@ -136,7 +136,7 @@ desc = "A .45 caliber pistol cartridge. Features a rubber bullet for less-lethal takedowns." icon_state = "pistol_steel_rubber" caliber = ".45" - projectile_type = /obj/item/projectile/bullet/midbullet_r + projectile_type = /obj/projectile/bullet/midbullet_r muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_NORMAL muzzle_flash_range = MUZZLE_FLASH_RANGE_NORMAL @@ -145,26 +145,26 @@ desc = "A .45 caliber pistol cartridge, commonly used in pistols and submachine guns." icon_state = "pistol_steel" caliber = ".45" - projectile_type = /obj/item/projectile/bullet/midbullet + projectile_type = /obj/projectile/bullet/midbullet muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_NORMAL muzzle_flash_range = MUZZLE_FLASH_RANGE_NORMAL /obj/item/ammo_casing/c45/nostamina - projectile_type = /obj/item/projectile/bullet/weakbullet3 + projectile_type = /obj/projectile/bullet/weakbullet3 /obj/item/ammo_casing/n762 name = "7.62x38mmR round" desc = "A 7.62x38mmR pistol cartridge, commonly used by antique revolvers." icon_state = "magnum_brass" caliber = "n762" - projectile_type = /obj/item/projectile/bullet + projectile_type = /obj/projectile/bullet muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_NORMAL muzzle_flash_range = MUZZLE_FLASH_RANGE_STRONG /obj/item/ammo_casing/caseless/magspear name = "magnetic spear" desc = "A reusable spear that is typically loaded into kinetic spearguns." - projectile_type = /obj/item/projectile/bullet/reusable/magspear + projectile_type = /obj/projectile/bullet/reusable/magspear caliber = "speargun" icon_state = "magspear" throwforce = 15 //still deadly when thrown @@ -177,7 +177,7 @@ icon_state = "slug" caliber = "shotgun" casing_drop_sound = 'sound/weapons/gun_interactions/shotgun_fall.ogg' - projectile_type = /obj/item/projectile/bullet + projectile_type = /obj/projectile/bullet materials = list(MAT_METAL=4000) muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_STRONG muzzle_flash_range = MUZZLE_FLASH_RANGE_STRONG @@ -186,7 +186,7 @@ name = "buckshot shell" desc = "A 12 gauge buckshot shell. Fires a spread of lethal shot." icon_state = "buckshot" - projectile_type = /obj/item/projectile/bullet/pellet + projectile_type = /obj/projectile/bullet/pellet pellets = 6 variance = 25 @@ -194,7 +194,7 @@ name = "rubbershot shell" desc = "A 12 gauge shell filled with densely-packed rubber balls, used to incapacitate crowds from a distance." icon_state = "rubbershot" - projectile_type = /obj/item/projectile/bullet/pellet/rubber + projectile_type = /obj/projectile/bullet/pellet/rubber pellets = 6 variance = 25 materials = list(MAT_METAL=4000) @@ -203,7 +203,7 @@ name = "beanbag slug" desc = "A 12 gauge shell loaded with a beanbag slug for less-lethal takedowns." icon_state = "beanbag" - projectile_type = /obj/item/projectile/bullet/weakbullet + projectile_type = /obj/projectile/bullet/weakbullet materials = list(MAT_METAL=250) muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_NORMAL muzzle_flash_range = MUZZLE_FLASH_RANGE_NORMAL @@ -212,7 +212,7 @@ name = "taser slug" desc = "A 12 gauge shell loaded with a taser cartridge, somehow." icon_state = "taser" - projectile_type = /obj/item/projectile/bullet/stunshot + projectile_type = /obj/projectile/bullet/stunshot materials = list(MAT_METAL=250) muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_NORMAL muzzle_flash_range = MUZZLE_FLASH_RANGE_NORMAL @@ -223,33 +223,33 @@ name = "meteorslug shell" desc = "A 12 gauge shell rigged with CMC technology, which launches a massive slug when fired." icon_state = "meteor" - projectile_type = /obj/item/projectile/bullet/meteorshot + projectile_type = /obj/projectile/bullet/meteorshot /obj/item/ammo_casing/shotgun/pulseslug name = "proto pulse slug" desc = "A 12 gauge shell loaded with a powerful energy emitter, firing a devastating pulse blast." icon_state = "pulse" - projectile_type = /obj/item/projectile/beam/pulse/shot + projectile_type = /obj/projectile/beam/pulse/shot muzzle_flash_color = LIGHT_COLOR_DARKBLUE /obj/item/ammo_casing/shotgun/incendiary name = "incendiary slug" desc = "A 12 gauge slug shell containing an incendiary chemical payload." icon_state = "incendiary" - projectile_type = /obj/item/projectile/bullet/incendiary/shell + projectile_type = /obj/projectile/bullet/incendiary/shell muzzle_flash_color = LIGHT_COLOR_FIRE /obj/item/ammo_casing/shotgun/frag12 name = "\improper FRAG-12 slug" desc = "A 12 gauge shell, loaded with a high-explosive slug." icon_state = "frag" - projectile_type = /obj/item/projectile/bullet/frag12 + projectile_type = /obj/projectile/bullet/frag12 /obj/item/ammo_casing/shotgun/incendiary/dragonsbreath name = "dragonsbreath shell" desc = "A 12 gauge shell which fires a spread of incendiary pellets." icon_state = "dragonsbreath" - projectile_type = /obj/item/projectile/bullet/incendiary/shell/dragonsbreath + projectile_type = /obj/projectile/bullet/incendiary/shell/dragonsbreath pellets = 4 variance = 35 @@ -257,7 +257,7 @@ name = "ion shell" desc = "An advanced 12 gauge shell that fires a spread of ion bolts." icon_state = "ion" - projectile_type = /obj/item/projectile/ion/weak + projectile_type = /obj/projectile/ion/weak pellets = 6 variance = 40 muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_NORMAL @@ -268,7 +268,7 @@ name = "laser slug" desc = "A rudimentary 12 gauge shotgun shell that replicates the effects of a laser weapon with a low-powered laser." icon_state = "improvised" - projectile_type = /obj/item/projectile/beam/laser + projectile_type = /obj/projectile/beam/laser muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_NORMAL muzzle_flash_range = MUZZLE_FLASH_RANGE_NORMAL muzzle_flash_color = LIGHT_COLOR_DARKRED @@ -277,7 +277,7 @@ name = "lasershot" desc = "An advanced 12 gauge shell that uses a multitude of lenses to split a high-powered laser into eight small beams." icon_state = "laser" - projectile_type = /obj/item/projectile/beam/scatter + projectile_type = /obj/projectile/beam/scatter pellets = 8 variance = 25 muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_NORMAL @@ -295,7 +295,7 @@ desc = "A 12 gauge shell loaded with a hypodermic needle. Can be injected with up to 30 units of any chemical." icon_state = "dart" container_type = OPENCONTAINER - projectile_type = /obj/item/projectile/bullet/dart + projectile_type = /obj/projectile/bullet/dart muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_NORMAL muzzle_flash_range = MUZZLE_FLASH_RANGE_NORMAL @@ -321,7 +321,7 @@ name = "tranquilizer dart" desc = "A 12 gauge dart shell loaded with powerful tranquilizers." icon_state = "dart" - projectile_type = /obj/item/projectile/bullet/dart/syringe/tranquilizer + projectile_type = /obj/projectile/bullet/dart/syringe/tranquilizer muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_NORMAL muzzle_flash_range = MUZZLE_FLASH_RANGE_NORMAL materials = list(MAT_METAL=250) @@ -330,7 +330,7 @@ name = "holy water dart" desc = "A 12 gauge dart shell loaded with holy water." icon_state = "holydart" - projectile_type = /obj/item/projectile/bullet/dart/syringe/holy + projectile_type = /obj/projectile/bullet/dart/syringe/holy muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_NORMAL muzzle_flash_range = MUZZLE_FLASH_RANGE_NORMAL materials = list(MAT_METAL=250) @@ -339,11 +339,11 @@ name = "confettishot" desc = "A 12 gauge shell loaded with... confetti?" icon_state = "confetti" - projectile_type = /obj/item/projectile/bullet/confetti + projectile_type = /obj/projectile/bullet/confetti /obj/item/ammo_casing/shotgun/shrapnel name = "shrapnel rounds" - projectile_type = /obj/item/projectile/bullet/shrapnel + projectile_type = /obj/projectile/bullet/shrapnel pellets = 3 variance = 20 @@ -352,7 +352,7 @@ desc = "A 5.56mm rifle round, produced in incredible quantities by the Trans-Solar Federation." icon_state = "rifle_steel" caliber = "a556" - projectile_type = /obj/item/projectile/bullet/heavybullet + projectile_type = /obj/projectile/bullet/heavybullet muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_NORMAL muzzle_flash_range = MUZZLE_FLASH_RANGE_NORMAL @@ -361,7 +361,7 @@ desc = "A 5.45x39mm rifle round, used by the elite marines of the USSP." icon_state = "rifle_brass" caliber = "a545" - projectile_type = /obj/item/projectile/bullet/midbullet3 + projectile_type = /obj/projectile/bullet/midbullet3 muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_NORMAL muzzle_flash_range = MUZZLE_FLASH_RANGE_NORMAL @@ -369,7 +369,7 @@ name = "beanbag shell" desc = "A 12 gauge beanbag slug. Smells strongly of alcohol." icon_state = "beanbag" - projectile_type = /obj/item/projectile/bullet/weakbullet/booze + projectile_type = /obj/projectile/bullet/weakbullet/booze muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_NORMAL muzzle_flash_range = MUZZLE_FLASH_RANGE_NORMAL @@ -377,7 +377,7 @@ name = "rocket propelled grenade" desc = "A high explosive rocket meant to be fired from a launcher." icon_state = "rocket" - projectile_type = /obj/item/projectile/missile + projectile_type = /obj/projectile/missile caliber = "rocket" muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_STRONG muzzle_flash_range = MUZZLE_FLASH_RANGE_STRONG @@ -396,7 +396,7 @@ desc = "A .75 caliber gyrojet cartridge, for use in experimental weaponry. There's a Sunburst Heavy Industries logo on the side." icon_state = "magnum_steel" caliber = "75" - projectile_type = /obj/item/projectile/bullet/gyro + projectile_type = /obj/projectile/bullet/gyro muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_STRONG muzzle_flash_range = MUZZLE_FLASH_RANGE_STRONG @@ -405,14 +405,14 @@ desc = "A 40mm high-explosive grenade round, meant to be fired from a grenade launcher." icon_state = "40mmHE" caliber = "40mm" - projectile_type = /obj/item/projectile/bullet/a40mm + projectile_type = /obj/projectile/bullet/a40mm muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_NORMAL muzzle_flash_range = MUZZLE_FLASH_RANGE_NORMAL /obj/item/ammo_casing/caseless/foam_dart name = "foam dart" desc = "It's nerf or nothing! Ages 8 and up." - projectile_type = /obj/item/projectile/bullet/reusable/foam_dart + projectile_type = /obj/projectile/bullet/reusable/foam_dart muzzle_flash_effect = null caliber = "foam_force" icon = 'icons/obj/guns/toy.dmi' @@ -437,7 +437,7 @@ /obj/item/ammo_casing/caseless/foam_dart/attackby__legacy__attackchain(obj/item/A, mob/user, params) ..() - var/obj/item/projectile/bullet/reusable/foam_dart/FD = BB + var/obj/projectile/bullet/reusable/foam_dart/FD = BB if((is_pen(A)) && modified && !FD.pen) if(!user.unequip(A)) // forceMove happens in add_pen return @@ -448,7 +448,7 @@ if(modified) return - var/obj/item/projectile/bullet/reusable/foam_dart/FD = BB + var/obj/projectile/bullet/reusable/foam_dart/FD = BB I.play_tool_sound(src) modified = TRUE FD.damage_type = BRUTE @@ -456,7 +456,7 @@ return TRUE /obj/item/ammo_casing/caseless/foam_dart/proc/add_pen(obj/item/pen/P) - var/obj/item/projectile/bullet/reusable/foam_dart/FD = BB + var/obj/projectile/bullet/reusable/foam_dart/FD = BB harmful = TRUE P.forceMove(FD) FD.log_override = FALSE @@ -465,7 +465,7 @@ FD.nodamage = FALSE /obj/item/ammo_casing/caseless/foam_dart/attack_self__legacy__attackchain(mob/living/user) - var/obj/item/projectile/bullet/reusable/foam_dart/FD = BB + var/obj/projectile/bullet/reusable/foam_dart/FD = BB if(FD.pen) FD.damage = initial(FD.damage) FD.nodamage = initial(FD.nodamage) @@ -476,14 +476,14 @@ /obj/item/ammo_casing/caseless/foam_dart/riot name = "riot foam dart" desc = "Whose smart idea was it to use toys as crowd control? Ages 18 and up." - projectile_type = /obj/item/projectile/bullet/reusable/foam_dart/riot + projectile_type = /obj/projectile/bullet/reusable/foam_dart/riot icon_state = "foamdart_riot" /obj/item/ammo_casing/caseless/foam_dart/sniper name = "foam sniper dart" desc = "For the big nerf! Ages 8 and up." caliber = "foam_force_sniper" - projectile_type = /obj/item/projectile/bullet/reusable/foam_dart/sniper + projectile_type = /obj/projectile/bullet/reusable/foam_dart/sniper icon_state = "foamdartsniper" @@ -505,13 +505,13 @@ /obj/item/ammo_casing/caseless/foam_dart/sniper/riot name = "riot foam sniper dart" desc = "For the bigger brother of the crowd control toy. Ages 18 and up." - projectile_type = /obj/item/projectile/bullet/reusable/foam_dart/sniper/riot + projectile_type = /obj/projectile/bullet/reusable/foam_dart/sniper/riot icon_state = "foamdartsniper_riot" /obj/item/ammo_casing/shotgun/assassination name = "assassination shell" desc = "A 12 gauge buckshot shell containing a powerful silencing toxin." - projectile_type = /obj/item/projectile/bullet/pellet/assassination + projectile_type = /obj/projectile/bullet/pellet/assassination muzzle_flash_effect = null icon_state = "buckshot" pellets = 6 @@ -521,7 +521,7 @@ name = "cap" desc = "A cap for children toys." caliber = "cap" - projectile_type = /obj/item/projectile/bullet/cap + projectile_type = /obj/projectile/bullet/cap muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_NORMAL muzzle_flash_range = MUZZLE_FLASH_RANGE_NORMAL harmful = FALSE @@ -530,7 +530,7 @@ name = "caseless laser round" desc = "An experimental laser casing, designed to vaporize when fired." caliber = "laser" - projectile_type = /obj/item/projectile/beam/laser/ik //Subtype that breaks on firing if emp'd + projectile_type = /obj/projectile/beam/laser/ik //Subtype that breaks on firing if emp'd muzzle_flash_effect = /obj/effect/temp_visual/target_angled/muzzle_flash/energy muzzle_flash_range = MUZZLE_FLASH_RANGE_NORMAL muzzle_flash_color = LIGHT_COLOR_DARKRED @@ -540,5 +540,5 @@ name = "\improper C-Foam blob" desc = "You shouldn't see this! Make an issue report on Github!" caliber = "c_foam" - projectile_type = /obj/item/projectile/c_foam + projectile_type = /obj/projectile/c_foam muzzle_flash_color = LIGHT_COLOR_DARKRED diff --git a/code/modules/projectiles/ammunition/energy_lens.dm b/code/modules/projectiles/ammunition/energy_lens.dm index 6f93734f386..5083ed714c3 100644 --- a/code/modules/projectiles/ammunition/energy_lens.dm +++ b/code/modules/projectiles/ammunition/energy_lens.dm @@ -2,7 +2,7 @@ name = "energy weapon lens" desc = "The part of the gun that makes the laser go pew." caliber = "energy" - projectile_type = /obj/item/projectile/energy + projectile_type = /obj/projectile/energy var/e_cost = 100 //The amount of energy a cell needs to expend to create this shot. var/select_name = "energy" fire_sound = 'sound/weapons/laser.ogg' @@ -13,7 +13,7 @@ var/lens_speed_multiplier = 1 /obj/item/ammo_casing/energy/laser - projectile_type = /obj/item/projectile/beam/laser + projectile_type = /obj/projectile/beam/laser muzzle_flash_color = LIGHT_COLOR_DARKRED select_name = "kill" @@ -22,7 +22,7 @@ e_cost = 250 /obj/item/ammo_casing/energy/lasergun - projectile_type = /obj/item/projectile/beam/laser + projectile_type = /obj/projectile/beam/laser muzzle_flash_color = LIGHT_COLOR_DARKRED e_cost = 83 select_name = "kill" @@ -34,18 +34,18 @@ e_cost = 120 /obj/item/ammo_casing/energy/laser/practice - projectile_type = /obj/item/projectile/beam/practice + projectile_type = /obj/projectile/beam/practice select_name = "practice" harmful = FALSE /obj/item/ammo_casing/energy/laser/scatter - projectile_type = /obj/item/projectile/beam/scatter + projectile_type = /obj/projectile/beam/scatter pellets = 5 variance = 25 select_name = "scatter" /obj/item/ammo_casing/energy/laser/eshotgun - projectile_type = /obj/item/projectile/beam/scatter/eshotgun + projectile_type = /obj/projectile/beam/scatter/eshotgun pellets = 6 variance = 25 delay = 1 SECONDS @@ -54,51 +54,51 @@ e_cost = 500 /obj/item/ammo_casing/energy/laser/heavy - projectile_type = /obj/item/projectile/beam/laser/heavylaser + projectile_type = /obj/projectile/beam/laser/heavylaser select_name = "anti-vehicle" fire_sound = 'sound/weapons/lasercannonfire.ogg' /obj/item/ammo_casing/energy/laser/sparker - projectile_type = /obj/item/projectile/beam/laser/sparker + projectile_type = /obj/projectile/beam/laser/sparker select_name = "spark" e_cost = (100 / 3) * 2 // 15 * 12.5 damage = 187.5 damage. Almost as much as a base laser gun, but takes longer to get all the shots out. /obj/item/ammo_casing/energy/laser/pulse - projectile_type = /obj/item/projectile/beam/pulse/hitscan + projectile_type = /obj/projectile/beam/pulse/hitscan muzzle_flash_color = LIGHT_COLOR_DARKBLUE e_cost = 200 select_name = "DESTROY" fire_sound = 'sound/weapons/pulse.ogg' /obj/item/ammo_casing/energy/laser/scatter/pulse - projectile_type = /obj/item/projectile/beam/pulse/hitscan + projectile_type = /obj/projectile/beam/pulse/hitscan e_cost = 200 select_name = "ANNIHILATE" fire_sound = 'sound/weapons/pulse.ogg' /obj/item/ammo_casing/energy/laser/bluetag - projectile_type = /obj/item/projectile/beam/lasertag/bluetag + projectile_type = /obj/projectile/beam/lasertag/bluetag muzzle_flash_color = LIGHT_COLOR_BLUE select_name = "bluetag" harmful = FALSE /obj/item/ammo_casing/energy/laser/redtag - projectile_type = /obj/item/projectile/beam/lasertag/redtag + projectile_type = /obj/projectile/beam/lasertag/redtag select_name = "redtag" harmful = FALSE /obj/item/ammo_casing/energy/xray - projectile_type = /obj/item/projectile/beam/xray + projectile_type = /obj/projectile/beam/xray muzzle_flash_color = LIGHT_COLOR_GREEN fire_sound = 'sound/weapons/laser3.ogg' /obj/item/ammo_casing/energy/immolator - projectile_type = /obj/item/projectile/beam/immolator + projectile_type = /obj/projectile/beam/immolator fire_sound = 'sound/weapons/laser3.ogg' e_cost = 125 /obj/item/ammo_casing/energy/immolator/strong - projectile_type = /obj/item/projectile/beam/immolator/strong + projectile_type = /obj/projectile/beam/immolator/strong select_name = "precise" /obj/item/ammo_casing/energy/immolator/strong/cyborg @@ -106,7 +106,7 @@ e_cost = 1000 // 5x that of the standard laser, for 2.25x the damage (if 1/1 shots hit) plus ignite. Not energy-efficient, but can be used for sniping. /obj/item/ammo_casing/energy/immolator/scatter - projectile_type = /obj/item/projectile/beam/immolator/weak + projectile_type = /obj/projectile/beam/immolator/weak pellets = 6 variance = 25 select_name = "scatter" @@ -116,7 +116,7 @@ e_cost = 1000 // 5x that of the standard laser, for 7.5x the damage (if 6/6 shots hit) plus ignite. Efficient only if you hit with at least 4/6 of the shots. /obj/item/ammo_casing/energy/electrode - projectile_type = /obj/item/projectile/energy/electrode + projectile_type = /obj/projectile/energy/electrode muzzle_flash_color = "#FFFF00" select_name = "stun" fire_sound = 'sound/weapons/taser.ogg' @@ -124,23 +124,23 @@ harmful = FALSE /obj/item/ammo_casing/energy/ion - projectile_type = /obj/item/projectile/ion + projectile_type = /obj/projectile/ion muzzle_flash_color = LIGHT_COLOR_LIGHTBLUE select_name = "ion" fire_sound = 'sound/weapons/ionrifle.ogg' /obj/item/ammo_casing/energy/ion/hos - projectile_type = /obj/item/projectile/ion/weak + projectile_type = /obj/projectile/ion/weak e_cost = 300 /obj/item/ammo_casing/energy/declone - projectile_type = /obj/item/projectile/energy/declone + projectile_type = /obj/projectile/energy/declone muzzle_flash_color = LIGHT_COLOR_GREEN select_name = "declone" fire_sound = 'sound/weapons/pulse3.ogg' /obj/item/ammo_casing/energy/mindflayer - projectile_type = /obj/item/projectile/energy/mindflayer + projectile_type = /obj/projectile/energy/mindflayer muzzle_flash_color = LIGHT_COLOR_PURPLE select_name = "mindflayer" fire_sound = 'sound/weapons/pulse3.ogg' @@ -151,15 +151,15 @@ harmful = FALSE /obj/item/ammo_casing/energy/flora/yield - projectile_type = /obj/item/projectile/energy/florayield + projectile_type = /obj/projectile/energy/florayield select_name = "yield" /obj/item/ammo_casing/energy/flora/mut - projectile_type = /obj/item/projectile/energy/floramut + projectile_type = /obj/projectile/energy/floramut select_name = "mutation" /obj/item/ammo_casing/energy/temp - projectile_type = /obj/item/projectile/temp + projectile_type = /obj/projectile/temp fire_sound = 'sound/weapons/pulse3.ogg' var/temp = 300 @@ -171,13 +171,13 @@ ..(temp) /obj/item/ammo_casing/energy/meteor - projectile_type = /obj/item/projectile/meteor + projectile_type = /obj/projectile/meteor muzzle_flash_effect = /obj/effect/temp_visual/target_angled/muzzle_flash muzzle_flash_color = null select_name = "goddamn meteor" /obj/item/ammo_casing/energy/disabler - projectile_type = /obj/item/projectile/beam/disabler + projectile_type = /obj/projectile/beam/disabler muzzle_flash_color = LIGHT_COLOR_LIGHTBLUE select_name = "disable" e_cost = 50 @@ -186,7 +186,7 @@ delay = 0.6 SECONDS /obj/item/ammo_casing/energy/disabler/smg - projectile_type = /obj/item/projectile/beam/disabler/weak + projectile_type = /obj/projectile/beam/disabler/weak e_cost = 25 fire_sound = 'sound/weapons/taser3.ogg' click_cooldown_override = 2 @@ -195,11 +195,11 @@ delay = 0 /obj/item/ammo_casing/energy/disabler/fake - projectile_type = /obj/item/projectile/beam/disabler/fake + projectile_type = /obj/projectile/beam/disabler/fake e_cost = 100 /obj/item/ammo_casing/energy/disabler/eshotgun - projectile_type = /obj/item/projectile/beam/disabler/pellet + projectile_type = /obj/projectile/beam/disabler/pellet e_cost = 75 delay = 1 SECONDS pellets = 6 @@ -213,7 +213,7 @@ e_cost = 60 /obj/item/ammo_casing/energy/plasma - projectile_type = /obj/item/projectile/plasma + projectile_type = /obj/projectile/plasma muzzle_flash_color = LIGHT_COLOR_PURPLE select_name = "plasma burst" fire_sound = 'sound/weapons/pulse.ogg' @@ -221,12 +221,12 @@ e_cost = 75 /obj/item/ammo_casing/energy/plasma/adv - projectile_type = /obj/item/projectile/plasma/adv + projectile_type = /obj/projectile/plasma/adv delay = 10 e_cost = 10 /obj/item/ammo_casing/energy/wormhole - projectile_type = /obj/item/projectile/beam/wormhole + projectile_type = /obj/projectile/beam/wormhole muzzle_flash_color = "#33CCFF" delay = 10 fire_sound = 'sound/weapons/pulse3.ogg' @@ -239,12 +239,12 @@ return ..() /obj/item/ammo_casing/energy/wormhole/orange - projectile_type = /obj/item/projectile/beam/wormhole/orange + projectile_type = /obj/projectile/beam/wormhole/orange muzzle_flash_color = "#FF6600" select_name = "orange" /obj/item/ammo_casing/energy/bolt - projectile_type = /obj/item/projectile/energy/bolt + projectile_type = /obj/projectile/energy/bolt muzzle_flash_color = null muzzle_flash_effect = /obj/effect/temp_visual/target_angled/muzzle_flash select_name = "bolt" @@ -252,21 +252,21 @@ fire_sound = 'sound/weapons/genhit.ogg' /obj/item/ammo_casing/energy/bolt/large - projectile_type = /obj/item/projectile/energy/bolt/large + projectile_type = /obj/projectile/energy/bolt/large select_name = "heavy bolt" /obj/item/ammo_casing/energy/instakill - projectile_type = /obj/item/projectile/beam/instakill + projectile_type = /obj/projectile/beam/instakill muzzle_flash_color = LIGHT_COLOR_PURPLE e_cost = 0 select_name = "DESTROY" /obj/item/ammo_casing/energy/instakill/blue - projectile_type = /obj/item/projectile/beam/instakill/blue + projectile_type = /obj/projectile/beam/instakill/blue muzzle_flash_color = LIGHT_COLOR_DARKBLUE /obj/item/ammo_casing/energy/instakill/red - projectile_type = /obj/item/projectile/beam/instakill/red + projectile_type = /obj/projectile/beam/instakill/red muzzle_flash_color = LIGHT_COLOR_DARKRED /obj/item/ammo_casing/energy/tesla_bolt @@ -274,13 +274,13 @@ e_cost = 200 select_name = "lightning beam" muzzle_flash_color = LIGHT_COLOR_FADEDPURPLE - projectile_type = /obj/item/projectile/energy/tesla_bolt + projectile_type = /obj/projectile/energy/tesla_bolt /obj/item/ammo_casing/energy/arc_revolver fire_sound = 'sound/magic/lightningbolt.ogg' //New sound select_name = "lightning beam" //I guess muzzle_flash_color = LIGHT_COLOR_FADEDPURPLE // Depends on sprite - projectile_type = /obj/item/projectile/energy/arc_revolver + projectile_type = /obj/projectile/energy/arc_revolver ///This number is randomly generated when the arc revolver is made. This ensures the beams only link to beams from the gun, one lower or higher than the number on the boosted object. var/random_link_number @@ -290,32 +290,32 @@ /obj/item/ammo_casing/energy/arc_revolver/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") ..() - var/obj/item/projectile/energy/arc_revolver/P = BB + var/obj/projectile/energy/arc_revolver/P = BB P.charge_number = random_link_number random_link_number++ /obj/item/ammo_casing/energy/weak_plasma - projectile_type = /obj/item/projectile/energy/weak_plasma + projectile_type = /obj/projectile/energy/weak_plasma e_cost = 75 // With no charging, 162.5 damage from 13 shots. muzzle_flash_color = LIGHT_COLOR_FADEDPURPLE fire_sound = 'sound/weapons/taser2.ogg' select_name = null //If the select name is null, it does not send a message of switching modes to the user, important on the pistol. /obj/item/ammo_casing/energy/charged_plasma - projectile_type = /obj/item/projectile/homing/charged_plasma + projectile_type = /obj/projectile/homing/charged_plasma e_cost = 0 //Charge is used when you charge the gun. Prevents issues. muzzle_flash_color = LIGHT_COLOR_FADEDPURPLE fire_sound = 'sound/weapons/marauder.ogg' //Should be different enough to get attention select_name = null /obj/item/ammo_casing/energy/clown - projectile_type = /obj/item/projectile/clown + projectile_type = /obj/projectile/clown muzzle_flash_effect = null fire_sound = 'sound/weapons/gunshots/gunshot_smg.ogg' select_name = "clown" /obj/item/ammo_casing/energy/emitter - projectile_type = /obj/item/projectile/beam/emitter + projectile_type = /obj/projectile/beam/emitter muzzle_flash_color = LIGHT_COLOR_GREEN fire_sound = 'sound/weapons/emitter.ogg' delay = 2 SECONDS // Lasers fire twice every second for 40 dps, this fires every 2 seconds for 15 dps. Seems fair, since every cyborg will have this with more shots? @@ -331,7 +331,7 @@ delay = 2 SECONDS /obj/item/ammo_casing/energy/bsg - projectile_type = /obj/item/projectile/energy/bsg + projectile_type = /obj/projectile/energy/bsg muzzle_flash_color = LIGHT_COLOR_DARKBLUE muzzle_flash_range = MUZZLE_FLASH_RANGE_STRONG muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_STRONG @@ -341,7 +341,7 @@ delay = 4 SECONDS //Looooooong cooldown // Used to be 10 seconds, has been rebalanced to be normal firing rate now /obj/item/ammo_casing/energy/teleport - projectile_type = /obj/item/projectile/energy/teleport + projectile_type = /obj/projectile/energy/teleport muzzle_flash_color = LIGHT_COLOR_LIGHTBLUE fire_sound = 'sound/weapons/wave.ogg' e_cost = 250 @@ -356,7 +356,7 @@ ..(teleport_target) /obj/item/ammo_casing/energy/mimic - projectile_type = /obj/item/projectile/mimic + projectile_type = /obj/projectile/mimic muzzle_flash_effect = null fire_sound = 'sound/weapons/bite.ogg' select_name = "gun mimic" @@ -370,22 +370,22 @@ ..(mimic_type) /obj/item/ammo_casing/energy/detective - projectile_type = /obj/item/projectile/beam/laser/detective + projectile_type = /obj/projectile/beam/laser/detective fire_sound = 'sound/weapons/gunshots/gunshot_det_energy.ogg' select_name = "disabler" /obj/item/ammo_casing/energy/detective/tracker_warrant - projectile_type = /obj/item/projectile/beam/laser/detective/tracker_warrant_shot + projectile_type = /obj/projectile/beam/laser/detective/tracker_warrant_shot e_cost = 50 select_name = "tracker and warrant generator" /obj/item/ammo_casing/energy/detective/overcharge - projectile_type = /obj/item/projectile/beam/laser/detective/overcharged + projectile_type = /obj/projectile/beam/laser/detective/overcharged e_cost = 200 select_name = "overcharged" /obj/item/ammo_casing/energy/silencer_ammo - projectile_type = /obj/item/projectile/beam/silencer + projectile_type = /obj/projectile/beam/silencer muzzle_flash_effect = null select_name = "silencing dissidents" e_cost = 50 // 16 shots diff --git a/code/modules/projectiles/ammunition/special_ammo.dm b/code/modules/projectiles/ammunition/special_ammo.dm index 2885ff9f15b..90338278387 100644 --- a/code/modules/projectiles/ammunition/special_ammo.dm +++ b/code/modules/projectiles/ammunition/special_ammo.dm @@ -1,45 +1,45 @@ /obj/item/ammo_casing/magic name = "magic casing" desc = "I didn't even know magic needed ammo..." - projectile_type = /obj/item/projectile/magic + projectile_type = /obj/projectile/magic muzzle_flash_color = COLOR_BLUE_GRAY muzzle_flash_effect = /obj/effect/temp_visual/target_angled/muzzle_flash/magic /obj/item/ammo_casing/magic/change - projectile_type = /obj/item/projectile/magic/change + projectile_type = /obj/projectile/magic/change /obj/item/ammo_casing/magic/animate - projectile_type = /obj/item/projectile/magic/animate + projectile_type = /obj/projectile/magic/animate /obj/item/ammo_casing/magic/heal - projectile_type = /obj/item/projectile/magic/resurrection + projectile_type = /obj/projectile/magic/resurrection harmful = FALSE /obj/item/ammo_casing/magic/death - projectile_type = /obj/item/projectile/magic/death + projectile_type = /obj/projectile/magic/death /obj/item/ammo_casing/magic/teleport - projectile_type = /obj/item/projectile/magic/teleport + projectile_type = /obj/projectile/magic/teleport harmful = FALSE /obj/item/ammo_casing/magic/door - projectile_type = /obj/item/projectile/magic/door + projectile_type = /obj/projectile/magic/door harmful = FALSE /obj/item/ammo_casing/magic/fireball - projectile_type = /obj/item/projectile/magic/fireball + projectile_type = /obj/projectile/magic/fireball /obj/item/ammo_casing/magic/chaos - projectile_type = /obj/item/projectile/magic/chaos + projectile_type = /obj/projectile/magic/chaos /obj/item/ammo_casing/magic/slipping - projectile_type = /obj/item/projectile/magic/slipping + projectile_type = /obj/projectile/magic/slipping /obj/item/ammo_casing/magic/arcane_barrage - projectile_type = /obj/item/projectile/magic/arcane_barrage + projectile_type = /obj/projectile/magic/arcane_barrage /obj/item/ammo_casing/magic/forcebolt - projectile_type = /obj/item/projectile/forcebolt + projectile_type = /obj/projectile/forcebolt /obj/item/ammo_casing/syringegun name = "syringe gun spring" @@ -48,7 +48,7 @@ muzzle_flash_effect = null /obj/item/ammo_casing/energy/c3dbullet - projectile_type = /obj/item/projectile/bullet/midbullet3 + projectile_type = /obj/projectile/bullet/midbullet3 select_name = "spraydown" fire_sound = 'sound/weapons/gunshots/gunshot_mg.ogg' e_cost = 20 diff --git a/code/modules/projectiles/firing.dm b/code/modules/projectiles/firing.dm index e6f28e618b7..cb69b3a5583 100644 --- a/code/modules/projectiles/firing.dm +++ b/code/modules/projectiles/firing.dm @@ -94,7 +94,7 @@ * - deviation: (Optional) How the trajectory should deviate from the target in degrees. * - //Spread is FORCED! */ -/obj/item/projectile/proc/preparePixelProjectile(atom/target, atom/source, list/modifiers = null, deviation = 0) +/obj/projectile/proc/preparePixelProjectile(atom/target, atom/source, list/modifiers = null, deviation = 0) if(!(isnull(modifiers) || islist(modifiers))) stack_trace("WARNING: Projectile [type] fired with non-list modifiers, likely was passed click params.") modifiers = null diff --git a/code/modules/projectiles/guns/chaos_bolt.dm b/code/modules/projectiles/guns/chaos_bolt.dm index 1f4be0bc7d0..888cb0fbc84 100644 --- a/code/modules/projectiles/guns/chaos_bolt.dm +++ b/code/modules/projectiles/guns/chaos_bolt.dm @@ -5,7 +5,7 @@ #define CHAOS_STAFF_GIFT_CHANCE 15 #define CHAOS_STAFF_GREAT_GIFT_CHANCE 5 -/obj/item/projectile/magic/chaos +/obj/projectile/magic/chaos name = "chaos bolt" icon_state = "ice_1" impact_effect_type = /obj/effect/temp_visual/impact_effect/chaos @@ -16,7 +16,7 @@ /// Name of random effect to be applied on target mob. var/chaos_effect -/obj/item/projectile/magic/chaos/on_hit(atom/target, blocked = 0) +/obj/projectile/magic/chaos/on_hit(atom/target, blocked = 0) . = ..() if(!.) return @@ -31,7 +31,7 @@ return chaos_chaos(L) -/obj/item/projectile/magic/chaos/Initialize(mapload) +/obj/projectile/magic/chaos/Initialize(mapload) . = ..() icon_state = pick("bluespace", "pulse1", "magicm", "declone", "fireball", "blood_bolt", "arcane_barrage", "laser", "u_laser") @@ -45,7 +45,7 @@ * Arguments: * * target - mob/living that will have effect applied on them */ -/obj/item/projectile/magic/chaos/proc/chaos_chaos(mob/living/target) +/obj/projectile/magic/chaos/proc/chaos_chaos(mob/living/target) var/category = pick(prob(CHAOS_STAFF_LETHAL_CHANCE);"lethal", prob(CHAOS_STAFF_NEGATIVE_CHANCE);"negative", prob(CHAOS_STAFF_MISC_CHANCE);"misc",\ prob(CHAOS_STAFF_GIFT_CHANCE);"gift", prob(CHAOS_STAFF_GREAT_GIFT_CHANCE);"great gift") switch(category) @@ -96,7 +96,7 @@ /** * Picks and apply a lethal effect on mob/living/target. Some are more instantaneous than others. */ -/obj/item/projectile/magic/chaos/proc/apply_lethal_effect(mob/living/target) +/obj/projectile/magic/chaos/proc/apply_lethal_effect(mob/living/target) if(!ishuman(target)) target.visible_message("[target] suddenly dies!", "Game over!") target.death(FALSE) @@ -176,7 +176,7 @@ /** * Picks and apply a negative effect on mob/living/target. Usually causes damage and/or incapacitating effect. */ -/obj/item/projectile/magic/chaos/proc/apply_negative_effect(mob/living/target) +/obj/projectile/magic/chaos/proc/apply_negative_effect(mob/living/target) if(!ishuman(target)) if(prob(50)) target.apply_damage(CHAOS_STAFF_DAMAGE, BRUTE) @@ -263,7 +263,7 @@ /** * Picks and apply a random miscellaneous effect on mob/living/target. Can be negative or mildly positive. */ -/obj/item/projectile/magic/chaos/proc/apply_misc_effect(mob/living/target) +/obj/projectile/magic/chaos/proc/apply_misc_effect(mob/living/target) if(!ishuman(target)) chaos_effect = pick("recolor", "bark", "confetti", "smoke", "wand of nothing", "bike horn") else @@ -314,7 +314,7 @@ /** * Picks a random gift to be given to mob/living/target. Should be mildly useful and/or funny. */ -/obj/item/projectile/magic/chaos/proc/apply_gift_effect(mob/living/target) +/obj/projectile/magic/chaos/proc/apply_gift_effect(mob/living/target) chaos_effect = pick("toy sword", "toy revolver", "cheese", "food", "medkit", "tarot pack", \ "insulated gloves", "wand of doors", "golden bike horn", "ban hammer", "banana") switch(chaos_effect) @@ -354,7 +354,7 @@ /** * Picks a random gift to be given to mob/living/target. Should be valuable and/or threatening to the wizard. */ -/obj/item/projectile/magic/chaos/proc/apply_great_gift_effect(mob/living/target) +/obj/projectile/magic/chaos/proc/apply_great_gift_effect(mob/living/target) chaos_effect = pick("esword", "emag", "chaos wand", "revolver", "aeg", "tarot deck", \ "bluespace banana", "banana grenade", "disco ball", "syndicate minibomb", "crystal ball") switch(chaos_effect) diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index bae4390c3c0..bb9217415ae 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -71,7 +71,7 @@ for(var/A in modkits) . += A -/obj/item/gun/energy/kinetic_accelerator/proc/modify_projectile(obj/item/projectile/kinetic/K) +/obj/item/gun/energy/kinetic_accelerator/proc/modify_projectile(obj/projectile/kinetic/K) K.kinetic_gun = src //do something special on-hit, easy! for(var/A in get_modkits()) var/obj/item/borg/upgrade/modkit/M = A @@ -183,7 +183,7 @@ //Casing /obj/item/ammo_casing/energy/kinetic - projectile_type = /obj/item/projectile/kinetic + projectile_type = /obj/projectile/kinetic muzzle_flash_color = null select_name = "kinetic" e_cost = 500 @@ -197,10 +197,10 @@ //Malf casing /obj/item/ammo_casing/energy/kinetic/malf - projectile_type = /obj/item/projectile/kinetic/malf + projectile_type = /obj/projectile/kinetic/malf //Projectiles -/obj/item/projectile/kinetic +/obj/projectile/kinetic name = "kinetic force" icon_state = null damage = 40 @@ -211,23 +211,23 @@ var/pressure_decrease = 0.25 var/obj/item/gun/energy/kinetic_accelerator/kinetic_gun -/obj/item/projectile/kinetic/malf +/obj/projectile/kinetic/malf pressure_decrease = 1 color = "#FFFFFF" icon_state = "ka_tracer" -/obj/item/projectile/kinetic/pod +/obj/projectile/kinetic/pod range = 4 -/obj/item/projectile/kinetic/pod/regular +/obj/projectile/kinetic/pod/regular damage = 50 pressure_decrease = 0.5 -/obj/item/projectile/kinetic/Destroy() +/obj/projectile/kinetic/Destroy() kinetic_gun = null return ..() -/obj/item/projectile/kinetic/prehit(atom/target) +/obj/projectile/kinetic/prehit(atom/target) . = ..() if(.) if(kinetic_gun) @@ -240,15 +240,15 @@ pressure_decrease_active = TRUE -/obj/item/projectile/kinetic/on_range() +/obj/projectile/kinetic/on_range() strike_thing() ..() -/obj/item/projectile/kinetic/on_hit(atom/target) +/obj/projectile/kinetic/on_hit(atom/target) strike_thing(target) . = ..() -/obj/item/projectile/kinetic/proc/strike_thing(atom/target) +/obj/projectile/kinetic/proc/strike_thing(atom/target) var/turf/target_turf = get_turf(target) if(!target_turf) target_turf = get_turf(src) @@ -362,19 +362,19 @@ accelerator.modkits -= src return ..() -/obj/item/borg/upgrade/modkit/proc/modify_projectile(obj/item/projectile/kinetic/K) +/obj/item/borg/upgrade/modkit/proc/modify_projectile(obj/projectile/kinetic/K) return //use this one for effects you want to trigger before any damage is done at all and before damage is decreased by pressure -/obj/item/borg/upgrade/modkit/proc/projectile_prehit(obj/item/projectile/kinetic/K, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) +/obj/item/borg/upgrade/modkit/proc/projectile_prehit(obj/projectile/kinetic/K, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) return //use this one for effects you want to trigger before mods that do damage -/obj/item/borg/upgrade/modkit/proc/projectile_strike_predamage(obj/item/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) +/obj/item/borg/upgrade/modkit/proc/projectile_strike_predamage(obj/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) return //and this one for things that don't need to trigger before other damage-dealing mods -/obj/item/borg/upgrade/modkit/proc/projectile_strike(obj/item/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) +/obj/item/borg/upgrade/modkit/proc/projectile_strike(obj/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) return //Range @@ -383,7 +383,7 @@ desc = "Increases the range of a kinetic accelerator when installed." cost = 24 //so you can fit four plus a tracer cosmetic -/obj/item/borg/upgrade/modkit/range/modify_projectile(obj/item/projectile/kinetic/K) +/obj/item/borg/upgrade/modkit/range/modify_projectile(obj/projectile/kinetic/K) K.range += modifier @@ -393,7 +393,7 @@ desc = "Increases the damage of kinetic accelerator when installed." modifier = 10 -/obj/item/borg/upgrade/modkit/damage/modify_projectile(obj/item/projectile/kinetic/K) +/obj/item/borg/upgrade/modkit/damage/modify_projectile(obj/projectile/kinetic/K) K.damage += modifier @@ -448,7 +448,7 @@ turf_aoe = initial(turf_aoe) stats_stolen = FALSE -/obj/item/borg/upgrade/modkit/aoe/projectile_strike(obj/item/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) +/obj/item/borg/upgrade/modkit/aoe/projectile_strike(obj/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) if(stats_stolen) return new /obj/effect/temp_visual/pka_explosion(target_turf) @@ -494,7 +494,7 @@ modifier = -14 //Makes the cooldown 3 seconds(with no cooldown mods) if you miss. Don't miss. cost = 50 -/obj/item/borg/upgrade/modkit/cooldown/repeater/projectile_strike_predamage(obj/item/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) +/obj/item/borg/upgrade/modkit/cooldown/repeater/projectile_strike_predamage(obj/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) var/valid_repeat = FALSE if(isliving(target)) var/mob/living/L = target @@ -514,7 +514,7 @@ cost = 20 var/static/list/damage_heal_order = list(BRUTE, BURN, OXY) -/obj/item/borg/upgrade/modkit/lifesteal/projectile_prehit(obj/item/projectile/kinetic/K, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) +/obj/item/borg/upgrade/modkit/lifesteal/projectile_prehit(obj/projectile/kinetic/K, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) if(isliving(target) && isliving(K.firer)) var/mob/living/L = target if(L.stat == DEAD) @@ -528,7 +528,7 @@ denied_type = /obj/item/borg/upgrade/modkit/resonator_blasts modifier = 0.25 //A bonus 15 damage if you burst the field on a target, 60 if you lure them into it. -/obj/item/borg/upgrade/modkit/resonator_blasts/projectile_strike(obj/item/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) +/obj/item/borg/upgrade/modkit/resonator_blasts/projectile_strike(obj/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) if(target_turf && !ismineralturf(target_turf)) //Don't make fields on mineral turfs. var/obj/effect/temp_visual/resonance/R = locate(/obj/effect/temp_visual/resonance) in target_turf if(R) @@ -545,7 +545,7 @@ var/maximum_bounty = 25 var/list/bounties_reaped = list() -/obj/item/borg/upgrade/modkit/bounty/projectile_prehit(obj/item/projectile/kinetic/K, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) +/obj/item/borg/upgrade/modkit/bounty/projectile_prehit(obj/projectile/kinetic/K, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) if(isliving(target)) var/mob/living/L = target var/list/existing_marks = L.has_status_effect_list(STATUS_EFFECT_SYPHONMARK) @@ -556,7 +556,7 @@ qdel(SM) L.apply_status_effect(STATUS_EFFECT_SYPHONMARK, src) -/obj/item/borg/upgrade/modkit/bounty/projectile_strike(obj/item/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) +/obj/item/borg/upgrade/modkit/bounty/projectile_strike(obj/projectile/kinetic/K, turf/target_turf, atom/target, obj/item/gun/energy/kinetic_accelerator/KA) if(isliving(target)) var/mob/living/L = target if(bounties_reaped[L.type]) @@ -584,7 +584,7 @@ maximum_of_type = 2 cost = 35 -/obj/item/borg/upgrade/modkit/indoors/modify_projectile(obj/item/projectile/kinetic/K) +/obj/item/borg/upgrade/modkit/indoors/modify_projectile(obj/projectile/kinetic/K) K.pressure_decrease *= modifier @@ -648,7 +648,7 @@ denied_type = /obj/item/borg/upgrade/modkit/tracer var/bolt_color = "#FFFFFF" -/obj/item/borg/upgrade/modkit/tracer/modify_projectile(obj/item/projectile/kinetic/K) +/obj/item/borg/upgrade/modkit/tracer/modify_projectile(obj/projectile/kinetic/K) K.icon_state = "ka_tracer" K.color = bolt_color diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 74a22854f90..664e978937e 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -181,17 +181,17 @@ . += "At any rate, Nanotrasen is looking to sell these to sniper units who will undoubtedly appreciate the devastating effect that one of these can have when given proper operating distance." /obj/item/ammo_casing/energy/laser/accelerator - projectile_type = /obj/item/projectile/beam/laser/accelerator + projectile_type = /obj/projectile/beam/laser/accelerator select_name = "accelerator" fire_sound = 'sound/weapons/lasercannonfire.ogg' -/obj/item/projectile/beam/laser/accelerator +/obj/projectile/beam/laser/accelerator name = "accelerator laser" icon_state = "heavylaser" range = 255 damage = 6 -/obj/item/projectile/beam/laser/accelerator/Range() +/obj/projectile/beam/laser/accelerator/Range() ..() damage = min(damage+7, 100) @@ -250,7 +250,7 @@ return //no manual ammo changing. /obj/item/ammo_casing/energy/laser/sniper - projectile_type = /obj/item/projectile/beam/laser/sniper + projectile_type = /obj/projectile/beam/laser/sniper muzzle_flash_color = LIGHT_COLOR_PINK muzzle_flash_range = MUZZLE_FLASH_RANGE_STRONG muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_STRONG @@ -259,9 +259,9 @@ delay = 2 SECONDS /obj/item/ammo_casing/energy/laser/sniper/pierce - projectile_type = /obj/item/projectile/beam/laser/sniper/pierce + projectile_type = /obj/projectile/beam/laser/sniper/pierce -/obj/item/projectile/beam/laser/sniper +/obj/projectile/beam/laser/sniper name = "sniper laser" icon_state = "sniperlaser" range = 255 @@ -271,18 +271,18 @@ forced_accuracy = TRUE var/can_knockdown = TRUE -/obj/item/projectile/beam/laser/sniper/Range() +/obj/projectile/beam/laser/sniper/Range() ..() damage = min(damage + 5, 100) -/obj/item/projectile/beam/laser/sniper/on_hit(atom/target, blocked = 0, hit_zone) +/obj/projectile/beam/laser/sniper/on_hit(atom/target, blocked = 0, hit_zone) ..() var/mob/living/carbon/human/H = target if(istype(H) && damage >= 40 && can_knockdown) H.KnockDown(2 SECONDS * (damage / 10)) can_knockdown = FALSE //Projectiles that pierce can not knockdown, no wall knockdowns. -/obj/item/projectile/beam/laser/sniper/pierce +/obj/projectile/beam/laser/sniper/pierce forcedodge = 1 // Can pierce one non wall thing. speed = 0.5 always_hit_living_nondense = TRUE //This means if you are scoped in sniping at crit xenomorphs or crit humans, you can always hit them even if you do not directly click on them @@ -290,7 +290,7 @@ var/hit_a_r_wall = FALSE pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE | PASSGIRDER -/obj/item/projectile/beam/laser/sniper/pierce/prehit(atom/target) +/obj/projectile/beam/laser/sniper/pierce/prehit(atom/target) if(istype(target, /turf/simulated/wall/r_wall)) if(!hit_a_r_wall) hit_a_r_wall = TRUE diff --git a/code/modules/projectiles/guns/energy/special_eguns.dm b/code/modules/projectiles/guns/energy/special_eguns.dm index 18189029eaa..1335edc96f5 100644 --- a/code/modules/projectiles/guns/energy/special_eguns.dm +++ b/code/modules/projectiles/guns/energy/special_eguns.dm @@ -345,7 +345,7 @@ if(blue) blue.target = null -/obj/item/gun/energy/wormhole_projector/proc/create_portal(obj/item/projectile/beam/wormhole/W) +/obj/item/gun/energy/wormhole_projector/proc/create_portal(obj/projectile/beam/wormhole/W) var/obj/effect/portal/P = new /obj/effect/portal(get_turf(W), null, src) P.precision = 0 P.failchance = 0 @@ -1084,12 +1084,12 @@ /obj/item/ammo_casing/energy/spike name = "alloy spike" desc = "A broadhead spike made out of a weird silvery metal." - projectile_type = /obj/item/projectile/bullet/spike + projectile_type = /obj/projectile/bullet/spike muzzle_flash_effect = null select_name = "spike" fire_sound = 'sound/weapons/bladeslice.ogg' -/obj/item/projectile/bullet/spike +/obj/projectile/bullet/spike name = "alloy spike" desc = "It's about a foot of weird silvery metal with a wicked point." damage = 25 @@ -1097,7 +1097,7 @@ armor_penetration_flat = 30 icon_state = "magspear" -/obj/item/projectile/bullet/spike/on_hit(atom/target, blocked = 0) +/obj/projectile/bullet/spike/on_hit(atom/target, blocked = 0) if((blocked < 100) && ishuman(target)) var/mob/living/carbon/human/H = target H.bleed(50) @@ -1120,7 +1120,7 @@ cell_type = /obj/item/stock_parts/cell/infinite /obj/item/ammo_casing/energy/vortex_blast - projectile_type = /obj/item/projectile/energy/vortex_blast + projectile_type = /obj/projectile/energy/vortex_blast muzzle_flash_effect = /obj/effect/temp_visual/target_angled/muzzle_flash/vortex_blast variance = 70 pellets = 8 @@ -1128,7 +1128,7 @@ select_name = "vortex blast" fire_sound = 'sound/weapons/wave.ogg' -/obj/item/projectile/energy/vortex_blast +/obj/projectile/energy/vortex_blast name = "vortex blast" hitscan = TRUE damage = 2 @@ -1138,7 +1138,7 @@ hitsound_wall = null suppressed = TRUE -/obj/item/projectile/energy/vortex_blast/prehit(atom/target) +/obj/projectile/energy/vortex_blast/prehit(atom/target) . = ..() if(ishuman(target)) return @@ -1147,7 +1147,7 @@ return damage *= 6 //objects tend to fall apart as atoms are ripped up -/obj/item/projectile/energy/vortex_blast/on_hit(atom/target, blocked = 0) +/obj/projectile/energy/vortex_blast/on_hit(atom/target, blocked = 0) if(blocked >= 100) return ..() if(ishuman(target)) diff --git a/code/modules/projectiles/guns/magic/wand.dm b/code/modules/projectiles/guns/magic/wand.dm index 399e76d295b..7e3716b7e5d 100644 --- a/code/modules/projectiles/guns/magic/wand.dm +++ b/code/modules/projectiles/guns/magic/wand.dm @@ -278,7 +278,7 @@ CONTENTS: "Would you like a glass of water?", "What fun is there in making sense?", "Maybe you ought to go back home and crawl under your bed.", \ "Time to dual wield chaos wands!", "Sixty percent of the time, it works every time.", "Cheese for everyone!", "You hear a deep voice cackling.", \ "Xom bursts into laughter!", "Xom thinks this is hilarious!")]") - var/obj/item/projectile/magic/chaos/proj = new /obj/item/projectile/magic/chaos(src) + var/obj/projectile/magic/chaos/proj = new /obj/projectile/magic/chaos(src) proj.chaos_chaos(user) qdel(proj) charges-- diff --git a/code/modules/projectiles/guns/misc/blastcannon.dm b/code/modules/projectiles/guns/misc/blastcannon.dm index 91f581a53c6..c18a2919a14 100644 --- a/code/modules/projectiles/guns/misc/blastcannon.dm +++ b/code/modules/projectiles/guns/misc/blastcannon.dm @@ -89,11 +89,11 @@ var/turf/targturf = get_turf(target) message_admins("Blast wave fired from [ADMIN_COORDJMP(starting)] ([get_area_name(user, TRUE)]) at [ADMIN_COORDJMP(targturf)] ([target.name]) by [key_name_admin(user)] with power [heavy]/[medium]/[light].") log_game("Blast wave fired from ([starting.x], [starting.y], [starting.z]) ([get_area_name(user, TRUE)]) at ([target.x], [target.y], [target.z]) ([target]) by [key_name(user)] with power [heavy]/[medium]/[light].") - var/obj/item/projectile/blastwave/BW = new(loc, heavy, medium, light) + var/obj/projectile/blastwave/BW = new(loc, heavy, medium, light) BW.preparePixelProjectile(target, get_turf(src), params2list(params), 0) BW.fire() -/obj/item/projectile/blastwave +/obj/projectile/blastwave name = "blast wave" icon_state = "blastwave" damage = 0 @@ -103,13 +103,13 @@ var/mediumr = 0 var/lightr = 0 -/obj/item/projectile/blastwave/New(loc, _h, _m, _l) +/obj/projectile/blastwave/New(loc, _h, _m, _l) ..() heavyr = _h mediumr = _m lightr = _l -/obj/item/projectile/blastwave/Range() +/obj/projectile/blastwave/Range() ..() var/amount_destruction = 0 if(heavyr) @@ -132,5 +132,5 @@ mediumr = max(mediumr - 1, 0) lightr = max(lightr - 1, 0) -/obj/item/projectile/blastwave/ex_act() +/obj/projectile/blastwave/ex_act() return diff --git a/code/modules/projectiles/guns/projectile/bow.dm b/code/modules/projectiles/guns/projectile/bow.dm index fbc66707f3f..42f5147b96d 100644 --- a/code/modules/projectiles/guns/projectile/bow.dm +++ b/code/modules/projectiles/guns/projectile/bow.dm @@ -65,7 +65,7 @@ max_ammo = 1 -/obj/item/projectile/bullet/reusable/arrow +/obj/projectile/bullet/reusable/arrow name = "arrow" icon_state = "arrow" ammo_type = /obj/item/ammo_casing/caseless/arrow @@ -77,7 +77,7 @@ desc = "Stab, stab, stab." icon_state = "arrow" force = 10 - projectile_type = /obj/item/projectile/bullet/reusable/arrow + projectile_type = /obj/projectile/bullet/reusable/arrow muzzle_flash_effect = null caliber = "arrow" diff --git a/code/modules/projectiles/guns/projectile/saw.dm b/code/modules/projectiles/guns/projectile/saw.dm index eeab5c8440d..ede5876c778 100644 --- a/code/modules/projectiles/guns/projectile/saw.dm +++ b/code/modules/projectiles/guns/projectile/saw.dm @@ -70,34 +70,34 @@ //ammo// -/obj/item/projectile/bullet/saw +/obj/projectile/bullet/saw damage = 45 armor_penetration_flat = 5 -/obj/item/projectile/bullet/saw/bleeding +/obj/projectile/bullet/saw/bleeding damage = 20 armor_penetration_flat = 0 -/obj/item/projectile/bullet/saw/bleeding/on_hit(atom/target, blocked = 0, hit_zone) +/obj/projectile/bullet/saw/bleeding/on_hit(atom/target, blocked = 0, hit_zone) . = ..() if((blocked != 100) && iscarbon(target)) var/mob/living/carbon/C = target C.bleed(35) -/obj/item/projectile/bullet/saw/hollow +/obj/projectile/bullet/saw/hollow damage = 60 armor_penetration_flat = -30 -/obj/item/projectile/bullet/saw/ap +/obj/projectile/bullet/saw/ap damage = 40 armor_penetration_percentage = 100 -/obj/item/projectile/bullet/saw/incen +/obj/projectile/bullet/saw/incen damage = 7 armor_penetration_flat = 0 immolate = 3 -/obj/item/projectile/bullet/saw/incen/Move() +/obj/projectile/bullet/saw/incen/Move() ..() var/turf/location = get_turf(src) if(location) @@ -144,7 +144,7 @@ desc = "A 7.62x51mm full-metal jacket rifle cartridge, commonly used in general-purpose machine guns." icon_state = "rifle_brass" caliber = "mm762x51" - projectile_type = /obj/item/projectile/bullet/saw + projectile_type = /obj/projectile/bullet/saw muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_STRONG muzzle_flash_range = MUZZLE_FLASH_RANGE_STRONG @@ -152,23 +152,23 @@ name = "7.62x51mm 'Shredder' round" desc = "A 7.62x51mm 'Shredder' cartridge, with a heavily serrated tip intended to cause massive bleeding." icon_state = "rifle_brass_surplus" - projectile_type = /obj/item/projectile/bullet/saw/bleeding + projectile_type = /obj/projectile/bullet/saw/bleeding /obj/item/ammo_casing/mm762x51/hollow name = "7.62x51mm hollow point round" desc = "A 7.62x51mm rifle cartridge designed to cause more damage to unarmored targets." icon_state = "rifle_brass_hollow" - projectile_type = /obj/item/projectile/bullet/saw/hollow + projectile_type = /obj/projectile/bullet/saw/hollow /obj/item/ammo_casing/mm762x51/ap name = "7.62x51mm armor-piercing round" desc = "A 7.62x51mm rifle cartridge with a hardened tungsten core to increase armor penetration." icon_state = "rifle_brass_ap" - projectile_type = /obj/item/projectile/bullet/saw/ap + projectile_type = /obj/projectile/bullet/saw/ap /obj/item/ammo_casing/mm762x51/incen name = "7.62x51mm incendiary round" desc = "A 7.62x51mm rifle cartridge with an incendiary chemical payload." icon_state = "rifle_brass_incin" - projectile_type = /obj/item/projectile/bullet/saw/incen + projectile_type = /obj/projectile/bullet/saw/incen muzzle_flash_color = LIGHT_COLOR_FIRE diff --git a/code/modules/projectiles/guns/projectile/sniper.dm b/code/modules/projectiles/guns/projectile/sniper.dm index ef13f55bf29..14ede20dbeb 100644 --- a/code/modules/projectiles/guns/projectile/sniper.dm +++ b/code/modules/projectiles/guns/projectile/sniper.dm @@ -24,8 +24,8 @@ AddComponent(/datum/component/scope, range_modifier = 2, flags = SCOPE_TURF_ONLY | SCOPE_NEED_ACTIVE_HAND) /obj/item/gun/projectile/automatic/sniper_rifle/process_fire(atom/target, mob/living/user, message = TRUE, params, zone_override, bonus_spread = 0) - if(istype(chambered.BB, /obj/item/projectile/bullet/sniper) && !HAS_TRAIT(user, TRAIT_SCOPED)) - var/obj/item/projectile/bullet/sniper/S = chambered.BB + if(istype(chambered.BB, /obj/projectile/bullet/sniper) && !HAS_TRAIT(user, TRAIT_SCOPED)) + var/obj/projectile/bullet/sniper/S = chambered.BB if(S.non_zoom_spread) to_chat(user, "[src] must be zoomed in to fire this ammunition accurately!") bonus_spread += S.non_zoom_spread @@ -62,11 +62,11 @@ desc = "A .50 BMG rifle cartridge, commonly used in anti-materiel rifles and heavy machine guns." icon_state = "heavy_steel" caliber = ".50" - projectile_type = /obj/item/projectile/bullet/sniper + projectile_type = /obj/projectile/bullet/sniper muzzle_flash_strength = MUZZLE_FLASH_STRENGTH_STRONG muzzle_flash_range = MUZZLE_FLASH_RANGE_STRONG -/obj/item/projectile/bullet/sniper +/obj/projectile/bullet/sniper damage = 70 weaken = 10 SECONDS armor_penetration_flat = 70 @@ -86,14 +86,14 @@ desc = "A .50 BMG high-explosive cartridge. Does not actually contain antimatter." icon_state = "heavy_steel_incin" caliber = ".50" - projectile_type = /obj/item/projectile/bullet/sniper/antimatter + projectile_type = /obj/projectile/bullet/sniper/antimatter -/obj/item/projectile/bullet/sniper/antimatter +/obj/projectile/bullet/sniper/antimatter name = "antimatter bullet" dismemberment = 50 non_zoom_spread = 60 -/obj/item/projectile/bullet/sniper/antimatter/on_hit(atom/target, blocked = 0, hit_zone) +/obj/projectile/bullet/sniper/antimatter/on_hit(atom/target, blocked = 0, hit_zone) if((blocked != 100) && (!ismob(target))) target.ex_act(rand(1,2)) @@ -113,15 +113,15 @@ desc = "A .50 BMG hypodermic cartridge, loaded with sedatives for instant incapacitation." icon_state = "heavy_steel_rubber" caliber = ".50" - projectile_type = /obj/item/projectile/bullet/sniper/soporific + projectile_type = /obj/projectile/bullet/sniper/soporific harmful = FALSE -/obj/item/projectile/bullet/sniper/soporific +/obj/projectile/bullet/sniper/soporific armor_penetration_flat = 0 nodamage = 1 weaken = 0 -/obj/item/projectile/bullet/sniper/soporific/on_hit(atom/target, blocked = 0, hit_zone) +/obj/projectile/bullet/sniper/soporific/on_hit(atom/target, blocked = 0, hit_zone) if((blocked != 100) && isliving(target)) var/mob/living/L = target L.SetSleeping(40 SECONDS) @@ -141,14 +141,14 @@ desc = "A .50 BMG 'Shredder' cartridge, with a heavily serrated bullet intended to cause massive blood loss." icon_state = "heavy_steel_hollow" caliber = ".50" - projectile_type = /obj/item/projectile/bullet/sniper/haemorrhage + projectile_type = /obj/projectile/bullet/sniper/haemorrhage -/obj/item/projectile/bullet/sniper/haemorrhage +/obj/projectile/bullet/sniper/haemorrhage armor_penetration_flat = 25 damage = 45 weaken = 6 SECONDS -/obj/item/projectile/bullet/sniper/haemorrhage/on_hit(atom/target, blocked = 0, hit_zone) +/obj/projectile/bullet/sniper/haemorrhage/on_hit(atom/target, blocked = 0, hit_zone) if((blocked != 100) && iscarbon(target)) var/mob/living/carbon/C = target C.bleed(150) @@ -169,9 +169,9 @@ desc = "A .50 BMG Sabot Penetrator cartridge, capable of punching through just about anything." icon_state = "heavy_steel_ap" caliber = ".50" - projectile_type = /obj/item/projectile/bullet/sniper/penetrator + projectile_type = /obj/projectile/bullet/sniper/penetrator -/obj/item/projectile/bullet/sniper/penetrator +/obj/projectile/bullet/sniper/penetrator icon_state = "gauss" name = "penetrator round" damage = 60 diff --git a/code/modules/projectiles/guns/syringe_gun.dm b/code/modules/projectiles/guns/syringe_gun.dm index fb822613e80..5b975eaa8c9 100644 --- a/code/modules/projectiles/guns/syringe_gun.dm +++ b/code/modules/projectiles/guns/syringe_gun.dm @@ -319,7 +319,7 @@ if(!S) return - chambered.BB = new /obj/item/projectile/bullet/dart/syringe/pierce_ignore(src) + chambered.BB = new /obj/projectile/bullet/dart/syringe/pierce_ignore(src) update_loaded_syringe() chambered.BB.name = S.name diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 2707f9b5d2f..12b85863a6b 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" pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE @@ -15,25 +15,25 @@ ricochets_max = 50 //Honk! ricochet_chance = 80 -/obj/item/projectile/beam/laser +/obj/projectile/beam/laser -/obj/item/projectile/beam/laser/ik +/obj/projectile/beam/laser/ik -/obj/item/projectile/beam/laser/ik/emp_act(severity) +/obj/projectile/beam/laser/ik/emp_act(severity) if(prob(40 / severity)) range = 0 -/obj/item/projectile/beam/laser/ik/on_range() //Should spark out of the gun. Theoretically, one could emp projectiles out of the air. However, its more practical to EMP the guns, rather than projectiles in flight +/obj/projectile/beam/laser/ik/on_range() //Should spark out of the gun. Theoretically, one could emp projectiles out of the air. However, its more practical to EMP the guns, rather than projectiles in flight do_sparks(1, 1, src) ..() -/obj/item/projectile/beam/laser/heavylaser +/obj/projectile/beam/laser/heavylaser name = "heavy laser" icon_state = "heavylaser" damage = 40 -/obj/item/projectile/beam/laser/ai_turret +/obj/projectile/beam/laser/ai_turret damage = 17.5 //Slight loss in damage because hitscan forcedodge = 1 hitscan = TRUE @@ -50,7 +50,7 @@ impact_light_range = 2.5 impact_light_color_override = LIGHT_COLOR_DARKRED -/obj/item/projectile/beam/laser/ai_turret/prehit(atom/target) +/obj/projectile/beam/laser/ai_turret/prehit(atom/target) if(is_ai(target)) damage = 0 //cheater cheater I don't want AI to die to stupid placement eater nodamage = 1 @@ -58,31 +58,31 @@ forcedodge = 0 //no peircing after hitting a mob to avoid rooms destroying itself. If someone does monkey chair on AI sat though, I swear to god ..() -/obj/item/projectile/beam/laser/ai_turret/heavylaser +/obj/projectile/beam/laser/ai_turret/heavylaser damage = 35 muzzle_type = /obj/effect/projectile/muzzle/heavy_laser tracer_type = /obj/effect/projectile/tracer/heavy_laser impact_type = /obj/effect/projectile/impact/heavy_laser -/obj/item/projectile/beam/practice +/obj/projectile/beam/practice name = "practice laser" damage = 0 nodamage = 1 log_override = TRUE -/obj/item/projectile/beam/scatter +/obj/projectile/beam/scatter name = "laser pellet" icon_state = "scatterlaser" damage = 5 -/obj/item/projectile/beam/scatter/eshotgun +/obj/projectile/beam/scatter/eshotgun damage = 6 tile_dropoff = 0.5 tile_dropoff_s = 0.5 range = 8 -/obj/item/projectile/beam/xray +/obj/projectile/beam/xray name = "xray beam" icon_state = "xray" damage = 15 @@ -93,7 +93,7 @@ impact_effect_type = /obj/effect/temp_visual/impact_effect/green_laser light_color = LIGHT_COLOR_GREEN -/obj/item/projectile/beam/disabler +/obj/projectile/beam/disabler name = "disabler beam" icon_state = "omnilaser" damage = 30 @@ -104,25 +104,25 @@ impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser light_color = LIGHT_COLOR_CYAN -/obj/item/projectile/beam/disabler/weak +/obj/projectile/beam/disabler/weak name = "weakened disabler beam" damage = 15 armor_penetration_flat = -10 light_color = LIGHT_COLOR_BLUE -/obj/item/projectile/beam/disabler/fake +/obj/projectile/beam/disabler/fake name = "weakened disabler beam" nodamage = 1 damage = 0 -/obj/item/projectile/beam/disabler/pellet +/obj/projectile/beam/disabler/pellet name = "split disabler beam" icon_state = "scatterdisabler" damage = 10 light_color = LIGHT_COLOR_BLUE range = 8 -/obj/item/projectile/beam/pulse +/obj/projectile/beam/pulse name = "pulse" icon_state = "u_laser" damage = 50 @@ -131,7 +131,7 @@ /// If this shot can immediately destroy rwalls or not var/weakened_against_rwalls = FALSE -/obj/item/projectile/beam/pulse/hitscan +/obj/projectile/beam/pulse/hitscan impact_effect_type = null light_color = null hitscan = TRUE @@ -147,26 +147,26 @@ impact_light_range = 2.5 impact_light_color_override = LIGHT_COLOR_DARKBLUE -/obj/item/projectile/beam/pulse/on_hit(atom/target, blocked = 0) +/obj/projectile/beam/pulse/on_hit(atom/target, blocked = 0) if(isreinforcedwallturf(target) && weakened_against_rwalls) target.ex_act(EXPLODE_LIGHT) else if(isturf(target) || isstructure(target) || ismachinery(target)) target.ex_act(EXPLODE_HEAVY) ..() -/obj/item/projectile/beam/pulse/shot +/obj/projectile/beam/pulse/shot name = "proto pulse" damage = 40 weakened_against_rwalls = TRUE -/obj/item/projectile/beam/emitter +/obj/projectile/beam/emitter name = "emitter beam" icon_state = "emitter" damage = 30 impact_effect_type = /obj/effect/temp_visual/impact_effect/green_laser light_color = LIGHT_COLOR_GREEN -/obj/item/projectile/beam/emitter/hitscan +/obj/projectile/beam/emitter/hitscan hitscan = TRUE muzzle_type = /obj/effect/projectile/muzzle/laser/emitter tracer_type = /obj/effect/projectile/tracer/laser/emitter @@ -181,10 +181,10 @@ impact_light_range = 2.5 impact_light_color_override = LIGHT_COLOR_GREEN -/obj/item/projectile/beam/emitter/singularity_pull() +/obj/projectile/beam/emitter/singularity_pull() return //don't want the emitters to miss -/obj/item/projectile/beam/lasertag +/obj/projectile/beam/lasertag name = "laser tag beam" icon_state = "omnilaser" hitsound = 'sound/weapons/tap.ogg' @@ -196,7 +196,7 @@ impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser light_color = LIGHT_COLOR_DARKBLUE -/obj/item/projectile/beam/lasertag/on_hit(atom/target, blocked = 0) +/obj/projectile/beam/lasertag/on_hit(atom/target, blocked = 0) . = ..() if(ishuman(target)) var/mob/living/carbon/human/M = target @@ -205,34 +205,34 @@ M.apply_damage(34, STAMINA) return 1 -/obj/item/projectile/beam/lasertag/omni +/obj/projectile/beam/lasertag/omni -/obj/item/projectile/beam/lasertag/redtag +/obj/projectile/beam/lasertag/redtag icon_state = "laser" suit_types = list(/obj/item/clothing/suit/bluetag) impact_effect_type = /obj/effect/temp_visual/impact_effect/red_laser light_color = LIGHT_COLOR_DARKRED -/obj/item/projectile/beam/lasertag/bluetag +/obj/projectile/beam/lasertag/bluetag icon_state = "bluelaser" suit_types = list(/obj/item/clothing/suit/redtag) light_color = LIGHT_COLOR_BLUE -/obj/item/projectile/beam/immolator +/obj/projectile/beam/immolator name = "immolation beam" immolate = 1 -/obj/item/projectile/beam/immolator/strong +/obj/projectile/beam/immolator/strong name = "heavy immolation beam" damage = 45 icon_state = "heavylaser" -/obj/item/projectile/beam/immolator/weak +/obj/projectile/beam/immolator/weak name = "light immolation beam" damage = 8 icon_state = "scatterlaser" -/obj/item/projectile/beam/immolator/weak/hitscan +/obj/projectile/beam/immolator/weak/hitscan color = LIGHT_COLOR_FIRE hitscan = TRUE muzzle_type = /obj/effect/projectile/muzzle/laser @@ -248,7 +248,7 @@ impact_light_range = 2.5 impact_light_color_override = LIGHT_COLOR_FIRE -/obj/item/projectile/beam/instakill +/obj/projectile/beam/instakill name = "instagib laser" icon_state = "purple_laser" damage = 200 @@ -256,24 +256,24 @@ impact_effect_type = /obj/effect/temp_visual/impact_effect/purple_laser light_color = LIGHT_COLOR_PURPLE -/obj/item/projectile/beam/instakill/blue +/obj/projectile/beam/instakill/blue icon_state = "blue_laser" impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser light_color = LIGHT_COLOR_DARKBLUE -/obj/item/projectile/beam/instakill/red +/obj/projectile/beam/instakill/red icon_state = "red_laser" impact_effect_type = /obj/effect/temp_visual/impact_effect/red_laser light_color = LIGHT_COLOR_DARKRED -/obj/item/projectile/beam/instakill/on_hit(atom/target) +/obj/projectile/beam/instakill/on_hit(atom/target) . = ..() if(isliving(target)) var/mob/living/L = target L.visible_message("[L] explodes!") L.quick_explode_gib() -/obj/item/projectile/beam/laser/detective +/obj/projectile/beam/laser/detective name = "energy revolver shot" icon_state = "omnilaser" light_color = LIGHT_COLOR_CYAN @@ -282,7 +282,7 @@ stamina = 25 eyeblur = 2 SECONDS -/obj/item/projectile/beam/laser/detective/overcharged +/obj/projectile/beam/laser/detective/overcharged name = "overcharged shot" icon_state = "spark" light_color = LIGHT_COLOR_DARKRED @@ -292,7 +292,7 @@ stamina = 15 eyeblur = 4 SECONDS -/obj/item/projectile/beam/laser/detective/tracker_warrant_shot +/obj/projectile/beam/laser/detective/tracker_warrant_shot name = "tracker shot" icon_state = "yellow_laser" light_color = LIGHT_COLOR_YELLOW @@ -300,7 +300,7 @@ stamina = 0 reflectability = REFLECTABILITY_PHYSICAL //No mr cult juggernaught, please don't set me to search! -/obj/item/projectile/beam/laser/detective/tracker_warrant_shot/on_hit(atom/target) +/obj/projectile/beam/laser/detective/tracker_warrant_shot/on_hit(atom/target) . = ..() if(!ishuman(target)) no_worky(target) @@ -308,7 +308,7 @@ start_tracking(target) set_warrant(target) -/obj/item/projectile/beam/laser/detective/tracker_warrant_shot/proc/start_tracking(atom/target) +/obj/projectile/beam/laser/detective/tracker_warrant_shot/proc/start_tracking(atom/target) var/obj/item/gun/energy/detective/D = firer_source_atom if(!D) no_worky(target) @@ -318,7 +318,7 @@ return D.start_pointing(target.UID()) -/obj/item/projectile/beam/laser/detective/tracker_warrant_shot/proc/set_warrant(atom/target) +/obj/projectile/beam/laser/detective/tracker_warrant_shot/proc/set_warrant(atom/target) var/mob/living/carbon/human/target_to_mark = target var/perpname = target_to_mark.get_visible_name(TRUE) if(!perpname || perpname == "Unknown") @@ -330,7 +330,7 @@ return set_criminal_status(firer, R, SEC_RECORD_STATUS_SEARCH, "Target tagged by Detective Revolver", "Detective Revolver") -/obj/item/projectile/beam/laser/detective/tracker_warrant_shot/proc/no_worky(atom/target, tracking_already, warrant_fail) +/obj/projectile/beam/laser/detective/tracker_warrant_shot/proc/no_worky(atom/target, tracking_already, warrant_fail) if(tracking_already) to_chat(firer, "Weapon Alert: You are already tracking a target!") return @@ -339,7 +339,7 @@ return to_chat(firer, "Weapon Alert: unable to track [target]!") -/obj/item/projectile/beam/silencer +/obj/projectile/beam/silencer name = "energy beam" //Keep it vague? It's not a laser, but it's silenced, does a person know what it is? icon_state = "omnilaser" stamina = 30 @@ -351,13 +351,13 @@ impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser light_color = LIGHT_COLOR_CYAN -/obj/item/projectile/beam/laser/sparker +/obj/projectile/beam/laser/sparker name = "sparker beam" icon_state = "scatterlaser" damage = 12.5 range = 12 -/obj/item/projectile/beam/laser/sparker/on_range() +/obj/projectile/beam/laser/sparker/on_range() new /obj/effect/particle_effect/sparks(get_turf(src)) return ..() diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 6e48c342558..f14cd4db7dc 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -1,16 +1,16 @@ -/obj/item/projectile/bullet +/obj/projectile/bullet name = "bullet" damage = 60 hitsound_wall = "ricochet" impact_effect_type = /obj/effect/temp_visual/impact_effect /// beanbag, heavy stamina damage -/obj/item/projectile/bullet/weakbullet +/obj/projectile/bullet/weakbullet name = "beanbag slug" damage = 5 stamina = 40 -/obj/item/projectile/bullet/weakbullet/on_hit(atom/target, blocked = 0) +/obj/projectile/bullet/weakbullet/on_hit(atom/target, blocked = 0) . = ..() if(isliving(target)) var/mob/living/L = target @@ -18,9 +18,9 @@ var/atom/throw_target = get_edge_target_turf(L, get_dir(src, get_step_away(L, starting))) L.throw_at(throw_target, 1, 2) -/obj/item/projectile/bullet/weakbullet/booze +/obj/projectile/bullet/weakbullet/booze -/obj/item/projectile/bullet/weakbullet/booze/on_hit(atom/target, blocked = 0) +/obj/projectile/bullet/weakbullet/booze/on_hit(atom/target, blocked = 0) if(..(target, blocked)) var/mob/living/M = target M.AdjustDizzy(40 SECONDS) @@ -37,57 +37,57 @@ M.AdjustDrowsy(20 SECONDS) A.volume += 5 //Because we can -/obj/item/projectile/bullet/weakbullet2 +/obj/projectile/bullet/weakbullet2 name = "rubber bullet" damage = 5 stamina = 35 icon_state = "bullet-r" -/obj/item/projectile/bullet/weakbullet3 +/obj/projectile/bullet/weakbullet3 damage = 20 -/obj/item/projectile/bullet/weakbullet4 +/obj/projectile/bullet/weakbullet4 name = "rubber bullet" damage = 5 stamina = 30 icon_state = "bullet-r" -/obj/item/projectile/bullet/toxinbullet +/obj/projectile/bullet/toxinbullet damage = 15 damage_type = TOX color = COLOR_GREEN -/obj/item/projectile/bullet/incendiary +/obj/projectile/bullet/incendiary immolate = 1 -/obj/item/projectile/bullet/incendiary/firebullet +/obj/projectile/bullet/incendiary/firebullet damage = 10 -/obj/item/projectile/bullet/armourpiercing +/obj/projectile/bullet/armourpiercing damage = 17 armor_penetration_flat = 10 -/obj/item/projectile/bullet/armourpiercing/wt550 +/obj/projectile/bullet/armourpiercing/wt550 damage = 15 armor_penetration_percentage = 50 armor_penetration_flat = 25 -/obj/item/projectile/bullet/pellet +/obj/projectile/bullet/pellet name = "pellet" damage = 12.5 tile_dropoff = 0.75 tile_dropoff_s = 1.25 armor_penetration_flat = -20 -/obj/item/projectile/bullet/pellet/rubber +/obj/projectile/bullet/pellet/rubber name = "rubber pellet" damage = 3 stamina = 12.5 icon_state = "bullet-r" armor_penetration_flat = -10 -/obj/item/projectile/bullet/pellet/rubber/on_hit(atom/target, blocked = 0) +/obj/projectile/bullet/pellet/rubber/on_hit(atom/target, blocked = 0) . = ..() if(!ishuman(target)) return @@ -96,62 +96,62 @@ if(initial(range) - range <= 5 && H.getStaminaLoss() >= 60) H.KnockDown(8 SECONDS) -/obj/item/projectile/bullet/pellet/rubber/stinger +/obj/projectile/bullet/pellet/rubber/stinger name = "stingball" damage = 1 -/obj/item/projectile/bullet/pellet/assassination +/obj/projectile/bullet/pellet/assassination damage = 12 tile_dropoff = 1 // slightly less damage and greater damage falloff compared to normal buckshot -/obj/item/projectile/bullet/pellet/assassination/on_hit(atom/target, blocked = 0) +/obj/projectile/bullet/pellet/assassination/on_hit(atom/target, blocked = 0) if(..(target, blocked)) var/mob/living/M = target M.AdjustSilence(4 SECONDS) // HELP MIME KILLING ME IN MAINT -/obj/item/projectile/bullet/midbullet +/obj/projectile/bullet/midbullet damage = 20 stamina = 45 // Three rounds from the c20r knocks unarmoured people down, four for people with bulletproof -/obj/item/projectile/bullet/midbullet_r +/obj/projectile/bullet/midbullet_r damage = 5 stamina = 75 //Still two rounds to knock people down -/obj/item/projectile/bullet/midbullet2 +/obj/projectile/bullet/midbullet2 damage = 25 -/obj/item/projectile/bullet/midbullet3 +/obj/projectile/bullet/midbullet3 damage = 30 -/obj/item/projectile/bullet/midbullet3/hp +/obj/projectile/bullet/midbullet3/hp damage = 40 armor_penetration_flat = -40 -/obj/item/projectile/bullet/midbullet3/ap +/obj/projectile/bullet/midbullet3/ap damage = 27 armor_penetration_flat = 40 -/obj/item/projectile/bullet/midbullet3/fire +/obj/projectile/bullet/midbullet3/fire immolate = 1 -/obj/item/projectile/bullet/midbullet3/overgrown +/obj/projectile/bullet/midbullet3/overgrown icon = 'icons/obj/ammo.dmi' icon_state = "peashooter_bullet" damage = 25 -/obj/item/projectile/bullet/midbullet3/overgrown/prehit(atom/target) +/obj/projectile/bullet/midbullet3/overgrown/prehit(atom/target) if(HAS_TRAIT(target, TRAIT_I_WANT_BRAINS)) damage += 10 return ..() -/obj/item/projectile/bullet/heavybullet +/obj/projectile/bullet/heavybullet damage = 35 -/obj/item/projectile/bullet/heavybullet2 +/obj/projectile/bullet/heavybullet2 damage = 40 /// taser slugs for shotguns, nothing special -/obj/item/projectile/bullet/stunshot +/obj/projectile/bullet/stunshot name = "stunshot" damage = 5 weaken = 10 SECONDS @@ -161,11 +161,11 @@ icon_state = "spark" color = "#FFFF00" -/obj/item/projectile/bullet/incendiary/shell +/obj/projectile/bullet/incendiary/shell name = "incendiary slug" damage = 20 -/obj/item/projectile/bullet/incendiary/shell/Move() +/obj/projectile/bullet/incendiary/shell/Move() ..() var/turf/location = get_turf(src) if(location) @@ -174,11 +174,11 @@ hotspot.recolor() location.hotspot_expose(700, 50) -/obj/item/projectile/bullet/incendiary/shell/dragonsbreath +/obj/projectile/bullet/incendiary/shell/dragonsbreath name = "dragonsbreath round" damage = 5 -/obj/item/projectile/bullet/meteorshot +/obj/projectile/bullet/meteorshot name = "meteor" icon = 'icons/obj/meteor.dmi' icon_state = "dust" @@ -186,7 +186,7 @@ knockdown = 8 SECONDS hitsound = 'sound/effects/meteorimpact.ogg' -/obj/item/projectile/bullet/meteorshot/on_hit(atom/target, blocked = 0) +/obj/projectile/bullet/meteorshot/on_hit(atom/target, blocked = 0) ..() if(ismovable(target)) var/atom/movable/M = target @@ -194,15 +194,15 @@ var/atom/throw_target = get_edge_target_turf(M, get_dir(src, get_step_away(M, src))) M.throw_at(throw_target, 3, 2) -/obj/item/projectile/bullet/meteorshot/New() +/obj/projectile/bullet/meteorshot/New() ..() SpinAnimation() -/obj/item/projectile/bullet/mime +/obj/projectile/bullet/mime damage = 40 var/special_effects = TRUE -/obj/item/projectile/bullet/mime/on_hit(atom/target, blocked = 0) +/obj/projectile/bullet/mime/on_hit(atom/target, blocked = 0) ..(target, blocked) if(special_effects) if(iscarbon(target)) @@ -215,28 +215,28 @@ for(var/obj/item/mecha_parts/mecha_equipment/weapon/honker in chassis.equipment) honker.set_ready_state(0) -/obj/item/projectile/bullet/mime/nonlethal +/obj/projectile/bullet/mime/nonlethal damage = 0 /// We deal no normal damage... stamina = 40 /// ...Rather a large amount of stamina damage. Used in the mime mecha -/obj/item/projectile/bullet/mime/fake +/obj/projectile/bullet/mime/fake damage = 0 nodamage = TRUE special_effects = FALSE log_override = TRUE -/obj/item/projectile/bullet/dart +/obj/projectile/bullet/dart name = "dart" icon_state = "cbbolt" damage = 6 var/penetrate_thick = FALSE -/obj/item/projectile/bullet/dart/New() +/obj/projectile/bullet/dart/New() ..() create_reagents(50) reagents.set_reacting(FALSE) -/obj/item/projectile/bullet/dart/on_hit(atom/target, blocked = 0, hit_zone) +/obj/projectile/bullet/dart/on_hit(atom/target, blocked = 0, hit_zone) if(iscarbon(target)) var/mob/living/carbon/M = target if(blocked != INFINITY) @@ -255,39 +255,39 @@ reagents.handle_reactions() return TRUE -/obj/item/projectile/bullet/dart/metalfoam +/obj/projectile/bullet/dart/metalfoam -/obj/item/projectile/bullet/dart/metalfoam/New() +/obj/projectile/bullet/dart/metalfoam/New() ..() reagents.add_reagent("aluminum", 15) reagents.add_reagent("fluorosurfactant", 5) reagents.add_reagent("sacid", 5) //This one is for future syringe guns update -/obj/item/projectile/bullet/dart/syringe +/obj/projectile/bullet/dart/syringe name = "syringe" icon = 'icons/obj/chemical.dmi' icon_state = "syringeproj" -/obj/item/projectile/bullet/dart/syringe/heavyduty +/obj/projectile/bullet/dart/syringe/heavyduty damage = 20 -/obj/item/projectile/bullet/dart/syringe/pierce_ignore +/obj/projectile/bullet/dart/syringe/pierce_ignore penetrate_thick = TRUE -/obj/item/projectile/bullet/dart/syringe/tranquilizer +/obj/projectile/bullet/dart/syringe/tranquilizer -/obj/item/projectile/bullet/dart/syringe/tranquilizer/New() +/obj/projectile/bullet/dart/syringe/tranquilizer/New() ..() reagents.add_reagent("haloperidol", 15) -/obj/item/projectile/bullet/dart/syringe/holy +/obj/projectile/bullet/dart/syringe/holy -/obj/item/projectile/bullet/dart/syringe/holy/New() +/obj/projectile/bullet/dart/syringe/holy/New() ..() reagents.add_reagent("holywater", 10) -/obj/item/projectile/bullet/neurotoxin +/obj/projectile/bullet/neurotoxin name = "neurotoxin spit" icon_state = "neurotoxin" damage = 5 @@ -295,28 +295,28 @@ stamina = 40 knockdown = 10 SECONDS -/obj/item/projectile/bullet/neurotoxin/on_hit(atom/target, blocked = 0) +/obj/projectile/bullet/neurotoxin/on_hit(atom/target, blocked = 0) if(isalien(target)) knockdown = 0 nodamage = TRUE . = ..() // Execute the rest of the code. -/obj/item/projectile/bullet/anti_alien_toxin +/obj/projectile/bullet/anti_alien_toxin name = "neurotoxin spit" icon_state = "neurotoxin" damage = 15 // FRENDLY FIRE FRENDLY FIRE damage_type = BURN -/obj/item/projectile/bullet/anti_alien_toxin/on_hit(atom/target, blocked = 0) +/obj/projectile/bullet/anti_alien_toxin/on_hit(atom/target, blocked = 0) if(isalien(target)) stun = 10 SECONDS . = ..() -/obj/item/projectile/bullet/cap +/obj/projectile/bullet/cap name = "cap" damage = 0 nodamage = 1 -/obj/item/projectile/bullet/cap/fire() +/obj/projectile/bullet/cap/fire() loc = null qdel(src) diff --git a/code/modules/projectiles/projectile/energy_projectiles.dm b/code/modules/projectiles/projectile/energy_projectiles.dm index a31bbc2c611..7e2371944c3 100644 --- a/code/modules/projectiles/projectile/energy_projectiles.dm +++ b/code/modules/projectiles/projectile/energy_projectiles.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/energy +/obj/projectile/energy name = "energy" icon_state = "spark" damage = 0 @@ -6,7 +6,7 @@ flag = "energy" reflectability = REFLECTABILITY_ENERGY -/obj/item/projectile/energy/electrode +/obj/projectile/energy/electrode name = "electrode" color = "#FFFF00" nodamage = 1 @@ -17,7 +17,7 @@ range = 7 //Damage will be handled on the MOB side, to prevent window shattering. -/obj/item/projectile/energy/electrode/on_hit(atom/target, blocked = 0) +/obj/projectile/energy/electrode/on_hit(atom/target, blocked = 0) . = ..() if(!ismob(target) || blocked >= 100) //Fully blocked by mob or collided with dense object - burst into sparks! do_sparks(1, 1, src) @@ -30,11 +30,11 @@ spawn(5) C.Jitter(jitter) -/obj/item/projectile/energy/electrode/on_range() //to ensure the bolt sparks when it reaches the end of its range if it didn't hit a target yet +/obj/projectile/energy/electrode/on_range() //to ensure the bolt sparks when it reaches the end of its range if it didn't hit a target yet do_sparks(1, 1, src) ..() -/obj/item/projectile/energy/declone +/obj/projectile/energy/declone name = "declone" icon_state = "declone" damage = 20 @@ -42,7 +42,7 @@ irradiate = 10 impact_effect_type = /obj/effect/temp_visual/impact_effect/green_laser -/obj/item/projectile/energy/bolt +/obj/projectile/energy/bolt name = "bolt" icon_state = "cbbolt" damage = 15 @@ -52,12 +52,12 @@ knockdown = 2 SECONDS slur = 10 SECONDS -/obj/item/projectile/energy/bolt/large +/obj/projectile/energy/bolt/large damage = 20 #define BSG_BASE_DAMAGE 90 -/obj/item/projectile/energy/bsg +/obj/projectile/energy/bsg name = "orb of pure bluespace energy" icon_state = "bluespace" impact_effect_type = /obj/effect/temp_visual/bsg_kaboom @@ -71,23 +71,23 @@ /obj/item/ammo_casing/energy/bsg/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") ..() - var/obj/item/projectile/energy/bsg/P = BB - addtimer(CALLBACK(P, TYPE_PROC_REF(/obj/item/projectile/energy/bsg, make_chain), P, user), 1) + var/obj/projectile/energy/bsg/P = BB + addtimer(CALLBACK(P, TYPE_PROC_REF(/obj/projectile/energy/bsg, make_chain), P, user), 1) -/obj/item/projectile/energy/bsg/proc/make_chain(obj/item/projectile/P, mob/user) +/obj/projectile/energy/bsg/proc/make_chain(obj/projectile/P, mob/user) P.chain = P.Beam(user, icon_state = "sm_arc_supercharged", icon = 'icons/effects/beam.dmi', time = 10 SECONDS, maxdistance = 30) -/obj/item/projectile/energy/bsg/on_hit(atom/target) +/obj/projectile/energy/bsg/on_hit(atom/target) . = ..() kaboom(target) qdel(src) -/obj/item/projectile/energy/bsg/on_range() +/obj/projectile/energy/bsg/on_range() kaboom() new /obj/effect/temp_visual/bsg_kaboom(loc) ..() -/obj/item/projectile/energy/bsg/proc/kaboom(atom/target) +/obj/projectile/energy/bsg/proc/kaboom(atom/target) // If a lens is modifying the damage of the projectile, the AOE should be impacted as well var/damage_multiplier = damage / BSG_BASE_DAMAGE playsound(src, 'sound/weapons/bsg_explode.ogg', 75, TRUE) @@ -122,12 +122,12 @@ #undef BSG_BASE_DAMAGE -/obj/item/projectile/energy/weak_plasma +/obj/projectile/energy/weak_plasma name = "plasma bolt" icon_state = "plasma_light" damage = 12.5 -/obj/item/projectile/homing/charged_plasma +/obj/projectile/homing/charged_plasma name = "charged plasma bolt" icon_state = "plasma_heavy" damage = 45 @@ -137,7 +137,7 @@ shield_buster = TRUE var/reached_target = FALSE -/obj/item/projectile/homing/charged_plasma/pixel_move(trajectory_multiplier) +/obj/projectile/homing/charged_plasma/pixel_move(trajectory_multiplier) homing_active = FALSE if(isturf(original)) return ..() //It gets weird if it is a turf. Turfs don't move anyway. @@ -155,13 +155,13 @@ #define ARC_REVOLVER_BASE_DAMAGE 10 -/obj/item/projectile/energy/arc_revolver +/obj/projectile/energy/arc_revolver name = "arc emitter" icon_state = "plasma_light" damage = ARC_REVOLVER_BASE_DAMAGE var/charge_number = null -/obj/item/projectile/energy/arc_revolver/on_hit(atom/target) +/obj/projectile/energy/arc_revolver/on_hit(atom/target) . = ..() for(var/obj/effect/E in target) if(istype(E, /obj/effect/abstract/arc_revolver)) diff --git a/code/modules/projectiles/projectile/force.dm b/code/modules/projectiles/projectile/force.dm index 919d65797b8..0102a0600f9 100644 --- a/code/modules/projectiles/projectile/force.dm +++ b/code/modules/projectiles/projectile/force.dm @@ -1,12 +1,12 @@ -/obj/item/projectile/forcebolt +/obj/projectile/forcebolt name = "force bolt" icon_state = "ice_1" damage = 20 flag = "energy" -/obj/item/projectile/forcebolt/strong +/obj/projectile/forcebolt/strong -/obj/item/projectile/forcebolt/on_hit(atom/movable/target, blocked = 0) +/obj/projectile/forcebolt/on_hit(atom/movable/target, blocked = 0) . = ..() if(istype(target) && blocked < 100) var/throwdir = get_dir(firer, target) diff --git a/code/modules/projectiles/projectile/homing_projectiles.dm b/code/modules/projectiles/projectile/homing_projectiles.dm index 45fab1fb5d6..671bae61416 100644 --- a/code/modules/projectiles/projectile/homing_projectiles.dm +++ b/code/modules/projectiles/projectile/homing_projectiles.dm @@ -1,8 +1,8 @@ -/obj/item/projectile/homing +/obj/projectile/homing name = "smart bullet" var/homing_active = TRUE -/obj/item/projectile/homing/pixel_move(trajectory_multiplier) +/obj/projectile/homing/pixel_move(trajectory_multiplier) . = ..() if(!homing_active) return @@ -21,7 +21,7 @@ var/angle = ATAN2(dy, dx) set_angle(angle) -/obj/item/projectile/homing/magic +/obj/projectile/homing/magic name = "bolt of nothing" icon_state = "energy" damage = 0 @@ -32,7 +32,7 @@ antimagic_flags = MAGIC_RESISTANCE antimagic_charge_cost = 1 -/obj/item/projectile/homing/magic/toolbox +/obj/projectile/homing/magic/toolbox name = "magic toolbox" icon = 'icons/obj/storage.dmi' icon_state = "toolbox_default" @@ -41,11 +41,11 @@ nodamage = FALSE damage_type = BRUTE -/obj/item/projectile/homing/magic/toolbox/on_range() +/obj/projectile/homing/magic/toolbox/on_range() . = ..() new /obj/item/storage/toolbox(get_turf(src)) -/obj/item/projectile/homing/magic/toolbox/on_hit(atom/target, blocked, hit_zone) +/obj/projectile/homing/magic/toolbox/on_hit(atom/target, blocked, hit_zone) . = ..() var/obj/item/storage/toolbox/T = new /obj/item/storage/toolbox(get_turf(src)) if(ishuman(target)) @@ -53,7 +53,7 @@ var/obj/item/organ/external/E = pick(H.bodyparts) E.add_embedded_object(T) -/obj/item/projectile/homing/magic/homing_fireball +/obj/projectile/homing/magic/homing_fireball name = "greater bolt of fireball" icon_state = "fireball" damage = 20 @@ -67,7 +67,7 @@ var/explosion_flash = 4 var/explosion_fire = 3 -/obj/item/projectile/homing/magic/homing_fireball/on_hit(mob/living/target) +/obj/projectile/homing/magic/homing_fireball/on_hit(mob/living/target) . = ..() if(ismob(target)) if(!.) diff --git a/code/modules/projectiles/projectile/magic_projectiles.dm b/code/modules/projectiles/projectile/magic_projectiles.dm index c8fba685cf9..ecb4bffdaf6 100644 --- a/code/modules/projectiles/projectile/magic_projectiles.dm +++ b/code/modules/projectiles/projectile/magic_projectiles.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/magic +/obj/projectile/magic name = "bolt of nothing" icon_state = "energy" damage = 0 @@ -9,7 +9,7 @@ antimagic_flags = MAGIC_RESISTANCE antimagic_charge_cost = 1 -/obj/item/projectile/magic/death +/obj/projectile/magic/death name = "bolt of death" icon_state = null hitscan = TRUE @@ -25,7 +25,7 @@ impact_light_range = 2.5 impact_light_color_override = LIGHT_COLOR_PURPLE -/obj/item/projectile/magic/death/on_hit(mob/living/carbon/target) +/obj/projectile/magic/death/on_hit(mob/living/carbon/target) . = ..() if(!.) return . @@ -43,7 +43,7 @@ target.visible_message("[target] topples backwards as the death bolt impacts [target.p_them()]!") -/obj/item/projectile/magic/fireball +/obj/projectile/magic/fireball name = "bolt of fireball" icon_state = "fireball" damage = 10 @@ -58,7 +58,7 @@ var/exp_flash = 3 var/exp_fire = 2 -/obj/item/projectile/magic/fireball/Range() +/obj/projectile/magic/fireball/Range() var/turf/T1 = get_step(src,turn(dir, -45)) var/turf/T2 = get_step(src,turn(dir, 45)) var/turf/T3 = get_step(src,dir) @@ -76,7 +76,7 @@ return ..() -/obj/item/projectile/magic/fireball/on_hit(target) +/obj/projectile/magic/fireball/on_hit(target) . = ..() if(ismob(target)) if(!.) @@ -87,18 +87,18 @@ M.adjustFireLoss(10) // between this 10 burn, the 10 brute, the explosion brute, and the onfire burn, your at about 65 damage if you stop drop and roll immediately -/obj/item/projectile/magic/fireball/infernal +/obj/projectile/magic/fireball/infernal name = "infernal fireball" exp_heavy = -1 exp_light = -1 exp_flash = 4 exp_fire= 5 -/obj/item/projectile/magic/resurrection +/obj/projectile/magic/resurrection name = "bolt of resurrection" icon_state = "ion" -/obj/item/projectile/magic/resurrection/on_hit(mob/living/carbon/target) +/obj/projectile/magic/resurrection/on_hit(mob/living/carbon/target) . = ..() if(!.) return . @@ -120,13 +120,13 @@ else to_chat(target, "You rise with a start, you're alive!!!") -/obj/item/projectile/magic/teleport +/obj/projectile/magic/teleport name = "bolt of teleportation" icon_state = "bluespace" var/inner_tele_radius = 0 var/outer_tele_radius = 6 -/obj/item/projectile/magic/teleport/on_hit(mob/target) +/obj/projectile/magic/teleport/on_hit(mob/target) . = ..() if(!.) return . @@ -142,13 +142,13 @@ smoke.set_up(max(round(10 - teleammount), 1), FALSE, stuff) //Smoke drops off if a lot of stuff is moved for the sake of sanity smoke.start() -/obj/item/projectile/magic/door +/obj/projectile/magic/door name = "bolt of door creation" var/list/door_types = list(/obj/structure/mineral_door/wood,/obj/structure/mineral_door/iron,/obj/structure/mineral_door/silver,\ /obj/structure/mineral_door/gold,/obj/structure/mineral_door/uranium,/obj/structure/mineral_door/sandstone,/obj/structure/mineral_door/transparent/plasma,\ /obj/structure/mineral_door/transparent/diamond) -/obj/item/projectile/magic/door/on_hit(atom/target) +/obj/projectile/magic/door/on_hit(atom/target) . = ..() var/atom/T = target.loc if(isturf(target) && target.density) @@ -162,30 +162,30 @@ else if(istype(target, /obj/structure/closet)) OpenCloset(target) -/obj/item/projectile/magic/door/proc/CreateDoor(turf/T) +/obj/projectile/magic/door/proc/CreateDoor(turf/T) var/door_type = pick(door_types) var/obj/structure/mineral_door/D = new door_type(T) T.ChangeTurf(/turf/simulated/floor/plasteel) D.operate() -/obj/item/projectile/magic/door/proc/OpenDoor(obj/machinery/door/D) +/obj/projectile/magic/door/proc/OpenDoor(obj/machinery/door/D) if(istype(D,/obj/machinery/door/airlock)) var/obj/machinery/door/airlock/A = D A.locked = FALSE D.open() -/obj/item/projectile/magic/door/proc/OpenCloset(obj/structure/closet/C) +/obj/projectile/magic/door/proc/OpenCloset(obj/structure/closet/C) if(istype(C, /obj/structure/closet/secure_closet)) var/obj/structure/closet/secure_closet/SC = C SC.locked = FALSE C.open() -/obj/item/projectile/magic/change +/obj/projectile/magic/change name = "bolt of change" icon_state = "ice_1" damage_type = BURN -/obj/item/projectile/magic/change/on_hit(atom/change) +/obj/projectile/magic/change/on_hit(atom/change) . = ..() if(!.) return . @@ -342,12 +342,12 @@ GLOBAL_LIST_INIT(wabbajack_docile_animals, list( qdel(M) return new_mob -/obj/item/projectile/magic/animate +/obj/projectile/magic/animate name = "bolt of animation" icon_state = "red_1" damage_type = BURN -/obj/item/projectile/magic/animate/Bump(atom/change) +/obj/projectile/magic/animate/Bump(atom/change) if(isitem(change) || isstructure(change) && !is_type_in_list(change, GLOB.protected_objects)) if(istype(change, /obj/structure/closet/statue)) for(var/mob/living/carbon/human/H in change.contents) @@ -377,7 +377,7 @@ GLOBAL_LIST_INIT(wabbajack_docile_animals, list( C.ChangeOwner(firer) return ..() -/obj/item/projectile/magic/slipping +/obj/projectile/magic/slipping name = "magical banana" icon = 'icons/obj/hydroponics/harvest.dmi' icon_state = "banana" @@ -385,11 +385,11 @@ GLOBAL_LIST_INIT(wabbajack_docile_animals, list( var/slip_weaken = 10 SECONDS hitsound = 'sound/items/bikehorn.ogg' -/obj/item/projectile/magic/slipping/New() +/obj/projectile/magic/slipping/New() ..() SpinAnimation() -/obj/item/projectile/magic/slipping/on_hit(atom/target, blocked = 0) +/obj/projectile/magic/slipping/on_hit(atom/target, blocked = 0) . = ..() if(!.) return . @@ -408,7 +408,7 @@ GLOBAL_LIST_INIT(wabbajack_docile_animals, list( L.Weaken(slip_weaken) L.Stun(slip_stun) -/obj/item/projectile/magic/arcane_barrage +/obj/projectile/magic/arcane_barrage name = "arcane bolt" icon_state = "arcane_barrage" damage = 20 diff --git a/code/modules/projectiles/projectile/reusable.dm b/code/modules/projectiles/projectile/reusable.dm index 60c5e828a1e..7a6b10d9440 100644 --- a/code/modules/projectiles/projectile/reusable.dm +++ b/code/modules/projectiles/projectile/reusable.dm @@ -1,31 +1,31 @@ -/obj/item/projectile/bullet/reusable +/obj/projectile/bullet/reusable name = "reusable bullet" desc = "How do you even reuse a bullet?" var/ammo_type = /obj/item/ammo_casing/caseless/ var/dropped = 0 impact_effect_type = null -/obj/item/projectile/bullet/reusable/on_hit(atom/target, blocked = 0) +/obj/projectile/bullet/reusable/on_hit(atom/target, blocked = 0) . = ..() handle_drop() -/obj/item/projectile/bullet/reusable/on_range() +/obj/projectile/bullet/reusable/on_range() handle_drop() ..() -/obj/item/projectile/bullet/reusable/proc/handle_drop() +/obj/projectile/bullet/reusable/proc/handle_drop() if(!dropped) new ammo_type(loc) dropped = 1 -/obj/item/projectile/bullet/reusable/magspear +/obj/projectile/bullet/reusable/magspear name = "magnetic spear" desc = "WHITE WHALE, HOLY GRAIL!" damage = 30 //takes 3 spears to kill a mega carp, one to kill a normal carp icon_state = "magspear" ammo_type = /obj/item/ammo_casing/caseless/magspear -/obj/item/projectile/bullet/reusable/foam_dart +/obj/projectile/bullet/reusable/foam_dart name = "foam dart" desc = "I hope you're wearing eye protection." damage = 0 // It's a damn toy. @@ -38,7 +38,7 @@ var/obj/item/pen/pen = null log_override = TRUE//it won't log even when there's a pen inside, but since the damage will be so low, I don't think there's any point in making it any more complex -/obj/item/projectile/bullet/reusable/foam_dart/handle_drop() +/obj/projectile/bullet/reusable/foam_dart/handle_drop() if(dropped) return dropped = 1 @@ -51,11 +51,11 @@ pen = null newdart.update_appearance(UPDATE_DESC|UPDATE_ICON_STATE) -/obj/item/projectile/bullet/reusable/foam_dart/Destroy() +/obj/projectile/bullet/reusable/foam_dart/Destroy() QDEL_NULL(pen) return ..() -/obj/item/projectile/bullet/reusable/foam_dart/riot +/obj/projectile/bullet/reusable/foam_dart/riot name = "riot foam dart" icon_state = "foamdart_riot" damage = 25 @@ -64,13 +64,13 @@ ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot log_override = FALSE -/obj/item/projectile/bullet/reusable/foam_dart/sniper +/obj/projectile/bullet/reusable/foam_dart/sniper name = "foam sniper dart" icon_state = "foamdartsniper" ammo_type = /obj/item/ammo_casing/caseless/foam_dart/sniper range = 30 -/obj/item/projectile/bullet/reusable/foam_dart/sniper/riot +/obj/projectile/bullet/reusable/foam_dart/sniper/riot name = "riot sniper foam dart" icon_state = "foamdartsniper_riot" damage = 100 diff --git a/code/modules/projectiles/projectile/special_projectiles.dm b/code/modules/projectiles/projectile/special_projectiles.dm index 45e42f80bc4..c51298c1574 100644 --- a/code/modules/projectiles/projectile/special_projectiles.dm +++ b/code/modules/projectiles/projectile/special_projectiles.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/ion +/obj/projectile/ion name = "ion bolt" icon_state = "ion" damage = 0 @@ -10,38 +10,38 @@ var/strong_emp = 1 var/weak_emp = 1 -/obj/item/projectile/ion/on_hit(atom/target, blocked = 0) +/obj/projectile/ion/on_hit(atom/target, blocked = 0) ..() empulse(target, strong_emp, weak_emp, TRUE, cause = "[type] fired by [key_name(firer)]") return TRUE -/obj/item/projectile/ion/weak +/obj/projectile/ion/weak strong_emp = -1 weak_emp = 0 -/obj/item/projectile/bullet/gyro +/obj/projectile/bullet/gyro name ="explosive bolt" icon_state= "bolter" damage = 50 alwayslog = TRUE -/obj/item/projectile/bullet/gyro/on_hit(atom/target, blocked = 0) +/obj/projectile/bullet/gyro/on_hit(atom/target, blocked = 0) ..() explosion(target, -1, 0, 2, cause = "[type] fired by [key_name(firer)]") return TRUE -/obj/item/projectile/bullet/a40mm +/obj/projectile/bullet/a40mm name ="40mm grenade" desc = "USE A WEEL GUN." icon_state= "bolter" alwayslog = TRUE -/obj/item/projectile/bullet/a40mm/on_hit(atom/target, blocked = 0) +/obj/projectile/bullet/a40mm/on_hit(atom/target, blocked = 0) ..() explosion(target, -1, 0, 2, 1, 0, flame_range = 3, cause = "[type] fired by [key_name(firer)]") return TRUE -/obj/item/projectile/temp +/obj/projectile/temp name = "temperature beam" icon_state = "temp_4" damage = 0 @@ -51,7 +51,7 @@ var/temperature = 300 pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE -/obj/item/projectile/temp/New(loc, shot_temp) +/obj/projectile/temp/New(loc, shot_temp) ..() if(!isnull(shot_temp)) temperature = shot_temp @@ -88,7 +88,7 @@ icon_state = "temp_4" -/obj/item/projectile/temp/on_hit(atom/target, blocked = 0)//These two could likely check temp protection on the mob +/obj/projectile/temp/on_hit(atom/target, blocked = 0)//These two could likely check temp protection on the mob ..() if(isliving(target)) var/mob/living/M = target @@ -99,14 +99,14 @@ playsound(M.loc, 'sound/effects/bamf.ogg', 50, 0) return 1 -/obj/item/projectile/meteor +/obj/projectile/meteor name = "meteor" icon = 'icons/obj/meteor.dmi' icon_state = "small" damage = 0 nodamage = 1 -/obj/item/projectile/meteor/Bump(atom/A) +/obj/projectile/meteor/Bump(atom/A) if(A == firer) loc = A.loc return @@ -116,14 +116,14 @@ shake_camera(M, 3, 1) qdel(src) -/obj/item/projectile/missile +/obj/projectile/missile icon = 'icons/obj/grenade.dmi' icon_state = "missile" damage = 50 ///If the missile will have a heavy, or light explosion. var/heavy = TRUE -/obj/item/projectile/missile/on_hit(atom/target, blocked, hit_zone) +/obj/projectile/missile/on_hit(atom/target, blocked, hit_zone) ..() if(heavy) explosion(target, 1, 2, 3, cause = "[type] fired by [key_name(firer)]") @@ -131,47 +131,47 @@ explosion(target, -1, 0, 2, cause = "[type] fired by [key_name(firer)]") return TRUE -/obj/item/projectile/missile/light +/obj/projectile/missile/light damage = 15 heavy = FALSE -/obj/item/projectile/energy/floramut +/obj/projectile/energy/floramut name = "alpha somatoray" icon_state = "energy" damage_type = TOX nodamage = TRUE impact_effect_type = /obj/effect/temp_visual/impact_effect/green_laser -/obj/item/projectile/energy/florayield +/obj/projectile/energy/florayield name = "beta somatoray" icon_state = "energy2" damage_type = TOX nodamage = TRUE impact_effect_type = /obj/effect/temp_visual/impact_effect/green_laser -/obj/item/projectile/energy/mindflayer +/obj/projectile/energy/mindflayer name = "flayer ray" -/obj/item/projectile/energy/mindflayer/on_hit(atom/target, blocked = 0) +/obj/projectile/energy/mindflayer/on_hit(atom/target, blocked = 0) . = ..() if(ishuman(target)) var/mob/living/carbon/human/M = target M.adjustBrainLoss(20) M.AdjustHallucinate(20 SECONDS) -/obj/item/projectile/clown +/obj/projectile/clown name = "snap-pop" icon = 'icons/obj/toy.dmi' icon_state = "snappop" -/obj/item/projectile/clown/Bump(atom/A as mob|obj|turf|area) +/obj/projectile/clown/Bump(atom/A as mob|obj|turf|area) do_sparks(3, 1, src) new /obj/effect/decal/cleanable/ash(loc) visible_message("[src] explodes!","You hear a snap!") playsound(src, 'sound/effects/snap.ogg', 50, 1) qdel(src) -/obj/item/projectile/beam/wormhole +/obj/projectile/beam/wormhole name = "wormhole beam" icon_state = "spark" hitsound = "sparks" @@ -180,16 +180,16 @@ color = "#33CCFF" nodamage = TRUE -/obj/item/projectile/beam/wormhole/orange +/obj/projectile/beam/wormhole/orange name = "orange wormhole beam" color = "#FF6600" -/obj/item/projectile/beam/wormhole/New(obj/item/ammo_casing/energy/wormhole/casing) +/obj/projectile/beam/wormhole/New(obj/item/ammo_casing/energy/wormhole/casing) ..() if(istype(casing)) gun = casing.gun -/obj/item/projectile/beam/wormhole/on_hit(atom/target) +/obj/projectile/beam/wormhole/on_hit(atom/target) if(ismob(target)) if(is_teleport_allowed(target.z)) var/turf/portal_destination = pick(orange(6, src)) @@ -199,30 +199,30 @@ qdel(src) gun.create_portal(src) -/obj/item/projectile/bullet/frag12 +/obj/projectile/bullet/frag12 name ="explosive slug" damage = 15 alwayslog = TRUE -/obj/item/projectile/bullet/frag12/on_hit(atom/target, blocked = 0) +/obj/projectile/bullet/frag12/on_hit(atom/target, blocked = 0) ..() explosion(target, -1, 0, 1, cause = "frag 12 fired by [key_name(firer)]") return TRUE -/obj/item/projectile/bullet/confetti +/obj/projectile/bullet/confetti name = "confetti shot" damage = 0 range = 3 -/obj/item/projectile/bullet/confetti/on_range() +/obj/projectile/bullet/confetti/on_range() confettisize(src, 7, 3) ..() -/obj/item/projectile/bullet/confetti/on_hit(atom/target, blocked, hit_zone) +/obj/projectile/bullet/confetti/on_hit(atom/target, blocked, hit_zone) confettisize(src, 7, 3) ..() -/obj/item/projectile/plasma +/obj/projectile/plasma name = "plasma blast" icon_state = "plasmacutter" damage = 5 @@ -243,14 +243,14 @@ impact_light_range = 2.5 impact_light_color_override = LIGHT_COLOR_CYAN -/obj/item/projectile/plasma/prehit(atom/target) +/obj/projectile/plasma/prehit(atom/target) . = ..() if(!lavaland_equipment_pressure_check(get_turf(target))) name = "weakened [name]" dismemberment = 0 sharp = FALSE -/obj/item/projectile/plasma/on_hit(atom/target) +/obj/projectile/plasma/on_hit(atom/target) . = ..() if(ismineralturf(target)) if(is_ancient_rock(target)) @@ -263,27 +263,27 @@ else forcedodge = 0 -/obj/item/projectile/plasma/adv +/obj/projectile/plasma/adv damage = 7 range = 5 -/obj/item/projectile/plasma/adv/mech +/obj/projectile/plasma/adv/mech damage = 10 range = 9 -/obj/item/projectile/energy/teleport +/obj/projectile/energy/teleport name = "teleportation burst" icon_state = "bluespace" nodamage = 1 alwayslog = TRUE var/obj/item/beacon/teleport_target -/obj/item/projectile/energy/teleport/New(loc, tele_target) +/obj/projectile/energy/teleport/New(loc, tele_target) ..(loc) if(tele_target) teleport_target = tele_target -/obj/item/projectile/energy/teleport/on_hit(atom/target, blocked = 0) +/obj/projectile/energy/teleport/on_hit(atom/target, blocked = 0) var/turf/target_turf = get_turf(teleport_target) if(isliving(target)) if(istype(target_turf) && (target_turf.z == target.z || teleport_target.emagged)) @@ -293,13 +293,13 @@ add_attack_logs(firer, target, "Shot with a [type] [teleport_target ? "(Destination: [teleport_target])" : ""]") return ..() -/obj/item/projectile/energy/demonic_grappler +/obj/projectile/energy/demonic_grappler name = "demonic grappler" icon_state = "bluespace" nodamage = 1 pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE -/obj/item/projectile/energy/demonic_grappler/on_hit(atom/target, blocked = 0) +/obj/projectile/energy/demonic_grappler/on_hit(atom/target, blocked = 0) if(isliving(target)) var/turf/source_turf = get_turf(firer) do_teleport(target, source_turf) @@ -308,31 +308,31 @@ do_teleport(firer, miss_turf) return ..() -/obj/item/projectile/snowball +/obj/projectile/snowball name = "snowball" icon_state = "snowball" hitsound = 'sound/items/dodgeball.ogg' damage = 4 damage_type = BURN -/obj/item/projectile/snowball/on_hit(atom/target) //chilling +/obj/projectile/snowball/on_hit(atom/target) //chilling . = ..() if(isliving(target)) var/mob/living/M = target M.bodytemperature = max(0, M.bodytemperature - 50) //each hit will drop your body temp, so don't get surrounded! M.ExtinguishMob() //bright side, they counter being on fire! -/obj/item/projectile/ornament +/obj/projectile/ornament name = "ornament" icon_state = "ornament-1" hitsound = 'sound/effects/glasshit.ogg' damage = 7 -/obj/item/projectile/ornament/New() +/obj/projectile/ornament/New() icon_state = pick("ornament-1", "ornament-2") ..() -/obj/item/projectile/ornament/on_hit(atom/target) //knockback +/obj/projectile/ornament/on_hit(atom/target) //knockback ..() if(isturf(target)) return 0 @@ -341,7 +341,7 @@ T.throw_at(get_edge_target_turf(target, throwdir),10,10) return 1 -/obj/item/projectile/mimic +/obj/projectile/mimic name = "googly-eyed gun" hitsound = 'sound/weapons/genhit1.ogg' damage = 0 @@ -350,7 +350,7 @@ flag = "melee" var/obj/item/gun/stored_gun -/obj/item/projectile/mimic/New(loc, mimic_type) +/obj/projectile/mimic/New(loc, mimic_type) ..(loc) if(mimic_type) stored_gun = new mimic_type(src) @@ -359,7 +359,7 @@ overlays = stored_gun.overlays SpinAnimation(20, -1) -/obj/item/projectile/mimic/on_hit(atom/target) +/obj/projectile/mimic/on_hit(atom/target) ..() var/turf/T = get_turf(src) var/obj/item/gun/G = stored_gun diff --git a/code/modules/projectiles/projectile/spit.dm b/code/modules/projectiles/projectile/spit.dm index e61049179a2..b1f038224b9 100644 --- a/code/modules/projectiles/projectile/spit.dm +++ b/code/modules/projectiles/projectile/spit.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/neurotox +/obj/projectile/neurotox name = "neurotoxin" damage = 30 icon_state = "toxin" diff --git a/code/modules/projectiles/projectile_base.dm b/code/modules/projectiles/projectile_base.dm index f43567df7f3..181876eba44 100644 --- a/code/modules/projectiles/projectile_base.dm +++ b/code/modules/projectiles/projectile_base.dm @@ -3,7 +3,7 @@ /// How many pixels to move the muzzle flash up so your character doesn't look like they're shitting out lasers. #define MUZZLE_EFFECT_PIXEL_INCREMENT 17 -/obj/item/projectile +/obj/projectile name = "projectile" icon = 'icons/obj/projectiles.dmi' icon_state = "bullet" @@ -11,7 +11,15 @@ anchored = TRUE //There's a reason this is here, Mport. God fucking damn it -Agouri. Find&Fix by Pete. The reason this is here is to stop the curving of emitter shots. flags = ABSTRACT mouse_opacity = MOUSE_OPACITY_TRANSPARENT - hitsound = 'sound/weapons/pierce.ogg' + blocks_emissive = EMISSIVE_BLOCK_GENERIC + pass_flags = PASSTABLE + animate_movement = NO_STEPS + /// Flat armor reduction, occurs after percentage armor penetration. + var/armor_penetration_flat + /// Percentage armor reduction, happens before flat armor reduction. + var/armor_penetration_percentage + /// Hit sound to play when we hit something + var/hitsound = 'sound/weapons/pierce.ogg' var/hitsound_wall = "" var/def_zone = "" //Aiming at var/mob/firer = null//Who shot it @@ -31,7 +39,6 @@ var/Angle = null var/original_angle = null //Angle at firing var/spread = 0 //amount (in degrees) of projectile spread - animate_movement = NO_STEPS var/ignore_source_check = FALSE @@ -41,7 +48,7 @@ var/damage_type = BRUTE //BRUTE, BURN, TOX, OXY, CLONE are the only things that should be in here var/nodamage = FALSE //Determines if the projectile will skip any damage inflictions var/flag = BULLET //Defines what armor to use when it hits things. Must be set to bullet, laser, energy,or bomb //Cael - bio and rad are also valid - var/projectile_type = "/obj/item/projectile" + var/projectile_type = "/obj/projectile" var/range = 50 //This will de-increment every step. When 0, it will delete the projectile. /// Determines the reflectability level of a projectile, either REFLECTABILITY_NEVER, REFLECTABILITY_PHYSICAL, REFLECTABILITY_ENERGY in order of ease to reflect. var/reflectability = REFLECTABILITY_PHYSICAL @@ -138,17 +145,17 @@ /// determines the drain cost on the antimagic item var/antimagic_charge_cost -/obj/item/projectile/New() +/obj/projectile/New() return ..() -/obj/item/projectile/Initialize(mapload) +/obj/projectile/Initialize(mapload) . = ..() var/static/list/loc_connections = list( COMSIG_ATOM_ENTERED = PROC_REF(on_atom_entered) ) AddElement(/datum/element/connect_loc, loc_connections) -/obj/item/projectile/proc/Range() +/obj/projectile/proc/Range() range-- if(damage && tile_dropoff) damage = max(0, damage - tile_dropoff) // decrement projectile damage based on dropoff value for each tile it moves @@ -159,10 +166,10 @@ if(!damage && !stamina && (tile_dropoff || tile_dropoff_s)) 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 qdel(src) -/obj/item/projectile/proc/prehit(atom/target) +/obj/projectile/proc/prehit(atom/target) if(isliving(target)) var/mob/living/victim = target if(victim.can_block_magic(antimagic_flags, antimagic_charge_cost)) @@ -172,7 +179,7 @@ return FALSE return TRUE -/obj/item/projectile/proc/on_hit(atom/target, blocked = 0, hit_zone) +/obj/projectile/proc/on_hit(atom/target, blocked = 0, hit_zone) var/turf/target_loca = get_turf(target) var/hitx var/hity @@ -263,7 +270,7 @@ return were_affects_applied -/obj/item/projectile/proc/get_splatter_blockage(turf/step_over, atom/target, splatter_dir, target_loca) //Check whether the place we want to splatter blood is blocked (i.e. by windows). +/obj/projectile/proc/get_splatter_blockage(turf/step_over, atom/target, splatter_dir, target_loca) //Check whether the place we want to splatter blood is blocked (i.e. by windows). var/turf/step_cardinal = !(splatter_dir in list(NORTH, SOUTH, EAST, WEST)) ? get_step(target_loca, get_cardinal_dir(target_loca, step_over)) : null if(step_over.density && !step_over.CanPass(target, step_over, 1)) //Preliminary simple check. @@ -272,18 +279,18 @@ if(border_obstacle.flags&ON_BORDER && get_dir(step_cardinal ? step_cardinal : target_loca, step_over) == turn(border_obstacle.dir, 180)) return TRUE -/obj/item/projectile/proc/vol_by_damage() +/obj/projectile/proc/vol_by_damage() if(damage) return clamp((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/store_hitscan_collision(datum/point_precise/point_cache) +/obj/projectile/proc/store_hitscan_collision(datum/point_precise/point_cache) beam_segments[beam_index] = point_cache beam_index = point_cache beam_segments[beam_index] = null -/obj/item/projectile/Bump(atom/A) +/obj/projectile/Bump(atom/A) if(check_ricochet(A) && check_ricochet_flag(A) && ricochets < ricochets_max && is_reflectable(REFLECTABILITY_PHYSICAL)) if(hitscan && ricochets_max > 10) ricochets_max = 10 //I do not want a chucklefuck editing this higher, sorry. @@ -341,10 +348,10 @@ picked_mob.bullet_act(src, def_zone) qdel(src) -/obj/item/projectile/Process_Spacemove(movement_dir = 0, continuous_move = FALSE) +/obj/projectile/Process_Spacemove(movement_dir = 0, continuous_move = FALSE) return 1 //Bullets don't drift in space -/obj/item/projectile/process() +/obj/projectile/process() if(!loc || !trajectory) return PROCESS_KILL if(paused || !isturf(loc)) @@ -364,7 +371,7 @@ for(var/i in 1 to required_moves) pixel_move(1) -/obj/item/projectile/proc/pixel_move(trajectory_multiplier, hitscanning = FALSE) +/obj/projectile/proc/pixel_move(trajectory_multiplier, hitscanning = FALSE) if(!loc || !trajectory) return last_projectile_move = world.time @@ -408,7 +415,7 @@ animate(src, pixel_x = trajectory.return_px(), pixel_y = trajectory.return_py(), time = 1, flags = ANIMATION_END_NOW) Range() -/obj/item/projectile/proc/fire(setAngle) +/obj/projectile/proc/fire(setAngle) if(setAngle) Angle = setAngle if(!current || loc == current) @@ -431,7 +438,7 @@ START_PROCESSING(SSprojectiles, src) pixel_move(1, FALSE) -/obj/item/projectile/proc/reflect_back(atom/source, list/position_modifiers = list(0, 0, 0, 0, 0, -1, 1, -2, 2)) +/obj/projectile/proc/reflect_back(atom/source, list/position_modifiers = list(0, 0, 0, 0, 0, -1, 1, -2, 2)) if(!starting) return var/new_x = starting.x + pick(position_modifiers) @@ -452,14 +459,14 @@ set_angle(get_angle(curloc, original)) /// A mob moving on a tile with a projectile is hit by it. -/obj/item/projectile/proc/on_atom_entered(datum/source, atom/movable/entered) +/obj/projectile/proc/on_atom_entered(datum/source, atom/movable/entered) if(!isliving(entered)) return var/mob/living_entered = entered if(((living_entered.density || !living_entered.projectile_hit_check(src))) && !checkpass(PASSMOB) && !(living_entered in permutated) && (living_entered.loc == loc)) Bump(entered, 1) -/obj/item/projectile/Destroy() +/obj/projectile/Destroy() if(hitscan) finalize_hitscan_and_generate_tracers() STOP_PROCESSING(SSprojectiles, src) @@ -468,12 +475,12 @@ firer = null return ..() -/obj/item/projectile/proc/dumbfire(dir) +/obj/projectile/proc/dumbfire(dir) current = get_ranged_target_turf(src, dir, world.maxx) //world.maxx is the range. Not sure how to handle this better. fire() -/obj/item/projectile/proc/on_ricochet(atom/A) +/obj/projectile/proc/on_ricochet(atom/A) if(!ricochet_auto_aim_angle || !ricochet_auto_aim_range) return @@ -490,12 +497,12 @@ if(unlucky_sob) set_angle(get_angle(src, unlucky_sob.loc)) -/obj/item/projectile/proc/check_ricochet() +/obj/projectile/proc/check_ricochet() if(prob(ricochet_chance)) return TRUE return FALSE -/obj/item/projectile/proc/check_ricochet_flag(atom/A) +/obj/projectile/proc/check_ricochet_flag(atom/A) if((flag in list(ENERGY, LASER)) && (A.flags_ricochet & RICOCHET_SHINY)) return TRUE @@ -504,7 +511,7 @@ return FALSE -/obj/item/projectile/set_angle(new_angle) +/obj/projectile/set_angle(new_angle) ..() Angle = new_angle @@ -517,7 +524,7 @@ store_hitscan_collision(point_cache) return TRUE -/obj/item/projectile/proc/set_angle_centered(new_angle) +/obj/projectile/proc/set_angle_centered(new_angle) set_angle(new_angle) var/list/coordinates = trajectory.return_coordinates() trajectory.set_location(coordinates[1], coordinates[2], coordinates[3]) // Sets the trajectory to the center of the tile it bounced at @@ -528,10 +535,10 @@ store_hitscan_collision(point_cache) return TRUE -/obj/item/projectile/experience_pressure_difference() +/obj/projectile/experience_pressure_difference() return // Immune to gas flow. -/obj/item/projectile/forceMove(atom/target) +/obj/projectile/forceMove(atom/target) . = ..() if(QDELETED(src)) // we coulda bumped something return @@ -542,20 +549,20 @@ if(hitscan) record_hitscan_start(RETURN_PRECISE_POINT(src)) -/obj/item/projectile/proc/is_reflectable(desired_reflectability_level) +/obj/projectile/proc/is_reflectable(desired_reflectability_level) if(reflectability == REFLECTABILITY_NEVER) //You'd trust coders not to try and override never reflectable things, but heaven help us I do not return FALSE if(reflectability < desired_reflectability_level) return FALSE return TRUE -/obj/item/projectile/proc/record_hitscan_start(datum/point_precise/point_cache) +/obj/projectile/proc/record_hitscan_start(datum/point_precise/point_cache) if(point_cache) beam_segments = list() beam_index = point_cache beam_segments[beam_index] = null //record start. -/obj/item/projectile/proc/process_hitscan() +/obj/projectile/proc/process_hitscan() //Safety here is to make hitscan stop if something goes wrong. Why is it equal to range * 10, when range is the maximum amount of tiles it can go? No clue. var/safety = range * 10 record_hitscan_start(RETURN_POINT_VECTOR_INCREMENT(src, Angle, MUZZLE_EFFECT_PIXEL_INCREMENT, 1)) @@ -571,13 +578,13 @@ return //Kill! pixel_move(1, TRUE) -/obj/item/projectile/proc/finalize_hitscan_and_generate_tracers(impacting = TRUE) +/obj/projectile/proc/finalize_hitscan_and_generate_tracers(impacting = TRUE) if(trajectory && beam_index) var/datum/point_precise/point_cache = trajectory.copy_to() beam_segments[beam_index] = point_cache generate_hitscan_tracers(null, hitscan_duration, impacting) -/obj/item/projectile/proc/generate_hitscan_tracers(cleanup = TRUE, duration = 3, impacting = TRUE) +/obj/projectile/proc/generate_hitscan_tracers(cleanup = TRUE, duration = 3, impacting = TRUE) if(!length(beam_segments)) return if(tracer_type) @@ -607,7 +614,7 @@ if(cleanup) cleanup_beam_segments() -/obj/item/projectile/proc/cleanup_beam_segments() +/obj/projectile/proc/cleanup_beam_segments() QDEL_LIST_ASSOC(beam_segments) /** @@ -618,7 +625,7 @@ * This is NOT used for pacifist checks, that's handled by [/obj/item/ammo_casing/var/harmful] * This is used in places such as AI responses to determine if they're being threatened or not (among other places) */ -/obj/item/projectile/proc/is_hostile_projectile() +/obj/projectile/proc/is_hostile_projectile() if(damage > 0 || stamina > 0) return TRUE @@ -633,7 +640,7 @@ playsound(src, sound, vol = 100, vary = TRUE) var/turf/startloc = get_turf(src) - var/obj/item/projectile/bullet = new projectile_type(startloc) + var/obj/projectile/bullet = new projectile_type(startloc) bullet.starting = startloc bullet.firer = firer || src bullet.firer_source_atom = src diff --git a/code/modules/reagents/chemistry/reagents/drugs.dm b/code/modules/reagents/chemistry/reagents/drugs.dm index 9c5ac733b23..3fba1d49534 100644 --- a/code/modules/reagents/chemistry/reagents/drugs.dm +++ b/code/modules/reagents/chemistry/reagents/drugs.dm @@ -977,7 +977,7 @@ new /obj/effect/temp_visual/decoy/mephedrone_afterimage(old_loc, L, overdosed ? 1.25 SECONDS : 0.75 SECONDS) /// Tries to dodge incoming bullets if we aren't disabled for any reasons -/datum/reagent/mephedrone/proc/dodge_bullets(mob/living/carbon/human/source, obj/item/projectile/hitting_projectile) +/datum/reagent/mephedrone/proc/dodge_bullets(mob/living/carbon/human/source, obj/projectile/hitting_projectile) SIGNAL_HANDLER if(HAS_TRAIT(source, TRAIT_IMMOBILIZED)) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 66e7bed40dd..8ff3fca7806 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -9,7 +9,7 @@ volume = 15 var/busy = FALSE var/mode = SYRINGE_DRAW - var/projectile_type = /obj/item/projectile/bullet/dart/syringe + var/projectile_type = /obj/projectile/bullet/dart/syringe materials = list(MAT_METAL=10, MAT_GLASS=20) container_type = TRANSPARENT ///If this variable is true, the syringe will work through hardsuits / modsuits / biosuits. diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 9766fc9411f..961ee5ab94c 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -126,7 +126,7 @@ QDEL_NULL(rig) return ..() -/obj/structure/reagent_dispensers/fueltank/bullet_act(obj/item/projectile/P) +/obj/structure/reagent_dispensers/fueltank/bullet_act(obj/projectile/P) var/will_explode = !QDELETED(src) && !P.nodamage && (P.damage_type == BURN || P.damage_type == BRUTE) if(will_explode) // Log here while you have the information needed diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm index 7ad147bc507..62a50c14a8d 100644 --- a/code/modules/research/xenobiology/xenobiology.dm +++ b/code/modules/research/xenobiology/xenobiology.dm @@ -600,7 +600,7 @@ H.LoseTarget() stopped_atoms |= M else if(isprojectile(A)) - var/obj/item/projectile/P = A + var/obj/projectile/P = A P.paused = TRUE stopped_atoms |= P @@ -614,7 +614,7 @@ for(var/mob/living/M in stopped_atoms) unfreeze_mob(M) - for(var/obj/item/projectile/P in stopped_atoms) + for(var/obj/projectile/P in stopped_atoms) P.paused = FALSE qdel(src) return diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm index a0c044a0643..4e28c8337a8 100644 --- a/code/modules/surgery/organs/augments_arms.dm +++ b/code/modules/surgery/organs/augments_arms.dm @@ -892,8 +892,8 @@ addtimer(CALLBACK(src, TYPE_PROC_REF(/atom, set_light), 0), 0.25 SECONDS) if(isprojectile(hitby)) - var/obj/item/projectile/P = hitby - if(P.shield_buster || istype(P, /obj/item/projectile/ion)) //EMP's and unpariable attacks, after all. + var/obj/projectile/P = hitby + if(P.shield_buster || istype(P, /obj/projectile/ion)) //EMP's and unpariable attacks, after all. return FALSE if(P.reflectability == REFLECTABILITY_NEVER) //only 1 magic spell does this, but hey, needed owner.visible_message("[owner] blocks [attack_text] with [src]!") diff --git a/code/modules/vehicle/vehicle.dm b/code/modules/vehicle/vehicle.dm index 5e914e6a0d9..4dd0a685206 100644 --- a/code/modules/vehicle/vehicle.dm +++ b/code/modules/vehicle/vehicle.dm @@ -163,7 +163,7 @@ ..() handle_vehicle_offsets() -/obj/vehicle/bullet_act(obj/item/projectile/Proj) +/obj/vehicle/bullet_act(obj/projectile/Proj) if(!has_buckled_mobs()) return ..() for(var/m in buckled_mobs)