Esempio n. 1
0
 void Awake()
 {
     _researchingSlot     = ResearchSlot.Instance();
     _tooltip             = Tooltip.Instance();
     _GUIManager          = GUIManager.Instance();
     _characterManager    = CharacterManager.Instance();
     _messagePanelHandler = MessagePanelHandler.Instance();
 }
Esempio n. 2
0
 private void ConsumeResearch(ResearchSlot draggedResearch)
 {
     if (draggedResearch.TargetResearch == null)
     {
         return;
     }
     _characterManager.CharacterSettingApplyResearch(draggedResearch.TargetResearch, draggedResearch.Level);
 }
Esempio n. 3
0
 public static ResearchSlot Instance()
 {
     if (!_researchingSlot)
     {
         _researchingSlot = FindObjectOfType(typeof(ResearchSlot)) as ResearchSlot;
         if (!_researchingSlot)
         {
             Debug.LogError("There needs to be one active ItemMixture script on a GameObject in your scene.");
         }
     }
     return(_researchingSlot);
 }
Esempio n. 4
0
 public void GoToResearchScene()
 {
     _researchingSlot = ResearchSlot.Instance();
     if (!_researchingSlot.ItemLocked)
     {
         if (_researchingSlot.IsEmpty())
         {
             BuildTrainStarter();
             SceneManager.LoadScene(SceneSettings.SceneIdForResearch);
         }
     }
 }
Esempio n. 5
0
    public void OnDrop(PointerEventData eventData)
    {
        ItemData     draggedItem     = eventData.pointerDrag.GetComponent <ItemData>();
        ResearchSlot draggedResearch = eventData.pointerDrag.GetComponent <ResearchSlot>();

        if (draggedItem == null && draggedResearch == null)
        {
            return;
        }
        if (draggedResearch != null)
        {
            if (draggedResearch.ReadyToUse())
            {
                ResearchSlot researchingSlot = ResearchSlot.Instance();
                ConsumeResearch(draggedResearch);
                researchingSlot.LoadEmpty();
            }
            return;
        }
        ConsumeItem(draggedItem);
    }
Esempio n. 6
0
        public override void OnInitialize()
        {
            visible = false;

            panel = new DragableUIPanel();
            panel.BackgroundColor = Color.CornflowerBlue;
            panel.BorderColor     = Color.White;

            panel.Top.Set(Main.screenHeight / 2 - 150, 0);
            panel.Left.Set(Main.screenWidth / 2 - 300, 0);
            panel.Width.Set(600, 0);
            panel.Height.Set(300, 0);
            panel.MinWidth.Set(600, 0);
            panel.MinHeight.Set(300, 0);
            panel.MaxWidth.Set(1920, 0);
            panel.MaxHeight.Set(1080, 0);

            destroySlot = new ResearchSlot(new Item());
            destroySlot.Top.Set(0, 0);
            destroySlot.Left.Set(0, 0);
            panel.Append(destroySlot);

            totalText = new UIText("", 0.75f);
            totalText.Top.Set(0, 0f);
            totalText.Left.Set(0, 0f);
            panel.Append(totalText);

            search = new SearchUITextBox();
            search.Top.Set(0, 0);
            search.Left.Set(destroySlot.Width.Pixels + destroySlot.MarginLeft + destroySlot.MarginRight + 112, 0);
            search.Width.Set(panel.GetInnerDimensions().Width - (destroySlot.Width.Pixels + destroySlot.MarginLeft + destroySlot.MarginRight + 12), 0);
            search.Height.Set(destroySlot.GetInnerDimensions().Height / 2, 0);
            search.OnTextChanged += () => setVisible(true);
            panel.Append(search);

            destroyButton = new ResearchButton();
            destroyButton.BackgroundColor = Color.Blue;
            destroyButton.Top.Set(search.Top.Pixels + search.Height.Pixels + 2, 0);
            destroyButton.Left.Set(destroySlot.Width.Pixels + 12, 0);
            destroyButton.Height.Set(destroySlot.GetInnerDimensions().Height / 2, 0);
            destroyButton.Width.Set(search.Width.Pixels / 6, 0);

            panel.Append(destroyButton);

            tooltipSearch = new TooltipSearchButton();
            tooltipSearch.BackgroundColor = Color.Blue;
            tooltipSearch.Top.Set(search.Top.Pixels + search.Height.Pixels + 2, 0);
            tooltipSearch.Left.Set(destroyButton.Left.Pixels + destroyButton.Width.Pixels + 24, 0);
            tooltipSearch.Height.Set(destroySlot.GetInnerDimensions().Height / 2, 0);
            tooltipSearch.Width.Set(search.Width.Pixels / 6, 0);

            panel.Append(tooltipSearch);

            clearText = new ClearTextButton(search);
            clearText.BackgroundColor = Color.Blue;
            clearText.Top.Set(search.Top.Pixels + search.Height.Pixels + 2, 0);
            clearText.Left.Set(tooltipSearch.Left.Pixels + tooltipSearch.Width.Pixels + 24, 0);
            clearText.Height.Set(destroySlot.GetInnerDimensions().Height / 2, 0);
            clearText.Width.Set(search.Width.Pixels / 6, 0);

            panel.Append(clearText);

            closeButton = new CloseButton();
            closeButton.Top.Set(search.Top.Pixels + search.Height.Pixels + 2, 0);
            closeButton.Left.Set(panel.GetInnerDimensions().Width - 20, 0);
            panel.Append(closeButton);

            categories = new PathTreePanel();
            categories.Top.Set(destroySlot.Height.Pixels + 32, 0);
            categories.Left.Set(0, 0);
            categories.Width.Set(panel.GetInnerDimensions().Width / 3 - 4, 0);
            categories.Height.Set(panel.GetInnerDimensions().Height - categories.Top.Pixels, 0);
            panel.Append(categories);

            recipes = new RecipePanel(this);
            recipes.Top.Set(destroySlot.Height.Pixels + 12, 0);
            recipes.Left.Set(panel.Width.Pixels / 3, 0);
            recipes.Width.Set(panel.GetInnerDimensions().Width * 2 / 3, 0);
            recipes.Height.Set(panel.GetInnerDimensions().Height - (recipes.Top.Pixels + 32), 0);
            panel.Append(recipes);

            Append(panel);
        }
Esempio n. 7
0
    // Use this for initialization
    void Start()
    {
        Debug.Log("***IH*** Start!");
        //Instance
        _inv              = InventoryHandler.Instance();
        _itemDatabase     = ItemDatabase.Instance();
        _characterManager = CharacterManager.Instance();
        _inventoryManager = InventoryManager.Instance();
        _itemMixture      = ItemMixture.Instance();
        _researchingSlot  = ResearchSlot.Instance();
        _GUIManager       = GUIManager.Instance();

        _inventoryPanel = GameObject.Find("Inventory Panel");
        _slotPanel      = _inventoryPanel.transform.Find("Slot Panel").gameObject;

        _inventorySlotBroken = Resources.Load <GameObject>("Prefabs/SlotInventoryBroken");
        _inventorySlot       = Resources.Load <GameObject>("Prefabs/SlotInventory");
        _inventoryItem       = Resources.Load <GameObject>("Prefabs/Item");

        //Disable All buttons inside building
        var insideBuilding = GameObject.Find("Building Interior");

        if (insideBuilding != null)
        {
            _inTerrain = false;
            GameObject.Find("ButtonShop").GetComponent <Button>().interactable    = false;
            GameObject.Find("ButtonSetting").GetComponent <Button>().interactable = false;
            GameObject.Find("ButtonAbout").GetComponent <Button>().interactable   = false;
            GameObject.Find("Item Mixture").GetComponent <Button>().interactable  = false;
            GameObject.Find("Research Slot").GetComponent <Button>().interactable = false;
            GameObject.Find("PlayerPic").GetComponent <Button>().interactable     = false;
            GameObject.Find("CharacterPic").GetComponent <Button>().interactable  = false;
        }
        _playerSlots   = _characterManager.CharacterSetting.CarryCnt;
        _userInventory = _inventoryManager.UserInvItems;
        //Debug.Log("IH-UserInventory.Count = " + _userInventory.Count);
        //foreach (var item in _userInventory) item.Print();
        //Equipment
        EquiSlots = _inventoryPanel.GetComponentsInChildren <SlotEquipment>();
        for (int i = 0; i < EquiSlots.Length; i++)
        {
            EquiSlots[i].name = "Slot " + EquiSlots[i].EquType;
            EquiSlots[i].GetComponentInChildren <TextMeshProUGUI>().text = EquiSlots[i].EquType.ToString();
            ItemEquipment equipmentItem = EquiSlots[i].GetComponentInChildren <ItemEquipment>();
            equipmentItem.ItemIns = null;
            equipmentItem.name    = "Empty";
            foreach (var equipmentIns in _userInventory)
            {
                if (!equipmentIns.UserItem.Equipped)
                {
                    continue;
                }
                if (((equipmentIns.Item.Type == ItemContainer.ItemType.Weapon || equipmentIns.Item.Type == ItemContainer.ItemType.Tool)
                     &&
                     ((EquiSlots[i].EquType == ItemContainer.PlaceType.Right && equipmentIns.UserItem.Order == (int)ItemContainer.PlaceType.Right) ||
                      (EquiSlots[i].EquType == ItemContainer.PlaceType.Left && equipmentIns.UserItem.Order == (int)ItemContainer.PlaceType.Left)))
                    ||
                    (equipmentIns.Item.PlaceHolder == EquiSlots[i].EquType && equipmentIns.Item.Type == ItemContainer.ItemType.Equipment)
                    )
                {
                    equipmentItem.ItemIns = equipmentIns;
                    equipmentItem.name    = equipmentIns.Item.Name;
                    equipmentItem.GetComponent <Image>().sprite = equipmentIns.Item.GetSprite();
                    break;
                }
            }
        }
        //Item Mixture
        InitMixture(_characterManager.CharacterMixture);
        //Researching
        InitResearching(_characterManager.CharacterResearching);
        //Inventory
        for (int i = 0; i < _slotAmount; i++)
        {
            if (i < _playerSlots)
            {
                InvSlots.Add(Instantiate(_inventorySlot));
                InvSlots[i].GetComponent <SlotData>().SlotIndex = i;
            }
            else
            {
                InvSlots.Add(Instantiate(_inventorySlotBroken));
            }
            InvSlots[i].transform.SetParent(_slotPanel.transform);
            if (i < _playerSlots)
            {
                GameObject itemObject = Instantiate(_inventoryItem);
                ItemData   data       = itemObject.GetComponent <ItemData>();
                itemObject.transform.SetParent(InvSlots[i].transform);
                data.SlotIndex = i;

                foreach (var itemIns in _userInventory)
                {
                    if (itemIns.UserItem.Equipped || itemIns.UserItem.Stored)
                    {
                        continue;
                    }
                    if (itemIns.UserItem.Order == i)
                    {
                        data.ItemIns = itemIns;
                        itemObject.transform.position = Vector2.zero;
                        InvSlots[i].name = itemObject.name = itemIns.Item.Name;
                        itemObject.GetComponent <Image>().sprite = itemIns.Item.GetSprite();
                        itemObject.transform.GetChild(0).GetComponent <TextMeshProUGUI>().text = itemIns.UserItem.StackCnt > 1 ? itemIns.UserItem.ToString() : "";
                        break;
                    }
                }
            }
            else
            {
                if (i == _playerSlots)
                {
                    Button button = InvSlots[i].GetComponentInChildren <Button>();
                    button.GetComponent <Image>().sprite = LockSprite;
                    InvSlots[i].name = button.name = "Lock";
                    if (_inTerrain)
                    {
                        button.interactable = true;
                    }
                }
            }
            InvSlots[i].transform.localScale = Vector3.one;
        }
        _inventoryManager.PrintInventory();
    }