コード例 #1
0
ファイル: MailBoxUI.cs プロジェクト: zukeru/ageofasura
 public void OnEvent(AtavismEventData eData)
 {
     if (eData.eventType == "MAIL_UPDATE")
     {
         // Update
         if (!open) {
             ToggleOpen();
         }
         if (viewingMail != null) {
             // Update the viewingMail
             viewingMail = ClientAPI.ScriptObject.GetComponent<Mailing>().GetMailEntryById(viewingMail.mailId);
         }
     }
     else if (eData.eventType == "MAIL_SENT")
     {
         mailboxState = MailBoxStateEnum.Menu;
         ClearItems();
     }
 }
コード例 #2
0
ファイル: MailBoxUI.cs プロジェクト: zukeru/ageofasura
    void DrawMailMenu()
    {
        GUILayout.Label("Inbox:");
        //GUILayout.Box ("Email Received goes here", GUILayout.Height(220));
        int startingItem = currentPage * mailPerPage;
        for (int i = 0; i < mailPerPage; i++)
        {
            GUILayout.BeginHorizontal();
            MailEntry entry = ClientAPI.ScriptObject.GetComponent<Mailing>().GetMailEntry(startingItem + i);
            if (entry != null) {
                if (GUILayout.Button(entry.senderName + " - " + entry.subject))
                {
                    viewingMail = entry;
                    if (!viewingMail.read)
                        ClientAPI.ScriptObject.GetComponent<Mailing>().SetMailRead(viewingMail);
                    mailboxState = MailBoxStateEnum.ReadMail;
                }
            }
            GUILayout.EndHorizontal();
        }

        GUILayout.BeginHorizontal();
        // Buttons to move between pages
        if (currentPage != 0)
        {
            if (GUI.Button(new Rect(uiRect.x + 3, uiRect.yMax - 23, 20, 20), ">"))
            {
                currentPage--;
            }
        }
        int maxMailCount = mailPerPage * (currentPage + 1);
        if (ClientAPI.ScriptObject.GetComponent<Mailing>().MailList.Count > maxMailCount)
        {
            if (GUI.Button(new Rect(uiRect.xMax - 23, uiRect.yMax - 23, 20, 20), ">"))
            {
                currentPage++;
            }
        }
        GUILayout.EndHorizontal();
        GUILayout.FlexibleSpace();

        // Action Buttons
        GUILayout.BeginHorizontal();
        /*GUILayout.BeginVertical ();
        if (GUILayout.Button ("Read")) {
            mailboxState = MailBoxStateEnum.ReadMail;
        }
        GUILayout.EndVertical ();*/
        GUILayout.BeginVertical ();
        if (GUILayout.Button ("Write New Mail")) {
            ClientAPI.ScriptObject.GetComponent<Mailing>().StartComposingMail();
            mailboxState = MailBoxStateEnum.NewMail;
        }
        GUILayout.EndVertical ();
        GUILayout.FlexibleSpace();
        /*GUILayout.BeginVertical ();
        if (GUILayout.Button ("Delete")) {
            mailboxState = MailBoxStateEnum.DeleteMail;
        }
        GUILayout.EndVertical ();*/
        GUILayout.EndHorizontal();
        GUILayout.Space(10);
    }
コード例 #3
0
ファイル: MailBoxUI.cs プロジェクト: zukeru/ageofasura
    // Use this for initialization
    void Start()
    {
        mailboxState = MailBoxStateEnum.Menu;
        SetupRect();

        height = (rowCount+1) * buttonSize + 120;
        width = columnCount * buttonSize + 24;

        // Register for
        AtavismEventSystem.RegisterEvent("MAIL_UPDATE", this);
        AtavismEventSystem.RegisterEvent("MAIL_SENT", this);
    }
コード例 #4
0
ファイル: MailBoxUI.cs プロジェクト: zukeru/ageofasura
    void OnGUI()
    {
        if (!open)
            return;

        GUI.depth = uiLayer;
        GUI.Box(uiRect, "");
        GUILayout.BeginArea(new Rect(uiRect));

        // Top Bar
        GUILayout.BeginHorizontal();
        GUILayout.Label("Mailbox");
        GUILayout.FlexibleSpace();

        if (GUILayout.Button("X")) {
            ClearItems();
            ToggleOpen();
            mailboxState = MailBoxStateEnum.Menu;
        }
        GUILayout.EndHorizontal();

        if (ClientAPI.ScriptObject.GetComponent<Mailing>() == null)
        {
            Debug.Log("Wmail is null");
            return;
        }

        if (mailboxState == MailBoxStateEnum.Menu) {
            DrawMailMenu ();
        } else if (mailboxState == MailBoxStateEnum.ReadMail) {
            DrawReadMail ();
        } else if (mailboxState == MailBoxStateEnum.NewMail) {
            DrawMailNew ();
        } else {
            Debug.Log ("invalid state");
        }

        GUILayout.EndArea();
    }
コード例 #5
0
ファイル: MailBoxUI.cs プロジェクト: zukeru/ageofasura
    void DrawReadMail()
    {
        GUILayout.Label("From: " + viewingMail.senderName);
        GUILayout.Label("Subject: " + viewingMail.subject);
        GUILayout.Label("Message:");
        GUILayout.Label(viewingMail.message);

        List<MailItem> items = viewingMail.items;
        if (items == null)
        {
            Debug.Log("Mail Items is null");
            return;
        }

        GUILayout.Label("Attachments:");
        for (int i = 0; i < rowCount; i++)
        {
            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            for (int j = 0; j < columnCount; j++)
            {
                int itemPos = i * columnCount + j;
                if (items[itemPos].item != null)
                {
                    if (GUILayout.Button(items[itemPos].item.icon, GUILayout.Width(buttonSize), GUILayout.Height(buttonSize)))
                    {
                        if (!AtavismCursor.Instance.CursorHasItem())
                        {
                            if (viewingMail.cashOnDelivery)
                            {
                                // Show confirmation box
                                string currencyName = ClientAPI.ScriptObject.GetComponent<Inventory>().GetCurrencyName(viewingMail.currencyType);
                                string message = "This mail has a Cash on Delivery amount of " + viewingMail.currencyAmount + " " + currencyName + ". Pay the CoD amount?";
                                AtavismUIManager.Instance.ShowConfirmationBox(message, null, gameObject, "ConfirmedPayCoD");
                                wantedItem = itemPos;
                            }
                            else
                            {
                                // Send take item message
                                ClientAPI.ScriptObject.GetComponent<Mailing>().TakeMailItem(viewingMail, itemPos);
                            }
                        }
                    }
                    Vector3 mousePosition = Input.mousePosition;
                    mousePosition.y = Screen.height - mousePosition.y;
                }
            }
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
        }

        if (viewingMail.currencyAmount > 0) {
            GUILayout.BeginHorizontal();
            if (viewingMail.cashOnDelivery) {
                GUILayout.Label("Cash on Delivery: " + viewingMail.currencyAmount + " "
                    + ClientAPI.ScriptObject.GetComponent<Inventory>().mainCurrency.name);
            } else {
                GUILayout.Label(viewingMail.currencyAmount + " " + ClientAPI.ScriptObject.GetComponent<Inventory>().mainCurrency.name);
                if (GUILayout.Button("Take " + ClientAPI.ScriptObject.GetComponent<Inventory>().mainCurrency.name)) {
                    ClientAPI.ScriptObject.GetComponent<Mailing>().TakeMailItem(viewingMail, -1);
                }
            }
            GUILayout.EndHorizontal();
        }

        GUILayout.BeginHorizontal();
        if (GUILayout.Button("Reply", GUILayout.Width(75)))
        {
            ClientAPI.ScriptObject.GetComponent<Mailing>().StartComposingMail(viewingMail.senderName);
            mailboxState = MailBoxStateEnum.NewMail;
        }
        GUILayout.FlexibleSpace();
        if (GUILayout.Button("Return", GUILayout.Width(75)))
        {
            ClientAPI.ScriptObject.GetComponent<Mailing>().ReturnMail(viewingMail);
            mailboxState = MailBoxStateEnum.Menu;
        }
        GUILayout.FlexibleSpace();
        if (!viewingMail.cashOnDelivery) {
            if (GUILayout.Button("Delete", GUILayout.Width(75)))
            {
                ClientAPI.ScriptObject.GetComponent<Mailing>().DeleteMail(viewingMail);
                mailboxState = MailBoxStateEnum.Menu;
            }
        }
        GUILayout.FlexibleSpace();
        GUILayout.EndHorizontal();
        GUILayout.Space(20);
        GUILayout.BeginHorizontal();
        GUILayout.FlexibleSpace();
        if (GUILayout.Button("Back", GUILayout.Width(80)))
        {
            mailboxState = MailBoxStateEnum.Menu;
        }
        GUILayout.EndHorizontal();
    }
コード例 #6
0
ファイル: MailBoxUI.cs プロジェクト: zukeru/ageofasura
    void DrawMailNew()
    {
        MailEntry mailBeingComposed = ClientAPI.ScriptObject.GetComponent<Mailing>().MailBeingComposed;
        GUILayout.BeginHorizontal();
        GUILayout.Label ("To:", GUILayout.Width(60));
        mailBeingComposed.senderName = GUILayout.TextField(mailBeingComposed.senderName, 25, GUILayout.Width(120));
        GUILayout.EndHorizontal ();

        GUILayout.BeginHorizontal();
        GUILayout.Label ("Subject:", GUILayout.Width(60));
        mailBeingComposed.subject = GUILayout.TextField(mailBeingComposed.subject, 50, GUILayout.Width(120));
        GUILayout.EndHorizontal ();

        GUILayout.BeginVertical ();
        GUILayout.Label ("Message:", GUILayout.Width(100));
        mailBeingComposed.message = GUILayout.TextArea(mailBeingComposed.message, 500, GUILayout.Height(120));
        GUILayout.EndVertical ();

        List<MailItem> items = mailBeingComposed.items;
        if (items == null)
        {
            Debug.Log("GridItem is null");
            return;
        }

        GUILayout.Label("Attachments:");
        for (int i = 0; i < rowCount; i++) {
            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            for (int j = 0; j < columnCount; j++) {
                int itemPos = i * columnCount + j;
                if (items[itemPos].item != null)
                {
                    if (GUILayout.Button(items[itemPos].item.icon, GUILayout.Width(buttonSize), GUILayout.Height(buttonSize)))
                    {
                        if (AtavismCursor.Instance.CursorHasItem())
                        {
                            items[itemPos].item = AtavismCursor.Instance.GetCursorItem();
                        }
                        else
                        {
                            AtavismCursor.Instance.SetCursorItem(items[itemPos].item);
                            ClientAPI.ScriptObject.GetComponent<Mailing>().SetMailItem(itemPos, null);
                        }
                    }
                    Vector3 mousePosition = Input.mousePosition;
                    mousePosition.y = Screen.height - mousePosition.y;
                } else {
                    if (GUILayout.Button("", GUILayout.Width(buttonSize), GUILayout.Height(buttonSize))) {
                        if (AtavismCursor.Instance.CursorHasItem()) {
                            AtavismInventoryItem item = AtavismCursor.Instance.GetCursorItem();
                            ClientAPI.ScriptObject.GetComponent<Mailing>().SetMailItem(itemPos, item);
                            AtavismCursor.Instance.ResetCursor();
                        }
                    }
                }
            }
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
        }

        GUILayout.BeginHorizontal();
        GUILayout.Label("Amount To Send:");
        mailBeingComposed.currencyAmount = int.Parse(GUILayout.TextArea("" + mailBeingComposed.currencyAmount));
        mailBeingComposed.currencyType = ClientAPI.ScriptObject.GetComponent<Inventory>().mainCurrency.id;
        GUILayout.Box(ClientAPI.ScriptObject.GetComponent<Inventory>().mainCurrency.icon);
        GUILayout.EndHorizontal();
        GUILayout.BeginHorizontal();
        mailBeingComposed.cashOnDelivery = !GUILayout.Toggle(!mailBeingComposed.cashOnDelivery, "Send Money");
        mailBeingComposed.cashOnDelivery = GUILayout.Toggle(mailBeingComposed.cashOnDelivery, "Cash on Delivery");
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal();
        if (GUILayout.Button("Send", GUILayout.Width(80)))
        {
            // Send the mail here
            ClientAPI.ScriptObject.GetComponent<Mailing>().SendMail();
        }
        GUILayout.FlexibleSpace();
        if (GUILayout.Button("Cancel", GUILayout.Width(80)))
        {
            mailboxState = MailBoxStateEnum.Menu;
            ClearItems();
        }
        GUILayout.EndHorizontal();
    }