Beispiel #1
0
        /// <summary>
        /// 報酬付与
        /// </summary>
        public static List <LootItemStruct> BattleResult()
        {
            List <LootItemStruct> loots = new List <LootItemStruct>();
            int gold = 0;

            //モンスター固有アイテム抽選
            EnemyDataModel.Instance.Data.ForEach(enemy =>
            {
                loots.AddRange(LootLogic.MonsterLootChoice(enemy.monsterId));
                //ゴールド計算 TODO
                gold += enemy.level * 10;
            });
            //ダンジョン固有アイテム抽選 TODO 確率
            loots.AddRange(LootLogic.DungeonLootChoice(0.1f));

            //アイテム獲得処理
            List <ItemStruct> items = new List <ItemStruct>();

            loots.ForEach(loot =>
            {
                var item = ItemLogic.CreateItemFromLoot(loot);
                items.Add(item);
            });
            StockItemDataModel.GetInstance().AddItems(items);

            //ゴールド獲得処理
            loots.Add(new LootItemStruct()
            {
                Amount = gold,
                ItemId = ItemConsts.GOLD
            });
            StockItemDataModel.GetInstance().AddGold(gold);

            //レベルアップ処理
            //TODO レベルアップの仕様検討
            //一般戦闘の場合は+1 エリート敵の場合は+2
            int levelUpAmount = 1;

            loots.Add(new LootItemStruct()
            {
                Amount = levelUpAmount,
                ItemId = ItemConsts.LEVEL
            });
            BattlerLogic.LevelUp(levelUpAmount);

            return(loots);
        }
Beispiel #2
0
        public static void TreasureEvent(AsyncSubject <Unit> subject)
        {
            var eventModal = new DungeonEventModal();

            eventModal.EventText("何かを見つけた");
            eventModal.AddChoice("獲得する").Subscribe(_ =>
            {
                subject.OnNext(Unit.Default);
                subject.OnCompleted();
            });
            var loots = LootLogic.DungeonTreasureLootChoice();
            List <ItemStruct> items = new List <ItemStruct>();

            loots.ForEach(loot =>
            {
                var item = ItemLogic.CreateItemFromLoot(loot);
                items.Add(item);
            });
            eventModal.AddLootImages(loots);
            StockItemDataModel.GetInstance().Data.AddRange(items);
        }