mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-20 04:26:03 +01:00
Refactors kudzu on_hit processing, fixes bug
Refactors kudzu on_hit processing, fixes bug
This commit is contained in:
@@ -43,8 +43,8 @@
|
||||
/datum/spacevine_mutation/proc/on_death(obj/effect/spacevine/holder)
|
||||
return
|
||||
|
||||
/datum/spacevine_mutation/proc/on_hit(obj/effect/spacevine/holder, mob/hitter, obj/item/I)
|
||||
return
|
||||
/datum/spacevine_mutation/proc/on_hit(obj/effect/spacevine/holder, mob/hitter, obj/item/I, expected_damage)
|
||||
. = expected_damage
|
||||
|
||||
/datum/spacevine_mutation/proc/on_cross(obj/effect/spacevine/holder, mob/crosser)
|
||||
return
|
||||
@@ -188,6 +188,10 @@
|
||||
/datum/spacevine_mutation/fire_proof/process_temperature(obj/effect/spacevine/holder, temp, volume)
|
||||
return 1
|
||||
|
||||
/datum/spacevine_mutation/fire_proof/on_hit(obj/effect/spacevine/holder, mob/hitter, obj/item/I, expected_damage)
|
||||
if(I && I.damtype == "fire")
|
||||
. = 0
|
||||
|
||||
/datum/spacevine_mutation/vine_eating
|
||||
name = "vine eating"
|
||||
hue = "#ff7700"
|
||||
@@ -306,17 +310,14 @@
|
||||
if(holder.energy)
|
||||
holder.density = 1
|
||||
|
||||
/datum/spacevine_mutation/woodening/on_hit(obj/effect/spacevine/holder, mob/hitter, obj/item/I)
|
||||
/datum/spacevine_mutation/woodening/on_hit(obj/effect/spacevine/holder, mob/hitter, obj/item/I, expected_damage)
|
||||
if(!expected_damage)
|
||||
return
|
||||
if(hitter)
|
||||
var/chance
|
||||
if(I)
|
||||
chance = I.force * 2
|
||||
. = I.force * 2
|
||||
else
|
||||
chance = 8
|
||||
if(prob(chance))
|
||||
qdel(holder)
|
||||
return 1
|
||||
|
||||
. = 8
|
||||
|
||||
/datum/spacevine_mutation/flowering
|
||||
name = "flowering"
|
||||
@@ -324,17 +325,14 @@
|
||||
quality = NEGATIVE
|
||||
severity = 10
|
||||
|
||||
|
||||
/datum/spacevine_mutation/flowering/on_grow(obj/effect/spacevine/holder)
|
||||
if(holder.energy == 2 && prob(severity) && !locate(/obj/structure/alien/resin/flower_bud_enemy) in range(5,holder))
|
||||
new/obj/structure/alien/resin/flower_bud_enemy(get_turf(holder))
|
||||
|
||||
|
||||
/datum/spacevine_mutation/flowering/on_cross(obj/effect/spacevine/holder, mob/living/crosser)
|
||||
holder.entangle(crosser)
|
||||
|
||||
|
||||
|
||||
// SPACE VINES (Note that this code is very similar to Biomass code)
|
||||
/obj/effect/spacevine
|
||||
name = "space vines"
|
||||
@@ -389,32 +387,23 @@
|
||||
return
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
|
||||
var/override = 0
|
||||
var/override = W.force
|
||||
if(W.is_sharp())
|
||||
override = 100
|
||||
if(istype(W, /obj/item/weapon/scythe))
|
||||
var/local_override = override
|
||||
for(var/obj/effect/spacevine/B in orange(1,src))
|
||||
for(var/datum/spacevine_mutation/SM in mutations)
|
||||
local_override = SM.on_hit(src, user, W, local_override)
|
||||
if(prob(local_override))
|
||||
qdel(B)
|
||||
|
||||
for(var/datum/spacevine_mutation/SM in mutations)
|
||||
override += SM.on_hit(src, user)
|
||||
override = SM.on_hit(src, user, W, override) //on_hit now takes override damage as arg and returns new value for other mutations to permutate further
|
||||
|
||||
if(override)
|
||||
..()
|
||||
return
|
||||
|
||||
if(istype(W, /obj/item/weapon/scythe))
|
||||
for(var/obj/effect/spacevine/B in orange(1,src))
|
||||
if(prob(80))
|
||||
qdel(B)
|
||||
if(prob(override))
|
||||
qdel(src)
|
||||
|
||||
else if(W.is_sharp())
|
||||
qdel(src)
|
||||
|
||||
else if(istype(W, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
if(WT.remove_fuel(0, user))
|
||||
qdel(src)
|
||||
else
|
||||
user_unbuckle_mob(user,user)
|
||||
return
|
||||
//Plant-b-gone damage is handled in its entry in chemistry-reagents.dm
|
||||
..()
|
||||
|
||||
/obj/effect/spacevine/Crossed(mob/crosser)
|
||||
|
||||
Reference in New Issue
Block a user