|
5 | 5 |
|
6 | 6 |
|
7 | 7 | class Battle: |
8 | | - def __init__(self): |
9 | | - self.trainer1 = Pokemon_Trainer( |
10 | | - "Player 1", [Pokemon("Pikachu", 100), Pokemon("Raychu", 200)] |
11 | | - ) |
12 | | - self.trainer2 = Pokemon_Trainer( |
13 | | - "Player 2", [Pokemon("Charizard", 100), Pokemon("Bulbasaur", 200)] |
14 | | - ) |
15 | | - self.pokemon1 = self.trainer1.pokemon_team[0] |
16 | | - self.pokemon2 = self.trainer2.pokemon_team[0] |
17 | | - self.players_turn = self.pokemon2 |
18 | | - self.not_players_turn = self.pokemon1 |
| 8 | + def __init__(self, trainer1: Pokemon_Trainer, trainer2: Pokemon_Trainer): |
| 9 | + self.trainer1 = trainer1 |
| 10 | + self.trainer2 = trainer2 |
| 11 | + self.players_turn = self.trainer2 |
| 12 | + self.not_players_turn = self.trainer1 |
19 | 13 | pass |
20 | 14 |
|
21 | 15 | def change_turn(self): |
22 | | - if self.players_turn == self.pokemon1: |
23 | | - self.players_turn = self.pokemon2 |
24 | | - self.not_players_turn = self.pokemon1 |
| 16 | + if self.players_turn == self.trainer1: |
| 17 | + self.players_turn = self.trainer2 |
| 18 | + self.not_players_turn = self.trainer1 |
25 | 19 | else: |
26 | | - self.players_turn = self.pokemon1 |
27 | | - self.not_players_turn = self.pokemon2 |
28 | | - |
29 | | - |
30 | | - def update_pokemon(self): |
31 | | - if self.players_turn is self.pokemon1: |
32 | | - self.pokemon1 = self.trainer1.choose_pokemon() |
33 | | - else: |
34 | | - self.pokemon2 = self.trainer2.choose_pokemon() |
35 | | - |
| 20 | + self.players_turn = self.trainer1 |
| 21 | + self.not_players_turn = self.trainer2 |
36 | 22 |
|
37 | 23 | def game_loop(self): |
38 | 24 | game_finished = False |
39 | 25 | while not game_finished: |
40 | 26 | self.show_health_bars() |
41 | | - self.action() |
| 27 | + self.action(self.players_turn, self.not_players_turn) |
42 | 28 | game_finished = self.check_game_finished() |
43 | 29 | self.change_turn() |
44 | 30 |
|
45 | 31 | self.show_health_bars() |
46 | 32 |
|
47 | 33 | def check_game_finished(self) -> bool: |
48 | | - if self.pokemon1.hp <= 0: |
49 | | - display_message.show_winner(self.pokemon2.name) |
| 34 | + if self.trainer1.get_pokemon_in_battle().hp <= 0: |
| 35 | + display_message.show_winner(self.trainer2.name) |
50 | 36 | return True |
51 | 37 |
|
52 | | - if self.pokemon2.hp <= 0: |
53 | | - display_message.show_winner(self.pokemon1.name) |
| 38 | + if self.trainer2.get_pokemon_in_battle().hp <= 0: |
| 39 | + display_message.show_winner(self.trainer1.name) |
54 | 40 | return True |
55 | 41 |
|
56 | 42 | return False |
57 | 43 |
|
58 | | - def action(self): |
59 | | - display_message.choose_action(self.players_turn.name) |
| 44 | + def action(self, attacker: Pokemon_Trainer, defender: Pokemon_Trainer): |
| 45 | + display_message.choose_action(attacker.name) |
60 | 46 |
|
61 | 47 | user_input_int = io.read_input_int("Select action: ") |
62 | 48 |
|
63 | 49 | if user_input_int is None: |
64 | 50 | display_message.invalid_action() |
65 | 51 | self.action() |
66 | 52 |
|
| 53 | + attacker_pokemon = attacker.get_pokemon_in_battle() |
| 54 | + defender_pokemon = defender.get_pokemon_in_battle() |
| 55 | + |
67 | 56 | match user_input_int: |
68 | 57 | case 1: |
69 | | - self.use_movement() |
| 58 | + display_message.choose_movement(attacker_pokemon.moves) |
| 59 | + attacker_pokemon.use_move(attacker.choose_attack(), defender_pokemon) |
70 | 60 | case 2: |
71 | | - self.players_turn.heal() |
| 61 | + attacker_pokemon.heal() |
72 | 62 | case 3: |
73 | | - self.update_pokemon() |
| 63 | + attacker.choose_pokemon() |
74 | 64 | case _: |
75 | 65 | display_message.invalid_action() |
76 | 66 | self.action() |
77 | 67 |
|
78 | 68 | self.players_turn |
79 | 69 |
|
80 | | - def use_movement(self): |
81 | | - display_message.choose_movement(self.players_turn.moves) |
82 | | - user_input_int = io.read_input_int("Select an option: ") |
83 | | - self.players_turn.use_move(user_input_int, self.not_players_turn) |
84 | | - |
85 | 70 | def show_health_bars(self): |
86 | | - display_message.show_pokemon_healthbar(self.pokemon1) |
87 | | - display_message.show_pokemon_healthbar(self.pokemon2) |
| 71 | + display_message.show_pokemon_healthbar(self.trainer1.get_pokemon_in_battle()) |
| 72 | + display_message.show_pokemon_healthbar(self.trainer2.get_pokemon_in_battle()) |
0 commit comments