Ejemplo n.º 1
0
    public IEnumerator MonsterBeamCor(WeaponPort port, GameObject player, float chargeUpTime, float fireDelay, float fireDuration)
    {
        float           startTime = Time.time;
        EnemyController emc       = gameObject.GetComponent <EnemyController>();

        LineRenderer lr = gameObject.AddComponent <LineRenderer>();

        lr.startWidth = .1f;
        lr.endWidth   = .1f;
        while (startTime + chargeUpTime > Time.time)
        {
            Vector3 forward = emc.Turret.transform.forward.normalized;
            Vector3 start   = port.weapon.FiringPoint.transform.position;
            lr.SetPositions(new Vector3[] { start, start + (forward * 10) });
            yield return(new WaitForSeconds(0));
        }
        emc.CanMove = false;
        emc.CanTurn = false;
        yield return(new WaitForSeconds(fireDelay));

        //create beam
        lr.startWidth = 1;
        lr.endWidth   = 1;
        yield return(new WaitForSeconds(fireDuration));

        //destroy beam
        emc.CanTurn = true;
        emc.CanMove = true;
        Destroy(lr);
    }
Ejemplo n.º 2
0
 public void SetupPortImages()
 {
     for (int i = 0; i < hull.weaponPorts.Length; i += 1)
     {
         Vector3    position = Camera.main.WorldToScreenPoint(hull.weaponPorts[i].position);
         WeaponPort newPort  = Instantiate(weaponPortGameObject.gameObject, position, Quaternion.identity).GetComponent <WeaponPort>();
         clonedPorts.Add(newPort);
         newPort.weaponPortIndex = i;
         newPort.transform.SetParent(weaponPortGameObject.transform.parent);
         newPort.gameObject.SetActive(true);
     }
 }
Ejemplo n.º 3
0
 public void ShootWeaponPort(WeaponPort port, Vector3 target, bool player = true)
 {
     if (Time.time > port.weapon.shootTime + port.weapon.lastWeaponFireTime)
     {
         Vector3    weaponFirePoint = port.weapon.FiringPoint.transform.position;
         Vector3    bulletTraj      = target - weaponFirePoint;
         GameObject bullet          = Instantiate(port.weapon.wepInfo.BulletPrefab, weaponFirePoint, Quaternion.identity);
         bullet.GetComponent <Rigidbody>().velocity      = bulletTraj.normalized * port.weapon.velocity;
         bullet.GetComponent <BulletCode>().playerBullet = player;
         port.weapon.lastWeaponFireTime = Time.time;
     }
 }
Ejemplo n.º 4
0
    public void SelectPort(WeaponPort wp)
    {
        if (selectedPort && selectedPort == wp && weapons[selectedPort.weaponPortIndex])
        {
            Destroy(weapons[selectedPort.weaponPortIndex].gameObject);
            weapons[selectedPort.weaponPortIndex] = null;

            MiscData.currentWeapons = new int[weapons.Length];
            for (int i = 0; i < weapons.Length; i += 1)
            {
                if (weapons[i] != null)
                {
                    MiscData.currentWeapons[i] = weapons[i].id;
                }
                else
                {
                    MiscData.currentWeapons[i] = -1;
                }
            }
        }
        else
        {
            selectedPort = wp;
            if (selectedWeapon)
            {
                if (weapons[selectedPort.weaponPortIndex])
                {
                    Destroy(weapons[selectedPort.weaponPortIndex].gameObject);
                }
                weapons[selectedPort.weaponPortIndex]        = Instantiate(selectedWeapon.gameObject, hull.weaponPorts[selectedPort.weaponPortIndex].transform.position, hull.weaponPorts[selectedPort.weaponPortIndex].transform.rotation).GetComponent <Weapon>();
                weapons[selectedPort.weaponPortIndex].barrel = hull.weaponPorts[selectedPort.weaponPortIndex];
            }

            //Recolors port images
            for (int i = 0; i < clonedPorts.Count; i += 1)
            {
                if (clonedPorts[i] != selectedPort)
                {
                    clonedPorts[i].GetComponent <Image>().color = deselectedPortColorPrimary;
                    clonedPorts[i].transform.Find("FirstBox").GetComponent <Image>().color = deselectedPortColorSecondary;
                    clonedPorts[i].transform.Find("FirstBox").Find("SecondBox").GetComponent <Image>().color = deselectedPortColorPrimary;
                }
            }

            selectedPort.GetComponent <Image>().color = selectedPortColorPrimary;
            selectedPort.transform.Find("FirstBox").GetComponent <Image>().color = selectedPortColorSecondary;
            selectedPort.transform.Find("FirstBox").Find("SecondBox").GetComponent <Image>().color = selectedPortColorPrimary;
        }
    }
Ejemplo n.º 5
0
 public void HideTabs()
 {
     selectedWeapon = null;
     selectedPort   = null;
     hullTab.color  = thrusterTab.color = weaponTab.color = deselectedColor;
     for (int i = 0; i < imageButtons.Count; i += 1)
     {
         Destroy(imageButtons[i].gameObject);
     }
     for (int i = 0; i < clonedPorts.Count; i += 1)
     {
         Destroy(clonedPorts[i].gameObject);
     }
     clonedPorts.Clear();
     imageButtons.Clear();
     yPos = spacing;
 }