This commit is contained in:
daixiawu 2025-06-19 23:36:24 +08:00
parent 4f005eba94
commit 8009c298ae
11 changed files with 83 additions and 37 deletions

View File

@ -24,7 +24,7 @@ MonoBehaviour:
_version: 3.33 _version: 3.33
_category: _category:
_comments: _comments:
_translation: {x: 633, y: 56} _translation: {x: 504, y: 112}
_zoomFactor: 1 _zoomFactor: 1
_haltSerialization: 0 _haltSerialization: 0
_externalSerializationFile: {fileID: 0} _externalSerializationFile: {fileID: 0}

File diff suppressed because one or more lines are too long

View File

@ -579,7 +579,7 @@ MonoBehaviour:
Defense: 1 Defense: 1
AttackRange: 1 AttackRange: 1
MoveRange: 2 MoveRange: 2
Cost: 0 Cost: 2
Skills: 0b000000070000000d000000 Skills: 0b000000070000000d000000
Sprite: {fileID: 0} Sprite: {fileID: 0}
SpriteGlow: {fileID: 0} SpriteGlow: {fileID: 0}

View File

@ -107872,10 +107872,10 @@ MonoBehaviour:
m_Name: m_Name:
m_EditorClassIdentifier: m_EditorClassIdentifier:
NoAI: 0 NoAI: 0
FullSight: 0 FullSight: 1
AIActionTime: 0.5 AIActionTime: 0.5
AIAllTech: 1 AIAllTech: 1
AIMoreMoney: 1 AIMoreMoney: 0
LandThreshold: 0.3 LandThreshold: 0.3
AnimationSpeed: 1 AnimationSpeed: 1
DebugMode: 1 DebugMode: 1

View File

@ -10,6 +10,7 @@ using System.Collections.Generic;
using Logic.AI; using Logic.AI;
using NodeCanvas.Framework; using NodeCanvas.Framework;
using ParadoxNotion.Design; using ParadoxNotion.Design;
using UnityEngine;
namespace NodeCanvas.Tasks.Actions namespace NodeCanvas.Tasks.Actions
@ -35,6 +36,10 @@ namespace NodeCanvas.Tasks.Actions
return; return;
} }
if (CalculateTypes[0] == CalculateType.UnitMoveToTargetGrid)
{
Debug.Log(111);
}
data.value.MaxAiAction = AIActionScoreCalculator.CalculateAIActionScore(data.value, CalculateTypes); data.value.MaxAiAction = AIActionScoreCalculator.CalculateAIActionScore(data.value, CalculateTypes);
if (data.value.MaxAiAction == null) if (data.value.MaxAiAction == null)
{ {

View File

@ -91,7 +91,7 @@ namespace Logic.AI
public Dictionary<uint, int> DevelopmentScore; public Dictionary<uint, int> DevelopmentScore;
// 玩家对我的威胁分 // 玩家对我的威胁分
public Dictionary<uint, int> ThreatScore; public Dictionary<uint, int> ThreatScore;
// 玩家对我的军事差距 // 我减去其他玩家的军事差距
public Dictionary<uint, int> MilitaryGapScore; public Dictionary<uint, int> MilitaryGapScore;
// 玩家对我的地缘距离 // 玩家对我的地缘距离
public Dictionary<uint, int> GeographicalDistance; public Dictionary<uint, int> GeographicalDistance;
@ -786,7 +786,7 @@ namespace Logic.AI
return score; return score;
} }
// 计算两个小兵的克制分 // 计算两个小兵的克制分 克制分表 克制表
public int CalUnitCounterScore(UnitData self, UnitData target) public int CalUnitCounterScore(UnitData self, UnitData target)
{ {
if (self.UnitType == UnitType.Archer && target.UnitType == UnitType.Warrior) return 1; if (self.UnitType == UnitType.Archer && target.UnitType == UnitType.Warrior) return 1;
@ -870,8 +870,8 @@ namespace Logic.AI
foreach (var target in Map.PlayerMap.PlayerDataList) foreach (var target in Map.PlayerMap.PlayerDataList)
{ {
if (target == Player) continue; if (target == Player) continue;
if (ThreatScore[target.Id] < 10) continue; if (ThreatScore[target.Id] < 2) continue;
if (MilitaryGapScore[target.Id] > -2) continue; if (MilitaryGapScore[target.Id] < -5) continue;
CountryStrategy = Strategy.Attack; CountryStrategy = Strategy.Attack;
AttackPlayer = target; AttackPlayer = target;
return; return;
@ -880,7 +880,7 @@ namespace Logic.AI
foreach (var target in Map.PlayerMap.PlayerDataList) foreach (var target in Map.PlayerMap.PlayerDataList)
{ {
if (target == Player) continue; if (target == Player) continue;
if (MilitaryGapScore[target.Id] > -8) continue; if (MilitaryGapScore[target.Id] < 0) continue;
CountryStrategy = Strategy.Attack; CountryStrategy = Strategy.Attack;
AttackPlayer = target; AttackPlayer = target;
return; return;

View File

@ -891,7 +891,7 @@ namespace Logic.AI
foreach (var unit in param.MapData.UnitMap.UnitList) foreach (var unit in param.MapData.UnitMap.UnitList)
{ {
if (!param.MapData.GetGridDataByUnitId(unit.Id, out var unitGrid)) continue; if (!param.MapData.GetGridDataByUnitId(unit.Id, out var unitGrid)) continue;
if (param.MapData.GridMap.CalcDistance(cityGrid, unitGrid) > 3) continue; if (param.MapData.GridMap.CalcDistance(cityGrid, unitGrid) > 8) continue;
if (!Table.Instance.UnitTypeDataAssets.GetUnitTypeInfo(unit.UnitType, unit.GiantType, out var info)) if (!Table.Instance.UnitTypeDataAssets.GetUnitTypeInfo(unit.UnitType, unit.GiantType, out var info))
continue; continue;
if (selfUnits.Contains(unit)) if (selfUnits.Contains(unit))
@ -911,7 +911,7 @@ namespace Logic.AI
{ {
foreach (var target in targets) foreach (var target in targets)
{ {
score += data.CalUnitCounterScore(selfUnit, target); score += data.CalUnitCounterScore(selfUnit, target) * 2;
score -= data.CalUnitCounterScore(target, selfUnit); score -= data.CalUnitCounterScore(target, selfUnit);
} }
} }

View File

@ -791,7 +791,7 @@ namespace Logic.Action
public override bool CheckCan(CommonActionParams actionParam) public override bool CheckCan(CommonActionParams actionParam)
{ {
//如果是unit或者city来执行gain操作直接return false //如果是unit或者city来执行gain操作直接return false
if (actionParam.UnitData != null || actionParam.CityData != null) if (actionParam.MainObjectType != MainObjectType.Grid)
return false; return false;
if (actionParam.GridData == null) if (actionParam.GridData == null)
return false; return false;
@ -815,7 +815,7 @@ namespace Logic.Action
public override bool CheckShow(CommonActionParams actionParam) public override bool CheckShow(CommonActionParams actionParam)
{ {
//如果是unit或者city来执行gain操作直接return false //如果是unit或者city来执行gain操作直接return false
if (actionParam.UnitData != null || actionParam.CityData != null) if (actionParam.MainObjectType != MainObjectType.Grid)
return false; return false;
if (actionParam.GridData == null) if (actionParam.GridData == null)
return false; return false;
@ -973,7 +973,9 @@ namespace Logic.Action
public override bool CheckCan(CommonActionParams actionParam) public override bool CheckCan(CommonActionParams actionParam)
{ {
//如果是unit或者city来执行build操作直接return false //如果是unit或者city来执行build操作直接return false
if (actionParam.UnitData != null || actionParam.CityData != null || actionParam.GridData == null) if (actionParam.MainObjectType != MainObjectType.Grid)
return false;
if (actionParam.GridData == null)
return false; return false;
//如果没有对应科技return false //如果没有对应科技return false
if (!actionParam.PlayerData.TechTree.CheckActionCan(_actionId)) if (!actionParam.PlayerData.TechTree.CheckActionCan(_actionId))
@ -1130,7 +1132,9 @@ namespace Logic.Action
public override bool CheckShow(CommonActionParams actionParam) public override bool CheckShow(CommonActionParams actionParam)
{ {
//如果是unit或者city来执行build操作直接return false //如果是unit或者city来执行build操作直接return false
if (actionParam.UnitData != null || actionParam.CityData != null || actionParam.GridData == null) if (actionParam.MainObjectType != MainObjectType.Grid)
return false;
if (actionParam.GridData == null)
return false; return false;
//如果没有对应科技return false //如果没有对应科技return false
if (!actionParam.PlayerData.TechTree.CheckActionCan(_actionId)) if (!actionParam.PlayerData.TechTree.CheckActionCan(_actionId))
@ -2125,7 +2129,7 @@ namespace Logic.Action
public override bool CheckCan(CommonActionParams actionParams) public override bool CheckCan(CommonActionParams actionParams)
{ {
//如果是unit或者city来执行gridMisc操作直接return false //如果是unit或者city来执行gridMisc操作直接return false
if (actionParams.UnitData != null || actionParams.CityData != null) if (actionParams.MainObjectType != MainObjectType.Grid)
return false; return false;
if (actionParams.GridData == null) if (actionParams.GridData == null)
return false; return false;

View File

@ -480,6 +480,15 @@ namespace Logic
playerData.TechTree.LearnTech(TechType.Mining); playerData.TechTree.LearnTech(TechType.Mining);
playerData.TechTree.LearnTech(TechType.Forestry); playerData.TechTree.LearnTech(TechType.Forestry);
playerData.TechTree.LearnTech(TechType.Hunting); playerData.TechTree.LearnTech(TechType.Hunting);
playerData.TechTree.LearnTech(TechType.Smithery);
playerData.TechTree.LearnTech(TechType.Mathematics);
playerData.TechTree.LearnTech(TechType.FreeSpirit);
playerData.TechTree.LearnTech(TechType.Chivalry);
playerData.TechTree.LearnTech(TechType.Sailing);
playerData.TechTree.LearnTech(TechType.Navigation);
playerData.TechTree.LearnTech(TechType.Ramming);
playerData.TechTree.LearnTech(TechType.Riding);
playerData.TechTree.LearnTech(TechType.Archery);
} }
} }

View File

@ -178,7 +178,12 @@ public class DebugUI
TextMeshProUGUI tmp = textObj.AddComponent<TextMeshProUGUI>(); TextMeshProUGUI tmp = textObj.AddComponent<TextMeshProUGUI>();
tmp.text = $"-------- ID={player.Id}, Civ={player.PlayerCivId}, Force={player.PlayerForceId} --------\n"; tmp.text = $"-------- ID={player.Id}, Civ={player.PlayerCivId}, Force={player.PlayerForceId} --------\n";
tmp.text += $"Money = {player.PlayerWealth}, Stratery = ???\n"; tmp.text += $"Money = {player.PlayerWealth}, Stratery = ???\n";
tmp.text += " --- \n"; tmp.text += $"Tech:";
foreach (var tech in player.TechTree.TechList)
{
tmp.text += tech + " ";
}
tmp.text += "\n --- \n";
tmp.fontSize = 24; tmp.fontSize = 24;
tmp.alignment = TextAlignmentOptions.Center; tmp.alignment = TextAlignmentOptions.Center;
tmp.color = Color.white; tmp.color = Color.white;