habit game make shortcut map and text labels
This commit is contained in:
@@ -34,6 +34,7 @@
|
||||
|
||||
<haxelib name="flixel" />
|
||||
<haxelib name="kiss" />
|
||||
<haxelib name="kiss-tools" />
|
||||
|
||||
<!--In case you want to use the addons package-->
|
||||
<!--<haxelib name="flixel-addons" />-->
|
||||
|
@@ -86,3 +86,9 @@
|
||||
(let [lowScore (apply min (for label e.labels label.points))]
|
||||
(doFor label e.labels (when (= lowScore label.points) (return label)))
|
||||
(throw "no active?!")))
|
||||
|
||||
(function isActive [:Entry e]
|
||||
(case e.type
|
||||
((Daily days)
|
||||
(contains days (.getDay (Date.now))))
|
||||
(otherwise true)))
|
@@ -2,11 +2,14 @@ package;
|
||||
|
||||
import flixel.FlxG;
|
||||
import flixel.FlxState;
|
||||
import flixel.group.FlxGroup;
|
||||
import flixel.FlxSprite;
|
||||
import flixel.util.FlxColor;
|
||||
import flixel.text.FlxText;
|
||||
import kiss.Prelude;
|
||||
import kiss.List;
|
||||
import kiss_tools.KeyShortcutHandler;
|
||||
import HabitModel;
|
||||
|
||||
@:build(kiss.Kiss.build())
|
||||
class HabitState extends FlxState {}
|
||||
class HabitState extends FlxState {}
|
||||
|
@@ -1,7 +1,36 @@
|
||||
(method &override :Void create [] (super.create))
|
||||
(method &override :Void update [:Float elapsed] (super.update elapsed))
|
||||
|
||||
(prop &mut :FlxTypedGroup<FlxText> entryTexts null)
|
||||
(prop &mut :KeyShortcutHandler<EntryLabel> shortcutHandler null)
|
||||
|
||||
(prop &mut :HabitModel model null)
|
||||
(method setModel [m]
|
||||
(set model m)
|
||||
(doFor e model.bonusEntries ~(HabitModel.activeLabel e)))
|
||||
(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))
|
||||
(set entryTexts (new FlxTypedGroup))
|
||||
(set textY 0)
|
||||
(set color FlxColor.ORANGE)
|
||||
(map (filter m.dailyEntries HabitModel.isActive) makeText)
|
||||
(set color FlxColor.WHITE)
|
||||
(map m.bonusEntries makeText)
|
||||
(set color FlxColor.YELLOW)
|
||||
(map m.todoEntries makeText)
|
||||
(add entryTexts))
|
||||
|
||||
(prop &mut textY 0)
|
||||
(prop &mut :FlxColor color null)
|
||||
|
||||
(method makeText [:Entry e]
|
||||
(let [label (HabitModel.activeLabel e)
|
||||
text (new FlxText 0 textY 0 (+ label.label (* label.points "+")))]
|
||||
(set text.color color)
|
||||
(+= textY text.height)
|
||||
(entryTexts.add text)))
|
Reference in New Issue
Block a user