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;
            }
        }
Esempio n. 2
0
        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;
            }
        }
Esempio n. 3
0
        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();
            }
        }