/// <summary> /// Mouse click -> Right: Actor Action Menu /// </summary> public void OnPointerClick(PointerEventData eventData) { GlobalSide playerSide = GameManager.i.sideScript.PlayerSide; bool proceedFlag = true; AlertType alertType = AlertType.None; switch (eventData.button) { case PointerEventData.InputButton.Left: if (GameManager.i.optionScript.isPlayerLeftMenu == true) { //player review TabbedUIData tabbedDetails = new TabbedUIData() { side = playerSide, who = TabbedUIWho.Player, slotID = 0, }; EventManager.i.PostNotification(EventType.TabbedOpen, this, tabbedDetails, "PlayerClickUI.cs -> OnPointerClick"); } else { GameManager.i.guiScript.SetAlertMessageModalOne(AlertType.TutorialDossierUnavailable); } break; case PointerEventData.InputButton.Right: if (GameManager.i.guiScript.CheckIsBlocked() == false) { //Action Menu -> not valid if AI is active for side if (GameManager.i.sideScript.CheckInteraction() == false) { proceedFlag = false; alertType = AlertType.SideStatus; } if (GameManager.i.playerScript.status != ActorStatus.Active) { proceedFlag = false; alertType = AlertType.PlayerStatus; } if (GameManager.i.optionScript.isPlayerRightMenu == false) { proceedFlag = false; alertType = AlertType.TutorialMenuUnavailable; } /*//Action Menu -> not valid if Player inactive * else if (GameManager.instance.playerScript.status != ActorStatus.Active) * { proceedFlag = false; alertType = AlertType.PlayerStatus; }*/ //proceed if (proceedFlag == true) { //adjust position prior to sending Vector3 position = transform.position; position.x += 25; position.y -= 50; position = Camera.main.ScreenToWorldPoint(position); //actor ModalGenericMenuDetails details = new ModalGenericMenuDetails() { itemID = 1, itemName = GameManager.i.playerScript.PlayerName, itemDetails = menuHeaderRightClick, menuPos = position, listOfButtonDetails = GameManager.i.actorScript.GetPlayerActions(), menuType = ActionMenuType.Player }; //close Player tooltip GameManager.i.tooltipPlayerScript.CloseTooltip(); //activate menu GameManager.i.actionMenuScript.SetActionMenu(details); } else { //explanatory message if (alertType != AlertType.None) { GameManager.i.guiScript.SetAlertMessageModalOne(alertType); } } } break; default: Debug.LogWarningFormat("Unknown InputButton \"{0}\"", eventData.button); break; } }
/// <summary> /// Mouse click -> Right: Actor Action Menu /// </summary> public void OnPointerClick(PointerEventData eventData) { GlobalSide playerSide = GameManager.i.sideScript.PlayerSide; bool proceedFlag = true; switch (eventData.button) { case PointerEventData.InputButton.Left: if (GameManager.i.guiScript.CheckIsBlocked(2) == false) { switch (type) { case ModalInventorySubState.HQ: if (GameManager.i.optionScript.isActorLeftMenu == true) { //HQ actor review TabbedUIData tabbedDetailsHq = new TabbedUIData() { side = playerSide, who = TabbedUIWho.HQ, slotID = actorSlotID, modalLevel = 2, modalState = ModalSubState.Inventory }; EventManager.i.PostNotification(EventType.TabbedOpen, this, tabbedDetailsHq, "InventoryInteraction.cs -> OnPointerClick"); } break; case ModalInventorySubState.ReservePool: if (GameManager.i.optionScript.isActorLeftMenu == true) { //Reserves actor review TabbedUIData tabbedDetailsReserves = new TabbedUIData() { side = playerSide, who = TabbedUIWho.Reserves, slotID = actorSlotID, modalLevel = 2, modalState = ModalSubState.Inventory }; EventManager.i.PostNotification(EventType.TabbedOpen, this, tabbedDetailsReserves, "InventoryInteraction.cs -> OnPointerClick"); } break; } } break; case PointerEventData.InputButton.Right: if (GameManager.i.guiScript.CheckIsBlocked(2) == false) { //Action Menu -> not valid if Resistance Plyr and player captured, etc. if (GameManager.i.playerScript.status != ActorStatus.Active) { proceedFlag = false; } if (proceedFlag == true) { switch (type) { case ModalInventorySubState.Gear: Gear gear = GameManager.i.dataScript.GetGear(optionName); if (gear != null) { //adjust position prior to sending Vector3 position = transform.position; position.x += 25; position.y -= 50; position = Camera.main.ScreenToWorldPoint(position); //gear ModalGenericMenuDetails details = new ModalGenericMenuDetails() { /*itemID = gear.gearID,*/ itemName = gear.tag, modalLevel = 2, modalState = ModalSubState.Inventory, itemDetails = string.Format("{0}", gear.type.name), menuPos = position, listOfButtonDetails = GameManager.i.actorScript.GetGearInventoryActions(gear.name), menuType = ActionMenuType.Gear }; //activate menu GameManager.i.actionMenuScript.SetActionMenu(details); } else { Debug.LogError(string.Format("Invalid Gear (Null) for gearID / optionData {0}", optionData)); } break; case ModalInventorySubState.ReservePool: if (GameManager.i.optionScript.isActorRightMenu == true) { Actor actor = GameManager.i.dataScript.GetActor(optionData); if (actor != null) { //adjust position prior to sending Vector3 position = transform.position; position.x += 25; position.y -= 50; position = Camera.main.ScreenToWorldPoint(position); //reserve actions menu ModalGenericMenuDetails details = new ModalGenericMenuDetails() { itemID = actor.actorID, itemName = actor.actorName, modalLevel = 2, modalState = ModalSubState.Inventory, itemDetails = string.Format("{0} ID {1}", actor.arc.name, actor.actorID), menuPos = position, listOfButtonDetails = GameManager.i.actorScript.GetReservePoolActions(actor.actorID), menuType = ActionMenuType.Reserve }; //activate menu GameManager.i.actionMenuScript.SetActionMenu(details); } else { Debug.LogError(string.Format("Invalid Actor (Null) for actorID / optionData {0}", optionData)); } } break; //NOTE: no default option as some SubStates, eg. HQ don't have a Right click option } } else { //player not active GameManager.i.guiScript.SetAlertMessageModalTwo(AlertType.PlayerStatus, ModalSubState.Inventory); } } break; default: Debug.LogError("Unknown InputButton"); break; } }
/// <summary> /// Mouse click -> Left: Dossier, Right: Actor Action Menu /// </summary> public void OnPointerClick(PointerEventData eventData) { if (GameManager.i.optionScript.isSubordinates == true) { GlobalSide playerSide = GameManager.i.sideScript.PlayerSide; bool proceedFlag = true; int data = -1; AlertType alertType = AlertType.None; //is there an actor in this slot? if (GameManager.i.dataScript.CheckActorSlotStatus(actorSlotID, playerSide) == true) { //close actor tooltip GameManager.i.tooltipActorScript.CloseTooltip("ActorClickUI.cs -> OnPointerClick"); //which button switch (eventData.button) { case PointerEventData.InputButton.Left: if (GameManager.i.optionScript.isActorLeftMenu == true) { //actor review TabbedUIData tabbedDetails = new TabbedUIData() { side = playerSide, who = TabbedUIWho.Subordinates, slotID = GameManager.i.dataScript.GetActorPosition(actorSlotID, playerSide), }; EventManager.i.PostNotification(EventType.TabbedOpen, this, tabbedDetails, "ActorClickUI.cs -> OnPointerClick"); } else { GameManager.i.guiScript.SetAlertMessageModalOne(AlertType.TutorialDossierUnavailable); } break; case PointerEventData.InputButton.Right: if (GameManager.i.guiScript.CheckIsBlocked() == false) { //Action Menu -> not valid if AI is active for side if (GameManager.i.sideScript.CheckInteraction() == false) { proceedFlag = false; alertType = AlertType.SideStatus; } //Action Menu -> not valid if Player inactive else if (GameManager.i.playerScript.status != ActorStatus.Active) { proceedFlag = false; alertType = AlertType.PlayerStatus; } else if (GameManager.i.optionScript.isActorRightMenu == false) { proceedFlag = false; alertType = AlertType.TutorialMenuUnavailable; } Actor actor = GameManager.i.dataScript.GetCurrentActor(actorSlotID, playerSide); if (actor != null) { if (actor.Status != ActorStatus.Active) { proceedFlag = false; alertType = AlertType.ActorStatus; data = actor.actorID; } //proceed if (proceedFlag == true) { //adjust position prior to sending Vector3 position = transform.position; position.x += 25; position.y -= 50; position = Camera.main.ScreenToWorldPoint(position); //actor ModalGenericMenuDetails genericDetails = new ModalGenericMenuDetails() { itemID = actor.slotID, itemName = actor.actorName, itemDetails = string.Format("{0} ID {1}", actor.arc.name, actor.actorID), menuPos = position, listOfButtonDetails = GameManager.i.actorScript.GetActorActions(actorSlotID), menuType = ActionMenuType.Actor }; //activate menu GameManager.i.actionMenuScript.SetActionMenu(genericDetails); } else { //explanatory message if (alertType != AlertType.None) { GameManager.i.guiScript.SetAlertMessageModalOne(alertType, data); } } } else { Debug.LogError(string.Format("Invalid actor (Null) for actorSlotID {0}", actorSlotID)); } } break; } } } }