mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-16 08:37:41 +01:00
HEAVILY nerfs spreading plants! - Spread chance cut down by 66% - In general, plants will spread slower, meaning they won't outpace a goat wielding a scythe and plant-killer grenades. - Spread distance cut down by AT LEAST 66% - TRAIT_SPREAD 1 plants (glowshrooms) will spread to a maximum distance of (TRAIT_POTENCY * 0.1) - TRAIT_SPREAD 2 plants (kudzu) will spread to a maximum distance of (TRAIT_POTENCY * 0.6) if they are vines or biomass growth_type (most common types) - TRAIT_SPREAD 2 that have the "worms" or "mold" growth_type will spread to a maximum distance of (TRAIT_POTENCY * 0.3) Buffs spreading plants! - Spreading plants with thorns or stinging will now properly attempt to affect anyone who walks over them! - Wearing shoes gives you a 50% chance to avoid being affected by thorns and stings Rewrites stinging plant defenses and logic - Stinging plants now will target a specific limb/body part and check for the appropriate clothing coverage - Spreading plant stings will only target legs and feet - Picking up stinging fruit will only target hands - Being hit with a stinging fruit will target the hit limb - THICKMATERIAL clothing from hardsuits and biosuits will protect from stings that target areas they cover - Clothes will protect their covered areas from stings - Protecting the head requires covering the eyes and mouth with either the helmet or glasses/masks - If you aren't fully protected in the target area, you get stung. Fruit with thorns and/or stinging now properly apply their effects when thrown or used as melee weapons - Still requires HARM intent to use fruit as a melee weapon instead of feeding it to the target - Stinging fruit will check the hit area for protection - Stinging fruit will crumble into dust if it uses up all its reagents. - Stringing fruit still has a chance to break on hit even while it has reagents left.
55 lines
1.7 KiB
Plaintext
55 lines
1.7 KiB
Plaintext
/obj/effect/plant/HasProximity(var/atom/movable/AM)
|
|
|
|
if(!is_mature() || seed.get_trait(TRAIT_SPREAD) != 2)
|
|
return
|
|
|
|
var/mob/living/M = AM
|
|
if(!istype(M))
|
|
return
|
|
|
|
if(!buckled_mob && !M.buckled && !M.anchored && (M.small || prob(round(seed.get_trait(TRAIT_POTENCY)/6))))
|
|
//wait a tick for the Entered() proc that called HasProximity() to finish (and thus the moving animation),
|
|
//so we don't appear to teleport from two tiles away when moving into a turf adjacent to vines.
|
|
spawn(1)
|
|
entangle(M)
|
|
|
|
/obj/effect/plant/attack_hand(mob/user as mob)
|
|
// Todo, cause damage.
|
|
user_unbuckle_mob(user, user)
|
|
|
|
/obj/effect/plant/Crossed(var/mob/living/victim)
|
|
if(!is_mature())
|
|
return
|
|
var/target_limb = pick("r_foot","l_foot","r_leg","l_leg")
|
|
if(ishuman(victim))
|
|
var/mob/living/carbon/human/H = victim
|
|
if(H.shoes && prob(50)) //shoes will reduce chances of being stuck/stung by plants, but not always avoid it
|
|
return
|
|
seed.do_thorns(victim,src,target_limb)
|
|
seed.do_sting(victim,src,target_limb)
|
|
|
|
|
|
/obj/effect/plant/proc/entangle(var/mob/living/victim)
|
|
|
|
if(buckled_mob)
|
|
return
|
|
|
|
if(victim.buckled)
|
|
return
|
|
|
|
//grabbing people
|
|
if(!victim.anchored && Adjacent(victim) && victim.loc != get_turf(src))
|
|
var/can_grab = 1
|
|
if(istype(victim, /mob/living/carbon/human))
|
|
var/mob/living/carbon/human/H = victim
|
|
if(istype(H.shoes, /obj/item/clothing/shoes/magboots) && (H.shoes.flags & NOSLIP))
|
|
can_grab = 0
|
|
if(can_grab)
|
|
src.visible_message("<span class='danger'>Tendrils lash out from \the [src] and drag \the [victim] in!</span>")
|
|
victim.loc = src.loc
|
|
|
|
//entangling people
|
|
if(victim.loc == src.loc)
|
|
victim << "<span class='danger'>Tendrils [pick("wind", "tangle", "tighten")] around you!</span>"
|
|
can_buckle = 1
|
|
buckle_mob(victim) |