// Add a specific patient to the clinic
        public bool AddPatient(HumanoidFighter fighter, int podIndex)
        {
            //if (fighter.currentHealth > 20.0f)
            //fighter.currentHealth -= 10.0F;
            Debug.Log(patients.Length);
            Debug.Log(podIndex);

            if (patients[podIndex] != null ||
                fighter.currentHealth == fighter.MaxHealth ||
                fighter.activity != FighterActivity.None)
            {
                return(false);
            }

            // Remove from other locations.
            if (GymManager.Instance.IsBusyTraining(fighter))
            {
                GymManager.Instance.RemoveStudent(fighter);
            }

            patients[podIndex] = fighter;
            fighter.activity   = FighterActivity.Resting;
            UIManagementManager.Instance.RefreshInventoryView();

            return(true);
        }
Exemplo n.º 2
0
        // cancel employee from the job (if possible)
        public bool CancelEmploye(Job job, HumanoidFighter fighter)
        {
            if (job.employees.Remove(fighter))
            {
                fighter.activity = FighterActivity.None;
                UIManagementManager.Instance.RefreshInventoryView();
                return(true);
            }

            return(false);
        }
Exemplo n.º 3
0
        public FighterProfileElement GetFighterProfileElement(HumanoidFighter fromFighter)
        {
            foreach (FighterProfileElement element in fighterTab.content.elementList)
            {
                if (element.data == fromFighter)
                {
                    return(element);
                }
            }

            return(null);
        }
        // Is fighter buys with training?
        public bool IsBusyTraining(HumanoidFighter fighter)
        {
            foreach (var room in rooms)
            {
                if (room.HasStudent(fighter))
                {
                    return(true);
                }
            }

            return(false);
        }
Exemplo n.º 5
0
        // assigns employee to the job
        public bool AssignEmploye(Job job, HumanoidFighter fighter)
        {
            if (job.employees.Count == job.requiredEmployeeAmount ||
                fighter.activity != FighterActivity.None ||
                !job.requirement.Validate(fighter) ||
                job.employees.Contains(fighter))
            {
                return(false);
            }

            job.employees.Add(fighter);
            fighter.activity = FighterActivity.PerformingJob;
            UIManagementManager.Instance.RefreshInventoryView();

            if (job.reward != null)
            {
                for (int i = 0; i < job.reward.Count; i++)
                {
                    FighterEffect rewardEffect = job.reward[i] as FighterEffect;
                    if (rewardEffect != null)
                    {
                        rewardEffect.fighterTargets.Add(fighter);
                    }
                }
            }

            if (job.penalty != null)
            {
                for (int i = 0; i < job.penalty.Count; i++)
                {
                    FighterEffect penaltyEffect = job.penalty[i] as FighterEffect;
                    if (penaltyEffect != null)
                    {
                        penaltyEffect.fighterTargets.Add(fighter);
                    }
                }
            }

            if (job.turnEffects != null)
            {
                for (int i = 0; i < job.turnEffects.Count; i++)
                {
                    FighterEffect turnEffect = job.turnEffects[i] as FighterEffect;
                    if (turnEffect != null)
                    {
                        turnEffect.fighterTargets.Add(fighter);
                    }
                }
            }

            return(true);
        }
        // Remove the patient from the clinic
        public bool RemovePatient(HumanoidFighter fighter)
        {
            int index = System.Array.IndexOf(patients, fighter);

            if (index == -1)
            {
                return(false);
            }

            patients[index].activity = FighterActivity.None;
            patients[index]          = null;
            UIManagementManager.Instance.RefreshInventoryView();
            return(true);
        }
        // Hire specific fighter (will be added to the inventory)
        public bool HireFighter(HumanoidFighter humanoidFighter)
        {
            if (InventoryManager.Instance.Moolah < humanoidFighter.price)
            {
                Debug.LogWarning("not enough money to hire fighter");
                return(false);
            }

            InventoryManager.Instance.ModifyMoolah(-humanoidFighter.price);
            InventoryManager.Instance.AddHumanoidFighter(humanoidFighter);
            displayHumanoids.Remove(humanoidFighter);
            UIManagementManager.Instance.RefreshInventoryView();

            return(true);
        }
        // Add student to the given room
        public Student AddStudent(TrainingRoom room, HumanoidFighter fighter)
        {
            if (room.HasStudent(fighter))
            {
                return(null);
            }

            // Remove from other locations.
            if (ClinicManager.Instance.IsPatient(fighter))
            {
                ClinicManager.Instance.RemovePatient(fighter);
            }


            Student student = new Student(fighter);

            room.Populate(student);
            return(student);
        }
Exemplo n.º 9
0
        // Validate all jobs employees state
        public void ValidateOccupiedFighters()
        {
            for (int i = 0; i < jobOffers.Count; i++)
            {
                for (int j = jobOffers[i].employees.Count - 1; j >= 0; j--)
                {
                    HumanoidFighter employee = jobOffers[i].employees[j];

                    if (!InventoryManager.Instance.ownHumanoids.Contains(employee))
                    {
                        jobOffers[i].employees[j].activity = FighterActivity.None;
                        jobOffers[i].employees.RemoveAt(j);
                    }
                }
            }

            for (int i = activeJobs.Count - 1; i >= 0; i--)
            {
                bool isAnyEmployeeInvalid = false;

                for (int j = activeJobs[i].employees.Count - 1; j >= 0; j--)
                {
                    HumanoidFighter employee = activeJobs[i].employees[j];

                    if (!InventoryManager.Instance.ownHumanoids.Contains(employee))
                    {
                        isAnyEmployeeInvalid = true;
                        break;
                    }
                }

                if (isAnyEmployeeInvalid)
                {
                    activeJobs[i].Done();
                    activeJobs.RemoveAt(i);
                }
            }

            UIManagementManager.Instance.RefreshInventoryView();
        }
 // Is given fighter a patient of the clinic
 public bool IsPatient(HumanoidFighter fighter)
 {
     return(System.Array.Exists(patients, f => f == fighter));
 }
 // Let fighter consume the given drug
 public void ConsumeDrug(Drug drug, HumanoidFighter fighter)
 {
     drug.Consume(fighter);
     InventoryManager.Instance.ownDrugs.Remove(drug);
     UIManagementManager.Instance.RefreshInventoryView();
 }