Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace PlayersAndMonsters.Core
- {
- using System.Text;
- using Contracts;
- using Repositories;
- using Models.BattleFields;
- public class ManagerController : IManagerController
- {
- private PlayerRepository allPlayers;
- private CardRepository allCards;
- private BattleField battlefield;
- public ManagerController()
- {
- allPlayers = new PlayerRepository();
- allCards = new CardRepository();
- battlefield = new BattleField();
- }
- public string AddPlayer(string type, string username)
- {
- Models.Players.Contracts.IPlayer player = null;
- if(type == "Beginner")
- {
- player = new Models.Players.Beginner(new CardRepository(), username);
- }
- if(type == "Advanced")
- {
- player = new Models.Players.Advanced(new CardRepository(), username);
- }
- allPlayers.Add(player);
- return $"Successfully added player of type {type} with username: {username}";
- }
- public string AddCard(string type, string name)
- {
- Models.Cards.Contracts.ICard card = null;
- if (type == "Magic")
- {
- card = new Models.Cards.MagicCard(name);
- }
- if (type == "Trap")
- {
- card = new Models.Cards.TrapCard(name);
- }
- allCards.Add(card);
- return $"Successfully added card of type {type}Card with name: {name}";
- }
- public string AddPlayerCard(string username, string cardName)
- {
- var card = allCards.Find(cardName);
- var player = allPlayers.Find(username);
- player.CardRepository.Add(card);
- return $"Successfully added card: {cardName} to user: {username}";
- }
- public string Fight(string attackUser, string enemyUser)
- {
- var attacker = allPlayers.Find(attackUser);
- var enemy = allPlayers.Find(enemyUser);
- battlefield.Fight(attacker, enemy);
- return $"Attack user health {attacker.Health} - Enemy user health {enemy.Health}";
- }
- public string Report()
- {
- StringBuilder sb = new StringBuilder();
- foreach(var player in allPlayers.Players)
- {
- sb.AppendLine($"Username: {player.Username} - Health: {player.Health} - Cards {player.CardRepository.Count}");
- foreach(var card in player.CardRepository.Cards)
- {
- sb.AppendLine($"Card: {card.Name} - Damage: {card.DamagePoints}");
- }
- sb.AppendLine("###");
- }
- // TODO: CHECK TRIM
- return sb.ToString().TrimEnd();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement