コード例 #1
0
        /// <summary>
        /// 给其追加按钮
        /// </summary>
        /// <param name="choices"></param>
        public static void AddChoices(AdditionalChoices choices)
        {
            int id = 0;

            if (int.TryParse(choices.ID, out id))
            {
                if (!RuntimeConfig.AdditionalChoices.ContainsKey(id))
                {
                    RuntimeConfig.AdditionalChoices.Add(id, new List <AdditionalChoices>());
                }
                RuntimeConfig.AdditionalChoices[id].Add(choices);
            }
            else
            {
                var Event = GetEvent(choices.ID);
                var index = choices.Index;
                if (index < 0)
                {
                    index += Event.Choices.Count + 1;
                }
                if (index < 0)
                {
                    index = 0;
                }
                if (index > Event.Choices.Count)
                {
                    index = Event.Choices.Count;
                }
                Event.Choices.InsertRange(index, choices.Choices);
            }
        }
コード例 #2
0
        /// <summary>
        /// 动态生成的按钮,很耗资源的,别学
        /// </summary>
        /// <param name="EventID"></param>
        /// <returns></returns>
        public static AdditionalChoices GiveResourceChoice(string EventID)
        {
            var result = new AdditionalChoices()
            {
                Index = 1
            };
            var needTime = new ChoiceRequirement.Requirement()
            {
                Type   = ChoiceRequirement.Requirement.RequirementTarget.Time,
                ValueA = 2
            };

            for (var i = 401; i <= 405; i++)
            {
                result.Choices.Add(new EventChoice()
                {
                    Desc = $"(捐赠{RuntimeConfig.ResourceName[i]}……)",
                    CanChooseRequirement = new ChoiceRequirement()
                    {
                        Requirements = new List <ChoiceRequirement.Requirement>()
                        {
                            needTime,
                            new ChoiceRequirement.Requirement()
                            {
                                Type   = ChoiceRequirement.Requirement.RequirementTarget.TaiwuResource,
                                ValueA = i,
                                ValueB = 500
                            }
                        }
                    },
                    Effect = new ChoiceEnd()
                    {
                        ToID    = "WulinGeneral.5",
                        CallEnd = new CallInfo()
                        {
                            TargetType   = typeof(Part_1),
                            TargetMethod = "SetResourceChoice",
                            Params       = new List <CallInfo.ParamInfo>()
                            {
                                new CallInfo.ParamInfo()
                                {
                                    Type  = CallInfo.ParamInfo.ParamType.Int,
                                    Value = i.ToString()
                                }
                            }
                        }
                    }
                });
            }
            return(result);
        }
コード例 #3
0
        /// <summary>
        /// 毫无疑问,动态选项
        /// </summary>
        /// <param name="ID"></param>
        /// <param name="TargetID"></param>
        /// <returns></returns>
        public static AdditionalChoices InteractionDynamicChoices(string ID, int TargetID)
        {
            var result = new AdditionalChoices()
            {
                Index = -2,
            };

            int num6 = int.Parse(DateFile.instance.GetActorDate(TargetID, 19, applyBonus: false));
            int num7 = int.Parse(DateFile.instance.GetActorDate(TargetID, 20, applyBonus: false));

            if (int.Parse(DateFile.instance.GetGangDate(num6, 2)) != 1 || DateFile.instance.mianPartId == int.Parse(DateFile.instance.GetGangDate(num6, 3)))
            {
                string[] array = DateFile.instance.presetGangGroupDateValue[DateFile.instance.GetGangValueId(num6, num7)][812].Split('|');
                for (int n = 0; n < array.Length; n++)
                {
                    if (int.Parse(array[n]) > 0)
                    {
                        result.Choices.Add(ChoiceTable[array[n]]);
                    }
                }
            }

            if (WuLinGeneralAssembly.Instance.GAState != 0 || num6 >= 16)
            {
                return(result);
            }

            if (int.Parse(DateFile.instance.GetActorDate(TargetID, 20, applyBonus: false)) <= 4)
            {
                if (DateFile.instance.GetFamily(getPrisoner: false, getBaby: false).Count > 0)
                {
                    result.Choices.Add(ChoiceTable["2045200001"]);
                }
                result.Choices.Add(ChoiceTable["2045200002"]);
            }
            return(result);
        }