More funshit
This commit is contained in:
@@ -441,6 +441,30 @@
|
||||
qdel(revenant)
|
||||
..()
|
||||
|
||||
/proc/RevenantThrow(over, mob/user, obj/item/throwable)
|
||||
var/mob/living/simple_animal/revenant/spooker = user
|
||||
if(!istype(throwable))
|
||||
return
|
||||
if(!throwable.anchored && !spooker.telekinesis_cooldown && spooker.castcheck(-5))
|
||||
spooker.change_essence_amount(-5, FALSE, "telekinesis")
|
||||
spooker.stun(20)
|
||||
spooker.reveal(50)
|
||||
spooker.telekinesis_cooldown = TRUE
|
||||
throwable.float(TRUE)
|
||||
sleep(10)
|
||||
throwable.DoRevenantThrowEffects(over)
|
||||
throwable.throw_at(over, 10, 2)
|
||||
ADD_TRAIT(throwable, TRAIT_SPOOKY_THROW, "revenant")
|
||||
throwable.float(FALSE, TRUE)
|
||||
log_combat(throwable, over, "spooky telekinesised at", throwable)
|
||||
var/obj/effect/temp_visual/telekinesis/T = new(get_turf(throwable))
|
||||
T.color = "#8715b4"
|
||||
addtimer(CALLBACK(spooker, /mob/living/simple_animal/revenant.proc/telekinesis_cooldown_end), 50)
|
||||
|
||||
//Use this for effects you want to happen when a revenant throws itself, check the TRAIT_SPOOKY_THROW if you want to know if its still being thrown
|
||||
/obj/item/proc/DoRevenantThrowEffects(atom/target)
|
||||
return TRUE
|
||||
|
||||
//objectives
|
||||
/datum/objective/revenant
|
||||
var/targetAmount = 100
|
||||
|
||||
@@ -30,6 +30,9 @@
|
||||
attack(user,user)
|
||||
return FIRELOSS
|
||||
|
||||
/obj/item/assembly/flash/DoRevenantThrowEffects(atom/target)
|
||||
AOE_flash()
|
||||
|
||||
/obj/item/assembly/flash/update_icon(flash = FALSE)
|
||||
cut_overlays()
|
||||
attached_overlays = list()
|
||||
|
||||
@@ -193,16 +193,13 @@
|
||||
user.visible_message(ignition_message)
|
||||
add_fingerprint(user)
|
||||
fire_act(I.get_temperature())
|
||||
|
||||
//I would have it become a paper plane before the throw, but that would risk runtimes
|
||||
/obj/item/paper/DoRevenantThrowEffects(atom/target)
|
||||
sleep(5)
|
||||
sleep(10)
|
||||
if(HAS_TRAIT(src, TRAIT_SPOOKY_THROW))
|
||||
sleep(5)
|
||||
DoRevenantThrowEffects(atom/target)
|
||||
return
|
||||
var/obj/item/paperplane/plane = new(get_turf(src))
|
||||
new /obj/item/paperplane(get_turf(src))
|
||||
qdel(src)
|
||||
plane.safe_throw_at(over, 10, 2)
|
||||
|
||||
/obj/item/paper/attackby(obj/item/P, mob/living/user, params)
|
||||
if(burn_paper_product_attackby_check(P, user))
|
||||
|
||||
@@ -626,10 +626,10 @@
|
||||
if(user && !user.has_gravity())
|
||||
. = recoil*5
|
||||
|
||||
|
||||
/obj/item/gun/DoRevenantThrowEffects(atom/target)
|
||||
while(HAS_TRAIT(src, TRAIT_SPOOKY_THROW))
|
||||
var/target
|
||||
var/list/possible_targets = range(3,src)
|
||||
target = pick(possible_targets)
|
||||
if(target)
|
||||
process_fire(null, target)
|
||||
var/picked_target
|
||||
var/list/possible_targets = range(3,src)
|
||||
picked_target = pick(possible_targets)
|
||||
if(picked_target)
|
||||
process_fire(null, picked_target)
|
||||
|
||||
Reference in New Issue
Block a user