public void Hit(Vector2 direction, float time, float startSpeed) { state = RoombaState.Ragdolling; velocityDirection = direction.normalized; ragdollSpeed = startSpeed; ragdollTimer = time; }
void Start() { _lockTransform = deathCanvas.transform.rotation; _pVar = GetComponent <PlayerVariables>(); _phy = GetComponent <CustomPhysics>(); _normalState = new NormalState(_pVar); _boostState = new BoostState(_pVar); _currentState = _normalState; _image = deathCanvas.GetComponentInChildren <Image>(); }
void Spin() { transform.Rotate(0, 0, spinSpeed * Time.deltaTime, Space.Self); if (Input.GetKeyDown(stopSpinningKey)) { velocityDirection = transform.up; moveTimer = moveDelay; state = RoombaState.Moving; } }
void FixedUpdate() { Debug.DrawLine(transform.position + Vector3.zero, transform.position + transform.forward, Color.red); Debug.DrawLine(transform.position + Vector3.zero, transform.position + new Vector3(_inputVector.x, 0, _inputVector.y), Color.green); Debug.DrawLine(transform.position + Vector3.zero, transform.position + new Vector3(bisector(_inputVector, transform.forward).x, 0, bisector(_inputVector, transform.forward).y), Color.blue); _currentState = _currentState.runFrame(this); if (transform.childCount <= _nChildNoBalloons) { destroyPlayer(); } }
private void Start() { _manager = FindObjectOfType <BattleController>(); _manager.AddPlayer(gameObject); _phy = gameObject.GetComponent <CustomPhysics>(); _col = gameObject.GetComponent <SphereCollider>(); _normalState = new NormalState(_speed, _maxVel, _rotateSpeed, _mesh); _boostingState = new BoostingState(_boostTime, _boostMaxSpeed, _mesh); _runPUState = new RunPowerUpState(_runPUTime, _speed * _runPUSpeedMultiplier, _rotateSpeed, _mesh); _currentState = _normalState; _currentPowerUp = new NoPowerUp(); }
void Ragdoll() { transform.Translate(velocityDirection * ragdollSpeed * Time.deltaTime, Space.World); ragdollSpeed = Mathf.Max(ragdollSpeed - Time.deltaTime * ragdollDecay, 0); ragdollTimer -= Time.deltaTime; if (ragdollTimer < 0 || ragdollSpeed == 0) { ragdollSpeed = initRagdollSpeed; state = RoombaState.Spinning; velocityDirection = Vector2.zero; // should not be used while spinning } }
// Use this for initialization void Start() { roomba_state = Camera.main.GetComponent<DisplayCollected>().roomba_state; }
public void onChangeState(RoombaState state) { _currentState = state; _currentState.EnterState(this); }
public void GetStunned(float v, Vector2 direction, float force) { _currentState = new StunnedState(v, direction, force); _currentState.EnterState(this); StartCoroutine(_vfx.activateStunned(v)); }