Update spore.dm

This commit is contained in:
Novacat
2020-04-13 07:31:19 -04:00
committed by GitHub
parent 2374a40908
commit ee4ca5aa52

View File

@@ -1,153 +1,3 @@
<<<<<<< HEAD
// Spores are made from blob factories.
// They are very weak and expendable, but can overwhelm when a lot of them are together.
// When attacking, spores will hit harder if near other friendly spores.
// Some blobs can infest dead non-robotic mobs, making them into Not Zombies.
/mob/living/simple_mob/blob/spore
name = "blob spore"
desc = "A floating, fragile spore."
icon_state = "blobpod"
icon_living = "blobpod"
glow_range = 3
glow_intensity = 5
layer = ABOVE_MOB_LAYER // Over the blob.
health = 30
maxHealth = 30
melee_damage_lower = 2
melee_damage_upper = 4
movement_cooldown = 0
hovering = TRUE
attacktext = list("slammed into")
attack_sound = 'sound/effects/slime_squish.ogg'
say_list_type = /datum/say_list/spore
var/mob/living/carbon/human/infested = null // The human this thing is totally not making into a zombie.
var/can_infest = FALSE
var/is_infesting = FALSE
/datum/say_list/spore
emote_see = list("sways", "inflates briefly")
/datum/say_list/infested
emote_see = list("shambles around", "twitches", "stares")
/mob/living/simple_mob/blob/spore/infesting
name = "infesting blob spore"
can_infest = TRUE
/mob/living/simple_mob/blob/spore/weak
name = "fragile blob spore"
health = 15
maxHealth = 15
melee_damage_lower = 1
melee_damage_upper = 2
/mob/living/simple_mob/blob/spore/Initialize(mapload, var/obj/structure/blob/factory/my_factory)
if(istype(my_factory))
factory = my_factory
factory.spores += src
return ..()
/mob/living/simple_mob/blob/spore/Destroy()
if(factory)
factory.spores -= src
factory = null
if(infested)
infested.forceMove(get_turf(src))
visible_message(span("warning", "\The [infested] falls to the ground as the blob spore bursts."))
infested = null
return ..()
/mob/living/simple_mob/blob/spore/death(gibbed, deathmessage = "bursts!")
if(overmind)
overmind.blob_type.on_spore_death(src)
..(gibbed, deathmessage)
qdel(src)
/mob/living/simple_mob/blob/spore/update_icons()
..() // This will cut our overlays.
if(overmind)
color = overmind.blob_type.complementary_color
glow_color = color
glow_toggle = TRUE
else
color = null
glow_color = null
glow_toggle = FALSE
if(is_infesting)
icon = infested.icon
copy_overlays(infested)
// overlays = infested.overlays
var/mutable_appearance/blob_head_overlay = mutable_appearance('icons/mob/blob.dmi', "blob_head")
if(overmind)
blob_head_overlay.color = overmind.blob_type.complementary_color
color = initial(color)//looks better.
// overlays += blob_head_overlay
add_overlay(blob_head_overlay, TRUE)
/mob/living/simple_mob/blob/spore/handle_special()
..()
if(can_infest && !is_infesting && isturf(loc))
for(var/mob/living/carbon/human/H in view(src,1))
if(H.stat != DEAD) // We want zombies.
continue
if(H.isSynthetic()) // Not philosophical zombies.
continue
infest(H)
break
if(factory && z != factory.z) // This is to prevent spores getting lost in space and making the factory useless.
qdel(src)
/mob/living/simple_mob/blob/spore/proc/infest(mob/living/carbon/human/H)
is_infesting = TRUE
if(H.wear_suit)
var/obj/item/clothing/suit/A = H.wear_suit
if(A.armor && A.armor["melee"])
maxHealth += A.armor["melee"] //That zombie's got armor, I want armor!
maxHealth += 40
health = maxHealth
name = "Infested [H.real_name]" // Not using the Z word.
desc = "A parasitic organism attached to a deceased body, controlling it directly as if it were a puppet."
melee_damage_lower += 8 // 10 total.
melee_damage_upper += 11 // 15 total.
attacktext = list("clawed")
H.forceMove(src)
infested = H
say_list = new /datum/say_list/infested()
update_icons()
visible_message(span("warning", "The corpse of [H.name] suddenly rises!"))
/mob/living/simple_mob/blob/spore/GetIdCard()
if(infested) // If we've infested someone, use their ID.
return infested.GetIdCard()
/mob/living/simple_mob/blob/spore/apply_bonus_melee_damage(A, damage_to_do)
var/helpers = 0
for(var/mob/living/simple_mob/blob/spore/S in view(1, src))
if(S == src) // Don't count ourselves.
continue
if(!IIsAlly(S)) // Only friendly spores make us stronger.
continue
// Friendly spores contribute 1/4th of their averaged attack power to our attack.
damage_to_do += ((S.melee_damage_lower + S.melee_damage_upper) / 2) / 4
helpers++
if(helpers)
to_chat(src, span("notice", "Your attack is assisted by [helpers] other spore\s."))
return damage_to_do
=======
// Spores are made from blob factories.
// They are very weak and expendable, but can overwhelm when a lot of them are together.
// When attacking, spores will hit harder if near other friendly spores.
@@ -302,5 +152,4 @@
if(helpers)
to_chat(src, span("notice", "Your attack is assisted by [helpers] other spore\s."))
return damage_to_do
>>>>>>> 32a573f... Merge pull request #6878 from Mechoid/ATaleofBlobsandMen
return damage_to_do