public void ExecuteStepComplete(TutorialStepData stepData) { if (stepData.id == TutorialProxy.instance.CurrentTutorialStepData.id) { if (TutorialProxy.instance.IsCompleteStep()) { int nextChapterID = TutorialProxy.instance.CurrentTutorialChapterData.nextID; GuideReq guideReq = new GuideReq(); guideReq.no = nextChapterID; guideReq.guideNo2 = 0; Logic.Protocol.ProtocolProxy.instance.SendProtocol(guideReq); } else if (!TutorialProxy.instance.IsAfterCompleteStep()) { GuideReq guideReq = new GuideReq(); guideReq.no = TutorialProxy.instance.CurrentTutorialChapterData.id; guideReq.guideNo2 = TutorialProxy.instance.CurrentTutorialChapterData.isBackup ? stepData.id + 100000 : stepData.id; Logic.Protocol.ProtocolProxy.instance.SendProtocol(guideReq); } if (TutorialProxy.instance.HasNextStep()) { TutorialProxy.instance.MoveToNextStep(stepData); TutorialView.Open(TutorialProxy.instance.CurrentTutorialChapterData, TutorialProxy.instance.CurrentTutorialStepData); Observers.Facade.Instance.SendNotification(TUTORIAL_STEP_COMPLETE_MSG); } else if (TutorialProxy.instance.HasNextChapter()) { TutorialProxy.instance.MoveToNextChapter(); CheckIfShouldOpenCurrentChapterOrCurrentBackupChapter(); } } }
// Update is called once per frame void Update() { if (TV) { button.enabled = true; img.enabled = true; img.sprite = TV.CurButton; if (!img.sprite) { button.enabled = false; img.enabled = false; } // get.sizeDelta *= 10.0f / Camera.main.fieldOfView; // get the new transform position Vector3 rawPos = viewCamera.WorldToScreenPoint(Player.transform.position); rawPos.y += heightOffset / viewCamera.fieldOfView; rawPos.x -= widthOffset / viewCamera.fieldOfView; transform.position = rawPos; GetComponent <RectTransform>().sizeDelta = rectOrigin * 10.0f / viewCamera.fieldOfView; // Debug.Log(pd.health); } else { // fetch the player by id, and get the player data button.enabled = false; Player = UserInfoManager.Instance.GetPlayerObjById(playerId); if (Player) { TV = UnityEngine.Object.FindObjectOfType <TutorialView>(); } } }
public Part(string name, TutorialView view = TutorialView.Bottom, float offset = -8.2f, Sprite sprite = null, bool fullscreenClosing = false, bool mirror = false, float background = 0.7f, Transform[] targets = null, Func <string> param = null) { this.name = name; this.view = view; this.offset = offset * 51.2f; this.sprite = sprite != null ? sprite : (isTNT ? pics.characters.vasia : pics.characters.gingerCat); this.fullscreenClosing = fullscreenClosing; this.mirror = mirror; if (view == TutorialView.Right) { this.mirror = true; } this.targets = targets; this.background = background; this.param = param; }
private void Awake() { _view = FindObjectOfType <TutorialView>(); _view.Hide(); string str = PlayerPrefs.GetString("tutoData"); if (str != "") { _tutoParams = Newtonsoft.Json.JsonConvert.DeserializeObject <Dictionary <string, string> >(str); } else { _tutoParams = new Dictionary <string, string>(); } }
public TutorialController(TutorialView view, TitleModel model, SceneTransitionService sceneTransitionService, SavegameService savegameService) : base(view) { _view = view; _view.Initialize(); _sceneTransitionService = sceneTransitionService; _savegameService = savegameService; _view.OnNextClickedOnLastSlide .Subscribe(_ => OnNextClickedOnLastSlide()) .AddTo(Disposer); _model = model; _model.OpenTutorial .Subscribe(_ => Open()) .AddTo(Disposer); }
private void Reset() { // TODO: find a better way to link with the tutorial view // Probably link the prefab and instantiate it directly // This won't work if the TutorialView is inactive _tutorialView = FindObjectOfType <TutorialView>(); if (_tutorialView == null) { Debug.LogError("Tutorial View not found in the scene"); } else { _tutorialView.gameObject.SetActive(false); _currentTutorialData = LevelManager.Instance.GetCurrentLevel().tutorialData; _currentStepIndex = 0; _tutorialState = TutorialState.Ready; ReadNextStep(); } }
private bool CheckIfShouldOpenCurrentBackupChapter() { Debugger.Log("===== CheckIfShouldOpenCurrentBackupChapter ====="); int currentTutorialChapterDataID = TutorialProxy.instance.CurrentTutorialChapterData.id; TutorialChapterData currentBackupChapter = TutorialChapterData.GetBackupTutorialChapterData(currentTutorialChapterDataID); if (currentBackupChapter != null) { if (CheckIfChapterIsQualified(currentBackupChapter)) { TutorialProxy.instance.MoveToChapter(currentBackupChapter); // if (!UIMgr.instance.IsOpening(TutorialView.PREFAB_PATH)) TutorialView.Open(TutorialProxy.instance.CurrentTutorialChapterData, TutorialProxy.instance.CurrentTutorialStepData); Debugger.Log("======[Turotial]::[OpenChapter]::[" + (TutorialProxy.instance.CurrentTutorialChapterData.isBackup ? "Backup:" : "Main:") + TutorialProxy.instance.CurrentTutorialChapterData.id + "]"); TutorialProxy.instance.IsCurrentTurorialChapterOpened = true; } } Debugger.Log("===== CheckIfShouldOpenCurrentBackupChapter ====="); return(false); }
public void Init(TutorialView view, GameplayController gameplayController) { m_view = view; m_gameplayController = gameplayController; m_view.IndicatorTapped += HandleIndicatorTapped; m_view.IndicatorPressed += HandleIndicatorPressed; m_view.IndicatorReleased += HandleIndicatorReleased; m_view.Tapped += HandleTapped; m_steps = new List <TutorialStep>(); m_steps.Add(new TutorialStep1(this, view)); m_steps.Add(new TutorialStep2(this, view, gameplayController)); m_steps.Add(new TutorialStep3(this, view, gameplayController)); m_steps.Add(new TutorialStep4(this, view, gameplayController)); m_steps.Add(new TutorialStep5(this, view)); m_steps.Add(new TutorialStep6(this, view, gameplayController)); m_steps.Add(new TutorialStep7(this, view)); m_steps.Add(new TutorialStep8(this, view, gameplayController)); SetStep(0); }
public GameplayController( Gameplay gameplay, Hud hud, PauseView pauseView, SummaryView summaryView, PenaltyView penaltyView, BonusView bonusView, Board board, BoardController boardInputController, LevelIntroView levelIntroView, TutorialView tutorialView) { m_gameplay = gameplay; m_hud = hud; m_pauseView = pauseView; m_summaryView = summaryView; m_penaltyView = penaltyView; m_bonusView = bonusView; m_board = board; m_levelIntroView = levelIntroView; m_boardInputController = boardInputController; m_tutorialView = tutorialView; }
public void SkipCurrentTutorialChapter() { if (UIMgr.instance.IsOpening(TutorialView.PREFAB_PATH)) { TutorialView.Close(); } int skipChapterDataID = TutorialProxy.instance.CurrentTutorialChapterData.id; GuideReq guidReq = new GuideReq(); guidReq.no = skipChapterDataID + 1; Logic.Protocol.ProtocolProxy.instance.SendProtocol(guidReq); if (TutorialProxy.instance.HasNextChapter()) { TutorialProxy.instance.MoveToNextChapter(); } if (TutorialProxy.instance.onSkipCurrentChapterDelegate != null) { TutorialProxy.instance.onSkipCurrentChapterDelegate(skipChapterDataID); } }
public Task <string> ShowTutorial(INavigation navigation) { //apo edw kai katw gia na ginei to return var tcs = new TaskCompletionSource <string>(); var btnOk = new Xamarin.Forms.Button { Text = "Got It!", WidthRequest = 100, BackgroundColor = Color.FromRgb(0.8, 0.8, 0.8), }; btnOk.Clicked += async(s, e) => { // close page if (Xamarin.Forms.Application.Current.Properties["viewedtutorial"].ToString() != "ok") { string myinput = await CustomAlert(this.Navigation, "You haven't finished the tutorial!\nAre you sure you want to skip it?"); if (myinput == "no") { return; } } await navigation.PopModalAsync(); // pass result tcs.SetResult("ok"); }; var slButtons = new StackLayout { Children = { btnOk }, //Children = { btnOk, btnCancel }, }; //apo edw kai panw gia na ginei to return //var layout = new StackLayout //{ // VerticalOptions = LayoutOptions.CenterAndExpand, // HorizontalOptions = LayoutOptions.CenterAndExpand, // Orientation = StackOrientation.Vertical, // //Children = { lblTitle, lblMessage, carview, slButtons }, // Children = { carview }, //}; // create and show page //var page = new ContentPage(); //page.Content = layout; var carview = new TutorialView(); var layout = new StackLayout { Children = { carview.Content, slButtons } }; var page = new ContentPage(); page.Content = layout; navigation.PushModalAsync(page); // open keyboard //txtInput.Focus(); // code is waiting her, until result is passed with tcs.SetResult() in btn-Clicked // then proc returns the result return(tcs.Task); }
// Use this for initialization void Start() { img = GetComponent <Image> (); Blink(1000, 1f); TV = UnityEngine.Object.FindObjectOfType <TutorialView>(); }
public TutorialStep1(TutorialController ctrl, TutorialView view) : base(ctrl, view) { }
public TutorialStep2(TutorialController ctrl, TutorialView view, GameplayController gameplayController) : base(ctrl, view) { m_gameplayController = gameplayController; }
public void Blink(int times = 5, float interval = 0.5f) { TV = UnityEngine.Object.FindObjectOfType <TutorialView>(); StartCoroutine( BlinkCo(times, interval)); }
private bool CheckIfShouldOpenCurrentChapter() { Debugger.Log("===== CheckIfShouldOpenCurrentChapter ====="); int currentTutorialChapterID = TutorialProxy.instance.CurrentTutorialChapterData.id; TutorialChapterData currentTutorialChapterData = TutorialChapterData.GetTutorialChapterData(currentTutorialChapterID); TutorialProxy.instance.MoveToChapter(currentTutorialChapterData); // check if should ignore chapter TutorialChapterData tutorialChapterData = currentTutorialChapterData; TutorialChapterData latestCanNotIgnoredChapterData = null; while (tutorialChapterData != null && tutorialChapterData.canIgnore) { tutorialChapterData = tutorialChapterData.GetNextTutorialChapterData(); if (tutorialChapterData != null && !tutorialChapterData.canIgnore) { latestCanNotIgnoredChapterData = tutorialChapterData; } } if (latestCanNotIgnoredChapterData != null && CheckIfChapterIsQualified(latestCanNotIgnoredChapterData)) { TutorialProxy.instance.MoveToChapter(latestCanNotIgnoredChapterData); currentTutorialChapterData = TutorialProxy.instance.CurrentTutorialChapterData; } // check if should ignore chapter if (currentTutorialChapterData == null) { if (UIMgr.instance.IsOpening(TutorialView.PREFAB_PATH)) { TutorialView.Close(); } return(false); } if (!_initialized) { if (UIMgr.instance.IsOpening(TutorialView.PREFAB_PATH)) { TutorialView.Close(); } return(false); } if (!TutorialProxy.instance.IsFirstStep()) { return(false); } if (currentTutorialChapterData == null) { if (UIMgr.instance.IsOpening(TutorialView.PREFAB_PATH)) { TutorialView.Close(); } return(false); } if (Game.Model.GameProxy.instance.PlayerInfo == null) { if (UIMgr.instance.IsOpening(TutorialView.PREFAB_PATH)) { TutorialView.Close(); } return(false); } // check player level if (Game.Model.GameProxy.instance.PlayerInfo.level < currentTutorialChapterData.playerLevel) { if (UIMgr.instance.IsOpening(TutorialView.PREFAB_PATH)) { TutorialView.Close(); } return(false); } // check pass dungeon if (currentTutorialChapterData.passDungeon > 0) { Dungeon.Model.DungeonInfo requiredPassDungeonInfo = Dungeon.Model.DungeonProxy.instance.GetDungeonInfo(currentTutorialChapterData.passDungeon); if (requiredPassDungeonInfo == null || requiredPassDungeonInfo.star <= 0) { if (UIMgr.instance.IsOpening(TutorialView.PREFAB_PATH)) { TutorialView.Close(); } return(false); } } // check if task complete if (currentTutorialChapterData.taskID > 0 && !Logic.UI.Task.Model.TaskProxy.instance.IsTaskComplete(currentTutorialChapterData.taskID)) { if (UIMgr.instance.IsOpening(TutorialView.PREFAB_PATH)) { TutorialView.Close(); } return(false); } // check dungeon total star count if (currentTutorialChapterData.dungeonTotalStarCount > 0 && Logic.Dungeon.Model.DungeonProxy.instance.GetDungeonTotalStarCount() < currentTutorialChapterData.dungeonTotalStarCount) { if (UIMgr.instance.IsOpening(TutorialView.PREFAB_PATH)) { TutorialView.Close(); } return(false); } // check active ui panel path if (currentTutorialChapterData.atUIViewPath != null && UI.UIMgr.instance.LastOpenedUIPath != currentTutorialChapterData.atUIViewPath) { if (UIMgr.instance.IsOpening(TutorialView.PREFAB_PATH)) { TutorialView.Close(); } return(false); } if (!FunctionOpen.Model.FunctionOpenProxy.instance.IsFunctionOpen((Enums.FunctionOpenType)currentTutorialChapterData.functionOpenID)) { if (UIMgr.instance.IsOpening(TutorialView.PREFAB_PATH)) { TutorialView.Close(); } return(false); } // if (!UIMgr.instance.IsOpening(TutorialView.PREFAB_PATH)) TutorialView.Open(TutorialProxy.instance.CurrentTutorialChapterData, TutorialProxy.instance.CurrentTutorialStepData); Debugger.Log("=====[Turotial]::[OpenChapter]::[" + (TutorialProxy.instance.CurrentTutorialChapterData.isBackup ? "Backup:" : "Main:") + TutorialProxy.instance.CurrentTutorialChapterData.id + "]"); TutorialProxy.instance.IsCurrentTurorialChapterOpened = true; Debugger.Log("===== CheckIfShouldOpenCurrentChapter ====="); return(true); }
public TutorialStep(TutorialController ctrl, TutorialView view) { m_view = view; m_ctrl = ctrl; }
private bool CheckIfChapterIsQualified(TutorialChapterData tutorialChapterData) { if (tutorialChapterData == null) { TutorialView.Close(); return(false); } if (!_initialized) { TutorialView.Close(); return(false); } if (!TutorialProxy.instance.IsFirstStep()) { return(false); } if (tutorialChapterData == null) { TutorialView.Close(); return(false); } if (Game.Model.GameProxy.instance.PlayerInfo == null) { TutorialView.Close(); return(false); } // check player level if (Game.Model.GameProxy.instance.PlayerInfo.level < tutorialChapterData.playerLevel) { TutorialView.Close(); return(false); } // check pass dungeon if (tutorialChapterData.passDungeon > 0) { Dungeon.Model.DungeonInfo requiredPassDungeonInfo = Dungeon.Model.DungeonProxy.instance.GetDungeonInfo(tutorialChapterData.passDungeon); if (requiredPassDungeonInfo == null || requiredPassDungeonInfo.star <= 0) { TutorialView.Close(); return(false); } } // check if task complete if (tutorialChapterData.taskID > 0 && !Logic.UI.Task.Model.TaskProxy.instance.IsTaskComplete(tutorialChapterData.taskID)) { TutorialView.Close(); return(false); } // check dungeon total star count if (tutorialChapterData.dungeonTotalStarCount > 0 && Logic.Dungeon.Model.DungeonProxy.instance.GetDungeonTotalStarCount() < tutorialChapterData.dungeonTotalStarCount) { TutorialView.Close(); return(false); } // check active ui panel path if (tutorialChapterData.atUIViewPath != null && UI.UIMgr.instance.LastOpenedUIPath != tutorialChapterData.atUIViewPath) { TutorialView.Close(); return(false); } if (!FunctionOpen.Model.FunctionOpenProxy.instance.IsFunctionOpen((Enums.FunctionOpenType)tutorialChapterData.functionOpenID)) { TutorialView.Close(); return(false); } return(true); }