diff --git a/_maps/RandomRuins/SpaceRuins/hilbertshoteltestingsite.dmm b/_maps/RandomRuins/SpaceRuins/hilbertshoteltestingsite.dmm index f55b570b89c..c9c50ff1428 100644 --- a/_maps/RandomRuins/SpaceRuins/hilbertshoteltestingsite.dmm +++ b/_maps/RandomRuins/SpaceRuins/hilbertshoteltestingsite.dmm @@ -14,9 +14,9 @@ "e" = ( /obj/machinery/porta_turret/syndicate{ desc = "A ballistic machine gun auto-turret that fires bluespace bullets."; - lethal_projectile = /obj/item/projectile/magic/teleport; + lethal_projectile = /obj/projectile/magic/teleport; name = "displacement turret"; - stun_projectile = /obj/item/projectile/magic/teleport + stun_projectile = /obj/projectile/magic/teleport }, /turf/open/floor/plasteel/grimy{ icon_state = "engine" diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm index 85dddcf174e..b4145ce3dee 100644 --- a/code/__DEFINES/components.dm +++ b/code/__DEFINES/components.dm @@ -80,7 +80,7 @@ #define COMSIG_ATOM_EX_ACT "atom_ex_act" //from base of atom/ex_act(): (severity, target) #define COMSIG_ATOM_EMP_ACT "atom_emp_act" //from base of atom/emp_act(): (severity) #define COMSIG_ATOM_FIRE_ACT "atom_fire_act" //from base of atom/fire_act(): (exposed_temperature, exposed_volume) -#define COMSIG_ATOM_BULLET_ACT "atom_bullet_act" //from base of atom/bullet_act(): (/obj/item/projectile, def_zone) +#define COMSIG_ATOM_BULLET_ACT "atom_bullet_act" //from base of atom/bullet_act(): (/obj/projectile, def_zone) #define COMSIG_ATOM_BLOB_ACT "atom_blob_act" //from base of atom/blob_act(): (/obj/structure/blob) #define COMSIG_ATOM_ACID_ACT "atom_acid_act" //from base of atom/acid_act(): (acidpwr, acid_volume) #define COMSIG_ATOM_EMAG_ACT "atom_emag_act" //from base of atom/emag_act(): (/mob/user) @@ -286,9 +286,9 @@ // /obj/item/pen signals #define COMSIG_PEN_ROTATED "pen_rotated" //called after rotation in /obj/item/pen/attack_self(): (rotation, mob/living/carbon/user) -// /obj/item/projectile signals (sent to the firer) -#define COMSIG_PROJECTILE_ON_HIT "projectile_on_hit" // from base of /obj/item/projectile/proc/on_hit(): (atom/movable/firer, atom/target, Angle) -#define COMSIG_PROJECTILE_BEFORE_FIRE "projectile_before_fire" // from base of /obj/item/projectile/proc/fire(): (obj/item/projectile, atom/original_target) +// /obj/projectile signals (sent to the firer) +#define COMSIG_PROJECTILE_ON_HIT "projectile_on_hit" // from base of /obj/projectile/proc/on_hit(): (atom/movable/firer, atom/target, Angle) +#define COMSIG_PROJECTILE_BEFORE_FIRE "projectile_before_fire" // from base of /obj/projectile/proc/fire(): (obj/projectile, atom/original_target) #define COMSIG_PROJECTILE_PREHIT "com_proj_prehit" // sent to targets during the process_hit proc of projectiles // /obj/mecha signals diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index ce8947d1415..d963d563ef3 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -231,7 +231,7 @@ GLOBAL_LIST_INIT(pointed_types, typecacheof(list( #define isbodypart(A) (istype(A, /obj/item/bodypart)) -#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.dm b/code/__HELPERS/radiation.dm index e082be7d1fc..042f2013638 100644 --- a/code/__HELPERS/radiation.dm +++ b/code/__HELPERS/radiation.dm @@ -8,7 +8,7 @@ /obj/effect, /obj/docking_port, /atom/movable/lighting_object, - /obj/item/projectile, + /obj/projectile, )) var/list/processing_list = list(location) . = list() diff --git a/code/controllers/subsystem/processing/projectiles.dm b/code/controllers/subsystem/processing/projectiles.dm index b0930d3d071..479298e4bbd 100644 --- a/code/controllers/subsystem/processing/projectiles.dm +++ b/code/controllers/subsystem/processing/projectiles.dm @@ -10,7 +10,7 @@ PROCESSING_SUBSYSTEM_DEF(projectiles) /datum/controller/subsystem/processing/projectiles/proc/set_pixel_speed(new_speed) global_pixel_speed = new_speed for(var/i in processing) - var/obj/item/projectile/P = i + var/obj/projectile/P = i if(istype(P)) //there's non projectiles on this too. P.set_pixel_speed(new_speed) diff --git a/code/datums/components/chasm.dm b/code/datums/components/chasm.dm index 8bba40e8c78..784d677b746 100644 --- a/code/datums/components/chasm.dm +++ b/code/datums/components/chasm.dm @@ -10,7 +10,7 @@ /obj/docking_port, /obj/structure/lattice, /obj/structure/stone_tile, - /obj/item/projectile, + /obj/projectile, /obj/effect/projectile, /obj/effect/portal, /obj/effect/abstract, diff --git a/code/datums/components/fantasy/suffixes.dm b/code/datums/components/fantasy/suffixes.dm index d63806768d8..0dd37edb6f4 100644 --- a/code/datums/components/fantasy/suffixes.dm +++ b/code/datums/components/fantasy/suffixes.dm @@ -124,23 +124,23 @@ /datum/fantasy_affix/shrapnel/apply(datum/component/fantasy/comp, newName) . = ..() // higher means more likely - var/list/weighted_projectile_types = list(/obj/item/projectile/meteor = 1, - /obj/item/projectile/energy/nuclear_particle = 1, - /obj/item/projectile/beam/pulse = 1, - /obj/item/projectile/bullet/honker = 15, - /obj/item/projectile/temp = 15, - /obj/item/projectile/ion = 15, - /obj/item/projectile/magic/door = 15, - /obj/item/projectile/magic/locker = 15, - /obj/item/projectile/magic/fetch = 15, - /obj/item/projectile/beam/emitter = 15, - /obj/item/projectile/magic/flying = 15, - /obj/item/projectile/energy/net = 15, - /obj/item/projectile/bullet/incendiary/c9mm = 15, - /obj/item/projectile/temp/hot = 15, - /obj/item/projectile/beam/disabler = 15) + var/list/weighted_projectile_types = list(/obj/projectile/meteor = 1, + /obj/projectile/energy/nuclear_particle = 1, + /obj/projectile/beam/pulse = 1, + /obj/projectile/bullet/honker = 15, + /obj/projectile/temp = 15, + /obj/projectile/ion = 15, + /obj/projectile/magic/door = 15, + /obj/projectile/magic/locker = 15, + /obj/projectile/magic/fetch = 15, + /obj/projectile/beam/emitter = 15, + /obj/projectile/magic/flying = 15, + /obj/projectile/energy/net = 15, + /obj/projectile/bullet/incendiary/c9mm = 15, + /obj/projectile/temp/hot = 15, + /obj/projectile/beam/disabler = 15) - var/obj/item/projectile/picked_projectiletype = pickweight(weighted_projectile_types) + var/obj/projectile/picked_projectiletype = pickweight(weighted_projectile_types) var/obj/item/master = comp.parent comp.appliedComponents += master.AddComponent(/datum/component/shrapnel, picked_projectiletype) diff --git a/code/datums/components/shrapnel.dm b/code/datums/components/shrapnel.dm index 1b09fd5f77a..bff4a8b35c9 100644 --- a/code/datums/components/shrapnel.dm +++ b/code/datums/components/shrapnel.dm @@ -26,7 +26,7 @@ return var/turf/target_turf = get_turf(target) for(var/turf/shootat_turf in RANGE_TURFS(radius, target) - RANGE_TURFS(radius-1, target)) - var/obj/item/projectile/P = new projectile_type(target_turf) + var/obj/projectile/P = new projectile_type(target_turf) //Shooting Code: P.range = radius+1 diff --git a/code/datums/components/squeak.dm b/code/datums/components/squeak.dm index 1fc996710cb..1482a26305f 100644 --- a/code/datums/components/squeak.dm +++ b/code/datums/components/squeak.dm @@ -59,8 +59,8 @@ var/obj/item/I = AM if(I.item_flags & ABSTRACT) return - else if(istype(AM, /obj/item/projectile)) - var/obj/item/projectile/P = AM + else if(istype(AM, /obj/projectile)) + var/obj/projectile/P = AM if(P.original != parent) return if(istype(AM, /obj/effect/dummy/phased_mob)) //don't squeek if they're in a phased/jaunting container. diff --git a/code/datums/martial/_martial.dm b/code/datums/martial/_martial.dm index d1d702cd864..0253ecf8a4a 100644 --- a/code/datums/martial/_martial.dm +++ b/code/datums/martial/_martial.dm @@ -72,5 +72,5 @@ return ///Gets called when a projectile hits the owner. Returning anything other than BULLET_ACT_HIT will stop the projectile from hitting the mob. -/datum/martial_art/proc/on_projectile_hit(mob/living/carbon/human/A, obj/item/projectile/P, def_zone) +/datum/martial_art/proc/on_projectile_hit(mob/living/carbon/human/A, obj/projectile/P, def_zone) return BULLET_ACT_HIT diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm index b3dfc7aee23..27d031b6542 100644 --- a/code/datums/martial/sleeping_carp.dm +++ b/code/datums/martial/sleeping_carp.dm @@ -151,7 +151,7 @@ return TRUE return ..() -/datum/martial_art/the_sleeping_carp/on_projectile_hit(mob/living/carbon/human/A, obj/item/projectile/P, def_zone) +/datum/martial_art/the_sleeping_carp/on_projectile_hit(mob/living/carbon/human/A, obj/projectile/P, def_zone) . = ..() if(A.incapacitated(FALSE, TRUE)) //NO STUN return BULLET_ACT_HIT diff --git a/code/datums/mutations/actions.dm b/code/datums/mutations/actions.dm index e1efc42ffd4..6e521d4f699 100644 --- a/code/datums/mutations/actions.dm +++ b/code/datums/mutations/actions.dm @@ -120,7 +120,7 @@ charge_max = 600 clothes_req = FALSE range = 20 - projectile_type = /obj/item/projectile/magic/aoe/fireball/firebreath + projectile_type = /obj/projectile/magic/aoe/fireball/firebreath base_icon_state = "fireball" action_icon_state = "fireball0" sound = 'sound/magic/demon_dies.ogg' //horrifying lizard noises @@ -138,10 +138,10 @@ to_chat(C,"Something in front of your mouth caught fire!") return FALSE -/obj/effect/proc_holder/spell/aimed/firebreath/ready_projectile(obj/item/projectile/P, atom/target, mob/user, iteration) - if(!istype(P, /obj/item/projectile/magic/aoe/fireball)) +/obj/effect/proc_holder/spell/aimed/firebreath/ready_projectile(obj/projectile/P, atom/target, mob/user, iteration) + if(!istype(P, /obj/projectile/magic/aoe/fireball)) return - var/obj/item/projectile/magic/aoe/fireball/F = P + var/obj/projectile/magic/aoe/fireball/F = P switch(strength) if(1 to 3) F.exp_light = strength-1 @@ -149,7 +149,7 @@ F.exp_heavy = strength-3 F.exp_fire += strength -/obj/item/projectile/magic/aoe/fireball/firebreath +/obj/projectile/magic/aoe/fireball/firebreath name = "fire breath" exp_heavy = 0 exp_light = 0 diff --git a/code/datums/mutations/cold.dm b/code/datums/mutations/cold.dm index cd10c2b38f7..1dd531490ac 100644 --- a/code/datums/mutations/cold.dm +++ b/code/datums/mutations/cold.dm @@ -34,7 +34,7 @@ cooldown_min = 150 clothes_req = FALSE range = 3 - projectile_type = /obj/item/projectile/temp/cryo + projectile_type = /obj/projectile/temp/cryo base_icon_state = "icebeam" action_icon_state = "icebeam" active_msg = "You focus your cryokinesis!" diff --git a/code/datums/mutations/sight.dm b/code/datums/mutations/sight.dm index ddbca67664f..e8aab3cc67c 100644 --- a/code/datums/mutations/sight.dm +++ b/code/datums/mutations/sight.dm @@ -103,7 +103,7 @@ return to_chat(source, "You shoot with your laser eyes!") source.changeNext_move(CLICK_CD_RANGE) - var/obj/item/projectile/beam/laser_eyes/LE = new(source.loc) + var/obj/projectile/beam/laser_eyes/LE = new(source.loc) LE.firer = source LE.def_zone = ran_zone(source.zone_selected) LE.preparePixelProjectile(target, source, mouseparams) @@ -111,7 +111,7 @@ playsound(source, 'sound/weapons/taser2.ogg', 75, TRUE) ///Projectile type used by laser eyes -/obj/item/projectile/beam/laser_eyes +/obj/projectile/beam/laser_eyes name = "beam" icon = 'icons/effects/genetics.dmi' icon_state = "eyelasers" diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 9e5fcb1fc98..80fa875c173 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -511,7 +511,7 @@ new/obj/effect/temp_visual/dir_setting/curse/grasp_portal(spawn_turf, owner.dir) playsound(spawn_turf, 'sound/effects/curse2.ogg', 80, TRUE, -1) var/turf/ownerloc = get_turf(owner) - var/obj/item/projectile/curse_hand/C = new (spawn_turf) + var/obj/projectile/curse_hand/C = new (spawn_turf) C.preparePixelProjectile(ownerloc, spawn_turf) C.fire() diff --git a/code/game/atoms.dm b/code/game/atoms.dm index e9a5fee0803..2f994109c0b 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -212,7 +212,7 @@ return ..() -/atom/proc/handle_ricochet(obj/item/projectile/P) +/atom/proc/handle_ricochet(obj/projectile/P) return ///Can the mover object pass this atom, while heading for the target turf @@ -413,7 +413,7 @@ * * Default behaviour is to send the COMSIG_ATOM_BULLET_ACT and then call on_hit() on the projectile */ -/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) diff --git a/code/game/gamemodes/sandbox/h_sandbox.dm b/code/game/gamemodes/sandbox/h_sandbox.dm index 64aaeebacd9..fd5d81d0959 100644 --- a/code/game/gamemodes/sandbox/h_sandbox.dm +++ b/code/game/gamemodes/sandbox/h_sandbox.dm @@ -28,7 +28,7 @@ GLOBAL_VAR_INIT(hsboxspawn, TRUE) var/global/list/spawn_forbidden = list( /obj/item/tk_grab, /obj/item/implant, // not implanter, the actual thing that is inside you /obj/item/assembly, /obj/item/onetankbomb, /obj/item/pda/ai, - /obj/item/smallDelivery, /obj/item/projectile, + /obj/item/smallDelivery, /obj/projectile, /obj/item/borg/sight, /obj/item/borg/stun, /obj/item/robot_module) /datum/hSB/proc/update() diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index 5067405dad1..8f712fc4e70 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -40,10 +40,10 @@ /obj/structure/barricade/CanPass(atom/movable/mover, turf/target)//So bullets will fly over and stuff. if(locate(/obj/structure/barricade) in get_turf(mover)) return 1 - else if(istype(mover, /obj/item/projectile)) + else if(istype(mover, /obj/projectile)) if(!anchored) return 1 - var/obj/item/projectile/proj = mover + var/obj/projectile/proj = mover if(proj.firer && Adjacent(proj.firer)) return 1 if(prob(proj_pass_rate)) diff --git a/code/game/machinery/porta_turret/portable_turret.dm b/code/game/machinery/porta_turret/portable_turret.dm index 40bb21ac8e3..dcdb105a5a9 100644 --- a/code/game/machinery/porta_turret/portable_turret.dm +++ b/code/game/machinery/porta_turret/portable_turret.dm @@ -542,7 +542,7 @@ break update_icon() - var/obj/item/projectile/A + var/obj/projectile/A //any emagged turrets drains 2x power and uses a different projectile? if(mode == TURRET_STUN) use_power(reqpower) @@ -645,8 +645,8 @@ scan_range = 9 req_access = list(ACCESS_SYNDICATE) mode = TURRET_LETHAL - stun_projectile = /obj/item/projectile/bullet - lethal_projectile = /obj/item/projectile/bullet + stun_projectile = /obj/projectile/bullet + lethal_projectile = /obj/projectile/bullet lethal_projectile_sound = 'sound/weapons/gun/pistol/shot.ogg' stun_projectile_sound = 'sound/weapons/gun/pistol/shot.ogg' icon_state = "syndie_off" @@ -667,23 +667,23 @@ /obj/machinery/porta_turret/syndicate/energy icon_state = "standard_lethal" base_icon_state = "standard" - stun_projectile = /obj/item/projectile/energy/electrode + stun_projectile = /obj/projectile/energy/electrode stun_projectile_sound = 'sound/weapons/taser.ogg' - lethal_projectile = /obj/item/projectile/beam/laser + lethal_projectile = /obj/projectile/beam/laser lethal_projectile_sound = 'sound/weapons/laser.ogg' desc = "An energy blaster auto-turret." /obj/machinery/porta_turret/syndicate/energy/heavy icon_state = "standard_lethal" base_icon_state = "standard" - stun_projectile = /obj/item/projectile/energy/electrode + stun_projectile = /obj/projectile/energy/electrode stun_projectile_sound = 'sound/weapons/taser.ogg' - lethal_projectile = /obj/item/projectile/beam/laser/heavylaser + lethal_projectile = /obj/projectile/beam/laser/heavylaser lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg' desc = "An energy blaster auto-turret." /obj/machinery/porta_turret/syndicate/energy/raven - stun_projectile = /obj/item/projectile/beam/laser + stun_projectile = /obj/projectile/beam/laser stun_projectile_sound = 'sound/weapons/laser.ogg' faction = list("neutral","silicon","turret") @@ -691,14 +691,14 @@ /obj/machinery/porta_turret/syndicate/pod integrity_failure = 20 max_integrity = 40 - stun_projectile = /obj/item/projectile/bullet/syndicate_turret - lethal_projectile = /obj/item/projectile/bullet/syndicate_turret + stun_projectile = /obj/projectile/bullet/syndicate_turret + lethal_projectile = /obj/projectile/bullet/syndicate_turret /obj/machinery/porta_turret/syndicate/shuttle scan_range = 9 shot_delay = 3 - stun_projectile = /obj/item/projectile/bullet/p50/penetrator/shuttle - lethal_projectile = /obj/item/projectile/bullet/p50/penetrator/shuttle + stun_projectile = /obj/projectile/bullet/p50/penetrator/shuttle + lethal_projectile = /obj/projectile/bullet/p50/penetrator/shuttle lethal_projectile_sound = 'sound/weapons/gun/smg/shot.ogg' stun_projectile_sound = 'sound/weapons/gun/smg/shot.ogg' armor = list("melee" = 50, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 80, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90) @@ -723,7 +723,7 @@ name = "perimeter defense turret" desc = "A plasma beam turret calibrated to defend outposts against non-humanoid fauna. It is more effective when exposed to the environment." installation = null - lethal_projectile = /obj/item/projectile/plasma/turret + lethal_projectile = /obj/projectile/plasma/turret lethal_projectile_sound = 'sound/weapons/plasma_cutter.ogg' mode = TURRET_LETHAL //It would be useless in stun mode anyway faction = list("neutral","silicon","turret") //Minebots, medibots, etc that should not be shot. @@ -749,8 +749,8 @@ use_power = NO_POWER_USE has_cover = 0 scan_range = 9 - stun_projectile = /obj/item/projectile/beam/laser - lethal_projectile = /obj/item/projectile/beam/laser + stun_projectile = /obj/projectile/beam/laser + lethal_projectile = /obj/projectile/beam/laser lethal_projectile_sound = 'sound/weapons/plasma_cutter.ogg' stun_projectile_sound = 'sound/weapons/plasma_cutter.ogg' icon_state = "syndie_off" @@ -773,8 +773,8 @@ integrity_failure = 60 name = "Old Laser Turret" desc = "A turret built with substandard parts and run down further with age. Still capable of delivering lethal lasers to the odd space carp, but not much else." - stun_projectile = /obj/item/projectile/beam/weak/penetrator - lethal_projectile = /obj/item/projectile/beam/weak/penetrator + stun_projectile = /obj/projectile/beam/weak/penetrator + lethal_projectile = /obj/projectile/beam/weak/penetrator faction = list("neutral","silicon","turret") //////////////////////// @@ -999,16 +999,16 @@ /obj/item/gun/energy/laser/bluetag/get_turret_properties() . = ..() - .["stun_projectile"] = /obj/item/projectile/beam/lasertag/bluetag - .["lethal_projectile"] = /obj/item/projectile/beam/lasertag/bluetag + .["stun_projectile"] = /obj/projectile/beam/lasertag/bluetag + .["lethal_projectile"] = /obj/projectile/beam/lasertag/bluetag .["base_icon_state"] = "blue" .["shot_delay"] = 30 .["team_color"] = "blue" /obj/item/gun/energy/laser/redtag/get_turret_properties() . = ..() - .["stun_projectile"] = /obj/item/projectile/beam/lasertag/redtag - .["lethal_projectile"] = /obj/item/projectile/beam/lasertag/redtag + .["stun_projectile"] = /obj/projectile/beam/lasertag/redtag + .["lethal_projectile"] = /obj/projectile/beam/lasertag/redtag .["base_icon_state"] = "red" .["shot_delay"] = 30 .["team_color"] = "red" @@ -1070,14 +1070,14 @@ installation = /obj/item/gun/energy/laser/bluetag team_color = "blue" -/obj/machinery/porta_turret/lasertag/bullet_act(obj/item/projectile/P) +/obj/machinery/porta_turret/lasertag/bullet_act(obj/projectile/P) . = ..() if(on) if(team_color == "blue") - if(istype(P, /obj/item/projectile/beam/lasertag/redtag)) + if(istype(P, /obj/projectile/beam/lasertag/redtag)) on = FALSE addtimer(VARSET_CALLBACK(src, on, TRUE), 10 SECONDS) else if(team_color == "red") - if(istype(P, /obj/item/projectile/beam/lasertag/bluetag)) + if(istype(P, /obj/projectile/beam/lasertag/bluetag)) on = FALSE addtimer(VARSET_CALLBACK(src, on, TRUE), 10 SECONDS) diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 1e6004fdab4..80a114ccf63 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -456,7 +456,7 @@ if(istype(mover) && (mover.pass_flags & PASSGLASS)) return prob(20) else - if(istype(mover, /obj/item/projectile)) + if(istype(mover, /obj/projectile)) return prob(10) else return !density diff --git a/code/game/mecha/combat/durand.dm b/code/game/mecha/combat/durand.dm index 0b593cd1be1..d811b0c5c9a 100644 --- a/code/game/mecha/combat/durand.dm +++ b/code/game/mecha/combat/durand.dm @@ -65,7 +65,7 @@ SEND_SIGNAL(shield, COMSIG_MECHA_ACTION_ACTIVATE, source, signal_args) //Redirects projectiles to the shield if defense_check decides they should be blocked and returns true. -/obj/mecha/combat/durand/proc/prehit(obj/item/projectile/source, list/signal_args) +/obj/mecha/combat/durand/proc/prehit(obj/projectile/source, list/signal_args) if(defense_check(source.loc) && shield) signal_args[2] = shield diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index 2fdbdfa24ed..adde836b741 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -36,7 +36,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.original = target if(!A.suppressed && firing_effect_type) @@ -80,7 +80,7 @@ desc = "A weapon for combat exosuits. Shoots basic lasers." icon_state = "mecha_laser" energy_drain = 30 - projectile = /obj/item/projectile/beam/laser + projectile = /obj/projectile/beam/laser fire_sound = 'sound/weapons/laser.ogg' harmful = TRUE @@ -90,7 +90,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 @@ -99,7 +99,7 @@ desc = "A weapon for combat exosuits. Shoots heavy lasers." icon_state = "mecha_laser" 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/ion @@ -108,7 +108,7 @@ desc = "A weapon for combat exosuits. Shoots technology-disabling ion beams. Don't catch yourself in the blast!" icon_state = "mecha_ion" energy_drain = 120 - projectile = /obj/item/projectile/ion + projectile = /obj/projectile/ion fire_sound = 'sound/weapons/laser.ogg' /obj/item/mecha_parts/mecha_equipment/weapon/energy/tesla @@ -117,7 +117,7 @@ desc = "A weapon for combat exosuits. Fires bolts of electricity similar to the experimental tesla engine." icon_state = "mecha_ion" energy_drain = 500 - projectile = /obj/item/projectile/energy/tesla/cannon + projectile = /obj/projectile/energy/tesla/cannon fire_sound = 'sound/magic/lightningbolt.ogg' harmful = TRUE @@ -127,7 +127,7 @@ desc = "A weapon for combat exosuits. Shoots powerful destructive blasts capable of demolishing obstacles." icon_state = "mecha_pulse" energy_drain = 120 - projectile = /obj/item/projectile/beam/pulse/heavy + projectile = /obj/projectile/beam/pulse/heavy fire_sound = 'sound/weapons/marauder.ogg' harmful = TRUE @@ -140,7 +140,7 @@ lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' energy_drain = 30 - projectile = /obj/item/projectile/plasma/adv/mech + projectile = /obj/projectile/plasma/adv/mech fire_sound = 'sound/weapons/plasma_cutter.ogg' harmful = TRUE @@ -157,7 +157,7 @@ icon_state = "mecha_taser" energy_drain = 20 equip_cooldown = 8 - projectile = /obj/item/projectile/energy/electrode + projectile = /obj/projectile/energy/electrode fire_sound = 'sound/weapons/taser.ogg' @@ -280,7 +280,7 @@ desc = "A weapon for combat exosuits. Shoots incendiary bullets." icon_state = "mecha_carbine" equip_cooldown = 10 - projectile = /obj/item/projectile/bullet/incendiary/fnx99 + projectile = /obj/projectile/bullet/incendiary/fnx99 projectiles = 24 projectiles_cache = 24 projectiles_cache_max = 96 @@ -293,7 +293,7 @@ fire_sound = 'sound/weapons/gun/general/heavy_shot_suppressed.ogg' icon_state = "mecha_mime" equip_cooldown = 30 - projectile = /obj/item/projectile/bullet/mime + projectile = /obj/projectile/bullet/mime projectiles = 6 projectile_energy_cost = 50 harmful = TRUE @@ -303,7 +303,7 @@ desc = "A weapon for combat exosuits. Shoots a spread of pellets." icon_state = "mecha_scatter" equip_cooldown = 20 - projectile = /obj/item/projectile/bullet/scattershot + projectile = /obj/projectile/bullet/scattershot projectiles = 40 projectiles_cache = 40 projectiles_cache_max = 160 @@ -317,7 +317,7 @@ desc = "A weapon for combat exosuits. Shoots a rapid, three shot burst." icon_state = "mecha_uac2" equip_cooldown = 10 - projectile = /obj/item/projectile/bullet/lmg + projectile = /obj/projectile/bullet/lmg projectiles = 300 projectiles_cache = 300 projectiles_cache_max = 1200 @@ -332,7 +332,7 @@ name = "\improper SRM-8 missile rack" desc = "A weapon for combat exosuits. Launches light explosive missiles." icon_state = "mecha_missilerack" - projectile = /obj/item/projectile/bullet/a84mm_he + projectile = /obj/projectile/bullet/a84mm_he fire_sound = 'sound/weapons/gun/general/rocket_launch.ogg' projectiles = 8 projectiles_cache = 0 @@ -346,7 +346,7 @@ name = "\improper BRM-6 missile rack" desc = "A weapon for combat exosuits. Launches low-explosive breaching missiles designed to explode only when striking a sturdy target." icon_state = "mecha_missilerack_six" - projectile = /obj/item/projectile/bullet/a84mm_br + projectile = /obj/projectile/bullet/a84mm_br fire_sound = 'sound/weapons/gun/general/rocket_launch.ogg' projectiles = 6 projectiles_cache = 0 diff --git a/code/game/mecha/mecha_defense.dm b/code/game/mecha/mecha_defense.dm index e4f54f836d1..7234a79401e 100644 --- a/code/game/mecha/mecha_defense.dm +++ b/code/game/mecha/mecha_defense.dm @@ -110,7 +110,7 @@ log_message("Hit by [AM].", LOG_MECHA, color="red") . = ..() -/obj/mecha/bullet_act(obj/item/projectile/Proj) //wrapper +/obj/mecha/bullet_act(obj/projectile/Proj) //wrapper if (!enclosed && occupant && !silicon_pilot && !Proj.force_hit && (Proj.def_zone == BODY_ZONE_HEAD || Proj.def_zone == BODY_ZONE_CHEST)) //allows bullets to hit the pilot of open-canopy mechs occupant.bullet_act(Proj) //If the sides are open, the occupant can be hit return BULLET_ACT_HIT diff --git a/code/game/objects/effects/effect_system/effects_smoke.dm b/code/game/objects/effects/effect_system/effects_smoke.dm index 303f02b9932..1acdd7569f7 100644 --- a/code/game/objects/effects/effect_system/effects_smoke.dm +++ b/code/game/objects/effects/effect_system/effects_smoke.dm @@ -134,8 +134,8 @@ return 1 /obj/effect/particle_effect/smoke/bad/CanPass(atom/movable/mover, turf/target) - if(istype(mover, /obj/item/projectile/beam)) - var/obj/item/projectile/beam/B = mover + if(istype(mover, /obj/projectile/beam)) + var/obj/projectile/beam/B = mover B.damage = (B.damage/2) return 1 diff --git a/code/game/objects/effects/portals.dm b/code/game/objects/effects/portals.dm index c16bae26c7d..0a25bb3c854 100644 --- a/code/game/objects/effects/portals.dm +++ b/code/game/objects/effects/portals.dm @@ -156,7 +156,7 @@ var/turf/real_target = get_link_target_turf() if(!istype(real_target)) return FALSE - if(!force && (!ismecha(M) && !istype(M, /obj/item/projectile) && M.anchored && !allow_anchored)) + if(!force && (!ismecha(M) && !istype(M, /obj/projectile) && M.anchored && !allow_anchored)) return if(ismegafauna(M)) message_admins("[M] has used a portal at [ADMIN_VERBOSEJMP(src)] made by [usr].") @@ -166,8 +166,8 @@ else last_effect = world.time if(do_teleport(M, real_target, innate_accuracy_penalty, no_effects = no_effect, channel = teleport_channel)) - if(istype(M, /obj/item/projectile)) - var/obj/item/projectile/P = M + if(istype(M, /obj/projectile)) + var/obj/projectile/P = M P.ignore_source_check = TRUE return TRUE return FALSE diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index e2c5df54131..4762f724009 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -44,7 +44,7 @@ if(prob(50)) to_chat(mover, "You get stuck in \the [src] for a moment.") return FALSE - else if(istype(mover, /obj/item/projectile)) + else if(istype(mover, /obj/projectile)) return prob(30) return TRUE diff --git a/code/game/objects/effects/temporary_visuals/miscellaneous.dm b/code/game/objects/effects/temporary_visuals/miscellaneous.dm index 73a47180850..92c39b3e457 100644 --- a/code/game/objects/effects/temporary_visuals/miscellaneous.dm +++ b/code/game/objects/effects/temporary_visuals/miscellaneous.dm @@ -158,7 +158,7 @@ if(EAST) icon_state = "beam_splash_e" -/obj/item/projectile/curse_hand/update_icon() +/obj/projectile/curse_hand/update_icon() icon_state = "[icon_state][handedness]" /obj/effect/temp_visual/wizard diff --git a/code/game/objects/items/cardboard_cutouts.dm b/code/game/objects/items/cardboard_cutouts.dm index b5978179424..cf8fd7645d3 100644 --- a/code/game/objects/items/cardboard_cutouts.dm +++ b/code/game/objects/items/cardboard_cutouts.dm @@ -65,8 +65,8 @@ if(prob(I.force)) push_over() -/obj/item/cardboard_cutout/bullet_act(obj/item/projectile/P) - if(istype(P, /obj/item/projectile/bullet/reusable)) +/obj/item/cardboard_cutout/bullet_act(obj/projectile/P) + if(istype(P, /obj/projectile/bullet/reusable)) P.on_hit(src, 0) visible_message("[src] is hit by [P]!") playsound(src, 'sound/weapons/slice.ogg', 50, TRUE) diff --git a/code/game/objects/items/chrono_eraser.dm b/code/game/objects/items/chrono_eraser.dm index 52841f06921..3de5e3505a2 100644 --- a/code/game/objects/items/chrono_eraser.dm +++ b/code/game/objects/items/chrono_eraser.dm @@ -120,20 +120,20 @@ 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 nodamage = TRUE var/obj/item/gun/energy/chrono_gun/gun = null -/obj/item/projectile/energy/chrono_beam/Initialize() +/obj/projectile/energy/chrono_beam/Initialize() . = ..() var/obj/item/ammo_casing/energy/chrono_beam/C = loc if(istype(C)) gun = C.gun -/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) @@ -141,7 +141,7 @@ /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 icon_state = "chronobolt" e_cost = 0 var/obj/item/gun/energy/chrono_gun/gun @@ -238,9 +238,9 @@ else 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/flamethrower.dm b/code/game/objects/items/flamethrower.dm index 134268527fc..cb69657a05f 100644 --- a/code/game/objects/items/flamethrower.dm +++ b/code/game/objects/items/flamethrower.dm @@ -235,7 +235,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("\The [attack_text] hits the fueltank on [owner]'s [name], rupturing it! What a shot!") var/turf/target_turf = get_turf(owner) diff --git a/code/game/objects/items/grenades/grenade.dm b/code/game/objects/items/grenades/grenade.dm index 75152e3fcdb..47beefd83d9 100644 --- a/code/game/objects/items/grenades/grenade.dm +++ b/code/game/objects/items/grenades/grenade.dm @@ -119,7 +119,7 @@ return attack_hand(user) /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("[attack_text] hits [owner]'s [src], setting it off! What a shot!") var/turf/T = get_turf(src) diff --git a/code/game/objects/items/latexballoon.dm b/code/game/objects/items/latexballoon.dm index 60afdc0ca90..06981729dec 100644 --- a/code/game/objects/items/latexballoon.dm +++ b/code/game/objects/items/latexballoon.dm @@ -40,7 +40,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/melee/misc.dm b/code/game/objects/items/melee/misc.dm index 6bd0996c4e9..db61d342a34 100644 --- a/code/game/objects/items/melee/misc.dm +++ b/code/game/objects/items/melee/misc.dm @@ -471,7 +471,7 @@ "You hear a loud crack as you are washed with a wave of heat.") consume_everything() -/obj/item/melee/supermatter_sword/bullet_act(obj/item/projectile/P) +/obj/item/melee/supermatter_sword/bullet_act(obj/projectile/P) visible_message("[P] smacks into [src] and rapidly flashes to ash.",\ "You hear a loud crack as you are washed with a wave of heat.") consume_everything(P) diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm index fa9c4b49546..8e80bc81536 100644 --- a/code/game/objects/items/robot/robot_items.dm +++ b/code/game/objects/items/robot/robot_items.dm @@ -493,18 +493,18 @@ /obj/item/ammo_casing/caseless/gumball name = "Gumball" desc = "Why are you seeing this?!" - projectile_type = /obj/item/projectile/bullet/reusable/gumball + projectile_type = /obj/projectile/bullet/reusable/gumball click_cooldown_override = 2 -/obj/item/projectile/bullet/reusable/gumball +/obj/projectile/bullet/reusable/gumball name = "gumball" desc = "Oh noes! A fast-moving gumball!" icon_state = "gumball" ammo_type = /obj/item/reagent_containers/food/snacks/gumball/cyborg nodamage = TRUE -/obj/item/projectile/bullet/reusable/gumball/handle_drop() +/obj/projectile/bullet/reusable/gumball/handle_drop() if(!dropped) var/turf/T = get_turf(src) var/obj/item/reagent_containers/food/snacks/gumball/S = new ammo_type(T) @@ -514,10 +514,10 @@ /obj/item/ammo_casing/caseless/lollipop //NEEDS RANDOMIZED COLOR LOGIC. name = "Lollipop" desc = "Why are you seeing this?!" - projectile_type = /obj/item/projectile/bullet/reusable/lollipop + projectile_type = /obj/projectile/bullet/reusable/lollipop click_cooldown_override = 2 -/obj/item/projectile/bullet/reusable/lollipop +/obj/projectile/bullet/reusable/lollipop name = "lollipop" desc = "Oh noes! A fast-moving lollipop!" icon_state = "lollipop_1" @@ -525,7 +525,7 @@ var/color2 = rgb(0, 0, 0) nodamage = TRUE -/obj/item/projectile/bullet/reusable/lollipop/Initialize() +/obj/projectile/bullet/reusable/lollipop/Initialize() . = ..() var/obj/item/reagent_containers/food/snacks/lollipop/S = new ammo_type(src) color2 = S.headcolor @@ -533,7 +533,7 @@ head.color = color2 add_overlay(head) -/obj/item/projectile/bullet/reusable/lollipop/handle_drop() +/obj/projectile/bullet/reusable/lollipop/handle_drop() if(!dropped) var/turf/T = get_turf(src) var/obj/item/reagent_containers/food/snacks/lollipop/S = new ammo_type(T) @@ -559,7 +559,7 @@ var/projectile_damage_tick_ecost_coefficient = 2 //Lasers get half their damage chopped off, drains 50 power/tick. Note that fields are processed 5 times per second. var/projectile_speed_coefficient = 1.5 //Higher the coefficient slower the projectile. var/projectile_tick_speed_ecost = 15 - var/list/obj/item/projectile/tracked + var/list/obj/projectile/tracked var/image/projectile_effect var/field_radius = 3 var/active = FALSE @@ -652,7 +652,7 @@ /obj/item/borg/projectile_dampen/proc/process_usage() var/usage = 0 for(var/I in tracked) - var/obj/item/projectile/P = I + var/obj/projectile/P = I if(!P.stun && P.nodamage) //No damage continue usage += projectile_tick_speed_ecost @@ -673,7 +673,7 @@ host.cell.use(energy_recharge*energy_recharge_cyborg_drain_coefficient) energy += energy_recharge -/obj/item/borg/projectile_dampen/proc/dampen_projectile(obj/item/projectile/P, track_projectile = TRUE) +/obj/item/borg/projectile_dampen/proc/dampen_projectile(obj/projectile/P, track_projectile = TRUE) if(tracked[P]) return if(track_projectile) @@ -682,7 +682,7 @@ P.speed *= projectile_speed_coefficient P.add_overlay(projectile_effect) -/obj/item/borg/projectile_dampen/proc/restore_projectile(obj/item/projectile/P) +/obj/item/borg/projectile_dampen/proc/restore_projectile(obj/projectile/P) tracked -= P P.damage *= (1/projectile_damage_coefficient) P.speed *= (1/projectile_speed_coefficient) diff --git a/code/game/objects/items/shooting_range.dm b/code/game/objects/items/shooting_range.dm index 9d8e973449c..412e7df3414 100644 --- a/code/game/objects/items/shooting_range.dm +++ b/code/game/objects/items/shooting_range.dm @@ -60,17 +60,17 @@ #define DECALTYPE_SCORCH 1 #define DECALTYPE_BULLET 2 -/obj/item/target/clown/bullet_act(obj/item/projectile/P) +/obj/item/target/clown/bullet_act(obj/projectile/P) . = ..() playsound(src.loc, 'sound/items/bikehorn.ogg', 50, TRUE) -/obj/item/target/bullet_act(obj/item/projectile/P) - if(istype(P, /obj/item/projectile/bullet/reusable)) // If it's a foam dart, don't bother with any of this other shit +/obj/item/target/bullet_act(obj/projectile/P) + if(istype(P, /obj/projectile/bullet/reusable)) // If it's a foam dart, don't bother with any of this other shit return P.on_hit(src, 0) 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) if(C.GetPixel(p_x, p_y) && P.original == src && overlays.len <= 35) // if the located pixel isn't blank (null) @@ -83,7 +83,7 @@ bullet_hole.pixel_y = p_y - 1 if(decaltype == DECALTYPE_SCORCH) bullet_hole.setDir(pick(NORTH,SOUTH,EAST,WEST))// random scorch design - if(P.damage >= 20 || istype(P, /obj/item/projectile/beam/practice)) + if(P.damage >= 20 || istype(P, /obj/projectile/beam/practice)) bullet_hole.setDir(pick(NORTH,SOUTH,EAST,WEST)) else bullet_hole.icon_state = "light_scorch" diff --git a/code/game/objects/obj_defense.dm b/code/game/objects/obj_defense.dm index c4827a1f611..53295914fd6 100644 --- a/code/game/objects/obj_defense.dm +++ b/code/game/objects/obj_defense.dm @@ -66,7 +66,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]!", null, null, COMBAT_MESSAGE_RANGE) diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index 1b1350ef24e..c7420281f92 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -275,7 +275,7 @@ if(istype(mover) && (mover.pass_flags & PASSGRILLE)) return prob(girderpasschance) else - if(istype(mover, /obj/item/projectile)) + if(istype(mover, /obj/projectile)) return prob(girderpasschance) else return 0 diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 6c15eb1cde9..4e132690f1e 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -126,7 +126,7 @@ if(istype(mover) && (mover.pass_flags & PASSGRILLE)) return TRUE else - if(istype(mover, /obj/item/projectile) && density) + if(istype(mover, /obj/projectile) && density) return prob(30) else return !density diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm index 2581aad4f09..ec387a0ca72 100644 --- a/code/game/objects/structures/holosign.dm +++ b/code/game/objects/structures/holosign.dm @@ -104,11 +104,11 @@ max_integrity = 10 allow_walk = 0 -/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. return BULLET_ACT_HIT @@ -154,7 +154,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. return BULLET_ACT_HIT diff --git a/code/game/objects/structures/manned_turret.dm b/code/game/objects/structures/manned_turret.dm index 1601461b6ee..4a71e4f26b7 100644 --- a/code/game/objects/structures/manned_turret.dm +++ b/code/game/objects/structures/manned_turret.dm @@ -13,7 +13,7 @@ layer = ABOVE_MOB_LAYER var/view_range = 10 var/cooldown = 0 - var/projectile_type = /obj/item/projectile/bullet/manned_turret + var/projectile_type = /obj/projectile/bullet/manned_turret var/rate_of_fire = 1 var/number_of_shots = 40 var/cooldown_duration = 90 @@ -151,7 +151,7 @@ var/turf/targets_from = get_turf(src) if(QDELETED(target)) target = target_turf - var/obj/item/projectile/P = new projectile_type(targets_from) + var/obj/projectile/P = new projectile_type(targets_from) P.starting = targets_from P.firer = user P.original = target @@ -166,7 +166,7 @@ /obj/machinery/manned_turret/ultimate // Admin-only proof of concept for autoclicker automatics name = "Infinity Gun" view_range = 12 - projectile_type = /obj/item/projectile/bullet/manned_turret + projectile_type = /obj/projectile/bullet/manned_turret /obj/machinery/manned_turret/ultimate/checkfire(atom/targeted_atom, mob/user) target = targeted_atom diff --git a/code/game/objects/structures/reflector.dm b/code/game/objects/structures/reflector.dm index 7593af10a42..b4204a18025 100644 --- a/code/game/objects/structures/reflector.dm +++ b/code/game/objects/structures/reflector.dm @@ -14,7 +14,7 @@ var/framebuildstackamount = 5 var/buildstacktype = /obj/item/stack/sheet/metal var/buildstackamount = 0 - var/list/allowed_projectile_typecache = list(/obj/item/projectile/beam) + var/list/allowed_projectile_typecache = list(/obj/projectile/beam) var/rotation_angle = -1 /obj/structure/reflector/Initialize() @@ -58,7 +58,7 @@ /obj/structure/reflector/proc/dir_map_to_angle(dir) return 0 -/obj/structure/reflector/bullet_act(obj/item/projectile/P) +/obj/structure/reflector/bullet_act(obj/projectile/P) var/pdir = P.dir var/pangle = P.Angle var/ploc = get_turf(P) @@ -68,7 +68,7 @@ return ..() return BULLET_ACT_FORCE_PIERCE -/obj/structure/reflector/proc/auto_reflect(obj/item/projectile/P, pdir, turf/ploc, pangle) +/obj/structure/reflector/proc/auto_reflect(obj/projectile/P, pdir, turf/ploc, pangle) P.ignore_source_check = TRUE P.range = P.decayedRange P.decayedRange = max(P.decayedRange--, 0) @@ -193,7 +193,7 @@ admin = TRUE anchored = TRUE -/obj/structure/reflector/single/auto_reflect(obj/item/projectile/P, pdir, turf/ploc, pangle) +/obj/structure/reflector/single/auto_reflect(obj/projectile/P, pdir, turf/ploc, pangle) var/incidence = GET_ANGLE_OF_INCIDENCE(rotation_angle, (P.Angle + 180)) if(abs(incidence) > 90 && abs(incidence) < 270) return FALSE @@ -219,7 +219,7 @@ admin = TRUE anchored = TRUE -/obj/structure/reflector/double/auto_reflect(obj/item/projectile/P, pdir, turf/ploc, pangle) +/obj/structure/reflector/double/auto_reflect(obj/projectile/P, pdir, turf/ploc, pangle) var/incidence = GET_ANGLE_OF_INCIDENCE(rotation_angle, (P.Angle + 180)) var/new_angle = SIMPLIFY_DEGREES(rotation_angle + incidence) P.setAngle(new_angle) @@ -243,7 +243,7 @@ admin = TRUE anchored = TRUE -/obj/structure/reflector/box/auto_reflect(obj/item/projectile/P) +/obj/structure/reflector/box/auto_reflect(obj/projectile/P) P.setAngle(rotation_angle) return ..() diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index 6ce62d69b45..11b5b51ba0f 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -110,7 +110,7 @@ PlasmaBurn(exposed_temperature) -/obj/structure/statue/plasma/bullet_act(obj/item/projectile/Proj) +/obj/structure/statue/plasma/bullet_act(obj/projectile/Proj) var/burn = FALSE if(!(Proj.nodamage) && Proj.damage_type == BURN && !QDELETED(src)) burn = TRUE diff --git a/code/game/objects/structures/target_stake.dm b/code/game/objects/structures/target_stake.dm index 8ce0ffc91c9..342d4f0c49d 100644 --- a/code/game/objects/structures/target_stake.dm +++ b/code/game/objects/structures/target_stake.dm @@ -69,7 +69,7 @@ pinned_target.forceMove(user.drop_location()) to_chat(user, "You take the target out of the stake.") -/obj/structure/target_stake/bullet_act(obj/item/projectile/P) +/obj/structure/target_stake/bullet_act(obj/projectile/P) if(pinned_target) pinned_target.bullet_act(P) else diff --git a/code/game/turfs/simulated/reebe_void.dm b/code/game/turfs/simulated/reebe_void.dm index 14aa02065d5..971abec3b45 100644 --- a/code/game/turfs/simulated/reebe_void.dm +++ b/code/game/turfs/simulated/reebe_void.dm @@ -42,7 +42,7 @@ else if(istype(AM, /obj/structure/window)) return FALSE - if(istype(AM, /obj/item/projectile)) + if(istype(AM, /obj/projectile)) return TRUE if((locate(/obj/structure/lattice) in src)) return TRUE diff --git a/code/game/turfs/simulated/wall/mineral_walls.dm b/code/game/turfs/simulated/wall/mineral_walls.dm index 9627c8f9c52..4837acde811 100644 --- a/code/game/turfs/simulated/wall/mineral_walls.dm +++ b/code/game/turfs/simulated/wall/mineral_walls.dm @@ -115,10 +115,10 @@ if(exposed_temperature > 300) PlasmaBurn(exposed_temperature) -/turf/closed/wall/mineral/plasma/bullet_act(obj/item/projectile/Proj) - if(istype(Proj, /obj/item/projectile/beam)) +/turf/closed/wall/mineral/plasma/bullet_act(obj/projectile/Proj) + 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.dm b/code/game/turfs/simulated/walls.dm index 32764b0ed76..c7550232859 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -41,7 +41,7 @@ /turf/closed/wall/attack_tk() return -/turf/closed/wall/handle_ricochet(obj/item/projectile/P) //A huge pile of shitcode! +/turf/closed/wall/handle_ricochet(obj/projectile/P) //A huge pile of shitcode! var/turf/p_turf = get_turf(P) var/face_direction = get_dir(src, p_turf) var/face_angle = dir2angle(face_direction) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 66d6208e1f5..4c23def7ac5 100755 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -567,7 +567,7 @@ /turf/proc/Melt() return ScrapeAway(flags = CHANGETURF_INHERIT_AIR) -/turf/bullet_act(obj/item/projectile/P) +/turf/bullet_act(obj/projectile/P) . = ..() if(. != BULLET_ACT_FORCE_PIERCE) . = BULLET_ACT_TURF diff --git a/code/modules/antagonists/blob/structures/shield.dm b/code/modules/antagonists/blob/structures/shield.dm index e91deaf4c47..b837697af6d 100644 --- a/code/modules/antagonists/blob/structures/shield.dm +++ b/code/modules/antagonists/blob/structures/shield.dm @@ -44,7 +44,7 @@ brute_resist = 0.5 explosion_block = 2 -/obj/structure/blob/shield/reflective/handle_ricochet(obj/item/projectile/P) +/obj/structure/blob/shield/reflective/handle_ricochet(obj/projectile/P) var/turf/p_turf = get_turf(P) var/face_direction = get_dir(src, p_turf) var/face_angle = dir2angle(face_direction) diff --git a/code/modules/antagonists/changeling/powers/mutations.dm b/code/modules/antagonists/changeling/powers/mutations.dm index 4b0d57d5fef..a027e2698e2 100644 --- a/code/modules/antagonists/changeling/powers/mutations.dm +++ b/code/modules/antagonists/changeling/powers/mutations.dm @@ -276,7 +276,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_state = "tentacle_end" firing_effect_type = null @@ -290,7 +290,7 @@ gun = null return ..() -/obj/item/projectile/tentacle +/obj/projectile/tentacle name = "tentacle" icon_state = "tentacle_end" pass_flags = PASSTABLE @@ -301,20 +301,20 @@ var/chain var/obj/item/ammo_casing/magic/tentacle/source //the item that shot it -/obj/item/projectile/tentacle/Initialize() +/obj/projectile/tentacle/Initialize() source = loc . = ..() -/obj/item/projectile/tentacle/fire(setAngle) +/obj/projectile/tentacle/fire(setAngle) if(firer) chain = firer.Beam(src, icon_state = "tentacle", time = INFINITY, maxdistance = INFINITY, beam_sleep_time = 1) ..() -/obj/item/projectile/tentacle/proc/reset_throw(mob/living/carbon/human/H) +/obj/projectile/tentacle/proc/reset_throw(mob/living/carbon/human/H) if(H.in_throw_mode) H.throw_mode_off() //Don't annoy the changeling if he doesn't catch the item -/obj/item/projectile/tentacle/proc/tentacle_grab(mob/living/carbon/human/H, mob/living/carbon/C) +/obj/projectile/tentacle/proc/tentacle_grab(mob/living/carbon/human/H, mob/living/carbon/C) if(H.Adjacent(C)) if(H.get_active_held_item() && !H.get_inactive_held_item()) H.swap_hand() @@ -323,7 +323,7 @@ C.grabbedby(H) C.grippedby(H, instant = TRUE) //instant aggro grab -/obj/item/projectile/tentacle/proc/tentacle_stab(mob/living/carbon/human/H, mob/living/carbon/C) +/obj/projectile/tentacle/proc/tentacle_stab(mob/living/carbon/human/H, mob/living/carbon/C) if(H.Adjacent(C)) for(var/obj/item/I in H.held_items) if(I.get_sharpness()) @@ -334,7 +334,7 @@ playsound(get_turf(H),I.hitsound,75,TRUE) return -/obj/item/projectile/tentacle/on_hit(atom/target, blocked = FALSE) +/obj/projectile/tentacle/on_hit(atom/target, blocked = FALSE) var/mob/living/carbon/human/H = firer if(blocked >= 100) return BULLET_ACT_BLOCK @@ -389,7 +389,7 @@ L.throw_at(get_step_towards(H,L), 8, 2) . = BULLET_ACT_HIT -/obj/item/projectile/tentacle/Destroy() +/obj/projectile/tentacle/Destroy() qdel(chain) source = null return ..() diff --git a/code/modules/antagonists/clockcult/clock_helpers/slab_abilities.dm b/code/modules/antagonists/clockcult/clock_helpers/slab_abilities.dm index f3f7a231bec..16e26682cd1 100644 --- a/code/modules/antagonists/clockcult/clock_helpers/slab_abilities.dm +++ b/code/modules/antagonists/clockcult/clock_helpers/slab_abilities.dm @@ -155,7 +155,7 @@ clockwork_say(ranged_ability_user, text2ratvar("Purge all untruths and honor Engine!")) log_combat(ranged_ability_user, U, "fired at with Kindle") playsound(ranged_ability_user, 'sound/magic/blink.ogg', 50, TRUE, frequency = 0.5) - var/obj/item/projectile/kindle/A = new(T) + var/obj/projectile/kindle/A = new(T) A.preparePixelProjectile(target, caller, params) A.fire() @@ -163,7 +163,7 @@ return TRUE -/obj/item/projectile/kindle +/obj/projectile/kindle name = "kindled flame" icon_state = "pulse0" nodamage = TRUE @@ -173,11 +173,11 @@ range = 3 log_override = TRUE -/obj/item/projectile/kindle/Destroy() +/obj/projectile/kindle/Destroy() visible_message("[src] flickers out!") . = ..() -/obj/item/projectile/kindle/on_hit(atom/target, blocked = FALSE) +/obj/projectile/kindle/on_hit(atom/target, blocked = FALSE) if(isliving(target)) var/mob/living/L = target if(is_servant_of_ratvar(L) || L.stat || L.has_status_effect(STATUS_EFFECT_KINDLE)) diff --git a/code/modules/antagonists/clockcult/clock_mobs/clockwork_marauder.dm b/code/modules/antagonists/clockcult/clock_mobs/clockwork_marauder.dm index 632403bf55c..6e3507eb564 100644 --- a/code/modules/antagonists/clockcult/clock_mobs/clockwork_marauder.dm +++ b/code/modules/antagonists/clockcult/clock_mobs/clockwork_marauder.dm @@ -80,15 +80,15 @@ break . = ..() -/mob/living/simple_animal/hostile/clockwork/marauder/bullet_act(obj/item/projectile/P) +/mob/living/simple_animal/hostile/clockwork/marauder/bullet_act(obj/projectile/P) if(deflect_projectile(P)) return BULLET_ACT_BLOCK return ..() -/mob/living/simple_animal/hostile/clockwork/marauder/proc/deflect_projectile(obj/item/projectile/P) +/mob/living/simple_animal/hostile/clockwork/marauder/proc/deflect_projectile(obj/projectile/P) if(!shield_health) return - var/energy_projectile = istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam) + var/energy_projectile = istype(P, /obj/projectile/energy) || istype(P, /obj/projectile/beam) visible_message("[src] deflects [P] with [p_their()] shield!", \ "You block [P] with your shield! Blocks left: [shield_health - 1]") if(energy_projectile) diff --git a/code/modules/antagonists/clockcult/clock_structures/traps/brass_skewer.dm b/code/modules/antagonists/clockcult/clock_structures/traps/brass_skewer.dm index 4ae8f52fe51..90cc1f1ecd8 100644 --- a/code/modules/antagonists/clockcult/clock_structures/traps/brass_skewer.dm +++ b/code/modules/antagonists/clockcult/clock_structures/traps/brass_skewer.dm @@ -40,7 +40,7 @@ return ..() -/obj/structure/destructible/clockwork/trap/brass_skewer/bullet_act(obj/item/projectile/P) +/obj/structure/destructible/clockwork/trap/brass_skewer/bullet_act(obj/projectile/P) if(buckled_mobs && LAZYLEN(buckled_mobs)) var/mob/living/L = buckled_mobs[1] return L.bullet_act(P) diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm index f9cb83d1869..cf5349beaec 100644 --- a/code/modules/antagonists/cult/cult_items.dm +++ b/code/modules/antagonists/cult/cult_items.dm @@ -755,17 +755,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 firing_effect_type = /obj/effect/temp_visual/cult/sparks -/obj/item/projectile/magic/arcane_barrage/blood +/obj/projectile/magic/arcane_barrage/blood name = "blood bolt" icon_state = "mini_leaper" nondirectional_sprite = TRUE damage_type = BRUTE impact_effect_type = /obj/effect/temp_visual/dir_setting/bloodsplatter -/obj/item/projectile/magic/arcane_barrage/blood/Bump(atom/target) +/obj/projectile/magic/arcane_barrage/blood/Bump(atom/target) var/turf/T = get_turf(target) playsound(T, 'sound/effects/splat.ogg', 50, TRUE) if(iscultist(target)) @@ -914,8 +914,8 @@ /obj/item/shield/mirror/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(iscultist(owner)) - if(istype(hitby, /obj/item/projectile)) - var/obj/item/projectile/P = hitby + if(istype(hitby, /obj/projectile)) + var/obj/projectile/P = hitby if(P.damage_type == BRUTE || P.damage_type == BURN) if(P.damage >= 30) var/turf/T = get_turf(owner) diff --git a/code/modules/antagonists/swarmer/swarmer.dm b/code/modules/antagonists/swarmer/swarmer.dm index 545320fa9ed..da4240f24b3 100644 --- a/code/modules/antagonists/swarmer/swarmer.dm +++ b/code/modules/antagonists/swarmer/swarmer.dm @@ -91,7 +91,7 @@ mob_size = MOB_SIZE_TINY ventcrawler = VENTCRAWLER_ALWAYS ranged = 1 - projectiletype = /obj/item/projectile/beam/disabler + projectiletype = /obj/projectile/beam/disabler ranged_cooldown_time = 20 projectilesound = 'sound/weapons/taser2.ogg' loot = list(/obj/effect/decal/cleanable/robot_debris, /obj/item/stack/ore/bluespace_crystal) @@ -136,7 +136,7 @@ death() /mob/living/simple_animal/hostile/swarmer/CanPass(atom/movable/O) - if(istype(O, /obj/item/projectile/beam/disabler))//Allows for swarmers to fight as a group without wasting their shots hitting each other + if(istype(O, /obj/projectile/beam/disabler))//Allows for swarmers to fight as a group without wasting their shots hitting each other return 1 if(isswarmer(O)) return 1 @@ -633,7 +633,7 @@ /obj/structure/swarmer/blockade/CanPass(atom/movable/O) if(isswarmer(O)) return 1 - if(istype(O, /obj/item/projectile/beam/disabler)) + if(istype(O, /obj/projectile/beam/disabler)) return 1 /mob/living/simple_animal/hostile/swarmer/proc/CreateSwarmer() diff --git a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm index 629580d379f..2c4e05e2eab 100644 --- a/code/modules/antagonists/traitor/equipment/Malf_Modules.dm +++ b/code/modules/antagonists/traitor/equipment/Malf_Modules.dm @@ -404,7 +404,7 @@ GLOBAL_LIST_INIT(blacklisted_malf_machines, typecacheof(list( /datum/AI_Module/large/upgrade_turrets/upgrade(mob/living/silicon/ai/AI) for(var/obj/machinery/porta_turret/ai/turret in GLOB.machines) turret.obj_integrity += 30 - turret.lethal_projectile = /obj/item/projectile/beam/laser/heavylaser //Once you see it, you will know what it means to FEAR. + turret.lethal_projectile = /obj/projectile/beam/laser/heavylaser //Once you see it, you will know what it means to FEAR. turret.lethal_projectile_sound = 'sound/weapons/lasercannonfire.ogg' diff --git a/code/modules/awaymissions/capture_the_flag.dm b/code/modules/awaymissions/capture_the_flag.dm index 6934edc4c54..ded139aac81 100644 --- a/code/modules/awaymissions/capture_the_flag.dm +++ b/code/modules/awaymissions/capture_the_flag.dm @@ -389,12 +389,12 @@ ammo_type = /obj/item/ammo_casing/a50/ctf /obj/item/ammo_casing/a50/ctf - projectile_type = /obj/item/projectile/bullet/ctf + projectile_type = /obj/projectile/bullet/ctf -/obj/item/projectile/bullet/ctf +/obj/projectile/bullet/ctf damage = 0 -/obj/item/projectile/bullet/ctf/prehit(atom/target) +/obj/projectile/bullet/ctf/prehit(atom/target) if(is_ctf_target(target)) damage = 60 . = ..() @@ -424,13 +424,13 @@ qdel(src) /obj/item/ammo_casing/caseless/laser/ctf - projectile_type = /obj/item/projectile/beam/ctf + projectile_type = /obj/projectile/beam/ctf -/obj/item/projectile/beam/ctf +/obj/projectile/beam/ctf damage = 0 icon_state = "omnilaser" -/obj/item/projectile/beam/ctf/prehit(atom/target) +/obj/projectile/beam/ctf/prehit(atom/target) if(is_ctf_target(target)) damage = 150 . = ..() @@ -453,9 +453,9 @@ ammo_type = /obj/item/ammo_casing/caseless/laser/ctf/red /obj/item/ammo_casing/caseless/laser/ctf/red - projectile_type = /obj/item/projectile/beam/ctf/red + projectile_type = /obj/projectile/beam/ctf/red -/obj/item/projectile/beam/ctf/red +/obj/projectile/beam/ctf/red icon_state = "laser" impact_effect_type = /obj/effect/temp_visual/impact_effect/red_laser @@ -468,9 +468,9 @@ ammo_type = /obj/item/ammo_casing/caseless/laser/ctf/blue /obj/item/ammo_casing/caseless/laser/ctf/blue - projectile_type = /obj/item/projectile/beam/ctf/blue + projectile_type = /obj/projectile/beam/ctf/blue -/obj/item/projectile/beam/ctf/blue +/obj/projectile/beam/ctf/blue icon_state = "bluelaser" impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser diff --git a/code/modules/awaymissions/mission_code/stationCollision.dm b/code/modules/awaymissions/mission_code/stationCollision.dm index 0adef7f0b4b..a2ecfc0412c 100644 --- a/code/modules/awaymissions/mission_code/stationCollision.dm +++ b/code/modules/awaymissions/mission_code/stationCollision.dm @@ -43,7 +43,7 @@ name ="retro laser" icon_state = "retro" desc = "An older model of the basic lasergun, no longer used by Nanotrasen's security or military forces." -// projectile_type = "/obj/item/projectile/practice" +// projectile_type = "/obj/projectile/practice" clumsy_check = 0 //No sense in having a harmless gun blow up in the clowns face //Syndicate sub-machine guns. diff --git a/code/modules/events/wizard/magicarp.dm b/code/modules/events/wizard/magicarp.dm index 1d14509628c..86c47f2eef9 100644 --- a/code/modules/events/wizard/magicarp.dm +++ b/code/modules/events/wizard/magicarp.dm @@ -32,15 +32,15 @@ ranged = 1 retreat_distance = 2 minimum_distance = 0 //Between shots they can and will close in to nash - projectiletype = /obj/item/projectile/magic + projectiletype = /obj/projectile/magic projectilesound = 'sound/weapons/emitter.ogg' maxHealth = 50 health = 50 gold_core_spawnable = NO_SPAWN random_color = FALSE - var/allowed_projectile_types = list(/obj/item/projectile/magic/change, /obj/item/projectile/magic/animate, /obj/item/projectile/magic/resurrection, - /obj/item/projectile/magic/death, /obj/item/projectile/magic/teleport, /obj/item/projectile/magic/door, /obj/item/projectile/magic/aoe/fireball, - /obj/item/projectile/magic/spellblade, /obj/item/projectile/magic/arcane_barrage) + var/allowed_projectile_types = list(/obj/projectile/magic/change, /obj/projectile/magic/animate, /obj/projectile/magic/resurrection, + /obj/projectile/magic/death, /obj/projectile/magic/teleport, /obj/projectile/magic/door, /obj/projectile/magic/aoe/fireball, + /obj/projectile/magic/spellblade, /obj/projectile/magic/arcane_barrage) /mob/living/simple_animal/hostile/carp/ranged/Initialize() projectiletype = pick(allowed_projectile_types) @@ -60,13 +60,13 @@ /mob/living/simple_animal/hostile/carp/ranged/xenobiology // these are for the xenobio gold slime pool gold_core_spawnable = HOSTILE_SPAWN - allowed_projectile_types = list(/obj/item/projectile/magic/change, /obj/item/projectile/magic/animate, /obj/item/projectile/magic/resurrection, - /obj/item/projectile/magic/teleport, /obj/item/projectile/magic/door, /obj/item/projectile/magic/aoe/fireball, /obj/item/projectile/magic/spellblade, - /obj/item/projectile/magic/arcane_barrage) //thanks Lett1 + allowed_projectile_types = list(/obj/projectile/magic/change, /obj/projectile/magic/animate, /obj/projectile/magic/resurrection, + /obj/projectile/magic/teleport, /obj/projectile/magic/door, /obj/projectile/magic/aoe/fireball, /obj/projectile/magic/spellblade, + /obj/projectile/magic/arcane_barrage) //thanks Lett1 /mob/living/simple_animal/hostile/carp/ranged/chaos/xenobiology gold_core_spawnable = HOSTILE_SPAWN - allowed_projectile_types = list(/obj/item/projectile/magic/change, /obj/item/projectile/magic/animate, /obj/item/projectile/magic/resurrection, - /obj/item/projectile/magic/teleport, /obj/item/projectile/magic/door, /obj/item/projectile/magic/aoe/fireball, /obj/item/projectile/magic/spellblade, - /obj/item/projectile/magic/arcane_barrage) + allowed_projectile_types = list(/obj/projectile/magic/change, /obj/projectile/magic/animate, /obj/projectile/magic/resurrection, + /obj/projectile/magic/teleport, /obj/projectile/magic/door, /obj/projectile/magic/aoe/fireball, /obj/projectile/magic/spellblade, + /obj/projectile/magic/arcane_barrage) diff --git a/code/modules/fields/peaceborg_dampener.dm b/code/modules/fields/peaceborg_dampener.dm index 47d7f096c96..5a1f1491648 100644 --- a/code/modules/fields/peaceborg_dampener.dm +++ b/code/modules/fields/peaceborg_dampener.dm @@ -17,8 +17,8 @@ var/static/image/southeast_corner = image('icons/effects/fields.dmi', icon_state = "projectile_dampen_southeast") var/static/image/generic_edge = image('icons/effects/fields.dmi', icon_state = "projectile_dampen_generic") var/obj/item/borg/projectile_dampen/projector = null - var/list/obj/item/projectile/tracked - var/list/obj/item/projectile/staging + var/list/obj/projectile/tracked + var/list/obj/projectile/staging use_host_turf = TRUE /datum/proximity_monitor/advanced/peaceborg_dampener/New() @@ -33,9 +33,9 @@ if(!istype(projector)) qdel(src) var/list/ranged = list() - for(var/obj/item/projectile/P in range(current_range, get_turf(host))) + for(var/obj/projectile/P in range(current_range, get_turf(host))) ranged += P - for(var/obj/item/projectile/P in tracked) + for(var/obj/projectile/P in tracked) if(!(P in ranged) || !P.loc) release_projectile(P) for(var/mob/living/silicon/robot/R in range(current_range, get_turf(host))) @@ -80,20 +80,20 @@ else return generic_edge -/datum/proximity_monitor/advanced/peaceborg_dampener/proc/capture_projectile(obj/item/projectile/P, track_projectile = TRUE) +/datum/proximity_monitor/advanced/peaceborg_dampener/proc/capture_projectile(obj/projectile/P, track_projectile = TRUE) if(P in tracked) return projector.dampen_projectile(P, track_projectile) if(track_projectile) tracked += P -/datum/proximity_monitor/advanced/peaceborg_dampener/proc/release_projectile(obj/item/projectile/P) +/datum/proximity_monitor/advanced/peaceborg_dampener/proc/release_projectile(obj/projectile/P) projector.restore_projectile(P) tracked -= P /datum/proximity_monitor/advanced/peaceborg_dampener/field_edge_uncrossed(atom/movable/AM, obj/effect/abstract/proximity_checker/advanced/field_edge/F) if(!is_turf_in_field(get_turf(AM), src)) - if(istype(AM, /obj/item/projectile)) + if(istype(AM, /obj/projectile)) if(AM in tracked) release_projectile(AM) else @@ -101,13 +101,13 @@ return ..() /datum/proximity_monitor/advanced/peaceborg_dampener/field_edge_crossed(atom/movable/AM, obj/effect/abstract/proximity_checker/advanced/field_edge/F) - if(istype(AM, /obj/item/projectile) && !(AM in tracked) && staging[AM] && !is_turf_in_field(staging[AM], src)) + if(istype(AM, /obj/projectile) && !(AM in tracked) && staging[AM] && !is_turf_in_field(staging[AM], src)) capture_projectile(AM) staging -= AM return ..() /datum/proximity_monitor/advanced/peaceborg_dampener/field_edge_canpass(atom/movable/AM, obj/effect/abstract/proximity_checker/advanced/field_edge/F, turf/entering) - if(istype(AM, /obj/item/projectile)) + if(istype(AM, /obj/projectile)) staging[AM] = get_turf(AM) . = ..() if(!.) diff --git a/code/modules/fields/timestop.dm b/code/modules/fields/timestop.dm index 5fc3c23c7e8..7c97984e4d6 100644 --- a/code/modules/fields/timestop.dm +++ b/code/modules/fields/timestop.dm @@ -82,7 +82,7 @@ var/frozen = TRUE if(isliving(A)) freeze_mob(A) - else if(istype(A, /obj/item/projectile)) + else if(istype(A, /obj/projectile)) freeze_projectile(A) else if(istype(A, /obj/mecha)) freeze_mecha(A) @@ -116,7 +116,7 @@ unfreeze_throwing(A) if(isliving(A)) unfreeze_mob(A) - else if(istype(A, /obj/item/projectile)) + else if(istype(A, /obj/projectile)) unfreeze_projectile(A) else if(istype(A, /obj/mecha)) unfreeze_mecha(A) @@ -127,14 +127,14 @@ A.move_resist = frozen_things[A] frozen_things -= A global_frozen_atoms -= A - + /datum/proximity_monitor/advanced/timestop/proc/freeze_mecha(obj/mecha/M) M.completely_disabled = TRUE /datum/proximity_monitor/advanced/timestop/proc/unfreeze_mecha(obj/mecha/M) M.completely_disabled = FALSE - + /datum/proximity_monitor/advanced/timestop/proc/freeze_throwing(atom/movable/AM) var/datum/thrownthing/T = AM.throwing @@ -171,10 +171,10 @@ return ..() -/datum/proximity_monitor/advanced/timestop/proc/freeze_projectile(obj/item/projectile/P) +/datum/proximity_monitor/advanced/timestop/proc/freeze_projectile(obj/projectile/P) P.paused = TRUE -/datum/proximity_monitor/advanced/timestop/proc/unfreeze_projectile(obj/item/projectile/P) +/datum/proximity_monitor/advanced/timestop/proc/unfreeze_projectile(obj/projectile/P) P.paused = FALSE /datum/proximity_monitor/advanced/timestop/proc/freeze_mob(mob/living/L) diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 8657f0f1b31..bc93a175c0f 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -1290,9 +1290,9 @@ GLOBAL_LIST_INIT(hallucination_list, list( qdel(src) return var/turf/start = pick(startlocs) - var/proj_type = pick(subtypesof(/obj/item/projectile/hallucination)) + var/proj_type = pick(subtypesof(/obj/projectile/hallucination)) feedback_details += "Type: [proj_type]" - var/obj/item/projectile/hallucination/H = new proj_type(start) + var/obj/projectile/hallucination/H = new proj_type(start) target.playsound_local(start, H.hal_fire_sound, 60, 1) H.hal_target = target H.preparePixelProjectile(target, start) diff --git a/code/modules/food_and_drinks/drinks/drinks.dm b/code/modules/food_and_drinks/drinks/drinks.dm index c5d90044804..3d11667e995 100644 --- a/code/modules/food_and_drinks/drinks/drinks.dm +++ b/code/modules/food_and_drinks/drinks/drinks.dm @@ -131,7 +131,7 @@ qdel(src) target.Bumped(B) -/obj/item/reagent_containers/food/drinks/bullet_act(obj/item/projectile/P) +/obj/item/reagent_containers/food/drinks/bullet_act(obj/projectile/P) . = ..() if(!(P.nodamage) && P.damage_type == BRUTE && !QDELETED(src)) var/atom/T = get_turf(src) @@ -442,7 +442,7 @@ qdel(src) ..() -/obj/item/reagent_containers/food/drinks/soda_cans/bullet_act(obj/item/projectile/P) +/obj/item/reagent_containers/food/drinks/soda_cans/bullet_act(obj/projectile/P) . = ..() if(!(P.nodamage) && P.damage_type == BRUTE && !QDELETED(src)) var/obj/item/trash/can/crushed_can = new /obj/item/trash/can(src.loc) diff --git a/code/modules/holodeck/items.dm b/code/modules/holodeck/items.dm index f1cd4cbcc73..a7522091f15 100644 --- a/code/modules/holodeck/items.dm +++ b/code/modules/holodeck/items.dm @@ -125,7 +125,7 @@ ..() /obj/structure/holohoop/hitby(atom/movable/AM, skipcatch, hitpush, blocked, datum/thrownthing/throwingdatum) - if (isitem(AM) && !istype(AM,/obj/item/projectile)) + if (isitem(AM) && !istype(AM,/obj/projectile)) if(prob(50)) AM.forceMove(get_turf(src)) visible_message("Swish! [AM] lands in [src].") diff --git a/code/modules/hydroponics/hydroponics.dm b/code/modules/hydroponics/hydroponics.dm index 82d52bea7f8..16b4021547c 100644 --- a/code/modules/hydroponics/hydroponics.dm +++ b/code/modules/hydroponics/hydroponics.dm @@ -91,12 +91,12 @@ return connected -/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)) mutate() - else if(istype(Proj , /obj/item/projectile/energy/florayield)) + else if(istype(Proj , /obj/projectile/energy/florayield)) return myseed.bullet_act(Proj) else return ..() diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index 629e6100dd3..898c66d0bd2 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -129,8 +129,8 @@ -/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 33210b7030f..ccdf690c082 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -11,7 +11,7 @@ force = 0 //You can't hit stuff unless wielded w_class = WEIGHT_CLASS_BULKY slot_flags = ITEM_SLOT_BACK - force_unwielded = 0 + force_unwielded = 0 force_wielded = 20 throwforce = 5 throw_speed = 4 @@ -84,7 +84,7 @@ var/turf/proj_turf = user.loc 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) @@ -155,7 +155,7 @@ item_state = "crusher[wielded]" //destablizing force -/obj/item/projectile/destabilizer +/obj/projectile/destabilizer name = "destabilizing force" icon_state = "pulse1" nodamage = TRUE @@ -166,11 +166,11 @@ log_override = TRUE var/obj/item/twohanded/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 @@ -226,7 +226,7 @@ return TRUE /obj/item/crusher_trophy/proc/on_melee_hit(mob/living/target, mob/living/user) //the target and the user -/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 /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 /obj/item/crusher_trophy/proc/on_mark_detonation(mob/living/target, mob/living/user) //the target and the user @@ -281,7 +281,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" @@ -400,7 +400,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/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index 878ee6b9e55..6eab9be3b0c 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -405,11 +405,11 @@ /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_state = "hook" -/obj/item/projectile/hook +/obj/projectile/hook name = "hook" icon_state = "hook" icon = 'icons/obj/lavaland/artefacts.dmi' @@ -421,13 +421,13 @@ paralyze = 30 var/chain -/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(ismovableatom(target)) var/atom/movable/A = target @@ -438,7 +438,7 @@ //TODO: keep the chain beamed to A //TODO: needs a callback to delete the chain -/obj/item/projectile/hook/Destroy() +/obj/projectile/hook/Destroy() qdel(chain) return ..() @@ -451,9 +451,9 @@ to_chat(user, "The [src] isn't ready to fire yet!") /obj/item/ammo_casing/magic/hook/bounty - projectile_type = /obj/item/projectile/hook/bounty + projectile_type = /obj/projectile/hook/bounty -/obj/item/projectile/hook/bounty +/obj/projectile/hook/bounty damage = 0 paralyze = 20 @@ -1069,8 +1069,8 @@ /obj/structure/closet/crate/necropolis/colossus name = "colossus chest" -/obj/structure/closet/crate/necropolis/colossus/bullet_act(obj/item/projectile/P) - if(istype(P, /obj/item/projectile/colossus)) +/obj/structure/closet/crate/necropolis/colossus/bullet_act(obj/projectile/P) + if(istype(P, /obj/projectile/colossus)) return BULLET_ACT_FORCE_PIERCE return ..() diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm index f68de678341..e0f113f5e30 100644 --- a/code/modules/mining/minebot.dm +++ b/code/modules/mining/minebot.dm @@ -132,14 +132,14 @@ return /mob/living/simple_animal/hostile/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/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index 2d207c9380c..34100bd96be 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -244,7 +244,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\ else ..() -/obj/item/twohanded/required/gibtonite/bullet_act(obj/item/projectile/P) +/obj/item/twohanded/required/gibtonite/bullet_act(obj/projectile/P) GibtoniteReaction(P.firer) . = ..() diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index 70ae7198ad9..0ab6785e710 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -228,7 +228,7 @@ Doesn't work on other aliens/AI.*/ return FALSE user.visible_message("[user] spits neurotoxin!", "You spit neurotoxin.") - var/obj/item/projectile/bullet/neurotoxin/A = new /obj/item/projectile/bullet/neurotoxin(user.loc) + var/obj/projectile/bullet/neurotoxin/A = new /obj/projectile/bullet/neurotoxin(user.loc) A.preparePixelProjectile(target, user, params) A.fire() user.newtonian_move(get_dir(U, T)) diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 181e7789549..8c7391b5a46 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -37,7 +37,7 @@ if(check_mask &&(wear_mask?.flags_cover & PEPPERPROOF)) return wear_mask -/mob/living/carbon/check_projectile_dismemberment(obj/item/projectile/P, def_zone) +/mob/living/carbon/check_projectile_dismemberment(obj/projectile/P, def_zone) var/obj/item/bodypart/affecting = get_bodypart(def_zone) if(affecting && affecting.dismemberable && affecting.get_damage() >= (affecting.max_damage - P.dismemberment)) affecting.dismember(P.damtype) diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 752d4640b68..04af60cbb2b 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -35,12 +35,12 @@ protection += physiology.armor.getRating(d_type) return protection -/mob/living/carbon/human/on_hit(obj/item/projectile/P) +/mob/living/carbon/human/on_hit(obj/projectile/P) if(dna && dna.species) dna.species.on_hit(P, src) -/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 && dna.species) var/spec_return = dna.species.bullet_act(P, src) if(spec_return) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 07434e9187d..90fa4574ab1 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1606,15 +1606,15 @@ GLOBAL_LIST_EMPTY(roundstart_races) H.adjustOrganLoss(ORGAN_SLOT_BRAIN, damage_amount) return 1 -/datum/species/proc/on_hit(obj/item/projectile/P, mob/living/carbon/human/H) +/datum/species/proc/on_hit(obj/projectile/P, mob/living/carbon/human/H) // called when hit by a projectile switch(P.type) - if(/obj/item/projectile/energy/floramut) // overwritten by plants/pods + if(/obj/projectile/energy/floramut) // overwritten by plants/pods H.show_message("The radiation beam dissipates harmlessly through your body.") - if(/obj/item/projectile/energy/florayield) + if(/obj/projectile/energy/florayield) H.show_message("The radiation beam dissipates harmlessly through your body.") -/datum/species/proc/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H) +/datum/species/proc/bullet_act(obj/projectile/P, mob/living/carbon/human/H) // called before a projectile hit return 0 diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm index c13a7625302..4a69db24183 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -354,7 +354,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") playsound(H, 'sound/effects/shovel_dig.ogg', 70, TRUE) @@ -386,7 +386,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.flag == "laser" || P.flag == "energy") H.visible_message("The [P.name] gets reflected by [H]'s glass skin!", \ @@ -443,7 +443,7 @@ if(world.time > last_teleport + teleport_cooldown && user != H) reactive_teleport(H) -/datum/species/golem/bluespace/on_hit(obj/item/projectile/P, mob/living/carbon/human/H) +/datum/species/golem/bluespace/on_hit(obj/projectile/P, mob/living/carbon/human/H) ..() if(world.time > last_teleport + teleport_cooldown) reactive_teleport(H) @@ -542,7 +542,7 @@ new/obj/item/grown/bananapeel/specialpeel(get_turf(H)) last_banana = world.time -/datum/species/golem/bananium/on_hit(obj/item/projectile/P, mob/living/carbon/human/H) +/datum/species/golem/bananium/on_hit(obj/projectile/P, mob/living/carbon/human/H) ..() if(world.time > last_banana + banana_cooldown) new/obj/item/grown/bananapeel/specialpeel(get_turf(H)) @@ -826,7 +826,7 @@ var/last_gong_time = 0 var/gong_cooldown = 150 -/datum/species/golem/bronze/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H) +/datum/species/golem/bronze/bullet_act(obj/projectile/P, mob/living/carbon/human/H) if(!(world.time > last_gong_time + gong_cooldown)) return ..() if(P.flag == "bullet" || P.flag == "bomb") @@ -848,7 +848,7 @@ if(world.time > last_gong_time + gong_cooldown) gong(H) -/datum/species/golem/bronze/on_hit(obj/item/projectile/P, mob/living/carbon/human/H) +/datum/species/golem/bronze/on_hit(obj/projectile/P, mob/living/carbon/human/H) ..() if(world.time > last_gong_time + gong_cooldown) gong(H) diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm index 9044e696b61..337bfe1641e 100644 --- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm @@ -40,9 +40,9 @@ H.reagents.remove_reagent(chem.type, REAGENTS_METABOLISM) return 1 -/datum/species/pod/on_hit(obj/item/projectile/P, mob/living/carbon/human/H) +/datum/species/pod/on_hit(obj/projectile/P, mob/living/carbon/human/H) switch(P.type) - if(/obj/item/projectile/energy/floramut) + if(/obj/projectile/energy/floramut) if(prob(15)) H.rad_act(rand(30,80)) H.Paralyze(100) @@ -56,5 +56,5 @@ else H.adjustFireLoss(rand(5,15)) H.show_message("The radiation beam singes you!") - if(/obj/item/projectile/energy/florayield) + if(/obj/projectile/energy/florayield) H.set_nutrition(min(H.nutrition+30, NUTRITION_LEVEL_FULL)) diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm index ed66f7a9505..1d0e80b6ed8 100644 --- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm @@ -50,7 +50,7 @@ C.fully_replace_character_name("[pick(GLOB.nightmare_names)]") -/datum/species/shadow/nightmare/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H) +/datum/species/shadow/nightmare/bullet_act(obj/projectile/P, mob/living/carbon/human/H) var/turf/T = H.loc if(istype(T)) var/light_amount = T.get_lumcount() diff --git a/code/modules/mob/living/carbon/monkey/combat.dm b/code/modules/mob/living/carbon/monkey/combat.dm index 92d15b8fb4b..ee2806461e3 100644 --- a/code/modules/mob/living/carbon/monkey/combat.dm +++ b/code/modules/mob/living/carbon/monkey/combat.dm @@ -393,8 +393,8 @@ if((W.force) && (!target) && (W.damtype != STAMINA) ) retaliate(user) -/mob/living/carbon/monkey/bullet_act(obj/item/projectile/Proj) - if(istype(Proj , /obj/item/projectile/beam)||istype(Proj, /obj/item/projectile/bullet)) +/mob/living/carbon/monkey/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 && isliving(Proj.firer)) retaliate(Proj.firer) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 756c50931f6..63db1cb9263 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -40,10 +40,10 @@ return FALSE /mob/living/proc/is_pepper_proof(check_head = TRUE, check_mask = TRUE) return FALSE -/mob/living/proc/on_hit(obj/item/projectile/P) +/mob/living/proc/on_hit(obj/projectile/P) return BULLET_ACT_HIT -/mob/living/bullet_act(obj/item/projectile/P, def_zone) +/mob/living/bullet_act(obj/projectile/P, def_zone) var/armor = run_armor_check(def_zone, P.flag, "","",P.armour_penetration) var/on_hit_state = P.on_hit(src, armor) if(!P.nodamage && on_hit_state != BULLET_ACT_BLOCK) @@ -53,7 +53,7 @@ check_projectile_dismemberment(P, def_zone) return on_hit_state ? BULLET_ACT_HIT : BULLET_ACT_BLOCK -/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 /obj/item/proc/get_volume_by_throwforce_and_or_w_class() diff --git a/code/modules/mob/living/living_movement.dm b/code/modules/mob/living/living_movement.dm index 3f181d0fb9d..7512adf58af 100644 --- a/code/modules/mob/living/living_movement.dm +++ b/code/modules/mob/living/living_movement.dm @@ -5,8 +5,8 @@ /mob/living/CanPass(atom/movable/mover, turf/target) if((mover.pass_flags & PASSMOB)) return TRUE - if(istype(mover, /obj/item/projectile)) - var/obj/item/projectile/P = mover + if(istype(mover, /obj/projectile)) + var/obj/projectile/P = mover return !P.can_hit_target(src, P.permutated, src == P.original, TRUE) if(mover.throwing) return (!density || !(mobility_flags & MOBILITY_STAND) || (mover.throwing.thrower == src && !ismob(mover))) diff --git a/code/modules/mob/living/silicon/ai/ai_defense.dm b/code/modules/mob/living/silicon/ai/ai_defense.dm index eff8c3f0a5f..326f5136299 100644 --- a/code/modules/mob/living/silicon/ai/ai_defense.dm +++ b/code/modules/mob/living/silicon/ai/ai_defense.dm @@ -47,7 +47,7 @@ -/mob/living/silicon/ai/bullet_act(obj/item/projectile/Proj) +/mob/living/silicon/ai/bullet_act(obj/projectile/Proj) . = ..(Proj) updatehealth() diff --git a/code/modules/mob/living/silicon/pai/pai_defense.dm b/code/modules/mob/living/silicon/pai/pai_defense.dm index 7d542d7748f..d36c1096645 100644 --- a/code/modules/mob/living/silicon/pai/pai_defense.dm +++ b/code/modules/mob/living/silicon/pai/pai_defense.dm @@ -58,7 +58,7 @@ visible_message("[user] stomps on [src]!.") take_holo_damage(2) -/mob/living/silicon/pai/bullet_act(obj/item/projectile/Proj) +/mob/living/silicon/pai/bullet_act(obj/projectile/Proj) if(Proj.stun) fold_in(force = TRUE) src.visible_message("The electrically-charged projectile disrupts [src]'s holomatrix, forcing [src] to fold in!") diff --git a/code/modules/mob/living/silicon/robot/robot_defense.dm b/code/modules/mob/living/silicon/robot/robot_defense.dm index 93593414a71..d28b6e4f072 100644 --- a/code/modules/mob/living/silicon/robot/robot_defense.dm +++ b/code/modules/mob/living/silicon/robot/robot_defense.dm @@ -181,7 +181,7 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real if (stat != DEAD) adjustBruteLoss(30) -/mob/living/silicon/robot/bullet_act(var/obj/item/projectile/Proj, def_zone) +/mob/living/silicon/robot/bullet_act(obj/projectile/Proj, def_zone) . = ..() updatehealth() if(prob(75) && Proj.damage > 0) diff --git a/code/modules/mob/living/silicon/silicon_defense.dm b/code/modules/mob/living/silicon/silicon_defense.dm index 00bd3ed2a64..13c4364f73c 100644 --- a/code/modules/mob/living/silicon/silicon_defense.dm +++ b/code/modules/mob/living/silicon/silicon_defense.dm @@ -117,7 +117,7 @@ M.visible_message("[M] is thrown off of [src]!") flash_act(affect_silicon = 1) -/mob/living/silicon/bullet_act(obj/item/projectile/Proj, def_zone) +/mob/living/silicon/bullet_act(obj/projectile/Proj, def_zone) SEND_SIGNAL(src, COMSIG_ATOM_BULLET_ACT, Proj, def_zone) if((Proj.damage_type == BRUTE || Proj.damage_type == BURN)) adjustBruteLoss(Proj.damage) diff --git a/code/modules/mob/living/simple_animal/animal_defense.dm b/code/modules/mob/living/simple_animal/animal_defense.dm index 0003b88bb25..fa23090d091 100644 --- a/code/modules/mob/living/simple_animal/animal_defense.dm +++ b/code/modules/mob/living/simple_animal/animal_defense.dm @@ -109,7 +109,7 @@ apply_damage(damage, damagetype, null, getarmor(null, armorcheck)) return TRUE -/mob/living/simple_animal/bullet_act(obj/item/projectile/Proj) +/mob/living/simple_animal/bullet_act(obj/projectile/Proj) apply_damage(Proj.damage, Proj.damage_type) Proj.on_hit(src) return BULLET_ACT_HIT diff --git a/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm b/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm index d7c8d6a175e..c81c71704ea 100644 --- a/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm +++ b/code/modules/mob/living/simple_animal/bot/SuperBeepsky.dm @@ -19,7 +19,7 @@ baton_type = /obj/item/toy/sword weapon_force = 0 -/mob/living/simple_animal/bot/secbot/grievous/bullet_act(obj/item/projectile/P) +/mob/living/simple_animal/bot/secbot/grievous/bullet_act(obj/projectile/P) visible_message("[src] deflects [P] with its energy swords!") playsound(src, 'sound/weapons/blade1.ogg', 50, TRUE) return BULLET_ACT_BLOCK diff --git a/code/modules/mob/living/simple_animal/bot/bot.dm b/code/modules/mob/living/simple_animal/bot/bot.dm index ee6a272ca60..882246e89be 100644 --- a/code/modules/mob/living/simple_animal/bot/bot.dm +++ b/code/modules/mob/living/simple_animal/bot/bot.dm @@ -312,7 +312,7 @@ do_sparks(5, TRUE, 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, TRUE, src) diff --git a/code/modules/mob/living/simple_animal/bot/ed209bot.dm b/code/modules/mob/living/simple_animal/bot/ed209bot.dm index 3ff77ea9677..bb94d59deb9 100644 --- a/code/modules/mob/living/simple_animal/bot/ed209bot.dm +++ b/code/modules/mob/living/simple_animal/bot/ed209bot.dm @@ -1,124 +1,124 @@ -/mob/living/simple_animal/bot/secbot/ed209 - name = "\improper ED-209 Security Robot" - desc = "A security robot. He looks less than thrilled." - icon_state = "ed209" - density = TRUE - health = 100 - maxHealth = 100 - obj_damage = 60 - environment_smash = ENVIRONMENT_SMASH_WALLS //Walls can't stop THE LAW - mob_size = MOB_SIZE_LARGE - - model = "ED-209" - window_id = "autoed209" - window_name = "Automatic Security Unit v2.6" - ranged = TRUE - var/lastfired = 0 - var/shot_delay = 15 - var/shoot_sound = 'sound/weapons/laser.ogg' - var/projectile = /obj/item/projectile/beam/disabler - var/fair_market_projectile = /obj/item/projectile/bullet/c38 // For shooting the worst scumbags of all: the poor - do_footstep = TRUE - -/mob/living/simple_animal/bot/secbot/ed209/Initialize(mapload) - . = ..() - set_weapon() //giving it the right projectile and firing sound. - -/mob/living/simple_animal/bot/secbot/ed209/bot_reset() - ..() - set_weapon() - -/mob/living/simple_animal/bot/secbot/ed209/set_custom_texts() - text_hack = "You disable [name]'s combat inhibitor." - text_dehack = "You restore [name]'s combat inhibitor." - text_dehack_fail = "[name] ignores your attempts to restrict him!" - -/mob/living/simple_animal/bot/secbot/ed209/emag_act(mob/user) - ..() - icon_state = "ed209[on]" - set_weapon() - -/mob/living/simple_animal/bot/secbot/ed209/handle_automated_action() - var/judgement_criteria = judgement_criteria() - var/list/targets = list() - for(var/mob/living/carbon/C in view(7,src)) //Let's find us a target - var/threatlevel = 0 - if(C.incapacitated()) - continue - threatlevel = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons)) - //speak(C.real_name + text(": threat: []", threatlevel)) - if(threatlevel < 4 ) - continue - var/dst = get_dist(src, C) - if(dst <= 1 || dst > 7) - continue - targets += C - if(targets.len>0) - var/mob/living/carbon/t = pick(targets) - if(t.stat != DEAD && !t.handcuffed) //we don't shoot people who are dead, cuffed or lying down. - shootAt(t) - ..() - -/mob/living/simple_animal/bot/secbot/ed209/proc/set_weapon() //used to update the projectile type and firing sound - shoot_sound = 'sound/weapons/laser.ogg' - if(emagged == 2) - projectile = /obj/item/projectile/beam - else - projectile = /obj/item/projectile/beam/disabler - -/mob/living/simple_animal/bot/secbot/ed209/proc/shootAt(mob/target) - if(world.time <= lastfired + shot_delay) - return - lastfired = world.time - var/turf/T = loc - var/turf/U = get_turf(target) - if(!U) - return - if(!isturf(T)) - return - - if(!projectile) - return - - var/obj/item/projectile/A = new projectile (loc) - playsound(src, shoot_sound, 50, TRUE) - A.preparePixelProjectile(target, src) - A.fire() - -/mob/living/simple_animal/bot/secbot/ed209/emp_act(severity) - if(severity == 2 && prob(70)) - severity = 1 - . = ..() - if(. & EMP_PROTECT_SELF) - return - if (severity >= 2) - new /obj/effect/temp_visual/emp(loc) - var/list/mob/living/carbon/targets = new - for(var/mob/living/carbon/C in view(12,src)) - if(C.stat==DEAD) - continue - targets += C - if(targets.len) - if(prob(50)) - var/mob/toshoot = pick(targets) - if(toshoot) - targets-=toshoot - if(prob(50) && emagged < 2) - emagged = 2 - set_weapon() - shootAt(toshoot) - emagged = FALSE - set_weapon() - else - shootAt(toshoot) - else if(prob(50)) - if(targets.len) - var/mob/toarrest = pick(targets) - if(toarrest) - target = toarrest - mode = BOT_HUNT - -/mob/living/simple_animal/bot/secbot/ed209/RangedAttack(atom/A) - if(!on) - return - shootAt(A) +/mob/living/simple_animal/bot/secbot/ed209 + name = "\improper ED-209 Security Robot" + desc = "A security robot. He looks less than thrilled." + icon_state = "ed209" + density = TRUE + health = 100 + maxHealth = 100 + obj_damage = 60 + environment_smash = ENVIRONMENT_SMASH_WALLS //Walls can't stop THE LAW + mob_size = MOB_SIZE_LARGE + + model = "ED-209" + window_id = "autoed209" + window_name = "Automatic Security Unit v2.6" + ranged = TRUE + var/lastfired = 0 + var/shot_delay = 15 + var/shoot_sound = 'sound/weapons/laser.ogg' + var/projectile = /obj/projectile/beam/disabler + var/fair_market_projectile = /obj/projectile/bullet/c38 // For shooting the worst scumbags of all: the poor + do_footstep = TRUE + +/mob/living/simple_animal/bot/secbot/ed209/Initialize(mapload) + . = ..() + set_weapon() //giving it the right projectile and firing sound. + +/mob/living/simple_animal/bot/secbot/ed209/bot_reset() + ..() + set_weapon() + +/mob/living/simple_animal/bot/secbot/ed209/set_custom_texts() + text_hack = "You disable [name]'s combat inhibitor." + text_dehack = "You restore [name]'s combat inhibitor." + text_dehack_fail = "[name] ignores your attempts to restrict him!" + +/mob/living/simple_animal/bot/secbot/ed209/emag_act(mob/user) + ..() + icon_state = "ed209[on]" + set_weapon() + +/mob/living/simple_animal/bot/secbot/ed209/handle_automated_action() + var/judgement_criteria = judgement_criteria() + var/list/targets = list() + for(var/mob/living/carbon/C in view(7,src)) //Let's find us a target + var/threatlevel = 0 + if(C.incapacitated()) + continue + threatlevel = C.assess_threat(judgement_criteria, weaponcheck=CALLBACK(src, .proc/check_for_weapons)) + //speak(C.real_name + text(": threat: []", threatlevel)) + if(threatlevel < 4 ) + continue + var/dst = get_dist(src, C) + if(dst <= 1 || dst > 7) + continue + targets += C + if(targets.len>0) + var/mob/living/carbon/t = pick(targets) + if(t.stat != DEAD && !t.handcuffed) //we don't shoot people who are dead, cuffed or lying down. + shootAt(t) + ..() + +/mob/living/simple_animal/bot/secbot/ed209/proc/set_weapon() //used to update the projectile type and firing sound + shoot_sound = 'sound/weapons/laser.ogg' + if(emagged == 2) + projectile = /obj/projectile/beam + else + projectile = /obj/projectile/beam/disabler + +/mob/living/simple_animal/bot/secbot/ed209/proc/shootAt(mob/target) + if(world.time <= lastfired + shot_delay) + return + lastfired = world.time + var/turf/T = loc + var/turf/U = get_turf(target) + if(!U) + return + if(!isturf(T)) + return + + if(!projectile) + return + + var/obj/projectile/A = new projectile (loc) + playsound(src, shoot_sound, 50, TRUE) + A.preparePixelProjectile(target, src) + A.fire() + +/mob/living/simple_animal/bot/secbot/ed209/emp_act(severity) + if(severity == 2 && prob(70)) + severity = 1 + . = ..() + if(. & EMP_PROTECT_SELF) + return + if (severity >= 2) + new /obj/effect/temp_visual/emp(loc) + var/list/mob/living/carbon/targets = new + for(var/mob/living/carbon/C in view(12,src)) + if(C.stat==DEAD) + continue + targets += C + if(targets.len) + if(prob(50)) + var/mob/toshoot = pick(targets) + if(toshoot) + targets-=toshoot + if(prob(50) && emagged < 2) + emagged = 2 + set_weapon() + shootAt(toshoot) + emagged = FALSE + set_weapon() + else + shootAt(toshoot) + else if(prob(50)) + if(targets.len) + var/mob/toarrest = pick(targets) + if(toarrest) + target = toarrest + mode = BOT_HUNT + +/mob/living/simple_animal/bot/secbot/ed209/RangedAttack(atom/A) + if(!on) + return + shootAt(A) diff --git a/code/modules/mob/living/simple_animal/bot/honkbot.dm b/code/modules/mob/living/simple_animal/bot/honkbot.dm index 3b37295ce98..db367da3d70 100644 --- a/code/modules/mob/living/simple_animal/bot/honkbot.dm +++ b/code/modules/mob/living/simple_animal/bot/honkbot.dm @@ -135,8 +135,8 @@ Maintenance panel panel is [open ? "opened" : "closed"]"}, playsound(src, 'sound/machines/honkbot_evil_laugh.ogg', 75, TRUE, -1) // evil laughter update_icon() -/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) return ..() diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm index 808ebadf9cb..b9040bc4bb5 100644 --- a/code/modules/mob/living/simple_animal/bot/mulebot.dm +++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm @@ -152,7 +152,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)) diff --git a/code/modules/mob/living/simple_animal/bot/secbot.dm b/code/modules/mob/living/simple_animal/bot/secbot.dm index 29482e7939b..ac5ec134f7d 100644 --- a/code/modules/mob/living/simple_animal/bot/secbot.dm +++ b/code/modules/mob/living/simple_animal/bot/secbot.dm @@ -222,8 +222,8 @@ Auto Patrol: []"}, declare_arrests = FALSE update_icon() -/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 && ishuman(Proj.firer)) retaliate(Proj.firer) diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index 99b50eeee4d..a9954e0a609 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -144,8 +144,8 @@ AIStatus = AI_ON environment_smash = ENVIRONMENT_SMASH_STRUCTURES //only token destruction, don't smash the cult wall NO STOP -/mob/living/simple_animal/hostile/construct/armored/bullet_act(obj/item/projectile/P) - if(istype(P, /obj/item/projectile/energy) || istype(P, /obj/item/projectile/beam)) +/mob/living/simple_animal/hostile/construct/armored/bullet_act(obj/projectile/P) + if(istype(P, /obj/projectile/energy) || istype(P, /obj/projectile/beam)) var/reflectchance = 40 - round(P.damage/3) if(prob(reflectchance)) apply_damage(P.damage * 0.5, P.damage_type) diff --git a/code/modules/mob/living/simple_animal/guardian/types/ranged.dm b/code/modules/mob/living/simple_animal/guardian/types/ranged.dm index 9619d657917..0f1351467a7 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/ranged.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/ranged.dm @@ -1,5 +1,5 @@ //Ranged -/obj/item/projectile/guardian +/obj/projectile/guardian name = "crystal spray" icon_state = "guardian" damage = 5 @@ -12,7 +12,7 @@ melee_damage_lower = 10 melee_damage_upper = 10 damage_coeff = list(BRUTE = 0.9, BURN = 0.9, TOX = 0.9, CLONE = 0.9, STAMINA = 0, OXY = 0.9) - projectiletype = /obj/item/projectile/guardian + projectiletype = /obj/projectile/guardian ranged_cooldown_time = 1 //fast! projectilesound = 'sound/effects/hit_on_shattered_glass.ogg' ranged = 1 @@ -54,8 +54,8 @@ /mob/living/simple_animal/hostile/guardian/ranged/Shoot(atom/targeted_atom) . = ..() - if(istype(., /obj/item/projectile)) - var/obj/item/projectile/P = . + if(istype(., /obj/projectile)) + var/obj/projectile/P = . if(namedatum) P.color = namedatum.colour diff --git a/code/modules/mob/living/simple_animal/hostile/alien.dm b/code/modules/mob/living/simple_animal/hostile/alien.dm index 9ecf08983aa..7c5a128b3c0 100644 --- a/code/modules/mob/living/simple_animal/hostile/alien.dm +++ b/code/modules/mob/living/simple_animal/hostile/alien.dm @@ -69,7 +69,7 @@ ranged = 1 retreat_distance = 5 minimum_distance = 5 - projectiletype = /obj/item/projectile/neurotox + projectiletype = /obj/projectile/neurotox projectilesound = 'sound/weapons/pierce.ogg' @@ -88,7 +88,7 @@ move_to_delay = 4 butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/xeno = 4, /obj/item/stack/sheet/animalhide/xeno = 1) - projectiletype = /obj/item/projectile/neurotox + projectiletype = /obj/projectile/neurotox projectilesound = 'sound/weapons/pierce.ogg' status_flags = 0 unique_name = 0 @@ -141,7 +141,7 @@ mob_size = MOB_SIZE_LARGE gold_core_spawnable = NO_SPAWN -/obj/item/projectile/neurotox +/obj/projectile/neurotox name = "neurotoxin" damage = 30 icon_state = "toxin" diff --git a/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm b/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm index 92dc436a019..633fb6f018e 100644 --- a/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm +++ b/code/modules/mob/living/simple_animal/hostile/bosses/paperwizard.dm @@ -18,7 +18,7 @@ health = 1000 maxHealth = 1000 loot = list(/obj/effect/temp_visual/paperwiz_dying) - projectiletype = /obj/item/projectile/temp + projectiletype = /obj/projectile/temp projectilesound = 'sound/weapons/emitter.ogg' attack_sound = 'sound/hallucinations/growl1.ogg' var/list/copies = list() diff --git a/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm b/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm index 18b6807e4a6..41fd54bb6c9 100644 --- a/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm +++ b/code/modules/mob/living/simple_animal/hostile/dark_wizard.dm @@ -5,7 +5,7 @@ icon_state = "dark_wizard" icon_living = "dark_wizard" move_to_delay = 10 - projectiletype = /obj/item/projectile/temp/earth_bolt + projectiletype = /obj/projectile/temp/earth_bolt projectilesound = 'sound/magic/ethereal_enter.ogg' ranged = TRUE ranged_message = "earth bolts" @@ -28,11 +28,11 @@ weather_immunities = list("lava","ash") minbodytemp = 0 maxbodytemp = INFINITY - 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) + 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) loot = list(/obj/effect/decal/remains/human) del_on_death = TRUE -/obj/item/projectile/temp/earth_bolt +/obj/projectile/temp/earth_bolt name = "earth bolt" icon_state = "declone" damage = 4 diff --git a/code/modules/mob/living/simple_animal/hostile/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebot.dm index 578ba46b114..1b12a0f944d 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebot.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebot.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/hivebotbullet +/obj/projectile/hivebotbullet damage = 10 damage_type = BRUTE @@ -19,7 +19,7 @@ attacktext = "claws" attack_sound = 'sound/weapons/bladeslice.ogg' projectilesound = 'sound/weapons/gun/pistol/shot.ogg' - projectiletype = /obj/item/projectile/hivebotbullet + projectiletype = /obj/projectile/hivebotbullet faction = list("hivebot") check_friendly_fire = 1 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) diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index f4a2f2d7f34..13fa159a387 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -118,7 +118,7 @@ FindTarget(list(user), 1) return ..() -/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) @@ -409,7 +409,7 @@ playsound(src, projectilesound, 100, TRUE) casing.fire_casing(targeted_atom, src, null, null, null, ran_zone(), 0, src) else if(projectiletype) - var/obj/item/projectile/P = new projectiletype(startloc) + var/obj/projectile/P = new projectiletype(startloc) playsound(src, projectilesound, 100, TRUE) P.starting = startloc P.firer = src diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm index afb7bbe3c1d..ca20117bd3b 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/leaper.dm @@ -14,7 +14,7 @@ maxHealth = 300 health = 300 ranged = TRUE - projectiletype = /obj/item/projectile/leaper + projectiletype = /obj/projectile/leaper projectilesound = 'sound/weapons/pierce.ogg' ranged_cooldown_time = 30 pixel_x = -16 @@ -28,7 +28,7 @@ do_footstep = TRUE -/obj/item/projectile/leaper +/obj/projectile/leaper name = "leaper bubble" icon_state = "leaper" paralyze = 50 @@ -38,7 +38,7 @@ nondirectional_sprite = TRUE impact_effect_type = /obj/effect/temp_visual/leaper_projectile_impact -/obj/item/projectile/leaper/on_hit(atom/target, blocked = FALSE) +/obj/projectile/leaper/on_hit(atom/target, blocked = FALSE) ..() if(iscarbon(target)) var/mob/living/carbon/C = target @@ -48,7 +48,7 @@ var/mob/living/simple_animal/L = target L.adjustHealth(25) -/obj/item/projectile/leaper/on_range() +/obj/projectile/leaper/on_range() var/turf/T = get_turf(src) ..() new /obj/structure/leaper_bubble(T) diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm b/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm index 72183b354af..a440920b6eb 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/mega_arachnid.dm @@ -20,7 +20,7 @@ speak_emote = list("chitters") attack_sound = 'sound/weapons/bladeslice.ogg' ranged_cooldown_time = 60 - projectiletype = /obj/item/projectile/mega_arachnid + projectiletype = /obj/projectile/mega_arachnid projectilesound = 'sound/weapons/pierce.ogg' alpha = 50 @@ -48,13 +48,13 @@ ..() alpha = 50 -/obj/item/projectile/mega_arachnid +/obj/projectile/mega_arachnid name = "flesh snare" nodamage = TRUE damage = 0 icon_state = "tentacle_end" -/obj/item/projectile/mega_arachnid/on_hit(atom/target, blocked = FALSE) +/obj/projectile/mega_arachnid/on_hit(atom/target, blocked = FALSE) if(iscarbon(target) && blocked < 100) var/obj/item/restraints/legcuffs/beartrap/mega_arachnid/B = new /obj/item/restraints/legcuffs/beartrap/mega_arachnid(get_turf(target)) B.Crossed(target) diff --git a/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm b/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm index fa49257efba..09113a6dc55 100644 --- a/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm +++ b/code/modules/mob/living/simple_animal/hostile/jungle/seedling.dm @@ -25,7 +25,7 @@ aggro_vision_range = 15 ranged = TRUE ranged_cooldown_time = 10 - projectiletype = /obj/item/projectile/seedling + projectiletype = /obj/projectile/seedling projectilesound = 'sound/weapons/pierce.ogg' robust_searching = TRUE stat_attack = UNCONSCIOUS @@ -35,7 +35,7 @@ var/mob/living/beam_debuff_target var/solar_beam_identifier = 0 -/obj/item/projectile/seedling +/obj/projectile/seedling name = "solar energy" icon_state = "seedling" damage = 10 @@ -47,7 +47,7 @@ hitsound_wall = 'sound/weapons/effects/searwall.ogg' nondirectional_sprite = TRUE -/obj/item/projectile/seedling/Bump(atom/A)//Stops seedlings from destroying other jungle mobs through FF +/obj/projectile/seedling/Bump(atom/A)//Stops seedlings from destroying other jungle mobs through FF if(isliving(A)) var/mob/living/L = A if("jungle" in L.faction) @@ -181,7 +181,7 @@ Shoot(target) return var/turf/our_turf = get_turf(src) - var/obj/item/projectile/seedling/readied_shot = new /obj/item/projectile/seedling(our_turf) + var/obj/projectile/seedling/readied_shot = new /obj/projectile/seedling(our_turf) readied_shot.preparePixelProjectile(target, src, null, rand(-10, 10)) readied_shot.fire() playsound(src, projectilesound, 100, TRUE) 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 909fa4151ae..3c3ac9a71b6 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 @@ -34,7 +34,7 @@ Difficulty: Medium speak_emote = list("roars") speed = 3 move_to_delay = 3 - projectiletype = /obj/item/projectile/kinetic/miner + projectiletype = /obj/projectile/kinetic/miner projectilesound = 'sound/weapons/kenetic_accel.ogg' ranged = TRUE ranged_cooldown_time = 16 @@ -111,7 +111,7 @@ Difficulty: Medium ..() target.stun_absorption -= "miner" -/obj/item/projectile/kinetic/miner +/obj/projectile/kinetic/miner damage = 20 speed = 0.9 icon_state = "ka_tracer" 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 eec07745a8b..51ccefd463d 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/bubblegum.dm @@ -417,7 +417,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) 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 78c785a7d4e..3d681446750 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -171,7 +171,7 @@ Difficulty: Very Hard if(!isnum(set_angle) && (!marker || marker == loc)) return var/turf/startloc = get_turf(src) - var/obj/item/projectile/P = new /obj/item/projectile/colossus(startloc) + var/obj/projectile/P = new /obj/projectile/colossus(startloc) P.preparePixelProjectile(marker, startloc) P.firer = src if(target) @@ -233,7 +233,7 @@ Difficulty: Very Hard target = new_target INVOKE_ASYNC(src, /atom/movable/proc/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) var/obj/effect/temp_visual/at_shield/AT = new /obj/effect/temp_visual/at_shield(loc, src) var/random_x = rand(-32, 32) @@ -243,7 +243,7 @@ Difficulty: Very Hard AT.pixel_y += random_y return ..() -/obj/item/projectile/colossus +/obj/projectile/colossus name ="death bolt" icon_state= "chronobolt" damage = 25 @@ -253,7 +253,7 @@ Difficulty: Very Hard damage_type = BRUTE pass_flags = PASSTABLE -/obj/item/projectile/colossus/on_hit(atom/target, blocked = FALSE) +/obj/projectile/colossus/on_hit(atom/target, blocked = FALSE) . = ..() if(isturf(target) || isobj(target)) target.ex_act(EXPLODE_HEAVY) @@ -426,9 +426,9 @@ Difficulty: Very Hard ActivationReaction(user, ACTIVATE_WEAPON) ..() -/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, ACTIVATE_MAGIC, P.damage_type) return ActivationReaction(P.firer, P.flag, P.damage_type) @@ -541,18 +541,18 @@ Difficulty: Very Hard observer_desc = "This crystal generates a projectile when activated." activation_method = ACTIVATE_TOUCH cooldown_add = 50 - var/obj/item/projectile/generated_projectile = /obj/item/projectile/beam/emitter + var/obj/projectile/generated_projectile = /obj/projectile/beam/emitter /obj/machinery/anomalous_crystal/emitter/Initialize() . = ..() - generated_projectile = pick(/obj/item/projectile/colossus) + generated_projectile = pick(/obj/projectile/colossus) var/proj_name = initial(generated_projectile.name) observer_desc = "This crystal generates \a [proj_name] when activated." /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.setDir(dir) switch(dir) if(NORTH) @@ -689,7 +689,7 @@ Difficulty: Very Hard activation_method = ACTIVATE_TOUCH cooldown_add = 50 activation_sound = 'sound/magic/timeparadox2.ogg' - var/static/list/banned_items_typecache = typecacheof(list(/obj/item/storage, /obj/item/implant, /obj/item/implanter, /obj/item/disk/nuclear, /obj/item/projectile, /obj/item/spellbook)) + var/static/list/banned_items_typecache = typecacheof(list(/obj/item/storage, /obj/item/implant, /obj/item/implanter, /obj/item/disk/nuclear, /obj/projectile, /obj/item/spellbook)) /obj/machinery/anomalous_crystal/refresher/ActivationReaction(mob/user, method) if(..()) 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 ce7503db84f..c2fac4e9fb1 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -530,8 +530,8 @@ Difficulty: Hard return FALSE if(mover == caster.pulledby) return TRUE - if(istype(mover, /obj/item/projectile)) - var/obj/item/projectile/P = mover + if(istype(mover, /obj/projectile)) + var/obj/projectile/P = mover if(P.firer == caster) return TRUE if(mover == caster) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm index 9935fb40aa4..8103ebf3c74 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm @@ -317,7 +317,7 @@ layer = ABOVE_OBJ_LAYER armor = list("melee" = 0, "bullet" = 0, "laser" = 100,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) ///What kind of projectile the actual damaging part should be. - var/projectile_type = /obj/item/projectile/beam/legion + var/projectile_type = /obj/projectile/beam/legion ///Time until the tracer gets shot var/initial_firing_time = 18 ///How long it takes between shooting the tracer and the projectile. @@ -355,14 +355,14 @@ ///Called shot_delay after the turret shot the tracer. Shoots a projectile into the same direction. /obj/structure/legionturret/proc/fire_beam(angle) - var/obj/item/projectile/ouchie = new projectile_type(loc) + var/obj/projectile/ouchie = new projectile_type(loc) ouchie.firer = src ouchie.fire(angle) playsound(src, 'sound/effects/bin_close.ogg', 100, TRUE) QDEL_IN(src, 5) ///Used for the legion turret. -/obj/item/projectile/beam/legion +/obj/projectile/beam/legion name = "blood pulse" hitsound = 'sound/magic/magic_missile.ogg' damage = 19 diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm index 5850734ff07..2539098f3f7 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/swarmer.dm @@ -238,7 +238,7 @@ GLOBAL_LIST_INIT(AISwarmerCapsByType, list(/mob/living/simple_animal/hostile/swa /mob/living/simple_animal/hostile/swarmer/ai/ranged_combat icon_state = "swarmer_ranged" icon_living = "swarmer_ranged" - projectiletype = /obj/item/projectile/beam/laser + projectiletype = /obj/projectile/beam/laser projectilesound = 'sound/weapons/laser.ogg' check_friendly_fire = TRUE //you're supposed to protect the resource swarmers, you poop retreat_distance = 3 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm index dc0c8cf0c3e..c6e4fb623cd 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm @@ -10,7 +10,7 @@ icon_gib = "syndicate_gib" mob_biotypes = MOB_ORGANIC|MOB_BEAST move_to_delay = 20 - projectiletype = /obj/item/projectile/temp/basilisk + projectiletype = /obj/projectile/temp/basilisk projectilesound = 'sound/weapons/pierce.ogg' ranged = 1 ranged_message = "stares" @@ -35,7 +35,7 @@ loot = list(/obj/item/stack/ore/diamond{layer = ABOVE_MOB_LAYER}, /obj/item/stack/ore/diamond{layer = ABOVE_MOB_LAYER}) -/obj/item/projectile/temp/basilisk +/obj/projectile/temp/basilisk name = "freezing blast" icon_state = "ice_2" damage = 0 @@ -103,7 +103,7 @@ light_range = 3 light_power = 2.5 light_color = LIGHT_COLOR_LAVA - projectiletype = /obj/item/projectile/temp/basilisk/magmawing + projectiletype = /obj/projectile/temp/basilisk/magmawing crusher_loot = /obj/item/crusher_trophy/blaster_tubes/magma_wing crusher_drop_mod = 60 @@ -116,12 +116,12 @@ icon_dead = "watcher_icewing_dead" maxHealth = 170 health = 170 - projectiletype = /obj/item/projectile/temp/basilisk/icewing + projectiletype = /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 = 30 -/obj/item/projectile/temp/basilisk/magmawing +/obj/projectile/temp/basilisk/magmawing name = "scorching blast" icon_state = "lava" damage = 5 @@ -129,7 +129,7 @@ nodamage = FALSE temperature = 500 //Heats you up! -/obj/item/projectile/temp/basilisk/magmawing/on_hit(atom/target, blocked = FALSE) +/obj/projectile/temp/basilisk/magmawing/on_hit(atom/target, blocked = FALSE) . = ..() if(.) var/mob/living/L = target @@ -137,12 +137,12 @@ L.adjust_fire_stacks(0.1) L.IgniteMob() -/obj/item/projectile/temp/basilisk/icewing +/obj/projectile/temp/basilisk/icewing damage = 5 damage_type = BURN 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/simple_animal/hostile/mining_mobs/curse_blob.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm index 5663d0addd3..5115018b93a 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/curse_blob.dm @@ -73,8 +73,8 @@ /mob/living/simple_animal/hostile/asteroid/curseblob/CanPass(atom/movable/mover, turf/target) if(mover == set_target) return FALSE - if(istype(mover, /obj/item/projectile)) - var/obj/item/projectile/P = mover + if(istype(mover, /obj/projectile)) + var/obj/projectile/P = mover if(P.firer == set_target) return FALSE return TRUE @@ -95,7 +95,7 @@ IGNORE_PROC_IF_NOT_TARGET(attack_animal) IGNORE_PROC_IF_NOT_TARGET(attack_slime) -/mob/living/simple_animal/hostile/asteroid/curseblob/bullet_act(obj/item/projectile/Proj) +/mob/living/simple_animal/hostile/asteroid/curseblob/bullet_act(obj/projectile/Proj) if(Proj.firer != set_target) return return ..() diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm index 20650ad3472..fef11e0e2eb 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm @@ -72,7 +72,7 @@ visible_message("The [name] buries into the ground, vanishing from sight!") qdel(src) -/mob/living/simple_animal/hostile/asteroid/goldgrub/bullet_act(obj/item/projectile/P) +/mob/living/simple_animal/hostile/asteroid/goldgrub/bullet_act(obj/projectile/P) visible_message("The [P.name] was repelled by [name]'s girth!") return BULLET_ACT_BLOCK diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm index 9e7b5f22cca..1c8e12c6b1d 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/mining_mobs.dm @@ -37,7 +37,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) Aggro() if(P.damage < 30 && P.damage_type != BRUTE) diff --git a/code/modules/mob/living/simple_animal/hostile/mushroom.dm b/code/modules/mob/living/simple_animal/hostile/mushroom.dm index c7ecf51c707..a58c17c5790 100644 --- a/code/modules/mob/living/simple_animal/hostile/mushroom.dm +++ b/code/modules/mob/living/simple_animal/hostile/mushroom.dm @@ -177,7 +177,7 @@ if(T.throwforce) Bruise() -/mob/living/simple_animal/hostile/mushroom/bullet_act(obj/item/projectile/P) +/mob/living/simple_animal/hostile/mushroom/bullet_act(obj/projectile/P) . = ..() if(P.nodamage) Bruise() diff --git a/code/modules/mob/living/simple_animal/hostile/pirate.dm b/code/modules/mob/living/simple_animal/hostile/pirate.dm index 8f245fb0b6a..eef1e93b791 100644 --- a/code/modules/mob/living/simple_animal/hostile/pirate.dm +++ b/code/modules/mob/living/simple_animal/hostile/pirate.dm @@ -76,7 +76,7 @@ rapid_fire_delay = 6 retreat_distance = 5 minimum_distance = 5 - projectiletype = /obj/item/projectile/beam/laser + projectiletype = /obj/projectile/beam/laser loot = list(/obj/effect/mob_spawn/human/corpse/pirate/ranged, /obj/item/gun/energy/laser) diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index 701d18f2557..48519da15ef 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -131,7 +131,7 @@ QDEL_NULL(sord) return ..() -/mob/living/simple_animal/hostile/syndicate/melee/bullet_act(obj/item/projectile/Proj) +/mob/living/simple_animal/hostile/syndicate/melee/bullet_act(obj/projectile/Proj) if(prob(projectile_deflect_chance)) visible_message("[src] blocks [Proj] with its shield!") return BULLET_ACT_BLOCK diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index d85f88bf60b..edfb402a397 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -336,7 +336,7 @@ return //Bullets -/mob/living/simple_animal/parrot/bullet_act(obj/item/projectile/Proj) +/mob/living/simple_animal/parrot/bullet_act(obj/projectile/Proj) . = ..() if(!stat && !client) if(parrot_state == PARROT_PERCH) diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index dff513f4c61..05f365de1e9 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -250,7 +250,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) attacked += 10 if((Proj.damage_type == BURN)) adjustBruteLoss(-abs(Proj.damage)) //fire projectiles heals slimes. diff --git a/code/modules/modular_computers/computers/machinery/modular_computer.dm b/code/modules/modular_computers/computers/machinery/modular_computer.dm index 3331badb110..b3378679d7d 100644 --- a/code/modules/modular_computers/computers/machinery/modular_computer.dm +++ b/code/modules/modular_computers/computers/machinery/modular_computer.dm @@ -156,6 +156,6 @@ // "Stun" weapons can cause minor damage to components (short-circuits?) // "Burn" damage is equally strong against internal components and exterior casing // "Brute" damage mostly damages the casing. -/obj/machinery/modular_computer/bullet_act(obj/item/projectile/Proj) +/obj/machinery/modular_computer/bullet_act(obj/projectile/Proj) if(cpu) cpu.bullet_act(Proj) diff --git a/code/modules/power/rtg.dm b/code/modules/power/rtg.dm index 4fd1b278c02..c76ba78cb05 100644 --- a/code/modules/power/rtg.dm +++ b/code/modules/power/rtg.dm @@ -78,7 +78,7 @@ tesla_zap(src, 5, power_gen * 0.05) addtimer(CALLBACK(GLOBAL_PROC, .proc/explosion, get_turf(src), 2, 3, 4, 8), 100) // Not a normal explosion. -/obj/machinery/power/rtg/abductor/bullet_act(obj/item/projectile/Proj) +/obj/machinery/power/rtg/abductor/bullet_act(obj/projectile/Proj) . = ..() if(!going_kaboom && istype(Proj) && !Proj.nodamage && ((Proj.damage_type == BURN) || (Proj.damage_type == BRUTE))) log_bomber(Proj.firer, "triggered a", src, "explosion via projectile") diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index 4cefc54e3d4..0fe97ea5ea5 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -31,7 +31,7 @@ var/locked = FALSE var/allow_switch_interact = TRUE - var/projectile_type = /obj/item/projectile/beam/emitter + var/projectile_type = /obj/projectile/beam/emitter var/projectile_sound = 'sound/weapons/emitter.ogg' var/datum/effect_system/spark_spread/sparks @@ -204,7 +204,7 @@ fire_beam() /obj/machinery/power/emitter/proc/fire_beam(mob/user) - 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/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm index 858d4cc3630..87ba3bc0e86 100644 --- a/code/modules/power/singularity/field_generator.dm +++ b/code/modules/power/singularity/field_generator.dm @@ -159,7 +159,7 @@ field_generator power 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") power = min(power + Proj.damage, field_generator_max_power) check_power_level() diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index e60e4d1d57c..27ab3ed300b 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -112,7 +112,7 @@ return -/obj/singularity/bullet_act(obj/item/projectile/P) +/obj/singularity/bullet_act(obj/projectile/P) qdel(P) return BULLET_ACT_HIT //Will there be an impact? Who knows. Will we see it? No. diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index 34592cca4bd..d645513f9e0 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -512,7 +512,7 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal) return 1 -/obj/machinery/power/supermatter_crystal/bullet_act(obj/item/projectile/Proj) +/obj/machinery/power/supermatter_crystal/bullet_act(obj/projectile/Proj) var/turf/L = loc if(!istype(L)) return FALSE diff --git a/code/modules/projectiles/ammunition/_ammunition.dm b/code/modules/projectiles/ammunition/_ammunition.dm index a3ad1a43ee1..8cc82ddf9cf 100644 --- a/code/modules/projectiles/ammunition/_ammunition.dm +++ b/code/modules/projectiles/ammunition/_ammunition.dm @@ -11,7 +11,7 @@ var/fire_sound = null //What sound should play when this ammo is fired 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/randomspread = 0 //Randomspread for automatics diff --git a/code/modules/projectiles/ammunition/ballistic/lmg.dm b/code/modules/projectiles/ammunition/ballistic/lmg.dm index 06e43ebecd0..2ef9a8047ba 100644 --- a/code/modules/projectiles/ammunition/ballistic/lmg.dm +++ b/code/modules/projectiles/ammunition/ballistic/lmg.dm @@ -5,19 +5,19 @@ desc = "A 7.12x82mm bullet casing." icon_state = "762-casing" caliber = "mm71282" - projectile_type = /obj/item/projectile/bullet/mm712x82 + projectile_type = /obj/projectile/bullet/mm712x82 /obj/item/ammo_casing/mm712x82/ap name = "7.12x82mm armor-piercing bullet casing" desc = "A 7.12x82mm bullet casing designed with a hardened-tipped core to help penetrate armored targets." - projectile_type = /obj/item/projectile/bullet/mm712x82_ap + projectile_type = /obj/projectile/bullet/mm712x82_ap /obj/item/ammo_casing/mm712x82/hollow name = "7.12x82mm hollow-point bullet casing" desc = "A 7.12x82mm bullet casing designed to cause more damage to unarmored targets." - projectile_type = /obj/item/projectile/bullet/mm712x82_hp + projectile_type = /obj/projectile/bullet/mm712x82_hp /obj/item/ammo_casing/mm712x82/incen name = "7.12x82mm incendiary bullet casing" desc = "A 7.12x82mm bullet casing designed with a chemical-filled capsule on the tip that when bursted, reacts with the atmosphere to produce a fireball, engulfing the target in flames." - projectile_type = /obj/item/projectile/bullet/incendiary/mm712x82 + projectile_type = /obj/projectile/bullet/incendiary/mm712x82 diff --git a/code/modules/projectiles/ammunition/ballistic/pistol.dm b/code/modules/projectiles/ammunition/ballistic/pistol.dm index d4fa3a79ae3..d58e0ca1bdd 100644 --- a/code/modules/projectiles/ammunition/ballistic/pistol.dm +++ b/code/modules/projectiles/ammunition/ballistic/pistol.dm @@ -4,22 +4,22 @@ name = "10mm bullet casing" desc = "A 10mm bullet casing." caliber = "10mm" - projectile_type = /obj/item/projectile/bullet/c10mm + projectile_type = /obj/projectile/bullet/c10mm /obj/item/ammo_casing/c10mm/ap name = "10mm armor-piercing bullet casing" desc = "A 10mm armor-piercing bullet casing." - projectile_type = /obj/item/projectile/bullet/c10mm_ap + projectile_type = /obj/projectile/bullet/c10mm_ap /obj/item/ammo_casing/c10mm/hp name = "10mm hollow-point bullet casing" desc = "A 10mm hollow-point bullet casing." - projectile_type = /obj/item/projectile/bullet/c10mm_hp + projectile_type = /obj/projectile/bullet/c10mm_hp /obj/item/ammo_casing/c10mm/fire name = "10mm incendiary bullet casing" desc = "A 10mm incendiary bullet casing." - projectile_type = /obj/item/projectile/bullet/incendiary/c10mm + projectile_type = /obj/projectile/bullet/incendiary/c10mm // 9mm (Stechkin APS) @@ -27,17 +27,17 @@ name = "9mm bullet casing" desc = "A 9mm bullet casing." caliber = "9mm" - projectile_type = /obj/item/projectile/bullet/c9mm + projectile_type = /obj/projectile/bullet/c9mm /obj/item/ammo_casing/c9mm/ap name = "9mm armor-piercing bullet casing" desc = "A 9mm armor-piercing bullet casing." - projectile_type =/obj/item/projectile/bullet/c9mm_ap + projectile_type =/obj/projectile/bullet/c9mm_ap /obj/item/ammo_casing/c9mm/inc name = "9mm incendiary bullet casing" desc = "A 9mm incendiary bullet casing." - projectile_type = /obj/item/projectile/bullet/incendiary/c9mm + projectile_type = /obj/projectile/bullet/incendiary/c9mm // .50AE (Desert Eagle) @@ -46,5 +46,5 @@ name = ".50AE bullet casing" desc = "A .50AE bullet casing." caliber = ".50" - projectile_type = /obj/item/projectile/bullet/a50AE + projectile_type = /obj/projectile/bullet/a50AE diff --git a/code/modules/projectiles/ammunition/ballistic/revolver.dm b/code/modules/projectiles/ammunition/ballistic/revolver.dm index 46adbfbc5c9..df118602cc3 100644 --- a/code/modules/projectiles/ammunition/ballistic/revolver.dm +++ b/code/modules/projectiles/ammunition/ballistic/revolver.dm @@ -4,7 +4,7 @@ name = ".357 bullet casing" desc = "A .357 bullet casing." caliber = "357" - projectile_type = /obj/item/projectile/bullet/a357 + projectile_type = /obj/projectile/bullet/a357 // 7.62x38mmR (Nagant Revolver) @@ -12,7 +12,7 @@ name = "7.62x38mmR bullet casing" desc = "A 7.62x38mmR bullet casing." caliber = "n762" - projectile_type = /obj/item/projectile/bullet/n762 + projectile_type = /obj/projectile/bullet/n762 // .38 (Detective's Gun) @@ -20,21 +20,21 @@ name = ".38 bullet casing" desc = "A .38 bullet casing." caliber = "38" - projectile_type = /obj/item/projectile/bullet/c38 + projectile_type = /obj/projectile/bullet/c38 /obj/item/ammo_casing/c38/trac name = ".38 TRAC bullet casing" desc = "A .38 \"TRAC\" bullet casing." - projectile_type = /obj/item/projectile/bullet/c38/trac + projectile_type = /obj/projectile/bullet/c38/trac /obj/item/ammo_casing/c38/hotshot name = ".38 Hot Shot bullet casing" desc = "A .38 Hot Shot bullet casing." caliber = "38" - projectile_type = /obj/item/projectile/bullet/c38/hotshot + projectile_type = /obj/projectile/bullet/c38/hotshot /obj/item/ammo_casing/c38/iceblox name = ".38 Iceblox bullet casing" desc = "A .38 Iceblox bullet casing." caliber = "38" - projectile_type = /obj/item/projectile/bullet/c38/iceblox + projectile_type = /obj/projectile/bullet/c38/iceblox diff --git a/code/modules/projectiles/ammunition/ballistic/rifle.dm b/code/modules/projectiles/ammunition/ballistic/rifle.dm index a35cfcba1c7..31292cfac06 100644 --- a/code/modules/projectiles/ammunition/ballistic/rifle.dm +++ b/code/modules/projectiles/ammunition/ballistic/rifle.dm @@ -5,10 +5,10 @@ desc = "A 7.62 bullet casing." icon_state = "762-casing" caliber = "a762" - projectile_type = /obj/item/projectile/bullet/a762 + projectile_type = /obj/projectile/bullet/a762 /obj/item/ammo_casing/a762/enchanted - projectile_type = /obj/item/projectile/bullet/a762_enchanted + projectile_type = /obj/projectile/bullet/a762_enchanted // 5.56mm (M-90gl Carbine) @@ -16,7 +16,7 @@ name = "5.56mm bullet casing" desc = "A 5.56mm bullet casing." caliber = "a556" - projectile_type = /obj/item/projectile/bullet/a556 + projectile_type = /obj/projectile/bullet/a556 // 40mm (Grenade Launcher) @@ -25,4 +25,4 @@ desc = "A cased high explosive grenade that can only be activated once fired out of a grenade launcher." caliber = "40mm" icon_state = "40mmHE" - projectile_type = /obj/item/projectile/bullet/a40mm + projectile_type = /obj/projectile/bullet/a40mm diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm index e345922dc14..a00348061dc 100644 --- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm +++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm @@ -5,27 +5,27 @@ desc = "A 12 gauge lead slug." icon_state = "blshell" caliber = "shotgun" - projectile_type = /obj/item/projectile/bullet/shotgun_slug + projectile_type = /obj/projectile/bullet/shotgun_slug materials = list(/datum/material/iron=4000) /obj/item/ammo_casing/shotgun/beanbag name = "beanbag slug" desc = "A weak beanbag slug for riot control." icon_state = "bshell" - projectile_type = /obj/item/projectile/bullet/shotgun_beanbag + projectile_type = /obj/projectile/bullet/shotgun_beanbag materials = list(/datum/material/iron=250) /obj/item/ammo_casing/shotgun/incendiary name = "incendiary slug" desc = "An incendiary-coated shotgun slug." icon_state = "ishell" - projectile_type = /obj/item/projectile/bullet/incendiary/shotgun + projectile_type = /obj/projectile/bullet/incendiary/shotgun /obj/item/ammo_casing/shotgun/dragonsbreath name = "dragonsbreath shell" desc = "A shotgun shell which fires a spread of incendiary pellets." icon_state = "ishell2" - projectile_type = /obj/item/projectile/bullet/incendiary/shotgun/dragonsbreath + projectile_type = /obj/projectile/bullet/incendiary/shotgun/dragonsbreath pellets = 4 variance = 35 @@ -33,14 +33,14 @@ name = "taser slug" desc = "A stunning taser slug." icon_state = "stunshell" - projectile_type = /obj/item/projectile/bullet/shotgun_stunslug + projectile_type = /obj/projectile/bullet/shotgun_stunslug materials = list(/datum/material/iron=250) /obj/item/ammo_casing/shotgun/meteorslug name = "meteorslug shell" desc = "A shotgun shell rigged with CMC technology, which launches a massive slug when fired." icon_state = "mshell" - projectile_type = /obj/item/projectile/bullet/shotgun_meteorslug + projectile_type = /obj/projectile/bullet/shotgun_meteorslug /obj/item/ammo_casing/shotgun/pulseslug name = "pulse slug" @@ -48,19 +48,19 @@ energy blast. While the heat and power drain limit it to one use, it can still allow an operator to engage targets that ballistic ammunition \ would have difficulty with." icon_state = "pshell" - projectile_type = /obj/item/projectile/beam/pulse/shotgun + projectile_type = /obj/projectile/beam/pulse/shotgun /obj/item/ammo_casing/shotgun/frag12 name = "FRAG-12 slug" desc = "A high explosive breaching round for a 12 gauge shotgun." icon_state = "heshell" - projectile_type = /obj/item/projectile/bullet/shotgun_frag12 + projectile_type = /obj/projectile/bullet/shotgun_frag12 /obj/item/ammo_casing/shotgun/buckshot name = "buckshot shell" desc = "A 12 gauge buckshot shell." icon_state = "gshell" - projectile_type = /obj/item/projectile/bullet/pellet/shotgun_buckshot + projectile_type = /obj/projectile/bullet/pellet/shotgun_buckshot pellets = 6 variance = 25 @@ -68,7 +68,7 @@ name = "rubber shot" desc = "A shotgun casing filled with densely-packed rubber balls, used to incapacitate crowds from a distance." icon_state = "bshell" - projectile_type = /obj/item/projectile/bullet/pellet/shotgun_rubbershot + projectile_type = /obj/projectile/bullet/pellet/shotgun_rubbershot pellets = 6 variance = 25 materials = list(/datum/material/iron=4000) @@ -77,7 +77,7 @@ name = "custom incapacitating shot" desc = "A shotgun casing filled with... something. used to incapacitate targets." icon_state = "bountyshell" - projectile_type = /obj/item/projectile/bullet/pellet/shotgun_incapacitate + projectile_type = /obj/projectile/bullet/pellet/shotgun_incapacitate pellets = 12//double the pellets, but half the stun power of each, which makes this best for just dumping right in someone's face. variance = 25 materials = list(/datum/material/iron=4000) @@ -86,7 +86,7 @@ name = "improvised shell" desc = "An extremely weak shotgun shell with multiple small pellets made out of metal shards." icon_state = "improvshell" - projectile_type = /obj/item/projectile/bullet/pellet/shotgun_improvised + projectile_type = /obj/projectile/bullet/pellet/shotgun_improvised materials = list(/datum/material/iron=250) pellets = 10 variance = 25 @@ -96,7 +96,7 @@ desc = "An advanced shotgun shell which uses a subspace ansible crystal to produce an effect similar to a standard ion rifle. \ The unique properties of the crystal split the pulse into a spread of individually weaker bolts." icon_state = "ionshell" - projectile_type = /obj/item/projectile/ion/weak + projectile_type = /obj/projectile/ion/weak pellets = 4 variance = 35 @@ -104,7 +104,7 @@ name = "scatter laser shell" desc = "An advanced shotgun shell that uses a micro laser to replicate the effects of a scatter laser weapon in a ballistic package." icon_state = "lshell" - projectile_type = /obj/item/projectile/beam/weak + projectile_type = /obj/projectile/beam/weak pellets = 6 variance = 35 @@ -118,7 +118,7 @@ name = "shotgun dart" desc = "A dart for use in shotguns. Can be injected with up to 30 units of any chemical." icon_state = "cshell" - projectile_type = /obj/item/projectile/bullet/dart + projectile_type = /obj/projectile/bullet/dart var/reagent_amount = 30 /obj/item/ammo_casing/shotgun/dart/Initialize() diff --git a/code/modules/projectiles/ammunition/ballistic/smg.dm b/code/modules/projectiles/ammunition/ballistic/smg.dm index c3597a56a30..5c6220f59f2 100644 --- a/code/modules/projectiles/ammunition/ballistic/smg.dm +++ b/code/modules/projectiles/ammunition/ballistic/smg.dm @@ -4,17 +4,17 @@ name = "4.6x30mm bullet casing" desc = "A 4.6x30mm bullet casing." caliber = "4.6x30mm" - projectile_type = /obj/item/projectile/bullet/c46x30mm + projectile_type = /obj/projectile/bullet/c46x30mm /obj/item/ammo_casing/c46x30mm/ap name = "4.6x30mm armor-piercing bullet casing" desc = "A 4.6x30mm armor-piercing bullet casing." - projectile_type = /obj/item/projectile/bullet/c46x30mm_ap + projectile_type = /obj/projectile/bullet/c46x30mm_ap /obj/item/ammo_casing/c46x30mm/inc name = "4.6x30mm incendiary bullet casing" desc = "A 4.6x30mm incendiary bullet casing." - projectile_type = /obj/item/projectile/bullet/incendiary/c46x30mm + projectile_type = /obj/projectile/bullet/incendiary/c46x30mm // .45 (M1911 + C20r) @@ -22,4 +22,4 @@ name = ".45 bullet casing" desc = "A .45 bullet casing." caliber = ".45" - projectile_type = /obj/item/projectile/bullet/c45 + projectile_type = /obj/projectile/bullet/c45 diff --git a/code/modules/projectiles/ammunition/ballistic/sniper.dm b/code/modules/projectiles/ammunition/ballistic/sniper.dm index 30cddedfd8c..9862d1bfabc 100644 --- a/code/modules/projectiles/ammunition/ballistic/sniper.dm +++ b/code/modules/projectiles/ammunition/ballistic/sniper.dm @@ -4,17 +4,17 @@ name = ".50 bullet casing" desc = "A .50 bullet casing." caliber = ".50" - projectile_type = /obj/item/projectile/bullet/p50 + projectile_type = /obj/projectile/bullet/p50 icon_state = ".50" /obj/item/ammo_casing/p50/soporific name = ".50 soporific bullet casing" desc = "A .50 bullet casing, specialised in sending the target to sleep, instead of hell." - projectile_type = /obj/item/projectile/bullet/p50/soporific + projectile_type = /obj/projectile/bullet/p50/soporific icon_state = "sleeper" harmful = FALSE /obj/item/ammo_casing/p50/penetrator name = ".50 penetrator round bullet casing" desc = "A .50 caliber penetrator round casing." - projectile_type = /obj/item/projectile/bullet/p50/penetrator + projectile_type = /obj/projectile/bullet/p50/penetrator diff --git a/code/modules/projectiles/ammunition/caseless/foam.dm b/code/modules/projectiles/ammunition/caseless/foam.dm index a5a3dd23d53..3145358ec8a 100644 --- a/code/modules/projectiles/ammunition/caseless/foam.dm +++ b/code/modules/projectiles/ammunition/caseless/foam.dm @@ -1,7 +1,7 @@ /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 caliber = "foam_force" icon = 'icons/obj/guns/toy.dmi' icon_state = "foamdart" @@ -24,7 +24,7 @@ /obj/item/ammo_casing/caseless/foam_dart/attackby(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 (A.tool_behaviour == TOOL_SCREWDRIVER && !modified) modified = TRUE FD.modified = TRUE @@ -49,7 +49,7 @@ return ..() /obj/item/ammo_casing/caseless/foam_dart/attack_self(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) @@ -60,6 +60,6 @@ /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" materials = list(/datum/material/iron = 1125) diff --git a/code/modules/projectiles/ammunition/caseless/misc.dm b/code/modules/projectiles/ammunition/caseless/misc.dm index a56c430bb13..7a88ba4d405 100644 --- a/code/modules/projectiles/ammunition/caseless/misc.dm +++ b/code/modules/projectiles/ammunition/caseless/misc.dm @@ -3,11 +3,11 @@ desc = "You shouldn't be seeing this." caliber = "laser" icon_state = "s-casing-live" - projectile_type = /obj/item/projectile/beam + projectile_type = /obj/projectile/beam fire_sound = 'sound/weapons/laser.ogg' firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect/energy /obj/item/ammo_casing/caseless/laser/gatling - projectile_type = /obj/item/projectile/beam/weak/penetrator + projectile_type = /obj/projectile/beam/weak/penetrator variance = 0.8 click_cooldown_override = 1 diff --git a/code/modules/projectiles/ammunition/caseless/rocket.dm b/code/modules/projectiles/ammunition/caseless/rocket.dm index bc693d96bc8..50547b996c3 100644 --- a/code/modules/projectiles/ammunition/caseless/rocket.dm +++ b/code/modules/projectiles/ammunition/caseless/rocket.dm @@ -3,17 +3,17 @@ desc = "An 84mm High Explosive rocket. Fire at people and pray." caliber = "84mm" icon_state = "srm-8" - projectile_type = /obj/item/projectile/bullet/a84mm_he + projectile_type = /obj/projectile/bullet/a84mm_he /obj/item/ammo_casing/caseless/rocket/hedp name = "\improper PM-9HEDP" desc = "An 84mm High Explosive Dual Purpose rocket. Pointy end toward mechs." caliber = "84mm" icon_state = "84mm-hedp" - projectile_type = /obj/item/projectile/bullet/a84mm + projectile_type = /obj/projectile/bullet/a84mm /obj/item/ammo_casing/caseless/a75 desc = "A .75 bullet casing." caliber = "75" icon_state = "s-casing-live" - projectile_type = /obj/item/projectile/bullet/gyro + projectile_type = /obj/projectile/bullet/gyro diff --git a/code/modules/projectiles/ammunition/energy/_energy.dm b/code/modules/projectiles/ammunition/energy/_energy.dm index 3a4e457c3d4..1d74358fe66 100644 --- a/code/modules/projectiles/ammunition/energy/_energy.dm +++ b/code/modules/projectiles/ammunition/energy/_energy.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' diff --git a/code/modules/projectiles/ammunition/energy/ebow.dm b/code/modules/projectiles/ammunition/energy/ebow.dm index 8d9c72d1ba0..9715c0a0c6d 100644 --- a/code/modules/projectiles/ammunition/energy/ebow.dm +++ b/code/modules/projectiles/ammunition/energy/ebow.dm @@ -1,12 +1,12 @@ /obj/item/ammo_casing/energy/bolt - projectile_type = /obj/item/projectile/energy/bolt + projectile_type = /obj/projectile/energy/bolt select_name = "bolt" e_cost = 500 fire_sound = 'sound/weapons/genhit.ogg' /obj/item/ammo_casing/energy/bolt/halloween - projectile_type = /obj/item/projectile/energy/bolt/halloween + projectile_type = /obj/projectile/energy/bolt/halloween /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" diff --git a/code/modules/projectiles/ammunition/energy/gravity.dm b/code/modules/projectiles/ammunition/energy/gravity.dm index d8a6a1244de..5e3417e2499 100644 --- a/code/modules/projectiles/ammunition/energy/gravity.dm +++ b/code/modules/projectiles/ammunition/energy/gravity.dm @@ -15,15 +15,15 @@ . = ..() /obj/item/ammo_casing/energy/gravity/repulse - projectile_type = /obj/item/projectile/gravityrepulse + projectile_type = /obj/projectile/gravityrepulse select_name = "repulse" /obj/item/ammo_casing/energy/gravity/attract - projectile_type = /obj/item/projectile/gravityattract + projectile_type = /obj/projectile/gravityattract select_name = "attract" /obj/item/ammo_casing/energy/gravity/chaos - projectile_type = /obj/item/projectile/gravitychaos + projectile_type = /obj/projectile/gravitychaos select_name = "chaos" diff --git a/code/modules/projectiles/ammunition/energy/laser.dm b/code/modules/projectiles/ammunition/energy/laser.dm index 47455e9754f..05b1f05eecd 100644 --- a/code/modules/projectiles/ammunition/energy/laser.dm +++ b/code/modules/projectiles/ammunition/energy/laser.dm @@ -1,14 +1,14 @@ /obj/item/ammo_casing/energy/laser - projectile_type = /obj/item/projectile/beam/laser + projectile_type = /obj/projectile/beam/laser select_name = "kill" /obj/item/ammo_casing/energy/lasergun - projectile_type = /obj/item/projectile/beam/laser + projectile_type = /obj/projectile/beam/laser e_cost = 83 select_name = "kill" /obj/item/ammo_casing/energy/lasergun/old - projectile_type = /obj/item/projectile/beam/laser + projectile_type = /obj/projectile/beam/laser e_cost = 200 select_name = "kill" @@ -16,55 +16,55 @@ 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/scatter/disabler - projectile_type = /obj/item/projectile/beam/disabler + projectile_type = /obj/projectile/beam/disabler pellets = 3 variance = 15 harmful = FALSE /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/pulse - projectile_type = /obj/item/projectile/beam/pulse + projectile_type = /obj/projectile/beam/pulse e_cost = 200 select_name = "DESTROY" 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 select_name = "bluetag" harmful = FALSE /obj/item/ammo_casing/energy/laser/bluetag/hitscan - projectile_type = /obj/item/projectile/beam/lasertag/bluetag/hitscan + projectile_type = /obj/projectile/beam/lasertag/bluetag/hitscan /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/laser/redtag/hitscan - projectile_type = /obj/item/projectile/beam/lasertag/redtag/hitscan + projectile_type = /obj/projectile/beam/lasertag/redtag/hitscan /obj/item/ammo_casing/energy/xray - projectile_type = /obj/item/projectile/beam/xray + projectile_type = /obj/projectile/beam/xray e_cost = 50 fire_sound = 'sound/weapons/laser3.ogg' /obj/item/ammo_casing/energy/mindflayer - projectile_type = /obj/item/projectile/beam/mindflayer + projectile_type = /obj/projectile/beam/mindflayer select_name = "MINDFUCK" fire_sound = 'sound/weapons/laser.ogg' diff --git a/code/modules/projectiles/ammunition/energy/lmg.dm b/code/modules/projectiles/ammunition/energy/lmg.dm index cf894ca56dd..864cb13b43c 100644 --- a/code/modules/projectiles/ammunition/energy/lmg.dm +++ b/code/modules/projectiles/ammunition/energy/lmg.dm @@ -1,5 +1,5 @@ /obj/item/ammo_casing/energy/c3dbullet - projectile_type = /obj/item/projectile/bullet/c3d + projectile_type = /obj/projectile/bullet/c3d select_name = "spraydown" fire_sound = 'sound/weapons/gun/smg/shot.ogg' e_cost = 20 diff --git a/code/modules/projectiles/ammunition/energy/plasma.dm b/code/modules/projectiles/ammunition/energy/plasma.dm index d02abf9c881..a1341bacd3b 100644 --- a/code/modules/projectiles/ammunition/energy/plasma.dm +++ b/code/modules/projectiles/ammunition/energy/plasma.dm @@ -1,11 +1,11 @@ /obj/item/ammo_casing/energy/plasma - projectile_type = /obj/item/projectile/plasma + projectile_type = /obj/projectile/plasma select_name = "plasma burst" fire_sound = 'sound/weapons/plasma_cutter.ogg' delay = 15 e_cost = 25 /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 diff --git a/code/modules/projectiles/ammunition/energy/portal.dm b/code/modules/projectiles/ammunition/energy/portal.dm index dcb8b5e1e0b..c49ad9d43a4 100644 --- a/code/modules/projectiles/ammunition/energy/portal.dm +++ b/code/modules/projectiles/ammunition/energy/portal.dm @@ -1,5 +1,5 @@ /obj/item/ammo_casing/energy/wormhole - projectile_type = /obj/item/projectile/beam/wormhole + projectile_type = /obj/projectile/beam/wormhole e_cost = 0 harmful = FALSE fire_sound = 'sound/weapons/pulse3.ogg' @@ -7,7 +7,7 @@ var/obj/item/gun/energy/wormhole_projector/gun /obj/item/ammo_casing/energy/wormhole/orange - projectile_type = /obj/item/projectile/beam/wormhole/orange + projectile_type = /obj/projectile/beam/wormhole/orange select_name = "orange" /obj/item/ammo_casing/energy/wormhole/Initialize(mapload, obj/item/gun/energy/wormhole_projector/wh) @@ -16,6 +16,6 @@ /obj/item/ammo_casing/energy/wormhole/throw_proj() . = ..() - if(istype(BB, /obj/item/projectile/beam/wormhole)) - var/obj/item/projectile/beam/wormhole/WH = BB + if(istype(BB, /obj/projectile/beam/wormhole)) + var/obj/projectile/beam/wormhole/WH = BB WH.gun = gun diff --git a/code/modules/projectiles/ammunition/energy/special.dm b/code/modules/projectiles/ammunition/energy/special.dm index b5270af7ad6..25edcec3754 100644 --- a/code/modules/projectiles/ammunition/energy/special.dm +++ b/code/modules/projectiles/ammunition/energy/special.dm @@ -1,76 +1,76 @@ /obj/item/ammo_casing/energy/ion - projectile_type = /obj/item/projectile/ion + projectile_type = /obj/projectile/ion 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 select_name = "declone" fire_sound = 'sound/weapons/pulse3.ogg' /obj/item/ammo_casing/energy/declone/weak - projectile_type = /obj/item/projectile/energy/declone/weak + projectile_type = /obj/projectile/energy/declone/weak /obj/item/ammo_casing/energy/flora fire_sound = 'sound/effects/stealthoff.ogg' 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 select_name = "freeze" e_cost = 250 fire_sound = 'sound/weapons/pulse3.ogg' /obj/item/ammo_casing/energy/temp/hot - projectile_type = /obj/item/projectile/temp/hot + projectile_type = /obj/projectile/temp/hot select_name = "bake" /obj/item/ammo_casing/energy/meteor - projectile_type = /obj/item/projectile/meteor + projectile_type = /obj/projectile/meteor select_name = "goddamn meteor" /obj/item/ammo_casing/energy/net - projectile_type = /obj/item/projectile/energy/net + projectile_type = /obj/projectile/energy/net select_name = "netting" pellets = 6 variance = 40 harmful = FALSE /obj/item/ammo_casing/energy/trap - projectile_type = /obj/item/projectile/energy/trap + projectile_type = /obj/projectile/energy/trap select_name = "snare" harmful = FALSE /obj/item/ammo_casing/energy/instakill - projectile_type = /obj/item/projectile/beam/instakill + projectile_type = /obj/projectile/beam/instakill 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 /obj/item/ammo_casing/energy/instakill/red - projectile_type = /obj/item/projectile/beam/instakill/red + projectile_type = /obj/projectile/beam/instakill/red /obj/item/ammo_casing/energy/tesla_revolver fire_sound = 'sound/magic/lightningbolt.ogg' e_cost = 200 select_name = "stun" - projectile_type = /obj/item/projectile/energy/tesla/revolver + projectile_type = /obj/projectile/energy/tesla/revolver /obj/item/ammo_casing/energy/shrink - projectile_type = /obj/item/projectile/beam/shrink + projectile_type = /obj/projectile/beam/shrink select_name = "shrink ray" e_cost = 200 diff --git a/code/modules/projectiles/ammunition/energy/stun.dm b/code/modules/projectiles/ammunition/energy/stun.dm index 35e12bc5293..909501d653a 100644 --- a/code/modules/projectiles/ammunition/energy/stun.dm +++ b/code/modules/projectiles/ammunition/energy/stun.dm @@ -1,5 +1,5 @@ /obj/item/ammo_casing/energy/electrode - projectile_type = /obj/item/projectile/energy/electrode + projectile_type = /obj/projectile/energy/electrode select_name = "stun" fire_sound = 'sound/weapons/taser.ogg' e_cost = 200 @@ -16,7 +16,7 @@ e_cost = 1000 /obj/item/ammo_casing/energy/disabler - projectile_type = /obj/item/projectile/beam/disabler + projectile_type = /obj/projectile/beam/disabler select_name = "disable" e_cost = 50 fire_sound = 'sound/weapons/taser2.ogg' diff --git a/code/modules/projectiles/ammunition/special/magic.dm b/code/modules/projectiles/ammunition/special/magic.dm index 8df17a9c925..9440c435384 100644 --- a/code/modules/projectiles/ammunition/special/magic.dm +++ b/code/modules/projectiles/ammunition/special/magic.dm @@ -1,67 +1,67 @@ /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 firing_effect_type = /obj/effect/temp_visual/dir_setting/firing_effect/magic heavy_metal = FALSE /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/safety - projectile_type = /obj/item/projectile/magic/safety + projectile_type = /obj/projectile/magic/safety 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/aoe/fireball + projectile_type = /obj/projectile/magic/aoe/fireball /obj/item/ammo_casing/magic/chaos - projectile_type = /obj/item/projectile/magic + projectile_type = /obj/projectile/magic /obj/item/ammo_casing/magic/spellblade - projectile_type = /obj/item/projectile/magic/spellblade + projectile_type = /obj/projectile/magic/spellblade /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/honk - projectile_type = /obj/item/projectile/bullet/honker + projectile_type = /obj/projectile/bullet/honker /obj/item/ammo_casing/magic/locker - projectile_type = /obj/item/projectile/magic/locker + projectile_type = /obj/projectile/magic/locker /obj/item/ammo_casing/magic/flying - projectile_type = /obj/item/projectile/magic/flying + projectile_type = /obj/projectile/magic/flying /obj/item/ammo_casing/magic/bounty - projectile_type = /obj/item/projectile/magic/bounty + projectile_type = /obj/projectile/magic/bounty /obj/item/ammo_casing/magic/antimagic - projectile_type = /obj/item/projectile/magic/antimagic + projectile_type = /obj/projectile/magic/antimagic /obj/item/ammo_casing/magic/sapping - projectile_type = /obj/item/projectile/magic/sapping + projectile_type = /obj/projectile/magic/sapping /obj/item/ammo_casing/magic/necropotence - projectile_type = /obj/item/projectile/magic/necropotence + projectile_type = /obj/projectile/magic/necropotence /obj/item/ammo_casing/magic/wipe - projectile_type = /obj/item/projectile/magic/wipe + projectile_type = /obj/projectile/magic/wipe diff --git a/code/modules/projectiles/ammunition/special/syringe.dm b/code/modules/projectiles/ammunition/special/syringe.dm index 490602aec6a..db015322c1c 100644 --- a/code/modules/projectiles/ammunition/special/syringe.dm +++ b/code/modules/projectiles/ammunition/special/syringe.dm @@ -1,7 +1,7 @@ /obj/item/ammo_casing/syringegun name = "syringe gun spring" desc = "A high-power spring that throws syringes." - projectile_type = /obj/item/projectile/bullet/dart/syringe + projectile_type = /obj/projectile/bullet/dart/syringe firing_effect_type = null /obj/item/ammo_casing/syringegun/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") @@ -16,7 +16,7 @@ S.reagents.trans_to(BB, S.reagents.total_volume, transfered_by = user) BB.name = S.name - var/obj/item/projectile/bullet/dart/D = BB + var/obj/projectile/bullet/dart/D = BB D.piercing = S.proj_piercing SG.syringes.Remove(S) qdel(S) @@ -25,7 +25,7 @@ /obj/item/ammo_casing/chemgun name = "dart synthesiser" desc = "A high-power spring, linked to an energy-based dart synthesiser." - projectile_type = /obj/item/projectile/bullet/dart + projectile_type = /obj/projectile/bullet/dart firing_effect_type = null /obj/item/ammo_casing/chemgun/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") @@ -43,7 +43,7 @@ /obj/item/ammo_casing/dnainjector name = "rigged syringe gun spring" desc = "A high-power spring that throws DNA injectors." - projectile_type = /obj/item/projectile/bullet/dnainjector + projectile_type = /obj/projectile/bullet/dnainjector firing_effect_type = null /obj/item/ammo_casing/dnainjector/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") @@ -55,7 +55,7 @@ return var/obj/item/dnainjector/S = popleft(SG.syringes) - var/obj/item/projectile/bullet/dnainjector/D = BB + var/obj/projectile/bullet/dnainjector/D = BB S.forceMove(D) D.injector = S ..() diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index 61fd72eb5b5..685ef8a4724 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -202,7 +202,7 @@ . = "" else var/obj/item/ammo_casing/energy/E = ammo_type[select] - var/obj/item/projectile/energy/BB = E.BB + var/obj/projectile/energy/BB = E.BB if(!BB) . = "" else if(BB.nodamage || !BB.damage || BB.damage_type == STAMINA) diff --git a/code/modules/projectiles/guns/energy/dueling.dm b/code/modules/projectiles/guns/energy/dueling.dm index 8708156d165..8a518284eb7 100644 --- a/code/modules/projectiles/guns/energy/dueling.dm +++ b/code/modules/projectiles/guns/energy/dueling.dm @@ -244,12 +244,12 @@ /obj/item/ammo_casing/energy/duel e_cost = 0 - projectile_type = /obj/item/projectile/energy/duel + projectile_type = /obj/projectile/energy/duel var/setting /obj/item/ammo_casing/energy/duel/ready_proj(atom/target, mob/living/user, quiet, zone_override) . = ..() - var/obj/item/projectile/energy/duel/D = BB + var/obj/projectile/energy/duel/D = BB D.setting = setting D.update_icon() @@ -261,14 +261,14 @@ //Projectile -/obj/item/projectile/energy/duel +/obj/projectile/energy/duel name = "dueling beam" icon_state = "declone" reflectable = FALSE homing = TRUE var/setting -/obj/item/projectile/energy/duel/update_icon() +/obj/projectile/energy/duel/update_icon() . = ..() switch(setting) if(DUEL_SETTING_A) @@ -278,7 +278,7 @@ if(DUEL_SETTING_C) color = "blue" -/obj/item/projectile/energy/duel/on_hit(atom/target, blocked) +/obj/projectile/energy/duel/on_hit(atom/target, blocked) . = ..() var/turf/T = get_turf(target) var/obj/effect/temp_visual/dueling_chaff/C = locate() in T diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index 3c12a55b921..9170a628c9e 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -63,7 +63,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 @@ -153,7 +153,7 @@ //Casing /obj/item/ammo_casing/energy/kinetic - projectile_type = /obj/item/projectile/kinetic + projectile_type = /obj/projectile/kinetic select_name = "kinetic" e_cost = 500 fire_sound = 'sound/weapons/kenetic_accel.ogg' // fine spelling there chap @@ -165,7 +165,7 @@ KA.modify_projectile(BB) //Projectiles -/obj/item/projectile/kinetic +/obj/projectile/kinetic name = "kinetic force" icon_state = null damage = 40 @@ -178,11 +178,11 @@ var/pressure_decrease = 0.25 var/obj/item/gun/energy/kinetic_accelerator/kinetic_gun -/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) @@ -194,15 +194,15 @@ damage = damage * pressure_decrease 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) @@ -294,14 +294,14 @@ -/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) //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) //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) //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) //Range /obj/item/borg/upgrade/modkit/range @@ -310,7 +310,7 @@ modifier = 1 cost = 25 -/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 @@ -320,7 +320,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 @@ -376,10 +376,10 @@ turf_aoe = initial(turf_aoe) stats_stolen = FALSE -/obj/item/borg/upgrade/modkit/aoe/modify_projectile(obj/item/projectile/kinetic/K) +/obj/item/borg/upgrade/modkit/aoe/modify_projectile(obj/projectile/kinetic/K) K.name = "kinetic explosion" -/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/explosion/fast(target_turf) @@ -425,7 +425,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 @@ -445,7 +445,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) @@ -460,7 +460,7 @@ cost = 30 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) @@ -478,7 +478,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) @@ -489,7 +489,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]) @@ -517,7 +517,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 @@ -572,7 +572,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 758b6fbbc8e..6d6ec8deda7 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -85,17 +85,17 @@ ammo_x_offset = 3 /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 = "scatterlaser" range = 255 damage = 6 -/obj/item/projectile/beam/laser/accelerator/Range() +/obj/projectile/beam/laser/accelerator/Range() ..() damage += 7 transform *= 1 + ((damage/7) * 0.2)//20% larger per tile diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 5a74489ebb3..cbadddb4825 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -236,7 +236,7 @@ var/obj/item/ammo_casing/energy/wormhole/W = ammo_type[i] if(istype(W)) W.gun = src - var/obj/item/projectile/beam/wormhole/WH = W.BB + var/obj/projectile/beam/wormhole/WH = W.BB if(istype(WH)) WH.gun = src @@ -272,9 +272,9 @@ p_orange.link_portal(p_blue) p_blue.link_portal(p_orange) -/obj/item/gun/energy/wormhole_projector/proc/create_portal(obj/item/projectile/beam/wormhole/W, turf/target) +/obj/item/gun/energy/wormhole_projector/proc/create_portal(obj/projectile/beam/wormhole/W, turf/target) var/obj/effect/portal/P = new /obj/effect/portal(target, src, 300, null, FALSE, null, atmos_link) - if(istype(W, /obj/item/projectile/beam/wormhole/orange)) + if(istype(W, /obj/projectile/beam/wormhole/orange)) qdel(p_orange) p_orange = P P.icon_state = "portal1" diff --git a/code/modules/projectiles/guns/magic/staff.dm b/code/modules/projectiles/guns/magic/staff.dm index 6812e1d0478..e8f1683d21a 100644 --- a/code/modules/projectiles/guns/magic/staff.dm +++ b/code/modules/projectiles/guns/magic/staff.dm @@ -41,11 +41,11 @@ max_charges = 10 recharge_rate = 2 no_den_usage = 1 - var/allowed_projectile_types = list(/obj/item/projectile/magic/change, /obj/item/projectile/magic/animate, /obj/item/projectile/magic/resurrection, - /obj/item/projectile/magic/death, /obj/item/projectile/magic/teleport, /obj/item/projectile/magic/door, /obj/item/projectile/magic/aoe/fireball, - /obj/item/projectile/magic/spellblade, /obj/item/projectile/magic/arcane_barrage, /obj/item/projectile/magic/locker, /obj/item/projectile/magic/flying, - /obj/item/projectile/magic/bounty, /obj/item/projectile/magic/antimagic, /obj/item/projectile/magic/fetch, /obj/item/projectile/magic/sapping, - /obj/item/projectile/magic/necropotence, /obj/item/projectile/magic, /obj/item/projectile/temp/chill, /obj/item/projectile/magic/wipe) + var/allowed_projectile_types = list(/obj/projectile/magic/change, /obj/projectile/magic/animate, /obj/projectile/magic/resurrection, + /obj/projectile/magic/death, /obj/projectile/magic/teleport, /obj/projectile/magic/door, /obj/projectile/magic/aoe/fireball, + /obj/projectile/magic/spellblade, /obj/projectile/magic/arcane_barrage, /obj/projectile/magic/locker, /obj/projectile/magic/flying, + /obj/projectile/magic/bounty, /obj/projectile/magic/antimagic, /obj/projectile/magic/fetch, /obj/projectile/magic/sapping, + /obj/projectile/magic/necropotence, /obj/projectile/magic, /obj/projectile/temp/chill, /obj/projectile/magic/wipe) /obj/item/gun/magic/staff/chaos/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) chambered.projectile_type = pick(allowed_projectile_types) diff --git a/code/modules/projectiles/guns/misc/beam_rifle.dm b/code/modules/projectiles/guns/misc/beam_rifle.dm index be960b6e8da..e0d007a5edc 100644 --- a/code/modules/projectiles/guns/misc/beam_rifle.dm +++ b/code/modules/projectiles/guns/misc/beam_rifle.dm @@ -194,7 +194,7 @@ if(diff < AIMING_BEAM_ANGLE_CHANGE_THRESHOLD && !force_update) return aiming_lastangle = lastangle - var/obj/item/projectile/beam/beam_rifle/hitscan/aiming_beam/P = new + var/obj/projectile/beam/beam_rifle/hitscan/aiming_beam/P = new P.gun = src P.wall_pierce_amount = wall_pierce_amount P.structure_pierce_amount = structure_piercing @@ -370,7 +370,7 @@ /obj/item/ammo_casing/energy/beam_rifle/ready_proj(atom/target, mob/living/user, quiet, zone_override = "") . = ..() - var/obj/item/projectile/beam/beam_rifle/hitscan/HS_BB = BB + var/obj/projectile/beam/beam_rifle/hitscan/HS_BB = BB if(!istype(HS_BB)) return HS_BB.impact_direct_damage = projectile_damage @@ -409,12 +409,12 @@ return TRUE /obj/item/ammo_casing/energy/beam_rifle/hitscan - projectile_type = /obj/item/projectile/beam/beam_rifle/hitscan + projectile_type = /obj/projectile/beam/beam_rifle/hitscan select_name = "beam" e_cost = 10000 fire_sound = 'sound/weapons/beam_sniper.ogg' -/obj/item/projectile/beam/beam_rifle +/obj/projectile/beam/beam_rifle name = "particle beam" icon = null hitsound = 'sound/effects/explosion3.ogg' @@ -442,7 +442,7 @@ var/turf/cached var/list/pierced = list() -/obj/item/projectile/beam/beam_rifle/proc/AOE(turf/epicenter) +/obj/projectile/beam/beam_rifle/proc/AOE(turf/epicenter) set waitfor = FALSE if(!epicenter) return @@ -459,7 +459,7 @@ continue O.take_damage(aoe_structure_damage * get_damage_coeff(O), BURN, "laser", FALSE) -/obj/item/projectile/beam/beam_rifle/proc/check_pierce(atom/target) +/obj/projectile/beam/beam_rifle/proc/check_pierce(atom/target) if(!do_pierce) return FALSE if(pierced[target]) //we already pierced them go away @@ -485,14 +485,14 @@ return TRUE return FALSE -/obj/item/projectile/beam/beam_rifle/proc/get_damage_coeff(atom/target) +/obj/projectile/beam/beam_rifle/proc/get_damage_coeff(atom/target) if(istype(target, /obj/machinery/door)) return 0.4 if(istype(target, /obj/structure/window)) return 0.5 return 1 -/obj/item/projectile/beam/beam_rifle/proc/handle_impact(atom/target) +/obj/projectile/beam/beam_rifle/proc/handle_impact(atom/target) if(isobj(target)) var/obj/O = target O.take_damage(impact_structure_damage * get_damage_coeff(target), BURN, "laser", FALSE) @@ -501,7 +501,7 @@ L.adjustFireLoss(impact_direct_damage) L.emote("scream") -/obj/item/projectile/beam/beam_rifle/proc/handle_hit(atom/target) +/obj/projectile/beam/beam_rifle/proc/handle_hit(atom/target) set waitfor = FALSE if(!cached && !QDELETED(target)) cached = get_turf(target) @@ -512,7 +512,7 @@ if(!QDELETED(target)) handle_impact(target) -/obj/item/projectile/beam/beam_rifle/Bump(atom/target) +/obj/projectile/beam/beam_rifle/Bump(atom/target) if(check_pierce(target)) permutated += target trajectory_ignore_forcemove = TRUE @@ -523,19 +523,19 @@ cached = get_turf(target) return ..() -/obj/item/projectile/beam/beam_rifle/on_hit(atom/target, blocked = FALSE) +/obj/projectile/beam/beam_rifle/on_hit(atom/target, blocked = FALSE) if(!QDELETED(target)) cached = get_turf(target) handle_hit(target) return ..() -/obj/item/projectile/beam/beam_rifle/hitscan +/obj/projectile/beam/beam_rifle/hitscan icon_state = "" hitscan = TRUE tracer_type = /obj/effect/projectile/tracer/tracer/beam_rifle var/constant_tracer = FALSE -/obj/item/projectile/beam/beam_rifle/hitscan/generate_hitscan_tracers(cleanup = TRUE, duration = 5, impacting = TRUE, highlander) +/obj/projectile/beam/beam_rifle/hitscan/generate_hitscan_tracers(cleanup = TRUE, duration = 5, impacting = TRUE, highlander) set waitfor = FALSE if(isnull(highlander)) highlander = constant_tracer @@ -551,7 +551,7 @@ beam_segments = null QDEL_NULL(beam_index) -/obj/item/projectile/beam/beam_rifle/hitscan/aiming_beam +/obj/projectile/beam/beam_rifle/hitscan/aiming_beam tracer_type = /obj/effect/projectile/tracer/tracer/aiming name = "aiming beam" hitsound = null @@ -564,10 +564,10 @@ hitscan_light_color_override = "#99ff99" reflectable = REFLECT_FAKEPROJECTILE -/obj/item/projectile/beam/beam_rifle/hitscan/aiming_beam/prehit(atom/target) +/obj/projectile/beam/beam_rifle/hitscan/aiming_beam/prehit(atom/target) qdel(src) return FALSE -/obj/item/projectile/beam/beam_rifle/hitscan/aiming_beam/on_hit() +/obj/projectile/beam/beam_rifle/hitscan/aiming_beam/on_hit() qdel(src) return BULLET_ACT_HIT diff --git a/code/modules/projectiles/guns/misc/blastcannon.dm b/code/modules/projectiles/guns/misc/blastcannon.dm index 8c077ab8440..a88d87cf9d3 100644 --- a/code/modules/projectiles/guns/misc/blastcannon.dm +++ b/code/modules/projectiles/guns/misc/blastcannon.dm @@ -104,12 +104,12 @@ var/turf/targturf = get_turf(target) message_admins("Blast wave fired from [ADMIN_VERBOSEJMP(starting)] at [ADMIN_VERBOSEJMP(targturf)] ([target.name]) by [ADMIN_LOOKUPFLW(user)] with power [heavy]/[medium]/[light].") log_game("Blast wave fired from [AREACOORD(starting)] at [AREACOORD(targturf)] ([target.name]) 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.hugbox = hugbox BW.preparePixelProjectile(target, get_turf(src), params, 0) BW.fire() -/obj/item/projectile/blastwave +/obj/projectile/blastwave name = "blast wave" icon_state = "blastwave" damage = 0 @@ -121,13 +121,13 @@ var/hugbox = TRUE range = 150 -/obj/item/projectile/blastwave/Initialize(mapload, _h, _m, _l) +/obj/projectile/blastwave/Initialize(mapload, _h, _m, _l) heavyr = _h mediumr = _m lightr = _l return ..() -/obj/item/projectile/blastwave/Range() +/obj/projectile/blastwave/Range() ..() var/amount_destruction = EXPLODE_NONE var/wallbreak_chance = 0 @@ -156,5 +156,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/projectile.dm b/code/modules/projectiles/projectile.dm index fdd46bd561f..20b1b2d05a2 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -2,17 +2,17 @@ #define MOVES_HITSCAN -1 //Not actually hitscan but close as we get without actual hitscan. #define MUZZLE_EFFECT_PIXEL_INCREMENT 17 //How many pixels to move the muzzle flash up so your character doesn't look like they're shitting out lasers. -/obj/item/projectile +/obj/projectile name = "projectile" icon = 'icons/obj/projectiles.dmi' icon_state = "bullet" density = FALSE anchored = TRUE - item_flags = ABSTRACT pass_flags = PASSTABLE mouse_opacity = MOUSE_OPACITY_TRANSPARENT movement_type = FLYING - hitsound = 'sound/weapons/pierce.ogg' + //The sound this plays on impact. + var/hitsound = 'sound/weapons/pierce.ogg' var/hitsound_wall = "" resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF @@ -83,7 +83,9 @@ 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 - var/projectile_type = /obj/item/projectile + ///How much armor this projectile pierces. + var/armour_penetration = 0 + var/projectile_type = /obj/projectile var/range = 50 //This will de-increment every step. When 0, it will deletze the projectile. var/decayedRange //stores original range var/reflect_range_decrease = 5 //amount of original range that falls off when reflecting, so it doesn't go forever @@ -107,17 +109,17 @@ var/temporary_unstoppable_movement = FALSE -/obj/item/projectile/Initialize() +/obj/projectile/Initialize() . = ..() permutated = list() decayedRange = range -/obj/item/projectile/proc/Range() +/obj/projectile/proc/Range() range-- if(range <= 0 && loc) on_range() -/obj/item/projectile/proc/on_range() //if we want there to be effects when they reach the end of their range +/obj/projectile/proc/on_range() //if we want there to be effects when they reach the end of their range qdel(src) //to get the correct limb (if any) for the projectile hit message @@ -131,10 +133,10 @@ else //when a limb is missing the damage is actually passed to the chest return BODY_ZONE_CHEST -/obj/item/projectile/proc/prehit(atom/target) +/obj/projectile/proc/prehit(atom/target) return TRUE -/obj/item/projectile/proc/on_hit(atom/target, blocked = FALSE) +/obj/projectile/proc/on_hit(atom/target, blocked = FALSE) if(fired_from) SEND_SIGNAL(fired_from, COMSIG_PROJECTILE_ON_HIT, firer, target, Angle) var/turf/target_loca = get_turf(target) @@ -206,21 +208,21 @@ return BULLET_ACT_HIT -/obj/item/projectile/proc/vol_by_damage() +/obj/projectile/proc/vol_by_damage() if(src.damage) return CLAMP((src.damage) * 0.67, 30, 100)// Multiply projectile damage by 0.67, then CLAMP the value between 30 and 100 else return 50 //if the projectile doesn't do damage, play its hitsound at 50% volume -/obj/item/projectile/proc/on_ricochet(atom/A) +/obj/projectile/proc/on_ricochet(atom/A) return -/obj/item/projectile/proc/store_hitscan_collision(datum/point/pcache) +/obj/projectile/proc/store_hitscan_collision(datum/point/pcache) beam_segments[beam_index] = pcache beam_index = pcache beam_segments[beam_index] = null -/obj/item/projectile/Bump(atom/A) +/obj/projectile/Bump(atom/A) var/datum/point/pcache = trajectory.copy_to() var/turf/T = get_turf(A) if(check_ricochet(A) && check_ricochet_flag(A) && ricochets < ricochets_max) @@ -249,7 +251,7 @@ #define DO_NOT_QDEL 2 //Pass through. #define FORCE_QDEL 3 //Force deletion. -/obj/item/projectile/proc/process_hit(turf/T, atom/target, qdel_self, hit_something = FALSE) //probably needs to be reworked entirely when pixel movement is done. +/obj/projectile/proc/process_hit(turf/T, atom/target, qdel_self, hit_something = FALSE) //probably needs to be reworked entirely when pixel movement is done. if(QDELETED(src) || !T || !target) //We're done, nothing's left. if((qdel_self == FORCE_QDEL) || ((qdel_self == QDEL_SELF) && !temporary_unstoppable_movement && !CHECK_BITFIELD(movement_type, UNSTOPPABLE))) qdel(src) @@ -277,7 +279,7 @@ #undef DO_NOT_QDEL #undef FORCE_QDEL -/obj/item/projectile/proc/select_target(turf/T, atom/target) //Select a target from a turf. +/obj/projectile/proc/select_target(turf/T, atom/target) //Select a target from a turf. if((original in T) && can_hit_target(original, permutated, TRUE, TRUE)) return original if(target && can_hit_target(target, permutated, target == original, TRUE)) @@ -305,17 +307,17 @@ return T //Returns null if nothing at all was found. -/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(A.flags_1 & CHECK_RICOCHET_1) return TRUE return FALSE -/obj/item/projectile/proc/return_predicted_turf_after_moves(moves, forced_angle) //I say predicted because there's no telling that the projectile won't change direction/location in flight. +/obj/projectile/proc/return_predicted_turf_after_moves(moves, forced_angle) //I say predicted because there's no telling that the projectile won't change direction/location in flight. if(!trajectory && isnull(forced_angle) && isnull(Angle)) return FALSE var/datum/point/vector/current = trajectory @@ -325,15 +327,15 @@ var/datum/point/vector/v = current.return_vector_after_increments(moves * SSprojectiles.global_iterations_per_move) return v.return_turf() -/obj/item/projectile/proc/return_pathing_turfs_in_moves(moves, forced_angle) +/obj/projectile/proc/return_pathing_turfs_in_moves(moves, forced_angle) var/turf/current = get_turf(src) var/turf/ending = return_predicted_turf_after_moves(moves, forced_angle) return getline(current, ending) -/obj/item/projectile/Process_Spacemove(movement_dir = 0) +/obj/projectile/Process_Spacemove(movement_dir = 0) return TRUE //Bullets don't drift in space -/obj/item/projectile/process() +/obj/projectile/process() last_process = world.time if(!loc || !fired || !trajectory) fired = FALSE @@ -356,7 +358,7 @@ for(var/i in 1 to required_moves) pixel_move(1, FALSE) -/obj/item/projectile/proc/fire(angle, atom/direct_target) +/obj/projectile/proc/fire(angle, atom/direct_target) if(fired_from) SEND_SIGNAL(fired_from, COMSIG_PROJECTILE_BEFORE_FIRE, src, original) //If no angle needs to resolve it from xo/yo! @@ -396,7 +398,7 @@ START_PROCESSING(SSprojectiles, src) pixel_move(1, FALSE) //move it now! -/obj/item/projectile/proc/setAngle(new_angle) //wrapper for overrides. +/obj/projectile/proc/setAngle(new_angle) //wrapper for overrides. Angle = new_angle if(!nondirectional_sprite) var/matrix/M = new @@ -406,7 +408,7 @@ trajectory.set_angle(new_angle) return TRUE -/obj/item/projectile/forceMove(atom/target) +/obj/projectile/forceMove(atom/target) if(!isloc(target) || !isloc(loc) || !z) return ..() var/zc = target.z != z @@ -423,11 +425,11 @@ if(zc) after_z_change(old, target) -/obj/item/projectile/proc/after_z_change(atom/olcloc, atom/newloc) +/obj/projectile/proc/after_z_change(atom/olcloc, atom/newloc) -/obj/item/projectile/proc/before_z_change(atom/oldloc, atom/newloc) +/obj/projectile/proc/before_z_change(atom/oldloc, atom/newloc) -/obj/item/projectile/vv_edit_var(var_name, var_value) +/obj/projectile/vv_edit_var(var_name, var_value) switch(var_name) if(NAMEOF(src, Angle)) setAngle(var_value) @@ -435,19 +437,19 @@ else return ..() -/obj/item/projectile/proc/set_pixel_speed(new_speed) +/obj/projectile/proc/set_pixel_speed(new_speed) if(trajectory) trajectory.set_speed(new_speed) return TRUE return FALSE -/obj/item/projectile/proc/record_hitscan_start(datum/point/pcache) +/obj/projectile/proc/record_hitscan_start(datum/point/pcache) if(pcache) beam_segments = list() beam_index = pcache beam_segments[beam_index] = null //record start. -/obj/item/projectile/proc/process_hitscan() +/obj/projectile/proc/process_hitscan() var/safety = range * 3 record_hitscan_start(RETURN_POINT_VECTOR_INCREMENT(src, Angle, MUZZLE_EFFECT_PIXEL_INCREMENT, 1)) while(loc && !QDELETED(src)) @@ -462,7 +464,7 @@ return //Kill! pixel_move(1, TRUE) -/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 @@ -502,7 +504,7 @@ animate(src, pixel_x = trajectory.return_px(), pixel_y = trajectory.return_py(), time = 1, flags = ANIMATION_END_NOW) Range() -/obj/item/projectile/proc/process_homing() //may need speeding up in the future performance wise. +/obj/projectile/proc/process_homing() //may need speeding up in the future performance wise. if(!homing_target) return FALSE var/datum/point/PT = RETURN_PRECISE_POINT(homing_target) @@ -511,7 +513,7 @@ var/angle = closer_angle_difference(Angle, angle_between_points(RETURN_PRECISE_POINT(src), PT)) setAngle(Angle + CLAMP(angle, -homing_turn_speed, homing_turn_speed)) -/obj/item/projectile/proc/set_homing_target(atom/A) +/obj/projectile/proc/set_homing_target(atom/A) if(!A || (!isturf(A) && !isturf(A.loc))) return FALSE homing = TRUE @@ -525,7 +527,7 @@ //Returns true if the target atom is on our current turf and above the right layer //If direct target is true it's the originally clicked target. -/obj/item/projectile/proc/can_hit_target(atom/target, list/passthrough, direct_target = FALSE, ignore_loc = FALSE) +/obj/projectile/proc/can_hit_target(atom/target, list/passthrough, direct_target = FALSE, ignore_loc = FALSE) if(QDELETED(target)) return FALSE if(!ignore_source_check && firer) @@ -549,7 +551,7 @@ return TRUE //Spread is FORCED! -/obj/item/projectile/proc/preparePixelProjectile(atom/target, atom/source, params, spread = 0) +/obj/projectile/proc/preparePixelProjectile(atom/target, atom/source, params, spread = 0) var/turf/curloc = get_turf(source) var/turf/targloc = get_turf(target) trajectory_ignore_forcemove = TRUE @@ -607,14 +609,14 @@ angle = ATAN2(y - oy, x - ox) return list(angle, p_x, p_y) -/obj/item/projectile/Crossed(atom/movable/AM) //A mob moving on a tile with a projectile is hit by it. +/obj/projectile/Crossed(atom/movable/AM) //A mob moving on a tile with a projectile is hit by it. . = ..() if(isliving(AM) && !(pass_flags & PASSMOB)) var/mob/living/L = AM if(can_hit_target(L, permutated, (AM == original))) Bump(AM) -/obj/item/projectile/Move(atom/newloc, dir = NONE) +/obj/projectile/Move(atom/newloc, dir = NONE) . = ..() if(.) if(temporary_unstoppable_movement) @@ -623,7 +625,7 @@ if(fired && can_hit_target(original, permutated, TRUE)) Bump(original) -/obj/item/projectile/Destroy() +/obj/projectile/Destroy() if(hitscan) finalize_hitscan_and_generate_tracers() STOP_PROCESSING(SSprojectiles, src) @@ -631,18 +633,18 @@ qdel(trajectory) return ..() -/obj/item/projectile/proc/cleanup_beam_segments() +/obj/projectile/proc/cleanup_beam_segments() QDEL_LIST_ASSOC(beam_segments) beam_segments = list() qdel(beam_index) -/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/pcache = trajectory.copy_to() beam_segments[beam_index] = pcache generate_hitscan_tracers(null, null, 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) @@ -672,5 +674,5 @@ if(cleanup) cleanup_beam_segments() -/obj/item/projectile/experience_pressure_difference() +/obj/projectile/experience_pressure_difference() return diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index 04c3be29784..77ee9cf976f 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,12 +15,12 @@ ricochet_chance = 80 reflectable = REFLECT_NORMAL -/obj/item/projectile/beam/laser +/obj/projectile/beam/laser tracer_type = /obj/effect/projectile/tracer/laser muzzle_type = /obj/effect/projectile/muzzle/laser impact_type = /obj/effect/projectile/impact/laser -/obj/item/projectile/beam/laser/heavylaser +/obj/projectile/beam/laser/heavylaser name = "heavy laser" icon_state = "heavylaser" damage = 40 @@ -28,7 +28,7 @@ muzzle_type = /obj/effect/projectile/muzzle/heavy_laser impact_type = /obj/effect/projectile/impact/heavy_laser -/obj/item/projectile/beam/laser/on_hit(atom/target, blocked = FALSE) +/obj/projectile/beam/laser/on_hit(atom/target, blocked = FALSE) . = ..() if(iscarbon(target)) var/mob/living/carbon/M = target @@ -36,23 +36,23 @@ else if(isturf(target)) impact_effect_type = /obj/effect/temp_visual/impact_effect/red_laser/wall -/obj/item/projectile/beam/weak +/obj/projectile/beam/weak damage = 15 -/obj/item/projectile/beam/weak/penetrator +/obj/projectile/beam/weak/penetrator armour_penetration = 50 -/obj/item/projectile/beam/practice +/obj/projectile/beam/practice name = "practice laser" damage = 0 nodamage = TRUE -/obj/item/projectile/beam/scatter +/obj/projectile/beam/scatter name = "laser pellet" icon_state = "scatterlaser" damage = 5 -/obj/item/projectile/beam/xray +/obj/projectile/beam/xray name = "\improper X-ray beam" icon_state = "xray" flag = "rad" @@ -67,7 +67,7 @@ muzzle_type = /obj/effect/projectile/muzzle/xray impact_type = /obj/effect/projectile/impact/xray -/obj/item/projectile/beam/disabler +/obj/projectile/beam/disabler name = "disabler beam" icon_state = "omnilaser" damage = 30 @@ -81,7 +81,7 @@ muzzle_type = /obj/effect/projectile/muzzle/disabler impact_type = /obj/effect/projectile/impact/disabler -/obj/item/projectile/beam/pulse +/obj/projectile/beam/pulse name = "pulse" icon_state = "u_laser" damage = 50 @@ -91,36 +91,36 @@ muzzle_type = /obj/effect/projectile/muzzle/pulse impact_type = /obj/effect/projectile/impact/pulse -/obj/item/projectile/beam/pulse/on_hit(atom/target, blocked = FALSE) +/obj/projectile/beam/pulse/on_hit(atom/target, blocked = FALSE) . = ..() if (!QDELETED(target) && (isturf(target) || istype(target, /obj/structure/))) target.ex_act(EXPLODE_HEAVY) -/obj/item/projectile/beam/pulse/shotgun +/obj/projectile/beam/pulse/shotgun damage = 40 -/obj/item/projectile/beam/pulse/heavy +/obj/projectile/beam/pulse/heavy name = "heavy pulse laser" icon_state = "pulse1_bl" var/life = 20 -/obj/item/projectile/beam/pulse/heavy/on_hit(atom/target, blocked = FALSE) +/obj/projectile/beam/pulse/heavy/on_hit(atom/target, blocked = FALSE) life -= 10 if(life > 0) . = BULLET_ACT_FORCE_PIERCE ..() -/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/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 = null @@ -131,7 +131,7 @@ impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser light_color = LIGHT_COLOR_BLUE -/obj/item/projectile/beam/lasertag/on_hit(atom/target, blocked = FALSE) +/obj/projectile/beam/lasertag/on_hit(atom/target, blocked = FALSE) . = ..() if(ishuman(target)) var/mob/living/carbon/human/M = target @@ -139,7 +139,7 @@ if(M.wear_suit.type in suit_types) M.adjustStaminaLoss(34) -/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 @@ -148,20 +148,20 @@ muzzle_type = /obj/effect/projectile/muzzle/laser impact_type = /obj/effect/projectile/impact/laser -/obj/item/projectile/beam/lasertag/redtag/hitscan +/obj/projectile/beam/lasertag/redtag/hitscan hitscan = TRUE -/obj/item/projectile/beam/lasertag/bluetag +/obj/projectile/beam/lasertag/bluetag icon_state = "bluelaser" suit_types = list(/obj/item/clothing/suit/redtag) tracer_type = /obj/effect/projectile/tracer/laser/blue muzzle_type = /obj/effect/projectile/muzzle/laser/blue impact_type = /obj/effect/projectile/impact/laser/blue -/obj/item/projectile/beam/lasertag/bluetag/hitscan +/obj/projectile/beam/lasertag/bluetag/hitscan hitscan = TRUE -/obj/item/projectile/beam/instakill +/obj/projectile/beam/instakill name = "instagib laser" icon_state = "purple_laser" damage = 200 @@ -169,17 +169,17 @@ 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_BLUE -/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_RED -/obj/item/projectile/beam/instakill/on_hit(atom/target) +/obj/projectile/beam/instakill/on_hit(atom/target) . = ..() if(iscarbon(target)) var/mob/living/carbon/M = target @@ -187,7 +187,7 @@ M.gib() //a shrink ray that shrinks stuff, which grows back after a short while. -/obj/item/projectile/beam/shrink +/obj/projectile/beam/shrink name = "shrink ray" icon_state = "blue_laser" hitsound = 'sound/weapons/shrink_hit.ogg' @@ -198,7 +198,7 @@ light_color = LIGHT_COLOR_BLUE var/shrink_time = 90 -/obj/item/projectile/beam/shrink/on_hit(atom/target, blocked = FALSE) +/obj/projectile/beam/shrink/on_hit(atom/target, blocked = FALSE) . = ..() if(isopenturf(target) || istype(target, /turf/closed/indestructible))//shrunk floors wouldnt do anything except look weird, i-walls shouldnt be bypassable return diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 725ef9baa6f..999e4c0f9bc 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/bullet +/obj/projectile/bullet name = "bullet" icon_state = "bullet" damage = 60 diff --git a/code/modules/projectiles/projectile/bullets/_incendiary.dm b/code/modules/projectiles/projectile/bullets/_incendiary.dm index d0cf74421c8..c46211cdb85 100644 --- a/code/modules/projectiles/projectile/bullets/_incendiary.dm +++ b/code/modules/projectiles/projectile/bullets/_incendiary.dm @@ -1,15 +1,15 @@ -/obj/item/projectile/bullet/incendiary +/obj/projectile/bullet/incendiary damage = 20 var/fire_stacks = 4 -/obj/item/projectile/bullet/incendiary/on_hit(atom/target, blocked = FALSE) +/obj/projectile/bullet/incendiary/on_hit(atom/target, blocked = FALSE) . = ..() if(iscarbon(target)) var/mob/living/carbon/M = target M.adjust_fire_stacks(fire_stacks) M.IgniteMob() -/obj/item/projectile/bullet/incendiary/Move() +/obj/projectile/bullet/incendiary/Move() . = ..() var/turf/location = get_turf(src) if(location) diff --git a/code/modules/projectiles/projectile/bullets/dart_syringe.dm b/code/modules/projectiles/projectile/bullets/dart_syringe.dm index 8091efcdfc5..21df04c15e6 100644 --- a/code/modules/projectiles/projectile/bullets/dart_syringe.dm +++ b/code/modules/projectiles/projectile/bullets/dart_syringe.dm @@ -1,14 +1,14 @@ -/obj/item/projectile/bullet/dart +/obj/projectile/bullet/dart name = "dart" icon_state = "cbbolt" damage = 6 var/piercing = FALSE -/obj/item/projectile/bullet/dart/Initialize() +/obj/projectile/bullet/dart/Initialize() . = ..() create_reagents(50, NO_REACT) -/obj/item/projectile/bullet/dart/on_hit(atom/target, blocked = FALSE) +/obj/projectile/bullet/dart/on_hit(atom/target, blocked = FALSE) if(iscarbon(target)) var/mob/living/carbon/M = target if(blocked != 100) // not completely blocked @@ -27,12 +27,12 @@ reagents.handle_reactions() return BULLET_ACT_HIT -/obj/item/projectile/bullet/dart/metalfoam/Initialize() +/obj/projectile/bullet/dart/metalfoam/Initialize() . = ..() reagents.add_reagent(/datum/reagent/aluminium, 15) reagents.add_reagent(/datum/reagent/foaming_agent, 5) reagents.add_reagent(/datum/reagent/toxin/acid/fluacid, 5) -/obj/item/projectile/bullet/dart/syringe +/obj/projectile/bullet/dart/syringe name = "syringe" icon_state = "syringeproj" diff --git a/code/modules/projectiles/projectile/bullets/dnainjector.dm b/code/modules/projectiles/projectile/bullets/dnainjector.dm index f645f7eccd1..2cae1c2b321 100644 --- a/code/modules/projectiles/projectile/bullets/dnainjector.dm +++ b/code/modules/projectiles/projectile/bullets/dnainjector.dm @@ -1,11 +1,11 @@ -/obj/item/projectile/bullet/dnainjector +/obj/projectile/bullet/dnainjector name = "\improper DNA injector" icon_state = "syringeproj" var/obj/item/dnainjector/injector damage = 5 hitsound_wall = "shatter" -/obj/item/projectile/bullet/dnainjector/on_hit(atom/target, blocked = FALSE) +/obj/projectile/bullet/dnainjector/on_hit(atom/target, blocked = FALSE) if(iscarbon(target)) var/mob/living/carbon/M = target if(blocked != 100) @@ -19,6 +19,6 @@ "You were protected against \the [src]!") return ..() -/obj/item/projectile/bullet/dnainjector/Destroy() +/obj/projectile/bullet/dnainjector/Destroy() QDEL_NULL(injector) return ..() diff --git a/code/modules/projectiles/projectile/bullets/grenade.dm b/code/modules/projectiles/projectile/bullets/grenade.dm index e0804611d51..a0477939d0a 100644 --- a/code/modules/projectiles/projectile/bullets/grenade.dm +++ b/code/modules/projectiles/projectile/bullets/grenade.dm @@ -1,12 +1,12 @@ // 40mm (Grenade Launcher -/obj/item/projectile/bullet/a40mm +/obj/projectile/bullet/a40mm name ="40mm grenade" desc = "USE A WEEL GUN" icon_state= "bolter" damage = 60 -/obj/item/projectile/bullet/a40mm/on_hit(atom/target, blocked = FALSE) +/obj/projectile/bullet/a40mm/on_hit(atom/target, blocked = FALSE) ..() explosion(target, -1, 0, 2, 1, 0, flame_range = 3) return BULLET_ACT_HIT diff --git a/code/modules/projectiles/projectile/bullets/lmg.dm b/code/modules/projectiles/projectile/bullets/lmg.dm index addeecd3cf6..07532f5a926 100644 --- a/code/modules/projectiles/projectile/bullets/lmg.dm +++ b/code/modules/projectiles/projectile/bullets/lmg.dm @@ -1,44 +1,44 @@ // C3D (Borgs) -/obj/item/projectile/bullet/c3d +/obj/projectile/bullet/c3d damage = 20 // Mech LMG -/obj/item/projectile/bullet/lmg +/obj/projectile/bullet/lmg damage = 20 // Mech FNX-99 -/obj/item/projectile/bullet/incendiary/fnx99 +/obj/projectile/bullet/incendiary/fnx99 damage = 20 // Turrets -/obj/item/projectile/bullet/manned_turret +/obj/projectile/bullet/manned_turret damage = 20 -/obj/item/projectile/bullet/syndicate_turret +/obj/projectile/bullet/syndicate_turret damage = 20 // 7.12x82mm (SAW) -/obj/item/projectile/bullet/mm712x82 +/obj/projectile/bullet/mm712x82 name = "7.12x82mm bullet" damage = 45 armour_penetration = 5 -/obj/item/projectile/bullet/mm712x82_ap +/obj/projectile/bullet/mm712x82_ap name = "7.12x82mm armor-piercing bullet" damage = 40 armour_penetration = 75 -/obj/item/projectile/bullet/mm712x82_hp +/obj/projectile/bullet/mm712x82_hp name = "7.12x82mm hollow-point bullet" damage = 60 armour_penetration = -60 -/obj/item/projectile/bullet/incendiary/mm712x82 +/obj/projectile/bullet/incendiary/mm712x82 name = "7.12x82mm incendiary bullet" damage = 20 fire_stacks = 3 diff --git a/code/modules/projectiles/projectile/bullets/pistol.dm b/code/modules/projectiles/projectile/bullets/pistol.dm index ac14fa563c5..e24d9f6275c 100644 --- a/code/modules/projectiles/projectile/bullets/pistol.dm +++ b/code/modules/projectiles/projectile/bullets/pistol.dm @@ -1,36 +1,36 @@ // 9mm (Stechkin APS) -/obj/item/projectile/bullet/c9mm +/obj/projectile/bullet/c9mm name = "9mm bullet" damage = 20 -/obj/item/projectile/bullet/c9mm_ap +/obj/projectile/bullet/c9mm_ap name = "9mm armor-piercing bullet" damage = 15 armour_penetration = 40 -/obj/item/projectile/bullet/incendiary/c9mm +/obj/projectile/bullet/incendiary/c9mm name = "9mm incendiary bullet" damage = 10 fire_stacks = 1 // 10mm (Stechkin) -/obj/item/projectile/bullet/c10mm +/obj/projectile/bullet/c10mm name = "10mm bullet" damage = 30 -/obj/item/projectile/bullet/c10mm_ap +/obj/projectile/bullet/c10mm_ap name = "10mm armor-piercing bullet" damage = 27 armour_penetration = 40 -/obj/item/projectile/bullet/c10mm_hp +/obj/projectile/bullet/c10mm_hp name = "10mm hollow-point bullet" damage = 40 armour_penetration = -50 -/obj/item/projectile/bullet/incendiary/c10mm +/obj/projectile/bullet/incendiary/c10mm name = "10mm incendiary bullet" damage = 15 fire_stacks = 2 diff --git a/code/modules/projectiles/projectile/bullets/revolver.dm b/code/modules/projectiles/projectile/bullets/revolver.dm index 14ef8717b24..3408896802b 100644 --- a/code/modules/projectiles/projectile/bullets/revolver.dm +++ b/code/modules/projectiles/projectile/bullets/revolver.dm @@ -1,26 +1,26 @@ // 7.62x38mmR (Nagant Revolver) -/obj/item/projectile/bullet/n762 +/obj/projectile/bullet/n762 name = "7.62x38mmR bullet" damage = 60 // .50AE (Desert Eagle) -/obj/item/projectile/bullet/a50AE +/obj/projectile/bullet/a50AE name = ".50AE bullet" damage = 60 // .38 (Detective's Gun) -/obj/item/projectile/bullet/c38 +/obj/projectile/bullet/c38 name = ".38 bullet" damage = 25 -/obj/item/projectile/bullet/c38/trac +/obj/projectile/bullet/c38/trac name = ".38 TRAC bullet" damage = 10 -/obj/item/projectile/bullet/c38/trac/on_hit(atom/target, blocked = FALSE) +/obj/projectile/bullet/c38/trac/on_hit(atom/target, blocked = FALSE) . = ..() var/mob/living/carbon/M = target var/obj/item/implant/tracking/c38/imp @@ -31,23 +31,23 @@ imp = new /obj/item/implant/tracking/c38(M) imp.implant(M) -/obj/item/projectile/bullet/c38/hotshot //similar to incendiary bullets, but do not leave a flaming trail +/obj/projectile/bullet/c38/hotshot //similar to incendiary bullets, but do not leave a flaming trail name = ".38 Hot Shot bullet" damage = 20 -/obj/item/projectile/bullet/c38/hotshot/on_hit(atom/target, blocked = FALSE) +/obj/projectile/bullet/c38/hotshot/on_hit(atom/target, blocked = FALSE) . = ..() if(iscarbon(target)) var/mob/living/carbon/M = target M.adjust_fire_stacks(6) M.IgniteMob() -/obj/item/projectile/bullet/c38/iceblox //see /obj/item/projectile/temp for the original code +/obj/projectile/bullet/c38/iceblox //see /obj/projectile/temp for the original code name = ".38 Iceblox bullet" damage = 20 var/temperature = 100 -/obj/item/projectile/bullet/c38/iceblox/on_hit(atom/target, blocked = FALSE) +/obj/projectile/bullet/c38/iceblox/on_hit(atom/target, blocked = FALSE) . = ..() if(isliving(target)) var/mob/living/M = target @@ -55,6 +55,6 @@ // .357 (Syndie Revolver) -/obj/item/projectile/bullet/a357 +/obj/projectile/bullet/a357 name = ".357 bullet" damage = 60 diff --git a/code/modules/projectiles/projectile/bullets/rifle.dm b/code/modules/projectiles/projectile/bullets/rifle.dm index 1cd5a9f0bbb..ea60a4219a7 100644 --- a/code/modules/projectiles/projectile/bullets/rifle.dm +++ b/code/modules/projectiles/projectile/bullets/rifle.dm @@ -1,16 +1,16 @@ // 5.56mm (M-90gl Carbine) -/obj/item/projectile/bullet/a556 +/obj/projectile/bullet/a556 name = "5.56mm bullet" damage = 35 // 7.62 (Nagant Rifle) -/obj/item/projectile/bullet/a762 +/obj/projectile/bullet/a762 name = "7.62 bullet" damage = 60 -/obj/item/projectile/bullet/a762_enchanted +/obj/projectile/bullet/a762_enchanted name = "enchanted 7.62 bullet" damage = 20 stamina = 80 diff --git a/code/modules/projectiles/projectile/bullets/shotgun.dm b/code/modules/projectiles/projectile/bullets/shotgun.dm index 33f7ffc6e12..d291da83ecd 100644 --- a/code/modules/projectiles/projectile/bullets/shotgun.dm +++ b/code/modules/projectiles/projectile/bullets/shotgun.dm @@ -1,21 +1,21 @@ -/obj/item/projectile/bullet/shotgun_slug +/obj/projectile/bullet/shotgun_slug name = "12g shotgun slug" damage = 60 -/obj/item/projectile/bullet/shotgun_beanbag +/obj/projectile/bullet/shotgun_beanbag name = "beanbag slug" damage = 5 stamina = 55 -/obj/item/projectile/bullet/incendiary/shotgun +/obj/projectile/bullet/incendiary/shotgun name = "incendiary slug" damage = 20 -/obj/item/projectile/bullet/incendiary/shotgun/dragonsbreath +/obj/projectile/bullet/incendiary/shotgun/dragonsbreath name = "dragonsbreath pellet" damage = 5 -/obj/item/projectile/bullet/shotgun_stunslug +/obj/projectile/bullet/shotgun_stunslug name = "stunslug" damage = 5 paralyze = 100 @@ -25,7 +25,7 @@ icon_state = "spark" color = "#FFFF00" -/obj/item/projectile/bullet/shotgun_meteorslug +/obj/projectile/bullet/shotgun_meteorslug name = "meteorslug" icon = 'icons/obj/meteor.dmi' icon_state = "dust" @@ -34,46 +34,46 @@ knockdown = 80 hitsound = 'sound/effects/meteorimpact.ogg' -/obj/item/projectile/bullet/shotgun_meteorslug/on_hit(atom/target, blocked = FALSE) +/obj/projectile/bullet/shotgun_meteorslug/on_hit(atom/target, blocked = FALSE) . = ..() if(ismovableatom(target)) var/atom/movable/M = target var/atom/throw_target = get_edge_target_turf(M, get_dir(src, get_step_away(M, src))) M.safe_throw_at(throw_target, 3, 2) -/obj/item/projectile/bullet/shotgun_meteorslug/Initialize() +/obj/projectile/bullet/shotgun_meteorslug/Initialize() . = ..() SpinAnimation() -/obj/item/projectile/bullet/shotgun_frag12 +/obj/projectile/bullet/shotgun_frag12 name ="frag12 slug" damage = 25 paralyze = 50 -/obj/item/projectile/bullet/shotgun_frag12/on_hit(atom/target, blocked = FALSE) +/obj/projectile/bullet/shotgun_frag12/on_hit(atom/target, blocked = FALSE) ..() explosion(target, -1, 0, 1) return BULLET_ACT_HIT -/obj/item/projectile/bullet/pellet +/obj/projectile/bullet/pellet var/tile_dropoff = 0.75 var/tile_dropoff_s = 0.5 -/obj/item/projectile/bullet/pellet/shotgun_buckshot +/obj/projectile/bullet/pellet/shotgun_buckshot name = "buckshot pellet" damage = 12.5 -/obj/item/projectile/bullet/pellet/shotgun_rubbershot +/obj/projectile/bullet/pellet/shotgun_rubbershot name = "rubbershot pellet" damage = 3 stamina = 11 -/obj/item/projectile/bullet/pellet/shotgun_incapacitate +/obj/projectile/bullet/pellet/shotgun_incapacitate name = "incapacitating pellet" damage = 1 stamina = 6 -/obj/item/projectile/bullet/pellet/Range() +/obj/projectile/bullet/pellet/Range() ..() if(damage > 0) damage -= tile_dropoff @@ -82,19 +82,19 @@ if(damage < 0 && stamina < 0) qdel(src) -/obj/item/projectile/bullet/pellet/shotgun_improvised +/obj/projectile/bullet/pellet/shotgun_improvised tile_dropoff = 0.55 //Come on it does 6 damage don't be like that. damage = 6 -/obj/item/projectile/bullet/pellet/shotgun_improvised/Initialize() +/obj/projectile/bullet/pellet/shotgun_improvised/Initialize() . = ..() range = rand(1, 8) -/obj/item/projectile/bullet/pellet/shotgun_improvised/on_range() +/obj/projectile/bullet/pellet/shotgun_improvised/on_range() do_sparks(1, TRUE, src) ..() // Mech Scattershot -/obj/item/projectile/bullet/scattershot +/obj/projectile/bullet/scattershot damage = 24 diff --git a/code/modules/projectiles/projectile/bullets/smg.dm b/code/modules/projectiles/projectile/bullets/smg.dm index 0a5866008ed..5be2031497d 100644 --- a/code/modules/projectiles/projectile/bullets/smg.dm +++ b/code/modules/projectiles/projectile/bullets/smg.dm @@ -1,21 +1,21 @@ // .45 (M1911 & C20r) -/obj/item/projectile/bullet/c45 +/obj/projectile/bullet/c45 name = ".45 bullet" damage = 30 // 4.6x30mm (Autorifles) -/obj/item/projectile/bullet/c46x30mm +/obj/projectile/bullet/c46x30mm name = "4.6x30mm bullet" damage = 20 -/obj/item/projectile/bullet/c46x30mm_ap +/obj/projectile/bullet/c46x30mm_ap name = "4.6x30mm armor-piercing bullet" damage = 15 armour_penetration = 40 -/obj/item/projectile/bullet/incendiary/c46x30mm +/obj/projectile/bullet/incendiary/c46x30mm name = "4.6x30mm incendiary bullet" damage = 10 fire_stacks = 1 diff --git a/code/modules/projectiles/projectile/bullets/sniper.dm b/code/modules/projectiles/projectile/bullets/sniper.dm index b480c8e8a30..cb6e4ad5c13 100644 --- a/code/modules/projectiles/projectile/bullets/sniper.dm +++ b/code/modules/projectiles/projectile/bullets/sniper.dm @@ -1,6 +1,6 @@ // .50 (Sniper) -/obj/item/projectile/bullet/p50 +/obj/projectile/bullet/p50 name =".50 bullet" speed = 0.4 damage = 70 @@ -9,13 +9,13 @@ armour_penetration = 50 var/breakthings = TRUE -/obj/item/projectile/bullet/p50/on_hit(atom/target, blocked = 0) +/obj/projectile/bullet/p50/on_hit(atom/target, blocked = 0) if(isobj(target) && (blocked != 100) && breakthings) var/obj/O = target O.take_damage(80, BRUTE, "bullet", FALSE) return ..() -/obj/item/projectile/bullet/p50/soporific +/obj/projectile/bullet/p50/soporific name =".50 soporific bullet" armour_penetration = 0 damage = 0 @@ -23,13 +23,13 @@ paralyze = 0 breakthings = FALSE -/obj/item/projectile/bullet/p50/soporific/on_hit(atom/target, blocked = FALSE) +/obj/projectile/bullet/p50/soporific/on_hit(atom/target, blocked = FALSE) if((blocked != 100) && isliving(target)) var/mob/living/L = target L.Sleeping(400) return ..() -/obj/item/projectile/bullet/p50/penetrator +/obj/projectile/bullet/p50/penetrator name =".50 penetrator bullet" icon_state = "gauss" name = "penetrator round" @@ -39,7 +39,7 @@ paralyze = 0 breakthings = FALSE -/obj/item/projectile/bullet/p50/penetrator/shuttle //Nukeop Shuttle Variety +/obj/projectile/bullet/p50/penetrator/shuttle //Nukeop Shuttle Variety icon_state = "gaussstrong" damage = 25 speed = 0.3 diff --git a/code/modules/projectiles/projectile/bullets/special.dm b/code/modules/projectiles/projectile/bullets/special.dm index f5f8de195dc..e17e26435ad 100644 --- a/code/modules/projectiles/projectile/bullets/special.dm +++ b/code/modules/projectiles/projectile/bullets/special.dm @@ -1,6 +1,6 @@ // Honker -/obj/item/projectile/bullet/honker +/obj/projectile/bullet/honker name = "banana" damage = 0 movement_type = FLYING | UNSTOPPABLE @@ -10,11 +10,11 @@ icon_state = "banana" range = 200 -/obj/item/projectile/bullet/honker/Initialize() +/obj/projectile/bullet/honker/Initialize() . = ..() SpinAnimation() -/obj/item/projectile/bullet/honker/on_hit(atom/target, blocked = FALSE) +/obj/projectile/bullet/honker/on_hit(atom/target, blocked = FALSE) . = ..() var/mob/M = target if(istype(M)) @@ -22,10 +22,10 @@ // Mime -/obj/item/projectile/bullet/mime +/obj/projectile/bullet/mime damage = 40 -/obj/item/projectile/bullet/mime/on_hit(atom/target, blocked = FALSE) +/obj/projectile/bullet/mime/on_hit(atom/target, blocked = FALSE) . = ..() if(iscarbon(target)) var/mob/living/carbon/M = target diff --git a/code/modules/projectiles/projectile/energy/_energy.dm b/code/modules/projectiles/projectile/energy/_energy.dm index f29ad3a0ee9..8dbaa953741 100644 --- a/code/modules/projectiles/projectile/energy/_energy.dm +++ b/code/modules/projectiles/projectile/energy/_energy.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/energy +/obj/projectile/energy name = "energy" icon_state = "spark" damage = 0 diff --git a/code/modules/projectiles/projectile/energy/ebow.dm b/code/modules/projectiles/projectile/energy/ebow.dm index c83668df16a..a39e29fc75e 100644 --- a/code/modules/projectiles/projectile/energy/ebow.dm +++ b/code/modules/projectiles/projectile/energy/ebow.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/energy/bolt //ebow bolts +/obj/projectile/energy/bolt //ebow bolts name = "bolt" icon_state = "cbbolt" damage = 15 @@ -9,9 +9,9 @@ knockdown = 10 slur = 5 -/obj/item/projectile/energy/bolt/halloween +/obj/projectile/energy/bolt/halloween name = "candy corn" icon_state = "candy_corn" -/obj/item/projectile/energy/bolt/large +/obj/projectile/energy/bolt/large damage = 20 diff --git a/code/modules/projectiles/projectile/energy/misc.dm b/code/modules/projectiles/projectile/energy/misc.dm index 16c238afb9b..f4465733023 100644 --- a/code/modules/projectiles/projectile/energy/misc.dm +++ b/code/modules/projectiles/projectile/energy/misc.dm @@ -1,16 +1,16 @@ -/obj/item/projectile/energy/declone +/obj/projectile/energy/declone name = "radiation beam" icon_state = "declone" damage = 20 damage_type = CLONE irradiate = 100 impact_effect_type = /obj/effect/temp_visual/impact_effect/green_laser - -/obj/item/projectile/energy/declone/weak + +/obj/projectile/energy/declone/weak damage = 9 irradiate = 30 - -/obj/item/projectile/energy/dart //ninja throwing dart + +/obj/projectile/energy/dart //ninja throwing dart name = "dart" icon_state = "toxin" damage = 5 diff --git a/code/modules/projectiles/projectile/energy/net_snare.dm b/code/modules/projectiles/projectile/energy/net_snare.dm index a30c152175b..a5d135c1b30 100644 --- a/code/modules/projectiles/projectile/energy/net_snare.dm +++ b/code/modules/projectiles/projectile/energy/net_snare.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/energy/net +/obj/projectile/energy/net name = "energy netting" icon_state = "e_netting" damage = 10 @@ -6,18 +6,18 @@ hitsound = 'sound/weapons/taserhit.ogg' range = 10 -/obj/item/projectile/energy/net/Initialize() +/obj/projectile/energy/net/Initialize() . = ..() SpinAnimation() -/obj/item/projectile/energy/net/on_hit(atom/target, blocked = FALSE) +/obj/projectile/energy/net/on_hit(atom/target, blocked = FALSE) if(isliving(target)) var/turf/Tloc = get_turf(target) if(!locate(/obj/effect/nettingportal) in Tloc) new /obj/effect/nettingportal(Tloc) ..() -/obj/item/projectile/energy/net/on_range() +/obj/projectile/energy/net/on_range() do_sparks(1, TRUE, src) ..() @@ -55,14 +55,14 @@ /obj/effect/nettingportal/singularity_pull() return -/obj/item/projectile/energy/trap +/obj/projectile/energy/trap name = "energy snare" icon_state = "e_snare" nodamage = TRUE hitsound = 'sound/weapons/taserhit.ogg' range = 4 -/obj/item/projectile/energy/trap/on_hit(atom/target, blocked = FALSE) +/obj/projectile/energy/trap/on_hit(atom/target, blocked = FALSE) if(!ismob(target) || blocked >= 100) //Fully blocked by mob or collided with dense object - drop a trap new/obj/item/restraints/legcuffs/beartrap/energy(get_turf(loc)) else if(iscarbon(target)) @@ -70,11 +70,11 @@ B.Crossed(target) ..() -/obj/item/projectile/energy/trap/on_range() +/obj/projectile/energy/trap/on_range() new /obj/item/restraints/legcuffs/beartrap/energy(loc) ..() -/obj/item/projectile/energy/trap/cyborg +/obj/projectile/energy/trap/cyborg name = "Energy Bola" icon_state = "e_snare" nodamage = TRUE @@ -82,7 +82,7 @@ hitsound = 'sound/weapons/taserhit.ogg' range = 10 -/obj/item/projectile/energy/trap/cyborg/on_hit(atom/target, blocked = FALSE) +/obj/projectile/energy/trap/cyborg/on_hit(atom/target, blocked = FALSE) if(!ismob(target) || blocked >= 100) do_sparks(1, TRUE, src) qdel(src) @@ -92,6 +92,6 @@ QDEL_IN(src, 10) ..() -/obj/item/projectile/energy/trap/cyborg/on_range() +/obj/projectile/energy/trap/cyborg/on_range() do_sparks(1, TRUE, src) qdel(src) diff --git a/code/modules/projectiles/projectile/energy/nuclear_particle.dm b/code/modules/projectiles/projectile/energy/nuclear_particle.dm index e08f806fe58..5f72fdbb79d 100644 --- a/code/modules/projectiles/projectile/energy/nuclear_particle.dm +++ b/code/modules/projectiles/projectile/energy/nuclear_particle.dm @@ -1,5 +1,5 @@ //Nuclear particle projectile - a deadly side effect of fusion -/obj/item/projectile/energy/nuclear_particle +/obj/projectile/energy/nuclear_particle name = "nuclear particle" icon_state = "nuclear_particle" pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE @@ -17,7 +17,7 @@ "purple" = "#FF00FF" ) -/obj/item/projectile/energy/nuclear_particle/Initialize() +/obj/projectile/energy/nuclear_particle/Initialize() . = ..() //Random color time! var/our_color = pick(particle_colors) @@ -25,5 +25,5 @@ set_light(4, 3, particle_colors[our_color]) //Range of 4, brightness of 3 - Same range as a flashlight /atom/proc/fire_nuclear_particle(angle = rand(0,360)) //used by fusion to fire random nuclear particles. Fires one particle in a random direction. - var/obj/item/projectile/energy/nuclear_particle/P = new /obj/item/projectile/energy/nuclear_particle(src) + var/obj/projectile/energy/nuclear_particle/P = new /obj/projectile/energy/nuclear_particle(src) P.fire(angle) diff --git a/code/modules/projectiles/projectile/energy/stun.dm b/code/modules/projectiles/projectile/energy/stun.dm index e43dd94c90d..95414d05326 100644 --- a/code/modules/projectiles/projectile/energy/stun.dm +++ b/code/modules/projectiles/projectile/energy/stun.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/energy/electrode +/obj/projectile/energy/electrode name = "electrode" icon_state = "spark" color = "#FFFF00" @@ -12,7 +12,7 @@ muzzle_type = /obj/effect/projectile/muzzle/stun impact_type = /obj/effect/projectile/impact/stun -/obj/item/projectile/energy/electrode/on_hit(atom/target, blocked = FALSE) +/obj/projectile/energy/electrode/on_hit(atom/target, blocked = FALSE) . = ..() if(!ismob(target) || blocked >= 100) //Fully blocked by mob or collided with dense object - burst into sparks! do_sparks(1, TRUE, src) @@ -25,6 +25,6 @@ else if((C.status_flags & CANKNOCKDOWN) && !HAS_TRAIT(C, TRAIT_STUNIMMUNE)) addtimer(CALLBACK(C, /mob/living/carbon.proc/do_jitter_animation, jitter), 5) -/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, TRUE, src) ..() diff --git a/code/modules/projectiles/projectile/energy/tesla.dm b/code/modules/projectiles/projectile/energy/tesla.dm index c34d5056f0b..032714b0b76 100644 --- a/code/modules/projectiles/projectile/energy/tesla.dm +++ b/code/modules/projectiles/projectile/energy/tesla.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/energy/tesla +/obj/projectile/energy/tesla name = "tesla bolt" icon_state = "tesla_projectile" impact_effect_type = /obj/effect/temp_visual/impact_effect/blue_laser @@ -7,23 +7,23 @@ var/zap_range = 3 var/power = 10000 -/obj/item/projectile/energy/tesla/fire(setAngle) +/obj/projectile/energy/tesla/fire(setAngle) if(firer) chain = firer.Beam(src, icon_state = "lightning[rand(1, 12)]", time = INFINITY, maxdistance = INFINITY) ..() -/obj/item/projectile/energy/tesla/on_hit(atom/target) +/obj/projectile/energy/tesla/on_hit(atom/target) . = ..() tesla_zap(target, zap_range, power, tesla_flags) qdel(src) -/obj/item/projectile/energy/tesla/Destroy() +/obj/projectile/energy/tesla/Destroy() QDEL_NULL(chain) return ..() -/obj/item/projectile/energy/tesla/revolver +/obj/projectile/energy/tesla/revolver name = "energy orb" -/obj/item/projectile/energy/tesla/cannon +/obj/projectile/energy/tesla/cannon name = "tesla orb" power = 20000 diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index 36c7c0f8397..b625e1f6142 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/magic +/obj/projectile/magic name = "bolt of nothing" icon_state = "energy" damage = 0 @@ -7,11 +7,11 @@ armour_penetration = 100 flag = "magic" -/obj/item/projectile/magic/death +/obj/projectile/magic/death name = "bolt of death" icon_state = "pulse1_bl" -/obj/item/projectile/magic/death/on_hit(target) +/obj/projectile/magic/death/on_hit(target) . = ..() if(ismob(target)) var/mob/M = target @@ -20,14 +20,14 @@ return BULLET_ACT_BLOCK M.death(0) -/obj/item/projectile/magic/resurrection +/obj/projectile/magic/resurrection name = "bolt of resurrection" icon_state = "ion" damage = 0 damage_type = OXY nodamage = TRUE -/obj/item/projectile/magic/resurrection/on_hit(mob/living/carbon/target) +/obj/projectile/magic/resurrection/on_hit(mob/living/carbon/target) . = ..() if(isliving(target)) if(target.hellbound) @@ -45,7 +45,7 @@ else if(target.stat != DEAD) to_chat(target, "You feel great!") -/obj/item/projectile/magic/teleport +/obj/projectile/magic/teleport name = "bolt of teleportation" icon_state = "bluespace" damage = 0 @@ -54,7 +54,7 @@ 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(ismob(target)) var/mob/M = target @@ -73,14 +73,14 @@ smoke.set_up(max(round(4 - teleammount),0), stuff.loc) //Smoke drops off if a lot of stuff is moved for the sake of sanity smoke.start() -/obj/item/projectile/magic/safety +/obj/projectile/magic/safety name = "bolt of safety" icon_state = "bluespace" damage = 0 damage_type = OXY nodamage = TRUE -/obj/item/projectile/magic/safety/on_hit(atom/target) +/obj/projectile/magic/safety/on_hit(atom/target) . = ..() if(ismob(target)) var/mob/M = target @@ -99,7 +99,7 @@ smoke.set_up(0, t) smoke.start() -/obj/item/projectile/magic/door +/obj/projectile/magic/door name = "bolt of door creation" icon_state = "energy" damage = 0 @@ -107,7 +107,7 @@ nodamage = TRUE 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) . = ..() if(istype(target, /obj/machinery/door)) OpenDoor(target) @@ -116,26 +116,26 @@ if(isclosedturf(T) && !isindestructiblewall(T)) CreateDoor(T) -/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/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) D.Open() -/obj/item/projectile/magic/door/proc/OpenDoor(var/obj/machinery/door/D) +/obj/projectile/magic/door/proc/OpenDoor(var/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/change +/obj/projectile/magic/change name = "bolt of change" icon_state = "ice_1" damage = 0 damage_type = BURN nodamage = TRUE -/obj/item/projectile/magic/change/on_hit(atom/change) +/obj/projectile/magic/change/on_hit(atom/change) . = ..() if(ismob(change)) var/mob/M = change @@ -287,14 +287,14 @@ qdel(M) return new_mob -/obj/item/projectile/magic/animate +/obj/projectile/magic/animate name = "bolt of animation" icon_state = "red_1" damage = 0 damage_type = BURN nodamage = TRUE -/obj/item/projectile/magic/animate/on_hit(atom/target, blocked = FALSE) +/obj/projectile/magic/animate/on_hit(atom/target, blocked = FALSE) target.animate_atom_living(firer) ..() @@ -332,7 +332,7 @@ if(owner) C.ChangeOwner(owner) -/obj/item/projectile/magic/spellblade +/obj/projectile/magic/spellblade name = "blade energy" icon_state = "lavastaff" damage = 15 @@ -341,7 +341,7 @@ dismemberment = 50 nodamage = FALSE -/obj/item/projectile/magic/spellblade/on_hit(target) +/obj/projectile/magic/spellblade/on_hit(target) if(ismob(target)) var/mob/M = target if(M.anti_magic_check()) @@ -350,7 +350,7 @@ return BULLET_ACT_BLOCK . = ..() -/obj/item/projectile/magic/arcane_barrage +/obj/projectile/magic/arcane_barrage name = "arcane bolt" icon_state = "arcane_barrage" damage = 20 @@ -360,7 +360,7 @@ flag = "magic" hitsound = 'sound/weapons/barragespellhit.ogg' -/obj/item/projectile/magic/arcane_barrage/on_hit(target) +/obj/projectile/magic/arcane_barrage/on_hit(target) if(ismob(target)) var/mob/M = target if(M.anti_magic_check()) @@ -370,7 +370,7 @@ . = ..() -/obj/item/projectile/magic/locker +/obj/projectile/magic/locker name = "locker bolt" icon_state = "locker" nodamage = TRUE @@ -380,11 +380,11 @@ var/locker_suck = TRUE var/obj/structure/closet/locker_temp_instance = /obj/structure/closet/decay -/obj/item/projectile/magic/locker/Initialize() +/obj/projectile/magic/locker/Initialize() . = ..() locker_temp_instance = new(src) -/obj/item/projectile/magic/locker/prehit(atom/A) +/obj/projectile/magic/locker/prehit(atom/A) if(isliving(A) && locker_suck) var/mob/living/M = A if(M.anti_magic_check()) @@ -397,7 +397,7 @@ return FALSE return ..() -/obj/item/projectile/magic/locker/on_hit(target) +/obj/projectile/magic/locker/on_hit(target) if(created) return ..() if(LAZYLEN(contents)) @@ -408,7 +408,7 @@ created = TRUE return ..() -/obj/item/projectile/magic/locker/Destroy() +/obj/projectile/magic/locker/Destroy() locker_suck = FALSE for(var/atom/movable/AM in contents) AM.forceMove(get_turf(src)) @@ -455,11 +455,11 @@ addtimer(CALLBACK(src, .proc/decay), 15 SECONDS) icon_welded = "welded" -/obj/item/projectile/magic/flying +/obj/projectile/magic/flying name = "bolt of flying" icon_state = "flight" -/obj/item/projectile/magic/flying/on_hit(target) +/obj/projectile/magic/flying/on_hit(target) . = ..() if(isliving(target)) var/mob/living/L = target @@ -469,11 +469,11 @@ var/atom/throw_target = get_edge_target_turf(L, angle2dir(Angle)) L.throw_at(throw_target, 200, 4) -/obj/item/projectile/magic/bounty +/obj/projectile/magic/bounty name = "bolt of bounty" icon_state = "bounty" -/obj/item/projectile/magic/bounty/on_hit(target) +/obj/projectile/magic/bounty/on_hit(target) . = ..() if(isliving(target)) var/mob/living/L = target @@ -482,11 +482,11 @@ return BULLET_ACT_BLOCK L.apply_status_effect(STATUS_EFFECT_BOUNTY, firer) -/obj/item/projectile/magic/antimagic +/obj/projectile/magic/antimagic name = "bolt of antimagic" icon_state = "antimagic" -/obj/item/projectile/magic/antimagic/on_hit(target) +/obj/projectile/magic/antimagic/on_hit(target) . = ..() if(isliving(target)) var/mob/living/L = target @@ -495,11 +495,11 @@ return BULLET_ACT_BLOCK L.apply_status_effect(STATUS_EFFECT_ANTIMAGIC) -/obj/item/projectile/magic/fetch +/obj/projectile/magic/fetch name = "bolt of fetching" icon_state = "fetch" -/obj/item/projectile/magic/fetch/on_hit(target) +/obj/projectile/magic/fetch/on_hit(target) . = ..() if(isliving(target)) var/mob/living/L = target @@ -509,11 +509,11 @@ var/atom/throw_target = get_edge_target_turf(L, get_dir(L, firer)) L.throw_at(throw_target, 200, 4) -/obj/item/projectile/magic/sapping +/obj/projectile/magic/sapping name = "bolt of sapping" icon_state = "sapping" -/obj/item/projectile/magic/sapping/on_hit(target) +/obj/projectile/magic/sapping/on_hit(target) . = ..() if(ismob(target)) var/mob/M = target @@ -522,11 +522,11 @@ return BULLET_ACT_BLOCK SEND_SIGNAL(M, COMSIG_ADD_MOOD_EVENT, src, /datum/mood_event/sapped) -/obj/item/projectile/magic/necropotence +/obj/projectile/magic/necropotence name = "bolt of necropotence" icon_state = "necropotence" -/obj/item/projectile/magic/necropotence/on_hit(target) +/obj/projectile/magic/necropotence/on_hit(target) . = ..() if(isliving(target)) var/mob/living/L = target @@ -544,11 +544,11 @@ spell.recharging = FALSE spell.update_icon() -/obj/item/projectile/magic/wipe +/obj/projectile/magic/wipe name = "bolt of possession" icon_state = "wipe" -/obj/item/projectile/magic/wipe/on_hit(target) +/obj/projectile/magic/wipe/on_hit(target) . = ..() if(iscarbon(target)) var/mob/living/carbon/M = target @@ -563,7 +563,7 @@ possession_test(M) return BULLET_ACT_HIT -/obj/item/projectile/magic/wipe/proc/possession_test(var/mob/living/carbon/M) +/obj/projectile/magic/wipe/proc/possession_test(var/mob/living/carbon/M) var/datum/brain_trauma/special/imaginary_friend/trapped_owner/trauma = M.gain_trauma(/datum/brain_trauma/special/imaginary_friend/trapped_owner) var/poll_message = "Do you want to play as [M.real_name]?" if(M.mind && M.mind.assigned_role) @@ -591,13 +591,13 @@ to_chat(M, "Your mind has managed to go unnoticed in the spirit world.") qdel(trauma) -/obj/item/projectile/magic/aoe +/obj/projectile/magic/aoe name = "Area Bolt" desc = "What the fuck does this do?!" damage = 0 var/proxdet = TRUE -/obj/item/projectile/magic/aoe/Range() +/obj/projectile/magic/aoe/Range() if(proxdet) for(var/mob/living/L in range(1, get_turf(src))) if(L.stat != DEAD && L != firer && !L.anti_magic_check()) @@ -605,7 +605,7 @@ ..() -/obj/item/projectile/magic/aoe/lightning +/obj/projectile/magic/aoe/lightning name = "lightning bolt" icon_state = "tesla_projectile" //Better sprites are REALLY needed and appreciated!~ damage = 15 @@ -620,12 +620,12 @@ var/chain var/mob/living/caster -/obj/item/projectile/magic/aoe/lightning/fire(setAngle) +/obj/projectile/magic/aoe/lightning/fire(setAngle) if(caster) chain = caster.Beam(src, icon_state = "lightning[rand(1, 12)]", time = INFINITY, maxdistance = INFINITY) ..() -/obj/item/projectile/magic/aoe/lightning/on_hit(target) +/obj/projectile/magic/aoe/lightning/on_hit(target) . = ..() if(ismob(target)) var/mob/M = target @@ -636,11 +636,11 @@ tesla_zap(src, tesla_range, tesla_power, tesla_flags) qdel(src) -/obj/item/projectile/magic/aoe/lightning/Destroy() +/obj/projectile/magic/aoe/lightning/Destroy() qdel(chain) . = ..() -/obj/item/projectile/magic/aoe/fireball +/obj/projectile/magic/aoe/fireball name = "bolt of fireball" icon_state = "fireball" damage = 10 @@ -653,7 +653,7 @@ var/exp_flash = 3 var/exp_fire = 2 -/obj/item/projectile/magic/aoe/fireball/on_hit(target) +/obj/projectile/magic/aoe/fireball/on_hit(target) . = ..() if(ismob(target)) var/mob/living/M = target @@ -664,14 +664,14 @@ var/turf/T = get_turf(target) explosion(T, -1, exp_heavy, exp_light, exp_flash, 0, flame_range = exp_fire) -/obj/item/projectile/magic/aoe/fireball/infernal +/obj/projectile/magic/aoe/fireball/infernal name = "infernal fireball" exp_heavy = -1 exp_light = -1 exp_flash = 4 exp_fire= 5 -/obj/item/projectile/magic/aoe/fireball/infernal/on_hit(target) +/obj/projectile/magic/aoe/fireball/infernal/on_hit(target) . = ..() if(ismob(target)) var/mob/living/M = target @@ -683,7 +683,7 @@ //still magic related, but a different path -/obj/item/projectile/temp/chill +/obj/projectile/temp/chill name = "bolt of chills" icon_state = "ice_2" damage = 0 diff --git a/code/modules/projectiles/projectile/magic/spellcard.dm b/code/modules/projectiles/projectile/magic/spellcard.dm index 67e3ad374e5..c8d31781276 100644 --- a/code/modules/projectiles/projectile/magic/spellcard.dm +++ b/code/modules/projectiles/projectile/magic/spellcard.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/spellcard +/obj/projectile/spellcard name = "enchanted card" desc = "A piece of paper enchanted to give it extreme durability and stiffness, along with a very hot burn to anyone unfortunate enough to get hit by a charged one." icon_state = "spellcard" diff --git a/code/modules/projectiles/projectile/reusable/_reusable.dm b/code/modules/projectiles/projectile/reusable/_reusable.dm index 33c9678fe47..b41cb0a2a64 100644 --- a/code/modules/projectiles/projectile/reusable/_reusable.dm +++ b/code/modules/projectiles/projectile/reusable/_reusable.dm @@ -1,19 +1,19 @@ -/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 = FALSE impact_effect_type = null -/obj/item/projectile/bullet/reusable/on_hit(atom/target, blocked = FALSE) +/obj/projectile/bullet/reusable/on_hit(atom/target, blocked = FALSE) . = ..() 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) var/turf/T = get_turf(src) new ammo_type(T) diff --git a/code/modules/projectiles/projectile/reusable/foam_dart.dm b/code/modules/projectiles/projectile/reusable/foam_dart.dm index 85e648a3099..504965f2adc 100644 --- a/code/modules/projectiles/projectile/reusable/foam_dart.dm +++ b/code/modules/projectiles/projectile/reusable/foam_dart.dm @@ -1,4 +1,4 @@ -/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. @@ -11,14 +11,14 @@ var/modified = FALSE var/obj/item/pen/pen = null -/obj/item/projectile/bullet/reusable/foam_dart/handle_drop() +/obj/projectile/bullet/reusable/foam_dart/handle_drop() if(dropped) return var/turf/T = get_turf(src) dropped = 1 var/obj/item/ammo_casing/caseless/foam_dart/newcasing = new ammo_type(T) newcasing.modified = modified - var/obj/item/projectile/bullet/reusable/foam_dart/newdart = newcasing.BB + var/obj/projectile/bullet/reusable/foam_dart/newdart = newcasing.BB newdart.modified = modified newdart.damage = damage newdart.nodamage = nodamage @@ -30,11 +30,11 @@ newdart.update_icon() -/obj/item/projectile/bullet/reusable/foam_dart/Destroy() +/obj/projectile/bullet/reusable/foam_dart/Destroy() pen = null return ..() -/obj/item/projectile/bullet/reusable/foam_dart/riot +/obj/projectile/bullet/reusable/foam_dart/riot name = "riot foam dart" icon_state = "foamdart_riot_proj" ammo_type = /obj/item/ammo_casing/caseless/foam_dart/riot diff --git a/code/modules/projectiles/projectile/special/curse.dm b/code/modules/projectiles/projectile/special/curse.dm index 5796609212a..019d10fb26f 100644 --- a/code/modules/projectiles/projectile/special/curse.dm +++ b/code/modules/projectiles/projectile/special/curse.dm @@ -2,7 +2,7 @@ name = "curse arm" layer = LARGE_MOB_LAYER -/obj/item/projectile/curse_hand +/obj/projectile/curse_hand name = "curse hand" icon_state = "cursehand0" hitsound = 'sound/effects/curse4.ogg' @@ -15,25 +15,25 @@ var/datum/beam/arm var/handedness = 0 -/obj/item/projectile/curse_hand/Initialize(mapload) +/obj/projectile/curse_hand/Initialize(mapload) . = ..() ENABLE_BITFIELD(movement_type, UNSTOPPABLE) handedness = prob(50) icon_state = "cursehand[handedness]" -/obj/item/projectile/curse_hand/fire(setAngle) +/obj/projectile/curse_hand/fire(setAngle) if(starting) arm = starting.Beam(src, icon_state = "curse[handedness]", time = INFINITY, maxdistance = INFINITY, beam_type=/obj/effect/ebeam/curse_arm) ..() -/obj/item/projectile/curse_hand/prehit(atom/target) +/obj/projectile/curse_hand/prehit(atom/target) if(target == original) DISABLE_BITFIELD(movement_type, UNSTOPPABLE) else if(!isturf(target)) return FALSE return ..() -/obj/item/projectile/curse_hand/Destroy() +/obj/projectile/curse_hand/Destroy() if(arm) arm.End() arm = null diff --git a/code/modules/projectiles/projectile/special/floral.dm b/code/modules/projectiles/projectile/special/floral.dm index 437316ce428..ebef5ab39db 100644 --- a/code/modules/projectiles/projectile/special/floral.dm +++ b/code/modules/projectiles/projectile/special/floral.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/energy/floramut +/obj/projectile/energy/floramut name = "alpha somatoray" icon_state = "energy" damage = 0 @@ -6,7 +6,7 @@ nodamage = TRUE flag = "energy" -/obj/item/projectile/energy/florayield +/obj/projectile/energy/florayield name = "beta somatoray" icon_state = "energy2" damage = 0 diff --git a/code/modules/projectiles/projectile/special/gravity.dm b/code/modules/projectiles/projectile/special/gravity.dm index c20a717a170..51203ff0c98 100644 --- a/code/modules/projectiles/projectile/special/gravity.dm +++ b/code/modules/projectiles/projectile/special/gravity.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/gravityrepulse +/obj/projectile/gravityrepulse name = "repulsion bolt" icon = 'icons/effects/effects.dmi' icon_state = "chronofield" @@ -11,13 +11,13 @@ var/power = 4 var/list/thrown_items = list() -/obj/item/projectile/gravityrepulse/Initialize() +/obj/projectile/gravityrepulse/Initialize() . = ..() var/obj/item/ammo_casing/energy/gravity/repulse/C = loc if(istype(C)) //Hard-coded maximum power so servers can't be crashed by trying to throw the entire Z level's items power = min(C.gun.power, 15) -/obj/item/projectile/gravityrepulse/on_hit() +/obj/projectile/gravityrepulse/on_hit() . = ..() T = get_turf(src) for(var/atom/movable/A in range(T, power)) @@ -33,7 +33,7 @@ for(var/turf/F in range(T,power)) new /obj/effect/temp_visual/gravpush(F) -/obj/item/projectile/gravityattract +/obj/projectile/gravityattract name = "attraction bolt" icon = 'icons/effects/effects.dmi' icon_state = "chronofield" @@ -46,13 +46,13 @@ var/power = 4 var/list/thrown_items = list() -/obj/item/projectile/gravityattract/Initialize() +/obj/projectile/gravityattract/Initialize() . = ..() var/obj/item/ammo_casing/energy/gravity/attract/C = loc if(istype(C)) //Hard-coded maximum power so servers can't be crashed by trying to throw the entire Z level's items power = min(C.gun.power, 15) -/obj/item/projectile/gravityattract/on_hit() +/obj/projectile/gravityattract/on_hit() . = ..() T = get_turf(src) for(var/atom/movable/A in range(T, power)) @@ -67,7 +67,7 @@ for(var/turf/F in range(T,power)) new /obj/effect/temp_visual/gravpush(F) -/obj/item/projectile/gravitychaos +/obj/projectile/gravitychaos name = "gravitational blast" icon = 'icons/effects/effects.dmi' icon_state = "chronofield" @@ -80,13 +80,13 @@ var/power = 4 var/list/thrown_items = list() -/obj/item/projectile/gravitychaos/Initialize() +/obj/projectile/gravitychaos/Initialize() . = ..() var/obj/item/ammo_casing/energy/gravity/chaos/C = loc if(istype(C)) //Hard-coded maximum power so servers can't be crashed by trying to throw the entire Z level's items power = min(C.gun.power, 15) -/obj/item/projectile/gravitychaos/on_hit() +/obj/projectile/gravitychaos/on_hit() . = ..() T = get_turf(src) for(var/atom/movable/A in range(T, power)) diff --git a/code/modules/projectiles/projectile/special/hallucination.dm b/code/modules/projectiles/projectile/special/hallucination.dm index b163daaab7a..df3dc908627 100644 --- a/code/modules/projectiles/projectile/special/hallucination.dm +++ b/code/modules/projectiles/projectile/special/hallucination.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/hallucination +/obj/projectile/hallucination name = "bullet" icon = null icon_state = null @@ -8,7 +8,7 @@ ricochet_chance = 0 damage = 0 nodamage = TRUE - projectile_type = /obj/item/projectile/hallucination + projectile_type = /obj/projectile/hallucination log_override = TRUE var/hal_icon_state var/image/fake_icon @@ -21,19 +21,19 @@ var/hit_duration var/hit_duration_wall -/obj/item/projectile/hallucination/fire() +/obj/projectile/hallucination/fire() ..() fake_icon = image('icons/obj/projectiles.dmi', src, hal_icon_state, ABOVE_MOB_LAYER) if(hal_target.client) hal_target.client.images += fake_icon -/obj/item/projectile/hallucination/Destroy() +/obj/projectile/hallucination/Destroy() if(hal_target.client) hal_target.client.images -= fake_icon QDEL_NULL(fake_icon) return ..() -/obj/item/projectile/hallucination/Bump(atom/A) +/obj/projectile/hallucination/Bump(atom/A) if(!ismob(A)) if(hal_hitsound_wall) hal_target.playsound_local(loc, hal_hitsound_wall, 40, 1) @@ -46,7 +46,7 @@ qdel(src) return TRUE -/obj/item/projectile/hallucination/proc/target_on_hit(mob/M) +/obj/projectile/hallucination/proc/target_on_hit(mob/M) if(M == hal_target) to_chat(hal_target, "[M] is hit by \a [src] in the chest!") hal_apply_effect() @@ -60,7 +60,7 @@ else if(hal_impact_effect) spawn_hit(M, FALSE) -/obj/item/projectile/hallucination/proc/spawn_blood(mob/M, set_dir) +/obj/projectile/hallucination/proc/spawn_blood(mob/M, set_dir) set waitfor = 0 if(!hal_target.client) return @@ -102,11 +102,11 @@ animate(blood, pixel_x = target_pixel_x, pixel_y = target_pixel_y, alpha = 0, time = 5) addtimer(CALLBACK(src, .proc/cleanup_blood), 5) -/obj/item/projectile/hallucination/proc/cleanup_blood(image/blood) +/obj/projectile/hallucination/proc/cleanup_blood(image/blood) hal_target.client.images -= blood qdel(blood) -/obj/item/projectile/hallucination/proc/spawn_hit(atom/A, is_wall) +/obj/projectile/hallucination/proc/spawn_hit(atom/A, is_wall) set waitfor = 0 if(!hal_target.client) return @@ -120,10 +120,10 @@ qdel(hit_effect) -/obj/item/projectile/hallucination/proc/hal_apply_effect() +/obj/projectile/hallucination/proc/hal_apply_effect() return -/obj/item/projectile/hallucination/bullet +/obj/projectile/hallucination/bullet name = "bullet" hal_icon_state = "bullet" hal_fire_sound = "gunshot" @@ -134,10 +134,10 @@ hit_duration = 5 hit_duration_wall = 5 -/obj/item/projectile/hallucination/bullet/hal_apply_effect() +/obj/projectile/hallucination/bullet/hal_apply_effect() hal_target.adjustStaminaLoss(60) -/obj/item/projectile/hallucination/laser +/obj/projectile/hallucination/laser name = "laser" damage_type = BURN hal_icon_state = "laser" @@ -150,11 +150,11 @@ hit_duration_wall = 10 pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE -/obj/item/projectile/hallucination/laser/hal_apply_effect() +/obj/projectile/hallucination/laser/hal_apply_effect() hal_target.adjustStaminaLoss(20) hal_target.blur_eyes(2) -/obj/item/projectile/hallucination/taser +/obj/projectile/hallucination/taser name = "electrode" damage_type = BURN hal_icon_state = "spark" @@ -165,7 +165,7 @@ hal_impact_effect = null hal_impact_effect_wall = null -/obj/item/projectile/hallucination/taser/hal_apply_effect() +/obj/projectile/hallucination/taser/hal_apply_effect() hal_target.Paralyze(100) hal_target.stuttering += 20 if(hal_target.dna && hal_target.dna.check_mutation(HULK)) @@ -173,7 +173,7 @@ else if((hal_target.status_flags & CANKNOCKDOWN) && !HAS_TRAIT(hal_target, TRAIT_STUNIMMUNE)) addtimer(CALLBACK(hal_target, /mob/living/carbon.proc/do_jitter_animation, 20), 5) -/obj/item/projectile/hallucination/disabler +/obj/projectile/hallucination/disabler name = "disabler beam" damage_type = STAMINA hal_icon_state = "omnilaser" @@ -185,10 +185,10 @@ hit_duration = 4 pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE -/obj/item/projectile/hallucination/disabler/hal_apply_effect() +/obj/projectile/hallucination/disabler/hal_apply_effect() hal_target.adjustStaminaLoss(25) -/obj/item/projectile/hallucination/ebow +/obj/projectile/hallucination/ebow name = "bolt" damage_type = TOX hal_icon_state = "cbbolt" @@ -198,12 +198,12 @@ hal_impact_effect = null hal_impact_effect_wall = null -/obj/item/projectile/hallucination/ebow/hal_apply_effect() +/obj/projectile/hallucination/ebow/hal_apply_effect() hal_target.Paralyze(100) hal_target.stuttering += 5 hal_target.adjustStaminaLoss(8) -/obj/item/projectile/hallucination/change +/obj/projectile/hallucination/change name = "bolt of change" damage_type = BURN hal_icon_state = "ice_1" @@ -213,10 +213,10 @@ hal_impact_effect = null hal_impact_effect_wall = null -/obj/item/projectile/hallucination/change/hal_apply_effect() +/obj/projectile/hallucination/change/hal_apply_effect() new /datum/hallucination/self_delusion(hal_target, TRUE, wabbajack = FALSE) -/obj/item/projectile/hallucination/death +/obj/projectile/hallucination/death name = "bolt of death" damage_type = BURN hal_icon_state = "pulse1_bl" @@ -226,5 +226,5 @@ hal_impact_effect = null hal_impact_effect_wall = null -/obj/item/projectile/hallucination/death/hal_apply_effect() +/obj/projectile/hallucination/death/hal_apply_effect() new /datum/hallucination/death(hal_target, TRUE) diff --git a/code/modules/projectiles/projectile/special/ion.dm b/code/modules/projectiles/projectile/special/ion.dm index a9c326ec6ac..0a494054ca8 100644 --- a/code/modules/projectiles/projectile/special/ion.dm +++ b/code/modules/projectiles/projectile/special/ion.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/ion +/obj/projectile/ion name = "ion bolt" icon_state = "ion" damage = 0 @@ -8,10 +8,10 @@ impact_effect_type = /obj/effect/temp_visual/impact_effect/ion var/emp_radius = 1 -/obj/item/projectile/ion/on_hit(atom/target, blocked = FALSE) +/obj/projectile/ion/on_hit(atom/target, blocked = FALSE) ..() empulse(target, emp_radius, emp_radius) return BULLET_ACT_HIT -/obj/item/projectile/ion/weak +/obj/projectile/ion/weak emp_radius = 0 diff --git a/code/modules/projectiles/projectile/special/meteor.dm b/code/modules/projectiles/projectile/special/meteor.dm index c2dd715f9c1..464d7c11b66 100644 --- a/code/modules/projectiles/projectile/special/meteor.dm +++ b/code/modules/projectiles/projectile/special/meteor.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/meteor +/obj/projectile/meteor name = "meteor" icon = 'icons/obj/meteor.dmi' icon_state = "small1" @@ -7,7 +7,7 @@ nodamage = TRUE flag = "bullet" -/obj/item/projectile/meteor/Bump(atom/A) +/obj/projectile/meteor/Bump(atom/A) if(A == firer) forceMove(A.loc) return diff --git a/code/modules/projectiles/projectile/special/mindflayer.dm b/code/modules/projectiles/projectile/special/mindflayer.dm index ac4488cae06..6a4669998d3 100644 --- a/code/modules/projectiles/projectile/special/mindflayer.dm +++ b/code/modules/projectiles/projectile/special/mindflayer.dm @@ -1,7 +1,7 @@ -/obj/item/projectile/beam/mindflayer +/obj/projectile/beam/mindflayer name = "flayer ray" -/obj/item/projectile/beam/mindflayer/on_hit(atom/target, blocked = FALSE) +/obj/projectile/beam/mindflayer/on_hit(atom/target, blocked = FALSE) . = ..() if(ishuman(target)) var/mob/living/carbon/human/M = target diff --git a/code/modules/projectiles/projectile/special/neurotoxin.dm b/code/modules/projectiles/projectile/special/neurotoxin.dm index fc7928c88d7..9eb3b8478ad 100644 --- a/code/modules/projectiles/projectile/special/neurotoxin.dm +++ b/code/modules/projectiles/projectile/special/neurotoxin.dm @@ -1,11 +1,11 @@ -/obj/item/projectile/bullet/neurotoxin +/obj/projectile/bullet/neurotoxin name = "neurotoxin spit" icon_state = "neurotoxin" damage = 5 damage_type = TOX paralyze = 100 -/obj/item/projectile/bullet/neurotoxin/on_hit(atom/target, blocked = FALSE) +/obj/projectile/bullet/neurotoxin/on_hit(atom/target, blocked = FALSE) if(isalien(target)) paralyze = 0 nodamage = TRUE diff --git a/code/modules/projectiles/projectile/special/plasma.dm b/code/modules/projectiles/projectile/special/plasma.dm index b1ae7e4fab1..01e46a05d34 100644 --- a/code/modules/projectiles/projectile/special/plasma.dm +++ b/code/modules/projectiles/projectile/special/plasma.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/plasma +/obj/projectile/plasma name = "plasma blast" icon_state = "plasmacutter" damage_type = BRUTE @@ -11,7 +11,7 @@ muzzle_type = /obj/effect/projectile/muzzle/plasma_cutter impact_type = /obj/effect/projectile/impact/plasma_cutter -/obj/item/projectile/plasma/on_hit(atom/target) +/obj/projectile/plasma/on_hit(atom/target) . = ..() if(ismineralturf(target)) var/turf/closed/mineral/M = target @@ -22,17 +22,17 @@ if(range > 0) return BULLET_ACT_FORCE_PIERCE -/obj/item/projectile/plasma/adv +/obj/projectile/plasma/adv damage = 7 range = 5 mine_range = 5 -/obj/item/projectile/plasma/adv/mech +/obj/projectile/plasma/adv/mech damage = 10 range = 9 mine_range = 3 -/obj/item/projectile/plasma/turret +/obj/projectile/plasma/turret //Between normal and advanced for damage, made a beam so not the turret does not destroy glass name = "plasma beam" damage = 24 diff --git a/code/modules/projectiles/projectile/special/rocket.dm b/code/modules/projectiles/projectile/special/rocket.dm index 6ff9d45b3fe..a8329b6fc8e 100644 --- a/code/modules/projectiles/projectile/special/rocket.dm +++ b/code/modules/projectiles/projectile/special/rocket.dm @@ -1,14 +1,14 @@ -/obj/item/projectile/bullet/gyro +/obj/projectile/bullet/gyro name ="explosive bolt" icon_state= "bolter" damage = 50 -/obj/item/projectile/bullet/gyro/on_hit(atom/target, blocked = FALSE) +/obj/projectile/bullet/gyro/on_hit(atom/target, blocked = FALSE) ..() explosion(target, -1, 0, 2) return BULLET_ACT_HIT -/obj/item/projectile/bullet/a84mm +/obj/projectile/bullet/a84mm name ="\improper HEDP rocket" desc = "USE A WEEL GUN" icon_state= "84mm-hedp" @@ -17,7 +17,7 @@ armour_penetration = 100 dismemberment = 100 -/obj/item/projectile/bullet/a84mm/on_hit(atom/target, blocked = FALSE) +/obj/projectile/bullet/a84mm/on_hit(atom/target, blocked = FALSE) ..() explosion(target, -1, 1, 3, 1, 0, flame_range = 4) @@ -29,14 +29,14 @@ S.take_overall_damage(anti_armour_damage*0.75, anti_armour_damage*0.25) return BULLET_ACT_HIT -/obj/item/projectile/bullet/a84mm_he +/obj/projectile/bullet/a84mm_he name ="\improper HE missile" desc = "Boom." icon_state = "missile" damage = 30 ricochets_max = 0 //it's a MISSILE -/obj/item/projectile/bullet/a84mm_he/on_hit(atom/target, blocked=0) +/obj/projectile/bullet/a84mm_he/on_hit(atom/target, blocked=0) ..() if(!isliving(target)) //if the target isn't alive, so is a wall or something explosion(target, 0, 1, 2, 4) @@ -44,7 +44,7 @@ explosion(target, 0, 0, 2, 4) return BULLET_ACT_HIT -/obj/item/projectile/bullet/a84mm_br +/obj/projectile/bullet/a84mm_br name ="\improper HE missile" desc = "Boom." icon_state = "missile" @@ -65,7 +65,7 @@ w_class = WEIGHT_CLASS_TINY -/obj/item/projectile/bullet/a84mm_br/on_hit(atom/target, blocked=0) +/obj/projectile/bullet/a84mm_br/on_hit(atom/target, blocked=0) ..() for(var/i in sturdy) if(istype(target, i)) diff --git a/code/modules/projectiles/projectile/special/temperature.dm b/code/modules/projectiles/projectile/special/temperature.dm index ab851177538..dbabf2f8ef8 100644 --- a/code/modules/projectiles/projectile/special/temperature.dm +++ b/code/modules/projectiles/projectile/special/temperature.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/temp +/obj/projectile/temp name = "freeze beam" icon_state = "ice_2" damage = 0 @@ -7,21 +7,21 @@ flag = "energy" var/temperature = 100 -/obj/item/projectile/temp/on_hit(atom/target, blocked = 0) +/obj/projectile/temp/on_hit(atom/target, blocked = 0) . = ..() if(isliving(target)) var/mob/living/L = target L.adjust_bodytemperature(((100-blocked)/100)*(temperature - L.bodytemperature)) // the new body temperature is adjusted by 100-blocked % of the delta between body temperature and the bullet's effect temperature -/obj/item/projectile/temp/hot +/obj/projectile/temp/hot name = "heat beam" temperature = 400 -/obj/item/projectile/temp/cryo +/obj/projectile/temp/cryo name = "cryo beam" range = 3 -/obj/item/projectile/temp/cryo/on_range() +/obj/projectile/temp/cryo/on_range() var/turf/T = get_turf(src) if(isopenturf(T)) var/turf/open/O = T diff --git a/code/modules/projectiles/projectile/special/wormhole.dm b/code/modules/projectiles/projectile/special/wormhole.dm index 07b56a133fb..ad15e0bdfd1 100644 --- a/code/modules/projectiles/projectile/special/wormhole.dm +++ b/code/modules/projectiles/projectile/special/wormhole.dm @@ -1,4 +1,4 @@ -/obj/item/projectile/beam/wormhole +/obj/projectile/beam/wormhole name = "bluespace beam" icon_state = "spark" hitsound = "sparks" @@ -12,18 +12,18 @@ muzzle_type = /obj/effect/projectile/muzzle/wormhole hitscan = TRUE -/obj/item/projectile/beam/wormhole/orange +/obj/projectile/beam/wormhole/orange name = "orange bluespace beam" color = "#FF6600" -/obj/item/projectile/beam/wormhole/Initialize(mapload, obj/item/ammo_casing/energy/wormhole/casing) +/obj/projectile/beam/wormhole/Initialize(mapload, obj/item/ammo_casing/energy/wormhole/casing) . = ..() if(casing) gun = casing.gun -/obj/item/projectile/beam/wormhole/on_hit(atom/target) +/obj/projectile/beam/wormhole/on_hit(atom/target) if(!gun) qdel(src) - return + return gun.create_portal(src, get_turf(src)) diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 728ab773351..8efcbe80de9 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -81,7 +81,7 @@ ..() //extend the zap boom() -/obj/structure/reagent_dispensers/fueltank/bullet_act(obj/item/projectile/P) +/obj/structure/reagent_dispensers/fueltank/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))) diff --git a/code/modules/recycling/disposal/bin.dm b/code/modules/recycling/disposal/bin.dm index 8195e46d277..700bb3926f6 100644 --- a/code/modules/recycling/disposal/bin.dm +++ b/code/modules/recycling/disposal/bin.dm @@ -484,7 +484,7 @@ /atom/movable/proc/CanEnterDisposals() return TRUE -/obj/item/projectile/CanEnterDisposals() +/obj/projectile/CanEnterDisposals() return /obj/effect/CanEnterDisposals() diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm index 018fae01a2a..fa7eca37141 100644 --- a/code/modules/research/experimentor.dm +++ b/code/modules/research/experimentor.dm @@ -361,7 +361,7 @@ if(MT) visible_message("[src] dangerously overheats, launching a flaming fuel orb!") investigate_log("Experimentor has launched a fireball at [M]!", INVESTIGATE_EXPERIMENTOR) - var/obj/item/projectile/magic/aoe/fireball/FB = new /obj/item/projectile/magic/aoe/fireball(start) + var/obj/projectile/magic/aoe/fireball/FB = new /obj/projectile/magic/aoe/fireball(start) FB.preparePixelProjectile(MT, start) FB.fire() else if(prob(EFFECT_PROB_LOW-badThingCoeff)) diff --git a/code/modules/research/xenobiology/crossbreeding/_weapons.dm b/code/modules/research/xenobiology/crossbreeding/_weapons.dm index bdc6c8ef631..40fc43bde22 100644 --- a/code/modules/research/xenobiology/crossbreeding/_weapons.dm +++ b/code/modules/research/xenobiology/crossbreeding/_weapons.dm @@ -101,9 +101,9 @@ Slimecrossing Weapons return 1 /obj/item/ammo_casing/magic/bloodchill - projectile_type = /obj/item/projectile/magic/bloodchill + projectile_type = /obj/projectile/magic/bloodchill -/obj/item/projectile/magic/bloodchill +/obj/projectile/magic/bloodchill name = "blood ball" icon_state = "pulse0_bl" damage = 0 @@ -111,7 +111,7 @@ Slimecrossing Weapons nodamage = TRUE hitsound = 'sound/effects/splat.ogg' -/obj/item/projectile/magic/bloodchill/on_hit(mob/living/target) +/obj/projectile/magic/bloodchill/on_hit(mob/living/target) . = ..() if(isliving(target)) target.apply_status_effect(/datum/status_effect/bloodchill) diff --git a/code/modules/shuttle/special.dm b/code/modules/shuttle/special.dm index bf2ee4a6acb..4829a12f767 100644 --- a/code/modules/shuttle/special.dm +++ b/code/modules/shuttle/special.dm @@ -6,7 +6,7 @@ /obj/machinery/power/emitter/energycannon/magical name = "wabbajack statue" desc = "Who am I? What is my purpose in life? What do I mean by who am I?" - projectile_type = /obj/item/projectile/magic/change + projectile_type = /obj/projectile/magic/change icon = 'icons/obj/machines/magic_emitter.dmi' icon_state = "wabbajack_statue" icon_state_on = "wabbajack_statue_on" diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm index a9e047e90d8..6c6c49a1198 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -20,7 +20,7 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( /obj/item/warp_cube, /obj/machinery/rnd/production, //print tracking beacons, send shuttle /obj/machinery/autolathe, //same - /obj/item/projectile/beam/wormhole, + /obj/projectile/beam/wormhole, /obj/effect/portal, /obj/item/shared_storage, /obj/structure/extraction_point, diff --git a/code/modules/spells/spell_types/aimed.dm b/code/modules/spells/spell_types/aimed.dm index 319419c884b..782d63edbac 100644 --- a/code/modules/spells/spell_types/aimed.dm +++ b/code/modules/spells/spell_types/aimed.dm @@ -1,7 +1,7 @@ /obj/effect/proc_holder/spell/aimed name = "aimed projectile spell" - var/projectile_type = /obj/item/projectile/magic/teleport + var/projectile_type = /obj/projectile/magic/teleport var/deactive_msg = "You discharge your projectile..." var/active_msg = "You charge your projectile!" var/base_icon_state = "projectile" @@ -75,7 +75,7 @@ /obj/effect/proc_holder/spell/aimed/proc/fire_projectile(mob/living/user, atom/target) current_amount-- for(var/i in 1 to projectiles_per_fire) - var/obj/item/projectile/P = new projectile_type(user.loc) + var/obj/projectile/P = new projectile_type(user.loc) P.firer = user P.preparePixelProjectile(target, user) for(var/V in projectile_var_overrides) @@ -85,7 +85,7 @@ P.fire() return TRUE -/obj/effect/proc_holder/spell/aimed/proc/ready_projectile(obj/item/projectile/P, atom/target, mob/user, iteration) +/obj/effect/proc_holder/spell/aimed/proc/ready_projectile(obj/projectile/P, atom/target, mob/user, iteration) return /obj/effect/proc_holder/spell/aimed/lightningbolt @@ -104,7 +104,7 @@ projectile_var_overrides = list("tesla_range" = 15, "tesla_power" = 20000, "tesla_flags" = TESLA_MOB_DAMAGE) active_msg = "You energize your hand with arcane lightning!" deactive_msg = "You let the energy flow out of your hands back into yourself..." - projectile_type = /obj/item/projectile/magic/aoe/lightning + projectile_type = /obj/projectile/magic/aoe/lightning /obj/effect/proc_holder/spell/aimed/fireball name = "Fireball" @@ -116,7 +116,7 @@ invocation_type = "shout" range = 20 cooldown_min = 20 //10 deciseconds reduction per rank - projectile_type = /obj/item/projectile/magic/aoe/fireball + projectile_type = /obj/projectile/magic/aoe/fireball base_icon_state = "fireball" action_icon_state = "fireball0" sound = 'sound/magic/fireball.ogg' @@ -141,7 +141,7 @@ cooldown_min = 10 projectile_amount = 5 projectiles_per_fire = 7 - projectile_type = /obj/item/projectile/spellcard + projectile_type = /obj/projectile/spellcard base_icon_state = "spellcard" action_icon_state = "spellcard0" var/datum/weakref/current_target_weakref @@ -169,7 +169,7 @@ /obj/effect/proc_holder/spell/aimed/spell_cards/on_deactivation(mob/M) QDEL_NULL(lockon_component) -/obj/effect/proc_holder/spell/aimed/spell_cards/ready_projectile(obj/item/projectile/P, atom/target, mob/user, iteration) +/obj/effect/proc_holder/spell/aimed/spell_cards/ready_projectile(obj/projectile/P, atom/target, mob/user, iteration) if(current_target_weakref) var/atom/A = current_target_weakref.resolve() if(A && get_dist(A, user) < 7) diff --git a/code/modules/spells/spell_types/conjure.dm b/code/modules/spells/spell_types/conjure.dm index bad4c477a73..a4bff8fa452 100644 --- a/code/modules/spells/spell_types/conjure.dm +++ b/code/modules/spells/spell_types/conjure.dm @@ -50,11 +50,10 @@ /obj/effect/proc_holder/spell/aoe_turf/conjure/summonEdSwarm //test purposes - Also a lot of fun name = "Dispense Wizard Justice" desc = "This spell dispenses wizard justice." - summon_type = list(/mob/living/simple_animal/bot/secbot/ed209) summon_amt = 10 range = 3 - newVars = list("emagged" = 2, "remote_disabled" = 1, "projectile" = /obj/item/projectile/beam/laser, "declare_arrests" = 0,"name" = "Wizard's Justicebot") + newVars = list("emagged" = 2, "remote_disabled" = 1,"shoot_sound" = 'sound/weapons/laser.ogg',"projectile" = /obj/projectile/beam/laser, "declare_arrests" = 0,"name" = "Wizard's Justicebot") /obj/effect/proc_holder/spell/aoe_turf/conjure/linkWorlds name = "Link Worlds" diff --git a/code/modules/spells/spell_types/construct_spells.dm b/code/modules/spells/spell_types/construct_spells.dm index 43813beb7f9..3835c3fa252 100644 --- a/code/modules/spells/spell_types/construct_spells.dm +++ b/code/modules/spells/spell_types/construct_spells.dm @@ -152,9 +152,9 @@ max_targets = 6 action_icon_state = "magicm" action_background_icon_state = "bg_demon" - proj_type = /obj/item/projectile/magic/spell/magic_missile/lesser + proj_type = /obj/projectile/magic/spell/magic_missile/lesser -/obj/item/projectile/magic/spell/magic_missile/lesser +/obj/projectile/magic/spell/magic_missile/lesser color = "red" //Looks more culty this way range = 10 @@ -291,7 +291,7 @@ /obj/effect/proc_holder/spell/targeted/projectile/dumbfire/juggernaut name = "Gauntlet Echo" desc = "Channels energy into your gauntlet - firing its essence forward in a slow moving, yet devastating, attack." - proj_type = /obj/item/projectile/magic/spell/juggernaut + proj_type = /obj/projectile/magic/spell/juggernaut charge_max = 350 clothes_req = FALSE action_icon = 'icons/mob/actions/actions_cult.dmi' @@ -299,7 +299,7 @@ action_background_icon_state = "bg_demon" sound = 'sound/weapons/resonator_blast.ogg' -/obj/item/projectile/magic/spell/juggernaut +/obj/projectile/magic/spell/juggernaut name = "Gauntlet Echo" icon_state = "cultfist" alpha = 180 @@ -313,7 +313,7 @@ range = 15 speed = 7 -/obj/item/projectile/magic/spell/juggernaut/on_hit(atom/target, blocked) +/obj/projectile/magic/spell/juggernaut/on_hit(atom/target, blocked) . = ..() var/turf/T = get_turf(src) playsound(T, 'sound/weapons/resonator_blast.ogg', 100, FALSE) diff --git a/code/modules/spells/spell_types/devil.dm b/code/modules/spells/spell_types/devil.dm index c06987aa29f..fdfc7d84f64 100644 --- a/code/modules/spells/spell_types/devil.dm +++ b/code/modules/spells/spell_types/devil.dm @@ -84,7 +84,7 @@ invocation_type = "shout" range = 2 - projectile_type = /obj/item/projectile/magic/aoe/fireball/infernal + projectile_type = /obj/projectile/magic/aoe/fireball/infernal action_background_icon_state = "bg_demon" diff --git a/code/modules/spells/spell_types/mime.dm b/code/modules/spells/spell_types/mime.dm index 64304999948..49f596135bf 100644 --- a/code/modules/spells/spell_types/mime.dm +++ b/code/modules/spells/spell_types/mime.dm @@ -180,7 +180,7 @@ invocation_type = "emote" invocation_emote_self = "You fire your finger gun!" range = 20 - projectile_type = /obj/item/projectile/bullet/mime + projectile_type = /obj/projectile/bullet/mime projectile_amount = 3 sound = null active_msg = "You draw your fingers!" diff --git a/code/modules/spells/spell_types/projectile.dm b/code/modules/spells/spell_types/projectile.dm index 72d8c8208fb..f3942f2dda1 100644 --- a/code/modules/spells/spell_types/projectile.dm +++ b/code/modules/spells/spell_types/projectile.dm @@ -1,6 +1,6 @@ -/obj/item/projectile/magic/spell +/obj/projectile/magic/spell name = "custom spell projectile" var/list/ignored_factions //Do not hit these var/check_holy = FALSE @@ -14,19 +14,19 @@ var/trail_icon_state = "trail" //todo unify this and magic/aoe under common path -/obj/item/projectile/magic/spell/Range() +/obj/projectile/magic/spell/Range() if(trigger_range > 1) for(var/mob/living/L in range(trigger_range, get_turf(src))) if(can_hit_target(L, ignore_loc = TRUE)) return Bump(L) . = ..() -/obj/item/projectile/magic/spell/Moved(atom/OldLoc, Dir) +/obj/projectile/magic/spell/Moved(atom/OldLoc, Dir) . = ..() if(trail) create_trail() -/obj/item/projectile/magic/spell/proc/create_trail() +/obj/projectile/magic/spell/proc/create_trail() if(!trajectory) return var/datum/point/vector/previous = trajectory.return_vector_after_increments(1,-1) @@ -40,7 +40,7 @@ trail.mouse_opacity = MOUSE_OPACITY_TRANSPARENT QDEL_IN(trail, trail_lifespan) -/obj/item/projectile/magic/spell/can_hit_target(atom/target, list/passthrough, direct_target = FALSE, ignore_loc = FALSE) +/obj/projectile/magic/spell/can_hit_target(atom/target, list/passthrough, direct_target = FALSE, ignore_loc = FALSE) . = ..() if(linger && target != original) return FALSE @@ -58,11 +58,11 @@ name = "Projectile" desc = "This spell summons projectiles which try to hit the targets." - - var/proj_type = /obj/item/projectile/magic/spell //IMPORTANT use only subtypes of this - - + + var/proj_type = /obj/projectile/magic/spell //IMPORTANT use only subtypes of this + + var/update_projectile = FALSE //So you want to admin abuse magic bullets ? This is for you //Below only apply if update_projectile is true var/proj_icon = 'icons/obj/projectiles.dmi' @@ -83,8 +83,8 @@ var/check_holy = FALSE /obj/effect/proc_holder/spell/targeted/projectile/proc/fire_projectile(atom/target, mob/user) - var/obj/item/projectile/magic/spell/projectile = new proj_type() - + var/obj/projectile/magic/spell/projectile = new proj_type() + if(update_projectile) //Generally these should already be set on the projectile, this is mostly here for varedited spells. projectile.icon = proj_icon diff --git a/code/modules/spells/spell_types/wizard.dm b/code/modules/spells/spell_types/wizard.dm index a245fac4af0..d934de4ff8b 100644 --- a/code/modules/spells/spell_types/wizard.dm +++ b/code/modules/spells/spell_types/wizard.dm @@ -10,11 +10,11 @@ range = 7 cooldown_min = 60 //35 deciseconds reduction per rank max_targets = 0 - proj_type = /obj/item/projectile/magic/spell/magic_missile + proj_type = /obj/projectile/magic/spell/magic_missile action_icon_state = "magicm" sound = 'sound/magic/magic_missile.ogg' -/obj/item/projectile/magic/spell/magic_missile +/obj/projectile/magic/spell/magic_missile name = "magic missile" icon_state = "magicm" range = 20 @@ -29,7 +29,7 @@ trail_lifespan = 5 trail_icon_state = "magicmd" -/obj/item/projectile/magic/spell/magic_missile/on_hit(target) +/obj/projectile/magic/spell/magic_missile/on_hit(target) . = ..() if(ismob(target)) var/mob/M = target diff --git a/code/modules/vehicles/atv.dm b/code/modules/vehicles/atv.dm index ded15eb7683..0d7781be03e 100644 --- a/code/modules/vehicles/atv.dm +++ b/code/modules/vehicles/atv.dm @@ -88,7 +88,7 @@ smoke.set_up(0, src) smoke.start() -/obj/vehicle/ridden/atv/bullet_act(obj/item/projectile/P) +/obj/vehicle/ridden/atv/bullet_act(obj/projectile/P) if(prob(50) && buckled_mobs) for(var/mob/M in buckled_mobs) M.bullet_act(P) diff --git a/code/modules/vehicles/secway.dm b/code/modules/vehicles/secway.dm index 16d362f2872..46305334d86 100644 --- a/code/modules/vehicles/secway.dm +++ b/code/modules/vehicles/secway.dm @@ -46,7 +46,7 @@ STOP_PROCESSING(SSobj,src) return ..() -/obj/vehicle/ridden/secway/bullet_act(obj/item/projectile/P) +/obj/vehicle/ridden/secway/bullet_act(obj/projectile/P) if(prob(60) && buckled_mobs) for(var/mob/M in buckled_mobs) M.bullet_act(P)