mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 16:47:13 +01:00
[MIRROR] Implements Plant Biotype (#4401)
* Implements Plant Biotype (#57108) Implements a plant biotype for plant based mobs. Changes the wood golem mob to be an organic, humanoid, and plant biotype---because wood is an organic substance, not a mineral. This additionally adds the ability for plantbgone/weedkiller to deal damage to plant biotypes. Why It's Good For The Game There's a curious lack of a defined plant biotype, despite plants sharing a unique number of traits. Ideally, this behavior can be more consistently implemented with something like biotypes. A minor example of this is utilized in this PR: weedkiller and plantbgone impacting plant-like mobs, which is what you'd expect. Changelog cl add: Plant-like mobs are now impacted and take damage from plant-b-gone and weedkiller reagents add: Plant-like mobs can be health scanned with a plant analyzer add: Plant-like mobs are impacted by the floral gun in the same manner pod people are /cl * Implements Plant Biotype Co-authored-by: Fox McCloud <Fox-McCloud@users.noreply.github.com>
This commit is contained in:
@@ -6,6 +6,27 @@
|
||||
nodamage = TRUE
|
||||
flag = ENERGY
|
||||
|
||||
/obj/projectile/energy/floramut/on_hit(atom/target, blocked = FALSE)
|
||||
. = ..()
|
||||
if(isliving(target))
|
||||
var/mob/living/L = target
|
||||
if(L.mob_biotypes & MOB_PLANT)
|
||||
if(prob(15))
|
||||
L.rad_act(rand(30, 80))
|
||||
L.Paralyze(100)
|
||||
L.visible_message("<span class='warning'>[L] writhes in pain as [L.p_their()] vacuoles boil.</span>", "<span class='userdanger'>You writhe in pain as your vacuoles boil!</span>", "<span class='hear'>You hear the crunching of leaves.</span>")
|
||||
if(iscarbon(L) && L.has_dna())
|
||||
var/mob/living/carbon/C = L
|
||||
if(prob(80))
|
||||
C.easy_randmut(NEGATIVE + MINOR_NEGATIVE)
|
||||
else
|
||||
C.easy_randmut(POSITIVE)
|
||||
C.randmuti()
|
||||
C.domutcheck()
|
||||
else
|
||||
L.adjustFireLoss(rand(5, 15))
|
||||
L.show_message("<span class='userdanger'>The radiation beam singes you!</span>")
|
||||
|
||||
/obj/projectile/energy/florayield
|
||||
name = "beta somatoray"
|
||||
icon_state = "energy2"
|
||||
@@ -14,6 +35,13 @@
|
||||
nodamage = TRUE
|
||||
flag = ENERGY
|
||||
|
||||
/obj/projectile/energy/florayield/on_hit(atom/target, blocked = FALSE)
|
||||
. = ..()
|
||||
if(isliving(target))
|
||||
var/mob/living/L = target
|
||||
if(L.mob_biotypes & MOB_PLANT)
|
||||
L.set_nutrition(min(L.nutrition + 30, NUTRITION_LEVEL_FULL))
|
||||
|
||||
/obj/projectile/energy/florarevolution
|
||||
name = "gamma somatoray"
|
||||
icon_state = "energy3"
|
||||
@@ -21,3 +49,13 @@
|
||||
damage_type = TOX
|
||||
nodamage = TRUE
|
||||
flag = ENERGY
|
||||
|
||||
/obj/projectile/energy/florarevolution/on_hit(atom/target, blocked = FALSE)
|
||||
. = ..()
|
||||
if(isliving(target))
|
||||
var/mob/living/L = target
|
||||
if(L.mob_biotypes & MOB_PLANT)
|
||||
L.show_message("<span class='notice'>The radiation beam leaves you feeling disoriented!</span>")
|
||||
L.Dizzy(15)
|
||||
L.emote("flip")
|
||||
L.emote("spin")
|
||||
|
||||
Reference in New Issue
Block a user