Exemple #1
0
 public void Unregister(PredatorController predator, int player_id)
 {
     players[player_id].predators.Remove(predator);
     if (player_id == 0)
     {
         gameInfo.UpdateAliveCount(players[player_id].predators.Count);
     }
 }
 private void Awake()
 {
     gameController     = GameObject.FindWithTag("GameController").GetComponent <GameController>();
     monkeysSeen        = new List <GameObject>();
     thisPredator       = gameObject.transform.parent.gameObject;
     predatorController = thisPredator.GetComponent <PredatorController>();
     alertState         = false;
 }
Exemple #3
0
    //-------------------------------------------------------------------------------------------------
    private void RemovePlayer(VirtualNetworkController controller)
    {
        //Find controller if it was a prey
        GameObject[] preys = GameObject.FindGameObjectsWithTag(TAG_PREY);
        for (int preyIndex = 0; preyIndex < preys.Length; ++preyIndex)
        {
            PreyController prey = preys[preyIndex].GetComponent <PreyController>();
            if (prey != null)
            {
                if (prey.m_netController == controller)
                {
                    // C4 - ghosts were multiplying really fast
                    GameObject.Destroy(prey.gameObject);
                }
            }

            if (m_firstGame && (HopperNetwork.GetPlayerCount() == 0))
            {
                m_UIJoin.SetActive(true);
                m_UIInstructions.SetActive(false);
            }
        }

        //Find controller if it was a predator
        GameObject[] predators = GameObject.FindGameObjectsWithTag(TAG_PREDATOR);
        for (int predatorIndex = 0; predatorIndex < predators.Length; ++predatorIndex)
        {
            PredatorController predator = predators[predatorIndex].GetComponent <PredatorController>();
            if (predator != null)
            {
                if (predator.m_netController == controller)
                {
                    Destroy(predator);
                    return;
                }
            }
        }
    }
Exemple #4
0
    public void UpdatePredators(List <PredatorData> listPredator)
    {
        for (int idx = 0; idx < listPredator.Count; idx++)
        {
            PredatorData data = listPredator[idx];
            int          fIdx = registeredPredator.FindIndex(x => x.predatorId.Equals(data.id));
            //Find the given data in the list. If it's not in the list, create new predator
            if (fIdx < 0)
            {
                GameObject         go      = predatorPool.GetGameObject(data.assetKeyword);
                PredatorController control = go.GetComponent <PredatorController>();
                //reset animation before deploying
                control.SetAnimationToMove();

                LayerController.Instance.SetFishLayer(go, 10);
                if (control == null)
                {
                    control = go.AddComponent <PredatorController>();
                }
                control.SetData(data);
                registeredPredator.Add(control);
//				Debug.Log ("predator id = "+data.id);
            }
            //When it's already in the list, just reset the data
            else
            {
                registeredPredator[fIdx].SetData(data);
            }
        }

        predatorUpdateCount += 1;
        //Clear food after 10 updates, to reduce procesing cost
        if (predatorUpdateCount >= 10)
        {
            ClearPredator(listPredator);
            predatorUpdateCount = 0;
        }
    }
Exemple #5
0
    void ChooseAnimalToSpawn(Vector2 spawnPos)
    {
        float      randomNum = Random.Range(0f, 1f);
        GameObject animal;

        if (randomNum <= RATE_OF_SAME_KIND)
        {
            animal = Instantiate(playerPrefab, spawnPos, Quaternion.identity) as GameObject;
        }

        else if (randomNum <= rateOfPrey || predatorPrefabs.Length == 0)
        {
            animal = Instantiate(preyPrefabs [Random.Range(0, preyPrefabs.Length)], spawnPos, Quaternion.identity) as GameObject;
        }

        else
        {
            if (numOfPredator == NUM_PREDATOR_LIMIT)
            {
                ChooseAnimalToSpawn(spawnPos);
                return;
            }
            animal = Instantiate(predatorPrefabs [Random.Range(0, predatorPrefabs.Length)], spawnPos, Quaternion.identity) as GameObject;
            PredatorController controller = animal.AddComponent <PredatorController>();
            controller.playerTransform = player.transform;
            controller.chaseDuration   = chaseDuration;
            numOfPredator += 1;
        }
        animal.AddComponent <ComputerController>();
        animal.transform.parent = transform;

        if (animal.gameObject.tag.Equals("hydra"))
        {
            predatorPrefabs = new GameObject[0];
        }
    }