Skip to content

Implement improvement ideas: ELO ranking, house system, equipment, quests, achievements, notifications, login rewards#9

Draft
Copilot wants to merge 5 commits intomainfrom
copilot/implement-docs-improvement-ideas
Draft

Implement improvement ideas: ELO ranking, house system, equipment, quests, achievements, notifications, login rewards#9
Copilot wants to merge 5 commits intomainfrom
copilot/implement-docs-improvement-ideas

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 31, 2026

Implements the non-game improvement ideas from docs/IMPROVEMENT_IDEAS.md — ranking, houses, equipment, quests, achievements, notifications, login rewards, referral enhancements, and onboarding.

Backend — New Models & Services

  • ELO Rating (Player.EloRating): K=32 calculation on battle finish, 5 rank tiers (Apprentice 🪄 → Grand Wizard 👑)
  • House System: House field on Player, HousePoints model for activity tracking, HouseService/HouseController with aggregated house leaderboard
  • Item Equipment: 5 equipment slots on Player (EquippedWandId, etc.), EquipmentService validates item type → slot mapping, BattleService.CalculateDamageWithEquipmentAsync applies stat bonuses in combat
  • Quests: Quest model with QuestType (Daily/Weekly), QuestService generates templated quests, tracks progress on battle wins/bets/deposits, auto-awards rewards
  • Achievements: 6 achievement keys (first_blood, spell_master, gold_hoarder, social_butterfly, veteran, grand_wizard), checked after battles
  • Notifications: Generic Notification model, NotificationService with unread count, used by battle/quest/achievement/referral flows
  • Login Rewards: Streak tracking via LastLoginDate/LoginStreak, escalating rewards (Day 1: 10g → Day 30: 500g)
  • Referral Rewards: Player-to-player referral (not just fellowship), +100g referrer, +50g referee, +20 house points
  • Battle Stats: GetBattleStatsAsync endpoint returning win/loss/damage/streak/most-used-spell

Backend — Modified Files

  • BattleService: ELO calc, equipment bonuses, house points, quest progress, achievement checks, notifications on finish
  • AuthService: House selection + player referral code lookup on registration
  • PlayerService: Added BattleStatsResponse, rank tier/badge mapping in profile response
  • Program.cs: 6 new scoped services registered

Frontend

  • Types: All new DTOs (QuestResponse, AchievementResponse, NotificationResponse, EquipmentSlots, HouseLeaderboardEntry, LoginRewardStatus, BattleStatsResponse), updated RegisterRequest and PlayerProfileResponse
  • API clients: 6 new modules (house, quest, achievement, notification, equipment, loginReward)
  • Stores: 4 new Pinia stores (notification, quest, equipment, house)
  • RegisterView: House selection dropdown (Pyromancers/Frostwardens/Stormcallers/Earthshapers)
  • DashboardView: Getting Started guide for new players, daily reward claim banner, active quests with progress bars, house/rank/ELO display, login streak

Not yet complete

ProfileView (equipment/achievements/stats sections), LeaderboardView (ELO/house columns), BankView (equip button), NavBar (notification bell), NotificationsView, HouseView, and router updates for new pages are not included in this PR.

Copilot AI and others added 4 commits March 31, 2026 22:29
- Add HousePoints, Achievement, Quest, Notification models
- Add Player fields: EloRating, House, equipment slots, login streak, referral, onboarding
- Add DTOs for House, Quest, Achievement, Notification, Equipment
- Update PlayerProfileResponse with new fields and rank system
- Update RegisterRequest with optional House parameter
- Configure EF Core relationships in AppDbContext
- Fix test files for updated RegisterRequest signature

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: jwraats <3438726+jwraats@users.noreply.github.com>
Implement services: HouseService, QuestService, AchievementService,
NotificationService, EquipmentService, LoginRewardService.

Implement controllers: HouseController, QuestController,
AchievementController, NotificationController, EquipmentController,
LoginRewardController.

Update BattleService with ELO rating, equipment bonuses, house points,
quest progress tracking, achievement checks, and battle notifications.

Update AuthService with house selection and player referral rewards.

Update PlayerService/Controller with battle stats endpoint.

Register all new services in Program.cs DI container.

Update BattleServiceTests to pass new dependencies as mocks.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: jwraats <3438726+jwraats@users.noreply.github.com>
- Fix streak calculation to single-pass in PlayerService
- Use string.IsNullOrEmpty for house filtering in HouseService
- Remove unused CalculateDamage method from BattleService
- Move AwardHousePointsRequest to House DTOs file

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Co-authored-by: jwraats <3438726+jwraats@users.noreply.github.com>
…improvement ideas

Agent-Logs-Url: https://github.com/jwraats/Wizard-RPG/sessions/949b9574-732c-4274-8b78-d7d1a75e9090

Co-authored-by: jwraats <3438726+jwraats@users.noreply.github.com>
Copilot AI changed the title [WIP] Implement improvements from documentation Implement improvement ideas: ELO ranking, house system, equipment, quests, achievements, notifications, login rewards Mar 31, 2026
Copilot AI requested a review from jwraats March 31, 2026 23:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants