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\[x[i]\]"
+ multiplier_string += "\[x[max_sheets]\]"
- 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\[x[i]\]"
- multiplier_string += "\[x[max_sheets]\]"
-
- dat += "| [R.hidden ? "*" : ""][can_make ? "" : ""][R.name][can_make ? "" : ""][R.hidden ? "*" : ""][multiplier_string] | [material_string] |
"
+ dat += "| [R.hidden ? "*" : ""][can_make ? "" : ""][R.name][can_make ? "" : ""][R.hidden ? "*" : ""][multiplier_string] | [material_string] |
"
dat += "
"
//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