Пример #1
0
        public override void Initialize(object data = null)
        {
            base.Initialize(data);

            leftUnits   = new List <BaseUnit>();
            rightUnits  = new List <BaseUnit>();
            goldManager = new GoldManager(initialGoldValue, 7.5f);

            Disposables.Add(towerManager.OnTowerDestroyed.Subscribe(x =>
            {
                if (towerManager.AreAllTowersDestroyed())
                {
                    Lose();
                    return;
                }
                else if (towerManager.AreAllTowersRepaired())
                {
                    Win();
                    return;
                }

                switch (x.TowerId)
                {
                case "TowerA":
                    FlipRightAttackingUnits();
                    break;

                case "TowerB":
                    ForwardRightAttackingUnits();
                    break;

                case "TowerC":
                    FlipLeftAttackingUnits();
                    break;

                case "TowerD":
                    ForwardLeftAttackingUnits();
                    break;
                }
            }));

            Disposables.Add(towerManager.OnTowerRepaired.Subscribe(x =>
            {
                if (towerManager.AreAllTowersDestroyed())
                {
                    Lose();
                    return;
                }
                else if (towerManager.AreAllTowersRepaired())
                {
                    Win();
                    return;
                }

                switch (x.TowerId)
                {
                case "TowerA":
                    ForwardLeftRepairingUnits();
                    break;

                case "TowerB":
                    FlipLeftRepairingUnits();
                    break;

                case "TowerC":
                    ForwardRightRepairingUnits();
                    break;

                case "TowerD":
                    FlipRightRepairingUnits();
                    break;
                }
            }));
        }