Example #1
0
        public void Init(int left, int right, int rlevel)
        {
            PeopleConfig peopleConfig = ConfigData.GetPeopleConfig(right);

            if (left == 0)
            {
                switch (peopleConfig.Method)
                {
                case "common": LeftPlayer = new HumanPlayer(true); break;

                case "rand": LeftPlayer = new RandomPlayer(right, true, true); break;

                default: LeftPlayer = new AIPlayer(right, peopleConfig.Method, true, rlevel, true); break;
                }
            }
            else //观看比赛
            {
                LeftPlayer = new AIPlayer(left, ConfigData.GetPeopleConfig(left).Emethod, true, rlevel, false);
            }

            switch (peopleConfig.Emethod)
            {
            case "common": RightPlayer = new HumanPlayer(false); RightPlayer.PeopleId = right; break;

            case "rand": RightPlayer = new RandomPlayer(right, false, false); break;

            case "mirror": RightPlayer = new MirrorPlayer(right, LeftPlayer.Cards, false); break;

            default: RightPlayer = new AIPlayer(right, peopleConfig.Emethod, false, rlevel, false); break;
            }
        }
Example #2
0
        private void PeopleDeckViewForm_Click(object sender, EventArgs e)
        {
            if (tar != -1)
            {
                sel = tar;
                PeopleConfig peopleConfig = ConfigData.GetPeopleConfig(people[tar]);
                cardDetail.SetInfo(-1);

                DeckCard[] cards = DeckBook.GetDeckByName(peopleConfig.Emethod, peopleConfig.Level);
                nlClickLabel1.ClearLabel();
                foreach (DeckCard card in cards)
                {
                    CardConfigData ccd = CardConfigManager.GetCardConfig(card.BaseId);
                    if (ccd.Id == 0)
                    {
                        continue;
                    }
                    var    name    = CardConfigManager.GetCardConfig(card.BaseId).Name;
                    string cardstr = string.Format("{0}", name);
                    nlClickLabel1.AddLabel(cardstr, card);
                }

                Invalidate(new Rectangle(65, 35, cardWidth * xCount + 200, 630));
                nlClickLabel1.Invalidate();
            }
        }
Example #3
0
        private void Bind(int type)
        {
            people.Clear();
            int off = 2;

            for (int i = 0; i < 20; i++)
            {
                virtualRegion.SetRegionKey(i + 2, 0);
                virtualRegion.SetRegionDecorator(i + 2, 0, "");
            }

            foreach (var person in UserProfile.InfoRival.Rivals.Values)
            {
                if (person.Avail)
                {
                    PeopleConfig personInfo = ConfigData.GetPeopleConfig(person.Pid);
                    if (personInfo.Type == type)
                    {
                        people.Add(person);
                        virtualRegion.SetRegionKey(off, person.Pid);
                        virtualRegion.SetRegionDecorator(off, 0, personInfo.Name);
                        off++;
                    }
                }
            }

            realTar = 0;
            virtualRegion.SetRegionKey(1, people[realTar].Pid);
            Invalidate();
        }
Example #4
0
 /// <summary>
 /// 仅仅npc使用,玩家不用
 /// </summary>
 public void SetRateNpc(PeopleConfig peopleConfig)
 {
     JobConfig jobConfig = ConfigData.GetJobConfig(peopleConfig.Job);
     rateLp = jobConfig.EnergyRate[0];
     ratePp = jobConfig.EnergyRate[1];
     rateMp = jobConfig.EnergyRate[2];
     LimitLp = jobConfig.EnergyLimit[0];
     LimitPp = jobConfig.EnergyLimit[1];
     LimitMp = jobConfig.EnergyLimit[2];
 }
Example #5
0
        /// <summary>
        /// 仅仅npc使用,玩家不用
        /// </summary>
        public void SetRateNpc(PeopleConfig peopleConfig)
        {
            JobConfig jobConfig = ConfigData.GetJobConfig(peopleConfig.Job);

            RateLp  = jobConfig.EnergyRate[0];
            RatePp  = jobConfig.EnergyRate[1];
            RateMp  = jobConfig.EnergyRate[2];
            LimitLp = jobConfig.EnergyLimit[0];
            LimitPp = jobConfig.EnergyLimit[1];
            LimitMp = jobConfig.EnergyLimit[2];
        }
Example #6
0
        public override List <int> GetInitialMonster()
        {
            var          list         = new List <int>();
            PeopleConfig peopleConfig = ConfigData.GetPeopleConfig(PeopleId);

            if (peopleConfig.RightMon != null && peopleConfig.RightMon.Length > 0)
            {
                list.AddRange(peopleConfig.RightMon);
            }
            BattleManager.Instance.RuleData.CheckInitialMonster(this, list, peopleConfig.PetMon);//会修改player.InitialMonster
            return(list);
        }
Example #7
0
        protected void Application_Start()
        {
            GlobalConfiguration.Configure(WebApiConfig.Register);

            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);


            PeopleConfig.InitPeople(10000);
            PeopleConfig.UpdatePeopleAge();
        }
Example #8
0
        public MirrorPlayer(int id, ActiveCards cpcards, bool isLeft)
            : base(false, isLeft)
        {
            PeopleId = id;

            PeopleConfig peopleConfig = ConfigData.GetPeopleConfig(id);

            Level = peopleConfig.Level;
            Job   = UserProfile.InfoBasic.Job;

            EnergyGenerator.SetRateNpc(peopleConfig);

            Cards = cpcards.GetCopy();
            InitBase();
        }
Example #9
0
        public AIPlayer(int id, string deck, bool isLeft, int rlevel, bool isPlayerControl)
            : base(isPlayerControl, isLeft)
        {
            PeopleId = id;

            Level = rlevel;
            PeopleConfig peopleConfig = ConfigData.GetPeopleConfig(id);

            Job = peopleConfig.Job;

            EnergyGenerator.SetRateNpc(peopleConfig);

            DeckCard[] cds = DeckBook.GetDeckByName(deck, Level);
            Cards = new ActiveCards(cds);
            //  PlayerAttr attr = new PlayerAttr();
            //  attr.ModifyMonsterData(HeroData);
            InitBase();
        }
Example #10
0
        private void FastBind(int id)
        {
            PeopleConfig peopleConfig = ConfigData.GetPeopleConfig(id);

            if (!types.Contains(peopleConfig.Type))
            {
                return;
            }
            Bind(peopleConfig.Type);
            virtualRegion.SetRegionKey(1, id);
            for (int i = 0; i < people.Count; i++)
            {
                if (people[i].Pid == id)
                {
                    realTar = i;
                    break;
                }
            }
        }
Example #11
0
        public RandomPlayer(int id, bool isLeft, bool isplayerControl)
            : base(isplayerControl, isLeft)
        {
            PeopleId = id;

            PeopleConfig peopleConfig = ConfigData.GetPeopleConfig(id);

            Level = peopleConfig.Level;
            Job   = UserProfile.InfoBasic.Job;

            EnergyGenerator.SetRateNpc(peopleConfig);

            DeckCard[] cd = new DeckCard[GameConstants.DeckCardCount];
            for (int i = 0; i < GameConstants.DeckCardCount; i++)
            {
                cd[i] = new DeckCard(CardConfigManager.GetRandomCard(0, -1), 1, 0);
            }
            Cards = new ActiveCards(cd);
            InitBase();
        }
Example #12
0
        public PeopleDrop(int id)
        {
            peopleConfig = ConfigData.GetPeopleConfig(id);

            DropResource gold = new DropResource();
            gold.id = 1;
            gold.percent = 100;
            gold.min = PeopleBook.IsPeople(id) ? peopleConfig.Level : peopleConfig.Level * 3 + 12;
            gold.max = PeopleBook.IsPeople(id) ? peopleConfig.Level * 3 / 2 : peopleConfig.Level * 5 + 20;
            resources.Add(gold);
            foreach (int rid in peopleConfig.Reward)
            {
                DropResource drop = new DropResource();
                drop.id = rid;
                drop.percent = drop.id <= 3 ? peopleConfig.Level * 5 / 4 + 5 : peopleConfig.Level / 2 + 2;
                drop.min = 1;
                drop.max = 1;
                resources.Add(drop);
            }
        }
Example #13
0
        private void TourRankList_Paint(object sender, PaintEventArgs e)
        {
            if (show)
            {
                Font font = new Font("宋体", 11 * 1.33f, FontStyle.Regular, GraphicsUnit.Pixel);
                for (int i = 0; i < ranks.Length; i++)
                {
                    Image        head         = MatchManager.GetHeadImage(ranks[i].Id);
                    PeopleConfig peopleConfig = ConfigData.GetPeopleConfig(ranks[i].Id);
                    e.Graphics.DrawImage(head, 85, 32 * i, 24, 24);
                    e.Graphics.DrawString(string.Format("{0}", i + 1), font, Brushes.White, 35, 32 * i + 5);
                    e.Graphics.DrawString(string.Format("{0}", ranks[i].Id == -1 ? UserProfile.ProfileName : peopleConfig.Name), font, Brushes.White, 120, 32 * i + 5);
                    e.Graphics.DrawString(string.Format("{0}", ranks[i].Id == -1 ? UserProfile.InfoBasic.Level : peopleConfig.Level), font, Brushes.White, 220, 32 * i + 5);
                    e.Graphics.DrawString(string.Format("{0}", ConfigData.GetJobConfig(ranks[i].Id == -1 ? UserProfile.InfoBasic.Job : peopleConfig.Job).Name), font, Brushes.White, 260, 32 * i + 5);
                    e.Graphics.DrawString(string.Format("{0}", ranks[i].Mark).PadLeft(5, ' '), font, Brushes.Gold, 360, 32 * i + 5);
                }

                font.Dispose();
            }
        }
Example #14
0
        private void Fight()
        {
            if (realTar == -1)
            {
                return;
            }

            PeopleConfig peopleConfig = ConfigData.GetPeopleConfig(people[realTar].Pid);

            if (peopleConfig.Emethod == "")
            {
                ControlPlus.MessageBoxEx.Show("目前版本暂不开放!");
                return;
            }

            var parm = new PeopleFightParm();

            parm.Reason = PeopleFightReason.PeopleView;
            PeopleBook.Fight(peopleConfig.Id, peopleConfig.BattleMap, peopleConfig.Level, parm, null, null, null);
        }
Example #15
0
        public static Image GetPreview(int id)
        {
            PeopleConfig peopleConfig = ConfigData.GetPeopleConfig(id);

            ControlPlus.TipImage tipData = new ControlPlus.TipImage();
            tipData.AddTextNewLine(peopleConfig.Name, "White", 20);
            tipData.AddTextNewLine(string.Format("{0}级{1}", peopleConfig.Level, ConfigData.GetJobConfig(peopleConfig.Job).Name), "White");
            tipData.AddLine();
            //int[] attrs = JobBook.GetJobLevelAttr(peopleConfig.Job, peopleConfig.Level);
            //tipData.AddTextNewLine(string.Format("战斗 {0,3:D}  守护 {1,3:D}", attrs[0], attrs[1]), "Lime");
            //tipData.AddTextNewLine(string.Format("法术 {0,3:D}  技巧 {1,3:D}", attrs[2], attrs[3]), "Lime");
            //tipData.AddTextNewLine(string.Format("速度 {0,3:D}  幸运 {1,3:D}", attrs[4], attrs[5]), "Lime");
            //tipData.AddTextNewLine(string.Format("体质 {0,3:D}  生存 {1,3:D}", attrs[6], attrs[7]), "Lime");
            //tipData.AddLine();
            //tipData.AddTextNewLine("王牌", "White", 30);
            //foreach (int cid in peopleConfig.Cards)
            //{
            //    tipData.AddImage(MonsterBook.GetMonsterImage(cid, 40, 40), 28);
            //}
            return(tipData.Image);
        }
Example #16
0
        public void SetPlayer(Player p, int id)
        {
            if (id <= 0)
            {
                return;
            }

            PeopleConfig peopleConfig = ConfigData.GetPeopleConfig(id);

            nameStr = peopleConfig.Name;
            if (head != null)
            {
                head.Dispose();
            }
            head                     = PicLoader.Read("People", string.Format("{0}.PNG", peopleConfig.Figue));
            player                   = p;
            player.ManaChanged      += new Player.PlayerPointEventHandler(player_ManaChanged);
            player.CardLeftChanged  += new Player.PlayerPointEventHandler(player_CardLeftChanged);
            player.TrapStateChanged += new Player.PlayerPointEventHandler(player_TrapChanged);
            Invalidate();
        }
Example #17
0
        private void PeopleViewForm_Paint(object sender, PaintEventArgs e)
        {
            BorderPainter.Draw(e.Graphics, "", Width, Height);

            Font font = new Font("黑体", 12 * 1.33f, FontStyle.Bold, GraphicsUnit.Pixel);

            e.Graphics.DrawString("挑战对手", font, Brushes.White, Width / 2 - 40, 8);
            font.Dispose();

            if (showImage)
            {
                virtualRegion.Draw(e.Graphics);

                if (realTar != -1)
                {
                    int          xoff         = 35;
                    int          yoff         = 35;
                    Font         fontsong     = new Font("宋体", 10 * 1.33f, FontStyle.Regular, GraphicsUnit.Pixel);
                    PeopleConfig peopleConfig = ConfigData.GetPeopleConfig(people[realTar].Pid);
                    e.Graphics.DrawString(string.Format("{0} (Lv{1})", peopleConfig.Name, peopleConfig.Level), fontsong, Brushes.White, xoff + 100, yoff + 10);
                    e.Graphics.DrawString("来自", fontsong, Brushes.DarkGray, xoff + 100, yoff + 28);
                    e.Graphics.DrawString(peopleConfig.World, fontsong, Brushes.Cyan, xoff + 140, yoff + 28);
                    e.Graphics.DrawString("属性", fontsong, Brushes.DarkGray, xoff + 100, yoff + 46);
                    for (int i = 0; i < peopleConfig.Deck.Length; i++)
                    {
                        e.Graphics.DrawImage(HSIcons.GetIconsByEName(peopleConfig.Deck[i]), xoff + 140 + i * 18, yoff + 46, 16, 16);
                    }
                    int win  = people[realTar].Win;
                    int loss = people[realTar].Loss;
                    int rate = 0;
                    if (win + loss != 0)
                    {
                        rate = win * 100 / (win + loss);
                    }
                    e.Graphics.DrawString("胜率", fontsong, Brushes.DarkGray, xoff + 100, yoff + 64);
                    e.Graphics.DrawString(string.Format("{0:0.0}% ({1}胜{2}负)", rate, win, loss), fontsong, (win == loss) ? Brushes.White : (win > loss ? Brushes.LightGreen : Brushes.Red), xoff + 140, yoff + 64);
                    fontsong.Dispose();
                }
            }
        }
Example #18
0
        public PeopleDrop(int id)
        {
            peopleConfig = ConfigData.GetPeopleConfig(id);
            uint         goldExpect = GameResourceBook.InGoldFight(peopleConfig.Level, PeopleBook.IsPeople(id));
            DropResource gold       = new DropResource
            {
                Id      = 1,
                Percent = 100,
                Min     = goldExpect * 7 / 10,
                Max     = goldExpect * 13 / 10
            };

            resources.Add(gold);
            foreach (int rid in peopleConfig.Reward)
            {
                DropResource drop = new DropResource {
                    Id = rid
                };
                drop.Percent = (uint)(drop.Id <= 3 ? peopleConfig.Level * 5 / 4 + 5 : peopleConfig.Level / 2 + 2);
                drop.Min     = 1;
                drop.Max     = 1;
                resources.Add(drop);
            }
        }
Example #19
0
        public static bool IsMonster(int id)
        {
            PeopleConfig peopleConfig = ConfigData.GetPeopleConfig(id);

            return(peopleConfig.Type == 0);
        }
Example #20
0
        private void BattleResultForm_Paint(object sender, PaintEventArgs e)
        {
            BorderPainter.Draw(e.Graphics, "", Width, Height);

            Font font = new Font("黑体", 12 * 1.33f, FontStyle.Bold, GraphicsUnit.Pixel);

            e.Graphics.DrawString("对战结果", font, Brushes.White, Width / 2 - 40, 8);
            font.Dispose();

            Image back = PicLoader.Read("System", "BattleResultBack.JPG");

            e.Graphics.DrawImage(back, 15, 35, 504, 354);
            back.Dispose();

            virtualRegion.Draw(e.Graphics);

            if (show)
            {
                font = new Font("微软雅黑", 15 * 1.33f, FontStyle.Bold, GraphicsUnit.Pixel);
                Font font2 = new Font("宋体", 12 * 1.33f, FontStyle.Regular, GraphicsUnit.Pixel);

                if (leftId == 0)
                {
                    Image head = PicLoader.Read("Player", string.Format("{0}.PNG", UserProfile.InfoBasic.Face));
                    e.Graphics.DrawImage(head, 95, 40, 50, 50);
                    head.Dispose();
                    e.Graphics.DrawString(UserProfile.ProfileName, font, Brushes.White, 155, 45);
                }
                else
                {
                    PeopleConfig leftPeople = ConfigData.GetPeopleConfig(leftId);
                    Image        head       = PicLoader.Read("People", string.Format("{0}.PNG", leftPeople.Figue));
                    e.Graphics.DrawImage(head, 95, 40, 50, 50);
                    head.Dispose();
                    e.Graphics.DrawString(leftPeople.Name, font, Brushes.White, 155, 45);
                }

                PeopleConfig rightPeople = ConfigData.GetPeopleConfig(rightId);
                Image        head2       = PicLoader.Read("People", string.Format("{0}.PNG", rightPeople.Figue));
                e.Graphics.DrawImage(head2, 305, 40, 50, 50);
                head2.Dispose();
                head2 = PicLoader.Read("System", "Win.PNG");
                e.Graphics.DrawImage(head2, isWin ? 135 : 345, 40, 109, 70);
                head2.Dispose();
                e.Graphics.DrawString(rightPeople.Name, font, Brushes.White, 370, 45);

                BattleStatisticData battleStatisticData = BattleManager.Instance.StatisticData;
                e.Graphics.DrawString(string.Format("{0,2:D}", battleStatisticData.Left.MonsterAdd), font2, Brushes.White, 159, 103);
                e.Graphics.DrawString(string.Format("{0,2:D}", battleStatisticData.Left.SpellAdd), font2, Brushes.White, 159, 123);
                e.Graphics.DrawString(string.Format("{0,2:D}", battleStatisticData.Left.Kill), font2, Brushes.White, 259, 103);
                e.Graphics.DrawString(string.Format("{0,2:D}", battleStatisticData.Left.WeaponAdd), font2, Brushes.White, 259, 123);
                e.Graphics.DrawString(GetDamageStr(battleStatisticData.Left.DamageTotal), font2, Brushes.White, 159, 143);

                e.Graphics.DrawString(string.Format("{0,2:D}", battleStatisticData.Right.MonsterAdd), font2, Brushes.White, 373, 103);
                e.Graphics.DrawString(string.Format("{0,2:D}", battleStatisticData.Right.SpellAdd), font2, Brushes.White, 373, 123);
                e.Graphics.DrawString(string.Format("{0,2:D}", battleStatisticData.Right.Kill), font2, Brushes.White, 473, 103);
                e.Graphics.DrawString(string.Format("{0,2:D}", battleStatisticData.Right.WeaponAdd), font2, Brushes.White, 473, 123);
                e.Graphics.DrawString(GetDamageStr(battleStatisticData.Right.DamageTotal), font2, Brushes.White, 373, 143);

                TimeSpan span = battleStatisticData.EndTime - battleStatisticData.StartTime;
                e.Graphics.DrawString(string.Format("{0:00}:{1:00}:{2:00}", span.Hours, span.Minutes, span.Seconds), font2, Brushes.White, 158, 195);
                e.Graphics.DrawString(string.Format("{0}", battleStatisticData.Round), font2, Brushes.White, 158, 175);

                font.Dispose();
                font2.Dispose();
            }
        }
Example #21
0
        public static bool IsPeople(int id)
        {
            PeopleConfig peopleConfig = ConfigData.GetPeopleConfig(id);

            return(peopleConfig.Type > 0 && peopleConfig.Type < 100);
        }
Example #22
0
        public override void Init(int width, int height)
        {
            base.Init(width, height);

            isWin = BattleManager.Instance.StatisticData.PlayerWin;
            if (isWin)
            {
                SoundManager.Play("System", "QuestCompleted.wav");
            }
            else
            {
                SoundManager.Play("System", "Failed.mp3");
            }

            rightId = BattleManager.Instance.PlayerManager.RightPlayer.PeopleId;
            leftId  = BattleManager.Instance.PlayerManager.LeftPlayer.PeopleId;
            if (leftId == 0)
            {
                BattleStatisticData statisticData = BattleManager.Instance.StatisticData;
                PeopleDrop          drop          = new PeopleDrop(rightId);
                resource = drop.GetDropResource();
                PeopleConfig peopleConfig = ConfigData.GetPeopleConfig(rightId);
                exp = GameResourceBook.InExpFight(UserProfile.InfoBasic.Level, peopleConfig.Level);

                resource[0] = resource[0] * (100 + statisticData.GoldRatePlus) / 100;
                exp         = exp * (100 + (uint)statisticData.ExpRatePlus) / 100;

                if (isWin)
                {
                    var dropItemId = drop.GetDropItem();//获胜可以获得掉落物
                    if (dropItemId != 0)
                    {
                        statisticData.Items.Insert(0, dropItemId);
                    }
                }
                else
                {
                    for (int i = 0; i < 7; i++)
                    {
                        resource[i] /= 5;
                    }
                    exp /= 4;
                }
                //resource[0] = 10;  //todo 测试使用
                //for (int i = 0; i < 10; i++)
                //{
                //    StatisticData.Items.Add(22033032);
                //}
                //exp = 15;
                if (resource[0] > 0)
                {
                    var pos           = GetCellPosition();
                    var pictureRegion = ComplexRegion.GetSceneDataRegion(cellIndex, pos, 45, ImageRegionCellType.Gold, resource[0]);
                    virtualRegion.AddRegion(pictureRegion);
                }

                if (exp > 0)
                {
                    var pos           = GetCellPosition();
                    var pictureRegion = ComplexRegion.GetSceneDataRegion(cellIndex, pos, 45, ImageRegionCellType.Exp, (int)exp);
                    virtualRegion.AddRegion(pictureRegion);
                }

                for (int i = 0; i < statisticData.Items.Count; i++)
                {
                    rewardItemList.Add(statisticData.Items[i]);
                    var pos = GetCellPosition();
                    virtualRegion.AddRegion(new PictureAnimRegion(cellIndex, pos.X, pos.Y, 45, 45, PictureRegionCellType.Item, statisticData.Items[i]));
                }
            }
            else
            {
                resource = (new GameResource()).ToArray();
            }
            show = true;
            Reward();

            UserProfile.Profile.InfoEquip.CheckExpireAndDura(false);
        }