diff --git a/code/__defines/is_helpers.dm b/code/__defines/is_helpers.dm index 3bfc444c9b..567d045af0 100644 --- a/code/__defines/is_helpers.dm +++ b/code/__defines/is_helpers.dm @@ -40,7 +40,6 @@ #define isxeno(A) istype(A, /mob/living/simple_mob/animal/space/alien) #define iscarbon(A) istype(A, /mob/living/carbon) -#define isalien(A) istype(A, /mob/living/carbon/alien) #define isbrain(A) istype(A, /mob/living/carbon/brain) #define ishuman(A) istype(A, /mob/living/carbon/human) diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index 5ac392cafc..25c68a9a27 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -450,7 +450,7 @@ Turf and target are separate in case you want to teleport some distance from a t moblist.Add(M) for(var/mob/living/carbon/brain/M in sortmob) moblist.Add(M) - for(var/mob/living/carbon/alien/M in sortmob) + for(var/mob/living/carbon/diona/M in sortmob) moblist.Add(M) for(var/mob/observer/dead/M in sortmob) moblist.Add(M) diff --git a/code/_onclick/hud/action.dm b/code/_onclick/hud/action.dm index 75c3756b04..b2b4552054 100644 --- a/code/_onclick/hud/action.dm +++ b/code/_onclick/hud/action.dm @@ -170,10 +170,7 @@ /obj/screen/movable/action_button/hide_toggle/proc/InitialiseIcon(var/mob/living/user) - if(isalien(user)) - icon_state = "bg_alien" - else - icon_state = "bg_default" + icon_state = "bg_default" UpdateIcon() return @@ -226,4 +223,4 @@ /datum/action/innate/ - action_type = AB_INNATE \ No newline at end of file + action_type = AB_INNATE diff --git a/code/_onclick/hud/alien_larva.dm b/code/_onclick/hud/diona_nymph.dm similarity index 68% rename from code/_onclick/hud/alien_larva.dm rename to code/_onclick/hud/diona_nymph.dm index 992b880b1e..92449378aa 100644 --- a/code/_onclick/hud/alien_larva.dm +++ b/code/_onclick/hud/diona_nymph.dm @@ -1,6 +1,5 @@ -/mob/living/carbon/alien/create_mob_hud(datum/hud/HUD, apply_to_client = TRUE) +/mob/living/carbon/diona/create_mob_hud(datum/hud/HUD, apply_to_client = TRUE) ..() - HUD.ui_style = 'icons/mob/screen1_alien.dmi' HUD.adding = list() @@ -24,6 +23,14 @@ healths.name = "health" healths.screen_loc = ui_alien_health + zone_sel = new /obj/screen/zone_sel( null ) + zone_sel.icon = HUD.ui_style + zone_sel.color = HUD.ui_color + zone_sel.alpha = HUD.ui_alpha + zone_sel.cut_overlays() + zone_sel.add_overlay(image('icons/mob/zone_sel.dmi', "[zone_sel.selecting]")) + HUD.adding += zone_sel + if(client && apply_to_client) client.screen = list() client.screen += list(healths) diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 5351139540..13ff8cf954 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -52,21 +52,6 @@ /mob/living/RestrainedClickOn(var/atom/A) return -/* - Aliens -*/ - -/mob/living/carbon/alien/RestrainedClickOn(var/atom/A) - return - -/mob/living/carbon/alien/UnarmedAttack(var/atom/A, var/proximity) - - if(!..()) - return 0 - - setClickCooldown(get_attack_speed()) - A.attack_generic(src,rand(5,6),"bitten") - /* New Players: Have no reason to click on anything at all. diff --git a/code/datums/mind.dm b/code/datums/mind.dm index b99ef4a59f..4147731316 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -524,10 +524,6 @@ . = ..() mind.assigned_role = "slime" -/mob/living/carbon/alien/larva/mind_initialize() - . = ..() - mind.special_role = "Larva" - //AI /mob/living/silicon/ai/mind_initialize() . = ..() diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm index bbffe21056..b2c65e093f 100644 --- a/code/game/gamemodes/events.dm +++ b/code/game/gamemodes/events.dm @@ -106,33 +106,6 @@ var/global/hadevent = 0 if(H.client && H.appendicitis()) break -/proc/alien_infestation(var/spawncount = 1) // -- TLE - //command_alert("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert") - //world << sound('sound/AI/aliens.ogg') - 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) // Stops Aliens getting stuck in small networks. See: Security, Virology - vents += temp_vent - - var/list/candidates = get_alien_candidates() - - if(prob(40)) spawncount++ //sometimes, have two larvae spawn instead of one - while((spawncount >= 1) && vents.len && candidates.len) - - var/obj/vent = pick(vents) - var/candidate = pick(candidates) - - var/mob/living/carbon/alien/larva/new_xeno = new(vent.loc) - new_xeno.key = candidate - - candidates -= candidate - vents -= vent - spawncount-- - - spawn(rand(5000, 6000)) //Delayed announcements to keep the crew on their toes. - command_announcement.Announce("Unidentified lifesigns detected coming aboard \the [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", new_sound = 'sound/AI/aliens.ogg') - /proc/high_radiation_event() /* // Haha, this is way too laggy. I'll keep the prison break though. diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index eb57f1d71a..64a4d1bf4a 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -591,16 +591,9 @@ var/global/list/all_objectives = list() continue captured_amount += worth - for(var/mob/living/carbon/alien/larva/M in A)//Larva are important for research. - if(M.stat==2) - captured_amount+=0.5 - continue - captured_amount+=1 - - if(captured_amount 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()))) diff --git a/code/modules/food/food/snacks.dm b/code/modules/food/food/snacks.dm index 35f9fbe353..9775629217 100644 --- a/code/modules/food/food/snacks.dm +++ b/code/modules/food/food/snacks.dm @@ -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("[user] 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) diff --git a/code/modules/ghosttrap/trap.dm b/code/modules/ghosttrap/trap.dm index 4ca51499a2..945d669521 100644 --- a/code/modules/ghosttrap/trap.dm +++ b/code/modules/ghosttrap/trap.dm @@ -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 diff --git a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm index e20ac6bc22..8e2f3ed846 100644 --- a/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm +++ b/code/modules/mob/living/carbon/human/species/xenomorphs/alien_species.dm @@ -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) diff --git a/code/modules/mob/living/carbon/nymph/diona.dm b/code/modules/mob/living/carbon/nymph/diona.dm index 3c01391c28..db3c04a741 100644 --- a/code/modules/mob/living/carbon/nymph/diona.dm +++ b/code/modules/mob/living/carbon/nymph/diona.dm @@ -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)]%")) diff --git a/code/modules/mob/living/carbon/nymph/life.dm b/code/modules/mob/living/carbon/nymph/life.dm index ac187b28de..bad08dabf5 100644 --- a/code/modules/mob/living/carbon/nymph/life.dm +++ b/code/modules/mob/living/carbon/nymph/life.dm @@ -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 diff --git a/code/modules/reagents/reagents/core.dm b/code/modules/reagents/reagents/core.dm index e3a33633c9..8492da13f6 100644 --- a/code/modules/reagents/reagents/core.dm +++ b/code/modules/reagents/reagents/core.dm @@ -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) diff --git a/code/modules/ventcrawl/ventcrawl.dm b/code/modules/ventcrawl/ventcrawl.dm index 99100030a5..f4a45f5f13 100644 --- a/code/modules/ventcrawl/ventcrawl.dm +++ b/code/modules/ventcrawl/ventcrawl.dm @@ -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 diff --git a/polaris.dme b/polaris.dme index 89e903b963..244f9ef00b 100644 --- a/polaris.dme +++ b/polaris.dme @@ -139,7 +139,7 @@ #include "code\_onclick\hud\action.dm" #include "code\_onclick\hud\ai.dm" #include "code\_onclick\hud\alert.dm" -#include "code\_onclick\hud\alien_larva.dm" +#include "code\_onclick\hud\diona_nymph.dm" #include "code\_onclick\hud\fullscreen.dm" #include "code\_onclick\hud\ghost.dm" #include "code\_onclick\hud\gun_mode.dm" @@ -1416,7 +1416,6 @@ #include "code\modules\admin\secrets\fun_secrets\turn_humans_into_monkeys.dm" #include "code\modules\admin\secrets\random_events\gravity.dm" #include "code\modules\admin\secrets\random_events\trigger_cordical_borer_infestation.dm" -#include "code\modules\admin\secrets\random_events\trigger_xenomorph_infestation.dm" #include "code\modules\admin\verbs\adminhelp.dm" #include "code\modules\admin\verbs\adminjump.dm" #include "code\modules\admin\verbs\adminpm.dm" @@ -1498,7 +1497,6 @@ #include "code\modules\antagonist\antagonist_print.dm" #include "code\modules\antagonist\antagonist_update.dm" #include "code\modules\antagonist\alien\borer.dm" -#include "code\modules\antagonist\alien\xenomorph.dm" #include "code\modules\antagonist\outsider\commando.dm" #include "code\modules\antagonist\outsider\deathsquad.dm" #include "code\modules\antagonist\outsider\ert.dm"