Beispiel #1
0
    public void BuyItem(FurnitureObject sellObject, int itemSlotIndex, ref int gold)
    {
        int maxCount;

        try
        {
            maxCount = ( int )(gold / sellObject.SellItem[itemSlotIndex].SellPrice);
            maxCount = maxCount > sellObject.SellItem[itemSlotIndex].Count ? sellObject.SellItem[itemSlotIndex].Count : maxCount;
        }
        catch (DivideByZeroException e)
        {
            maxCount = sellObject.SellItem[itemSlotIndex].Count;
        }
        catch (NullReferenceException e)
        {
            Debug.Log("물건이 없슴메 ㅠㅠ");
            return;
        }

        sellObject.SellItem[itemSlotIndex].Count -= maxCount;
        manager.GamePlayer.Gold += sellObject.SellItem[itemSlotIndex].SellPrice * maxCount;
        gold -= sellObject.SellItem[itemSlotIndex].SellPrice * maxCount;

        rankProfitCount += maxCount;
        rankProfitMoney += sellObject.SellItem[itemSlotIndex].SellPrice * maxCount;

        if (sellObject.SellItem[itemSlotIndex].Count <= 0)
        {
            sellObject.SellItem[itemSlotIndex] = null;
        }
    }
        private void treeViewCategory_SelectedItemChanged(object sender, RoutedPropertyChangedEventArgs <object> e)
        {
            TreeViewItem selectedTreeViewItem = treeViewCategory.SelectedItem as TreeViewItem;

            if (treeViewCategory.Items.Count > 0 && selectedTreeViewItem != null)
            {
                FurnitureObject currentObject = (selectedTreeViewItem.Header as ExtendedTreeViewItem).Tag as FurnitureObject;
                if (currentObject != null)
                {
                    SelectedObject = currentObject.GetInnerObject();
                    selectedObjectMaterials.Clear();
                    selectedObjectMaterials.AddRange(currentObject.GetInnerObject().GetMaterials());
                    SelectedObject.Name         = currentObject.Name;
                    SelectedObject.InitialPrice = currentObject.InitialPrice;
                    if (SelectedObject != null)
                    {
                        //InitializeSelectedObjectMaterials();
                        groupBoxObj.Visibility    = Visibility.Visible;
                        groupBoxPrices.Visibility = Visibility.Visible;
                        InitializeMaterials();
                        selectedObjectInitialPrice = currentObject.InitialPrice;
                        InitializePrices();
                        InitializeDimensions();
                        checkBoxIsSuspendable.IsChecked = false;
                        textBoxChosenHeight.Text        = "";
                    }
                }
                else
                {
                    groupBoxPrices.Visibility = Visibility.Collapsed;
                }
            }
        }
Beispiel #3
0
        private void treeViewCategories_Selected(object sender, RoutedEventArgs e)
        {
            const string iconsCategoryDirectory = @"Icons\IconsCategory";

            lastSelectedTreeViewItem = selectedTreeViewItem;
            lastSelectedItemType     = selectedItemType;
            selectedTreeViewItem     = e.OriginalSource as TreeViewItem;
            if (selectedTreeViewItem.Tag is Category <FurnitureObject> )
            {
                selectedItemType = LastSelectedItemType.Category;
                Category <FurnitureObject> currentCategory = selectedTreeViewItem.Tag as Category <FurnitureObject>;
                AddCategory addCategory = new AddCategory(currentCategory.Name, currentCategory, true, false, System.IO.Path.GetFullPath(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"..\..\", iconsCategoryDirectory)));
                Grid        grid        = new Grid();
                grid.Children.Add(addCategory);
                groupBoxRightSide.Content = grid;
            }
            else
            {
                if (selectedTreeViewItem.Tag is FurnitureObject)
                {
                    selectedItemType = LastSelectedItemType.FurnitureObject;
                    FurnitureObject currentObject  = selectedTreeViewItem.Tag as FurnitureObject;
                    double          tradeAllowance = ((selectedTreeViewItem.Parent as TreeViewItem).Tag as Category <FurnitureObject>).TradeAllowance;
                    ImportObject    importObject   = new ImportObject("Object", currentObject, configuration.Materials, true, false, tradeAllowance);
                    importObject.StatusUpdated += importObject_StatusUpdated;
                    Grid grid = new Grid();
                    grid.Children.Add(importObject);
                    groupBoxRightSide.Content = grid;
                }
            }
        }
    // customzing store object
    public void CustomzingFurnitureObject()
    {
        if (!mainUI.CustomizeUI.activeSelf)
        {
            return;
        }

        // reload ray
        ray = Camera.main.ScreenPointToRay(Input.mousePosition);

        // set up furniture object => when mouse button right click
        if (Input.GetButtonDown("LeftClick") && (presentSelectedObject == null))
        {
            // cast & check furniture object -> if exist -> set present object
            if (Physics.Raycast(ray, out hitInfo, Mathf.Infinity, 1 << LayerMask.NameToLayer("Furniture")))
            {
                // object allocate mode -> move mode
                GameObject tempSearch = hitInfo.collider.gameObject;
                presentSelectedObject = tempSearch.GetComponent <FurnitureObject>();
                presentSelectedObject.AllocateMode = true;
            }
        }        /*
                  * // present object is fleid move object -> cast store field
                  * else if( presentAllocateObject != null && presentAllocateObject.InstanceData.Furniture.Allocate == FurnitureData.AllocateType.Field )
                  * {
                  *     // make cast point ( field furniture & store Field )
                  *     if( Physics.Raycast( ray, out hitInfo, Mathf.Infinity, 1 << LayerMask.NameToLayer( "StoreField" ) ) )
                  *     {
                  *             // position change
                  *             presentAllocateObject.ChangeObjectPosition( hitInfo.point, planeScale );
                  *     }
                  * }
                  * // present object is wall move object -> cast store wall
                  * else if( presentAllocateObject != null && presentAllocateObject.InstanceData.Furniture.Allocate == FurnitureData.AllocateType.Wall )
                  * {
                  *     // set layer -> StoreWallLeft & StoreWallRight
                  *     int layer = 1 << LayerMask.NameToLayer( "StoreWallLeft" );
                  *     layer |= 1 << LayerMask.NameToLayer( "StoreWallRight" );
                  *
                  *     // make cast point ( wall furniture & store wall)
                  *     if( Physics.Raycast( ray, out hitInfo, Mathf.Infinity, layer ) )
                  *     {
                  *             // position change
                  *             presentAllocateObject.ChangeObjectPosition( hitInfo.point, planeScale );
                  *
                  *             // set rotation by direction
                  *             if( hitInfo.collider.gameObject.layer == LayerMask.NameToLayer( "StoreWallLeft" ) )
                  *                     presentAllocateObject.ChangeObjectRotation( "WallLeft" );
                  *             else if( hitInfo.collider.gameObject.layer == LayerMask.NameToLayer( "StoreWallRight" ) )
                  *                     presentAllocateObject.ChangeObjectRotation( "WallRight" );
                  *     }
                  * }
                  */
    }
    // confirm allocate object
    public void ConfirmMoveFurnitureObject()
    {
        presentSelectedObject.CheckAllocatePossible();

        // allocate possible
        if (presentSelectedObject.AllocatePossible)
        {
            // set allocate mode false
            presentSelectedObject.AllocateMode = false;

            // clear present object
            presentSelectedObject = null;
        }
    }
 // on trigger enter -> check stay move
 void OnTriggerStay(Collider col)
 {
     if ((targetObject != null) && (col.gameObject == targetObject.gameObject) && (presentSequence == Sequence.GoToCreate))
     {
         moveAgent.ResetPath();
         presentSequence = Sequence.Ready;
         targetObject    = null;
         mainUI.CreateUI.SetActive(true);
         mainUI.CreateUILogic.SetComponentElement();
     }
     else if ((targetObject != null) && (col.gameObject == targetObject.gameObject) && (presentSequence == Sequence.GoToSet))
     {
         moveAgent.ResetPath();
         presentSequence = Sequence.Ready;
         targetObject    = null;
     }
 }
Beispiel #7
0
    // stage pre process
    // set item price & count
    public void StagePreprocessPolicy()
    {
        // ray cast set furniture target
        ray = Camera.main.ScreenPointToRay(Input.mousePosition);

        // target function type -> create : use create ui(object type)
        // target function type -> storage : use storage ui(object type)
        if (Input.GetButtonDown("LeftClick") && !EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId))
        {
            if (Physics.Raycast(ray, out hitInfo, Mathf.Infinity, 1 << LayerMask.NameToLayer("Furniture")))
            {
                GameObject tempSearch = hitInfo.collider.gameObject;
                presentSelectedFurniture = tempSearch.GetComponent <FurnitureObject>();

                if (presentSelectedFurniture.InstanceData.Furniture.Function == FurnitureData.FunctionType.SellObject)
                {
                    mainUI.ActivateSellItemSettingUI();
                }
            }
        }
    }
Beispiel #8
0
        private void importObject_StatusUpdated(object sender, EventArgs e)
        {
            ImportObject    importObject   = sender as ImportObject;
            FurnitureObject importedObject = importObject.GetImportedObject();

            if ((sender as ImportObject).IsEdited)
            {
                selectedTreeViewItem.Tag = importedObject;
                SaveCategories();
                InitializeTreeViewCategories();
                TreeViewItem parent = selectedTreeViewItem.Parent as TreeViewItem;
                if (parent != null)
                {
                    parent.IsExpanded = true;
                }
                groupBoxRightSide.Content = null;
            }
            else
            {
                ExtendedTreeViewItem extendedItem = new ExtendedTreeViewItem(importedObject.DefaultIconPath, importedObject.Name, importedObject.FullPath);
                TreeViewItem         item         = new TreeViewItem();
                item.Tag    = importedObject;
                item.Header = extendedItem;
                if (selectedTreeViewItem != null)
                {
                    selectedTreeViewItem.Items.Add(item);
                    Category <FurnitureObject> currentCategory = selectedTreeViewItem.Tag as Category <FurnitureObject>;
                    currentCategory.StoredObjects.Add(importedObject);
                    SaveCategories();
                }
                if (importObject.ExistingImportedMaterials == true)
                {
                    configuration.Materials = importObject.GetMaterials();
                    InitializeTreeViewMaterials();
                    groupBoxPreviewMaterial.Content = null;
                }
            }
        }
    // allocate start
    public void AllocateStartFurnitureInstance(int index, int presentStepIndex)
    {
        if (presentSelectedObject != null)
        {
            return;
        }

        if (manager.GamePlayer.AllocateFurnitureInstance(index, presentStepIndex))
        {
            // create object
            GameObject temp = ( GameObject )Instantiate(Resources.Load <GameObject>("StoreObject/FurnitureObject/" + manager.GamePlayer.AllocateFurnitureSet[manager.GamePlayer.AllocateFurnitureSet.Count - 1].Furniture.File),
                                                        new Vector3(planeScale / 2f, 0f, planeScale / 2f),
                                                        Quaternion.identity);
            presentSelectedObject = temp.GetComponent <FurnitureObject>();
            presentSelectedObject.InstanceData = manager.GamePlayer.AllocateFurnitureSet[manager.GamePlayer.AllocateFurnitureSet.Count - 1];
            presentSelectedObject.LinkComponentElement();
            presentSelectedObject.AllocateMode = true;
            presentSelectedObject.CheckAllocatePossible();

            // link player data & object
            manager.GamePlayer.AllocateFurnitureObjectSet.Add(presentSelectedObject);
        }
    }
Beispiel #10
0
 public void SaveCategoryItem(Category <FurnitureObject> category, TreeViewItem item)
 {
     category.SubCategories.Clear();
     category.StoredObjects.Clear();
     for (int i = 0; i < item.Items.Count; i++)
     {
         TreeViewItem successorItem = item.Items[i] as TreeViewItem;
         Category <FurnitureObject> successorCategory = successorItem.Tag as Category <FurnitureObject>;
         if (successorCategory != null)
         {
             SaveCategoryItem(successorCategory, successorItem);
             category.SubCategories.Add(successorCategory);
         }
         else
         {
             FurnitureObject furnitureObject = successorItem.Tag as FurnitureObject;
             if (furnitureObject != null)
             {
                 category.StoredObjects.Add(furnitureObject);
             }
         }
     }
 }
Beispiel #11
0
        public ImportObject(String title, FurnitureObject importedObject, List <Category <Material> > materials, bool isReadOnly, bool isEdited,
                            double currentTradeAllowance)
        {
            InitializeComponent();
            mainGroupBox.Header              = title;
            this.IsEdited                    = isEdited;
            this.materials                   = materials;
            this.currentObjectMaterials      = new List <WorldObjectMaterial>();
            this.currentTradeAllowance       = currentTradeAllowance;
            groupBoxPreviewObject.Visibility = Visibility.Visible;
            if (isReadOnly)
            {
                textBoxName.IsReadOnly         = true;
                textBoxDescription.IsReadOnly  = true;
                textBoxInitialPrice.IsReadOnly = true;
                btnCancel.IsEnabled            = false;
                btnLoadObject.IsEnabled        = false;
                btnOK.IsEnabled             = false;
                listViewMaterials.IsEnabled = false;

                stackPanelTotalPrice.Visibility = Visibility.Visible;
            }
            if (importedObject != null)
            {
                this.importedObject = importedObject;
                InitializeCurrentObject();
                InitializeMaterials();
                stackPanelTotalPrice.Visibility = Visibility.Visible;
            }
            else
            {
                this.importedObject = new FurnitureObject();
            }

            CurrencyName = CurrencyHelper.GetCurrentCurrency().Name.ToString();
            ExistingImportedMaterials = false;
        }
Beispiel #12
0
        public void InitializeTreeViewItemCategories(TreeViewItem item)
        {
            Category <FurnitureObject> currentCategory = item.Tag as Category <FurnitureObject>;

            for (int i = 0; i < currentCategory.SubCategories.Count; i++)
            {
                ExtendedTreeViewItem extendedItem  = new ExtendedTreeViewItem(currentCategory.SubCategories[i].Path, currentCategory.SubCategories[i].Name, "");
                TreeViewItem         successorItem = new TreeViewItem();
                successorItem.Tag    = currentCategory.SubCategories[i];
                successorItem.Header = extendedItem;
                InitializeTreeViewItemCategories(successorItem);
                item.Items.Add(successorItem);
            }

            for (int i = 0; i < currentCategory.StoredObjects.Count; i++)
            {
                FurnitureObject      currentObject = currentCategory.StoredObjects[i];
                ExtendedTreeViewItem extendedItem  = new ExtendedTreeViewItem(currentObject.DefaultIconPath, currentObject.Name, currentObject.FullPath);
                TreeViewItem         objectItem    = new TreeViewItem();
                objectItem.Tag    = currentObject;
                objectItem.Header = extendedItem;
                item.Items.Add(objectItem);
            }
        }
Beispiel #13
0
    // search item
    public void SequenceProcessSearchTarget()
    {
        // set random index & point
        int randomIndex;

        randomPoint = new System.Random( );

        // check sell item set
        for (int i = 0; i < stageManager.SellFurnitureSet.Count; i++)
        {
            randomIndex = randomPoint.Next(0, stageManager.SellFurnitureSet.Count);
            // favorite item type
            for (int j = 0; j < stageManager.SellFurnitureSet[randomIndex].SellItem.Length; j++)
            {
                try
                {
                    if (favoriteItemType == stageManager.SellFurnitureSet[randomIndex].SellItem[j].Item.Type)
                    {
                        if ((stageManager.SellFurnitureSet[randomIndex].SellItem[j].SellPrice <= gold) && (stageManager.SellFurnitureSet[randomIndex].SellItem[j].SellPrice <= stageManager.SellFurnitureSet[randomIndex].SellItem[j].Item.Price * (calculatedBuyScale + 0.1f)))
                        {
                            targetObject    = stageManager.SellFurnitureSet[randomIndex];
                            itemIndex       = j;
                            presentSequence = Sequence.Buy;
                            return;
                        }
                        else
                        {
                            Debug.Log("this Item is so expensive");
                        }
                    }
                }
                catch (NullReferenceException e)
                {
                    //Debug.Log( "No item this slot" );
                }
            }
        }

        // reset ramdom point
        randomPoint = new System.Random( );

        // check sell item set
        for (int i = 0; i < stageManager.SellFurnitureSet.Count; i++)
        {
            randomIndex = randomPoint.Next(0, stageManager.SellFurnitureSet.Count);

            // normal item type
            for (int j = 0; j < stageManager.SellFurnitureSet[randomIndex].SellItem.Length; j++)
            {
                try
                {
                    if ((stageManager.SellFurnitureSet[randomIndex].SellItem[j].SellPrice <= gold) && (stageManager.SellFurnitureSet[randomIndex].SellItem[j].SellPrice <= stageManager.SellFurnitureSet[randomIndex].SellItem[j].Item.Price * (calculatedBuyScale)))
                    {
                        targetObject    = stageManager.SellFurnitureSet[randomIndex];
                        itemIndex       = j;
                        presentSequence = Sequence.Buy;
                        return;
                    }
                    else
                    {
                        Debug.Log("this Item is so expensive");
                    }
                }
                catch (NullReferenceException e)
                {
                    //Debug.Log( "No item this slot" );
                }
            }
        }

        // set no item opinion
        if (!alreadyBuyItems)
        {
            ;
        }
        else
        {
            Debug.Log("No Items : " + name);
        }

        moveTarget      = worldBoundary[UnityEngine.Random.Range(0, worldBoundary.Length)];
        presentSequence = Sequence.GoToHome;
    }
 // custimize section
 // set customizing mode
 public void SetCustomizing()
 {
     IsCustomizing         = true;
     presentSelectedObject = null;
 }
 // set create form
 public void SetCreateMode()
 {
     presentSequence = Sequence.GoToCreate;
     targetObject    = storeManager.PresentSelectedObject;
 }
Beispiel #16
0
        private void extendedMenuItemEdit_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            const string iconsMaterialDirectory = @"Icons\IconsMaterialCategory";
            const string iconsCategoryDirectory = @"Icons\IconsCategory";
            TabItem      item = mainTabControl.SelectedItem as TabItem;

            if (item != null)
            {
                if (item.Header.ToString() == "Company")
                {
                    companyInformation.UnsetReadOnlyFields();
                    companyInformation.isEdited = true;
                    return;
                }
            }
            if (selectedItemType == LastSelectedItemType.Category)
            {
                Category <FurnitureObject> currentCategory = selectedTreeViewItem.Tag as Category <FurnitureObject>;
                AddCategory addCategory = new AddCategory("Edit Category", currentCategory, false, true, System.IO.Path.GetFullPath(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"..\..\", iconsCategoryDirectory)));
                addCategory.StatusUpdated += addCategory_StatusUpdated;
                Grid grid = new Grid();
                grid.Children.Add(addCategory);
                groupBoxRightSide.Content = grid;
            }
            else
            {
                if (selectedItemType == LastSelectedItemType.FurnitureObject)
                {
                    //electedItemType = LastSelectedItemType.FurnitureObject;
                    FurnitureObject currentObject  = selectedTreeViewItem.Tag as FurnitureObject;
                    double          tradeAllowance = ((selectedTreeViewItem.Parent as TreeViewItem).Tag as Category <FurnitureObject>).TradeAllowance;
                    ImportObject    importObject   = new ImportObject("Import Object", currentObject, configuration.Materials, false, true, tradeAllowance);
                    importObject.StatusUpdated += importObject_StatusUpdated;
                    importObject.ImportMaterialStatusUpdated += importObject_ImportMaterialStatusUpdated;
                    Grid grid = new Grid();
                    grid.Children.Add(importObject);
                    groupBoxRightSide.Content = grid;
                }
                else
                {
                    if (selectedItemType == LastSelectedItemType.CategoryMaterial)
                    {
                        Category <Material> currentMaterialCategory = selectedTreeViewItem.Tag as Category <Material>;
                        AddMaterialCategory addMaterialCategory     = new AddMaterialCategory("Edit Material Category", currentMaterialCategory, false, true, System.IO.Path.GetFullPath(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"..\..\", iconsMaterialDirectory)));
                        addMaterialCategory.StatusUpdated += addMaterialCategory_StatusUpdated;
                        Grid grid = new Grid();
                        grid.Children.Add(addMaterialCategory);
                        groupBoxPreviewMaterial.Content = grid;
                    }
                    else
                    {
                        Material       currentMaterial = selectedTreeViewItem.Tag as Material;
                        ImportMaterial importMaterial  = new ImportMaterial("Import Material", currentMaterial, false, true, false);
                        importMaterial.StatusUpdated += importMaterial_StatusUpdated;
                        Grid grid = new Grid();
                        grid.Children.Add(importMaterial);
                        groupBoxPreviewMaterial.Content = grid;
                    }
                }
            }
        }