Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
606
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.91 KB | None | 0 0
  1. namespace PlayersAndMonsters.Core
  2. {
  3.     using System.Text;
  4.     using Contracts;
  5.     using Repositories;
  6.     using Models.BattleFields;
  7.  
  8.     public class ManagerController : IManagerController
  9.     {
  10.         private PlayerRepository allPlayers;
  11.         private CardRepository allCards;
  12.         private BattleField battlefield;
  13.  
  14.         public ManagerController()
  15.         {
  16.             allPlayers = new PlayerRepository();
  17.             allCards = new CardRepository();
  18.             battlefield = new BattleField();
  19.         }
  20.  
  21.         public string AddPlayer(string type, string username)
  22.         {
  23.             Models.Players.Contracts.IPlayer player = null;
  24.  
  25.             if(type == "Beginner")
  26.             {
  27.                 player = new Models.Players.Beginner(new CardRepository(), username);
  28.             }
  29.  
  30.             if(type == "Advanced")
  31.             {
  32.                 player = new Models.Players.Advanced(new CardRepository(), username);
  33.             }
  34.  
  35.             allPlayers.Add(player);
  36.  
  37.             return $"Successfully added player of type {type} with username: {username}";
  38.         }
  39.  
  40.         public string AddCard(string type, string name)
  41.         {
  42.             Models.Cards.Contracts.ICard card = null;
  43.  
  44.             if (type == "Magic")
  45.             {
  46.                 card = new Models.Cards.MagicCard(name);
  47.             }
  48.  
  49.             if (type == "Trap")
  50.             {
  51.                 card = new Models.Cards.TrapCard(name);
  52.             }
  53.            
  54.             allCards.Add(card);
  55.  
  56.             return $"Successfully added card of type {type}Card with name: {name}";
  57.         }
  58.  
  59.         public string AddPlayerCard(string username, string cardName)
  60.         {
  61.             var card = allCards.Find(cardName);
  62.             var player = allPlayers.Find(username);
  63.            
  64.             player.CardRepository.Add(card);
  65.  
  66.             return $"Successfully added card: {cardName} to user: {username}";
  67.         }
  68.  
  69.         public string Fight(string attackUser, string enemyUser)
  70.         {
  71.             var attacker = allPlayers.Find(attackUser);
  72.             var enemy = allPlayers.Find(enemyUser);
  73.  
  74.  
  75.             battlefield.Fight(attacker, enemy);
  76.  
  77.             return $"Attack user health {attacker.Health} - Enemy user health {enemy.Health}";
  78.         }
  79.  
  80.         public string Report()
  81.         {
  82.             StringBuilder sb = new StringBuilder();
  83.  
  84.             foreach(var player in allPlayers.Players)
  85.             {
  86.                 sb.AppendLine($"Username: {player.Username} - Health: {player.Health} - Cards {player.CardRepository.Count}");
  87.                 foreach(var card in player.CardRepository.Cards)
  88.                 {
  89.                     sb.AppendLine($"Card: {card.Name} - Damage: {card.DamagePoints}");
  90.                 }
  91.                 sb.AppendLine("###");
  92.             }
  93.             // TODO: CHECK TRIM
  94.             return sb.ToString().TrimEnd();
  95.         }
  96.     }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement