Esempio n. 1
0
    /// <summary>
    /// Внести всю нежную информацию о юните в массивы,
    /// и самого юнита внести в массив юнитов
    /// </summary>
    /// <param name="_objectForRegister">регистрируемый юнит</param>
    public void RegisterInGlobalMap(Unit_SC _objectForRegister)
    {
        Vector2Int _key = _objectForRegister.gridPosition;

        if (!landBigUnits.ContainsKey(_key))
        {
            landBigUnits.Add(_key, _objectForRegister);

            ++landsUnitsQuantity;
        }
        else
        {
            Debug.LogError("Ключ " + _key + " уже используется");
        }
    }
Esempio n. 2
0
    /// <summary>
    /// Проверить возможность передвижения
    /// </summary>
    /// <param name="_posForCheck">Куда идет?</param>
    /// <param name="_moveUnit">Кто идет?</param>
    /// <returns></returns>
    public bool CheckMoveLegal(Vector2Int _posForCheck, Unit_SC _moveUnit)
    {
        if (landObjects.ContainsKey(_moveUnit.gridPosition + _posForCheck))
        {
            if (!landObjects[_moveUnit.gridPosition + _posForCheck].isOpen)
            {
                return(false);
            }
        }

        if (landBigUnits.ContainsKey(_moveUnit.gridPosition + _posForCheck))
        {
            if (!landBigUnits[_moveUnit.gridPosition + _posForCheck].TryMove(_posForCheck))
            {
                return(false);
            }
        }

        MoveElementInDictionary(_posForCheck, _moveUnit);
        return(true);
    }
Esempio n. 3
0
 void MoveElementInDictionary(Vector2Int _posForCheck, Unit_SC _moveUnit)
 {
     landBigUnits.Add(_moveUnit.gridPosition + _posForCheck, _moveUnit);
     landBigUnits.Remove(_moveUnit.gridPosition);
 }