コード例 #1
0
ファイル: GameTestRunner.cs プロジェクト: kyapp69/XposeCraft
        public void RunEnemyPlayerExampleTest()
        {
            Log.d(">>  Starting a Planning Phase.  <<");

            var end = new Action(() => { Log.d(">>   End of a Planning Phase.   <<"); });

            if (_enemyPlayerBotData == null)
            {
                _enemyPlayerBotData = ScriptableObject.CreateInstance <TestExamples.MyBotData>();
            }

            var battleStage = new Action(() =>
            {
                Log.d(this, "Starting Battle Stage");
                if (_enemyPlayerBattleTest == null)
                {
                    _enemyPlayerBattleTest = ScriptableObject.CreateInstance <TestExamples.BattleTest>();
                }
                _enemyPlayerBattleTest.MyBotData = _enemyPlayerBotData;
                _enemyPlayerBattleTest.BattleStage(end);
            });

            var buildingStage = new Action(() =>
            {
                Log.d(this, "Starting Building Stage");
                if (_enemyPlayerBuildingTest == null)
                {
                    _enemyPlayerBuildingTest = ScriptableObject.CreateInstance <TestExamples.BuildingTest>();
                }
                _enemyPlayerBuildingTest.MyBotData = _enemyPlayerBotData;
                _enemyPlayerBuildingTest.BuildingStage(battleStage);
            });

            var economyStage = new Action(() =>
            {
                Log.d(this, "Starting Economy Stage");
                if (_enemyPlayerEconomyTest == null)
                {
                    _enemyPlayerEconomyTest = ScriptableObject.CreateInstance <TestExamples.EconomyTest>();
                }
                _enemyPlayerEconomyTest.MyBotData = _enemyPlayerBotData;
                _enemyPlayerEconomyTest.EconomyStage(buildingStage);
            });

            economyStage();
        }
コード例 #2
0
ファイル: BuildingTest.cs プロジェクト: kyapp69/XposeCraft
        public void BuildingStage(Action startNextStage)
        {
            // A first building
            GameEvent.Register(GameEventType.MineralsChanged, args => BuildNubianArmory(args));

            GameEvent.Register(GameEventType.BuildingCreated, args =>
            {
                // A second building
                if (BuildNubianArmory(args))
                {
                    args.ThisGameEvent.UnregisterEvent();

                    // A third building
                    GameEvent.Register(GameEventType.BuildingCreated, argsThird =>
                    {
                        // A second building
                        if (BuildNubianArmory(argsThird))
                        {
                            argsThird.ThisGameEvent.UnregisterEvent();
                        }
                    });
                }
            });

            GameEvent.Register(GameEventType.BuildingCreated, args =>
            {
                // Worker will return to work afterwards
                if (args.MyBuilding is NubianArmory
                    &&
                    args.MyUnit is Worker)
                {
                    var worker = (Worker)args.MyUnit;
                    EconomyTest.Gather(worker);
                    BuildArmy(startNextStage);
                }
                args.ThisGameEvent.UnregisterEvent();
            });
        }