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; }
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); }
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); }
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); }
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); }
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; }
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); }