// Start is called before the first frame update
    void Awake()
    {
        CallEmployeeValue = GameObject.Find("CompanyManager").GetComponent <CompanyManager>().GetPlayerCompanyValue().GetEmployeeValue().GetComponent <EmployeeValue>();

        WorkerImageObject  = InfoPanel.transform.GetChild(1).GetChild(0).gameObject;
        NameTextObject     = InfoPanel.transform.GetChild(3).GetChild(0).GetChild(1).gameObject;
        AgeTextObject      = InfoPanel.transform.GetChild(3).GetChild(1).GetChild(1).gameObject;
        PayTextObject      = InfoPanel.transform.GetChild(3).GetChild(2).GetChild(1).gameObject;
        AbilityTextObject  = InfoPanel.transform.GetChild(3).GetChild(3).GetChild(1).GetChild(1).gameObject;
        FatigueGraphBar    = FatiguePanel.transform.GetChild(1).GetChild(1).GetChild(0).gameObject;
        ExperienceGraphBar = ExperiencePanel.transform.GetChild(1).GetChild(1).GetChild(0).gameObject;
        PromoteButton      = FunctionButtonPanel.transform.GetChild(1).GetChild(0).gameObject;
        FireButton         = FunctionButtonPanel.transform.GetChild(3).GetChild(0).gameObject;
    }
Esempio n. 2
0
    void Awake()
    {
        CallTimeManager      = GameObject.Find("TimeManager").GetComponent <TimeManager>();
        CallCompanyManager   = GameObject.Find("CompanyManager").GetComponent <CompanyManager>();
        CallCompanyValue     = CallCompanyManager.GetPlayerCompanyValue();
        CallElectricityValue = CallCompanyValue.GetElectricityValue().GetComponent <ElectricityValue>();
        CallEmployeeValue    = CallCompanyValue.GetEmployeeValue().GetComponent <EmployeeValue>();
        CallGoodsValue       = CallCompanyValue.GetGoodsValue().GetComponent <GoodsValue>();
        CallFacilityValue    = CallCompanyValue.GetFacilityValue().GetComponent <FacilityValue>();

        ElectricityGraphPanelCarrier = GraphCarrier.transform.GetChild(0).gameObject;
        LaborForceGraphPanelCarrier  = GraphCarrier.transform.GetChild(2).gameObject;
        ProcessGraphPanelCarrier     = GraphCarrier.transform.GetChild(4).gameObject;
        ProcessGraphIndexPanel       = ProcessGraphIndexCarrier.transform.parent.gameObject;
    }
Esempio n. 3
0
 // Start is called before the first frame update
 void Start()
 {
     ObjectActCall     = gameObject.GetComponent <InstallableObjectAct>();
     CompanyValueCall  = GameObject.Find("CompanyManager").GetComponent <CompanyManager>().GetPlayerCompanyValue();
     EmployeeValueCall = CompanyValueCall.GetEmployeeValue().GetComponent <EmployeeValue>();
 }
Esempio n. 4
0
    void SelectCompany()
    {
        List <Worker> TargetWorker = new List <Worker>();

        foreach (var worker in UnHiredList)
        {
            List <GameObject> SelectedCompany = new List <GameObject>();
            foreach (var company in CompanyManagerCall.GetAllCompanyObject())
            {
                CompanyValue TempCompanyValueCall = company.GetComponent <CompanyValue>();
                if (TempCompanyValueCall.TotalValue >= worker.ExpectCompanyValue && TempCompanyValueCall.TotalValue != 0)
                {
                    foreach (var CompanyName in worker.LeaveFactoryList)
                    {
                        if (TempCompanyValueCall.CompanyName == CompanyName)
                        {
                            continue;
                        }
                    }
                    SelectedCompany.Add(company);
                }
            }

            if (SelectedCompany.Count > 0)
            {
                CompanyValue  CompanyValueCall  = SelectedCompany[Random.Range(0, SelectedCompany.Count - 1)].GetComponent <CompanyValue>();
                EmployeeValue EmployeeValueCall = CompanyValueCall.GetEmployeeValue().GetComponent <EmployeeValue>();

                int HiringRate = 2;

                if (EmployeeValueCall.RequiredLabor <= EmployeeValueCall.TotalLabor)
                {
                    HiringRate *= 10 * Mathf.CeilToInt(EmployeeValueCall.TotalLabor - EmployeeValueCall.RequiredLabor + 1);
                }
                if (CompanyValueCall.TotalValue > worker.ExpectCompanyValue)
                {
                    HiringRate *= 1 * Mathf.CeilToInt(CompanyValueCall.TotalValue / worker.ExpectCompanyValue);
                }
                if (CompanyValueCall.TotalValue <= worker.ExpectCompanyValue)
                {
                    HiringRate *= 4 * Mathf.CeilToInt(worker.ExpectCompanyValue / CompanyValueCall.TotalValue);
                }

                if (Random.Range(0, HiringRate) == 0)
                {
                    EmployeeValueCall.HireEmployee(worker);
                    TargetWorker.Add(worker);
                    // Debug.Log(worker.Name + " is Hired on " + CompanyValueCall.CompanyName);
                }
                // else Debug.Log(worker.Name + " doesnt go anywhere");
            }

            if (--worker.TrialCount < 0)
            {
                TargetWorker.Add(worker);
            }
            else
            {
                worker.ExpectCompanyValue -= 0.5f;
            }
        }

        for (int i = 0; i < TargetWorker.Count; i++)
        {
            UnHiredList.Remove(TargetWorker[i]);
        }
    }