恢复总费用

This commit is contained in:
xianyi
2025-08-20 16:08:18 +08:00
parent 6bacf3cb39
commit f0c1643f30
17 changed files with 39 additions and 1572 deletions

View File

@@ -13,9 +13,6 @@ namespace TcgEngine
public class EffectAddStat : EffectData
{
public EffectStatType type;
[Header("Team Mana (only for Mana type)")]
public string team_id = ""; // 当type为Mana时指定影响的阵营
public override void DoEffect(GameLogic logic, AbilityData ability, Card caster, Player target)
{
@@ -27,19 +24,10 @@ namespace TcgEngine
if (type == EffectStatType.Mana)
{
// 如果指定了阵营影响阵营mana否则影响通用mana
if (!string.IsNullOrEmpty(team_id))
{
target.AddTeamMana(team_id, ability.value, ability.value);
}
else
{
Debug.Log($"AddStat Mana 通用: {ability.value}");
target.mana += ability.value;
target.mana_max += ability.value;
target.mana = Mathf.Max(target.mana, 0);
target.mana_max = Mathf.Clamp(target.mana_max, 0, GameplayData.Get().mana_max);
}
target.mana += ability.value;
target.mana_max += ability.value;
target.mana = Mathf.Max(target.mana, 0);
target.mana_max = Mathf.Clamp(target.mana_max, 0, GameplayData.Get().mana_max);
}
}
@@ -52,13 +40,6 @@ namespace TcgEngine
target.hp += ability.value;
if (type == EffectStatType.Mana)
target.mana += ability.value;
if (type == EffectStatType.ManaFire)
target.mana_fire += ability.value;
if (type == EffectStatType.ManaForest)
target.mana_forest += ability.value;
if (type == EffectStatType.ManaWater)
target.mana_water += ability.value;
}
// 临时效果
@@ -70,13 +51,6 @@ namespace TcgEngine
target.hp_ongoing += ability.value;
if (type == EffectStatType.Mana)
target.mana_ongoing += ability.value;
if (type == EffectStatType.ManaFire)
target.mana_fire_ongoing += ability.value;
if (type == EffectStatType.ManaForest)
target.mana_forest_ongoing += ability.value;
if (type == EffectStatType.ManaWater)
target.mana_water_ongoing += ability.value;
}
}
@@ -87,9 +61,5 @@ namespace TcgEngine
Attack = 10,
HP = 20,
Mana = 30,
// 新增:三种元素法力值
ManaFire = 40,
ManaForest = 50,
ManaWater = 60,
}
}

View File

@@ -8,7 +8,7 @@ namespace TcgEngine
/// <summary>
/// Effect that sets stats equal to a dynamic calculated value from a pile (number of cards on board/hand/deck)
/// </summary>
[CreateAssetMenu(fileName = "effect", menuName = "TcgEngine/Effect/AddStatCount", order = 10)]
public class EffectAddStatCount : EffectData
{
@@ -19,9 +19,6 @@ namespace TcgEngine
public CardType has_type;
public TeamData has_team;
public TraitData has_trait;
[Header("Team Mana (only for Mana type)")]
public string team_id = ""; // 当type为Mana时指定影响的阵营
public override void DoEffect(GameLogic logic, AbilityData ability, Card caster, Player target)
{
@@ -34,19 +31,10 @@ namespace TcgEngine
if (type == EffectStatType.Mana)
{
// 如果指定了阵营影响阵营mana否则影响通用mana
if (!string.IsNullOrEmpty(team_id))
{
target.AddTeamMana(team_id, val, val);
}
else
{
Debug.Log($"AddStatCount Mana 通用: {val}");
target.mana += val;
target.mana_max += val;
target.mana = Mathf.Max(target.mana, 0);
target.mana_max = Mathf.Clamp(target.mana_max, 0, GameplayData.Get().mana_max);
}
target.mana += val;
target.mana_max += val;
target.mana = Mathf.Max(target.mana, 0);
target.mana_max = Mathf.Clamp(target.mana_max, 0, GameplayData.Get().mana_max);
}
}
@@ -59,13 +47,6 @@ namespace TcgEngine
target.hp += val;
if (type == EffectStatType.Mana)
target.mana += val;
if (type == EffectStatType.ManaFire)
target.mana_fire += val;
if (type == EffectStatType.ManaForest)
target.mana_forest += val;
if (type == EffectStatType.ManaWater)
target.mana_water += val;
}
public override void DoOngoingEffect(GameLogic logic, AbilityData ability, Card caster, Card target)
@@ -77,13 +58,6 @@ namespace TcgEngine
target.hp_ongoing += val;
if (type == EffectStatType.Mana)
target.mana_ongoing += val;
if (type == EffectStatType.ManaFire)
target.mana_fire_ongoing += val;
if (type == EffectStatType.ManaForest)
target.mana_forest_ongoing += val;
if (type == EffectStatType.ManaWater)
target.mana_water_ongoing += val;
}
private int GetCount(Game data, Card caster)

View File

@@ -31,22 +31,6 @@ namespace TcgEngine
target.mana = Mathf.Max(target.mana, 0);
target.mana_max = Mathf.Clamp(target.mana_max, 0, GameplayData.Get().mana_max);
}
if (type == EffectStatType.ManaFire)
target.mana_fire += data.rolled_value;
target.mana_fire_max += data.rolled_value;
target.mana_fire = Mathf.Max(target.mana_fire, 0);
target.mana_fire_max = Mathf.Clamp(target.mana_fire_max, 0, GameplayData.Get().mana_max);
if (type == EffectStatType.ManaForest)
target.mana_forest += data.rolled_value;
target.mana_forest_max += data.rolled_value;
target.mana_forest = Mathf.Max(target.mana_forest, 0);
target.mana_forest_max = Mathf.Clamp(target.mana_forest_max, 0, GameplayData.Get().mana_max);
if (type == EffectStatType.ManaWater)
target.mana_water += data.rolled_value;
target.mana_water_max += data.rolled_value;
target.mana_water = Mathf.Max(target.mana_water, 0);
target.mana_water_max = Mathf.Clamp(target.mana_water_max, 0, GameplayData.Get().mana_max);
}
public override void DoEffect(GameLogic logic, AbilityData ability, Card caster, Card target)
@@ -59,13 +43,6 @@ namespace TcgEngine
target.hp += data.rolled_value;
if (type == EffectStatType.Mana)
target.mana += data.rolled_value;
if (type == EffectStatType.ManaFire)
target.mana_fire += data.rolled_value;
if (type == EffectStatType.ManaForest)
target.mana_forest += data.rolled_value;
if (type == EffectStatType.ManaWater)
target.mana_water += data.rolled_value;
}
}
}

View File

@@ -14,34 +14,19 @@ namespace TcgEngine
{
public bool increase_value;
public bool increase_max;
[Header("Team Mana")]
public string team_id = ""; // 指定影响的阵营空值表示影响通用mana
public override void DoEffect(GameLogic logic, AbilityData ability, Card caster, Player target)
{
// 如果指定了阵营影响阵营mana否则影响通用mana
if (!string.IsNullOrEmpty(team_id))
if (increase_max)
{
// 影响阵营mana
int current_add = increase_value ? ability.value : 0;
int max_add = increase_max ? ability.value : 0;
target.AddTeamMana(team_id, current_add, max_add);
target.mana_max += ability.value;
target.mana_max = Mathf.Clamp(target.mana_max, 0, GameplayData.Get().mana_max);
}
else
if (increase_value)
{
// 影响通用mana保持原有逻辑
if (increase_max)
{
target.mana_max += ability.value;
target.mana_max = Mathf.Clamp(target.mana_max, 0, GameplayData.Get().mana_max);
}
if(increase_value)
{
target.mana += ability.value;
target.mana = Mathf.Max(target.mana, 0);
}
target.mana += ability.value;
target.mana = Mathf.Max(target.mana, 0);
}
}

View File

@@ -13,9 +13,6 @@ namespace TcgEngine
public class EffectSetStat : EffectData
{
public EffectStatType type;
[Header("Team Mana (only for Mana type)")]
public string team_id = ""; // 当type为Mana时指定影响的阵营
public override void DoEffect(GameLogic logic, AbilityData ability, Card caster, Player target)
{
@@ -26,17 +23,8 @@ namespace TcgEngine
if (type == EffectStatType.Mana)
{
// 如果指定了阵营设置阵营mana否则设置通用mana
if (!string.IsNullOrEmpty(team_id))
{
target.SetTeamMana(team_id, ability.value);
}
else
{
Debug.Log($"SetStat Mana 通用: {ability.value}");
target.mana = ability.value;
target.mana = Mathf.Max(target.mana, 0);
}
target.mana = ability.value;
target.mana = Mathf.Max(target.mana, 0);
}
}
@@ -51,13 +39,6 @@ namespace TcgEngine
target.hp = ability.value;
target.damage = 0;
}
if (type == EffectStatType.ManaFire)
target.mana_fire = ability.value;
if (type == EffectStatType.ManaForest)
target.mana_forest = ability.value;
if (type == EffectStatType.ManaWater)
target.mana_water = ability.value;
}
public override void DoOngoingEffect(GameLogic logic, AbilityData ability, Card caster, Card target)
@@ -68,13 +49,6 @@ namespace TcgEngine
target.hp = ability.value;
if (type == EffectStatType.Mana)
target.mana = ability.value;
if (type == EffectStatType.ManaFire)
target.mana_fire = ability.value;
if (type == EffectStatType.ManaForest)
target.mana_forest = ability.value;
if (type == EffectStatType.ManaWater)
target.mana_water = ability.value;
}
}