protected virtual void OnTriggerEnter2D(Collider2D collider) { // we check that the object colliding with the ladder is actually a corgi controller and a character ActCharacterNew actChar = collider.GetComponent <ActCharacterNew>(); if (actChar == null || actChar.GetAbility(typeof(ActClimbing)) == null) { return; } ActClimbing actClimbing = actChar.GetAbility(typeof(ActClimbing)) as ActClimbing; actClimbing.LadderColliding = true; actClimbing.CurrentLadder = this; }
/// <summary> /// Triggered when something exits the ladder /// </summary> /// <param name="collider">Something colliding with the ladder.</param> protected virtual void OnTriggerExit2D(Collider2D collider) { // we check that the object colliding with the ladder is actually a corgi controller and a character ActCharacterNew actChar = collider.GetComponent <ActCharacterNew>(); if (actChar == null || actChar.GetAbility(typeof(ActClimbing)) == null) { return; } ActClimbing actClimbing = actChar.GetAbility(typeof(ActClimbing)) as ActClimbing; // when the character is not colliding with the ladder anymore, we reset its various ladder related states actClimbing.LadderColliding = false; actClimbing.CurrentLadder = null; }
private void RegisterAbility() { { ActAbility ability = new ActMoveH(); ability.Initialization(this); AbilityList.Add(typeof(ActMoveH), ability); } { ActAbility ability = new ActClimbing(); ability.Initialization(this); AbilityList.Add(typeof(ActClimbing), ability); } { ActAbility ability = new ActJump(); ability.Initialization(this); AbilityList.Add(typeof(ActJump), ability); } { ActAbility ability = new ActDash(); ability.Initialization(this); AbilityList.Add(typeof(ActDash), ability); } { ActAbility ability = new ActCrouch(); ability.Initialization(this); AbilityList.Add(typeof(ActCrouch), ability); } { ActAbility ability = new ActWallCling(); ability.Initialization(this); AbilityList.Add(typeof(ActWallCling), ability); } { ActAbility ability = new ActWallJump(); ability.Initialization(this); AbilityList.Add(typeof(ActWallJump), ability); } { ActAbility ability = new ActGrip(); ability.Initialization(this); AbilityList.Add(typeof(ActGrip), ability); } }