卡牌更新

This commit is contained in:
SoulliesOfficial
2026-04-08 04:48:35 -04:00
parent c3b1561375
commit dd2657573a
242 changed files with 1950 additions and 926 deletions

View File

@@ -9,12 +9,12 @@ namespace Continentis.MainGame.Card
{
protected override void TargetingEffect(CharacterBase target)
{
card.SetAttribute("DisplayDamage", mainLogic.GetTargetedFinalDamage(target));
card.SetAttribute("Display_Damage", mainLogic.GetTargetedFinalDamage(target));
}
protected override void UntargetingEffect()
{
card.SetAttribute("DisplayDamage", mainLogic.GetNoTargetFinalDamage());
card.SetAttribute("Display_Damage", mainLogic.GetNoTargetFinalDamage());
}
/// <summary>
@@ -38,48 +38,20 @@ namespace Continentis.MainGame.Card
}
/// <summary>
/// 斩击伤害计算,伤害=基础伤害+(力量加成+敏捷加成)/2
/// 物理伤害计算,伤害=基础伤害+物理伤害加成
/// </summary>
public void SetDamage_Slash(string damageAttributeName = "Damage", bool additive = false, int originalDamage = 0)
public void SetDamage_Physics(string damageAttributeName = "Damage", bool additive = false, int originalDamage = 0)
{
float rawDamageOffsetFromStrength = user.GetRawAttribute("OffsetFromStrength");
float rawDamageOffsetFromAgility = user.GetRawAttribute("OffsetFromAgility");
SetDamage(Mathf.RoundToInt((rawDamageOffsetFromStrength + rawDamageOffsetFromAgility) / 2f), damageAttributeName, additive, originalDamage);
}
/// <summary>
/// 打击伤害计算,伤害=基础伤害+力量加成
/// </summary>
public void SetDamage_Strike(string damageAttributeName = "Damage", bool additive = false, int originalDamage = 0)
{
int damageOffset = user.GetAttribute("OffsetFromStrength");
SetDamage(damageOffset, damageAttributeName, additive, originalDamage);
}
/// <summary>
/// 突刺伤害计算,伤害=基础伤害+敏捷加成
/// </summary>
public void SetDamage_Prick(string damageAttributeName = "Damage", bool additive = false, int originalDamage = 0)
{
int damageOffset = user.GetAttribute("OffsetFromAgility");
int damageOffset = user.GetAttribute("PhysicsDamageDealtOffset");
SetDamage(damageOffset, damageAttributeName, additive, originalDamage);
}
/// <summary>
/// 奥术伤害计算,伤害=基础伤害+智力加成
/// 魔法伤害计算,伤害=基础伤害+魔法伤害加成
/// </summary>
public void SetDamage_Arcane(string damageAttributeName = "Damage", bool additive = false, int originalDamage = 0)
public void SetDamage_Magic(string damageAttributeName = "Damage", bool additive = false, int originalDamage = 0)
{
int damageOffset = user.GetAttribute("OffsetFromIntelligence");
SetDamage(damageOffset, damageAttributeName, additive, originalDamage);
}
/// <summary>
/// 契术伤害计算,伤害=基础伤害+魅力加成
/// </summary>
public void SetDamage_Sorcery(string damageAttributeName = "Damage", bool additive = false, int originalDamage = 0)
{
int damageOffset = user.GetAttribute("OffsetFromCharisma");
int damageOffset = user.GetAttribute("MagicDamageDealtOffset");
SetDamage(damageOffset, damageAttributeName, additive, originalDamage);
}
}

View File

@@ -10,15 +10,15 @@ namespace Continentis.MainGame.Card
{
if (card.HasAttribute("Block"))
{
card.SetAttribute("DisplayBlock", card.GetAttribute("Block"));
card.SetAttribute("Display_Block", card.GetAttribute("Block"));
}
else if(card.HasAttribute("Dodge"))
{
card.SetAttribute("DisplayDodge", card.GetAttribute("Dodge"));
card.SetAttribute("Display_Dodge", card.GetAttribute("Dodge"));
}
else if(card.HasAttribute("TemporaryHealth"))
{
card.SetAttribute("DisplayTemporaryHealth", card.GetAttribute("TemporaryHealth"));
card.SetAttribute("Display_TemporaryHealth", card.GetAttribute("TemporaryHealth"));
}
}
@@ -26,79 +26,34 @@ namespace Continentis.MainGame.Card
{
if (card.HasAttribute("Block"))
{
card.SetAttribute("DisplayBlock", card.GetAttribute("Block"));
card.SetAttribute("Display_Block", card.GetAttribute("Block"));
}
else if(card.HasAttribute("Dodge"))
{
card.SetAttribute("DisplayDodge", card.GetAttribute("Dodge"));
card.SetAttribute("Display_Dodge", card.GetAttribute("Dodge"));
}
else if(card.HasAttribute("TemporaryHealth"))
{
card.SetAttribute("DisplayTemporaryHealth", card.GetAttribute("TemporaryHealth"));
card.SetAttribute("Display_TemporaryHealth", card.GetAttribute("TemporaryHealth"));
}
}
/// <summary>
/// 设置格挡值,默认由体质加成
/// 设置格挡值,加成来自 BlockGainOffset
/// </summary>
public void SetBlock_Fortitude(bool additive = false, int originalBlock = 0)
public void SetBlock(bool additive = false, int originalBlock = 0)
{
int blockOffsetFromPhysique = user.GetAttribute("OffsetFromPhysique");
card.SetVariableAttribute("Block", blockOffsetFromPhysique, additive, originalBlock);
int blockOffset = user.GetAttribute("BlockGainOffset");
card.SetVariableAttribute("Block", blockOffset, additive, originalBlock);
}
/// <summary>
/// 设置格挡值,由智力加成
/// 设置闪避值,加成来自 DodgeGainOffset
/// </summary>
public void SetBlock_Arcane(bool additive = false, int originalBlock = 0)
public void SetDodge(bool additive = false, int originalDodge = 0)
{
int blockOffsetFromIntelligence = user.GetAttribute("OffsetFromIntelligence");
card.SetVariableAttribute("Block", blockOffsetFromIntelligence, additive, originalBlock);
}
/// <summary>
/// 设置格挡值,由魅力加成
/// </summary>
public void SetBlock_Sorcery(bool additive = false, int originalBlock = 0)
{
int blockOffsetFromCharisma = user.GetAttribute("OffsetFromCharisma");
card.SetVariableAttribute("Block", blockOffsetFromCharisma, additive, originalBlock);
}
/// <summary>
/// 设置闪避值,由敏捷加成
/// </summary>
public void SetDodge_Swiftness(bool additive = false, int originalDodge = 0)
{
int dodgeOffsetFromAgility = user.GetAttribute("OffsetFromAgility");
card.SetVariableAttribute("Dodge", dodgeOffsetFromAgility, additive, originalDodge);
}
/// <summary>
/// 设置闪避值,由智力加成
/// </summary>
public void SetDodge_Arcane(bool additive = false, int originalDodge = 0)
{
int dodgeOffsetFromIntelligence = user.GetAttribute("OffsetFromIntelligence");
card.SetVariableAttribute("Dodge", dodgeOffsetFromIntelligence, additive, originalDodge);
}
/// <summary>
/// 设置闪避值,由魅力加成
/// </summary>
public void SetDodge_Sorcery(bool additive = false, int originalDodge = 0)
{
int dodgeOffsetFromCharisma = user.GetAttribute("OffsetFromCharisma");
card.SetVariableAttribute("Dodge", dodgeOffsetFromCharisma, additive, originalDodge);
}
/// <summary>
/// 设置闪避值,由感知加成
/// </summary>
public void SetDodge_Prediction(bool additive = false, int originalDodge = 0)
{
int dodgeOffsetFromPrediction = user.GetAttribute("OffsetFromPerception");
card.SetVariableAttribute("Dodge", dodgeOffsetFromPrediction, additive, originalDodge);
int dodgeOffset = user.GetAttribute("DodgeGainOffset");
card.SetVariableAttribute("Dodge", dodgeOffset, additive, originalDodge);
}
/// <summary>

View File

@@ -7,12 +7,12 @@ namespace Continentis.MainGame.Card
{
protected override void TargetingEffect(CharacterBase target)
{
card.SetAttribute("DisplayLifeStealPercent", GetLifeStealPercent());
card.SetAttribute("Display_LifeStealPercent", GetLifeStealPercent());
}
protected override void UntargetingEffect()
{
card.SetAttribute("DisplayLifeStealPercent", card.GetRawAttribute("LifeStealPercent"));
card.SetAttribute("Display_LifeStealPercent", card.GetRawAttribute("LifeStealPercent"));
}
public float GetLifeStealPercent()

View File

@@ -1,3 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Continentis.MainGame.Commands;
@@ -10,6 +11,7 @@ namespace Continentis.MainGame.Card
public class CardLogicComponent_SelectCustomCards : CardLogicComponentBase
{
public List<CardInstance> selectedCards;
public Action<CardInstance> selectEffect;
/// <summary>
/// 添加选择手牌的指令
@@ -24,24 +26,16 @@ namespace Continentis.MainGame.Card
selectedCards = new List<CardInstance>();
CustomCardSelectionInterface customCardSelector = CombatUIManager.Instance.combatMainPage.customCardSelector;
commandGroup.AddCommand(new Cmd_Function(() =>
commandGroup.AddCommand(Cmd.Do(() =>
{
customCardSelector.Setup(title, mainLogic.card, cardsToSelect, maxSelection, forceMax);
}));
commandGroup.AddCommand(new Cmd_WaitForUI(customCardSelector));
commandGroup.AddCommand(new Cmd_Function(() =>
commandGroup.AddCommand(Cmd.Do(() =>
{
selectedCards = customCardSelector.selectedCards.ToList();
selectedCards.ForEach(SelectEffect);
selectedCards.ForEach(selectEffect);
}));
}
/// <summary>
/// 卡牌被选择后的效果
/// </summary>
public void SelectEffect(CardInstance card)
{
}
}
}

View File

@@ -41,7 +41,7 @@ namespace Continentis.MainGame.Card
selectedCards = new List<CardInstance>();
HandCardSelectionInterface handCardSelector = CombatUIManager.Instance.combatMainPage.handCardSelector;
commandGroup.AddCommand(new Cmd_Function(() =>
commandGroup.AddCommand(Cmd.Do(() =>
{
handCardSelector.Setup(title, mainLogic.card, maxSelection, selectCondition, forceMax);
if (!includeTeam)
@@ -51,7 +51,7 @@ namespace Continentis.MainGame.Card
}
}));
commandGroup.AddCommand(new Cmd_WaitForUI(handCardSelector));
commandGroup.AddCommand(new Cmd_Function(() =>
commandGroup.AddCommand(Cmd.Do(() =>
{
selectedCards = handCardSelector.selectedCards.ToList();
selectedCards.ForEach(selectEffect);