public EpizodeProperties(Epizode E) { InitializeComponent(); if (E == null) { this.Epizode = new Epizode(); } else { this.Epizode = E; this.txtEpizodeText.Text = this.Epizode.EpizodeText; this.txtEpizodeNumber.Text = this.Epizode.EpizodeNumber.ToString(); } this.dgcmbStats.ItemsSource = Globals.GameElements.Stats; this.dgcmbItems.ItemsSource = Globals.GameElements.Items; this.dgInventories.ItemsSource = this.Epizode.lstInventories; this.dgStats.ItemsSource = this.Epizode.lstStats; if (this.Epizode.LargeIcon != null) { BitmapImage bitmapimage = new BitmapImage(); bitmapimage.BeginInit(); bitmapimage.StreamSource = new MemoryStream(this.Epizode.LargeIconSerialized); bitmapimage.EndInit(); this.imgBox.Source = bitmapimage; } }
private void diagram_ShapeDoubleClicked_1(object sender, ShapeRoutedEventArgs e) { RadDiagramShape shape = (RadDiagramShape)e.Shape; Epizode Ep = (Epizode)shape.Tag; EpizodeProperties win = new EpizodeProperties(Ep); var result = win.ShowDialog(); if (result == true) { shape.Tag = Ep; e.Shape.Content = ((Epizode)shape.Tag).EpizodeNumber; } }
private void btnGenerateGame_Click_1(object sender, RoutedEventArgs e) { Game Game = new Game(); Game.lstStats = Globals.GameElements.StartupStats; Game.lstEpizodes = new List <EpizodeXML>(); foreach (RadDiagramShape sh in this.diagram.Shapes) { if (sh.Tag != null) { EpizodeXML Ep = new EpizodeXML(); Epizode Source = sh.Tag as Epizode; Ep.ID = Source.EpizodeNumber; Ep.Inventories = Source.lstInventories; Ep.Skills = Source.lstSkills; Ep.Stats = Source.lstStats; Ep.Text = Crypto.Encrypt(Source.EpizodeText, "pass"); Ep.image = Source.LargeIconSerialized; Ep.Choices = new Choices(); Game.lstEpizodes.Add(Ep); } } foreach (RadDiagramConnection con in this.diagram.Connections) { var source = con.Source as RadDiagramShape; Epizode Epizode; try { Epizode = source.Tag as Epizode; } catch { this.diagram.SelectedItem = con; MessageBox.Show("Hanging connection"); return; } var EpizodeXML = Game.lstEpizodes.FirstOrDefault(ep => ep.ID == Epizode.EpizodeNumber); var Choice = con.Content as ConnectionXML; if (EpizodeXML.Choices == null) { EpizodeXML.Choices = new Choices(); } try { switch (Choice.Type) { case ConnectionTypes.eDecision: Choice.Decision.GoTo = ((Epizode)((RadDiagramShape)con.Target).Tag).EpizodeNumber; EpizodeXML.Choices.Decisions.Add(Choice.Decision); break; case ConnectionTypes.eChance: Choice.Chance.GoTo = ((Epizode)((RadDiagramShape)con.Target).Tag).EpizodeNumber; EpizodeXML.Choices.Chances.Add(Choice.Chance); break; case ConnectionTypes.eBattle: Choice.Battle.GoTo = ((Epizode)((RadDiagramShape)con.Target).Tag).EpizodeNumber; EpizodeXML.Choices.Battles.Add(Choice.Battle); break; case ConnectionTypes.eCondition: Choice.Condition.GoTo = ((Epizode)((RadDiagramShape)con.Target).Tag).EpizodeNumber; EpizodeXML.Choices.Conditions.Add(Choice.Condition); break; case ConnectionTypes.eChanceRollback: Choice.Condition.GoTo = ((Epizode)((RadDiagramShape)con.Target).Tag).EpizodeNumber; EpizodeXML.Choices.Conditions.Add(Choice.Condition); break; case ConnectionTypes.eInventoryCondition: EpizodeXML.Choices.InventoryConditions.Add(Choice.InventoryCondition); break; default: throw new ArgumentOutOfRangeException(); } } catch { this.diagram.SelectedItem = con; MessageBox.Show("Hanging destination connection"); return; } } var dialog = new SaveFileDialog(); if (dialog.ShowDialog() == true) { var nam = dialog.FileName; XmlSerializer serializer = new XmlSerializer(typeof(Game)); TextWriter writ = new StreamWriter(nam); serializer.Serialize(writ, Game); writ.Close(); } }