< Summary

Class:FireController
Assembly:Test
File(s):D:/--UnityProject/VR/_____ISSTA 26/vr-firefighter-simulator/Assets/Test/FireController.cs
Covered lines:31
Uncovered lines:3
Coverable lines:34
Total lines:62
Line coverage:91.1% (31 of 34)
Covered branches:0
Total branches:0
Covered methods:5
Total methods:5
Method coverage:100% (5 of 5)

Coverage History

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
FireController()0%000100%
Start()0%000100%
FireChanged(...)0%00055.56%
NotifyAllFireDependants()0%000100%
GetTotalFires()0%000100%

File(s)

D:/--UnityProject/VR/_____ISSTA 26/vr-firefighter-simulator/Assets/Test/FireController.cs

#LineLine coverage
 1using System.Linq;
 2using UnityEngine;
 3
 4public class FireController : Framework.MonoBehaviorSingleton<FireController>
 5{
 6    [Header("Fires")]
 7    [SerializeField]
 28    private int totalLitFires = 0;
 9    private IFireDependant[] fireDependants;
 10    private Fire[] fires;
 11    [Range(0,1)]
 12    public float initialFireProbability;
 13    public AudienceController audienceController;
 14    public float maximumTurnOffLimit;
 15
 16    void Start()
 117    {
 18        // Get all the fire dependents
 119        this.fireDependants = FindObjectsOfType<MonoBehaviour>().OfType<IFireDependant>().ToArray();
 20        // Get all the fires
 121        this.fires = FindObjectsOfType<Fire>();
 22        // Initialize the fires to their on/off state
 23        // Must be done before initializing neighbors to avoid errors
 8424        foreach (Fire fire in this.fires) {
 2725            fire.SetIsOn(Random.Range(0f, 1f) <= this.initialFireProbability);
 4226            if (fire.isOn) this.totalLitFires++;
 2727        }
 28        // Initialize the fires to find their neighbors
 8329        for (int i = 0; i < this.fires.Length; i++) {
 2730            this.fires[i].FindNeighbors(this.fires, i);
 2731        }
 32        // Initialize visuals
 133        FireVisualsController.Instance.InitializeVisuals();
 34        // Set the start time
 135        State.Instance.Reset();
 136        State.Instance.approvalLimit = this.maximumTurnOffLimit;
 137        State.Instance.hasPlayed = true;
 138        State.Instance.startTime = Time.time;
 139    }
 40
 741    public void FireChanged(int delta) {
 742        this.totalLitFires += delta;
 743        this.NotifyAllFireDependants();
 44        // GAME OVER SITUATION
 745        if (this.totalLitFires == 0) {
 046            State.Instance.endTime = Time.time;
 047            audienceController.StartVictory();
 048        }
 749    }
 50
 51    void NotifyAllFireDependants()
 752    {
 9153        foreach (IFireDependant fd in this.fireDependants)
 3554        {
 3555            fd.NotifyFireChange(this.totalLitFires);
 3556        }
 757    }
 58
 359    public int GetTotalFires() {
 360        return this.fires.Length;
 361    }
 62}