public void fire(float f) { if (RunnerHealth.isInSwitch()) { return; } // TODO: Currently thresholding input to start/stop firing. Can modify to synchronize firing rate in // proportion to given float in range which is in range [0.0f, 1.0f]. if (Time.time - lastFired > 60 / firing_rate && f > 0.5f) { Vector3 barrel_top = _barrel.transform.TransformPoint(new Vector3(0, 1, 0)); GameObject go = MonoBehaviour.Instantiate(Resources.Load("CannonBall") as GameObject, barrel_top, Quaternion.identity); go.layer = LayerMask.NameToLayer("Projectile"); go.GetComponent <Renderer> ().material = _barrel.GetComponent <Renderer> ().material; go.GetComponent <Rigidbody> ().velocity = (_barrel.transform.TransformPoint(new Vector3(0, 1, 0)) - _barrel.transform.position) * 15; go.GetComponent <CannonBallMetadata> ().setMetadata(cID, this); float alpha = 1.0f; Gradient gradient = new Gradient(); gradient.SetKeys( new GradientColorKey[] { new GradientColorKey(Color.black, 0.0f), new GradientColorKey(getMaterial().color, 1.0f) }, new GradientAlphaKey[] { new GradientAlphaKey(alpha, 0.0f), new GradientAlphaKey(alpha, 1.0f) } ); go.GetComponent <TrailRenderer>().colorGradient = gradient; lastFired = Time.time; //DO NOT REMOVE THIS LINE AudioDriver.S.play(SoundType.launch); } }
void Update() { if (RunnerHealth.isInSwitch()) { return; } runner.layer = powerUpState ["Shield"] ? LayerMask.NameToLayer("Invincible") : LayerMask.NameToLayer("Default"); if (powerUpState ["SlowDown"]) { currentRunner.speed = defaultRunnerSpeed * 0.5f; } else if (powerUpState ["SpeedUp"]) { currentRunner.speed = defaultRunnerSpeed * 2.0f; } else { currentRunner.speed = defaultRunnerSpeed; } if (powerUpState ["JumpHigh"]) { currentRunner.jumpPower = defaultJumpPower * 2; } else { currentRunner.jumpPower = defaultJumpPower; } CannonControl.freeze = powerUpState ["FreezeCannon"]; }
void Awake() { rh = this; // initialize to 1 for now runnerHealth = 1; //initialize cannon color //get pID from cID //check cannon1 //check cannon2 //check cannon3 }