mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 10:12:45 +00:00
Bunch of diona nymph tweaks/fixes.
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -11,5 +11,6 @@
|
||||
src.loc = M
|
||||
else
|
||||
get_scooped(M)
|
||||
return
|
||||
|
||||
..()
|
||||
@@ -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
|
||||
@@ -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"
|
||||
@@ -5,10 +5,6 @@
|
||||
speak_emote = list("hisses")
|
||||
icon_state = "larva"
|
||||
language = "Hivemind"
|
||||
|
||||
amount_grown = 0
|
||||
max_grown = 200
|
||||
|
||||
maxHealth = 25
|
||||
health = 25
|
||||
|
||||
|
||||
@@ -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>"
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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 |
Reference in New Issue
Block a user