示例#1
0
 private void StartFullSync(object direction)
 {
     if (Monitor.TryEnter(ContactSync.SynchRoot))
     {
         try
         {
             Config.Direction dir = (Config.Direction)direction;
             ContactSync      cs  = new ContactSync(Config.Username, Config.Password, Convert.ToInt32(Config.Interval * 60000));
             cs.GoogleSynched  += GoogleSynched;
             cs.OutlookSynched += OutlookSynched;
             cs.StartSynching  += StartSynching;
             cs.EndSynching    += EndSynching;
             cs.Error          += SynchError;
             cs.FullSync(dir);
         }
         finally
         {
             Monitor.Exit(ContactSync.SynchRoot);
         }
     }
     else
     {
         MessageBox.Show("Sync in progress... cannot run full sync");
     }
 }
示例#2
0
    void onBottom()
    {
        isBottom   = 1;
        _jumpCount = 0;

        //correct some attribute if no one else set it .
        if (lastTriggerType == Config.ReactionType.Null || lastTriggerType == Config.ReactionType.Normal)
        {
            lastTriggerType  = Config.ReactionType.Normal;
            _moveSpeed       = GlobalController.instance.setting.moveSpeed;
            additionSpeed    = 0;
            _playerDirection = _arrowStatus;
            _lockPosture     = false;
        }
        else
        {
            lastTriggerType = Config.ReactionType.Null;
        }

        if (!_lockPosture)
        {
            if (_arrowStatus == Config.Direction.None)
            {
                ani.play(Config.CharcterAction.Idle);
            }
            else
            {
                ani.play(Config.CharcterAction.Walk);
            }
        }
        cam.correct(tf);
        rb.velocity = new Vector2(rb.velocity.x, 0);
    }
 private void SyncContact(Contact gContact, ContactItem item, Config.Direction dir)
 {
     if (dir == Config.Direction.dirToGoogle)
     {
         googleAdapter.UpdateContactFromOutlook(item, gContact);
     }
     else
     {
         outlookAdapter.UpdateContactFromGoogle(gContact, item);
     }
 }
示例#4
0
    //character like > < will rebound player;
    public void Rebound(Config.Direction dir)
    {
        isBottom         = 0;
        _playerDirection = dir;

        rb.velocity = GlobalController.instance.setting.angleBlanketReboundParam;
        _moveSpeed  = GlobalController.instance.setting.angleBlanketReboundParam.x;
        ani.play(Config.CharcterAction.Jump);

        _restrictDirection++;
        releaseAfterReboundRoutine = StartCoroutine(releaseAfterRebound());
    }
示例#5
0
    private void shoot()
    {
        Bullet bullet = GlobalController.instance.getCurPool().Spawn(GlobalController.instance.prefabSetting.bullet).GetComponent <Bullet>();

        Config.Direction dir = (tf.transform.lossyScale.x > 0)?Config.Direction.Right:Config.Direction.Left;
        Vector3          pos;

        if (dir == Config.Direction.Left)
        {
            pos = new Vector3(tf.position.x - GlobalController.instance.setting.gridSize, tf.position.y + col.offset.y, 0);
        }
        else
        {
            pos = new Vector3(tf.position.x + GlobalController.instance.setting.gridSize, tf.position.y + col.offset.y, 0);
        }
        bullet.init(pos, dir, bulletData);
    }
示例#6
0
 //lock players move direction and let them move faster
 public override void onIce()
 {
     _restrictDirection++;
     if (_playerDirection == Config.Direction.None)
     {
         _playerDirection = Config.Direction.Right;
     }
     _moveSpeed = GlobalController.instance.setting.moveSpeed * 2;
     ani.play(Config.CharcterAction.Crash);
     _lockPosture = true;
     if (lastTriggerType == Config.ReactionType.Null)
     {
         lastTriggerType = Config.ReactionType.Ice;
     }
     else
     {
         lastTriggerType = Config.ReactionType.Null;
     }
 }
示例#7
0
    public void init(Vector3 position, Config.Direction dir, BulletData d)
    {
        tf    = transform;
        _data = d;
        spr   = tf.GetComponent <SpriteRenderer>();
        ColorUtil.toAlpha(spr, 1);
        tf.position = position;
        switch (dir)
        {
        case Config.Direction.Left:
            //tf.position = new Vector2(position.x - GlobalController.instance.setting.gridSize, position.y + GlobalController.instance.setting.gridSize*0.5f);
            _curTween = tf.DOMoveX(position.x - GlobalController.instance.setting.screenWidth, GlobalController.instance.setting.screenWidth / d.speed);
            break;

        case Config.Direction.Right:
            //tf.position = new Vector2(position.x + GlobalController.instance.setting.gridSize, position.y + GlobalController.instance.setting.gridSize*0.5f);
            _curTween = tf.DOMoveX(position.x + GlobalController.instance.setting.screenWidth, GlobalController.instance.setting.screenWidth / d.speed);
            break;
        }

        _curTween.OnComplete(() => {
            GlobalController.instance.getCurPool().Despawn(tf);
        });
    }
        public void FullSync(Config.Direction dir)
        {
            MutexManager.StartingFullSync();
            try
            {
                try
                {
                    if (dir == Config.Direction.dirToOutlook)
                    {
                        SetLastGoogleFetch(DateTime.Now);
                    }
                    if (StartSynching != null)
                    {
                        StartSynching(this);
                    }
                    List <ContactItem> OutlookContacts;
                    List <Contact>     GoogleContacts;

                    logger.Info("Obtaining Outlook contacts...");
                    OutlookContacts = outlookAdapter.Contacts;
                    logger.Info("Obtaining Google Contacts...");
                    GoogleContacts = googleAdapter.Contacts;

                    EmailComparer comparer = new EmailComparer();
                    int           i        = 0;
                    int           total    = OutlookContacts.Count() + GoogleContacts.Count();
                    foreach (ContactItem item in OutlookContacts)
                    {
                        try
                        {
                            try
                            {
                                if (Thread.CurrentThread.ThreadState == ThreadState.AbortRequested)
                                {
                                    break;
                                }
                                i++;
                                var qryFindGoogleContact = GoogleContacts.Where(c => c.Title == item.FullName ||
                                                                                c.Emails.Contains(new EMail(item.Email1Address), comparer) ||
                                                                                c.Emails.Contains(new EMail(item.Email2Address), comparer) ||
                                                                                c.Emails.Contains(new EMail(item.Email3Address), comparer));
                                if (qryFindGoogleContact.Count() > 0)
                                {
                                    if (dir == Config.Direction.dirToOutlook)
                                    {
                                        logger.Info(String.Format("{0}/{1} Updating Outlook contact: " + OutlookAdapter.ContactItemDisplay(item), i, total));
                                        Contact gContact = qryFindGoogleContact.First();
                                        logger.Info("Updating outlook contact");
                                        SyncContact(gContact, item, dir);
                                    }
                                    else
                                    {
                                        logger.Info(String.Format("{0}/{1} Processing...", i, total));
                                    }
                                }
                                else
                                {
                                    logger.Info(String.Format("{0}/{1} Creating Google contact for " + OutlookAdapter.ContactItemDisplay(item), i, total));
                                    //  MutexManager.AddToBlockedContacts(item);
                                    CreateGoogleContact(item);
                                }
                            }
                            finally
                            {
                                if (OutlookSynched != null)
                                {
                                    OutlookSynched(this, item, i, OutlookContacts.Count());
                                }
                            }
                        }
                        catch (System.Exception ex)
                        {
                            if (ex is ThreadAbortException)
                            {
                                break;
                            }
                        }
                    }

                    foreach (Contact item in GoogleContacts)
                    {
                        try
                        {
                            try
                            {
                                if (Thread.CurrentThread.ThreadState == ThreadState.AbortRequested)
                                {
                                    break;
                                }
                                i++;
                                var qryFindOutlookContact = OutlookContacts.Where(c => c.FullName == item.Title ||
                                                                                  item.Emails.Contains(new EMail(c.Email1Address), comparer) ||
                                                                                  item.Emails.Contains(new EMail(c.Email2Address), comparer) ||
                                                                                  item.Emails.Contains(new EMail(c.Email3Address), comparer));
                                if (qryFindOutlookContact.Count() > 0)
                                {
                                    if (dir == Config.Direction.dirToGoogle)
                                    {
                                        logger.Info(String.Format("{0}/{1} Updating Google contact: " + GoogleAdapter.ContactDisplay(item), i, total));
                                        ContactItem oContact = qryFindOutlookContact.First();
                                        SyncContact(item, oContact, dir);
                                    }
                                    else
                                    {
                                        logger.Info(String.Format("{0}/{1} Processing...", i, total));
                                    }
                                }
                                else
                                {
                                    logger.Info(String.Format("{0}/{1} Creating Outlook contact for " + GoogleAdapter.ContactDisplay(item), i, total));
                                    CreateOutlookContact(item);
                                }
                            }
                            finally
                            {
                                if (GoogleSynched != null)
                                {
                                    GoogleSynched(this, item, i, GoogleContacts.Count());
                                }
                            }
                        }
                        catch (System.Exception ex)
                        {
                            if (ex is ThreadAbortException)
                            {
                                break;
                            }
                        }
                    }
                    if (EndSynching != null)
                    {
                        EndSynching(this);
                    }
                }
                catch (System.Exception ex)
                {
                    if ((EndSynching != null))
                    {
                        EndSynching(this);
                    }
                    else if (!(ex is ThreadAbortException) & (Error != null))
                    {
                        Error(this, ex);
                    }
                }
            }
            finally
            {
                if (dir == Config.Direction.dirToGoogle)
                {
                    SetLastGoogleFetch(DateTime.Now);
                }
                MutexManager.EndingFullSync();
            }
        }
示例#9
0
    public void onUpdate()
    {
        if (isDead)
        {
            return;
        }

//		if(rb.velocity.y > 0.1f || rb.velocity.y < -0.1f)
//			isBottom = 0;

        if (tf.position.x - maxX > 10 || tf.position.y - maxY > 10 || tf.position.y - minY < -10)
        {
            DistanceTriggerManager.instance.notice(tf.position);
        }

        bool arrowChange = false;

        if (Input.GetKeyDown(KeyCode.RightArrow))
        {
            _arrowStatus = Config.Direction.Right;
            arrowChange  = true;
        }
        else if (Input.GetKeyDown(KeyCode.LeftArrow))
        {
            _arrowStatus = Config.Direction.Left;
            arrowChange  = true;
        }

        if (Input.GetKeyUp(KeyCode.RightArrow) && _arrowStatus == Config.Direction.Right)
        {
            _arrowStatus = Config.Direction.None;
            arrowChange  = true;
        }

        if (Input.GetKeyUp(KeyCode.LeftArrow) && _arrowStatus == Config.Direction.Left)
        {
            _arrowStatus = Config.Direction.None;
            arrowChange  = true;
        }

        if (Input.GetKeyDown(KeyCode.DownArrow))
        {
            _isShooting = true;
        }

        if (Input.GetKeyUp(KeyCode.DownArrow))
        {
            _isShooting = false;
        }

        if (_isShooting)
        {
            if (_bulletCD <= 0)
            {
                shooting();
            }
        }

        _bulletCD -= Time.unscaledDeltaTime;
        jumpHandler();


        Config.Direction lastPlayerDirection = _playerDirection;
        if (_restrictDirection == 0)
        {
            _playerDirection = _arrowStatus;
        }

        switch (_playerDirection)
        {
        case Config.Direction.None:
            rb.velocity = new Vector2(additionSpeed, rb.velocity.y);
            if (isBottom > 0)
            {
                if (lastPlayerDirection != _playerDirection && !_lockPosture)
                {
                    ani.play(Config.CharcterAction.Idle);
                }
                _idleTime += Time.deltaTime;
                if (lastPlayerDirection != _playerDirection)
                {
                    cam.correct(tf);
                }
            }
            else
            {
                _idleTime = 0;
                cam.notice(tf.position - _lastPostion, tf, tf.localScale.x);
            }
            break;

        case Config.Direction.Left:
            rb.velocity = new Vector2(-_moveSpeed + additionSpeed, rb.velocity.y);
            if (!_lockPosture && lastPlayerDirection != _playerDirection)
            {
                ani.play(Config.CharcterAction.Walk);
            }
            if (tf.lossyScale.x > 0)
            {
                tf.localScale = new Vector3(-tf.localScale.x, tf.localScale.y, tf.localScale.z);
            }
            _idleTime = 0;
            cam.notice(tf.position - _lastPostion, tf, tf.localScale.x);
            break;

        case Config.Direction.Right:
            rb.velocity = new Vector2(_moveSpeed + additionSpeed, rb.velocity.y);
            if (!_lockPosture && lastPlayerDirection != _playerDirection)
            {
                ani.play(Config.CharcterAction.Walk);
            }
            if (tf.lossyScale.x < 0)
            {
                tf.localScale = new Vector3(-tf.localScale.x, tf.localScale.y, tf.localScale.z);
            }
            _idleTime = 0;
            cam.notice(tf.position - _lastPostion, tf, tf.localScale.x);
            break;
        }

        if (_idleTime > 3)
        {
            ani.doRandomIdle();
            _idleTime = -2;
        }

        _lastPostion = tf.position;
    }
示例#10
0
 public Direction(Config.Direction config)
 {
     _config = config;
 }
示例#11
0
    void Update()
    {
        if (!isDown)
        {
            if (Input.GetKeyDown(KeyCode.LeftArrow))
            {
                curArrow = Config.Direction.Left;
                curSpeed = -moveSpeed;
            }

            if (Input.GetKeyUp(KeyCode.LeftArrow))
            {
                if (curArrow == Config.Direction.Left)
                {
                    curArrow = Config.Direction.None;
                    curSpeed = 0;
                }
            }

            if (Input.GetKeyDown(KeyCode.RightArrow))
            {
                curArrow = Config.Direction.Right;
                curSpeed = moveSpeed;
            }

            if (Input.GetKeyUp(KeyCode.RightArrow))
            {
                if (curArrow == Config.Direction.Right)
                {
                    curArrow = Config.Direction.None;
                    curSpeed = 0;
                }
            }

            if ((curSpeed > 0 && tf.position.x < maxX) || (curSpeed < 0 && tf.position.x > minX))
            {
                tf.position += new Vector3(curSpeed, 0, 0);
            }

            if (Input.GetKeyDown(KeyCode.UpArrow))
            {
                curArrow = Config.Direction.Right;
            }

            if (Input.GetKeyDown(KeyCode.DownArrow))
            {
                isDown    = true;
                _curTween = tf.DOMoveY(tf.position.y - downDis, 1).OnComplete(catchDoll);
            }
        }

        if (Input.GetKeyDown(KeyCode.UpArrow))
        {
            ani.Play("init");
            tf.position = initPos;
            curSpeed    = 0;
            curArrow    = Config.Direction.None;
            isDown      = false;
            if (_curTween != null)
            {
                _curTween.Kill();
            }
            Collider2D[] cols = tf.GetComponentsInChildren <Collider2D>();
            for (int i = 0; i < cols.Length; i++)
            {
                cols[i].enabled = false;
            }
        }
    }