ReorganizeEnemies¶
This is a method that will reorder enemydata to a specific list of enemy ids or remove dead or fled enemy party members as well as perform other sanitisation on enemydata.
There are 4 overloads available:
(1)
private void ReorganizeEnemies()
Ends up doing (2) with a skip of -1
(2)
private void ReorganizeEnemies(int skip)
(3)
private void ReorganizeEnemies(bool order)
If order is false, it ends up being the same as (1)
(4)
private void ReorganizeEnemies(int[] order)
This reorders enemydata instead of sanitizing it
Parameters¶
skip: Theenemydatato skip adding no matter what, -1 to not skip any elements. NOTE: -1 is always sent under normal gameplayorder: This depends on the overload used:- For (3), if true,
enemydatawill be ordered by battleentity's x position and the only ones kept are the one where EnemyAlive returns true (the index is valid, thehpis above 0, battleentity isn'tdeadorkilland battleentity.deathcoroutineisn't in progress) - For (4), the new desired ordering of the eneny ids. The array must be the same length as
enemydataor nothing happens
- For (3), if true,
Procedure¶
(1) / (2) removes all enemy party members whose hp is 0 or below, their index isn't skip and they haven't fled. This is followed by calling SetBEntityIDs which updates all the enemydata's battleentity.battleid to their new one.
(3) does the same as (1) if order is false. If it's true, it removes all enemy party members where EnemyAlive returns false which happens if any of the following is true:
- The
enemydataindex is invalid - The
hpis 0 or below - battleentity is
deadorkill - battleentity.
deathcoroutineis in progress
From there, enemydata is ordered by battleentity's x position.
(4) doesn't sanitize enemydata, but rather reorders it. The order is given by order and it's done by enemy ids. If the length of order isn't the same than enemydata, nothing happens.