-module(tallgrass@internal@evolution@evolution_chain@evolution_chain). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([evolution_chain/0]). -export_type([evolution_chain/0, chain_link/0, evolution_details/0]). -type evolution_chain() :: {evolution_chain, integer(), gleam@option:option(tallgrass@internal@common@affordance:affordance()), chain_link()}. -type chain_link() :: {chain_link, boolean(), tallgrass@internal@common@affordance:affordance(), list(evolution_details())}. -type evolution_details() :: {evolution_details, gleam@option:option(tallgrass@internal@common@affordance:affordance()), tallgrass@internal@common@affordance:affordance(), integer(), gleam@option:option(tallgrass@internal@common@affordance:affordance()), gleam@option:option(tallgrass@internal@common@affordance:affordance()), gleam@option:option(tallgrass@internal@common@affordance:affordance()), gleam@option:option(tallgrass@internal@common@affordance:affordance()), integer(), gleam@option:option(integer()), gleam@option:option(integer()), gleam@option:option(integer()), boolean(), gleam@option:option(tallgrass@internal@common@affordance:affordance()), gleam@option:option(tallgrass@internal@common@affordance:affordance()), integer(), binary(), gleam@option:option(tallgrass@internal@common@affordance:affordance()), boolean()}. -spec evolution_details() -> decode:decoder(evolution_details()). evolution_details() -> _pipe = decode:into( (decode:parameter( fun(Item) -> decode:parameter( fun(Trigger) -> decode:parameter( fun(Gender) -> decode:parameter( fun(Held_item) -> decode:parameter( fun(Known_move) -> decode:parameter( fun(Known_move_type) -> decode:parameter( fun(Location) -> decode:parameter( fun( Min_level ) -> decode:parameter( fun( Min_happiness ) -> decode:parameter( fun( Min_beauty ) -> decode:parameter( fun( Min_affection ) -> decode:parameter( fun( Needs_overworld_rain ) -> decode:parameter( fun( Party_species ) -> decode:parameter( fun( Party_type ) -> decode:parameter( fun( Relative_physical_stats ) -> decode:parameter( fun( Time_of_day ) -> decode:parameter( fun( Trade_species ) -> decode:parameter( fun( Turn_upside_down ) -> {evolution_details, Item, Trigger, Gender, Held_item, Known_move, Known_move_type, Location, Min_level, Min_happiness, Min_beauty, Min_affection, Needs_overworld_rain, Party_species, Party_type, Relative_physical_stats, Time_of_day, Trade_species, Turn_upside_down} end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end )) ), _pipe@1 = decode:field( _pipe, <<"item"/utf8>>, decode:optional(tallgrass@internal@common@affordance:affordance()) ), _pipe@2 = decode:field( _pipe@1, <<"trigger"/utf8>>, tallgrass@internal@common@affordance:affordance() ), _pipe@3 = decode:field( _pipe@2, <<"gender"/utf8>>, {decoder, fun gleam@dynamic:int/1} ), _pipe@4 = decode:field( _pipe@3, <<"held_item"/utf8>>, decode:optional(tallgrass@internal@common@affordance:affordance()) ), _pipe@5 = decode:field( _pipe@4, <<"known_move"/utf8>>, decode:optional(tallgrass@internal@common@affordance:affordance()) ), _pipe@6 = decode:field( _pipe@5, <<"known_move_type"/utf8>>, decode:optional(tallgrass@internal@common@affordance:affordance()) ), _pipe@7 = decode:field( _pipe@6, <<"location"/utf8>>, decode:optional(tallgrass@internal@common@affordance:affordance()) ), _pipe@8 = decode:field( _pipe@7, <<"min_level"/utf8>>, {decoder, fun gleam@dynamic:int/1} ), _pipe@9 = decode:field( _pipe@8, <<"min_happiness"/utf8>>, decode:optional({decoder, fun gleam@dynamic:int/1}) ), _pipe@10 = decode:field( _pipe@9, <<"min_beauty"/utf8>>, decode:optional({decoder, fun gleam@dynamic:int/1}) ), _pipe@11 = decode:field( _pipe@10, <<"min_affection"/utf8>>, decode:optional({decoder, fun gleam@dynamic:int/1}) ), _pipe@12 = decode:field( _pipe@11, <<"needs_overworld_rain"/utf8>>, {decoder, fun gleam@dynamic:bool/1} ), _pipe@13 = decode:field( _pipe@12, <<"party_species"/utf8>>, decode:optional(tallgrass@internal@common@affordance:affordance()) ), _pipe@14 = decode:field( _pipe@13, <<"party_type"/utf8>>, decode:optional(tallgrass@internal@common@affordance:affordance()) ), _pipe@15 = decode:field( _pipe@14, <<"relative_physical_stats"/utf8>>, {decoder, fun gleam@dynamic:int/1} ), _pipe@16 = decode:field( _pipe@15, <<"time_of_day"/utf8>>, {decoder, fun gleam@dynamic:string/1} ), _pipe@17 = decode:field( _pipe@16, <<"trade_species"/utf8>>, decode:optional(tallgrass@internal@common@affordance:affordance()) ), decode:field( _pipe@17, <<"turn_upside_down"/utf8>>, {decoder, fun gleam@dynamic:bool/1} ). -spec chain_link() -> decode:decoder(chain_link()). chain_link() -> _pipe = decode:into( (decode:parameter( fun(Is_baby) -> decode:parameter( fun(Species) -> decode:parameter( fun(Evolution_details) -> {chain_link, Is_baby, Species, Evolution_details} end ) end ) end )) ), _pipe@1 = decode:field( _pipe, <<"is_baby"/utf8>>, {decoder, fun gleam@dynamic:bool/1} ), _pipe@2 = decode:field( _pipe@1, <<"species"/utf8>>, tallgrass@internal@common@affordance:affordance() ), decode:field( _pipe@2, <<"evolution_details"/utf8>>, decode:list(evolution_details()) ). -spec evolution_chain() -> decode:decoder(evolution_chain()). evolution_chain() -> _pipe = decode:into( (decode:parameter( fun(Id) -> decode:parameter( fun(Baby_trigger_item) -> decode:parameter( fun(Chain) -> {evolution_chain, Id, Baby_trigger_item, Chain} end ) end ) end )) ), _pipe@1 = decode:field( _pipe, <<"id"/utf8>>, {decoder, fun gleam@dynamic:int/1} ), _pipe@2 = decode:field( _pipe@1, <<"baby_trigger_item"/utf8>>, decode:optional(tallgrass@internal@common@affordance:affordance()) ), decode:field(_pipe@2, <<"chain"/utf8>>, chain_link()).