diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index e70875941e..6f9a2c4b95 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -31,7 +31,7 @@ var/dat = "

Autolathe Control Panel


" - if(!panel_open) + if(panel_open == 0) dat += "" var/material_top = "" var/material_bottom = "" @@ -48,41 +48,36 @@ index++ if(R.hidden && !hacked || (show_category != "All" && show_category != R.category)) continue + var/can_make = 1 + var/material_string = "" + var/multiplier_string = "" + var/max_sheets + var/comma + if(!R.resources || !R.resources.len) + material_string = "No resources required." + else + //Make sure it's buildable and list requires resources. + for(var/material in R.resources) + var/sheets = round(stored_material[material]/R.resources[material]) + if(isnull(max_sheets) || max_sheets > sheets) + max_sheets = sheets + if(!isnull(stored_material[material]) && stored_material[material] < R.resources[material]) + can_make = 0 + if(!comma) + comma = 1 + else + material_string += ", " + material_string += "[R.resources[material]] [material]" + material_string += ".
" + //Build list of multipliers for sheets. + if(R.is_stack) + if(max_sheets && max_sheets > 0) + multiplier_string += "
" + for(var/i = 5;i sheets) - max_sheets = sheets - - if(!isnull(stored_material[material]) && stored_material[material] < R.resources[material]) - can_make = 0 - if(!comma) - comma = 1 - else - material_string += ", " - material_string += "[R.resources[material]] [material]" - material_string += ".
" - - //Build list of multipliers for sheets. - if(R.is_stack) - if(max_sheets && max_sheets > 0) - multiplier_string += "
" - for(var/i = 5;i*" : ""][can_make ? "" : ""][R.name][can_make ? "" : ""][R.hidden ? "*" : ""][multiplier_string]
" + dat += "" dat += "
[material_string]
[R.hidden ? "*" : ""][can_make ? "" : ""][R.name][can_make ? "" : ""][R.hidden ? "*" : ""][multiplier_string][material_string]

" //Hacking. diff --git a/code/game/objects/items/weapons/RCD.dm b/code/game/objects/items/weapons/RCD.dm index 0427960398..d08377a704 100644 --- a/code/game/objects/items/weapons/RCD.dm +++ b/code/game/objects/items/weapons/RCD.dm @@ -59,7 +59,7 @@ if(!proximity) return if(disabled && !isrobot(user)) return 0 - if(istype(A,/area/shuttle)||istype(A,/turf/space/transit)) + if(istype(get_area(A),/area/shuttle)||istype(get_area(A),/turf/space/transit)) return 0 return alter_turf(A,user,(mode == 3)) diff --git a/code/modules/clothing/spacesuits/rig/modules/utility.dm b/code/modules/clothing/spacesuits/rig/modules/utility.dm index 3a09ad41b1..5a8063fd82 100644 --- a/code/modules/clothing/spacesuits/rig/modules/utility.dm +++ b/code/modules/clothing/spacesuits/rig/modules/utility.dm @@ -96,6 +96,10 @@ device.attack_self(holder.wearer) return 1 + var/turf/T = get_turf(target) + if(istype(T) && !T.Adjacent(get_turf(src))) + return 0 + var/resolved = target.attackby(device,holder.wearer) if(!resolved && device && target) device.afterattack(target,holder.wearer,1) diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index 41c02cba10..1c10aa36ac 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -76,7 +76,8 @@ var/datum/effect/effect/system/spark_spread/spark_system /obj/item/weapon/rig/examine() - ..() + usr << "This is \icon[src][src.name]." + usr << "[src.desc]" if(wearer) for(var/obj/item/piece in list(helmet,gloves,chest,boots)) if(!piece || piece.loc != wearer) @@ -90,6 +91,7 @@ /obj/item/weapon/rig/New() ..() + item_state = icon_state wires = new(src) if((!req_access || !req_access.len) && (!req_one_access || !req_one_access.len)) @@ -140,6 +142,8 @@ piece.siemens_coefficient = siemens_coefficient piece.permeability_coefficient = permeability_coefficient + update_icon(1) + /obj/item/weapon/rig/Del() for(var/obj/item/piece in list(gloves,boots,helmet,chest)) var/mob/living/M = piece.loc @@ -178,13 +182,13 @@ sealing = 1 if(!seal_target && !suit_is_deployed()) - M << "The suit flashes an error light. It can't function properly without being fully deployed." + M.visible_message("[M]'s suit flashes an error light.","Your suit flashes an error light. It can't function properly without being fully deployed.") failed_to_seal = 1 if(!failed_to_seal) if(!instant) - M << "With a quiet hum, the suit begins running checks and adjusting components." + M.visible_message("[M]'s suit emits a quiet hum as it begins to adjust its seals.","With a quiet hum, the suit begins running checks and adjusting components.") if(!do_after(M,SEAL_DELAY)) if(M) M << "You must remain still while the suit is adjusting the components." failed_to_seal = 1 @@ -203,12 +207,11 @@ continue if(!istype(M) || !istype(piece) || !istype(compare_piece) || !msg_type) - if(!failed_to_seal) - if(M) M << "You must remain still while the suit is adjusting the components." + if(M) M << "You must remain still while the suit is adjusting the components." failed_to_seal = 1 break - if(M.back == src && piece == compare_piece) + if(!failed_to_seal && M.back == src && piece == compare_piece) if(!instant) if(!do_after(M,SEAL_DELAY)) @@ -232,11 +235,11 @@ if(!seal_target) if(flags & AIRTIGHT) helmet.flags |= AIRTIGHT - helmet.flags_inv |= (HIDEEYES|HIDEFACE) + helmet.flags_inv |= (HIDEEYES|HIDEFACE|HIDEMASK) helmet.body_parts_covered |= (FACE|EYES) else helmet.flags &= ~AIRTIGHT - helmet.flags_inv &= ~(HIDEEYES|HIDEFACE) + helmet.flags_inv &= ~(HIDEEYES|HIDEFACE|HIDEMASK) helmet.body_parts_covered &= ~(FACE|EYES) helmet.update_light(wearer) else @@ -446,11 +449,8 @@ //TODO: Maybe consider a cache for this (use mob_icon as blank canvas, use suit icon overlay). overlays.Cut() - if(mob_icon) - mob_icon.overlays.Cut() - if(!mob_icon || update_mob_icon) - var/species_icon = 'icons/mob/back.dmi' + var/species_icon = 'icons/mob/rig_back.dmi' // Since setting mob_icon will override the species checks in // update_inv_wear_suit(), handle species checks here. if(wearer && sprite_sheets && sprite_sheets[wearer.species.name]) @@ -458,10 +458,8 @@ mob_icon = image("icon" = species_icon, "icon_state" = "[icon_state]") if(installed_modules.len) - for(var/obj/item/rig_module/module in installed_modules) if(module.suit_overlay) - mob_icon.overlays += image("icon" = 'icons/mob/rig_modules.dmi', "icon_state" = "[module.suit_overlay]") chest.overlays += image("icon" = 'icons/mob/rig_modules.dmi', "icon_state" = "[module.suit_overlay]", "dir" = SOUTH) if(wearer) @@ -488,10 +486,9 @@ user << "Unauthorized user. Access denied." return 0 - else if(user.loc && user.loc.loc && istype(user.loc.loc,/obj/item/rig_module/ai_container)) - if(!ai_override_enabled) - user << "Synthetic access disabled. Please consult hardware provider." - return 0 + else if(!ai_override_enabled) + user << "Synthetic access disabled. Please consult hardware provider." + return 0 return 1 diff --git a/code/modules/hydroponics/hydro_tray.dm b/code/modules/hydroponics/hydro_tray.dm index 75169cd30c..66cf467657 100644 --- a/code/modules/hydroponics/hydro_tray.dm +++ b/code/modules/hydroponics/hydro_tray.dm @@ -122,6 +122,25 @@ "mutagen" = 15 ) +/obj/machinery/portable_atmospherics/hydroponics/attack_generic(var/mob/user) + if(istype(user,/mob/living/carbon/alien/diona)) + var/mob/living/carbon/alien/diona/nymph = user + + if(nymph.stat == DEAD || nymph.paralysis || nymph.weakened || nymph.stunned || nymph.restrained()) + return + + if(weedlevel > 0) + nymph.reagents.add_reagent("nutriment", weedlevel) + weedlevel = 0 + nymph.visible_message("[nymph] begins rooting through [src], ripping out weeds and eating them noisily.","You begin rooting through [src], ripping out weeds and eating them noisily.") + else if(nymph.nutrition > 100 && nutrilevel < 10) + nymph.nutrition -= ((10-nutrilevel)*5) + nutrilevel = 10 + nymph.visible_message("[nymph] secretes a trickle of green liquid, refilling [src].","You secrete a trickle of green liquid, refilling [src].") + else + nymph.visible_message("[nymph] rolls around in [src] for a bit.","You roll around in [src] for a bit.") + return + /obj/machinery/portable_atmospherics/hydroponics/New() ..() temp_chem_holder = new() diff --git a/code/modules/mob/holder.dm b/code/modules/mob/holder.dm index 1b8cf6eee6..81e8137f04 100644 --- a/code/modules/mob/holder.dm +++ b/code/modules/mob/holder.dm @@ -7,6 +7,7 @@ sprite_sheets = list("Vox" = 'icons/mob/species/vox/head.dmi') /obj/item/weapon/holder/New() + item_state = icon_state ..() processing_objects.Add(src) diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index 1e1748e1cc..67a134ec9b 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -11,7 +11,7 @@ var/adult_form var/dead_icon var/amount_grown = 0 - var/max_grown = 10 + var/max_grown = 200 var/time_of_birth var/language diff --git a/code/modules/mob/living/carbon/alien/diona/diona.dm b/code/modules/mob/living/carbon/alien/diona/diona.dm index d2e362269a..fd5a80de66 100644 --- a/code/modules/mob/living/carbon/alien/diona/diona.dm +++ b/code/modules/mob/living/carbon/alien/diona/diona.dm @@ -6,12 +6,6 @@ icon_state = "nymph" language = "Rootspeak" - amount_grown = 0 - max_grown = 5 // Target number of donors. - - var/list/donors = list() - var/last_checked_stage = 0 - universal_understand = 1 universal_speak = 0 // Dionaea do not need to speak to people other than other dionaea. holder_type = /obj/item/weapon/holder/diona @@ -20,7 +14,4 @@ ..() species = all_species["Diona"] - verbs += /mob/living/carbon/proc/eat_weeds - verbs += /mob/living/carbon/proc/fertilize_plant - verbs += /mob/living/carbon/alien/diona/proc/steal_blood verbs += /mob/living/carbon/alien/diona/proc/merge \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/diona/diona_attacks.dm b/code/modules/mob/living/carbon/alien/diona/diona_attacks.dm index 82f7a78902..a379af21c7 100644 --- a/code/modules/mob/living/carbon/alien/diona/diona_attacks.dm +++ b/code/modules/mob/living/carbon/alien/diona/diona_attacks.dm @@ -11,5 +11,6 @@ src.loc = M else get_scooped(M) + return ..() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/diona/diona_powers.dm b/code/modules/mob/living/carbon/alien/diona/diona_powers.dm index bac7c75d2b..65e1f6b1c0 100644 --- a/code/modules/mob/living/carbon/alien/diona/diona_powers.dm +++ b/code/modules/mob/living/carbon/alien/diona/diona_powers.dm @@ -63,37 +63,4 @@ for(var/atom/A in M.contents) if(istype(A,/mob/living/simple_animal/borer) || istype(A,/obj/item/weapon/holder)) return - M.status_flags &= ~PASSEMOTES - -/mob/living/carbon/alien/diona/proc/steal_blood() - set category = "Abilities" - set name = "Steal Blood" - set desc = "Take a blood sample from a suitable donor." - - if(stat == DEAD || paralysis || weakened || stunned || restrained()) - return - - var/list/choices = list() - for(var/mob/living/carbon/human/H in oview(1,src)) - if(src.Adjacent(H)) - choices += H - - var/mob/living/carbon/human/M = input(src,"Who do you wish to take a sample from?") in null|choices - - if(!M || !src) return - - if(M.species.flags & NO_BLOOD) - src << "\red That donor has no blood to take." - return - - if(donors.Find(M.real_name)) - src << "\red That donor offers you nothing new." - return - - src.visible_message("\red [src] flicks out a feeler and neatly steals a sample of [M]'s blood.","\red You flick out a feeler and neatly steal a sample of [M]'s blood.") - donors += M.real_name - for(var/datum/language/L in M.languages) - languages |= L - - spawn(25) - update_progression() \ No newline at end of file + M.status_flags &= ~PASSEMOTES \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/diona/progression.dm b/code/modules/mob/living/carbon/alien/diona/progression.dm index b99f593a10..fa567cbb44 100644 --- a/code/modules/mob/living/carbon/alien/diona/progression.dm +++ b/code/modules/mob/living/carbon/alien/diona/progression.dm @@ -16,25 +16,4 @@ del(L) src.visible_message("\red [src] begins to shift and quiver, and erupts in a shower of shed bark as it splits into a tangle of nearly a dozen new dionaea.","\red You begin to shift and quiver, feeling your awareness splinter. All at once, we consume our stored nutrients to surge with growth, splitting into a tangle of at least a dozen new dionaea. We have attained our gestalt form.") - return "Diona" - -/mob/living/carbon/alien/diona/show_evolution_blurb() - //TODO - return - -/mob/living/carbon/alien/diona/update_progression() - - amount_grown = donors.len - - if(amount_grown <= last_checked_stage) - return - - // Only fire off these messages once. - last_checked_stage = amount_grown - if(amount_grown == max_grown) - src << "\green You feel ready to move on to your next stage of growth." - else if(amount_grown == 3) - universal_understand = 1 - src << "\green You feel your awareness expand, and realize you know how to understand the creatures around you." - else - src << "\green The blood seeps into your small form, and you draw out the echoes of memories and personality from it, working them into your budding mind." \ No newline at end of file + return "Diona" \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index 8dd64654b7..2369cb9fe5 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -5,10 +5,6 @@ speak_emote = list("hisses") icon_state = "larva" language = "Hivemind" - - amount_grown = 0 - max_grown = 200 - maxHealth = 25 health = 25 diff --git a/code/modules/mob/living/carbon/alien/larva/progression.dm b/code/modules/mob/living/carbon/alien/larva/progression.dm index 50d75af813..05bab1bfde 100644 --- a/code/modules/mob/living/carbon/alien/larva/progression.dm +++ b/code/modules/mob/living/carbon/alien/larva/progression.dm @@ -1,8 +1,3 @@ -/mob/living/carbon/alien/larva/update_progression() - if(amount_grown < max_grown) - amount_grown++ - return - /mob/living/carbon/alien/larva/confirm_evolution() src << "\blue You are growing into a beautiful alien! It is time to choose a caste." diff --git a/code/modules/mob/living/carbon/alien/progression.dm b/code/modules/mob/living/carbon/alien/progression.dm index fe3ec5d2d5..b6306ed5e2 100644 --- a/code/modules/mob/living/carbon/alien/progression.dm +++ b/code/modules/mob/living/carbon/alien/progression.dm @@ -41,6 +41,8 @@ del(src) /mob/living/carbon/alien/proc/update_progression() + if(amount_grown < max_grown) + amount_grown++ return /mob/living/carbon/alien/proc/confirm_evolution() diff --git a/code/modules/mob/living/carbon/carbon_powers.dm b/code/modules/mob/living/carbon/carbon_powers.dm index 6f52ac106c..65fcbc7b17 100644 --- a/code/modules/mob/living/carbon/carbon_powers.dm +++ b/code/modules/mob/living/carbon/carbon_powers.dm @@ -1,49 +1,3 @@ -//TODO: Consider renaming carbon/monkey to carbon/small. - -/mob/living/carbon/proc/fertilize_plant() - - set category = "Abilities" - set name = "Fertilize plant" - set desc = "Turn your food into nutrients for plants." - - if(stat == DEAD || paralysis || weakened || stunned || restrained()) - return - - var/list/trays = list() - for(var/obj/machinery/portable_atmospherics/hydroponics/tray in range(1)) - if(tray.nutrilevel < 10 && src.Adjacent(tray)) - trays += tray - - var/obj/machinery/portable_atmospherics/hydroponics/target = input("Select a tray:") as null|anything in trays - - if(!src || !target || target.nutrilevel == 10) return //Sanity check. - - src.nutrition -= ((10-target.nutrilevel)*5) - target.nutrilevel = 10 - src.visible_message("\red [src] secretes a trickle of green liquid, refilling [target]'s nutrient tray.","\red You secrete a trickle of green liquid from your tail, refilling [target]'s nutrient tray.") - -/mob/living/carbon/proc/eat_weeds() - - set category = "Abilities" - set name = "Eat Weeds" - set desc = "Clean the weeds out of soil or a hydroponics tray." - - if(stat == DEAD || paralysis || weakened || stunned || restrained()) - return - - var/list/trays = list() - for(var/obj/machinery/portable_atmospherics/hydroponics/tray in range(1)) - if(tray.weedlevel > 0 && src.Adjacent(tray)) - trays += tray - - var/obj/machinery/portable_atmospherics/hydroponics/target = input("Select a tray:") as null|anything in trays - - if(!src || !target || target.weedlevel == 0) return //Sanity check. - - src.reagents.add_reagent("nutriment", target.weedlevel) - target.weedlevel = 0 - src.visible_message("\red [src] begins rooting through [target], ripping out weeds and eating them noisily.","\red You begin rooting through [target], ripping out weeds and eating them noisily.") - //Brain slug proc for voluntary removal of control. /mob/living/carbon/proc/release_control() diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 086a1ef0aa..361d47afc0 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -131,24 +131,26 @@ /* This is kind of convoluted, but it seems to break down like this: (note that the chance to miss is exaggerated here since ran_zone() might roll "chest" - + If aiming for chest: 80% chance you hit your target 17% chance you hit a random zone 3% chance you miss - + If aiming for something else: 68% chance you hit your target 17% chance you hit a random zone 15% chance you miss - + Why don't we just use get_zone_with_miss_chance() ??? */ if(prob(80)) hit_zone = ran_zone(hit_zone) if(prob(15) && hit_zone != "chest") // Missed! - attack_message = "[H] attempted to [pick(attack.attack_verb)] [src], but the [attack.attack_noun] missed!" + attack_message = "[H] attempted to strike [src], but missed!" miss_type = 1 + else + hit_zone = ran_zone(hit_zone) if(!miss_type && block) attack_message = "[H] went for [src]'s [affecting.display_name] but was blocked!" @@ -160,9 +162,9 @@ H.visible_message("[attack_message]") playsound(loc, ((miss_type) ? (miss_type == 1 ? attack.miss_sound : 'sound/weapons/thudswoosh.ogg') : attack.attack_sound), 25, 1, -1) - H.attack_log += text("\[[time_stamp()]\] [miss_type ? (miss_type == 1 ? "Missed" : "Blocked") : "[pick(attack.attack_verb)]ed"] [src.name] ([src.ckey])") + H.attack_log += text("\[[time_stamp()]\] [miss_type ? (miss_type == 1 ? "Missed" : "Blocked") : "[pick(attack.attack_verb)]"] [src.name] ([src.ckey])") src.attack_log += text("\[[time_stamp()]\] [miss_type ? (miss_type == 1 ? "Was missed by" : "Has blocked") : "Has Been [pick(attack.attack_verb)]ed"] by [H.name] ([H.ckey])") - msg_admin_attack("[key_name(H)] [miss_type ? (miss_type == 1 ? "has missed" : "was blocked by") : "has [pick(attack.attack_verb)]ed"] [key_name(src)]") + msg_admin_attack("[key_name(H)] [miss_type ? (miss_type == 1 ? "has missed" : "was blocked by") : "has [pick(attack.attack_verb)]"] [key_name(src)]") if(miss_type) return 0 diff --git a/code/modules/mob/living/carbon/human/unarmed_attack.dm b/code/modules/mob/living/carbon/human/unarmed_attack.dm index b96d9b6fdb..b80eb2b1fd 100644 --- a/code/modules/mob/living/carbon/human/unarmed_attack.dm +++ b/code/modules/mob/living/carbon/human/unarmed_attack.dm @@ -107,6 +107,7 @@ var/organ = affecting.display_name if(!skill) skill = 1 + attack_damage = Clamp(attack_damage, 1, 5) if(target == user) user.visible_message("[user] [pick(attack_verb)] \himself in the [organ]!") @@ -125,7 +126,7 @@ switch(attack_damage) if(1 to 2) user.visible_message("[user] slapped [target]'s [organ]!") if(3 to 4) user.visible_message("[user] [pick(attack_verb)] [target] in \his [organ]!") - if(5) user.visible_message("[user] slams \his [pick(attack_noun)] into [target]'s [organ]!") + if(5) user.visible_message("[user] slammed \his [pick(attack_noun)] into [target]'s [organ]!") if("groin", "l_leg", "r_leg") // -- LOWER BODY -- // switch(attack_damage) @@ -138,7 +139,7 @@ if(1 to 4) user.visible_message("[user] kicked [target] in \his [organ]!") if(5) user.visible_message("[user] stomped down hard on [target]'s [organ]!") else if (user.loc != target.loc) - user.visible_message("[user] [pick("stomped down hard on", "kicked against", "gave a strong kick against", "slams their foot into")] [target]'s [organ]!") + user.visible_message("[user] [pick("stomped down hard on", "kicked against", "gave a strong kick against", "slammed their foot into")] [target]'s [organ]!") else user.visible_message("[user] [pick("punched", "threw a punch", "struck", "slapped", "rammed their [pick(attack_noun)] into")] [target]'s [organ]!") @@ -171,13 +172,13 @@ switch(zone) if("head", "mouth", "eyes") // ----- HEAD ----- // - switch(damage) + switch(attack_damage) if(1 to 2) user.visible_message("[user] scratched [target] across \his cheek!") if(3 to 4) user.visible_message("[user] [pick(attack_verb)] [target]'s [pick("head", "neck")] [pick("", "", "", "with spread [pick(attack_noun)]")]!") if(5) user.visible_message("[pick("[user] [pick(attack_verb)] [target] across \his face!", "[user] rakes \his [pick(attack_noun)] across [target]'s face!")]") if("chest", "l_arm", "r_arm", "l_hand", "r_hand", "groin", "l_leg", "r_leg", "l_foot", "r_foot") // ----- BODY ----- // - switch(damage) + switch(attack_damage) if(1 to 2) user.visible_message("[user] scratched [target]'s [affecting.display_name]!") if(3 to 4) user.visible_message("[user] [pick(attack_verb)] [pick("", "", "the side of")] [target]'s [affecting.display_name]!") if(5) user.visible_message("[user] tears \his [pick(attack_noun)] deep into [target]'s [affecting.display_name]!") diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index cae4b35426..860f5a9a25 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -760,8 +760,8 @@ 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 + if( wear_suit && istype(wear_suit, /obj/item/) ) + wear_suit.screen_loc = ui_oclothing var/image/standing @@ -831,7 +831,7 @@ proc/get_damage_icon_part(damage_state, body_part) if(back.icon_override) overlays_standing[BACK_LAYER] = image("icon" = back.icon_override, "icon_state" = "[back.icon_state]") //If this is a rig and a mob_icon is set, it will take species into account in the rig update_icon() proc. - else if(istype(rig) && !rig.offline && rig.mob_icon) + else if(istype(rig) && rig.mob_icon) overlays_standing[BACK_LAYER] = rig.mob_icon else if(back.sprite_sheets && back.sprite_sheets[species.name]) overlays_standing[BACK_LAYER] = image("icon" = back.sprite_sheets[species.name], "icon_state" = "[back.icon_state]") diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index 98285e04e0..b6f9c36b77 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -16,9 +16,7 @@ /obj/item/weapon/reagent_containers/food/snacks/proc/On_Consume(var/mob/M) if(!usr) return if(!reagents.total_volume) - if(M == usr) - usr << "You finish eating \the [src]." - M.visible_message("[M] finishes eating \the [src].") + M.visible_message("[M] finishes eating \the [src].","You finish eating \the [src].") usr.drop_from_inventory(src) //so icons update :[ if(trash) @@ -194,8 +192,8 @@ del(src) return -/obj/item/weapon/reagent_containers/food/snacks/proc/is_sliceable() - return (slices_num && slice_path && slices_num > 0) +/obj/item/weapon/reagent_containers/food/snacks/proc/is_sliceable() + return (slices_num && slice_path && slices_num > 0) /obj/item/weapon/reagent_containers/food/snacks/Del() if(contents) @@ -206,24 +204,18 @@ //////////////////////////////////////////////////////////////////////////////// /// FOOD END //////////////////////////////////////////////////////////////////////////////// - /obj/item/weapon/reagent_containers/food/snacks/attack_generic(var/mob/living/user) - - if(isanimal(user) || isalien(user)) - - if(bitecount == 0 || prob(50)) - user.custom_emote(1,"nibbles away at the [src]") - bitecount++ - - if(reagents && user.reagents) - reagents.trans_to_ingest(user, bitesize) - - spawn(5) - if(!src && !user.client) - user.custom_emote(1,"[pick("burps", "cries for more", "burps twice", "looks at the area where the food was")]") - del(src) - - On_Consume(user) + if(!isanimal(user) && !isalien(user)) + return + user.visible_message("[user] nibbles away at the [src].","You nibble away at the [src].") + bitecount++ + if(reagents && user.reagents) + reagents.trans_to_ingest(user, bitesize) + spawn(5) + if(!src && !user.client) + user.custom_emote(1,"[pick("burps", "cries for more", "burps twice", "looks at the area where the food was")]") + del(src) + On_Consume(user) ////////////////////////////////////////////////// ////////////////////////////////////////////Snacks diff --git a/icons/mob/items_righthand.dmi b/icons/mob/items_righthand.dmi index 92325b5e3d..cae6ddf042 100644 Binary files a/icons/mob/items_righthand.dmi and b/icons/mob/items_righthand.dmi differ diff --git a/icons/mob/rig_back.dmi b/icons/mob/rig_back.dmi new file mode 100644 index 0000000000..8266d74b0b Binary files /dev/null and b/icons/mob/rig_back.dmi differ