コード例 #1
0
    bool DoesCardMatchSearch(Card card, string searchString)
    {
        ICardModel model = card.GetModel();

        if (!model.IsValid())
        {
            return(false);
        }

        if (searchString.IsNullOrEmpty())
        {
            return(true);
        }
        string stringForSearch = model.GetTitle().ToLower() + " " + model.GetDescription().ToLower();

        return(stringForSearch.Contains(searchString.ToLower()));
    }
コード例 #2
0
    public virtual void Populate(ICardModel card, bool withDetail = false)
    {
        if (card == null || !card.IsValid())
        {
            return;
        }

        // Debug
        this.name = $"Card '{card.GetTitle()}'";

        this.card                    = card;
        this.assignment              = null;
        cardUI.nameField.text        = card.GetTitle();
        cardUI.descriptionField.text = card.GetDescription();
        if (withDetail)
        {
            props.SetupPreview(card.GetUnassignedBehaviorItem());
        }
        customFlag.SetActive(!card.IsBuiltin());
        ReloadCardImage();
    }
コード例 #3
0
    public override void Populate(ICardModel card, bool withDetail = true)
    {
        if (card == null || !card.IsValid())
        {
            return;
        }
        base.Populate(card, withDetail);
        nameInput.text        = card.GetTitle();
        descriptionInput.text = card.GetDescription();

        categoryDropdown.ClearOptions();
        categoryOptions = new List <TMPro.TMP_Dropdown.OptionData>();
        bool needsCustomCategory = true;

        foreach (string category in behaviorSystem.GetCategories())
        {
            if (category == BehaviorCards.CUSTOM_CATEGORY)
            {
                needsCustomCategory = false;
            }
            categoryOptions.Add(new TMPro.TMP_Dropdown.OptionData(category));
        }
        if (needsCustomCategory)
        {
            categoryOptions.Add(new TMPro.TMP_Dropdown.OptionData(BehaviorCards.CUSTOM_CATEGORY));
        }
        categoryDropdown.AddOptions(categoryOptions);

        // Hack: for now, assume that custom cards only have one category
        string cardCategory = new List <string>(card.GetCategories())[0];

        categoryDropdown.value = categoryOptions.FindIndex((option) => option.text == cardCategory);

        bool canEdit = !card.GetUnassignedBehaviorItem().IsBehaviorReadOnly();

        nameInput.interactable        = canEdit;
        descriptionInput.interactable = canEdit;
        categoryDropdown.interactable = canEdit;
        editIconButton.gameObject.SetActive(canEdit);
    }
コード例 #4
0
 private void FetchCardStatus()
 {
     lastCardStatus = new RuntimeCardStatus();
     if (IsAssignmentValid())
     {
         Util.Maybe <RuntimeCardStatus> maybeStatus = this.assignment.GetAssignedBehavior().
                                                      CallScriptFunction <int, RuntimeCardStatus>("getCardStatus", 0);
         if (!maybeStatus.IsEmpty())
         {
             lastCardStatus = maybeStatus.Get();
         }
     }
     else
     {
         lastCardStatus = new RuntimeCardStatus();
     }
     // Fill in with defaults for nulls or empty strings:
     lastCardStatus.title       = string.IsNullOrEmpty(lastCardStatus.title) ? card.GetTitle() : lastCardStatus.title;
     lastCardStatus.description = string.IsNullOrEmpty(lastCardStatus.description) ? card.GetDescription() : lastCardStatus.description;
     lastCardStatus.debugText   = string.IsNullOrEmpty(lastCardStatus.debugText) ? "(No debug text)" : lastCardStatus.debugText;
     // For the error message, if there is a legacy getCardErrorMessage function in the card, use it:
     if (string.IsNullOrEmpty(lastCardStatus.errorMessage))
     {
         lastCardStatus.errorMessage = GetCardErrorMessage_LEGACY() ?? "";
     }
 }