示例#1
0
    //Überprüft vor jeder Runde, ob ein neues Ereignis eingeleitet wird oder ob das Spiel vorbei ist
    public void naechsteRunde()
    {
        CurrentRunden++;

        //Falls die maximale Anzahl an Runden gespielt wurde, wird der Endscreen angezeigt
        if (MaxRunden == CurrentRunden)
        {
            //Zeigt den Endscreen an, sofern sich kein Ereignis mehr auf dem Stapel befindet. Falls doch, wird der Wartebildschirm angezeigt.
            if (EventsOnStack == 0)
            {
                UIVerwaltung.Endscreen();
                GetComponent <Tutorial>().SchließeTutorialFenster();
                StartCoroutine(GameObject.Find("Endscreen").GetComponent <Endscreen>().ZeigeEndpunkte());
                GameObject.Find("Endscreen").GetComponent <Endscreen>().BerechneStats();
                TextlaufStop = true;
            }
            else
            {
                UIVerwaltung.EndscreenWait();
            }
        }

        else
        {
            //ggf wird ein neues Ereignis auf den Stapel gelegt
            if (Random.Range(0, 3) == 2)
            {
                EventsOnStack++;
            }

            //aktualisiert die Rundenanzeige und öffnet die Ressortwahl
            GameObject.Find("Rundenanzeige").GetComponent <Text>().text = (CurrentRunden + 1 + "/" + MaxRunden);
            UIVerwaltung.RessortwahlOn();
        }
    }
示例#2
0
    public void PausenButtonOnClick()
    {
        //Je nachdem, ob das Pausenmenü derzeit geöffnet oder geschlossen ist, wird es entsprechend geschlossen oder geöffnet
        if (GameObject.Find("PauseFortsetzen").GetComponent <Image>().enabled == false)
        {
            //falls geöffnet, wird die Chronik und das aktuelle Infofenster des Tutorials geschlossen
            if (GameObject.Find("Scroll View").GetComponent <ScrollRect>().enabled == true)
            {
                UIVerwaltung.MassnahmenHistoryMenuOff();
                transform.parent.Find("Image").GetComponent <Image>().color = new Color(0.16f, 0.6f, 0.97f, 1.0f);
            }
            UIVerwaltung.PausenMenuOn();
            GameObject.Find("Canvas").GetComponent <Tutorial>().SchließeTutorialFenster();
        }
        else
        {
            UIVerwaltung.PausenMenuOff();

            //nach dem Schließen des Pausenmenüs wird ggf das Tutorial fortgesetzt
            if (GameObject.Find("Ressortwahl").transform.Find("Finanzen").GetComponent <Image>().enabled == true && GameObject.Find("Canvas").GetComponent <Tutorial>().tutorialPhase == Tutorial.TutorialPhase.Ressortwahl)
            {
                GameObject.Find("Canvas").GetComponent <Tutorial>().ZeigeTutorialText("Phase2", GameObject.Find("Ok2").GetComponent <Button>(), true);
            }
        }
    }
示例#3
0
    //beim Hovern über eine Maßnahme verändert sich die Farbe des Buttons und des Textes und die Veränderungen, die die Maßnahme bewirken würde, werden angezeigt
    public void MassnahmenButtonHover()
    {
        int i = 0;

        //zeigt die Veränderungen, die die Maßnahme bewirken würde, an
        foreach (Transform child in Attributswerte.transform)
        {
            if (transform.GetChild(1).GetComponent <Massnahme>().veranderungen[i] != 0)
            {
                if (transform.GetChild(1).GetComponent <Massnahme>().veranderungen[i] > 0)
                {
                    child.transform.Find("AttChange").GetComponent <RawImage>().color = new Color(0.0f, 0.37f, 0.08f, 0.63f);
                }
                else
                {
                    child.transform.Find("AttChange").GetComponent <RawImage>().color = new Color(0.82f, 0.0f, 0.0f, 0.63f);
                }
                child.transform.Find("AttChange").GetComponent <RectTransform>().localScale    = new Vector3(child.transform.Find("AttChange").GetComponent <RectTransform>().localScale.x, transform.GetChild(1).GetComponent <Massnahme>().veranderungen[i], child.transform.Find("AttChange").GetComponent <RectTransform>().localScale.z);
                child.transform.Find("AttChange").GetComponent <RectTransform>().localPosition = new Vector3(child.transform.Find("AttChange").GetComponent <RectTransform>().localPosition.x, child.transform.Find("AttWert").GetComponent <AttWert>().wert + (transform.GetChild(1).GetComponent <Massnahme>().veranderungen[i] / 2) - 50, child.transform.Find("AttChange").GetComponent <RectTransform>().localPosition.z);
                child.transform.Find("AttChange").GetComponent <RawImage>().enabled            = true;
            }

            i++;
        }

        //verändert die Farbe des Buttons und des Textes
        transform.Find("Text").GetComponent <Text>().color = new Color(0.08f, 0.08f, 0.08f, 1.0f);
        UIVerwaltung.OnButtonHover(this.GetComponent <Image>());
    }
示例#4
0
    //OnClick-Event, das beim Klick auf den mittleren Reiter im Endscreen ausgelöst wird
    private void ChronikButtonOnClick()
    {
        //erschafft für jede abgeschlossene Maßnahme und jedes Ereignis ein eigenes Element in der Chronik und füllt dieses mit den notwendigen Infos
        int childNr = 0;

        foreach (Transform child in GameObject.Find("MassnahmenContainer").transform)
        {
            if (childNr > GameObject.Find("Content").transform.childCount - 1)
            {
                GameObject.Instantiate(GameObject.Find("Content").transform.GetChild(0), GameObject.Find("Content").transform);
            }

            GameObject.Find("Content").transform.GetChild(childNr).Find("Ressortname").GetComponent <Text>().text  = child.GetComponent <Massnahme>().ressort;
            GameObject.Find("Content").transform.GetChild(childNr).Find("Ideologie").GetComponent <Text>().text    = child.GetComponent <Massnahme>().ideologie;
            GameObject.Find("Content").transform.GetChild(childNr).Find("Beschreibung").GetComponent <Text>().text = child.GetComponent <Massnahme>().Beschreibung;

            childNr++;
        }

        //überprüft, welcher der beiden anderen Reiter derzeit geöffnet ist und schließt den entsprechenden, anschließend wird der Chronik-Reiter geöffnet
        if (GameObject.Find("Punkte").GetComponent <RectTransform>().rect.width == 150)
        {
            UIVerwaltung.EndscreenPunkteOff();
            UIVerwaltung.EndscreenChronikOn();
        }
        else if (GameObject.Find("Graphen").GetComponent <RectTransform>().rect.width == 150)
        {
            UIVerwaltung.EndscreenGraphenOff();
            UIVerwaltung.EndscreenChronikOn();
        }
    }
示例#5
0
    //verändert beim Hovern die Farbe des Buttons und blendet die blauen Kästchen ein
    public void OnMouseEnter()
    {
        UIVerwaltung.OnButtonHover(this.GetComponent <Image>());

        foreach (Transform child in transform.Find("RessortRunden").transform)
        {
            child.GetComponent <Image>().enabled = true;
        }
    }
示例#6
0
    //verändert nach dem Hovern die Farbe des Buttons und blendet die blauen Kästchen aus
    public void OnMouseExit()
    {
        UIVerwaltung.OnButtonLeave(this.GetComponent <Image>());
        GetComponent <Doozy.Engine.UI.UIButton>().ExecutePointerExit();

        foreach (Transform child in transform.Find("RessortRunden").transform)
        {
            child.GetComponent <Image>().enabled = false;
        }
    }
示例#7
0
    //OnClick Event der Buttons der Ressortwahl
    void RessortButtonOnClick()
    {
        //überprüft, ob noch Maßnahmen in dem jeweiligen Ressort verabschiedet werden können
        if (CurrentAnzahl < MaxAnzahl)
        {
            //deaktiviert die Ressortwahl und aktiviert die Maßnahmenwahl, schließt ggf das aktuelle Infofenster des Tutorials
            UIVerwaltung.RessortwahlOff();
            UIVerwaltung.MassnahmenwahlOn();
            GameObject.Find("Canvas").GetComponent <Tutorial>().SchließeTutorialFenster();

            //ggf wird der nächste Teil des Tutorials angezeigt
            if (GameObject.Find("Canvas").GetComponent <Tutorial>().tutorialPhase == Tutorial.TutorialPhase.Massnahmenwahl)
            {
                GameObject.Find("Canvas").GetComponent <Tutorial>().ZeigeTutorialText("Phase2", GameObject.Find("Ok2").GetComponent <Button>(), false);
                GameObject.Find("Canvas").GetComponent <Tutorial>().ZeigeTutorialText("Phase3", GameObject.Find("Ok3").GetComponent <Button>(), true);
                GameObject.Find("Canvas").GetComponent <Tutorial>().tutorialPhase = Tutorial.TutorialPhase.Massnahmenwahl;
            }

            //wählt zufällig eine Maßnahme für jede Ideologie aus dem Ressort aus
            foreach (Transform child in transform.Find("Massnahmen").transform)     //für jede Ideologie
            {
                int Massnahmennr = Random.Range(0, child.childCount);
                Massnahmenwahl.transform.Find(child.name).transform.Find("Text").GetComponent <Text>().text = child.GetChild(Massnahmennr).GetComponent <Massnahme>().Beschreibung;

                //löscht die vorherige Maßnahme aus der Maßnahmenwahl
                if (Massnahmenwahl.transform.Find(child.name).transform.childCount > 1)
                {
                    for (int i = 1; i < Massnahmenwahl.transform.Find(child.name).transform.childCount; i++)
                    {
                        Destroy(Massnahmenwahl.transform.Find(child.name).transform.GetChild(i).gameObject);
                    }
                }

                //verschiebt die neue Maßnahme zum zugehörigen Button der Maßnahmenwahl
                child.GetChild(Massnahmennr).transform.SetParent(Massnahmenwahl.transform.Find(child.name));
            }
            CurrentAnzahl++;

            //färbt ein zusätzliches Kästchen im Ressortbutton blau ein um zu signalisieren, wie viele Maßnahmen im Ressort bereits ausgewählt wurden
            transform.Find("RessortRunden").transform.GetChild(CurrentAnzahl - 1).GetComponent <Image>().color = new Color(0.53f, 0.76f, 0.99f);

            //Verändert die Überschrift der Maßnahmenwahl zum aktuellen Ressort
            GameObject.Find("Ressortname").GetComponent <Text>().text = transform.Find("Text").GetComponent <Text>().text;

            //deaktiviert die blauen Kästchen des Buttons
            foreach (Transform child in transform.Find("RessortRunden").transform)
            {
                child.GetComponent <Image>().enabled = false;
            }
        }
        else
        {
            GetComponent <AudioSource>().Play();
        }
    }
示例#8
0
    void HilfeButtonOnClick()
    {
        //Schließt die Chronik oder das Pausenmenü (sofern geöffnet), schließt das aktuelle Infofenster des Tutorials (falls aktiv) und startet das Tutorial
        UIVerwaltung.MassnahmenHistoryMenuOff();
        UIVerwaltung.PausenMenuOff();
        GameObject.Find("Canvas").GetComponent <Tutorial>().SchließeTutorialFenster();
        GameObject.Find("Canvas").GetComponent <Tutorial>().StarteTutorial();

        //die andere Menü-Buttons werden weiß eingefärbt
        GameObject.Find("MassnahmenHistory").transform.Find("Image").GetComponent <Image>().color = new Color(0.0f, 0.0f, 0.0f, 1.0f);
        GameObject.Find("PausenMenu").transform.Find("Image").GetComponent <Image>().color        = new Color(0.0f, 0.0f, 0.0f, 1.0f);
    }
示例#9
0
    //nach dem Hovern über eine Maßnahme wird  die Farbe des Buttons und des Textes zurück geändert und die Veränderungen ausgeblendet
    public void MassnahmenButtonLeave()
    {
        //blendet die Veränderungen aus
        foreach (Transform child in Attributswerte.transform)
        {
            child.transform.Find("AttChange").GetComponent <RawImage>().enabled = false;
        }

        //ändert die Farben zurück
        transform.Find("Text").GetComponent <Text>().color = new Color(0.2f, 0.2f, 0.2f, 1.0f);
        UIVerwaltung.OnButtonLeave(this.GetComponent <Image>());
        GetComponent <Doozy.Engine.UI.UIButton>().ExecutePointerExit();
    }
示例#10
0
 //OnClick-Event, das beim Klick auf den unteren Reiter im Endscreen ausgelöst wird
 private void GraphenButtonOnClick()
 {
     //überprüft, welcher der beiden anderen Reiter derzeit geöffnet ist und schließt den entsprechenden, anschließend wird der Graphen-Reiter geöffnet
     if (GameObject.Find("Chronik").GetComponent <RectTransform>().rect.width == 150)
     {
         UIVerwaltung.EndscreenChronikOff();
         UIVerwaltung.EndscreenGraphenOn();
     }
     else if (GameObject.Find("Punkte").GetComponent <RectTransform>().rect.width == 150)
     {
         UIVerwaltung.EndscreenPunkteOff();
         UIVerwaltung.EndscreenGraphenOn();
     }
 }
示例#11
0
 //OnClick-Event, das beim Klick auf den obersten Reiter im Endscreen ausgelöst wird
 private void PunkteButtonOnClick()
 {
     //überprüft, ob die Chronik oder die Graphen angezeigt werden, falls ja, schließt es den entsprechenden Reiter und öffnet die Punkteübersicht
     if (GameObject.Find("Chronik").GetComponent <RectTransform>().rect.width == 150)
     {
         UIVerwaltung.EndscreenChronikOff();
         UIVerwaltung.EndscreenPunkteOn();
     }
     else if (GameObject.Find("Graphen").GetComponent <RectTransform>().rect.width == 150)
     {
         UIVerwaltung.EndscreenGraphenOff();
         UIVerwaltung.EndscreenPunkteOn();
     }
 }
示例#12
0
    //Methode, die beim Click auf den Chronik-Button oben links ausgeführt wird
    void HistoryButtonOnClick()
    {
        //überprüft, ob die Chronik bereits geöffnet ist. Falls ja, wird sie geschlossen, falls nein, geöffnet
        if (Content.transform.GetChild(0).GetComponent <Image>().enabled == false)
        {
            //überprüft, ob bereits Maßnahmen verabschiedet wurden und erstellt dann für jede Maßnahme und jedes Ereignis ein eigenes Element in der Chronik
            if (transform.childCount > 0)
            {
                int childNr = 0;
                foreach (Transform child in transform) //wird für jede Maßnahme und jedes Ereignis ausgeführt
                {
                    //ein neues Element wird erschaffen und mit den notwendigen Infos ausgestattet
                    if (childNr > Content.transform.childCount - 1)
                    {
                        GameObject.Instantiate(Content.transform.GetChild(0), Content.transform);
                    }
                    Content.transform.GetChild(childNr).Find("Ressortname").GetComponent <Text>().text  = child.GetComponent <Massnahme>().ressort;
                    Content.transform.GetChild(childNr).Find("Ideologie").GetComponent <Text>().text    = child.GetComponent <Massnahme>().ideologie;
                    Content.transform.GetChild(childNr).Find("Beschreibung").GetComponent <Text>().text = child.GetComponent <Massnahme>().Beschreibung;

                    childNr++;
                }
            }

            //schließt, falls geöffnet das Pausenmenü oder das aktuelle Infofenster des Tutorials und öffnet dann die Chronik
            if (GameObject.Find("PauseFortsetzen").GetComponent <Image>().enabled == true)
            {
                UIVerwaltung.PausenMenuOff();
                transform.parent.Find("Image").GetComponent <Image>().color = new Color(0.16f, 0.6f, 0.97f, 1.0f);
            }
            StartCoroutine(UIVerwaltung.MassnahmenHistoryMenuOn());
            GameObject.Find("Canvas").GetComponent <Tutorial>().SchließeTutorialFenster();
        }
        else
        {
            //schließt die Chronik
            UIVerwaltung.MassnahmenHistoryMenuOff();

            //öffnet ggf das Tutorialfenster für die Ressortwahl
            if (GameObject.Find("Ressortwahl").transform.Find("Finanzen").GetComponent <Image>().enabled == true && GameObject.Find("Canvas").GetComponent <Tutorial>().tutorialPhase == Tutorial.TutorialPhase.Ressortwahl)
            {
                GameObject.Find("Canvas").GetComponent <Tutorial>().ZeigeTutorialText("Phase2", GameObject.Find("Ok2").GetComponent <Button>(), true);
            }
        }
    }
示例#13
0
    //OnClick-Event, wenn eine Maßnahme ausgewählt wurde
    void MassnahmenButtonOnClick()
    {
        int i = 0;

        //Die Veränderungen der Maßnahme (welche bei der Ressortwahl als Kind festgelegt wurde) werden auf die Attribute angewandt
        foreach (Transform child in Attributswerte.transform)
        {
            child.transform.Find("AttWert").GetComponent <AttWert>().wert += transform.GetChild(1).GetComponent <Massnahme>().veranderungen[i];
            i++;
        }

        //die Maßnahme wird nun in die Chronik verschoben
        transform.GetChild(1).SetParent(GameObject.Find("MassnahmenContainer").transform);

        //die Maßnahmenwahl und ggf das aktuelle Tutorialfenster werden geschlossen
        UIVerwaltung.MassnahmenwahlOff();
        GameObject.Find("Canvas").GetComponent <Tutorial>().SchließeTutorialFenster();

        //ggf wird das nächste Tutorialfenster angezeigt
        if (GameObject.Find("Canvas").GetComponent <Tutorial>().tutorialPhase == Tutorial.TutorialPhase.Massnahmenwahl)
        {
            GameObject.Find("Canvas").GetComponent <Tutorial>().tutorialPhase = Tutorial.TutorialPhase.Events;
            GameObject.Find("Canvas").GetComponent <Tutorial>().ZeigeTutorialText("Phase3", GameObject.Find("Ok3").GetComponent <Button>(), false);
        }
        else if (GameObject.Find("Canvas").GetComponent <Tutorial>().tutorialPhase == Tutorial.TutorialPhase.History)
        {
            GameObject.Find("Canvas").GetComponent <Tutorial>().ZeigeTutorialText("Phase5", GameObject.Find("Ok5").GetComponent <Button>(), true);
        }
        else if (GameObject.Find("Canvas").GetComponent <Tutorial>().tutorialPhase == Tutorial.TutorialPhase.Ressortwahl)
        {
            GameObject.Find("Canvas").GetComponent <Tutorial>().ZeigeTutorialText("Phase2", GameObject.Find("Ok2").GetComponent <Button>(), true);
        }

        //die nächste Runde wird eingeleitet
        GameObject.Find("Canvas").GetComponent <GameController>().naechsteRunde();
    }
示例#14
0
 //ändert die Farbe der großen Buttons links im Endscreen zurück nach dem Hovern
 public void EndscreenButtonExit(GameObject Button)
 {
     UIVerwaltung.OnButtonLeave(Button.GetComponent <Image>());
     Button.GetComponent <Doozy.Engine.UI.UIButton>().ExecutePointerExit();
 }
示例#15
0
 //verändert die Farbe der großen Buttons links im Endscreen beim Hovern
 public void EndscreenButtonHover(GameObject Button)
 {
     UIVerwaltung.OnButtonHover(Button.GetComponent <Image>());
 }
示例#16
0
 public void PausenMenuButtonHover(Image Button)
 {
     //die eckigen Buttons im Pausenmenü werden beim Hovern blau eingefärbt
     UIVerwaltung.OnButtonHover(Button);
 }
示例#17
0
    //handelt die Ereignisse ab
    IEnumerator eventImpact()
    {
        GameObject Event = null;

        CoroutineRunning = true;

        //überprüft, ob ein negatives Spezialereignis ausgelöst wird
        for (int i = 0; i < 5; i++)
        {
            //Wenn die Bedingung für ein Spezialevent erfüllt ist, wird dieses ausgewählt und geklont. Der Klon dient als Platzhalter, da das ausgelöste Ereignis später in die Chronik verschoben wird.
            if (Attributswerte.transform.GetChild(i).transform.Find("AttWert").GetComponent <AttWert>().wert <= 20 && SpecialEventTriggered[i] == false)
            {
                Event = SpecialEvents.transform.GetChild(i).gameObject;
                GameObject Clone = GameObject.Instantiate(Event, Event.transform.parent);
                Clone.transform.SetSiblingIndex(i);
                SpecialEventTriggered[i] = true;
                break;
            }
        }

        //sofern kein negatives Spezialevent ausgewählt wurde, wird überprüft, ob eine Bedingung für ein positives Spezialereignis erfüllt ist
        if (Event == null)
        {
            for (int i = 0; i < 5; i++)
            {
                //Wenn die Bedingung für ein Spezialevent erfüllt ist, wird dieses ausgewählt und geklont. Der Klon dient als Platzhalter, da das ausgelöste Ereignis später in die Chronik verschoben wird.
                if (Attributswerte.transform.GetChild(i).transform.Find("AttWert").GetComponent <AttWert>().wert >= 90 && SpecialEventTriggered[i + 5] == false)
                {
                    Event = SpecialEvents.transform.GetChild(i + 5).gameObject;
                    GameObject Clone = GameObject.Instantiate(Event, Event.transform.parent);
                    Clone.transform.SetSiblingIndex(i + 5);
                    SpecialEventTriggered[i + 5] = true;
                    break;
                }
            }
        }

        //Sofern auch kein positives Spezialevent ausgewählt wurde, wird ein normales Ereignis ausgelöst
        if (Event == null)
        {
            //überprüft, ob noch Ereignisse verfügbar sind (maximal sind nur 10 normale Ereignisse pro Spiel möglich)
            if (Events.transform.childCount == 0)
            {
                EventsOnStack = 0;
                yield break;
            }

            //ein zufälliges Ereignis wird ausgelöst
            Event = Events.transform.GetChild(Random.Range(0, Events.transform.childCount)).gameObject;
        }

        //Der Textlauf wird gestartet und fängt an zu blinken
        StartCoroutine(TextlaufObject.GetComponent <Textlauf>().StarteTextLauf(Event.GetComponent <Massnahme>().Beschreibung));
        StartCoroutine(TextlaufObject.GetComponent <Textlauf>().Blinken());

        //Die Werte des Ereignisses werden übertragen
        for (int i = 0; i < 10; i++)
        {
            EventVeraenderungen[i] = Event.GetComponent <Massnahme>().veranderungen[i];
        }

        //Das Ereignis wird in die Chronik verschoben
        Event.transform.SetParent(GameObject.Find("MassnahmenContainer").transform);

        //ggf wird der Tutorial-Abschnitt zu den Ereignissen angezeigt
        if (GetComponent <Tutorial>().tutorialPhase == Tutorial.TutorialPhase.Events)
        {
            GetComponent <Tutorial>().ZeigeTutorialText("Phase4", GameObject.Find("Ok4").GetComponent <Button>(), true);
        }

        yield return(new WaitForSeconds(1));

        //nach einer Sekunde werden die Veränderungen des Ereignisses in der Attributsleiste angezeigt
        zeigeEventVeraenderungen();

        yield return(new WaitForSeconds(2.5f));

        //nach weiteren zweieinhalb Sekunden werden die Veränderungen des Events dann tatsächlich ausgeführt
        int j = 0;

        foreach (Transform child in Attributswerte.transform)
        {
            child.transform.Find("AttChange").GetComponent <RawImage>().enabled = false;
            child.transform.Find("AttWert").GetComponent <AttWert>().wert      += EventVeraenderungen[j];
            j++;
        }

        CoroutineRunning = false;
        EventsOnStack--;

        //Sollten sich keine Ereignisse mehr auf dem Stapel befinden und das Spiel bereits zu Ende sein, wird der Endscreen angezeigt
        if (EventsOnStack == 0 && CurrentRunden == MaxRunden)
        {
            UIVerwaltung.Endscreen();
            GetComponent <Tutorial>().SchließeTutorialFenster();
            StartCoroutine(GameObject.Find("Endscreen").GetComponent <Endscreen>().ZeigeEndpunkte());
            GameObject.Find("Endscreen").GetComponent <Endscreen>().BerechneStats();
            TextlaufStop = true;
        }

        yield break;
    }