public void GoToMenu(OnGoToMenu e) { CleanBillboards(); ArrowDisplayer.Instances("NotePad").CleanArrows(); ArrowDisplayer.Instances("FtueArrow").CleanArrows(); _open = false; }
private static ArrowDisplayer NewInstance(string instanceName) { ArrowDisplayer nInstance = new ArrowDisplayer(); _instances.Add(instanceName, nInstance); return(nInstance); }
protected void OnPointTargetDialogue(ContractorTopic topic) { Vector3 pos = topic.targetWorldPos; if (topic.arrowIcon != null) { UIObjectPointIcon nArrow = ArrowDisplayer.Instances("NotePad").UseArrow <UIObjectPointIcon>(250f, 0, true, pos, topic.arrowIcon, "NotePad"); BillboardElement be = Instantiate(itemBillboard, pos + (pos.normalized * 0.15f), Quaternion.identity) as BillboardElement; approachedItemsPos.Add(be); DontDestroyOnLoad(be); if (FtueManager.instance.active) { nArrow.AddCallBack(FtueManager.instance.ValidStep); } else { nArrow.AddCallBackPos(CleanBillboard, pos); } } else { UIObjectPointer nArrow = ArrowDisplayer.Instances("NotePad").UseArrow <UIObjectPointer>(250f, 0, true, pos, "NotePad"); BillboardElement be = Instantiate(itemBillboard, pos + (pos.normalized * 0.15f), Quaternion.identity) as BillboardElement; approachedItemsPos.Add(be); DontDestroyOnLoad(be); if (FtueManager.instance.active) { nArrow.AddCallBack(FtueManager.instance.ValidStep); } else { nArrow.AddCallBackPos(CleanBillboard, pos); } } }
private IEnumerator DisplayDrag(PointerFtueMove moveData) { int stepI = currentStepIndex; Vector3 pnjPos = Camera.main.WorldToScreenPoint(PlayerManager.Instance.GetNearestNPC().position); dragTarget.position = pnjPos; UIObjectPointer arrow = ArrowDisplayer.Instances("FtueTap").UseArrow <UIObjectPointer>(100f, -currentStep.pointRotation, false, clickTarget.transform as RectTransform, "FtueTap", false); arrow.SetAnimProperties(0f, 0f); float x = 0f; float t = 0f; while (currentStepIndex == stepI) { t = Mathf.Clamp(t + (Time.deltaTime * (1f / 1.2f)), 0f, 1f); x = Easing.CrossFade(Easing.SmoothStart, 3, Easing.SmoothStop, 3, t); clickTarget.transform.position = Vector3.Lerp(moveData.startTrf.position, dragTarget.position, x); if (t >= 1f) { t = 0f; } yield return(null); } ArrowDisplayer.Instances("FtueTap").DestroyArrow(arrow); }
protected void Awake() { if (_instance != null && _instance != this) { Destroy(this); throw new Exception("An instance of QuestManager already exists."); } else { _instance = this; } Events.Instance.AddListener <OnSwitchScene>(OnChangeScene); view = ECameraTargetType.MAP; ArrowDisplayer.Instances(ArrowDisplayerName).SetContainer(container as RectTransform); ArrowDisplayer.Instances(ArrowDisplayerName).SetModels(null, arrowModel); _questList = GetComponentsInChildren <UIQuest>(true); for (int i = 0; i < _questList.Length; i++) { _questList[i].Init(); Quests.Add(_questList[i].quest); } tweener.SetMethods(Tween, null, null, Disable); TweenerLead.Instance.NewTween(GetComponent <RectTransform>(), tweener); gameObject.SetActive(false); }
protected void ReceivePinch(OnPinchEnd e) { Events.Instance.RemoveListener <OnPinchEnd>(ReceivePinch); ftueText.gameObject.SetActive(false); ArrowDisplayer.Instances("FtueArrow").CleanArrows(); ArrowDisplayer.Instances("FtueTap").CleanArrows(); }
public void StartFTUE(OnStartFtue e) { Events.Instance.RemoveListener <OnStartFtue>(StartFTUE); currentStepIndex = startStep; currentStep = steps[startStep]; ArrowDisplayer.Instances("FtueArrow").SetContainer(transform as RectTransform); ArrowDisplayer.Instances("FtueArrow").SetModels(simpleModel, iconModel); ArrowDisplayer.Instances("FtueTap").SetContainer(transform as RectTransform); ArrowDisplayer.Instances("FtueTap").SetModels(pointTap, null); for (int i = 0; i < steps.Count; i++) { if (steps[i].ftueSprite != null) { SetFtueUIImageContainer(steps[i].ftueSprite, false); } if (steps[i].hiddenUI != null) { SetFtueUIImageContainer(steps[i].hiddenUI, false); } if (steps[i].titleImage != null) { SetFtueUIImageContainer(steps[i].titleImage, false); } } if (!gameObject.activeSelf) { gameObject.SetActive(true); } RunCurrentStep(); }
protected virtual void FollowTarget() { if (uiTarget) { Point(uiTarget.position); } else if (worldTarget != Vector3.zero) { Vector3 objScreenPos = Camera.main.WorldToScreenPoint(worldTarget); if (objScreenPos.z < 0) { objScreenPos.z = 0; objScreenPos.y = -objScreenPos.y; objScreenPos.x = -objScreenPos.x; Point(objScreenPos); } else { Point(Camera.main.WorldToScreenPoint(worldTarget)); } } Player playerTransform = PlayerManager.Instance.player; if (playerTransform != null && autoDestroy) { if (Vector3.Distance(worldTarget, playerTransform.transform.position) <= INTERACT_DISTANCE / 2f) { ActiveCallBacks(); ArrowDisplayer.Instances(_displayerInstanceName).DestroyArrow(this); } } }
public void ValidStep() { StopAllCoroutines(); playerFree = false; GetComponent <Image>().raycastTarget = true; Attach(); if (_uitargetContainer != null) { if (currentStep.UItarget != null) { currentStep.UItarget.transform.SetParent(_uitargetContainer); currentStep.UItarget.transform.SetSiblingIndex(_childIndex); } else if (currentStep.playerBtn != null) { currentStep.playerBtn.transform.SetParent(_uitargetContainer); currentStep.playerBtn.transform.SetSiblingIndex(_childIndex); } _uitargetContainer = null; } if (currentStep.targetTopic != -1) { NotePad.Instance.Topics[currentStep.targetTopic].gameObject.transform.SetParent(NotePad.Instance.gameObject.transform); NotePad.Instance.Topics[currentStep.targetTopic].SetColor(Color.white); } receiveTouch = false; activeInput = FtueInputs.NONE; currentStepIndex++; if (currentStepIndex >= steps.Count) { Clear(); } else { ftueText.gameObject.SetActive(false); ArrowDisplayer.Instances("FtueArrow").CleanArrows(); ArrowDisplayer.Instances("FtueTap").CleanArrows(); _clickableTransform = null; currentStep = steps[currentStepIndex]; Events.Instance.Raise(new OnFtueNextStep()); if (currentStep.targetTopic != -1 && !NotePad.Instance.Open) { Events.Instance.AddListener <OnFTUEOpenDialogue>(OpenDialogue); } else { RunCurrentStep(); } } }
public void PointTarget(Vector3 worldPos) { UIObjectPointer nArrow = ArrowDisplayer.Instances("NotePad").UseArrow <UIObjectPointer>(250f, 0, true, worldPos, "NotePad"); if (FtueManager.instance.active) { nArrow.AddCallBack(FtueManager.instance.ValidStep); } else { nArrow.AddCallBackPos(CleanBillboard, worldPos); } }
protected void OnChangeScene(OnSwitchScene e) { if (e.mode == ECameraTargetType.MAP) { view = ECameraTargetType.MAP; ArrowDisplayer.Instances(ArrowDisplayerName).SetActiveArrows(false); } else if (e.mode == ECameraTargetType.ZOOM) { view = ECameraTargetType.ZOOM; ArrowDisplayer.Instances(ArrowDisplayerName).SetActiveArrows(true); } DisplayQuest(); }
protected void Awake() { if (_instance != null) { throw new Exception("Tentative de création d'une autre instance de NotePad alors que c'est un singleton."); } _instance = this; Events.Instance.AddListener <OnSwitchScene>(OnChangeScene); Events.Instance.AddListener <OnGoToMenu>(GoToMenu); inTransition = false; topics = GetComponentsInChildren <NotepadTopic>(); ArrowDisplayer.Instances("NotePad").SetContainer(arrowContainer as RectTransform); ArrowDisplayer.Instances("NotePad").SetModels(simpleModel, iconModel); endInfo.gameObject.SetActive(false); }
protected void OnChangeScene(OnSwitchScene e) { if (e.mode == ECameraTargetType.MAP) { view = ECameraTargetType.MAP; ArrowDisplayer.Instances("NotePad").SetActiveArrows(false); ArrowDisplayer.Instances("FtueArrow").SetActiveArrows(false); SetBillBoardVisibility(false); } else if (e.mode == ECameraTargetType.ZOOM) { view = ECameraTargetType.ZOOM; ArrowDisplayer.Instances("NotePad").SetActiveArrows(true); ArrowDisplayer.Instances("FtueArrow").SetActiveArrows(true); SetBillBoardVisibility(true); } }
public void DisplayQuest() { ArrowDisplayer.Instances(ArrowDisplayerName).CleanArrows(); pinchSprite.gameObject.SetActive(false); if (_runningQuest == null || _runningQuest.validated) { return; } bool hasItem = InventoryPlayer.Instance.ContainItem(_runningQuest.itemType) != null; if (_runningQuest.step < 1 && !hasItem) { int pnjCount = InteractablePNJ.PNJs.Count; for (int i = 0; i < pnjCount; i++) { InteractablePNJ pnj = InteractablePNJ.PNJs[i]; if (pnj.IDname == _runningQuest.NGOtarget) { UIObjectPointIcon pointer = ArrowDisplayer.Instances(ArrowDisplayerName).UseArrow <UIObjectPointIcon>(350f, 0, true, pnj.transform.position, NGOSprite, ArrowDisplayerName, false); if (view == ECameraTargetType.MAP) { ArrowDisplayer.Instances(ArrowDisplayerName).SetActiveArrows(false); } } } return; } if (hasItem && _runningQuest.step < 1) { NextQuestStep(); return; } if (_runningQuest.step == 1) { if (!hasItem) { return; } if (_runningQuest.selectedActivity != EBudgetType.None) { NextQuestStep(); return; } else { if (view == ECameraTargetType.ZOOM) { pinchSprite.gameObject.SetActive(true); pinchSprite.GetComponent <Animator>().SetBool("pinch", false); } else { pinchSprite.gameObject.SetActive(false); } } } if (_runningQuest.step == 2) { if (!hasItem) { return; } CheckStep(_runningQuest); if (_runningQuest.validated) { return; } if (view == ECameraTargetType.MAP) { pinchSprite.gameObject.SetActive(true); pinchSprite.GetComponent <Animator>().SetBool("pinch", true); } else { int pnjCount = InteractablePNJ.PNJs.Count; for (int i = 0; i < pnjCount; i++) { InteractablePNJ pnj = InteractablePNJ.PNJs[i]; if (pnj.budgetComponent.type == _runningQuest.selectedActivity) { UIObjectPointIcon pointer = ArrowDisplayer.Instances(ArrowDisplayerName).UseArrow <UIObjectPointIcon>(350f, 0, true, pnj.transform.position, EntrepreneurSprite, ArrowDisplayerName, false); } } } } else { CheckStep(_runningQuest); } }
public void RunCurrentStep() { activeInput = currentStep.input; if (currentStep.text != null && currentStep.text != string.Empty) { ftueText.gameObject.SetActive(true); StartCoroutine(DisplayFtueStep(currentStep.text)); } else if (currentStep.input == FtueInputs.TOUCH) { StartCoroutine(DisplayFtueStep(string.Empty)); } if (currentStep.toDetach != null) { _detachContainer = currentStep.toDetach.parent; _childDetachIndex = GetChildIndex(currentStep.toDetach, _detachContainer); currentStep.toDetach.SetParent(transform); } if (currentStep.UItarget != null) { _uitargetContainer = currentStep.UItarget.transform.parent; _childIndex = GetChildIndex(currentStep.UItarget.transform, _uitargetContainer); currentStep.UItarget.transform.SetParent(transform); currentStep.UItarget.SetState(true); ArrowDisplayer.Instances("FtueTap").UseArrow <UIObjectPointer>(50f, currentStep.pointRotation, false, currentStep.UItarget.transform as RectTransform, "FtueTap"); } if (currentStep.toPointUI != null) { ArrowDisplayer.Instances("FtueArrow").UseArrow <UIObjectPointer>(50f, currentStep.pointRotation, false, currentStep.toPointUI, "FtueArrow"); } if (currentStep.specificPoint.pos != Vector3.zero) { if (currentStep.specificPoint.withArrow) { if (currentStep.specificPoint.icon != null) { NotePad.Instance.PointTarget(currentStep.specificPoint.pos, currentStep.specificPoint.icon); } else { NotePad.Instance.PointTarget(currentStep.specificPoint.pos); } } else { PlayerManager.Instance.player.SetPosCallBack(currentStep.specificPoint.pos, ValidStep); } } playerFree = currentStep.playerFree; if (playerFree) { GetComponent <Image>().raycastTarget = false; } if (currentStep.ftueSprite != null && currentStep.ftueSprite.Alpha < 1f) { SetFtueUIImageContainer(currentStep.ftueSprite, true, true); } if (currentStep.tapPosition != Vector2.zero) { clickTarget.gameObject.transform.localPosition = new Vector3(Screen.width * currentStep.tapPosition.x, Screen.height * currentStep.tapPosition.y, 0f); ArrowDisplayer.Instances("FtueTap").UseArrow <UIObjectPointer>(50f, 95f, false, clickTarget as RectTransform, "FtueTap", false); } if (currentStep.targetSmiley) { ArrowDisplayer.Instances("FtueArrow").UseArrow <UIObjectPointer>(75f, currentStep.pointRotation, false, UIManager.instance.PNJState.smileyRenderer.transform as RectTransform, "Ftue"); } if (currentStep.targetNPCIcon) { Transform nearestIconTrf = PlayerManager.Instance.GetNearestNPCIcon(); _clickableTransform = nearestIconTrf; ArrowDisplayer.Instances("FtueTap").UseArrow <UIObjectPointer>(50f, currentStep.pointRotation, false, nearestIconTrf.position, "FtueTap", false); } if (currentStep.pointNPCIcon) { Transform nearestIconTrf = PlayerManager.Instance.GetNearestNPCIcon(); ArrowDisplayer.Instances("FtueArrow").UseArrow <UIObjectPointer>(50f, currentStep.pointRotation, false, nearestIconTrf.position, "FtueArrow", false); } if (_clickableTransform != null) { clickTarget.gameObject.SetActive(true); clickTarget.position = Camera.main.WorldToScreenPoint(_clickableTransform.position); } if (currentStep.targetTopic != -1) { RectTransform topicTrf = NotePad.Instance.Topics[currentStep.targetTopic].GetComponent <RectTransform>(); NotePad.Instance.Topics[currentStep.targetTopic].gameObject.transform.SetParent(transform); NotePad.Instance.Topics[currentStep.targetTopic].SetColor(Color.green); ArrowDisplayer.Instances("FtueTap").UseArrow <UIObjectPointer>(50f, -90f, false, topicTrf, "FtueTap", false); Events.Instance.AddListener <OnActiveSelectTopic>(OnSelectTopic); } if (currentStep.playerBtn != null) { _uitargetContainer = currentStep.playerBtn.transform.parent; _childIndex = GetChildIndex(currentStep.playerBtn.transform, _uitargetContainer); currentStep.playerBtn.transform.SetParent(transform); ArrowDisplayer.Instances("FtueTap").UseArrow <UIObjectPointer>(25f, currentStep.pointRotation, false, currentStep.playerBtn.transform as RectTransform, "FtueTap"); Events.Instance.AddListener <SelectPlayer>(OnSelectPlayer); } if (currentStep.input == FtueInputs.PINCH) { pinchSprite.gameObject.SetActive(true); pinchSprite.GetComponent <Animator>().SetBool("pinch", true); Events.Instance.AddListener <OnPinchEnd>(ReceivePinch); Events.Instance.AddListener <OnEndFtuePinch>(ReceivePinch); Events.Instance.AddListener <OnInputFtuePinch>(DisablePinchSprite); } if (currentStep.drag.active) { StartCoroutine(DisplayDrag(currentStep.drag)); } if (currentStep.waitDezoom) { Events.Instance.AddListener <OnEndPanelZoom>(ReceiveZoomValidation); } }