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); } } } }
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"); } } }