Copy of Anonus' Blob tweak PR, with less commits.

This commit is contained in:
phil235
2015-09-15 16:03:55 +02:00
parent 037bce50c2
commit 04287730bd
9 changed files with 41 additions and 27 deletions
+3 -3
View File
@@ -3,8 +3,8 @@
icon = 'icons/mob/blob.dmi'
icon_state = "blank_blob"
desc = "A huge, pulsating yellow mass."
health = 200
fire_resist = 2
health = 400
maxhealth = 400
explosion_block = 6
var/overmind_get_delay = 0 // we don't want to constantly try to find an overmind, do it every 30 seconds
var/resource_delay = 0
@@ -68,7 +68,7 @@
if(resource_delay <= world.time)
resource_delay = world.time + 10 // 1 second
overmind.add_points(point_rate)
health = min(initial(health), health + 1)
health = min(maxhealth, health+health_regen)
if(overmind)
overmind.update_health()
pulseLoop(0)
+2 -2
View File
@@ -3,8 +3,8 @@
icon = 'icons/mob/blob.dmi'
icon_state = "blob_factory"
desc = "A thick spire of tendrils."
health = 100
fire_resist = 2
health = 200
maxhealth = 200
var/list/spores = list()
var/max_spores = 3
var/spore_delay = 0
+2 -2
View File
@@ -3,8 +3,8 @@
icon = 'icons/mob/blob.dmi'
icon_state = "blank_blob"
desc = "A large, pulsating yellow mass."
health = 100
fire_resist = 2
health = 200
maxhealth = 200
/obj/effect/blob/node/New(loc, var/h = 100)
blob_nodes += src
+2 -2
View File
@@ -3,8 +3,8 @@
icon = 'icons/mob/blob.dmi'
icon_state = "blob_resource"
desc = "A thin spire of slightly swaying tendrils."
health = 30
fire_resist = 2
health = 60
maxhealth = 60
var/resource_delay = 0
/obj/effect/blob/resource/update_icon()
+5 -2
View File
@@ -3,9 +3,9 @@
icon = 'icons/mob/blob.dmi'
icon_state = "blob_idle"
desc = "A solid wall of slightly twitching tendrils."
health = 75
health = 150
maxhealth = 150
explosion_block = 3
fire_resist = 2
/obj/effect/blob/shield/update_icon()
@@ -17,6 +17,9 @@
/obj/effect/blob/shield/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
return
/obj/effect/blob/shield/CanAtmosPass(turf/T)
return 0
/obj/effect/blob/shield/CanPass(atom/movable/mover, turf/target, height=0)
if(istype(mover) && mover.checkpass(PASSBLOB)) return 1
return 0
+2 -2
View File
@@ -3,8 +3,8 @@
icon = 'icons/mob/blob.dmi'
icon_state = "blob_resource"
desc = "A huge, smooth mass supported by tendrils."
health = 30
fire_resist = 2
health = 60
maxhealth = 60
/obj/effect/blob/storage/update_icon()
if(health <= 0)
+22 -10
View File
@@ -4,13 +4,15 @@
icon = 'icons/mob/blob.dmi'
luminosity = 3
desc = "A thick wall of writhing tendrils."
density = 0
density = 0 //this being 0 causes two bugs, being able to attack blob tiles behind other blobs and being unable to move on blob tiles in no gravity, but turning it to 1 causes the blob mobs to be unable to path through blobs, which is probably worse.
opacity = 0
anchored = 1
explosion_block = 1
var/health = 30
var/maxhealth = 30
var/health_regen = 2
var/health_timestamp = 0
var/brute_resist = 4
var/brute_resist = 2
var/fire_resist = 1
var/mob/camera/blob/overmind
@@ -59,10 +61,9 @@
// All blobs heal over time when pulsed, but it has a cool down
if(health_timestamp > world.time)
return 0
if(health < initial(health))
health++
update_icon()
health_timestamp = world.time + 10 // 1 seconds
health = min(maxhealth, health+health_regen)
update_icon()
health_timestamp = world.time + 10 // 1 seconds
/obj/effect/blob/proc/pulseLoop(num)
var/a_color
@@ -110,7 +111,6 @@
/obj/effect/blob/proc/expand(turf/T = null, prob = 1, a_color)
if(prob && !prob(health)) return
if(istype(T, /turf/space) && prob(75)) return
if(!T)
var/list/dirs = list(1,2,4,8)
for(var/i = 1 to 4)
@@ -121,12 +121,15 @@
else T = null
if(!T) return 0
var/obj/effect/blob/normal/B = new /obj/effect/blob/normal(src.loc, min(src.health, 30))
var/obj/effect/blob/B = new /obj/effect/blob/normal(src.loc)
if(istype(T, /turf/space) && prob(65))
B.health = 0
B.color = a_color
B.density = 1
if(T.Enter(B,src))//Attempt to move into the tile
B.density = initial(B.density)
B.loc = T
B.update_icon()
else
T.blob_act()//If we cant move in hit the turf
B.loc = null //So we don't play the splat sound, see Destroy()
@@ -208,7 +211,7 @@
/obj/effect/blob/examine(mob/user)
..()
user << "It looks like it's of a [get_chem_name()] kind."
user << "It seems to be made of [get_chem_name()]."
return
/obj/effect/blob/proc/get_chem_name()
@@ -221,14 +224,23 @@
icon_state = "blob"
luminosity = 0
health = 21
maxhealth = 25
health_regen = 1
brute_resist = 4
/obj/effect/blob/normal/update_icon()
if(health <= 0)
qdel(src)
else if(health <= 15)
else if(health <= 10)
icon_state = "blob_damaged"
name = "fragile blob"
desc = "A thin lattice of slightly twitching tendrils."
brute_resist = 2
else
icon_state = "blob"
name = "blob"
desc = "A thick wall of writhing tendrils."
brute_resist = 4
/* // Used to create the glow sprites. Remember to set the animate loop to 1, instead of infinite!
@@ -13,9 +13,8 @@
bang(get_turf(M), M)
for(var/obj/effect/blob/B in get_hear(8,flashbang_turf)) //Blob damage here
var/damage = round(30/(get_dist(B,get_turf(src))+1))
B.health -= damage
B.update_icon()
var/damage = round(40/(get_dist(B,get_turf(src))+1))
B.take_damage(damage, BURN)
qdel(src)
/obj/item/weapon/grenade/flashbang/proc/bang(turf/T , mob/living/M)
+1 -1
View File
@@ -93,5 +93,5 @@ MMMiracles = Game Master
bear1ake = Game Master
CoreOverload = Game Master
Jalleo = Game Master
Anonus Tanir = Game Master
FoxPMcCloud = Game Master