Example #1
0
 public Factory(Root root)
 {
     mServer                 = root.mServer;
     mSyncContext            = root.SyncContext;
     mGame                   = root.mGame;
     mMap                    = root.MapView;
     mRangedWarriorPrefab    = root.RangedWarriorPrefab;
     mMeeleeWarriorPrefab    = root.MeeleeWarriorPrefab;
     mWorkerPrefab           = root.WorkerPrefab;
     mBuildingTemplatePrefab = root.BuildingTemplatePrefab;
     mCentralBuildingPrefab  = root.CentralBuildingPrefab;
     mMiningCampPrefab       = root.MiningCampPrefab;
     mBarrakPrefab           = root.BarrakPrefab;
 }
Example #2
0
    void Start()
    {
        if (GameUtils.CurrentMode == GameMode.Server)
        {
            mGame   = new Game();
            mServer = new RtsServer();
            MapView = CreateMap(mGame.Map.Data, true);

            var enemyFactory      = new Factory(this);
            var controlledFactory = new Factory(this);
            controlledFactory.ViewCreated += ControlledFactoryOnViewCreated;
            enemyFactory.ViewCreated      += EnemyFactoryOnViewCreated;

            var player = new Player(controlledFactory);
            Player = player;
            mGame.AddPlayer(player);

            mServer.MessageRecived += OnChatMessageRecived;

            mServer.Listen(SyncContext, enemyFactory, mGame);

            var basePos = GameUtils.CreateBase(mGame, player);
            PlaseCamera(basePos);
        }

        if (GameUtils.CurrentMode == GameMode.Client)
        {
            mClient = new RtsClient(SyncContext);

            mClient.MapLoaded              += data => MapView = CreateMap(data, false);
            mClient.BaseCreated            += pos => PlaseCamera(pos);
            mClient.PlayerConnected        += state => Player = state;
            mClient.DisconnectedFromServer += () => SceneManager.LoadScene(GuiSceneName);

            mClient.MeeleeWarriorCreated    += ClientOnMeeleeWarriorCreated;
            mClient.RangedWarriorCreated    += ClientOnRangedWarriorCreated;
            mClient.WorkerCreated           += ClientOnWorkerCreated;
            mClient.BuildingTemplateCreated += ClientOnBuildingTemplateCreated;
            mClient.CentralBuildingCreated  += ClientOnCentralBuildingCreated;
            mClient.MiningCampCreated       += ClientOnMiningCampCreated;
            mClient.BarrakCreated           += ClientOnBarrakCreated;

            mClient.ObjectDestroyed += ClientOnObjectDestroyed;

            mClient.ChatMessageRecived += OnChatMessageRecived;

            mClient.Listen();
        }
    }