/* * @Author: 白哉 * @Description: AI 配置数据 (序列化) * @Date: 2025年04月18日 星期五 15:04:06 * @Modify: */ using System; using System.Collections.Generic; using UnityEngine; namespace Logic.AI { public class AIConfigAsset : ScriptableObject { public float MoneyScore; public float UnitScore; public float CityScore; public float CityDefendScore; public float OneCanMoveGridMaxScore; public float OneSightGridMaxScore; public float UnitAttackScore; public float UnitDefendScore; public float UnitExploreScore; public float UnitExploreCityCenterScore; public float UnitExploreTreasureScore; public float UnitExploreStarfishScore; public float FutureScoreTransformValue; public float MilitaryConstructionRatioValue; public List TechInfoList = new List(); public List AidiffInfos = new List(); public AICalculatorTechInfo GetTechInfo(TechType techType) { foreach (var techInfo in TechInfoList) { if (techInfo.TechType != techType) continue; return techInfo; } return null; } public AIDiffInfo GetAIDiffInfo(AIDifficult level) { foreach (var diffInfo in AidiffInfos) { if (diffInfo.Level != level) continue; return diffInfo; } return null; } } [Serializable] public class AICalculatorTechInfo { public TechType TechType; public float Ratio; public AICalculatorTechInfo(TechType techType, float ratio) { TechType = techType; Ratio = ratio; } } [Serializable] public class AIDiffInfo { public AIDifficult Level; public float FreeUnitRetreat; public float FreeUnitOther; public float LegionUnitDefend; public float LegionUnitAttack; public float LegionUnitDevelopment; public float UnitInCity; public AIDiffInfo(AIDifficult level) { Level = level; FreeUnitRetreat = 1f; FreeUnitOther = 2.5f; LegionUnitDefend = 1f; LegionUnitAttack = 3.5f; LegionUnitDevelopment = 2.5f; UnitInCity = 0.5f; } } }