Bunch of diona nymph tweaks/fixes.

This commit is contained in:
Zuhayr
2014-12-09 20:52:41 +10:30
parent f9e59d430b
commit ff2c23714f
13 changed files with 29 additions and 124 deletions

View File

@@ -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("<font color='blue'><b>[nymph]</b> begins rooting through [src], ripping out weeds and eating them noisily.</font>","<font color='blue'>You begin rooting through [src], ripping out weeds and eating them noisily.</font>")
else if(nymph.nutrition > 100 && nutrilevel < 10)
nymph.nutrition -= ((10-nutrilevel)*5)
nutrilevel = 10
nymph.visible_message("<font color='blue'><b>[nymph]</b> secretes a trickle of green liquid, refilling [src].</font>","<font color='blue'>You secrete a trickle of green liquid, refilling [src].</font>")
else
nymph.visible_message("<font color='blue'><b>[nymph]</b> rolls around in [src] for a bit.</font>","<font color='blue'>You roll around in [src] for a bit.</font>")
return
/obj/machinery/portable_atmospherics/hydroponics/New()
..()
temp_chem_holder = new()

View File

@@ -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)

View File

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

View File

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

View File

@@ -11,5 +11,6 @@
src.loc = M
else
get_scooped(M)
return
..()

View File

@@ -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()
M.status_flags &= ~PASSEMOTES

View File

@@ -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."
return "Diona"

View File

@@ -5,10 +5,6 @@
speak_emote = list("hisses")
icon_state = "larva"
language = "Hivemind"
amount_grown = 0
max_grown = 200
maxHealth = 25
health = 25

View File

@@ -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 <b>You are growing into a beautiful alien! It is time to choose a caste.</b>"

View File

@@ -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()

View File

@@ -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()

View File

@@ -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]")

Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 KiB

After

Width:  |  Height:  |  Size: 153 KiB