public DrillResult DrillTileAt(Pos pos, float damage) { var result = new DrillResult { pos = pos }; var blockType = mapInfo.GetBlockAt(pos); //Debug.Log("DrillTileAt - pos: " + pos + ", dmg: "+ damage + ", blockType: "+ blockType); if (blockType != BlockType.EMPTY) { if (!tileDrillDict.ContainsKey(pos)) { tileDrillDict.Add(pos, 3f); //TODO!!! Make tile-class/struct? Make data for start HP! } tileDrillDict[pos] -= damage; if (tileDrillDict[pos] <= 0) { result.pickups = PickupHelper.GeneratePickupData(blockType); result.removeTile = true; } } return(result); }
private ItemDataEntry[] FilterItems() { var entries = new List <ItemDataEntry>(); var itemNames = PickupHelper.GetAllItemNames(); for (int i = 0; i < itemNames.Length; i++) { ItemDataEntry item; if (PickupHelper.GetItemByName(itemNames[i], out item)) { switch (item.pickup.weaponType) { case Pickup.JGHOAEDPDBB.Weapon: if (itemShowWeapons) { entries.Add(item); } break; case Pickup.JGHOAEDPDBB.WeaponAttatchment: if (itemShowAttachments) { entries.Add(item); } break; case Pickup.JGHOAEDPDBB.Armor: if (itemShowArmor) { entries.Add(item); } break; default: if (itemShowOthers) { entries.Add(item); } break; } } } return(entries.ToArray()); }
private void DoItemWindow(int windowId) { var items = FilterItems(); var buttonSize = GUI.skin.button.CalcSize(new GUIContent("Item")); var pos = new Vector2(4, 18); var viewSize = new Vector2(itemWindowSize.x - margin.x - pos.x, items.Length * buttonSize.y); if (GUI.Button(new Rect( pos.x + margin.x, pos.y + margin.y, (itemWindowSize - pos).x / 2f, buttonSize.y), "Toggle Weapons")) { itemShowWeapons = !itemShowWeapons; } if (GUI.Button(new Rect( (itemWindowSize - pos).x / 2f + pos.x + margin.x, pos.y + margin.y, (itemWindowSize - pos).x / 2f, buttonSize.y), "Toggle Attachments")) { itemShowAttachments = !itemShowAttachments; } if (GUI.Button(new Rect( pos.x + margin.x, pos.y + margin.y + buttonSize.y + margin.y, (itemWindowSize - pos).x / 2f, buttonSize.y), "Toggle Armor")) { itemShowArmor = !itemShowArmor; } if (GUI.Button(new Rect( (itemWindowSize - pos).x / 2f + pos.x + margin.x, pos.y + margin.y + buttonSize.y + margin.y, (itemWindowSize - pos).x / 2f, buttonSize.y), "Toggle Others")) { itemShowOthers = !itemShowOthers; } var size = itemWindowSize - pos - margin - Vector2.up * (pos.y + margin.y + buttonSize.y + margin.y + buttonSize.y + margin.y); pos += Vector2.up * (buttonSize.y + margin.y + buttonSize.y + margin.y); //Scroll itemWindowScroll = GUI.BeginScrollView(new Rect(pos, size), itemWindowScroll, new Rect(pos, viewSize)); Array.Sort(items, (a, b) => a.pickup.name.CompareTo(b.pickup.name)); for (int i = 0; i < items.Length; i++) { var sprite = items[i].weaponIcon != null ? items[i].weaponIcon : items[i].icon; if (sprite != null) { float widthFactor = 1f, heightFactor = 1f; if (sprite.textureRect.width > sprite.textureRect.height) { heightFactor = sprite.textureRect.height / sprite.textureRect.width; } else if (sprite.textureRect.width < sprite.textureRect.height) { widthFactor = sprite.textureRect.width / sprite.textureRect.height; } var sprSize = new Vector2(buttonSize.y * widthFactor, buttonSize.y * heightFactor); var sprPos = new Vector2(pos.x + margin.x, pos.y + i * buttonSize.y); var slotSize = new Vector2(buttonSize.y, buttonSize.y); GUI.DrawTexture(new Rect( sprPos + slotSize / 2f - sprSize / 2f, sprSize), sprite.texture); } if (GUI.Button(new Rect( pos.x + margin.x * 2f + buttonSize.y, pos.y + i * buttonSize.y, viewSize.x - pos.x + margin.x - margin.x * 2 - buttonSize.y - GUI.skin.verticalScrollbar.fixedWidth, buttonSize.y), string.Format("{0} [{1}]", items[i].pickup.name, items[i].pickup.weaponType))) { PickupHelper.SpawnItem(items[i].pickup.m_itemIndex); } } GUI.EndScrollView(); GUI.DragWindow(new Rect(0, 0, 1000, 18)); }