Beispiel #1
0
    // only local owner should call this
    public void launchMissile(CombatFlow target)
    {
        if (myFlow.localOwned && target != null)
        {
            Debug.LogWarning("Launching at " + target.name);

            GameObject missileObj = PhotonNetwork.Instantiate(sam.missilePrefab.name,
                                                              sam.missileSpawnCenter.position, sam.missileSpawnCenter.rotation);

            BasicMissile missile     = missileObj.GetComponent <BasicMissile>();
            CombatFlow   missileFlow = missileObj.GetComponent <CombatFlow>();

            // this instance will network its position
            missileFlow.localOwned = true;
            missileFlow.isActive   = true;
            missile.myTarget       = target.gameObject;


            missile.myTeam   = transform.root.GetComponent <CombatFlow>().team;
            missileFlow.team = missile.myTeam;



            missile.launch();
            missile.radar.setRadarActive(true);
            //missile.radar.radarOn = true;
            photonView.RPC("rpcMissileInit", RpcTarget.AllBuffered, missile.photonView.ViewID);
        }
    }
Beispiel #2
0
    public void rpcSetOwnership(int photonID)
    {
        PhotonView view = PhotonNetwork.GetPhotonView(photonID);

        if (view != null)
        {
            CombatFlow player = view.GetComponent <CombatFlow>();
            localOwned = player.localOwned || player.isLocalPlayer;


            // This fixes bug where client launching against host-owned npc
            if (localOwned)
            {
                RealFlightControl flightCont = GetComponent <RealFlightControl>();
                if (flightCont != null)
                {
                    flightCont.enabled = true;
                }

                BasicMissile missile = GetComponent <BasicMissile>();
                if (missile != null)
                {
                    missile.setHasPassed(true);
                }
            }
        }
    }
Beispiel #3
0
    private void rpcMissileInit(int missileID)
    {
        BasicMissile missile     = PhotonNetwork.GetPhotonView(missileID).GetComponent <BasicMissile>();
        CombatFlow   missileFlow = missile.GetComponent <CombatFlow>();

        missile.myTeam   = transform.root.GetComponent <CombatFlow>().team;
        missileFlow.team = missile.myTeam;
    }
Beispiel #4
0
 private void Awake()
 {
     missileRef      = GetComponent <BasicMissile>();
     weaponRef       = GetComponent <Weapon>();
     rocketMotor     = GetComponent <RocketMotor>();
     myFlightControl = GetComponent <RealFlightControl>();
     myRB            = GetComponent <Rigidbody>();
     myRadar         = GetComponent <Radar>();
 }
Beispiel #5
0
 private void tryAddOutgoingWeap(GameObject weap)
 {
     if (weap != null)
     {
         BasicMissile msl = weap.GetComponent <BasicMissile>();
         if (msl != null)
         {
             outgoingMissiles.Add(msl);
         }
     }
     else
     {
         Debug.LogWarning("AI Aircraft tried to fire null weapon");
     }
 }
Beispiel #6
0
    private void processCamOffset()
    {
        if (isReady && myFlow.isLocalPlayer)
        {
            float camOffsetVertTemp  = 0f;
            float camOffsetHorizTemp = 0f;

            if (wheels.gearIsDown)
            {
                camOffsetVertTemp = gearOffset;
            }

            // if selected weapon type needs to move camera
            Hardpoint activeHardpointRef = hardpointController.getActiveHardpoint();

            if (activeHardpointRef != null)
            {
                BasicBomb    bombScript      = activeHardpointRef.weaponTypePrefab.GetComponent <BasicBomb>();
                BasicMissile missileScript   = activeHardpointRef.weaponTypePrefab.GetComponent <BasicMissile>();
                RocketPod    rocketPodScript = activeHardpointRef.weaponTypePrefab.GetComponent <RocketPod>();



                if (rocketPodScript != null)
                {
                    camOffsetVertTemp = rocketPodOffset;
                }

                if (bombScript != null)
                {
                    camOffsetVertTemp = bombOffset;
                }

                if (activeHardpointRef.weaponTypePrefab.name.Equals("Maverick"))
                {
                    camOffsetVertTemp = maverickOffset;
                }
            }


            cam.camAxisTargetOffset_Vert  = camOffsetVertTemp;
            cam.camAxisTargetOffset_Horiz = camOffsetHorizTemp;
        }
    }
Beispiel #7
0
 void Awake()
 {
     myFlow  = GetComponent <CombatFlow>();
     missile = GetComponent <BasicMissile>();
     myRb    = GetComponent <Rigidbody>();
 }