Пример #1
0
    // 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);
        }
    }
Пример #2
0
    // 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);
    }