using System.Collections; using System.Collections.Generic; using UnityEngine; using FSRole; using FSEvent; using FSBuff; using UnityEngine.UI; namespace FSCard { /* * 攻击卡片组件 */ public class AckCard : MonoBehaviour, Card { // 种类 public CardType Type { get; set; } // 卡片的唯一标示 public string ID { set; get; } // 花费的能量 public int Cost { get; set; } // 韧性 public int Tenacity { get; set; } // 数值 public int Value { set; get; } // 目标 public Role Target { set; get; } // 挂载的BUFF id public string BuffID { set; get; } // 描述 public string Desc { set; get; } // 发起者 public Role Source { set; get; } // 卡面 public Image Face { set; get; } // 韧性 public Image TenacityImage { set; get; } // 花费 public Image CostImage { set; get; } // Buff public Text DescLabel { set; get; } // 是否正面 public bool IsFront { set; get; } // Use this for initialization void Start() { Face = transform.Find("Face").GetComponent(); TenacityImage = transform.Find("Tenacity").GetComponent(); CostImage = transform.Find("Cost").GetComponent(); DescLabel = transform.Find("Desc").GetComponent(); SetFront(true); } /* * 卡片执行 */ public void OnExecute() { print("卡片 " + ID + " 启动," + Target.CurrentAttr.ID + " 受到攻击..."); Target.GetDamage(-Value); // 判断BUFF是否存在,如果存在,则运行BUFF if (BuffID != null) { if (Target != null) { print("攻击附带BUFF " + BuffID); BuffManager.Instance.LoadBuff(Target.gameObject, BuffID); } } } /* * 设置正面或者背面 */ public void SetFront(bool face) { IsFront = face; // 正面处理 if (IsFront) { // 将几个需要显示的空间置为可见 Face.gameObject.SetActive(true); TenacityImage.gameObject.SetActive(true); CostImage.gameObject.SetActive(true); // 加载图片 Image image = gameObject.GetComponent(); if (Source.CurrentAttr.Camp == RoleCamp.ARMY) { if (Type == CardType.CARD_TYPE_ATTACK) { image.sprite = Resources.Load("Textures/Cards/BG/Army_Ack", typeof(Sprite)) as Sprite; } else if (Type == CardType.CARD_TYPE_DEFANCE) { image.sprite = Resources.Load("Textures/Cards/BG/Army_Def", typeof(Sprite)) as Sprite; } else { image.sprite = Resources.Load("Textures/Cards/BG/Army_Spec", typeof(Sprite)) as Sprite; } } else { if (Type == CardType.CARD_TYPE_ATTACK) { image.sprite = Resources.Load("Textures/Cards/BG/Enemy_Ack", typeof(Sprite)) as Sprite; } else if (Type == CardType.CARD_TYPE_DEFANCE) { image.sprite = Resources.Load("Textures/Cards/BG/Enemy_Def", typeof(Sprite)) as Sprite; } else { image.sprite = Resources.Load("Textures/Cards/BG/Enemy_Spec", typeof(Sprite)) as Sprite; } } Face.sprite = Resources.Load("Textures/Cards/Face/" + ID, typeof(Sprite)) as Sprite; string url = string.Format("Textures/Cards/Tenacity/tenacity_{0:d2}", Tenacity); TenacityImage.sprite = Resources.Load(url, typeof(Sprite)) as Sprite; url = string.Format("Textures/Cards/Cost/cost_{0:d2}", Cost); CostImage.sprite = Resources.Load(url, typeof(Sprite)) as Sprite; DescLabel.text = Desc; } else { // 加载背部图片 Image image = gameObject.GetComponent(); if (Source.CurrentAttr.Camp == RoleCamp.ARMY) { if (Type == CardType.CARD_TYPE_ATTACK) { image.sprite = Resources.Load("Textures/Cards/BG/Army_Ack_Back", typeof(Sprite)) as Sprite; } else if (Type == CardType.CARD_TYPE_DEFANCE) { image.sprite = Resources.Load("Textures/Cards/BG/Army_Def_Back", typeof(Sprite)) as Sprite; } else { image.sprite = Resources.Load("Textures/Cards/BG/Army_Spec_Back", typeof(Sprite)) as Sprite; } } else { if (Type == CardType.CARD_TYPE_ATTACK) { image.sprite = Resources.Load("Textures/Cards/BG/Enemy_Ack_Back", typeof(Sprite)) as Sprite; } else if (Type == CardType.CARD_TYPE_DEFANCE) { image.sprite = Resources.Load("Textures/Cards/BG/Enemy_Def_Back", typeof(Sprite)) as Sprite; } else { image.sprite = Resources.Load("Textures/Cards/BG/Enemy_Spec_Back", typeof(Sprite)) as Sprite; } } Face.gameObject.SetActive(false); TenacityImage.gameObject.SetActive(false); CostImage.gameObject.SetActive(false); DescLabel.text = ""; } } } }