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; } } }
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; } }
// 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(); } } } }
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); } }
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); } } } }
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; }
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); } }
// 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; }
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; } } } }