Ejemplo n.º 1
0
        /*
         * FUNCKJE PRYWATNE DO OBSŁUGI POZIOMU ZE ZGADYWANIEM POSTACI.
         */
        private void PrepareGuessCharacter()
        {
            // Wylosuj element do zgadnięcia
            GuessCharacter = (from character in Character.CharacterList
                           where character.IsActive
                           orderby Guid.NewGuid()
                           select character).FirstOrDefault();
            // Ustaw element jako nieaktywny, aby nie pojawił się w kolejnych planszach
            GuessCharacter.IsActive = false;

            // Uzupełnij zdjęcie i nazwę zgadywanego elementu na planszy
            guessImage.Source = new BitmapImage(new Uri(GuessCharacter.Image, UriKind.Relative));
            guessTitle.Text = GuessCharacter.Name;

            // Generate random slots with correct & wrong components
            var slots = GetRandomSlots();

            List<Skill> slotItems = GuessCharacter.Components();
            slotItems.AddRange(
                (from skill in Skill.SkillList
                 where !slotItems.Contains(skill)
                 orderby Guid.NewGuid()
                 select skill).Take(slots.Count() - slotItems.Count)
            );
            slotItems = slotItems.OrderBy(x => Guid.NewGuid()).ToList();

            int counter = 0;
            foreach (Border slot in slots)
            {
                Skill slotObject = slotItems[counter];

                Image image = new Image();
                image.Source = new BitmapImage(new Uri(slotObject.Image, UriKind.Relative));
                image.Tap += CharacterTap;

                slot.Child = image;

                GuessCharacterDict.Add(image, slotObject);

                counter++;
            }
        }
Ejemplo n.º 2
0
        private void LoadData()
        {
            // Load items
            System.IO.Stream dataStream = Application.GetResourceStream(new Uri(@"/QuizLeague;component/Assets/Initial/Data/items.json",
                UriKind.Relative)).Stream;

            using (StreamReader reader = new StreamReader(dataStream))
            {
                JObject o = (JObject)JToken.ReadFrom(new JsonTextReader(reader));

                foreach (KeyValuePair<string, JToken> x in o)
                {
                    Item item = new Item(Convert.ToInt32(x.Key.ToString()), x.Value["name"].ToString(), x.Value["description"].ToString());
                    item.Image = "Assets/Initial/Images/Items/" + x.Value["image"].ToString();

                    foreach (string itemId in x.Value["into"].ToObject<List<string>>())
                        item.UsedTo.Add(Convert.ToInt16(itemId));

                    foreach (string itemId in x.Value["from"].ToObject<List<string>>())
                        item.CreatedFrom.Add(Convert.ToInt16(itemId));
                }
            }

            // Load characters & skills
            dataStream = Application.GetResourceStream(new Uri(@"/QuizLeague;component/Assets/Initial/Data/characters.json", UriKind.Relative)).Stream;

            using (StreamReader reader = new StreamReader(dataStream))
            {
                JObject o = (JObject)JToken.ReadFrom(new JsonTextReader(reader));

                foreach (KeyValuePair<string, JToken> x in o)
                {
                    Character character = new Character(x.Key.ToString(), x.Value["name"].ToString(), x.Value["description"].ToString());
                    character.Image = "Assets/Initial/" + x.Value["image"].ToString();
                    foreach (Skill characterSkill in x.Value["skills"].ToObject<List<Skill>>())
                    {
                        characterSkill.Image = "Assets/Initial/" + characterSkill.Image;
                        characterSkill.Character = character;

                        character.SkillList.Add(characterSkill);
                        Skill.SkillList.Add(characterSkill);
                    }

                }
            }

            // Load countries
            dataStream = Application.GetResourceStream(new Uri(@"/QuizLeague;component/Assets/Initial/Data/countries.json", UriKind.Relative)).Stream;

            using (StreamReader reader = new StreamReader(dataStream))
            {
                JObject o = (JObject)JToken.ReadFrom(new JsonTextReader(reader));

                foreach (KeyValuePair<string, JToken> x in o)
                {
                    Country country = new Country();
                    country.Iso = x.Key.ToString();
                    country.Name = x.Value.ToString();

                    Country.CountryList.Add(country);
                }
            }
        }