Delagged singularity.

It will now grab and slow down any humans when it tries to drag them in, and tell them:
"\red The singularity has you in it's gravitational pull!  It's hard to break free!"
And adds 20 to their movement delay (can be adjusted later)
All the DNA superpowers work now.
Readded fatness as sprite only, can only be triggered by admins (some people were complaining about it being unavailible for adminstoff, so now they get a taste of how bad the sprite is.)
To trigger fatness, modify the "mutations" variable to a value of 32
This commit is contained in:
SkyMarshal
2012-02-19 14:04:06 -07:00
parent b693675260
commit feef637419
13 changed files with 158 additions and 59 deletions
+1
View File
@@ -867,6 +867,7 @@
M.update_body()
M.update_face()
M.update_clothing()
M.check_dna(M)
/client/proc/radioalert()
@@ -549,7 +549,7 @@
if (src.stat != 2)
if (src.machine)
if (!( src.machine.check_eye(src) ))
src.reset_view(null)
reset_view(null)
else
if(!client.adminobs)
reset_view(null)
+25 -16
View File
@@ -775,8 +775,8 @@
// lol
var/fat = ""
/*if (mutations & FAT)
fat = "fat"*/
if (mutations & FAT)
fat = "fat"
if (mutations & HULK)
overlays += image("icon" = 'genetics.dmi', "icon_state" = "hulk[fat][!lying ? "_s" : "_l"]")
@@ -879,10 +879,10 @@
var/t1 = w_uniform.color
if (!t1)
t1 = icon_state
/*if (mutations & FAT)
if (mutations & FAT)
overlays += image("icon" = 'uniform_fat.dmi', "icon_state" = "[t1][!lying ? "_s" : "_l"]", "layer" = MOB_LAYER)
else*/
overlays += image("icon" = 'uniform.dmi', "icon_state" = text("[][]",t1, (!(lying) ? "_s" : "_l")), "layer" = MOB_LAYER)
else
overlays += image("icon" = 'uniform.dmi', "icon_state" = text("[][]",t1, (!(lying) ? "_s" : "_l")), "layer" = MOB_LAYER)
if (w_uniform.blood_DNA.len)
var/icon/stain_icon = icon('blood.dmi', "uniformblood[!lying ? "" : "2"]")
overlays += image("icon" = stain_icon, "layer" = MOB_LAYER)
@@ -1289,7 +1289,7 @@
lying_icon = new /icon('human.dmi', "torso_l")
var/husk = (mutations & HUSK)
//var/obese = (mutations & FAT)
var/obese = (mutations & FAT)
stand_icon.Blend(new /icon('human.dmi', "chest_[g]_s"), ICON_OVERLAY)
lying_icon.Blend(new /icon('human.dmi', "chest_[g]_l"), ICON_OVERLAY)
@@ -1326,9 +1326,9 @@
stand_icon.Blend(husk_s, ICON_OVERLAY)
lying_icon.Blend(husk_l, ICON_OVERLAY)
/*else if(obese)
else if(obese)
stand_icon.Blend(new /icon('human.dmi', "fatbody_s"), ICON_OVERLAY)
lying_icon.Blend(new /icon('human.dmi', "fatbody_l"), ICON_OVERLAY)*/
lying_icon.Blend(new /icon('human.dmi', "fatbody_l"), ICON_OVERLAY)
// Skin tone
if (s_tone >= 0)
@@ -2524,6 +2524,7 @@ It can still be worn/put on as normal.
update_body()
update_face()
update_clothing()
check_dna()
for(var/mob/M in view())
M.show_message("[src.name] just morphed!")
@@ -2543,35 +2544,43 @@ It can still be worn/put on as normal.
if(target.mutations & mRemotetalk)
target.show_message("\blue You hear [src.real_name]'s voice: [say]")
else
target.show_message("\blue You hear a voice: [say]")
target.show_message("\blue You hear a voice that seems to echo around the room: [say]")
target << "\red This ain't an admin message, this is IC. Act like it. If someone's abusing it, pretending to be us, adminhelp it."
usr.show_message("\blue You project your mind into [target.real_name]: [say]")
for(var/mob/dead/observer/G in world)
G.show_message("<i>Telepathic message from <b>[src]</b> to <b>[target]</b>: [say]</i>")
/mob/living/carbon/human
var/mob/remoteobserve
/mob/living/carbon/human/proc/remoteobserve()
set name = "Remote View"
set category = "Superpower"
if(!(src.mutations & mRemote))
client.eye = client.mob
reset_view(0)
remoteobserve = null
src.verbs -= /mob/living/carbon/human/proc/remoteobserve
return
if(client.eye != client.mob)
client.eye = client.mob
reset_view(0)
remoteobserve = null
return
var/list/mob/creatures = list()
for(var/mob/living/carbon/h in world)
creatures += h
client.perspective = EYE_PERSPECTIVE
var/mob/target = input ("Who do you want to project your mind to ?") as mob in creatures
if (target)
client.eye = target
reset_view(target)
remoteobserve = target
else
client.eye = client.mob
reset_view(0)
remoteobserve = null
/mob/living/carbon/human/proc/check_dna()
dna.check_integrity(src)
return
+19 -13
View File
@@ -130,6 +130,10 @@
var/pr = 50
if(prob(pr))
adjustToxLoss(1)
else
if(!lying)
lying = 1 //Seriously, stay down :x
update_clothing()
clamp_values()
@@ -154,7 +158,7 @@
handle_disabilities()
if (mutations & mHallucination)
if(mutations2 & mHallucination)
hallucination = 100
halloss = 0
@@ -175,13 +179,12 @@
for(var/atom/a in hallucinations)
del a
if(mutations & mSmallsize)
if(!(flags & PASSTABLE))
flags |= PASSTABLE
if(mutations2 & mSmallsize)
if(!(pass_flags & PASSTABLE))
pass_flags |= PASSTABLE
else
if(flags & PASSTABLE)
flags &= ~PASSTABLE
if(pass_flags & PASSTABLE)
pass_flags &= ~PASSTABLE
@@ -209,7 +212,7 @@
src.verbs += /mob/living/carbon/human/proc/remoteobserve
else
if(!(mutations & mRemote))
src.verbs += /mob/living/carbon/human/proc/remoteobserve
src.verbs -= /mob/living/carbon/human/proc/remoteobserve
if(!(/mob/living/carbon/human/proc/remotesay in src.verbs))
if(mutations & mRemotetalk)
@@ -250,8 +253,8 @@
pixel_x = old_x
pixel_y = old_y
if (disabilities & 16)
if (prob(20))//Instant Chad Ore!
stuttering = max(10, stuttering)
if (prob(40))//Instant Chad Ore!
stuttering = max(5, stuttering)
if (brainloss >= 60 && stat != 2)
if (prob(7))
@@ -312,6 +315,8 @@
emote("gasp")
updatehealth()
//As close as I could find to where to put it
grav_delay = max(grav_delay-3,0)
breathe()
@@ -1147,9 +1152,10 @@
if (machine)
if (!( machine.check_eye(src) ))
reset_view(null)
else
if(!client.adminobs)
reset_view(null)
else if(!(mutations & mRemote) && !client.adminobs)
reset_view(null)
if(remoteobserve)
remoteobserve = null
return 1
+1 -1
View File
@@ -17,7 +17,7 @@
//sort of a legacy burn method for /electrocute, /shock, and the e_chair
/mob/living/proc/burn_skin(burn_amount)
if(istype(src, /mob/living/carbon/human))
if(src.mutations & mShock)
if(src.mutations2 & mShock)
return 0
//world << "DEBUG: burn_skin(), mutations=[mutations]"
if (src.mutations & COLD_RESISTANCE) //fireproof
+1
View File
@@ -185,6 +185,7 @@
// move_delay += mob.organStructure.legs.moveWalkDelay
move_delay += 5
move_delay += mob.movement_delay()
move_delay += mob.grav_delay
//We are now going to move
moving = 1
+15 -8
View File
@@ -2,7 +2,6 @@ var/global/list/uneatable = list(
/turf/space,
/obj/effect,
/obj/effect/overlay,
/obj/effect/decal/cleanable,
/obj/effect/rune
)
@@ -212,15 +211,19 @@ var/global/list/uneatable = list(
consume(X)
for(var/atom/movable/X in orange(grav_pull,src))
if(is_type_in_list(X, uneatable)) continue
if(((X) &&(!X:anchored) && (!istype(X,/mob/living/carbon/human)))|| (src.current_size >= 9))
step_towards(X,src)
if((((X) && (!X:anchored)) || (src.current_size >= 9)) && (!istype(X,/mob/living/carbon/human)))
spawn(rand(0,15))
step_towards(X,src)
else if(istype(X,/mob/living/carbon/human))
var/mob/living/carbon/human/H = X
if(istype(H.shoes,/obj/item/clothing/shoes/magboots))
H << "\red The singularity has you in it's gravitational pull! It's hard to break free!"
H.grav_delay = 20 //No running this time!
if(istype(H.shoes,/obj/item/clothing/shoes/magboots) && !(src.current_size >= 9))
var/obj/item/clothing/shoes/magboots/M = H.shoes
if(M.magpulse)
continue
step_towards(H,src)
spawn(rand(0,15))
step_towards(H,src)
if(defer_powernet_rebuild != 2)
defer_powernet_rebuild = 0
return
@@ -236,7 +239,8 @@ var/global/list/uneatable = list(
gain = 100
spawn()
A:gib()
sleep(1)
//Sleep being called in process() :|
// sleep(1)
else if(istype(A,/obj/))
if (istype(A,/obj/item/weapon/storage/backpack/holding))
@@ -258,8 +262,8 @@ var/global/list/uneatable = list(
O.y = 2
O.z = 2
else
A:ex_act(1.0)
if(A) del(A)
spawn(rand(0,10)) //Spreading shit out
del(A)
gain = 2
else if(isturf(A))
var/turf/T = A
@@ -271,6 +275,9 @@ var/global/list/uneatable = list(
src.consume(O)
A:ReplaceWithSpace()
gain = 2
else
spawn(rand(0,10)) //Spreading shit out
del(A)
src.energy += gain
return