Merge remote-tracking branch 'origin/main'

This commit is contained in:
YiHan0621
2025-09-14 20:22:00 +08:00
4 changed files with 58 additions and 35 deletions

View File

@@ -67,6 +67,8 @@ namespace TcgEngine.UI
/// </summary>
public void SetAvatarPath(string path)
{
if (avatar_path == path)
return;
avatar_path = path;
LoadAvatarSprite();
}

View File

@@ -68,17 +68,21 @@ namespace TcgEngine.UI
if (card == null)
return;
bool isSameCard = (this.card == card) && (this.variant == variant);
this.card = card;
this.variant = variant;
if(card_image != null)
card_image.sprite = card.GetFullArt(variant);
if (frame_image != null)
frame_image.sprite = variant.frame;
if (card_title != null)
card_title.text = card.GetTitle().ToUpper();
if (card_text != null)
card_text.text = card.GetText();
if (!isSameCard)
{
if(card_image != null)
card_image.sprite = card.GetFullArt(variant);
if (frame_image != null)
frame_image.sprite = (variant != null) ? variant.frame : frame_image.sprite;
if (card_title != null)
card_title.text = card.GetTitle().ToUpper();
if (card_text != null)
card_text.text = card.GetText();
}
if (attack_icon != null)
attack_icon.enabled = card.IsCharacter();
@@ -102,20 +106,34 @@ namespace TcgEngine.UI
if (hp != null)
hp.text = card.hp.ToString();
if (team_icon != null)
if (!isSameCard)
{
team_icon.sprite = card.team.icon;
team_icon.enabled = team_icon.sprite != null;
if (team_icon != null)
{
Sprite teamSprite = (card.team != null) ? card.team.icon : null;
team_icon.sprite = teamSprite;
team_icon.enabled = teamSprite != null;
}
}
if (rarity_icon != null)
if (!isSameCard)
{
rarity_icon.sprite = card.rarity.icon;
rarity_icon.enabled = rarity_icon.sprite != null && card.type != CardType.Hero;
if (rarity_icon != null)
{
Sprite raritySprite = (card.rarity != null) ? card.rarity.icon : null;
rarity_icon.sprite = raritySprite;
rarity_icon.enabled = raritySprite != null && card.type != CardType.Hero;
}
}
foreach (TraitUI stat in stats)
stat.SetCard(card);
if (stats != null)
{
foreach (TraitUI stat in stats)
{
if (stat != null)
stat.SetCard(card);
}
}
if (!gameObject.activeSelf)
gameObject.SetActive(true);