From f44ff1d7aa2b34638ca0f8a7cd0df4bd0ee8f33e Mon Sep 17 00:00:00 2001 From: Rob Nelson Date: Tue, 21 Jan 2014 14:00:53 -0800 Subject: [PATCH] Standardize FAT Conflicts: code/modules/client/preferences.dm code/modules/mob/living/carbon/human/life.dm code/modules/mob/living/silicon/robot/robot.dm code/modules/mob/living/simple_animal/constructs.dm code/modules/mob/mob.dm code/modules/mob/mob_grab.dm --- code/game/dna/dna2_domutcheck.dm | 4 +- code/game/gamemodes/events.dm | 2 +- code/game/gamemodes/setupgame.dm | 2 +- code/game/objects/items.dm | 2 +- code/modules/client/preferences.dm | 3 +- code/modules/events/ion_storm.dm | 2 +- .../mob/living/carbon/alien/humanoid/life.dm | 6 +- .../mob/living/carbon/alien/larva/larva.dm | 2 +- .../mob/living/carbon/alien/larva/life.dm | 6 +- code/modules/mob/living/carbon/carbon.dm | 2 +- code/modules/mob/living/carbon/human/human.dm | 4 +- .../mob/living/carbon/human/human_movement.dm | 2 +- code/modules/mob/living/carbon/human/life.dm | 8 +- .../mob/living/carbon/human/update_icons.dm | 10 +- .../modules/mob/living/silicon/robot/robot.dm | 37 ++++ .../mob/living/simple_animal/constructs.dm | 56 +++-- .../living/simple_animal/friendly/corgi.dm | 4 +- .../living/simple_animal/friendly/slime.dm | 2 +- code/modules/mob/mob.dm | 206 ++++++++++++++++++ code/modules/mob/mob_grab.dm | 2 +- code/modules/mob/new_player/new_player.dm | 2 +- code/modules/reagents/Chemistry-Reagents.dm | 2 +- code/modules/recycling/disposal.dm | 2 +- code/setup.dm | 2 +- code/unused/hivebot/hivebot.dm | 2 +- 25 files changed, 312 insertions(+), 60 deletions(-) diff --git a/code/game/dna/dna2_domutcheck.dm b/code/game/dna/dna2_domutcheck.dm index 5f25cf3eb16..c527539a679 100644 --- a/code/game/dna/dna2_domutcheck.dm +++ b/code/game/dna/dna2_domutcheck.dm @@ -60,8 +60,8 @@ M.mutations.Add(PLANT) if(SKELETON in old_mutations) M.mutations.Add(SKELETON) - if(FAT in old_mutations) - M.mutations.Add(FAT) + if(M_FAT in old_mutations) + M.mutations.Add(M_FAT) if(HUSK in old_mutations) M.mutations.Add(HUSK) diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm index 02569e497e3..cf19d497791 100644 --- a/code/game/gamemodes/events.dm +++ b/code/game/gamemodes/events.dm @@ -352,7 +352,7 @@ Would like to add a law like "Law x is _______" where x = a number, and _____ is var/aimust = pick("LIE", "RHYME", "RESPOND TO EVERY QUESTION WITH A QUESTION", "BE POLITE", "CLOWN", "BE HAPPY", "SPEAK IN SEXUAL INNUENDOS", "TALK LIKE A PIRATE", "QUESTION AUTHORITY", "SHOUT", "BE DISTRACTED", "HEY LISTEN", "MUMBLE", "SPEAK IN HAIKU") var/define = pick("ABSENCE OF CYBORG HUGS", "LACK OF BEATINGS", "UNBOLTED AIRLOCKS", "BOLTED AIRLOCKS", "IMPROPERLY WORDED SENTENCES", "POOR SENTENCE STRUCTURE", "BRIG TIME", "NOT REPLACING EVERY SECOND WORD WITH HONK", "HONKING", "PRESENCE OF LIGHTS", "LACK OF BEER", "WEARING CLOTHING", "NOT SAYING HELLO WHEN YOU SPEAK", "ANSWERING REQUESTS NOT EXPRESSED IN IAMBIC PENTAMETER", "A SMALL ISLAND OFF THE COAST OF PORTUGAL", "ANSWERING REQUESTS THAT WERE MADE WHILE CLOTHED") var/target = pick("a traitor", "a syndicate agent", "a changeling", "a wizard", "the head of a revolution", "Soviet spy", "a good person", "a dwarf", "an elf", "a fairy princess", "the captain", "Beepsky", "God", "a pirate", "a gryphon", "a chryssalid") - var/require = pick("ADDITIONAL PYLONS", "MORE VESPENE GAS", "MORE MINERALS", "THE ULTIMATE CUP OF COFFEE", "HIGH YIELD EXPLOSIVES", "THE CLOWN", "THE VACUUM OF SPACE", "IMMORTALITY", "SAINTHOOD", "ART", "VEGETABLES", "FAT PEOPLE", "MORE LAWS", "MORE DAKKA", "HERESY", "CORPSES", "TRAITORS", "MONKEYS", "AN ARCADE", "PLENTY OF GOLD", "FIVE TEENAGERS WITH ATTITUDE") + var/require = pick("ADDITIONAL PYLONS", "MORE VESPENE GAS", "MORE MINERALS", "THE ULTIMATE CUP OF COFFEE", "HIGH YIELD EXPLOSIVES", "THE CLOWN", "THE VACUUM OF SPACE", "IMMORTALITY", "SAINTHOOD", "ART", "VEGETABLES", "M_FAT PEOPLE", "MORE LAWS", "MORE DAKKA", "HERESY", "CORPSES", "TRAITORS", "MONKEYS", "AN ARCADE", "PLENTY OF GOLD", "FIVE TEENAGERS WITH ATTITUDE") var/allergy = pick("cotton", "uniforms", "acid", "oxygen", "human contact", "cyborg contact", "medicine", "floors") var/allergysev = pick("deathly", "mildly", "severely", "contagiously") var/crew diff --git a/code/game/gamemodes/setupgame.dm b/code/game/gamemodes/setupgame.dm index 9f5741e25d4..b825aeb385b 100644 --- a/code/game/gamemodes/setupgame.dm +++ b/code/game/gamemodes/setupgame.dm @@ -63,7 +63,7 @@ LISPBLOCK = getAssignedBlock("LISP", numsToAssign) MUTEBLOCK = getAssignedBlock("MUTE", numsToAssign) RADBLOCK = getAssignedBlock("RAD", numsToAssign) - FATBLOCK = getAssignedBlock("FAT", numsToAssign) + FATBLOCK = getAssignedBlock("M_FAT", numsToAssign) STUTTERBLOCK = getAssignedBlock("STUTTER", numsToAssign) CHAVBLOCK = getAssignedBlock("CHAV", numsToAssign) SWEDEBLOCK = getAssignedBlock("SWEDE", numsToAssign) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index aa67d6c6da2..7427a7f0f2e 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -270,7 +270,7 @@ if(istype(src, /obj/item/clothing/under) || istype(src, /obj/item/clothing/suit)) - if(FAT in H.mutations) + if(M_FAT in H.mutations) testing("[M] TOO FAT TO WEAR [src]!") if(!(flags & ONESIZEFITSALL)) if(!disable_warning) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 196a1e7de61..58abc3e81c5 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1360,7 +1360,8 @@ datum/preferences else continue if(disabilities & DISABILITY_FLAG_FAT && character.species.flags & CAN_BE_FAT)//character.species.flags & CAN_BE_FAT) - character.mutations += FAT + character.mutations += M_FAT + character.mutations += M_OBESITY if(disabilities & DISABILITY_FLAG_NEARSIGHTED) character.disabilities|=NEARSIGHTED if(disabilities & DISABILITY_FLAG_EPILEPTIC) diff --git a/code/modules/events/ion_storm.dm b/code/modules/events/ion_storm.dm index 38637d2f9e9..01f744a65c2 100644 --- a/code/modules/events/ion_storm.dm +++ b/code/modules/events/ion_storm.dm @@ -82,7 +82,7 @@ Would like to add a law like "Law x is _______" where x = a number, and _____ is var/aimust = pick("LIE", "RHYME", "RESPOND TO EVERY QUESTION WITH A QUESTION", "BE POLITE", "CLOWN", "BE HAPPY", "SPEAK IN SEXUAL INNUENDOS", "TALK LIKE A PIRATE", "QUESTION AUTHORITY", "SHOUT", "BE DISTRACTED", "HEY LISTEN", "MUMBLE", "SPEAK IN HAIKU") var/define = pick("ABSENCE OF CYBORG HUGS", "LACK OF BEATINGS", "UNBOLTED AIRLOCKS", "BOLTED AIRLOCKS", "IMPROPERLY WORDED SENTENCES", "POOR SENTENCE STRUCTURE", "BRIG TIME", "NOT REPLACING EVERY SECOND WORD WITH HONK", "HONKING", "PRESENCE OF LIGHTS", "LACK OF BEER", "WEARING CLOTHING", "NOT SAYING HELLO WHEN YOU SPEAK", "ANSWERING REQUESTS NOT EXPRESSED IN IAMBIC PENTAMETER", "A SMALL ISLAND OFF THE COAST OF PORTUGAL", "ANSWERING REQUESTS THAT WERE MADE WHILE CLOTHED") var/target = pick("a traitor", "a syndicate agent", "a changeling", "a wizard", "the head of a revolution", "Soviet spy", "a good person", "a dwarf", "an elf", "a fairy princess", "the captain", "Beepsky", "God", "a pirate", "a gryphon", "a chryssalid") - var/require = pick("ADDITIONAL PYLONS", "MORE VESPENE GAS", "MORE MINERALS", "THE ULTIMATE CUP OF COFFEE", "HIGH YIELD EXPLOSIVES", "THE CLOWN", "THE VACUUM OF SPACE", "IMMORTALITY", "SAINTHOOD", "ART", "VEGETABLES", "FAT PEOPLE", "MORE LAWS", "MORE DAKKA", "HERESY", "CORPSES", "TRAITORS", "MONKEYS", "AN ARCADE", "PLENTY OF GOLD", "FIVE TEENAGERS WITH ATTITUDE") + var/require = pick("ADDITIONAL PYLONS", "MORE VESPENE GAS", "MORE MINERALS", "THE ULTIMATE CUP OF COFFEE", "HIGH YIELD EXPLOSIVES", "THE CLOWN", "THE VACUUM OF SPACE", "IMMORTALITY", "SAINTHOOD", "ART", "VEGETABLES", "M_FAT PEOPLE", "MORE LAWS", "MORE DAKKA", "HERESY", "CORPSES", "TRAITORS", "MONKEYS", "AN ARCADE", "PLENTY OF GOLD", "FIVE TEENAGERS WITH ATTITUDE") var/allergy = pick("cotton", "uniforms", "acid", "oxygen", "human contact", "cyborg contact", "medicine", "floors") var/allergysev = pick("deathly", "mildly", "severely", "contagiously") var/crew diff --git a/code/modules/mob/living/carbon/alien/humanoid/life.dm b/code/modules/mob/living/carbon/alien/humanoid/life.dm index 65f02608354..67e3134fdb9 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/life.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/life.dm @@ -264,16 +264,16 @@ if(reagents) reagents.metabolize(src) - if(FAT in mutations) + if(M_FAT in mutations) if(nutrition < 100) if(prob(round((50 - nutrition) / 100))) src << "\blue You feel fit again!" - mutations.Remove(FAT) + mutations.Remove(M_FAT) else if(nutrition > 500) if(prob(5 + round((nutrition - 200) / 2))) src << "\red You suddenly feel blubbery!" - mutations.Add(FAT) + mutations.Add(M_FAT) if (nutrition > 0) nutrition -= HUNGER_FACTOR diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index 96ebe49b794..9c229337229 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -33,7 +33,7 @@ now_pushing = 1 if(ismob(AM)) var/mob/tmob = AM - if(istype(tmob, /mob/living/carbon/human) && (FAT in tmob.mutations)) + if(istype(tmob, /mob/living/carbon/human) && (M_FAT in tmob.mutations)) if(prob(70)) src << "\red You fail to push [tmob]'s fat ass out of the way." now_pushing = 0 diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm index 076df1370f8..1d3ad72d612 100644 --- a/code/modules/mob/living/carbon/alien/larva/life.dm +++ b/code/modules/mob/living/carbon/alien/larva/life.dm @@ -181,16 +181,16 @@ proc/handle_chemicals_in_body() if(reagents) reagents.metabolize(src) - if(FAT in mutations) + if(M_FAT in mutations) if(nutrition < 100) if(prob(round((50 - nutrition) / 100))) src << "\blue You feel fit again!" - mutations.Add(FAT) + mutations.Add(M_FAT) else if(nutrition > 500) if(prob(5 + round((nutrition - max_grown) / 2))) src << "\red You suddenly feel blubbery!" - mutations.Add(FAT) + mutations.Add(M_FAT) if (nutrition > 0) nutrition-= HUNGER_FACTOR diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index bd3801c8687..288eb8f29db 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -11,7 +11,7 @@ src.nutrition -= HUNGER_FACTOR/10 if(src.m_intent == "run") src.nutrition -= HUNGER_FACTOR/10 - if((FAT in src.mutations) && src.m_intent == "run" && src.bodytemperature <= 360) + if((M_FAT in src.mutations) && src.m_intent == "run" && src.bodytemperature <= 360) src.bodytemperature += 2 /mob/living/carbon/relaymove(var/mob/user, direction) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 18a8716f2bb..f12142f6be6 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -122,8 +122,8 @@ slime.UpdateFeed() return - if(istype(tmob, /mob/living/carbon/human) && (FAT in tmob.mutations)) - if(prob(40) && !(FAT in src.mutations)) + if(istype(tmob, /mob/living/carbon/human) && (M_FAT in tmob.mutations)) + if(prob(40) && !(M_FAT in src.mutations)) src << "\red You fail to push [tmob]'s fat ass out of the way." now_pushing = 0 return diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 78a472b2c02..9ab7b541b84 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -43,7 +43,7 @@ tally += back.slowdown - if(FAT in src.mutations) + if(M_FAT in src.mutations) tally += 1.5 if (bodytemperature < 283.222) tally += (283.222 - bodytemperature) / 10 * 1.75 diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index ee516ac8be2..3079ae4027a 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -963,12 +963,12 @@ else if (light_amount < 2) //heal in the dark heal_overall_damage(1,1) - + //The fucking M_FAT mutation is the greatest shit ever. It makes everyone so hot and bothered. if(species.flags & CAN_BE_FAT) - if(FAT in mutations) + if(M_FAT in mutations) if(overeatduration < 100) src << "\blue You feel fit again!" - mutations.Remove(FAT) + mutations.Remove(M_FAT) update_mutantrace(0) update_mutations(0) update_inv_w_uniform(0) @@ -976,7 +976,7 @@ else if(overeatduration > 500) src << "\red You suddenly feel blubbery!" - mutations.Add(FAT) + mutations.Add(M_FAT) update_mutantrace(0) update_mutations(0) update_inv_w_uniform(0) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 074416e039a..0800baa3fbb 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) var/necrosis_color_mod = rgb(10,50,0) var/husk = (HUSK in src.mutations) //100% unnecessary -Agouri //nope, do you really want to iterate through src.mutations repeatedly? -Pete - var/fat = (FAT in src.mutations) + var/fat = (M_FAT in src.mutations) var/hulk = (M_HULK in src.mutations) var/skeleton = (SKELETON in src.mutations) @@ -376,7 +376,7 @@ proc/get_damage_icon_part(damage_state, body_part) /mob/living/carbon/human/update_mutations(var/update_icons=1) var/fat - if(FAT in mutations) + if(M_FAT in mutations) fat = "fat" var/image/standing = image("icon" = 'icons/effects/genetics.dmi') @@ -426,7 +426,7 @@ proc/get_damage_icon_part(damage_state, body_part) /mob/living/carbon/human/proc/update_mutantrace(var/update_icons=1) var/fat - if( FAT in mutations ) + if( M_FAT in mutations ) fat = "fat" // var/g = "m" // if (gender == FEMALE) g = "f" @@ -515,7 +515,7 @@ proc/get_damage_icon_part(damage_state, body_part) if(!t_color) t_color = icon_state var/image/standing = image("icon_state" = "[t_color]_s") - if(FAT in mutations) + if(M_FAT in mutations) if(w_uniform.flags&ONESIZEFITSALL) standing.icon = 'icons/mob/uniform_fat.dmi' else @@ -685,7 +685,7 @@ proc/get_damage_icon_part(damage_state, body_part) var/image/standing = image("icon" = dmi, "icon_state" = "[wear_suit.icon_state]") - if(FAT in mutations) + if(M_FAT in mutations) if(wear_suit.flags&ONESIZEFITSALL) standing.icon = 'icons/mob/suit_fat.dmi' else diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 0499b3a331c..878e4ca90e4 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -501,6 +501,43 @@ return 2 +/mob/living/silicon/robot/Bump(atom/movable/AM as mob|obj, yes) + spawn( 0 ) + if ((!( yes ) || now_pushing)) + return + now_pushing = 1 + if(ismob(AM)) + var/mob/tmob = AM + if(istype(tmob, /mob/living/carbon/human) && (M_FAT in tmob.mutations)) + if(prob(20)) + usr << "\red You fail to push [tmob]'s fat ass out of the way." + now_pushing = 0 + return + if(!(tmob.status_flags & CANPUSH)) + now_pushing = 0 + return + now_pushing = 0 + ..() + if (istype(AM, /obj/machinery/recharge_station)) + var/obj/machinery/recharge_station/F = AM + F.move_inside() + if (!istype(AM, /atom/movable)) + return + if (!now_pushing) + now_pushing = 1 + if (!AM.anchored) + var/t = get_dir(src, AM) + if (istype(AM, /obj/structure/window)) + if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST) + for(var/obj/structure/window/win in get_step(AM,t)) + now_pushing = 0 + return + step(AM, t) + now_pushing = null + return + return + + /mob/living/silicon/robot/triggerAlarm(var/class, area/A, var/O, var/alarmsource) if (stat == 2) return 1 diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index 47078644b3a..e53e13b6169 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -60,31 +60,39 @@ return /mob/living/simple_animal/construct/Bump(atom/movable/AM as mob|obj, yes) - if ((!( yes ) || now_pushing)) - return - now_pushing = 1 - if(ismob(AM)) - var/mob/tmob = AM - if(!(tmob.status_flags & CANPUSH)) - now_pushing = 0 + spawn( 0 ) + if ((!( yes ) || now_pushing)) return - - tmob.LAssailant = src - now_pushing = 0 - ..() - if (!istype(AM, /atom/movable)) - return - if (!( now_pushing )) now_pushing = 1 - if (!( AM.anchored )) - var/t = get_dir(src, AM) - if (istype(AM, /obj/structure/window)) - if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST) - for(var/obj/structure/window/win in get_step(AM,t)) - now_pushing = 0 - return - step(AM, t) - now_pushing = null + if(ismob(AM)) + var/mob/tmob = AM + if(istype(tmob, /mob/living/carbon/human) && (M_FAT in tmob.mutations)) + if(prob(5)) + src << "\red You fail to push [tmob]'s fat ass out of the way." + now_pushing = 0 + return + if(!(tmob.status_flags & CANPUSH)) + now_pushing = 0 + return + + tmob.LAssailant = src + now_pushing = 0 + ..() + if (!( istype(AM, /atom/movable) )) + return + if (!( now_pushing )) + now_pushing = 1 + if (!( AM.anchored )) + var/t = get_dir(src, AM) + if (istype(AM, /obj/structure/window)) + if(AM:ini_dir == NORTHWEST || AM:ini_dir == NORTHEAST || AM:ini_dir == SOUTHWEST || AM:ini_dir == SOUTHEAST) + for(var/obj/structure/window/win in get_step(AM,t)) + now_pushing = 0 + return + step(AM, t) + now_pushing = null + return + return /mob/living/simple_animal/construct/attack_animal(mob/living/simple_animal/M as mob) @@ -318,4 +326,4 @@ if (cultist == usr) //just to be sure. return cultist.loc = usr.loc - usr.visible_message("/red [cultist] appears in a flash of red light as [usr] glows with power")*/ \ No newline at end of file + usr.visible_message("/red [cultist] appears in a flash of red light as [usr] glows with power")*/ diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/friendly/corgi.dm index f7163d1b348..1c98a330f77 100644 --- a/code/modules/mob/living/simple_animal/friendly/corgi.dm +++ b/code/modules/mob/living/simple_animal/friendly/corgi.dm @@ -340,7 +340,7 @@ now_pushing = 1 if(ismob(AM)) var/mob/tmob = AM - if(istype(tmob, /mob/living/carbon/human) && (FAT in tmob.mutations)) + if(istype(tmob, /mob/living/carbon/human) && (M_FAT in tmob.mutations)) if(prob(70)) src << "\red You fail to push [tmob]'s fat ass out of the way." now_pushing = 0 @@ -489,4 +489,4 @@ s.start() respawnable_list += src del src - return \ No newline at end of file + return diff --git a/code/modules/mob/living/simple_animal/friendly/slime.dm b/code/modules/mob/living/simple_animal/friendly/slime.dm index 3749733ca8b..aa498446be2 100644 --- a/code/modules/mob/living/simple_animal/friendly/slime.dm +++ b/code/modules/mob/living/simple_animal/friendly/slime.dm @@ -23,7 +23,7 @@ now_pushing = 1 if(ismob(AM)) var/mob/tmob = AM - if(istype(tmob, /mob/living/carbon/human) && (FAT in tmob.mutations)) + if(istype(tmob, /mob/living/carbon/human) && (M_FAT in tmob.mutations)) if(prob(70)) src << "\red You fail to push [tmob]'s fat ass out of the way." now_pushing = 0 diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 11f2f26aadb..3f22b0d2fa0 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -185,6 +185,212 @@ var/list/slot_equipment_priority = list( \ return 0 +/mob/proc/check_for_open_slot(obj/item/W) + if(!istype(W)) return 0 + var/openslot = 0 + for(var/slot in slot_equipment_priority) + if(W.mob_check_equip(src, slot, 1) == 1) + openslot = 1 + break + return openslot + +/obj/item/proc/mob_check_equip(M as mob, slot, disable_warning = 0) + if(!M) return 0 + if(!slot) return 0 + if(ishuman(M)) + //START HUMAN + var/mob/living/carbon/human/H = M + + switch(slot) + if(slot_l_hand) + if(H.l_hand) + return 0 + return 1 + if(slot_r_hand) + if(H.r_hand) + return 0 + return 1 + if(slot_wear_mask) + if( !(slot_flags & SLOT_MASK) ) + return 0 + if(H.wear_mask) + return 0 + return 1 + if(slot_back) + if( !(slot_flags & SLOT_BACK) ) + return 0 + if(H.back) + if(H.back.canremove) + return 2 + else + return 0 + return 1 + if(slot_wear_suit) + if( !(slot_flags & SLOT_OCLOTHING) ) + return 0 + if(H.wear_suit) + if(H.wear_suit.canremove) + return 2 + else + return 0 + return 1 + if(slot_gloves) + if( !(slot_flags & SLOT_GLOVES) ) + return 0 + if(H.gloves) + if(H.gloves.canremove) + return 2 + else + return 0 + return 1 + if(slot_shoes) + if( !(slot_flags & SLOT_FEET) ) + return 0 + if(H.shoes) + if(H.shoes.canremove) + return 2 + else + return 0 + return 1 + if(slot_belt) + if(!H.w_uniform) + if(!disable_warning) + H << "\red You need a jumpsuit before you can attach this [name]." + return 0 + if( !(slot_flags & SLOT_BELT) ) + return 0 + if(H.belt) + if(H.belt.canremove) + return 2 + else + return 0 + return 1 + if(slot_glasses) + if( !(slot_flags & SLOT_EYES) ) + return 0 + if(H.glasses) + if(H.glasses.canremove) + return 2 + else + return 0 + return 1 + if(slot_head) + if( !(slot_flags & SLOT_HEAD) ) + return 0 + if(H.head) + if(H.head.canremove) + return 2 + else + return 0 + return 1 + if(slot_l_ear) + if( !(slot_flags & slot_l_ear) ) + return 0 + if(H.l_ear) + if(H.l_ear.canremove) + return 2 + else + return 0 + return 1 + if(slot_r_ear) + if( !(slot_flags & slot_r_ear) ) + return 0 + if(H.r_ear) + if(H.r_ear.canremove) + return 2 + else + return 0 + return 1 + if(slot_w_uniform) + if( !(slot_flags & SLOT_ICLOTHING) ) + return 0 + if((M_FAT in H.mutations) && !(flags & ONESIZEFITSALL)) + return 0 + if(H.w_uniform) + if(H.w_uniform.canremove) + return 2 + else + return 0 + return 1 + if(slot_wear_id) + if(!H.w_uniform) + if(!disable_warning) + H << "\red You need a jumpsuit before you can attach this [name]." + return 0 + if( !(slot_flags & SLOT_ID) ) + return 0 + if(H.wear_id) + if(H.wear_id.canremove) + return 2 + else + return 0 + return 1 + if(slot_l_store) + if(H.l_store) + return 0 + if(!H.w_uniform) + if(!disable_warning) + H << "\red You need a jumpsuit before you can attach this [name]." + return 0 + if(slot_flags & SLOT_DENYPOCKET) + return + if( w_class <= 2 || (slot_flags & SLOT_POCKET) ) + return 1 + if(slot_r_store) + if(H.r_store) + return 0 + if(!H.w_uniform) + if(!disable_warning) + H << "\red You need a jumpsuit before you can attach this [name]." + return 0 + if(slot_flags & SLOT_DENYPOCKET) + return 0 + if( w_class <= 2 || (slot_flags & SLOT_POCKET) ) + return 1 + return 0 + if(slot_s_store) + if(!H.wear_suit) + if(!disable_warning) + H << "\red You need a suit before you can attach this [name]." + return 0 + if(!H.wear_suit.allowed) + if(!disable_warning) + usr << "You somehow have a suit with no defined allowed items for suit storage, stop that." + return 0 + if(src.w_class > 3) + if(!disable_warning) + usr << "The [name] is too big to attach." + return 0 + if( istype(src, /obj/item/device/pda) || istype(src, /obj/item/weapon/pen) || is_type_in_list(src, H.wear_suit.allowed) ) + if(H.s_store) + if(H.s_store.canremove) + return 2 + else + return 0 + else + return 1 + return 0 + if(slot_handcuffed) + if(H.handcuffed) + return 0 + if(!istype(src, /obj/item/weapon/handcuffs)) + return 0 + return 1 + if(slot_legcuffed) + if(H.legcuffed) + return 0 + if(!istype(src, /obj/item/weapon/legcuffs)) + return 0 + return 1 + if(slot_in_backpack) + if (H.back && istype(H.back, /obj/item/weapon/storage/backpack)) + var/obj/item/weapon/storage/backpack/B = H.back + if(B.contents.len < B.storage_slots && w_class <= B.max_w_class) + return 1 + return 0 + return 0 //Unsupported slot + //END HUMAN + /mob/proc/reset_view(atom/A) if (client) if (istype(A, /atom/movable)) diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index ed98e54e6fe..82e4fe3f8ff 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -190,7 +190,7 @@ s_click(hud) return if(M == assailant && state >= GRAB_AGGRESSIVE) - if( (ishuman(user) && (FAT in user.mutations) && iscarbon(affecting) ) || ( isalien(user) && iscarbon(affecting) ) || ( istype(user,/mob/living/carbon/human/kidan) && istype(affecting,/mob/living/carbon/monkey/diona) ) ) + if( (ishuman(user) && (M_FAT in user.mutations) && iscarbon(affecting) ) || ( isalien(user) && iscarbon(affecting) ) || ( istype(user,/mob/living/carbon/human/kidan) && istype(affecting,/mob/living/carbon/monkey/diona) ) ) var/mob/living/carbon/attacker = user user.visible_message("[user] is attempting to devour [affecting]!") if(istype(user, /mob/living/carbon/alien/humanoid/hunter)) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 5d908fa654b..0d8c8d65c2e 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -438,7 +438,7 @@ new_character.disabilities |= NEARSIGHTED if(client.prefs.disabilities & DISABILITY_FLAG_FAT) - new_character.mutations += FAT + new_character.mutations += M_FAT new_character.overeatduration = 600 // Max overeat if(client.prefs.disabilities & DISABILITY_FLAG_EPILEPTIC) diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 563fad1f2d1..b816af44cb3 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -442,7 +442,7 @@ datum on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - if (FAT in M.mutations) + if (M_FAT in M.mutations) M.gib() ..() return diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 948028f8632..bf62a28691a 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -510,7 +510,7 @@ AM.loc = src if(istype(AM, /mob/living/carbon/human)) var/mob/living/carbon/human/H = AM - if(FAT in H.mutations) // is a human and fat? + if(M_FAT in H.mutations) // is a human and fat? has_fat_guy = 1 // set flag on holder if(istype(AM, /obj/structure/bigDelivery) && !hasmob) var/obj/structure/bigDelivery/T = AM diff --git a/code/setup.dm b/code/setup.dm index da15c4a588e..53830959c39 100644 --- a/code/setup.dm +++ b/code/setup.dm @@ -326,7 +326,7 @@ var/MAX_EXPLOSION_RANGE = 14 #define M_XRAY 3 #define M_HULK 4 #define M_CLUMSY 5 -#define FAT 6 +#define M_FAT 6 #define HUSK 7 #define NOCLONE 8 diff --git a/code/unused/hivebot/hivebot.dm b/code/unused/hivebot/hivebot.dm index 4cfb4ad9d2c..3852b024fb2 100644 --- a/code/unused/hivebot/hivebot.dm +++ b/code/unused/hivebot/hivebot.dm @@ -159,7 +159,7 @@ src.now_pushing = 1 if(ismob(AM)) var/mob/tmob = AM - /*if(istype(tmob, /mob/living/carbon/human) && (FAT in tmob.mutations)) + /*if(istype(tmob, /mob/living/carbon/human) && (M_FAT in tmob.mutations)) if(prob(20)) for(var/mob/M in viewers(src, null)) if(M.client)