123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using FSRole;
- using FSEvent;
- using UnityEngine.UI;
- using FSBuff;
- namespace FSCard {
- /*
- * 防守牌
- */
- public class DefCard : MonoBehaviour, Card {
- // 卡片总类
- public CardType Type { get; set; }
- // 卡片的唯一标示
- public string ID { set; get; }
- // 描述
- public string Desc { 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 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<Image>();
- TenacityImage = transform.Find("Tenacity").GetComponent<Image>();
- CostImage = transform.Find("Cost").GetComponent<Image>();
- DescLabel = transform.Find("Desc").GetComponent<Text>();
- SetFront(true);
- }
- // Update is called once per frame
- void Update() {
- }
- /*
- * 卡片执行
- */
- public void OnExecute() {
- print("卡片 " + ID + " 启动," + Target.CurrentAttr.ID + " 增加防御 ...");
- Target.CurrentAttr.Def += 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<Image>();
- 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<Image>();
- 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 = "";
- }
- }
- }
- }
|