/obj/item/projectile --> /obj/projectile (#30411)

* yers

* vars

* map changes

* some comments (clearly not stolen from items)

* fix component

* summary
This commit is contained in:
kyunkyunkyun
2025-11-12 10:23:20 +00:00
committed by GitHub
parent e92a45369a
commit f96b26b75a
169 changed files with 858 additions and 851 deletions
+2 -2
View File
@@ -26,11 +26,11 @@
if(parent)
UnregisterSignal(parent, COMSIG_ATOM_BULLET_ACT)
/datum/component/debris/proc/register_for_impact(datum/source, obj/item/projectile/proj)
/datum/component/debris/proc/register_for_impact(datum/source, obj/projectile/proj)
SIGNAL_HANDLER // COMSIG_ATOM_BULLET_ACT
INVOKE_ASYNC(src, PROC_REF(on_impact), proj)
/datum/component/debris/proc/on_impact(obj/item/projectile/P)
/datum/component/debris/proc/on_impact(obj/projectile/P)
var/angle = !isnull(P.Angle) ? P.Angle : round(get_angle(P.starting, parent), 1)
var/x_component = sin(angle) * debris_velocity
var/y_component = cos(angle) * debris_velocity
@@ -148,7 +148,7 @@
if(rider.m_intent == MOVE_INTENT_WALK)
vehicle_move_delay += 0.6
/datum/component/riding/vehicle/scooter/skateboard/proc/check_knockoff(datum/source, obj/item/projectile)
/datum/component/riding/vehicle/scooter/skateboard/proc/check_knockoff(datum/source, obj/projectile)
SIGNAL_HANDLER // COMSIG_ATOM_BULLET_ACT
if(!istype(parent, /obj/tgvehicle/scooter/skateboard))
return
+1 -1
View File
@@ -154,7 +154,7 @@
var/charge_loss = 1 // how many charges do we lose
if(isprojectile(hitby))
var/obj/item/projectile/P = hitby
var/obj/projectile/P = hitby
if(P.shield_buster)
charge_loss = 3
if(lose_multiple_charges)
+1 -1
View File
@@ -94,7 +94,7 @@
if(I.flags & ABSTRACT)
return
if(isprojectile(entered))
var/obj/item/projectile/P = entered
var/obj/projectile/P = entered
if(P.original != parent)
return
if(ismob(source))
+1 -1
View File
@@ -156,7 +156,7 @@
/datum/disease/wand_rot/proc/sneeze_fireballs()
var/fuck_you_dir = pick(GLOB.alldirs)
var/turf/target_tile = get_edge_target_turf(affected_mob, fuck_you_dir)
var/obj/item/projectile/magic/fireball/FB = new /obj/item/projectile/magic/fireball(affected_mob.loc)
var/obj/projectile/magic/fireball/FB = new /obj/projectile/magic/fireball(affected_mob.loc)
FB.current = get_turf(affected_mob)
FB.original = target_tile
FB.firer = affected_mob
+1 -1
View File
@@ -65,7 +65,7 @@
return
/// Even if another component blocked this hit, someone still shot at us
/datum/element/relay_attackers/proc/on_bullet_act(atom/target, obj/item/projectile/hit_projectile)
/datum/element/relay_attackers/proc/on_bullet_act(atom/target, obj/projectile/hit_projectile)
SIGNAL_HANDLER // COMSIG_ATOM_BULLET_ACT
if(!hit_projectile.is_hostile_projectile())
return
@@ -8,7 +8,7 @@
var/angle_to_singulo = ATAN2(host.y - source.y, host.x - source.x)
var/distance_to_singulo = get_dist(source, host)
var/obj/item/projectile/P = entered
var/obj/projectile/P = entered
var/distance = distance_to_singulo
var/projectile_angle = P.Angle
var/angle_to_projectile = angle_to_singulo
@@ -5,7 +5,7 @@
plasma_cost = 50
selection_activated_message = "<span class='notice'><B>Your prepare some neurotoxin!</B></span>"
selection_deactivated_message = "<span class='notice'><B>You swallow your prepared neurotoxin.</B></span>"
var/neurotoxin_type = /obj/item/projectile/bullet/neurotoxin
var/neurotoxin_type = /obj/projectile/bullet/neurotoxin
action_icon_state = "alien_neurotoxin_0"
/datum/spell/alien_spell/neurotoxin/create_new_targeting()
@@ -24,7 +24,7 @@
if(!istype(U) || !istype(T))
return FALSE
var/obj/item/projectile/bullet/neurotoxin/neurotoxin = new neurotoxin_type(user.loc)
var/obj/projectile/bullet/neurotoxin/neurotoxin = new neurotoxin_type(user.loc)
neurotoxin.current = get_turf(user)
neurotoxin.original = target
neurotoxin.firer = user
@@ -36,5 +36,5 @@
/datum/spell/alien_spell/neurotoxin/death_to_xenos
desc = "This ability allows you to fire some neurotoxin. Knocks aliens down."
neurotoxin_type = /obj/item/projectile/bullet/anti_alien_toxin
neurotoxin_type = /obj/projectile/bullet/anti_alien_toxin
base_cooldown = 2 SECONDS
+2 -2
View File
@@ -126,7 +126,7 @@
holy_area_cancast = FALSE //Stops cult magic from working on holy ground eg: chapel
proj_lifespan = 10
proj_step_delay = 5
proj_type = /obj/item/projectile/magic/magic_missile/lesser
proj_type = /obj/projectile/magic/magic_missile/lesser
/datum/spell/projectile/magic_missile/lesser/create_new_targeting()
var/datum/spell_targeting/targeted/T = new()
@@ -135,7 +135,7 @@
T.max_targets = 6
return T
/obj/item/projectile/magic/magic_missile/lesser
/obj/projectile/magic/magic_missile/lesser
name = "lesser magic missile"
knockdown = 6 SECONDS
weaken = 0
+1 -1
View File
@@ -44,5 +44,5 @@
ammo_type = /obj/item/ammo_casing/magic/arcane_barrage/fireball
/obj/item/ammo_casing/magic/arcane_barrage/fireball
projectile_type = /obj/item/projectile/magic/fireball
projectile_type = /obj/projectile/magic/fireball
muzzle_flash_effect = null
+1 -1
View File
@@ -25,7 +25,7 @@
for(var/mob/living/target in targets)
spawn(0)
var/obj/item/projectile/projectile = new proj_type(get_turf(user))
var/obj/projectile/projectile = new proj_type(get_turf(user))
projectile.icon = proj_icon
projectile.icon_state = proj_icon_state
projectile.dir = get_dir(target, projectile)
+8 -8
View File
@@ -10,7 +10,7 @@
proj_icon_state = "magicm"
proj_name = "a magic missile"
proj_lingering = 1
proj_type = /obj/item/projectile/magic/magic_missile
proj_type = /obj/projectile/magic/magic_missile
proj_lifespan = 20
proj_step_delay = 2
@@ -29,7 +29,7 @@
T.max_targets = INFINITY
return T
/obj/item/projectile/magic/magic_missile
/obj/projectile/magic/magic_missile
name = "Magic Missile"
hitsound = 'sound/magic/mm_hit.ogg'
weaken = 6 SECONDS
@@ -48,7 +48,7 @@
proj_icon_state = "bike_horn"
proj_name = "A bike horn"
proj_lingering = 1
proj_type = /obj/item/projectile/magic/magic_missile/honk_missile
proj_type = /obj/projectile/magic/magic_missile/honk_missile
proj_lifespan = 20
proj_step_delay = 5
@@ -68,7 +68,7 @@
T.max_targets = INFINITY
return T
/obj/item/projectile/magic/magic_missile/honk_missile
/obj/projectile/magic/magic_missile/honk_missile
name = "Funny Missile"
hitsound = 'sound/items/bikehorn.ogg'
@@ -324,7 +324,7 @@
selection_activated_message = "<span class='notice'>You prepare to cast your fireball spell! <B>Left-click to cast at a target!</B></span>"
selection_deactivated_message = "<span class='notice'>You extinguish your fireball...for now.</span>"
var/fireball_type = /obj/item/projectile/magic/fireball
var/fireball_type = /obj/projectile/magic/fireball
action_icon_state = "fireball0"
sound = 'sound/magic/fireball.ogg'
@@ -350,7 +350,7 @@
if(!isturf(U) || !isturf(T))
return FALSE
var/obj/item/projectile/magic/fireball/FB = new fireball_type(user.loc)
var/obj/projectile/magic/fireball/FB = new fireball_type(user.loc)
FB.current = get_turf(user)
FB.original = target
FB.firer = user
@@ -364,7 +364,7 @@
name = "Homing Toolbox"
desc = "This spell summons and throws a magical homing toolbox at your opponent."
sound = 'sound/weapons/smash.ogg'
fireball_type = /obj/item/projectile/homing/magic/toolbox
fireball_type = /obj/projectile/homing/magic/toolbox
invocation = "ROBUSTIO!"
selection_activated_message = "<span class='notice'>You prepare to cast your homing toolbox! <B>Left-click to cast at a target!</B></span>"
@@ -374,7 +374,7 @@
name = "Greater Homing Fireball"
desc = "This spell fires a strong homing fireball at a target."
invocation = "ZI-ONI SOMA"
fireball_type = /obj/item/projectile/homing/magic/homing_fireball
fireball_type = /obj/projectile/homing/magic/homing_fireball
selection_activated_message = "<span class='notice'>You prepare to cast your greater homing fireball spell! <B>Left-click to cast at a target!</B></span>"
+2 -2
View File
@@ -922,8 +922,8 @@
if(L.affects_vampire(owner))
L.adjust_bodytemperature(-1.5 * TEMPERATURE_DAMAGE_COEFFICIENT)
continue
if(istype(AM, /obj/item/projectile))
var/obj/item/projectile/P = AM
if(istype(AM, /obj/projectile))
var/obj/projectile/P = AM
if(P.flag == ENERGY || P.flag == LASER)
P.damage *= 0.85