Add GameDataController for item icon retrieval; update GameItemsRepository and GameItemService for new action effects

This commit is contained in:
2025-02-12 21:22:43 -03:00
parent 215d4ecb72
commit 6d81ff1564
5 changed files with 112 additions and 24 deletions

View File

@@ -72,19 +72,59 @@ namespace PetCompanion.Services
switch ($"{action}_{target}")
{
case "ADD_FOOD_RESOURCES":
case "ADD_FOOD":
pet.Resources.Food += value;
break;
case "ADD_INTELLIGENCE":
pet.Stats.Intelligence += value;
pet.IncrementIntelligence(value);
break;
case "REDUCE_COOLDOWN":
pet.BasicActionCooldown = pet.BasicActionCooldown.AddMinutes(-value);
break;
case "ADD_HEALTH":
pet.Health = Math.Min(pet.Health + value, pet.MaxHealth);
break;
case "ADD_MAX_HEALTH":
case "ADD_CHARISMA":
pet.IncrementCharisma(value);
break;
case "ADD_STRENGTH":
pet.IncrementStrength(value);
break;
case "ADD_RANDOMSTAT":
var random = new Random();
var stat = random.Next(4);
switch (stat)
{
case 0: pet.IncrementStrength(value); break;
case 1: pet.IncrementIntelligence(value); break;
case 2: pet.IncrementCharisma(value); break;
case 3: pet.Health = Math.Min(pet.Health + value, pet.MaxHealth); break;
}
break;
case "RESTORE_STATS":
pet.Health = pet.MaxHealth;
pet.Stats.Intelligence = pet.Stats.MaxIntelligence;
pet.Stats.Strength = pet.Stats.MaxStrength;
pet.Stats.Charisma = pet.Stats.MaxCharisma;
break;
case "ADD_MAXHEALTH":
pet.MaxHealth += value;
break;
// Add more effect handlers as needed
case "ADD_MAXINTELLIGENCE":
pet.Stats.MaxIntelligence += value;
break;
case "ADD_MAXSTRENGTH":
pet.Stats.MaxStrength += value;
break;
case "ADD_MAXCHARISMA":
pet.Stats.MaxCharisma += value;
break;
case "ADD_MAXALLSTATS":
pet.MaxHealth += value;
pet.Stats.MaxIntelligence += value;
pet.Stats.MaxStrength += value;
pet.Stats.MaxCharisma += value;
break;
}
}
@@ -99,26 +139,28 @@ namespace PetCompanion.Services
switch ($"{action}_{target}")
{
case "ADD_MAX_HEALTH":
case "ADD_MAXHEALTH":
pet.MaxHealth -= value;
pet.Health = Math.Min(pet.Health, pet.MaxHealth);
break;
case "ADD_MAX_INTELLIGENCE":
case "ADD_MAXINTELLIGENCE":
pet.Stats.MaxIntelligence -= value;
pet.Stats.Intelligence = Math.Min(pet.Stats.Intelligence, pet.Stats.MaxIntelligence);
break;
case "ADD_MAX_STRENGTH":
case "ADD_MAXSTRENGTH":
pet.Stats.MaxStrength -= value;
pet.Stats.Strength = Math.Min(pet.Stats.Strength, pet.Stats.MaxStrength);
break;
case "ADD_MAX_CHARISMA":
case "ADD_MAXCHARISMA":
pet.Stats.MaxCharisma -= value;
pet.Stats.Charisma = Math.Min(pet.Stats.Charisma, pet.Stats.MaxCharisma);
break;
case "ADD_MAX_ALL_STATS":
case "ADD_MAXALLSTATS":
pet.MaxHealth -= value;
pet.Stats.MaxIntelligence -= value;
pet.Stats.MaxStrength -= value;
pet.Stats.MaxCharisma -= value;
pet.Health = Math.Min(pet.Health, pet.MaxHealth);
pet.Stats.Intelligence = Math.Min(pet.Stats.Intelligence, pet.Stats.MaxIntelligence);
pet.Stats.Strength = Math.Min(pet.Stats.Strength, pet.Stats.MaxStrength);
pet.Stats.Charisma = Math.Min(pet.Stats.Charisma, pet.Stats.MaxCharisma);