added price markup
This commit is contained in:
parent
ee1acca5e8
commit
6dd20359d8
3 changed files with 15 additions and 10 deletions
|
@ -32,10 +32,6 @@ namespace ThemeParkClicker.Attractions {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public long GetPrice() {
|
|
||||||
return this.Type.InitialPrice;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Update(GameTime time, TimeSpan passed) {
|
public void Update(GameTime time, TimeSpan passed) {
|
||||||
this.ticketPercentage += this.Type.GenerationPerSecond * (float) passed.TotalSeconds;
|
this.ticketPercentage += this.Type.GenerationPerSecond * (float) passed.TotalSeconds;
|
||||||
var amount = this.ticketPercentage.Floor();
|
var amount = this.ticketPercentage.Floor();
|
||||||
|
|
|
@ -108,5 +108,9 @@ namespace ThemeParkClicker {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int GetAttractionAmount(AttractionType type) {
|
||||||
|
return this.attractions.Count(a => a.Item2.Type == type);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -108,7 +108,7 @@ namespace ThemeParkClicker {
|
||||||
IsHidden = true
|
IsHidden = true
|
||||||
};
|
};
|
||||||
foreach (var attraction in AttractionType.Attractions) {
|
foreach (var attraction in AttractionType.Attractions) {
|
||||||
var instance = attraction.Value.Create();
|
BigInteger price = 0;
|
||||||
var button = buyUi.AddChild(new Button(Anchor.AutoLeft, new Vector2(1, 40)) {
|
var button = buyUi.AddChild(new Button(Anchor.AutoLeft, new Vector2(1, 40)) {
|
||||||
ChildPadding = new Vector2(4),
|
ChildPadding = new Vector2(4),
|
||||||
Padding = new Padding(0, 0, 0, 4),
|
Padding = new Padding(0, 0, 0, 4),
|
||||||
|
@ -125,7 +125,7 @@ namespace ThemeParkClicker {
|
||||||
});
|
});
|
||||||
yesNoUi.AddChild(new Button(Anchor.AutoInlineIgnoreOverflow, new Vector2(0.5F, 40), "Place") {
|
yesNoUi.AddChild(new Button(Anchor.AutoInlineIgnoreOverflow, new Vector2(0.5F, 40), "Place") {
|
||||||
OnPressed = e2 => {
|
OnPressed = e2 => {
|
||||||
GameImpl.Instance.Tickets -= map.PlacingAttraction.GetPrice();
|
GameImpl.Instance.Tickets -= price;
|
||||||
map.Place(map.PlacingPosition, map.PlacingAttraction);
|
map.Place(map.PlacingPosition, map.PlacingAttraction);
|
||||||
this.FadeUi(false, () => this.uiSystem.Remove(e2.Root.Name));
|
this.FadeUi(false, () => this.uiSystem.Remove(e2.Root.Name));
|
||||||
},
|
},
|
||||||
|
@ -135,19 +135,24 @@ namespace ThemeParkClicker {
|
||||||
this.uiSystem.Add("PlacingYesNo", yesNoUi).Priority = -100;
|
this.uiSystem.Add("PlacingYesNo", yesNoUi).Priority = -100;
|
||||||
|
|
||||||
this.FadeUi(true);
|
this.FadeUi(true);
|
||||||
|
},
|
||||||
|
OnAreaUpdated = e => {
|
||||||
|
// only update the price when the area updates, since it won't change while we're in the buy ui
|
||||||
|
var markup = GameImpl.Instance.Map.GetAttractionAmount(attraction.Value) * 0.05F;
|
||||||
|
price = (attraction.Value.InitialPrice * (1 + markup)).Ceil();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
button.OnUpdated += (e, time) => {
|
button.OnUpdated += (e, time) => {
|
||||||
button.IsDisabled = GameImpl.Instance.Tickets < instance.GetPrice();
|
button.IsDisabled = GameImpl.Instance.Tickets < price;
|
||||||
};
|
};
|
||||||
var center = button.AddChild(new Group(Anchor.Center, new Vector2(0.8F, 1), false) {CanBeMoused = false});
|
var center = button.AddChild(new Group(Anchor.Center, new Vector2(0.8F, 1), false) {CanBeMoused = false});
|
||||||
center.AddChild(new Paragraph(Anchor.AutoCenter, 1, attraction.Key, true));
|
center.AddChild(new Paragraph(Anchor.AutoCenter, 1, attraction.Key, true));
|
||||||
center.AddChild(new Paragraph(Anchor.AutoCenter, 1, instance.Type.GenerationPerSecond + "<i ticket>/s", true) {TextScale = 0.08F});
|
center.AddChild(new Paragraph(Anchor.AutoCenter, 1, attraction.Value.GenerationPerSecond + "<i ticket>/s", true) {TextScale = 0.08F});
|
||||||
var image = button.AddChild(new Image(Anchor.CenterLeft, new Vector2(1), instance.Type.TextureRegion) {
|
var image = button.AddChild(new Image(Anchor.CenterLeft, new Vector2(1), attraction.Value.TextureRegion) {
|
||||||
Padding = new Vector2(4)
|
Padding = new Vector2(4)
|
||||||
});
|
});
|
||||||
button.OnAreaUpdated += e => image.Size = new Vector2(e.DisplayArea.Height / e.Scale);
|
button.OnAreaUpdated += e => image.Size = new Vector2(e.DisplayArea.Height / e.Scale);
|
||||||
button.AddChild(new Paragraph(Anchor.CenterRight, 1, p => instance.GetPrice() + "<i ticket>", true));
|
button.AddChild(new Paragraph(Anchor.CenterRight, 1, p => price + "<i ticket>", true));
|
||||||
}
|
}
|
||||||
this.uiSystem.Add("Buy", buyUi);
|
this.uiSystem.Add("Buy", buyUi);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue