mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-12 15:45:25 +01:00
Missing dmis, final fixes
This commit is contained in:
@@ -54,7 +54,7 @@
|
||||
/**
|
||||
* Podman hook.
|
||||
* Called in podmen.dm when someone is brought back as a Diona.
|
||||
* Parameters: var/mob/living/carbon/alien/diona
|
||||
* Parameters: var/mob/living/carbon/primitive/diona
|
||||
*/
|
||||
/hook/harvest_podman
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
return
|
||||
|
||||
for(var/obj/item/W in H)
|
||||
H.drop_from_inventory(W)
|
||||
H.unEquip(W)
|
||||
H.set_species(H.species.greater_form)
|
||||
|
||||
H << "<B>You are now [H.species.name]. </B>"
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
mode.update_icon(H.mind)
|
||||
return 1
|
||||
|
||||
/hook/harvest_podman/proc/update_icon(mob/living/carbon/alien/diona/D)
|
||||
/hook/harvest_podman/proc/update_icon(mob/living/carbon/primitive/diona/D)
|
||||
var/datum/game_mode/mutiny/mode = get_mutiny_mode()
|
||||
if (!mode) return 1
|
||||
|
||||
|
||||
@@ -728,7 +728,7 @@
|
||||
else
|
||||
product = new /obj/item/weapon/reagent_containers/food/snacks/grown(get_turf(user),name)
|
||||
if(get_trait(TRAIT_PRODUCT_COLOUR))
|
||||
if(!has_mob_product || (has_mob_product && has_mob_product != /mob/living/carbon/alien/diona))
|
||||
if(!has_mob_product || (has_mob_product && has_mob_product != /mob/living/carbon/primitive/diona))
|
||||
product.color = get_trait(TRAIT_PRODUCT_COLOUR)
|
||||
if(istype(product,/obj/item/weapon/reagent_containers/food))
|
||||
var/obj/item/weapon/reagent_containers/food/food = product
|
||||
|
||||
@@ -1055,7 +1055,7 @@
|
||||
seed_noun = "nodes"
|
||||
display_name = "replicant pods"
|
||||
can_self_harvest = 1
|
||||
has_mob_product = /mob/living/carbon/alien/diona
|
||||
has_mob_product = /mob/living/carbon/primitive/diona
|
||||
|
||||
/datum/seed/diona/New()
|
||||
..()
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
host << "\green <B>You awaken slowly, stirring into sluggish motion as the air caresses you.</B>"
|
||||
|
||||
// This is a hack, replace with some kind of species blurb proc.
|
||||
if(istype(host,/mob/living/carbon/alien/diona))
|
||||
if(istype(host,/mob/living/carbon/primitive/diona))
|
||||
host << "<B>You are [host], one of a race of drifting interstellar plantlike creatures that sometimes share their seeds with human traders.</B>"
|
||||
host << "<B>Too much darkness will send you into shock and starve you, but light will help you heal.</B>"
|
||||
|
||||
|
||||
@@ -138,8 +138,8 @@
|
||||
return ..()
|
||||
|
||||
/obj/machinery/portable_atmospherics/hydroponics/proc/attack_generic(var/mob/user)
|
||||
if(istype(user,/mob/living/carbon/alien/diona))
|
||||
var/mob/living/carbon/alien/diona/nymph = user
|
||||
if(istype(user,/mob/living/carbon/primitive/diona))
|
||||
var/mob/living/carbon/primitive/diona/nymph = user
|
||||
|
||||
if(nymph.stat == DEAD || nymph.paralysis || nymph.weakened || nymph.stunned || nymph.restrained())
|
||||
return
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
/mob/living/carbon/alien/diona
|
||||
name = "diona nymph"
|
||||
voice_name = "diona nymph"
|
||||
adult_form = /mob/living/carbon/human
|
||||
speak_emote = list("chirrups")
|
||||
icon_state = "nymph"
|
||||
language = "Rootspeak"
|
||||
|
||||
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
|
||||
|
||||
/mob/living/carbon/alien/diona/New()
|
||||
|
||||
..()
|
||||
species = all_species["Diona"]
|
||||
verbs += /mob/living/carbon/alien/diona/proc/merge
|
||||
|
||||
/mob/living/carbon/alien/diona/start_pulling(var/atom/movable/AM)
|
||||
//TODO: Collapse these checks into one proc (see pai and drone)
|
||||
if(istype(AM,/obj/item))
|
||||
var/obj/item/O = AM
|
||||
if(O.w_class > 2)
|
||||
src << "<span class='warning'>You are too small to pull that.</span>"
|
||||
return
|
||||
else
|
||||
..()
|
||||
else
|
||||
src << "<span class='warning'>You are too small to pull that.</span>"
|
||||
return
|
||||
|
||||
/mob/living/carbon/alien/diona/put_in_hands(var/obj/item/W) // No hands.
|
||||
W.loc = get_turf(src)
|
||||
return 1
|
||||
@@ -1,7 +0,0 @@
|
||||
/mob/living/carbon/alien/diona/attack_hand(mob/living/carbon/human/M as mob)
|
||||
if(istype(M) && M.a_intent == "help")
|
||||
if(M.species && M.species.name == "Diona" && do_merge(M))
|
||||
return
|
||||
get_scooped(M)
|
||||
return
|
||||
..()
|
||||
@@ -1,69 +0,0 @@
|
||||
//Verbs after this point.
|
||||
/mob/living/carbon/alien/diona/proc/merge()
|
||||
|
||||
set category = "Abilities"
|
||||
set name = "Merge with gestalt"
|
||||
set desc = "Merge with another diona."
|
||||
|
||||
if(stat == DEAD || paralysis || weakened || stunned || restrained())
|
||||
return
|
||||
|
||||
if(istype(src.loc,/mob/living/carbon))
|
||||
src.verbs -= /mob/living/carbon/alien/diona/proc/merge
|
||||
return
|
||||
|
||||
var/list/choices = list()
|
||||
for(var/mob/living/carbon/C in view(1,src))
|
||||
|
||||
if(!(src.Adjacent(C)) || !(C.client)) continue
|
||||
|
||||
if(istype(C,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/D = C
|
||||
if(D.species && D.species.name == "Diona")
|
||||
choices += C
|
||||
|
||||
var/mob/living/M = input(src,"Who do you wish to merge with?") in null|choices
|
||||
|
||||
if(!M)
|
||||
src << "There is nothing nearby to merge with."
|
||||
else if(!do_merge(M))
|
||||
src << "You fail to merge with \the [M]..."
|
||||
|
||||
/mob/living/carbon/alien/diona/proc/do_merge(var/mob/living/carbon/human/H)
|
||||
if(!istype(H) || !src || !(src.Adjacent(H)))
|
||||
return 0
|
||||
H << "You feel your being twine with that of \the [src] as it merges with your biomass."
|
||||
H.status_flags |= PASSEMOTES
|
||||
src << "You feel your being twine with that of \the [H] as you merge with its biomass."
|
||||
loc = H
|
||||
verbs += /mob/living/carbon/alien/diona/proc/split
|
||||
verbs -= /mob/living/carbon/alien/diona/proc/merge
|
||||
return 1
|
||||
|
||||
/mob/living/carbon/alien/diona/proc/split()
|
||||
|
||||
set category = "Abilities"
|
||||
set name = "Split from gestalt"
|
||||
set desc = "Split away from your gestalt as a lone nymph."
|
||||
|
||||
if(stat == DEAD || paralysis || weakened || stunned || restrained())
|
||||
return
|
||||
|
||||
if(!(istype(src.loc,/mob/living/carbon)))
|
||||
src.verbs -= /mob/living/carbon/alien/diona/proc/split
|
||||
return
|
||||
|
||||
src.loc << "You feel a pang of loss as [src] splits away from your biomass."
|
||||
src << "You wiggle out of the depths of [src.loc]'s biomass and plop to the ground."
|
||||
|
||||
var/mob/living/M = src.loc
|
||||
|
||||
src.loc = get_turf(src)
|
||||
src.verbs -= /mob/living/carbon/alien/diona/proc/split
|
||||
src.verbs += /mob/living/carbon/alien/diona/proc/merge
|
||||
|
||||
if(istype(M))
|
||||
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
|
||||
@@ -1,22 +0,0 @@
|
||||
//Dionaea regenerate health and nutrition in light.
|
||||
/mob/living/carbon/alien/diona/handle_environment(datum/gas_mixture/environment)
|
||||
|
||||
var/light_amount = 0 //how much light there is in the place, affects receiving nutrition and healing
|
||||
if(isturf(loc)) //else, there's considered to be no light
|
||||
var/turf/T = loc
|
||||
var/atom/movable/lighting_overlay/L = locate(/atom/movable/lighting_overlay) in T
|
||||
if(L)
|
||||
light_amount = min(10,L.lum_r + L.lum_g + L.lum_b) - 5 //hardcapped so it's not abused by having a ton of flashlights
|
||||
else
|
||||
light_amount = 5
|
||||
|
||||
|
||||
nutrition += light_amount
|
||||
|
||||
if(nutrition > 500)
|
||||
nutrition = 500
|
||||
if(light_amount > 2) //if there's enough light, heal
|
||||
adjustBruteLoss(-1)
|
||||
adjustFireLoss(-1)
|
||||
adjustToxLoss(-1)
|
||||
adjustOxyLoss(-1)
|
||||
@@ -1,19 +0,0 @@
|
||||
/mob/living/carbon/alien/diona/confirm_evolution()
|
||||
|
||||
if(!is_alien_whitelisted(src, "Diona") && config.usealienwhitelist)
|
||||
src << alert("You are currently not whitelisted to play as a full diona.")
|
||||
return null
|
||||
|
||||
if(amount_grown < max_grown)
|
||||
src << "You are not yet ready for your growth..."
|
||||
return null
|
||||
|
||||
src.split()
|
||||
|
||||
if(istype(loc,/obj/item/weapon/holder/diona))
|
||||
var/obj/item/weapon/holder/diona/L = loc
|
||||
src.loc = L.loc
|
||||
qdel(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"
|
||||
@@ -1,6 +0,0 @@
|
||||
/mob/living/carbon/alien/diona/say_understands(var/mob/other,var/datum/language/speaking = null)
|
||||
|
||||
if (istype(other, /mob/living/carbon/human) && !speaking)
|
||||
if(languages.len >= 2) // They have sucked down some blood.
|
||||
return 1
|
||||
return ..()
|
||||
@@ -1,8 +0,0 @@
|
||||
/mob/living/carbon/alien/diona/update_icons()
|
||||
|
||||
if(stat == DEAD)
|
||||
icon_state = "[initial(icon_state)]_dead"
|
||||
else if(lying || resting || stunned)
|
||||
icon_state = "[initial(icon_state)]_sleep"
|
||||
else
|
||||
icon_state = "[initial(icon_state)]"
|
||||
@@ -190,7 +190,7 @@
|
||||
|
||||
//These only pertain to common. Languages are handled by mob/say_understands()
|
||||
if (!speaking)
|
||||
if (istype(other, /mob/living/carbon/alien/diona))
|
||||
if (istype(other, /mob/living/carbon/primitive/diona))
|
||||
if(other.languages.len >= 2) //They've sucked down some blood and can speak common now.
|
||||
return 1
|
||||
if (istype(other, /mob/living/silicon))
|
||||
|
||||
@@ -388,7 +388,7 @@
|
||||
)
|
||||
|
||||
/datum/species/diona/can_understand(var/mob/other)
|
||||
var/mob/living/carbon/alien/diona/D = other
|
||||
var/mob/living/carbon/primitive/diona/D = other
|
||||
if(istype(D))
|
||||
return 1
|
||||
return 0
|
||||
@@ -401,14 +401,14 @@
|
||||
/* //overpowered and dumb as hell; they get cloning back, though.
|
||||
/datum/species/diona/handle_death(var/mob/living/carbon/human/H)
|
||||
|
||||
var/mob/living/carbon/alien/diona/S = new(get_turf(H))
|
||||
var/mob/living/carbon/primitive/diona/S = new(get_turf(H))
|
||||
|
||||
if(H.mind)
|
||||
H.mind.transfer_to(S)
|
||||
else
|
||||
S.key = H.key
|
||||
|
||||
for(var/mob/living/carbon/alien/diona/D in H.contents)
|
||||
for(var/mob/living/carbon/primitive/diona/D in H.contents)
|
||||
if(D.client)
|
||||
D.loc = H.loc
|
||||
else
|
||||
|
||||
+24
-24
@@ -3,7 +3,7 @@
|
||||
*/
|
||||
|
||||
//Mob defines.
|
||||
/mob/living/carbon/monkey/diona
|
||||
/mob/living/carbon/primitive/diona
|
||||
name = "diona nymph"
|
||||
voice_name = "diona nymph"
|
||||
speak_emote = list("chirrups")
|
||||
@@ -12,22 +12,22 @@
|
||||
var/ready_evolve = 0
|
||||
ventcrawler = 1
|
||||
|
||||
/mob/living/carbon/monkey/diona/New()
|
||||
/mob/living/carbon/primitive/diona/New()
|
||||
|
||||
..()
|
||||
gender = NEUTER
|
||||
greaterform = "Diona"
|
||||
//greaterform = "Diona"
|
||||
add_language("Rootspeak")
|
||||
|
||||
/mob/living/carbon/monkey/diona/attack_hand(mob/living/carbon/human/M as mob)
|
||||
/mob/living/carbon/primitive/diona/attack_hand(mob/living/carbon/human/M as mob)
|
||||
|
||||
//Let people pick the little buggers up.
|
||||
if(M.a_intent == "help")
|
||||
if(M.species && M.species.name == "Diona")
|
||||
M << "You feel your being twine with that of [src] as it merges with your biomass."
|
||||
src << "You feel your being twine with that of [M] as you merge with its biomass."
|
||||
src.verbs += /mob/living/carbon/monkey/diona/proc/split
|
||||
src.verbs -= /mob/living/carbon/monkey/diona/proc/merge
|
||||
src.verbs += /mob/living/carbon/primitive/diona/proc/split
|
||||
src.verbs -= /mob/living/carbon/primitive/diona/proc/merge
|
||||
src.loc = M
|
||||
else
|
||||
var/obj/item/weapon/holder/diona/D = new(loc)
|
||||
@@ -41,23 +41,23 @@
|
||||
|
||||
..()
|
||||
|
||||
/mob/living/carbon/monkey/diona/New()
|
||||
/mob/living/carbon/primitive/diona/New()
|
||||
|
||||
..()
|
||||
gender = NEUTER
|
||||
greaterform = "Diona"
|
||||
//greaterform = "Diona"
|
||||
add_language("Rootspeak")
|
||||
src.verbs += /mob/living/carbon/monkey/diona/proc/merge
|
||||
src.verbs += /mob/living/carbon/primitive/diona/proc/merge
|
||||
|
||||
|
||||
/mob/living/carbon/monkey/diona/proc/merge()
|
||||
/mob/living/carbon/primitive/diona/proc/merge()
|
||||
|
||||
set category = "Diona"
|
||||
set name = "Merge with gestalt"
|
||||
set desc = "Merge with another diona."
|
||||
|
||||
if(istype(src.loc,/mob/living/carbon))
|
||||
src.verbs -= /mob/living/carbon/monkey/diona/proc/merge
|
||||
src.verbs -= /mob/living/carbon/primitive/diona/proc/merge
|
||||
return
|
||||
|
||||
var/list/choices = list()
|
||||
@@ -80,19 +80,19 @@
|
||||
|
||||
src << "You feel your being twine with that of [M] as you merge with its biomass."
|
||||
src.loc = M
|
||||
src.verbs += /mob/living/carbon/monkey/diona/proc/split
|
||||
src.verbs -= /mob/living/carbon/monkey/diona/proc/merge
|
||||
src.verbs += /mob/living/carbon/primitive/diona/proc/split
|
||||
src.verbs -= /mob/living/carbon/primitive/diona/proc/merge
|
||||
else
|
||||
return
|
||||
|
||||
/mob/living/carbon/monkey/diona/proc/split()
|
||||
/mob/living/carbon/primitive/diona/proc/split()
|
||||
|
||||
set category = "Diona"
|
||||
set name = "Split from gestalt"
|
||||
set desc = "Split away from your gestalt as a lone nymph."
|
||||
|
||||
if(!(istype(src.loc,/mob/living/carbon)))
|
||||
src.verbs -= /mob/living/carbon/monkey/diona/proc/split
|
||||
src.verbs -= /mob/living/carbon/primitive/diona/proc/split
|
||||
return
|
||||
|
||||
src.loc << "You feel a pang of loss as [src] splits away from your biomass."
|
||||
@@ -101,8 +101,8 @@
|
||||
var/mob/living/M = src.loc
|
||||
|
||||
src.loc = get_turf(src)
|
||||
src.verbs -= /mob/living/carbon/monkey/diona/proc/split
|
||||
src.verbs += /mob/living/carbon/monkey/diona/proc/merge
|
||||
src.verbs -= /mob/living/carbon/primitive/diona/proc/split
|
||||
src.verbs += /mob/living/carbon/primitive/diona/proc/merge
|
||||
|
||||
if(istype(M))
|
||||
for(var/atom/A in M.contents)
|
||||
@@ -110,7 +110,7 @@
|
||||
return
|
||||
M.status_flags &= ~PASSEMOTES
|
||||
|
||||
/mob/living/carbon/monkey/diona/verb/fertilize_plant()
|
||||
/mob/living/carbon/primitive/diona/verb/fertilize_plant()
|
||||
|
||||
set category = "Diona"
|
||||
set name = "Fertilize plant"
|
||||
@@ -129,7 +129,7 @@
|
||||
target.nutrilevel = 10
|
||||
src.visible_message("\red [src] secretes a trickle of green liquid from its tail, refilling [target]'s nutrient tray.","\red You secrete a trickle of green liquid from your tail, refilling [target]'s nutrient tray.")
|
||||
|
||||
/mob/living/carbon/monkey/diona/verb/eat_weeds()
|
||||
/mob/living/carbon/primitive/diona/verb/eat_weeds()
|
||||
|
||||
set category = "Diona"
|
||||
set name = "Eat Weeds"
|
||||
@@ -148,7 +148,7 @@
|
||||
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.")
|
||||
|
||||
/mob/living/carbon/monkey/diona/verb/evolve()
|
||||
/mob/living/carbon/primitive/diona/verb/evolve()
|
||||
|
||||
set category = "Diona"
|
||||
set name = "Evolve"
|
||||
@@ -188,7 +188,7 @@
|
||||
|
||||
del(src)
|
||||
|
||||
/mob/living/carbon/monkey/diona/verb/steal_blood()
|
||||
/mob/living/carbon/primitive/diona/verb/steal_blood()
|
||||
set category = "Diona"
|
||||
set name = "Steal Blood"
|
||||
set desc = "Take a blood sample from a suitable donor."
|
||||
@@ -218,7 +218,7 @@
|
||||
spawn(25)
|
||||
update_progression()
|
||||
|
||||
/mob/living/carbon/monkey/diona/proc/update_progression()
|
||||
/mob/living/carbon/primitive/diona/proc/update_progression()
|
||||
|
||||
if(!donors.len)
|
||||
return
|
||||
@@ -233,11 +233,11 @@
|
||||
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."
|
||||
|
||||
|
||||
/mob/living/carbon/monkey/diona/put_in_hands(obj/item/W)
|
||||
/mob/living/carbon/primitive/diona/put_in_hands(obj/item/W)
|
||||
W.loc = get_turf(src)
|
||||
W.layer = initial(W.layer)
|
||||
W.dropped()
|
||||
|
||||
/mob/living/carbon/monkey/diona/put_in_active_hand(obj/item/W)
|
||||
/mob/living/carbon/primitive/diona/put_in_active_hand(obj/item/W)
|
||||
src << "\red You don't have any hands!"
|
||||
return
|
||||
@@ -382,7 +382,7 @@
|
||||
if(isalien(attacker) && iscarbon(prey)) //Xenomorphs eating carbon mobs
|
||||
return 1
|
||||
|
||||
if(ishuman(attacker) && attacker.get_species() == "Kidan" && istype(prey,/mob/living/carbon/alien/diona)) //Kidan eating nymphs
|
||||
if(ishuman(attacker) && attacker.get_species() == "Kidan" && istype(prey,/mob/living/carbon/primitive/diona)) //Kidan eating nymphs
|
||||
return 1
|
||||
|
||||
if(ishuman(attacker) && attacker.get_species() == "Tajaran" && istype(prey,/mob/living/simple_animal/mouse)) //Tajaran eating mice. Meow!
|
||||
|
||||
@@ -481,7 +481,7 @@
|
||||
return 1
|
||||
|
||||
//Friendly Creatures!
|
||||
if(ispath(MP, /mob/living/carbon/alien/diona) && !jobban_isbanned(src, "Dionaea"))
|
||||
if(ispath(MP, /mob/living/carbon/primitive/diona) && !jobban_isbanned(src, "Dionaea"))
|
||||
return 1
|
||||
|
||||
//Not in here? Must be untested!
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
del(src)
|
||||
|
||||
spawn(1) // So it has time to be thrown about by the gib() proc.
|
||||
var/mob/living/carbon/alien/diona/D = new(get_turf(organ))
|
||||
var/mob/living/carbon/primitive/diona/D = new(get_turf(organ))
|
||||
diona.request_player(D)
|
||||
del(organ)
|
||||
*/
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
if (!user.IsAdvancedToolUser() || istype(user, /mob/living/carbon/alien/diona))
|
||||
if (!user.IsAdvancedToolUser() || istype(user, /mob/living/carbon/primitive/diona))
|
||||
user << "\red You don't have the dexterity to do this!"
|
||||
return
|
||||
if(istype(user, /mob/living))
|
||||
|
||||
@@ -602,8 +602,8 @@ datum/reagent/atrazine/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volu
|
||||
H.adjustToxLoss(50)
|
||||
..()
|
||||
return
|
||||
else if(istype(M,/mob/living/carbon/alien/diona)) //plantmen monkeys (diona) take EVEN MORE damage
|
||||
var/mob/living/carbon/alien/diona/D = M
|
||||
else if(istype(M,/mob/living/carbon/primitive/diona)) //plantmen monkeys (diona) take EVEN MORE damage
|
||||
var/mob/living/carbon/primitive/diona/D = M
|
||||
D.adjustToxLoss(100)
|
||||
..()
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user