public void Clear() { screenx = 100; screeny = 100; VoidLocation = false; DaysCost = 0; DPars = new QuestParameterDelta[Quest.maxparameters]; LocationDescriptions = new string[MaxLocationDescriptions]; for (var i = 0; i < Quest.maxparameters; ++i) { DPars[i] = new QuestParameterDelta(); DPars[i].Clear(); } RandomShowLocationDescriptions = false; LocDescrOrder = 1; LocDescrExprOrder = ""; FailLocationFlag = false; ClosedLocationFlag = false; NoWay2LocationFlag = false; PlayerDeath = false; LocationNumber = 0; LocationName = "(M.Par_Get('LocationClassNewLocationName'))"; LocationDescription = "(M.Par_Get('LocationClassNewLocationText'))"; StartLocationFlag = false; EndLocationFlag = false; }
public void Clear() { gatesOk = true; dayscost = 0; ShowOrder = 5; Probability = 1; PassTimesValue = 1; PathNumber = 0; FromLocation = 0; ToLocation = 0; StartPathMessage = "M.Par_Get('PathClassStartPathMessage')"; EndPathMessage = ""; LogicExpression = ""; DPars = new QuestParameterDelta[Quest.maxparameters]; for (var i = 0; i < Quest.maxparameters; ++i) { DPars[i] = new QuestParameterDelta(); DPars[i].Clear(); } VoidPathFlag = true; AlwaysShowWhenPlaying = false; }
public void DoTransition(QuestPath questPath) { //if ((accessible_pathes_count <= 0) && (voidpathindex <= 0)) then return //Выполнение перехода, если выбран переход var pathindex = questPath.PathIndx; // if (voidpathindex > 0) // { // pathindex = voidpathindex; // } // else // { // if (CheckedAnswer > 0) then // pathindex = accessible_pathes[CheckedAnswer]; // } if (questPath.PathNumber == 0) { //ShowMessage('Ошибка перехода'); return; } var CurrPathX = currentLocationIndx; var CurrPathY = pathindex; PathesWeCanGo[CurrPathX, CurrPathY]--; daysPassed += quest.Paths[pathindex].dayscost; //makedo; for (var i = 0; i < Quest.maxparameters; ++i) { UndoPar[i] = Pars[i]; } currentLocationIndx = quest.Paths[pathindex].ToLocation; QuestParameterDelta[] delta = new QuestParameterDelta[Quest.maxparameters]; for (var i = 0; i < Quest.maxparameters; ++i) { delta[i] = quest.Paths[pathindex].DPars[i]; } ProcessParametersWithDelta(delta); ProcessParVisualOpions(delta); lastpathindex = pathindex; // if (quest.Paths[pathindex].EndPathMessage.Trim() != "") // { // Console.WriteLine(quest.Paths[pathindex].EndPathMessage.Trim()); // } WeAreInTheLocation(); }
void WeAreInTheLocation() { failFlag = IsGamePathParameterFail(lastpathindex, Pars, UndoPar); if (!failFlag) { successFlag = IsGamePathParameterSuccess(lastpathindex, Pars, UndoPar); } if (successFlag) { System.Console.WriteLine("ShowSuccess"); return; } if (failFlag) { System.Console.WriteLine("ShowFail"); return; } QuestParameterDelta[] delta = new QuestParameterDelta[Quest.maxparameters]; int[] tpars = new int[Quest.maxparameters]; for (var i = 0; i < Quest.maxparameters; ++i) { delta[i] = quest.Locations[currentLocationIndx].DPars[i]; tpars[i] = Pars[i]; } ProcessParametersWithDelta(delta); ProcessParVisualOpions(delta); string tmp = quest.Paths[lastpathindex].EndPathMessage; if (!string.IsNullOrEmpty(tmp)) { LastLocationDescription = quest.ProcessString(tmp, Pars); quest.Locations[currentLocationIndx].LocationDescription = LastLocationDescription; } //Печатаем текст локации,если все нормально if (quest.Locations[currentLocationIndx].VoidLocation == false) { LastLocationDescription = quest.Locations[currentLocationIndx].FindLocationDescription(Pars); LastLocationDescription = quest.ProcessString(LastLocationDescription, Pars); quest.Locations[currentLocationIndx].LocationDescription = LastLocationDescription; } daysPassed += quest.Locations[currentLocationIndx].DaysCost; successFlag = false; failFlag = IsGameLocationParameterFail(currentLocationIndx, Pars, tpars); if (!failFlag) { successFlag = IsGameLocationParameterSuccess(currentLocationIndx, Pars, tpars); } if (successFlag) { System.Console.WriteLine("ShowSuccess"); return; } if (failFlag) { System.Console.WriteLine("ShowFail"); return; } if (!CheckLocationType()) { return; } LastPossibleTransitions = PossibleTransitionsInner(); if ((LastPossibleTransitions.Count == 1) && (LastPossibleTransitions[0].PathIndx > 0) && (LastPossibleTransitions[0].StartPathMessage == "")) { DoTransition(LastPossibleTransitions[0]); } else { tmp = quest.Paths[lastpathindex].EndPathMessage; if (quest.Locations[currentLocationIndx].VoidLocation && (string.IsNullOrEmpty(tmp))) { tmp = quest.Locations[currentLocationIndx].FindLocationDescription(Pars); tmp = quest.ProcessString(tmp, Pars); quest.Locations[currentLocationIndx].LocationDescription = tmp; LastLocationDescription = tmp; } LastPossibleTransitions = PossibleTransitionsInner(); } }