//Private Methods private void Init(PartyInfo partyInfo, PartySide side, Transform[] initialPoints, Transform selectingPoint, Deleg_ActionPointChanged onActionPointChanged) { DivineDebug.Log("Initing party started."); _side = side; _name = partyInfo.Name; _secrets = partyInfo.availableSecrets; _actionPoint = partyInfo.actionPoint; Event_ActionPointChanged += onActionPointChanged; _selectingPoint = selectingPoint; _charsDic = new Dictionary <long, Character>(); //Build Hero _hero = BuildCharacter(partyInfo.heroInfo, initialPoints[0], true) as Hero; _hero.Event_StateChange += OnCharacterStateChange; _charsDic.Add(partyInfo.heroInfo.uniqueID, _hero); _characters = new Character[partyInfo.charInfoes.Length]; for (int i = 0; i < partyInfo.charInfoes.Length; i++) { if (i + 1 < initialPoints.Length) { _characters[i] = BuildCharacter(partyInfo.charInfoes[i], initialPoints[i + 1], false); } else { _characters[i] = BuildCharacter(partyInfo.charInfoes[i], initialPoints[0], false); //For Chakra } _characters[i].Event_StateChange += OnCharacterStateChange; _characters[i].Event_ChakraApeared += OnChakraApear; _charsDic.Add(partyInfo.charInfoes[i].uniqueID, _characters[i]); } //Register charaters for click and receive spells foreach (Character ch in _charsDic.Values) { ch.Event_OnClick += OnCharacterClick; ch.Event_SpellReceived += OnCharacterSpellReceived; } //if (!FakeServer.instance.isFake) //{ _characters[_characters.Length - 1].SetIsChakra(true); _chakra = _characters[_characters.Length - 1]; //} }
//Base Methods public Party(PartyInfo partyInfo, PartySide side, Transform[] initialPoints, Transform selectingPoint, Deleg_ActionPointChanged onActionPointChanged) { Init(partyInfo, side, initialPoints, selectingPoint, onActionPointChanged); }
public void SecretReveal(int index, PartySide side, Action OnRevealComplete) { int partyIndex = side == PartySide.Player ? 0 : 1; _newBattleUI.ShowSecretRevealUI(_parties[partyIndex].secrets[index], OnRevealComplete); }