/// <summary> /// Converts to KeyFunction /// All UserInputs are KeyFunctions so we don't need to worry about conversion /// </summary> /// <param name="value">UserInput to convert</param> /// <returns>Returns the corresponding KeyFunction</returns> public static KeyboardToEventHelper.KeyFunction InputToFunction(this Player.UserInput value) { switch (value) { case Player.UserInput.ATTACK: return(KeyboardToEventHelper.KeyFunction.ATTACK); case Player.UserInput.DASH: return(KeyboardToEventHelper.KeyFunction.DASH); case Player.UserInput.INTERACT: return(KeyboardToEventHelper.KeyFunction.INTERACT); case Player.UserInput.JUMP: return(KeyboardToEventHelper.KeyFunction.JUMP); case Player.UserInput.MOVEDOWN: return(KeyboardToEventHelper.KeyFunction.MOVEDOWN); case Player.UserInput.MOVELEFT: return(KeyboardToEventHelper.KeyFunction.MOVELEFT); case Player.UserInput.MOVERIGHT: return(KeyboardToEventHelper.KeyFunction.MOVERIGHT); case Player.UserInput.MOVEUP: return(KeyboardToEventHelper.KeyFunction.MOVEUP); default: return(KeyboardToEventHelper.KeyFunction.NONE); } }
/// <summary> /// Receiving a movement send it through a switch statement to figure out the dash dir /// </summary> private void MoveDir(Player.UserInput dir) { switch (dir) { case Player.UserInput.MOVEUP: dashDir += Vector2.up; //Incase swimming is also attached foreach (Movement m in GetComponents <Movement>()) { m.StopMovement(false, true); } break; case Player.UserInput.MOVERIGHT: dashDir += Vector2.right; foreach (Movement m in GetComponents <Movement>()) { m.StopMovement(true, false); } break; case Player.UserInput.MOVEDOWN: dashDir += Vector2.down; foreach (Movement m in GetComponents <Movement>()) { m.StopMovement(false, true); } break; case Player.UserInput.MOVELEFT: dashDir += Vector2.left; foreach (Movement m in GetComponents <Movement>()) { m.StopMovement(true, false); } break; default: return; } Debug.Log("Dash Direction set"); if (dirDecisionFramesCount < dirDecisionFrames - 3) { dirDecisionFramesCount = dirDecisionFrames - 3; } else { dirSet = true; dirDecisionFramesCount = 0; if (GetComponent <CombatSystem>() != null) { GetComponent <CombatSystem>().SetInvinicbility(invincibilityFrames); } } }
/// <summary> /// Connects a KeyCode to a UserInput value and returns if it had to overwrite something /// </summary> /// <param name="KeyCode">The KeyCode to look for</param> /// <param name="UserInput">The type of user input to execute</param> /// <returns>Was a pre-existing value overwritten</returns> public bool StorePlayerData(KeyCode kc, Player.UserInput ui) { if (PlayControl.ContainsKey(kc)) { PlayControl[kc] = ui; return(true); } else { PlayControl.Add(kc, ui); return(false); } }