Example #1
0
    int m_bPlayerInstanceCount = 0;  //flag to disable multiple player instances
    void InitialiseInstance(Parser.Tr2Item tr2item)
    {
        GameObject go = tr2item.UnityObject;

        go.name += " " + tr2item.ObjectID;
        if (tr2item.ObjectID == 0)
        {
            if (m_bPlayerInstanceCount == 1)
            {
                GameObject.Destroy(tr2item.UnityObject);
                return;
            }
            //playable character found!
            m_Player                  = go;
            m_Player.layer            = UnityLayer.Player;
            m_PrevPlayPos             = m_Player.transform.position;
            m_Player.transform.parent = m_LevelRoot;

            if (m_leveldata.Camera != null)
            {
                m_leveldata.Camera.target = m_Player.transform;
            }
            LaraStatePlayer stateplayer = m_Player.AddComponent <LaraStatePlayer>();
            stateplayer.tranimations = m_DynamicPrefabs[0].AnimClips;
            m_Player.name            = "Lara";

            GameObject FlashLight = new GameObject("Fire Torch");
            FlashLight.AddComponent <FlashLightStatePlayer>();
            Light lt = FlashLight.AddComponent <Light>();
            lt.type      = LightType.Spot;
            lt.range     = 5;
            lt.spotAngle = 70;
            lt.intensity = 5;

            FlashLight.transform.parent   = m_Player.transform.Find("objPart:0");//.Find("objPart:7").Find("objPart:14");
            FlashLight.transform.position = FlashLight.transform.parent.position;
            FlashLight.transform.forward  = FlashLight.transform.parent.forward;
            lt.enabled = false;

            Player player = go.AddComponent <Player>();
            player.m_Tr2Item = tr2item;
            HealthMonitor          healthmon      = go.AddComponent <HealthMonitor>();
            PlayerCollisionHandler playercollider = go.AddComponent <PlayerCollisionHandler>();

            //Initialise Current Active Room for player
            player.m_AnimStatePlayer = stateplayer;
            player.m_Room            = SetRoomForPlayer();
            if (player.m_Room != null)
            {
                Debug.Log("Player Rooms: " + player.m_Room.name);
                player.SetSwimState(player.m_Room);
            }
            AICondition.SetActive(m_Player, true);

            //set every game object under player as player
            Transform[] objs = m_Player.GetComponentsInChildren <Transform>();
            foreach (Transform t in objs)
            {
                t.gameObject.layer = UnityLayer.Player;
            }

            //Add Charecter light
            GameObject LaraLight = new GameObject("Lara Light");
            Light      light     = LaraLight.AddComponent <Light>();
            light.transform.position = m_Player.transform.position;
            light.type = LightType.Directional;
            light.transform.forward = Vector3.Reflect(Vector3.one, -Vector3.up);
            light.transform.parent  = m_Player.transform;
            light.cullingMask       = MaskedLayer.Player;
            light.intensity         = 0.3f;
            light.gameObject.AddComponent <LaraLightStatePlayer>();

            m_bPlayerInstanceCount = 1;
        }
        //check if we have any custom behabiour  script for object
        else if (m_OnAttachBehabiourScript != null && !m_OnAttachBehabiourScript(tr2item.UnityObject, tr2item.ObjectID, m_Player, tr2item))
        {
            go.AddComponent <DefaultStatePlayer>(); // user did not attached any custom behabiour. so use default one
            AICondition.SetActive(go, true);        //Added default activation state active
        }
    }
Example #2
0
    public static bool OnAttachingBehaviourToObject(GameObject AI, int ObjectID, GameObject Player, Parser.Tr2Item tr2item)
    {
        bool retval = false;

        //TEST: if(ObjectID == 32 || ObjectID == 15 ) return false;


        if (ObjectID == 15)
        {
            DogStatePlayer dog = AI.AddComponent <DogStatePlayer>();
            dog.m_FollowTransform = Player.transform;
            dog.m_Tr2Item         = tr2item;
            AICondition.SetActive(AI, true);
            retval = true;
        }
        else if (ObjectID == 16)
        {
            GoonWithMaskStatePlayer goon = AI.AddComponent <GoonWithMaskStatePlayer>();
            goon.m_FollowTransform = Player.transform;
            goon.m_Tr2Item         = tr2item;
            AICondition.SetActive(AI, true);
            retval = true;
        }
        else if (ObjectID == 20)
        {
            BartoliStatePlayer goon = AI.AddComponent <BartoliStatePlayer>();
            goon.m_FollowTransform = Player.transform;
            goon.m_Tr2Item         = tr2item;
            AICondition.SetActive(AI, true);
            retval = true;
        }

        else if (ObjectID == 31 || ObjectID == 32)
        {
            GoonWithRoolerStatePlayer goon = AI.AddComponent <GoonWithRoolerStatePlayer>();
            goon.m_FollowTransform = Player.transform;
            goon.m_Tr2Item         = tr2item;
            AICondition.SetActive(AI, true);
            retval = true;
        }
        else if (ObjectID == 34 || ObjectID == 48 || ObjectID == 49 || ObjectID == 52)
        {
            GoonWithArmsStatePlayer goon = AI.AddComponent <GoonWithArmsStatePlayer>();
            goon.m_FollowTransform = Player.transform;
            goon.m_Tr2Item         = tr2item;
            AICondition.SetActive(AI, true);
            retval = true;
        }
        else if (ObjectID == 38 || ObjectID == 37)
        {
            CrowStatePlayer crow = AI.AddComponent <CrowStatePlayer>();
            crow.m_FollowTransform = Player.transform;
            crow.m_Tr2Item         = tr2item;
            AICondition.SetActive(AI, true);
            retval = true;
        }
        else if (ObjectID == 39)
        {
            TigerStatePlayer tiger = AI.AddComponent <TigerStatePlayer>();
            tiger.m_FollowTransform = Player.transform;
            tiger.m_Tr2Item         = tr2item;
            AICondition.SetActive(AI, true);
            retval = true;
        }
        else if (ObjectID == 47)
        {
            EgleStatePlayer egle = AI.AddComponent <EgleStatePlayer>();
            egle.m_FollowTransform = Player.transform;
            egle.m_Tr2Item         = tr2item;
            AICondition.SetActive(AI, true);
            retval = true;
        }
        else if (ObjectID == 67)
        {
            BoulderStatePlayer boulder = AI.AddComponent <BoulderStatePlayer>();
            boulder.m_FollowTransform = Player.transform;
            boulder.m_Tr2Item         = tr2item;
            AICondition.SetActive(AI, !Settings.ForceDisableAllBoulder);
            retval = true;
        }
        else if (ObjectID == 103 || ObjectID == 104 || ObjectID == 93)
        {
            SwitchStatePlayer _switch = AI.AddComponent <SwitchStatePlayer>();
            _switch.m_FollowTransform = Player.transform;
            _switch.m_Tr2Item         = tr2item;
            AICondition.SetActive(AI, true);
            retval = true;
        }
        else if (ObjectID == 106 || ObjectID == 110)
        {
            DoorStatePlayer door = AI.AddComponent <DoorStatePlayer>();
            door.m_FollowTransform = Player.transform;
            door.m_Tr2Item         = tr2item;
            AICondition.SetActive(AI, !Settings.ForceOpenAllDoors);

            retval = true;
        }
        else if (ObjectID == 107 || ObjectID == 109 || ObjectID == 112 || ObjectID == 114)
        {
            DoorStatePlayer door = AI.AddComponent <DoorStatePlayer>();
            door.m_FollowTransform = Player.transform;
            door.m_Tr2Item         = tr2item;
            AICondition.SetActive(AI, !Settings.ForceOpenAllDoors);
            retval = true;
        }
        else if (ObjectID == 108)
        {
            DoorStatePlayer door = AI.AddComponent <DoorStatePlayer>();
            door.m_FollowTransform = Player.transform;
            door.m_Tr2Item         = tr2item;
            AICondition.SetActive(AI, !Settings.ForceOpenAllDoors);
            retval = true;
        }
        else if (ObjectID == 214)
        {
            TRexStatePlayer trex = AI.AddComponent <TRexStatePlayer>();
            trex.m_FollowTransform = Player.transform;
            trex.m_Tr2Item         = tr2item;
            AICondition.SetActive(AI, true);
            retval = true;
        }
        else if (ObjectID == 260)
        {
            //ButtlerStatePlayer
            ButtlerStatePlayer buttler = AI.AddComponent <ButtlerStatePlayer>();
            buttler.m_FollowTransform = Player.transform;
            buttler.m_Tr2Item         = tr2item;
            AICondition.SetActive(AI, true);
            retval = true;
        }
        else if (ObjectID == 28 || ObjectID == 25)
        {
            SharkGoldenStatePlayer shark_golden = AI.AddComponent <SharkGoldenStatePlayer>();
            shark_golden.m_FollowTransform = Player.transform;
            shark_golden.m_Tr2Item         = tr2item;
            AICondition.SetActive(AI, true);
            retval = true;
        }
        else if (ObjectID == 21 || ObjectID == 36)
        {
            RatStatePlayer rat = AI.AddComponent <RatStatePlayer>();
            rat.m_FollowTransform = Player.transform;
            rat.m_Tr2Item         = tr2item;
            AICondition.SetActive(AI, true);
            retval = true;
        }


        return(retval);         // if false default behabiour will be used
    }