Spaces:
Sleeping
Sleeping
| import random | |
| from env.mahoraga_env import MahoragaEnv | |
| ACTION_NAMES = { | |
| 0: "Adapt PHYSICAL", | |
| 1: "Adapt CE", | |
| 2: "Adapt TECHNIQUE", | |
| 3: "Judgment Strike", | |
| 4: "Regeneration", | |
| None: "(Wasted Turn)" | |
| } | |
| def main(): | |
| env = MahoragaEnv() | |
| state = env.reset() | |
| print("=" * 60) | |
| print(" PROJECT MAHORAGA -- Curriculum Episode") | |
| print("=" * 60) | |
| print(f"\nInitial State:") | |
| print(f" Agent HP: {state['agent_hp']} | Enemy HP: {state['enemy_hp']}") | |
| print(f" Resistances: {state['resistances']}") | |
| print("-" * 60) | |
| done = False | |
| while not done: | |
| action = random.randint(0, 4) | |
| agent_hp_before = state["agent_hp"] | |
| enemy_hp_before = state["enemy_hp"] | |
| state, reward, done, info = env.step(action) | |
| print(f"\nTurn {state['turn_number']}:") | |
| print(f" Enemy:") | |
| print(f" -> {state['last_enemy_subtype']} ({state['last_enemy_attack_type']})") | |
| print(f" -> Damage: {info['damage_taken']}") | |
| print(f" Mahoraga:") | |
| print(f" -> {ACTION_NAMES.get(env.last_action, 'Unknown')}") | |
| print(f" Result:") | |
| print(f" -> Damage: {info['damage_taken']} | " | |
| f"Correct Adaptation: {'YES' if info.get('correct_adaptation') else 'NO'} | " | |
| f"Stack: {info['adaptation_stack']}") | |
| print(f" -> Agent HP: {agent_hp_before} -> {state['agent_hp']}") | |
| print(f" -> Enemy HP: {enemy_hp_before} -> {state['enemy_hp']}") | |
| print(f" -> Reward: {reward:.2f}") | |
| if info.get("heal_on_cooldown"): | |
| print(f" ** HEAL BLOCKED (on cooldown) **") | |
| if done: | |
| print("\n" + "=" * 60) | |
| print(f" EPISODE ENDED -- {info.get('reason', 'Unknown')}") | |
| print(f" Final Agent HP: {state['agent_hp']}") | |
| print(f" Final Enemy HP: {state['enemy_hp']}") | |
| print(f" Total Turns: {state['turn_number']}") | |
| print("=" * 60) | |
| if __name__ == "__main__": | |
| main() | |