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