示例#1
0
    public BossShootPopup(GameObject popupSpawner)
    {
        this.popupSpawner = popupSpawner;
        PopupSpawner popupSpawnerScript = popupSpawner.GetComponent <PopupSpawner>();

        this.bossMouse    = popupSpawnerScript.bossMouse;
        this.popupPrefabs = popupSpawnerScript.popupPrefabs;
    }
    /// <summary>
    /// Initializes the game.
    /// Finds the policar instances and adds those to an array.
    /// </summary>
    void Awake()
    {
        Time.timeScale = 1;
        gameOver = false;
        restart = false;
        restartText.text = "";
        gameOverText.text = "";

        leaderboard = GameObject.FindGameObjectWithTag("Leaderboard").GetComponent<Leaderboard>();
		gameOverMenu = GameObject.FindGameObjectWithTag ("GameOverMenu");

		//Hide initially
		gameOverMenu.SetActive (false);

        popupSpawner = GameObject.FindGameObjectWithTag("PopupSpawner").GetComponent<PopupSpawner>();

        if (popupSpawner == null)
        {
            Debug.Log("popupSpawner could not be found!");
        }

        var pcars = GameObject.FindGameObjectsWithTag("Seeker");
        if (pcars == null)
        {
            Debug.Log("Can't find any Police Car game objects!!!");
        }
        else
        {
            foreach (var item in pcars)
            {
                policeCars.Add(item);
            }
        }

        score = 0;
        UpdateScore();
    }
示例#3
0
    public static void DiseaseChance(List <pirate> ps)
    {
        PopupSpawner popups = GameObject.FindGameObjectWithTag("popup manager").GetComponent <PopupSpawner>();

        Debug.Log("Chancing diseases...");

        Random.InitState(System.DateTime.Now.Millisecond);

        int dnum = 0, tnum = 0;

        foreach (pirate p in ps)
        {
            if (p.diseases.Contains(Desyntery))
            {
                dnum++;
            }
            if (p.diseases.Contains(Typhoid))
            {
                tnum++;
            }
        }

        //Desyntery
        float chance = Mathf.Clamp((100 * resources.dirtiness) / 50 + 5 * dnum, 0, 80); //between 0-80, colleages can spread

        foreach (pirate p in ps)
        {
            if (!p.diseases.Contains(Desyntery))
            {
                int r = Random.Range(0, 100);
                if (r < chance)//gets disease
                {
                    Debug.Log(r + "number ->" + p.name + " got " + Desyntery.diseaseName + " chance: " + chance);

                    popups.PopEvent(p.name + " got " + Desyntery.diseaseName + "!", Desyntery.diseaseDesc);

                    p.diseases.Add(Desyntery);
                }
            }
        }

        //Malaria
        chance = 0;
        if (MapManager.places[MapManager.places.Count - 1].p == Place.Island)
        {
            chance = 30;
        }

        chance += ((100 * resources.dirtiness) / 50 * 100) / 10; //adds 10% of dirtiness

        foreach (pirate p in ps)
        {
            if (!p.diseases.Contains(Malaria))
            {
                int r = Random.Range(0, 100);
                if (r < chance)//gets disease
                {
                    Debug.Log(r + "number ->" + p.name + " got " + Malaria.diseaseName + " chance: " + chance);
                    popups.PopEvent(p.name + " got " + Malaria.diseaseName + "!", Malaria.diseaseDesc);
                    p.diseases.Add(Malaria);
                }
            }
        }

        //Typhoid
        chance = Mathf.Clamp((100 * resources.dirtiness) / 50 + 5 * tnum, 0, 80); //direct dirtiness + spreading factor max 80%
        foreach (pirate p in ps)
        {
            int r = Random.Range(0, 100);
            if (r < chance)//gets disease
            {
                popups.PopEvent(p.name + " got " + Typhoid.diseaseName + "!", Typhoid.diseaseDesc);
                Debug.Log(r + "number ->" + p.name + " got " + Typhoid.diseaseName + " chance: " + chance);
                p.diseases.Add(Typhoid);
            }
        }

        //Typhus
        chance = 80 * resources.dirtiness / 50; //direct dirtiness factor scaled to 80%
        foreach (pirate p in ps)
        {
            if (!p.diseases.Contains(Typhus))
            {
                int r = Random.Range(0, 100);
                if (r < chance)//gets disease
                {
                    popups.PopEvent(p.name + " got " + Typhus.diseaseName + "!", Typhus.diseaseDesc);
                    Debug.Log(r + "number ->" + p.name + " got " + Typhus.diseaseName + " chance: " + chance);
                    p.diseases.Add(Typhus);
                }
            }
        }

        //Scurvy
        foreach (pirate p in ps)
        {
            if (p.diseases.Contains(Scurvy) == false)
            {
                chance = 100 * (50 - p.vc) / 50; //invert vitC
                Debug.Log(p.vc);

                int r = Random.Range(0, 100);
                if (r < chance)//gets disease
                {
                    popups.PopEvent(p.name + " got " + Scurvy.diseaseName + "!", Scurvy.diseaseDesc);
                    Debug.Log(r + "number ->" + p.name + " got " + Scurvy.diseaseName + " chance: " + chance);
                    p.diseases.Add(Scurvy);
                }
            }
        }
    }
 void Start()
 {
     popupSpawner = GameObject.FindGameObjectWithTag("PopupSpawner").GetComponent<PopupSpawner>();
 }
示例#5
0
    public static void DiseaseChance(List <pirate> ps)
    {
        PopupSpawner popups = GameObject.FindGameObjectWithTag("popup manager").GetComponent <PopupSpawner>();
        //Debug.Log("Chancing diseases...");

        int dnum = 0, tnum = 0;

        foreach (pirate p in ps)
        {
            if (p.diseases.Contains(Desyntery))
            {
                dnum++;
            }
            if (p.diseases.Contains(Typhoid))
            {
                tnum++;
            }
        }

        //Desyntery
        float chance = Mathf.Clamp((100 * resources.dirtiness) / 50 + 5 * dnum, 0, 20); //between 0-80, colleages can spread

        foreach (pirate p in ps)
        {
            bool repeat = false;
            foreach (Disease d in p.diseases)
            {
                if (d.diseaseName == Desyntery.diseaseName)
                {
                    repeat = true;
                }
            }
            if (!repeat)
            {
                int r = RollNumber(0, 100);
                if (r < chance)//gets disease
                {
                    //Debug.Log(r + "number ->" + p.name + " got " + Desyntery.diseaseName + " chance: " + chance);

                    popups.PopEvent(p.name + " got " + Desyntery.diseaseName + "!", Desyntery.diseaseDesc);

                    p.diseases.Add(Desyntery);
                    Desyntery.unlocked = true;
                }
            }
            else
            {
                Debug.Log("prevented repeated disease");
            }
        }

        //Malaria
        chance = 0;
        if (MapManager.places[MapManager.places.Count - 1].p == Place.Island)
        {
            chance  = 2;
            chance += ((5 * resources.dirtiness) / 50 * 100) / 50; //adds 5% of dirtiness
        }

        foreach (pirate p in ps)
        {
            bool repeat = false;
            foreach (Disease d in p.diseases)
            {
                if (d.diseaseName == Malaria.diseaseName)
                {
                    repeat = true;
                }
            }
            if (!repeat)
            {
                int r = RollNumber(0, 100);
                if (r < chance)//gets disease
                {
                    //Debug.Log(r + "number ->" + p.name + " got " + Malaria.diseaseName + " chance: " + chance);
                    popups.PopEvent(p.name + " got " + Malaria.diseaseName + "!", Malaria.diseaseDesc);
                    p.diseases.Add(Malaria);
                    Malaria.unlocked = true;
                }
            }
            else
            {
                Debug.Log("prevented repeated disease");
            }
        }

        //Typhoid
        chance = Mathf.Clamp((3 * resources.dirtiness) / 50, 0, 3) + 1 * tnum; //direct dirtiness + spreading factor max 10%
        foreach (pirate p in ps)
        {
            bool repeat = false;
            foreach (Disease d in p.diseases)
            {
                if (d.diseaseName == Typhoid.diseaseName)
                {
                    repeat = true;
                }
            }
            if (!repeat)
            {
                int r = RollNumber(0, 100);
                if (r < chance)//gets disease
                {
                    popups.PopEvent(p.name + " got " + Typhoid.diseaseName + "!", Typhoid.diseaseDesc);
                    //Debug.Log(r + "number ->" + p.name + " got " + Typhoid.diseaseName + " chance: " + chance);
                    p.diseases.Add(Typhoid);
                    Typhoid.unlocked = true;
                }
            }
            else
            {
                Debug.Log("prevented repeated disease");
            }
        }

        //Typhus
        chance = Mathf.Clamp(3 * resources.dirtiness / 50, 0, 3); //direct dirtiness factor scaled to 3%
        foreach (pirate p in ps)
        {
            bool repeat = false;
            foreach (Disease d in p.diseases)
            {
                if (d.diseaseName == Typhus.diseaseName)
                {
                    repeat = true;
                }
            }
            if (!repeat)
            {
                int r = RollNumber(0, 100);
                if (r < chance)//gets disease
                {
                    popups.PopEvent(p.name + " got " + Typhus.diseaseName + "!", Typhus.diseaseDesc);
                    //Debug.Log(r + "number ->" + p.name + " got " + Typhus.diseaseName + " chance: " + chance);
                    p.diseases.Add(Typhus);
                    Typhus.unlocked = true;
                }
            }
            else
            {
                Debug.Log("prevented repeated disease");
            }
        }

        //Scurvy
        foreach (pirate p in ps)
        {
            bool repeat = false;
            foreach (Disease d in p.diseases)
            {
                if (d.diseaseName == Scurvy.diseaseName)
                {
                    repeat = true;
                }
            }
            if (!repeat)
            {
                chance = Mathf.Clamp(10 * (50 - p.vc) / 50, 0, 10); //invert vitC max 10%

                int r = RollNumber(0, 100);
                if (r < chance)//gets disease
                {
                    popups.PopEvent(p.name + " got " + Scurvy.diseaseName + "!", Scurvy.diseaseDesc);
                    //Debug.Log(r + "number ->" + p.name + " got " + Scurvy.diseaseName + " chance: " + chance);
                    p.diseases.Add(Scurvy);
                    Scurvy.unlocked = true;
                }
            }
            else
            {
                Debug.Log("prevented repeated disease");
            }
        }
    }