Beispiel #1
0
        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);
        }
Beispiel #2
0
        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());
        }
Beispiel #3
0
        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));
        }