コード例 #1
0
ファイル: ItemSystem.cs プロジェクト: vic910/ChessSoul
    private void _onPacketArrived(Int32 _stream_id, PacketType _packet_type, GC_UpdateItems _msg)
    {
        for (Int32 i = 0; i < _msg.PropItemsCount; i++)
        {
            if (m_items.Count == 0)
            {
                m_items.Add(_msg.PropItems[i]);
            }

            else
            {
                for (Int32 j = 0; j < m_items.Count; j++)
                {
                    if (m_items[j].PropID == _msg.PropItems[i].PropID)
                    {
                        m_items[j].Count += _msg.PropItems[i].Count;
                        if (m_items[j].Count <= 0)
                        {
                            m_items.RemoveAt(j);
                        }
                        break;
                    }
                    if (j + 1 == m_items.Count)
                    {
                        m_items.Add(_msg.PropItems[i]);
                        break;
                    }
                }
            }
        }
        SignalSystem.FireSignal(SignalId.Item_Update);
    }
コード例 #2
0
 public void OnBeginDrag(PointerEventData eventData)
 {
     if (type == SocketType.Output)
     {
         SignalSystem.InvokeRequestConnFrom(this);
     }
 }
コード例 #3
0
    private void _onPacketArrived(Int32 _stream_id, PacketType _packet_type, GC_UpdateSale _msg)
    {
        for (int i = 0; i < _msg.UpdateCount; i++)
        {
            int type = _msg.SaleItems[i].SaleType;
            switch (type)
            {
            case 0:
                UpdateSaleItem(_msg.SaleItems[i], 1);    //减损
                break;

            case 1:
                UpdateSaleItem(_msg.SaleItems[i], 0);    //加倍
                break;

            case 6:
                UpdateSaleItem(_msg.SaleItems[i], 2);    //宝箱
                break;

            default:
                UpdateSaleItem(_msg.SaleItems[i], 3);    //其他
                break;
            }
        }
        SignalSystem.FireSignal(SignalId.Shop_Update);
    }
コード例 #4
0
        private void _onPacketArrived(Int32 _stream_id, PacketType _packet_type, GC_LoginFailedMsg _msg)
        {
            switch ((GC_LoginFailedMsg.ReasonInfo)_msg.Reason)
            {
            case GC_LoginFailedMsg.ReasonInfo.RET_SUCCESS:
            case GC_LoginFailedMsg.ReasonInfo.RET_SUCCESS_WITH_ITEM:
                break;

            case GC_LoginFailedMsg.ReasonInfo.ERROR_HAS_LOGINED:
            {
                string tip = Locale.Instance[string.Format("Login@{0}", (GC_LoginFailedMsg.ReasonInfo)(_msg.Reason)).ToString()];
                NetManager.Instance.RequestDisConnect();
                UI_MessageBox.Show(tip, Locale.Instance["Common@Confirm"], Locale.Instance["Common@Cancel"], () =>
                    {
                        SignalSystem.FireSignal(SignalId.Login_ForceLogin);
                    });
            }
            break;

            default:
            {
                string tip = Locale.Instance[string.Format("Login@{0}", (GC_LoginFailedMsg.ReasonInfo)(_msg.Reason)).ToString()];
                if (tip == string.Empty)
                {
                    UI_MessageBox.Show(((GC_LoginFailedMsg.ReasonInfo)(_msg.Reason)).ToString());
                }
                else
                {
                    UI_MessageBox.Show(tip);
                }
            }
            break;
            }
            WaitForResponse.Release();
        }
コード例 #5
0
ファイル: Menu.cs プロジェクト: Snorry0815/LudumDare29-
    private void ShowMainMenu()
    {
        float buttonWidth   = 200;
        float buttonHeight  = 40;
        float buttonOffeset = 20;

        float shiftY = buttonHeight + buttonOffeset;

        float posX = (Screen.width - buttonWidth) / 2f;
        float posY = Screen.height / 4f;

        if (GUI.Button(new Rect(posX, posY, buttonWidth, buttonHeight), "Play"))
        {
            GameState.GetInstance().MainState = MainState.GAME;
            if (GameState.GetInstance().GameSubState == GameSubState.LOST)
            {
                GameState.GetInstance().GameSubState = GameSubState.RUNNING;
                SignalSystem.SignalTriggered(new ResetSignal());
            }
            Time.timeScale = 1;
        }

        posY += shiftY;
        if (GUI.Button(new Rect(posX, posY, buttonWidth, buttonHeight), "Exit"))
        {
            Application.Quit();
        }
        posY += shiftY;
    }
コード例 #6
0
ファイル: ChatSystem.cs プロジェクト: vic910/ChessSoul
 private void _onPacketArrived(Int32 _stream_id, PacketType _packet_type, GC_ChatMsg _msg)
 {
     switch ((EChatType)_msg.ChatType)
     {
     case EChatType.CHAT_HALL:
     case EChatType.CHAT_ROOM:
     case EChatType.CHAT_CLUB:
     case EChatType.CHAT_TRADE:
     {
         if (ChatInfo.ContainsKey(_msg.ChatType))
         {
             if (ChatInfo[_msg.ChatType].Count >= MaxChatCount)
             {
                 ChatInfo[_msg.ChatType].RemoveFirst();
             }
             ChatInfo[_msg.ChatType].AddLast(_msg);
         }
         else
         {
             LinkedList <GC_ChatMsg> chats = new LinkedList <GC_ChatMsg>();
             chats.AddLast(_msg);
             ChatInfo.Add(_msg.ChatType, chats);
         }
         SignalSystem.FireSignal(SignalId.Chat_ReceiveChat, _msg);
     }
     break;
     }
 }
コード例 #7
0
            /// <summary>
            /// 用于时间同步的timer
            /// </summary>
            //private Timer m_timer_sync_time;


            public override void Enter()
            {
                NetManager.Instance.Register <DisconnectMsg>(_onConnectionClosed);
                //Entity.m_net_client_gamesrv.Register<DisconnectMsg>( DisconnectMsg.MyMessageId, _onConnectionClosed );
                //Entity.m_net_client_gamesrv.Register<Msg_gc_ConnectionClosed>( Msg_gc_ConnectionClosed.MyMessageId, _onGameSrvCloseConnection );
                //Entity.m_net_client_gamesrv.Register<Msg_gc_Heartbeat>( Msg_gc_Heartbeat.MyMessageId, _onHeartbeatReceived );
                Utility.Log.Info("成功登录GameSrv");
                SignalSystem.FireSignal(SignalId.NetworkState_EnterConnected);

                //Main.Instance.eventOnApplicationPause += _onApplicationPause;
                //_startSyncTime();
                //_sendHeartbeat();
                // 处理之前缓存的消息
                if (Entity.m_msg_buffer.Count == 0)
                {
                    return;
                }
                MessageBase msg = Entity.m_msg_buffer.Dequeue();

                while (true)
                {
                    Entity.SendMsg(msg);
                    if (Entity.m_msg_buffer.Count == 0)
                    {
                        break;
                    }
                    msg = Entity.m_msg_buffer.Dequeue();
                }
            }
コード例 #8
0
ファイル: AppStateLogin.cs プロジェクト: vic910/ChessSoul
 public override void OnExit()
 {
     //SignalSystem.Unregister( SignalId.NetworkState_EnterConnected, _enterNetworkConnectedState );
     SignalSystem.Unregister(SignalId.Login_Success, _loginSuccess);
     LoginSystem.Instance.Uninitialize();
     UIManager.Instance.HideUI("ui_login");
 }
コード例 #9
0
 // Update is called once per frame
 void Update()
 {
     if (Input.GetKey(KeyCode.UpArrow))
     {
         rigidbody.AddForce(new Vector3(0f, 0f, this.force));
     }
     else if (Input.GetKey(KeyCode.DownArrow))
     {
         rigidbody.AddForce(new Vector3(0f, 0f, -this.force));
     }
     else if (Input.GetKey(KeyCode.LeftArrow))
     {
         rigidbody.AddForce(new Vector3(-this.force, 0f, 0f));
     }
     else if (Input.GetKey(KeyCode.RightArrow))
     {
         rigidbody.AddForce(new Vector3(this.force, 0f, 0f));
     }
     else if (Input.GetKey(KeyCode.Space))
     {
         GameState.GetInstance().MainState = MainState.GAME;
         if (GameState.GetInstance().GameSubState == GameSubState.LOST)
         {
             GameState.GetInstance().GameSubState = GameSubState.RUNNING;
             SignalSystem.SignalTriggered(new ResetSignal());
         }
         Time.timeScale = 1;
     }
 }
コード例 #10
0
 void OnCollisionEnter(Collision collision)
 {
     SignalSystem.SignalTriggered(new PointSignal(Points));
     if (isSwitch)
     {
         SignalSystem.SignalTriggered(new OpenForceFieldSignal());
     }
 }
コード例 #11
0
    public override float PreShow(UI_Base _pre_ui, params object[] _args)
    {
        //显示上次登陆的用户名
        m_edit_account.text  = LocalConfigSystem.Instacne.GetOptionConfig("CurrentAccount");
        m_edit_password.text = LocalConfigSystem.Instacne.GetOptionConfig("CurrentPassword");

        SignalSystem.Register(SignalId.Login_ForceLogin, _forceLogin);
        return(m_entrance_anim_time);
    }
コード例 #12
0
 /// <summary>
 /// 购买失败
 /// </summary>
 /// <param name="_stream_id"></param>
 /// <param name="_packet_type"></param>
 /// <param name="_msg"></param>
 private void _onPacketArrived(Int32 _stream_id, PacketType _packet_type, GC_Buy _msg)
 {
     m_buyRetItem_attr.Clear();
     for (int i = 0; i < _msg.BuyStatusCount; i++)
     {
         m_buyRetItem_attr.Add(_msg.BuyStatusItem[i]);
     }
     SignalSystem.FireSignal(SignalId.BuyFail_Update);
 }
コード例 #13
0
        private void _onPacketArrived(Int32 _stream_id, PacketType _packet_type, GC_LoginOK _msg)
        {
            WaitForResponse.Release();
            Log.Info("收到玩家数据");
            MainPlayer.Instance.InitializePlayerInfo(_msg.PlayerInfo);
            SignalSystem.FireSignal(SignalId.Login_Success);

            //登陆成功后更新本地配置中的账户名
            LocalConfigSystem.Instacne.UpdateCurAccount(CurAccount);
            LocalConfigSystem.Instacne.Update("CurrentPassword", CurPassword);
        }
コード例 #14
0
    void Start()
    {
        Time.timeScale = 0;
        Reset();
        GameState.GetInstance().MainState = MainState.MENU;

        SignalSystem.AddListener <DamageSignal>(this);
        SignalSystem.AddListener <PointSignal>(this);
        SignalSystem.AddListener <OpenForceFieldSignal>(this);
        SignalSystem.AddListener <ResetSignal>(this);
    }
コード例 #15
0
    public void OnEndDrag(PointerEventData eventData)
    {
        foreach (var item in eventData.hovered)
        {
            var input = item.GetComponent <SocketInput>();
            if (input != null)
            {
                SignalSystem.InvokeOutputSocketDragDropTo(input);
                return;
            }
        }

        SignalSystem.InvokeOutputSocketDragDropTo(null);
    }
コード例 #16
0
ファイル: AppStateLogin.cs プロジェクト: vic910/ChessSoul
 public override void OnEnter()
 {
     //SignalSystem.Register( SignalId.NetworkState_EnterConnected, _enterNetworkConnectedState );
     SignalSystem.Register(SignalId.Login_Success, _loginSuccess);
     UIManager.Instance.CreateTitle();
     UIManager.Instance.ShowUI("ui_login");
     LoginSystem.Instance.Initialize();
     //由于登录成功后服务器马上发其他消息 所以这些消息的注册放到这
     RoomSystem.Instance.Initialize();
     LobbySystem.Instance.Initialize();
     EMailSystem.Instance.Initialize();
     ItemSystem.Instance.Initialize();
     ShopSystem.Instance.Initialize();
 }
コード例 #17
0
    public void OnEndDrag(PointerEventData eventData)
    {
        foreach (var item in eventData.hovered)
        {
            var socket = item.GetComponent <Socket>();
            if (socket != null && socket.type == SocketType.Input)
            {
                SignalSystem.InvokeRequestSuccesWith(socket);
                return;
            }
        }

        SignalSystem.InvokeRequestFailed();
    }
コード例 #18
0
 public void HitSwitch()
 {
     --this.switchCount;
     if (this.switchCount <= 0)
     {
         if (this.forceField != null)
         {
             SignalSystem.SignalTriggered(new PlaySound(3));
             Destroy(this.forceField);
             this.forceField  = null;
             this.deleteTiles = true;
             this.life        = Mathf.Min(this.life + 5, 17);
             this.hard       -= 0.1f;
         }
     }
 }
コード例 #19
0
ファイル: MainPlayer.cs プロジェクト: vic910/ChessSoul
 private void _onPacketArrived(Int32 _stream_id, PacketType _packet_type, GC_UpdateDeltaGold _msg)
 {
     if (_msg.DeltaGold < 0)
     {
         UInt64 deltaMoney = Convert.ToUInt64(_msg.DeltaGold);
         if (PlayerInfo.Gold < deltaMoney)
         {
             PlayerInfo.Gold = 0;
         }
         else
         {
             PlayerInfo.Gold -= Convert.ToUInt32(_msg.DeltaGold);
         }
     }
     PlayerInfo.Gold += Convert.ToUInt32(_msg.DeltaGold);
     SignalSystem.FireSignal(SignalId.Gold_Update, PlayerInfo.Gold);
 }
コード例 #20
0
ファイル: Collector.cs プロジェクト: Snorry0815/LudumDare29-
 void OnTriggerEnter(Collider col)
 {
     Destroy(col.gameObject);
     SignalSystem.SignalTriggered(new PointSignal(10));
     SignalSystem.SignalTriggered(new PlaySound(0));
 }
コード例 #21
0
ファイル: UI_Chat.cs プロジェクト: vic910/ChessSoul
 public override float PreShow(UI_Base _pre_ui, params object[] _args)
 {
     SignalSystem.Register(SignalId.Chat_ReceiveChat, _receivePlayerChat);
     _updateChat();
     return(m_entrance_anim_time);
 }
コード例 #22
0
ファイル: SignalSystem.cs プロジェクト: hagish/robot-lab
 public void Awake()
 {
     Instance = this;
 }
コード例 #23
0
ファイル: Damage.cs プロジェクト: Snorry0815/LudumDare29-
 void OnCollisionEnter(Collision collision)
 {
     SignalSystem.SignalTriggered(new DamageSignal(-1));
 }
コード例 #24
0
 public void OnDrag(PointerEventData eventData)
 {
     SignalSystem.InvokeNodePointerDrag(_parentNode, eventData);
 }
コード例 #25
0
 public void OnPointerClick(PointerEventData eventData)
 {
     SignalSystem.InvokeNodePointerClick(_parentNode, eventData);
 }
コード例 #26
0
 public void OnPointerClick(PointerEventData eventData)
 {
     SignalSystem.InvokeOutputSocketClick(this, eventData);
 }
コード例 #27
0
 public override void OnHide(UI_Base _next_ui)
 {
     SignalSystem.Unregister(SignalId.Login_ForceLogin, _forceLogin);
 }
コード例 #28
0
 public void OnDrag(PointerEventData eventData)
 {
     SignalSystem.InvokeSocketDragFrom(this);
 }
コード例 #29
0
 public void SignalTrigered(DamageSignal damage)
 {
     ChangeLife(damage.Damage);
     SignalSystem.SignalTriggered(new PlaySound(4));
 }
コード例 #30
0
ファイル: UI_Chat.cs プロジェクト: vic910/ChessSoul
 public override void OnHide(UI_Base _next_ui)
 {
     SignalSystem.Unregister(SignalId.Chat_ReceiveChat, _receivePlayerChat);
 }