public bool Equals(Player other) { if (ReferenceEquals(null, other)) { return(false); } if (ReferenceEquals(this, other)) { return(true); } return(CardStats.OrderBy(cs => cs.Key).SequenceEqual(other.CardStats.OrderBy(cs => cs.Key)) && ComputerDifficulty == other.ComputerDifficulty && ComputerPlayerId == other.ComputerPlayerId && Equals(ExperienceProgress, other.ExperienceProgress) && Equals(HumanPlayerId, other.HumanPlayerId) && IsHuman == other.IsHuman && LeaderId == other.LeaderId && LeaderPowerStats.OrderBy(lps => lps.Key).SequenceEqual(other.LeaderPowerStats.OrderBy(lps => lps.Key)) && PlayerCompletedMatch == other.PlayerCompletedMatch && PlayerMatchOutcome == other.PlayerMatchOutcome && PointStats.OrderBy(p => p.Key).SequenceEqual(other.PointStats.OrderBy(p => p.Key)) && Equals(RatingProgress, other.RatingProgress) && TeamId == other.TeamId && TeamPlayerIndex == other.TeamPlayerIndex && TimeInMatch.Equals(other.TimeInMatch) && UnitStats.OrderBy(us => us.Key).SequenceEqual(other.UnitStats.OrderBy(us => us.Key)) && WaveStats.OrderBy(ws => ws.Key).SequenceEqual(other.WaveStats.OrderBy(ws => ws.Key))); }
public void GetCard(CardStats card) { if (card.isBooked) { bookedCardsNumber--; freeBookedPlaces[card.cardInBookingPlaceNumber] = true; } PayChips(card); AddPoint(card.pointValue); AddCardGem(card.color); card.MoveToPlayer(this); nobleCardStash.CheckPlayerCardValues(this); if (!card.isBooked) { cardManager.PlaceCard(card.gameObject); } EndTurn(); }
private void Start() { if (thisCard.GetComponent <CardStats>() != null) { thisCard = this.GetComponent <CardStats>(); } }
public void PlayCard(CardStats cardStats) { //TODO: CHANGE STATS HERE DEPENDING ON WHAT CARD IS PLAYED Debug.Log(cardStats.GetStats()); _parent.SetActive(false); _hub.SetActive(true); }
public void Start() { if (GetComponent <CardDisplay>() != null) { ThisCard = GetComponent <CardDisplay>().card; gameObject.name = ThisCard.name; } }
public void Add(CardStats newStats) { if (nextCards.Contains(newStats)) { return; } nextCards.Add(newStats); }
private void ShowBigCard() { GameObject cardDetails = transform.parent.parent.parent.GetComponent <CollectionManager>().cardDetails; CardStats cardStats = GetComponent <CardStats>(); cardDetails.SetActive(true); cardDetails.transform.Find("BigImage") .GetComponent <Image>() .sprite = Resources.Load <Sprite>("Cards/List/591x380/" + cardStats._id); if (cardStats.faction == "Special") {// Special Card cardDetails.transform.Find("BigEffect") .GetComponent <Image>() .sprite = Resources.Load <Sprite>("Cards/EffectBox/" + cardStats._idstr); } else { // Unit Card or Leader if (cardStats.ability == "leader") // Leader Card { cardDetails.transform.Find("BigEffect") .GetComponent <Image>() .sprite = Resources.Load <Sprite>("Cards/EffectBox/Leader/" + cardStats._id); } else // Unit Card { if (cardStats.unique) { cardDetails.transform.Find("BigEffect") .GetComponent <Image>() .sprite = Resources.Load <Sprite>("Cards/EffectBox/hero"); } if (cardStats.ability != "") { cardDetails.transform.Find("BigEffect") .GetComponent <Image>() .sprite = Resources.Load <Sprite>("Cards/EffectBox/" + cardStats.ability); } else if (!cardStats.unique) { // No ability (normal unit) if (cardStats.row == "close_range") { cardDetails.transform.Find("BigEffect") .GetComponent <Image>() .sprite = Resources.Load <Sprite>("Cards/EffectBox/agile"); } else { cardDetails.transform.Find("BigEffect") .GetComponent <Image>() .sprite = Resources.Load <Sprite>("Cards/EffectBox/normal_unit"); } } } } }
public void OnDrop(PointerEventData eventData) //When a card is being dropped on the zone, it adds 1 card to the total and it checks if there are 2 cards { if (totalCards < 2) { currentCards [totalCards] = eventData.pointerDrag.gameObject; totalCards++; Debug.Log(eventData.pointerDrag.name + " was dropped on " + gameObject.name); if (totalCards > 2) { totalPoints = 0; } CardStats cardStats = eventData.pointerDrag.gameObject.GetComponent <CardStats> (); if (cardStats != null) //Giving the cards a value { Debug.Log(cardStats.cardName); if (cardStats.cardName == "Lex") { totalPoints += 4; } if (cardStats.cardName == "Luca") { totalPoints += 5; } if (cardStats.cardName == "hahayes") { totalPoints += 3; } if (cardStats.cardName == "Sam") { totalPoints += 7; } if (cardStats.cardName == "Roggi") { totalPoints += 9; } if (cardStats.cardName == "Freddi") { totalPoints += 6; } if (cardStats.cardName == "Doge") { totalPoints += 8; } } Draggable d = eventData.pointerDrag.GetComponent <Draggable> (); //Changes the parent object of the card if (d != null) { if (typeOfItem == d.typeOfItem || typeOfItem == Draggable.slot.INVENTORY1) { d.parentToReturnTo = this.transform; } } } }
//----------------------------------------On card creation-----------------------------------------------// private void OnCreation() { CardStats card = cardStats.GetComponent <CardStats>(); // Change the artwork based on ID artworkImage.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/List/135x87/" + card._id); if (card.faction == "Special") {// Special Card: // Change to the corresponding special Icon natureImage.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/Special/" + card._idstr); rowImage.GetComponent <Image>().color = new Color(0, 0, 0, 0); abilityImage.GetComponent <Image>().color = new Color(0, 0, 0, 0); } else {// Unit Card or Leader: if (card.ability == "leader") { natureImage.GetComponent <Image>().color = new Color(0, 0, 0, 0); rowImage.GetComponent <Image>().color = new Color(0, 0, 0, 0); abilityImage.GetComponent <Image>().color = new Color(0, 0, 0, 0); } else { // Change the strength, strength text color and uniqueness image strengthImage.GetComponent <TextMeshProUGUI>().text = card.strength.ToString(); if (card.unique) { natureImage.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/Nature/unique"); strengthImage.GetComponent <TextMeshProUGUI>().color = new Color(255, 255, 255); } else { natureImage.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/Nature/not_unique"); strengthImage.GetComponent <TextMeshProUGUI>().color = new Color(0, 0, 0); } // Change row Image rowImage.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/Row/" + card.row); // Change the ability image if (card.ability == "") { abilityImage.GetComponent <Image>().color = new Color(0, 0, 0, 0); } else { if (card.ability.Contains("scorch")) { abilityImage.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/Ability/scorch"); } else { abilityImage.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/Ability/" + card.ability); } } } } }
public void EasySet(CardStats x)//this doesn't help here, but helps log all the cards in general { Id = x.getId(); CardName = x.getName(); CardHealth = x.getHealth(); CardPower = x.getPower(); card = x.getCard(); suit = x.getSuit(); }
public void BookCard(CardStats card) { card.MoveToPlayerBooks(this); cardManager.PlaceCard(card.gameObject); goldChipNumber++; bookedCardsNumber++; chipStashes.Find(c => c.stashColor == "GOL").GiveChipToPlayer(this); EndTurn(); }
public CardStats GetCardByName(string name)//returns a cardStats according to its id in the dictionary { CardStats originalCard = null; cardsDictionary.TryGetValue(name, out originalCard); //searches for the cardName of the dictionary if (originalCard == null) //if doesn't exists return null and finishes the function { return(null); } CardStats newInstance = Instantiate(originalCard); //se does exists, instantiates it newInstance.name = originalCard.cardName; //to make sure the name is going to be the same return(newInstance); //returns the cardStats }
// Start is called before the first frame update void Start() { playerStatsScript = GameObject.Find("Player").GetComponent <PlayerStats>(); backgroundMouseFlag = GameObject.Find("Field Background").GetComponent <BackgroundMouseFlag>(); selected = false; myHUDPosition = transform.position; myCardStats = GetComponent <CardStats>(); myCardEffects = GetComponent <CardEffects>(); myRenderer = GetComponent <Renderer>(); listOfAlliedUnitsToSpawn = new List <GameObject>(); }
public CardStats GetNext() { if (cards.Count > 0) { int index = GetRandomIndex(cards); CardStats toReturn = cards[index]; cards.RemoveAt(index); return(toReturn); } else { int index = GetRandomIndex(defaultCards); return(defaultCards[index]); } }
public void DisplayView(CardStats cs) { if (cs.card == null) { return; } cardNameText.text = cs.cardName; skillText.text = cs.skill; type.text = cs.type; artwork.sprite = cs.card.artwork; manaCostText.text = cs.manacost.ToString(); healthText.text = cs.currentHealth.ToString(); manaText.text = cs.mana.ToString(); damageText.text = cs.physicalDamage.ToString(); }
//--------------------------------------------Big info on the right--------------------------------------------// private void ShowBigInfo() { CardStats cardStats = GetComponent <CardDisplay>().cardStats.GetComponent <CardStats>(); bigImage = Instantiate(BigImage); bigEffect = Instantiate(BigEffect); bigImage.transform.SetParent(Canvas.transform, false); bigEffect.transform.SetParent(Canvas.transform, false); bigImage.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/List/591x380/" + cardStats._id); if (cardStats.faction == "Special") {// Special Card bigEffect.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/EffectBox/" + cardStats._idstr); } else { // Unit Card or Leader if (cardStats.ability == "leader") // Leader Card { bigEffect.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/EffectBox/Leader/" + cardStats._id); } else // Unit Card { if (cardStats.unique) { bigEffect.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/EffectBox/hero"); } if (cardStats.ability != "") { bigEffect.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/EffectBox/" + cardStats.ability); } else if (!cardStats.unique) { // No ability (normal unit) if (cardStats.row == "close_range") { bigEffect.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/EffectBox/agile"); } else { bigEffect.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/EffectBox/normal_unit"); } } } } }
public void ApplyModifier(CardStats cardStat, sbyte value) { switch (cardStat) { case CardStats.Defense: DefenseModifier = value; return; case CardStats.Damage: DamageModifier = value; return; default: return; } }
private Card GenerateCard(int cardIndex, int[] cardDistribution, List <Global.Suits> suitPool) { var stats = new CardStats(); stats.denomination = cardDistribution[cardIndex] % Global.denominations.Length; int suitAssignment = (int)Mathf.Floor(cardDistribution[cardIndex] / (float)Global.denominations.Length); stats.suit = suitPool[suitAssignment]; stats.turned = false; stats.id = cardIndex; var newCard = Instantiate(cardPrefab); newCard.Initialize(stats); return(newCard); }
public void DrawCards() { for (int i = 0; i < 5; i++) { if (drawPile.Count == 0) { ShuffleDeck(); } CardStats cardStats = drawPile[Random.Range(0, drawPile.Count)]; drawPile.Remove(cardStats); hand.Add(cardStats); GameObject newCard = Instantiate(cardPrefab, cardSlots[i], false); newCard.GetComponent <Card>().cardStats = cardStats; newCard.GetComponent <Card>().position = i; } }
public Card(string id, string name, Gui.Card card, Player parent, ZoneType zone) { _stats = new CardStats(card.Stats); Name = name; Type = card.Type; Id = id; Tags = card.Tags; _parent = parent; _zone = zone; Target = card.Target; Effects = card.GetInterfaces <IEffect>(); FirstTurnPlay = true; Parent.Game.Subscribe(this); foreach (var effect in Effects) { effect.SetParent(this); } }
public void Set(CardStats card) { List <CardStat> cardStats = card.GetStats(); art.sprite = card.sprite; art.color = (card.IsMastered()) ? dark : light; for (int i = 0; i < stats.Length; i++) { if (i < cardStats.Count) { stats[i].Set(cardStats[i]); } else { stats[i].Clear(); } } }
void Update() { if (GetComponent <CardStats>() != null) { cs = GetComponent <CardStats>(); if (cs.card == null) { return; } cardNameText.text = cs.cardName; skillText.text = cs.skill; type.text = cs.type; artwork.sprite = cs.card.artwork; manaCostText.text = cs.manacost.ToString(); healthText.text = cs.currentHealth.ToString(); manaText.text = cs.mana.ToString(); damageText.text = cs.physicalDamage.ToString(); } }
public void OnCardSelect() { if (isSelectable) { // If the turn is the player's and the card is his, hence the Tag if (controller.battleState == BattleState.PLAYERTURN && gameObject.CompareTag("Player") && !controller.PlayerInfo.CanDiscard) { // Lightoff any previous fields controller.LightoffField(true); controller.LightoffField(false); if (CheckSameCard()) { gameObject.GetComponent <CardHover>().isHoverable = true; controller.selectedCard = null; //Debug.Log("Player deselected a card !"); } else { gameObject.GetComponent <CardHover>().isHoverable = false; controller.selectedCard = gameObject; //Debug.Log("Player selected a new card!"); // Hightlights the appropriate field based on: Card Faction AND Card Row controller.HighlightField(gameObject.GetComponent <CardDisplay>().cardStats.GetComponent <CardStats>(), true); } } } // Related to card swapping (Decoy) if (controller.swapActivated && !isSelectable) { CardStats card_stats = gameObject.GetComponent <CardDisplay>().cardStats.GetComponent <CardStats>(); if (card_stats.faction != "Special" && !card_stats.unique && !(card_stats.ability == "leader")) { gameObject.GetComponent <CardHover>().DestroyEffect(); controller.Decoy(card_stats._id, gameObject.tag, transform.parent.parent.name); } else { Debug.Log("Cannot Decoy !"); } } }
public override int GetHashCode() { unchecked { var hashCode = CardStats?.GetHashCode() ?? 0; hashCode = (hashCode * 397) ^ ComputerDifficulty.GetHashCode(); hashCode = (hashCode * 397) ^ ComputerPlayerId.GetHashCode(); hashCode = (hashCode * 397) ^ (ExperienceProgress != null ? ExperienceProgress.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (HumanPlayerId != null ? HumanPlayerId.GetHashCode() : 0); hashCode = (hashCode * 397) ^ IsHuman.GetHashCode(); hashCode = (hashCode * 397) ^ LeaderId; hashCode = (hashCode * 397) ^ (LeaderPowerStats?.GetHashCode() ?? 0); hashCode = (hashCode * 397) ^ PlayerCompletedMatch.GetHashCode(); hashCode = (hashCode * 397) ^ PlayerMatchOutcome.GetHashCode(); hashCode = (hashCode * 397) ^ (PointStats?.GetHashCode() ?? 0); hashCode = (hashCode * 397) ^ (RatingProgress != null ? RatingProgress.GetHashCode() : 0); hashCode = (hashCode * 397) ^ TeamId; hashCode = (hashCode * 397) ^ TeamPlayerIndex; hashCode = (hashCode * 397) ^ TimeInMatch.GetHashCode(); hashCode = (hashCode * 397) ^ (UnitStats?.GetHashCode() ?? 0); hashCode = (hashCode * 397) ^ (WaveStats?.GetHashCode() ?? 0); return(hashCode); } }
public void DrawCard(int numberOfCards) { for (int i = 0; i < numberOfCards; i++) { if (drawPile.Count == 0) { ShuffleDeck(); } for (int j = 0; j < cardSlots.Count; j++) { if (cardSlots[j].childCount == 0) { CardStats drawnCard = drawPile[Random.Range(0, drawPile.Count)]; drawPile.Remove(drawnCard); hand.Add(drawnCard); GameObject newCard = Instantiate(cardPrefab, cardSlots[j], false); newCard.GetComponent <Card>().position = j; newCard.GetComponent <Card>().cardStats = drawnCard; } } } }
public void Initialize(CardStats stats) { this.stats = stats; switch (stats.suit) { case Global.Suits.Hearts: case Global.Suits.Diamonds: foreach (var suit in suits) { suit.sprite = stats.suit == Global.Suits.Hearts ? hearts : diamonds; } foreach (var number in numbers) { number.color = Color.red; } break; case Global.Suits.Clubs: case Global.Suits.Spades: foreach (var suit in suits) { suit.sprite = stats.suit == Global.Suits.Clubs ? clubs : spades; } foreach (var number in numbers) { number.color = Color.black; } break; } foreach (var number in numbers) { number.text = Global.denominations[stats.denomination]; } }
// Logs stat change into chat public void LogStatChange(CardStats stat, PlayableCard card, sbyte value) { var message = $"{card.Name}'s {stat.GetDescription()} has been changed by {value}"; WriteLog(message, CombatLogTypes.StatChange); }
public void PayChips(CardStats card) { for (int i = 0; i < card.whiteChipsValue - whiteCardNumber; i++) { if (whiteChips.Count != 0) { chipStashes.Find(c => c.stashColor == "WHI").GetBackChipFromPlayer(whiteChips[whiteChips.Count - 1]); whiteChips.RemoveAt(whiteChips.Count - 1); whiteChipNumber--; } else { chipStashes.Find(c => c.stashColor == "GOL").GetBackChipFromPlayer(goldChips[goldChips.Count - 1]); goldChips.RemoveAt(goldChips.Count - 1); goldChipNumber--; } } for (int i = 0; i < card.blueChipsValue - blueCardNumber; i++) { if (blueChips.Count != 0) { chipStashes.Find(c => c.stashColor == "BLU").GetBackChipFromPlayer(blueChips[blueChips.Count - 1]); blueChips.RemoveAt(blueChips.Count - 1); blueChipNumber--; } else { chipStashes.Find(c => c.stashColor == "GOL").GetBackChipFromPlayer(goldChips[goldChips.Count - 1]); goldChips.RemoveAt(goldChips.Count - 1); goldChipNumber--; } } for (int i = 0; i < card.greenChipsValue - greenCardNumber; i++) { if (greenChips.Count != 0) { chipStashes.Find(c => c.stashColor == "GRE").GetBackChipFromPlayer(greenChips[greenChips.Count - 1]); greenChips.RemoveAt(greenChips.Count - 1); greenChipNumber--; } else { chipStashes.Find(c => c.stashColor == "GOL").GetBackChipFromPlayer(goldChips[goldChips.Count - 1]); goldChips.RemoveAt(goldChips.Count - 1); goldChipNumber--; } } for (int i = 0; i < card.redChipsValue - redCardNumber; i++) { if (redChips.Count != 0) { chipStashes.Find(c => c.stashColor == "RED").GetBackChipFromPlayer(redChips[redChips.Count - 1]); redChips.RemoveAt(redChips.Count - 1); redChipNumber--; } else { chipStashes.Find(c => c.stashColor == "GOL").GetBackChipFromPlayer(goldChips[goldChips.Count - 1]); goldChips.RemoveAt(goldChips.Count - 1); goldChipNumber--; } } for (int i = 0; i < card.blackChipsValue - blackCardNumber; i++) { if (blackChips.Count != 0) { chipStashes.Find(c => c.stashColor == "BLA").GetBackChipFromPlayer(blackChips[blackChips.Count - 1]); blackChips.RemoveAt(blackChips.Count - 1); blackChipNumber--; } else { chipStashes.Find(c => c.stashColor == "GOL").GetBackChipFromPlayer(goldChips[goldChips.Count - 1]); goldChips.RemoveAt(goldChips.Count - 1); goldChipNumber--; } } }
private void Start() { panel = GameObject.Find("Screen Overlay Canvas/ClosePanel"); viewCard = GameObject.Find("Screen Overlay Canvas/ViewCard"); cs = GetComponent <CardStats>(); }
public void RunCardEffects(CardStats thisCardStats, List <GameObject> enemiesInRange) { cardEffect(thisCardStats.effect1, thisCardStats.magnitude, enemiesInRange); cardEffect(thisCardStats.effect2, 0, enemiesInRange); }