Removed the nuke code. You cannot nuke the station anymore.

Added a Jump to Node power.
Cleaned up the code.
Changed some more values.
Added a blob_act() to camera.
Removed most "if(gamemode == "blob") checks to stop people from using it to metagame.
Removed cells exploding when being blob_act()'d
This commit is contained in:
Giacomand
2013-07-10 01:49:06 +01:00
parent dec20a7c8a
commit 33e8976274
9 changed files with 46 additions and 55 deletions
+6 -17
View File
@@ -24,8 +24,8 @@ var/list/blob_nodes = list()
var/players_per_core = 26
var/blob_count = 0
var/blobnukecount = 200//Might be a bit low
var/blobwincount = 400//Still needs testing
var/blobnukecount = 300//Might be a bit low
var/blobwincount = 600//Still needs testing
var/list/infected_crew = list()
@@ -64,11 +64,6 @@ var/list/blob_nodes = list()
world << "You must kill it all while minimizing the damage to the station."
/datum/game_mode/blob/process()
if(declared == 1)
stage(2) // check for win conditions
return
/datum/game_mode/blob/proc/greet_blob(var/datum/mind/blob)
blob.current << "<B>\red You are infected by the Blob!</B>"
blob.current << "<b>You're body is ready to give spawn to a new blob core which will eat this station.</b>"
@@ -82,6 +77,9 @@ var/list/blob_nodes = list()
for(var/datum/mind/blob in infected_crew)
greet_blob(blob)
if(emergency_shuttle)
emergency_shuttle.always_fake_recall = 1
spawn(10)
start_state = new /datum/station_state()
start_state.count()
@@ -123,7 +121,7 @@ var/list/blob_nodes = list()
stage(0)
// Stage 1
sleep(5000)
sleep(4000)
stage(1)
..()
@@ -149,14 +147,5 @@ var/list/blob_nodes = list()
M << sound('sound/AI/outbreak5.ogg')
return
if (2)
if((blobs.len > blobnukecount) && (declared == 1))
command_alert("Uncontrolled spread of the biohazard onboard the station. We have issued directive 7-12 for [station_name()]. Any living Heads of Staff are ordered to enact directive 7-12 at any cost, a print out with detailed instructions has been sent to your communications computers.", "Biohazard Alert")
send_intercept(2)
declared = 2
spawn(20)
set_security_level("delta")
return
+4 -1
View File
@@ -7,6 +7,7 @@
fire_resist = 2
var/mob/camera/blob/overmind = null // the blob core's overmind
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
New(loc, var/h = 200, var/client/new_overmind = null)
blob_cores += src
@@ -38,7 +39,9 @@
if(!overmind)
create_overmind()
else
overmind.add_points(2)
if(resource_delay <= world.time)
resource_delay = world.time + 10 // 1 second
overmind.add_points(2)
health = min(initial(health), health + 1)
for(var/i = 1; i < 8; i += i)
Pulse(0, i)
+1 -2
View File
@@ -9,10 +9,9 @@
invisibility = INVISIBILITY_OBSERVER
pass_flags = PASSBLOB
var/creating_blob = 0
var/obj/effect/blob/core/blob_core = null // The blob overmind's core
faction = "blob"
var/obj/effect/blob/core/blob_core = null // The blob overmind's core
var/blob_points = 0
var/max_blob_points = 100
+32 -21
View File
@@ -13,7 +13,7 @@
// Power verbs
/mob/camera/blob/verb/transport()
/mob/camera/blob/verb/transport_core()
set category = "Blob"
set name = "Return to Core"
set desc = "Transport back to your core."
@@ -21,6 +21,19 @@
if(blob_core)
src.loc = blob_core.loc
/mob/camera/blob/verb/jump_to_node()
set category = "Blob"
set name = "Jump to Node"
set desc = "Transport back to your core."
if(blob_nodes.len)
var/list/nodes = list()
for(var/i = 1; i <= blob_nodes.len; i++)
nodes["Blob Node #[i]"] = blob_nodes[i]
var/node_name = input(src, "Choose a node to jump to.", "Node Jump") in nodes
var/obj/effect/blob/node/chosen_node = nodes[node_name]
if(chosen_node)
src.loc = chosen_node.loc
/mob/camera/blob/verb/create_shield()
set category = "Blob"
@@ -36,11 +49,11 @@
var/obj/effect/blob/B = (locate(/obj/effect/blob) in T)
if(!B)//We are on a blob
usr << "There is no blob here!"
src << "There is no blob here!"
return
if(!istype(B, /obj/effect/blob/normal))
usr << "Unable to use this blob, find a normal one."
src << "Unable to use this blob, find a normal one."
return
if(!can_buy(10))
@@ -53,7 +66,7 @@
/mob/camera/blob/verb/create_resource()
set category = "Blob"
set name = "Create Resource Blob (20)"
set name = "Create Resource Blob (40)"
set desc = "Create a resource tower which will generate points for you."
@@ -65,18 +78,18 @@
var/obj/effect/blob/B = (locate(/obj/effect/blob) in T)
if(!B)//We are on a blob
usr << "There is no blob here!"
src << "There is no blob here!"
return
if(!istype(B, /obj/effect/blob/normal))
usr << "Unable to use this blob, find a normal one."
src << "Unable to use this blob, find a normal one."
return
for(var/obj/effect/blob/resource/blob in orange(3))
usr << "There is a resource blob nearby, move more than 3 tiles away from it!"
src << "There is a resource blob nearby, move more than 3 tiles away from it!"
return
if(!can_buy(20))
if(!can_buy(40))
return
@@ -101,15 +114,15 @@
var/obj/effect/blob/B = (locate(/obj/effect/blob) in T)
if(!B)//We are on a blob
usr << "There is no blob here!"
src << "There is no blob here!"
return
if(!istype(B, /obj/effect/blob/normal))
usr << "Unable to use this blob, find a normal one."
src << "Unable to use this blob, find a normal one."
return
for(var/obj/effect/blob/node/blob in orange(4))
usr << "There is another node nearby, move more than 4 tiles away from it!"
src << "There is another node nearby, move more than 4 tiles away from it!"
return
if(!can_buy(60))
@@ -133,15 +146,15 @@
var/obj/effect/blob/B = locate(/obj/effect/blob) in T
if(!B)
usr << "You must be on a blob!"
src << "You must be on a blob!"
return
if(!istype(B, /obj/effect/blob/normal))
usr << "Unable to use this blob, find a normal one."
src << "Unable to use this blob, find a normal one."
return
for(var/obj/effect/blob/factory/blob in orange(6))
usr << "There is a factory blob nearby, move more than 6 tiles away from it!"
src << "There is a factory blob nearby, move more than 6 tiles away from it!"
return
if(!can_buy(60))
@@ -155,7 +168,6 @@
set category = "Blob"
set name = "Remove Blob (0)"
set desc = "Removes a blob."
if(creating_blob) return
var/turf/T = get_turf(src)
if(!T)
@@ -163,11 +175,11 @@
var/obj/effect/blob/B = locate(/obj/effect/blob) in T
if(!B)
usr << "You must be on a blob!"
src << "You must be on a blob!"
return
if(istype(B, /obj/effect/blob/core))
usr << "Unable to use this blob, find another one."
src << "Unable to use this blob, find another one."
return
B.change_to(/obj/effect/blob)
@@ -178,7 +190,7 @@
set category = "Blob"
set name = "Expand Blob (5)"
set desc = "Attempts to create a new blob in this tile. If the tile isn't clear we will attack it, which might clear it."
if(creating_blob) return
var/turf/T = get_turf(src)
if(!T)
@@ -186,12 +198,12 @@
var/obj/effect/blob/B = locate() in T
if(B)
usr << "There is a blob here!"
src << "There is a blob here!"
return
var/obj/effect/blob/OB = locate() in circlerange(src, 1)
if(!OB)
usr << "There is no blob adjacent to you."
src << "There is no blob adjacent to you."
return
if(!can_buy(5))
@@ -204,7 +216,6 @@
set category = "Blob"
set name = "Rally Spores (5)"
set desc = "Rally the spores to move to your location."
if(creating_blob) return
if(!can_buy(5))
return
+1
View File
@@ -91,6 +91,7 @@
return
/obj/machinery/camera/blob_act()
del(src)
return
/obj/machinery/camera/proc/setViewRange(var/num = 7)
@@ -456,10 +456,6 @@
user << "The emergency shuttle is already on its way."
return
if(ticker.mode.name == "blob")
user << "Under directive 7-10, [station_name()] is quarantined until further notice."
return
emergency_shuttle.incall()
log_game("[key_name(user)] has called the shuttle.")
message_admins("[key_name_admin(user)] has called the shuttle.", 1)
@@ -472,7 +468,7 @@
/proc/cancel_call_proc(var/mob/user)
if ((!( ticker ) || emergency_shuttle.location || emergency_shuttle.direction == 0 || emergency_shuttle.timeleft() < 300))
return
if((ticker.mode.name == "blob")||(ticker.mode.name == "meteor"))
if(ticker.mode.name == "meteor")
return
if(emergency_shuttle.direction != -1 && emergency_shuttle.online) //check that shuttle isn't already heading to centcom
@@ -34,10 +34,6 @@ AI MODULES
usr << "You haven't selected an AI to transmit laws to!"
return
if(ticker && ticker.mode && ticker.mode.name == "blob")
usr << "Law uploads have been disabled by NanoTrasen!"
return
if (comp.current.stat == 2 || comp.current.control_disabled == 1)
usr << "Upload failed. No signal is being detected from the AI."
else if (comp.current.see_in_dark == 0)
-3
View File
@@ -231,9 +231,6 @@
else if(href_list["call_shuttle"])
if(!check_rights(R_ADMIN)) return
if( ticker.mode.name == "blob" )
alert("You can't call the shuttle during blob!")
return
switch(href_list["call_shuttle"])
if("1")
+1 -2
View File
@@ -140,8 +140,7 @@
return
/obj/item/weapon/cell/blob_act()
if(prob(75))
explode()
ex_act(1)
/obj/item/weapon/cell/proc/get_electrocute_damage()
switch (charge)