public void StopRepairProgress(GameObject _repairer) { if ((repairers.Count == 0) || (_repairer != repairer)) { return; } // remove repairer and toggle its progress bar pawnRepairUI.ToggleProgressBar(); repairers.RemoveAt(0); // check if the room is fixed if (!IsDamaged || repairers.Count == 0) { repairers.Clear(); repairer = null; pawnRepairUI = null; repairFill = 0; StopCoroutine("RepairRoom"); } else if (repairers.Count > 0) { // if it's not fixed, transfer the job to another unit if there's any repairer = repairers[0]; pawnRepairUI = repairer.GetComponent <PawnUIManager>(); } }
public virtual void Start() { // set room layer mask roomLayerMask = LayerMask.GetMask("Aimable"); // set periodic check onPeriodicCheck += CheckCurrentRoom; // set state state = State.Idle; // set crewmember's ship ship = GetComponentInParent <Ship>(); ship.onShipDestroyed += Destroy; // get pathfinder path = this.GetComponent <PathFinding>(); // get pawn ui manager pawnUI = this.GetComponent <PawnUIManager>(); isDestinationSet = false; // set crewmember initial stats SetupMemberStats(); // set health and progress bar SetupUIElements(); }
public void StopFixingBreach(GameObject _breachfixer) { if ((breachFixers.Count == 0) || (_breachfixer != breachFixer)) { return; } // remove repairer and toggle its progress bar pawnBreachFixerUI.ToggleProgressBar(); breachFixers.RemoveAt(0); // check if the room is fixed if (!IsBreached || breachFixers.Count == 0) { breachFixers.Clear(); breachFixer = null; pawnBreachFixerUI = null; breachFixingFill = 0; StopCoroutine("FixRoomBreach"); } else if (breachFixers.Count > 0) { // if it's not fixed, transfer the job to another unit if there's any breachFixer = breachFixers[0]; pawnBreachFixerUI = breachFixer.GetComponent <PawnUIManager>(); } }
public void Repair(GameObject _repairer) { repairers.Add(_repairer); if (repairers.Count == 1) { repairer = _repairer; pawnRepairUI = repairer.GetComponent <PawnUIManager>(); StartCoroutine("RepairRoom"); } }
public void RepairBreach(GameObject _breachFixer) { breachFixers.Add(_breachFixer); if (breachFixers.Count == 1) { breachFixer = _breachFixer; pawnBreachFixerUI = breachFixer.GetComponent <PawnUIManager>(); StartCoroutine("FixRoomBreach"); } }
public void ExtinguishFire(GameObject _firefighter) { firefighters.Add(_firefighter); if (firefighters.Count == 1) { firefighter = _firefighter; pawnFirefighterUI = firefighter.GetComponent <PawnUIManager>(); StartCoroutine("ExtinguishRoomFire"); } }
public void StopExtinguishingFire(GameObject _firefighter) { if ((firefighters.Count == 0) || (_firefighter != firefighter)) { return; } pawnFirefighterUI.ToggleProgressBar(); firefighters.Clear(); firefighter = null; pawnFirefighterUI = null; extinguishFill = 0; StopCoroutine("ExtinguishRoomFire"); }