Esempio n. 1
0
    /// <summary>
    ///
    /// </summary>
    /// <param name="breaker"></param>
    private void PowerStatusReaction(Breaker breaker)
    {
        //Requesting a new soldier from the barracks
        Soldier soldier = barracks.RequestSoldier(null);

        if (soldier != null)
        {
            if (listOfBrokenBreaker.Count == 0)
            {
                listOfBrokenBreaker.Add(breaker);
            }
            else
            {
                foreach (Breaker breakers in listOfBrokenBreaker)
                {
                    if (breakers != breaker)
                    {
                        listOfBrokenBreaker.Add(breaker);
                    }
                }
            }
            // Get the position of the collider:
            Vector3 colliderPos = breaker.GetComponent <BoxCollider>().transform.position + -breaker.transform.forward * 1;
            Debug.Log(colliderPos);
            soldier.Instructions.Push(new SearchRoom(breaker.GetComponentInParent <Room>(), searchTimer, navigationTimer,
                                                     soldier));
            soldier.Instructions.Push(new Interact(breaker, soldier));
            soldier.CurrentInstruction = new Goto(colliderPos, 0, soldier);
            soldier.SpookLevel         = Soldier.ReportState.Investigating;
        }
        else
        {
            Debug.Log("No soldier was available for a PowerStatusReaction");
        }
    }
Esempio n. 2
0
    override public void ExtractInstructions(Entity entity)
    {
        instructions = new List <Instruction>();
        foreach (GameObject obj in routine)
        {
            // For each breaker to repair, add a goto, an interact, and a searchroom:
            Breaker breakerObj = obj.GetComponent <Breaker>();
            // Get the position of the collider:
            Vector3 colliderPos = breakerObj.GetComponent <Collider>().transform.position;

            instructions.Add(new Goto(colliderPos, 0, entity));
            instructions.Add(new Interact(breakerObj, entity));
            instructions.Add(new SearchRoom(breakerObj.GetComponentInParent <Room>(), searchTimer, navigationTimer, entity));
        }
    }