•Added skeletons

•Only usable through the admins' view_variables as of now, since no actually good ways of implementing them came up
•makeSkeleton() is still there, ready to be used wherever you wish.
•Note: Skeletons have no underwear and no eyes.
•Rewrote some minor stupid shit

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4800 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
polyxenitopalidou@gmail.com
2012-10-02 22:29:13 +00:00
parent 8feb3c6099
commit 9f020e76e7
11 changed files with 81 additions and 25 deletions
+17
View File
@@ -244,6 +244,7 @@ client
body += "<option value='byond://?src=\ref[src];godmode=\ref[D]'>Toggle Godmode</option>"
body += "<option value='byond://?src=\ref[src];build_mode=\ref[D]'>Toggle Build Mode</option>"
body += "<option value='byond://?src=\ref[src];direct_control=\ref[D]'>Assume Direct Control</option>"
body += "<option value='byond://?src=\ref[src];make_skeleton=\ref[D]'>Make 2spooky</option>"
body += "<option value='byond://?src=\ref[src];drop_everything=\ref[D]'>Drop Everything</option>"
body += "<option value='byond://?src=\ref[src];regenerateicons=\ref[D]'>Regenerate Icons</option>"
if(ishuman(D))
@@ -546,6 +547,22 @@ client
if(usr.client)
usr.client.cmd_assume_direct_control(MOB)
else if (href_list["make_skeleton"])
if(!href_list["make_skeleton"])
return
var/mob/MOB = locate(href_list["make_skeleton"])
if(!MOB)
return
if(!ismob(MOB))
return
if(!src.holder)
return
if(ishuman(MOB))
world << "derp"
var/mob/living/carbon/human/HUMANMOB = MOB
HUMANMOB.makeSkeleton()
else if (href_list["delall"])
if(!href_list["delall"])
return
+1 -1
View File
@@ -117,7 +117,7 @@
//Returns total damage...kinda pointless really
/datum/organ/external/proc/get_damage() //returns total damage
/datum/organ/external/proc/get_damage()
return brute_dam + burn_dam
+10
View File
@@ -1,5 +1,15 @@
/datum/organ/internal
name = "internal"
var/damage = 0
var/max_damage = 100
/datum/organ/internal/skeleton
name = "spooky scary skeleton"
max_damage = 200
/datum/organ/internal/skin
name = "skin"
max_damage = 100
/datum/organ/internal/blood_vessels
name = "blood vessels"
@@ -67,6 +67,21 @@
ticker.mode.check_win() //Calls the rounds wincheck, mainly for wizard, malf, and changeling now
return ..(gibbed)
/mob/living/carbon/human/proc/makeSkeleton()
if(SKELETON in src.mutations) return
if(f_style)
f_style = "Shaved"
if(h_style)
h_style = "Bald"
update_hair(0)
mutations.Add(SKELETON)
status_flags |= DISFIGURED
update_body(0)
update_mutantrace()
return
/mob/living/carbon/human/proc/ChangeToHusk()
if(HUSK in mutations) return
@@ -21,8 +21,9 @@
dna = new /datum/dna(null)
//initialise organs
organs = newlist(/datum/organ/external/chest, /datum/organ/external/head, /datum/organ/external/l_arm, \
/datum/organ/external/r_arm, /datum/organ/external/r_leg, /datum/organ/external/l_leg)
organs = newlist(/datum/organ/external/chest, /datum/organ/external/head, /datum/organ/external/l_arm,
/datum/organ/external/r_arm, /datum/organ/external/r_leg, /datum/organ/external/l_leg,
/datum/organ/internal/skeleton, /datum/organ/internal/skin)
for(var/datum/organ/external/O in organs)
O.owner = src
@@ -45,7 +45,7 @@
var/icon/stand_icon = null
var/icon/lying_icon = null
var/list/organs = list()
var/list/organs = list() //Gets filled up in the constructor (human.dm, New() proc, line 24. I'm sick and tired of missing comments. -Agouri
var/miming = null //Toggle for the mime's abilities.
@@ -183,45 +183,50 @@ Please contact me on #coderbus IRC. ~Carn x
if(stand_icon) del(stand_icon)
if(lying_icon) del(lying_icon)
if(dna && dna.mutantrace) return
var/husk = (HUSK in src.mutations)
var/fat = (FAT in src.mutations)
//var/husk = (HUSK in src.mutations) //100% unnecessary -Agouri
//var/fat = (FAT in src.mutations)
var/g = "m"
if(gender == FEMALE) g = "f"
//Base mob icon
if(husk)
if(HUSK in src.mutations)
stand_icon = new /icon('icons/mob/human.dmi', "husk_s")
lying_icon = new /icon('icons/mob/human.dmi', "husk_l")
else if(fat)
else if(FAT in src.mutations)
stand_icon = new /icon('icons/mob/human.dmi', "fatbody_s")
lying_icon = new /icon('icons/mob/human.dmi', "fatbody_l")
else if(SKELETON in src.mutations)
stand_icon = new /icon('icons/mob/human.dmi', "skeleton_s")
lying_icon = new /icon('icons/mob/human.dmi', "skeleton_l")
else
stand_icon = new /icon('icons/mob/human.dmi', "body_[g]_s")
lying_icon = new /icon('icons/mob/human.dmi', "body_[g]_l")
//Skin tone
if(s_tone >= 0)
stand_icon.Blend(rgb(s_tone, s_tone, s_tone), ICON_ADD)
lying_icon.Blend(rgb(s_tone, s_tone, s_tone), ICON_ADD)
else
stand_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT)
lying_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT)
if((SKELETON in src.mutations) == 0)
if(s_tone >= 0)
stand_icon.Blend(rgb(s_tone, s_tone, s_tone), ICON_ADD)
lying_icon.Blend(rgb(s_tone, s_tone, s_tone), ICON_ADD)
else
stand_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT)
lying_icon.Blend(rgb(-s_tone, -s_tone, -s_tone), ICON_SUBTRACT)
//Eyes
var/icon/eyes_s = new/icon('icons/mob/human_face.dmi', "eyes_s")
var/icon/eyes_l = new/icon('icons/mob/human_face.dmi', "eyes_l")
eyes_s.Blend(rgb(r_eyes, g_eyes, b_eyes), ICON_ADD)
eyes_l.Blend(rgb(r_eyes, g_eyes, b_eyes), ICON_ADD)
stand_icon.Blend(eyes_s, ICON_OVERLAY)
lying_icon.Blend(eyes_l, ICON_OVERLAY)
if((SKELETON in src.mutations) == 0)
var/icon/eyes_s = new/icon('icons/mob/human_face.dmi', "eyes_s")
var/icon/eyes_l = new/icon('icons/mob/human_face.dmi', "eyes_l")
eyes_s.Blend(rgb(r_eyes, g_eyes, b_eyes), ICON_ADD)
eyes_l.Blend(rgb(r_eyes, g_eyes, b_eyes), ICON_ADD)
stand_icon.Blend(eyes_s, ICON_OVERLAY)
lying_icon.Blend(eyes_l, ICON_OVERLAY)
//Mouth (lipstick!)
if(lip_style)
if(lip_style && (SKELETON in src.mutations) == 0)
stand_icon.Blend(new/icon('icons/mob/human_face.dmi', "lips_[lip_style]_s"), ICON_OVERLAY)
lying_icon.Blend(new/icon('icons/mob/human_face.dmi', "lips_[lip_style]_l"), ICON_OVERLAY)
//Underwear
if(underwear < 12 && underwear > 0)
if(!fat)
if(underwear >0 && underwear < 12)
if((FAT in src.mutations) == 0 && (SKELETON in src.mutations) == 0)
stand_icon.Blend(new /icon('icons/mob/human.dmi', "underwear[underwear]_[g]_s"), ICON_OVERLAY)
lying_icon.Blend(new /icon('icons/mob/human.dmi', "underwear[underwear]_[g]_l"), ICON_OVERLAY)
if(update_icons) update_icons()
+3
View File
@@ -325,6 +325,9 @@ var/MAX_EXPLOSION_RANGE = 14
#define NANOREGEN 28 // regenerative nanobots, -3 all damage types per second
//2spooky
#define SKELETON 29
//disabilities
#define NEARSIGHTED 1
#define EPILEPSY 2