lib/rpg/v1/character.ex
defmodule RPG.V1.Character do
@enforce_keys [:class, :name]
defstruct [
:class,
:name,
modifiers: [],
hit_points: 6,
magic_points: 0,
strength: 6,
agility: 6,
defense: 6,
toxicity: 0,
level: 1
]
alias RPG.V1.Class
def create(%{} = attrs) do
__MODULE__
|> struct!(attrs)
|> Class.modifiers()
end
def is_poisoned?(%__MODULE__{toxicity: toxicity}), do: toxicity >= 10
def is_poisoned?(_), do: false
end