Exemple #1
0
        public async Task GenerateLoot(int partyLevel)
        {
            var embed = new EmbedBuilder();

            embed.WithDescription("__**The Loot**__\n");
            string s = (TreasureGenerator.GetLoot(partyLevel));

            embed.Description += (string.IsNullOrWhiteSpace(s) ? "A big fat pile of nothing" : s) + "\n\n";
            embed.WithTitle("Your party found:");
            embed.WithColor(0, 255, 0);

            await Context.Channel.SendMessageAsync("", embed : embed.Build());
        }
        void GenerateLevel()
        {
            TreasureGenerator gen = new TreasureGenerator()
            {
                Level = _Level,
                Items = _MagicItems,
                Goods = _Goods,
                Coin  = _Coin
            };

            _LastTreasure = gen.Generate();

            ShowLastTreasure();
        }
Exemple #3
0
    public void Restart()
    {
        GameObject[] enemys = GameObject.FindGameObjectsWithTag("Enemy");
        for (int i = 0; i < enemys.Length; i++)
        {
            enemys[i].SendMessage("OnRestart");
        }
        GameObject.Find("Player").SendMessage("OnRestart");
        TreasureGenerator treasureGen = FindObjectOfType(typeof(TreasureGenerator)) as TreasureGenerator;

        if (treasureGen != null)
        {
            treasureGen.SendMessage("OnRestart");
        }
        HitStop(true);
        Hud.get().DrawStageStart(true);
        StartCoroutine("RestartWait");
    }
        public TreasureGeneratorPage()
        {
            _SelectionView = new GradientView();
            _WebView       = new UIWebView();
            _EmailButton   = new GradientButton();
            _EmailButton.SetText("Email");
            _EmailButton.SetImage(UIExtensions.GetSmallIcon("mail"), UIControlState.Normal);
            _EmailButton.ImageEdgeInsets = new UIEdgeInsets(0, 0, 0, 15);
            _EmailButton.TouchUpInside  += EmailButtonClicked;

            Add(_SelectionView);
            Add(_WebView);
            Add(_EmailButton);



            _LevelTab = new GradientButton();
            _LevelTab.SetText("Level");
            CMStyles.StyleTab(_LevelTab, true);
            _SelectionView.StyleBasicPanel();
            _SelectionView.Gradient     = new GradientHelper(CMUIColors.SecondaryColorADark);
            _SelectionView.CornerRadius = 0f;
            _LevelTab.TouchUpInside    += LevelTabClicked;

            _ItemsTab = new GradientButton();
            _ItemsTab.SetText("Items");
            CMStyles.StyleTab(_ItemsTab, false);
            _ItemsTab.TouchUpInside += ItemsTabClicked;


            _SelectionView.Add(_LevelTab);
            _SelectionView.Add(_ItemsTab);

            _LevelView = new GradientView();

            _ItemsView = new GradientView();

            foreach (var v in new GradientView[] { _LevelView, _ItemsView })
            {
                v.StyleBasicPanel();
                v.Gradient = new GradientHelper(CMUIColors.SecondaryColorADarker);
            }

            _ItemsView.Hidden = true;

            _SelectionView.Add(_LevelView);
            _SelectionView.Add(_ItemsView);

            _GenerateButton = new GradientButton();
            _GenerateButton.SetText("Generate");
            _GenerateButton.SetSmallIcon("treasure");
            _SelectionView.Add(_GenerateButton);
            _GenerateButton.TouchUpInside += GenerateButtonClicked;


            //create level items
            _LevelButton = new GradientButton();
            _LevelButton.SetText("Level 1");
            _LevelButton.Tag = 1;
            _LevelView.Add(_LevelButton);
            _LevelPopover = new ButtonStringPopover(_LevelButton);
            _LevelPopover.SetButtonText = true;
            _LevelPopover.ItemClicked  += HandleLevelPopoverItemClicked;

            for (int i = 1; i <= 20; i++)
            {
                _LevelPopover.Items.Add(new ButtonStringPopoverItem()
                {
                    Text = "Level " + i, Tag = i
                });
            }

            _CoinButton = new GradientButton();
            _CoinButton.SetText("Normal Coins");
            _LevelView.Add(_CoinButton);
            _CoinPopover = new ButtonStringPopover(_CoinButton);
            AddLevelPopoverItems(_CoinPopover, "Coins");
            _CoinButton.Tag = 1;

            _GoodsButton = new GradientButton();
            _GoodsButton.SetText("Normal Goods");
            _LevelView.Add(_GoodsButton);
            _GoodsPopover = new ButtonStringPopover(_GoodsButton);
            AddLevelPopoverItems(_GoodsPopover, "Goods");
            _GoodsButton.Tag = 1;

            _ItemsButton = new GradientButton();
            _ItemsButton.SetText("Normal Items");
            _ItemsPopover = new ButtonStringPopover(_ItemsButton);
            _LevelView.Add(_ItemsButton);
            _ItemsButton.Tag = 1;
            AddLevelPopoverItems(_ItemsPopover, "Items");

            //create item items
            _CountButton = new GradientButton();
            _CountButton.SetText("1 Item");
            _CountButton.Tag = 1;

            _ItemsView.Add(_CountButton);
            _CountPopover = new ButtonStringPopover(_CountButton);
            for (int i = 1; i < 61; i++)
            {
                string text = i + (i == 1?" Item":" Items");
                _CountPopover.Items.Add(new ButtonStringPopoverItem()
                {
                    Text = text, Tag = i
                });
            }
            _CountPopover.ItemClicked  += HandleLevelPopoverItemClicked;
            _CountPopover.SetButtonText = true;

            _ChartLevelButton = new GradientButton();
            _ChartLevelButton.SetText("Minor");
            _ChartLevelButton.Tag = 0;
            _ItemsView.Add(_ChartLevelButton);
            _ChartLevelPopover = new ButtonStringPopover(_ChartLevelButton);
            _ChartLevelPopover.SetButtonText = true;
            _ChartLevelPopover.ItemClicked  += HandleItemLevelClicked;;
            _ChartLevelPopover.Items.Add(new ButtonStringPopoverItem()
            {
                Text = "Minor", Tag = 0
            });
            _ChartLevelPopover.Items.Add(new ButtonStringPopoverItem()
            {
                Text = "Medium", Tag = 1
            });
            _ChartLevelPopover.Items.Add(new ButtonStringPopoverItem()
            {
                Text = "Major", Tag = 2
            });

            foreach (var t in new TreasureGenerator.RandomItemType [] {
                TreasureGenerator.RandomItemType.MagicalArmor,
                TreasureGenerator.RandomItemType.MagicalWeapon,
                TreasureGenerator.RandomItemType.Potion,
                TreasureGenerator.RandomItemType.Wand,
                TreasureGenerator.RandomItemType.Ring,
                TreasureGenerator.RandomItemType.Rod,
                TreasureGenerator.RandomItemType.Scroll,
                TreasureGenerator.RandomItemType.Staff,
                TreasureGenerator.RandomItemType.MinorWondrous,
            })
            {
                var b = new GradientButton();
                b.SetText(TreasureGenerator.RandomItemString(t));
                b.Tag = (int)t;
                b.MakeCheckButtonStyle(true);
                b.Data           = true;
                b.TouchUpInside += CheckButtonChecked;
                _ItemsView.Add(b);
                _ItemCheckButtons.Add(b);

                if (t == TreasureGenerator.RandomItemType.Rod)
                {
                    _RodButton         = b;
                    _RodButton.Enabled = false;
                }
                else if (t == TreasureGenerator.RandomItemType.Staff)
                {
                    _StaffButton         = b;
                    _StaffButton.Enabled = false;
                }
            }

            _SelectAllButton = new GradientButton();
            _SelectAllButton.SetText("Select All");
            _ItemsView.Add(_SelectAllButton);
            _SelectAllButton.TouchUpInside += SelectButtonClicked;
            _SelectAllButton.Data           = true;

            _UnselectAllButton = new GradientButton();
            _UnselectAllButton.SetText("Unselect All");
            _ItemsView.Add(_UnselectAllButton);
            _UnselectAllButton.TouchUpInside += SelectButtonClicked;
            _UnselectAllButton.Data           = false;
        }
        void GenerateButtonClicked(object sender, EventArgs e)
        {
            Treasure t;

            if (_ShowingItems)
            {
                TreasureGenerator gen = new TreasureGenerator();

                t = new Treasure();
                int       count = (int)_CountButton.Tag;
                ItemLevel level = (ItemLevel)(int)_ChartLevelButton.Tag;

                TreasureGenerator.RandomItemType types = (TreasureGenerator.RandomItemType) 0;

                foreach (var b in _ItemCheckButtons)
                {
                    if ((bool)b.Data)
                    {
                        var v = (TreasureGenerator.RandomItemType)(int) b.Tag;

                        switch (v)
                        {
                        case TreasureGenerator.RandomItemType.MinorWondrous:

                            switch (level)
                            {
                            case ItemLevel.Medium:
                                v = TreasureGenerator.RandomItemType.MediumWondrous;
                                break;

                            case ItemLevel.Major:
                                v = TreasureGenerator.RandomItemType.MinorWondrous;
                                break;
                            }
                            break;

                        case TreasureGenerator.RandomItemType.Rod:
                        case TreasureGenerator.RandomItemType.Staff:
                            if (level == ItemLevel.Minor)
                            {
                                v = (TreasureGenerator.RandomItemType) 0;
                            }
                            break;
                        }
                        types |= v;
                    }
                }


                if (types != 0)
                {
                    for (int i = 0; i < count; i++)
                    {
                        TreasureItem item = gen.GenerateRandomItem(level, types);
                        t.Items.Add(item);
                    }
                }
            }
            else
            {
                TreasureGenerator gen = new TreasureGenerator();
                gen.Coin  = (int)_CoinButton.Tag;
                gen.Level = (int)_LevelButton.Tag;
                gen.Items = (int)_ItemsButton.Tag;
                gen.Goods = (int)_GoodsButton.Tag;

                t = gen.Generate();
            }

            _GeneratedHtml = TreasureHtmlCreator.CreateHtml(t);

            _WebView.LoadHtmlString(_GeneratedHtml, new NSUrl("http://localhost"));
        }
        void GenerateItems()
        {
            TreasureGenerator.RandomItemType types = TreasureGenerator.RandomItemType.None;

            if (GenBoxChecked(Resource.Id.magicalArmorBox))
            {
                types |= TreasureGenerator.RandomItemType.MagicalArmor;
            }
            if (GenBoxChecked(Resource.Id.magicalWeaponBox))
            {
                types |= TreasureGenerator.RandomItemType.MagicalWeapon;
            }
            if (GenBoxChecked(Resource.Id.potionBox))
            {
                types |= TreasureGenerator.RandomItemType.Potion;
            }
            if (GenBoxChecked(Resource.Id.ringBox))
            {
                types |= TreasureGenerator.RandomItemType.Ring;
            }
            if (GenBoxChecked(Resource.Id.rodBox))
            {
                types |= TreasureGenerator.RandomItemType.Rod;
            }
            if (GenBoxChecked(Resource.Id.staffBox))
            {
                types |= TreasureGenerator.RandomItemType.Staff;
            }
            if (GenBoxChecked(Resource.Id.wandBox))
            {
                types |= TreasureGenerator.RandomItemType.Wand;
            }
            if (GenBoxChecked(Resource.Id.wondrousItemBox))
            {
                switch (_ItemLevel)
                {
                case 0:
                    types |= TreasureGenerator.RandomItemType.MinorWondrous;
                    break;

                case 1:
                    types |= TreasureGenerator.RandomItemType.MediumWondrous;
                    break;

                case 2:
                    types |= TreasureGenerator.RandomItemType.MajorWondrous;
                    break;
                }
            }


            TreasureGenerator gen = new TreasureGenerator();
            Treasure          t   = new Treasure();

            for (int i = 0; i < _ItemCount; i++)
            {
                t.Items.Add(gen.GenerateRandomItem((ItemLevel)_ItemLevel, types));
            }
            _LastTreasure = t;

            ShowLastTreasure();
        }
Exemple #7
0
    public void OnStageStart()
    {
        // 적 전부를 삭제.
        GameObject[] enemys = GameObject.FindGameObjectsWithTag("Enemy");
        for (int i = 0; i < enemys.Length; i++)
        {
            Destroy(enemys[i]);
        }

        // 그 외 오브젝트 삭제.
        TreasureGenerator treasureGenInst = FindObjectOfType(typeof(TreasureGenerator)) as TreasureGenerator;

        if (treasureGenInst != null)
        {
            Destroy(treasureGenInst.gameObject);
        }

        GameObject.Find("Map").SendMessage("OnStageStart");

        if (!DISABLE_MONSTER_SPAWN)
        {
            // 적 스폰.
            for (int i = 1; i < 5; i++)
            {
                Vector3 pos = m_map.GetSpawnPoint(i);

                if (pos == Vector3.zero)
                {
                    // 이 타입의 적은 만들지 않는다.
                    continue;
                }

                GameObject  e  = (GameObject)Instantiate(m_enemyPrefab, pos, Quaternion.identity);
                MonsterCtrl mc = e.GetComponent <MonsterCtrl>();
                mc.m_aiType = (MonsterCtrl.AI_TYPE)((int)MonsterCtrl.AI_TYPE.TRACER + i - 1);
                mc.SetSpawnPosition(m_map.GetSpawnPoint(Map.SPAWN_POINT_TYPE.BLOCK_SPAWN_POINT_PLAYER + i));
                mc.SetDifficulty(m_stageNo);

                mc.SendMessage("OnStageStart");
            }
        }

        // 스테이지 번호 갱신.
        Hud.get().SetStageNumber(m_stageNo);

        // 보물 스폰.
        Vector3 trasurePos = m_map.GetSpawnPoint(Map.SPAWN_POINT_TYPE.BLOCK_SPAWN_TREASURE);

        if (trasurePos != Vector3.zero)
        {
            Instantiate(m_treasureGen, trasurePos, Quaternion.identity);
        }

        Hud.get().DrawStageClear(false);
        GameObject.Find("Player").SendMessage("OnStageStart");
        Hud.get().DrawStageStart(true);
        HitStop(true);

        // BGM 재생.
        m_audio.StopAll();
        m_audio.PlayLoop(m_bgmClip, 1.0f, 0.0f);

        StartCoroutine("StageStartWait");
    }
Exemple #8
0
 public void Start()
 {
     tg   = GameObject.FindGameObjectWithTag("Generator").GetComponent <TreasureGenerator>();
     item = tg.RandomItem();
 }