public void Initialize(UnityAction onSelected, UnityAction onMoveUp, UnityAction onMoveDown, UnityAction onDeleteButtonClick, UnityAction onSaveChapter, UnityAction onRefreshStory)
    {
        OnSelected = onSelected;

        LanguageManager.Instance.RegisterTextKey(Label, "StoryEditorPanel_ChapterLabel");
        SelectButton.onClick.RemoveAllListeners();
        SelectButton.onClick.AddListener(onSelected);
        MoveUpButton.onClick.RemoveAllListeners();
        MoveUpButton.onClick.AddListener(onMoveUp);
        MoveDownButton.onClick.RemoveAllListeners();
        MoveDownButton.onClick.AddListener(onMoveDown);
        DeleteButton.onClick.RemoveAllListeners();
        DeleteButton.onClick.AddListener(
            delegate
        {
            onDeleteButtonClick();
            StartCoroutine(ClientUtils.UpdateLayout((RectTransform)UIManager.Instance.GetBaseUIForm <StoryEditorPanel>().StoryPropertiesContainer));
        });

        foreach (PropertyFormRow cpfr in ChapterPropertyFormRows)
        {
            cpfr.PoolRecycle();
        }

        ChapterPropertyFormRows.Clear();

        PropertyFormRow Row_ChapterName_zh = GeneralizeRow(PropertyFormRow.CardPropertyFormRowType.InputField, "StoryEditorPanel_ChapterNameText_zh", OnChapterNameChange_zh, out SetChapterName_zh);
        PropertyFormRow Row_ChapterName_en = GeneralizeRow(PropertyFormRow.CardPropertyFormRowType.InputField, "StoryEditorPanel_ChapterNameText_en", OnChapterNameChange_en, out SetChapterName_en);

        Row_ChapterMapRoundCount = GeneralizeRow(PropertyFormRow.CardPropertyFormRowType.InputField, "StoryEditorPanel_ChapterMapRoundCountLabelText", delegate(string value_str) { OnChapterMapRoundCountChange(value_str, onSaveChapter, onRefreshStory); }, out SetChapterMapRoundCount);
        IsSelected = false;
    }
示例#2
0
    private PropertyFormRow GeneralizeRow(PropertyFormRow.CardPropertyFormRowType type, string labelKey, UnityAction <string> onValueChange, out UnityAction <string, bool> setValue, List <string> dropdownOptionList = null, UnityAction <string> onButtonClick = null)
    {
        PropertyFormRow cpfr = PropertyFormRow.BaseInitialize(type, LevelPropertiesContainer, labelKey, onValueChange, out setValue, dropdownOptionList, onButtonClick);

        MyPropertiesRows.Add(cpfr);
        return(cpfr);
    }
    void Awake()
    {
        LanguageManager.Instance.RegisterTextKey(Label, "LevelEditorPanel_BonusGroup");
        PropertyFormRow Row_BonusGroupIsAways = GeneralizeRow(CardPropertyFormRowType.Toggle, "LevelEditorPanel_BonusGroupIsAlways", OnBonusGroupIsAlwaysChange, out SetBonusGroupIsAlways);

        Row_BonusGroupProbability = GeneralizeRow(CardPropertyFormRowType.InputField, "LevelEditorPanel_BonusGroupProbability", OnBonusGroupProbabilityChange, out SetBonusGroupProbability);
        Row_BonusGroupIsSingleton = GeneralizeRow(CardPropertyFormRowType.Toggle, "LevelEditorPanel_BonusGroupIsSingleton", OnBonusGroupIsSingletonChange, out SetBonusGroupIsSingleton);
    }
示例#4
0
    public static PropertyFormRow BaseInitialize(CardPropertyFormRowType type, Transform parent, string labelStrKey, UnityAction <string> onValueChangeAction, out UnityAction <string, bool> setValue, List <string> dropdownOptionList = null, UnityAction <string> onButtonClick = null)
    {
        PropertyFormRow res = null;

        switch (type)
        {
        case CardPropertyFormRowType.InputField:
        {
            PropertyFormRow_InputField row = GameObjectPoolManager.Instance.PoolDict[GameObjectPoolManager.PrefabNames.PropertyFormRow_InputField].AllocateGameObject <PropertyFormRow_InputField>(parent);
            row.Initialize(labelStrKey, onValueChangeAction: onValueChangeAction, setValue: out setValue, onButtonClick: onButtonClick);
            res = row;
            break;
        }

        case CardPropertyFormRowType.Dropdown:
        {
            PropertyFormRow_Dropdown row = GameObjectPoolManager.Instance.PoolDict[GameObjectPoolManager.PrefabNames.PropertyFormRow_Dropdown].AllocateGameObject <PropertyFormRow_Dropdown>(parent);
            row.Initialize(labelStrKey, onValueChangeAction: onValueChangeAction, setValue: out setValue, dropdownOptionList: dropdownOptionList, onButtonClick: onButtonClick);
            res = row;
            break;
        }

        case CardPropertyFormRowType.Toggle:
        {
            PropertyFormRow_Toggle row = GameObjectPoolManager.Instance.PoolDict[GameObjectPoolManager.PrefabNames.PropertyFormRow_Toggle].AllocateGameObject <PropertyFormRow_Toggle>(parent);
            row.Initialize(labelStrKey, onValueChangeAction: onValueChangeAction, setValue: out setValue, onButtonClick: onButtonClick);
            res = row;
            break;
        }

        case CardPropertyFormRowType.TwoToggle:
        {
            PropertyFormRow_TwoToggleRow row = GameObjectPoolManager.Instance.PoolDict[GameObjectPoolManager.PrefabNames.PropertyFormRow_TwoToggleRow].AllocateGameObject <PropertyFormRow_TwoToggleRow>(parent);
            row.Initialize(labelStrKey, null, out setValue);
            res = row;
            break;
        }

        default:
        {
            setValue = null;
            break;
        }
        }

        return(res);
    }
    public void Initialize()
    {
        foreach (PropertyFormRow pfr in PropertyFormRows)
        {
            pfr.PoolRecycle();
        }

        PropertyFormRows.Clear();

        PropertyFormRow Row_DefaultCoin        = GeneralizeRow(PropertyFormRow.CardPropertyFormRowType.InputField, "StoryEditorPanel_DefaultCoinLabelText", OnDefaultCoinChange, out SetDefaultCoin);
        PropertyFormRow Row_DefaultLife        = GeneralizeRow(PropertyFormRow.CardPropertyFormRowType.InputField, "StoryEditorPanel_DefaultLifeLabelText", OnDefaultLifeChange, out SetDefaultLife);
        PropertyFormRow Row_DefaultLifeMax     = GeneralizeRow(PropertyFormRow.CardPropertyFormRowType.InputField, "StoryEditorPanel_DefaultLifeMaxLabelText", OnDefaultLifeMaxChange, out SetDefaultLifeMax);
        PropertyFormRow Row_DefaultLifeMin     = GeneralizeRow(PropertyFormRow.CardPropertyFormRowType.InputField, "StoryEditorPanel_DefaultLifeMinLabelText", OnDefaultLifeMinChange, out SetDefaultLifeMin);
        PropertyFormRow Row_DefaultEnergy      = GeneralizeRow(PropertyFormRow.CardPropertyFormRowType.InputField, "StoryEditorPanel_DefaultEnergyLabelText", OnDefaultEnergyChange, out SetDefaultEnergy);
        PropertyFormRow Row_DefaultEnergyMax   = GeneralizeRow(PropertyFormRow.CardPropertyFormRowType.InputField, "StoryEditorPanel_DefaultEnergyMaxLabelText", OnDefaultEnergyMaxChange, out SetDefaultEnergyMax);
        PropertyFormRow Row_DefaultDrawCardNum = GeneralizeRow(PropertyFormRow.CardPropertyFormRowType.InputField, "StoryEditorPanel_DefaultDrawCardNumLabelText", OnDefaultDrawCardNumChange, out SetDefaultDrawCardNum);
        PropertyFormRow Row_MinDrawCardNum     = GeneralizeRow(PropertyFormRow.CardPropertyFormRowType.InputField, "StoryEditorPanel_MinDrawCardNumLabelText", OnMinDrawCardNumChange, out SetMinDrawCardNum);
        PropertyFormRow Row_MaxDrawCardNum     = GeneralizeRow(PropertyFormRow.CardPropertyFormRowType.InputField, "StoryEditorPanel_MaxDrawCardNumLabelText", OnMaxDrawCardNumChange, out SetMaxDrawCardNum);
    }
示例#6
0
    private void InitializeCardPropertyForm()
    {
        foreach (PropertyFormRow pfr in MyPropertiesRows)
        {
            pfr.PoolRecycle();
        }

        MyPropertiesRows.Clear();
        Row_GamePlaySettings?.PoolRecycle();
        Row_Chapters?.PoolRecycle();
        MyPropertiesRows.Clear();

        PropertyFormRow Row_StoryName = GeneralizeRow(PropertyFormRow.CardPropertyFormRowType.InputField, "StoryEditorPanel_StoryNameLabelText", OnStoryNameChange, out SetStoryName);

        Row_GamePlaySettings = GameObjectPoolManager.Instance.PoolDict[GameObjectPoolManager.PrefabNames.StoryPropertyForm_GamePlaySettings].AllocateGameObject <StoryPropertyForm_GamePlaySettings>(StoryPropertiesContainer);
        Row_GamePlaySettings.Initialize();
        Row_CardSelection = GameObjectPoolManager.Instance.PoolDict[GameObjectPoolManager.PrefabNames.LevelPropertyForm_CardSelection].AllocateGameObject <LevelPropertyForm_CardSelection>(StoryPropertiesContainer);
        MyPropertiesRows.Add(Row_CardSelection);
        Row_Chapters = GameObjectPoolManager.Instance.PoolDict[GameObjectPoolManager.PrefabNames.StoryPropertyForm_Chapters].AllocateGameObject <StoryPropertyForm_Chapters>(StoryPropertiesContainer);
    }
示例#7
0
    private void InitializeCardPropertyForm()
    {
        Clear();

        IEnumerable <LevelTypes> types_level   = Enum.GetValues(typeof(LevelTypes)) as IEnumerable <LevelTypes>;
        List <string>            levelTypeList = new List <string>();

        foreach (LevelTypes levelType in types_level)
        {
            levelTypeList.Add(levelType.ToString());
            LevelTypePropertiesDict.Add(levelType, new List <PropertyFormRow>());
        }

        IEnumerable <EnemyType> types_enemy   = Enum.GetValues(typeof(EnemyType)) as IEnumerable <EnemyType>;
        List <string>           enemyTypeList = new List <string>();

        foreach (EnemyType enemyType in types_enemy)
        {
            enemyTypeList.Add(enemyType.ToString());
            EnemyTypePropertiesDict.Add(enemyType, new List <PropertyFormRow>());
        }

        PropertyFormRow Row_LevelType = GeneralizeRow(PropertyFormRow.CardPropertyFormRowType.Dropdown, "LevelEditorPanel_LevelType", OnLevelTypeChange, out SetLevelType, levelTypeList);

        Row_LevelType.SetReadOnly(true);
        PropertyFormRow Row_LevelPicID = GeneralizeRow(PropertyFormRow.CardPropertyFormRowType.InputField, "LevelEditorPanel_LevelPicIDLabelText", OnLevelPicIDChange, out SetLevelPicID);

        Row_LevelPicID.SetReadOnly(true);
        PropertyFormRow Row_LevelName_zh         = GeneralizeRow(PropertyFormRow.CardPropertyFormRowType.InputField, "LevelEditorPanel_LevelNameLabelText_zh", OnLevelNameChange_zh, out SetLevelName_zh);
        PropertyFormRow Row_LevelName_en         = GeneralizeRow(PropertyFormRow.CardPropertyFormRowType.InputField, "LevelEditorPanel_LevelNameLabelText_en", OnLevelNameChange_en, out SetLevelName_en);
        PropertyFormRow Row_LevelDifficultyLevel = GeneralizeRow(PropertyFormRow.CardPropertyFormRowType.InputField, "LevelEditorPanel_LevelDifficultyLevel", OnLevelDifficultyLevelChange, out SetLevelDifficultyLevel);

        PropertyFormRow Row_EnemyType        = GeneralizeRow(PropertyFormRow.CardPropertyFormRowType.Dropdown, "LevelEditorPanel_EnemyType", OnEnemyTypeChange, out SetEnemyType, enemyTypeList);
        PropertyFormRow Row_EnemyDrawCardNum = GeneralizeRow(PropertyFormRow.CardPropertyFormRowType.InputField, "LevelEditorPanel_EnemyDrawCardNum", OnEnemyDrawCardNumChange, out SetEnemyDrawCardNum);
        PropertyFormRow Row_EnemyLife        = GeneralizeRow(PropertyFormRow.CardPropertyFormRowType.InputField, "LevelEditorPanel_EnemyLife", OnEnemyLifeChange, out SetEnemyLife);
        PropertyFormRow Row_EnemyEnergy      = GeneralizeRow(PropertyFormRow.CardPropertyFormRowType.InputField, "LevelEditorPanel_EnemyEnergy", OnEnemyEnergyChange, out SetEnemyEnergy);
        PropertyFormRow Row_EnemyBeginMetal  = GeneralizeRow(PropertyFormRow.CardPropertyFormRowType.InputField, "LevelEditorPanel_EnemyBeginMetal", OnEnemyBeginMetalChange, out SetEnemyBeginMetal);

        PropertyFormRow Row_ShopItemCardCount   = GeneralizeRow(PropertyFormRow.CardPropertyFormRowType.InputField, "LevelEditorPanel_ShopItemCardCount", OnShopItemCardCountChange, out SetShopItemCardCount);
        PropertyFormRow Row_ShopItemOthersCount = GeneralizeRow(PropertyFormRow.CardPropertyFormRowType.InputField, "LevelEditorPanel_ShopItemOthersCount", OnShopItemOthersCount, out SetShopItemOthersCount);

        Row_CardSelection = GameObjectPoolManager.Instance.PoolDict[GameObjectPoolManager.PrefabNames.LevelPropertyForm_CardSelection].AllocateGameObject <LevelPropertyForm_CardSelection>(LevelPropertiesContainer);
        MyPropertiesRows.Add(Row_CardSelection);
        Row_ShopItems = GameObjectPoolManager.Instance.PoolDict[GameObjectPoolManager.PrefabNames.LevelPropertyForm_ShopItems].AllocateGameObject <LevelPropertyForm_ShopItems>(LevelPropertiesContainer);
        MyPropertiesRows.Add(Row_ShopItems);
        Row_BonusGroups = GameObjectPoolManager.Instance.PoolDict[GameObjectPoolManager.PrefabNames.LevelPropertyForm_BonusGroups].AllocateGameObject <LevelPropertyForm_BonusGroups>(LevelPropertiesContainer);
        MyPropertiesRows.Add(Row_BonusGroups);

        LevelPropertiesCommon = new List <PropertyFormRow>
        {
            Row_LevelType,
            Row_LevelPicID,
            Row_LevelName_zh,
            Row_LevelName_en,
            Row_LevelDifficultyLevel,
        };

        LevelTypePropertiesDict[LevelTypes.Enemy] = new List <PropertyFormRow>
        {
            Row_EnemyType,
            Row_EnemyDrawCardNum,
            Row_EnemyLife,
            Row_EnemyEnergy,
            Row_EnemyBeginMetal,
            Row_CardSelection,
            Row_BonusGroups
        };

        LevelTypePropertiesDict[LevelTypes.Shop] = new List <PropertyFormRow>
        {
            Row_ShopItems,
            Row_ShopItemCardCount,
            Row_ShopItemOthersCount,
        };

        SetLevel(null);
    }
示例#8
0
    public void Initialize(SideEffectExecute see, UnityAction onRefreshText, bool isReadOnly, bool isExecuteSettingTypeChanged)
    {
        Initializing = true;
        foreach (PropertyFormRow cpfr in CardPropertyFormRows)
        {
            cpfr.PoolRecycle();
        }

        CardPropertyFormRows.Clear();

        bool isScriptExecuteSetting = see.M_ExecuteSetting is ScriptExecuteSettingBase;

        PFR_ScriptExecuteSettingType.gameObject.SetActive(isScriptExecuteSetting);
        ScriptExecuteSettingBase sesb = null;

        if (isScriptExecuteSetting)
        {
            sesb = (ScriptExecuteSettingBase)see.M_ExecuteSetting;
            ScriptExecuteSettingTypeDropdown.options.Clear();
            foreach (string option in AllScriptExecuteSettings.ScriptExecuteSettingsNameDict.Keys.ToList())
            {
                ScriptExecuteSettingTypeDropdown.options.Add(new Dropdown.OptionData(option));
            }

            ScriptExecuteSettingTypeDropdown.onValueChanged.RemoveAllListeners();
            SetScriptExecuteSettingType(sesb.Name);
            ScriptExecuteSettingTypeDropdown.onValueChanged.AddListener(delegate(int index)
            {
                string scriptExecuteSettingName  = ScriptExecuteSettingTypeDropdown.options[index].text;
                ScriptExecuteSettingBase newSESB = AllScriptExecuteSettings.GetScriptExecuteSetting(scriptExecuteSettingName);
                if (see != null)
                {
                    see.M_ExecuteSetting = newSESB;
                }

                Initialize(see, onRefreshText, isReadOnly, false);
                onRefreshText();
                StartCoroutine(ClientUtils.UpdateLayout((RectTransform)ExecuteRowContainer));
                StartCoroutine(ClientUtils.UpdateLayout((RectTransform)UIManager.Instance.GetBaseUIForm <CardEditorPanel>().CardPropertiesContainer));
            });

            CardEditorPanel_Params.GenerateParamRows(null, sesb.M_SideEffectParam, onRefreshText, delegate { Initialize(see, onRefreshText, isReadOnly, false); }, ExecuteRowContainer, CardPropertyFormRows, null, delegate
            {
                StartCoroutine(ClientUtils.UpdateLayout((RectTransform)ExecuteRowContainer));
                StartCoroutine(ClientUtils.UpdateLayout((RectTransform)UIManager.Instance.GetBaseUIForm <CardEditorPanel>().CardPropertiesContainer));
            });
        }

        PropertyFormRow            cpfr_TriggerRange     = null;
        UnityAction <string, bool> _setValueTriggerRange = null;
        PropertyFormRow            cpfr_TriggerTime      = PropertyFormRow.BaseInitialize(PropertyFormRow.CardPropertyFormRowType.Dropdown, ExecuteRowContainer, "CardEditorPanel_TriggerTime",
                                                                                          delegate(string value_str)
        {
            SideEffectExecute.TriggerTime value = (SideEffectExecute.TriggerTime)Enum.Parse(typeof(SideEffectExecute.TriggerTime), value_str);
            see.M_ExecuteSetting.TriggerTime    = value;
            List <string> trList = SideEffectExecute.GetTriggerRangeListByTriggerTime(see.M_ExecuteSetting.TriggerTime);
            ((PropertyFormRow_Dropdown)cpfr_TriggerRange).RefreshDropdownOptionList(trList);
            if (!Initializing && (see.ExecuteSettingType == SideEffectExecute.ExecuteSettingTypes.Scripts || see.ExecuteSettingType == SideEffectExecute.ExecuteSettingTypes.Others))
            {
                _setValueTriggerRange(trList[0], true);
            }
            onRefreshText?.Invoke();
        },
                                                                                          out UnityAction <string, bool> _setValueTriggerTime, sesb != null ? ScriptExecuteSettingBase.HashSetTriggerTimeToListString(sesb.ValidTriggerTimes) : triggerTimeTypeList);

        CardPropertyFormRows.Add(cpfr_TriggerTime);
        cpfr_TriggerTime.SetReadOnly(isReadOnly);

        cpfr_TriggerRange = PropertyFormRow.BaseInitialize(PropertyFormRow.CardPropertyFormRowType.Dropdown, ExecuteRowContainer, "CardEditorPanel_TriggerRange",
                                                           delegate(string value_str)
        {
            SideEffectExecute.TriggerRange value = (SideEffectExecute.TriggerRange)Enum.Parse(typeof(SideEffectExecute.TriggerRange), value_str);
            see.M_ExecuteSetting.TriggerRange    = value;
            onRefreshText?.Invoke();
        },
                                                           out _setValueTriggerRange, SideEffectExecute.GetTriggerRangeListByTriggerTime(see.M_ExecuteSetting.TriggerTime));
        CardPropertyFormRows.Add(cpfr_TriggerRange);
        cpfr_TriggerRange.SetReadOnly(isReadOnly);
        ((PropertyFormRow_Dropdown)cpfr_TriggerRange).RefreshDropdownOptionList(SideEffectExecute.GetTriggerRangeListByTriggerTime(see.M_ExecuteSetting.TriggerTime));

        PropertyFormRow cpfr_TriggerTimes = PropertyFormRow.BaseInitialize(PropertyFormRow.CardPropertyFormRowType.InputField, ExecuteRowContainer, "CardEditorPanel_TriggerTimes",
                                                                           delegate(string value_str)
        {
            if (int.TryParse(value_str, out int value))
            {
                see.M_ExecuteSetting.TriggerTimes = value;
                onRefreshText?.Invoke();
            }
        },
                                                                           out UnityAction <string, bool> _setValueTriggerTimes);

        CardPropertyFormRows.Add(cpfr_TriggerTimes);
        cpfr_TriggerTimes.SetReadOnly(sesb != null ? sesb.LockedTriggerTimes != ScriptExecuteSettingBase.UNLOCKED_EXECUTESETTING_TIMES : isReadOnly);

        PropertyFormRow cpfr_TriggerDelayTimes = PropertyFormRow.BaseInitialize(PropertyFormRow.CardPropertyFormRowType.InputField, ExecuteRowContainer, "CardEditorPanel_TriggerDelayTimes",
                                                                                delegate(string value_str)
        {
            if (int.TryParse(value_str, out int value))
            {
                see.M_ExecuteSetting.TriggerDelayTimes = value;
                onRefreshText?.Invoke();
            }
        },
                                                                                out UnityAction <string, bool> _setValueTriggerDelayTimes);

        CardPropertyFormRows.Add(cpfr_TriggerDelayTimes);
        cpfr_TriggerDelayTimes.SetReadOnly(sesb != null ? sesb.LockedTriggerDelayTimes != ScriptExecuteSettingBase.UNLOCKED_EXECUTESETTING_TIMES : isReadOnly);

        PropertyFormRow            cpfr_RemoveTriggerRange     = null;
        UnityAction <string, bool> _setValueRemoveTriggerRange = null;
        PropertyFormRow            cpfr_RemoveTriggerTime      = PropertyFormRow.BaseInitialize(PropertyFormRow.CardPropertyFormRowType.Dropdown, ExecuteRowContainer, "CardEditorPanel_RemoveTriggerTime",
                                                                                                delegate(string value_str)
        {
            SideEffectExecute.TriggerTime value    = (SideEffectExecute.TriggerTime)Enum.Parse(typeof(SideEffectExecute.TriggerTime), value_str);
            see.M_ExecuteSetting.RemoveTriggerTime = value;
            List <string> trList = SideEffectExecute.GetTriggerRangeListByTriggerTime(see.M_ExecuteSetting.RemoveTriggerTime);
            ((PropertyFormRow_Dropdown)cpfr_RemoveTriggerRange).RefreshDropdownOptionList(trList);
            if (!Initializing && (see.ExecuteSettingType == SideEffectExecute.ExecuteSettingTypes.Scripts || see.ExecuteSettingType == SideEffectExecute.ExecuteSettingTypes.Others))
            {
                _setValueRemoveTriggerRange(trList[0], true);
            }
            onRefreshText?.Invoke();
        },
                                                                                                out UnityAction <string, bool> _setValueRemoveTriggerTime, sesb != null ? ScriptExecuteSettingBase.HashSetTriggerTimeToListString(sesb.ValidRemoveTriggerTimes) : triggerTimeTypeList);

        CardPropertyFormRows.Add(cpfr_RemoveTriggerTime);
        cpfr_RemoveTriggerTime.SetReadOnly(isReadOnly);

        cpfr_RemoveTriggerRange = PropertyFormRow.BaseInitialize(PropertyFormRow.CardPropertyFormRowType.Dropdown, ExecuteRowContainer, "CardEditorPanel_RemoveTriggerRange",
                                                                 delegate(string value_str)
        {
            SideEffectExecute.TriggerRange value    = (SideEffectExecute.TriggerRange)Enum.Parse(typeof(SideEffectExecute.TriggerRange), value_str);
            see.M_ExecuteSetting.RemoveTriggerRange = value;
            onRefreshText?.Invoke();
        },
                                                                 out _setValueRemoveTriggerRange, SideEffectExecute.GetTriggerRangeListByTriggerTime(see.M_ExecuteSetting.RemoveTriggerTime));
        CardPropertyFormRows.Add(cpfr_RemoveTriggerRange);
        cpfr_RemoveTriggerRange.SetReadOnly(isReadOnly);
        ((PropertyFormRow_Dropdown)cpfr_RemoveTriggerRange).RefreshDropdownOptionList(SideEffectExecute.GetTriggerRangeListByTriggerTime(see.M_ExecuteSetting.RemoveTriggerTime));

        PropertyFormRow cpfr_RemoveTriggerTimes = PropertyFormRow.BaseInitialize(PropertyFormRow.CardPropertyFormRowType.InputField, ExecuteRowContainer, "CardEditorPanel_RemoveTriggerTimes",
                                                                                 delegate(string value_str)
        {
            if (int.TryParse(value_str, out int value))
            {
                see.M_ExecuteSetting.RemoveTriggerTimes = value;
                onRefreshText?.Invoke();
            }
        },
                                                                                 out UnityAction <string, bool> _setValueRemoveTriggerTimes);

        CardPropertyFormRows.Add(cpfr_RemoveTriggerTimes);
        cpfr_RemoveTriggerTimes.SetReadOnly(sesb != null ? sesb.LockedRemoveTriggerTimes != ScriptExecuteSettingBase.UNLOCKED_EXECUTESETTING_TIMES : isReadOnly);

        PropertyFormRow cpfr_RemoveTriggerDelayTimes = PropertyFormRow.BaseInitialize(PropertyFormRow.CardPropertyFormRowType.InputField, ExecuteRowContainer, "CardEditorPanel_RemoveTriggerDelayTimes",
                                                                                      delegate(string value_str)
        {
            if (int.TryParse(value_str, out int value))
            {
                see.M_ExecuteSetting.RemoveTriggerDelayTimes = value;
                onRefreshText?.Invoke();
            }
        },
                                                                                      out UnityAction <string, bool> _setValueRemoveTriggerDelayTimes);

        CardPropertyFormRows.Add(cpfr_RemoveTriggerDelayTimes);
        cpfr_RemoveTriggerDelayTimes.SetReadOnly(sesb != null ? sesb.LockedRemoveTriggerDelayTimes != ScriptExecuteSettingBase.UNLOCKED_EXECUTESETTING_TIMES : isReadOnly);

        _setValueTriggerTime(sesb != null ? (sesb.ValidTriggerTimes.Count != 0 ? sesb.ValidTriggerTimes.ToList()[0].ToString() : SideEffectExecute.TriggerTime.None.ToString()) : see.M_ExecuteSetting.TriggerTime.ToString(), isExecuteSettingTypeChanged);
        _setValueTriggerRange(see.M_ExecuteSetting.TriggerRange.ToString(), isExecuteSettingTypeChanged);
        _setValueTriggerTimes(sesb != null ? (sesb.LockedTriggerTimes != ScriptExecuteSettingBase.UNLOCKED_EXECUTESETTING_TIMES ? sesb.LockedTriggerTimes.ToString() : see.M_ExecuteSetting.TriggerTimes.ToString()) : see.M_ExecuteSetting.TriggerTimes.ToString(), isExecuteSettingTypeChanged);
        _setValueTriggerDelayTimes(sesb != null ? (sesb.LockedTriggerDelayTimes != ScriptExecuteSettingBase.UNLOCKED_EXECUTESETTING_TIMES ? sesb.LockedTriggerDelayTimes.ToString() : see.M_ExecuteSetting.TriggerDelayTimes.ToString()) : see.M_ExecuteSetting.TriggerDelayTimes.ToString(), isExecuteSettingTypeChanged);
        _setValueRemoveTriggerTime(sesb != null ? (sesb.ValidRemoveTriggerTimes.Count != 0 ? sesb.ValidRemoveTriggerTimes.ToList()[0].ToString() : SideEffectExecute.TriggerTime.None.ToString()) : see.M_ExecuteSetting.RemoveTriggerTime.ToString(), isExecuteSettingTypeChanged);
        _setValueRemoveTriggerRange(see.M_ExecuteSetting.RemoveTriggerRange.ToString(), isExecuteSettingTypeChanged);
        _setValueRemoveTriggerTimes(sesb != null ? (sesb.LockedRemoveTriggerTimes != ScriptExecuteSettingBase.UNLOCKED_EXECUTESETTING_TIMES ? sesb.LockedRemoveTriggerTimes.ToString() : see.M_ExecuteSetting.RemoveTriggerTimes.ToString()) : see.M_ExecuteSetting.RemoveTriggerTimes.ToString(), isExecuteSettingTypeChanged);
        _setValueRemoveTriggerDelayTimes(sesb != null ? (sesb.LockedRemoveTriggerDelayTimes != ScriptExecuteSettingBase.UNLOCKED_EXECUTESETTING_TIMES ? sesb.LockedRemoveTriggerDelayTimes.ToString() : see.M_ExecuteSetting.RemoveTriggerDelayTimes.ToString()) : see.M_ExecuteSetting.RemoveTriggerDelayTimes.ToString(), isExecuteSettingTypeChanged);

        Initializing = false;
    }
示例#9
0
    public static void GenerateParamRows(SideEffectBase se, SideEffectParam sep, UnityAction onRefreshText, UnityAction reInitialize, Transform parentContainer, List <PropertyFormRow> pfr_List, List <CardPropertyForm_SideEffectExecute> pfr_List_SEE, UnityAction refreshContainer)
    {
        foreach (SideEffectValue sev in sep.SideEffectValues)
        {
            string sev_Prefix = "SideEffectValueNames_";
            switch (sev.ValueType)
            {
            case SideEffectValue.ValueTypes.ConstInt:
            {
                SideEffectValue_ConstInt s = (SideEffectValue_ConstInt)sev;
                if (s.EnumType == null)
                {
                    bool showInputField = true;
                    if (s.Name == "ChoiceCount")
                    {
                        if (se is TargetSideEffect t_se)
                        {
                            if (t_se.TargetSelect != TargetSelect.Multiple && t_se.TargetSelect != TargetSelect.MultipleRandom)
                            {
                                showInputField = false;
                            }
                        }
                    }

                    if (showInputField)
                    {
                        PropertyFormRow row = PropertyFormRow.BaseInitialize(
                            type : PropertyFormRow.CardPropertyFormRowType.InputField,
                            parent : parentContainer,
                            labelStrKey : sev_Prefix + sev.Name,
                            onValueChangeAction : delegate(string value_str)
                            {
                                if (int.TryParse(value_str, out int res))
                                {
                                    s.Value = res;
                                }
                                onRefreshText?.Invoke();
                            },
                            setValue: out UnityAction <string, bool> setValue);
                        setValue(s.Value.ToString(), false);
                        pfr_List.Add(row);
                    }
                }
                else
                {
                    if (s.EnumType == typeof(CardDeck))
                    {
                        PropertyFormRow row = PropertyFormRow.BaseInitialize(
                            type : PropertyFormRow.CardPropertyFormRowType.InputField,
                            parent : parentContainer,
                            labelStrKey : sev_Prefix + sev.Name,
                            onValueChangeAction : delegate(string value_str)
                            {
                                if (int.TryParse(value_str, out int res))
                                {
                                    bool hasCard = AllCards.CardDict.ContainsKey(res);
                                    if (hasCard)
                                    {
                                        s.Value = res;
                                        onRefreshText?.Invoke();
                                    }
                                }
                            },
                            setValue: out UnityAction <string, bool> setValue,
                            dropdownOptionList: null,
                            onButtonClick: delegate { UIManager.Instance.GetBaseUIForm <CardEditorPanel>().ChangeCard(s.Value); }
                            );
                        setValue(s.Value.ToString(), false);
                        pfr_List.Add(row);
                    }
                    else
                    {
                        List <string> enumList = new List <string>();
                        if (se is TargetSideEffect t_se1 && s.EnumType == typeof(TargetSelect))
                        {
                            foreach (TargetSelect targetRange in t_se1.ValidTargetSelects)
                            {
                                enumList.Add(targetRange.ToString());
                            }

                            PropertyFormRow row = PropertyFormRow.BaseInitialize(
                                type : PropertyFormRow.CardPropertyFormRowType.Dropdown,
                                parent : parentContainer,
                                labelStrKey : sev_Prefix + sev.Name,
                                onValueChangeAction : delegate(string value_str)
                                {
                                    s.Value = (int)Enum.Parse(s.EnumType, value_str);
                                    PropertyFormRow targetRangeRow = null;
                                    foreach (PropertyFormRow cardPropertyFormRow in pfr_List)
                                    {
                                        if (cardPropertyFormRow.LabelStrKey.Equals(sev_Prefix + "TargetRange"))
                                        {
                                            targetRangeRow = cardPropertyFormRow;
                                            break;
                                        }
                                    }

                                    if (targetRangeRow)
                                    {
                                        int siblingIndex = targetRangeRow.transform.GetSiblingIndex();
                                        targetRangeRow.PoolRecycle();
                                        pfr_List.Remove(targetRangeRow);

                                        Dictionary <TargetSelect, List <TargetRange> > dict = TargetSelector.TargetSelectorPresets[t_se1.TargetSelectorType];
                                        List <string> enumList_TargetRange = new List <string>();
                                        List <TargetRange> nlist           = dict[t_se1.TargetSelect];
                                        foreach (TargetRange targetRange in nlist)
                                        {
                                            enumList_TargetRange.Add(targetRange.ToString());
                                        }

                                        SideEffectValue_ConstInt targetRangeSEV = (SideEffectValue_ConstInt)se.M_SideEffectParam.GetParam("TargetRange");
                                        if (targetRangeSEV != null)
                                        {
                                            PropertyFormRow new_TargetRangeRow = PropertyFormRow.BaseInitialize(
                                                PropertyFormRow.CardPropertyFormRowType.Dropdown,
                                                parentContainer,
                                                sev_Prefix + targetRangeSEV.Name,
                                                delegate(string v_str)
                                            {
                                                targetRangeSEV.Value = (int)Enum.Parse(targetRangeSEV.EnumType, v_str);
                                                onRefreshText?.Invoke();
                                            },
                                                out UnityAction <string, bool> _setValue,
                                                enumList_TargetRange);
                                            targetRangeSEV.SetValue(enumList_TargetRange[0]);
                                            _setValue(Enum.GetName(targetRangeSEV.EnumType, targetRangeSEV.Value), false);
                                            onRefreshText?.Invoke();
                                            pfr_List.Add(new_TargetRangeRow);
                                            new_TargetRangeRow.transform.SetSiblingIndex(siblingIndex);
                                        }
                                    }

                                    if (s.Value == (int)TargetSelect.Multiple || s.Value == (int)TargetSelect.MultipleRandom)
                                    {
                                        PropertyFormRow choiceCountRow = null;
                                        foreach (PropertyFormRow cardPropertyFormRow in pfr_List)
                                        {
                                            if (cardPropertyFormRow.LabelStrKey.Equals(sev_Prefix + "ChoiceCount"))
                                            {
                                                choiceCountRow = cardPropertyFormRow;
                                                break;
                                            }
                                        }

                                        if (!choiceCountRow)
                                        {
                                            SideEffectValue_ConstInt choiceCountSEV = (SideEffectValue_ConstInt)se.M_SideEffectParam.GetParam("ChoiceCount");
                                            if (choiceCountSEV != null)
                                            {
                                                PropertyFormRow new_ChoiceCountRow = PropertyFormRow.BaseInitialize(
                                                    PropertyFormRow.CardPropertyFormRowType.InputField,
                                                    parentContainer,
                                                    sev_Prefix + choiceCountSEV.Name,
                                                    delegate(string v_str)
                                                {
                                                    if (int.TryParse(v_str, out int res))
                                                    {
                                                        choiceCountSEV.Value = res;
                                                    }
                                                    onRefreshText?.Invoke();
                                                },
                                                    out UnityAction <string, bool> _setValue);
                                                _setValue(choiceCountSEV.Value.ToString(), false);
                                                onRefreshText?.Invoke();
                                                pfr_List.Add(new_ChoiceCountRow);
                                                refreshContainer();
                                            }
                                        }
                                    }
                                    else
                                    {
                                        PropertyFormRow choiceCountRow = null;
                                        foreach (PropertyFormRow cardPropertyFormRow in pfr_List)
                                        {
                                            if (cardPropertyFormRow.LabelStrKey.Equals(sev_Prefix + "ChoiceCount"))
                                            {
                                                choiceCountRow = cardPropertyFormRow;
                                                break;
                                            }
                                        }

                                        if (choiceCountRow)
                                        {
                                            choiceCountRow.PoolRecycle();
                                            pfr_List.Remove(choiceCountRow);
                                            refreshContainer();
                                        }
                                    }

                                    onRefreshText?.Invoke();
                                },
                                setValue: out UnityAction <string, bool> setValue,
                                dropdownOptionList: enumList);
                            setValue(Enum.GetName(s.EnumType, s.Value), false);
                            onRefreshText?.Invoke();
                            pfr_List.Add(row);
                        }