This page covers Elm 0.18
Players modules
Players messages
Create src/Players/Messages.elm
module Players.Messages exposing (..)
type Msg
= NoOp
Here we will put all the messages related to players.
Players Model
Create src/Players/Models.elm
module Players.Models exposing (..)
type alias PlayerId =
String
type alias Player =
{ id : PlayerId
, name : String
, level : Int
}
new : Player
new =
{ id = "0"
, name = ""
, level = 1
}
Here we define how a player record looks. It has an id, a name and a level.
Also note the definition for PlayerId
, it is just an alias to String
, doing this is useful for clarity later on when we have function that takes many ids. For example:
addPerkToPlayer : Int -> String -> Player
is much clearer when written as:
addPerkToPlayer : PerkId -> PlayerId -> Player
Players Update
Add src/Players/Update.elm
module Players.Update exposing (..)
import Players.Messages exposing (Msg(..))
import Players.Models exposing (Player)
update : Msg -> List Player -> ( List Player, Cmd Msg )
update message players =
case message of
NoOp ->
( players, Cmd.none )
This update doesn't do anything at the moment.
This is the basic pattern that all resources in a bigger application would follow:
Messages
Models
Update
Players
Messages
Models
Update
Perks
Messages
Models
Update
...