ai_upgrade_assistant-0.2.0-alpha2/templates/ai-upgrade-character-sheet.html.twig
templates/ai-upgrade-character-sheet.html.twig
{#
/**
* @file
* Default theme implementation for the AI upgrade character sheet.
*
* Available variables:
* - user: The user object
* - achievements: User's achievements and stats
* - stats: Character stats
* - guild: Guild information if any
* - recent_achievements: Recent achievements list
*/
#}
{% extends "@ai_upgrade_assistant/ai-upgrade-base.html.twig" %}
{% block content %}
<div class="character-sheet parchment-bg">
<div class="character-header">
<div class="character-name">
<h1>{{ user.getDisplayName() }} the {{ achievements.specialization|default('Breaker of Production') }}</h1>
<div class="character-title">Level {{ achievements.level|default(1) }} Code Warrior</div>
<div class="character-motto">"{{ random([
'I debug in production because I live dangerously!',
'I dont always test my code, but when I do, I do it in production',
'Keep calm and blame the cache',
'May the forks be with you',
'In code we trust, in production we pray',
'I am one with the code, the code is buggy'
]) }}"</div>
</div>
<div class="character-avatar">
<div class="avatar-frame {{ random(['warrior', 'wizard', 'rogue', 'paladin']) }}">
<i class="fas {{ achievements.class_icon|default('fa-bug') }}"></i>
</div>
</div>
</div>
<div class="character-stats">
<div class="stat-block primary-stats">
<h2><i class="fas fa-dice-d20"></i> Epic Stats of Power</h2>
<ul class="stat-list">
<li class="stat" data-tooltip="Your ability to crush deprecated code with your bare hands">
<span class="stat-name">Code SMASH!</span>
<span class="stat-value">{{ stats.code_strength|default(10) }}</span>
</li>
<li class="stat" data-tooltip="How many Stack Overflow tabs you can have open at once">
<span class="stat-name">Tab Mastery</span>
<span class="stat-value">{{ stats.pattern_intelligence|default(10) }}</span>
</li>
<li class="stat" data-tooltip="Speed at which you can blame others for bugs">
<span class="stat-name">Blame Shifting</span>
<span class="stat-value">{{ stats.update_dexterity|default(10) }}</span>
</li>
<li class="stat" data-tooltip="How many energy drinks you can consume before seeing code in your dreams">
<span class="stat-name">Caffeine Resistance</span>
<span class="stat-value">{{ stats.code_constitution|default(10) }}</span>
</li>
<li class="stat" data-tooltip="Your ability to find that one GitHub issue from 3 years ago">
<span class="stat-name">Ancient Knowledge</span>
<span class="stat-value">{{ stats.community_wisdom|default(10) }}</span>
</li>
<li class="stat" data-tooltip="How convincing your 'It works on my machine' argument is">
<span class="stat-name">Excuse Mastery</span>
<span class="stat-value">{{ stats.contribution_charisma|default(10) }}</span>
</li>
</ul>
</div>
<div class="stat-block saving-throws">
<h2><i class="fas fa-shield-alt"></i> Saving Throws vs Bad Code</h2>
<ul class="save-list">
<li class="save" data-tooltip="Resist the urge to push directly to master">
<span class="save-name">Git Discipline</span>
<span class="save-value">+{{ stats.production_safety|default(2) }}</span>
</li>
<li class="save" data-tooltip="Ability to recover after deleting the wrong branch">
<span class="save-name">Panic Control</span>
<span class="save-value">+{{ stats.backup_recovery|default(2) }}</span>
</li>
<li class="save" data-tooltip="Chance to survive dependency hell">
<span class="save-name">Composer Sanity</span>
<span class="save-value">+{{ stats.composer_stability|default(2) }}</span>
</li>
</ul>
</div>
</div>
<div class="experience-section">
<div class="level-info">
<span class="current-level">Level {{ achievements.level|default(1) }} {{ random([
'Bug Hunter',
'Cache Clearer',
'Production Survivor',
'Stack Overflow Warrior',
'Git Blame Archaeologist'
]) }}</span>
<div class="experience-bar">
<div class="experience-progress" style="width: {{ (achievements.current_xp / next_level_xp * 100)|default(0) }}%"></div>
</div>
<span class="xp-counter">{{ achievements.current_xp|default(0) }} / {{ next_level_xp }} XP</span>
</div>
</div>
<div class="achievements-section">
<h2><i class="fas fa-trophy"></i> Legendary Achievements</h2>
<div class="achievement-grid">
{% for achievement in recent_achievements %}
<div class="achievement-item {{ achievement.rarity }}">
<i class="fas {{ achievement.icon }}"></i>
<span class="achievement-name">{{ achievement.name }}</span>
<span class="achievement-date">{{ achievement.date|date('Y-m-d') }}</span>
<div class="achievement-sparkles"></div>
</div>
{% endfor %}
</div>
</div>
<div class="guild-info">
{% if guild %}
<h2><i class="fas fa-users"></i> Guild of {{ random([
'Caffeinated Coders',
'Merge Conflict Resolvers',
'Production Breakers Anonymous',
'Stack Overflow Pilgrims',
'Git Blame Survivors'
]) }}</h2>
<div class="guild-details">
<span class="guild-name">{{ guild.name }}</span>
<span class="guild-rank">{{ guild.rank }}</span>
<div class="guild-contribution">
<div class="contribution-bar" style="width: {{ guild.contribution_percentage }}%"></div>
</div>
</div>
{% endif %}
</div>
<div class="inventory">
<h2><i class="fas fa-briefcase"></i> Developer's Arsenal</h2>
<div class="inventory-grid">
<div class="inventory-item magical">
<i class="fas fa-keyboard"></i>
<span>Keyboard of a Thousand Commits</span>
</div>
<div class="inventory-item rare">
<i class="fas fa-coffee"></i>
<span>Bottomless Coffee Mug +3</span>
</div>
<div class="inventory-item epic">
<i class="fas fa-scroll"></i>
<span>Stack Overflow Premium Scroll</span>
</div>
<div class="inventory-item legendary">
<i class="fas fa-undo"></i>
<span>Emergency Ctrl+Z Wand</span>
</div>
</div>
</div>
<div class="action-buttons">
<button class="action-button quest-log" data-action="quests">
<i class="fas fa-book"></i> Bug Quest Log
</button>
<button class="action-button inventory" data-action="inventory">
<i class="fas fa-briefcase"></i> Code Stash
</button>
<button class="action-button leaderboard" data-action="leaderboard">
<i class="fas fa-trophy"></i> Hall of Bugs
</button>
</div>
<div class="character-footer">
<div class="footer-quote">{{ random([
"In the darkest of deployment nights, only coffee remains true.",
"When in doubt, git blame -w -C -C -C",
"I don't always test my code, but when I do, I do it in production",
"May your code be bug-free and your coffee be strong",
"Keep calm and blame the cache",
"There is no Ctrl+Z in production... or is there?",
"I am one with the Force Push, the Force Push is with me"
]) }}</div>
</div>
</div>
{% endblock %}
