示例#1
0
    public void Init(TrapModel model, Vector3Int position)
    {
        m_model               = model;
        m_nextActivation      = Time.realtimeSinceStartup + m_model.Delay;
        m_activationPositions = new List <Vector2Int>();
        m_blockPositions      = new List <Vector2Int>();

        m_position = new Vector2Int(position.x, position.y);
        m_activationPositions.AddRange(m_model.ActivationPositions(m_position));
        m_blockPositions.AddRange(m_model.BlockPositions(m_position));
    }
示例#2
0
    public bool CanSpawnTrapAt(TrapModel model, Vector3Int position)
    {
        var positions     = Helper.ToVector3Int(model.BlockPositions(new Vector2Int(position.x, position.y)));
        var trapPositions = GridInformation.GetAllPositions(TilemapProperty.TrapProperty);

        if (!positions.All((pos) => trapPositions.Contains(pos)))
        {
            return(false);
        }

        List <Vector3Int> allTrapsPositions = new List <Vector3Int>();

        m_traps.ForEach((t) => allTrapsPositions.AddRange(Helper.ToVector3Int(t.BlockPositions)));
        return(!positions.Any((pos) => allTrapsPositions.Contains(pos)));
    }