コード例 #1
0
    public void ActiveAttack(eBATTLE_ALLY Ally, short nStartPosIndex, int TargetIndex, NkBattleChar pkTarget)
    {
        NkBattleChar currentSelectChar = Battle.BATTLE.GetCurrentSelectChar();

        if (currentSelectChar != null)
        {
            if (this.preTargetIndex == TargetIndex)
            {
                return;
            }
            this.preTargetIndex = TargetIndex;
            short num = 0;
            if (pkTarget != null && currentSelectChar.CanAttack(pkTarget, (short)TargetIndex, Vector3.zero, ref num) == -1)
            {
                return;
            }
            NkSoldierInfo      soldierInfo = currentSelectChar.GetSoldierInfo();
            E_ATTACK_GRID_TYPE aTTACKGRID  = (E_ATTACK_GRID_TYPE)soldierInfo.GetAttackInfo().ATTACKGRID;
            Vector2            size        = this.GetSize(Ally, nStartPosIndex);
            int   xMax  = (int)size.x;
            int   yMax  = (int)size.y;
            int[] index = BASE_BATTLE_GridData_Manager.GetInstance().GetIndex(aTTACKGRID, TargetIndex, xMax, yMax);
            if (index != null)
            {
                List <NmBattleGrid> battleGridList = this.GetBattleGridList(Ally, nStartPosIndex);
                foreach (NmBattleGrid current in battleGridList)
                {
                    if (current.BUID != -1)
                    {
                        current.SetMode(E_RENDER_MODE.NORMAL);
                    }
                    else
                    {
                        current.SetMode(E_RENDER_MODE.DISABLE);
                    }
                }
                int[] array = index;
                for (int i = 0; i < array.Length; i++)
                {
                    int index2 = array[i];
                    if (NrGridData.IndexAccessAble(index2, xMax, yMax))
                    {
                        battleGridList[index2].SetMode(E_RENDER_MODE.ATTACK);
                    }
                }
            }
        }
    }
コード例 #2
0
    public void ActiveAttackGridCanTarget()
    {
        NkBattleChar currentSelectChar = Battle.BATTLE.GetCurrentSelectChar();

        if (currentSelectChar == null)
        {
            return;
        }
        eBATTLE_ALLY eBATTLE_ALLY = (currentSelectChar.Ally != eBATTLE_ALLY.eBATTLE_ALLY_0) ? eBATTLE_ALLY.eBATTLE_ALLY_0 : eBATTLE_ALLY.eBATTLE_ALLY_1;

        NkBattleChar[] charArray = NrTSingleton <NkBattleCharManager> .Instance.GetCharArray();

        short num = 0;

        NkBattleChar[] array = charArray;
        for (int i = 0; i < array.Length; i++)
        {
            NkBattleChar nkBattleChar = array[i];
            if (nkBattleChar != null)
            {
                int iD = nkBattleChar.GetID();
                if (iD >= 0 && charArray[iD] != null && charArray[iD].Ally == eBATTLE_ALLY)
                {
                    Vector2             size                  = this.GetSize(eBATTLE_ALLY, nkBattleChar.GetStartPosIndex());
                    int                 xMax                  = (int)size.x;
                    int                 yMax                  = (int)size.y;
                    int                 gridPos               = (int)nkBattleChar.GetGridPos();
                    List <NmBattleGrid> battleGridList        = this.GetBattleGridList(eBATTLE_ALLY, nkBattleChar.GetStartPosIndex());
                    int[]               gridIndexFromCharSize = nkBattleChar.GetGridIndexFromCharSize((short)gridPos);
                    if (gridIndexFromCharSize != null && gridIndexFromCharSize.Length > 0)
                    {
                        int[] array2 = gridIndexFromCharSize;
                        for (int j = 0; j < array2.Length; j++)
                        {
                            int num2 = array2[j];
                            int num3 = currentSelectChar.CanAttack(charArray[iD], (short)num2, Vector3.zero, ref num);
                            if ((num3 == 1 || num3 == -2) && NrGridData.IndexAccessAble(num2, xMax, yMax))
                            {
                                battleGridList[num2].SetMode(E_RENDER_MODE.ATTACK);
                            }
                        }
                    }
                }
            }
        }
    }