Advertisement
Guest User

Untitled

a guest
Mar 31st, 2020
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 12.18 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine.UI;
  4. using UnityEngine;
  5.  
  6. [System.Serializable]
  7. public class Blacksmiths : MonoBehaviour {
  8.  
  9.     public int starting_population;
  10.     public int population; // Starts with 3 each game //
  11.     public int infected_population;
  12.     public int resource_production; // Produces 1 tool for each citizen//
  13.     public int resource_store;
  14.  
  15.     public bool infected_reveal;
  16.     public bool always_reveal;
  17.  
  18.     public bool in_ruin;
  19.     public int ruin_counter;
  20.     public bool ruin_over;
  21.  
  22.     public struct Villager
  23.     {
  24.         public string name;
  25.         public int plague_progress;
  26.         public bool infected_found;
  27.         public char gender;
  28.         public bool fed;
  29.         public bool dead;
  30.         public int cause_death; // 1- Plague , 2- Starved, 3- Executed, 4- Freezed to death, 5- Aged to death //
  31.         public int age;
  32.         public bool exists; // Determins of the villager exists in the world //
  33.     };
  34.  
  35.     public Villager[] array_pop = new Villager[50];
  36.     public Villager[] array_deadpop = new Villager[50];
  37.  
  38.     public int unrest;
  39.     public bool rioting;
  40.  
  41.     // Use this for initialization
  42.     void Start () {
  43.         infected_reveal = false;
  44.         starting_population = 6;
  45.         unrest = 0;
  46.         population = 0;
  47.         infected_population = 0;
  48.         resource_production = 1;
  49.         ruin_counter = 0;
  50.  
  51.         for (int i = 0; i != 50; i++)
  52.         {
  53.             array_pop[i].exists = false;
  54.             array_pop[i].dead = false;
  55.         }
  56.  
  57.         for (int i= 0; i != starting_population; i++)
  58.         {
  59.             int gender_r = Random.Range(0, 2);
  60.             if (gender_r == 0)
  61.             {
  62.                 array_pop[i].name = malenames();
  63.                 array_pop[i].gender = 'M';
  64.             }
  65.             else
  66.             {
  67.                 array_pop[i].name = femalenames();
  68.                 array_pop[i].gender = 'F';
  69.             }
  70.             array_pop[i].exists = true;
  71.             int x = Random.Range(16, 46);
  72.             array_pop[i].age = x;
  73.             array_pop[i].fed = false;
  74.             array_pop[i].dead = false;
  75.             array_pop[i].plague_progress = 0;
  76.         }
  77.  
  78. }
  79.    
  80.     // Update is called once per frame
  81.     void FixedUpdate () {
  82.  
  83.         int pop_count = 0;
  84.         int if_pop = 0;
  85.         int hidden_inf_pop = 0;
  86.         for (int i = 0;  i <= 49; i++){
  87.             if (array_pop[i].exists == true && array_pop[i].dead == false)
  88.             {
  89.                 if (array_pop[i].exists && array_pop[i].plague_progress > 0 && array_pop[i].infected_found == true)
  90.                     if_pop++;
  91.                 else if (array_pop[i].exists && array_pop[i].plague_progress > 0)
  92.                     hidden_inf_pop++;
  93.                 else
  94.                     pop_count++;
  95.             }
  96.         }
  97.         population = pop_count + hidden_inf_pop;
  98.         infected_population = if_pop;
  99.  
  100.         if (infected_reveal == true)
  101.         {
  102.             for (int i = 0; i != population + infected_population; i++)
  103.             {
  104.                 if (array_pop[i].plague_progress > 0 && array_pop[i].dead == false && array_pop[i].exists == true)
  105.                 {
  106.                     array_pop[i].infected_found = true;
  107.                 }
  108.             }
  109.             infected_reveal = false;
  110.         }
  111.  
  112.         if (always_reveal == true)
  113.         {
  114.             for (int i = 0; i != population + infected_population; i++)
  115.             {
  116.                 if (array_pop[i].plague_progress > 0 && array_pop[i].dead == false && array_pop[i].exists == true)
  117.                 {
  118.                     array_pop[i].infected_found = true;
  119.                 }
  120.             }
  121.         }
  122.  
  123.  
  124.         if (in_ruin == true && population + infected_population + hidden_inf_pop == 0)
  125.         {
  126.             ruin_over = true;
  127.         }
  128.  
  129.         if (ruin_counter == 2 && infected_population + hidden_inf_pop + population == 0)
  130.         {
  131.             ruin_over = false;
  132.             in_ruin = false;
  133.             ruin_counter = 0;
  134.             disable_ruin_screens();
  135.             unrest = 0;
  136.         }
  137.  
  138.  
  139.         if ((hidden_inf_pop + infected_population > 0) && population == 0 && in_ruin == false)
  140.         {
  141.             Merchants Merchant = GameObject.Find("m").GetComponent<Merchants>();
  142.             Lumberer Lumberer = GameObject.Find("l").GetComponent<Lumberer>();
  143.             Farmers Farmer = GameObject.Find("f").GetComponent<Farmers>();
  144.             enable_ruin_screens();
  145.             if (unrest < 5)
  146.                 unrest++;
  147.             if (Farmer.unrest < 5)
  148.                 Farmer.unrest++;
  149.             if (Lumberer.unrest < 5)
  150.                 Lumberer.unrest++;
  151.             if (Merchant.unrest < 5)
  152.                 Merchant.unrest++;
  153.  
  154.             if (unrest > 5)
  155.                 unrest = 5;
  156.             if (Farmer.unrest > 5)
  157.                 Farmer.unrest = 5;
  158.             if (Lumberer.unrest > 5)
  159.                 Lumberer.unrest = 5;
  160.             if (Merchant.unrest > 5)
  161.                 Merchant.unrest = 5;
  162.             in_ruin = true;
  163.         }
  164.  
  165.  
  166.     }
  167.  
  168.     void enable_ruin_screens()
  169.     {
  170.         GameObject[] ruin_screens_objects = GameObject.FindGameObjectsWithTag("b_ruin_screen");
  171.         Image[] ruin_screen_images = new Image[ruin_screens_objects.Length];
  172.         for (int i = 0; i != ruin_screens_objects.Length; i++)
  173.         {
  174.             ruin_screen_images[i] = ruin_screens_objects[i].GetComponent<Image>();
  175.         }
  176.         for (int i = 0; i != ruin_screen_images.Length; i++)
  177.         {
  178.             ruin_screen_images[i].enabled = true;
  179.         }
  180.     }
  181.  
  182.     void disable_ruin_screens()
  183.     {
  184.  
  185.         GameObject[] ruin_screens_objects = GameObject.FindGameObjectsWithTag("b_ruin_screen");
  186.         Image[] ruin_screen_images = new Image[ruin_screens_objects.Length];
  187.         for (int i = 0; i != ruin_screens_objects.Length; i++)
  188.         {
  189.             ruin_screen_images[i] = ruin_screens_objects[i].GetComponent<Image>();
  190.         }
  191.         for (int i = 0; i != ruin_screen_images.Length; i++)
  192.         {
  193.             ruin_screen_images[i].enabled = false;
  194.         }
  195.     }
  196.  
  197.     string malenames()
  198.     {
  199.         string first = " ";
  200.         string last = " ";
  201.         int fr = Random.Range(1, 31);
  202.         int lr = Random.Range(1, 31);
  203.  
  204.         switch (fr)
  205.         {
  206.             case 1: first = "Adam"; break;
  207.             case 2: first = "Geoffrey"; break;
  208.             case 3: first = "Gilbert"; break;
  209.             case 4: first = "Henry"; break;
  210.             case 5: first = "Hugh"; break;
  211.             case 6: first = "John"; break;
  212.             case 7: first = "Nicholas"; break;
  213.             case 8: first = "Peter"; break;
  214.             case 9: first = "Ralf"; break;
  215.             case 10: first = "Richard"; break;
  216.             case 11: first = "Robert"; break;
  217.             case 12: first = "Roger"; break;
  218.             case 13: first = "Simon"; break;
  219.             case 14: first = "Thomas"; break;
  220.             case 15: first = "Walter"; break;
  221.             case 16: first = "William"; break;
  222.             case 17: first = "Reynold"; break;
  223.             case 18: first = "Richard"; break;
  224.             case 19: first = "Robert"; break;
  225.             case 20: first = "Luke"; break;
  226.             case 21: first = "Gerard"; break;
  227.             case 22: first = "Arnold"; break;
  228.             case 23: first = "Andrew"; break;
  229.             case 24: first = "Alexander"; break;
  230.             case 25: first = "Peter"; break;
  231.             case 26: first = "Giles"; break;
  232.             case 27: first = "Walter"; break;
  233.             case 28: first = "Martin"; break;
  234.             case 29: first = "Edmund"; break;
  235.             case 30: first = "Benedict"; break;
  236.         }
  237.  
  238.         switch (lr)
  239.         {
  240.             case 1: last = "Aashdown"; break;
  241.             case 2: last = "Baker"; break;
  242.             case 3: last = "Bigge"; break;
  243.             case 4: last = "Bricknden"; break;
  244.             case 5: last = "Brooker"; break;
  245.             case 6: last = "Brown"; break;
  246.             case 7: last = "Carpenter"; break;
  247.             case 8: last = "Chesseman"; break;
  248.             case 9: last = "Clarke"; break;
  249.             case 10: last = "Cooper"; break;
  250.             case 11: last = "Fletcher"; break;
  251.             case 12: last = "Foreman"; break;
  252.             case 13: last = "Godfrey"; break;
  253.             case 14: last = "Gregory"; break;
  254.             case 15: last = "Mannering"; break;
  255.             case 16: last = "Nash"; break;
  256.             case 17: last = "Payne"; break;
  257.             case 18: last = "Rolfe"; break;
  258.             case 19: last = "Taylor"; break;
  259.             case 20: last = "Walter"; break;
  260.             case 21: last = "Ward"; break;
  261.             case 22: last = "Webb"; break;
  262.             case 23: last = "Wood"; break;
  263.             case 24: last = "Blackburn"; break;
  264.             case 25: last = "Benheart"; break;
  265.             case 26: last = "Marshall"; break;
  266.             case 27: last = "Essay"; break;
  267.             case 28: last = "Mutton"; break;
  268.             case 29: last = "Moore"; break;
  269.             case 30: last = "Bog"; break;
  270.         }
  271.  
  272.         first = first + " " + last;
  273.         return first;
  274.     }
  275.  
  276.     string femalenames()
  277.     {
  278.         string first = " ";
  279.         string last = " ";
  280.         int fr = Random.Range(1, 31);
  281.         int lr = Random.Range(1, 31);
  282.  
  283.         switch (fr)
  284.         {
  285.             case 1: first = "Agatha"; break;
  286.             case 2: first = "Alice"; break;
  287.             case 3: first = "Aline"; break;
  288.             case 4: first = "Amabel"; break;
  289.             case 5: first = "Anne"; break;
  290.             case 6: first = "Beatrice"; break;
  291.             case 7: first = "Cecily"; break;
  292.             case 8: first = "Christina"; break;
  293.             case 9: first = "Clarice"; break;
  294.             case 10: first = "Constance"; break;
  295.             case 11: first = "Denise"; break;
  296.             case 12: first = "Edith"; break;
  297.             case 13: first = "Eleanor"; break;
  298.             case 14: first = "Elizabeth"; break;
  299.             case 15: first = "Ellen"; break;
  300.             case 16: first = "Emma"; break;
  301.             case 17: first = "Eve"; break;
  302.             case 18: first = "Felice"; break;
  303.             case 19: first = "Gillian"; break;
  304.             case 20: first = "Helen"; break;
  305.             case 21: first = "Joan"; break;
  306.             case 22: first = "Juliana"; break;
  307.             case 23: first = "Katherine"; break;
  308.             case 24: first = "Lucy"; break;
  309.             case 25: first = "Margery"; break;
  310.             case 26: first = "Mary"; break;
  311.             case 27: first = "Rose"; break;
  312.             case 28: first = "Sarah"; break;
  313.             case 29: first = "Susan"; break;
  314.             case 30: first = "Sybil"; break;
  315.         }
  316.  
  317.         switch (lr)
  318.         {
  319.             case 1: last = "Aashdown"; break;
  320.             case 2: last = "Baker"; break;
  321.             case 3: last = "Bigge"; break;
  322.             case 4: last = "Bricknden"; break;
  323.             case 5: last = "Brooker"; break;
  324.             case 6: last = "Brown"; break;
  325.             case 7: last = "Carpenter"; break;
  326.             case 8: last = "Chesseman"; break;
  327.             case 9: last = "Clarke"; break;
  328.             case 10: last = "Cooper"; break;
  329.             case 11: last = "Fletcher"; break;
  330.             case 12: last = "Foreman"; break;
  331.             case 13: last = "Godfrey"; break;
  332.             case 14: last = "Gregory"; break;
  333.             case 15: last = "Mannering"; break;
  334.             case 16: last = "Nash"; break;
  335.             case 17: last = "Payne"; break;
  336.             case 18: last = "Rolfe"; break;
  337.             case 19: last = "Taylor"; break;
  338.             case 20: last = "Walter"; break;
  339.             case 21: last = "Ward"; break;
  340.             case 22: last = "Webb"; break;
  341.             case 23: last = "Wood"; break;
  342.             case 24: last = "Blackburn"; break;
  343.             case 25: last = "Benheart"; break;
  344.             case 26: last = "Marshall"; break;
  345.             case 27: last = "Essay"; break;
  346.             case 28: last = "Mutton"; break;
  347.             case 29: last = "Moore"; break;
  348.             case 30: last = "Bog"; break;
  349.         }
  350.  
  351.         first = first + " " + last;
  352.         return first;
  353.     }
  354.  
  355. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement