예제 #1
0
    void SetGroupAI()
    {
        seeds.Clear();

        state = Actor.ActorState.Group;
        foreach (Actor actor in actors)
        {
            actor.state = Actor.ActorState.Group;
        }

        int numOfGroups = Random.Range(minGroups, maxGroups + 1);

        //Too few actors adjusts group size
        if (numOfGroups > actors.Count)
        {
            numOfGroups = actors.Count;

            Debug.Log("Too few actors adjusting group size");
        }

        for (int i = 0; i < numOfGroups; i++)
        {
            //assign seeds
            seeds.Add(Random.Range(0, 1001));
        }

        for (int i = 0; i < actors.Count; i++)
        {
            actors[i].groupSeed = seeds[Random.Range(0, seeds.Count)];
        }
    }
예제 #2
0
    private IEnumerator CalmlyExitTheApplication()
    {
        Debug.Log("Quiting");

        state = Actor.ActorState.Exit;
        foreach (Actor actor in actors)
        {
            actor.state = Actor.ActorState.Exit;
            actor.GetComponent <Rigidbody>().constraints = RigidbodyConstraints.None;

            explosiveMovement = false;
            moveSpeed         = 50;
        }

        yield return(new WaitForSeconds(10.0f));

        Application.Quit();
    }
예제 #3
0
        public void OnActorStateChange(Actor.ActorState actorState)
        {
            switch (actorState)
            {
            case Actor.ActorState.Active:
                OnEnable();
                break;

            case Actor.ActorState.Inactive:
                OnDisable();
                break;

            case Actor.ActorState.Destroy:
                Owner = null;
                break;

            default:
                break;
            }
        }
예제 #4
0
    //Constructor to convert an actor to a serializable actor
    public SerializableActor(Actor actor)
    {
        comedy      = actor.getComedy();
        action      = actor.getAction();
        romance     = actor.getRomance();
        horror      = actor.getRomance();
        scifi       = actor.getScifi();
        other       = actor.getOther();
        baseComedy  = actor.getBaseComedy();
        baseAction  = actor.getBaseAction();
        baseRomance = actor.getBaseRomance();
        baseHorror  = actor.getBaseHorror();
        baseScifi   = actor.getBaseScifi();
        baseOther   = actor.getBaseOther();
        state       = actor.getState();
        incomeValue = actor.getIncomeValue();

        actorName       = actor.getName();
        experience      = actor.getExperience();
        actorState      = actor.getState();
        moviesStarredIn = actor.getMoviesStarredIn();
    }
예제 #5
0
    private void InputToChangeActorStates()
    {
        if (Input.GetKeyDown(KeyCode.Alpha1))
        {
            state = Actor.ActorState.Idle;
            foreach (Actor actor in actors)
            {
                actor.state = Actor.ActorState.Idle;
            }
        }
        else if (Input.GetKeyDown(KeyCode.Alpha2))
        {
            state = Actor.ActorState.Independent;
            foreach (Actor actor in actors)
            {
                actor.state = Actor.ActorState.Independent;
            }
        }
        else if (Input.GetKeyDown(KeyCode.Alpha3))
        {
            SetGroupAI();
        }
        else if (Input.GetKeyDown(KeyCode.Alpha4))
        {
            state = Actor.ActorState.Swarm;
            foreach (Actor actor in actors)
            {
                actor.state = Actor.ActorState.Swarm;
            }
            //Choose a random actor to become the target
            Actor target = actors[Random.Range(0, actors.Count)];
            target.state = Actor.ActorState.PlayerTarget;
            swarmTarget  = target.transform;
            target.GetComponent <MeshRenderer>().material = target.targetMaterial;
        }
        else if (Input.GetKeyDown(KeyCode.Alpha0))
        {
            explosiveMovement = !explosiveMovement;
        }
        else if (Input.GetKeyDown(KeyCode.Equals))
        {
            SpawnActors(addRemoveActors);
        }
        else if (Input.GetKeyDown(KeyCode.Minus))
        {
            RemoveActors(addRemoveActors);
        }

        if (Input.GetKey(KeyCode.P))
        {
            moveSpeed += moveSpeedIncrement * Time.deltaTime;
        }
        else if (Input.GetKey(KeyCode.O))
        {
            moveSpeed -= moveSpeedIncrement * Time.deltaTime;
        }

        if (Input.GetKeyDown(KeyCode.Backspace))
        {
            playing = false;
            StartCoroutine(CalmlyExitTheApplication());
        }
    }