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; } }
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(); } }
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(); }
/// <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]; }
/// <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]; }
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); }
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(); }
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(); }
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(); }
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; } } }
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(); }
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); } }
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(); } }
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); }
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); }
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(); }
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(); } } }
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); } }
public static bool IsMonster(int id) { PeopleConfig peopleConfig = ConfigData.GetPeopleConfig(id); return(peopleConfig.Type == 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(); } }
public static bool IsPeople(int id) { PeopleConfig peopleConfig = ConfigData.GetPeopleConfig(id); return(peopleConfig.Type > 0 && peopleConfig.Type < 100); }
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); }