-
Notifications
You must be signed in to change notification settings - Fork 0
Engine Party
KungRaseri edited this page Mar 19, 2026
·
1 revision
Status: ✅ 100% Complete
Implementation: RealmEngine.Core/Features/Party
Tests: ✅ Passing
Recruit and manage NPC allies for cooperative combat. Supports up to 4 party members (1 leader + 3 recruits) with AI-controlled combat, role assignment, and shared rewards.
- Max Party Size: 4 members (1 leader + 3 recruits)
- Recruitment: Hire friendly NPCs with level/charisma requirements
- Party Combat: Multi-character turns with AI ally actions
- Party Management: Equip allies, assign roles, heal party
- Party Progression: Allies level up and gain role-based stat bonuses
- Shared Rewards: XP and gold distributed among party members
- Tank: High HP, defense focus (Warriors, Paladins)
- DPS: High damage output (Rogues, Rangers)
- Healer: Support and healing (Clerics)
- Support: Utility and buffs (Mages)
- Aggressive: 1.3× damage, attack focus
- Balanced: 1.0× damage, mixed actions
- Defensive: 0.8× damage, survival focus
- SupportFocus: 0.9× damage, ally support priority
- Player character takes action
- Allied party members act (AI-controlled)
- Enemy takes action
- Repeat until victory or defeat
- 60% chance to target player character
- 40% chance to target random alive party member
- PartyService: CreateParty, RecruitNPC, DismissPartyMember, DistributeExperience, DistributeGold, HealParty, EquipItem
- PartyAIService: DetermineAction, ShouldHeal, DetermineHealAction, DetermineAttackAction, ApplyHeal
- RecruitNPCCommand: Recruit friendly NPC to party (checks: level requirement, charisma, party not full, NPC friendly)
- DismissPartyMemberCommand: Remove party member, optionally transfer items
- PartyCombatTurnCommand: Execute full party combat turn with AI allies
- GetPartyQuery: Get party composition with member details
// Recruit NPC to party
var recruitResult = await mediator.Send(new RecruitNPCCommand
{
CharacterName = "PlayerHero",
NpcId = "friendly-warrior-npc",
SaveGameId = saveId
});
if (recruitResult.Success)
{
UpdatePartyUI(recruitResult.Party);
}
// Execute party combat turn
var combatResult = await mediator.Send(new PartyCombatTurnCommand
{
CharacterName = "PlayerHero",
Action = CombatActionType.Attack,
SaveGameId = saveId
});
if (combatResult.Success)
{
DisplayCombatLog(combatResult.Messages);
UpdateHealthBars(combatResult);
}- Character System - NPCs use character rules
- Combat System - Party combat mechanics
- Progression System - Ally leveling and growth
Home · Getting Started · Contributing · FAQ
Characters & Progression
Combat
Items & Economy
World & Content
Extensibility
Regions & Zones