public NarrativeWidget(Narrative narr)
        {
            InitializeComponent();

            _narrative = new Narrative();
            _narrative = narr;
        }
Exemple #2
0
        public NarrativeDetailWindow(Narrative narr)
        {
            InitializeComponent();

            _narrative = new Narrative();
            _narrative = narr;
        }
        public void AddNarrative(Narrative narr)
        {
            NarrativeWidget nw = new NarrativeWidget(narr);

            nw.Margin = new Thickness(20);
            nw.authorNameTextBox.Content     = narr.AuthorName;
            nw.capabilityTitleTextBlock.Text = narr.Capability.CapabilityName;

            narrativeWrapPanel.Children.Add(nw);
        }
        // FOR PLAYER
        private void NarrativeSubmittedEventHandler(object sender, RoutedEventArgs e)
        {
            string pname = ((PlayerGameControl)e.OriginalSource).GetPlayerName();

            Narrative narr = new Narrative();

            narr.AuthorName    = pname;
            narr.SessionName   = sessionData.SessionName;
            narr.Capability    = ((PlayerGameControl)e.OriginalSource).GetCapability();
            narr.NarrativeData = ((PlayerGameControl)e.OriginalSource).NarrativeData;

            playerNarratives.Add(narr);

            // save data
            try
            {
                string         fname      = System.Windows.Forms.Application.StartupPath + @"\PlayerData\" + pname + "-narratives.json";
                JsonSerializer serializer = new JsonSerializer();
                serializer.NullValueHandling = NullValueHandling.Ignore;

                using (StreamWriter sw = new StreamWriter(fname))
                    using (JsonWriter writer = new JsonTextWriter(sw))
                    {
                        //serializer.Serialize(writer, narr);
                        serializer.Serialize(writer, playerNarratives);
                    }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }


            // send data to host
            // 1 message per field
            // check length and divide as needed id, votes
            string s = String.Format("NR|{0}|{1}%{2}|", pname, narr.Capability.CapabilityId, narr.Capability.Votes);
            string result;

            foreach (NarrativeElement ne in narr.NarrativeData)
            {
                s += String.Format("|{0}%{1}|", ne.ElementName, ne.ElementContent);
            }
            //s = String.Format("NR|{0}|END|1", pname);
            result = network.SendMessage(s);
        }
        // FOR HOST
        private void HandleNarrativeData(string[] data)
        {
            string pname = data[1];

            Capability c = new Capability();

            string[] tmp = data[2].Split('%');

            foreach (Capability cap in sessionData.CapabilityData)
            {
                if (cap.CapabilityId == int.Parse(tmp[0]))
                {
                    c = cap;
                    break;
                }
            }
            //c = capabilityList[ int.Parse(tmp[0]) ]; // need to loop through and match against id
            //c.Votes = int.Parse(tmp[1]);

            Narrative narr = new Narrative();
            List <NarrativeElement> narrativeData = new List <NarrativeElement>();

            narr.AuthorName  = pname;
            narr.SessionName = "TEST";
            narr.Capability  = c;

            for (int i = 3; i < data.Length; i++)
            {
                tmp = data[i].Split('%');
                NarrativeElement ne = new NarrativeElement();
                ne.ElementName    = tmp[0];
                ne.ElementContent = tmp[1];
                narrativeData.Add(ne);
            }

            narr.NarrativeData = narrativeData;

            // store for later
            playerNarratives.Add(narr);

            try
            {
                string         fname      = System.Windows.Forms.Application.StartupPath + @"\HostData\player-narratives.json";
                JsonSerializer serializer = new JsonSerializer();
                serializer.NullValueHandling = NullValueHandling.Ignore;

                using (StreamWriter sw = new StreamWriter(fname))
                    using (JsonWriter writer = new JsonTextWriter(sw))
                    {
                        serializer.Serialize(writer, playerNarratives);
                    }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }


            // ADD TO HOSTNARRATIVESPANEL
            this.Dispatcher.Invoke(() =>
            {
                //if (!hostGameControl.hostNarrativePanel.IsEnabled)
                //{
                //    hostGameControl.hostNarrativesTab.Visibility = Visibility.Visible;
                //    hostGameControl.gameTabs.SelectedItem = hostGameControl.hostNarrativesTab;
                //}
                //hostGameControl.hostNarrativePanel.AddNarrative(narr);
            });

            // add to shared display
            this.Dispatcher.Invoke(() =>
            {
                //sharedDisplay.sharedNarrativeViewPanel.AddNarrative(narr);
            });
        }