Example #1
0
 public static int GetMapPassValue(EnumMoveClassType moveClass, Vector2Int tilePos) //得到此处的人物通过消耗
 {
     if (IsOccupiedByDiffentParty(tilePos))                                         //图块被敌方占用,则我方不可通过,敌方按正常计算
     {
         return(100);
     }
     else
     {
         return(FeTileData.TileInfos[_MapTileType[tilePos.x, tilePos.y]].GetMoveCost(moveClass));
     }
 }
Example #2
0
    public static void InitActionScope(EnumCharacterCamp camp, EnumMoveClassType moveClass, int Movement, Vector2Int pos, EnumSelectEffectRangeType weaponRangeType, Vector2Int atkRange)
    {
        _bPlayer         = (camp != EnumCharacterCamp.Enemy);//0,2为我方的单位
        _Mov             = Movement;
        _MoveClass       = moveClass;
        _CharacterCenter = pos;

        ResetMoveAcessList();
        _bMoveAcessList[_CharacterCenter.x, _CharacterCenter.y]         = true;
        _bMoveAcessListExcluded[_CharacterCenter.x, _CharacterCenter.y] = true;
        _FootData.Add(_CharacterCenter, new Vector2Int(-1, -1));
        _TempFootData.Add(_CharacterCenter, _Mov);

        int countPoint = 0;

        while (countPoint < _Mov)
        {
            _FindDistance(_Mov);//递归查询距离   _FindDistance(Table._JobTable.getBranch(gamechar.attribute.Job), _Mov, 0, 0);
            countPoint++;
        }
        if (atkRange.x > 0 && atkRange.y > 0)//装备武器不为空
        {
            _AttackRangeData.Clear();
            _ItemRangeMin    = atkRange.x;
            _ItemRangeMax    = atkRange.y;
            _WeaponRangeType = weaponRangeType;
            if (_ItemRangeMax != 0 && _ItemRangeMax - _ItemRangeMin > -1) //武器有距离
            {
                for (int i = 0; i < _PList.Count; i++)                    //遍历可移动的区域
                {
                    AttackScan(_PList[i]);                                //递归查询距离   _FindDistance(Table._JobTable.getBranch(gamechar.attribute.Job), _Mov, 0, 0);
                }
            }
            MoveAcessListToAttackRange();
        }
    }
Example #3
0
 public int GetMoveCost(EnumMoveClassType t)
 {
     return(moveCost[(int)t]);
 }