Ejemplo n.º 1
0
    GameObject InstantiateTileGoFromTileType(GridTileType type)
    {
        GameObject ret = null;

        GameObject prefab = null;

        switch (type)
        {
        case GridTileType.GRID_TIILE_TYPE_STATIC:
            prefab = LevelCreatorEditor.Instance.GetStaticTilePrefab();
            break;

        case GridTileType.GRID_TILE_TYPE_MOVE:
            prefab = LevelCreatorEditor.Instance.GetBaseMoveTilePrefab();
            break;
        }

        if (prefab != null)
        {
            ret = Instantiate(prefab, Vector3.zero, Quaternion.identity);
            GridTileInstance tile_script = ret.AddComponent <GridTileInstance>();
            tile_script.Init(this, type);
        }

        return(ret);
    }
Ejemplo n.º 2
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        GameEntity entity_hit = collision.gameObject.GetComponent <GameEntity>();

        if (entity_hit != null)
        {
            if (sender != entity_hit)
            {
                EventManager.Event ev = new EventManager.Event(EventManager.EventType.ENTITY_HIT);
                ev.entity_hit.hit    = entity_hit;
                ev.entity_hit.sender = sender;
                EventManager.Instance.SendEvent(ev);

                Destroy(gameObject);
                return;
            }
        }

        GridTileInstance tile_hit = collision.gameObject.GetComponent <GridTileInstance>();

        if (tile_hit != null)
        {
            EventManager.Event ev = new EventManager.Event(EventManager.EventType.TILE_HIT);
            ev.tile_hit.tile   = tile_hit;
            ev.tile_hit.bullet = this;
            ev.tile_hit.sender = sender;
            EventManager.Instance.SendEvent(ev);

            hits = true;

            Destroy(gameObject);

            return;
        }
    }
Ejemplo n.º 3
0
    private bool CheckMovementTile(GameGridInstance.GridTile tile, MoveDirection dir)
    {
        bool ret = false;

        if (tile != null)
        {
            GridTileInstance tile_ins_go = tile.go.GetComponent <GridTileInstance>();

            if (tile_ins_go != null && tile_ins_go.Type() != GameGridInstance.GridTileType.GRID_TIILE_TYPE_STATIC)
            {
                Vector2Int grid_pos_to_offset = GetOffsetByDirection(dir);

                Vector2Int grid_pos_to_check = tile.grid_pos + grid_pos_to_offset;

                GameGridInstance.GetTileByGridPosState state;
                GameGridInstance.GridTile tile_check = grid_inst.GetTileByGridPos(grid_pos_to_check, out state);

                switch (state)
                {
                case GameGridInstance.GetTileByGridPosState.SUCCES:
                {
                    if (tile_check.go != null)
                    {
                        ret = CheckMovementTile(tile_check, dir);
                    }
                    else
                    {
                        ret = true;
                    }
                }
                break;

                case GameGridInstance.GetTileByGridPosState.NO_TILE_FOUND:
                {
                    ret = true;
                }
                break;
                }
            }
        }

        return(ret);
    }