diff --git a/src/game/engine/src/autoloads/game_state.gd b/src/game/engine/src/autoloads/game_state.gd index 70307469..cebb29ce 100644 --- a/src/game/engine/src/autoloads/game_state.gd +++ b/src/game/engine/src/autoloads/game_state.gd @@ -113,6 +113,9 @@ func initialize_game(settings: Dictionary) -> void: npc_buildings = [] _npc_buildings_by_tile = {} + var settings_seed: int = int(game_settings.get("seed", 0)) + if settings_seed != 0: + map_seed = settings_seed game_rng = RandomNumberGenerator.new() game_rng.seed = map_seed if map_seed != 0 else hash(Time.get_unix_time_from_system()) seed(game_rng.seed) @@ -168,6 +171,16 @@ func create_player( var tier: String = str(race_data.get("growth_tier", "")) if tier != "": player.growth_tier = tier + if not is_human: + var clans: Dictionary = DataLoader.get_data("ai_personalities") + if not clans.is_empty(): + var ids: Array = clans.keys() + ids.sort() + var pick: Dictionary = clans.get(ids[game_rng.randi() % ids.size()], {}) + var axes: Dictionary = pick.get("strategic_axes", {}) + if not axes.is_empty(): + player.strategic_axes = axes.duplicate() + print("Player %s personality: %s" % [player_name, pick.get("name", "")]) add_player(player) PersonalityAssignerScript.assign(player, game_rng) return player