// Use this for initialization void Awake() { Debug.Log("<color=cyan>START GAME</color>"); if (startText == null) Debug.LogError("No <color=cyan>startText</color> assigned to:<color=cyan>"+gameObject.name+"</color>"); if (screen1 == null) Debug.LogError("No <color=cyan>screen1</color> assigned to:<color=cyan>"+gameObject.name+"</color>"); if (screen2 == null) Debug.LogError("No <color=cyan>screen2</color> assigned to:<color=cyan>"+gameObject.name+"</color>"); UIManager ui = UIManager.Instance; UIManager.ScreenChanged = notifyScreenChanged; ui.AddScreen(screen1); ui.AddScreen(screen2); ui.ActivateScreen(screen1.name); startText.SetActive(false); //localisation i18nManager = I18nManager.Instance; i18nManager.SetLanguage(lang); //add an empty main game GMGame game = new GMGame("TestGame"); gm = GameManager.Instance; ACondition falseCond = new FalseCondition(); ACondition trueCond = new TrueCondition(); ACondition relTimeCond = new TimerCondition(TimerType.Absolute, 8, game.TimeSource); //true after 1sec //this will only be fired, when both fireCondition is true at the same time ScriptTrigger<string> trigger3 = new ScriptTrigger<string>(); trigger3.Value = "TestGame"; trigger3.Function = TestScriptFunctionString; trigger3.Priority = 1; trigger3.Repeat = 1; //only fire once trigger3.FireCondition += trueCond.Check; //always true, but you can check sg extra here trigger3.FireCondition += relTimeCond.Check; //should fire only when time reached trigger3.DeleteCondition = falseCond.Check; //don't remove until repeating gm.Add (game); game.AddTrigger(trigger3); Debug.Log (" ----> AddTrigger 3"); gm.Start(game.Name); }
/// <summary> /// Helper for processing blinking of an image. /// It will toggle the visible flag based on the preset values /// </summary> public void BlinkToggle(UIImage image) { //Log.Info("BlinkToggle:"+image.Name); //TODO use reference here!! //TODO show/hide, but could use sprites states as well //image.Visible = !image.Visible; if(image.Sprite == 0) image.Sprite = 1; else if(image.Sprite == 1) image.Sprite = 0; if(--image.blinkNumber > 0) { TimerCondition relTimeCondBlink = new TimerCondition(TimerType.Relative, image.blinkSpeed, gpm.DialogGame.TimeSource); timeTrigger = new ScriptTrigger<UIImage>(1, 1, relTimeCondBlink.Check, null, BlinkToggle, image); gpm.DialogGame.AddTrigger(timeTrigger); } if(image.blinkNumber == 0) { image.Sprite = 0; //image.Visible = true; } }
//------------------------------------------------------------------------------ /// <summary> /// helper to create trigger for wait and trigger /// </summary> public ScriptTrigger<string> DelayedCommand(double time, string param) { time /= 1000.0; // Log.Debug("Delayed "+fullId+" Command: " + param + " delay:"+time); // Relative means here, that the time is ADDED to the current gameTime TimerCondition relTimeCond = new TimerCondition(TimerType.Relative, time, GameManager.Instance.DialogGame.TimeSource); ScriptTrigger<string> timeTrigger = new ScriptTrigger<string>(1, 1, relTimeCond.Check, null, TimeExpired, param); GameManager.Instance.DialogGame.AddTrigger(timeTrigger); return timeTrigger; }
public void ProcessTimelineEvent(string eventId, string param) { if (eventId != "SIM") return; //WebPlayerDebugManager.addOutput(eventId + " " + param, 2); switch (param) { case "Pause": if (Speed != 0) oldSpeed = Speed; Speed = 0; timeLine.PauseSlider(); break; case "Unpause": Speed = oldSpeed; timeLine.UnpauseSlider(); simMenu.SetActive (true); scoreBoard.SetActive (true); break; case "Activate": timeLine.isActive = true; timeLine.VisibleWhenInScreen = true; timeLine.gameObject.SetActive(true); break; case "Start": { ACondition relTimeCondSIM = new TimerCondition(TimerType.Relative, timeStep, TimeSource); //true after 1sec triggerSIMTime = new ScriptTrigger<int>(1, -1, relTimeCondSIM.Check, null, UpdateSIMTime, 1); AddTrigger(triggerSIMTime); //WebPlayerDebugManager.addOutput ("Trigger added!", 1); Speed = 1; timeLine.StartSlider(); } break; case "Restart": { WebPlayerDebugManager.addOutput("restarting timeline SIM", 2); value = 0; ACondition relTimeCondSIM = new TimerCondition(TimerType.Relative, timeStep, TimeSource); //true after 1sec triggerSIMTime = new ScriptTrigger<int>(1, -1, relTimeCondSIM.Check, null, UpdateSIMTime, 1); AddTrigger(triggerSIMTime); //WebPlayerDebugManager.addOutput ("Trigger added!", 1); oldSpeed = 1; date = startDate; Speed = 0; timeLine.PauseSlider(); actTime = (float) TimeSource.Time; lastTime = actTime; } break; case "Deactivate": timeLine.isActive = false; timeLine.VisibleWhenInScreen = false; timeLine.gameObject.SetActive(false); break; case "Stop": if (timeLine.isActive) timeLine.StopSlider(); RemoveTrigger(triggerSIMTime); break; case "Speed_1": Speed = 1; break; case "Speed_2": Speed = 2; break; case "Speed_4": Speed = 4; break; } }