From 723dc2ad98a8addca57ea602b6236e470c33f812 Mon Sep 17 00:00:00 2001 From: DZD Date: Thu, 12 Feb 2015 18:49:26 -0500 Subject: [PATCH] ABSTRACT flag addition & handling - Adds ABSTRACT flag to relevant items, removes abstract var. - Adds checks for ABSTRACT where relevant. - Also removes extra define of golem gas mask. - Adds NODROP to changeling mutations so I don't have to do that later. --- code/_onclick/click.dm | 8 ++-- code/_onclick/other_mobs.dm | 9 +++- code/_onclick/telekinesis.dm | 2 +- .../gamemodes/changeling/powers/mutations.dm | 11 +++-- code/game/objects/items.dm | 1 - .../objects/items/weapons/storage/storage.dm | 18 +++---- code/game/objects/items/weapons/twohanded.dm | 2 +- code/modules/mob/inventory.dm | 12 +++-- code/modules/mob/living/carbon/carbon.dm | 6 +-- .../mob/living/carbon/human/examine.dm | 4 +- code/modules/mob/living/carbon/human/human.dm | 48 +++++++++---------- .../mob/living/carbon/metroid/metroid.dm | 20 +++----- code/modules/mob/mob.dm | 8 ++-- code/modules/mob/mob_grab.dm | 3 +- code/modules/mob/mob_helpers.dm | 8 ++-- 15 files changed, 81 insertions(+), 79 deletions(-) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index edda907db4c..a65821e52fb 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -65,8 +65,6 @@ if(stat || paralysis || stunned || weakened) return - face_atom(A) // change direction to face what you clicked on - if(next_move > world.time) // in the year 2000... return @@ -76,6 +74,10 @@ var/obj/mecha/M = loc return M.click_action(A,src) + var/obj/item/W = get_active_hand() + if(W == null || !(W.flags & ABSTRACT)) + face_atom(A) + if(restrained()) RestrainedClickOn(A) return @@ -84,8 +86,6 @@ throw_item(A) return - var/obj/item/W = get_active_hand() - if(W == A) next_move = world.time + 6 if(W.flags&USEDELAY) diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 427b286800b..c6527855100 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -17,10 +17,13 @@ /atom/proc/attack_hand(mob/user as mob) return -/mob/living/carbon/human/RestrainedClickOn(var/atom/A) +/* +/mob/living/carbon/human/RestrainedClickOn(var/atom/A) -- Handled by carbons return +*/ - +/mob/living/carbon/RestrainedClickOn(var/atom/A) + return 0 // Commented out to prevent overwriting RangedAttack in click.dm ~ Bone White /* @@ -72,6 +75,8 @@ things considerably */ /mob/living/carbon/monkey/RestrainedClickOn(var/atom/A) + if(..()) + return if(a_intent != "harm" || !ismob(A)) return if(istype(wear_mask, /obj/item/clothing/mask/muzzle)) return diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm index 0eadbff6696..c06485ee0ec 100644 --- a/code/_onclick/telekinesis.dm +++ b/code/_onclick/telekinesis.dm @@ -65,7 +65,7 @@ var/const/tk_maxrange = 15 desc = "Magic" icon = 'icons/obj/magic.dmi'//Needs sprites icon_state = "2" - flags = NOBLUDGEON + flags = NOBLUDGEON | ABSTRACT //item_state = null w_class = 10.0 layer = 20 diff --git a/code/game/gamemodes/changeling/powers/mutations.dm b/code/game/gamemodes/changeling/powers/mutations.dm index 31fd7c577dd..2e28f82cf77 100644 --- a/code/game/gamemodes/changeling/powers/mutations.dm +++ b/code/game/gamemodes/changeling/powers/mutations.dm @@ -123,11 +123,11 @@ icon = 'icons/obj/weapons.dmi' icon_state = "arm_blade" item_state = "arm_blade" + flags = ABSTRACT | NODROP icon_override = 'icons/mob/in-hand/changeling.dmi' w_class = 5.0 sharp = 1 edge = 1 - canremove = 0 force = 25 throwforce = 0 //Just to be on the safe side throw_range = 0 @@ -201,7 +201,7 @@ /obj/item/weapon/shield/changeling name = "shield-like mass" desc = "A mass of tough, boney tissue. You can still see the fingers as a twisted pattern in the shield." - canremove = 0 + flags = NODROP icon = 'icons/obj/weapons.dmi' icon_state = "ling_shield" icon_override = 'icons/mob/in-hand/changeling.dmi' @@ -256,7 +256,7 @@ name = "flesh mass" icon_state = "lingspacesuit" desc = "A huge, bulky mass of pressure and temperature-resistant organic tissue, evolved to facilitate space travel." - flags = STOPSPRESSUREDMAGE + flags = STOPSPRESSUREDMAGE | NODROP allowed = list(/obj/item/device/flashlight, /obj/item/weapon/tank/emergency_oxygen, /obj/item/weapon/tank/oxygen) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) //No armor at all. canremove = 0 @@ -279,7 +279,7 @@ name = "flesh mass" icon_state = "lingspacehelmet" desc = "A covering of pressure and temperature-resistant organic tissue with a glass-like chitin front." - flags = HEADCOVERSEYES | BLOCKHAIR | HEADCOVERSMOUTH | STOPSPRESSUREDMAGE + flags = HEADCOVERSEYES | BLOCKHAIR | HEADCOVERSMOUTH | STOPSPRESSUREDMAGE | NODROP armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) canremove = 0 @@ -310,6 +310,7 @@ name = "chitinous mass" desc = "A tough, hard covering of black chitin." icon_state = "lingarmor" + flags = NODROP body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS slowdown = 2 armor = list(melee = 65, bullet = 20, laser = 10, energy = 13, bomb = 0, bio = 0, rad = 0) @@ -330,7 +331,7 @@ name = "chitinous mass" desc = "A tough, hard covering of black chitin with transparent chitin in front." icon_state = "lingarmorhelmet" - flags = HEADCOVERSEYES | BLOCKHAIR + flags = HEADCOVERSEYES | BLOCKHAIR | NODROP armor = list(melee = 70, bullet = 15, laser = 7,energy = 10, bomb = 5, bio = 2, rad = 0) canremove = 0 flags_inv = HIDEEARS diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 4a17dadcabc..4cab37f9b68 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -5,7 +5,6 @@ var/no_embed = 0 // For use in item_attack.dm var/icon/blood_overlay = null //this saves our blood splatter overlay, which will be processed not to go over the edges of the sprite var/blood_overlay_color = null - var/abstract = 0 var/item_state = null var/r_speed = 1.0 var/health = null diff --git a/code/game/objects/items/weapons/storage/storage.dm b/code/game/objects/items/weapons/storage/storage.dm index 2b7661cc702..c34c0ca0595 100644 --- a/code/game/objects/items/weapons/storage/storage.dm +++ b/code/game/objects/items/weapons/storage/storage.dm @@ -101,7 +101,7 @@ if(user.s_active == src) user.s_active = null return - + /obj/item/weapon/storage/proc/open(mob/user as mob) if (src.use_sound) playsound(src.loc, src.use_sound, 50, 1, -5) @@ -202,7 +202,7 @@ //This proc return 1 if the item can be picked up and 0 if it can't. //Set the stop_messages to stop it from printing messages /obj/item/weapon/storage/proc/can_be_inserted(obj/item/W as obj, stop_messages = 0) - if(!istype(W)) return //Not an item + if(!istype(W) || (W.flags & ABSTRACT)) return //Not an item if(src.loc == W) return 0 //Means the item is already in the storage item @@ -465,17 +465,17 @@ /atom/proc/storage_depth(atom/container) var/depth = 0 var/atom/cur_atom = src - + while (cur_atom && !(cur_atom in container.contents)) if (isarea(cur_atom)) return -1 if (istype(cur_atom.loc, /obj/item/weapon/storage)) depth++ cur_atom = cur_atom.loc - + if (!cur_atom) return -1 //inside something with a null loc. - + return depth //Like storage depth, but returns the depth to the nearest turf @@ -483,16 +483,16 @@ /atom/proc/storage_depth_turf() var/depth = 0 var/atom/cur_atom = src - + while (cur_atom && !isturf(cur_atom)) if (isarea(cur_atom)) return -1 if (istype(cur_atom.loc, /obj/item/weapon/storage)) depth++ cur_atom = cur_atom.loc - + if (!cur_atom) return -1 //inside something with a null loc. - + return depth - + diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index f8fa6f7149b..417cfdbbca7 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -107,7 +107,7 @@ w_class = 5.0 icon_state = "offhand" name = "offhand" - //flags = ABSTRACT + flags = ABSTRACT /obj/item/weapon/twohanded/offhand/unwield() del(src) diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index c8b38aff840..71553163b0c 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -22,8 +22,10 @@ //Puts the item into your l_hand if possible and calls all necessary triggers/updates. returns 1 on success. /mob/proc/put_in_l_hand(var/obj/item/W) - if(lying) return 0 - if(!istype(W)) return 0 + if(lying && !(W.flags & ABSTRACT)) + return 0 + if(!istype(W)) + return 0 if(!l_hand) W.loc = src //TODO: move to equipped? l_hand = W @@ -38,8 +40,10 @@ //Puts the item into your r_hand if possible and calls all necessary triggers/updates. returns 1 on success. /mob/proc/put_in_r_hand(var/obj/item/W) - if(lying) return 0 - if(!istype(W)) return 0 + if(lying && !(W.flags & ABSTRACT)) + return 0 + if(!istype(W)) + return 0 if(!r_hand) W.loc = src r_hand = W diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 58fff0705ce..3fd186af332 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -473,9 +473,9 @@ var/dat = {"
[name]


-
Head(Mask): [(wear_mask ? wear_mask : "Nothing")] -
Left Hand: [(l_hand ? l_hand : "Nothing")] -
Right Hand: [(r_hand ? r_hand : "Nothing")] +
Head(Mask): [(wear_mask && !(wear_mask.flags & ABSTRACT)) ? wear_mask : "Nothing"] +
Left Hand: [(l_hand && !(l_hand.flags & ABSTRACT)) ? l_hand : "Nothing"] +
Right Hand: [(r_hand && !(r_hand.flags & ABSTRACT)) ? r_hand : "Nothing"]
Back: [(back ? back : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : "")]
[(handcuffed ? text("Handcuffed") : text("Not Handcuffed"))]
[(internal ? text("Remove Internal") : "")] diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index f763179550e..99c5e7a1ced 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -104,14 +104,14 @@ msg += "[t_He] [t_has] \icon[back] \a [back] on [t_his] back.\n" //left hand - if(l_hand) + if(l_hand && !(l_hand.flags & ABSTRACT)) if(l_hand.blood_DNA) msg += "[t_He] [t_is] holding \icon[l_hand] [l_hand.gender==PLURAL?"some":"a"] blood-stained [l_hand.name] in [t_his] left hand!\n" else msg += "[t_He] [t_is] holding \icon[l_hand] \a [l_hand] in [t_his] left hand.\n" //right hand - if(r_hand) + if(r_hand && !(r_hand.flags & ABSTRACT)) if(r_hand.blood_DNA) msg += "[t_He] [t_is] holding \icon[r_hand] [r_hand.gender==PLURAL?"some":"a"] blood-stained [r_hand.name] in [t_his] right hand!\n" else diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index ded2a3c949e..0da3bba80fa 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -496,24 +496,24 @@ var/dat = {"
[name]


-
Head(Mask): [(wear_mask ? wear_mask : "Nothing")] -
Left Hand: [(l_hand ? l_hand : "Nothing")] -
Right Hand: [(r_hand ? r_hand : "Nothing")] -
Gloves: [(gloves ? gloves : "Nothing")] -
Eyes: [(glasses ? glasses : "Nothing")] -
Left Ear: [(l_ear ? l_ear : "Nothing")] -
Right Ear: [(r_ear ? r_ear : "Nothing")] -
Head: [(head ? head : "Nothing")] -
Shoes: [(shoes ? shoes : "Nothing")] -
Belt: [(belt ? belt : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(belt, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : "")] -
Uniform: [(w_uniform ? w_uniform : "Nothing")] [(suit) ? ((suit.has_sensor == 1) ? text(" Sensors", src) : "") :] -
(Exo)Suit: [(wear_suit ? wear_suit : "Nothing")] -
Back: [(back ? back : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : "")] -
ID: [(wear_id ? wear_id : "Nothing")] -
PDA: [(wear_pda ? wear_pda : "Nothing")] -
Suit Storage: [(s_store ? s_store : "Nothing")] -

Left Pocket ([l_store ? (pickpocket ? l_store.name : "Full") : "Empty"]) -
Right Pocket ([r_store ? (pickpocket ? r_store.name : "Full") : "Empty"]) +
Head(Mask): [(wear_mask && !(wear_mask.flags & ABSTRACT)) ? wear_mask : "Nothing"] +
Left Hand: [(l_hand && !(l_hand.flags & ABSTRACT)) ? l_hand : "Nothing"] +
Right Hand: [(r_hand && !(r_hand.flags&ABSTRACT)) ? r_hand : "Nothing"] +
Gloves: [(gloves && !(gloves.flags & ABSTRACT)) ? gloves : "Nothing"] +
Eyes: [(glasses && !(glasses.flags & ABSTRACT)) ? glasses : "Nothing"] +
Left Ear: [(l_ear && !(l_ear.flags & ABSTRACT)) ? l_ear : "Nothing"] +
Right Ear: [(r_ear && !(r_ear.flags & ABSTRACT)) ? r_ear : "Nothing"] +
Head: [(head && !(head.flags & ABSTRACT)) ? head : "Nothing"] +
Shoes: [(shoes && !(shoes.flags & ABSTRACT)) ? shoes : "Nothing"] +
Belt: [(belt && !(belt.flags & ABSTRACT)) ? belt : "Nothing"] [((istype(wear_mask, /obj/item/clothing/mask) && istype(belt, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : "")] +
Uniform: [(w_uniform && !(w_uniform.flags & ABSTRACT)) ? w_uniform : "Nothing"] [(suit) ? ((suit.has_sensor == 1) ? text(" Sensors", src) : "") :] +
(Exo)Suit: [(wear_suit && !(wear_suit.flags & ABSTRACT)) ? wear_suit : "Nothing"] +
Back: [(back && !(back.flags & ABSTRACT)) ? back : "Nothing"] [((istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : "")] +
ID: [(wear_id && !(wear_id.flags & ABSTRACT)) ? wear_id : "Nothing"] +
PDA: [(wear_pda && !(wear_pda.flags & ABSTRACT)) ? wear_pda : "Nothing"] +
Suit Storage: [(s_store && !(s_store.flags & ABSTRACT)) ? s_store : "Nothing"] +

Left Pocket ([(l_store && !(l_store.flags & ABSTRACT)) ? (pickpocket ? l_store.name : "Full") : "Empty"]) +
Right Pocket ([(r_store && !(r_store.flags & ABSTRACT)) ? (pickpocket ? r_store.name : "Full") : "Empty"])
Empty Both Pockets

[(handcuffed ? text("Handcuffed") : text("Not Handcuffed"))]
[(legcuffed ? text("Legcuffed") : text(""))] @@ -640,9 +640,9 @@ var/obj/item/pocket_item = (pocket_id == slot_r_store ? src.r_store : src.l_store) var/obj/item/place_item = usr.get_active_hand() // Item to place in the pocket, if it's empty - if(pocket_item) + if(pocket_item && !(pocket_item.flags & ABSTRACT)) usr << "You try to empty [src]'s [pocket_side] pocket." - else if(place_item && place_item.mob_can_equip(src, pocket_id, 1)) + else if(place_item && place_item.mob_can_equip(src, pocket_id, 1) && !(place_item.flags & ABSTRACT)) usr << "You try to place [place_item] into [src]'s [pocket_side] pocket." else return @@ -1036,10 +1036,10 @@ /mob/living/carbon/human/abiotic(var/full_body = 0) - if(full_body && ((src.l_hand && !( src.l_hand.abstract )) || (src.r_hand && !( src.r_hand.abstract )) || (src.back || src.wear_mask || src.head || src.shoes || src.w_uniform || src.wear_suit || src.glasses || src.l_ear || src.r_ear || src.gloves))) + if(full_body && ((src.l_hand && !(src.l_hand.flags & ABSTRACT)) || (src.r_hand && !(src.r_hand.flags & ABSTRACT)) || (src.back || src.wear_mask || src.head || src.shoes || src.w_uniform || src.wear_suit || src.glasses || src.l_ear || src.r_ear || src.gloves))) return 1 - if( (src.l_hand && !src.l_hand.abstract) || (src.r_hand && !src.r_hand.abstract) ) + if((src.l_hand && !(src.l_hand.flags & ABSTRACT)) || (src.r_hand && !(src.r_hand.flags & ABSTRACT))) return 1 return 0 @@ -1161,14 +1161,14 @@ var/datum/organ/internal/lungs/L = internal_organs_by_name["lungs"] if(!L) return 0 - + return L.is_bruised() /mob/living/carbon/human/proc/rupture_lung() var/datum/organ/internal/lungs/L = internal_organs_by_name["lungs"] if(!L) return 0 - + if(!L.is_bruised()) src.custom_pain("You feel a stabbing pain in your chest!", 1) L.damage = L.min_bruised_damage diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm index ce59c2d5ff5..9b597c46e47 100644 --- a/code/modules/mob/living/carbon/metroid/metroid.dm +++ b/code/modules/mob/living/carbon/metroid/metroid.dm @@ -897,6 +897,7 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 item_state = "golem" _color = "golem" has_sensor = 0 + flags = ABSTRACT armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) canremove = 0 @@ -911,7 +912,7 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS|HEAD slowdown = 1.0 flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - flags = ONESIZEFITSALL | STOPSPRESSUREDMAGE + flags = ONESIZEFITSALL | STOPSPRESSUREDMAGE | ABSTRACT heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS | HEAD max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS | HEAD @@ -923,9 +924,9 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 name = "golem's feet" desc = "sturdy adamantine feet" icon_state = "golem" - item_state = null + item_state = "golem" canremove = 0 - flags = NOSLIP + flags = NOSLIP | ABSTRACT | MASKINTERNALS | MASKCOVERSMOUTH slowdown = SHOES_SLOWDOWN+1 @@ -937,15 +938,7 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 canremove = 0 siemens_coefficient = 0 unacidable = 1 - -/obj/item/clothing/mask/gas/golem - name = "golem's face" - desc = "the imposing face of an adamantine golem" - icon_state = "golem" - item_state = "golem" - canremove = 0 - siemens_coefficient = 0 - unacidable = 1 + flags = ABSTRACT /obj/item/clothing/gloves/golem @@ -955,6 +948,7 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 item_state = null siemens_coefficient = 0 canremove = 0 + flags = ABSTRACT /obj/item/clothing/head/space/golem @@ -965,7 +959,7 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 desc = "a golem's head" canremove = 0 unacidable = 1 - flags = STOPSPRESSUREDMAGE + flags = STOPSPRESSUREDMAGE | ABSTRACT heat_protection = HEAD max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE armor = list(melee = 80, bullet = 20, laser = 20, energy = 10, bomb = 0, bio = 0, rad = 0) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index d865cb2dde5..1e73c1ba070 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -438,9 +438,9 @@ var/list/slot_equipment_priority = list( \
[name]



Head(Mask): [(wear_mask ? wear_mask : "Nothing")] -
Left Hand: [(l_hand ? l_hand : "Nothing")] -
Right Hand: [(r_hand ? r_hand : "Nothing")] -
Back: [(back ? back : "Nothing")] [((istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : "")] +
Left Hand: [(l_hand && !(l_hand.flags & ABSTRACT)) ? l_hand : "Nothing"] +
Right Hand: [(r_hand && !(r_hand.flags & ABSTRACT)) ? r_hand : "Nothing"] +
Back: [(back && !(back.flags & ABSTRACT)) ? back : "Nothing"] [((istype(wear_mask, /obj/item/clothing/mask) && istype(back, /obj/item/weapon/tank) && !( internal )) ? text(" Set Internal", src) : "")]
[(internal ? text("Remove Internal") : "")]
Empty Pockets
Refresh @@ -1235,7 +1235,7 @@ mob/proc/yank_out_object() if(jobban_isbanned(usr, "NPC")) usr << "You are banned from playing as NPC's." return - + if((usr in respawnable_list) && (stat==2 || istype(usr,/mob/dead/observer))) var/list/creatures = list("Mouse") for(var/mob/living/L in living_mob_list) diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index 29bc7aed076..cdda2f6d268 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -3,7 +3,7 @@ /obj/item/weapon/grab name = "grab" - flags = NOBLUDGEON + flags = NOBLUDGEON | ABSTRACT var/obj/screen/grab/hud = null var/mob/affecting = null var/mob/assailant = null @@ -12,7 +12,6 @@ var/last_upgrade = 0 layer = 21 - abstract = 1 item_state = "nothing" w_class = 5.0 diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index b652a106824..ee3c953fb7e 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -150,7 +150,7 @@ proc/isorgan(A) if(L && L.implanted) return 1 return 0 - + proc/isnewplayer(A) if(istype(A, /mob/new_player)) return 1 @@ -161,7 +161,7 @@ proc/hasorgans(A) /proc/hsl2rgb(h, s, l) return - + proc/hassensorlevel(A, var/level) var/mob/living/carbon/human/H = A if(istype(H) && istype(H.w_uniform, /obj/item/clothing/under)) @@ -352,10 +352,10 @@ It's fairly easy to fix if dealing with single letters but not so much with comp /mob/proc/abiotic(var/full_body = 0) - if(full_body && ((src.l_hand && !( src.l_hand.abstract )) || (src.r_hand && !( src.r_hand.abstract )) || (src.back || src.wear_mask))) + if(full_body && ((src.l_hand && !(src.l_hand.flags & ABSTRACT)) || (src.r_hand && !(src.r_hand.flags & ABSTRACT)) || (src.back || src.wear_mask))) return 1 - if((src.l_hand && !( src.l_hand.abstract )) || (src.r_hand && !( src.r_hand.abstract ))) + if((src.l_hand && !(src.l_hand.flags & ABSTRACT)) || (src.r_hand && !(src.r_hand.flags & ABSTRACT))) return 1 return 0