Simple animal xenos are now basic animal xenos (#82187)

## About The Pull Request

We currently have 2 types of xenos in the codebase, simple animal and
carbon.
I'd like to unite them both under basic, and I thought I should go for
simple animal first since it's more of a conversion than a remake.
This helps set a base for a future basic-only xeno, which would require
the following:
- Basic mobs (or just anything than Carbon) to have Organs, which we can
then use for things like referring to their plasma sac for egg-laying,
etc.
- All xeno types having a basic mob variant, preferably with an AI so
they would work without a player.
- Something be done about larva, either we'd split basic xenos into
"larva" and "adult" (like carbon) or have it be a separate path that can
also have organs so they can still have hivemind.

Everything else seems to have been done overtime as simple animals have
been converted to basic (HUDs and holding things now seem possible,
etc.)

Even if this doesn't work out, at least this cuts off a good chunk of
the remaining simple animals to convert to basic.

Sprites used (for mapping helpers):

Fire medkit
Toxin medkit
Oingo Boingo punch face (i tried to shrink it down)

## Why It's Good For The Game

This helps advance us move away from simple animals, and helps move
carbon xenos to basic mob later too if that's what we want to go for.

## Changelog

🆑
refactor: Xenomorphs (Lavaland & Oldstation ones) are now basic mobs.
/🆑
This commit is contained in:
John Willard
2024-03-26 17:28:58 -04:00
committed by GitHub
parent 4e714a857c
commit 2163f60527
25 changed files with 432 additions and 294 deletions

View File

@@ -1414,13 +1414,68 @@ INITIALIZE_IMMEDIATE(/obj/effect/mapping_helpers/no_lava)
continue
if(isliving(possible_buckle))
mobs += possible_buckle
mobs += possible_buckle
if(isnull(buckle_to))
log_mapping("[type] at [x] [y] [z] did not find anything to buckle to")
return INITIALIZE_HINT_QDEL
for(var/mob/living/mob as anything in mobs)
buckle_to.buckle_mob(mob, force = force_buckle)
return INITIALIZE_HINT_QDEL
///Basic mob flag helpers for things like deleting on death.
/obj/effect/mapping_helpers/basic_mob_flags
name = "Basic mob flags helper"
desc = "Used to apply basic_mob_flags to basic mobs on the same turf."
late = TRUE
///The basic mob flag that we're adding to all basic mobs on the turf.
var/flag_to_give
/obj/effect/mapping_helpers/basic_mob_flags/Initialize(mapload)
. = ..()
if(!mapload)
log_mapping("[src] spawned outside of mapload!")
return INITIALIZE_HINT_QDEL
/obj/effect/mapping_helpers/basic_mob_flags/LateInitialize()
. = ..()
var/had_any_mobs = FALSE
for(var/mob/living/basic/basic_mobs in loc)
had_any_mobs = TRUE
basic_mobs.basic_mob_flags |= flag_to_give
if(!had_any_mobs)
CRASH("[src] called on a turf without any basic mobs.")
qdel(src)
/obj/effect/mapping_helpers/basic_mob_flags/del_on_death
name = "Basic mob del on death flag helper"
icon_state = "basic_mob_del_on_death"
flag_to_give = DEL_ON_DEATH
/obj/effect/mapping_helpers/basic_mob_flags/flip_on_death
name = "Basic mob flip on death flag helper"
icon_state = "basic_mob_flip_on_death"
flag_to_give = FLIP_ON_DEATH
/obj/effect/mapping_helpers/basic_mob_flags/remain_dense_while_dead
name = "Basic mob remain dense while dead flag helper"
icon_state = "basic_mob_remain_dense_while_dead"
flag_to_give = REMAIN_DENSE_WHILE_DEAD
/obj/effect/mapping_helpers/basic_mob_flags/flammable_mob
name = "Basic mob flammable flag helper"
icon_state = "basic_mob_flammable"
flag_to_give = FLAMMABLE_MOB
/obj/effect/mapping_helpers/basic_mob_flags/immune_to_fists
name = "Basic mob immune to fists flag helper"
icon_state = "basic_mob_immune_to_fists"
flag_to_give = IMMUNE_TO_FISTS
/obj/effect/mapping_helpers/basic_mob_flags/immune_to_getting_wet
name = "Basic mob immune to getting wet flag helper"
icon_state = "basic_mob_immune_to_getting_wet"
flag_to_give = IMMUNE_TO_GETTING_WET