Beispiel #1
0
    /// <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;
        }
    }
Beispiel #2
0
    /// <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;
        }
    }
Beispiel #3
0
    /// <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;
                }
            }
        }
    }