private void Start()
    {
        persistence = GameObject.Find("Load Game Controller");
        if (persistence != null && persistence.GetComponent <LoadGameController>().saveData != null &&
            persistence.GetComponent <LoadGameController>().saveData.currentRound != 0)
        {
            loadFromController();
        }
        else
        {
            currentRound = 1;
            powerUps     = new List <PowerUp>();
        }
        SceneManager.SetActiveScene(SceneManager.GetSceneByName("Main Game"));
        switchTurn      = false;
        turnCounter     = 0;
        levelController = GameObject.Find("Level Controller").GetComponent <LevelController>();
        populateUnits();
        initTurnOrder();
        displayingMoves = false;
        activeUnit      = turnOrder[0];
        foreach (WalkableArea wa in levelController.walkableArea)
        {
            walkableArea.Add(wa.position);
        }
        //Enact all power Ups
        foreach (PowerUp powerUp in powerUps)
        {
            UnitType unitType = persistence.GetComponent <LoadGameController>().getPowerUpDataFromEnum(powerUp).unitType;
            switch (unitType)
            {
            case UnitType.Contractor:
                PowerUpHelper.activatePowerUp(powerUp, playerUnits.Find(unit => UnitType.Contractor.Equals(unit.GetComponent <PlayerUnitController>().unitType)).GetComponent <UnitController>());
                break;

            case UnitType.Fisherman:
                PowerUpHelper.activatePowerUp(powerUp, playerUnits.Find(unit => UnitType.Fisherman.Equals(unit.GetComponent <PlayerUnitController>().unitType)).GetComponent <UnitController>());
                break;

            case UnitType.Hunter:
                PowerUpHelper.activatePowerUp(powerUp, playerUnits.Find(unit => UnitType.Hunter.Equals(unit.GetComponent <PlayerUnitController>().unitType)).GetComponent <UnitController>());
                break;

            case UnitType.Nurse:
                PowerUpHelper.activatePowerUp(powerUp, playerUnits.Find(unit => UnitType.Nurse.Equals(unit.GetComponent <PlayerUnitController>().unitType)).GetComponent <UnitController>());
                break;

            default:
                break;
            }
        }
    }
Beispiel #2
0
        public RaceSubScene()
            : base(Definitions.IsWideScreen ? Wide_Buffer_Width : Standard_Buffer_Width, Buffer_Height)
        {
            StatusDisplay = new RaceDataDisplay();
            Communicator  = null;

            _countdownPopup = new CountdownPopup();
            _powerUpButton  = new PowerUpButton();
            _playerEventPopup.AnimationCompletionHandler = HandlePlayerEventAnimationComplete;

            _powerUpDisplayTimer = new PowerUpTimer();
            _powerUpDisplayTimer.TickCallback = _timerController.RegisterUpdateCallback;
            _powerUpHelper         = new PowerUpHelper();
            _blackout              = new Blackout();
            _blackout.TickCallback = _timerController.RegisterUpdateCallback;

            _positionStatusPopup = new RaceInfoPopup();
            _raceEventPopup      = new RaceInfoPopup();

            _exitTimer = new Timer("", HandleExitTimerActionComplete);
            GlobalTimerController.GlobalTimer.RegisterUpdateCallback(_exitTimer.Tick);
        }
Beispiel #3
0
        public RaceGameplayScene()
            : base("race-gameplay")
        {
            StatusDisplay = new RaceDataDisplay();

            _countdownPopup = new CountdownPopup();
            _quitRaceButton = new QuitRaceButton();
            _powerUpButton  = new PowerUpButton();
            _playerEventPopup.AnimationCompletionHandler = HandlePlayerEventAnimationComplete;

            _powerUpDisplayTimer = new PowerUpTimer();
            _powerUpDisplayTimer.TickCallback = _timerController.RegisterUpdateCallback;
            _powerUpHelper         = new PowerUpHelper();
            _blackout              = new Blackout();
            _blackout.TickCallback = _timerController.RegisterUpdateCallback;

            _positionStatusPopup = new RaceInfoPopup();
            _raceEventPopup      = new RaceInfoPopup();
            _waitingMessage      = new WaitingMessage();

            _exitTimer = new Timer("", HandleExitTimerActionComplete);
            GlobalTimerController.GlobalTimer.RegisterUpdateCallback(_exitTimer.Tick);

            _startSequenceTimer = new Timer("", HandleStartCountdownStep);
            GlobalTimerController.GlobalTimer.RegisterUpdateCallback(_startSequenceTimer.Tick);

            _quitTimer = new Timer("", HandleQuitTimerActionComplete);
            GlobalTimerController.GlobalTimer.RegisterUpdateCallback(_quitTimer.Tick);

            _quitRaceDialog = new QuitRaceDialog();
            _quitRaceDialog.CancellationTimer = _quitTimer;
            _quitRaceDialog.InputSources.Add(_inputProcessor);

            _disconnectedDialog = new DisconnectedDialog();
            _disconnectedDialog.SelectionCallback = HandleDisconnectAcknowledge;
            _disconnectedDialog.InputSources.Add(_inputProcessor);
        }