Setting
π Game Status
To describe whether a mini-game is over, the game-ending conditions include:
- The game score being greater than or equal to the goal score
- Reaching the maximum number of rounds set for the game
The enumerated values are as follows:
src/civrealm/envs/freeciv_minitask_env.py
@unique
class MinitaskGameStatus(ExtendedEnum):
MGS_END_GAME = 1
MGS_IN_GAME = 0
π₯ Game Difficulty
Based on the richness of terrain resources, the comparison of unit quantities, and other information, we designed the difficulty level of the mini-game.
The enumerated values are as follows:
src/civrealm/envs/freeciv_minitask_env.py
@unique
class MinitaskDifficulty(ExtendedEnum):
MD_EASY = 'easy'
MD_NORMAL = 'normal'
MD_HARD = 'hard'
π Victory Status
In the mini-game, the playerβs current victory status can be represented as: failure, success, and unknown. The unknown state signifies that the game has not yet concluded, while the determination of failure and success only occurs after the game ends.
The enumerated values are as follows:
src/civrealm/envs/freeciv_minitask_env.py
@unique
class MinitaskPlayerStatus(ExtendedEnum):
MPS_SUCCESS = 1
MPS_FAIL = 0
MPS_UNKNOWN = -1
πΊοΈ Supported Types
We have designed the following 14 types of mini-games:
Category | ID | Name | Introduction |
Development | 1 | development_build_city | Move settler to suitable areas for building a city. |
2 | development_build_infra | Command workers to build infrastructures for improving cities. | |
3 | development_citytile_wonder | Arrange work tiles to speed up producing a world wonder. | |
4 | development_transport | Transport settlers by ships to another continent and build cities. | |
Battle | 5 | battle_ancient_era | Defeat enemy units on land tiles in ancient era. |
6 | battle_industry_era | Defeat enemy units on land tiles in industry era. | |
7 | battle_info_era | Defeat enemy units on land tiles in infomation era. | |
8 | battle_medieval | Defeat enemy units on land tiles in medieval. | |
9 | battle_modern_era | Defeat enemy units on land tiles in modern era. | |
10 | battle_attack_city | Conquer an enemy city. | |
11 | battle_defend_city | Against enemy invasion for a certain number of turns. | |
12 | battle_naval | Defeat enemy fleet on the ocean (with Middle Times frigates). | |
13 | battle_naval_modern | Defeat enemy fleet on the ocean (with several classes of modern ships). | |
Diplomacy | 14 | diplomacy_trade_tech | Trade technologies with another civilization. |
The enumerated values are as follows:
src/civrealm/envs/freeciv_minitask_env.py
@unique
class MinitaskType(ExtendedEnum):
MT_DEVELOPMENT_BUILD_CITY = "development_build_city"
MT_DEVELOPMENT_CITYTILE_WONDER = "development_citytile_wonder"
MT_DEVELOPMENT_BUILD_INFRA = "development_build_infra"
MT_DEVELOPMENT_TRANSPORT = "development_transport"
MT_BATTLE_ANCIENT = "battle_ancient_era"
MT_BATTLE_INDUSTRY = "battle_industry_era"
MT_BATTLE_INFO = "battle_info_era"
MT_BATTLE_MEDIEVAL = "battle_medieval"
MT_BATTLE_MODERN = "battle_modern_era"
MT_BATTLE_NAVAL_MODERN = "battle_naval_modern"
MT_BATTLE_NAVAL = "battle_naval"
MT_BATTLE_ATTACK_CITY = "battle_attack_city"
MT_BATTLE_DEFEND_CITY = "battle_defend_city"
MT_DIPLOMACY_TRADE_TECH = "diplomacy_trade_tech"