Party Synergies - xopherdeep/do-it-for-the-xp GitHub Wiki

Party Synergies & Bonuses

🎭 The Holy Trinity (Applied to Chores)

Role Classic MMO App Version
Tank Takes damage Takes the hardest/unpleasant tasks
Healer Restores HP Provides encouragement, covers for others
DPS Deals damage Speed-completes easy tasks, builds momentum

Data Models

Party Composition

interface PartyComposition {
  members: PartyMember[];
  synergies: SynergyBonus[];
}

Synergy Bonus

interface SynergyBonus {
  name: string;
  description: string;
  requirements: {
    roles?: string[];
    classes?: string[];
    races?: string[];
    minPartySize?: number;
  };
  effects: {
    xpBonus?: number;
    goldBonus?: number;
    cooldownReduction?: number;
    statBoosts?: Record<string, number>;
  };
}

Class Synergy Bonuses

When party composition meets certain requirements, everyone gets bonuses!

Synergy Name Requirements Bonus
Balanced Party 1 Tank + 1 Healer + 1 DPS +15% XP to all
Warrior's Bond 2+ Warriors +20% Strength
Mage Circle 2+ Mages +30% MP regen
Shadow Collective 2+ Thieves Stealth mode for all
Full House 4+ members +25% all bonuses
Dynamic Duo Exactly 2 members +50% XP (focused)
Elemental Mastery Fire + Ice + Storm mage +100% ability damage
Iron Front Warrior + Monk combo +40% defense
Recon Team Thief + Ranger +50% temple exploration

Race Synergies

Synergy Races Required Bonus
Ancient Alliance Elf + Dwarf +25% XP, +15% Gold
Primal Pack Orc + Dragonkin +40% difficult task bonus
Fey Court Fairy + Gnome +35% ability effectiveness
Shadow Council Shadow + Thief 100% stealth mode

📊 Stat Scaling for Tasks

Stat Effect Task Categories
Strength Physical task bonus Cleaning, yard work, exercise
Intelligence Mental task bonus Studying, planning, research
Dexterity Speed bonus Quick tasks, efficiency, multitasking
Vitality HP / Endurance Long sessions, prevents burnout
Wisdom MP / XP bonus XP gains, ability effectiveness
Charisma Party bonuses Helping others, social tasks

Level Up Rewards

interface LevelUpReward {
  level: number;
  statPoints: number;       // Points to allocate freely
  classStatBonus: Record<string, number>;  // Auto from class
  abilityPointsGained: number;
  unlockedAt: {
    abilities?: string[];
    features?: string[];
    cosmetics?: string[];
  };
}
⚠️ **GitHub.com Fallback** ⚠️