法典效果实现
This commit is contained in:
parent
f70a6ea985
commit
5bfc01acef
@ -1568,13 +1568,18 @@ namespace RuntimeData
|
||||
}
|
||||
|
||||
//获取英雄的升级费用值
|
||||
public int GetHeroFinishTaskCost(GiantType giant)
|
||||
public int GetHeroFinishTaskCost(GiantType giant, float discount = 1f)
|
||||
{
|
||||
foreach (var heroType in HeroList)
|
||||
if (heroType.GiantType == giant)
|
||||
{
|
||||
if(GetHeroTask(giant,out var task))
|
||||
return task.GetFinishCost() * ((int)heroType.UnitLevel + 1) ;
|
||||
{
|
||||
var baseCost = task.GetFinishCost() * ((int)heroType.UnitLevel + 1);
|
||||
if (discount < 1f && discount > 0f)
|
||||
return Mathf.CeilToInt(baseCost * discount);
|
||||
return baseCost;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -558,7 +558,8 @@ namespace TH1_Logic.Action
|
||||
{
|
||||
var player = actionParams.PlayerData;
|
||||
var heroD = player.PlayerHeroData;
|
||||
var cost = heroD.GetHeroFinishTaskCost(_actionId.GiantType);
|
||||
player.GetHeroCostDiscount(actionParams.MapData, out var discount);
|
||||
var cost = heroD.GetHeroFinishTaskCost(_actionId.GiantType, discount);
|
||||
var can = heroD.ForceFinishHeroTask(_actionId.GiantType);
|
||||
if (can)
|
||||
{
|
||||
@ -590,7 +591,8 @@ namespace TH1_Logic.Action
|
||||
//Step #4 如果是玩家,检查文化值是否够
|
||||
if (actionParams.PlayerData == actionParams.MapData.PlayerMap.SelfPlayerData)
|
||||
{
|
||||
var cost = heroD.GetHeroFinishTaskCost(_actionId.GiantType);
|
||||
player.GetHeroCostDiscount(actionParams.MapData, out var discount);
|
||||
var cost = heroD.GetHeroFinishTaskCost(_actionId.GiantType, discount);
|
||||
if (cost > actionParams.PlayerData.PlayerCultureInfo.PlayerCulture)
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -193,7 +193,9 @@ namespace TH1_UI.View.Info
|
||||
var taskFinishedDesc = Table.Instance.TextDataAssets.HeroTaskFinishedDesc;
|
||||
var finished = task.CheckFinished(Main.MapData, Main.MapData.PlayerMap.SelfPlayerData);
|
||||
|
||||
var cost = task.GetFinishCost() * (giantLevel + 1);
|
||||
var selfPlayer = Main.MapData.PlayerMap.SelfPlayerData;
|
||||
selfPlayer.GetHeroCostDiscount(Main.MapData, out var discount);
|
||||
var cost = selfPlayer.PlayerHeroData.GetHeroFinishTaskCost(giantType, discount);
|
||||
ForceFinishCost.text = cost.ToString();
|
||||
ForceFinishCost.color = Color.red;
|
||||
ForceFinishButton.onClick.RemoveAllListeners();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user