示例#1
0
    public void BtnRevealClicked()
    {
        Debug.Log("BtnRevealClicked");

        if (this.HintBoard.GetComponent <HintBoardRenderer>().IsBusy())
        {
            // Do not do anything if the revealing is still on going
            return;
        }

        var gameData = GlobalStorage.LoadGameData();

        if (gameData.RevealCount <= 0)
        {
            return;
        }

        revealUsed++;
        gameData.RevealCount--;
        GlobalStorage.SaveGame(gameData);

        RefreshRevealButton(gameData.RevealCount);

        var hintBoardRenderer = this.HintBoard.GetComponent <HintBoardRenderer>();

        hintBoardRenderer.RevealCoveredChars();
    }
示例#2
0
 private void Awake()
 {
     if (Instance == null)
     {
         Instance = this;
     }
 }
示例#3
0
    public void Initialize(int stageId)
    {
        // Read the records
        stageRecord = GlobalStorage.LoadRecord(stageId);
        if (stageRecord != null)
        {
            this.SetEnable(true, stageRecord.HighestScore);
        }
        else
        {
            this.stageId = stageId;
            this.SetEnable(false, 0);
        }

        var sprite = Resources.Load <Sprite>(string.Format(@"images/stage_{0}_pre", stageId));

        if (sprite != null)
        {
            var renderer = background.GetComponent <SpriteRenderer>();
            renderer.sprite = sprite;
        }

        sprite = Resources.Load <Sprite>(string.Format(@"images/stage_{0}_poem", stageId));
        if (sprite != null)
        {
            var renderer = shownPoem.GetComponent <SpriteRenderer>();
            renderer.sprite = sprite;
        }
    }
示例#4
0
 private void OnContinue(object sender, EventArgs e)
 {
     if (currentStep == 1)
     {
         bool valid = UIUtils.ValidateEntriesWithEmpty(new Entry[] { emailEntry, pswdEntry, firstNameEntry, lastNameEntry, phoneNumberEntry }, this.page);
         if (!valid)
         {
             return;
         }
         BuildStep2();
         DataGate.VerifyPhoneNumber(phoneNumberEntry.Text, (res) =>
         {
             if (res.Code == ResponseCode.OK)
             {
                 currentCode = res.Result.Trim('"');
                 //TODO: temp
                 Device.BeginInvokeOnMainThread(() =>
                 {
                     codeEntry.Text = currentCode;
                 });
             }
         });
     }
     else
     {
         if (codeEntry.Text != currentCode)
         {
             UIUtils.ShowMessage("Confirmation code is not valid", this.page);
             return;
         }
         var sendData = new Dictionary <string, object>()
         {
             { "Email", emailEntry.Text },
             { "FbId", null },
             { "FirstName", firstNameEntry.Text },
             { "LastName", lastNameEntry.Text },
             { "Password", Ext.MD5.GetMd5String(pswdEntry.Text) },
             { "Phone", phoneNumberEntry.Text }
         };
         spinner = UIUtils.ShowSpinner((ContentPage)this.page);
         DataGate.CustomerSignupJson(sendData, (data) =>
         {
             var jobj = JObject.Parse(data.Result);
             Device.BeginInvokeOnMainThread(() =>
             {
                 if (data.Code == ResponseCode.OK && jobj["Id"] != null)
                 {
                     GlobalStorage.Settings.CustomerId = (string)jobj["Id"];
                     GlobalStorage.SaveAppSettings();
                 }
                 else
                 {
                     UIUtils.ShowMessage("Signup faled. Try later", this.page);
                 }
                 UIUtils.HideSpinner((ContentPage)this.page, spinner);
                 OnFinish?.Invoke(this, data);
             });
         });
     }
 }
示例#5
0
 void Start()
 {
     Manager   = GameObject.Find("GameManager");
     storage   = Manager.gameObject.GetComponent <GlobalStorage>();
     myTexture = this.gameObject.GetComponent <Image>();
     myButton  = this.gameObject.GetComponent <Button>();
 }
示例#6
0
    public void SetEnable(bool enabled, int star)
    {
        if (!enabled)
        {
            this.star1.SetActive(false);
            this.star2.SetActive(false);
            this.star3.SetActive(false);
            this.locker.SetActive(true);
            this.shownPoem.SetActive(false);

            // Grey out
            Material myNewMaterial = new Material(Shader.Find("Sprites/GrayScale"));
            background.GetComponent <SpriteRenderer>().material = myNewMaterial;
        }
        else
        {
            this.star1.SetActive(star >= 1);
            this.star2.SetActive(star >= 2);
            this.star3.SetActive(star >= 3);
            this.locker.SetActive(false);
            this.shownPoem.SetActive(star >= 1);

            if (stageRecord.JustCompleted)
            {
                if (this.shownPoem.GetComponent <FadeIn>() == null)
                {
                    this.shownPoem.AddComponent <FadeIn>();
                }
                stageRecord.JustCompleted = false;
                GlobalStorage.SaveRecord(stageRecord);
            }
        }
    }
    /// <summary>
    ///
    /// </summary>
    /// <param name="character"></param>
    private void RenderPuzzleNode(PuzzleCharacter character)
    {
        anchorInterval = intervalAnchor.transform.localPosition.x - startAnchor.transform.localPosition.x;
        startPosition  = new Vector3(startAnchor.transform.localPosition.x - anchorInterval,
                                     startAnchor.transform.localPosition.y + anchorInterval,
                                     -1);

        GameObject nodeObject = new GameObject(GetCharacterKey(character.Index));

        nodeObject.transform.parent = this.transform;

        nodeObject.transform.localPosition = this.ConvertToPixelPosition(character.Position);
        nodeObject.transform.localScale    = new Vector3(1.0f, 1.0f, 1);

        var sprite = GlobalStorage.GetSpriteFromDictionary(character.CharacterId);

        //// var sprite = Resources.Load<Sprite>("characters/fzlb/c_" + character.CharacterId);
        if (sprite != null)
        {
            var renderer = nodeObject.AddComponent <SpriteRenderer>();
            renderer.sprite = sprite;
            var clr = renderer.color;
            renderer.color = new Color(clr.r, clr.g, clr.b, 0f);
            var fadeIn = nodeObject.AddComponent <FadeIn>();
            fadeIn.SetFadeTime(2.5f);
        }

        var nodeRenderer = nodeObject.AddComponent <PuzzleNodeRenderer>();

        nodeRenderer.Initialize(character, (chara) => { this.OnBoardClickedAt(character); });
    }
示例#8
0
        private static void GetHydroTable()
        {
            var repo = (Repository)GlobalStorage.Get("repo");
            var dt   = repo.GetTable(new HydroTable().GetSqlSelectStatement());

            GlobalStorage.Set("hydro", dt);
        }
        public EntitySignals(IHandlersResolver resolver = null)
        {
            var handlersResolver = resolver ?? new CachedHandlersResolver(new AttributeHandlersResolver());

            _global = new GlobalStorage(handlersResolver);
            _entity = new DynamicStorage(handlersResolver);
        }
    public void Initialize(PoemInstance poemInstance, bool isBlind)
    {
        this.poemInstance     = poemInstance;
        this.isTotalBlindMode = isBlind;

        this.Width  = poemInstance.Width;
        this.Height = poemInstance.Height;

        float anchorX = anchorStart.transform.localPosition.x;
        float anchorY = anchorStart.transform.localPosition.y;

        float interval = this.anchorInterval.transform.localPosition.x - anchorX;

        // Render the characters onto HintBoard
        for (int i = 0; i < this.Width; i++)
        {
            for (int j = 0; j < this.Height; j++)
            {
                string charId = poemInstance.GetCharacterIdAt(i, j);

                GameObject go = new GameObject("Character_" + (j * Width + i).ToString());
                go.transform.parent = this.transform;

                float posX = anchorX + i * interval;
                float posY = anchorY - j * interval;

                if (this.isTint)
                {
                    posX += j * interval;
                }

                go.transform.localPosition = new Vector3(posX, posY, -1);
                go.transform.localScale    = new Vector3(1.0f, 1.0f, 1);

                SpriteRenderer renderer = go.AddComponent <SpriteRenderer>();
                var            sprite   = GlobalStorage.GetSpriteFromDictionary(charId);
                //// Texture2D texture = (Texture2D)Resources.Load("characters/fzlb/c_" + charId);
                if (sprite != null)
                {
                    renderer.sprite = sprite;
                }

                if (!poemInstance.IsUncoveredAt(i + j * Width))
                {
                    Color theColorToAdjust = renderer.color;
                    theColorToAdjust.a = this.isTotalBlindMode ? 0f : 0.2f;
                    renderer.color     = theColorToAdjust;
                }
                else
                {
                    Color theColorToAdjust = renderer.color;
                    theColorToAdjust.a = 0f;
                    renderer.color     = theColorToAdjust;
                    var fadeIn = go.AddComponent <FadeIn>();
                    fadeIn.SetFadeTime(1.5f);
                }
            }
        }
    }
示例#11
0
        public void TicksPerSecondWithGap()
        {
            var ticks = GlobalStorage.GetRateFromDBBackwards <Rate>("usd/jpy", DateTime.Parse("2/2/15"), 80000, 0);
            var tps   = ticks.CalcTicksPerSecond();
            var tps2  = ticks.CalcTicksPerSecond(1000);

            Assert.AreEqual(1.0, tps.Ratio(tps2).Round(3));
        }
        public void ThrowIfNoHandlers()
        {
            var handler  = new NoHandlersResolver();
            var storage  = new GlobalStorage(handler);
            var receiver = new TestReceiver();

            var e = Assert.Throws <Exception>(() => storage.On().Add(receiver));

            Assert.AreEqual("Can't bind method TestReceiver to global: No methods matched signature", e.Message);
        }
示例#13
0
        private void BuildLayout()
        {
            this.Spacing = 0;

            var headerLabel = new CustomLabel();

            headerLabel.Text                    = "My Account";
            headerLabel.TextColor               = Color.Black;
            headerLabel.BackgroundColor         = Color.White;
            headerLabel.HorizontalTextAlignment = TextAlignment.Center;
            headerLabel.VerticalTextAlignment   = TextAlignment.Center;
            headerLabel.HeightRequest           = 50;
            headerLabel.FontSize                = 16;
            headerLabel.FontFamily              = UIUtils.FONT_SFUIDISPLAY_LIGHT;
            headerLabel.HorizontalOptions       = LayoutOptions.CenterAndExpand;
            this.Children.Add(headerLabel);

            var separator = UIUtils.MakeSeparator(true);

            this.Children.Add(separator);

            AddInfoLayout();

            AddButtonBlock("Contact Information", (s, a) => {
                _page.Navigation.PushAsync(new EditInfoPage(_client));
            });
            if (_client is Customer)
            {
                AddButtonBlock("Payment Method", (s, a) => {
                    _page.Navigation.PushAsync(new EditPaymentPage());
                });
            }
            AddButtonBlock("Getting Started", (s, a) => { });
            AddButtonBlock("Help Center", (s, a) => { });
            AddButtonBlock("Privacy Policy", (s, a) => { });
            AddButtonBlock("Terms of Service", (s, a) => { });

            var logOut = new Button();

            logOut.BackgroundColor   = Color.Transparent;
            logOut.Text              = "Log Out";
            logOut.TextColor         = Props.ButtonColor;
            logOut.FontFamily        = UIUtils.FONT_SFUIDISPLAY_REGULAR;
            logOut.Margin            = new Thickness(20, 0, 0, 20);
            logOut.VerticalOptions   = LayoutOptions.EndAndExpand;
            logOut.HorizontalOptions = LayoutOptions.StartAndExpand;
            logOut.Clicked          += (s, a) => {
                GlobalStorage.Settings.CustomerId = string.Empty;
                GlobalStorage.Settings.MuaId      = string.Empty;
                GlobalStorage.SaveAppSettings();
                Notification.CrossPushNotificationListener.UnregisterPushNotification();
                Utils.ShowPageFirstInStack(_page, new LoginPage());
            };
            this.Children.Add(logOut);
        }
示例#14
0
 void GrantSingleInstance()
 {
     if (Instance == null)
     {
         Instance = this;
     }
     else if (Instance != this)
     {
         Destroy(gameObject);
     }
 }
示例#15
0
        protected override IList <View> GetBottomItems()
        {
            List <View> list = new List <View>();

            list.Add(GetMenuItem("My account", "avatar", OnMyAccountSelect));
            list.Add(GetMenuItem("Logout", "muah_logout", (v) => {
                GlobalStorage.Settings.MuaId = string.Empty;
                GlobalStorage.SaveAppSettings();
                Notification.CrossPushNotificationListener.UnregisterPushNotification();
                Utils.ShowPageFirstInStack(this, new MuaLoginPage());
            }));
            return(list);
        }
    public void EnterStage(int stageId)
    {
        var record = GlobalStorage.LoadRecord(stageId);

        if (record == null)
        {
            return;
        }

        Debug.Log("SelectStageScene: stageId=" + stageId);
        GlobalStorage.CurrentStage = stageId;
        SceneManager.LoadScene("MainGameScene");
    }
示例#17
0
        private string FindOI(string hydro)
        {
            var hydroDt = (DataTable)GlobalStorage.Get("hydro");

            foreach (DataRow row in hydroDt.Rows)
            {
                if ((string)row["Hydro"] == hydro)
                {
                    return((string)row["OI_Hydro"]);
                }
            }

            return("???");
        }
示例#18
0
 private IEnumerable <DB.v_TradeSession> GetBestSessions(Guid superSessionUid)
 {
     return(GlobalStorage.UseForexContext(c => {
         var sessions = c.v_TradeSession.Where(s => s.SuperSessionUid == superSessionUid).OrderBy(s => s.TimeStamp).ToArray();
         if (!sessions.Any())
         {
             return sessions.AsEnumerable();
         }
         var sessionTuples = sessions.Select(s => new { p = s, n = s }).Take(0).ToList();
         sessions.Aggregate((p, n) => { sessionTuples.Add(new { p, n }); return n; });
         return sessionTuples.OrderBy(st => _bestSessionCriteria(st.p) + _bestSessionCriteria(st.n)).Take(1)
         .Select(st => new[] { st.p, st.n }).DefaultIfEmpty(sessions).First()
         .OrderBy(_bestSessionCriteria).ThenBy(s => s.LotA).ThenByDescending(s => s.DollarPerLot);
     }));
 }
        public void GlobalStorage()
        {
            var handler = new MockHandlerResolver(new[] {
                new HandlerMeta(null, typeof(int), 2,
                                EfficientInvoker.ForMethod(typeof(TestReceiver), "HandleSignal"))
            });
            var es = new GlobalStorage(handler);

            RunMeasure(() => {
                var receiver = new TestReceiver();
                es.On().Add(receiver);
                es.On().Send(1);
                es.On().Remove(receiver);
            });
        }
示例#20
0
        private void OnLogin(object sender, EventArgs e)
        {
            bool valid = UIUtils.ValidateEntriesWithEmpty(new Entry[] { emailEntry, pswdEntry }, this);

            if (valid)
            {
                var email    = emailEntry.Text;
                var password = pswdEntry.Text;
                spinner = UIUtils.ShowSpinner(this);
                DataGate.MuaLoginJson(email, Ext.MD5.GetMd5String(password), (data) =>
                {
                    if (data.Code == ResponseCode.OK)
                    {
                        try
                        {
                            var jobj  = JObject.Parse(data.Result);
                            var muaId = (string)jobj["Id"];
                            if ((bool)jobj["IsConfirmed"])
                            {
                                GlobalStorage.Settings.MuaId = muaId;
                                GlobalStorage.SaveAppSettings();
                                Notification.CrossPushNotificationListener.RegisterPushNotification();
                                Device.BeginInvokeOnMainThread(() =>
                                {
                                    Utils.ShowPageFirstInStack(this, new MuaHomePage());
                                });
                            }
                            else
                            {
                                Device.BeginInvokeOnMainThread(() =>
                                {
                                    Utils.ShowPageFirstInStack(this, new UnderReviewPage());
                                });
                            }
                        }
                        catch
                        {
                            UIUtils.ShowMessage("Login failed. Wrong email or password", this);
                        }
                    }
                    else
                    {
                        UIUtils.ShowMessage("Login failed. Try later", this);
                    }
                    UIUtils.HideSpinner(this, spinner);
                });
            }
        }
示例#21
0
    void Start()
    {
        // TODO
        // fill with coresponding initial values
        // hardcoded for now

        initialMarketStorage = new GameResourcesStorage(500);
        marketStorage        = new GameResourcesStorage(500);
        for (int i = 0; i < GameResourcesStorage.resourceCount; ++i)
        {
            prices[i]        = 500;
            initialPrices[i] = 500;
        }

        globalStorage = FindObjectOfType <GlobalStorage>();
    }
示例#22
0
        protected virtual IList <View> GetBottomItems()
        {
            List <View> list = new List <View>();

            list.Add(GetMenuItem("List Your Business", "wallet", (v) => { }));
            if (!string.IsNullOrEmpty(GlobalStorage.Settings.CustomerId))
            {
                list.Add(GetMenuItem("Logout", "muah_logout", v =>
                {
                    GlobalStorage.Settings.CustomerId = string.Empty;
                    GlobalStorage.SaveAppSettings();
                    Notification.CrossPushNotificationListener.UnregisterPushNotification();
                    Utils.ShowPageFirstInStack(this, new LoginPage());
                }));
            }
            return(list);
        }
示例#23
0
    public override void OnJoinedRoom()
    {
        if (PhotonNetwork.isMasterClient)
        {
            PhotonNetwork.InstantiateSceneObject(ballPrefabName, Vector3.one, Quaternion.identity, 0, null);
        }

        var emptySlot = FindEmptySlot();
        var position  = new Vector2(0, -4.5f);

        switch (emptySlot)
        {
        case 1:
            position = new Vector2(0, -4.5f);
            break;

        case 2:
            position = new Vector2(0, 4.5f);
            break;

        case 3:
            position = new Vector2(4.5f, 0);
            break;

        case 4:
            position = new Vector2(-4.5f, 0);
            break;
        }

        var playerName = GlobalStorage.Load <string>("PlayerName");

        var bar = PhotonNetwork.Instantiate(playerPrefabName + emptySlot, position, Quaternion.identity, 0);

        bar.GetComponent <BarBehaviour>().isInputEnabled = true;
        bar.GetComponent <SpriteRenderer>().color        = Color.green;
        bar.GetComponentInChildren <TextMesh>().text     = playerName;

        var hashtable = new Hashtable
        {
            { "PlayerName", playerName },
            { "PlayerPosition", emptySlot }
        };

        PhotonNetwork.player.SetCustomProperties(hashtable);
    }
示例#24
0
    // Start is called before the first frame update
    void Start()
    {
        CommonButton button = enterGameButton.GetComponent <CommonButton>();

        button.SetCallback(() => { this.EnterGame(); });

        Debug.Log("Application.persistentDataPath: " + Application.persistentDataPath);

        if (GlobalStorage.LoadGameData() == null)
        {
            // Create a new GameData
            GameData data = new GameData();
            data.RevealCount = 0;
            GlobalStorage.SaveGame(data);
        }

        var backgroundImage = string.Format(@"images/welcome_{0}", Random.Range(1, 4));

        background.GetComponent <SpriteRenderer>().sprite = Resources.Load <Sprite>(backgroundImage);
    }
示例#25
0
        private void OnLoginOk(JObject obj)
        {
            var id = obj["Id"] != null ? (string)obj["Id"] : null;

            if (!string.IsNullOrEmpty(id))
            {
                GlobalStorage.Settings.CustomerId = id;
                GlobalStorage.SaveAppSettings();
                Device.BeginInvokeOnMainThread(() =>
                {
                    if (!(bool)obj["AllowFreeMakeover"])
                    {
                        _order.IsFree = false;
                    }
                    SendOrder();
                });
            }
            else
            {
                UIUtils.ShowMessage("Login failed. Wrong email or password", this);
            }
        }
示例#26
0
        //
        #endregion

        public void LoadOffersInfo()
        {
            GlobalStorage.UseForexContext(context => {
                foreach (var offer in o2g.GetOffers())
                {
                    var pair    = offer.Pair;
                    var dbOffer = context.t_Offer.SingleOrDefault(o => o.Pair == pair);
                    if (dbOffer == null)
                    {
                        context.t_Offer.AddObject(new t_Offer()
                        {
                            Pair = pair, Digits = o2g.GetDigits(pair), PipCost = offer.PipCost, MMR = offer.MMR, PipSize = o2g.GetPipSize(pair)
                        });
                    }
                    else
                    {
                        dbOffer.PipCost = offer.PipCost;
                        dbOffer.MMR     = offer.MMR;
                    }
                    context.SaveChanges();
                }
            });
        }
示例#27
0
    private void PuzzleBoardRenderer_onReceivedCharacter(object sender, ReceivedCharEventArgs e)
    {
        Debug.Log("PuzzleBoardRenderer_onReceivedCharacter");

        var renderer = revealedChar.GetComponent <SpriteRenderer>();
        var sprite   = GlobalStorage.GetSpriteFromDictionary(e.CharacterId);

        if (sprite != null)
        {
            renderer.sprite = sprite;
        }

        var clr = revealedChar.GetComponent <SpriteRenderer>().color;

        revealedChar.GetComponent <SpriteRenderer>().color = new Color(clr.r, clr.g, clr.b, 0.0f);
        ShowRevealedCharActivity showRevealed = new ShowRevealedCharActivity(revealedChar, 1.0f);

        e.ActivityManager.PushActivity(showRevealed);

        if (poem.GetCoveredCharIds().Contains(e.CharacterId))
        {
            int charIndex = poem.GetFirstCoveredIndex(e.CharacterId);
            if (charIndex < 0)
            {
                return;
            }

            var hintBoardRenderer = this.HintBoard.GetComponent <HintBoardRenderer>();
            hintBoardRenderer.ReceiveCharacter(e.CharacterId, e.ActivityManager);
        }

        if (poem.IsAllCharactersUncovered())
        {
            // Success
            e.ActivityManager.PushCallback(() => { this.OnGameWin(); });
        }
    }
示例#28
0
        public static Identifier Global(string name, DataType dt)
        {
            var globalStorage = new GlobalStorage(name, dt);

            return(new Identifier(name, dt, globalStorage));
        }
示例#29
0
 // Start is called before the first frame update
 void Start()
 {
     Manager = GameObject.Find("GameManager");
     storage = Manager.gameObject.GetComponent <GlobalStorage>();
     doAction();
 }
    // Start is called before the first frame update
    void Start()
    {
        GlobalStorage.LoadSpriteDictionary();

        this.SelectedCategory = GlobalStorage.CurrentCategory;

        if (btnBack != null && btnBack.GetComponent <CommonButton>() != null)
        {
            btnBack.GetComponent <CommonButton>().SetCallback(() => { this.BtnBackClicked(); });
        }

        if (categoryTitle != null)
        {
            categoryTitle.GetComponent <SpriteRenderer>().sprite =
                Resources.Load <Sprite>(string.Format(@"images/category-title-{0}", this.SelectedCategory));
        }

        // Ensure the first Stage
        var stage101 = GlobalStorage.LoadRecord(101);

        if (stage101 == null)
        {
            stage101 = StageRecord.Create(101);
            GlobalStorage.SaveRecord(stage101);
        }


        // Play animation to show title and pre
        activityManager = this.gameObject.GetComponent <ActivityManager>();
        if (activityManager == null)
        {
            return;
        }
        activityManager.Initialize(false);

        var moveTo = categoryTitle.AddComponent <MoveTo>();

        moveTo.Initialize(new Vector2(0, 5.5f), 0.6f);

        var delay = new DelayActivity(0.5f);

        activityManager.PushActivity(delay);

        var bundle = new BundleActivity();

        for (int i = 0; i < 9; i++)
        {
            GameObject previewAnchor = this.previewAnchors[i];
            GameObject preview       = GameObject.Instantiate(StagePreviewPrefab);

            // preview.transform.parent = previewAnchor.transform;
            preview.transform.localPosition = previewAnchor.transform.position;
            preview.transform.localScale    = new Vector3(1.5f, 1.5f, 1);
            var renderer = preview.GetComponent <StagePreviewRenderer>();

            int stageId = this.SelectedCategory * 100 + i + 1;
            renderer.Initialize(stageId);
            renderer.SetCallback((stage) => { this.EnterStage(stage); });

            var fadeIn = new FadeInActivity(preview, 0.6f);
            fadeIn.InitObject();
            bundle.AddActivity(fadeIn);
        }

        activityManager.PushActivity(bundle);
    }