/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 15:23:20 +05:00
committed by GitHub
parent e92a45369a
commit f96b26b75a
169 changed files with 858 additions and 851 deletions
@@ -118,7 +118,7 @@
var/turf/proj_turf = get_turf_for_projectile(user)
if(!isturf(proj_turf))
return
var/obj/item/projectile/destabilizer/D = new /obj/item/projectile/destabilizer(proj_turf)
var/obj/projectile/destabilizer/D = new /obj/projectile/destabilizer(proj_turf)
for(var/t in trophies)
var/obj/item/crusher_trophy/T = t
T.on_projectile_fire(D, user)
@@ -197,7 +197,7 @@
update_action_buttons()
//destablizing force
/obj/item/projectile/destabilizer
/obj/projectile/destabilizer
name = "destabilizing force"
icon_state = "pulse1"
nodamage = TRUE
@@ -207,11 +207,11 @@
log_override = TRUE
var/obj/item/kinetic_crusher/hammer_synced
/obj/item/projectile/destabilizer/Destroy()
/obj/projectile/destabilizer/Destroy()
hammer_synced = null
return ..()
/obj/item/projectile/destabilizer/on_hit(atom/target, blocked = FALSE)
/obj/projectile/destabilizer/on_hit(atom/target, blocked = FALSE)
if(isliving(target))
var/mob/living/L = target
var/had_effect = (L.has_status_effect(STATUS_EFFECT_CRUSHERMARK)) //used as a boolean
@@ -279,7 +279,7 @@
/obj/item/crusher_trophy/proc/on_melee_hit(mob/living/target, mob/living/user) //the target and the user
return
/obj/item/crusher_trophy/proc/on_projectile_fire(obj/item/projectile/destabilizer/marker, mob/living/user) //the projectile fired and the user
/obj/item/crusher_trophy/proc/on_projectile_fire(obj/projectile/destabilizer/marker, mob/living/user) //the projectile fired and the user
return
/obj/item/crusher_trophy/proc/on_mark_application(mob/living/target, datum/status_effect/crusher_mark/mark, had_mark) //the target, the mark applied, and if the target had a mark before
@@ -346,7 +346,7 @@
/obj/item/crusher_trophy/blaster_tubes/magma_wing/effect_desc()
return "mark detonation to make the next destabilizer shot deal <b>[bonus_value]</b> damage"
/obj/item/crusher_trophy/blaster_tubes/magma_wing/on_projectile_fire(obj/item/projectile/destabilizer/marker, mob/living/user)
/obj/item/crusher_trophy/blaster_tubes/magma_wing/on_projectile_fire(obj/projectile/destabilizer/marker, mob/living/user)
if(deadly_shot)
marker.name = "heated [marker.name]"
marker.icon_state = "lava"
@@ -479,7 +479,7 @@
/obj/item/crusher_trophy/blaster_tubes/effect_desc()
return "mark detonation to make the next destabilizer shot deal <b>[bonus_value]</b> 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"
@@ -34,9 +34,9 @@
ActivationReaction(user, "weapon")
return ..()
/obj/machinery/anomalous_crystal/bullet_act(obj/item/projectile/P, def_zone)
/obj/machinery/anomalous_crystal/bullet_act(obj/projectile/P, def_zone)
..()
if(istype(P, /obj/item/projectile/magic))
if(istype(P, /obj/projectile/magic))
ActivationReaction(P.firer, "magic", P.damage_type)
return
ActivationReaction(P.firer, P.flag, P.damage_type)
@@ -140,16 +140,16 @@
/// Generates a projectile when interacted with
/obj/machinery/anomalous_crystal/emitter
cooldown_add = 50
var/generated_projectile = /obj/item/projectile/beam/emitter
var/generated_projectile = /obj/projectile/beam/emitter
/obj/machinery/anomalous_crystal/emitter/Initialize(mapload)
. = ..()
generated_projectile = pick(/obj/item/projectile/magic/fireball/infernal,
/obj/item/projectile/bullet/meteorshot, /obj/item/projectile/beam/xray, /obj/item/projectile/colossus)
generated_projectile = pick(/obj/projectile/magic/fireball/infernal,
/obj/projectile/bullet/meteorshot, /obj/projectile/beam/xray, /obj/projectile/colossus)
/obj/machinery/anomalous_crystal/emitter/ActivationReaction(mob/user, method)
if(..())
var/obj/item/projectile/P = new generated_projectile(get_turf(src))
var/obj/projectile/P = new generated_projectile(get_turf(src))
P.dir = dir
switch(dir)
if(NORTH)
@@ -349,13 +349,13 @@
/obj/item/ammo_casing/magic/hook
name = "hook"
desc = "a hook."
projectile_type = /obj/item/projectile/hook
projectile_type = /obj/projectile/hook
caliber = "hook"
icon = 'icons/obj/lavaland/artefacts.dmi'
icon_state = "hook"
muzzle_flash_effect = null
/obj/item/projectile/hook
/obj/projectile/hook
name = "hook"
icon_state = "hook"
icon = 'icons/obj/lavaland/artefacts.dmi'
@@ -365,13 +365,13 @@
weaken = 1 SECONDS
knockdown = 6 SECONDS
/obj/item/projectile/hook/fire(setAngle)
/obj/projectile/hook/fire(setAngle)
if(firer)
chain = firer.Beam(src, icon_state = "chain", time = INFINITY, maxdistance = INFINITY)
..()
//TODO: root the firer until the chain returns
/obj/item/projectile/hook/on_hit(atom/target)
/obj/projectile/hook/on_hit(atom/target)
. = ..()
if(isliving(target))
var/mob/living/L = target
@@ -382,7 +382,7 @@
L.forceMove(get_turf(firer))
L.density = old_density
/obj/item/projectile/hook/Destroy()
/obj/projectile/hook/Destroy()
QDEL_NULL(chain)
return ..()
@@ -243,7 +243,7 @@
if(berserk_active)
return
if(isprojectile(hitby))
var/obj/item/projectile/P = hitby
var/obj/projectile/P = hitby
if(P.damage_type == STAMINA)
return //no disabler rage
var/berserk_value = damage * DAMAGE_TO_CHARGE_SCALE
+2 -2
View File
@@ -311,7 +311,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
else
..()
/obj/item/gibtonite/bullet_act(obj/item/projectile/P)
/obj/item/gibtonite/bullet_act(obj/projectile/P)
GibtoniteReaction(P.firer)
..()
@@ -416,7 +416,7 @@ GLOBAL_LIST_INIT(sand_recipes, list(\
materials = list(MAT_PLASMA = 400)
credits = 80
/obj/item/coin/plasma/bullet_act(obj/item/projectile/P)
/obj/item/coin/plasma/bullet_act(obj/projectile/P)
if(!QDELETED(src) && !P.nodamage && (P.damage_type == BURN))
log_and_set_aflame(P.firer, P)