public ComboSystem(string path) { moveListFile = path; tempInput = new ButtonInput(); performedMove = new Move(); LoadMoves(Stage.Content.Load<Move[]>(moveListFile)); }
public Move getAttack(ButtonInput input) { //our list contains our 3 one button moves, plus the 3 button move if (moveList.ContainsKey(input)) return moveList[input]; //no such move exists so either two buttons are pressed, or no buttons are pressed Move strongMove = null; tempMove = null; if (input.Red) { tempInput.Red = true; tempMove = moveList[tempInput]; //this is the first input we check so tempMove can't be used tempInput.Red = false; } if (input.Yellow) { tempInput.Yellow = true; if (tempMove != null) strongMove = moveList[tempInput]; else tempMove = moveList[tempInput]; tempInput.Yellow = false; } if (input.Blue) { tempInput.Blue = true; strongMove = moveList[tempInput]; //this is the last input we check so tempMove must be used tempInput.Blue = false; } return strongMove; /* if (strongMove != null && tempMove != null) { //interpolate between the two moves performedMove = strongMove; //performedMove.FrontArea = strongMove.FrontArea; //performedMove.BackArea = strongMove.BackArea; //performedMove.Damage = strongMove.Damage + tempMove.Damage * .5f; performedMove.TimeBeforeSecond = tempMove.TimeBeforeAttack; performedMove.AnimationType = strongMove.AnimationType; performedMove.AnimationSecond = tempMove.AnimationType; //performedMove.ParticleEffect = //performedMove.animation return performedMove; } else tempMove = null; return null; * */ }
public ButtonInput StringToButtonInput(string seq) { ButtonInput input = new ButtonInput(); string[] seqSections; if (seq.Contains("|")) //split if there is a line (multi button input) { seqSections = seq.Split('|'); } else //else just use the one string { seqSections = new string[] { seq }; } for (int i = 0; i < seqSections.Length; i++) { seqSections[i] = seqSections[i].Trim(); switch (seqSections[i]) { case "B": //red input.Red = true; break; case "Y": //yellow input.Yellow = true; break; case "X": //blue input.Blue = true; break; } } return input; }
public override void Initialize(Stage stage) { track = 0.0f; track = actor.PhysicsObject.Position.Z; Space = stage.GetQB<PhysicsQB>().Space; //input actions ControlsQB controlsQB = stage.GetQB<ControlsQB>(); strum = controlsQB.GetInputAction("Strum"); A = controlsQB.GetInputAction("A"); B = controlsQB.GetInputAction("B"); Y = controlsQB.GetInputAction("Y"); X = controlsQB.GetInputAction("X"); leftBumper = controlsQB.GetInputAction("LeftBumper"); rightBumper = controlsQB.GetInputAction("RightBumper"); triggers = controlsQB.GetInputAction("Triggers"); leftAxisX = controlsQB.GetInputAction("MoveRight"); guitarJump = controlsQB.GetInputAction("GuitarJump"); //set move direction //TODO: look this up in a parm MoveDirection = PlayerDirection.Right; //get attack list attacks = new Engine.AttackSystem.ComboSystem("MoveList"); //set camera CameraQB cameraQB = stage.GetQB<CameraQB>(); PlayerCamera playerCamera = new PlayerCamera(actor.PhysicsObject, CameraQB.DefaultProjectionMatrix); playerCamera.Reset(); cameraQB.JumpToCamera(playerCamera); //animations playerAnimation = actor.GetAgent<PlayerAnimationAgent>(); State = PlayerState.Normal; facing = PlayerDirection.Right; //dashing & lock on range if (Player.PhysicsObject.physicsType == PhysicsObject.PhysicsType.Character) { Player.PhysicsObject.CollisionInformation.CollisionRules.Group = PhysicsQB.playerGroup; if (Player.Parm.HasParm("DashSpeed")) Player.PhysicsObject.CharacterController.DashSpeed = Player.Parm.GetFloat("DashSpeed"); if (Player.Parm.HasParm("DashTime")) Player.PhysicsObject.CharacterController.DashTime = Player.Parm.GetFloat("DashTime"); } //combat input = new ButtonInput(); smash = 0; //support for the flow mechanic flow = new Flow(); //Load the player sounds here AudioQB AQB = Stage.ActiveStage.GetQB<AudioQB>(); int index = 0; while (Player.Parm.HasParm("Sound" + index)) { AQB.AddSound(Player.Parm.GetString("Sound" + index)); index++; } if(!Stage.Editor) isStrumMode = Stage.SaveGame.getStrumMode(); }