Ejemplo n.º 1
0
    void Start()
    {
        ProjectileManager projectilManager = GameObject.Find("Game").GetComponent <ProjectileManager>() as ProjectileManager;

        //Create the eyepool and fill it with eyes
        m_EyePool = new GameObject();
        m_EyePool.transform.SetParent(beast.transform);
        m_EyePool.name = "Eye Pool";

        m_LogicalEyes = new GameObject();
        m_LogicalEyes.transform.SetParent(this.transform);
        m_LogicalEyes.name = "Logical Eye Pool";

        for (int i = 0; i < m_numberOfPlayers * 2; i++)
        {
            //Vector3 position = m_Positions[i];
            Vector3    position = RandomEyePosition();// new Vector3(Random.Range(-3, 3), Random.Range(0.5f, 2), 0);
            GameObject eye      = Instantiate(m_EyePrefab, position, transform.rotation) as GameObject;
            eye.transform.parent = m_EyePool.transform;
            eye.GetComponent <EnragedAttackPattern>().m_projectileManager = projectilManager;
            eye.GetComponent <Eye>().beast = this.beast;
            eye.name = "Eye" + i;
        }

        //Create the logical eyes, then will grab eye's from the eye pool as needed
        for (int i = 0; i < m_numberOfPlayers * 2; i++)
        {
            GameObject logicalEyeObject = Instantiate(m_LogicalEyePrefab, Vector3.zero, transform.rotation) as GameObject;
            LogicalEye logicalEye       = logicalEyeObject.GetComponent <LogicalEye>();
            logicalEye.SetPlayer(i / 2, i % 2);
            logicalEye.transform.SetParent(m_LogicalEyes.transform);
            logicalEye.m_PlayerManager = this;
            logicalEye.name            = "LogicalEye" + i;
            logicalEye.m_Colour        = m_Colors[i / 2];
        }

        m_PlayerGlyphs = new GameObject[m_numberOfPlayers];
        for (int i = 0; i < m_numberOfPlayers; i++)
        {
            m_PlayerGlyphs[i] = Instantiate(m_GlyphPrefab, Vector3.zero, transform.rotation) as GameObject;
            m_PlayerGlyphs[i].SetActive(false);
        }

        laserSound          = GetComponents <AudioSource>()[1];
        laserSoundMaxVolume = laserSound.volume;
        laserSound.volume   = 0;
        laserSound.Play();
    }
Ejemplo n.º 2
0
 void FindEyePair(int playerNum, out LogicalEye a, out LogicalEye b)
 {
     a = null;
     b = null;
     for (int i = 0; i < m_LogicalEyes.transform.childCount; i++)
     {
         LogicalEye logicalA = m_LogicalEyes.transform.GetChild(i).GetComponent <LogicalEye>();
         if (logicalA.m_PlayerNum == playerNum && logicalA.m_HandNum == 0)
         {
             a = logicalA;
         }
         if (logicalA.m_PlayerNum == playerNum && logicalA.m_HandNum == 1)
         {
             b = logicalA;
         }
     }
 }
Ejemplo n.º 3
0
    // Update is called once per frame
    void Update()
    {
        if (this.beast.isDead == true)
        {
            this.playerDead = true;
            laserSound.Stop();
        }

        List <float> laserIntensities = new List <float>();

        //Check that the left/rightness of eye pairs match the world left/rightness
        for (int i = 0; i < m_LogicalEyes.transform.childCount; i++)
        {
            LogicalEye logicalA = m_LogicalEyes.transform.GetChild(i).GetComponent <LogicalEye>();
            if (logicalA.m_TargetEye)
            {
                Eye eyeA = logicalA.m_TargetEye.GetComponent <Eye>();
                laserIntensities.Add(eyeA.m_LaserIntensity);

                for (int j = i; j < m_LogicalEyes.transform.childCount; j++)
                {
                    LogicalEye logicalB = m_LogicalEyes.transform.GetChild(j).GetComponent <LogicalEye>();
                    if (logicalB.m_TargetEye)
                    {
                        Eye eyeB = logicalB.m_TargetEye.GetComponent <Eye>();
                        laserIntensities.Add(eyeB.m_LaserIntensity);

                        if (logicalA.m_PlayerNum == logicalB.m_PlayerNum)
                        {
                            if (eyeA.transform.position.x < eyeB.transform.position.x)
                            {
                                logicalA.SetHand(0);
                                logicalB.SetHand(1);
                            }
                            else if (eyeA.transform.position.x > eyeB.transform.position.x)
                            {
                                logicalA.SetHand(1);
                                logicalB.SetHand(0);
                            }
                        }
                    }
                }
            }
        }

/*
 *      //Search for eye pairs
 *      {
 *          for (int i = 0; i < m_numberOfPlayers; i++)
 *          {
 *              LogicalEye logicalA;
 *              LogicalEye logicalB;
 *
 *              FindEyePair(0, out logicalA, out logicalB);
 *              if (logicalA && logicalA.m_TargetEye && logicalB && logicalB.m_TargetEye)
 *              {
 *                  Vector2 startA = logicalA.m_TargetEye.m_Laser.transform.position;
 *                  Vector2 endA = startA + logicalA.m_TargetEye.m_LookDirection * 25.0f; ;
 *                  Vector2 startB = logicalB.m_TargetEye.m_Laser.transform.position;
 *                  Vector2 endB = startB + logicalB.m_TargetEye.m_LookDirection * 25.0f;
 *
 *                  Debug.Log(logicalA.m_TargetEye.m_LookDirection);
 *
 *                  Vector2 intersection = new Vector2();
 *                  if (LineIntersection(startA, endA, startB, endB, out intersection))
 *                  {
 *                      m_PlayerGlyphs[i].transform.position = intersection;
 *                      m_PlayerGlyphs[i].SetActive(true);
 *                  }
 *                  else
 *                  {
 *                      m_PlayerGlyphs[i].SetActive(false);
 *                  }
 *              }
 *          }
 *      }*/

        laserSound.volume = Mathf.SmoothStep(0, laserSoundMaxVolume, Mathf.Max(laserIntensities.ToArray()) / 1.0f);
    }