using System.Collections; using System.Collections.Generic; using UnityEngine; using System; using UnityEngine.Events; using UnityEngine.UI; public class Card : MonoBehaviour { [SerializeField] public CardConfig cardConfig; private CardCharacteristics _card; [Space(3)] [HideInInspector] public int number; [Header("DON'T TOUCH THIS! IT STANDART PRESET!")] [SerializeField] private GameObject cardObject; [SerializeField] private Image picture; [SerializeField] private Text nameCard; [SerializeField] private Text costTitle; [SerializeField] private Text cost; [SerializeField] private Text type; [SerializeField] private Text quantity; //этот колхоз надо переделать 100 процентов [HideInInspector] int localquantityStamina = 0; [HideInInspector] int localquantityHealth = 0; [HideInInspector] int localdamage = 0; [HideInInspector] int localaddHealth = 0; [HideInInspector] int localaddStamina = 0; [HideInInspector] int localaddArmor = 0; private void Start() { SaveStartCharacterisics(cardObject); CheckLevel(cardObject); picture.sprite = cardConfig.CardCharacteristics.picture; _card = cardConfig.CardCharacteristics; picture.sprite = _card.picture; nameCard.text = _card.cardName; SetText(); } public void SetText() { string[,] allVariables = new string[,] {{ _card.addHealth.ToString(), "Heal" }, { _card.quantityStamina.ToString(), "Stam" }, { _card.damage.ToString(), "Atk" }, { _card.addStamina.ToString(), "AddStam" }, { _card.addArmor.ToString(), "Armor"} }; int _max = 0; int _num = 0; for (int i = 0; i < allVariables.Length / 2; i++) { if (_max < Convert.ToInt32(allVariables[i, 0])) { _max = Convert.ToInt32(allVariables[i, 0]); _num = i; } } costTitle.text = allVariables[_num, 1]; cost.text = allVariables[_num, 0]; allVariables[_num, 0] = "-1"; _max = -1; for (int i = 0; i < allVariables.Length / 2; i++) { if (_max < Convert.ToInt32(allVariables[i, 0])) { _max = Convert.ToInt32(allVariables[i, 0]); _num = i; } } if (_max != 0) { type.text = allVariables[_num, 1]; quantity.text = allVariables[_num, 0]; } else { type.text = ""; quantity.text = ""; } } public void OnClick() { //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! //Этот метод - колхоз на колхазе сидит и колхозом погоняет //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! if (Session.main.waitingEndingRound || DeckManager.main.waitingEnemyTurn) return; var _card = cardConfig.CardCharacteristics; //ВАРНИНГ! НЕ РАБОТАЕТ С КАРТАМИ НА -ЗДОРОВЬЕ!! int _stamina = DeckManager.main.stamina; if (_stamina < cardConfig.CardCharacteristics.quantityStamina) return; else if (_card.specialization == Specialization.healing) { if (_card.addStamina > 0) { DeckManager.main.NewStaminaQuantity(_stamina + _card.addStamina); } else if (_card.addArmor > 0) { DeckManager.main.NewStaminaQuantity(_stamina - _card.quantityStamina); Player.main.AddArmor(_card.addArmor); } else if (_card.addHealth > 0) { DeckManager.main.NewStaminaQuantity(_stamina - _card.quantityStamina); Player.main.ChangeHp(-_card.addHealth); } DeckManager.main.currentCard = null; DeckManager.main.MarkersRegulator(); DestroyObject(); return; } else { DeckManager.main.currentCard = cardConfig; DeckManager.main.numberCurrentCard = number; DeckManager.main.MarkersRegulator(); } } public void SaveStartCharacterisics(GameObject _card) { var _cardCharacteristics = _card.GetComponent().cardConfig.CardCharacteristics; localquantityStamina = _cardCharacteristics.quantityStamina; localquantityHealth = _cardCharacteristics.quantityHealth; localdamage = _cardCharacteristics.damage; localaddHealth = _cardCharacteristics.addHealth; localaddStamina = _cardCharacteristics.addStamina; localaddArmor = _cardCharacteristics.addArmor; } public void CheckLevel(GameObject _card) { // Мне за это стыдно, но в голову иных варинтов не приходит var _cardCharacteristics = _card.GetComponent().cardConfig.CardCharacteristics; if (_cardCharacteristics.improvedLevel is true) { _cardCharacteristics.quantityStamina = _cardCharacteristics.quantityStamina2; _cardCharacteristics.quantityHealth = _cardCharacteristics.quantityHealth2; _cardCharacteristics.damage = _cardCharacteristics.damage2; _cardCharacteristics.addHealth = _cardCharacteristics.addHealth2; _cardCharacteristics.addStamina = _cardCharacteristics.addStamina2; _cardCharacteristics.addArmor = _cardCharacteristics.addArmor2; } } public void ResetCardCharacteristic(GameObject _card) { var _cardCharacteristics = _card.GetComponent().cardConfig.CardCharacteristics; _cardCharacteristics.quantityStamina = localquantityStamina; _cardCharacteristics.quantityHealth = localquantityHealth; _cardCharacteristics.damage = localdamage; _cardCharacteristics.addHealth = localaddHealth; _cardCharacteristics.addStamina = localaddStamina; _cardCharacteristics.addArmor = localaddArmor; } public void DestroyObject() { ResetCardCharacteristic(cardObject); Destroy(cardObject); //Camera.main.GetComponent().CardInTable.RemoveAt(number); } }