This commit is contained in:
wuwenbo 2025-08-26 21:48:13 +08:00
commit 9f455b477f
7 changed files with 40 additions and 99 deletions

Binary file not shown.

View File

@ -4311,8 +4311,8 @@ MonoBehaviour:
Cost: 0
CityExp: 0
NoNeedTech: 0
SpriteSize: {x: 0, y: 0}
SpritePos: {x: 0, y: 0}
SpriteSize: {x: 0, y: 1}
SpritePos: {x: 40, y: 40}
- ActionId:
ActionType: 12
WonderType: 0
@ -4341,8 +4341,8 @@ MonoBehaviour:
Cost: 5
CityExp: 0
NoNeedTech: 0
SpriteSize: {x: 0, y: 0}
SpritePos: {x: 0, y: 0}
SpriteSize: {x: 30, y: 30}
SpritePos: {x: 0, y: 1}
- ActionId:
ActionType: 12
WonderType: 0
@ -4371,8 +4371,8 @@ MonoBehaviour:
Cost: 0
CityExp: 0
NoNeedTech: 1
SpriteSize: {x: 0, y: 0}
SpritePos: {x: 0, y: 0}
SpriteSize: {x: 40, y: 40}
SpritePos: {x: 0, y: 1}
- ActionId:
ActionType: 12
WonderType: 0
@ -4401,8 +4401,8 @@ MonoBehaviour:
Cost: 0
CityExp: 0
NoNeedTech: 1
SpriteSize: {x: 0, y: 0}
SpritePos: {x: 0, y: 0}
SpriteSize: {x: 40, y: 40}
SpritePos: {x: 0, y: 1}
- ActionId:
ActionType: 12
WonderType: 0
@ -4431,5 +4431,5 @@ MonoBehaviour:
Cost: 0
CityExp: 0
NoNeedTech: 1
SpriteSize: {x: 0, y: 0}
SpritePos: {x: 0, y: 0}
SpriteSize: {x: 40, y: 40}
SpritePos: {x: 0, y: 1}

View File

@ -96249,7 +96249,7 @@ MonoBehaviour:
AIMoreMoney: 0
LandThreshold: 0.3
AnimationSpeed: 1
DebugMode: 0
DebugMode: 1
DebugHideCenterMessage: 0
cityCount: 30
unitCount: 0

View File

@ -104,7 +104,7 @@ namespace TH1_Core.Managers
BottomBarUI = new BottomBarUI(_main);
//CenterMessageUI = new CenterMessageUI(_main,_mapData);
TechTreeUI = new TechTreeUI();
DebugUI = new DebugUI(_main,_mapData);
DebugUI = new DebugUI();
_gameInitReady = true;
}

View File

@ -64,7 +64,7 @@ namespace TH1_Logic.Action
city.CityInfoRenderMark = true;
//Step #2 更新大使馆周围一格的视野,会自动处理视觉部分
var gidList = map.GridMap.GetAroundGridIdList(1,grid);
var gidList = map.GridMap.GetAroundGridIdList(1,grid,true );
Main.PlayerLogic.UpdateSight(map,player,gidList);
//step #3 扣钱
@ -228,13 +228,13 @@ namespace TH1_Logic.Action
}
//Step #3 计算breakAlly按钮的情况
if (_actionId.PlayerActionType == PlayerActionType.OfferAlly)
if (_actionId.PlayerActionType == PlayerActionType.BreakAlly)
{
return ActionShowState.Available;
}
//Step #4 计算embassy按钮的情况
if (_actionId.PlayerActionType == PlayerActionType.OfferAlly)
if (_actionId.PlayerActionType == PlayerActionType.Embassy)
{
//如果没有科技
if (!actionParams.PlayerData.TechTree.CheckActionCan(_actionId))
@ -242,7 +242,6 @@ namespace TH1_Logic.Action
//如果对方已经丢失原始首都
if (!map.GetCapitalCityDataByPlayerId(targetPlayer.Id, out var targetCapital)) return ActionShowState.None;
if (!Main.CityLogic.CheckCradleCapital(map, targetPlayer, targetCapital)) return ActionShowState.Unavailable;
if(dipInfo2.IsLeagueRequest) return ActionShowState.Unavailable;
//如果钱不够
if (player.PlayerWealth < GetCost()) return ActionShowState.Expensive;
//其他情况一律是available
@ -261,68 +260,7 @@ namespace TH1_Logic.Action
{
return false;
}
//付钱
protected bool UnitActionPayMoney(CommonActionParams actionParam)
{
if (actionParam.PlayerData.PlayerWealth - GetCost() < 0) return false;
actionParam.PlayerData.PlayerWealth -= GetCost();
return true;
}
//确认是否满足基本信息,并且补全actionParam(主要是补充unit所处的grid)
protected bool UnitActionCheckBaseInfo(CommonActionParams actionParam)
{
//鲁棒性判断必须包含unitData和playerData表明是哪个玩家正在操作哪个单位
if (actionParam.UnitData == null) return false;
if (actionParam.PlayerData == null) return false;
if (!actionParam.MapData.GetGridDataByUnitId(actionParam.UnitData.Id, out var grid)) return false;
actionParam.GridData = grid;
return true;
}
protected bool UnitActionCheckUnitBelongPlayer(CommonActionParams actionParam)
{
//如果unit不是player的退出
if(!actionParam.MapData.GetPlayerDataByUnitId(actionParam.UnitData.Id, out var playerData) ||
playerData != actionParam.PlayerData)
return false;
return true;
}
//确认是否有科技
protected bool UnitActionCheckHasTech(CommonActionParams actionParam)
{
//如果没有对应科技return false
if (!actionParam.PlayerData.TechTree.CheckActionCan(_actionId))
return false;
return true;
}
//确认是否有钱
protected bool UnitActionCheckHasMoney(CommonActionParams actionParam)
{
//判断钱够不够
if (GetCost() > actionParam.PlayerData.PlayerWealth)
return false;
return true;
}
//确认unit是否有CP
protected bool UnitActionCheckUnitHasCP(CommonActionParams actionParam)
{
if (actionParam.UnitData == null || actionParam.UnitData.CP <= 0)
return false;
return true;
}
//确认unit是否拥有这个skill
protected bool UnitActionCheckUnitHasSkill(CommonActionParams actionParam)
{
//将unitActionType转化为skillType
if (!Enum.TryParse(_actionId.UnitActionType.ToString(), out SkillType skillType)) return false;
if (actionParam.UnitData == null || !actionParam.UnitData.GetSkill(skillType, out var _)) return false;
return true;
}
}

View File

@ -10,8 +10,6 @@ using UI;
public class DebugUI
{
private Main _main;
private MapData _mapData;
public GameObject RODebugUI;
private GameObject buttonGroup;
@ -22,11 +20,8 @@ public class DebugUI
public bool NeedShow = false;
private uint _turn = 999;
public DebugUI(Main main, MapData mapData)
public DebugUI()
{
_main = main;
_mapData = mapData;
Transform root = UIManager.Instance.ROUIManager.transform;
Transform panelRoot = root.Find("DebugPanel");
@ -123,9 +118,9 @@ public class DebugUI
if(UIManager.Instance.BottomInfoUI != null && RODebugUI.transform.Find("PanelGroup/Selected").gameObject.activeSelf)
UIManager.Instance.BottomInfoUI.UpdateDebugInfo();
//return;
if (_mapData.PlayerMap.SelfPlayerData.Turn != _turn)
if (Main.MapData.PlayerMap.SelfPlayerData.Turn != _turn)
{
_turn = _mapData.PlayerMap.SelfPlayerData.Turn;
_turn = Main.MapData.PlayerMap.SelfPlayerData.Turn;
UpdateAllPlayerInfo();
}
@ -137,7 +132,7 @@ public class DebugUI
var c = RODebugUI.transform.Find("PanelGroup/AllUnit/Scroll View/Viewport/Content");
foreach (Transform child in c)
GameObject.Destroy(child.gameObject);
foreach (var unit in _mapData.UnitMap.UnitList)
foreach (var unit in Main.MapData.UnitMap.UnitList)
{
GameObject textObj = new GameObject("TMP_Child");
@ -165,7 +160,7 @@ public class DebugUI
foreach (Transform child in c)
GameObject.Destroy(child.gameObject);
foreach (var player in _mapData.PlayerMap.PlayerDataList)
foreach (var player in Main.MapData.PlayerMap.PlayerDataList)
{
GameObject textObj = new GameObject("TMP_Child");

View File

@ -125,30 +125,38 @@ namespace TH1_UI.View.Info
var img = tr.GetComponent<Image>();
var star = tr.Find("Coin");
var cost = tr.Find("Cost")?.GetComponent<TextMeshProUGUI>();
if(img != null && star != null && cost != null)
if(img != null)
switch (stt)
{
case ActionShowState.Unavailable:
tr.GetComponent<Image>().sprite = ResourceCache.Instance.SpriteCache.ActionBGUnavailable;
star.gameObject.SetActive(false);
cost.gameObject.SetActive(false);
if(star != null)star.gameObject.SetActive(false);
if(cost != null)cost.gameObject.SetActive(false);
break;
case ActionShowState.Available:
tr.GetComponent<Image>().sprite = ResourceCache.Instance.SpriteCache.ActionBGAvailable;
star.gameObject.SetActive(true);
cost.gameObject.SetActive(true);
cost.color = Color.white;
if (star != null)star.gameObject.SetActive(true);
if (cost != null)
{
cost.gameObject.SetActive(true);
cost.color = Color.white;
}
break;
case ActionShowState.Expensive:
tr.GetComponent<Image>().sprite = ResourceCache.Instance.SpriteCache.ActionBGExpensive;
star.gameObject.SetActive(true);
cost.gameObject.SetActive(true);
cost.color = Color.red;
if (star != null)star.gameObject.SetActive(true);
if (cost != null)
{
cost.gameObject.SetActive(true);
cost.color = Color.red;
}
break;
case ActionShowState.Finished:
tr.GetComponent<Image>().sprite = ResourceCache.Instance.SpriteCache.TechCompleteBackground;
star.gameObject.SetActive(false);
cost.gameObject.SetActive(false);
if (star != null)star.gameObject.SetActive(false);
if (cost != null)cost.gameObject.SetActive(false);
break;
}
//绑定点击事件