PO/Assets/Scripts/Card.cs

127 lines
4.0 KiB
C#
Raw Normal View History

2022-01-12 10:06:03 +03:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using UnityEngine.Events;
2022-01-12 10:06:03 +03:00
using UnityEngine.UI;
public class Card : MonoBehaviour
{
[SerializeField] private CardConfig cardConfig;
private CardCharacteristics _card;
2022-01-15 23:26:40 +03:00
2022-01-12 10:06:03 +03:00
[Space(3)]
[HideInInspector] public int number;
2022-01-12 10:06:03 +03:00
[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 процентов
private void Start()
{
picture.sprite = cardConfig.CardCharacteristics.picture;
_card = cardConfig.CardCharacteristics;
2022-01-12 10:06:03 +03:00
picture.sprite = _card.picture;
nameCard.text = _card.cardName;
2022-01-15 23:26:40 +03:00
SetText();
}
2022-01-15 23:26:40 +03:00
public void SetText()
{
2022-01-15 23:26:40 +03:00
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++)
2022-01-12 10:06:03 +03:00
{
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++)
2022-01-12 10:06:03 +03:00
{
if (_max < Convert.ToInt32(allVariables[i, 0]))
{
_max = Convert.ToInt32(allVariables[i, 0]);
_num = i;
}
2022-01-12 10:06:03 +03:00
}
if (_max != 0)
2022-01-12 10:06:03 +03:00
{
type.text = allVariables[_num, 1];
quantity.text = allVariables[_num, 0];
2022-01-12 10:06:03 +03:00
}
else
2022-01-12 10:06:03 +03:00
{
type.text = "";
quantity.text = "";
}
2022-01-12 10:06:03 +03:00
}
2022-01-12 10:06:03 +03:00
public void OnClick()
{
2022-01-15 23:26:40 +03:00
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//Этот метод - колхоз на колхазе сидит и колхозом погоняет
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
if (Session.main.waitingEndingRound || DeckManager.main.waitingEnemyTurn) return;
2022-01-13 16:15:53 +03:00
var _card = cardConfig.CardCharacteristics;
2022-01-12 10:06:03 +03:00
//ВАРНИНГ! НЕ РАБОТАЕТ С КАРТАМИ НА -ЗДОРОВЬЕ!!
2022-01-13 16:15:53 +03:00
int _stamina = DeckManager.main.stamina;
if (_stamina < cardConfig.CardCharacteristics.quantityStamina) return;
2022-01-15 23:26:40 +03:00
if (_card.specialization == Specialization.healing)
2022-01-13 16:15:53 +03:00
{
2022-01-15 23:26:40 +03:00
if (_card.addStamina > 0)
{
DeckManager.main.NewStaminaQuantity(_stamina + _card.addStamina);
}
else if (_card.addArmor > 0)
{
2022-01-15 23:26:40 +03:00
DeckManager.main.NewStaminaQuantity(_stamina - _card.quantityStamina);
Player.main.AddArmor(_card.addArmor);
}
else if (_card.addHealth > 0)
{
2022-01-15 23:26:40 +03:00
DeckManager.main.NewStaminaQuantity(_stamina - _card.quantityStamina);
Player.main.ChangeHp(-_card.addHealth);
}
DeckManager.main.currentCard = null;
DeckManager.main.MarkersRegulator();
2022-01-13 16:15:53 +03:00
DestroyObject();
return;
}
else
2022-01-12 10:06:03 +03:00
{
2022-01-13 16:15:53 +03:00
DeckManager.main.currentCard = cardConfig;
DeckManager.main.numberCurrentCard = number;
DeckManager.main.MarkersRegulator();
2022-01-12 10:06:03 +03:00
}
}
public void DestroyObject()
{
Destroy(cardObject);
//Camera.main.GetComponent<DeckManager>().CardInTable.RemoveAt(number);
}
}