public void ConsumeTotalResourceAmount(float amount) { amount += partialResourceConsumption; while (amount >= 1) { if (!resourceHolder.HasResources()) { amount = 0; break; } ConsumeNextResource(); amount--; } partialResourceConsumption = amount; if (!resourceHolder.HasResources()) { partialResourceConsumption = 0; } }
// Update is called once per frame void Update() { if (resourceHolder.HasResources()) { station.ConsumeTotalResourceAmount(1 * Time.deltaTime); robot.transform.Translate(speed * Time.deltaTime, 0, 0); WorldManager.Instance.currentScore += speed * Time.deltaTime; } else { } }
// Update is called once per frame void Update() { cooldownTimer -= Time.deltaTime; if (resourceHolder.HasResources() && cooldownTimer <= 0) { station.ConsumeTotalResourceAmount(1); WorldManager.Instance.AddScore(pointsPerResource); cooldownTimer += delay; } if (cooldownTimer < 0) { cooldownTimer = 0; } }
// Update is called once per frame void Update() { cooldownTimer -= Time.deltaTime; if (resourceHolder.HasResources()) { //fireballs if (resourceHolder.GetHighestResource() == ResourceObject.ResourceType.Wood) { station.ConsumeTotalResourceAmount(fireballConsumptionSpeed * Time.deltaTime); if (cooldownTimer <= 0) { GameObject obj = Instantiate(fireball, spawnPosition.position, spawnPosition.rotation); obj.GetComponent <Rigidbody2D>().AddForce(fireballSpeed * (Vector2)obj.transform.right + new Vector2(0, Random.Range(-4, 4)), ForceMode2D.Impulse); cooldownTimer += fireballCooldown; } } //lasers if (resourceHolder.GetHighestResource() == ResourceObject.ResourceType.Crystal) { station.ConsumeTotalResourceAmount(laserConsumptionSpeed * Time.deltaTime); if (cooldownTimer <= 0) { GameObject obj = Instantiate(laser, spawnPosition.position, spawnPosition.rotation); obj.GetComponent <Rigidbody2D>().AddForce(laserSpeed * obj.transform.right, ForceMode2D.Impulse); cooldownTimer += laserCooldown; } } //shield if (resourceHolder.GetHighestResource() == ResourceObject.ResourceType.Metal) { station.ConsumeTotalResourceAmount(shieldConsumptionSpeed * Time.deltaTime); shield.SetActive(true); } else { shield.SetActive(false); } } else { shield.SetActive(false); } if (cooldownTimer < 0) { cooldownTimer = 0; } }