piecesPerPoint

This commit is contained in:
2022-08-10 20:25:17 +00:00
parent d233fd1062
commit 5ffd0904b1
3 changed files with 13 additions and 9 deletions

View File

@@ -31,7 +31,8 @@ typedef RewardFile = {
path: String,
startingPoints: Int,
puzzleWidth: Int,
puzzleHeight: Int
puzzleHeight: Int,
piecesPerPoint: Int
};
typedef Puzzle = {

View File

@@ -30,11 +30,12 @@
((when (= lastHeader "FILES") (Some line))
(rewardFiles.push
(let [parts (line.split " ")
piecesPerPoint (Std.parseInt (parts.pop))
puzzleHeight (Std.parseInt (parts.pop))
puzzleWidth (Std.parseInt (parts.pop))
startingPoints (Std.parseInt (parts.pop))
path (parts.join " ")]
(objectWith path startingPoints puzzleWidth puzzleHeight))))
(objectWith path startingPoints puzzleWidth puzzleHeight piecesPerPoint))))
((Some line)
(.push
(case lastHeader
@@ -140,7 +141,7 @@
"${label.label} $(* "|" label.points)") "/")")
(function :String stringifyRewardFile [:RewardFile rewardFile]
"${rewardFile.path} ${rewardFile.startingPoints} ${rewardFile.puzzleWidth} ${rewardFile.puzzleHeight}")
"${rewardFile.path} ${rewardFile.startingPoints} ${rewardFile.puzzleWidth} ${rewardFile.puzzleHeight} ${rewardFile.piecesPerPoint}")
(method :Void save []
(localVar &mut content "DAILY\n-----\n")
@@ -219,6 +220,6 @@
(objectWith [labels (for label labels (objectWith [points 0] label))] type))
(save))
(method addRewardFile [path startingPoints puzzleWidth puzzleHeight]
(rewardFiles.push (objectWith path startingPoints puzzleWidth puzzleHeight))
(method addRewardFile [path startingPoints puzzleWidth puzzleHeight piecesPerPoint]
(rewardFiles.push (objectWith path startingPoints puzzleWidth puzzleHeight piecesPerPoint))
(save))

View File

@@ -154,8 +154,10 @@
(set currentRewardFile (nth m.rewardFiles i))
(set maxRewardFile i)
(when (>= ++i m.rewardFiles.length)
(let [lastStartingPoints .startingPoints (nth m.rewardFiles --i)
nextStartingPoints (+ lastStartingPoints TOTAL_PIECES)]
--i
(let [lastStartingPoints .startingPoints (nth m.rewardFiles i)
piecesPerPoint .piecesPerPoint (nth m.rewardFiles i)
nextStartingPoints (+ lastStartingPoints (Math.ceil (/ TOTAL_PIECES piecesPerPoint)))]
(when (> p nextStartingPoints)
(set puzzleUnlocked nextStartingPoints))
(break)))))
@@ -215,7 +217,7 @@
(r.shuffle jigsaw.jigs)
(localVar spriteGrid (for y (range PUZZLE_HEIGHT) (for x (range PUZZLE_WIDTH) null)))
(localVar indexGrid (for y (range PUZZLE_HEIGHT) (for x (range PUZZLE_WIDTH) 0)))
(doFor i (range (min TOTAL_PIECES (- p currentRewardFile.startingPoints)))
(doFor i (range (min TOTAL_PIECES (* currentRewardFile.piecesPerPoint (- p currentRewardFile.startingPoints))))
(let [jig (nth jigsaw.jigs i)
pos (ifLet [point (dictGet (the Map<Int,FlxPoint> save.data.storedPositions) i)]
point
@@ -298,7 +300,7 @@
(set entryWindow (new SimpleWindow "" (FlxColor.fromRGBFloat 0 0 0 0.5) FlxColor.WHITE 0.9 0.9))
(set entryWindow.cameras [uiCamera])
(set entryWindow.textColor FlxColor.LIME)
(_makeText "Puzzle #$(+ 1 rewardFileIndex) / ${model.rewardFiles.length}" (- TOTAL_PIECES (- p currentRewardFile.startingPoints)))
(_makeText "Puzzle #$(+ 1 rewardFileIndex) / ${model.rewardFiles.length}" (max 0 (- TOTAL_PIECES (* currentRewardFile.piecesPerPoint (- p currentRewardFile.startingPoints)))))
(set entryWindow.textColor FlxColor.ORANGE)
(map (m.activeDailyEntries) makeText)
(set entryWindow.textColor FlxColor.GREEN)