Пример #1
0
    protected List <Vector2Int> GetBuffsSpawnPositions(GameMap map, Tileset tileset)
    {
        List <Vector2Int> spawnPositions = new List <Vector2Int>();
        MapModifier       mapModifier    = new MapModifier(map);
        GameData          gameData       = new AssetProxy(typeof(GameData)).LoadAsset("Objects/Data.asset");
        int buffsEntries = 0;

        for (int x = -map.sizeX / 2; x < map.sizeX / 2; x++)
        {
            for (int y = -map.sizeY / 2; y < map.sizeY / 2; y++)
            {
                if (tileset.GetIndoorTiles().Contains(mapModifier.GetGroundTile(new Vector3Int(x, y, 0))) &&
                    !tileset.GetStructureTiles().Contains(mapModifier.GetStructureTile(new Vector3Int(x, y, 0))))
                {
                    //spawn
                    if (Random.value < gameData.GetSpawnRate())
                    {
                        spawnPositions.Add(new Vector2Int(x, y));
                        buffsEntries++;
                    }
                    if (buffsEntries >= MAX_BUFFS_ENTRIES)
                    {
                        return(spawnPositions);
                    }
                }
            }
        }
        Debug.Log("Buffs spawn rate:" + gameData.GetSpawnRate());
        return(spawnPositions);
    }
Пример #2
0
        private void AddRequest(AssetItem item, AssetProxy proxy)
        {
            var request = new ThumbnailRequest(item, proxy);

            _requests.Add(request);
            item.AddReference(this);
        }
Пример #3
0
    public ForestTileset()
    {
        ground             = new List <TileBase>();
        indoorGround       = new List <TileBase>();
        structures         = new List <TileBase>();
        decorationsInside  = new List <TileBase>();
        decorationsOutside = new List <TileBase>();
        AssetProxy tileProxy = new AssetProxy(typeof(TileBase));

        decorationsInside.Add(tileProxy.LoadAsset("Objects/Tiles/Forest/decoration_dungeon.asset"));
        decorationsInside.Add(tileProxy.LoadAsset("Objects/Tiles/Forest/decoration_dungeon1.asset"));
        decorationsInside.Add(tileProxy.LoadAsset("Objects/Tiles/Forest/decoration_dungeon2.asset"));
        decorationsInside.Add(tileProxy.LoadAsset("Objects/Tiles/Forest/decoration_dungeon3.asset"));
        decorationsOutside.Add(tileProxy.LoadAsset("Objects/Tiles/Forest/decoration_outdoor.asset"));
        ground.Add(tileProxy.LoadAsset("Objects/Tiles/Shared/ground.asset"));
        ground.Add(tileProxy.LoadAsset("Objects/Tiles/Shared/ground1.asset"));
        indoorGround.Add(tileProxy.LoadAsset("Objects/Tiles/Forest/stone_floor.asset"));
        indoorGround.Add(tileProxy.LoadAsset("Objects/Tiles/Forest/stone_deco1.asset"));
        indoorGround.Add(tileProxy.LoadAsset("Objects/Tiles/Forest/stone_deco2.asset"));
        indoorGround.Add(tileProxy.LoadAsset("Objects/Tiles/Forest/stone_deco3.asset"));
        indoorGround.Add(tileProxy.LoadAsset("Objects/Tiles/Forest/stone_deco4.asset"));
        indoorGround.Add(tileProxy.LoadAsset("Objects/Tiles/Forest/stone_deco5.asset"));
        indoorGround.Add(tileProxy.LoadAsset("Objects/Tiles/Forest/stone_deco6.asset"));
        structures.Add(tileProxy.LoadAsset("Objects/Tiles/Forest/stone.asset"));
    }
Пример #4
0
    public void BuildExit()
    {
        AssetProxy     pr       = new AssetProxy(typeof(GameObject));
        GameObject     exitTile = Object.Instantiate(pr.LoadAsset("Objects/Tiles/ExitTile.prefab"));
        Vector2Int     settings = StaticTestSettings.getMapSize();
        int            stX      = settings.x;
        int            stY      = settings.y;
        List <Vector3> availabeleExitLocation = new List <Vector3>();

        do
        {
            for (int i = -stX / 2; i < stX / 2; i++)
            {
                for (int j = -stY / 2; j < stY / 2; j++)
                {
                    if (tiles.GetIndoorTiles().Contains(mapOperations.GetGroundTile(new Vector3Int(i, j, 0))) && !tiles.GetStructureTiles().Contains(mapOperations.GetStructureTile(new Vector3Int(i, j, 0))))
                    {
                        if (Random.value < 0.1)
                        {
                            availabeleExitLocation.Add(new Vector3(i, j));
                        }
                    }
                }
            }
        }while (availabeleExitLocation.Count == 0);
        int     exitLocationIndex = Random.Range(0, availabeleExitLocation.Count);
        Vector3 exitLocation      = availabeleExitLocation[exitLocationIndex];

        exitTile.transform.Translate(exitLocation);
        exitTile.transform.Translate(new Vector3(0.5f, 0.5f));
    }
Пример #5
0
    public AbstractSpawner()
    {
        AssetProxy prefabLoader = new AssetProxy(typeof(GameObject));

        playerPrefab   = prefabLoader.LoadAsset("Objects/Player/Player.prefab");
        healtBarPrefab = prefabLoader.LoadAsset("Objects/HpBar/healthBar.prefab");
    }
Пример #6
0
    public DemonFactory()
    {
        AssetProxy prefabLoader = new AssetProxy(typeof(GameObject));

        meleePrefab  = prefabLoader.LoadAsset("Objects/Enemy/Demon.prefab");
        rangedPrefab = prefabLoader.LoadAsset("Objects/Enemy/Demon.prefab");
    }
Пример #7
0
    public void Spawn(GameMap map, Tileset tileset)
    {
        NextLevelData   nextLevelData = new AssetProxy(typeof(NextLevelData)).LoadAsset("Objects/NextData.asset");
        Locations       mapType       = nextLevelData.GetLocation();
        AbstractSpawner enemySpawner;

        switch (mapType)
        {
        case Locations.Forest:
        {
            enemySpawner = new ForestSpawner();
            enemySpawner.Spawn(map, tileset);
            break;
        }

        case Locations.Desert:
        {
            enemySpawner = new DesertSpawner();
            enemySpawner.Spawn(map, tileset);
            break;
        }

        case Locations.Village:
        {
            enemySpawner = new VillageSpawner();
            enemySpawner.Spawn(map, tileset);
            break;
        }
        }
    }
Пример #8
0
    public SkeletonProjectile(float speed)
    {
        AssetProxy prefabLoader = new AssetProxy(typeof(GameObject));

        projectilePrefab = prefabLoader.LoadAsset("Objects/Projectiles/Bone.prefab");
        projectilePrefab.GetComponent <Projectile>().speed = speed;
    }
Пример #9
0
    public ClosedState()
    {
        AssetProxy GameObjectLoader = new AssetProxy(typeof(GameObject));

        hpbar     = GameObjectLoader.LoadAsset("Objects/HpBar/healthBar.prefab");
        bossEnemy = GameObjectLoader.LoadAsset("Objects/Enemy/Skeleton.prefab");
        // redo to spawner
    }
Пример #10
0
    public OpenedState()
    {
        gameData = new AssetProxy(typeof(GameData)).LoadAsset("Objects/Data.asset");
        AssetProxy GameObjectLoader = new AssetProxy(typeof(GameObject));

        particles      = Object.Instantiate(GameObjectLoader.LoadAsset("Objects/Tiles/ExitTileParticles.prefab"));
        particleSystem = particles.GetComponent <ParticleSystem>();
        particleSystem.Stop();
    }
Пример #11
0
    public DamageSpawn()
    {
        AssetProxy prefabLoader = new AssetProxy(typeof(GameObject));
        GameObject buffPrefab   = prefabLoader.LoadAsset("Objects/Buffs/Damage.prefab");

        buffObject = Object.Instantiate(buffPrefab);
        DamageBuff healBuffScript = buffObject.GetComponent <DamageBuff>();

        healBuffScript.damage           = DAMAGE_UPGRADE_AMOUNT;
        buffObject.transform.localScale = new Vector3(0.25f, 0.25f, 0.25f);
    }
Пример #12
0
    public HealSpawn()
    {
        AssetProxy prefabLoader = new AssetProxy(typeof(GameObject));
        GameObject buffPrefab   = prefabLoader.LoadAsset("Objects/Buffs/Heal.prefab");

        buffObject = Object.Instantiate(buffPrefab);
        HealBuff healBuffScript = buffObject.GetComponent <HealBuff>();

        healBuffScript.healAmount       = HEAL_AMOUNT;
        buffObject.transform.localScale = new Vector3(0.25f, 0.25f, 0.25f);
    }
Пример #13
0
    // Start is called before the first frame update
    void Start()
    {
        damage           = PlayerPrefs.GetInt("Damage");
        health           = PlayerPrefs.GetInt("Health");
        healthController = new HealthController(health);
        playerController = new PlayerController();
        body             = GetComponent <Rigidbody2D>();
        //creating hpbar for player:
        AssetProxy prefabLoader   = new AssetProxy(typeof(GameObject));
        GameObject healtBarPrefab = prefabLoader.LoadAsset("Objects/HpBar/healthBar.prefab");
        GameObject playerHpBar    = Object.Instantiate(healtBarPrefab);

        playerHpBar.GetComponent <HealthBar>().setTarget(gameObject);
        gameObject.GetComponent <Player>().healthController.hpbar = playerHpBar.GetComponent <HealthBar>();
    }
Пример #14
0
    public VillageTileset()
    {
        ground             = new List <TileBase>();
        indoorGround       = new List <TileBase>();
        structures         = new List <TileBase>();
        decorationsOutside = new List <TileBase>();
        decorationsInside  = new List <TileBase>();
        AssetProxy tileProxy = new AssetProxy(typeof(TileBase));

        ground.Add(tileProxy.LoadAsset("Objects/Tiles/Shared/ground.asset"));
        ground.Add(tileProxy.LoadAsset("Objects/Tiles/Shared/ground1.asset"));
        decorationsInside.Add(tileProxy.LoadAsset("Objects/Tiles/Forest/decoration_dungeon3.asset"));
        decorationsOutside.Add(tileProxy.LoadAsset("Objects/Tiles/Forest/decoration_outdoor.asset"));
        indoorGround.Add(tileProxy.LoadAsset("Objects/Tiles/Village/village_floor.asset"));
        structures.Add(tileProxy.LoadAsset("Objects/Tiles/Village/village_wall.asset"));
    }
Пример #15
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ThumbnailRequest"/> class.
 /// </summary>
 /// <param name="item">The item.</param>
 /// <param name="proxy">The proxy.</param>
 public ThumbnailRequest(AssetItem item, AssetProxy proxy)
 {
     Item  = item;
     Proxy = proxy;
 }
Пример #16
0
    public Spawner()
    {
        AssetProxy prefabLoader = new AssetProxy(typeof(GameObject));

        playerPrefab = prefabLoader.LoadAsset("Objects/Player/Player.prefab");
    }