INIT:
DB_MainPlayers(CHARACTER_Player1);
DB_MainPlayers(CHARACTER_Player2);
DB_MainPlayers(CHARACTER_Jahan);
DB_MainPlayers(CHARACTER_Madoc);
KB:
// Sync henchman level when joining the party
IF CharacterIsPlayer(_Henchman)
AND DB_HenchmanPool(_Henchman)
AND CharacterIsPartyMember(_Henchman, 1)
THEN
PROC_SyncHenchmanLevel(_Henchman, CHARACTER_Player1);
// Iterate over all henchmen and sync their levels whenever the first PC has leveled up
IF CharacterLeveledUp(CHARACTER_Player1)
AND DB_HenchmanPool(_Henchman)
AND CharacterIsPartyMember(_Henchman, 1)
THEN
PROC_SyncHenchmanLevel(_Henchman, CHARACTER_Player1);
// Level up the henchman if its underlevelled
PROC PROC_SyncHenchmanLevel((CHARACTER)_Henchman, (CHARACTER)_SyncToCharacter)
AND CharacterGetLevel(_Henchman, _HenchmanLevel)
AND CharacterGetLevel(_SyncToCharacter, _SyncCharacterLevel)
AND IntegerSubtract(_SyncCharacterLevel, _HenchmanLevel, _LevelDifference)
AND _LevelDifference > 0
THEN
CharacterLevelUp(_Henchman);
// Call the level sync recursively in case the henchman is multiple levels behind the main PC
PROC_SyncHenchmanLevel(_Henchman, _SyncToCharacter);