void HandleDeath() { if (_InSquad) { RemoveFromSquad(PikminStates.Dead); } if (_RagdollTime > 0) { _Rigidbody.constraints = RigidbodyConstraints.None; _Rigidbody.isKinematic = false; _Rigidbody.useGravity = true; _RagdollTime -= Time.deltaTime; return; } PikminStatsManager.Remove(_Data._Colour, _CurrentMaturity, _CurrentStatSpecifier); AudioSource.PlayClipAtPoint(_Data._DeathNoise, transform.position, _Data._AudioVolume); // Create the soul gameobject, and play the death noise var soul = Instantiate(_DeathParticle, transform.position, Quaternion.Euler(-90, 0, 0)).GetComponent <ParticleSystem> (); var soulEffect = soul.main; soulEffect.startColor = _Data._DeathSpiritColour; Destroy(soul.gameObject, 5); // Remove the object Destroy(gameObject); }
public void AddToSquad() { if (!_InSquad && _CurrentState != PikminStates.Dead) { _InSquad = true; ChangeState(PikminStates.RunningTowards); PikminStatsManager.AddToSquad(this, _Data._Colour, _CurrentMaturity); PikminStatsManager.ReassignFormation(); } }
void Awake() { _Rigidbody = GetComponent <Rigidbody> (); _AudioSource = GetComponent <AudioSource> (); _Collider = GetComponent <CapsuleCollider> (); _PikminMask = LayerMask.NameToLayer("Pikmin"); _CurrentStatSpecifier = PikminStatSpecifier.OnField; PikminStatsManager.Add(_Data._Colour, _CurrentMaturity, _CurrentStatSpecifier); }
void Update() { if (Input.GetKeyDown(_KeyToApply)) { Instantiate(_Pikmin, transform.position, Quaternion.identity); } if (Input.GetKeyDown(_KeyToPrint)) { PikminStatsManager.Print(); } }
public void RemoveFromSquad(PikminStates to = PikminStates.Idle) { if (_InSquad) { _InSquad = false; _TargetObject = null; ChangeState(to); PikminStatsManager.RemoveFromSquad(this, _Data._Colour, _CurrentMaturity); PikminStatsManager.ReassignFormation(); } }
void Update() { int areaValue = PikminStatsManager.GetTotalOnField(); int squadValue = PikminStatsManager.GetTotalInSquad(); if (_OnFieldText.text != areaValue.ToString()) { PlayChangeAnimation(true); _OnFieldText.text = areaValue.ToString(); } if (_InSquadText.text != squadValue.ToString()) { PlayChangeAnimation(false); _InSquadText.text = squadValue.ToString(); } _Flasher.index = areaValue >= 100 ? 1 : 0; }
void Update() { // Tab pauses the game, experimental if (Application.isEditor) { if (Input.GetKeyDown(KeyCode.Tab)) { GameManager._IsPaused = !GameManager._IsPaused; Time.timeScale = GameManager._IsPaused ? 0 : 1; } if (Input.GetKeyDown(KeyCode.Alpha3)) { SubtractHealth(_MaxHealth / 10); } } if (_CurrentHealth <= 0) { Debug.Log("Player is dead!"); Debug.Break(); } // If the health is less that a quarter of what the max is, then play the low health audio if (_CurrentHealth / _MaxHealth < 0.25f) { _LowHealthAudioTimer += Time.deltaTime; if (_LowHealthAudioTimer >= _LowHealthDelay) { _LowHealthAudioTimer = 0; _AudioSource.PlayOneShot(_LowHealthClip); } } Vector3 targetPosition = _FormationCenter.transform.position - transform.position; _FormationCenter.transform.position = transform.position + Vector3.ClampMagnitude(targetPosition, _StartingDistance + _DistancePerPikmin * PikminStatsManager.GetTotalInSquad()); //Added by Chirz if (!_Paralyzed) { interactorKey.action = Input.GetKeyDown(KeyCode.Space); } }
void Update() { if (GameManager._Player._Paralyzed) { return; } if (Input.GetButtonDown("X Button")) { PikminStatsManager.ClearSquad(); } bool attemptedGrab = false; if (Input.GetButtonDown("A Button")) { attemptedGrab = true; if (PikminStatsManager.GetTotalInSquad() > 0) { _HoldingPikmin = GetClosestPikmin(); if (_HoldingPikmin != null) { _HoldingPikminAI = _HoldingPikmin.GetComponent <PikminAI> (); _HoldingPikminAI.StartThrowHold(); } } } if (_HoldingPikmin != null) { // TODO: Add throwing if (Input.GetButton("A Button")) { _HoldingPikmin.transform.position = transform.position + transform.forward; } else { // Throw the Pikmin! _HoldingPikminAI.EndThrowHold(_ReticleTransform.position); _HoldingPikmin = null; _HoldingPikminAI = null; } } else if (attemptedGrab && _PunchTimer <= 0) { // We couldn't grab a Pikmin, we can punch now Collider[] pCollided = Physics.OverlapBox(transform.position + transform.forward - transform.right / 2, _PunchBoxSize / 2, transform.rotation, _PunchAffectedLayers); foreach (var pHit in pCollided) { var hComponent = pHit.GetComponent <IHealth> (); // Hit the object! hComponent.SubtractHealth(_PunchDamage); // TODO: figure out a particular system to allow for custom hit particles / sounds } _PunchTimer = _PunchCooldown; } // Decrease the punch timer if we've punched, effectively acts as a cooldown so you can't spam if (_PunchTimer > 0) { _PunchTimer -= Time.deltaTime; } }