void Awake()
 {
     pmc      = this.GetComponent <PersonMovementController> ();
     pwc      = this.GetComponent <PersonWeaponController> ();
     inv      = this.GetComponent <Inventory> ();
     detect   = this.GetComponent <CanWeDetectTarget> ();
     pf       = this.GetComponent <PathFollower> ();
     memory   = this.GetComponent <NPCMemory> ();
     npcB     = this.GetComponent <NPCBehaviourDecider> ();
     myCol    = this.GetComponent <PersonColliderDecider> ();
     myHealth = this.gameObject.GetComponent <PersonHealth> ();
     ac       = this.GetComponentInChildren <ArtemAnimationController> ();
     pcc      = this.GetComponent <PersonClothesController> ();
 }
Exemple #2
0
    void Start()
    {
        if (dead == true)
        {
            if (TimeScript.me.howManyHoursHavePassed(0, dayOfSpook, monthOfSpook, yearOfSpook) < 24 * 5)
            {
                doWeCreate = false;
            }
            else
            {
                dead = false;
            }
        }
        else
        {
            if (spooked == true)
            {
                if (TimeScript.me.howManyHoursHavePassed(0, dayOfSpook, monthOfSpook, yearOfSpook) < 48)
                {
                    doWeCreate = false;
                }
                else
                {
                    spooked = false;
                }
            }

            //  Debug.Log("Hours since shop generation = " + TimeScript.me.howManyHoursHavePassed(0, day, month, year).ToString());
            if (TimeScript.me.howManyHoursHavePassed(0, day, month, year) > 72 || shopInitialised == false)
            {
                generateInventory();
            }
        }

        buildingIAmIn = LevelController.me.getBuildingPosIsIn(this.transform.position);
        if (buildingIAmIn == null)
        {
        }
        else
        {
            if (buildingIAmIn.buildingClosed == true)
            {
                doWeCreate = false;
            }
        }


        if (doWeCreate == true)
        {
            if (linkedToExisting == false)
            {
                myKeeper = (GameObject)Instantiate(CommonObjectsStore.me.civilian, new Vector3(this.transform.position.x, this.transform.position.y, 0), this.transform.rotation);
            }
            keeperController        = myKeeper.GetComponent <NPCController>();
            keeperDecider           = myKeeper.GetComponent <NPCBehaviourDecider>();
            keeperController.myType = AIType.shopkeeper;
            keeperDecider.myType    = AIType.shopkeeper;

            if (keeperCanIdentifyPlayer == true)
            {
                NPCMemory m = myKeeper.GetComponent <NPCMemory>();
                m.seenSuspect = true;
                m.objectThatMadeMeSuspisious = CommonObjectsStore.player;
            }

            shopIcon = (GameObject)Instantiate(CommonObjectsStore.me.shopIcon, this.transform.position, Quaternion.Euler(0, 0, 0));
            shopIcon.GetComponent <InteractIcon>().setToFollow(myKeeper);
            shopIcon.GetComponent <InteractIcon>().isShopkeeper = true;

            PlayerAction_RobShop rob = myKeeper.AddComponent <PlayerAction_RobShop>();
            rob.myController = keeperController;
            rob.myShop       = this;
        }
    }
Exemple #3
0
    void OnSceneGUI()
    {
        pos   = Event.current.mousePosition;
        pos.y = SceneView.currentDrawingSceneView.camera.pixelHeight - pos.y;
        pos   = SceneView.currentDrawingSceneView.camera.ScreenToWorldPoint(pos);
        pos.z = 0;
        Selection.selectionChanged += OnDeselect;

        if (im == null)
        {
            im = FindObjectOfType <IDManager>();
        }

        if (c == null)
        {
            c = FindObjectOfType <CommonObjectsStore>();
        }
        if (id == null)
        {
            id = FindObjectOfType <ItemDatabase>();
        }

        Handles.BeginGUI();

        /*  string[] options = System.Enum.GetNames(typeof( uniqueNPCSetting));
         * GUILayout.BeginHorizontal();
         *
         * foreach(string st in options)
         * {
         *    if (button(st))
         *    {
         *        mySetting = getSettingFromString(st) ;
         *    }
         * }
         * GUILayout.EndHorizontal();*/

        if (mySetting == uniqueNPCSetting.menu)
        {
            //draw buttons on each of the NPCID's found in the level,
            if (npcsInWorld == null || npcsInWorld.Length == 0)
            {
                refreshNPCS();
            }

            foreach (NPCID npc in npcsInWorld)
            {
                inworldLabel(npc.transform.position, npc.firstName + " " + npc.lastName);
                if (inworldButton(npc.gameObject.transform.position, Color.cyan))
                {
                    npcEditing        = npc.gameObject;
                    controllerEditing = npcEditing.GetComponent <NPCController>();
                    clothesEditing    = npcEditing.GetComponent <PersonClothesController>();
                    deciderEditing    = npcEditing.GetComponent <NPCBehaviourDecider>();
                    inventoryEditing  = npcEditing.GetComponent <Inventory>();
                    idEditing         = npc;
                    npcItems          = npcEditing.GetComponent <NPCItemInitialiser>();
                    mySetting         = uniqueNPCSetting.editing;
                }
            }

            if (button("New Unique NPC"))
            {
                GameObject g         = (GameObject)Instantiate(c.civilian, new Vector3(SceneView.currentDrawingSceneView.camera.transform.position.x, SceneView.currentDrawingSceneView.camera.transform.position.y, 0), Quaternion.Euler(0, 0, 0));
                NPCID      createdID = g.AddComponent <NPCID>();
                createdID.myId = im.getNPCID();
                g.GetComponent <NPCBehaviourDecider>().myType = AIType.neutral;
                g.GetComponent <NPCController>().myType       = AIType.neutral;
                refreshNPCS();
                EditorUtility.SetDirty(id);
                EditorUtility.SetDirty(createdID);
            }
        }
        else if (mySetting == uniqueNPCSetting.editing)
        {
            if (button("Menu"))
            {
                EditorUtility.SetDirty(npcEditing);
                EditorUtility.SetDirty(controllerEditing);
                EditorUtility.SetDirty(clothesEditing);
                EditorUtility.SetDirty(deciderEditing);
                EditorUtility.SetDirty(idEditing);
                EditorUtility.SetDirty(inventoryEditing);
                EditorUtility.SetDirty(npcItems);
                npcEditing        = null;
                controllerEditing = null;
                clothesEditing    = null;
                deciderEditing    = null;

                mySetting = uniqueNPCSetting.menu;
            }
            string[] editOptions = System.Enum.GetNames(typeof(editingTask));
            string   info        = "Editing NPC with the ID " + idEditing.myId;
            label(info, info.Length * 8, 30);
            taskScroll = GUILayout.BeginScrollView(taskScroll, GUILayout.Width(500), GUILayout.Height(50));
            GUILayout.BeginHorizontal();
            foreach (string st in editOptions)
            {
                if (button(st))
                {
                    currentTask = getTaskFromString(st);
                }
            }
            GUILayout.EndScrollView();
            GUILayout.EndHorizontal();
            GUILayout.Label(currentTask.ToString());
            if (currentTask == editingTask.name)
            {
                viewScroll = GUILayout.BeginScrollView(viewScroll, GUILayout.Width(400), GUILayout.Height(400));

                GUILayout.BeginHorizontal();
                string st = "Name: " + idEditing.firstName + " " + idEditing.lastName;
                label(st, st.Length * 8, 30);
                idEditing.firstName = textInput(idEditing.firstName);
                idEditing.lastName  = textInput(idEditing.lastName);
                EditorUtility.SetDirty(idEditing);
                EditorUtility.SetDirty(npcEditing);
                GUILayout.EndHorizontal();

                if (button("NPC Always Active" + idEditing.alwaysActive.ToString()))
                {
                    idEditing.alwaysActive = !idEditing.alwaysActive;
                }

                GUILayout.EndScrollView();
            }
            else if (currentTask == editingTask.position)
            {
                if (editRotation == false)
                {
                    if (button("Change Rotation"))
                    {
                        editRotation = true;
                    }
                    drawPositionHandle(ref npcEditing);
                    EditorUtility.SetDirty(npcEditing);
                }
                else
                {
                    if (button("Change Position"))
                    {
                        editRotation = false;
                    }
                    drawRotationHandle(ref npcEditing);
                    EditorUtility.SetDirty(npcEditing);
                }
            }
            else if (currentTask == editingTask.items)
            {
                viewScroll = GUILayout.BeginScrollView(viewScroll, GUILayout.Width(400), GUILayout.Height(400));

                label("Items To add:");
                string item = getItems();
                if (item != "None")
                {
                    if (npcItems.itemsToAdd == null)
                    {
                        npcItems.itemsToAdd = new List <string>();
                    }
                    npcItems.itemsToAdd.Add(item);
                    EditorUtility.SetDirty(npcItems);
                }

                label("Add random item:");
                string randItem = getItems();
                if (randItem != "None")
                {
                    if (npcItems.randomItems == null)
                    {
                        npcItems.randomItems = new List <string>();
                    }
                    npcItems.randomItems.Add(randItem);
                    EditorUtility.SetDirty(npcItems);
                }
                label("Items Being Given");
                foreach (string st in npcItems.itemsToAdd)
                {
                    GUILayout.BeginHorizontal();
                    label(st, st.Length * 8, 30);
                    if (button("X"))
                    {
                        npcItems.itemsToAdd.Remove(st);
                        EditorUtility.SetDirty(npcItems);

                        return;
                    }
                    GUILayout.EndHorizontal();
                }
                label("Items that may be given");
                foreach (string st in npcItems.randomItems)
                {
                    GUILayout.BeginHorizontal();
                    label(st, st.Length * 8, 30);
                    if (button("X"))
                    {
                        npcItems.randomItems.Remove(st);
                        EditorUtility.SetDirty(npcItems);

                        return;
                    }
                    GUILayout.EndHorizontal();
                }
                GUILayout.EndScrollView();
            }
            else if (currentTask == editingTask.aesthetics)
            {
                viewScroll = GUILayout.BeginScrollView(viewScroll, GUILayout.Width(400), GUILayout.Height(400));

                if (clothesEditing.clothesToWearAtStart == null)
                {
                    clothesEditing.clothesToWearAtStart = new List <string>();
                }

                if (button("Random Clothes " + clothesEditing.getRandomClothes.ToString()))
                {
                    clothesEditing.getRandomClothes = !clothesEditing.getRandomClothes;
                }
                label("Clothes you could add:");
                if (clothesEditing.getRandomClothes == false)
                {
                    string st = getClothes();
                    if (st != "None")
                    {
                        if (clothesEditing.clothesToWearAtStart.Contains(st) == false)
                        {
                            clothesEditing.clothesToWearAtStart.Add(st);
                        }
                    }
                }

                foreach (string st in clothesEditing.clothesToWearAtStart)
                {
                    GUILayout.BeginHorizontal();
                    label(st, st.Length * 8, 30);
                    if (button("X"))
                    {
                        clothesEditing.clothesToWearAtStart.Remove(st);
                        return;
                    }
                    GUILayout.EndHorizontal();
                }

                GUILayout.EndScrollView();
            }
            else if (currentTask == editingTask.whenToActivate)
            {
                viewScroll = GUILayout.BeginScrollView(viewScroll, GUILayout.Width(400), GUILayout.Height(400));
                label("Activate NPC:");

                /* label("On Mission Start");
                 * string missionStart = getMission();
                 * if(missionStart!="None")
                 * {
                 *   if (idEditing.started_missionsToActivateOn == null)
                 *   {
                 *       idEditing.started_missionsToActivateOn = new List<string>();
                 *   }
                 *   if (idEditing.started_missionsToActivateOn.Contains(missionStart) == false)
                 *   {
                 *       idEditing.started_missionsToActivateOn.Add(missionStart);
                 *       EditorUtility.SetDirty(idEditing);
                 *       return;
                 *   }
                 * }
                 *
                 * label("On Mission Finish");
                 * string missionEnd = getMission();
                 * if(missionEnd!="None")
                 * {
                 *   if (idEditing.finished_missionsToActivateOn == null)
                 *   {
                 *       idEditing.finished_missionsToActivateOn = new List<string>();
                 *   }
                 *   if (idEditing.finished_missionsToActivateOn.Contains(missionStart) == false)
                 *   {
                 *       idEditing.finished_missionsToActivateOn.Add(missionStart);
                 *       EditorUtility.SetDirty(idEditing);
                 *       return;
                 *   }
                 * }
                 */
                label("Unique NPC's Dead");
                int val = getUniquieNPCID();
                if (val != -1)
                {
                    if (idEditing.idsToActivateOnIfDead == null)
                    {
                        idEditing.idsToActivateOnIfDead = new List <int>();
                    }

                    if (idEditing.idsToActivateOnIfDead.Contains(val) == false)
                    {
                        idEditing.idsToActivateOnIfDead.Add(val);
                    }
                }

                label("------------------------");

                GUILayout.EndScrollView();
            }
            else if (currentTask == editingTask.whenToDeactivate)
            {
                viewScroll = GUILayout.BeginScrollView(viewScroll, GUILayout.Width(400), GUILayout.Height(400));

                label("Deactivate NPC:");

                /* label("On Mission Start");
                 * string missionStart = getMission();
                 * if (missionStart != "None")
                 * {
                 *   if (idEditing.started_missionsToDeactivateOn == null)
                 *   {
                 *       idEditing.started_missionsToDeactivateOn = new List<string>();
                 *   }
                 *   if (idEditing.started_missionsToDeactivateOn.Contains(missionStart) == false)
                 *   {
                 *       idEditing.started_missionsToDeactivateOn.Add(missionStart);
                 *       EditorUtility.SetDirty(idEditing);
                 *       return;
                 *   }
                 * }
                 *
                 * label("On Mission Finish");
                 * string missionEnd = getMission();
                 * if (missionEnd != "None")
                 * {
                 *   if (idEditing.finished_missionsToDeactivateOn == null)
                 *   {
                 *       idEditing.finished_missionsToDeactivateOn = new List<string>();
                 *   }
                 *   if (idEditing.finished_missionsToDeactivateOn.Contains(missionStart) == false)
                 *   {
                 *       idEditing.finished_missionsToDeactivateOn.Add(missionStart);
                 *       EditorUtility.SetDirty(idEditing);
                 *       return;
                 *   }
                 * }*/

                label("Unique NPC's Dead");
                int val = getUniquieNPCID();
                if (val != -1)
                {
                    if (idEditing.idsToDeactivateOnIfDead == null)
                    {
                        idEditing.idsToDeactivateOnIfDead = new List <int>();
                    }

                    if (idEditing.idsToDeactivateOnIfDead.Contains(val) == false)
                    {
                        idEditing.idsToDeactivateOnIfDead.Add(val);
                        EditorUtility.SetDirty(idEditing);
                    }
                }

                GUILayout.EndScrollView();
            }
            else if (currentTask == editingTask.peacefulConditions)
            {
                viewScroll = GUILayout.BeginScrollView(viewScroll, GUILayout.Width(400), GUILayout.Height(400));

                label("Make NPC Peaceful:");

                /*label("On Mission Start");
                 * string missionStart = getMission();
                 * if (missionStart != "None")
                 * {
                 *  if (idEditing.started_missionsToMakeNotHostile == null)
                 *  {
                 *      idEditing.started_missionsToMakeNotHostile = new List<string>();
                 *  }
                 *  if (idEditing.started_missionsToMakeNotHostile.Contains(missionStart) == false)
                 *  {
                 *      idEditing.started_missionsToMakeNotHostile.Add(missionStart);
                 *      EditorUtility.SetDirty(idEditing);
                 *      return;
                 *  }
                 * }
                 *
                 * label("On Mission Finish");
                 * string missionEnd = getMission();
                 * if (missionEnd != "None")
                 * {
                 *  if (idEditing.finished_missionsToMakeNotHostile == null)
                 *  {
                 *      idEditing.finished_missionsToMakeNotHostile = new List<string>();
                 *  }
                 *  if (idEditing.finished_missionsToMakeNotHostile.Contains(missionStart) == false)
                 *  {
                 *      idEditing.finished_missionsToMakeNotHostile.Add(missionStart);
                 *      EditorUtility.SetDirty(idEditing);
                 *      return;
                 *  }
                 * }
                 */
                label("Unique NPC's Dead");
                int val = getUniquieNPCID();
                if (val != -1)
                {
                    if (idEditing.idsThatMakeNotHostileOnDeath == null)
                    {
                        idEditing.idsThatMakeNotHostileOnDeath = new List <int>();
                    }

                    if (idEditing.idsThatMakeNotHostileOnDeath.Contains(val) == false)
                    {
                        idEditing.idsThatMakeNotHostileOnDeath.Add(val);
                        EditorUtility.SetDirty(idEditing);
                    }
                }

                GUILayout.EndScrollView();
            }
            else if (currentTask == editingTask.hostileConditions)
            {
                viewScroll = GUILayout.BeginScrollView(viewScroll, GUILayout.Width(400), GUILayout.Height(400));

                label("Make NPC Hostile:");

                /* label("On Mission Start");
                 * string missionStart = getMission();
                 * if (missionStart != "None")
                 * {
                 *   if (idEditing.started_missionsToMakeHostile == null)
                 *   {
                 *       idEditing.started_missionsToMakeHostile = new List<string>();
                 *   }
                 *   if (idEditing.started_missionsToMakeHostile.Contains(missionStart) == false)
                 *   {
                 *       idEditing.started_missionsToMakeHostile.Add(missionStart);
                 *       EditorUtility.SetDirty(idEditing);
                 *       return;
                 *   }
                 * }
                 *
                 * label("On Mission Finish");
                 * string missionEnd = getMission();
                 * if (missionEnd != "None")
                 * {
                 *   if (idEditing.finished_missionsToMakeHostile == null)
                 *   {
                 *       idEditing.finished_missionsToMakeHostile = new List<string>();
                 *   }
                 *   if (idEditing.finished_missionsToMakeHostile.Contains(missionStart) == false)
                 *   {
                 *       idEditing.finished_missionsToMakeHostile.Add(missionStart);
                 *       EditorUtility.SetDirty(idEditing);
                 *       return;
                 *   }
                 * }*/

                label("Unique NPC's Dead");
                int val = getUniquieNPCID();
                if (val != -1)
                {
                    if (idEditing.idsThatMakeHostileOnDeath == null)
                    {
                        idEditing.idsThatMakeHostileOnDeath = new List <int>();
                    }

                    if (idEditing.idsThatMakeHostileOnDeath.Contains(val) == false)
                    {
                        idEditing.idsThatMakeHostileOnDeath.Add(val);
                        EditorUtility.SetDirty(idEditing);
                    }
                }

                GUILayout.EndScrollView();
            }
            else if (currentTask == editingTask.whenToEnable)
            {
            }
            else if (currentTask == editingTask.whenToDisable)
            {
            }
            else if (currentTask == editingTask.editLists)
            {
                viewScroll = GUILayout.BeginScrollView(viewScroll, GUILayout.Width(400), GUILayout.Height(400));

                label("Hostile Conditions:");
                //hostile
                if (idEditing.idsThatMakeHostileOnDeath != null)
                {
                    foreach (int i in idEditing.idsThatMakeHostileOnDeath)
                    {
                        if (button("Remove " + i.ToString()))
                        {
                            idEditing.idsThatMakeHostileOnDeath.Remove(i);
                            EditorUtility.SetDirty(idEditing);

                            return;
                        }
                    }
                }

                if (idEditing.started_missionsToMakeHostile != null)
                {
                    foreach (string st in idEditing.started_missionsToMakeHostile)
                    {
                        if (button("Remove " + st))
                        {
                            idEditing.started_missionsToMakeHostile.Remove(st);
                            EditorUtility.SetDirty(idEditing);

                            return;
                        }
                    }
                }

                if (idEditing.finished_missionsToMakeHostile != null)
                {
                    foreach (string st in idEditing.finished_missionsToMakeHostile)
                    {
                        if (button("Remove " + st))
                        {
                            idEditing.finished_missionsToMakeHostile.Remove(st);
                            EditorUtility.SetDirty(idEditing);

                            return;
                        }
                    }
                }

                label("Peaceful Conditions:");
                //not hostile
                if (idEditing.idsThatMakeNotHostileOnDeath != null)
                {
                    foreach (int i in idEditing.idsThatMakeNotHostileOnDeath)
                    {
                        if (button("Remove " + i.ToString()))
                        {
                            idEditing.idsThatMakeNotHostileOnDeath.Remove(i);
                            EditorUtility.SetDirty(idEditing);

                            return;
                        }
                    }
                }

                if (idEditing.started_missionsToMakeNotHostile != null)
                {
                    foreach (string st in idEditing.started_missionsToMakeNotHostile)
                    {
                        if (button("Remove " + st))
                        {
                            idEditing.started_missionsToMakeNotHostile.Remove(st);
                            EditorUtility.SetDirty(idEditing);

                            return;
                        }
                    }
                }

                if (idEditing.finished_missionsToMakeNotHostile != null)
                {
                    foreach (string st in idEditing.finished_missionsToMakeNotHostile)
                    {
                        if (button("Remove " + st))
                        {
                            idEditing.finished_missionsToMakeNotHostile.Remove(st);
                            EditorUtility.SetDirty(idEditing);

                            return;
                        }
                    }
                }

                label("Activate Conditions:");
                //activate NPC
                if (idEditing.idsToActivateOnIfDead != null)
                {
                    foreach (int i in idEditing.idsToActivateOnIfDead)
                    {
                        if (button("Remove " + i.ToString()))
                        {
                            idEditing.idsToActivateOnIfDead.Remove(i);
                            EditorUtility.SetDirty(idEditing);

                            return;
                        }
                    }
                }

                if (idEditing.started_missionsToActivateOn != null)
                {
                    foreach (string st in idEditing.started_missionsToActivateOn)
                    {
                        if (button("Remove " + st))
                        {
                            idEditing.started_missionsToActivateOn.Remove(st);
                            EditorUtility.SetDirty(idEditing);

                            return;
                        }
                    }
                }


                if (idEditing.finished_missionsToActivateOn != null)
                {
                    foreach (string st in idEditing.finished_missionsToActivateOn)
                    {
                        if (button("Remove " + st))
                        {
                            idEditing.finished_missionsToActivateOn.Remove(st);
                            EditorUtility.SetDirty(idEditing);

                            return;
                        }
                    }
                }

                label("Deactivate Conditions:");
                //deactivate NPC
                if (idEditing.idsToDeactivateOnIfDead != null)
                {
                    foreach (int i in idEditing.idsToDeactivateOnIfDead)
                    {
                        if (button("Remove " + i.ToString()))
                        {
                            idEditing.idsToDeactivateOnIfDead.Remove(i);
                            EditorUtility.SetDirty(idEditing);

                            return;
                        }
                    }
                }

                if (idEditing.started_missionsToDeactivateOn != null)
                {
                    foreach (string st in idEditing.finished_missionsToDeactivateOn)
                    {
                        if (button("Remove " + st))
                        {
                            idEditing.finished_missionsToDeactivateOn.Remove(st);
                            EditorUtility.SetDirty(idEditing);

                            return;
                        }
                    }
                }


                if (idEditing.finished_missionsToDeactivateOn != null)
                {
                    foreach (string st in idEditing.finished_missionsToDeactivateOn)
                    {
                        if (button("Remove " + st))
                        {
                            idEditing.finished_missionsToDeactivateOn.Remove(st);
                            EditorUtility.SetDirty(idEditing);
                            return;
                        }
                    }
                }

                GUILayout.EndScrollView();
            }
            displayGlobalNPCData();

            //name
            //aesthetics (clothes, skin color)
            //Items
            //when to enable (What conditions have to be met for the NPC to start appearing in the world). (Mission done etc..)
            //when to disable (what conditions cause the NPC to stop beign displayed in the world) (not available at that time, mission done etc...)
            //hostile conditions (What conditions would cause the NPC to become hostile) (been attacked by player, at war with faction, wanted...)
            //peaceful conditions (what conditions would cause the NPC to become peaceful after turning hostile) (Mission complete, time passed)
            //stopping conditions (What conditions cause the NPC to stop existing in the world)(dead,mission done etc...)
        }

        Handles.EndGUI();
    }
    void effectsController()
    {
        if (carSmoking == true && carSmoke == null)
        {
            if (sm == null)
            {
                sm = this.gameObject.AddComponent <SmokeManager> ();
            }
            sm.smokeOriginPoint = enginePoint.transform.position;

            carSmoke = (GameObject)Instantiate(CommonObjectsStore.me.smokeEffect, enginePoint.transform);
            carSmoke.GetComponent <SmokeEffect> ().myManager = sm;
        }
        if (carFireEffect == null)
        {
            carFireEffect = new List <GameObject> ();
        }
        if (carMinorFire == true && carFireEffect.Count < 2)
        {
            for (int x = 0; x < 2; x++)
            {
                GameObject g = (GameObject)Instantiate(CommonObjectsStore.me.carFireEffect, enginePoint.transform);
                g.transform.localPosition = new Vector3(Random.Range(-0.25f, 0.25f), Random.Range(-0.25f, 0.25f), 0);
                g.transform.localScale    = new Vector3(Random.Range(0.1f, 0.4f), Random.Range(0.1f, 0.4f), 0);
                carFireEffect.Add(g);
            }
        }

        if (carMajorFire == true && carFireEffect.Count < 7)
        {
            while (carFireEffect.Count < 7)
            {
                GameObject g = (GameObject)Instantiate(CommonObjectsStore.me.carFireEffect, enginePoint.transform);
                g.transform.localPosition = new Vector3(Random.Range(-0.25f, 0.25f), Random.Range(-0.25f, 0.25f), 0);
                g.transform.localScale    = new Vector3(Random.Range(0.7f, 1.0f), Random.Range(0.7f, 1.0f), 0);
                carFireEffect.Add(g);
            }
        }

        if (carExploding == true)
        {
            explodeTimer -= Time.deltaTime;
            if (explodeTimer <= 0)
            {
                Vector3    pos = new Vector3(Random.Range(this.transform.position.x - 1, this.transform.position.x + 1), Random.Range(this.transform.position.y - 1, this.transform.position.y + 1), 0);
                GameObject g   = (GameObject)Instantiate(CommonObjectsStore.me.grenadeExplosion, pos, Quaternion.Euler(0, 0, 0));
                g.GetComponent <SpriteRenderer> ().sortingOrder = 12;
                explodeTimer = Random.Range(1.0f, 5.0f);
                this.gameObject.GetComponentInChildren <SpriteRenderer> ().color = new Color(0.5f, 0.5f, 0.5f, 1);

                if (myRoadFollower == null)
                {
                }
                else
                {
                    if (myRoadFollower.hasDriver == true)
                    {
                        GameObject          g2   = (GameObject)Instantiate(CommonObjectsStore.me.civilian, driversDoor.transform.position, Quaternion.Euler(0, 0, 0));
                        NPCController       npc  = g2.GetComponent <NPCController> ();
                        NPCBehaviourDecider npcb = g2.GetComponent <NPCBehaviourDecider> ();
                        NPCMemory           npcm = g2.GetComponent <NPCMemory> ();
                        npcm.beenAttacked = true;
                        npcm.seenSuspect  = true;
                        //npcm.objectThatMadeMeSuspisious = CommonObjectsStore.player;
                        npcm.raiseAlarm = true;
                        npcb.alarmed    = true;
                    }

                    myRoadFollower.hasDriver = false;
                }
            }
        }
    }
    public void playerEnterCar()
    {
        //Debug.Log ("PLAYER ENTERED CAR");
        SpriteRenderer[] srs = CommonObjectsStore.player.GetComponentsInChildren <SpriteRenderer> ();
        foreach (SpriteRenderer sr in srs)
        {
            sr.enabled = false;
        }

        Collider2D[] c2s = CommonObjectsStore.player.GetComponents <Collider2D> ();
        foreach (Collider2D c2 in c2s)
        {
            c2.enabled = false;
        }
        PersonColliderDecider pcd = CommonObjectsStore.player.GetComponent <PersonColliderDecider> ();

        pcd.twoHandADS.enabled    = false;
        pcd.normal.enabled        = false;
        PlayerCarController.inCar = true;
        playerInCar = true;

        if (playerCar == false)
        {
            stolen = true;
            if (myRoadFollower == null)
            {
            }
            else
            {
                if (myRoadFollower.hasDriver == true)
                {
                    stolenFromDriver = true;
                }
            }
            dayStolen   = TimeScript.me.day;
            monthStolen = TimeScript.me.month;
            yearStolen  = TimeScript.me.year;
        }


        if (myRoadFollower == null)
        {
        }
        else
        {
            if (myRoadFollower.hasDriver == true)
            {
                GameObject          g    = (GameObject)Instantiate(CommonObjectsStore.me.civilian, driversDoor.transform.position, Quaternion.Euler(0, 0, 0));
                NPCController       npc  = g.GetComponent <NPCController> ();
                NPCBehaviourDecider npcb = g.GetComponent <NPCBehaviourDecider> ();
                NPCMemory           npcm = g.GetComponent <NPCMemory> ();
                npcm.beenAttacked = true;
                npcm.seenSuspect  = true;
                npcm.objectThatMadeMeSuspisious = CommonObjectsStore.player;
                npcm.raiseAlarm = true;
                npcb.alarmed    = true;
                CrimeRecordScript.me.addCrime(new Crime(crimeTypes.carTheft, true));
            }

            myRoadFollower.hasDriver = false;
        }

        if (ID == -1)
        {
            ID = IDManager.me.getID();
        }
        this.gameObject.layer = 29;
    }
Exemple #6
0
    public void deserializeNPC(string data)//need to add way of deserializing when the NPC is used, maybe when adding to the manager get it to check if they have existing data to read from.
    {
        string[]                split        = data.Split(':');
        NPCController           myController = this.gameObject.GetComponent <NPCController>();
        NPCBehaviourDecider     npcb         = this.gameObject.GetComponent <NPCBehaviourDecider>();
        Inventory               i            = this.gameObject.GetComponent <Inventory>();
        PersonClothesController pcc          = this.gameObject.GetComponent <PersonClothesController>();

        if (split[0] == "dead")
        {
            dead                    = true;
            hourOfMurder            = int.Parse(split[1]);
            dayOfMurder             = int.Parse(split[2]);
            monthOfMurder           = int.Parse(split[3]);
            yearOfMurder            = int.Parse(split[4]);
            this.transform.position = LoadingDataStore.me.parseVector(split[5]);

            for (int x = 6; x < split.Length; x++)
            {
                if (pcc.clothesToWearAtStart.Contains(split[x]) == false)
                {
                    GameObject g = LoadingDataStore.me.deserialiseItem(split[x]);
                    if (g == null)
                    {
                        continue;
                    }
                    g.transform.position = this.transform.position;
                    i.addItemToInventory(g.GetComponent <Item>());
                }
            }
        }
        else if (split[0] == "hostile")
        {
            madeHostileToPlayer = true;
            for (int x = 1; x < split.Length; x++)
            {
                if (pcc.clothesToWearAtStart.Contains(split[x]) == false)
                {
                    GameObject g = LoadingDataStore.me.deserialiseItem(split[x]);
                    if (g == null)
                    {
                        continue;
                    }
                    g.transform.position = this.transform.position;
                    i.addItemToInventory(g.GetComponent <Item>());
                }
            }
        }
        else if (split[0] == "nonHostile")
        {
            madeHostileToPlayer = false;
            for (int x = 1; x < split.Length; x++)
            {
                if (pcc.clothesToWearAtStart.Contains(split[x]) == false)
                {
                    GameObject g = LoadingDataStore.me.deserialiseItem(split[x]);
                    if (g == null)
                    {
                        continue;
                    }
                    g.transform.position = this.transform.position;
                    i.addItemToInventory(g.GetComponent <Item>());
                }
            }
        }
    }