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

StarlancerEnemyEscape

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

Date uploaded a month ago
Version 2.4.0
Download link AudioKnight-StarlancerEnemyEscape-2.4.0.zip
Downloads 11994
Dependency string AudioKnight-StarlancerEnemyEscape-2.4.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. Part of my Starlancer Series!

Get the full modpack!

Presets

ReasonableDefaults: Blob:0, Bunker Spider:10, Butler:5, Butler Bees:5, Centipede:0, Crawler:10, Flowerman:10, Hoarding bug:10, Jester:1, Nutcracker:5, Puffer:10, Spring:5, Baboon hawk:15, Earth Leviathan:0, ForestGiant:0, MouthDog:0, RadMech:0, Red Locust Bees:5
Disabled: All 0s
Minimal: All 1s
Chaos: All 100s (Use at your own risk :3 )

Important Notes

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

Blob Issues

The blob's body physics can sometimes get messy during teleport, so it might appear glitched out for a bit until it settles itself. The blob's NavMeshAgent does not allow it to traverse Jump or Climb areas, so if it tries to go outside on Experimentation, it will briefly appear stuck on the door (barring any player interaction) and then return inside and resume normal blob activities. By default, the blob is not able to move from inside to outside or vice versa.

Bracken Issues

The bracken does not enjoy being told to go to the opposite half of the level if it is waiting for a player to be in its area. My system accounts for this by not allowing it to randomly path, but it may still follow a player out of (or into) the facility if it maintains a target on that player.

Baboon Hawk & Hoarding Bug Issues

My system has allowed the hawks and lootbugs the opportunity to carry scrap out of (or into) the facility. At times, there is the possibility of slightly glitchy behavior while carrying scrap, though I've tried to account for this as best I can. If you're close enough notice this issue, their AI will probably fix itself anyway.

Credits

HUGE thanks to Zaggy1024, IAmBatby, mrov, and qwbarch for their support and help with the code!

CHANGELOG

  • 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.