internal static IMiniAwaitable <object> Push(int messgaeId, int rpcId, object message, IObjectMessageReceiver r)
        {
            MiniTask <object> task1 = MiniTask <object> .Rent();

            async void action()
            {
                //此处可以忽略异常处理
                var response = await r.Deal(messgaeId, rpcId, message);

                if (response is Task <object> task)
                {
                    response = await task;
                }

                if (response is ValueTask <object> vtask)
                {
                    response = await vtask;
                }

                task1.SetResult(response);
            }

            receivePool.Enqueue(action);

            return(task1);
        }
Esempio n. 2
0
        internal static IMiniAwaitable <object> Push(int rpcID, object message, IObjectMessageReceiver r)
        {
            MiniTask <object> task1 = MiniTask <object> .Rent();

            Action action = async() =>
            {
                ///此处可以忽略异常处理
                ///
                var response = await r.Deal(rpcID, message);

                if (response is Task <object> task)
                {
                    response = await task;
                }

                if (response is ValueTask <object> vtask)
                {
                    response = await vtask;
                }

                task1.SetResult(response);
            };

            receivePool.Enqueue(action);

            return(task1);
        }
Esempio n. 3
0
        public void StartBattle()
        {
            Save();
            _isInBattle = true;

            PointsEarned = 0;

            _secondsInBattle    = 0;
            _minutesInBattle    = 0;
            Setup.TimeText.text = $"{_minutesInBattle:00}:{_secondsInBattle:00}";
            StartCoroutine(TimeInBattle());

            AllyAttackersCurrent = 0;
            AllyTanksCurrent     = 0;
            AllyMedicsCurrent    = 0;

            EnemyAttackersCurrent = 0;
            EnemyTanksCurrent     = 0;
            EnemyMedicsCurrent    = 0;


            EnemyAttackers = Level + 2;
            EnemyTanks     = Level + 1;
            EnemyMedics    = Level + 1;
            Counts         = new[]
            {
                AllyAttackers, EnemyAttackers,
                AllyTanks, EnemyTanks,
                AllyMedics, EnemyMedics
            };

            UnitStats.EnemyAttackerHealthMax = 100 + Level * 2;
            UnitStats.EnemyAttackerDamage    = 10 + Level * 2;

            UnitStats.EnemyTankHealthMax = 150 + Level * 10;
            UnitStats.EnemyTankDamage    = 5 + Level * 3;

            UnitStats.EnemyAttackerHealthMax = 100 + Level * 10;
            UnitStats.EnemyAttackerDamage    = 10 + Level * 3;

            Setup.MainMenuStateParent.SetActive(false);
            Setup.GameStateParent.SetActive(true);

            Ships.AllyParent = new GameObject("== ALLY ==");
            Ships.AllyParent.transform.parent = Setup.GameStateParent.transform;
            Ships.EnemyParent = new GameObject("== ENEMY ==");
            Ships.EnemyParent.transform.parent = Setup.GameStateParent.transform;

            Setup.Stars.Play();
            Setup.BattleMusic.Play();

            MiniTask.Run(0f, SpawnShips);

            _googleAds.BannerView.Destroy();
        }
Esempio n. 4
0
        void AddTaskCommand_Executed(object prm)
        {
            // Create Task
            var t = new MiniTask();

            t.Title       = NewTaskTitle;
            t.TopicID     = NewTaskTopic.ID;
            t.DateCreated = DateTime.Now;

            // Add to viewmodel
            var tvm = new MiniTaskViewModel(t, _OrganizerVM, null);

            GatheredTasks.Add(tvm);

            // Reset new title
            NewTaskTitle = "";
        }