fixed last level oos bug, added more levels and entities
This commit is contained in:
parent
1d9164d140
commit
2084150456
12
Makefile
12
Makefile
@ -1,3 +1,11 @@
|
||||
version = $(shell egrep "version string = " config/static.go | cut -d'"' -f 2)
|
||||
BRANCH = $(shell git branch --show-current)
|
||||
COMMIT = $(shell git rev-parse --short=8 HEAD)
|
||||
BUILD = $(shell date +%Y.%m.%d.%H%M%S)
|
||||
#VERSION := $(if $(filter $(BRANCH), development),$(version)-$(BRANCH)-$(COMMIT)-$(BUILD),$(version))
|
||||
VERSION := $(version)-$(BRANCH)-$(COMMIT)-$(BUILD)
|
||||
|
||||
|
||||
all: clean build
|
||||
@echo ok
|
||||
|
||||
@ -5,8 +13,8 @@ clean:
|
||||
rm -f openquell
|
||||
|
||||
build:
|
||||
go build
|
||||
go build -ldflags "-X 'openquell/config.VERSION=$(VERSION)'"
|
||||
|
||||
|
||||
test:
|
||||
@echo 1
|
||||
@echo $(VERSION)
|
||||
|
||||
2
TODO.md
2
TODO.md
@ -22,7 +22,7 @@
|
||||
slog.Debug("get observer", "minmoves", observer.LevelScore,
|
||||
"file", source.File, "line", source.Line)
|
||||
|
||||
- BUG: last level, when dying, you get a congrats message
|
||||
- Bug: when pushing obstacles around edges, they vanish
|
||||
|
||||
## Collider Rework [abandoned: see branch collider-system, fails]
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -203,8 +203,8 @@ func InitTiles() TileRegistry {
|
||||
"particle-ring-5",
|
||||
"particle-ring-6",
|
||||
}),
|
||||
"transient": NewTileTranswall([]string{"transwall", "block-orange-32"}),
|
||||
"hiddendoor": NewTileHiddenDoor([]string{"block-greycolored", "block-greycolored-damaged"}),
|
||||
"Transient": NewTileTranswall([]string{"transwall", "block-orange-32"}),
|
||||
"HiddenDoor": NewTileHiddenDoor([]string{"block-greycolored", "block-greycolored-damaged"}),
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -14,3 +14,6 @@ const (
|
||||
const PLAYERSPEED int = 5
|
||||
const PARTICLE_LOOPWAIT time.Duration = 250 * time.Millisecond
|
||||
const LEVEL_END_WAIT time.Duration = 500 * time.Millisecond
|
||||
const version string = "1.1.0"
|
||||
|
||||
var VERSION string // maintained by -x
|
||||
|
||||
@ -4,6 +4,7 @@ import (
|
||||
"image/color"
|
||||
"log/slog"
|
||||
"openquell/assets"
|
||||
"openquell/config"
|
||||
"openquell/gameui"
|
||||
|
||||
"github.com/ebitenui/ebitenui"
|
||||
@ -27,7 +28,8 @@ Thomas von Dein <tom@vondein.org>.
|
||||
Download it on repo.daemon.de/openquell/.
|
||||
|
||||
Copyright (c) 2024 by Thomas von Dein.
|
||||
`
|
||||
|
||||
Version: `
|
||||
|
||||
func NewAboutScene(game *Game) Scene {
|
||||
scene := &AboutScene{Whoami: About, Game: game, Next: About}
|
||||
@ -81,7 +83,7 @@ func (scene *AboutScene) SetupUI() {
|
||||
)
|
||||
|
||||
about := widget.NewText(
|
||||
widget.TextOpts.Text(ABOUT, *assets.FontRenderer.FontNormal, blue),
|
||||
widget.TextOpts.Text(ABOUT+config.VERSION, *assets.FontRenderer.FontNormal, blue),
|
||||
widget.TextOpts.Position(widget.TextPositionStart, widget.TextPositionCenter),
|
||||
)
|
||||
|
||||
|
||||
@ -8,6 +8,7 @@ import (
|
||||
"openquell/grid"
|
||||
"openquell/observers"
|
||||
"openquell/systems"
|
||||
"strings"
|
||||
|
||||
"github.com/hajimehoshi/ebiten/v2"
|
||||
"github.com/mlange-42/arche/ecs"
|
||||
@ -64,7 +65,7 @@ func NewLevel(game *Game, cellsize int, plan *ldtkgo.Level) *Level {
|
||||
Width: game.ScreenWidth,
|
||||
Height: game.ScreenHeight,
|
||||
Description: plan.PropertyByIdentifier("description").AsString(),
|
||||
Name: plan.Identifier,
|
||||
Name: strings.ReplaceAll(plan.Identifier, "_", " "),
|
||||
GridContainer: gridcontainer,
|
||||
Systems: systemlist,
|
||||
}
|
||||
|
||||
@ -77,7 +77,7 @@ func (scene *NextlevelScene) Draw(screen *ebiten.Image) {
|
||||
func (scene *NextlevelScene) SetupUI() {
|
||||
observer := observers.GetGameObserver(scene.Game.World)
|
||||
slog.Debug("levels", "max", observer.MaxLevels, "current", observer.CurrentLevel)
|
||||
if observer.MaxLevels == observer.CurrentLevel+1 {
|
||||
if observer.MaxLevels == observer.CurrentLevel+1 && !observer.Lost {
|
||||
scene.SetupUILast()
|
||||
} else {
|
||||
scene.SetupUIRetry()
|
||||
@ -120,9 +120,11 @@ func (scene *NextlevelScene) SetupUILast() {
|
||||
func (scene *NextlevelScene) SetupUIRetry() {
|
||||
blue := color.RGBA{0, 255, 128, 255}
|
||||
observer := observers.GetGameObserver(scene.Game.World)
|
||||
buttonNext := &widget.Button{}
|
||||
|
||||
rowContainer := gameui.NewRowContainer(false)
|
||||
labeltext := fmt.Sprintf("Great! (Score: %d)", observer.GetLevelScore())
|
||||
islast := observer.MaxLevels == observer.CurrentLevel+1
|
||||
|
||||
switch observer.Lost {
|
||||
case true:
|
||||
@ -135,11 +137,13 @@ func (scene *NextlevelScene) SetupUIRetry() {
|
||||
observer.Retry = true
|
||||
})
|
||||
|
||||
buttonNext := gameui.NewMenuButton("Next Level", *assets.FontRenderer.FontNormal,
|
||||
if !islast {
|
||||
buttonNext = gameui.NewMenuButton("Next Level", *assets.FontRenderer.FontNormal,
|
||||
func(args *widget.ButtonClickedEventArgs) {
|
||||
scene.SetNext(Play)
|
||||
observer.Retry = false
|
||||
})
|
||||
}
|
||||
|
||||
buttonAbort := gameui.NewMenuButton("Abort", *assets.FontRenderer.FontNormal,
|
||||
func(args *widget.ButtonClickedEventArgs) {
|
||||
@ -152,7 +156,9 @@ func (scene *NextlevelScene) SetupUIRetry() {
|
||||
)
|
||||
|
||||
rowContainer.AddChild(label)
|
||||
if !islast {
|
||||
rowContainer.AddChild(buttonNext)
|
||||
}
|
||||
rowContainer.AddChild(buttonRetry)
|
||||
rowContainer.AddChild(buttonAbort)
|
||||
|
||||
|
||||
@ -4,6 +4,8 @@ import (
|
||||
"math/rand"
|
||||
"openquell/components"
|
||||
|
||||
"log/slog"
|
||||
|
||||
"github.com/mlange-42/arche/ecs"
|
||||
"github.com/mlange-42/arche/ecs/event"
|
||||
"github.com/mlange-42/arche/generic"
|
||||
@ -150,10 +152,18 @@ func (observer *GameObserver) AddScore() {
|
||||
level := observer.CurrentLevel
|
||||
moves := observer.Moves
|
||||
|
||||
slog.Debug("AddScore", "moves", observer.Moves)
|
||||
|
||||
if observer.Lost {
|
||||
observer.LevelScore[level].Score = 0
|
||||
slog.Debug("lost")
|
||||
} else {
|
||||
observer.LevelScore[level].Score = ((observer.LevelScore[level].Min * 100) / moves) / 30
|
||||
slog.Debug("won", "score", observer.LevelScore[level].Score,
|
||||
"Min", observer.LevelScore[level].Min,
|
||||
"Min-x-100", observer.LevelScore[level].Min*100,
|
||||
"Min-x-100-moves", (observer.LevelScore[level].Min*100)/moves,
|
||||
)
|
||||
}
|
||||
|
||||
observer.Moves = 0
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user