public void dropAllSheep()
    {
        if (sheepPickedup.Count == 0)
        {
            return;
        }

        SheepMovement droppedSheep_movement;
        Animator      droppedSheep_animator;
        Rigidbody     droppedSheep_rb;

        for (int i = 0; i < sheepPickedup.Count; i++)
        {
            GameObject droppedSheep = sheepPickedup.Pop();

            droppedSheep_movement = droppedSheep.GetComponentInChildren <SheepMovement>();
            droppedSheep_animator = droppedSheep.GetComponentInChildren <Animator>();
            droppedSheep_rb       = droppedSheep.GetComponent <Rigidbody>();

            // set state to available and anim state to iddle
            droppedSheep_movement.setAvailable();
            IAnimState animState = new Iddle(ref droppedSheep_animator);
            droppedSheep_movement.SetAnimState(animState);

            sheepCollideWithBases(droppedSheep);
            changePlayerSpeed();

            droppedSheep_rb.velocity   = Vector3.zero;
            droppedSheep_rb.useGravity = true;

            SendDroppedSheepMessage(droppedSheep.transform.name, droppedSheep_movement.getState(), droppedSheep_animator.GetInteger("Index"));
        }
    }
Exemple #2
0
    public Sequencer <BlackBoard> BuildTree(BlackBoard blackboard)
    {
        Sequencer <BlackBoard> rootNode = new Sequencer <BlackBoard>(blackboard);

        Iddle iddleNode = new Iddle(blackboard);

        rootNode.AddChild(iddleNode);

        Sequencer <BlackBoard> mining = new Sequencer <BlackBoard>(blackboard);

        rootNode.AddChild(mining);
        GoToMine goMineNode = new GoToMine(blackboard);
        Mine     mineNode   = new Mine(blackboard);

        mining.AddChild(goMineNode);
        mining.AddChild(mineNode);

        Sequencer <BlackBoard> depositing = new Sequencer <BlackBoard>(blackboard);

        rootNode.AddChild(depositing);
        GoHome  goHomeNode = new GoHome(blackboard);
        Deposit depoNode   = new Deposit(blackboard);

        depositing.AddChild(goHomeNode);
        depositing.AddChild(depoNode);



        return(rootNode);
    }
    public void processLandSheepMessage(LandSheepMessage _msg)
    {
        GameObject sheep = GameObject.Find(_msg.sheepName);

        if (sheep != null)
        {
            SheepMovement sheep_movement = sheep.GetComponent <SheepMovement>();
            Animator      sheep_animator = sheep.GetComponentInChildren <Animator>();

            // set state to available and anim state to iddle
            sheep_movement.setAvailable();
            IAnimState animState = new Iddle(ref sheep_animator);
            sheep_movement.SetAnimState(animState);

            // ignoreCollisionWithBases(sheep, true);
            ignoreCollisionWithPlayers(sheep, true);
        }
    }