private Transform GetFighterSpriteTransform(CharacterBehavior fighter, out string prefix) { int side = fighter.getOwnerIndex(); var fighterGroup = GetFighterGroup(side); int n = fighterGroup.Count; int i = fighterGroup.IndexOf(fighter); Transform sideLayout = getSideLayout(side); prefix = (n > 1 && n < 4) ? specificFighter[i] : ""; return((n < 4) ? sideLayout : sideLayout.GetChild(i)); }
public void RecordAction(ActionType type, CharacterBehavior character, CharacterBehavior target) { if (!doRecordInteractions(activePlayerIndex)) { Logger.Instance.Log("LOG", "Skip RecordAction " + type); return; } Debug.Assert(gManager.progression.IsCharacterSelected()); Debug.Assert(character == gManager.progression.GetSelectedCharacter()); SynchronizeSelect(); gameData.RecordAction(type, activePlayerIndex, character.getOwnerIndex(), character.getTokenName(), target.getOwnerIndex(), target.getTokenName()); }
private void Synchronize(bool select, bool move) { // TODO: check if bga state differs from app state for selection matter (maybe unnecessary if load is properly done) if (select) { Debug.Assert(gManager.progression.IsCharacterSelected()); CharacterBehavior character = gManager.progression.GetSelectedCharacter(); if (isSelected && movingCharacter != character) { // deselect previously selected character to select a new gameData.RecordCancelMove(activePlayerIndex); } if (!isSelected) { // select character gameData.RecordStartMove(activePlayerIndex, character.getOwnerIndex(), character.getTokenName()); } if (move) { // synchronize selected character carried token SynchronizeCarriedToken(); } } else { Debug.Assert(!move); if (isSelected) { // deselect previously selected character gameData.RecordCancelMove(activePlayerIndex); } } }