Yet another Elixir implementation of Riot's Legends of Runterra deck code library.
If using Hex, the package can be installed
by adding :riot_lor
to your list of dependencies in mix.exs
:
def deps do
[
{:riot_lor, "~> 1.1.1"}
]
end
Docs can be found at https://hexdocs.pm/riot_lor.
You can also read supplemental docs under the docs/
directory.
You can run the project locally with iex -S mix
.
You may want to
configure IEx to
- display lists of ints as lists, rather than charlists
- limit inspect enum length to 4, in case your want to limit large outputs of decks
iex \
--eval 'IEx.configure(inspect: [limit: 4, charlists: :as_lists])' \
-S mix
iex(1)> IEx.configure(inspect: [limit: 4, charlists: :as_lists])
:ok
iex(2)> deck_code = "CEAAECABAQJRWHBIFU2DOOYIAEBAMCIMCINCILJZAICACBANE4VCYBABAILR2HRL"
"CEAAECABAQJRWHBIFU2DOOYIAEBAMCIMCINCILJZAICACBANE4VCYBABAILR2HRL"
iex(3)> deck = Riot.LoR.DeckCode.decode!(deck_code)
%{
%Riot.LoR.Card{fac: 2, num: 6, set: 1} => 2,
%Riot.LoR.Card{fac: 2, num: 9, ...} => 2,
%Riot.LoR.Card{fac: 2, ...} => 2,
%Riot.LoR.Card{...} => 2,
...
}
iex(4)> Riot.LoR.Deck.code_count(deck)
[{"01IO006", 2}, {"01IO009", 2}, {"01IO012", ...}, {...}, ...]
iex(5)> card_counts = [{"01DE001", 1}, {"05BC198", 1}]
[{"01DE001", 1}, {"05BC198", 1}]
iex(6)> deck = Riot.LoR.Deck.from_card_counts!(card_counts)
%{
%Riot.LoR.Card{fac: 0, num: 1, set: 1} => 1,
%Riot.LoR.Card{fac: 10, num: 198, set: 5} => 1
}
iex(7)> Riot.LoR.DeckCode.encode!(deck)
"CQAAAAQBAEAACAIFBLDAC"
See the CONTRIBUTING.md
file.
Licensed under the MIT License. See the LICENSE file for more details.
Per Riot's Core Policies:
The riot_lor
project isn't endorsed by Riot Games and doesn't reflect the
views or opinions of Riot Games or anyone officially involved in producing or
managing Riot Games properties. Riot Games, and all associated properties are
trademarks or registered trademarks of Riot Games, Inc.