Saving lives left for resume as well.
This commit is contained in:
parent
e3527eb580
commit
3c99e5881b
2
TODO.md
2
TODO.md
@ -11,4 +11,4 @@
|
|||||||
- [ ] Fix z-fighting of monsters.
|
- [ ] Fix z-fighting of monsters.
|
||||||
- [ ] Add exploding animation of monsters.
|
- [ ] Add exploding animation of monsters.
|
||||||
- [ ] Add audio settings (music & sound volume).
|
- [ ] Add audio settings (music & sound volume).
|
||||||
- [ ] Hearts must be saved as well for resume.
|
- [X] Hearts must be saved as well for resume.
|
@ -54,7 +54,7 @@ func (app *appContext) Play(ctx ui.Context) {
|
|||||||
level := tins2021.NewLevel()
|
level := tins2021.NewLevel()
|
||||||
level.Randomize(0, numberOfStars)
|
level.Randomize(0, numberOfStars)
|
||||||
|
|
||||||
app.Score.Current = tins2021.Score{}
|
app.ResetCurrentScore()
|
||||||
app.show(ctx, newLevelControl(app, ctx, level))
|
app.show(ctx, newLevelControl(app, ctx, level))
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -74,11 +74,22 @@ func (app *appContext) PlayNext(ctx ui.Context, controller *levelController) {
|
|||||||
func (app *appContext) PlayResume(ctx ui.Context) {
|
func (app *appContext) PlayResume(ctx ui.Context) {
|
||||||
level := tins2021.NewLevel()
|
level := tins2021.NewLevel()
|
||||||
level.Score = app.Score.Current.Score
|
level.Score = app.Score.Current.Score
|
||||||
|
level.Lives = app.Score.CurrentLives
|
||||||
level.Randomize(app.Score.Current.Difficulty, numberOfStars)
|
level.Randomize(app.Score.Current.Difficulty, numberOfStars)
|
||||||
|
|
||||||
app.show(ctx, newLevelControl(app, ctx, level))
|
app.show(ctx, newLevelControl(app, ctx, level))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (app *appContext) ResetCurrentScore() {
|
||||||
|
app.Score.Current = tins2021.Score{}
|
||||||
|
app.Score.CurrentLives = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (app *appContext) SetCurrentScore(level *tins2021.Level) {
|
||||||
|
app.Score.Current = tins2021.NewScore(level.Score, level.Difficulty+1)
|
||||||
|
app.Score.CurrentLives = level.Lives
|
||||||
|
}
|
||||||
|
|
||||||
func (app *appContext) show(ctx ui.Context, control ui.Control) {
|
func (app *appContext) show(ctx ui.Context, control ui.Control) {
|
||||||
app.setView(control)
|
app.setView(control)
|
||||||
if _, ok := control.(*levelController); ok {
|
if _, ok := control.(*levelController); ok {
|
||||||
|
@ -91,7 +91,7 @@ func (r *levelController) updateHighscore() bool {
|
|||||||
if highscore {
|
if highscore {
|
||||||
r.app.Score.Highscores = highscores
|
r.app.Score.Highscores = highscores
|
||||||
}
|
}
|
||||||
r.app.Score.Current = tins2021.Score{} // reset score
|
r.app.ResetCurrentScore()
|
||||||
return highscore
|
return highscore
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -101,7 +101,7 @@ func (r *levelController) Handle(ctx ui.Context, e ui.Event) bool {
|
|||||||
switch e.Key {
|
switch e.Key {
|
||||||
case ui.KeyEscape:
|
case ui.KeyEscape:
|
||||||
if r.Level.StarsCollected == r.Level.Stars {
|
if r.Level.StarsCollected == r.Level.Stars {
|
||||||
r.app.Score.Current = tins2021.NewScore(r.Level.Score, r.Level.Difficulty+1)
|
r.app.SetCurrentScore(r.Level)
|
||||||
}
|
}
|
||||||
r.app.ShowMainMenu(ctx)
|
r.app.ShowMainMenu(ctx)
|
||||||
}
|
}
|
||||||
@ -116,7 +116,7 @@ func (r *levelController) Handle(ctx ui.Context, e ui.Event) bool {
|
|||||||
case *ui.KeyDownEvent:
|
case *ui.KeyDownEvent:
|
||||||
switch e.Key {
|
switch e.Key {
|
||||||
case ui.KeyEnter:
|
case ui.KeyEnter:
|
||||||
r.app.Score.Current = tins2021.NewScore(r.Level.Score, r.Level.Difficulty+1)
|
r.app.SetCurrentScore(r.Level)
|
||||||
r.app.PlayNext(ctx, r)
|
r.app.PlayNext(ctx, r)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user