protected override string MakeEventCommandMainSentence( EventCommandSentenceResolver resolver, EventCommandSentenceType type, EventCommandSentenceResolveDesc desc) { if (desc is null) { throw new ArgumentNullException( ErrorMessage.NotNull(nameof(desc))); } var forkStringsList = ConditionList.Select((x, idx) => { var leftVarName = resolver.GetNumericVariableAddressStringIfVariableAddress(x.LeftSide, type, desc); var rightVarName = x.IsNotReferX ? x.RightSide.ToString() : resolver.GetNumericVariableAddressStringIfVariableAddress(x.RightSide, type, desc); var myStr = string.Format(EventCommandSentenceFormatForkConditionForMe, leftVarName, rightVarName, x.Condition.EventCommandSentence); var branchStr = string.Format(EventCommandSentenceFormatForkConditionForBranch, leftVarName, rightVarName, x.Condition.EventCommandSentence); return(myStr, branchStr); }).ToList(); desc.StartBranch(BranchType.ConditionNumber, forkStringsList.Select(x => x.branchStr).ToList()); var forkStrList = forkStringsList.Select(x => x.myStr) .Select((x, idx) => string.Format(EventCommandSentenceFormatFork, idx + 1, x) ); return(string.Format(EventCommandSentenceFormatMain, string.Join("", forkStrList))); }
protected override string MakeEventCommandMainSentence( EventCommandSentenceResolver resolver, EventCommandSentenceType type, EventCommandSentenceResolveDesc desc) { if (desc is null) { throw new ArgumentNullException( ErrorMessage.NotNull(nameof(desc))); } var forkStrList = ConditionList.Select((x, idx) => { var leftVarName = resolver.GetStringVariableAddressString(x.LeftSide, type, desc); var rightVarName = x.IsUseNumberVariable ? resolver.GetStringVariableAddressString(x.RightSide.ToInt(), type, desc) : $"\"{x.RightSide.ToStr()}\""; var myStr = string.Format(EventCommandSentenceFormatFork, idx + 1, leftVarName, rightVarName, x.Condition.EventCommandSentence); var branchStr = string.Format(EventCommandSentenceFormatForkCondition, leftVarName, rightVarName, x.Condition.EventCommandSentence); return(myStr, branchStr); }).ToList(); var thisFortSrtList = forkStrList.Select(x => x.myStr).ToList(); var childForkStrList = forkStrList.Select(x => x.branchStr).ToList(); desc.StartBranch(BranchType.ConditionString, childForkStrList); return(string.Format(EventCommandSentenceFormatMain, string.Join("", thisFortSrtList))); }
protected override string MakeEventCommandMainSentence( EventCommandSentenceResolver resolver, EventCommandSentenceType type, EventCommandSentenceResolveDesc desc) { if (desc is null) { throw new ArgumentNullException( ErrorMessage.NotNull(nameof(desc))); } var caseStrList = Enumerable.Range(0, CaseValue) .Select(idx => ChoiceCaseList[idx]) .ToList(); // 以降の処理のために自身の選択肢をResolveDescに登録 desc.StartBranch(BranchType.Choice, caseStrList); var casesStr = string.Join(" / ", caseStrList.Select((s, i) => $"【{i + 1}】{s}")); return(string.Format(EventCommandSentenceFormat, casesStr)); }