habit game track model and remove finished texts
This commit is contained in:
@@ -18,7 +18,8 @@ typedef EntryLabel = {
|
|||||||
|
|
||||||
typedef Entry = {
|
typedef Entry = {
|
||||||
type: EntryType,
|
type: EntryType,
|
||||||
labels: Array<EntryLabel>
|
labels: Array<EntryLabel>,
|
||||||
|
doneToday: Bool
|
||||||
};
|
};
|
||||||
|
|
||||||
@:build(kiss.Kiss.build())
|
@:build(kiss.Kiss.build())
|
||||||
|
@@ -25,6 +25,7 @@
|
|||||||
("TODO" todoEntries)
|
("TODO" todoEntries)
|
||||||
(otherwise (throw "bad header")))
|
(otherwise (throw "bad header")))
|
||||||
(object
|
(object
|
||||||
|
doneToday false
|
||||||
type
|
type
|
||||||
(case lastHeader
|
(case lastHeader
|
||||||
("BONUS" Bonus)
|
("BONUS" Bonus)
|
||||||
@@ -90,5 +91,5 @@
|
|||||||
(function isActive [:Entry e]
|
(function isActive [:Entry e]
|
||||||
(case e.type
|
(case e.type
|
||||||
((Daily days)
|
((Daily days)
|
||||||
(contains days (.getDay (Date.now))))
|
(and !e.doneToday (contains days (.getDay (Date.now)))))
|
||||||
(otherwise true)))
|
(otherwise true)))
|
@@ -10,6 +10,7 @@ import kiss.Prelude;
|
|||||||
import kiss.List;
|
import kiss.List;
|
||||||
import kiss_tools.KeyShortcutHandler;
|
import kiss_tools.KeyShortcutHandler;
|
||||||
import HabitModel;
|
import HabitModel;
|
||||||
|
import flixel.input.keyboard.FlxKey;
|
||||||
|
|
||||||
@:build(kiss.Kiss.build())
|
@:build(kiss.Kiss.build())
|
||||||
class HabitState extends FlxState {}
|
class HabitState extends FlxState {}
|
||||||
|
@@ -1,19 +1,18 @@
|
|||||||
(method &override :Void create [] (super.create))
|
(method &override :Void create [] (super.create))
|
||||||
(method &override :Void update [:Float elapsed] (super.update elapsed))
|
(method &override :Void update [:Float elapsed]
|
||||||
|
(super.update elapsed)
|
||||||
|
(let [:FlxKey id (FlxG.keys.firstJustPressed)]
|
||||||
|
(unless (= id -1)
|
||||||
|
(shortcutHandler.handleKey (.toLowerCase (id.toString))))))
|
||||||
|
|
||||||
(prop &mut :FlxTypedGroup<FlxText> entryTexts null)
|
(prop &mut :FlxTypedGroup<FlxText> entryTexts null)
|
||||||
(prop &mut :KeyShortcutHandler<EntryLabel> shortcutHandler null)
|
(prop &mut :KeyShortcutHandler<Entry> shortcutHandler null)
|
||||||
|
|
||||||
(prop &mut :HabitModel model null)
|
(prop &mut :HabitModel model null)
|
||||||
(method setModel [m]
|
(method setModel [m]
|
||||||
(set model m)
|
(set model m)
|
||||||
(set shortcutHandler (new KeyShortcutHandler))
|
(set shortcutHandler (new KeyShortcutHandler))
|
||||||
(doFor e (the Array<Entry> (concat m.dailyEntries m.bonusEntries m.todoEntries))
|
|
||||||
(let [label (HabitModel.activeLabel e)]
|
|
||||||
(shortcutHandler.registerItem label.label label)))
|
|
||||||
|
|
||||||
~shortcutHandler.rootMap
|
|
||||||
|
|
||||||
(when entryTexts (remove entryTexts))
|
(when entryTexts (remove entryTexts))
|
||||||
(set entryTexts (new FlxTypedGroup))
|
(set entryTexts (new FlxTypedGroup))
|
||||||
(set textY 0)
|
(set textY 0)
|
||||||
@@ -23,7 +22,28 @@
|
|||||||
(map m.bonusEntries makeText)
|
(map m.bonusEntries makeText)
|
||||||
(set color FlxColor.YELLOW)
|
(set color FlxColor.YELLOW)
|
||||||
(map m.todoEntries makeText)
|
(map m.todoEntries makeText)
|
||||||
(add entryTexts))
|
(add entryTexts)
|
||||||
|
|
||||||
|
(doFor e (the Array<Entry> (concat m.dailyEntries m.bonusEntries m.todoEntries))
|
||||||
|
(let [label (HabitModel.activeLabel e)]
|
||||||
|
(shortcutHandler.registerItem label.label e)))
|
||||||
|
|
||||||
|
**(set shortcutHandler.onBadKey ->:Void [_ _] {})
|
||||||
|
(set shortcutHandler.onSelectItem ->:Void [:Entry e]
|
||||||
|
(let [label (HabitModel.activeLabel e)]
|
||||||
|
**(TODO reveal a piece of the current puzzle)
|
||||||
|
(+= label.points 1)
|
||||||
|
(case e.type
|
||||||
|
(Todo
|
||||||
|
(m.todoEntries.remove e))
|
||||||
|
(Bonus)
|
||||||
|
((Daily _)
|
||||||
|
(set e.doneToday true))
|
||||||
|
(otherwise (throw "bad type")))
|
||||||
|
(m.save)
|
||||||
|
(setModel m)
|
||||||
|
(shortcutHandler.start)))
|
||||||
|
(shortcutHandler.start))
|
||||||
|
|
||||||
(prop &mut textY 0)
|
(prop &mut textY 0)
|
||||||
(prop &mut :FlxColor color null)
|
(prop &mut :FlxColor color null)
|
||||||
|
Reference in New Issue
Block a user