public static void AddPresentToHistory(InventoryTile inventoryElementUsed) { for (int i = currentPointOfTime + 1; i < gridHistory.Count;) { gridHistory.RemoveAt(i); inventoryHistory.RemoveAt(i); } inventoryHistory.Add(inventoryElementUsed); gridHistory.Add(new List <GridChange>(gridPresent)); gridPresent.Clear(); currentPointOfTime = gridHistory.Count - 1; bUndo.interactable = true; bRedo.interactable = false; bClear.interactable = true; if (PuzzleManager.CheckIfCurrentCanBeSubmitted()) { bSubmit.interactable = true; //Debug.Log("PuzzleComplete!"); puzzleCompletePS.Play(); } else { bSubmit.interactable = false; } }
public static InventoryTile ConfirmRequest() { if (request == null) { return(null); } else { InventoryTile r = request; request = null; return(r); } }
public static bool RequestUse(Vector2 worldPos) { request = inventoryGrid.WorldPosToGrid(MainCamera.mousePos); if (request == null || !request.isAvailable) { request = null; return(false); } else if (request.UpdateAvailability(false)) { return(true); } else { return(false); } }
/// <summary> /// Executes an Action depending on the CurrentEquipped Item. (Build or use Weapon) /// </summary> internal void ProcessAction() { if (Attributes.IsAlive) { IInventoryItem currentItem = Attributes.CurrentEquippedItem; if (currentItem is InventoryTile) { InventoryTile inventoryTile = (InventoryTile)currentItem; PrefabTile tileToBuild = inventoryTile.Tile; if (resourceManager.ConstructionMaterialAvailable >= tileToBuild.BuildingCosts) { if (!tileController.TryAddTile(tileToBuild, transform.position)) { var fadeout = Instantiate(fadeoutTextPrefab, transform); fadeout.TextMesh.text = "#@!&$%"; fadeout.TextMesh.color = new Color(1.0f, 0.0f, 0.0f, 1); } // Consume should always work in this case, because we checked for available resources else if (!resourceManager.TryConsume(tileToBuild.BuildingCosts)) { Debug.LogError("Could not consume resources for building even though enough resources were available"); } else { // Success, create building var fadeout = Instantiate(fadeoutTextPrefab, transform); fadeout.TextMesh.text = $"-{(float)tileToBuild.BuildingCosts}"; fadeout.TextMesh.color = new Color(0.6392157F, 0.5019608F, 0.3892157F, 1.0F); } } else { var fadeout = Instantiate(fadeoutTextPrefab, transform); fadeout.TextMesh.text = "Not enought Resources!"; fadeout.TextMesh.color = new Color(1.0f, 0.0f, 0.0f, 1); } } else if (currentItem is InventoryWeapon) { InventoryWeapon inventoryWeapon = (InventoryWeapon)currentItem; inventoryWeapon.Weapon.GetComponent <IPlayerWeapon>().Fire(); } } }
public override void CreateGrid() { base.CreateGrid(); grid = new InventoryTile[gridTransforms.Length][]; for (int y = 0, i = 0; y < grid.Length; y++) { grid[y] = new InventoryTile[gridTransforms[y].Length]; for (int x = 0; x < grid[y].Length; x++, i++) { int elementID = -1; if (i < InventoryOS.elements.Length && InventoryOS.elements[i] != null) { elementID = InventoryOS.elements[i].id; } grid[y][x] = new InventoryTile(gridTransforms[y][x], new Vector2Int(x, y), elementID); } } }
/// <summary> /// Opens the Menu with the Inventory with the available Tiles and Weapons. /// </summary> internal void OpenInventory() { if (Attributes.IsAlive) { this.playerMovement.enabled = false; var itemList = new List <IInventoryItem>(); foreach (GameObject weapon in weapons) { Sprite sprite = weapon.GetComponent <SpriteRenderer>().sprite; IInventoryItem item = new InventoryWeapon(Instantiate(weapon, weaponCache.transform), sprite); itemList.Add(item); } foreach (PrefabTile tile in tiles) { IInventoryItem item = new InventoryTile(tile); itemList.Add(item); } this.inventory.EnableMenuView(itemList); this.inventory.EnableItemSelection(); } }
public void UnsetTile() { tile = null; }
public void SetTile(InventoryTile tile) { this.tile = tile; }
public static void CancelRequest() { request.UpdateAvailability(true); request = null; }