示例#1
0
    // 创建 Save 数据对象, 保存数据
    private Save CreateSaveObject()
    {
        Save save = new Save();

        save.coin = GameManager.instance.coin;

        save.playerPosX = player.transform.position.x;
        save.playerPosY = player.transform.position.y;
        save.playerPosZ = player.transform.position.z;

        foreach (var coin in coins)
        {
            CoinState coinState = new CoinState();

            coinState.x = coin.transform.position.x;
            coinState.y = coin.transform.position.y;
            coinState.z = coin.transform.position.z;

            coinState.isDead = coin.GetComponent <Coin>().isDead;

            save.coins.Add(coinState);
        }

        return(save);
    }
示例#2
0
        // 初始化每一个金币.
        public void Init(int _canonID, Vector3 _ownerPos, float _targetTime2Punch, bool _play)
        {
            curCoinState = CoinState.wait;
            targetTime   = Time.time + _targetTime2Punch;
            //ownerIndex = _ownerIndex;
            initPos = curTrans.position;
            switch (CanonCtrl.Instance.dirArray[_canonID])
            {
            case 0:
                targetPos = curTrans.position + new Vector3(0f, punchHeight, 0f);
                break;

            case 1:
                targetPos = curTrans.position - new Vector3(punchHeight, 0f, 0f);
                break;

            case 2:
                targetPos = curTrans.position - new Vector3(0f, punchHeight, 0f);
                break;

            case 3:
                targetPos = curTrans.position + new Vector3(punchHeight, 0f, 0f);
                break;
            }
            ownerPos  = _ownerPos;
            playAudio = _play;
        }
示例#3
0
        /// <summary>
        /// <para>Note : send command to devices.</para>
        /// <para>return DevicesInfo</para>
        /// <para>Note : DevicesInfo is java Object</para>
        /// <para>Status Device : 90051103A9</para>
        /// <para>Firmware Version : 900503039B</para>
        /// </summary>
        public CoinState CurrentStatus()
        {
            byte[] data = { };
            try
            {
                _serialPort.DataReceived -= _serialPortDataReceived;
                if (!_serialPort.IsOpen)
                {
                    _serialPort.Open();
                }

                if (_serialPort.IsOpen)
                {
                    CallbackState();
                }
            }
            catch (Exception exception)
            {
                if (_serialPort.IsOpen)
                {
                    _serialPort.Close();
                }
                _invoke = CoinState.Unavailable;
                Console.WriteLine("exception : " + exception);
            }
            Console.WriteLine("current state : " + _invoke);
            _serialPort.DataReceived += _serialPortDataReceived;
            return(_invoke);
        }
示例#4
0
文件: Coin.cs 项目: eriksk/LD44
        void Update()
        {
            if (State == CoinState.Free)
            {
                _timeSpentFree += Time.deltaTime;
                _lossWait      -= Time.deltaTime;

                if (_timeSpentFree > 2f)
                {
                    Renderer.enabled = Mathf.Sin(Time.time * 40f) > 0f;
                }
                if (_timeSpentFree > 4f)
                {
                    ObjectLocator.Coins.Push(this);
                }
                return;
            }

            _bulletDuration -= Time.deltaTime;

            ObjectLocator.Particles.CoinTrail(transform.position, Rigidbody.velocity);

            if (_bulletDuration <= 1f || Rigidbody.velocity.magnitude < 0.1f)
            {
                _firedById                = -1;
                _lossWait                 = LossWaitDuration;
                State                     = CoinState.Free;
                Rigidbody.velocity        = Vector3.zero;
                Rigidbody.angularVelocity = Vector3.zero;
                transform.rotation        = Quaternion.identity;
            }
        }
示例#5
0
        /// <summary>
        /// <para>Note : Disabled to devices.</para>
        /// <para>return success ? true : false</para>
        /// <para>Command Device : 900502039A</para>
        /// </summary>
        public CoinState Close()
        {
            Byte[] data = { };
            try
            {
                _accept -= CoinInfo;
                _serialPort.DataReceived -= _serialPortDataReceived;
                if (!_serialPort.IsOpen)
                {
                    _serialPort.Open();
                }
                if (_serialPort.IsOpen)
                {
                    //Disabled Device
                    data = ConvertHexToByte("900502039A");
                    _serialPort.Write(data, 0, data.Length);

                    Thread.Sleep(100);
                    CallbackState();
                }
                _serialPort.DiscardOutBuffer();
                _serialPort.DiscardInBuffer();
                _serialPort.Close();
            }
            catch (Exception exception)
            {
                if (_serialPort.IsOpen)
                {
                    _serialPort.Close();
                }
                _invoke = CoinState.Unavailable;
                Console.WriteLine("exception : " + exception);
            }
            return(_invoke);
        }
示例#6
0
        /// <summary>
        /// Update function (IMonoUpdatable).
        /// </summary>
        /// <param name="gameTime"> Game time.</param>
        public override void Update(GameTime gameTime)
        {
            // Check the state of the coin.
            switch (_state)
            {
            case CoinState.SPAWNING:
                // Play spawning animation.
                Animations.Play((int)CoinAnimation.SPAWNING);

                if (Math.Abs(Position.Y - _spawnStartY) > _maxSpawnDistance)
                {
                    // Set state to idle.
                    _state = CoinState.IDLE;

                    // Set vertical velocity to the spawnspeed.
                    velocity.Y = -_spawnSpeed;

                    // Set coin to be destroyed.
                    Destroy();
                }

                break;

            case CoinState.IDLE:

                // Play rotation animation.
                Animations.Play((int)CoinAnimation.ROTATING);

                break;
            }

            // Update the base class.
            base.Update(gameTime);
        }
示例#7
0
文件: Coin.cs 项目: eriksk/LD44
        public void Loss(Vector3 position, Vector3 target)
        {
            State                     = CoinState.Free;
            _lossWait                 = LossWaitDuration;
            _timeSpentFree            = 0f;
            Rigidbody.velocity        = Vector3.zero;
            Rigidbody.angularVelocity = Vector3.zero;

            transform.position = position + Vector3.up * 1f;
            transform.rotation = Quaternion.identity;

            var directionToTarget = (target - position).normalized;

            var direction = new Vector3(
                UnityEngine.Random.Range(-1f, 1f) * 0.1f,
                0.5f,
                UnityEngine.Random.Range(-1f, 1f) * 0.1f
                ) + directionToTarget;

            var torque = new Vector3(
                UnityEngine.Random.Range(-1f, 1f),
                UnityEngine.Random.Range(-1f, 1f),
                UnityEngine.Random.Range(-1f, 1f)
                ) * 10f;

            Rigidbody.AddForce(direction * UnityEngine.Random.Range(5f, 10f), ForceMode.Impulse);
            Rigidbody.AddTorque(torque, ForceMode.Impulse);
        }
示例#8
0
        public void Serialize()
        {
            CoinState item1 = CoinState.Confirmed;
            CoinState item2 = CoinState.Claimed;

            CoinState[] val = new CoinState[] { item1, item2 };
            uut.Items = val;

            byte[] data;
            using (MemoryStream stream = new MemoryStream())
            {
                using (BinaryWriter writer = new BinaryWriter(stream, Encoding.ASCII, true))
                {
                    uut.Serialize(writer);
                    data = stream.ToArray();
                }
            }

            byte[] requiredData = new byte[] { 0, 2, 1, 8 };

            data.Length.Should().Be(requiredData.Length);
            for (int i = 0; i < requiredData.Length; i++)
            {
                data[i].Should().Be(requiredData[i]);
            }
        }
示例#9
0
        public void Init(int _multi, int _value, int _dir)
        {
            targetTime = 0f;
            // label.text = _value.ToString();
            label.ApplyValue(_value, 0);
            curStepPos = curTrans.localPosition;
            // nextStepPos = curTrans.localPosition + new Vector3(0f, cylinderJumpHeight_Max, 0f);
            CacualteJumpHeight(_multi);
            nextStepPos = curTrans.localPosition + new Vector3(0f, curCylinderJumpHeight, 0f);
            if (_dir == 2)
            {
                label.transform.localEulerAngles = new Vector3(0f, 0f, 180f);
            }
            else
            {
                label.transform.localEulerAngles = Vector3.zero;
            }

            coinState         = CoinState.up;
            coinLerpPercent   = 0f;
            coinStartLocalPos = coin.localPosition;
            if (_dir == 2)
            {
                coinTargetLocalPos = coinStartLocalPos + new Vector3(0f, coinJumpHeight, 0f);
            }
            else
            {
                coinTargetLocalPos = coinStartLocalPos + new Vector3(0f, coinJumpHeight, 0f);
            }

            moveUp = true;
        }
示例#10
0
        public void Serialize_EnumArray()
        {
            var test = new CoinState[] { CoinState.Confirmed, CoinState.Locked };
            var copy = BinarySerializer.Default.Deserialize <CoinState[]>(BinarySerializer.Default.Serialize(test));

            CollectionAssert.AreEqual(test, copy);
        }
示例#11
0
        public static int CalculateNumCoinsPassingThroughFloor(
            float lakituX, float lakituY, float lakituZ, int rngIndex)
        {
            int numCoinsPassingThroughFloor = 0;

            List <CoinState> prevStates = GetCoinStates(rngIndex, lakituX, lakituY, lakituZ);
            List <CoinState> states;

            for (int i = 0; i < 50; i++)
            {
                states = prevStates.ConvertAll(prevState => prevState.GetNextState());
                for (int j = 0; j < states.Count; j++)
                {
                    CoinState prevState          = prevStates[j];
                    CoinState state              = states[j];
                    bool      justEnteredWater   = GetBelowWater(state) && !GetBelowWater(prevState);
                    bool      passedThroughFloor =
                        GetFloorRelativity(prevState) == FloorRelativity.ABOVE &&
                        GetFloorRelativity(state) == FloorRelativity.BELOW;
                    if (justEnteredWater && passedThroughFloor)
                    {
                        numCoinsPassingThroughFloor++;
                    }
                }
                prevStates = states;
            }

            return(numCoinsPassingThroughFloor);
        }
示例#12
0
 public void Drop()
 {
     if (coinState == CoinState.Selected)
     {
         coinState = CoinState.Idle;
     }
 }
示例#13
0
    private void LoadXmlData()
    {
        if (File.Exists(Application.dataPath + "/SaveData/save.xml"))
        {
            // 新建 save 对象
            Save save = new Save();

            // 读取 save.xml 文件的数据
            XmlDocument xmlDocument = new XmlDocument();
            xmlDocument.Load(Application.dataPath + "/SaveData/save.xml");

            #region 加载存档数据

            // 加载金币得分
            save.coin = int.Parse(xmlDocument.GetElementsByTagName("CoinNum")[0].InnerText);

            // 加载玩家位置
            save.playerPosX = float.Parse(xmlDocument.GetElementsByTagName("PlayerPosX")[0].InnerText);
            save.playerPosY = float.Parse(xmlDocument.GetElementsByTagName("PlayerPosY")[0].InnerText);
            save.playerPosZ = float.Parse(xmlDocument.GetElementsByTagName("PlayerPosZ")[0].InnerText);

            XmlNodeList coins = xmlDocument.GetElementsByTagName("Coin");

            if (coins.Count != 0)
            {
                for (int i = 0; i < coins.Count; i++)
                {
                    CoinState coinState = new CoinState();

                    // 获取各个 Coin 的状态数据
                    XmlNodeList CoinsPosX = xmlDocument.GetElementsByTagName("CoinPosX");
                    XmlNodeList CoinsPosY = xmlDocument.GetElementsByTagName("CoinPosY");
                    XmlNodeList CoinsPosZ = xmlDocument.GetElementsByTagName("CoinPosZ");
                    XmlNodeList CoinsDead = xmlDocument.GetElementsByTagName("isDead");

                    // 转换坐标位置
                    coinState.x = float.Parse(CoinsPosX[i].InnerText);
                    coinState.y = float.Parse(CoinsPosY[i].InnerText);
                    coinState.z = float.Parse(CoinsPosZ[i].InnerText);

                    // 金币的死亡状态
                    coinState.isDead = bool.Parse(CoinsDead[i].InnerText);

                    // 添加进 save 的 coins 列表
                    save.coins.Add(coinState);
                }
            }
            #endregion

            // 加载 save 数据到场景中
            LoadSaveObject(save);
        }
        else
        {
            Debug.Log("无存档数据");
        }
    }
示例#14
0
        public void Size_Get_1()
        {
            CoinState item1 = CoinState.Confirmed;

            CoinState[] val = new CoinState[] { item1 };
            uut.Items = val;

            uut.Size.Should().Be(3); // 1 + 2
        }
示例#15
0
        void Update()
        {
            if (curCoinState == CoinState.wait)
            {
                if (Time.time > targetTime)
                {
                    curTrans.localScale = Vector3.one;
                    targetTime          = 0f;

//                  if(playAudio)
//                  {
//                      audioS.Play();
//                  }
                    curCoinState = CoinState.punching_up;
                }
            }
            else if (curCoinState == CoinState.punching_up)
            {
                targetTime       += Time.deltaTime * punchSpeed;
                curTrans.position = Vector3.Lerp(initPos, targetPos, targetTime);
                if (targetTime > 1f)
                {
                    targetTime   = 0f;
                    curCoinState = CoinState.punching_down;
                }
            }
            else if (curCoinState == CoinState.punching_down)
            {
                targetTime       += Time.deltaTime * punchSpeed;
                curTrans.position = Vector3.Lerp(targetPos, initPos, targetTime);
                if (targetTime > 1f)
                {
                    targetTime   = Time.time + wait4Lerp;
                    curCoinState = CoinState.wait2;
                }
            }
            else if (curCoinState == CoinState.wait2)
            {
                if (Time.time > targetTime)
                {
                    curCoinState = CoinState.lerping;
                    targetTime   = 0f;
                }
            }
            else if (curCoinState == CoinState.lerping)
            {
                targetTime       += Time.deltaTime * lerp2CanonSpeed;
                curTrans.position = Vector3.Lerp(initPos, ownerPos, targetTime);
                if (targetTime > 1f)
                {
//					audioS.Stop();
                    Factory.Recycle(curTrans);
                }
            }
        }
示例#16
0
        public void Items_Set()
        {
            CoinState item1 = CoinState.Confirmed;
            CoinState item2 = CoinState.Spent;

            CoinState[] val = new CoinState[] { item1, item2 };
            uut.Items = val;
            uut.Items.Length.Should().Be(val.Length);
            uut.Items[0].Should().Be(item1);
            uut.Items[1].Should().Be(item2);
        }
示例#17
0
        public void Size_Get_3()
        {
            CoinState item1 = CoinState.Confirmed;
            CoinState item2 = CoinState.Frozen;
            CoinState item3 = CoinState.Spent;

            CoinState[] val = new CoinState[] { item1, item2, item3 };
            uut.Items = val;

            uut.Size.Should().Be(5); // 1 + 4
        }
示例#18
0
    public bool Select()
    {
        bool selected = false;

        if (coinState == CoinState.Idle)
        {
            coinState = CoinState.Selected;
            selected  = true;
        }
        return(selected);
    }
示例#19
0
文件: Coin.cs 项目: eriksk/LD44
 public void Reset()
 {
     Rigidbody.velocity        = Vector3.zero;
     Rigidbody.angularVelocity = Vector3.zero;
     State            = CoinState.Free;
     _firedById       = -1;
     _bulletDuration  = 0;
     _lossWait        = 0f;
     _firedByPlayer   = null;
     _timeSpentFree   = 0f;
     Renderer.enabled = true;
 }
示例#20
0
文件: Coin.cs 项目: eriksk/LD44
        public void Fire(Player player, Transform origin)
        {
            _firedByPlayer            = player;
            _firedById                = player.gameObject.GetInstanceID();
            State                     = CoinState.Bullet;
            Rigidbody.velocity        = Vector3.zero;
            Rigidbody.angularVelocity = Vector3.zero;

            transform.position = origin.position;
            transform.rotation = origin.rotation * Quaternion.Euler(90f, 0f, 0f);

            Rigidbody.AddForce(origin.forward * 30f, ForceMode.Impulse);
            _bulletDuration = 2f;
        }
示例#21
0
        public static FloorRelativity GetFloorRelativity(CoinState coinState)
        {
            float heightOnTriangle = GetHeightOnTriangle(coinState.X, coinState.Z);
            float heightDiff       = coinState.Y - heightOnTriangle;

            if (heightDiff > 0)
            {
                return(FloorRelativity.ABOVE);
            }
            if (heightDiff < -78)
            {
                return(FloorRelativity.BELOW);
            }
            return(FloorRelativity.INSIDE);
        }
示例#22
0
        public static bool JustEnteredWater(CoinState coinState)
        {
            int waterLevel = -3071;

            if (coinState.Y > waterLevel)
            {
                return(false);
            }
            float prevHeight = coinState.Y - coinState.YSpeed;

            if (prevHeight < waterLevel)
            {
                return(false);
            }
            return(true);
        }
示例#23
0
 private void OnTriggerStay2D(Collider2D collision)
 {
     if (!judged && coinState == CoinState.Idle)
     {
         judged = true;
         if (collision.gameObject.name == "AcceptZone")
         {
             coinState = CoinState.Accepted;
             gameObject.SendMessageUpwards("CoinAccepted", Config);
         }
         else
         {
             coinState = CoinState.Rejected;
             gameObject.SendMessageUpwards("CoinRejected", Config);
         }
     }
 }
示例#24
0
        private void StateInfo(string data)
        {
            if (data.ToUpper().Contains("90051103A9"))
            {
                _invoke = CoinState.Ready;
            }
            else if (data.ToUpper().Contains("90051403AC"))
            {
                _invoke = CoinState.Unavailable;
            }
            else if (data.ToUpper().Contains("9006160103B0"))
            {
                _invoke = CoinState.Sensor_1_problem;
            }
            else if (data.ToUpper().Contains("9006160203B1"))
            {
                _invoke = CoinState.Sensor_2_problem;
            }
            else if (data.ToUpper().Contains("9006160303B2"))
            {
                _invoke = CoinState.Sensor_3_problem;
            }

            /*switch (data.ToUpper())
             * {
             *  case "90051103A9":
             *      _invoke = CoinState.Ready.ToString();
             *      break;
             *  case "90051403AC":
             *      _invoke = CoinState.Unavailable.ToString();
             *      break;
             *  case "9006160103B0":
             *      _invoke = CoinState.Sensor_1_problem.ToString();
             *      break;
             *  case "9006160203B1":
             *      _invoke = CoinState.Sensor_2_problem.ToString();
             *      break;
             *  case "9006160303B2":
             *      _invoke = CoinState.Sensor_3_problem.ToString();
             *      break;
             *  default:
             *      _invoke = "";
             *      break;
             * }*/
        }
示例#25
0
        /// <summary>
        /// Actions that sould happen when coin gets out of coinblock.
        /// </summary>
        public void OnFree()
        {
            // Store spawn location.
            _spawnStartY = Position.Y;

            // Set vertical velocity.
            velocity.Y = -_spawnSpeed;

            // Disable collisions.
            Collidable = false;

            // Set terminal velocity.
            TerminalVelocity = new Vector2(0, _spawnSpeed);

            // Set state to spawning.
            _state = CoinState.SPAWNING;

            // Pickup coin.
            OnPickUp();
        }
示例#26
0
        void Update()
        {
            // coin.
            switch (coinState)
            {
            case CoinState.up:
                coinLerpPercent   += Time.deltaTime * coinJumpSpeed;
                coin.localPosition = Vector3.Lerp(coinStartLocalPos, coinTargetLocalPos, coinLerpPercent);
                if (coinLerpPercent > 1f)
                {
                    coinLerpPercent = 0f;
                    coinState       = CoinState.down;
                }
                break;

            case CoinState.down:
                coinLerpPercent   += Time.deltaTime * coinJumpSpeed;
                coin.localPosition = Vector3.Slerp(coinTargetLocalPos, coinStartLocalPos, coinLerpPercent);
                if (coinLerpPercent > 1f)
                {
                    coinState = CoinState.none;
                }
                break;

            default:
                break;
            }

            // cylinder.
            if (moveUp)
            {
                targetTime            += Time.deltaTime * cylinderJumpSpeed;
                curTrans.localPosition = Vector3.Lerp(curStepPos, nextStepPos, targetTime);

                if (targetTime > 1f)
                {
                    moveUp     = false;
                    targetTime = 0f;
                }
            }
        }
示例#27
0
        /// <summary>
        /// <para>Note : Enabled to devices.</para>
        /// <para>return status</para>
        /// <para>Command Device : 9005010399</para>
        /// </summary>
        public CoinState Open()
        {
            Byte[] data = { };
            try
            {
                _serialPort.DataReceived -= _serialPortDataReceived;
                if (!_serialPort.IsOpen)
                {
                    _serialPort.Open();
                }
                if (_serialPort.IsOpen)
                {
                    //Enable Device
                    data = ConvertHexToByte("9005010399");
                    _serialPort.Write(data, 0, data.Length);

                    Thread.Sleep(100);
                    CallbackState();
                    _accept += CoinInfo;
                    if (_invoke.Equals(CoinState.Ready))
                    {
                        _serialPort.DataReceived += _serialPortDataReceived;
                    }
                }
            }
            catch (Exception exception)
            {
                if (_serialPort.IsOpen)
                {
                    _serialPort.Close();
                }
                _invoke = CoinState.Unavailable;
                Console.WriteLine("exception : " + exception);
            }
            return(_invoke);
        }
示例#28
0
    private void Update()
    {
        if (delay <= 0f)
        {
            switch (state)
            {
            case CoinState.SpreadLinearly:
            case CoinState.SpreadRadial:
            {
                if (type == CoinType.Coin || type == CoinType.Hint)
                {
                    coin.gameObject.SetActive(value: true);
                    extraWord.gameObject.SetActive(value: false);
                }
                else if (type == CoinType.ExtraWord)
                {
                    coin.gameObject.SetActive(value: false);
                    extraWord.gameObject.SetActive(value: true);
                }
                float num3 = Mathf.Min(time / spreadTime);
                base.transform.position   = Vector3.Lerp(positionStart, positionSpread, spreadCurve.Evaluate(num3));
                base.transform.localScale = new Vector3(scale, scale, 1f);
                if (time <= 0f && !isSoundShow)
                {
                    isSoundShow = true;
                    ELSingleton <AudioManager> .Instance.PlaySfx(soundShow);
                }
                if (num3 >= 1f)
                {
                    positionStart = base.transform.position;
                    state         = CoinState.Idle;
                    delay         = 0f;
                    time          = 0f;
                }
                break;
            }

            case CoinState.Idle:
                state = CoinState.Fly;
                delay = UnityEngine.Random.Range(idleTimeMin, idleTimeMax);
                time  = 0f;
                break;

            case CoinState.Fly:
            {
                float   num      = Mathf.Min(time / flyTime);
                Vector3 position = Vector3.Lerp(positionStart, positionTarget, flyCurve.Evaluate(num));
                position.y += flyCurveY.Evaluate(num) * flyY;
                base.transform.position = position;
                float num2 = scale + (1f - scale) * flyCurve.Evaluate(num);
                base.transform.localScale = new Vector3(num2, num2, 1f);
                if (!(num >= 1f))
                {
                    break;
                }
                if (type == CoinType.Coin)
                {
                    if (ELSingleton <GameWindow> .Instance.isActiveAndEnabled)
                    {
                        ELSingleton <GameWindow> .Instance.shopButton.AddCoins((!isFullUpdate)? 1 : int.MaxValue);

                        ELSingleton <GameWindow> .Instance.shopButton.Pop(aIsWithParticles : true);
                    }
                    if (ELSingleton <MenuWindow> .Instance.isActiveAndEnabled)
                    {
                        ELSingleton <MenuWindow> .Instance.shopButton.AddCoins((!isFullUpdate)? 1 : int.MaxValue);

                        ELSingleton <MenuWindow> .Instance.shopButton.Pop(aIsWithParticles : true);
                    }
                    if (ELSingleton <PackWindow> .Instance.isActiveAndEnabled)
                    {
                        ELSingleton <PackWindow> .Instance.shopButton.AddCoins((!isFullUpdate)? 1 : int.MaxValue);

                        ELSingleton <PackWindow> .Instance.shopButton.Pop(aIsWithParticles : true);
                    }
                }
                else if (type == CoinType.ExtraWord && ELSingleton <GameWindow> .Instance.isActiveAndEnabled)
                {
                    ELSingleton <GameWindow> .Instance.extraWordsButton.Coin();

                    ELSingleton <GameWindow> .Instance.extraWordsButton.CheckFull();
                }
                UnityEngine.Object.Destroy(base.gameObject);
                if (!isSoundHit)
                {
                    isSoundHit = true;
                    ELSingleton <AudioManager> .Instance.PlaySfx(soundHit);
                }
                break;
            }
            }
            time += Time.deltaTime;
        }
        else
        {
            delay -= Time.deltaTime;
        }
    }
示例#29
0
 /// <summary>
 /// setting status
 /// </summary>
 /// <param name="state">status</param>
 public CoinEvent(CoinState state)
 {
     _state = state;
 }
示例#30
0
 protected void m000311(CoinState p0)
 {
     this.f000279 = p0;
 }
示例#31
0
        public int m000308()
        {
            switch (this.f000279)
            {
                case CoinState.Idle:
                {
                    int num = this.f000011;
                    if (this.f000011 <= 0)
                    {
                        break;
                    }
                    if (!this.f00000a)
                    {
                        num = this.m0000f1();
                        this.f000011 -= num;
                        this.f00009b = num;
                        this.f000279 = CoinState.SendCoin;
                        this.f000063 = DateTime.Now;
                        SenseKeyHelper.m00030d("BaseController ", string.Concat(new object[] { "Idle To SendCoin current:", this.f00009b, " coinOut:", this.f000011 }));
                        return num;
                    }
                    return 0;
                }
                case CoinState.SendCoin:
                {
                    TimeSpan span = (TimeSpan) (DateTime.Now - this.f000063);
                    if (span.TotalMilliseconds > 300.0)
                    {
                        this.f000279 = CoinState.Idle;
                        this.f000011 += this.f00009b;
                        this.f000063 = DateTime.Now;
                        SenseKeyHelper.m00030d("BaseController ", string.Concat(new object[] { "SendCoin To Idle TimeOut current:", this.f00009b, " coinOut:", this.f000011 }));
                    }
                    break;
                }
                case CoinState.ReceiveCoin:
                    if (!this.f00000a)
                    {
                        TimeSpan span2 = (TimeSpan) (DateTime.Now - this.f000063);
                        if (span2.TotalMilliseconds > this.f00009c)
                        {
                            SenseKeyHelper.m00030d("BaseController ", string.Concat(new object[] { "ReceiveCoin To Idle TimeOut current:", this.f00009b, " coinOut:", this.f000011 }));
                            this.f000279 = CoinState.Idle;
                            this.f000011 += this.f00009b;
                            this.f00009b = 0;
                            this.f000063 = DateTime.Now;
                            if (!this.f00000a)
                            {
                                this.f000022++;
                                if (this.f000022 > 5)
                                {
                                    this.f00000a = true;
                                }
                            }
                        }
                        break;
                    }
                    return 0;

                case CoinState.WaitStop:
                    if (!this.f00000a)
                    {
                        TimeSpan span3 = (TimeSpan) (DateTime.Now - this.f000063);
                        if (span3.TotalMilliseconds > this.f00009c)
                        {
                            SenseKeyHelper.m00030d("BaseController ", string.Concat(new object[] { "WaitStop To Idle TimeOut current:", this.f00009b, " coinOut:", this.f000011 }));
                            this.m000314(this.f00009b + this.f000011);
                            this.f00009b = 0;
                            this.f000011 = 0;
                            this.f000279 = CoinState.Idle;
                            this.f000277 = false;
                            this.f0000a0 = false;
                            this.f000063 = DateTime.Now;
                        }
                        break;
                    }
                    return 0;
            }
            return 0;
        }
示例#32
0
 public void m000031()
 {
     this.f000063 = DateTime.Now;
     if (this.f000279 == CoinState.SendCoin)
     {
         this.f000279 = CoinState.ReceiveCoin;
     }
 }
示例#33
0
        public static bool GetBelowWater(CoinState coinState)
        {
            int waterLevel = -3071;

            return(coinState.Y < waterLevel);
        }