Beispiel #1
0
    // Start is called before the first frame update
    void Start()
    {
        myRadar             = GetComponent <Radar>();
        playerInput         = GetComponent <PlayerInput_Aircraft>();
        mainHud             = hudControl.mainHud.GetComponent <hudControl>();
        localPlayerFlow     = GetComponent <CombatFlow>();
        hardpointController = playerInput.hardpointController;

        if (localPlayerFlow.isLocalPlayer)
        {
            linkToRangeLadder();
        }
    }
    public void setPlayerAsAI(GameObject aircraftObj)
    {
        Debug.Log("Setting player as AI");

        // layer 8 is localPlayer layer
        //MoveToLayer(aircraftObj.transform, 8);

        PlayerInput_Aircraft inputRoot = aircraftObj.GetComponent <PlayerInput_Aircraft>();

        inputRoot.enabled = false;

        aircraftObj.GetComponent <AI_Aircraft>().enabled = true;

        const int localPlayerLayer = 8;

        inputRoot.cannons.setIgnoreLayer(localPlayerLayer);

        CombatFlow playerFlow = aircraftObj.GetComponent <CombatFlow>();

        playerFlow.team         = team;
        playerFlow.localOwned   = true;
        playerFlow.aiControlled = true;

        // Enable flight and engine control
        aircraftObj.GetComponent <RealFlightControl>().enabled = true;
        aircraftObj.GetComponent <EngineControl>().enabled     = true;

        // Link hud to obj
        hudControl hud = hudObj.GetComponent <hudControl>();

        //hud.setHudVisible(true);
        //hud.linkHudToAircraft(aircraftObj);

        // Enable controllers
        //inputRoot.cam.gameObject.SetActive(true);       // camera
        inputRoot.cannons.gameObject.SetActive(true);             // cannon
        inputRoot.hardpointController.gameObject.SetActive(true); // hardpoints

        // Save this player's camera
        //PerspectiveManager.getPManager().mainCam = inputRoot.cam.camRef.GetComponent<Camera>();

        // activate targeting computer and radar
        aircraftObj.GetComponent <Radar>().enabled = true;
        //aircraftObj.GetComponent<TgtComputer>().enabled = true;


        //inputRoot.isReady = true; // start receiving and processing input
    }
Beispiel #3
0
    public void destroySelf(bool doDelete = true)
    {
        Debug.LogWarning("Destroyself called");


        if (type == Type.AIRCRAFT)
        {
            GameManager.getGM().getTeamAircraftList(team).Remove(this);
        }


        if (showInWorldList)
        {
            removeFromDatalink(); // if not present in world's list, is likely too simple to involve datalink
            CombatFlow.combatUnits.Remove(this);
        }


        if (ownerLane != null)
        {
            ownerLane.unitDeath(this);
        }

        if (isLocalPlayer)
        {
            //Debug.LogWarning("localplayer: " + gameObject.name + " destroyed. Calling showSpawnMenu");
            GameManager.getGM().showSpawnMenu();

            PlayerInput_Aircraft input = GetComponent <PlayerInput_Aircraft>();
            input.hardpointController.destroyWeapons();
        }

        if (camManager != null)
        {
            // remove this camera from perspectiveManager's list
            //  Is this a crusty way of doing this? Might be perspectiveManager's responsibility instead?
            camManager.cameras.Remove(unitCam);
        }

        //Weapon weaponRef = GetComponent<Weapon>();
        //if(weaponRef != null)
        //{
        //    Destroy(weaponRef.effectsObj);
        //}

        if (myHudIconRef != null)
        {
            Destroy(myHudIconRef.gameObject);
        }

        //Destroy(gameObject);

        if (doDelete)
        {
            Weapon myWeapon = GetComponent <Weapon>();

            bool missileFound = false;
            if (networkDeath && myWeapon != null && (localOwned || isLocalPlayer))
            {
                myWeapon.destroyWeapon();
            }
            else
            {
                Destroy(gameObject);
            }
        }
    }