Advertisement
Guest User

Untitled

a guest
Apr 1st, 2020
342
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.72 KB | None | 0 0
  1. from battle_field import BattleField
  2. from player.player import Player
  3. from player.beginner import Beginner
  4. from player.advanced import Advanced
  5. from player.player_repository import PlayerRepository
  6. from card.card import Card
  7. from card.magic_card import MagicCard
  8. from card.trap_card import TrapCard
  9. from card.card_repository import CardRepository
  10.  
  11. class Controller:
  12.  
  13. def __init__(self, player_repository: PlayerRepository, card_redpository: CardRepository):
  14. self.player_repository = player_repository
  15. self.card_redpository = card_redpository
  16.  
  17. def add_player(self, type: str, username: str):
  18. if type == "Beginner":
  19. new_player = Beginner(username)
  20. self.player_repository.add(new_player)
  21. return(f"Successfully added player of type {type} with username: {username}")
  22. elif type == "Advanced":
  23. new_player = Advanced(username)
  24. self.player_repository.add(new_player)
  25. return(f"Successfully added player of type {type} with username: {username}")
  26. else:
  27. raise ValueError("Unknown player type")
  28.  
  29. def add_card(self, type: str, name: str):
  30. if type == "Magic":
  31. new_card = MagicCard(name)
  32. self.card_redpository.add(new_card)
  33. return(f"Successfully added card of type {type}Card with name: {name}")
  34. elif type == "Trap":
  35. new_card = TrapCard(name)
  36. self.card_redpository.add(new_card)
  37. return(f"Successfully added card of type {type}Card with name: {name}")
  38. else:
  39. raise ValueError("Unknown card type")
  40.  
  41. def add_player_card(self, username: str, card_name: str):
  42.  
  43. for player in self.player_repository:
  44. if player.username == username:
  45. for card in self.card_redpository:
  46. if card.name == card_name:
  47. player.card_repository.add(card)
  48.  
  49. def fight(self, attack_name: str, enemy_name: str):
  50. attacker = None
  51. enemy = None
  52. for player in self.player_repository:
  53. if player.username == attack_name:
  54. attacker = player
  55. if player.username == enemy_name:
  56. enemy = player
  57. BattleField.fight(attacker, enemy)
  58. return f"Attack user health {attacker.health} - Enemy user health {enemy.health}"
  59.  
  60. def report(self):
  61. report_msg = ""
  62. for player in self.player_repository:
  63. report_msg += f"Username: {player.username} - Health: {player.health} - Cards {player.card_repository.Count}\n"
  64. for card in player.card_repository:
  65. report_msg += f"### Card: {card.name} - Damage: {card.damage_points}\n"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement