added options
This commit is contained in:
parent
87006f0b1c
commit
d394f5d761
5 changed files with 64 additions and 5 deletions
|
@ -9,6 +9,8 @@
|
||||||
"Okay": "Okay",
|
"Okay": "Okay",
|
||||||
"RequiresTickets": "{0}<i ticket> for 1<i star>. Maximum {1}.",
|
"RequiresTickets": "{0}<i ticket> for 1<i star>. Maximum {1}.",
|
||||||
"AppliedUpgrades": "Active Upgrades",
|
"AppliedUpgrades": "Active Upgrades",
|
||||||
|
"Options": "Options",
|
||||||
|
"RainingTicketLimit": "Max Raining Tickets",
|
||||||
"----- Tutorial -----": "",
|
"----- Tutorial -----": "",
|
||||||
"Tutorial1": "Hi! Welcome to Touchy Tickets. To start the game, simply tap the ticket booth to sell a <i ticket>. Start by racking up 50<i ticket>!",
|
"Tutorial1": "Hi! Welcome to Touchy Tickets. To start the game, simply tap the ticket booth to sell a <i ticket>. Start by racking up 50<i ticket>!",
|
||||||
"Tutorial2": "Great! Now, you can buy your first attraction. Access the menu on the right by swiping and purchase a carousel.",
|
"Tutorial2": "Great! Now, you can buy your first attraction. Access the menu on the right by swiping and purchase a carousel.",
|
||||||
|
|
|
@ -31,7 +31,8 @@ namespace TouchyTickets {
|
||||||
|
|
||||||
protected override void LoadContent() {
|
protected override void LoadContent() {
|
||||||
base.LoadContent();
|
base.LoadContent();
|
||||||
|
Options.Load();
|
||||||
|
|
||||||
// start the load sequence
|
// start the load sequence
|
||||||
Ui.SetupUiSystem(this.UiSystem);
|
Ui.SetupUiSystem(this.UiSystem);
|
||||||
CoroutineHandler.Start(Ui.DisplaySplash(this.LoadGame));
|
CoroutineHandler.Start(Ui.DisplaySplash(this.LoadGame));
|
||||||
|
|
35
TouchyTickets/Options.cs
Normal file
35
TouchyTickets/Options.cs
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
using System.IO;
|
||||||
|
using System.Runtime.Serialization;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
|
namespace TouchyTickets {
|
||||||
|
[DataContract]
|
||||||
|
public class Options {
|
||||||
|
|
||||||
|
public static Options Instance { get; private set; }
|
||||||
|
|
||||||
|
[DataMember]
|
||||||
|
public int RainingTicketLimit = 300;
|
||||||
|
|
||||||
|
public static void Save() {
|
||||||
|
var file = GetOptionsFile(true);
|
||||||
|
using (var stream = new JsonTextWriter(file.CreateText()))
|
||||||
|
SaveHandler.Serializer.Serialize(stream, Instance);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void Load() {
|
||||||
|
var file = GetOptionsFile(false);
|
||||||
|
if (file.Exists) {
|
||||||
|
using (var stream = new JsonTextReader(file.OpenText()))
|
||||||
|
Instance = SaveHandler.Serializer.Deserialize<Options>(stream);
|
||||||
|
} else {
|
||||||
|
Instance = new Options();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static FileInfo GetOptionsFile(bool create) {
|
||||||
|
return new FileInfo(Path.Combine(SaveHandler.GetGameDirectory(create).FullName, "Options"));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Coroutine" Version="2.0.0" />
|
<PackageReference Include="Coroutine" Version="2.0.0" />
|
||||||
<PackageReference Include="MLEM.Startup" Version="3.3.3-204" />
|
<PackageReference Include="MLEM.Startup" Version="4.0.0-214" />
|
||||||
<PackageReference Include="MonoGame.Framework.Portable" Version="3.7.1.189">
|
<PackageReference Include="MonoGame.Framework.Portable" Version="3.7.1.189">
|
||||||
<PrivateAssets>all</PrivateAssets>
|
<PrivateAssets>all</PrivateAssets>
|
||||||
</PackageReference>
|
</PackageReference>
|
||||||
|
|
|
@ -41,7 +41,7 @@ namespace TouchyTickets {
|
||||||
if (rainingTickets[i].Update())
|
if (rainingTickets[i].Update())
|
||||||
rainingTickets.RemoveAt(i);
|
rainingTickets.RemoveAt(i);
|
||||||
}
|
}
|
||||||
while (rainingTickets.Count < Math.Min(GameImpl.Instance.Map.TicketsPerSecond / 20, 300))
|
while (rainingTickets.Count < Math.Min(GameImpl.Instance.Map.TicketsPerSecond / 30, Options.Instance.RainingTicketLimit))
|
||||||
rainingTickets.Add(new RainingTicket());
|
rainingTickets.Add(new RainingTicket());
|
||||||
},
|
},
|
||||||
OnDrawn = (e, time, batch, alpha) => {
|
OnDrawn = (e, time, batch, alpha) => {
|
||||||
|
@ -318,12 +318,33 @@ namespace TouchyTickets {
|
||||||
PopulateUpgradeList(upgradeList);
|
PopulateUpgradeList(upgradeList);
|
||||||
this.uiSystem.Add("Upgrade", upgradeUi);
|
this.uiSystem.Add("Upgrade", upgradeUi);
|
||||||
|
|
||||||
this.swipeRelations = new Element[] {upgradeUi, main, buyUi, modifierUi};
|
// options ui
|
||||||
|
var optionsUi = new Group(Anchor.TopLeft, Vector2.One, false) {
|
||||||
|
IsHidden = true,
|
||||||
|
OnDrawn = (e, time, batch, alpha) => batch.Draw(batch.GetBlankTexture(), e.DisplayArea, ColorExtensions.FromHex(0xff86bccf) * alpha)
|
||||||
|
};
|
||||||
|
optionsUi.AddChild(new Paragraph(Anchor.AutoCenter, 1, Localization.Get("Options"), true) {TextScale = 0.2F});
|
||||||
|
var optionList = optionsUi.AddChild(new Panel(Anchor.AutoLeft, new Vector2(1), Vector2.Zero, false, true, new Point(10, 30), false) {
|
||||||
|
ChildPadding = new Padding(5, 15, 5, 5),
|
||||||
|
PreventParentSpill = true
|
||||||
|
});
|
||||||
|
optionList.AddChild(new Paragraph(Anchor.AutoLeft, 1, p => Localization.Get("RainingTicketLimit") + ": " + Options.Instance.RainingTicketLimit));
|
||||||
|
optionList.AddChild(new Slider(Anchor.AutoLeft, new Vector2(1, 20), 10, 500) {
|
||||||
|
PositionOffset = new Vector2(0, 1),
|
||||||
|
CurrentValue = Options.Instance.RainingTicketLimit,
|
||||||
|
OnValueChanged = (s, v) => {
|
||||||
|
Options.Instance.RainingTicketLimit = (int) v;
|
||||||
|
Options.Save();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.uiSystem.Add("Options", optionsUi);
|
||||||
|
|
||||||
|
this.swipeRelations = new Element[] {optionsUi, upgradeUi, main, buyUi, modifierUi};
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Update(GameTime time) {
|
public void Update(GameTime time) {
|
||||||
// swiping between tabs
|
// swiping between tabs
|
||||||
if (!this.currentUi.IsHidden && this.uiSystem.Controls.HandleTouch) {
|
if (!this.currentUi.IsHidden && this.uiSystem.Controls.HandleTouch && !this.currentUi.GetChildren<ScrollBar>(c => c.Horizontal && c.IsBeingScrolled, true).Any()) {
|
||||||
if (MlemGame.Input.GetGesture(GestureType.HorizontalDrag, out var gesture)) {
|
if (MlemGame.Input.GetGesture(GestureType.HorizontalDrag, out var gesture)) {
|
||||||
this.swipeProgress -= gesture.Delta.X / this.currentUi.DisplayArea.Width;
|
this.swipeProgress -= gesture.Delta.X / this.currentUi.DisplayArea.Width;
|
||||||
} else if (!this.finishingSwipe && this.swipeProgress != 0 && !MlemGame.Input.TouchState.Any()) {
|
} else if (!this.finishingSwipe && this.swipeProgress != 0 && !MlemGame.Input.TouchState.Any()) {
|
||||||
|
|
Loading…
Reference in a new issue