Replaces ammo_casing/caseless and bullet/reusable with elements. (#76335)

The reusable and caseless types only purposes are the behaviors of
deleting the casing when fired and spawning a new object when the
projectile ultimately reaches its maximum range or hits a target, both
of which are easily "elementizable". Also, I don't like those barely
filled sub-folders in the projectile module, and the fact we've
divergent reusable and single use arrow types.
This commit is contained in:
Ghom
2023-06-28 01:14:59 +00:00
committed by GitHub
parent 13ce8d6d40
commit 6b007f758b
41 changed files with 345 additions and 275 deletions
@@ -645,14 +645,14 @@
update_appearance()
make_froth(offset_x = 0, offset_y = sabraged ? 13 : 15, intensity = froth_severity) //the y offset for sabraged is lower because the bottle's lip is smashed
///Type of cork to fire away
var/obj/projectile/bullet/reusable/cork_to_fire = sabraged ? /obj/projectile/bullet/reusable/champagne_cork/sabrage : /obj/projectile/bullet/reusable/champagne_cork
var/obj/projectile/bullet/cork_to_fire = sabraged ? /obj/projectile/bullet/champagne_cork/sabrage : /obj/projectile/bullet/champagne_cork
///Our resulting cork projectile
var/obj/projectile/bullet/reusable/champagne_cork/popped_cork = new cork_to_fire (drop_location())
var/obj/projectile/bullet/champagne_cork/popped_cork = new cork_to_fire (drop_location())
popped_cork.firer = user
popped_cork.fired_from = src
popped_cork.fire(dir2angle(user.dir) + rand(-30, 30))
/obj/projectile/bullet/reusable/champagne_cork
/obj/projectile/bullet/champagne_cork
name = "champagne cork"
icon = 'icons/obj/drinks/drink_effects.dmi'
icon_state = "champagne_cork"
@@ -666,14 +666,18 @@
ricochet_incidence_leeway = 0
range = 7
knockdown = 2 SECONDS
ammo_type = /obj/item/trash/champagne_cork
var/drop_type = /obj/item/trash/champagne_cork
/obj/projectile/bullet/reusable/champagne_cork/sabrage
/obj/projectile/bullet/champagne_cork/Initialize(mapload)
. = ..()
AddElement(/datum/element/projectile_drop, drop_type)
/obj/projectile/bullet/champagne_cork/sabrage
icon_state = "champagne_cork_sabrage"
damage = 12
ricochets_max = 2 //bit heavier
range = 6
ammo_type = /obj/item/trash/champagne_cork/sabrage
drop_type = /obj/item/trash/champagne_cork/sabrage
/obj/item/trash/champagne_cork
name = "champagne cork"