public static void JumpStage() { if (!Globals.JumpStageKeyDown && Globals.JumpStageKeyDownPrevious) { if (Globals.GameType == Enum.GameType.Arcade) { if (Globals.KeyPressDelay > 0) { Globals.KeyPressDelay = 0; FunctionsGame.ChangeStage(); } else { Globals.KeyPressDelay++; } } else if (Globals.GameType == Enum.GameType.OreColleting) { if (Globals.KeyPressDelay > 0) { Globals.KeyPressDelay = 0; Globals.Collided = true; Globals.Landed = true; } else { Globals.KeyPressDelay++; } } } }
public static void UpdateStage() { Globals.SelectedShip.TotalVelocity = Functions.CalculateTotalForce(Globals.SelectedShip); FunctionsStage.MoveSpeedBar(Globals.SelectedShip, Globals.SelectedStage.BarSpeed, Globals.SpeedBarMultiplier); FunctionsStage.MoveSpeedBarToLZ(Globals.SelectedShip, ref Globals.SelectedStage.BarSpeedToLZ, Globals.SpeedBarMultiplier); FunctionsGame.DecreaseFuel(Globals.SelectedShip, Globals.SelectedStage.BarFuel); if (Globals.SpaceKeyDown) { Globals.SelectedStage.SpriteLED.TextureCurrent = Globals.SelectedStage.SpriteLED.Textures[1]; } else { Globals.SelectedStage.SpriteLED.TextureCurrent = Globals.SelectedStage.SpriteLED.Textures[0]; } if (Globals.SelectedShip.Y < 0 - Globals.SelectedShip.Height) { Globals.SelectedStage.SpriteCursor.Visible = true; Globals.SelectedStage.FontCursor.Visible = true; FunctionsGame.MoveOffMapCursor(); } else { Globals.SelectedStage.SpriteCursor.Visible = false; Globals.SelectedStage.FontCursor.Visible = false; } }
public static bool RecordFeatures(Enum.RecordType type) { bool unlocked = false; if (type == Enum.RecordType.SelectedShip) { Globals.SaveSelectedShip = Globals.SelectedShip.Ship.ToString(); } else if (type == Enum.RecordType.UnlockedArea) { int shipIndex = FunctionsGame.GetShipIndex(Globals.SelectedShip); int areaIndex = -1; if (Globals.CurrentStage == 15) { areaIndex = 0; } else if (Globals.CurrentStage == 25) { areaIndex = 1; } else if (Globals.CurrentStage == 35) { areaIndex = 2; } else if (Globals.CurrentStage == 45) { areaIndex = 3; } else if (Globals.CurrentStage == 55) { areaIndex = 4; } else if (Globals.CurrentStage == 65) { areaIndex = 5; } if (Globals.CurrentStage != 65 && Globals.SelectedShip.Ship != Enum.Ships.TypeX1) { unlocked = !Globals.SaveShipsAreasCompleted[areaIndex, shipIndex]; } Globals.SaveShipsAreasCompleted[areaIndex, shipIndex] = true; } else if (type == Enum.RecordType.OreCollected) { int area = Convert.ToInt16(Globals.CurrentStage.ToString().Substring(0, 1)); int stage = Convert.ToInt16(Globals.CurrentStage.ToString().Substring(1, 1)); Globals.SaveOreCollected[area - 1, stage - 1] = true; } FunctionsGame.SaveGame(); return(unlocked); }
public static void ApplyPostStage() { SoundClass.Stop(Globals.SFXRocketInstance); SoundClass.Stop(Globals.SFXFloatInstance); if (Globals.EnterKeyPressed) { if (Globals.GameType == Enum.GameType.Arcade) { if (Globals.Landed) { FunctionsGame.ChangeStage(); } else if (Globals.Collided) { if (Globals.ShipsLeft > 0) { Globals.ShipsLeft--; FunctionsStage.InitializeStage(); } else { Globals.CurrentScene = new Scenes.SceneTitle(); } } } else if (Globals.GameType == Enum.GameType.OreColleting) { if (Globals.Landed) { if (!Globals.SelectedStage.SpriteRedOre.Visible && !Globals.SelectedStage.SpriteGreenOre.Visible && !Globals.SelectedStage.SpriteBlueOre.Visible) { Globals.OreCollected = true; FunctionsGame.RecordFeatures(Enum.RecordType.OreCollected); Globals.CurrentScene = new Scenes.SceneChooseStage(); } else { FunctionsStage.InitializeStage(); } } else { FunctionsStage.InitializeStage(); } } else { FunctionsStage.InitializeStage(); } } }
public static void LoadGame() { if (!FunctionsGame.ValidateSaveIntegrity()) { CreateNewFile(); } try { string file = Functions.ReadEncryptedFile(Globals.SaveFilePath); string[] newline = { Environment.NewLine }; string[] comma = { ";" }; string[] lines = file.Split(newline, 2000, StringSplitOptions.RemoveEmptyEntries); Globals.SaveSelectedShip = lines[0].Replace(";", ""); //Load Cleared Areas per Ship for (int i = 1; i < 7; i++) { string[] cells = lines[i].Split(comma, 2000, StringSplitOptions.RemoveEmptyEntries); for (int j = 0; j < cells.Length; j++) { Globals.SaveShipsAreasCompleted[i - 1, j] = Convert.ToBoolean(cells[j]); } } //Load Ore Colleted per Stage for (int i = 7; i < 13; i++) { string[] cells = lines[i].Split(comma, 2000, StringSplitOptions.RemoveEmptyEntries); for (int j = 0; j < cells.Length; j++) { Globals.SaveOreCollected[i - 7, j] = Convert.ToBoolean(cells[j]); } } } catch { CreateNewFile(); } }
public static bool VerifyCollision(SpriteShip sprite, Sprite lz, ref bool landed) { Globals.CollidedUp = false; Globals.CollidedDown = false; Globals.CollidedLeft = false; Globals.CollidedRight = false; if (Globals.CurrentStage != 0) { Globals.CollidedGround = FunctionsGame.CollidedGround(); } if (Globals.CurrentStage != 0) { Globals.CollidedLZ = FunctionsGame.CollidedLZ(ref landed); } //else if (Globals.SelectedStageFreeCollision) //{ // Globals.CollidedLZ = FunctionsGame.CollidedLZ(ref landed); //} if (Globals.CollidedGround || Globals.CollidedLZ) { Globals.Collided = true; Globals.SelectedShip.VerticalVelocity = 0; Globals.SelectedShip.HorizontalVelocity = 0; Globals.SelectedShip.SpriteTop.Visible = false; Globals.SelectedShip.SpriteBotton.Visible = false; Globals.SelectedShip.SpriteLeft.Visible = false; Globals.SelectedShip.SpriteRight.Visible = false; } else { Globals.Collided = false; } return(Globals.Collided); }