Esempio n. 1
0
    /// <summary>
    /// Funktion, behandelt, je nach Eingabe des spezifischen Kontrollpunktes, welche Ereignisse ausgeführt werden
    /// sollen.
    /// </summary>
    /// <param name="name">Name des Kontrollpunktes für den die spezifischen Ereignisse ausgeführt werden sollen</param>
    private void HandleSpecificCtrlPoint(string name)
    {
        switch (name)
        {
        case "Score":
            EventManager.ActivateScore();
            break;

        case "Items":
            EventManager.ActivateTimer();
            break;

        case "Finish":
            if (GlobalDataHandler.GetInventoryItem() != null)
            {
                _controlPoints[_actualCtrlPointIdx].GetComponent <BoxCollider>().enabled = true;
                _actualCtrlPointIdx--;
                EventManager.HitTutorialObstacle(_controlPoints[_actualCtrlPointIdx].transform.position.z);
                _controlPoints[_actualCtrlPointIdx].GetComponent <BoxCollider>().enabled = true;
            }
            else
            {
                EventManager.ResetInventory();
            }

            break;
        }
    }
Esempio n. 2
0
 public EnemySetup(float speed, Transform target, float health, int tier, GlobalDataHandler globalData)
 {
     Speed      = speed;
     Target     = target;
     Health     = health;
     Tier       = tier;
     GlobalData = globalData;
 }
Esempio n. 3
0
 /// <summary>
 /// Funktion, sucht in der Szene nach der Onjektliste und speichert eine Referenz auf der Instanzvariablen
 /// des Objektes.
 /// </summary>
 private void SearchForObjctCtrl()
 {
     if (GlobalDataHandler.GetActualSceneName() == "Tutorial" || GlobalDataHandler.GetActualSceneName() == "HomeScene")
     {
         return;
     }
     _objList = GameObject.Find("ObjectList").GetComponent <ObjectList>();
 }
Esempio n. 4
0
 /// <summary>
 /// Funktion, lässt den Punktestand und den Timer anzeigen, sofern die Szene nicht das Tutorial ist.
 /// </summary>
 private void DisplayPlayerStatsAndInventory()
 {
     if (GlobalDataHandler.GetActualSceneName() != "Tutorial")
     {
         DisplayScore();
         DisplayTimer();
     }
 }
Esempio n. 5
0
    private const int AmountOfGroupItems          = 6;    // Anzahl der Objekte in einer Gruppe.

    /// <summary>
    /// Funktion, wird von Unity ausgeführt, wenn das Skript aktiviert wird. Diese Funktion wird vor der
    /// Update Methode ausgeführt.
    /// </summary>
    private void Start()
    {
        _billowOffset  = _groupMembers[_groupMembers.Length - 1];
        _rnd           = new System.Random();
        _objList       = GetComponent <ObjectList>();
        _lastSpawnPosZ = GlobalDataHandler.GetPlayerPosition() + _objList.MaxSpawnDistance - InitSpawnOffset;
        SpawnPortal();
    }
Esempio n. 6
0
 public static void LevelIsLoaded()
 {
     PlayLevelSound(GlobalDataHandler.GetActualSceneName());
     if (LevelIsLoadedEventMethods != null)
     {
         LevelIsLoadedEventMethods();
     }
 }
Esempio n. 7
0
 private void StopInGameSound()
 {
     if (string.IsNullOrEmpty(GlobalDataHandler.GetActualSceneName()))
     {
         throw new ArgumentException("name", "Value cannot be null or empty.");
     }
     StartCoroutine(FadeOut(_soundSources[GlobalDataHandler.GetActualSceneName()], .5f));
 }
Esempio n. 8
0
    /// <summary>
    /// Berechnet die Grenzen in denen die Objekte platziert werden dürfen.
    /// </summary>
    private void CalculateSegmentBounds()
    {
        var playerPos = GlobalDataHandler.GetPlayerPosition();

        _segmentBoundsXMin = BothSides ? -GlobalDataHandler.TrackWidth - DefineSegmentWidth : GlobalDataHandler.TrackWidth;
        _segmentBoundsXMax = GlobalDataHandler.TrackWidth + DefineSegmentWidth;
        _segmentBoundsZMin = playerPos - OffsetToPlayer;
        _segmentBoundsZMax = playerPos + OffsetToPlayer;
    }
Esempio n. 9
0
 /// <summary>
 /// Funktion, setzt den Spieler auf den z-Wert 0. Diese Funktion wird aufgerufen, wenn der Spieler
 /// das Level wechselt.
 /// </summary>
 private void ResetPlyrPositionAndPastDistanceForNextLevel()
 {
     if (_body == null || GlobalDataHandler.GetActualSceneName() == "HomeScene" ||
         GlobalDataHandler.GetActualSceneName() == "Tutorial")
     {
         return;
     }
     _body.position = new Vector3(_body.position.x, _body.position.y, 0);
     _pastDistance  = 0;
 }
Esempio n. 10
0
 public OrbSetup(float swapTimer, float decay, Transform player, GlobalDataHandler globalData, State orbState, float[] mainTimers, float[] secondaryTimers, OrbElement orbType)
 {
     SwapTimer             = swapTimer;
     Decay                 = decay;
     Player                = player;
     GlobalData            = globalData;
     OrbState              = OrbState;
     MainAttackTimers      = mainTimers;
     SecondaryAttackTimers = secondaryTimers;
     OrbType               = orbType;
 }
Esempio n. 11
0
 public static void GameStart()
 {
     if (GlobalDataHandler.GetGameModus())
     {
         return;                                   //Fürs debugging, beeinträchtigt aber nicht das normale Spiel.
     }
     if (GameStartEventMethods != null)
     {
         GameStartEventMethods();
     }
 }
Esempio n. 12
0
 void Start()
 {
     _globalData = GameObject.FindGameObjectWithTag("Global").GetComponent <GlobalDataHandler>();
     _map        = GameObject.FindGameObjectWithTag("Map").GetComponent <Tilemap>();
     _map.CompressBounds();
     _time            = 0;
     _spawnTimer      = 0;
     _multiplierTimer = _time + 30f;
     _multiplier      = 1f;
     _pointMultiplier = 1;
 }
Esempio n. 13
0
    /// <summary>
    /// Funktion, wird von Unity mehrmals pro Frame aufgerufen.
    /// </summary>
    private void FixedUpdate()
    {
        if (!GlobalDataHandler.PlayerAtCtrlPoint())
        {
            _inputs   = Vector3.zero;
            _inputs.z = IsPlayerOnTrack() ? 1 : 0;

            // Erhöhe die Spielergeschwindigkeit beim Erreichen eines Meilensteins
            if (!GlobalDataHandler.GetActualSceneName().Contains("Tutorial") &&
                GlobalDataHandler.GetPlayerPosition() >= GlobalDataHandler.GetNextMilestone())
            {
                EventManager.IncreaseSpeedAndMilestone();
            }

            //Beende das Spiel, wenn der Spieler von der Strecke fällt
            if (!_isGrounded && _body.transform.position.y < Gulf)
            {
                EventManager.GameEnd();
            }

            //Aktualisiere die Punktzahl basierend auf der zurückgelegten Distanz
            int delta = (int)(_body.transform.position.z - _pastDistance);
            ScoreHandler.IncreasePlayerScore(delta);
            _pastDistance = (int)_body.transform.position.z;
        }

        if (!GlobalDataHandler.GetGameModus())
        {
            return;
        }

        //Berechne die Geschwindigkeit des Spielers
        switch (GlobalDataHandler.GetRunMode())
        {
        case RunMode.Faster:
            GlobalDataHandler.SetPlayerspeed(GlobalDataHandler.GetSpeed() * 2);
            break;

        case RunMode.Normal:
            GlobalDataHandler.SetPlayerspeed(GlobalDataHandler.GetSpeed());
            break;

        case RunMode.Slower:
            GlobalDataHandler.SetPlayerspeed(GlobalDataHandler.GetSpeed() / 2);
            break;

        case RunMode.Idle:
            GlobalDataHandler.SetPlayerspeed(0);
            break;
        }

        //Berechne die neue Position des Spielers
        _body.position += _inputs * GlobalDataHandler.GetPlayerspeed() * Time.fixedDeltaTime;
    }
Esempio n. 14
0
 /// <summary>
 /// Funktion, versucht der Objektliste das angegebene Item hinzuzufügen. Hierbei wird überprüft, ob die Liste
 /// voll ist, die Position des Objektes schon vergeben ist und die Spawnentfernung bzgl. des Spielers ausreicht.
 /// </summary>
 /// <param name="go">Das Objekt, welches der Liste hinzugefügt werden soll</param>
 /// <param name="isCollectible">Gibt an, ob das Objekt ein Collectible ist</param>
 /// <returns>True, wenn das Objekt der Liste hinzugefügt wurde. Ansonsten false</returns>
 public bool AddItem(GameObject go, bool isCollectible)
 {
     if (!IsListFull() && !IsPositionUsed(go.transform, isCollectible) && ((GlobalDataHandler.GetPlayerPosition() + MaxSpawnDistance) - go.transform.position.z > 0))
     {
         _objectList.Add(go);
         return(true);
     }
     else
     {
         return(false);
     }
 }
Esempio n. 15
0
    /// <summary>
    /// Funktion, wird von Unity ausgeführt, wenn das Skript aktiviert wird. Diese Funktion wird vor der
    /// Update Methode ausgeführt.
    /// </summary>
    private void Start()
    {
        _scoreLabel = _scoreUi.GetComponent <Text>();
        _timerLabel = _timerUi.GetComponent <Text>();

        if (!GlobalDataHandler.GetGameModus())
        {
            return;
        }
        _scoreLabel.color = new Color(255, 255, 255, 1);
        _timerLabel.color = new Color(178, 0, 0, 1);
    }
Esempio n. 16
0
    // Update is called once per frame
    void Update()
    {
        if (VRSF_Components.DeviceLoaded != EDevice.SIMULATOR)
        {
            return;
        }
        audioListener.enabled = true;
        var _input = Vector3.zero;

        _input.x = Input.GetAxis("Horizontal");
        _input.y = Input.GetAxis("Vertical");
        _parentTransform.position += _input * GlobalDataHandler.GetPlayerspeed() * Time.deltaTime;
    }
Esempio n. 17
0
 private void Start()
 {
     _globalData = GameObject.FindGameObjectWithTag("Global").GetComponent <GlobalDataHandler>();
     SwitchPanels();
     for (int i = 0; i < _inputs.Length; i++)
     {
         if (i == 4)
         {
             continue;
         }
         _inputs[i].text = _globalData.Keys[(GlobalDataHandler.Key)i].ToString();
     }
 }
Esempio n. 18
0
    /// <summary>
    /// Funktion, wird von Unity jeden Frame aufgerufen.
    /// </summary>
    private void Update()
    {
        if (!GlobalDataHandler.GetGameModus())
        {
            return;
        }
        if (!_objList.IsListFull())
        {
            SpawnObject();
            SpawnCollectibles();
        }

        DeleteObjects();
    }
Esempio n. 19
0
 /// <summary>
 /// Funktion, wird von Unity beim Start einmalig ausgeführt, wenn alle Objekte initialisiert worden sind.
 /// </summary>
 void Awake()
 {
     if (_instance == null)
     {
         _instance = this;
         DontDestroyOnLoad(gameObject);
     }
     else if (_instance != this)
     {
         Destroy(gameObject);
         _instance.gameObject.SetActive(false);
         _instance.gameObject.SetActive(true);
     }
     ResetGlobalData();
 }
Esempio n. 20
0
        void Start()
        {
            if (!photonView.IsMine)
            {
                return;
            }

            _globalData = GameObject.FindGameObjectWithTag("Global").GetComponent <GlobalDataHandler>();
            _map        = GameObject.FindGameObjectWithTag("Map").GetComponent <Tilemap>();
            GameObject.FindGameObjectWithTag("Level UI").GetComponent <UI.LevelUI>().Player        = this;
            GameObject.FindGameObjectWithTag("MainCamera").GetComponent <CameraBehaviour>().Player = transform;
            _maxHealth    = _globalData.PlayerMaxHealth;
            CurrentHealth = _maxHealth;
            _speed        = _globalData.PlayerSpeed;
            CreateNewOrb();
        }
Esempio n. 21
0
    /// <summary>
    /// Funktion, wird von Unity jeden Frame aufgerufen.
    /// </summary>
    void Update()
    {
        // Startet das Spiel und der Spieler rennt los
        if (Input.GetKeyDown("g"))
        {
            EventManager.GameStart();
        }

        // Beendet das Spiel und führt einen Reset aus
        if (Input.GetKeyDown("r"))
        {
            EventManager.GameEnd();
            EventManager.GameReset();
        }

        // Aktiviert das eingesammelte Item
        if (Input.GetKeyDown("v") && GlobalDataHandler.GetGameModus())
        {
            EventManager.ActivatePlayersInventoryItem();
        }

        // De- / aktiviert den Kollisionsmodus
        if (Input.GetKeyDown("c"))
        {
            GlobalDataHandler.ToggleCollisionState();
        }

        // Verlässt einen Kontrollpunkt
        if (Input.GetKeyDown("w"))
        {
            EventManager.LeaveCtrlPoint();
        }

        // De- / aktiviert die Spielsounds
        if (Input.GetKeyDown("k"))
        {
            EventManager.MuteAudio();
        }

        // Beendet das Spiel und spawnt den Spieler in der HomeScene
        if (Input.GetKeyDown(KeyCode.Escape))
        {
            EventManager.GameEnd();
            EventManager.DeleteVrStuff();
            EventManager.SwitchScene("HomeScene");
        }
    }
Esempio n. 22
0
    /// <summary>
    /// Funktion, wird von Unity jeden Frame aufgerufen.
    /// </summary>
    private void Start()
    {
        if (GlobalDataHandler.GetActualSceneName() != "HomeScene")
        {
            return;
        }

        List <int> scoreTable = ScoreTableCtrl.GetScoreTable();

        int i = 0;

        foreach (var textToChange in ScoreTableInScene.GetComponentsInChildren <Text>())
        {
            textToChange.text = scoreTable[i].ToString();
            i++;
        }
    }
Esempio n. 23
0
    /// <summary>
    /// Funktion, wird von Unity jeden Frame aufgerufen.
    /// </summary>
    private void Update()
    {
        var plyrScore = ScoreHandler.GetPlayerScore();

        // Setze die Punktzahl, wenn der Spieler nicht in der HomeScene ist
        if (GlobalDataHandler.GetActualSceneName() != "HomeScene")
        {
            _scoreLabel.text = plyrScore <= 0 ? "0" : plyrScore.ToString();
        }

        // Zeige die UI Elemente an, wenn der Spieler in einem Level ist
        if (GlobalDataHandler.GetActualSceneName() != "Tutorial" && _scoreUi != null && _timerUi != null)
        {
            _scoreUi.SetActive(GlobalDataHandler.GetGameModus());
            _timerUi.SetActive(GlobalDataHandler.GetGameModus());
        }
    }
Esempio n. 24
0
    /// <summary>
    /// Funktion, wird jeden Frame aufgerufen und lässt die Zacken bei Bedarf hochfliegen.
    /// </summary>
    void Update()
    {
        //Überprüft, ob sich der Spieler nahe genug am Zacken befindet
        if (_grounded && ((transform.position.z - GlobalDataHandler.GetPlayerPosition()) < _differenceToPlayer))
        {
            //Spielt den Sound ab
            if (!_soundPlayed)
            {
                EventManager.PlayStoneGrindSound();
                _soundPlayed = true;
            }

            //Interpoliert die Position = Hochfahren des Zackens
            transform.localPosition = Vector3.Slerp(transform.localPosition,
                                                    new Vector3(transform.localPosition.x, _newHeight, transform.localPosition.z), Time.time * _upSpeed);
        }
    }
Esempio n. 25
0
    /// <summary>
    /// Berechnung des nächsten Streckenabschnitts und Löschen der vorherigen Streckenabschnitte
    /// </summary>
    public void Update()
    {
        // Initialisiere den TrackController, wenn dies noch nicht passiert ist
        if (!_isInitialized)
        {
            InitializeTrackController();
            return;
        }

        int   actualTracktileIndex = _numberOfTilesDisplayed / 2;
        float endOfTracktile       = ActiveTiles[actualTracktileIndex].GetComponent <MeshRenderer>().bounds.max.z;

        // Wechselt der Spieler den aktuellen Streckenabschnitt wird ein neuer Streckenabschnitt gespawnt und der
        // erste gelöscht
        if (GlobalDataHandler.GetPlayerPosition() > endOfTracktile)
        {
            SpawnTile(GetTrackTile());
            DestroyTile();
        }
    }
Esempio n. 26
0
    /// <summary>
    /// Callback Funktion für die Erkennung einer Kollision des Objekts an dem das Script angefügt ist.
    /// </summary>
    /// <param name="other">Objekt mit dem "this" kollidiert ist.</param>
    private void OnTriggerEnter(Collider other)
    {
        if (!GlobalDataHandler.GetCollisionState())
        {
            return;
        }

        // Kollisionsbehandlung beim Einsammeln von Punkten
        if (other.gameObject.CompareTag("Points"))
        {
            EventManager.ScoreObjectCollected();

            //Fügt dem Inventar hinzu bis die Punkte oben am Score angekommen sind
            other.transform.parent = InventoryHandler.transform;
            if (GlobalDataHandler.GetActualSceneName() != "Tutorial")
            {
                _objList.RemoveFromList(other.gameObject);
            }
        }
    }
Esempio n. 27
0
    /// <summary>
    /// Funktion, wird von Unity jeden Frame nach dem Auufruf aller Update Methoden aufgerufen.
    /// </summary>
    private void LateUpdate()
    {
        EventManager.UpdateTimerDisplay();
        if (_timer != null)
        {
            if (GlobalDataHandler.GetGameModus())
            {
                if (!_timer.ElapsedCountdownTimer() || _activeItemName.Equals(ItemType.None))
                {
                    return;
                }
                if (_timer.ElapsedCountdownTimer())
                {
                    _timer = null;
                }
            }
            else
            {
                _timer = null;
            }
        }
        else
        {
            _previousTimerVal = TimerInitVal;
        }

        // Wird ausgeführt wenn der Timer des aktuellen Items ausgelaufen ist
        // Dabei werden alle Änderungen die durch die Items ausgelöst wurden zurückgeführt
        if ((_activeItemName.Equals(ItemType.Faster) || _activeItemName.Equals(ItemType.Slower)) && GlobalDataHandler.GetRunMode() != RunMode.Idle)
        {
            GlobalDataHandler.SetRunMode(RunMode.Normal);
        }
        else if (GlobalDataHandler.IsMultiplierActive())
        {
            GlobalDataHandler.SetMultiplierActive(!GlobalDataHandler.IsMultiplierActive());
        }

        _activeItemName = ItemType.None;
    }
Esempio n. 28
0
    /// <summary>
    /// Funktion, aktiviert ein Item, welches sich im Inventar befindet. Falls kein Item im Inventar ist, passiert nichts.
    /// </summary>
    private void ActivateItem()
    {
        // Unterbreche die Funktion im Fehlerfall, dass sie aufgerufen wurde obwohl kein Item
        // eingesammelt wurde.
        if (_item == null || !_activeItemName.Equals(ItemType.None))
        {
            return;
        }

        /* Timer setzen */
        // Wenn der Timer bereits aktiv ist prüfen ob gleiches Item auch in der _itemBag vorhanden ist.
        if (_timer != null)
        {
            if (!_timer.ElapsedCountdownTimer() && _item.GetComponent <ControllerItem>().ItemType.Equals(_activeItemName))
            {
                _timer = new TimerRef(_timer.GetTime() + TimerDuration);
            }
        }
        else
        // Erstelle einen neuen Timer wenn noch kein Item aktiv ist.
        {
            _timer = new TimerRef(5);
        }

        // Item aktivieren
        if (_item.GetComponent <ControllerItem>().ItemType.Equals(ItemType.ScoreMultiplier))
        {
            GlobalDataHandler.SetMultiplierActive(!GlobalDataHandler.IsMultiplierActive());
        }
        else
        {
            GlobalDataHandler.SetRunMode((_item.GetComponent <ControllerItem>().ItemType.Equals(ItemType.Faster))
                ? RunMode.Faster
                : RunMode.Slower);
        }

        _activeItemName = _item.GetComponent <ControllerItem>().ItemType;
        RemoveItem();
    }
Esempio n. 29
0
    /// <summary>
    /// Funktion, initialisiert den TrackController und spawnt die festgelegten Streckenabschnitte vor und hinter dem
    /// Spieler.
    /// </summary>
    private void InitializeTrackController()
    {
        _numberOfTilesDisplayed = NumberOfTilesBehindDisplayed + NumberOfTilesInFrontDisplayed;

        float lengthOfTilesBehind = 0;

        List <GameObject> spawnTiles = new List <GameObject>();

        ActiveTiles = new List <GameObject>();

        //Initialisiere die ersten Streckenteile
        for (int i = 0; i < _numberOfTilesDisplayed; i++)
        {
            GameObject newTrack = GetTrackTile();
            spawnTiles.Add(newTrack);

            if (i < NumberOfTilesBehindDisplayed)
            {
                lengthOfTilesBehind += newTrack.GetComponent <MeshRenderer>().bounds.size.z;
            }
        }

        //Initiale Spawnposition
        _lastSpawnPosZ = GlobalDataHandler.GetPlayerPosition() - lengthOfTilesBehind
                         + (spawnTiles[0].GetComponent <MeshRenderer>().bounds.size.z / 2);

        // Fülle das Streckenarray
        foreach (var tile in spawnTiles)
        {
            SpawnTile(tile);
        }


        spawnTiles.Clear();
        _isInitialized = true;
    }
Esempio n. 30
0
 void Start() => _globalData = GameObject.FindGameObjectWithTag("Global").GetComponent <GlobalDataHandler>();