public override void equipItem() { PersonClothesController pcc = this.gameObject.GetComponentInParent <PersonClothesController> (); pcc.equipClothing(this); this.GetComponent <SpriteRenderer> ().enabled = false; this.gameObject.SetActive(false); }
void Awake() { if (this.gameObject.tag == "Player") { playerClothes = this; } aac = this.GetComponentInChildren <ArtemAestheticController> (); clothesBeingWorn = new List <ClothingItem> (); }
void Update() { if (CommonObjectsStore.player == null) { player = GameObject.FindGameObjectWithTag("Player"); pwc = player.GetComponent <PersonWeaponController> (); pm = player.GetComponent <PersonMovementController> (); pcc = player.GetComponent <PersonClothesController> (); } }
public override void unequipItem() { PersonClothesController pcc = this.gameObject.GetComponentInParent <PersonClothesController> (); if (pcc == null) { } else { pcc.removeClothing(this); } inUse = false; }
public void dropItem() { if (inUse == true) { unequipItem(); } PersonClothesController pcc = this.gameObject.GetComponentInParent <PersonClothesController> (); pcc.removeClothing(this); Inventory i = this.gameObject.GetComponentInParent <Inventory> (); i.dropItem(this); this.GetComponent <SpriteRenderer> ().enabled = true; }
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 Awake() { me = this; mainCam = Camera.main; player = GameObject.FindGameObjectWithTag("Player"); pwc = player.GetComponent <PersonWeaponController> (); pm = player.GetComponent <PersonMovementController> (); pcc = player.GetComponent <PersonClothesController> (); if (LoadingDataStore.me == null) { GameObject g = new GameObject(); g.name = "Load Data Store"; g.AddComponent <LoadingDataStore> (); } }
void Awake() { me = this; pcc = this.GetComponent <PersonClothesController> (); }
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(); }
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>()); } } } }