File tree Expand file tree Collapse file tree 2 files changed +18
-3
lines changed Expand file tree Collapse file tree 2 files changed +18
-3
lines changed Original file line number Diff line number Diff line change @@ -2192,9 +2192,13 @@ startProgressing quest clientId world worldName player model =
2192
2192
world_
2193
2193
2194
2194
newModel =
2195
- model
2196
- |> updatePlayer worldName player. name ( SPlayer . startProgressing quest world. tickPerIntervalCurve)
2197
- |> updateWorld worldName ensurePlayerIsInQuestProgressDict
2195
+ if World . isQuestDone quest world then
2196
+ model
2197
+
2198
+ else
2199
+ model
2200
+ |> updatePlayer worldName player. name ( SPlayer . startProgressing quest world. tickPerIntervalCurve)
2201
+ |> updateWorld worldName ensurePlayerIsInQuestProgressDict
2198
2202
in
2199
2203
getPlayerData worldName player. name newModel
2200
2204
|> Maybe . map
Original file line number Diff line number Diff line change @@ -4,6 +4,7 @@ module Data.World exposing
4
4
, decoder
5
5
, encode
6
6
, init
7
+ , isQuestDone
7
8
)
8
9
9
10
import Data.Player as Player exposing (Player , SPlayer )
@@ -164,3 +165,13 @@ decoder =
164
165
|> JD . andMap ( JD . field " vendorRestockFrequency" Time . intervalDecoder)
165
166
|> JD . andMap ( JD . field " questsProgress" ( SeqDict . decoder Quest . decoder ( Dict . decoder JD . string JD . int)))
166
167
|> JD . andMap ( JD . field " questRewardShops" ( SeqSet . decoder Shop . decoder))
168
+
169
+
170
+ isQuestDone : Quest .Name -> World -> Bool
171
+ isQuestDone quest world =
172
+ world. questsProgress
173
+ |> SeqDict . get quest
174
+ |> Maybe . withDefault Dict . empty
175
+ |> Dict . values
176
+ |> List . sum
177
+ |> ( \ sum -> sum >= Quest . ticksNeeded quest)
You can’t perform that action at this time.
0 commit comments