/// <summary>
        /// 获取随机事件类型
        /// </summary>
        /// <returns></returns>
        public static GameEventType GetRandomGameEventType()
        {
            var random = NumberHelper.GetRandom(0, 100);

            if (random < 7)
            {
                return(GameEventType.Hotel);
            }
            if (random < 12)
            {
                return(GameEventType.Treasure);
            }
            if (random < 30)
            {
                return(GameEventType.RandomEvent);
            }
            if (random < 38)
            {
                return(GameEventType.Shop);
            }
            if (random < 42)
            {
                return(GameEventType.RareMonster);
            }
            if (random < 56)
            {
                return(GameEventType.ElitistMonster);
            }

            return(GameEventType.NormalMonster);
        }
Esempio n. 2
0
        public static BaseMonster GetRandomMonster(MonsterType type, int stage)
        {
            var monsters = GameInfo.Monsters.Where(x => x.Type == type && x.MinStage <stage && x.MaxStage> stage).ToList();
            var index    = NumberHelper.GetRandom(0, monsters.Count);

            return(monsters[index].Clone());
        }
        public static BaseSkill GetRandomVisibleSkill(SkillRareDegree skillRareDegree)
        {
            var skills = GameInfo.ActivedSkills.Where(x => x.RareDegree == skillRareDegree).ToList();
            var index  = NumberHelper.GetRandom(0, skills.Count);

            return(skills[index].Clone());
        }
        /// <summary>
        /// 从队列中生成一个随机事件
        /// </summary>
        /// <returns></returns>
        public static BaseEvent GenerateRandomEvent()
        {
            if (GameInfo.CurrentStageEvents.Count == 0)
            {
                return(GameInfo.EventList.FirstOrDefault(x => x.Type == GameEventType.Shop).Clone());
            }

            var index = NumberHelper.GetRandom(0, GameInfo.CurrentStageEvents.Count);
            var e     = GameInfo.CurrentStageEvents[index].Clone();

            GameInfo.CurrentStageEvents.RemoveAt(index);
            return(e);
        }
        public static string UpgradeRandomSkill()
        {
            var skills = GameInfo.LearnedSkills.Where(x => x.Level != 3).ToList();

            if (skills.Count == 0)
            {
                return(string.Empty);
            }
            var index = NumberHelper.GetRandom(0, skills.Count);

            skills[index].LevelUp();
            return(skills[index].DisplayName);
        }
Esempio n. 6
0
        public static BaseProp GetRandomVisibleProp(PropType type)
        {
            var propList = new List <PropName>();

            foreach (var prop in GameInfo.ActivedProps)
            {
                if (prop.Type == type && !GameInfo.GainedProps.Contains(prop.Name))
                {
                    propList.Add(prop.Name);
                }
            }
            var index      = NumberHelper.GetRandom(0, propList.Count);
            var randomProp = GameInfo.ActivedProps.FirstOrDefault(x => x.Name == propList[index]);

            return(randomProp);
        }
        public static BaseSkill GetRandomVisibleSkill()
        {
            var index = NumberHelper.GetRandom(0, GameInfo.ActivedSkills.Count);

            return(GameInfo.ActivedSkills[index].Clone());
        }