impls item price modifiers
This commit is contained in:
52
src/Api.elm
52
src/Api.elm
@@ -320,26 +320,60 @@ type ActionMode
|
||||
|
||||
|
||||
type RequestData
|
||||
= SellPayload Loot (Maybe Float) (List Float) (List Int)
|
||||
| BuyPayload Loot (Maybe Float) (List Float)
|
||||
= SellPayload Loot (Maybe Float) (List (Maybe Float)) (List Int)
|
||||
| BuyPayload Loot (Maybe Float) (List (Maybe Float))
|
||||
| GrabPayload Loot
|
||||
| AddPayload String Loot
|
||||
|
||||
|
||||
zip xs ys =
|
||||
List.map2 Tuple.pair xs ys
|
||||
|
||||
|
||||
itemsWithMods items mods =
|
||||
zip items mods
|
||||
|> E.list
|
||||
(\( item, mod ) ->
|
||||
E.list identity
|
||||
[ E.int item.id
|
||||
, case mod of
|
||||
Just m ->
|
||||
E.float m
|
||||
|
||||
Nothing ->
|
||||
E.null
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
buildPayload : RequestData -> E.Value
|
||||
buildPayload data =
|
||||
case data of
|
||||
BuyPayload items _ _ ->
|
||||
BuyPayload items gMod iMods ->
|
||||
E.object
|
||||
[ ( "items", items |> E.list (\i -> E.list identity [ E.int i.id, E.null ]) )
|
||||
, ( "global_mod", E.null )
|
||||
[ ( "items", itemsWithMods items iMods )
|
||||
, ( "global_mod"
|
||||
, case gMod of
|
||||
Nothing ->
|
||||
E.null
|
||||
|
||||
Just f ->
|
||||
E.float f
|
||||
)
|
||||
]
|
||||
|
||||
SellPayload items _ _ _ ->
|
||||
SellPayload items gMod iMods players ->
|
||||
E.object
|
||||
[ ( "items", items |> E.list (\i -> E.list identity [ E.int i.id, E.null ]) )
|
||||
, ( "global_mod", E.null )
|
||||
, ( "players", E.null )
|
||||
[ ( "items", itemsWithMods items iMods )
|
||||
, ( "global_mod"
|
||||
, case gMod of
|
||||
Nothing ->
|
||||
E.null
|
||||
|
||||
Just f ->
|
||||
E.float f
|
||||
)
|
||||
, ( "players", E.list (\id -> E.int id) players )
|
||||
]
|
||||
|
||||
-- API expects the list of claimed items ids
|
||||
|
||||
Reference in New Issue
Block a user