public void OnConfigure() { if (_basicItemTemplates.Count == 0) { //przedmioty ogolnie XmlDataInfo itemsInfo = Utils.LoadXmlAssetFile("data/items", "items"); if (itemsInfo != null) { foreach (XElement element in itemsInfo.MainNodeElements) { ItemDataAddon newItem = new ItemDataAddon(); newItem.LoadData(itemsInfo, element); _basicItemTemplates.Add(newItem.Type, newItem); } } } if (_weaponTemplates.Count == 0) { //bronie XmlDataInfo weaponsInfo = Utils.LoadXmlAssetFile("data/weapons", "weapons"); if (weaponsInfo != null) { foreach (XElement element in weaponsInfo.MainNodeElements) { WeaponDataAddon newItem = new WeaponDataAddon(); newItem.LoadData(weaponsInfo, element); _weaponTemplates.Add(newItem.Type, newItem); } } //desctructibles XmlDataInfo destrInfo = Utils.LoadXmlAssetFile("data/destructibles", "destructibles"); if (destrInfo != null) { foreach (XElement element in destrInfo.MainNodeElements) { BaseDataAddon newItem = new BaseDataAddon(); newItem.LoadData(destrInfo, element); _destructibles.Add(newItem.Type, newItem); } } } if (_enemyTemplates.Count == 0) { //wrogowie XmlDataInfo enemyInfo = Utils.LoadXmlAssetFile("data/enemies", "enemies"); if (enemyInfo != null) { foreach (XElement element in enemyInfo.MainNodeElements) { BaseDataAddon nowyEnemyInfo = new BaseDataAddon(); nowyEnemyInfo.LoadData(enemyInfo, element); _enemyTemplates.Add(nowyEnemyInfo.Type, nowyEnemyInfo); } } } }
//usuwa wybrany przedmiot w zwiazku z rzuceniem go jako broń rzucaną public void RemoveItemAfterThrow() { ItemDataAddon it = FPPGameModuleManager.Instance.TheInventory.ActiveItem; if (it != null) { FPPGameModuleManager.Instance.TheInventory.RemoveItem(it); RefreshAll(); } }
//Dodaje przedmiot do plecaka na pierwsze wolne miejsce albo na miejsce _wybranyPanel jesli brak wolnych miejsc public void Add(SceneItem addedItem) { ItemDataAddon newItem = (ItemDataAddon)addedItem.GetComponent <PrefabTemplate>().DataObjects.GetDataAddon("items"); FPPGameModuleManager.Instance.TheInventory.Add(newItem); ActiveObjectsManager.Instance.RemoveActiveObject(addedItem.GetComponent <ActiveObject>()); addedItem.StartPickingUp(); RefreshAll(); }
public void OnConfigureObjectRequest(SceneObjects.PrefabTemplate ao) { ItemDataAddon itemData = FindItem(ao.Type); if (itemData != null) { ao.DataObjects.AddDataAddon("items", itemData); if (ao.gameObject.GetComponent <SceneItem>() == null) { ao.gameObject.AddComponent <SceneItem>(); } ao.gameObject.GetComponent <SceneItem>().OnConfigure(); } BaseDataAddon destrData = FindDestructible(ao.Type); if (destrData != null) { ao.DataObjects.AddDataAddon("destructibles", destrData); if (ao.gameObject.GetComponent <SceneDestructible>() == null) { ao.gameObject.AddComponent <SceneDestructible>(); } ao.gameObject.GetComponent <SceneDestructible>().OnConfigure(); } BaseDataAddon weapData = FindWeapon(ao.Type); if (weapData != null) { ao.DataObjects.AddDataAddon("weapons", weapData); if (ao.gameObject.GetComponent <SceneWeapon>() == null) { ao.gameObject.AddComponent <SceneWeapon>(); } ao.gameObject.GetComponent <SceneWeapon>().OnConfigure(); SceneWeaponHitter[] wphs = ao.gameObject.GetComponentsInChildren <SceneWeaponHitter>(); foreach (SceneWeaponHitter swh in wphs) { swh.RealWeapon = ao.gameObject.GetComponent <SceneWeapon>(); } if (wphs.Length == 0) { ao.gameObject.AddComponent <SceneWeaponHitter>().RealWeapon = ao.gameObject.GetComponent <SceneWeapon>(); } } BaseDataAddon enemyData = FindEnemyData(ao.Type); if (enemyData != null) { ao.DataObjects.AddDataAddon("enemies", enemyData); //ao.gameObject.AddComponent<SceneNPC>(); } }
//uzywa przedmiot public void TryUseItem() { ItemDataAddon it = FPPGameModuleManager.Instance.TheInventory.ActiveItem; if (it != null && GameManager.Instance.IsModuleLoaded("Herbology")) { MedicalItemDataAddon medicalItem = HerbologyModuleManager.Instance.FindMedicalItem(it.Type); if (medicalItem != null) { CharactersModuleManager.Instance.ThePlayer.InternalPatient.AddTreatmentItem(medicalItem); SilentDestroyItem(it.Type); } } }
//usuwa aktualnie wybrany przedmiot wyrzucajac go na ziemie public void RemoveActiveItem() { ItemDataAddon it = FPPGameModuleManager.Instance.TheInventory.ActiveItem; if (it != null) { FPPGameModuleManager.Instance.TheInventory.RemoveItem(it); GameObject sceneItem = PrefabPool.Instance.GetPrefab(it.Type); sceneItem.GetComponent <ActiveObject>().ClearUsedObject(); ActiveObjectsManager.Instance.AddActiveObject(sceneItem.GetComponent <ActiveObject>()); sceneItem.GetComponent <SceneItem>().PrepareToThrowOut(); RefreshAll(); } }
public void PrepareForUseInHand(ItemDataAddon anItem) { if (GetComponent <Collider>() != null) { GetComponent <Collider>().enabled = true; } if (GetComponent <Rigidbody>() != null) { Destroy(GetComponent <Rigidbody>()); } SceneWeaponHitter[] hitters = gameObject.GetComponentsInChildren <SceneWeaponHitter>(true); foreach (SceneWeaponHitter hitter in hitters) { hitter.gameObject.SetActive(true); } ItemData = anItem; }
private void RefreshActive() { ItemDataAddon active = FPPGameModuleManager.Instance.TheInventory.ActiveItem; if (active == null) { ActiveSceneItem = null; } else { if (ActiveSceneItem == null || ActiveSceneItem.Type != active.Type) { ActiveSceneItem = PrefabPool.Instance.GetPrefab(active.Type).GetComponent <SceneItem>(); ActiveSceneItem.GetComponent <ActiveObject>().ClearUsedObject(); ActiveSceneItem.PrepareForUseInHand(active); } } }