Example #1
0
    // Start is called before the first frame update
    void Start()
    {
        InitLight();

        squareMaxSpeed        = maxSpeed * maxSpeed;
        squareNeighborRadius  = neighborRadius * neighborRadius;
        squareAvoidanceRadius = squareNeighborRadius * avoidanceRadiusMultiplier * avoidanceRadiusMultiplier;
        for (int i = 0; i < startingCount; i++)
        {
            Vector3 newPosition = new Vector3(Random.Range(spawnPoint.transform.position.x - startingCount, spawnPoint.transform.position.x + startingCount), 1f, Random.Range(spawnPoint.transform.position.z - startingCount, spawnPoint.transform.position.z + startingCount));
            //newPosition.z = Random.Range(-10,10);
            FlockAgent newAgent = Instantiate(
                agentPrefab,
                newPosition,
                Quaternion.Euler(Vector3.forward),
                transform
                );
            newAgent.name = "Agent " + i;
            if (i == 0)
            {
                newAgent.GetComponent <PoliceAbilities>().EnableFiringSquad();
            }
            if (SpotLightOnAgentO && i == 0)
            {
                newAgent.GetComponent <PoliceAbilities>().equipLamp();
            }
            newAgent.Initialize(this);
            agents.Add(newAgent);
        }
    }
Example #2
0
    public GameObject CreateNewWorker(int life, float miningSpeed)
    {
        currI = soldiersCount;
        soldiersCount++;
        FlockAgent newWorker = InstantiateSoldier();

        newWorker.GetComponent <Worker>().health      = life;
        newWorker.GetComponent <Worker>().miningSpeed = miningSpeed;


        return(newWorker.gameObject);
    }
Example #3
0
    public GameObject CreateNewSoldier(float speed, float life, float hitPower)
    {
        currI = soldiersCount;
        soldiersCount++;

        FlockAgent newSoldier = InstantiateSoldier();

        newSoldier.GetComponent <Soldier>().SetHealth(life);
        newSoldier.GetComponent <Soldier>().SetSpeed(speed);
        newSoldier.GetComponent <Attack>().SetHitPower(hitPower);

        return(newSoldier.gameObject);
    }
Example #4
0
 public override void Init()
 {
     Flock flock = GetComponent<Flock>();
     FlockAgent newAgent = Instantiate(
                             flock.agentPrefab,
                             Random.insideUnitCircle * flock.startingCount * Flock.AGENT_DENSITY,
                             Quaternion.Euler(Vector3.forward * Random.Range(0f, 360f)),
                             transform);
     newAgent.gameObject.AddComponent<PlayerControlledFlockAgent>();
     m_player = newAgent.GetComponent<PlayerControlledFlockAgent>();
     m_player.name = "Player";
     Destroy(newAgent.GetComponent<FlockAgent>());
     m_player.Init(this);
 }
Example #5
0
    // Use this for initialization
    void Start()
    {
        squareMaxSpeed        = maxSpeed * maxSpeed;
        squareNeighborRadius  = neighborRadius * neighborRadius;
        squareAvoidanceRadius = squareNeighborRadius * avoidanceRadiusMultiplier * avoidanceRadiusMultiplier;
        volumeScalar          = 1 / startingCount;

        // Populate the scene with flock agents
        for (int i = 0; i < startingCount; i++)
        {
            FlockAgent newAgent = Instantiate(
                agentPrefab,
                Random.insideUnitCircle * 3,
                Quaternion.Euler(Vector3.forward * Random.Range(0f, 360f)),
                transform
                );
            newAgent.name = "Agent " + i;
            //Debug.Log(volumeScalar);
            newAgent.noteMode = noteMode;
            newAgent.GetComponent <AudioSource>().volume = 1.0f / startingCount;

            agents.Add(newAgent);
        }

        // foreach (FlockAgent agent in agents)
        // {
        //  Debug.Log(1/startingCount);
        //  agent.audioSource.volume = 1/startingCount;
        // }
    }