Changelog and Prepare v0.5.0 for Release
This commit is contained in:
parent
76b7dfa4f8
commit
1f274e0ca6
46
Changes.md
46
Changes.md
|
@ -1,5 +1,51 @@
|
|||
# Changes
|
||||
|
||||
## v0.5.0-alpha
|
||||
|
||||
Project: Doodle is renamed to Sketchy Maze in this release.
|
||||
|
||||
New Features:
|
||||
|
||||
* **New Tutorial Levels:** the bundled levels demonstrate the built-in doodads
|
||||
and how they interact and shows off several game features.
|
||||
* **Level Editor:** you can now set the Title and Author of the level you're
|
||||
editing by using the Level->Page Settings window.
|
||||
* The **Inventory HUD** in Play Mode now shows a small number indicator for items
|
||||
which have quantity, such as the Small Key. Colored Keys do not have quantity
|
||||
and don't show a number: those are permanent collectibles.
|
||||
* **Fire Pixels:** when the player character dies by touching a "Fire" pixel
|
||||
during gameplay, the death message uses the **name** of the color instead
|
||||
of calling it "fire." For example, if you name a color "spikes" and give
|
||||
it the Fire attribute, it will say "Watch out for spikes!" if the player
|
||||
dies by touching it.
|
||||
* New cheat code: `give all keys` gives all four colored keys and 99x Small Keys
|
||||
to the player character. The `drop all items` cheat clears your inventory.
|
||||
|
||||
New Doodads:
|
||||
|
||||
* **Warp Doors** allow the player character to fast travel to another location
|
||||
on the map. Drag two Warp Doors into your level and use the Link Tool to
|
||||
connect them together. Doors without an exit link will be "locked" and don't
|
||||
open.
|
||||
* **Small Key Doors** are locked doors which consume the Small Keys when unlocked,
|
||||
unlike the colored doors where the key is multi-use. The player character can
|
||||
hold many small keys at once and only unlock as many doors as he has keys.
|
||||
|
||||
Updated Doodads:
|
||||
|
||||
* **Several doodads** were increased in size to better match the player character:
|
||||
Colored Locked Doors, Trapdoors, the Crumbly Floor and Electric Door, and the
|
||||
blue and orange Boolean State Blocks.
|
||||
* **Colored Doors** now have a visual locked vs. unlocked state: while locked, a
|
||||
golden padlock hangs from the door, which goes away after it's been unlocked.
|
||||
* **Switches** now interact differently with Electric Doors: the door will _always_
|
||||
toggle its current state regardless of the 'power' setting of the Switch.
|
||||
* **Buttons** which are linked to a **Sticky Button** will press and stay down
|
||||
if the linked Sticky Button is pressed. Or in other words, the Sticky Button
|
||||
makes all linked Buttons act sticky too and stay pressed while the Sticky
|
||||
Button is pressed. If the Sticky Button is released later (e.g. by receiving
|
||||
power from a Switch) it releases its linked Buttons as well.
|
||||
|
||||
## v0.4.0-alpha
|
||||
|
||||
This update brings improvements to the editor; you can now fully draw all the
|
||||
|
|
|
@ -15,6 +15,7 @@ import (
|
|||
"git.kirsle.net/apps/doodle/pkg/bindata"
|
||||
"git.kirsle.net/apps/doodle/pkg/branding"
|
||||
"git.kirsle.net/apps/doodle/pkg/log"
|
||||
"git.kirsle.net/apps/doodle/pkg/shmem"
|
||||
"git.kirsle.net/apps/doodle/pkg/sound"
|
||||
"git.kirsle.net/go/render/sdl"
|
||||
"github.com/urfave/cli/v2"
|
||||
|
@ -85,6 +86,10 @@ func main() {
|
|||
Name: "experimental",
|
||||
Usage: "enable experimental Feature Flags",
|
||||
},
|
||||
&cli.BoolFlag{
|
||||
Name: "offline",
|
||||
Usage: "offline mode, disables check for new updates",
|
||||
},
|
||||
}
|
||||
|
||||
app.Action = func(c *cli.Context) error {
|
||||
|
@ -113,6 +118,11 @@ func main() {
|
|||
balance.FeaturesOn()
|
||||
}
|
||||
|
||||
// Offline mode?
|
||||
if c.Bool("offline") {
|
||||
shmem.OfflineMode = true
|
||||
}
|
||||
|
||||
// SDL engine.
|
||||
engine := sdl.New(
|
||||
fmt.Sprintf("%s v%s", branding.AppName, branding.Version),
|
||||
|
|
|
@ -48,7 +48,7 @@ var (
|
|||
PlayerCharacterDoodad = "boy.doodad"
|
||||
|
||||
// Level name for the title screen.
|
||||
DemoLevelName = "example 1.level"
|
||||
DemoLevelName = "Tutorial 3.level"
|
||||
)
|
||||
|
||||
// Edit Mode Values
|
||||
|
|
|
@ -9,6 +9,7 @@ import (
|
|||
"git.kirsle.net/apps/doodle/pkg/log"
|
||||
"git.kirsle.net/apps/doodle/pkg/native"
|
||||
"git.kirsle.net/apps/doodle/pkg/scripting"
|
||||
"git.kirsle.net/apps/doodle/pkg/shmem"
|
||||
"git.kirsle.net/apps/doodle/pkg/uix"
|
||||
"git.kirsle.net/apps/doodle/pkg/updater"
|
||||
"git.kirsle.net/go/render"
|
||||
|
@ -27,6 +28,7 @@ type MainScene struct {
|
|||
// UI components.
|
||||
labelTitle *ui.Label
|
||||
labelVersion *ui.Label
|
||||
labelHint *ui.Label
|
||||
frame *ui.Frame // Main button frame
|
||||
|
||||
// Update check variables.
|
||||
|
@ -70,6 +72,17 @@ func (s *MainScene) Setup(d *Doodle) error {
|
|||
ver.Compute(d.Engine)
|
||||
s.labelVersion = ver
|
||||
|
||||
// Arrow Keys hint label (scroll the demo level).
|
||||
s.labelHint = ui.NewLabel(ui.Label{
|
||||
Text: "Hint: press the Arrow keys",
|
||||
Font: render.Text{
|
||||
Size: 16,
|
||||
Color: render.Grey,
|
||||
Shadow: render.Purple,
|
||||
},
|
||||
})
|
||||
s.labelHint.Compute(d.Engine)
|
||||
|
||||
// "Update Available" button.
|
||||
s.updateButton = ui.NewButton("Update Button", ui.NewLabel(ui.Label{
|
||||
Text: "An update is available!",
|
||||
|
@ -144,6 +157,11 @@ func (s *MainScene) Setup(d *Doodle) error {
|
|||
|
||||
// checkUpdate checks for a version update and shows the button.
|
||||
func (s *MainScene) checkUpdate() {
|
||||
if shmem.OfflineMode {
|
||||
log.Info("OfflineMode: skip updates check")
|
||||
return
|
||||
}
|
||||
|
||||
info, err := updater.Check()
|
||||
if err != nil {
|
||||
log.Error(err.Error())
|
||||
|
@ -244,6 +262,13 @@ func (s *MainScene) Draw(d *Doodle) error {
|
|||
})
|
||||
s.labelVersion.Present(d.Engine, s.labelVersion.Point())
|
||||
|
||||
// Hint label.
|
||||
s.labelHint.MoveTo(render.Point{
|
||||
X: d.width - s.labelHint.Size().W - 32,
|
||||
Y: d.height - s.labelHint.Size().H - 32,
|
||||
})
|
||||
s.labelHint.Present(d.Engine, s.labelHint.Point())
|
||||
|
||||
// Update button.
|
||||
s.updateButton.MoveTo(render.Point{
|
||||
X: 24,
|
||||
|
|
|
@ -19,6 +19,9 @@ var (
|
|||
// The level.Chunk.ToBitmap() uses this to cache a texture image.
|
||||
CurrentRenderEngine render.Engine
|
||||
|
||||
// Offline mode, if True then the updates check in MainScene is skipped.
|
||||
OfflineMode bool
|
||||
|
||||
// Globally available Flash() function so we can emit text to the Doodle UI.
|
||||
Flash func(string, ...interface{})
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user