private void OnTriggerEnter2D(Collider2D other) { RaycastHit2D ground = new RaycastHit2D(); if (!hasExploded) { ground = Physics2D.Raycast(transform.position, Vector2.down, 0.3f, LayerMask.GetMask("Ground", "Ground Ignore")); } if (!imediate) { if ((other.CompareTag("Scenery") || other.CompareTag("Obstacle")) && !hasExploded && ground.collider != null) { var angle = Vector2.Angle(ground.normal, Vector2.up); rigidbody2D.velocity = Vector2.zero; rigidbody2D.angularVelocity = 0; rigidbody2D.bodyType = RigidbodyType2D.Kinematic; spriteRenderer.enabled = false; hasExploded = true; durationCurrentTime = Time.time + duration; CoroutineManager.AddCoroutine(EffectCoroutine(angle, ground.point), "EffectCoroutine"); } } }
public void AfterEffect() { currentTimeAdrenalineEffect = Time.time + durationAfterEffect; CoroutineManager.AddCoroutine( AdrenalineEffectCoroutine(staminaRegenMultiplierAfterEffect, velocityMultiplierAfterEffect), "AdrenalineEffectCoroutine", this); }
private void Start() { if (instance == null) { instance = this; DontDestroyOnLoad(this); } else if (instance != null) { Destroy(this.gameObject); return; } CoroutineManager.SetMonoBehaviourInstance(this); if (nativeResolution.height == 0) { CoroutineManager.AddCoroutine(GetNativeResolutionCoroutine(), "GetNativeResolutionCoroutine"); } currentSceneName = SceneManager.GetActiveScene().name; mainMenuSceneName = "Main Menu"; mainSceneName = "Final"; }
public void Effect(PlayerStatusController playerStatusController, PlayerHorizontalMovement playerHorizontalMovement, PlayerStatusVariables playerStatusVariables) { this.playerHorizontalMovement = playerHorizontalMovement; this.playerStatusController = playerStatusController; this.playerStatusVariables = playerStatusVariables; if (playerStatusVariables.isAdrenalineActive) { var range = Random.Range(0, 11); if (range <= 5) { playerStatusController.Die(); } else { playerStatusVariables.isMorphinActive = true; playerStatusController.RegenLifeTemporary(duration, lifeRegenAmount, true); } } else { playerStatusVariables.isMorphinActive = true; playerStatusController.RegenLifeTemporary(duration, lifeRegenAmount, false); currentTimeMorphinEffect = Time.time + duration; CoroutineManager.AddCoroutine(MorphinEffectCoroutine(staminaRegenMultiplier, velocityMultiplier), "MorphinEffectCoroutine", this); } }
private void RegenStamina() { if (Time.time >= currentTimeToStartStaminaRegen && currentStamina < maxStamina && !CoroutineManager.CheckIfCoroutineExists("RegenStaminaCoroutine")) { CoroutineManager.AddCoroutine(RegenStaminaCoroutine(), "RegenStaminaCoroutine"); } }
private void Update() { apostleController.CheckForCombatInput(); if (apostleController.AttackPress) { if (!apostleStatusVariables.isAttacking) { CoroutineManager.AddCoroutine(PrimaryAttack(), "PrimaryAttackCoroutine", this); } } }
public void ClimbOntoObstacle(Vector2 position) { PhysicsHelpers.SwitchGravity(rigidbody2D, false, currentGravityScale); PhysicsHelpers.ResetVelocityX(rigidbody2D); PhysicsHelpers.ResetVelocityY(rigidbody2D); rigidbody2D.isKinematic = true; playerController.RevokeControl(true, ControlTypeToRevoke.AllMovement); var coroutine = CoroutineManager.FindCoroutine("ClimbOntoObstacleCoroutine"); if (coroutine == null) { CoroutineManager.AddCoroutine(ClimbOntoObstacleCoroutine(position, climbingObstacleSmoothness), "ClimbOntoObstacleCoroutine"); } }
protected virtual void RevokeControl(float timeToRevoke, bool revoke, ControlTypeToRevoke controlTypeToRevoke, RevokeControlVariables revokeControlVariables, MonoBehaviour monoBehaviour) { var coroutine = CoroutineManager.FindCoroutine("RevokeControlCoroutine", monoBehaviour); if (coroutine == null) { CoroutineManager.AddCoroutine( RevokeControlCoroutine(timeToRevoke, controlTypeToRevoke, revokeControlVariables, true, monoBehaviour), "RevokeControlCoroutine", monoBehaviour); } else if (!coroutine.IsRunning) { CoroutineManager.DeleteCoroutine("RevokeControlCoroutine", monoBehaviour); CoroutineManager.AddCoroutine( RevokeControlCoroutine(timeToRevoke, controlTypeToRevoke, revokeControlVariables, true, monoBehaviour), "RevokeControlCoroutine", monoBehaviour); } }
public void ClimbOntoLadder(Transform ladderTransform) { PhysicsHelpers.IgnoreCollision(capsuleCollider2D, ladderTransform.GetComponent <LadderController>().adjacentCollider, true); PhysicsHelpers.SwitchGravity(rigidbody2D, false, currentGravityScale); PhysicsHelpers.ResetVelocityX(rigidbody2D); PhysicsHelpers.ResetVelocityY(rigidbody2D); rigidbody2D.isKinematic = true; apostleController.RevokeControl(true, ControlTypeToRevoke.AllMovement); var coroutine = CoroutineManager.FindCoroutine("ClimbOntoLadderCoroutine", this); if (coroutine == null) { CoroutineManager.AddCoroutine( ladderTransform.gameObject.layer != LayerMask.NameToLayer("Top Ladder") ? ClimbOntoLadderCoroutine(ladderTransform.GetChild(0).position, climbingLadderSmoothness) : ClimbOntoLadderCoroutine(ladderTransform.GetChild(0).position, climbingLadderSmoothness * 0.50f), "ClimbOntoLadderCoroutine", this); } }
public void Effect(PlayerStatusController playerStatusController, PlayerHorizontalMovement playerHorizontalMovement, PlayerStatusVariables playerStatusVariables) { this.playerHorizontalMovement = playerHorizontalMovement; this.playerStatusController = playerStatusController; this.playerStatusVariables = playerStatusVariables; playerStatusVariables.isAdrenalineActive = true; if (playerStatusVariables.isMorphinActive) { var range = Random.Range(0, 11); if (range <= 5) { playerStatusController.Die(); } } currentTimeAdrenalineEffect = Time.time + duration; CoroutineManager.AddCoroutine(AdrenalineEffectCoroutine(staminaRegenMultiplier, velocityMultiplier), "AdrenalineEffectCoroutine", this); }
public void LoadData(bool resetScene) { if (gameDataHolder == null) { return; } if (ExistsSave()) { if (resetScene) { CoroutineManager.AddCoroutine(ResetCurrentSceneAsyncCoroutine(currentSceneName), "ResetCurrentSceneAsyncCoroutine"); return; } BinaryFormatter formatter = new BinaryFormatter(); FileStream saveFile = File.Open("Saves/save.binary", FileMode.Open); saveData = (SaveData)formatter.Deserialize(saveFile); saveData.Load(gameDataHolder); saveFile.Close(); } }
public void ZoomCamera(bool zoomOut) { CoroutineManager.AddCoroutine(CameraController.ZoomCameraCoroutine(cameraZoomSize, 100, zoomOut), "ZoomCameraCoroutine"); }
public void QuitGame() { CoroutineManager.AddCoroutine(LoadSceneAsyncCoroutine(mainMenuSceneName, false), "LoadSceneAsyncCoroutine"); }
public void ContinueGame() { CoroutineManager.AddCoroutine(LoadSceneAsyncCoroutine(mainSceneName, false), "LoadSceneAsyncCoroutine"); }
public void NewGame() { CoroutineManager.AddCoroutine(LoadSceneAsyncCoroutine(mainSceneName, true), "LoadSceneAsyncCoroutine"); }
public static void IgnoreLayerCollision(LayerMask layerMask, LayerMask layerMaskToIgnore, bool ignore, float time) { CoroutineManager.AddCoroutine(IgnoreLayerCollisionCoroutine(layerMask, layerMaskToIgnore, ignore, time), "IgnoreLayerCollisionCoroutine"); Physics2D.IgnoreLayerCollision(layerMask.value, layerMaskToIgnore.value, ignore); }
private void OnApplyButtonClick() { CoroutineManager.AddCoroutine(ChangeResolutionCoroutine(), "ChangeResolutionCoroutine"); }
public void RegenLifeTemporary(float duration, float lifeToRegen, bool deactivateMorphin) { regenLifeTemporaryTime = Time.time + duration; CoroutineManager.AddCoroutine(RegenLifeTemporaryCoroutine(lifeToRegen, deactivateMorphin), "RegenLifeTemporaryCoroutine"); }