From fcbdb53bbb4d2aa5fedea2d4191123ebd3dd121b Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Tue, 24 Sep 2013 19:00:40 -0400 Subject: [PATCH] Bunch of FAT fixes --- baystation12.dme | 1 + code/game/dna/dna_misc.dm | 18 ++- code/game/jobs/job_controller.dm | 2 +- code/game/objects/items.dm | 9 ++ .../objects/items/weapons/storage/bible.dm | 4 +- code/modules/client/preferences.dm | 78 +++++++---- code/modules/clothing/clothing.dm | 1 + code/modules/clothing/under/jobs/civilian.dm | 38 ++++-- .../clothing/under/jobs/engineering.dm | 9 +- code/modules/clothing/under/jobs/medsci.dm | 26 ++-- code/modules/clothing/under/jobs/security.dm | 13 +- code/modules/customitems/definitions/N3X15.dm | 27 ++++ code/modules/customitems/definitions/base.dm | 23 ++++ .../mob/living/carbon/alien/humanoid/life.dm | 4 +- .../mob/living/carbon/alien/larva/life.dm | 4 +- code/modules/mob/living/carbon/human/life.dm | 42 +++--- .../mob/living/carbon/human/update_icons.dm | 124 +++++++++++++----- code/modules/mob/living/carbon/species.dm | 2 +- code/modules/mob/new_player/new_player.dm | 15 ++- .../mob/new_player/preferences_setup.dm | 72 +++++----- code/modules/organs/organ_external.dm | 16 ++- code/setup.dm | 9 +- 22 files changed, 380 insertions(+), 157 deletions(-) create mode 100644 code/modules/customitems/definitions/N3X15.dm create mode 100644 code/modules/customitems/definitions/base.dm diff --git a/baystation12.dme b/baystation12.dme index fe5eb63ea31..93c52ecd482 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -822,6 +822,7 @@ #include "code\modules\clothing\under\jobs\security.dm" #include "code\modules\customitems\item_defines.dm" #include "code\modules\customitems\item_spawning.dm" +#include "code\modules\customitems\definitions\base.dm" #include "code\modules\DetectiveWork\detective_work.dm" #include "code\modules\DetectiveWork\evidence.dm" #include "code\modules\DetectiveWork\footprints_and_rag.dm" diff --git a/code/game/dna/dna_misc.dm b/code/game/dna/dna_misc.dm index fd5d0f59a1e..a9dc0c0e487 100644 --- a/code/game/dna/dna_misc.dm +++ b/code/game/dna/dna_misc.dm @@ -272,7 +272,7 @@ M.sdisabilities = 0 var/old_mutations = M.mutations M.mutations = list() - + M.pass_flags = 0 // M.see_in_dark = 2 // M.see_invisible = 0 @@ -293,6 +293,7 @@ if(probinj(45,inj) || (mRemote in old_mutations)) M << "\blue Your mind expands" M.mutations.Add(mRemote) + M.verbs += /mob/living/carbon/human/proc/remoteobserve if(ismuton(REGENERATEBLOCK,M)) if(probinj(45,inj) || (mRegen in old_mutations)) M << "\blue You feel strange" @@ -305,10 +306,12 @@ if(probinj(45,inj) || (mRemotetalk in old_mutations)) M << "\blue You expand your mind outwards" M.mutations.Add(mRemotetalk) + M.verbs += /mob/living/carbon/human/proc/remotesay if(ismuton(MORPHBLOCK,M)) if(probinj(45,inj) || (mMorph in old_mutations)) M.mutations.Add(mMorph) M << "\blue Your skin feels strange" + M.verbs += /mob/living/carbon/human/proc/morph if(ismuton(BLENDBLOCK,M)) if(probinj(45,inj) || (mBlend in old_mutations)) M.mutations.Add(mBlend) @@ -316,7 +319,7 @@ if(ismuton(HALLUCINATIONBLOCK,M)) if(probinj(45,inj) || (mHallucination in old_mutations)) M.mutations.Add(mHallucination) - M << "\blue Your mind says 'Hello'" + M << "\red Your mind says 'Hello'" if(ismuton(NOPRINTSBLOCK,M)) if(probinj(45,inj) || (mFingerprints in old_mutations)) M.mutations.Add(mFingerprints) @@ -329,6 +332,7 @@ if(probinj(45,inj) || (mSmallsize in old_mutations)) M << "\blue Your skin feels rubbery" M.mutations.Add(mSmallsize) + M.pass_flags |= 1 @@ -556,4 +560,14 @@ if(M) M.update_icon = 1 //queue a full icon update at next life() call return null + + +/proc/togglemut(mob/M as mob, var/block) + if(!M) return + var/newdna + M.dna.check_integrity() + newdna = setblock(M.dna.struc_enzymes,block,toggledblock(getblock(M.dna.struc_enzymes,block,3)),3) + M.dna.struc_enzymes = newdna + return + /////////////////////////// DNA MISC-PROCS \ No newline at end of file diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index 7ede79586b2..01f6f8d10a4 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -445,7 +445,7 @@ var/global/datum/controller/occupations/job_master H.equip_to_slot_or_del(new /obj/item/device/radio/headset(H), slot_ears) //Gives glasses to the vision impaired - if(H.disabilities & NEARSIGHTED) + if(H.disabilities & DISABILITY_FLAG_NEARSIGHTED) var/equipped = H.equip_to_slot_or_del(new /obj/item/clothing/glasses/regular(H), slot_glasses) if(equipped != 1) var/obj/item/clothing/glasses/G = H.glasses diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 2f47a344b42..cbf7bdfa9ec 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -399,6 +399,15 @@ //START HUMAN var/mob/living/carbon/human/H = M + + if(istype(src, /obj/item/clothing/under) || istype(src, /obj/item/clothing/suit)) + if(FAT in H.mutations) + testing("[M] TOO FAT TO WEAR [src]!") + if(!(flags & ONESIZEFITSALL)) + if(!disable_warning) + H << "\red You're too fat to wear the [name]." + return 0 + switch(slot) if(slot_l_hand) if(H.l_hand) diff --git a/code/game/objects/items/weapons/storage/bible.dm b/code/game/objects/items/weapons/storage/bible.dm index f5b63f677c9..55bcddb161e 100644 --- a/code/game/objects/items/weapons/storage/bible.dm +++ b/code/game/objects/items/weapons/storage/bible.dm @@ -22,7 +22,7 @@ new /obj/item/weapon/spacecash(src) new /obj/item/weapon/spacecash(src) //BS12 EDIT -/* // All cult functionality moved to Null Rod + // All cult functionality moved to Null Rod /obj/item/weapon/storage/bible/proc/bless(mob/living/carbon/M as mob) if(ishuman(M)) var/mob/living/carbon/human/H = M @@ -87,7 +87,7 @@ O.show_message(text("\red [] smacks []'s lifeless corpse with [].", user, M, src), 1) playsound(src.loc, "punch", 25, 1, -1) return -*/ + /obj/item/weapon/storage/bible/afterattack(atom/A, mob/user as mob) /* if (istype(A, /turf/simulated/floor)) user << "\blue You hit the floor with the bible." diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 33807cee239..d803cb7c0a4 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -258,9 +258,10 @@ datum/preferences dat += "Secondary Language:
[language]
" dat += "Blood Type: [b_type]
" dat += "Skin Tone: [-s_tone + 35]/220
" - //dat += "Skin pattern: Adjust
" - dat += "Needs Glasses: [disabilities == 0 ? "No" : "Yes"]
" - dat += "Limbs: Adjust
" + dat += "Skin pattern: Adjust
" + dat += "
Handicaps
" + dat += "\t\[Set Disabilities\]
" + dat += "\tLimbs: Adjust
" //display limbs below var/ind = 0 @@ -463,22 +464,32 @@ datum/preferences user << browse(HTML, "window=mob_occupation;size=[width]x[height]") return + proc/ShowDisabilityState(mob/user,flag,label) + if(flag==DISABILITY_FLAG_FAT && species!="Human") + return "
  • [species] cannot be fat.
  • " + return "
  • [label]: [disabilities & flag ? "Yes" : "No"]
  • " + proc/SetDisabilities(mob/user) var/HTML = "" - HTML += "
    " - HTML += "Choose disabilities
    " - HTML += "Need Glasses? [disabilities & (1<<0) ? "Yes" : "No"]
    " - HTML += "Seizures? [disabilities & (1<<1) ? "Yes" : "No"]
    " - HTML += "Coughing? [disabilities & (1<<2) ? "Yes" : "No"]
    " - HTML += "Tourettes/Twitching? [disabilities & (1<<3) ? "Yes" : "No"]
    " - HTML += "Nervousness? [disabilities & (1<<4) ? "Yes" : "No"]
    " - HTML += "Deafness? [disabilities & (1<<5) ? "Yes" : "No"]
    " + // AUTOFIXED BY fix_string_idiocy.py + // C:\Users\Rob\Documents\Projects\vgstation13\code\modules\client\preferences.dm:474: HTML += "
    " + HTML += {"
    + Choose disabilities
      "} + // END AUTOFIX + HTML += ShowDisabilityState(user,DISABILITY_FLAG_NEARSIGHTED,"Needs Glasses") + HTML += ShowDisabilityState(user,DISABILITY_FLAG_FAT,"Obese") + HTML += ShowDisabilityState(user,DISABILITY_FLAG_EPILEPTIC,"Seizures") + HTML += ShowDisabilityState(user,DISABILITY_FLAG_DEAF,"Deaf") - HTML += "
      " - HTML += "\[Done\]" - HTML += "
    " + // AUTOFIXED BY fix_string_idiocy.py + // C:\Users\Rob\Documents\Projects\vgstation13\code\modules\client\preferences.dm:481: HTML += "" + HTML += {" + \[Done\] + \[Reset\] +
    "} + // END AUTOFIX user << browse(null, "window=preferences") user << browse(HTML, "window=disabil;size=350x300") return @@ -682,6 +693,24 @@ datum/preferences else SetChoices(user) return 1 + else if(href_list["preference"] == "disabilities") + + switch(href_list["task"]) + if("close") + user << browse(null, "window=disabil") + ShowChoices(user) + if("reset") + disabilities=0 + SetDisabilities(user) + if("input") + var/dflag=text2num(href_list["disability"]) + if(dflag >= 0) + if(!(dflag==DISABILITY_FLAG_FAT && species!="Human")) + disabilities ^= text2num(href_list["disability"]) //MAGIC + SetDisabilities(user) + else + SetDisabilities(user) + return 1 else if(href_list["preference"] == "skills") if(href_list["cancel"]) user << browse(null, "window=show_skills") @@ -988,15 +1017,6 @@ datum/preferences flavor_text = msg - if("disabilities") - if(text2num(href_list["disabilities"]) >= -1) - if(text2num(href_list["disabilities"]) >= 0) - disabilities ^= (1< underwear_m.len || underwear < 1) underwear = 1 //I'm sure this is 100% unnecessary, but I'm paranoid... sue me. character.underwear = underwear diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 6343b12e8ad..69a8508630d 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -77,6 +77,7 @@ BLIND // can't see anything slot_flags = SLOT_GLOVES attack_verb = list("challenged") var/pickpocket = 0 //Master pickpocket? + var/clipped = 0 species_restricted = list("exclude","Unathi","Tajaran") /obj/item/clothing/gloves/examine() diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm index f3cd86c3d5d..12d6c8aa417 100644 --- a/code/modules/clothing/under/jobs/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian.dm @@ -6,7 +6,7 @@ icon_state = "ba_suit" item_state = "ba_suit" _color = "ba_suit" - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/captain //Alright, technically not a 'civilian' but its better then giving a .dm file for a single define. @@ -15,7 +15,7 @@ icon_state = "captain" item_state = "caparmor" _color = "captain" - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/cargo @@ -24,6 +24,7 @@ icon_state = "qm" item_state = "lb_suit" _color = "qm" + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/cargotech @@ -32,7 +33,7 @@ icon_state = "cargotech" item_state = "lb_suit" _color = "cargo" - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/chaplain @@ -41,7 +42,7 @@ icon_state = "chaplain" item_state = "bl_suit" _color = "chapblack" - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/chef @@ -49,7 +50,7 @@ name = "chef's uniform" icon_state = "chef" _color = "chef" - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/clown @@ -58,7 +59,7 @@ icon_state = "clown" item_state = "clown" _color = "clown" - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/head_of_personnel @@ -67,7 +68,7 @@ icon_state = "hop" item_state = "b_suit" _color = "hop" - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/head_of_personnel_whimsy desc = "A blue jacket and red tie, with matching red cuffs! Snazzy. Wearing this makes you feel more important than your job title does." @@ -75,7 +76,7 @@ icon_state = "hopwhimsy" item_state = "hopwhimsy" _color = "hopwhimsy" - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/hydroponics @@ -85,7 +86,7 @@ item_state = "g_suit" _color = "hydroponics" permeability_coefficient = 0.50 - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/internalaffairs @@ -94,7 +95,7 @@ icon_state = "internalaffairs" item_state = "internalaffairs" _color = "internalaffairs" - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/janitor @@ -103,37 +104,41 @@ icon_state = "janitor" _color = "janitor" armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/lawyer desc = "Slick threads." name = "Lawyer suit" - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/lawyer/black icon_state = "lawyer_black" item_state = "lawyer_black" _color = "lawyer_black" + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/lawyer/female icon_state = "black_suit_fem" item_state = "black_suit_fem" _color = "black_suit_fem" + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/lawyer/red icon_state = "lawyer_red" item_state = "lawyer_red" _color = "lawyer_red" + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/lawyer/blue icon_state = "lawyer_blue" item_state = "lawyer_blue" _color = "lawyer_blue" + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/lawyer/bluesuit @@ -142,6 +147,7 @@ icon_state = "bluesuit" item_state = "bluesuit" _color = "bluesuit" + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/lawyer/purpsuit @@ -149,6 +155,7 @@ icon_state = "lawyer_purp" item_state = "lawyer_purp" _color = "lawyer_purp" + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/lawyer/oldman name = "Old Man's Suit" @@ -156,6 +163,7 @@ icon_state = "oldman" item_state = "oldman" _color = "oldman" + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/librarian @@ -164,6 +172,7 @@ icon_state = "red_suit" item_state = "red_suit" _color = "red_suit" + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/mime name = "mime's outfit" @@ -171,11 +180,12 @@ icon_state = "mime" item_state = "mime" _color = "mime" - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/miner desc = "It's a snappy jumpsuit with a sturdy set of overalls. It is very dirty." name = "shaft miner's jumpsuit" icon_state = "miner" item_state = "miner" - _color = "miner" \ No newline at end of file + _color = "miner" + flags = FPRINT | TABLEPASS | ONESIZEFITSALL \ No newline at end of file diff --git a/code/modules/clothing/under/jobs/engineering.dm b/code/modules/clothing/under/jobs/engineering.dm index fac888f31ca..9de181ea060 100644 --- a/code/modules/clothing/under/jobs/engineering.dm +++ b/code/modules/clothing/under/jobs/engineering.dm @@ -6,7 +6,7 @@ item_state = "g_suit" _color = "chief" armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10) - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/atmospheric_technician desc = "It's a jumpsuit worn by atmospheric technicians." @@ -14,7 +14,7 @@ icon_state = "atmos" item_state = "atmos_suit" _color = "atmos" - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/engineer desc = "It's an orange high visibility jumpsuit worn by engineers. It has minor radiation shielding." @@ -23,11 +23,12 @@ item_state = "engi_suit" _color = "engine" armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 10) - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/roboticist desc = "It's a slimming black with reinforced seams; great for industrial work." name = "roboticist's jumpsuit" icon_state = "robotics" item_state = "robotics" - _color = "robotics" \ No newline at end of file + _color = "robotics" + flags = FPRINT | TABLEPASS | ONESIZEFITSALL \ No newline at end of file diff --git a/code/modules/clothing/under/jobs/medsci.dm b/code/modules/clothing/under/jobs/medsci.dm index e525af666f9..a8efb153010 100644 --- a/code/modules/clothing/under/jobs/medsci.dm +++ b/code/modules/clothing/under/jobs/medsci.dm @@ -8,7 +8,7 @@ item_state = "g_suit" _color = "director" armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/scientist desc = "It's made of a special fiber that provides minor protection against biohazards. It has markings that denote the wearer as a scientist." @@ -18,7 +18,7 @@ _color = "toxinswhite" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0) - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/chemist @@ -29,6 +29,7 @@ _color = "chemistrywhite" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /* * Medical @@ -41,6 +42,7 @@ _color = "cmo" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/geneticist desc = "It's made of a special fiber that gives special protection against biohazards. It has a genetics rank stripe on it." @@ -50,7 +52,7 @@ _color = "geneticswhite" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/virologist desc = "It's made of a special fiber that gives special protection against biohazards. It has a virologist rank stripe on it." @@ -60,6 +62,7 @@ _color = "virologywhite" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/nursesuit desc = "It's a jumpsuit commonly worn by nursing staff in the medical department." @@ -69,6 +72,7 @@ _color = "nursesuit" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/nurse desc = "A dress commonly worn by the nursing staff in the medical department." @@ -78,6 +82,7 @@ _color = "nurse" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/orderly desc = "A white suit to be worn by orderly people who love orderly things." @@ -87,6 +92,7 @@ _color = "orderly" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/medical desc = "It's made of a special fiber that provides minor protection against biohazards. It has a cross on the chest denoting that the wearer is trained medical personnel." @@ -96,28 +102,28 @@ _color = "medical" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/medical/blue name = "medical scrubs" desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in baby blue." icon_state = "scrubsblue" _color = "scrubsblue" - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/medical/green name = "medical scrubs" desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in dark green." icon_state = "scrubsgreen" _color = "scrubsgreen" - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/medical/purple name = "medical scrubs" desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in deep purple." icon_state = "scrubspurple" _color = "scrubspurple" - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL @@ -133,6 +139,7 @@ _color = "genetics_new" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/chemist_new desc = "It's made of a special fiber which provides minor protection against biohazards." @@ -142,6 +149,7 @@ _color = "chemist_new" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/scientist_new desc = "Made of a special fiber that gives special protection against biohazards and small explosions." @@ -151,6 +159,7 @@ _color = "scientist_new" permeability_coefficient = 0.50 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0) + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/under/rank/virologist_new desc = "Made of a special fiber that gives increased protection against biohazards." @@ -159,4 +168,5 @@ item_state = "w_suit" _color = "virologist_new" permeability_coefficient = 0.50 - armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) \ No newline at end of file + armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0) + flags = FPRINT | TABLEPASS | ONESIZEFITSALL \ No newline at end of file diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index 33f3635a38e..81a18a24037 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -15,7 +15,7 @@ item_state = "r_suit" _color = "warden" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL siemens_coefficient = 0.9 /obj/item/clothing/under/rank/security @@ -25,7 +25,7 @@ item_state = "r_suit" _color = "secred" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL siemens_coefficient = 0.9 /obj/item/clothing/under/rank/dispatch @@ -35,7 +35,7 @@ item_state = "dispatch" _color = "dispatch" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL siemens_coefficient = 0.9 /obj/item/clothing/under/rank/security2 @@ -45,7 +45,7 @@ item_state = "r_suit" _color = "redshirt2" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL siemens_coefficient = 0.9 /obj/item/clothing/under/rank/security/corp @@ -68,7 +68,7 @@ item_state = "det" _color = "detective" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL siemens_coefficient = 0.9 @@ -90,7 +90,7 @@ item_state = "r_suit" _color = "hosred" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) - flags = FPRINT | TABLEPASS + flags = FPRINT | TABLEPASS | ONESIZEFITSALL siemens_coefficient = 0.8 /obj/item/clothing/under/rank/head_of_security/corp @@ -134,6 +134,7 @@ item_state = "jensen" _color = "jensen" siemens_coefficient = 0.6 + flags = FPRINT | TABLEPASS | ONESIZEFITSALL /obj/item/clothing/suit/armor/hos/jensen name = "armored trenchcoat" diff --git a/code/modules/customitems/definitions/N3X15.dm b/code/modules/customitems/definitions/N3X15.dm new file mode 100644 index 00000000000..6f0b5ad0538 --- /dev/null +++ b/code/modules/customitems/definitions/N3X15.dm @@ -0,0 +1,27 @@ +/** +* N3X15's Testing Shit +* +* Used to test this on /fail/station. Not used, so left out. A decent example though. +*/ + +/obj/item/clothing/suit/storage/labcoat/custom/N3X15 + icon = 'icons/mob/custom/N3X15/suits.dmi' + custom = 1 + +/obj/item/clothing/suit/storage/labcoat/custom/N3X15/robotics + name = "Robotics Research Labcoat" + desc = "A suit that protects against nothing, but looks fashionable. Well, apart from the crappy portrait drawn on the back with permanent marker." + base_icon_state = "labcoat_tox" + + + +/obj/item/clothing/under/custom/N3X15 + icon = 'icons/mob/custom/N3X15/suits.dmi' // Cheating. + custom = 1 + +/obj/item/clothing/under/custom/N3X15/robotics + desc = "It's slimming black with reinforced seams; great for industrial work." + name = "roboticist's jumpsuit" + icon_state = "robotics" + item_state = "robotics" + color = "robotics" \ No newline at end of file diff --git a/code/modules/customitems/definitions/base.dm b/code/modules/customitems/definitions/base.dm new file mode 100644 index 00000000000..75d11d07aab --- /dev/null +++ b/code/modules/customitems/definitions/base.dm @@ -0,0 +1,23 @@ +//////////////////////////////////////////////////////////////////////////////// +// ALL CUSTOM ITEMS MUST USE THEIR OWN DMI SO IT DOESN'T FUCK UP THE TREE. +// +// FOR FUCK'S SAKE, DO NOT ADD IN YOUR TERRIBLE FUCKING CUSTOM ITEMS TO BASE DMIS. +// +// GOOD IDEA: +// +// icons/ +// mob/ +// custom/ +// N3X15.dmi +// +// +// FUCKING NO: +// +// icons/ +// mob/ +// head.dmi +// +// *** IF I SEE THIS SORT OF SHIT IN THE TREE I WILL NOT ACCEPT YOUR PULL. *** +//////////////////////////////////////////////////////////////////////////////// + +/obj/item/var/custom=0 // Set to override DMI locations in creature overlays, etc. \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/humanoid/life.dm b/code/modules/mob/living/carbon/alien/humanoid/life.dm index c2e9eb786f0..7d2cc2ba2a2 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/life.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/life.dm @@ -267,12 +267,12 @@ if(prob(round((50 - nutrition) / 100))) src << "\blue You feel fit again!" mutations.Remove(FAT) -/* else + else if(nutrition > 500) if(prob(5 + round((nutrition - 200) / 2))) src << "\red You suddenly feel blubbery!" mutations.Add(FAT) - FUCK YOU FATCODE -Hawk */ + if (nutrition > 0) nutrition -= HUNGER_FACTOR diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm index c617d615f01..daf2722ff4c 100644 --- a/code/modules/mob/living/carbon/alien/larva/life.dm +++ b/code/modules/mob/living/carbon/alien/larva/life.dm @@ -186,12 +186,12 @@ if(prob(round((50 - nutrition) / 100))) src << "\blue You feel fit again!" mutations.Add(FAT) -/* else + else if(nutrition > 500) if(prob(5 + round((nutrition - max_grown) / 2))) src << "\red You suddenly feel blubbery!" mutations.Add(FAT) -FUCK YOU MORE FAT CODE -Hawk*/ + if (nutrition > 0) nutrition-= HUNGER_FACTOR diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 77b6b7d92b4..d30a62e0f84 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -174,8 +174,8 @@ if (disabilities & NERVOUS) if (prob(10)) stuttering = max(10, stuttering) - // No. -- cib - /*if (getBrainLoss() >= 60 && stat != 2) + + if (getBrainLoss() >= 60 && stat != 2) if (prob(3)) switch(pick(1,2,3)) if(1) @@ -184,7 +184,7 @@ say(pick("FUS RO DAH","fucking 4rries!", "stat me", ">my face", "roll it easy!", "waaaaaagh!!!", "red wonz go fasta", "FOR TEH EMPRAH", "lol2cat", "dem dwarfs man, dem dwarfs", "SPESS MAHREENS", "hwee did eet fhor khayosss", "lifelike texture ;_;", "luv can bloooom", "PACKETS!!!")) if(3) emote("drool") - */ + if(stat != 2) var/rn = rand(0, 200) @@ -883,24 +883,24 @@ else if (light_amount < 2) //heal in the dark heal_overall_damage(1,1) -/* //The fucking FAT mutation is the dumbest shit ever. It makes the code so difficult to work with - if(FAT in mutations) - if(overeatduration < 100) - src << "\blue You feel fit again!" - mutations.Remove(FAT) - update_mutantrace(0) - update_mutations(0) - update_inv_w_uniform(0) - update_inv_wear_suit() - else - if(overeatduration > 500) - src << "\red You suddenly feel blubbery!" - mutations.Add(FAT) - update_mutantrace(0) - update_mutations(0) - update_inv_w_uniform(0) - update_inv_wear_suit() -*/ + + if(species.flags & CAN_BE_FAT) + if(FAT in mutations) + if(overeatduration < 100) + src << "\blue You feel fit again!" + mutations.Remove(FAT) + update_mutantrace(0) + update_mutations(0) + update_inv_w_uniform(0) + update_inv_wear_suit() + else + if(overeatduration > 500) + src << "\red You suddenly feel blubbery!" + mutations.Add(FAT) + update_mutantrace(0) + update_mutations(0) + update_inv_w_uniform(0) + update_inv_wear_suit() // nutrition decrease if (nutrition > 0 && stat != 2) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 8ef6070debb..657e44d4c39 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -231,7 +231,7 @@ proc/get_damage_icon_part(damage_state, body_part) if(gender == FEMALE) g = "f" var/datum/organ/external/chest = get_organ("chest") - stand_icon = chest.get_icon(g) + stand_icon = chest.get_icon(g,fat) if(!skeleton) if(husk) stand_icon.ColorTone(husk_color_mod) @@ -248,7 +248,7 @@ proc/get_damage_icon_part(damage_state, body_part) if(!istype(part, /datum/organ/external/chest) && !(part.status & ORGAN_DESTROYED)) var/icon/temp if (istype(part, /datum/organ/external/groin) || istype(part, /datum/organ/external/head)) - temp = part.get_icon(g) + temp = part.get_icon(g,fat) else temp = part.get_icon() @@ -498,9 +498,21 @@ proc/get_damage_icon_part(damage_state, body_part) var/image/lying = image("icon_state" = "[t_color]_l") var/image/standing = image("icon_state" = "[t_color]_s") + if(FAT in mutations) + if(w_uniform.flags&ONESIZEFITSALL) + lying.icon = 'icons/mob/uniform_fat.dmi' + standing.icon = 'icons/mob/uniform_fat.dmi' + else + src << "\red You burst out of \the [w_uniform]!" + drop_from_inventory(w_uniform) + return + else + lying.icon = 'icons/mob/uniform.dmi' + standing.icon = 'icons/mob/uniform.dmi' - lying.icon = 'icons/mob/uniform.dmi' - standing.icon = 'icons/mob/uniform.dmi' + if(w_uniform.custom) + lying.icon = w_uniform.icon + standing.icon = w_uniform.icon if(w_uniform.blood_DNA) lying.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "uniformblood2") @@ -568,8 +580,11 @@ proc/get_damage_icon_part(damage_state, body_part) /mob/living/carbon/human/update_inv_glasses(var/update_icons=1) if(glasses) - overlays_lying[GLASSES_LAYER] = image("icon" = 'icons/mob/eyes.dmi', "icon_state" = "[glasses.icon_state]2") - overlays_standing[GLASSES_LAYER] = image("icon" = 'icons/mob/eyes.dmi', "icon_state" = "[glasses.icon_state]") + var/dmi='icons/mob/eyes.dmi' + if(glasses.custom) + dmi = glasses.icon + overlays_lying[GLASSES_LAYER] = image("icon" = dmi, "icon_state" = "[glasses.icon_state]2") + overlays_standing[GLASSES_LAYER] = image("icon" = dmi, "icon_state" = "[glasses.icon_state]") else overlays_lying[GLASSES_LAYER] = null overlays_standing[GLASSES_LAYER] = null @@ -577,8 +592,11 @@ proc/get_damage_icon_part(damage_state, body_part) /mob/living/carbon/human/update_inv_ears(var/update_icons=1) if(ears) - overlays_lying[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[ears.icon_state]2") - overlays_standing[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[ears.icon_state]") + var/dmi='icons/mob/ears.dmi' + if(ears.custom) + dmi = ears.icon + overlays_lying[EARS_LAYER] = image("icon" = dmi, "icon_state" = "[ears.icon_state]2") + overlays_standing[EARS_LAYER] = image("icon" = dmi, "icon_state" = "[ears.icon_state]") else overlays_lying[EARS_LAYER] = null overlays_standing[EARS_LAYER] = null @@ -586,8 +604,11 @@ proc/get_damage_icon_part(damage_state, body_part) /mob/living/carbon/human/update_inv_shoes(var/update_icons=1) if(shoes) - var/image/lying = image("icon" = 'icons/mob/feet.dmi', "icon_state" = "[shoes.icon_state]2") - var/image/standing = image("icon" = 'icons/mob/feet.dmi', "icon_state" = "[shoes.icon_state]") + var/dmi='icons/mob/feet.dmi' + if(shoes.custom) + dmi = shoes.icon + var/image/lying = image("icon" = dmi, "icon_state" = "[shoes.icon_state]2") + var/image/standing = image("icon" = dmi, "icon_state" = "[shoes.icon_state]") if(shoes.blood_DNA) lying.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "shoeblood2") standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "shoeblood") @@ -601,9 +622,13 @@ proc/get_damage_icon_part(damage_state, body_part) /mob/living/carbon/human/update_inv_s_store(var/update_icons=1) if(s_store) var/t_state = s_store.item_state - if(!t_state) t_state = s_store.icon_state - overlays_lying[SUIT_STORE_LAYER] = image("icon" = 'icons/mob/belt_mirror.dmi', "icon_state" = "[t_state]2") - overlays_standing[SUIT_STORE_LAYER] = image("icon" = 'icons/mob/belt_mirror.dmi', "icon_state" = "[t_state]") + if(!t_state) + t_state = s_store.icon_state + var/dmi='icons/mob/belt_mirror.dmi' + if(s_store.custom) + dmi = s_store.icon + overlays_lying[SUIT_STORE_LAYER] = image("icon" = dmi, "icon_state" = "[t_state]2") + overlays_standing[SUIT_STORE_LAYER] = image("icon" = dmi, "icon_state" = "[t_state]") s_store.screen_loc = ui_sstore1 //TODO else overlays_lying[SUIT_STORE_LAYER] = null @@ -620,8 +645,11 @@ proc/get_damage_icon_part(damage_state, body_part) lying = image("icon" = head:mob2) standing = image("icon" = head:mob) else - lying = image("icon" = 'icons/mob/head.dmi', "icon_state" = "[head.icon_state]2") - standing = image("icon" = 'icons/mob/head.dmi', "icon_state" = "[head.icon_state]") + var/dmi='icons/mob/head.dmi' + if(head.custom) + dmi = head.icon + lying = image("icon" = dmi, "icon_state" = "[head.icon_state]2") + standing = image("icon" = dmi, "icon_state" = "[head.icon_state]") if(head.blood_DNA) lying.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "helmetblood2") standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "helmetblood") @@ -636,9 +664,13 @@ proc/get_damage_icon_part(damage_state, body_part) if(belt) belt.screen_loc = ui_belt //TODO var/t_state = belt.item_state - if(!t_state) t_state = belt.icon_state - overlays_lying[BELT_LAYER] = image("icon" = 'icons/mob/belt.dmi', "icon_state" = "[t_state]2") - overlays_standing[BELT_LAYER] = image("icon" = 'icons/mob/belt.dmi', "icon_state" = "[t_state]") + if(!t_state) + t_state = belt.icon_state + var/dmi='icons/mob/belt.dmi' + if(belt.custom) + dmi = belt.icon + overlays_lying[BELT_LAYER] = image("icon" = dmi, "icon_state" = "[t_state]2") + overlays_standing[BELT_LAYER] = image("icon" = dmi, "icon_state" = "[t_state]") else overlays_lying[BELT_LAYER] = null overlays_standing[BELT_LAYER] = null @@ -648,8 +680,12 @@ proc/get_damage_icon_part(damage_state, body_part) /mob/living/carbon/human/update_inv_wear_suit(var/update_icons=1) if( wear_suit && istype(wear_suit, /obj/item/clothing/suit) ) //TODO check this wear_suit.screen_loc = ui_oclothing //TODO - var/image/lying = image("icon" = 'icons/mob/suit.dmi', "icon_state" = "[wear_suit.icon_state]2") - var/image/standing = image("icon" = 'icons/mob/suit.dmi', "icon_state" = "[wear_suit.icon_state]") + var/dmi='icons/mob/suit.dmi' + if(wear_suit.custom) + dmi = wear_suit.icon + + var/image/lying = image("icon" = dmi, "icon_state" = "[wear_suit.icon_state]2") + var/image/standing = image("icon" = dmi, "icon_state" = "[wear_suit.icon_state]") if( istype(wear_suit, /obj/item/clothing/suit/straight_jacket) ) drop_from_inventory(handcuffed) @@ -657,9 +693,21 @@ proc/get_damage_icon_part(damage_state, body_part) drop_r_hand() if(wear_suit.blood_DNA) - var/obj/item/clothing/suit/S = wear_suit - lying.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "[S.blood_overlay_type]blood2") - standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "[S.blood_overlay_type]blood") + var/t_state + if( istype(wear_suit, /obj/item/clothing/suit/armor/vest || /obj/item/clothing/suit/wcoat) ) + t_state = "armor" + else if( istype(wear_suit, /obj/item/clothing/suit/storage/det_suit || /obj/item/clothing/suit/storage/labcoat) ) + t_state = "coat" + else + t_state = "suit" + lying.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "[t_state]blood2") + standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "[t_state]blood") + + if(wear_suit.blood_DNA) + var/obj/item/clothing/suit/S = wear_suit + lying.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "[S.blood_overlay_type]blood2") + standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "[S.blood_overlay_type]blood") + overlays_lying[SUIT_LAYER] = lying overlays_standing[SUIT_LAYER] = standing @@ -683,8 +731,11 @@ proc/get_damage_icon_part(damage_state, body_part) /mob/living/carbon/human/update_inv_wear_mask(var/update_icons=1) if( wear_mask && ( istype(wear_mask, /obj/item/clothing/mask) || istype(wear_mask, /obj/item/clothing/tie) ) ) wear_mask.screen_loc = ui_mask //TODO - var/image/lying = image("icon" = 'icons/mob/mask.dmi', "icon_state" = "[wear_mask.icon_state]2") - var/image/standing = image("icon" = 'icons/mob/mask.dmi', "icon_state" = "[wear_mask.icon_state]") + var/dmi='icons/mob/mask.dmi' + if(wear_mask.custom) + dmi = wear_mask.icon + var/image/lying = image("icon" = dmi, "icon_state" = "[wear_mask.icon_state]2") + var/image/standing = image("icon" = dmi, "icon_state" = "[wear_mask.icon_state]") if( !istype(wear_mask, /obj/item/clothing/mask/cigarette) && wear_mask.blood_DNA ) lying.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "maskblood2") standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "maskblood") @@ -699,8 +750,11 @@ proc/get_damage_icon_part(damage_state, body_part) /mob/living/carbon/human/update_inv_back(var/update_icons=1) if(back) back.screen_loc = ui_back //TODO - overlays_lying[BACK_LAYER] = image("icon" = 'icons/mob/back.dmi', "icon_state" = "[back.icon_state]2") - overlays_standing[BACK_LAYER] = image("icon" = 'icons/mob/back.dmi', "icon_state" = "[back.icon_state]") + var/dmi='icons/mob/back.dmi' + if(back.custom) + dmi = back.icon + overlays_lying[BACK_LAYER] = image("icon" = dmi, "icon_state" = "[back.icon_state]2") + overlays_standing[BACK_LAYER] = image("icon" = dmi, "icon_state" = "[back.icon_state]") else overlays_lying[BACK_LAYER] = null overlays_standing[BACK_LAYER] = null @@ -745,8 +799,12 @@ proc/get_damage_icon_part(damage_state, body_part) if(r_hand) r_hand.screen_loc = ui_rhand //TODO var/t_state = r_hand.item_state - if(!t_state) t_state = r_hand.icon_state - overlays_standing[R_HAND_LAYER] = image("icon" = 'icons/mob/items_righthand.dmi', "icon_state" = "[t_state]") + if(!t_state) + t_state = r_hand.icon_state + var/dmi='icons/mob/items_righthand.dmi' + if(r_hand.custom) + dmi=r_hand.icon + overlays_standing[R_HAND_LAYER] = image("icon" = dmi, "icon_state" = "[t_state]") if (handcuffed) drop_r_hand() else overlays_standing[R_HAND_LAYER] = null @@ -757,8 +815,12 @@ proc/get_damage_icon_part(damage_state, body_part) if(l_hand) l_hand.screen_loc = ui_lhand //TODO var/t_state = l_hand.item_state - if(!t_state) t_state = l_hand.icon_state - overlays_standing[L_HAND_LAYER] = image("icon" = 'icons/mob/items_lefthand.dmi', "icon_state" = "[t_state]") + if(!t_state) + t_state = l_hand.icon_state + var/dmi='icons/mob/items_lefthand.dmi' + if(l_hand.custom) + dmi=l_hand.icon + overlays_standing[L_HAND_LAYER] = image("icon" = dmi, "icon_state" = "[t_state]") if (handcuffed) drop_l_hand() else overlays_standing[L_HAND_LAYER] = null diff --git a/code/modules/mob/living/carbon/species.dm b/code/modules/mob/living/carbon/species.dm index 788f3d2c0e0..1cabc617bf9 100644 --- a/code/modules/mob/living/carbon/species.dm +++ b/code/modules/mob/living/carbon/species.dm @@ -40,7 +40,7 @@ name = "Human" primitive = /mob/living/carbon/monkey - flags = HAS_SKIN_TONE | HAS_LIPS | HAS_UNDERWEAR + flags = HAS_SKIN_TONE | HAS_LIPS | HAS_UNDERWEAR | CAN_BE_FAT /datum/species/unathi name = "Unathi" diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 2cf09e364da..5181c5c22a3 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -381,10 +381,23 @@ new_character.dna.ready_dna(new_character) new_character.dna.b_type = client.prefs.b_type - if(client.prefs.disabilities) + if(client.prefs.disabilities & DISABILITY_FLAG_NEARSIGHTED) new_character.dna.struc_enzymes = setblock(new_character.dna.struc_enzymes,GLASSESBLOCK,toggledblock(getblock(new_character.dna.struc_enzymes,GLASSESBLOCK,3)),3) new_character.disabilities |= NEARSIGHTED + if(client.prefs.disabilities & DISABILITY_FLAG_FAT) + new_character.mutations += FAT + new_character.overeatduration = 600 // Max overeat + + if(client.prefs.disabilities & DISABILITY_FLAG_EPILEPTIC) + new_character.dna.struc_enzymes = setblock(new_character.dna.struc_enzymes,EPILEPSYBLOCK,toggledblock(getblock(new_character.dna.struc_enzymes,EPILEPSYBLOCK,3)),3) + new_character.disabilities |= EPILEPSY + + if(client.prefs.disabilities & DISABILITY_FLAG_DEAF) + new_character.dna.struc_enzymes = setblock(new_character.dna.struc_enzymes,DEAFBLOCK,toggledblock(getblock(new_character.dna.struc_enzymes,DEAFBLOCK,3)),3) + new_character.sdisabilities |= DEAF + + new_character.key = key //Manually transfer the key to log them in return new_character diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index 86ed744fcca..c188b372b2a 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -144,7 +144,10 @@ datum/preferences else icobase = 'icons/mob/human_races/r_human.dmi' - preview_icon = new /icon(icobase, "torso_[g]") + var/fat="" + if(disabilities&DISABILITY_FLAG_FAT && current_species.flags & CAN_BE_FAT) + fat="_fat" + preview_icon = new /icon(icobase, "torso_[g][fat]") preview_icon.Blend(new /icon(icobase, "groin_[g]"), ICON_OVERLAY) preview_icon.Blend(new /icon(icobase, "head_[g]"), ICON_OVERLAY) @@ -185,8 +188,11 @@ datum/preferences eyes_s.Blend(facial_s, ICON_OVERLAY) var/icon/clothes_s = null + var/uniform_dmi='icons/mob/uniform.dmi' + if(disabilities&DISABILITY_FLAG_FAT) + uniform_dmi='icons/mob/uniform_fat.dmi' if(job_civilian_low & ASSISTANT)//This gives the preview icon clothes depending on which job(if any) is set to 'high' - clothes_s = new /icon('icons/mob/uniform.dmi', "grey_s") + clothes_s = new /icon(uniform_dmi, "grey_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) if(backbag == 2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) @@ -196,7 +202,7 @@ datum/preferences else if(job_civilian_high)//I hate how this looks, but there's no reason to go through this switch if it's empty switch(job_civilian_high) if(HOP) - clothes_s = new /icon('icons/mob/uniform.dmi', "hop_s") + clothes_s = new /icon(uniform_dmi, "hop_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/suit.dmi', "armor"), ICON_OVERLAY) clothes_s.Blend(new /icon('icons/mob/head.dmi', "helmet"), ICON_OVERLAY) @@ -208,7 +214,7 @@ datum/preferences if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(BARTENDER) - clothes_s = new /icon('icons/mob/uniform.dmi', "ba_suit_s") + clothes_s = new /icon(uniform_dmi, "ba_suit_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/suit.dmi', "armor"), ICON_OVERLAY) switch(backbag) @@ -219,7 +225,7 @@ datum/preferences if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(BOTANIST) - clothes_s = new /icon('icons/mob/uniform.dmi', "hydroponics_s") + clothes_s = new /icon(uniform_dmi, "hydroponics_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/hands.dmi', "ggloves"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/suit.dmi', "apron"), ICON_OVERLAY) @@ -231,7 +237,7 @@ datum/preferences if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(CHEF) - clothes_s = new /icon('icons/mob/uniform.dmi', "chef_s") + clothes_s = new /icon(uniform_dmi, "chef_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/head.dmi', "chef"), ICON_OVERLAY) switch(backbag) @@ -242,7 +248,7 @@ datum/preferences if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(JANITOR) - clothes_s = new /icon('icons/mob/uniform.dmi', "janitor_s") + clothes_s = new /icon(uniform_dmi, "janitor_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) switch(backbag) if(2) @@ -252,7 +258,7 @@ datum/preferences if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(LIBRARIAN) - clothes_s = new /icon('icons/mob/uniform.dmi', "red_suit_s") + clothes_s = new /icon(uniform_dmi, "red_suit_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) switch(backbag) if(2) @@ -262,7 +268,7 @@ datum/preferences if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(QUARTERMASTER) - clothes_s = new /icon('icons/mob/uniform.dmi', "qm_s") + clothes_s = new /icon(uniform_dmi, "qm_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/eyes.dmi', "sun"), ICON_OVERLAY) @@ -275,7 +281,7 @@ datum/preferences if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(CARGOTECH) - clothes_s = new /icon('icons/mob/uniform.dmi', "cargotech_s") + clothes_s = new /icon(uniform_dmi, "cargotech_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY) switch(backbag) @@ -286,7 +292,7 @@ datum/preferences if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(MINER) - clothes_s = new /icon('icons/mob/uniform.dmi', "miner_s") + clothes_s = new /icon(uniform_dmi, "miner_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY) switch(backbag) @@ -297,7 +303,7 @@ datum/preferences if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(LAWYER) - clothes_s = new /icon('icons/mob/uniform.dmi', "internalaffairs_s") + clothes_s = new /icon(uniform_dmi, "internalaffairs_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/items_righthand.dmi', "briefcase"), ICON_UNDERLAY) @@ -309,7 +315,7 @@ datum/preferences if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(CHAPLAIN) - clothes_s = new /icon('icons/mob/uniform.dmi', "chapblack_s") + clothes_s = new /icon(uniform_dmi, "chapblack_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) switch(backbag) if(2) @@ -319,12 +325,12 @@ datum/preferences if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(CLOWN) - clothes_s = new /icon('icons/mob/uniform.dmi', "clown_s") + clothes_s = new /icon(uniform_dmi, "clown_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "clown"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/mask.dmi', "clown"), ICON_OVERLAY) clothes_s.Blend(new /icon('icons/mob/back.dmi', "clownpack"), ICON_OVERLAY) if(MIME) - clothes_s = new /icon('icons/mob/uniform.dmi', "mime_s") + clothes_s = new /icon(uniform_dmi, "mime_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/hands.dmi', "lgloves"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/mask.dmi', "mime"), ICON_OVERLAY) @@ -341,7 +347,7 @@ datum/preferences else if(job_medsci_high) switch(job_medsci_high) if(RD) - clothes_s = new /icon('icons/mob/uniform.dmi', "director_s") + clothes_s = new /icon(uniform_dmi, "director_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/items_righthand.dmi', "clipboard"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY) @@ -353,7 +359,7 @@ datum/preferences if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(SCIENTIST) - clothes_s = new /icon('icons/mob/uniform.dmi', "toxinswhite_s") + clothes_s = new /icon(uniform_dmi, "toxinswhite_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_tox_open"), ICON_OVERLAY) switch(backbag) @@ -364,7 +370,7 @@ datum/preferences if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(CHEMIST) - clothes_s = new /icon('icons/mob/uniform.dmi', "chemistrywhite_s") + clothes_s = new /icon(uniform_dmi, "chemistrywhite_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_chem_open"), ICON_OVERLAY) switch(backbag) @@ -375,7 +381,7 @@ datum/preferences if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(CMO) - clothes_s = new /icon('icons/mob/uniform.dmi', "cmo_s") + clothes_s = new /icon(uniform_dmi, "cmo_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/items_lefthand.dmi', "firstaid"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_cmo_open"), ICON_OVERLAY) @@ -387,7 +393,7 @@ datum/preferences if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(DOCTOR) - clothes_s = new /icon('icons/mob/uniform.dmi', "medical_s") + clothes_s = new /icon(uniform_dmi, "medical_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/items_lefthand.dmi', "firstaid"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_open"), ICON_OVERLAY) @@ -399,7 +405,7 @@ datum/preferences if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(GENETICIST) - clothes_s = new /icon('icons/mob/uniform.dmi', "geneticswhite_s") + clothes_s = new /icon(uniform_dmi, "geneticswhite_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_gen_open"), ICON_OVERLAY) switch(backbag) @@ -410,7 +416,7 @@ datum/preferences if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(VIROLOGIST) - clothes_s = new /icon('icons/mob/uniform.dmi', "virologywhite_s") + clothes_s = new /icon(uniform_dmi, "virologywhite_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "white"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/mask.dmi', "sterile"), ICON_OVERLAY) clothes_s.Blend(new /icon('icons/mob/suit.dmi', "labcoat_vir_open"), ICON_OVERLAY) @@ -422,7 +428,7 @@ datum/preferences if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(ROBOTICIST) - clothes_s = new /icon('icons/mob/uniform.dmi', "robotics_s") + clothes_s = new /icon(uniform_dmi, "robotics_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/items_righthand.dmi', "toolbox_blue"), ICON_OVERLAY) @@ -438,7 +444,7 @@ datum/preferences else if(job_engsec_high) switch(job_engsec_high) if(CAPTAIN) - clothes_s = new /icon('icons/mob/uniform.dmi', "captain_s") + clothes_s = new /icon(uniform_dmi, "captain_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/head.dmi', "captain"), ICON_OVERLAY) clothes_s.Blend(new /icon('icons/mob/mask.dmi', "cigaron"), ICON_OVERLAY) @@ -452,7 +458,7 @@ datum/preferences if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(HOS) - clothes_s = new /icon('icons/mob/uniform.dmi', "hosred_s") + clothes_s = new /icon(uniform_dmi, "hosred_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/head.dmi', "helmet"), ICON_OVERLAY) @@ -465,7 +471,7 @@ datum/preferences if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(WARDEN) - clothes_s = new /icon('icons/mob/uniform.dmi', "warden_s") + clothes_s = new /icon(uniform_dmi, "warden_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/head.dmi', "helmet"), ICON_OVERLAY) @@ -478,7 +484,7 @@ datum/preferences if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(DETECTIVE) - clothes_s = new /icon('icons/mob/uniform.dmi', "detective_s") + clothes_s = new /icon(uniform_dmi, "detective_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/mask.dmi', "cigaron"), ICON_OVERLAY) @@ -492,7 +498,7 @@ datum/preferences if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(OFFICER) - clothes_s = new /icon('icons/mob/uniform.dmi', "secred_s") + clothes_s = new /icon(uniform_dmi, "secred_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "jackboots"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/head.dmi', "helmet"), ICON_OVERLAY) clothes_s.Blend(new /icon('icons/mob/suit.dmi', "armor"), ICON_OVERLAY) @@ -504,7 +510,7 @@ datum/preferences if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(CHIEF) - clothes_s = new /icon('icons/mob/uniform.dmi', "chief_s") + clothes_s = new /icon(uniform_dmi, "chief_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "brown"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY) @@ -518,7 +524,7 @@ datum/preferences if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(ENGINEER) - clothes_s = new /icon('icons/mob/uniform.dmi', "engine_s") + clothes_s = new /icon(uniform_dmi, "engine_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "orange"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY) clothes_s.Blend(new /icon('icons/mob/head.dmi', "hardhat0_yellow"), ICON_OVERLAY) @@ -530,7 +536,7 @@ datum/preferences if(4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(ATMOSTECH) - clothes_s = new /icon('icons/mob/uniform.dmi', "atmos_s") + clothes_s = new /icon(uniform_dmi, "atmos_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/hands.dmi', "bgloves"), ICON_UNDERLAY) clothes_s.Blend(new /icon('icons/mob/belt.dmi', "utility"), ICON_OVERLAY) @@ -543,14 +549,14 @@ datum/preferences clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(AI)//Gives AI and borgs assistant-wear, so they can still customize their character - clothes_s = new /icon('icons/mob/uniform.dmi', "grey_s") + clothes_s = new /icon(uniform_dmi, "grey_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) if(backbag == 2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) else if(backbag == 3 || backbag == 4) clothes_s.Blend(new /icon('icons/mob/back.dmi', "satchel"), ICON_OVERLAY) if(CYBORG) - clothes_s = new /icon('icons/mob/uniform.dmi', "grey_s") + clothes_s = new /icon(uniform_dmi, "grey_s") clothes_s.Blend(new /icon('icons/mob/feet.dmi', "black"), ICON_UNDERLAY) if(backbag == 2) clothes_s.Blend(new /icon('icons/mob/back.dmi', "backpack"), ICON_OVERLAY) diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 492da3aa1f8..fc9b3aff6b0 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -44,6 +44,7 @@ // how often wounds should be updated, a higher number means less often var/wound_update_accuracy = 1 + var/has_fat=0 // Has a _fat variant /datum/organ/external/New(var/datum/organ/external/P) if(P) @@ -588,11 +589,19 @@ return 1 return 0 -/datum/organ/external/get_icon(gender="") +/datum/organ/external/get_icon(gender="",isFat=0) + //stand_icon = new /icon(icobase, "torso_[g][fat?"_fat":""]") + if(gender) + gender="_[gender]" + var/fat="" + if(isFat && has_fat) + fat="_fat" + var/icon_state="[icon_name][gender][fat]" + //testing("[src].get_icon('[gender]', '[fat]') = /icon([owner.race_icon], [icon_state])") if (status & ORGAN_MUTATED) - return new /icon(owner.deform_icon, "[icon_name][gender ? "_[gender]" : ""]") + return new /icon(owner.deform_icon, icon_state) else - return new /icon(owner.race_icon, "[icon_name][gender ? "_[gender]" : ""]") + return new /icon(owner.race_icon, icon_state) /datum/organ/external/proc/is_usable() @@ -609,6 +618,7 @@ max_damage = 75 min_broken_damage = 55 body_part = UPPER_TORSO + has_fat=1 /datum/organ/external/groin diff --git a/code/setup.dm b/code/setup.dm index 9b11e9a9cf0..a482123178a 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -71,7 +71,7 @@ #define DOOR_CRUSH_DAMAGE 10 // Factor of how fast mob nutrition decreases -#define HUNGER_FACTOR 0.05 +#define HUNGER_FACTOR 0.15 // How many units of reagent are consumed per tick, by default. #define REAGENTS_METABOLISM 0.2 @@ -306,6 +306,12 @@ var/MAX_EXPLOSION_RANGE = 14 #define STRUCDNASIZE 27 #define UNIDNASIZE 13 +// Used in preferences. +#define DISABILITY_FLAG_NEARSIGHTED 1 +#define DISABILITY_FLAG_FAT 2 +#define DISABILITY_FLAG_EPILEPTIC 4 +#define DISABILITY_FLAG_DEAF 8 + // Generic mutations: #define TK 1 #define COLD_RESISTANCE 2 @@ -719,6 +725,7 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse #define HAS_UNDERWEAR 1024 #define HAS_TAIL 2048 #define IS_PLANT 4096 +#define CAN_BE_FAT 8192 //Language flags. #define WHITELISTED 1 // Language is available if the speaker is whitelisted.