// Based on which state the flux is either does nothing or moves towards the destination or depletes the trail void Update() { if (!MapUtility.GamePaused) { switch (state) { case FluxLifeState.Idle: break; case FluxLifeState.Moving: //se il flusso si sta muovendo, si sposta verso la destinazione alla velocita' inserita if ((destination - trailScaler.transform.position).magnitude > arrivalAcceptanceMargin) { this.transform.position += (destination - this.transform.position).normalized * speed * Time.deltaTime; } else { tip.SetActive(false); state = FluxLifeState.Idle; GameManager.Instance().FluxArrivedAtDestination(this); hasArrived = true; } break; case FluxLifeState.Depleting: //se il flusso si sta consumando, si accorcia (scala negativamente) alla velocita' inserita if (trailScaler.transform.localScale.z > scaleAcceptanceLevel) { trailScaler.transform.localScale = trailScaler.transform.localScale - new Vector3(0, 0, scalingSpeed) * Time.deltaTime; } else { state = FluxLifeState.Depleted; GameManager.Instance().FluxDepleted(this); } break; case FluxLifeState.Depleted: break; } } }
public void pauseDepletion() { state = FluxLifeState.Idle; //Debug.Log("Stop depletion"); }
public void startDepletion() { state = FluxLifeState.Depleting; //Debug.Log("Start depletion"); }