Exemple #1
0
 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();
        }
Exemple #4
0
        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();
            }
        }
Exemple #7
0
 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);
                }
            }
        }