diff --git a/RL2.API/APIEndpoints/Enemy.cs b/RL2.API/APIEndpoints/Enemy.cs index 422692f..3f58b6a 100644 --- a/RL2.API/APIEndpoints/Enemy.cs +++ b/RL2.API/APIEndpoints/Enemy.cs @@ -88,13 +88,13 @@ internal static void ModifyData_Invoke(EnemyType type, EnemyRank rank, EnemyData /// Enemy rank /// Enemy's AI script object /// Enemy's logic controller scriptable object. Handles chances of behaviour - public delegate void ModifyBehaviour_delegate(EnemyType type, EnemyRank rank, BaseAIScript aiScript, LogicController_SO logicController_SO); + public delegate void ModifyBehaviour_delegate(EnemyType type, EnemyRank rank, ref BaseAIScript aiScript, ref LogicController_SO logicController_SO); /// public static event ModifyBehaviour_delegate? ModifyBehaviour; - internal static void ModifyBehaviour_Invoke(EnemyType type, EnemyRank rank, BaseAIScript aiScript, LogicController_SO logicController_SO) { - ModifyBehaviour?.Invoke(type, rank, aiScript, logicController_SO); + internal static void ModifyBehaviour_Invoke(EnemyType type, EnemyRank rank, ref BaseAIScript aiScript, ref LogicController_SO logicController_SO) { + ModifyBehaviour?.Invoke(type, rank, ref aiScript, ref logicController_SO); } #endregion } \ No newline at end of file diff --git a/RL2.API/Hooks/Enemy.cs b/RL2.API/Hooks/Enemy.cs index 03f741f..faae596 100644 --- a/RL2.API/Hooks/Enemy.cs +++ b/RL2.API/Hooks/Enemy.cs @@ -75,10 +75,12 @@ internal static bool ModifyClassDataMethod(EnemyClassDataDictionary_TryGetValue if (found) { foreach (EnemyRank rank in Enum.GetValues(typeof(EnemyRank))) { Enemy.ModifyData_Invoke(type, rank, data.GetEnemyData(rank)); - Enemy.ModifyBehaviour_Invoke(type, rank, data.GetAIScript(rank), data.GetLogicController()); } + Enemy.ModifyBehaviour_Invoke(type, EnemyRank.Basic, ref data.m_basicAIScript, ref data.m_enemyLogicController); + Enemy.ModifyBehaviour_Invoke(type, EnemyRank.Advanced, ref data.m_advancedAIScript, ref data.m_enemyLogicController); + Enemy.ModifyBehaviour_Invoke(type, EnemyRank.Expert, ref data.m_expertAIScript, ref data.m_enemyLogicController); + Enemy.ModifyBehaviour_Invoke(type, EnemyRank.Miniboss, ref data.m_minibossAIScript, ref data.m_enemyLogicController); } - return found; } #endregion