From 913922b4081a4396ba60e9dac329b5f3cb477ead Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Wed, 27 Jan 2016 00:45:32 -0500 Subject: [PATCH] Adds in Skeleton Race --- code/__DEFINES/flags.dm | 1 + code/game/dna/genes/goon_disabilities.dm | 2 +- code/modules/clothing/spacesuits/plasmamen.dm | 2 +- code/modules/mob/living/carbon/human/human.dm | 4 +- code/modules/mob/living/carbon/human/life.dm | 139 +++++++++--------- .../living/carbon/human/species/skeleton.dm | 33 +++++ .../mob/new_player/sprite_accessories.dm | 14 +- code/modules/virus2/effect.dm | 6 +- icons/mob/human_races/r_skeleton.dmi | Bin 2350 -> 972 bytes paradise.dme | 1 + 10 files changed, 119 insertions(+), 83 deletions(-) create mode 100644 code/modules/mob/living/carbon/human/species/skeleton.dm diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm index d3f4abef037..31c569904da 100644 --- a/code/__DEFINES/flags.dm +++ b/code/__DEFINES/flags.dm @@ -48,6 +48,7 @@ #define IS_RESTRICTED 2048 #define NO_INTORGANS 4096 #define NO_POISON 8192 +#define RADIMMUNE 16384 //Species clothing flags #define HAS_UNDERWEAR 1 diff --git a/code/game/dna/genes/goon_disabilities.dm b/code/game/dna/genes/goon_disabilities.dm index 01c0b9ed535..e5ebf16975c 100644 --- a/code/game/dna/genes/goon_disabilities.dm +++ b/code/game/dna/genes/goon_disabilities.dm @@ -385,7 +385,7 @@ // playsound(H.loc, 'male_fallscream.ogg', 50, 0) //playsound(H.loc, 'bubbles.ogg', 50, 0) //playsound(H.loc, 'loudcrunch2.ogg', 50, 0) - var/mob/living/carbon/human/skellington/nH = new /mob/living/carbon/human/skellington(H.loc, delay_ready_dna=1) + var/mob/living/carbon/human/skeleton/nH = new /mob/living/carbon/human/skeleton(H.loc, delay_ready_dna=1) nH.real_name = H.real_name nH.name = "[H.name]'s skeleton" //H.decomp_stage = 4 diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index 1dfe1b68fc5..ca4d59fbe6a 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -1,5 +1,5 @@ // PLASMEN SHIT -// CAN'T WEAR UNLESS YOU'RE A PINK SKELLINGTON +// CAN'T WEAR UNLESS YOU'RE A PINK SKELETON /obj/item/clothing/suit/space/eva/plasmaman name = "plasmaman suit" desc = "A special containment suit designed to protect a plasmaman's volatile body from outside exposure and quickly extinguish it in emergencies." diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 5dc9f08b6b9..4978be101d3 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -95,9 +95,9 @@ h_style = "Bald" ..(new_loc, "Vox Armalis") -/mob/living/carbon/human/skellington/New(var/new_loc) +/mob/living/carbon/human/skeleton/New(var/new_loc) h_style = "Bald" - ..(new_loc, "Skellington") + ..(new_loc, "Skeleton") /mob/living/carbon/human/kidan/New(var/new_loc) ..(new_loc, "Kidan") diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 233d4eabb6d..57ea1bb7088 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -213,85 +213,86 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc speech_problem_flag = 1 gene.OnMobLife(src) - if (radiation) + if(!(species.flags & RADIMMUNE)) + if (radiation) - if((locate(src.internal_organs_by_name["resonant crystal"]) in src.internal_organs)) - var/rads = radiation/25 - radiation -= rads - radiation -= 0.1 - reagents.add_reagent("radium", rads/10) - if( prob(10) ) - src << "You feel relaxed." - return - - if (radiation > 100) - radiation = 100 - if(!(species.flags & RAD_ABSORB)) - Weaken(10) - if(!lying) - src << "You feel weak." - emote("collapse") - - if (radiation < 0) - radiation = 0 - - else - if(species.flags & RAD_ABSORB) + if((locate(src.internal_organs_by_name["resonant crystal"]) in src.internal_organs)) var/rads = radiation/25 radiation -= rads - nutrition += rads - adjustBruteLoss(-(rads)) - adjustOxyLoss(-(rads)) - adjustToxLoss(-(rads)) - updatehealth() + radiation -= 0.1 + reagents.add_reagent("radium", rads/10) + if( prob(10) ) + src << "You feel relaxed." return - var/damage = 0 - switch(radiation) - if(0 to 49) - radiation-- - if(prob(25)) - adjustToxLoss(1) + if (radiation > 100) + radiation = 100 + if(!(species.flags & RAD_ABSORB)) + Weaken(10) + if(!lying) + src << "You feel weak." + emote("collapse") + + if (radiation < 0) + radiation = 0 + + else + if(species.flags & RAD_ABSORB) + var/rads = radiation/25 + radiation -= rads + nutrition += rads + adjustBruteLoss(-(rads)) + adjustOxyLoss(-(rads)) + adjustToxLoss(-(rads)) + updatehealth() + return + + var/damage = 0 + switch(radiation) + if(0 to 49) + radiation-- + if(prob(25)) + adjustToxLoss(1) + damage = 1 + updatehealth() + + if(50 to 74) + radiation -= 2 damage = 1 + adjustToxLoss(1) + if(prob(5)) + radiation -= 5 + Weaken(3) + if(!lying) + src << "You feel weak." + emote("collapse") updatehealth() - if(50 to 74) - radiation -= 2 - damage = 1 - adjustToxLoss(1) - if(prob(5)) + if(75 to 100) + radiation -= 3 + adjustToxLoss(3) + damage = 3 + if(prob(1)) + src << "You mutate!" + randmutb(src) + domutcheck(src,null) + emote("gasp") + updatehealth() + + else radiation -= 5 - Weaken(3) - if(!lying) - src << "You feel weak." - emote("collapse") - updatehealth() + adjustToxLoss(5) + damage = 5 + if(prob(1)) + src << "You mutate!" + randmutb(src) + domutcheck(src,null) + emote("gasp") + updatehealth() - if(75 to 100) - radiation -= 3 - adjustToxLoss(3) - damage = 3 - if(prob(1)) - src << "You mutate!" - randmutb(src) - domutcheck(src,null) - emote("gasp") - updatehealth() - - else - radiation -= 5 - adjustToxLoss(5) - damage = 5 - if(prob(1)) - src << "You mutate!" - randmutb(src) - domutcheck(src,null) - emote("gasp") - updatehealth() - - if(damage && organs.len) - var/obj/item/organ/external/O = pick(organs) - if(istype(O)) O.add_autopsy_data("Radiation Poisoning", damage) + if(damage && organs.len) + var/obj/item/organ/external/O = pick(organs) + if(istype(O)) O.add_autopsy_data("Radiation Poisoning", damage) /mob/living/carbon/human/breathe() if(reagents.has_reagent("lexorin")) diff --git a/code/modules/mob/living/carbon/human/species/skeleton.dm b/code/modules/mob/living/carbon/human/species/skeleton.dm new file mode 100644 index 00000000000..82c7864dd46 --- /dev/null +++ b/code/modules/mob/living/carbon/human/species/skeleton.dm @@ -0,0 +1,33 @@ +/datum/species/skeleton + name = "Skeleton" + name_plural = "Skeletons" + + blurb = "Spoopy and scary." + + icobase = 'icons/mob/human_races/r_skeleton.dmi' + deform = 'icons/mob/human_races/r_skeleton.dmi' + path = /mob/living/carbon/human/skeleton + default_language = "Galactic Common" + unarmed_type = /datum/unarmed_attack/punch + + blood_color = "#FFFFFF" + flesh_color = "#E6E6C6" + + flags = NO_BREATHE | NO_BLOOD | RADIMMUNE + virus_immune = 1 //why is this a var and not a flag? + dietflags = DIET_OMNI + reagent_tag = PROCESS_ORG + + warning_low_pressure = -1 + hazard_low_pressure = -1 + hazard_high_pressure = 999999999 + warning_high_pressure = 999999999 + + cold_level_1 = -1 + cold_level_2 = -1 + cold_level_3 = -1 + + heat_level_1 = 999999999 + heat_level_2 = 999999999 + heat_level_3 = 999999999 + heat_level_3_breathe = 999999999 \ No newline at end of file diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index ce2a34259ea..4643974d0eb 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -64,7 +64,7 @@ name = "Bald" icon_state = "bald" gender = MALE - species_allowed = list("Human","Unathi","Vox","Diona","Kidan","Grey","Plasmaman","Skellington") + species_allowed = list("Human","Unathi","Vox","Diona","Kidan","Grey","Plasmaman","Skeleton") short name = "Short Hair" // try to capatilize the names please~ @@ -1069,7 +1069,7 @@ /datum/sprite_accessory/underwear icon = 'icons/mob/underwear.dmi' - species_allowed = list("Human","Unathi","Vox","Diona","Vulpkanin","Kidan","Grey","Plasmaman","Skellington") + species_allowed = list("Human","Unathi","Vox","Diona","Vulpkanin","Kidan","Grey","Plasmaman","Skeleton") nude name = "Nude" @@ -1217,7 +1217,7 @@ /datum/sprite_accessory/undershirt icon = 'icons/mob/underwear.dmi' - species_allowed = list("Human","Unathi","Vox","Diona","Vulpkanin","Kidan","Grey","Plasmaman","Skellington") + species_allowed = list("Human","Unathi","Vox","Diona","Vulpkanin","Kidan","Grey","Plasmaman","Skeleton") /datum/sprite_accessory/undershirt/nude name = "Nude" @@ -1503,13 +1503,13 @@ /////////////////////// /datum/sprite_accessory/socks icon = 'icons/mob/underwear.dmi' - species_allowed = list("Human","Unathi","Diona","Grey","Machine","Tajaran","Vulpkanin","Slime People","Skellington") + species_allowed = list("Human","Unathi","Diona","Grey","Machine","Tajaran","Vulpkanin","Slime People","Skeleton") /datum/sprite_accessory/socks/nude name = "Nude" icon_state = null gender = NEUTER - species_allowed = list("Human","Unathi","Diona","Grey","Machine","Tajaran","Vulpkanin","Slime People","Skellington","Vox") + species_allowed = list("Human","Unathi","Diona","Grey","Machine","Tajaran","Vulpkanin","Slime People","Skeleton","Vox") /datum/sprite_accessory/socks/white_norm @@ -1681,7 +1681,7 @@ /datum/sprite_accessory/head_accessory/none name = "None" - species_allowed = list("Human","Unathi","Diona","Grey","Machine","Tajaran","Vulpkanin","Slime People","Skellington","Vox") + species_allowed = list("Human","Unathi","Diona","Grey","Machine","Tajaran","Vulpkanin","Slime People","Skeleton","Vox") icon_state = "accessory_none" /datum/sprite_accessory/head_accessory/simple @@ -1773,7 +1773,7 @@ /datum/sprite_accessory/body_markings/none name = "None" - species_allowed = list("Human","Unathi","Diona","Grey","Machine","Tajaran","Vulpkanin","Slime People","Skellington","Vox") + species_allowed = list("Human","Unathi","Diona","Grey","Machine","Tajaran","Vulpkanin","Slime People","Skeleton","Vox") icon_state = "accessory_none" /datum/sprite_accessory/body_markings/stripe diff --git a/code/modules/virus2/effect.dm b/code/modules/virus2/effect.dm index ef21731868d..d54115adcfe 100644 --- a/code/modules/virus2/effect.dm +++ b/code/modules/virus2/effect.dm @@ -348,14 +348,14 @@ E.droplimb(0,DROPLIMB_EDGE) if(3) if(ishuman(mob)) - if(H.species.name != "Skellington") + if(H.species.name != "Skeleton") mob << " Your necrotic skin ruptures!" for (var/obj/item/organ/external/E in H.organs) if(pick(1,0) && !(E.status & ORGAN_ROBOT)) E.createwound(CUT, pick(2,4)) if(prob(30)) - if(H.species.name != "Skellington") - if(H.set_species("Skellington")) + if(H.species.name != "Skeleton") + if(H.set_species("Skeleton")) mob << " A massive amount of flesh sloughs off your bones!" H.regenerate_icons() else diff --git a/icons/mob/human_races/r_skeleton.dmi b/icons/mob/human_races/r_skeleton.dmi index f67639aa96b2bbf619a6e300487ddd088bf97b13..a350c3f4c4d2c896a4e6490c739ae695417fef8e 100644 GIT binary patch delta 775 zcmV+i1Ni)|63hpX7%>C`0002t0k(wz000kAOjJd{z`+0i%>V!98yg$Iz`$*SQf~kN z00DGTPE!Ct=GbPDA-#VBut`KgRCt{2-Eo$hFc8OahF*Ypg5U|d_rF|yeXmL;S;pxE zi0$|D*9IB+iS7zxWTy!L002M-BCx1Ke<0%# zJ_0Rj{jA2F1F3`J>JIg5L>7Z=MeVwYL1mV)U|nJGjPp zCx!$v5XeHHv5ofd=q>>O0N_8eECjNAVj#6Z|Lv39G0t1mgrHSlh(Dhh1^|Hm^z;tnBB}Miz46u? zaZ)NSVl{u?)2;Y!gsl3aq_^!R{Pl)(mw7wmMvo`SG4k;fxicgE%(a@Sju zl#`b9SoZgjyWS#GT4ZNz?jd)*<&8(Exc88g@oQ@Z^4A9g)u$2aEWus>ae*vWAa{L~ z_1598zy8EfA&`YY76JhPfU`yWIlZqJ9PQ_n^>Itleva;T#6|l#2k)V9KPWER&*{B~ z;{BZNAL2&)Io$(A+b7+>(l&Y^%khDt{hUEAH4gwd+%H4KFG<2@f$IPO002ovPDHLk FV1f(6i#z}T literal 2350 zcma)8dsNcd8vUU}=%AuGB`QQYw=7divzc^M%oMGue3sb*Dv=t^2l*%mg`1Ys!*tzL za(qCIY2^bI!^u?49(EN&C!gT+CT2cTR7er{U94GaX726YHGiCa);a4t-}kM(&)Mr- z@!n6+(>2uv06@>nbGI)5K(Lwtz+sx5Rk&iFX5z&A2S)EEpF2f86B&IbA{+qD=cfMp zNcZVh1Z=1`QTOKL-EPs{uaXh1RwhXj?Oc=K_WHzgVV6#xHKKX&(~rm|Q=)wPLo*^8 zjOOlO#uFX(O0Q%!iu%fYp+7pewHw<)LwnB)qRteQ8@9+jbyGqvm)0vSr*4Ip)c`Ll zk*7vqja%H@@zTeJaoB=t^XnJ^+B0mH8_kT zDx1>=u((YC0C(`(?dpGCG}XV2Dy~@#BT+V(c~4shmbL_Q2ME4}t)_j&RgY_P1($G* zMgNQmn>9~gsQ1Xy)rK~(*t?C^*3%ZL+TO!IZvdc3EaR^L1geRH%oAA72@0ufqT8UQ zyJXKHCcV_gF0&Mrfk9KC)G2d}Xk~i4Qb|TvuG~fLRS-c=r#eEHofWTI5~Ol$`0+!B z*6PUkYGSdLB_mTy3r&6~9Q%2Qj_!<0VhP_eXZdvSIQ3L88U3Id zv{d03u^8v6gi-AECvgsWi9Zkxfq@9JO$hf$;xtW=C z-^7g0>I)rzb4Z9vm9_mTa{wd2hRgynFfhU-@08GsfP`6t+*$BtbBXCI!_4zV^X%!fSu!Dn+s^29_s8k$Ld+5z!Tusa$v zlda<_Mcj)|$*H5=a`-<|L7?Snz}3uk;=$f)RRLM(2P~L(or?Rxub|$f(;rqyb)tgbL`qdM3ipV zHHh@w>U7_ChOr9=Q+gW-pdSVwRd8RaUy#||y>4l&J7UiB07bwCH?bhkv8Vl{JCK#I zlP)th%)MR<{_hzTb){2QJi1&>N%t#%fM)B>hYq^?3m6YV)^#RPM%5GsP`T>WKG4q; z-vF{O;f4aju?z0Nlc5t)BWrg;ktMXC8h4U;49XG$wYr8I?fz-SbMOjCfkA7VXC3a_ zt66{+62GCVi($8#vi5S2$grrbChV{Qy}tKGdy;#PhFQg?7t*mGUL0BL0d?z$o1j*TgAXKN8G+U`d2E#s&a!7- zzF<9U!6@W5x$e*q-e6{VN9T-h7E?_-(}l5IFWXI2I6fMhR!W zX?kez<(g;PIEEZZyl?^hMXsOS@0m%~(iSi_hX9#e{jXgc@t^N{+10AnbQ-`pTj&KT zKOgFJ2l@Ok$UHMuO=O+jiB+V~n{EO@i&2Ecn^9>;t+<2oN%U>p<4*E~!x$)AA_6MO zP-q?+-49DJGudXz6B%Yn2&ilc@ip`2;rEp#*JEDJgF7^CsJ>G%Jv~i?#Vu*1=q(9LN-3t9{d8^fOr{AE1cCB{~CM->V#8OtSftLK?FQf7xugC&RhrYE$PIS~Ef|Sr3mV>Dyo#mMLEn%+P+QyU(A#o0oQ|X5 zv$>21DDUOy<}`+(&Do*qJksLfgK)VWTg?@`veRxvSW4k0j`3y-D#Sf7tQgfsZJMCq zRg@5Xc@$v1vKHm7LRjXYkar>58yh%1hMd-NUT)0a0Y#Ew*N?1yISKCKLpXglnEgEr z3TK}<&=j(HZJ_~M!)2l1>qb$Sf;Edu&u-}B;#9(nBGTtP5MK&H#&ig^x60Tynhy}* N<-UJ+*)Gz>e*=d76F&d| diff --git a/paradise.dme b/paradise.dme index 8e5d05ae200..c9154b7844a 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1396,6 +1396,7 @@ #include "code\modules\mob\living\carbon\human\species\monkey.dm" #include "code\modules\mob\living\carbon\human\species\plasmaman.dm" #include "code\modules\mob\living\carbon\human\species\shadow.dm" +#include "code\modules\mob\living\carbon\human\species\skeleton.dm" #include "code\modules\mob\living\carbon\human\species\species.dm" #include "code\modules\mob\living\carbon\human\species\station.dm" #include "code\modules\mob\living\carbon\slime\death.dm"