public ExplainPhase() { this.periodPhase = Time.FromSeconds(1); this.timeElapsed = Time.Zero; this.moment = StartPhaseMoment.START; }
public override void UpdateLogic(OfficeWorld world, Time timeElapsed) { this.timeElapsed += timeElapsed; if (this.timeElapsed > periodPhase) { switch (this.moment) { case StartPhaseMoment.START: DialogueObject dialogue = world.GetObjectFromId("dialogue patient") as DialogueObject; dialogue.LaunchDialogue(2); AObject queueTalk = world.GetObjectFromId("queueTalk main"); queueTalk.SetKinematicParameters(new Vector2f(-200f, 120f), new Vector2f(0f, 0f)); AObject bubble = world.GetObjectFromId("bubble main"); bubble.SetAnimationIndex(2); this.moment = StartPhaseMoment.BUBBLE_APPEARED; break; case StartPhaseMoment.TEXT_APPEARED: dialogue = world.GetObjectFromId("dialogue patient") as DialogueObject; dialogue.ResetDialogue(); bubble = world.GetObjectFromId("bubble main"); bubble.SetAnimationIndex(3); queueTalk = world.GetObjectFromId("queueTalk main"); queueTalk.SetKinematicParameters(new Vector2f(10000, 10000), new Vector2f(0, 0)); this.timeElapsed = Time.Zero; this.periodPhase = Time.FromSeconds(2); this.moment = StartPhaseMoment.END; break; case StartPhaseMoment.END: this.NodeState = NodeState.NOT_ACTIVE; break; } } }
protected override void OnInternalGameEvent(OfficeWorld world, AObject lObject, AObject lObjectTo, string details) { if (details.Equals("endDialogue")) { DialogueObject dialogue = world.GetObjectFromId("dialogue patient") as DialogueObject; if (dialogue == lObject) { this.timeElapsed = Time.Zero; this.periodPhase = Time.FromSeconds(3); this.moment = StartPhaseMoment.TEXT_APPEARED; } } else if (details.Equals("speedUpDialogue")) { DialogueObject dialogue = world.GetObjectFromId("dialogue patient") as DialogueObject; dialogue.SpeedFactor = 10; } }