private void ProcessRows_player() { int itct = dg_player.Items.Count; for (int i = 0; i < itct; i++) { ///var row = dg_player.ItemContainerGenerator.ContainerFromItem(pl) as DataGridRow; gamePlayer pl = dg_player.Items[i] as gamePlayer; var row = dg_player.ItemContainerGenerator.ContainerFromIndex(i) as DataGridRow; if (row != null) { if (pl.NAME == "PAX") { row.Background = Brushes.YellowGreen; } else if (pl.NAME == null) { row.Background = Brushes.Azure; } else { row.Background = Brushes.Yellow; } } } }
private void dg_games_DClick(object sender, RoutedEventArgs e) { List <gamePlayer> temp = new List <gamePlayer>(); gamePlayer pltemp = new gamePlayer(); foreach (var dataItem in dg_games.SelectedItems) { myGame game = dataItem as myGame; pltemp.RACE = game.REPLAY; temp.Add(pltemp); foreach (gamePlayer pl in game.PLAYERS) { temp.Add(pl); } } if (temp.Count > 300) { pltemp.RACE = "Visibility ilmit is 300. Sorry."; List <gamePlayer> bab = new List <gamePlayer>(); bab.Add(pltemp); dg_player.ItemsSource = bab; } else { dg_player.ItemsSource = temp; } if (temp.Count < 120) { dg_player.EnableRowVirtualization = false; Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.ApplicationIdle, new Action(ProcessRows_player)); } //ProcessRows_player(); }
public byte[] Serialize(object obj) { if ((obj is Game) == false) throw new InvalidOperationException("obj must be typeof Game"); var game = obj as Game; var rootPath = new DirectoryInfo(game.InstallPath).FullName; var save = new game(); save.id = game.Id.ToString(); save.name = game.Name; save.card = new gameCard(); save.card.back = game.CardSize.Back; save.card.front = game.CardSize.Front; save.card.height = game.CardSize.Height.ToString(); save.card.width = game.CardSize.Width.ToString(); save.card.cornerRadius = game.CardSize.CornerRadius.ToString(); save.version = game.Version.ToString(); save.authors = string.Join(",", game.Authors); save.description = game.Description; save.gameurl = game.GameUrl; save.iconurl = game.IconUrl; save.tags = string.Join(" ", game.Tags); save.octgnVersion = game.OctgnVersion.ToString(); save.markersize = game.MarkerSize; save.usetwosidedtable = game.UseTwoSidedTable ? boolean.True : boolean.False; save.noteBackgroundColor = game.NoteBackgroundColor; save.noteForegroundColor = game.NoteForegroundColor; save.scriptVersion = game.ScriptVersion == null ? null : game.ScriptVersion.ToString(); #region Variables save.variables = (game.Variables ?? new List<Variable>()).Select(x => new gameVariable() { @default = x.Default.ToString(), global = x.Global ? boolean.True : boolean.False, name = x.Name, reset = x.Reset ? boolean.True : boolean.False, }).ToArray(); #endregion #region table save.table = SerializeGroup(game.Table, rootPath); #endregion table #region gameBoards if (game.GameBoards != null) { var boardList = new List<gameBoardDef>(); foreach (var b in game.GameBoards) { var board = new gameBoardDef(); board.name = b.Value.Name; board.x = b.Value.XPos.ToString(); board.y = b.Value.YPos.ToString(); board.width = b.Value.Width.ToString(); board.height = b.Value.Height.ToString(); board.src = (b.Value.Source ?? "").Replace(rootPath, ""); boardList.Add(board); } save.gameboards.gameboard = boardList.ToArray(); } #endregion gameBoards #region shared if (game.GlobalPlayer != null) { var gs = new gameShared(); var clist = new List<counter>(); foreach (var counter in game.GlobalPlayer.Counters) { var c = new counter(); c.name = counter.Name; c.icon = (counter.Icon ?? "").Replace(rootPath, ""); c.reset = counter.Reset ? boolean.True : boolean.False; c.@default = counter.Start.ToString(); clist.Add(c); } var glist = new List<group>(); foreach (var group in game.GlobalPlayer.Groups) { glist.Add(SerializeGroup(group, rootPath)); } gs.group = glist.ToArray(); gs.counter = clist.ToArray(); save.shared = gs; } #endregion shared #region player if (game.Player != null) { var player = new gamePlayer(); var ilist = new List<object>(); foreach (var counter in game.Player.Counters) { var c = new counter(); c.name = counter.Name; c.icon = (counter.Icon ?? "").Replace(rootPath, ""); c.reset = counter.Reset ? boolean.True : boolean.False; c.@default = counter.Start.ToString(); ilist.Add(c); } foreach (var v in game.Player.GlobalVariables) { var gv = new gamePlayerGlobalvariable(); gv.name = v.Name; gv.value = v.Value; ilist.Add(gv); } ilist.Add(SerializeGroup(game.Player.Hand, rootPath)); foreach (var g in game.Player.Groups) { ilist.Add(SerializeGroup(g, rootPath)); } player.Items = ilist.ToArray(); player.summary = game.Player.IndicatorsFormat; save.player = player; } #endregion player #region documents if (game.Documents != null) { var docList = new List<gameDocument>(); foreach (var d in game.Documents) { var doc = new gameDocument(); doc.icon = (d.Icon ?? "").Replace(rootPath, ""); doc.name = d.Name; doc.src = (d.Source ?? "").Replace(rootPath, ""); docList.Add(doc); } save.documents = docList.ToArray(); } #endregion documents #region sounds if (game.Sounds != null) { var soundList = new List<gameSound>(); foreach (var d in game.Sounds) { var doc = new gameSound(); doc.name = d.Value.Name; doc.src = (d.Value.Src ?? "").Replace(rootPath, ""); soundList.Add(doc); } save.sounds = soundList.ToArray(); } #endregion sounds #region deck if (game.DeckSections != null) { var dl = new List<deckSection>(); foreach (var s in game.DeckSections) { var sec = new deckSection(); sec.name = s.Value.Name; sec.group = s.Value.Group; dl.Add(sec); } save.deck = dl.ToArray(); } if (game.SharedDeckSections != null) { var dl = new List<deckSection>(); foreach (var s in game.SharedDeckSections) { var sec = new deckSection(); sec.name = s.Value.Name; sec.group = s.Value.Group; dl.Add(sec); } save.sharedDeck = dl.ToArray(); } #endregion deck #region card if (game.CustomProperties != null) { var pl = new List<propertyDef>(); foreach (var prop in game.CustomProperties) { if (prop.Name == "Name") continue; var pd = new propertyDef(); pd.name = prop.Name; pd.type = (propertyDefType)Enum.Parse(typeof(propertyDefType), prop.Type.ToString()); pd.hidden = prop.Hidden.ToString(); pd.ignoreText = prop.IgnoreText ? boolean.True : boolean.False; switch (prop.TextKind) { case PropertyTextKind.FreeText: pd.textKind = propertyDefTextKind.Free; break; case PropertyTextKind.Enumeration: pd.textKind = propertyDefTextKind.Enum; break; case PropertyTextKind.Tokens: pd.textKind = propertyDefTextKind.Tokens; break; } pl.Add(pd); } save.card.property = pl.ToArray(); } #endregion card #region fonts var flist = new List<gameFont>(); if (game.ChatFont.IsSet()) { var f = new gameFont(); f.src = (game.ChatFont.Src ?? "").Replace(rootPath, ""); f.size = (uint)game.ChatFont.Size; f.target = fonttarget.chat; flist.Add(f); } if (game.ContextFont.IsSet()) { var f = new gameFont(); f.src = (game.ContextFont.Src ?? "").Replace(rootPath, ""); f.size = (uint)game.ContextFont.Size; f.target = fonttarget.context; flist.Add(f); } if (game.NoteFont.IsSet()) { var f = new gameFont(); f.src = (game.NoteFont.Src ?? "").Replace(rootPath, ""); f.size = (uint)game.NoteFont.Size; f.target = fonttarget.notes; flist.Add(f); } if (game.DeckEditorFont.IsSet()) { var f = new gameFont(); f.src = (game.DeckEditorFont.Src ?? "").Replace(rootPath, ""); f.size = (uint)game.DeckEditorFont.Size; f.target = fonttarget.deckeditor; flist.Add(f); } save.fonts = flist.ToArray(); #endregion fonts #region scripts if (game.Scripts != null) { var scriptList = new List<gameScript>(); foreach (var script in game.Scripts) { var f = new gameScript(); f.src = script; scriptList.Add(f); } save.scripts = scriptList.ToArray(); } #endregion scripts #region events if (game.Events != null) { var eventList = new List<gameEvent>(); foreach (var e in game.Events.SelectMany(x => x.Value)) { var eve = new gameEvent(); eve.name = e.Name; eve.action = e.PythonFunction; eventList.Add(eve); } save.events = eventList.ToArray(); } #endregion events #region proxygen save.proxygen = new gameProxygen(); save.proxygen.definitionsrc = game.ProxyGenSource; #endregion proxygen #region globalvariables if (game.GlobalVariables != null) { var gllist = new List<gameGlobalvariable>(); foreach (var gv in game.GlobalVariables) { var v = new gameGlobalvariable(); v.name = gv.Name; v.value = gv.Value; gllist.Add(v); } save.globalvariables = gllist.ToArray(); } #endregion globalvariables #region GameModes if (game.Modes != null) { var list = new List<gameGameMode>(); foreach (var m in game.Modes) { var nm = new gameGameMode(); nm.name = m.Name; nm.image = m.Image = (m.Image ?? "").Replace(rootPath, ""); nm.playerCount = m.PlayerCount; nm.shortDescription = nm.shortDescription; list.Add(nm); } save.gameModes = list.ToArray(); } #endregion GameModes var serializer = new XmlSerializer(typeof(game)); directory = new FileInfo(game.InstallPath).Directory.FullName; using (var fs = File.Open(game.Filename, FileMode.Create, FileAccess.Write, FileShare.None)) { serializer.Serialize(fs, save); } return File.ReadAllBytes(game.Filename); }
public byte[] Serialize(object obj) { if ((obj is Game) == false) { throw new InvalidOperationException("obj must be typeof Game"); } var game = obj as Game; var rootPath = new DirectoryInfo(game.InstallPath).FullName; var save = new game(); save.id = game.Id.ToString(); save.name = game.Name; save.card = new gameCard(); save.card.back = game.CardBack; save.card.front = game.CardFront; save.card.height = game.CardHeight.ToString(); save.card.width = game.CardWidth.ToString(); save.card.cornerRadius = game.CardCornerRadius.ToString(); save.version = game.Version.ToString(); save.authors = string.Join(",", game.Authors); save.description = game.Description; save.gameurl = game.GameUrl; save.iconurl = game.IconUrl; save.tags = string.Join(" ", game.Tags); save.octgnVersion = game.OctgnVersion.ToString(); save.markersize = game.MarkerSize; save.usetwosidedtable = game.UseTwoSidedTable ? boolean.True : boolean.False; save.noteBackgroundColor = game.NoteBackgroundColor; save.noteForegroundColor = game.NoteForegroundColor; save.scriptVersion = game.ScriptVersion == null ? null : game.ScriptVersion.ToString(); #region Variables save.variables = (game.Variables ?? new List <Variable>()).Select(x => new gameVariable() { @default = x.Default.ToString(), global = x.Global ? boolean.True : boolean.False, name = x.Name, reset = x.Reset ? boolean.True : boolean.False, }).ToArray(); #endregion #region table save.table = SerializeGroup(game.Table, rootPath); #endregion table #region shared if (game.GlobalPlayer != null) { var gs = new gameShared(); var clist = new List <counter>(); foreach (var counter in game.GlobalPlayer.Counters) { var c = new counter(); c.name = counter.Name; c.icon = (counter.Icon ?? "").Replace(rootPath, ""); c.reset = counter.Reset ? boolean.True : boolean.False; c.@default = counter.Start.ToString(); clist.Add(c); } var glist = new List <group>(); foreach (var group in game.GlobalPlayer.Groups) { glist.Add(SerializeGroup(group, rootPath)); } gs.group = glist.ToArray(); gs.counter = clist.ToArray(); save.shared = gs; } #endregion shared #region player if (game.Player != null) { var player = new gamePlayer(); var ilist = new List <object>(); foreach (var counter in game.Player.Counters) { var c = new counter(); c.name = counter.Name; c.icon = (counter.Icon ?? "").Replace(rootPath, ""); c.reset = counter.Reset ? boolean.True : boolean.False; c.@default = counter.Start.ToString(); ilist.Add(c); } foreach (var v in game.Player.GlobalVariables) { var gv = new gamePlayerGlobalvariable(); gv.name = v.Name; gv.value = v.Value; ilist.Add(gv); } ilist.Add(SerializeGroup(game.Player.Hand, rootPath)); foreach (var g in game.Player.Groups) { ilist.Add(SerializeGroup(g, rootPath)); } player.Items = ilist.ToArray(); player.summary = game.Player.IndicatorsFormat; save.player = player; } #endregion player #region documents if (game.Documents != null) { var docList = new List <gameDocument>(); foreach (var d in game.Documents) { var doc = new gameDocument(); doc.icon = (d.Icon ?? "").Replace(rootPath, ""); doc.name = d.Name; doc.src = (d.Source ?? "").Replace(rootPath, ""); docList.Add(doc); } save.documents = docList.ToArray(); } #endregion documents #region sounds if (game.Sounds != null) { var soundList = new List <gameSound>(); foreach (var d in game.Sounds) { var doc = new gameSound(); doc.name = d.Value.Name; doc.src = (d.Value.Src ?? "").Replace(rootPath, ""); soundList.Add(doc); } save.sounds = soundList.ToArray(); } #endregion sounds #region deck if (game.DeckSections != null) { var dl = new List <deckSection>(); foreach (var s in game.DeckSections) { var sec = new deckSection(); sec.name = s.Value.Name; sec.group = s.Value.Group; dl.Add(sec); } save.deck = dl.ToArray(); } if (game.SharedDeckSections != null) { var dl = new List <deckSection>(); foreach (var s in game.SharedDeckSections) { var sec = new deckSection(); sec.name = s.Value.Name; sec.group = s.Value.Group; dl.Add(sec); } save.sharedDeck = dl.ToArray(); } #endregion deck #region card if (game.CustomProperties != null) { var pl = new List <propertyDef>(); foreach (var prop in game.CustomProperties) { if (prop.Name == "Name") { continue; } var pd = new propertyDef(); pd.name = prop.Name; pd.type = (propertyDefType)Enum.Parse(typeof(propertyDefType), prop.Type.ToString()); pd.hidden = prop.Hidden.ToString(); pd.ignoreText = prop.IgnoreText ? boolean.True : boolean.False; switch (prop.TextKind) { case PropertyTextKind.FreeText: pd.textKind = propertyDefTextKind.Free; break; case PropertyTextKind.Enumeration: pd.textKind = propertyDefTextKind.Enum; break; case PropertyTextKind.Tokens: pd.textKind = propertyDefTextKind.Tokens; break; } pl.Add(pd); } save.card.property = pl.ToArray(); } #endregion card #region fonts if (game.Fonts != null) { var flist = new List <gameFont>(); foreach (var font in game.Fonts) { var f = new gameFont(); f.src = (font.Src ?? "").Replace(rootPath, ""); f.size = (uint)font.Size; f.target = (fonttarget)Enum.Parse(typeof(fonttarget), font.Target); flist.Add(f); } save.fonts = flist.ToArray(); } #endregion fonts #region scripts if (game.Scripts != null) { var scriptList = new List <gameScript>(); foreach (var script in game.Scripts) { var f = new gameScript(); f.src = script; scriptList.Add(f); } save.scripts = scriptList.ToArray(); } #endregion scripts #region events if (game.Events != null) { var eventList = new List <gameEvent>(); foreach (var e in game.Events.SelectMany(x => x.Value)) { var eve = new gameEvent(); eve.name = e.Name; eve.action = e.PythonFunction; eventList.Add(eve); } save.events = eventList.ToArray(); } #endregion events #region proxygen save.proxygen = new gameProxygen(); save.proxygen.definitionsrc = game.ProxyGenSource; #endregion proxygen #region globalvariables if (game.GlobalVariables != null) { var gllist = new List <gameGlobalvariable>(); foreach (var gv in game.GlobalVariables) { var v = new gameGlobalvariable(); v.name = gv.Name; v.value = gv.Value; gllist.Add(v); } save.globalvariables = gllist.ToArray(); } #endregion globalvariables #region GameModes if (game.Modes != null) { var list = new List <gameGameMode>(); foreach (var m in game.Modes) { var nm = new gameGameMode(); nm.name = m.Name; nm.image = m.Image = (m.Image ?? "").Replace(rootPath, ""); nm.playerCount = m.PlayerCount; nm.shortDescription = nm.shortDescription; list.Add(nm); } save.gameModes = list.ToArray(); } #endregion GameModes var serializer = new XmlSerializer(typeof(game)); directory = new FileInfo(game.InstallPath).Directory.FullName; using (var fs = File.Open(game.Filename, FileMode.Create, FileAccess.Write, FileShare.None)) { serializer.Serialize(fs, save); } return(File.ReadAllBytes(game.Filename)); }
public void collectData(List <myReplay> single_replays) { myGame game = new myGame(); gamePlayer player = new gamePlayer(); List <gamePlayer> gameplayer = new List <gamePlayer>(); foreach (myReplay srep in single_replays) { if (String.Equals(srep.NAME, player_name)) { game.ID = srep.ID; game.REPLAY = srep.REPLAY; game.GAMETIME = srep.GAMETIME; player.POS = srep.PLAYERID; player.RACE = srep.RACE; player.NAME = srep.NAME; player.KILLSUM = srep.KILLSUM; player.PDURATION = srep.DURATION; player.INCOME = srep.INCOME; player.ARMY = srep.ARMY; player.RESULT = 2; player.REPLAY = srep.REPLAY; player.ID = srep.ID; game.DURATION = srep.DURATION; int result = srep.RESULT; if (srep.PLAYERID <= 3) { player.TEAM = 0; if (srep.RESULT == 1) { player.RESULT = 1; game.WINNER = 0; } else { game.WINNER = 1; } } else if (srep.PLAYERID > 3) { player.TEAM = 1; if (srep.RESULT == 1) { player.RESULT = 1; game.WINNER = 1; } else { game.WINNER = 0; } } } else { } } int minkillsum = 0; int minarmy = 0; double minincome = 0; int maxleaver = 0; List <string> races = new List <string>(); foreach (myReplay srep in single_replays) { game.PLAYERCOUNT++; if (minkillsum == 0) { minkillsum = srep.KILLSUM; } else { if (srep.KILLSUM < minkillsum) { minkillsum = srep.KILLSUM; } } if (minincome == 0) { minincome = srep.INCOME; } else { if (srep.INCOME < minincome) { minincome = srep.INCOME; } } if (minarmy == 0) { minarmy = srep.ARMY; } else { if (srep.ARMY < minarmy) { minarmy = srep.ARMY; } } int leaver = game.DURATION - srep.DURATION; if (maxleaver == 0) { maxleaver = leaver; } else { if (leaver > maxleaver) { maxleaver = leaver; } } races.Add(srep.RACE); if (String.Equals(srep.NAME, player_name)) { gameplayer.Add(player); players.Add(player); } else { gamePlayer mplayer = new gamePlayer(); mplayer.POS = srep.PLAYERID; mplayer.RACE = srep.RACE; mplayer.NAME = srep.NAME; mplayer.KILLSUM = srep.KILLSUM; mplayer.PDURATION = srep.DURATION; mplayer.INCOME = srep.INCOME; mplayer.ARMY = srep.ARMY; mplayer.REPLAY = srep.REPLAY; mplayer.ID = srep.ID; mplayer.RESULT = 2; if (srep.PLAYERID <= 3) { mplayer.TEAM = 0; if (game.WINNER == 0) { mplayer.RESULT = 1; } } else if (srep.PLAYERID > 3) { mplayer.TEAM = 1; if (game.WINNER == 1) { mplayer.RESULT = 1; } } gameplayer.Add(mplayer); players.Add(mplayer); } } game.MAXLEAVER = maxleaver; game.MINARMY = minarmy; game.MININCOME = minincome; game.MINKILLSUM = minkillsum; game.RACES = new List <string>(races); game.PLAYERS = new List <gamePlayer>(gameplayer); games.Add(game); gameplayer.Clear(); }