Exemplo n.º 1
0
 public async Task Effect(CancellationToken cancellationToken)
 {
     for (int i = 0; i < deathGeneration; i++)
     {
         mpGenerator.MP++;
         await timeAdapter.Delay(500, cancellationToken);
     }
 }
Exemplo n.º 2
0
        public async Task <(ResourceType resource, int quantity)?> GenerateResource(CancellationToken cancellationToken)
        {
            CanGenerateResource = false;
            await timeAdapter.Delay(TimeSpan.FromSeconds(productionData.Seconds), cancellationToken);

            CanGenerateResource = true;

            var generatedResources = (productionData.Resource, productionData.Quantity);

            resourcesExchanger.AddResources(generatedResources);
            return(generatedResources);
        }
Exemplo n.º 3
0
        public async Task LoadEnemies(Wave wave, CancellationToken cancellationToken)
        {
            Enemies = new IEnemy[wave.Enemies.Length];
            for (int i = 0; i < wave.Enemies.Length && !cancellationToken.IsCancellationRequested && player.Alive; i++)
            {
                await timeAdapter.Delay(1000, cancellationToken);

                var enemy = enemyLoader.LoadEnemy(wave.Enemies[i].Type);
                Enemies[i] = enemy;

                _ = enemy.WaitForCompletion(cancellationToken);
            }
        }
        private async Task GenerateResourcesIndefinitelly(CancellationToken cancellationToken)
        {
            if (cancellationToken.IsCancellationRequested || !this.gameObject.activeInHierarchy)
            {
                return;
            }

            while (!cancellationToken.IsCancellationRequested && this.gameObject.activeInHierarchy)
            {
                await timeAdapter.Delay(TimeSpan.FromSeconds(productionData.Seconds), cancellationToken);

                var generatedResources = (productionData.Resource, productionData.Quantity);
                resourcesExchanger.AddResources(generatedResources);
            }
        }