コード例 #1
0
        public SmartBool_BM()
        {
            bba1 = new bool[N];
            bna1 = new bool?[N];
            bsa1 = new SmartBool[N];

            bba2 = new bool[N];
            bna2 = new bool?[N];
            bsa2 = new SmartBool[N];

            bba3 = new bool[N];
            bna3 = new bool?[N];
            bsa3 = new SmartBool[N];

            bba_input1 = new bool[N];
            bna_input1 = new bool?[N];
            bsa_input1 = new SmartBool[N];

            SmartRandom rnd = new SmartRandom();

            for (int i = 0; i < N; i++)
            {
                bba1[i] = rnd.NextBool();
            }

            rnd.ReSeed();

            for (int i = 0; i < N; i++)
            {
                bna1[i] = rnd.NextNullableBool();
            }

            rnd.ReSeed();

            for (int i = 0; i < N; i++)
            {
                bsa1[i] = rnd.NextSmartBool();
            }

            rnd = new SmartRandom();

            for (int i = 0; i < N; i++)
            {
                bba2[i] = rnd.NextBool();
            }

            rnd.ReSeed();

            for (int i = 0; i < N; i++)
            {
                bna2[i] = rnd.NextNullableBool();
            }

            rnd.ReSeed();

            for (int i = 0; i < N; i++)
            {
                bsa2[i] = rnd.NextSmartBool();
            }
        }
コード例 #2
0
ファイル: DungeonBattle.cs プロジェクト: dongbin300/NGDG2
        public void CharacterSkillsMonster(Skill skill)
        {
            SmartRandom r = new SmartRandom();

            targets.Clear();

            //TODO
        }
コード例 #3
0
ファイル: DungeonBattle.cs プロジェクト: dongbin300/NGDG2
        /// <summary>
        /// 몬스터가 캐릭터를 공격한다. (평타)
        /// TODO: 명중률, 회피율 구현
        /// </summary>
        /// <param name="attacker">몬스터</param>
        public void MonsterAttacksCharacter(Monster attacker)
        {
            SmartRandom r = new SmartRandom();

            long damage = attacker.TotalAbility.Attack - Character.TotalAbility.Defense;

            damage = damage <= 1 ? 1 : damage;

            Character.TotalAbility.HP -= damage;

            // 캐릭터 사망
            if (Character.TotalAbility.HP <= 0)
            {
                KillCharacter();
            }
        }
コード例 #4
0
ファイル: DungeonBattle.cs プロジェクト: dongbin300/NGDG2
        /// <summary>
        /// 캐릭터가 몬스터를 공격한다. (평타)
        /// 평타는 무조건 대상 하나만 공격할 수 있다.
        /// TODO: 명중률, 회피율 구현
        /// </summary>
        public void CharacterAttacksMonster()
        {
            SmartRandom r = new SmartRandom();

            targets.Clear();

            int index = r.Next(d.Waves[CurrentWave].Monsters.Count);

            targets.Add(d.Waves[CurrentWave].Monsters[index]);

            long damage = Character.TotalAbility.Attack - targets[0].TotalAbility.Defense;

            damage = damage <= 1 ? 1 : damage;

            targets[0].TotalAbility.HP -= damage;

            // 몬스터 사망
            if (targets[0].TotalAbility.HP <= 0)
            {
                KillMonster(targets[0]);
            }
        }
コード例 #5
0
 public Seed(int obstaclesNumber, int obstaclesPullLength)
 {
     obstaclesID = new int[obstaclesNumber];
     obstaclesID = SmartRandom.GenerateSeed(obstaclesNumber, obstaclesPullLength);
 }
コード例 #6
0
 public Seed(int obstaclesNumber)
 {
     obstaclesID = new int[obstaclesNumber];
     obstaclesID = SmartRandom.GenerateSeed(obstaclesNumber);
 }
コード例 #7
0
ファイル: Inventory.cs プロジェクト: dongbin300/NGDG2
        public string React(ConsoleKey key)
        {
            SmartRandom r = new SmartRandom();

            switch (key)
            {
            // 아이템 선택
            case ConsoleKey.D1:
            case ConsoleKey.D2:
            case ConsoleKey.D3:
            case ConsoleKey.D4:
            case ConsoleKey.D5:
            case ConsoleKey.D6:
            case ConsoleKey.D7:
            case ConsoleKey.D8:
            case ConsoleKey.D9:
            case ConsoleKey.D0:
                if (keyLog.Length == 2)
                {
                    keyLog = string.Empty;
                }

                keyLog += ((int)key - 48).ToString();

                if (keyLog.Length == 2)
                {
                    int num = int.Parse(keyLog);

                    if (num >= 1 && num <= Character.Inventory.Slots.Count)
                    {
                        selectedItem = Character.Inventory.Slots[num - 1].Item;
                    }
                }
                break;

            // 아이템 판매
            case ConsoleKey.S:
                if (selectedItem != null)
                {
                    // 선택한 아이템이 인벤토리에 있으면 판매
                    if (Character.Inventory.HasItem(selectedItem))
                    {
                        Character.Inventory.Remove(selectedItem);
                        Character.Gold += selectedItem.SalePrice;
                    }
                }
                break;

            // 아이템 사용/장착
            case ConsoleKey.Spacebar:
                if (selectedItem != null)
                {
                    // 선택한 아이템이 인벤토리에 있으면 사용/장착
                    if (Character.Inventory.HasItem(selectedItem))
                    {
                        switch (selectedItem.Type)
                        {
                        case Item.ItemType.Material:
                            switch (selectedItem.Name)
                            {
                            case "1레벨 낡은 장비 상자":
                                string[] list1 = { "낡은 검", "낡은 지팡이", "낡은 총", "낡은 가죽헬멧", "낡은 금속헬멧", "낡은 가죽아머", "낡은 금속아머", "낡은 가죽트라우저", "낡은 금속트라우저", "낡은 가죽슈즈", "낡은 금속슈즈", "낡은 강철목걸이", "낡은 합금목걸이", "낡은 강철반지", "낡은 합금반지", "낡은 엠블렘" };
                                Character.Inventory.Add(ItemDictionary.MakeItem(list1[r.Next(list1.Length)]));
                                Character.Inventory.Remove(selectedItem);
                                break;

                            case "5레벨 평범한 장비 상자":
                                string[] list2 = { "평범한 검", "평범한 지팡이", "평범한 총", "평범한 가죽헬멧", "평범한 금속헬멧", "평범한 가죽아머", "평범한 금속아머", "평범한 가죽트라우저", "평범한 금속트라우저", "평범한 가죽슈즈", "평범한 금속슈즈", "평범한 강철목걸이", "평범한 합금목걸이", "평범한 강철반지", "평범한 합금반지", "평범한 엠블렘" };
                                Character.Inventory.Add(ItemDictionary.MakeItem(list2[r.Next(list2.Length)]));
                                Character.Inventory.Remove(selectedItem);
                                break;
                            }
                            break;

                        case Item.ItemType.Potion:
                            break;

                        case Item.ItemType.Equipment:
                            Character.MountEquipments.Equip(selectedItem);
                            break;
                        }
                    }
                }
                break;

            case ConsoleKey.Escape:
                ScreenManager.CurrentScreen = ScreenManager.Screen.Main;
                break;
            }

            return(string.Empty);
        }