// Set up item cards + etc #region public void SetUpItemCardFromData(ItemCard itemCard, ItemDataSO data, int sortingOrder) { Debug.Log("ItemManager.RunSetupFromItemData() called for: " + data.Name); // Set scale itemCard.originalScale = itemCard.GetComponent <RectTransform>().localScale.x; // Store data itemCard.myItemDataSO = data; // Set canvas sorting order itemCard.mainCanvas.sortingOrder = sortingOrder; // Set properties itemCard.myName = data.Name; itemCard.myNameText.text = data.Name; itemCard.itemImage.sprite = data.sprite; itemCard.myDescriptionText.text = data.itemDescription; itemCard.myItemTypeText.text = ConvertItemTypeEnumToString(data.itemType); // Weapon specific set up if (IsItemWeapon(data)) { // Turn on damage type icon itemCard.weaponDamageTypeParent.SetActive(true); // Get and set correct damage type sprite itemCard.itemDamageTypeImage.sprite = GetWeaponDamageTypeImage(data); // Set base damage text itemCard.myBaseDamageText.text = data.baseDamage.ToString(); } // Set up ribbon + frame rarity sprites if (data.itemRarity == ItemDataSO.ItemRarity.Common) { itemCard.commonParent.SetActive(true); } else if (data.itemRarity == ItemDataSO.ItemRarity.Rare) { itemCard.rareParent.SetActive(true); } else if (data.itemRarity == ItemDataSO.ItemRarity.Epic) { itemCard.epicParent.SetActive(true); } }
// check if the current item card will influence the current character score and apply this influence // item card has a id of character to influence, if the id is greater than the number of players, it will affect all characters private float ItemCardInfluenceCharacterScore(int charId, float currentScore) { if (currentItemCard.InfluenceCharacter && (currentItemCard.CharacterToInfluence == charId || currentItemCard.CharacterToInfluence >= nbCharacters)) { // *0.01 because influence is between 0-100 on the json float itemCharacterHandicap = 0.01f * currentItemCard.InfluenceCharacterBy; currentItemCard.GetComponent <ItemCard>()._message = (Texts.Items[currentItemCard.ItemId] + " " + Texts.Characters[charId] + " " + Texts.Has + " " + (itemCharacterHandicap < 0 ? (Texts.Bonus + " ") : (Texts.Handicap + " ")) + (int)(100f * -itemCharacterHandicap) + Texts.HandicapResult); /*Debug.Log("a item has been activated ! character " + charId + " has a " + * (itemCharacterHandicap < 0 ? ("bonus of " + -itemCharacterHandicap) : ("handicap of " + itemCharacterHandicap)) + * " on his roll");*/ return(Math.Min(Math.Max(currentScore + itemCharacterHandicap, 0), 1)); } return(currentScore); }