Exemplo n.º 1
0
 private void OnTriggerEnter2D(Collider2D collision)
 {
     if (collision.gameObject.tag == GameManagerScript.Tags.SafeHaven.ToString())
     {
         ScenarioManager.GetInstance().SaveVictim(currentTarget, gameObject);
     }
 }
Exemplo n.º 2
0
 /******************************************
  *
  * public void HitEnemy(GameObject player, GameObject enemy)
  *		Signals the PBManager that the player hit the enemy, for statistical reference,
  *		removes the enemy from the list, checks if a new scenario should be loaded,
  *		and destryos the enemy GameObject;
  *
  * Parameters
  *		int playerID - The number ID for the new player.
  * Return
  *
  * ***************************************/
 public void HitEnemy(GameObject player, GameObject enemy)
 {
     PlayerBehaviourManager.GetInstance().HitEnemy(player, enemy);
     ScenarioManager.GetInstance().enemies.Remove(enemy);
     ScenarioManager.GetInstance().CheckNewScenario();
     Destroy(enemy);
 }
Exemplo n.º 3
0
 /******************************************
  *
  * private void OnCollisionEnter2D(Collision2D collision)
  *		If the player collides with an Item, activates the powerUp
  *
  * Parameters
  *       Collision2D collision - Unity default parameter
  * Return
  *
  * ***************************************/
 private void OnCollisionEnter2D(Collision2D collision)
 {
     if (collision.gameObject.tag == "Item")
     {
         ScenarioManager.GetInstance().GetItem(gameObject, collision.gameObject);
         ActivatePowerUp();
     }
 }
Exemplo n.º 4
0
 /******************************************
  *
  * private void OnCollisionEnter2D(Collision2D collision)
  *	If the enemy collides with a victim, signals the scenarioManager to destroy that victim
  *	If the enemy collides with a player, signals the player to receive damage.
  *
  * Parameters
  *	Collision2D collision - Default unity parameter.
  * Return
  *
  * ***************************************/
 private void OnCollisionEnter2D(Collision2D collision)
 {
     if (collision.gameObject.tag == "Victim")
     {
         ScenarioManager.GetInstance().DestroyVictim(collision.gameObject);
     }
     if (collision.gameObject.tag == "Player")
     {
         collision.gameObject.GetComponent <PlayerMovementScript>().ReceiveDamage();
     }
 }
Exemplo n.º 5
0
    /******************************************
     *
     * public virtual void FixedUpdate()
     *		At a specified interval, move the enemy closer to its target
     *
     * Parameters
     *
     * Return
     *
     * ***************************************/
    public virtual void FixedUpdate()
    {
        foreach (GameObject player in GameManagerScript.GetInstance().players)
        {
            if (Vector2.Distance(transform.position, player.transform.position) < maxViewDistance / 2f)
            {
                lastWait = 0;
            }
        }

        if (Time.time - lastWait < waitTime)
        {
            return;
        }


        if (currentTarget)
        {
            float   xDif      = currentTarget.transform.position.x - transform.position.x;
            float   yDif      = currentTarget.transform.position.y - transform.position.y;
            Vector2 difVector = new Vector2(xDif, yDif).normalized;
            difVector *= maxSpeed;

            transform.position = new Vector3(transform.position.x + difVector.x, transform.position.y + difVector.y, transform.position.z);


            if (currentTarget == tempTarget)
            {
                if (Vector2.Distance(transform.position, currentTarget.transform.position) < (maxViewDistance / 10f))
                {
                    print("currentTarget = " + currentTarget);
                    Destroy(tempTarget);
                    currentTarget = null;
                    lastWait      = Time.time;
                    waitTime      = UnityEngine.Random.Range(2, 5);
                    print("currentTarget = " + currentTarget);
                }
            }
        }
        else
        {
            if (tempTarget == null)
            {
                tempTarget = new GameObject();
                tempTarget.transform.position = new Vector2(transform.position.x + UnityEngine.Random.Range(-2, 3), transform.position.y + UnityEngine.Random.Range(-2, 3));
                int posRet = ScenarioManager.GetInstance().CheckValidObjectPosition(tempTarget.transform);
                if (posRet != 0)
                {
                    Destroy(tempTarget);
                }
            }
        }
        // else roam
    }
Exemplo n.º 6
0
    /******************************************
     *
     * private void OnTriggerEnter2D(Collider2D collision)
     *	If the objective collides with a player object, signals the ScenarioManager to check for a new Scenario
     *       and destroys the objective gameObject
     *
     * Parameters
     *       Collider2D collison - Unity default parameter
     *
     * Return
     *
     * ***************************************/
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.isTrigger)
        {
            return;
        }

        if (collision.gameObject.tag == GameManagerScript.Tags.Player.ToString())
        {
            finalized = true;
            ScenarioManager.GetInstance().CheckNewScenario();
            Destroy(gameObject);
        }
    }
    private void CheckDeltaAttacks(Player player, Player template)
    {
        float deltaAttackTime    = player.lastAttack - template.lastAttack;
        float deltaAttacks       = player.numAttacks - template.numAttacks;
        float deltaEnemiesKilled = player.enemiesKilled - template.enemiesKilled;
        float accuracy           = deltaEnemiesKilled / deltaAttacks;

        accuracy = (deltaAttacks == 0) ? 0 : accuracy;
        accuracy = (accuracy > 1) ? 1 : accuracy;
        float missesPercent      = 1 - accuracy;
        float percentEnemyKilled = deltaEnemiesKilled / ScenarioManager.GetInstance().currentNumEnemies;

        /*print("<Player" + player.playerID + ">: Time between attacks -> " + ((deltaAttackTime == 0) ? "Has not attack" : deltaAttackTime.ToString()));
         * print("<Player" + player.playerID + ">: # of attacks -> " + deltaAttacks);
         * print("<Player" + player.playerID + ">: # of enemies killed -> " +deltaEnemiesKilled);
         * print("<Player" + player.playerID + ">: Accuracy -> " + accuracy * 100 + "%");
         * print("<Player" + player.playerID + ">: Percent of misses -> " + missesPercent * 100 + "%");
         * print("<Player" + player.playerID + ">: Percent of enemies Killed -> " + percentEnemyKilled * 100 + "%");*/
    }
Exemplo n.º 8
0
    /******************************************
     *
     * private void LateUpdate()
     *		At the end of the interaction, recalculates the current target priority
     *
     * Parameters
     *
     * Return
     *
     * ***************************************/
    private void LateUpdate()
    {
        float      minDistance = 65535f;
        GameObject newTarget   = null;

        foreach (GameObject victim in ScenarioManager.GetInstance().victims)
        {
            if (Vector2.Distance(transform.position, victim.transform.position) / victimPriority < minDistance)
            {
                minDistance = Vector2.Distance(transform.position, victim.transform.position) / victimPriority;
                newTarget   = victim;
            }
        }

        foreach (GameObject player in GameManagerScript.GetInstance().players)
        {
            float playerPriority = GetPlayerPriority(player);

            if (Vector2.Distance(transform.position, player.transform.position) / playerPriority < minDistance)
            {
                minDistance = Vector2.Distance(transform.position, player.transform.position);
                newTarget   = player;
            }
        }


        if (minDistance > maxViewDistance)
        {
            if (tempTarget)
            {
                currentTarget = tempTarget;
            }
            else
            {
                currentTarget = null;
            }
        }
        else if (newTarget != null)
        {
            Destroy(tempTarget);
            currentTarget = newTarget;
        }
    }
Exemplo n.º 9
0
 /******************************************
  *
  * public void CreateCenario()
  *		Signals the ScenarioManager to validate and create the next Scenario
  *
  * Parameters
  *
  * Return
  *
  * ***************************************/
 public void CreateCenario()
 {
     print("GAMEMANAGER_CreateCenario");
     ScenarioManager.GetInstance().CheckNewScenario();
 }