Exemple #1
0
    private IEnumerator GetCurrentFrameRequest(Request r)
    {
        yield return(new WaitForSeconds(0.01f));

        GetCurrentFrameRequest l = r as GetCurrentFrameRequest;

        l.Frame = _container._currentFrame;

        FinishRequest(l);
    }
    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");
    }