Nymph phyxes (#9180)

* Fixes to nymphs

* clean up lingering carbon/alien references

* Add growth to stat panel

* Add rootlocal to known languages

* add zone sel

* *nibble
This commit is contained in:
Atermonera
2023-08-02 22:41:55 -08:00
committed by GitHub
parent 0c1479abcf
commit 4d1c709fcc
25 changed files with 62 additions and 197 deletions
-4
View File
@@ -233,8 +233,6 @@
M_job = "slime"
else if(issmall(M))
M_job = "Monkey"
else if(isalien(M))
M_job = "Alien"
else
M_job = "Carbon-based"
@@ -344,8 +342,6 @@
dat += "<td>Ghost</td>"
else if(issmall(M))
dat += "<td>Monkey</td>"
else if(isalien(M))
dat += "<td>Alien</td>"
else
dat += "<td>Unknown</td>"
@@ -1,7 +0,0 @@
/datum/admin_secret_item/random_event/trigger_xenomorph_infestation
name = "Trigger a Skathari Incursion"
/datum/admin_secret_item/random_event/trigger_xenomorph_infestation/execute(var/mob/user)
. = ..()
if(.)
return xenomorphs.attempt_random_spawn()
-1
View File
@@ -277,7 +277,6 @@
switch(href_list["simplemake"])
if("observer") M.change_mob_type( /mob/observer/dead , null, null, delmob )
if("larva") M.change_mob_type( /mob/living/carbon/alien/larva , null, null, delmob )
if("nymph") M.change_mob_type( /mob/living/carbon/diona , null, null, delmob )
if("human") M.change_mob_type( /mob/living/carbon/human , null, null, delmob, href_list["species"])
if("slime") M.change_mob_type( /mob/living/simple_mob/slime/xenobio , null, null, delmob )
+3 -3
View File
@@ -9,7 +9,7 @@
/mob/living/Initialize()
if(ai_holder_type)
ai_holder = new ai_holder_type(src)
if(istype(src, /mob/living/carbon/human))
if(ishuman(src))
var/mob/living/carbon/human/H = src
H.hud_used = new /datum/hud(H)
H.create_mob_hud(H.hud_used)
@@ -429,11 +429,11 @@
if(STANCE_IDLE)
if(speak_chance) // In the long loop since otherwise it wont shut up.
handle_idle_speaking()
if(hostile)
ai_log("handle_stance_strategical() : STANCE_IDLE, going to find_target().", AI_LOG_TRACE)
find_target()
if(should_go_home())
ai_log("handle_stance_tactical() : STANCE_IDLE, going to go home.", AI_LOG_TRACE)
go_home()
@@ -1,47 +0,0 @@
var/global/datum/antagonist/xenos/xenomorphs
/datum/antagonist/xenos
id = MODE_XENOMORPH
role_type = BE_ALIEN
role_text = "Skathari"
role_text_plural = "Skathari"
mob_path = /mob/living/carbon/alien/larva
bantype = "Xenomorph"
flags = ANTAG_OVERRIDE_MOB | ANTAG_RANDSPAWN | ANTAG_OVERRIDE_JOB | ANTAG_VOTABLE
welcome_text = "Hiss! You are a larval alien. Hide and bide your time until you are ready to evolve."
antaghud_indicator = "hudalien"
hard_cap = 5
hard_cap_round = 8
initial_spawn_req = 4
initial_spawn_target = 6
spawn_announcement = "Unidentified lifesigns detected coming aboard the station. Secure any exterior access, including ducting and ventilation."
spawn_announcement_title = "Lifesign Alert"
spawn_announcement_sound = 'sound/AI/aliens.ogg'
spawn_announcement_delay = 5000
/datum/antagonist/xenos/New(var/no_reference)
..()
if(!no_reference)
xenomorphs = src
/datum/antagonist/xenos/attempt_random_spawn()
if(config.aliens_allowed) ..()
/datum/antagonist/xenos/proc/get_vents()
var/list/vents = list()
for(var/obj/machinery/atmospherics/unary/vent_pump/temp_vent in machines)
if(!temp_vent.welded && temp_vent.network && (temp_vent.loc.z in using_map.station_levels))
if(temp_vent.network.normal_members.len > 50)
vents += temp_vent
return vents
/datum/antagonist/xenos/create_objectives(var/datum/mind/player)
if(!..())
return
player.objectives += new /datum/objective/survive()
player.objectives += new /datum/objective/escape()
/datum/antagonist/xenos/place_mob(var/mob/living/player)
player.forceMove(get_turf(pick(get_vents())))
+3 -3
View File
@@ -258,18 +258,18 @@
/// FOOD END
////////////////////////////////////////////////////////////////////////////////
/obj/item/reagent_containers/food/snacks/attack_generic(var/mob/living/user)
if(!isanimal(user) && !isalien(user))
return
if(isanimal(user))
var/mob/living/simple_mob/animal/critter = user
if(!critter.has_appetite())
to_chat(critter, SPAN_WARNING("You don't have much of an appetite at the moment."))
return TRUE
critter.eat_food_item(src, bitesize)
else
else if(istype(user, /mob/living/carbon/diona))
user.visible_message("<b>[user]</b> nibbles away at \the [src].","You nibble away at \the [src].")
if(reagents)
reagents.trans_to_mob(user, bitesize, CHEM_INGEST)
else
return FALSE
bitecount++
spawn(5)
if(!src && !user.client)
+1 -1
View File
@@ -94,7 +94,7 @@ var/global/list/ghost_traps
// Allows people to set their own name. May or may not need to be removed for posibrains if people are dumbasses.
/datum/ghosttrap/proc/set_new_name(var/mob/target)
var/newname = sanitizeSafe(input(target,"Enter a name, or leave blank for the default name.", "Name change","") as text, MAX_NAME_LEN)
if (newname != "")
if (newname)
target.real_name = newname
target.name = target.real_name
@@ -89,8 +89,6 @@
return "alien [caste_name] ([alien_number])"
/datum/species/xenos/can_understand(var/mob/other)
if(istype(other, /mob/living/carbon/alien/larva))
return TRUE
return FALSE
/datum/species/xenos/hug(var/mob/living/carbon/human/H,var/mob/living/target)
+21 -9
View File
@@ -24,8 +24,13 @@ var/global/list/_nymph_default_emotes = list(
/decl/emote/audible/chirp
)
/datum/say_list/diona
emote_hear = list("chirps")
emote_see = list("jumps", "rolls", "scrathes")
/mob/living/carbon/diona
name = "diona nymph"
desc = "A skittery little creature."
voice_name = "diona nymph"
speak_emote = list("chirrups")
icon = 'icons/mob/alien.dmi'
@@ -47,6 +52,10 @@ var/global/list/_nymph_default_emotes = list(
mob_size = 4
inventory_panel_type = null // Disable inventory by default
has_huds = TRUE
say_list_type = /datum/say_list/diona
ai_holder_type = /datum/ai_holder/simple_mob/passive
var/can_namepick_as_adult = TRUE
var/adult_name = "diona gestalt"
@@ -76,6 +85,7 @@ var/global/list/_nymph_default_emotes = list(
regenerate_icons()
species = GLOB.all_species[SPECIES_DIONA]
add_language(LANGUAGE_ROOTLOCAL)
add_language(LANGUAGE_ROOTGLOBAL)
add_language(LANGUAGE_GALCOM)
@@ -93,15 +103,6 @@ var/global/list/_nymph_default_emotes = list(
update_icons()
/mob/living/carbon/diona/proc/handle_npc(var/mob/living/carbon/diona/D)
if(D.stat != CONSCIOUS)
return
if(prob(33) && D.canmove && isturf(D.loc) && !D.pulledby) //won't move if being pulled
step(D, pick(cardinal))
if(prob(1))
D.emote(pick("scratch","jump","chirp","roll"))
/mob/living/carbon/diona/u_equip(obj/item/W as obj)
return
@@ -143,3 +144,14 @@ var/global/list/_nymph_default_emotes = list(
var/datum/ghosttrap/plant/P = get_ghost_trap("living plant")
if(P.assess_candidate(user))
P.transfer_personality(user, src)
/mob/living/carbon/diona/make_hud_overlays()
hud_list[HEALTH_HUD] = gen_hud_image(ingame_hud_med, src, "100", plane = PLANE_CH_HEALTH)
hud_list[STATUS_HUD] = gen_hud_image(ingame_hud, src, "hudhealthy", plane = PLANE_CH_STATUS)
hud_list[LIFE_HUD] = gen_hud_image(ingame_hud, src, "hudhealthy", plane = PLANE_CH_LIFE)
add_overlay(hud_list)
/mob/living/carbon/diona/Stat()
..()
if (statpanel("Status"))
stat(null, text("Growth: [round(amount_grown/max_grown)]%"))
@@ -13,9 +13,6 @@
adjustToxLoss(-1)
adjustOxyLoss(-1)
if(!client)
handle_npc(src)
// Alien larva are quite simple.
/mob/living/carbon/diona/Life()
@@ -124,20 +121,6 @@
reset_view(null)
return TRUE
/mob/living/carbon/diona/handle_environment(var/datum/gas_mixture/environment)
if(!environment)
return
if(environment.temperature > (T0C+66))
adjustFireLoss((environment.temperature - (T0C+66))/5) // Might be too high, check in testing.
throw_alert("alien_fire", /obj/screen/alert/alien_fire)
if(prob(20))
to_chat(src,SPAN_DANGER( "You feel a searing heat!"))
else
clear_alert("alien_fire")
/mob/living/carbon/diona/handle_fire()
. = ..()
if(!.) // True == Not on fire
+1 -5
View File
@@ -34,12 +34,8 @@
..()
if(!data["donor"] || istype(data["donor"], /mob/living/carbon/human))
if(!data["donor"] || ishuman(data["donor"]))
blood_splatter(T, src, 1)
else if(istype(data["donor"], /mob/living/carbon/alien))
var/obj/effect/decal/cleanable/blood/B = blood_splatter(T, src, 1)
if(B)
B.blood_DNA["UNKNOWN DNA STRUCTURE"] = "X*"
/datum/reagent/blood/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
+2 -2
View File
@@ -105,8 +105,8 @@ var/global/list/ventcrawl_machinery = list(
if(canmove && pipe)
return pipe
/mob/living/carbon/alien/ventcrawl_carry()
return 1
/mob/living/carbon/diona/ventcrawl_carry()
return TRUE
/mob/living/var/ventcrawl_layer = 3