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/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/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