diff --git a/Set12Simulator/ability.py b/Set12Simulator/ability.py index 1674160..20e5cd0 100755 --- a/Set12Simulator/ability.py +++ b/Set12Simulator/ability.py @@ -1,10 +1,10 @@ -import Simulator.config as config -import Simulator.stats as stats -import Simulator.field as field -import Simulator.champion_functions as champion_functions -import Simulator.item_stats as item_stats -import Simulator.origin_class as origin_class -import Simulator.items as items +import Set12Simulator.config as config +import Set12Simulator.stats as stats +import Set12Simulator.field as field +import Set12Simulator.champion_functions as champion_functions +import Set12Simulator.item_stats as item_stats +import Set12Simulator.origin_class as origin_class +import Set12Simulator.items as items import random from math import ceil, floor diff --git a/Set12Simulator/active.py b/Set12Simulator/active.py index 6f189c2..63b7835 100755 --- a/Set12Simulator/active.py +++ b/Set12Simulator/active.py @@ -1,6 +1,6 @@ -import Simulator.stats as stats -import Simulator.field as field -import Simulator.origin_class_stats as origin_class_stats +import Set12Simulator.stats as stats +import Set12Simulator.field as field +import Set12Simulator.origin_class_stats as origin_class_stats import random diff --git a/Set12Simulator/alt_autobattler.py b/Set12Simulator/alt_autobattler.py index 177c30a..6f5ab96 100644 --- a/Set12Simulator/alt_autobattler.py +++ b/Set12Simulator/alt_autobattler.py @@ -1,4 +1,4 @@ -from Simulator.pool_stats import cost_star_values +from Set12Simulator.pool_stats import cost_star_values import numpy as np def alt_auto_battle(player_1, player_2, round_damage=0): diff --git a/Set12Simulator/augment.py b/Set12Simulator/augment.py new file mode 100644 index 0000000..55e9fc7 --- /dev/null +++ b/Set12Simulator/augment.py @@ -0,0 +1,23 @@ +from enum import Enum, auto + + +class AugmentType(Enum): + AFK = auto() + +class Augment: + type_: AugmentType + round_: int + + def __init__(self, type_: AugmentType, round_: int): + self.type_ = type_ + self.round_ = round_ + + + def start_round(self, player): + if self.type_ == AugmentType.AFK: + remaining_round = player.round - self.round_ - 3 + if remaining_round < 0: + player.is_afk = True + elif remaining_round == 0: + player.gold += 20 + diff --git a/Set12Simulator/batch_generator.py b/Set12Simulator/batch_generator.py index 39d0be7..c7d2b27 100644 --- a/Set12Simulator/batch_generator.py +++ b/Set12Simulator/batch_generator.py @@ -1,13 +1,13 @@ import config import numpy as np -from Simulator.battle_generator import BattleGenerator -from Simulator import pool -from Simulator.observation.token.basic_observation import ObservationToken -from Simulator.observation.vector.observation import ObservationVector -from Simulator.observation.vector.gemini_observation import GeminiObservation -from Simulator.player_manager import PlayerManager -from Simulator.tft_simulator import TFTConfig +from Set12Simulator.battle_generator import BattleGenerator +from Set12Simulator import pool +from Set12Simulator.observation.token.basic_observation import ObservationToken +from Set12Simulator.observation.vector.observation import ObservationVector +from Set12Simulator.observation.vector.gemini_observation import GeminiObservation +from Set12Simulator.player_manager import PlayerManager +from Set12Simulator.tft_simulator import TFTConfig class BatchGenerator: def __init__(self): diff --git a/Set12Simulator/battle_generator.py b/Set12Simulator/battle_generator.py index 444cfee..e854fb6 100644 --- a/Set12Simulator/battle_generator.py +++ b/Set12Simulator/battle_generator.py @@ -1,13 +1,13 @@ import numpy as np import config import random -from Simulator.pool import pool -from Simulator.player import Player -from Simulator.utils import coord_to_x_y, x_y_to_1d_coord -from Simulator.item_stats import item_builds -from Simulator.champion import champion -from Simulator.observation.token.action import ActionToken -from Simulator.default_agent_stats import ONE_COST_UNITS, TWO_COST_UNITS, THREE_COST_UNITS, FOUR_COST_UNITS, FIVE_COST_UNITS +from Set12Simulator.pool import pool +from Set12Simulator.player import Player +from Set12Simulator.utils import coord_to_x_y, x_y_to_1d_coord +from Set12Simulator.item_stats import item_builds +from Set12Simulator.champion import champion +from Set12Simulator.observation.token.action import ActionToken +from Set12Simulator.default_agent_stats import ONE_COST_UNITS, TWO_COST_UNITS, THREE_COST_UNITS, FOUR_COST_UNITS, FIVE_COST_UNITS """ diff --git a/Set12Simulator/carousel.py b/Set12Simulator/carousel.py index 0adb007..0e8bd1b 100644 --- a/Set12Simulator/carousel.py +++ b/Set12Simulator/carousel.py @@ -1,7 +1,7 @@ import config -from Simulator.item_stats import item_builds as item_builds, basic_items, starting_items, offensive_items, defensive_items -from Simulator.champion import champion -from Simulator.pool_stats import COST_1, COST_2, COST_3, COST_4, COST_5 +from Set12Simulator.item_stats import item_builds as item_builds, basic_items, starting_items, offensive_items, defensive_items +from Set12Simulator.champion import champion +from Set12Simulator.pool_stats import COST_1, COST_2, COST_3, COST_4, COST_5 import random # TODO: diff --git a/Set12Simulator/champion.py b/Set12Simulator/champion.py index ab81f94..57a899e 100755 --- a/Set12Simulator/champion.py +++ b/Set12Simulator/champion.py @@ -1,16 +1,16 @@ -import Simulator.config as config -import Simulator.origin_class as origin_class -import Simulator.origin_class_stats as origin_class_stats -import Simulator.champion_functions as champion_functions +import Set12Simulator.config as config +import Set12Simulator.origin_class as origin_class +import Set12Simulator.origin_class_stats as origin_class_stats +import Set12Simulator.champion_functions as champion_functions import time import random import itertools from math import ceil -from Simulator.stats import AD, HEALTH, ARMOR, MR, AS, RANGE, MANA, MAXMANA, COST, MANALOCK, ABILITY_REQUIRES_TARGET, \ +from Set12Simulator.stats import AD, HEALTH, ARMOR, MR, AS, RANGE, MANA, MAXMANA, COST, MANALOCK, ABILITY_REQUIRES_TARGET, \ DODGE, INITIATIVE_ACTIVE, ABILITY_LENGTH, DAMAGE_PER_UNIT -from Simulator.champion_functions import attack, die, MILLIS, MILLISECONDS_INCREASE, add_damage_dealt -from Simulator import ability, active, field, item_stats, items +from Set12Simulator.champion_functions import attack, die, MILLIS, MILLISECONDS_INCREASE, add_damage_dealt +from Set12Simulator import ability, active, field, item_stats, items que = [] log = [] diff --git a/Set12Simulator/champion_functions.py b/Set12Simulator/champion_functions.py index ef7b6d4..73cf38d 100755 --- a/Set12Simulator/champion_functions.py +++ b/Set12Simulator/champion_functions.py @@ -1,11 +1,11 @@ -import Simulator.config as config -import Simulator.origin_class as origin_class -import Simulator.origin_class_stats as origin_class_stats -import Simulator.stats as stats +import Set12Simulator.config as config +import Set12Simulator.origin_class as origin_class +import Set12Simulator.origin_class_stats as origin_class_stats +import Set12Simulator.stats as stats import random from math import ceil -from Simulator import ability, active, field, item_stats, items -from Simulator.stats import * +from Set12Simulator import ability, active, field, item_stats, items +from Set12Simulator.stats import * MILLISECONDS = 0 diff --git a/Set12Simulator/config.py b/Set12Simulator/config.py index 1e0f3ef..ee15a1a 100644 --- a/Set12Simulator/config.py +++ b/Set12Simulator/config.py @@ -1,5 +1,5 @@ import config -from Simulator.item_stats import uncraftable_items, items +from Set12Simulator.item_stats import uncraftable_items, items CHAMPION_INFORMATION = 12 BOARD_X = 7 diff --git a/Set12Simulator/default_agent.py b/Set12Simulator/default_agent.py index 2efd772..48a473d 100644 --- a/Set12Simulator/default_agent.py +++ b/Set12Simulator/default_agent.py @@ -1,13 +1,13 @@ import config import numpy as np -import Simulator.champion as champion -from Simulator.default_agent_stats import * -from Simulator.pool_stats import cost_star_values -from Simulator.origin_class_stats import tiers, origin_class -from Simulator.origin_class import team_traits -from Simulator.utils import x_y_to_1d_coord -from Simulator.stats import COST, BASE_CHAMPION_LIST -from Simulator.item_stats import starting_items +import Set12Simulator.champion as champion +from Set12Simulator.default_agent_stats import * +from Set12Simulator.pool_stats import cost_star_values +from Set12Simulator.origin_class_stats import tiers, origin_class +from Set12Simulator.origin_class import team_traits +from Set12Simulator.utils import x_y_to_1d_coord +from Set12Simulator.stats import COST, BASE_CHAMPION_LIST +from Set12Simulator.item_stats import starting_items from copy import deepcopy diff --git a/Set12Simulator/field.py b/Set12Simulator/field.py index 32efaa0..d0c876e 100755 --- a/Set12Simulator/field.py +++ b/Set12Simulator/field.py @@ -1,6 +1,6 @@ import math -import Simulator.stats as stats -import Simulator.items as items +import Set12Simulator.stats as stats +import Set12Simulator.items as items coordinates = [[None] * 7 for _ in range(8)] diff --git a/Set12Simulator/game_round.py b/Set12Simulator/game_round.py index 25df96d..3f19543 100644 --- a/Set12Simulator/game_round.py +++ b/Set12Simulator/game_round.py @@ -1,12 +1,14 @@ -import Simulator.config as config +import Set12Simulator.config as config import config as global_config import time import random import numpy as np -from Simulator import champion, minion -from Simulator.champion_functions import MILLIS -from Simulator.carousel import carousel -from Simulator.alt_autobattler import alt_auto_battle + +from Set12Simulator.augment import Augment, AugmentType +from Set12Simulator import champion, minion +from Set12Simulator.champion_functions import MILLIS +from Set12Simulator.carousel import carousel +from Set12Simulator.alt_autobattler import alt_auto_battle from copy import deepcopy @@ -356,6 +358,23 @@ def update_players(self, players): self.PLAYERS = players + + def augment_round(self): + """ + Execute augment round for all players + """ + for player in self.PLAYERS.values(): + if player and player.augments.len() < 3: + player.augments.append(Augment(AugmentType.AFK, self.current_round)) + + + def is_augment_round(self): + """ + Checks if the current round is an augment round + """ + return self.current_round in [3,10,17] + + def log_to_file_start(): if config.LOGMESSAGES: with open('log.txt', "w") as out: diff --git a/Set12Simulator/items.py b/Set12Simulator/items.py index 63dabb9..85e7dc8 100755 --- a/Set12Simulator/items.py +++ b/Set12Simulator/items.py @@ -1,7 +1,7 @@ -from Simulator import field, item_stats -import Simulator.champion_functions as champion_functions -import Simulator.stats as stats -import Simulator.origin_class as origin_class +from Set12Simulator import field, item_stats +import Set12Simulator.champion_functions as champion_functions +import Set12Simulator.stats as stats +import Set12Simulator.origin_class as origin_class import random # ALL FUNCTIONS REGARDING ITEMS ARE HERE diff --git a/Set12Simulator/loot_orb.py b/Set12Simulator/loot_orb.py index 04fa278..20e4929 100644 --- a/Set12Simulator/loot_orb.py +++ b/Set12Simulator/loot_orb.py @@ -1,8 +1,8 @@ from enum import Enum import random import numpy as np -from Simulator import champion, pool_stats -from Simulator.item_stats import thieves_gloves_items +from Set12Simulator import champion, pool_stats +from Set12Simulator.item_stats import thieves_gloves_items # Theives gloves items includes all full items except emblems item_list = thieves_gloves_items diff --git a/Set12Simulator/minion.py b/Set12Simulator/minion.py index 5fa5006..5aee4ed 100644 --- a/Set12Simulator/minion.py +++ b/Set12Simulator/minion.py @@ -1,7 +1,7 @@ import config -import Simulator.config as config -from Simulator import champion -from Simulator.loot_orb import LootOrb, gen_loot, gen_orb_reward, gen_orbs, give_loot +import Set12Simulator.config as config +from Set12Simulator import champion +from Set12Simulator.loot_orb import LootOrb, gen_loot, gen_orb_reward, gen_orbs, give_loot # TODO diff --git a/Set12Simulator/origin_class.py b/Set12Simulator/origin_class.py index 46f756b..5ef6dab 100755 --- a/Set12Simulator/origin_class.py +++ b/Set12Simulator/origin_class.py @@ -1,7 +1,7 @@ -import Simulator.config as config -import Simulator.origin_class_stats as origin_class_stats -from Simulator import field, item_stats, items, champion_functions -import Simulator.stats as stats +import Set12Simulator.config as config +import Set12Simulator.origin_class_stats as origin_class_stats +from Set12Simulator import field, item_stats, items, champion_functions +import Set12Simulator.stats as stats import random import time diff --git a/Set12Simulator/player.py b/Set12Simulator/player.py index 93745ea..6397f56 100644 --- a/Set12Simulator/player.py +++ b/Set12Simulator/player.py @@ -2,20 +2,24 @@ import time import numpy as np import random -from Simulator import champion, origin_class -import Simulator.utils as utils -import Simulator.config as config -from Simulator.item_stats import basic_items, item_builds, thieves_gloves_items, \ + +from Set12Simulator.augment import Augment, AugmentType +from Set12Simulator import champion, origin_class +import Set12Simulator.utils as utils +import Set12Simulator.config as config +from Set12Simulator.item_stats import basic_items, item_builds, thieves_gloves_items, \ starting_items, trait_items, items -from Simulator.stats import COST -from Simulator.pool_stats import cost_star_values -from Simulator.origin_class_stats import tiers, fortune_returns +from Set12Simulator.stats import COST +from Set12Simulator.pool_stats import cost_star_values +from Set12Simulator.origin_class_stats import tiers, fortune_returns from math import floor from config import DEBUG, CHAMPION_ACTION_DIM, TIERS_FLATTEN_LENGTH, TEAM_TIERS_VECTOR -from Simulator.observation.token.action import ActionToken # Here for debugging purposes, will be removed later -from Simulator.default_agent import Default_Agent +from Set12Simulator.observation.token.action import ActionToken # Here for debugging purposes, will be removed later +from Set12Simulator.default_agent import Default_Agent + +from typing import Dict, List, Optional """ @@ -74,7 +78,7 @@ def __init__(self, pool_pointer, player_num): Rotated to match the board in game Top | (0, 3) (1, 3) (2, 3) (3, 3) (4, 3) (5, 3) (6, 3) | - Left | (0, 2) (1, 2) (2, 2) (3, 2) (4, 2) (5, 2) (6, 2) | + Left | (0, 2) (1, 2) (2, 2) (3, 2) (4, 2) (5, 2) (6, 2) | | (0, 1) (1, 1) (2, 1) (3, 1) (4, 1) (5, 1) (6, 1) | Right | (0, 0) (1, 0) (2, 0) (3, 0) (4, 0) (5, 0) (6, 0) | Bottom @@ -178,6 +182,12 @@ def __init__(self, pool_pointer, player_num): self.default_agent = Default_Agent() self.default_player = False + # Store augments for the player + self.augments: List[Augment] = [] + + # Store if the player has afk augment active + self.is_afk = False + # --- Exp Action --- # def buy_exp_action(self): """Buys exp for the player and levels up if possible. @@ -373,6 +383,19 @@ def buy_champion(self, a_champion): return champion_added + def add_augment(self, augment_type:AugmentType) -> bool: + """ Adds an augment to the player's list of augments + Parameters: + augment_type (AugmentType): The augment to be added + Returns: + bool: True if the augment was successfully added, False otherwise + """ + if len(self.augments) >= 3: + return False + self.augments.append(Augment(augment_type, self.round)) + return True + + def add_to_bench(self, a_champion, from_carousel=False): """Adds a champion to the bench. @@ -1630,6 +1653,9 @@ def start_round(self, t_round): self.round = t_round self.reward += self.num_units_in_play * self.minion_count_reward self.gold_income(self.round) + self.is_afk = False + for augment in self.augments: + augment.start_round(self) if self.kayn_check(): self.kayn_turn_count += 1 if self.kayn_turn_count >= 3: diff --git a/Set12Simulator/player_manager.py b/Set12Simulator/player_manager.py index a69dd80..ce7a219 100644 --- a/Set12Simulator/player_manager.py +++ b/Set12Simulator/player_manager.py @@ -1,5 +1,5 @@ import config -from Simulator.player import Player as player_class +from Set12Simulator.player import Player as player_class class PlayerManager: def __init__(self, diff --git a/Set12Simulator/pool.py b/Set12Simulator/pool.py index 9b11592..7c0a13b 100755 --- a/Set12Simulator/pool.py +++ b/Set12Simulator/pool.py @@ -1,9 +1,9 @@ -import Simulator.stats as stats +import Set12Simulator.stats as stats import random -from Simulator.pool_stats import * -from Simulator.origin_class_stats import origin_class, chosen_exclude -from Simulator.config import LOGMESSAGES +from Set12Simulator.pool_stats import * +from Set12Simulator.origin_class_stats import origin_class, chosen_exclude +from Set12Simulator.config import LOGMESSAGES class pool: diff --git a/Set12Simulator/position_leveling_system.py b/Set12Simulator/position_leveling_system.py index 8c7f3c3..ca9ed58 100644 --- a/Set12Simulator/position_leveling_system.py +++ b/Set12Simulator/position_leveling_system.py @@ -1,4 +1,4 @@ -from Simulator.battle_generator import BattleGenerator +from Set12Simulator.battle_generator import BattleGenerator class PositionLevelingSystem: def __init__(self): diff --git a/Set12Simulator/step_function.py b/Set12Simulator/step_function.py index 574d629..2b3af3b 100644 --- a/Set12Simulator/step_function.py +++ b/Set12Simulator/step_function.py @@ -1,6 +1,6 @@ import time -from Simulator.utils import coord_to_x_y +from Set12Simulator.utils import coord_to_x_y class Step_Function: def __init__(self, player_manager): diff --git a/Set12Simulator/tft_item_simulator.py b/Set12Simulator/tft_item_simulator.py index b4660f4..2c2d3a7 100644 --- a/Set12Simulator/tft_item_simulator.py +++ b/Set12Simulator/tft_item_simulator.py @@ -2,14 +2,14 @@ import time import numpy as np import gymnasium as gym -from Simulator import pool -from Simulator.observation.vector.observation import ObservationVector -from Simulator.step_function import Step_Function -from Simulator.game_round import Game_Round, log_to_file -from Simulator.player import Player as player_class -from Simulator.player_manager import PlayerManager -from Simulator.tft_simulator import TFTConfig -from Simulator.battle_generator import BattleGenerator +from Set12Simulator import pool +from Set12Simulator.observation.vector.observation import ObservationVector +from Set12Simulator.step_function import Step_Function +from Set12Simulator.game_round import Game_Round, log_to_file +from Set12Simulator.player import Player as player_class +from Set12Simulator.player_manager import PlayerManager +from Set12Simulator.tft_simulator import TFTConfig +from Set12Simulator.battle_generator import BattleGenerator from gymnasium.spaces import MultiDiscrete, Dict, Box, Tuple from gymnasium.envs.registration import EnvSpec diff --git a/Set12Simulator/tft_position_simulator.py b/Set12Simulator/tft_position_simulator.py index f4dbab1..bcde653 100644 --- a/Set12Simulator/tft_position_simulator.py +++ b/Set12Simulator/tft_position_simulator.py @@ -4,15 +4,15 @@ from gymnasium.envs.registration import EnvSpec from gymnasium.spaces import MultiDiscrete, Dict, Box -from Simulator import pool -from Simulator.position_leveling_system import PositionLevelingSystem -from Simulator.game_round import Game_Round, log_to_file, log_to_file_start -from Simulator.observation.vector.observation import ObservationVector -from Simulator.observation.token.basic_observation import ObservationToken -from Simulator.player_manager import PlayerManager -from Simulator.step_function import Step_Function -from Simulator.tft_simulator import TFTConfig -from Simulator.utils import coord_to_x_y +from Set12Simulator import pool +from Set12Simulator.position_leveling_system import PositionLevelingSystem +from Set12Simulator.game_round import Game_Round, log_to_file, log_to_file_start +from Set12Simulator.observation.vector.observation import ObservationVector +from Set12Simulator.observation.token.basic_observation import ObservationToken +from Set12Simulator.player_manager import PlayerManager +from Set12Simulator.step_function import Step_Function +from Set12Simulator.tft_simulator import TFTConfig +from Set12Simulator.utils import coord_to_x_y class TFT_Position_Simulator(gym.Env): diff --git a/Set12Simulator/tft_rllib_vector_simulator.py b/Set12Simulator/tft_rllib_vector_simulator.py index 8f49979..4340695 100644 --- a/Set12Simulator/tft_rllib_vector_simulator.py +++ b/Set12Simulator/tft_rllib_vector_simulator.py @@ -12,7 +12,7 @@ ) from ray.util import log_once -from Simulator.tft_position_simulator import TFT_Position_Simulator +from Set12Simulator.tft_position_simulator import TFT_Position_Simulator from typing import List, Optional, Tuple, Union logger = logging.getLogger(__name__) diff --git a/Set12Simulator/tft_simulator.py b/Set12Simulator/tft_simulator.py index 19e3808..ed62021 100644 --- a/Set12Simulator/tft_simulator.py +++ b/Set12Simulator/tft_simulator.py @@ -5,18 +5,19 @@ from pettingzoo.utils.env import AECEnv from pettingzoo.utils.conversions import parallel_wrapper_fn -from Simulator import pool -from Simulator.game_round import Game_Round +from Set12Simulator import pool +from Set12Simulator.game_round import Game_Round -from Simulator.player_manager import PlayerManager -from Simulator.step_function import Step_Function -from Simulator.ui import GameState +from Set12Simulator.player_manager import PlayerManager +from Set12Simulator.step_function import Step_Function +from Set12Simulator.ui import GameState -from Simulator.observation.interface import ObservationBase, ActionBase -from Simulator.observation.token.observation import ObservationToken -from Simulator.observation.token.action import ActionToken +from Set12Simulator.observation.interface import ObservationBase, ActionBase +from Set12Simulator.observation.token.observation import ObservationToken +from Set12Simulator.observation.token.action import ActionToken import time +import numpy as np @dataclass class TFTConfig: @@ -234,6 +235,11 @@ def step(self, action): return agent = self.agent_selection + + # if player is afk then pass action + if self.player_manager.player_states[agent].is_afk: + action = np.array([0, 0, 0]) + # Perform action and update observations if action.ndim == 0: self.step_function.perform_1d_action(agent, action) @@ -257,7 +263,7 @@ def step(self, action): self._clear_rewards() _non_trunc_agents = self.agents[:] - if self.taken_max_actions(agent): + if self.taken_max_actions(agent) or self.player_manager.player_states[agent].is_afk: self.truncations[agent] = True self.truncated_agents.append(agent) diff --git a/Set12Simulator/tft_vector_simulator.py b/Set12Simulator/tft_vector_simulator.py index e32d499..cd60788 100644 --- a/Set12Simulator/tft_vector_simulator.py +++ b/Set12Simulator/tft_vector_simulator.py @@ -2,7 +2,7 @@ import time import numpy as np import ray -from Simulator.tft_position_simulator import TFT_Position_Simulator +from Set12Simulator.tft_position_simulator import TFT_Position_Simulator from typing import List, Optional logger = logging.getLogger(__name__) diff --git a/Set12Simulator/utils.py b/Set12Simulator/utils.py index 6c99504..5f365d4 100644 --- a/Set12Simulator/utils.py +++ b/Set12Simulator/utils.py @@ -1,4 +1,4 @@ -import Simulator.config as config +import Set12Simulator.config as config import numpy as np from functools import wraps from time import time diff --git a/UnitTests/augments_test.py b/UnitTests/augments_test.py new file mode 100644 index 0000000..ea62e44 --- /dev/null +++ b/UnitTests/augments_test.py @@ -0,0 +1,19 @@ +from Set12Simulator.augment import AugmentType, Augment +from Set12Simulator.player import Player +from Set12Simulator import pool + + +def test_afk_augment(): + pool_pointer = pool.pool() + player_id = 0 + player = Player(pool_pointer=pool_pointer, player_num=player_id) + player.augments = [Augment(AugmentType.AFK, 0)] + player.start_round(1) + assert player.is_afk == True, "afk augment is_afk" + assert player.gold == 2, "afk augment is_afk" + player.start_round(2) + assert player.is_afk == True, "afk augment is_afk" + assert player.gold == 4, "afk augment is_afk" + player.start_round(3) + assert player.gold == 27, "after afk augment" + assert player.is_afk == False, "after afk augment" \ No newline at end of file diff --git a/UnitTests/simulator_12_test.py b/UnitTests/simulator_12_test.py new file mode 100644 index 0000000..82fbdcc --- /dev/null +++ b/UnitTests/simulator_12_test.py @@ -0,0 +1,21 @@ +import pytest +from pettingzoo.test import parallel_api_test, api_test +from Set12Simulator.tft_simulator import parallel_env, env as tft_env, TFTConfig +from Set12Simulator.observation.vector.observation import ObservationVector + +def aec(env): + return tft_env(env) + +def parallel(env): + return parallel_env(env) + + +def test_Env(): + """ + PettingZoo's api tests for the simulator. + """ + tftConfig = TFTConfig(observation_class=ObservationVector) + # raw_env = aec(tftConfig) + # api_test(raw_env, num_cycles=100000) + local_env = parallel(tftConfig) + parallel_api_test(local_env, num_cycles=100000)