// 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); }
// 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); }
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); }
// 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); }
// 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(); }