예제 #1
0
    //Private Methods
    private void NormalAttack(BtlCtrlCharacter currentSlcCharacter,
                              BtlCtrlParty[] parties,
                              BattleController.TeamTypes teamType,
                              Action <long, int, List <long> > onMove)
    {
        Divine.Moniker moniker;

        int partyIndex = teamType == BattleController.TeamTypes.Player ? 0 : 1;

        List <BtlCtrlCharacter> chs         = parties[partyIndex].GetCharacters();
        List <BtlCtrlCharacter> availableCh = new List <BtlCtrlCharacter>();

        for (int i = 0; i < chs.Count; i++)
        {
            if (chs[i].isActive && !chs[i].isDead)
            {
                availableCh.Add(chs[i]);
            }
        }

        int rnd = UnityEngine.Random.Range(0, availableCh.Count);

        moniker = availableCh[rnd].moniker;

        NormalAttack(currentSlcCharacter, parties, moniker, onMove);
    }
    public void Init(List <BtlCtrlCharacter> characters, BattleController.TeamTypes teamType, string partyName)
    {
        _characters = new Dictionary <int, BtlCtrlCharacter>();

        _teamType = teamType;

        _name = partyName;

        for (int i = 0; i < characters.Count; i++)
        {
            BtlCtrlCharacter.Type ty = characters[i].type;

            if (ty == BtlCtrlCharacter.Type.Hero)
            {
                _hero = characters[i];
            }
            else if (ty == BtlCtrlCharacter.Type.Chakra)
            {
                _chakra = characters[i];
            }

            characters[i].SetRelatedParty(this);
            _characters.Add(characters[i].id, characters[i]);
        }
    }