X-Git-Url: http://nitlanguage.org diff --git a/contrib/nitrpg/src/templates/panels.nit b/contrib/nitrpg/src/templates/panels.nit index 89d6431..14538c5 100644 --- a/contrib/nitrpg/src/templates/panels.nit +++ b/contrib/nitrpg/src/templates/panels.nit @@ -112,7 +112,9 @@ class GameStatusPanel redef fun render_body do add "{game.load_players.length}" - add " players

" + add " players
" + add "{game.stats["achievements"]}" + add " achievements

" add "{game.stats["pulls"]} pull requests" add " ({game.stats["pulls_open"]} open)
" add "{game.stats["issues"]} issues" @@ -144,6 +146,7 @@ class PlayerStatusPanel add "

ranked " add " # {ranking[player.name]}

" add "{player.nitcoins} nitcoins

" + add "{player.stats["achievements"]} achievements

" add "{player.stats["pulls"]} pull requests
" add "{player.stats["issues"]} issues
" add "{player.stats["commits"]} commits" @@ -360,3 +363,75 @@ class EventListPanel add "" end end + +# Achievement unlocked list panel. +class AchievementsListPanel + super Panel + + # Entity to load the events from. + var entity: GameEntity + + redef fun render_title do + add "  " + add "Achievements unlocked" + end + + redef fun render_body do + var achs = entity.load_achievements.values.to_a + if achs.is_empty then + add "No achievement yet..." + return + end + for ach in achs do add ach.list_item + end +end + +# Achievement detail panel. +class AchievementPanel + super Panel + + # Achievement to display. + var achievement: Achievement + + redef fun render_title do + add "  " + add "Achievement details" + end + + redef fun render_body do + add """

+ +{{{achievement.reward}}} + {{{achievement.name}}} +

+

{{{achievement.desc}}}

""" + + var events = achievement.load_events + + if events.is_empty then + add "Never unlocked..." + return + end + + var event = events.last + var tpl = event.tpl_event + var player = tpl.player + add "
" + add """
+ + #1 + {{{player.name}}} + +
+

Unlocked first by {{{player.link}}}

+ at {{{event.time}}} +
+
""" + + if events.length > 1 then + add """


Also unlocked by + {{{events.length}}} players.

""" + end + end +end