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> (); }
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; } }
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; }
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>()); } } } }