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 %}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc