예제 #1
0
    void Spawn()
    {
        int team = ChooseTeam();

        if (team == 0 && team1.Count >= maxTeamSize)
        {
            return;
        }
        else if (team == 1 && team2.Count >= maxTeamSize)
        {
            return;
        }
        int[]          i    = RandomFaceAndSpawnPoint();
        BackgroundFace face = (BackgroundFace)Instantiate(faces[i[0]], spawnpoints[i[1]].position, Quaternion.identity);

        face.BM   = this;
        face.team = team;
        face.teamIndicator.color = GameManager.instance.teamColors[team];
        face.target = ChooseTarget(team);
        if (team == 0)
        {
            team1.Add(face);
        }
        else
        {
            team2.Add(face);
        }
        StartCoroutine(DelaySpawn(spawnDelay));
    }
예제 #2
0
    void Start()
    {
        //Spawn first two faces here

        int[]          i     = RandomFaceAndSpawnPoint();
        BackgroundFace face1 = (BackgroundFace)Instantiate(faces[i[0]], spawnpoints[i[1]].position, Quaternion.identity);

        face1.BM   = this;
        face1.team = 0;
        face1.teamIndicator.color = GameManager.instance.teamColors[0];

        i = RandomFaceAndSpawnPoint();
        BackgroundFace face2 = (BackgroundFace)Instantiate(faces[i[0]], spawnpoints[i[1]].position, Quaternion.identity);

        face2.BM   = this;
        face2.team = 1;
        face2.teamIndicator.color = GameManager.instance.teamColors[1];

        face2.target = face1;
        face1.target = face2;

        team1.Add(face1);
        team2.Add(face2);

        StartCoroutine(DelaySpawn(spawnDelay));

        //Add ability to get a new target to Background Face script
    }
예제 #3
0
 void Start()
 {
     if (background)
     {
         face = GetComponentInParent <BackgroundFace>();
     }
     else
     {
         enemy = GetComponentInParent <Enemy>();
     }
 }
예제 #4
0
 void Start()
 {
     if (background)
     {
         bkgFace = GetComponent <BackgroundFace>();
     }
     else
     {
         character = GetComponent <Character>();
     }
     playerHealth = GetComponent <CharacterHealth>();
 }
예제 #5
0
    void Update()
    {
        if (!target)
        {
            target = BM.ChooseTarget(team);
            return;
        }
        if (horizontal > 0)
        {
            image.localScale = new Vector3(1, 1, 1);
        }
        else if (horizontal < 0)
        {
            image.localScale = new Vector3(-1, 1, 1);
        }

        if (shouldAttack && canAttack && !lost)
        {
            Attack();
        }
        if (anim.GetCurrentAnimatorStateInfo(0).IsName("PlayerIdle"))
        {
            weapon.isAttacking = false;
        }
        else
        {
            weapon.isAttacking = true;
        }

        if (target.level.level == level.level)
        {
            MoveToTarget();
            toHigherLevel = false;
            return;
        }

        if (level.level <= target.level.level)
        {
            Vector3 playerSide = target.transform.InverseTransformPoint(0, 0, 0);
            playerSide.Normalize();
            if (playerSide.x > 0)
            {
                path       = pathFinding.rightPath;
                horizontal = 1;
            }
            else
            {
                path       = pathFinding.leftPath;
                horizontal = -1;
            }
            toHigherLevel = true;
            MoveToNode(path[(int)level.level].position);
        }
        else
        {
            velocity            = new Vector2(side.x * speed, _rigidbody.velocity.y);
            _rigidbody.velocity = velocity;
        }

        UpdatePowerSlider(engaged);
    }