public CodegenExpression MakeCodegen( CodegenMethodScope parent, SAIFFInitializeSymbol symbols, CodegenClassScope classScope) { var method = parent.MakeChild(typeof(ContextControllerDetailInitiatedTerminated), GetType(), classScope); method.Block .DeclareVar<ContextControllerDetailInitiatedTerminated>( "detail", NewInstance(typeof(ContextControllerDetailInitiatedTerminated))) .SetProperty(Ref("detail"), "StartCondition", StartCondition.Make(method, symbols, classScope)) .SetProperty(Ref("detail"), "EndCondition", EndCondition.Make(method, symbols, classScope)) .SetProperty(Ref("detail"), "IsOverlapping", Constant(IsOverlapping)); if (DistinctExpressions != null && DistinctExpressions.Length > 0) { method.Block .SetProperty( Ref("detail"), "DistinctEval", ExprNodeUtilityCodegen.CodegenEvaluatorMayMultiKeyWCoerce( ExprNodeUtilityQuery.GetForges(DistinctExpressions), null, method, GetType(), classScope)) .SetProperty( Ref("detail"), "DistinctTypes", Constant(ExprNodeUtilityQuery.GetExprResultTypes(DistinctExpressions))); } method.Block.MethodReturn(Ref("detail")); return LocalMethod(method); }
public override void Tick(float t) { if (_isAnimating) { //if (t < _delay) return; // a co jesli wracasz? if (_startFromCurrent) { _from = ValueOnBegin.Invoke(); _startFromCurrent = false; } float x = (t - _delay) / _duration; onUpdate?.Invoke(); if (x > 0.0f && x <= 1.0f) { OnEvaluate?.Invoke(x); } if (EndCondition != null && EndCondition.Invoke(x)) { _isAnimating = false; OnEvaluate?.Invoke(_isForward > 0 ? 1 : 0); onComplete?.Invoke(); } } }
internal void EndGame(EndCondition endCondition) { if (!GameState.GameHasEnded) { GameState.GameHasEnded = true; ChangePanel(typeof(PanelSelectModule)); int gameTime = (int)GameState.GameTime; string text = endCondition.GetText(); GameHighScores scores = HighScore.Load(GameState.Model.Id, GameState.GameHash); if (endCondition.GetType() == typeof(EndCondition.Win)) { scores = HighScore.Save(GameState.Model.Id, GameState.GameHash, gameTime, 10); text += "\n\nJesteś na " + (scores.Scores.FindIndex(0, us => us.Score >= gameTime) + 1) + " miejscu.\n\n"; } int i = 0; if (scores.Scores.Count > 0) { text += "Wszystkie wyniki:\n" + scores.Scores .Select(t => (++i) + ". " + t.Score / 24 + " dni " + t.Score % 24 + " godzin ") .Aggregate((t, y) => t + "\n" + y); } OpenWindow().OpenText(text); } }
/// <summary> /// game over function which displays a fail message and starts scene reload /// </summary> /// <param name="endCondition"></param> public void gameFailed(EndCondition endCondition = EndCondition.WrongTarget) { // player is no longer ready isPlayerReady = false; isGameOver = true; // different message depending on fail condition switch (endCondition) { case EndCondition.WrongTarget: ShowGameOver(m_wrongTargetMessage); break; case EndCondition.TimeOut: ShowGameOver(m_timeOutMessage); break; case EndCondition.Unholster: ShowGameOver(m_unholsterMessage); break; } // wait an arbritrary amount of time before reloading scene StartCoroutine(PerformFadeOut()); }
public override void EndQuest(Caravan caravan = null, EndCondition condition = EndCondition.None) { if (Started) { condition = EndCondition.Success; } if (Pawn != null) { CaravanMaker.MakeCaravan(new List <Pawn> { Pawn }, RimWorld.Faction.OfPlayer, Site.Tile, false); } if (condition == EndCondition.Success) { var project = Find.ResearchManager.currentProj; if (project != null) { ReserachUtility.AddPoints(project, PointsReward); } } base.EndQuest(caravan, condition); }
private IEnumerator ShowEndScreen(EndCondition condition, float timeDelay) { yield return(new WaitForSeconds(timeDelay)); string resultText = "WHAT"; string conditionText = "?????????"; bool didWin = true; switch (condition) { case EndCondition.WinPlayerEscape: resultText = "YOU WIN"; conditionText = "running away is, contrary to popular opinion, a valid solution"; didWin = true; break; case EndCondition.WinGeneralKilled: resultText = "YOU WIN"; conditionText = "i guess finishing the job you were assigned works too"; //report bard for stealing my kill smh didWin = true; break; case EndCondition.LosePlayerKilled: resultText = "YOU LOSE"; conditionText = "how can you eat more cookies if you're dead"; didWin = false; break; } endScreenController?.Show(resultText, conditionText, didWin); }
public static Quest GetCopy(Quest q) { var copy = new Quest { QuestSize = q.QuestSize, ID = q.ID, Title = Title.GetCopy(q.Title), Description = Description.GetCopy(q.Description), Region = q.Region, QuestType = q.QuestType, IsRepeatAble = q.IsRepeatAble, IsDailyQuest = q.IsDailyQuest, DailyType = q.DailyType, StartCondition = StartCondition.GetCopy(q.StartCondition), EndCondition = EndCondition.GetCopy(q.EndCondition), NumOfActions = q.NumOfActions, Actions = new Action[10], Rewards = new Reward[12], StartScriptSize = q.StartScriptSize, DoingScriptSize = q.DoingScriptSize, EndScriptSize = q.EndScriptSize, Unk1 = new byte[14], StartScript = string.Copy(q.StartScript), DoingScript = string.Copy(q.DoingScript), EndScript = string.Copy(q.EndScript) }; Array.Copy(q.Actions, 0, copy.Actions, 0, q.Actions.Length); Array.Copy(q.Rewards, 0, copy.Rewards, 0, q.Rewards.Length); Array.Copy(q.Unk1, 0, copy.Unk1, 0, q.Unk1.Length); return(copy); }
public EndCondition(EndCondition e, long o) { condition = e.condition; pattern = e.pattern; repetitions = o; // Swap reps with o patternRepetitions = o; // Also swap patternreps with o seconds = e.seconds; }
public void EndQuest(Caravan caravan = null, EndCondition condition = EndCondition.None) { quest.EndQuest(caravan, condition); if (Find.WorldObjects.Contains(this)) { Find.WorldObjects.Remove(this); } }
public override void EndQuest(Caravan caravan = null, EndCondition condition = EndCondition.None) { base.EndQuest(caravan, condition); if (condition == EndCondition.None) { Find.LetterStack.ReceiveLetter("Quest_DarkNetCaptureMaterials_EndQuest_NoneTitle".Translate(), "Quest_DarkNetCaptureMaterials_EndQuest_NoneDesc".Translate(), LetterDefOf.NeutralEvent); } }
public override void EndQuest(Caravan caravan = null, EndCondition condition = EndCondition.None) { if (condition == EndCondition.Timeout) { Faction.TryAffectGoodwillWith(Faction.OfPlayer, -10); } base.EndQuest(caravan, condition); }
public void RemoveQuest(Quest quest, EndCondition condition = EndCondition.None, bool showMessage = true) { Quests.Remove(quest); if (showMessage) { SendEndQuestMessage(condition, quest); } }
public override void EndQuest(Caravan caravan = null, EndCondition condition = EndCondition.None) { base.EndQuest(caravan, condition); if (condition == EndCondition.Success) { ScoutingComp.GiveScoutingComp(Faction, 2, 15, 5, 5); } }
public override void EndQuest(Caravan caravan = null, EndCondition condition = EndCondition.None) { if (CommunicationDialog != null) { QuestsManager.Communications.RemoveCommunication(CommunicationDialog); } base.EndQuest(caravan, condition); }
void Start() { dead = false; trig = GameObject.Find("Trigger"); self = gameObject; sinBin = GameObject.Find("sinBin"); aides = GetComponent <Pathfinding.AIDestinationSetter>(); target = aides.target; playerScript = target.GetComponent <EndCondition>(); }
public WorkerObject(EndCondition e, int o) { endCondition = e; amountOfOutcomes = (uint)o; if (ExpManager.sharedInstance.orderedStorage) { outcomes = new List <ResultObject>(); } else { unorderedOutcomes = new long[o]; } }
public override void EndQuest(Caravan caravan = null, EndCondition condition = EndCondition.None) { if (condition == EndCondition.Timeout) { IncidentParms parms = StorytellerUtility.DefaultParmsNow(IncidentCategoryDefOf.ThreatBig, Find.World); parms.forced = true; var incident = new FiringIncident(MoreEvents.IncidentDefOfLocal.HighMutantPopulation, null, parms); Find.Storyteller.TryFire(incident); } base.EndQuest(caravan, condition); }
public void cleanup() { if (ExpManager.sharedInstance.orderedStorage) { outcomes.Clear(); outcomes.TrimExcess(); } else { unorderedOutcomes = null; } endCondition = null; }
public Quest(BinaryReader reader) { QuestSize = reader.ReadUInt32() - 4; ID = reader.ReadUInt32(); if (ID > HighestID) { HighestID = ID; } var titleID = reader.ReadUInt32(); Title = new Title(titleID, ""); var descriptionID = reader.ReadUInt32(); Description = new Description(descriptionID, ""); //TODO: Figure out what this is Region = reader.ReadByte(); QuestType = (QuestType)reader.ReadByte(); IsRepeatAble = reader.ReadBoolean(); IsDailyQuest = reader.ReadBoolean(); DailyType = (DailyType)reader.ReadByte(); StartCondition = new StartCondition(reader); EndCondition = new EndCondition(reader); NumOfActions = (byte)reader.ReadInt32(); Actions = new Action[10]; for (var i = 0; i < 10; i++) { Actions[i] = new Action(reader); } Rewards = new Reward[12]; for (var i = 0; i < 12; i++) { Rewards[i] = new Reward(reader); } StartScriptSize = reader.ReadUInt16(); EndScriptSize = reader.ReadUInt16(); DoingScriptSize = reader.ReadUInt16(); Unk1 = new byte[14]; Unk1 = reader.ReadBytes(14); StartScript = Encoding.ASCII.GetString(reader.ReadBytes(StartScriptSize)); DoingScript = Encoding.ASCII.GetString(reader.ReadBytes(DoingScriptSize)); EndScript = Encoding.ASCII.GetString(reader.ReadBytes(EndScriptSize)); }
public override void EndQuest(Caravan caravan = null, EndCondition condition = EndCondition.None) { if (condition == EndCondition.Fail || condition == EndCondition.None) { if (Rand.Chance(0.35f)) { Current.Game.GetComponent <DarkNet>().SendGssRaid(Find.AnyPlayerHomeMap, true); } else { Find.LetterStack.ReceiveLetter("Quest_DarkNetKillInformator_InformatorDeadTitle".Translate(), "Quest_DarkNetKillInformator_InformatorDeadDesc".Translate(), LetterDefOf.NeutralEvent); } } base.EndQuest(caravan, condition); }
private void TryTransfer(Caravan caravan) { StringBuilder builder = new StringBuilder(); builder.Append("Quest_MissingPeople_End".Translate()); int saved = 0; foreach (var pawn in quest.SavedPawns) { if (caravan.ContainsPawn(pawn)) { caravan.RemovePawn(pawn); saved++; builder.AppendLine($"- {pawn.Name.ToStringFull}"); pawn.Destroy(); } } EndCondition condition = EndCondition.Success; if (saved == quest.SavedPawns.Count) { builder.Append("Quest_MissingPeople_EndFull".Translate(Quest.Faction.Name)); } else { if (saved == 0) { builder.Append("Quest_MissingPeople_Fiasko".Translate(Quest.Faction.Name)); condition = EndCondition.Fail; } else { builder.Append("Quest_MissingPeople_EndPart".Translate()); } } if (caravan.pawns.Count == 0) { Find.WorldObjects.Remove(caravan); } Find.LetterStack.ReceiveLetter("Quest_MissingPeople_EndQuest".Translate(), builder.ToString(), LetterDefOf.NeutralEvent); QuestSite site = (QuestSite)mapParent; site.EndQuest(caravan, condition); }
private void DrawLoseConditions() { using (new EditorHelper.IndentPadding(10)) { if (losingConditions.Count > 0) { EditorGUILayout.Space(); EditorGUILayout.LabelField("Lose Stage Conditions"); } } using (new EditorHelper.Indent(1)) { EndCondition removedCondition = null; for (int gIndex = 0; gIndex < losingConditions.Count; gIndex++) { EndCondition condition = losingConditions[gIndex]; condition.SetOrder(gIndex + 1); condition.OnGUI(); if (condition.IsConditionChanged) { condition = GenerateEndCondition(condition.ShowConditionName()); losingConditions[gIndex] = condition; } if (condition.IsRemoved) { removedCondition = condition; } if (condition.IsPasted && copiedCondition != null) { losingConditions[gIndex] = copiedCondition.Clone(); } } if (removedCondition != null) { losingConditions.Remove(removedCondition); Config.ResetCacheRectData(); } } }
public void EndConditionSatisfied(EndCondition condition, float timeDelay = 0f) { if (GameFinished) { return; } GameFinished = true; if (timeDelay > 0f) { StartCoroutine(ShowEndScreen(condition, timeDelay)); } else { StartCoroutine(ShowEndScreen(condition, 0f)); } }
public void RemoveQuest(int key, EndCondition condition = EndCondition.None, bool showMessage = true) { for (int i = 0; i < Quests.Count; i++) { Quest quest = Quests[i]; if (quest.id == key) { Quests.Remove(quest); if (showMessage) { SendEndQuestMessage(condition, quest); } return; } } }
private EndCondition GameLoop() { List <string> actions = new List <string>(); AddActionOptions(actions); EndCondition endCondition = EndCondition.NotEnd; do { Console.Clear(); HUD(); //PrintActionsMenu int selected = UI.SelectionMenu(actions); endCondition = DecideGameEnd(HandleSelection(selected)); } while (endCondition == EndCondition.NotEnd); return(endCondition); }
private async void Image_Tapped(object sender, TappedRoutedEventArgs e) { Image image = sender as Image; int index = -1; if (int.TryParse(image.Tag.ToString(), out index)) { if (model.isSet(index)) { model.setPlayer(index); image.Source = model.CurrentPlayer.Equals(Model.Player.CROSS) ? crossImage : nougthImage; EndCondition end = model.checkEnd(); if (end.End) { model.lockModel(); if (!end.Winner.Equals(Model.Player.EMPTY)) { foreach (var item in ImagesGrid.Children) { if (item is Rectangle && (item as Rectangle).Tag != null) { Rectangle rect = item as Rectangle; string rectTag = rect.Tag.ToString(); if (rectTag.Equals(end.First.ToString()) || rectTag.Equals(end.Second.ToString()) || rectTag.Equals(end.Third.ToString())) { rect.Fill = new SolidColorBrush(Colors.White); } } } } else { var message = new MessageDialog("It's a tie"); await message.ShowAsync(); initializeGrid(); initializeModel(); } } model.nextPlayer(); } } }
public override void Tick(float t) { if (_isAnimating) { float x = (t - _delay) / _duration; onUpdate?.Invoke(); if (x > 0.0f && x <= 1.0f) { OnEvaluate?.Invoke(x); } if (EndCondition != null && EndCondition.Invoke(x)) { _isAnimating = false; OnEvaluate?.Invoke(_isForward > 0 ? 1 : 0); onComplete?.Invoke(); } } }
public static void ClosingMessage(EndCondition e) { Console.Clear(); switch (e) { case EndCondition.NotEnd: break; case EndCondition.UserEnd: PrintAsciiArt("See You Next Time"); break; case EndCondition.AgeOut: System.Console.Beep(); UI.CenteredString("You're over 70 years old...time to retire, Captain"); PrintAsciiArt("TOO OLD"); break; case EndCondition.MoneyOut: System.Console.Beep(); UI.CenteredString("You're out of money and out of goods. Starfleet Command is very disappointed."); break; case EndCondition.FuelOut: System.Console.Beep(); UI.CenteredString("Your stupidity has left you on your own drifting in the galaxy without fuel"); PrintAsciiArt("Out of Juice"); break; case EndCondition.Death: UI.CenteredString("Death is inevitable"); break; case EndCondition.MoneyMax: PrintAsciiArt("Mission Complete!"); PrintAsciiArt("$10,000 earned"); break; default: break; } }
public void ToEPL(TextWriter writer, EPStatementFormatter formatter) { writer.Write(IsOverlapping ? "initiated by " : "start "); if (_optionalDistinctExpressions != null && _optionalDistinctExpressions.Count > 0) { writer.Write("distinct("); String delimiter = ""; foreach (Expression expression in _optionalDistinctExpressions) { writer.Write(delimiter); expression.ToEPL(writer, ExpressionPrecedenceEnum.MINIMUM); delimiter = ", "; } writer.Write(") "); } StartCondition.ToEPL(writer, formatter); writer.Write(" "); writer.Write(IsOverlapping ? "terminated " : "end "); EndCondition.ToEPL(writer, formatter); }
public void GameOver(EndCondition endCondition) { Time.timeScale = 0f; if (endCondition == EndCondition.Victory) { Text[] info = VictoryScreen.GetComponentsInChildren <Text>(); info[0].text = string.Format("{0:00}:{1:00}", totalTime / 60, totalTime % 60); info[1].text = totalGameOvers.ToString(); totalTime = 0f; totalGameOvers = 0; VictoryScreen.SetActive(true); } else if (endCondition == EndCondition.Defeat) { DefeatScreen.SetActive(true); } }