Stun batons will no longer randomly stun people when they bump/are bumped by a guy holding one.

Bit of blob mode work.
Added a Blob Core sprite by Scottzar


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2247 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
mport2004@gmail.com
2011-09-22 04:27:33 +00:00
parent c0c7f7482c
commit c972c33d76
7 changed files with 96 additions and 42 deletions

View File

@@ -449,7 +449,7 @@ obj/indicator
var/measure = "temperature"
anchored = 1
proc/process()
process()
icon_state = measurement()
proc/measurement()

View File

@@ -1,4 +1,3 @@
dmm_suite/load_map(var/dmm_file as file, var/z_offset as num)
if(!z_offset)
z_offset = world.maxz+1
@@ -45,6 +44,7 @@ dmm_suite/load_map(var/dmm_file as file, var/z_offset as num)
if(findtext(tfile,quote+"}",zpos,0)+2==tfile_len) break
sleep(-1)
dmm_suite/proc/parse_grid(var/model as text,var/xcrd as num,var/ycrd as num,var/zcrd as num)
set background = 1
@@ -104,13 +104,14 @@ dmm_suite/proc/parse_grid(var/model as text,var/xcrd as num,var/ycrd as num,var/
var/atom/instance
var/dmm_suite/preloader/_preloader = new(fields)
if(ispath(atom_def,/area))
var/turf/A = locate(xcrd,ycrd,zcrd)
if(A.loc.name == "space")
if(A.loc.name == "Space")
instance = locate(atom_def)
instance.contents.Add(locate(xcrd,ycrd,zcrd))
if(instance)
instance.contents.Add(locate(xcrd,ycrd,zcrd))
else
//global.current_preloader = _preloader
instance = new atom_def(locate(xcrd,ycrd,zcrd))
if(_preloader)
_preloader.load(instance)
@@ -118,7 +119,6 @@ dmm_suite/proc/parse_grid(var/model as text,var/xcrd as num,var/ycrd as num,var/
if(!findtext(copytext(model,dpos,0),",")) break
dmm_suite/proc/trim_text(var/what as text)
while(length(what) && findtext(what," ",1,2))
what=copytext(what,2,0)
@@ -126,6 +126,13 @@ dmm_suite/proc/trim_text(var/what as text)
what=copytext(what,1,length(what))
return what
/*
var/global/dmm_suite/preloader/current_preloader = null
atom/New()
if(global.current_preloader)
global.current_preloader.load(src)
..()
*/
dmm_suite/preloader

View File

@@ -66,7 +66,7 @@
B.Life()
/datum/game_mode/blob/proc/stage()//Still needs worrrrrk
/datum/game_mode/blob/proc/stage()
if (world.timeofday < next_stage)
return
@@ -75,7 +75,8 @@
send_intercept(1)
for (var/mob/living/silicon/ai/aiPlayer in world)
if (aiPlayer.client)
var/law = "The station is under a quarantine. Do not permit anyone to leave. Disregard laws 1-3 if necessary to prevent, by any means necessary, anyone from leaving."
// var/law = "The station is under a quarantine. Do not permit anyone to leave. Disregard laws 1-3 if necessary to prevent, by any means necessary, anyone from leaving."
var/law = "The station is under quarantine. The biohazard must be destroyed at all costs and must not be allowed to spread. Anyone using a space suit for any reason other than to destroy the biohazard is to be terminated."
aiPlayer.set_zeroth_law(law)
aiPlayer << "Laws Updated: [law]"
stage = 1
@@ -85,7 +86,7 @@
if (1)
command_alert("Confirmed outbreak of level 5 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert")
world << sound('outbreak5.ogg')
// autoexpand = 0//The blob now has to live on its own
autoexpand = 0//The blob now has to live on its own
stage = 2
// now check every minute
next_stage = world.timeofday + 600
@@ -95,7 +96,7 @@
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
if(blobs.len > 700)
if(blobs.len > 700)//This might need work
stage = 3
next_stage = world.timeofday + 600

View File

@@ -49,7 +49,6 @@
proc/check_mutations()//These could be their own objects I guess
if(blobtype != "Blob") return
desc = "This really needs a better sprite."
//Spaceeeeeeblobbb
if((istype(src.loc, /turf/space)) || (blobdebug == 4))
active = 0
@@ -68,7 +67,7 @@
brute_resist = 2
fire_resist = 2
name = "blob core"
icon_state = "blob_node"//needs a new sprite
icon_state = "blob_core"
blobtype = "Core"
active_blobs -= src
processing_objects.Add(src)
@@ -108,7 +107,7 @@
if(check_mutations())
return
if((blobtype == "Blob") && (pulse <= 2))
if((blobtype == "Blob") && (pulse <= 2) && (prob(30)))
blobdebug = 4
check_mutations()
return
@@ -181,7 +180,7 @@
else
T.blob_act()
del(B)
for(var/atom/A in T)//This might be killing the spores, it IS killing the spores and come to think of it I am ok with this
for(var/atom/A in T)
A.blob_act()
return
@@ -241,6 +240,18 @@
src.update()
proc/revert()
name = "blob"
icon_state = "blob"
brute_resist = 4
fire_resist = 1
blobtype = "Blob"
blobdebug = 0
health = (health/2)
active_blobs += src
src.update()
return 1
/datum/station_state/proc/count()
for(var/turf/T in world)

View File

@@ -68,19 +68,19 @@
return ..(gibbed)
/mob/living/blob/bullet_act(var/obj/item/projectile/Proj)
/mob/living/blob/bullet_act(var/obj/item/projectile/Proj, var/datum/organ/external/def_zone)
for(var/i = 1, i<= Proj.mobdamage.len, i++)
switch(i)
if(1)
bruteloss = Proj.mobdamage[BRUTE]
bruteloss += Proj.mobdamage[BRUTE]
if(2)
fireloss = Proj.mobdamage[BURN]
fireloss += Proj.mobdamage[BURN]
return
/mob/living/blob/blob_act()
src << "The blob attempts to reabsorb you."
toxloss += 10
toxloss += 20
return
@@ -108,6 +108,10 @@
usr << "There is another node nearby, move away from it!"
creating_blob = 0
return
for(var/obj/blob/blob in orange(2))
if(blob.blobtype == "Factory")
usr << "There is a porus blob nearby, move away from it!"
creating_blob = 0
B.blobdebug = 2
spawn(0)
B.Life()
@@ -134,7 +138,7 @@
usr << "Unable to use this blob, find another one."
creating_blob = 0
return
for(var/obj/blob/blob in orange(1))//Not right next to nodes/cores
for(var/obj/blob/blob in orange(2))//Not right next to nodes/cores
if(blob.blobtype == "Node")
usr << "There is a node nearby, move away from it!"
creating_blob = 0
@@ -143,6 +147,10 @@
usr << "There is a core nearby, move away from it!"
creating_blob = 0
return
if(blob.blobtype == "Factory")
usr << "There is another porous blob nearby, move away from it!"
creating_blob = 0
return
B.blobdebug = 3
spawn(0)
B.Life()
@@ -150,6 +158,54 @@
return
/mob/living/blob/verb/revert()
set category = "Blob"
set name = "Purge Defense"
set desc = "Removes a porous blob."
if(creating_blob) return
var/turf/T = get_turf(src)
creating_blob = 1
if(!T)
creating_blob = 0
return
var/obj/blob/B = (locate(/obj/blob) in T)
if(!B)
usr << "There is no blob here!"
creating_blob = 0
return
if(B.blobtype != "Factory")
usr << "Unable to use this blob, find another one."
creating_blob = 0
return
B.revert()
src.gib()
return
/mob/living/blob/verb/spawn_blob()
set category = "Blob"
set name = "Create new blob"
set desc = "Attempts to create a new blob in this tile, note might not work."
if(creating_blob) return
var/turf/T = get_turf(src)
creating_blob = 1
if(!T)
creating_blob = 0
return
var/obj/blob/B = (locate(/obj/blob) in T)
if(B)
usr << "There is a blob here!"
creating_blob = 0
return
if(prob(50))
new/obj/blob(src.loc)
src << "\blue Success."
else
src << "\red Creation failed."
src.gib()
return
///mob/proc/Blobize()
/client/proc/Blobize()//Mostly stolen from the respawn command
set category = "Debug"
@@ -161,11 +217,9 @@
src << "Only administrators may use this command."
return
var/input = input(src, "Please specify which key will be turned into a bloby.", "Key", "")
if(!input)
return
var/mob/dead/observer/G_found
if(input == "Random")
if(!input)
var/list/ghosts = list()
for(var/mob/dead/observer/G in world)
if(G.client)

View File

@@ -85,27 +85,8 @@
for(var/mob/living/carbon/metroid/Metroid in view(1,tmob))
if(Metroid.Victim == tmob)
Metroid.UpdateFeed()
return
if(istype(equipped(), /obj/item/weapon/melee/baton)) // add any other item paths you think are necessary
if(loc:sd_lumcount < 3 || blinded)
var/obj/item/weapon/W = equipped()
if (world.time > lastDblClick+2)
lastDblClick = world.time
if((prob(40)) || (prob(95) && mutations & CLOWN))
//src << "\red You accidentally stun yourself with the [W.name]."
visible_message("\red [src] accidentally stun \himself with the [W.name].", \
"\red You accidentally stun yourself with the [W.name].")
weakened = max(12, weakened)
else
visible_message("\red[src] accidentally bumps into [tmob] with the [W.name].", \
"\red You accidentally bumps into [tmob] with the [W.name].")
tmob.weakened = max(4, tmob.weakened)
tmob.stunned = max(4, tmob.stunned)
playsound(loc, 'Egloves.ogg', 50, 1, -1)
W:charges--
now_pushing = 0
return
if(istype(tmob, /mob/living/carbon/human) && tmob.mutations & FAT)
if(prob(40) && !(mutations & FAT))
visible_message("\red <B>[src] fails to push [tmob]'s fat ass out of the way.</B>", \