You are viewing a potentially older version of this package. View all versions.
AudioKnight-StarlancerEnemyEscape-1.0.0 icon

StarlancerEnemyEscape

Allows enemies to travel both into and out of the facility while seamlessly switching AI modes.

Date uploaded 3 months ago
Version 1.0.0
Download link AudioKnight-StarlancerEnemyEscape-1.0.0.zip
Downloads 871
Dependency string AudioKnight-StarlancerEnemyEscape-1.0.0

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100
AudioKnight-StarlancerAIFix-3.6.0 icon
AudioKnight-StarlancerAIFix

Automatically assigns interior/exterior AI for enemies based on their spawn location. Also fixes a null reference exception regarding EnableEnemyMesh(). Part of my Starlancer Series!

Preferred version: 3.6.0

README

Starlancer Enemy Escape

This mod allows enemies to travel both into and out of the facility while seamlessly switching AI modes. It also creates AI nodes at the entrance points at runtime, allowing enemies the chance (however slim) to path directly to the entrance/exit! Part of my Starlancer Series!

Get the full modpack here: https://thunderstore.io/c/lethal-company/p/AudioKnight/Starlancer/

Important Notes

StarlancerAIFix is a hard dependency for StarlancerEnemyEscape, as it prevents issues with certain enemies that are not in their native environment.

The blob's body physics can sometimes get messy during teleport, so it might appear glitched out for a bit until it settles itself. By default, the blob is not able to move from inside to outside or vice versa.

Credits

Big thanks to Zaggy1024 and IAmBatby for their help with the code!

CHANGELOG

  • 2.4.2

    • Since none of my attempts seemed to work, Circuit Bees are now blacklisted from being affected by Enemy Escape.
  • 2.4.1

    • Disabled the instantiation of nodes near EntranceTeleports. After the rework, the instanced nodes no longer provided any benefit to functionality, and instead caused issues with Bracken camping fire exits.
  • 2.4.0

    • Added logic to prevent circuit bees from bouncing back and forth towards an entrance while stationed at their hive.
    • Added logic to allow circuit bees to properly path back to an entrance and teleport while inside.
  • 2.3.0

    • Added some logic to prevent Circuit Bees from uselessly hanging around the entrance. Let me know if the issue persists.
  • 2.2.2

    • Removed an accidental cyclic method call in the SetDestinationToPositionPrefix() that was causing heavy performance issues.
  • 2.2.1

    • Adjusted some logic to prevent NREs from occurring.
  • 2.2.0

    • Added logic to the SetDestinationToPositionPrefix() so that it only runs the EE-relevant code if an Escape Component is present on the enemy.
    • Renamed EnemyWhitelist to EnemyBlacklist so that it properly describes its purpose.
  • 2.1.0

    • Added logic to accommodate for the case where an EnemyAI has a null enemyType or enemyName. This should prevent the NREs that could sometimes cause the registration of enemies in the configuration file to fail.
    • Added logic to remove the EscapeComponent from enemies that were placed on a moon as a prefab. This should prevent the hard-crashes that have been occurring on custom moons that utilize that concept (Solace, for example).
    • Fixed a mistake in the code for determining an inside-spawning enemy's favorite outside spot.
  • 2.0.0

    • Almost a complete overhaul from v1.0.0
    • Instead of only allowing enemies a chance to use the EntranceTeleports if they happen to wander close enough, a system has been implemented to make an enemy path directly to an EntranceTeleport and warp to its match on the other half of the level. The range at which they may search for a teleport and the cooldown for an attempted search are configurable per enemy.
      • "Chance To Escape" now represents the chance for them to initiate pathing to the teleport.
    • Implemented a HarmonyPrefix to EnemyAI.SetDestinationToPosition() in order to prevent enemies from getting stuck if the position they want to path to is on the other half of the level.
  • 1.0.0

    • Initial Release.