private void CorporationUpdate(Corporation cb)
    {
        if (null == cb)
        {
            return;
        }
        if (!corps.ContainsKey(cb.ID))
        {
            Corporation corp = new Corporation(cb.ID);
            AddObject(corp);
            corps.Add(corp.ID, corp);
        }
        eventHolder.AddRange(corps[cb.ID].Update(cb));

        if (LocalCorporation == null && cb.Owner == LocalCharacterID)
        {
            LocalCorporation = corps[cb.ID];
            MyShipList.SetLocalCorp(cb.ID);
        }
    }
Exemple #2
0
 private void Start()
 {
     list           = LocalDataManager.instance.MyShipList;
     list.OnChange += OnChange;
     OnChange();
 }
    private IEnumerator Prepare(int id)
    {
        MyShipList = new MyShipList(this);

        //charger la current Frame
        long          frameReqID   = WideDataManager.Request(new GetCurrentFrameRequest());
        bool          waitForFrame = true;
        RequestIDDone frameMethCB  = delegate(Request r) {
            if (r.RequestID == frameReqID)
            {
                GetCurrentFrameRequest g = r as GetCurrentFrameRequest;
                waitForFrame = false;
                frame        = g.Frame;
            }
        };

        OnRequestDone += frameMethCB;
        while (waitForFrame)
        {
            yield return(null);
        }
        OnRequestDone -= frameMethCB;

        //charger le character du joeur
        WideDataManager.wideDataManager.SendRequest(new LoadCharacterRequest(id));
        while (!characters.ContainsKey(id) || !characters[id].Loaded)
        {
            yield return(null);
        }

        //charger egalement sa mailbox
        while (mailBox == null || !mailBox.Loaded)
        {
            yield return(null);
        }

        //charger la corportation du joueur si elle existe
        float waiting = 3.0f;

        if (characters.ContainsKey(id) && characters[id].Corp != -1)
        {
            while (!corps.ContainsKey(characters[id].Corp) || !corps[characters[id].Corp].Loaded)
            {
                if (waiting > 2.0f)
                {
                    WideDataManager.wideDataManager.SendRequest(new LoadCorporationRequest(characters[id].Corp));
                    waiting = 0.0f;
                }
                waiting += Time.deltaTime;
                yield return(null);
            }
        }

        //charger la liste des stations de l'univers
        long reqID = WideDataManager.wideDataManager.SendRequest(new LoadStationsRequest());

        bool          stationLoadOK = false;
        RequestIDDone methCB        = delegate(Request r) { if (r.RequestID == reqID)
                                                            {
                                                                stationLoadOK = true;
                                                            }
        };

        OnRequestDone += methCB;
        while (!stationLoadOK)
        {
            yield return(null);
        }
        OnRequestDone -= methCB;

/*
 *      reqID = WideDataManager.wideDataManager.SendRequest(new LoadRoutesRequest());
 *
 *      bool routesOK = false;
 *      methCB = delegate (Request r) {
 *          if (r.RequestID == reqID) {
 *              LoadRoutesRequest lrr = r as LoadRoutesRequest;
 *              routes = lrr.Routes;
 *              routesOK = true;
 *          }
 *      };
 *
 *      OnRequestDone += methCB;
 *      while (!routesOK) {
 *          yield return null;
 *      }
 *      OnRequestDone -= methCB;
 */
        Ready = true;

        TutorialManager.RaiseEvent("gameStart");
    }