mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2026-01-06 23:42:56 +00:00
The safe plasma limit on breathing has been lowered causing plasma to actually damage you at a semi decent rate.
The force secret mode will now build the list of possible modes and make sure it can set the forced mode up before it actually picks the mode. If the setup fails it will just use another mode from the secret list. The R-table in medbay lobby was replaced with a normal table and medbay mostly follows the old "Can you get to the hall with next to nothing on you" map design. Blob mode work. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2185 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -10,8 +10,9 @@
|
||||
var/health = 40
|
||||
|
||||
|
||||
New(loc, var/h = 30)
|
||||
New(loc, var/h = 40)
|
||||
blobs += src
|
||||
active_blobs += src
|
||||
src.health = h
|
||||
src.dir = pick(1,2,4,8)
|
||||
src.update()
|
||||
@@ -20,6 +21,8 @@
|
||||
|
||||
Del()
|
||||
blobs -= src
|
||||
if(active)
|
||||
active_blobs -= src
|
||||
..()
|
||||
|
||||
/*
|
||||
@@ -35,6 +38,7 @@
|
||||
|
||||
|
||||
proc/Life()
|
||||
set background = 1
|
||||
if(!active) return
|
||||
|
||||
var/turf/U = src.loc
|
||||
@@ -48,20 +52,27 @@
|
||||
src.update()
|
||||
return
|
||||
*/
|
||||
//Bad blob you can not into space
|
||||
//Spaceblobs will harden and become inactive
|
||||
if(istype(U, /turf/space))
|
||||
src.health -= 15
|
||||
src.update()
|
||||
src.active = 0
|
||||
src.health += 40
|
||||
src.name = "strong blob"
|
||||
src.icon_state = "blob_idle"//needs a new sprite
|
||||
active_blobs -= src
|
||||
return
|
||||
|
||||
var/p = health //TODO: DEFERRED * (U.n2/11376000 + U.oxygen/1008000 + U.co2/200)
|
||||
|
||||
if(!prob(p)) return
|
||||
|
||||
for(var/dirn in cardinal)
|
||||
sleep(3) // -- Skie
|
||||
sleep(3)
|
||||
var/turf/T = get_step(src, dirn)
|
||||
|
||||
if (istype(T.loc, /area/arrival))
|
||||
if(istype(T.loc, /area/arrival))
|
||||
continue
|
||||
|
||||
if((locate(/obj/blob) in T))
|
||||
continue
|
||||
|
||||
var/obj/blob/B = new /obj/blob(U, src.health)
|
||||
@@ -69,13 +80,14 @@
|
||||
if(T.Enter(B,src) && !(locate(/obj/blob) in T))
|
||||
B.loc = T // open cell, so expand
|
||||
else
|
||||
if(prob(60)) // closed cell, 40% chance to not expand
|
||||
if(prob(90)) // closed cell, 10% chance to not expand
|
||||
if(!locate(/obj/blob) in T)
|
||||
for(var/atom/A in T) // otherwise explode contents of turf
|
||||
A.blob_act()
|
||||
|
||||
T.blob_act()
|
||||
del(B)
|
||||
return
|
||||
|
||||
|
||||
ex_act(severity)
|
||||
@@ -170,13 +182,13 @@
|
||||
|
||||
|
||||
/datum/station_state/proc/score(var/datum/station_state/result)
|
||||
var/r1a = min( result.floor / floor, 1.0)
|
||||
var/r1b = min(result.r_wall/ r_wall, 1.0)
|
||||
var/r1c = min(result.wall / wall, 1.0)
|
||||
var/r2a = min(result.window / window, 1.0)
|
||||
var/r2b = min(result.door / door, 1.0)
|
||||
var/r2c = min(result.grille / grille, 1.0)
|
||||
var/r3 = min(result.mach / mach, 1.0)
|
||||
var/r1a = min( result.floor / max(floor,1), 1.0)
|
||||
var/r1b = min(result.r_wall/ max(r_wall,1), 1.0)
|
||||
var/r1c = min(result.wall / max(wall,1), 1.0)
|
||||
var/r2a = min(result.window / max(window,1), 1.0)
|
||||
var/r2b = min(result.door / max(door,1), 1.0)
|
||||
var/r2c = min(result.grille / max(grille,1), 1.0)
|
||||
var/r3 = min(result.mach / max(mach,1), 1.0)
|
||||
//diary << "Blob scores:[r1b] [r1c] / [r2a] [r2b] [r2c] / [r3] [r1a]"
|
||||
return (4*(r1b+r1c) + 2*(r2a+r2b+r2c) + r3+r1a)/16.0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user