示例#1
0
    public string PackageList(Clues cluelist)
    {
        clueList.clue001 = "This is the first clue.";
        string json = JsonUtility.ToJson(clueList);

        return(json);
    }
示例#2
0
 public void AddDocumentToClue(string clue, Document doc)
 {
     string[] clueFragments = SeperateClueFragments(clue);
     if (Clues.ContainsKey(clueFragments[0]) == false)
     {
         Clues[clueFragments[0]] = new ClueNode();
     }
     Clues[clueFragments[0]].AddDocument(clueFragments, 0, doc);
 }
示例#3
0
 public List <Document> GetDocumentsFromPhrases(string[] cluePhrases)
 {
     if (Clues.ContainsKey(cluePhrases[0]) != false)
     {
         return(Clues[cluePhrases[0]].GetDocuments(cluePhrases, 0));
     }
     else
     {
         return(null);
     }
 }
示例#4
0
 public ClueNode GetClueNodeFromPhrases(string[] cluePhrases)
 {
     if (Clues.ContainsKey(cluePhrases[0]) != false)
     {
         return(Clues[cluePhrases[0]].GetNode(cluePhrases, 0));
     }
     else
     {
         return(null);
     }
 }
示例#5
0
        public async void RefreshClues()
        {
            IsRefreshing = true;
            Clues.Clear();
            var clues = await _dataService.GetCluesAsync(_settingsService.RaceId);

            foreach (var clue in clues)
            {
                Clues.Add(clue);
            }
            IsRefreshing = false;
        }
示例#6
0
        public void RemoveClue(Clue oldClue)
        {
            // Remove from document tags record
            Clues.Remove(oldClue);

            // Remove from home as well
            Home home = (App.Current as MULTITUDE.App).CurrentHome;

            ClueManager.Manager.RemoveClue(oldClue, this);

            // Also add current document to forgotten universe if we have no clues left and we don't have a name
            home.Relocate(this);
        }
示例#7
0
 //Generate2Clues()
 //Parameters: none
 //Returns: void
 //Description: Method generates 2 hair and fiber clues by creating a clue object,
 //             and adding it to the base member class List Clues.
 public override void Generate2Clues()
 {
     for (int i = 0; i < _NumOf; i++)
     {
         RandomGenerator = new Random(Guid.NewGuid().GetHashCode());
         Clues.Add(new ClueInfo()
         {
             RowCoordinates    = RandomGenerator.Next(0, TotalRows - 1),
             ColumnCoordinates = RandomGenerator.Next(0, TotalColumns - 1),
             Img = Properties.Resources.hair
         });
     }
 }
示例#8
0
 public OverallClueLengthTests()
 {
     testClueData = new List <ClueData>();
     testClueData.Add(new ClueData(2, "black"));
     testClueData.Add(new ClueData(5, "black"));
     testClueData.Add(new ClueData(3, "black"));
     testClues      = new Clues(testClueData);
     colourClueData = new List <ClueData>();
     colourClueData.Add(new ClueData(2, "red"));
     colourClueData.Add(new ClueData(5, "green"));
     colourClueData.Add(new ClueData(7, "green"));
     colourClueData.Add(new ClueData(2, "red"));
     colourClues = new Clues(colourClueData);
 }
示例#9
0
    private void ShowClues(List <int>[] rows, List <int>[] cols)
    {
        cluesRow = new Clues[height];
        cluesCol = new Clues[width];
        float xStart = GetOrigin().x;
        float yStart = GetOrigin().y;
        int   x;
        int   y = 0;
        int   i = 0;

        foreach (List <int> row in rows)
        {
            cluesRow[i] = new Clues();
            row.Reverse();
            x = 0;
            foreach (int clue in row)
            {
                cluesRow[i].Add(CreateClue(xStart - 1 - x, yStart + y, clue));
                if (clue == height)
                {
                    cluesRow[i].SetSolved(true);
                }
                x++;
            }
            y++;
            i++;
        }

        yStart += y;

        x = 0;
        i = 0;

        foreach (List <int> col in cols)
        {
            cluesCol[i] = new Clues();
            y           = 0;
            foreach (int clue in col)
            {
                cluesCol[i].Add(CreateClue(xStart + x, yStart + y, clue));
                if (clue == width)
                {
                    cluesCol[i].SetSolved(true);
                }
                y++;
            }
            x++;
            i++;
        }
    }
示例#10
0
        protected override async void OnActivate()
        {
            base.OnActivate();
            IsBusy = true;
            IEnumerable <TeamClue> localClues = await _dataService.GetCluesForTeamAsync(SelectedRace.Id);

            foreach (TeamClue cl in localClues)
            {
                Clues.Add(cl);
            }
            var a = 1;

            IsBusy = false;
        }
示例#11
0
 //Generate2Clues()
 //Parameters: None
 //Returns: None
 //Description: The method creates 2 clue objects and pushes them to the list Clues, belonging
 //             to the base class.
 public override void Generate2Clues()
 {
     for (int i = 0; i < _NumOf; i++)
     {
         //Generates random seed better than using time
         RandomGenerator = new Random(Guid.NewGuid().GetHashCode());
         Clues.Add(new ClueInfo()
         {
             RowCoordinates    = RandomGenerator.Next(0, TotalRows - 1),
             ColumnCoordinates = RandomGenerator.Next(0, TotalColumns - 1),
             Img = Properties.Resources.bloody_hand
         });
     }
 }
示例#12
0
        public void AddClue(Clue clue)
        {
            Clues.Add(clue);

            // Add to home as well; Notice a documetn can add whatever many clues it want but not add to home
            Home home = (App.Current as MULTITUDE.App).CurrentHome;

            ClueManager.Manager.AddClue(clue, this);

            // Also remove current document from forgotten universe if we are adding the first ever clue
            if (Clues.Count == 1)
            {
                home.Relocate(this);
            }

            // Now for the purpose of encapsulation it might seems legit for Home to actively manage its document rather than get informed when its documents get changed; but require documetns to notify their homes isn't a bad design since it can be considered as some sort of event model, with Home being the central repository and all documents actively register/deregister themselves.
        }
示例#13
0
        public List <ClueNode> GetClueNodeFromPartialPhrase(string[] cluePhrases)  // Compared with GetClueNodeFromPhrases(), this function doesn't assume the last keyword phrase to be exact
        {
            // Make a partial copy
            string[] partialPhrases = null;
            Array.Copy(cluePhrases, partialPhrases, cluePhrases.Length - 1);
            // Get node up till that partial copy
            ClueNode node = null;

            if (Clues.ContainsKey(partialPhrases[0]) != false)
            {
                node = Clues[partialPhrases[0]].GetNode(partialPhrases, 0);
            }
            else
            {
                return(null);
            }
            // Check result
            if (node != null)
            {
                // Find partial matches
                List <ClueNode> partialMatches = new List <ClueNode>();
                string          partialPhrase  = cluePhrases[cluePhrases.Length - 1];
                foreach (KeyValuePair <string, ClueNode> entry in node.Children)
                {
                    if (entry.Key.IndexOf(partialPhrase) == 0)
                    {
                        partialMatches.Add(entry.Value);
                    }
                }
                if (partialMatches.Count != 0)
                {
                    return(partialMatches);
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                return(null);
            }
        }
示例#14
0
        /// <summary>
        /// process the effects of using the relic
        /// </summary>
        /// <param name="Clue">potion</param>
        private void ProcessClueUse(Clues clues)
        {
            string message;

            switch (clues.UseAction)
            {
            case Clues.UseActionType.OPENLOCATION:
                message = _gameMap.OpenLocationsByClue(clues.Id);
                CurrentLocationInformation = clues.UseMessage;
                break;

            case Clues.UseActionType.KILLPLAYER:
                OnPlayerDies(clues.UseMessage);
                break;

            default:
                break;
            }
        }
示例#15
0
        //CheckIfClue()
        //Parameters: int rowGuess and int columnGuess, representing the users guess as
        //            to where evidence is.
        //Returns:  Returns an Image, either of the bloody hand, or in the case of the
        //          user guess being wrong. A hint is returned.
        public override Image CheckIfClue(int rowGuess, int columnGuess)
        {
            Image ret;

            //Set New Player Position [0] for row [1] for column
            PlayerPos[0] = rowGuess;
            PlayerPos[1] = columnGuess;
            for (int i = 0; i < _NumOf; i++)
            {
                if ((Clues[i].RowCoordinates == rowGuess) && (Clues[i].ColumnCoordinates == columnGuess))
                {
                    CluesFound++;
                    ret = Clues[i].Img;
                    Clues.RemoveAt(i);
                    return(ret);
                }
            }
            ret = GetHint();
            return(ret);
        }
示例#16
0
    public void AddClues(string key, List <string> cluesToAdd)
    {
        if (key[0] == '-')
        {
            RemoveClues(key.Substring(1));
            return;
        }

        bool cluesHaveBeenAdded = false;

        foreach (Clues currentClues in m_cluesList)
        {
            if (currentClues.key == key)
            {
                currentClues.clues.AddRange(cluesToAdd);
                cluesHaveBeenAdded = true;
            }
        }

        if (!cluesHaveBeenAdded)
        {
            Clues newClues = new Clues();
            newClues.key              = key;
            newClues.clues            = new List <string>();
            newClues.maxClueIndex     = 0;
            newClues.currentClueIndex = 0;
            newClues.clues.AddRange(cluesToAdd);

            if (m_cluesList.Count == 0)
            {
                m_newClueHasBeenChecked = true;
            }

            m_cluesList.Add(newClues);
        }
    }
示例#17
0
        // Search Shorthand clue form
        public void SearchBySimpleClue(int cursorLocation, string[] keyPhrases, out List <ClueFragment> nextClues, out List <Document> foundDocuments, bool bDeep = false)
        {
            // <Dev> Pending implementation cursorLocation

            // Parameters
            string lastKeyPhrase = keyPhrases[keyPhrases.Length - 1];   // Can be a clue or a metaname or a metavalue, can be partial

            nextClues      = new List <ClueFragment>();
            foundDocuments = new List <Document>();

            // Heuristic: Mostly like the last phrase will be a meta because there's little point just entering a clue
            // Use former clues to confine range
            string[] partialPhrases;
            if (keyPhrases.Length > 1)
            {
                partialPhrases = new string[keyPhrases.Length - 1];
                Array.Copy(keyPhrases, partialPhrases, keyPhrases.Length - 1);
            }
            else
            {
                partialPhrases = keyPhrases;
            }
            // Get node up till that partial copy
            ClueNode node = null;

            if (Clues.ContainsKey(partialPhrases[0]) != false)
            {
                node = Clues[partialPhrases[0]].GetNode(partialPhrases, 0);

                // Try as meta
                foreach (Document doc in node.References)
                {
                    if (doc.IsPartialCLue(lastKeyPhrase) || doc.IsPartialMetaNameOrValue(lastKeyPhrase))
                    {
                        foundDocuments.Add(doc);
                    }
                }
                string currentClueString = string.Join("-", partialPhrases);
                if (foundDocuments.Count != 0)
                {
                    // Add further clues at current level
                    foreach (KeyValuePair <string, ClueNode> entry in node.Children)
                    {
                        List <Document> clueDocuments = entry.Value.References;
                        nextClues.Add(new ClueFragment(entry.Key, clueDocuments.Count, currentClueString + '-' + entry.Key, clueDocuments));
                    }
                }
                else
                {
                    // Try as clue
                    foreach (KeyValuePair <string, ClueNode> entry in node.Children)
                    {
                        List <Document> clueDocuments = entry.Value.References;
                        nextClues.Add(new ClueFragment(entry.Key, clueDocuments.Count, currentClueString + '-' + entry.Key, clueDocuments));
                        // foundDocuments.AddRange(clueDocuments); // Add all as possible found
                    }
                    foundDocuments = null;  // or we shouldn't have any found
                }
            }
            else
            {
                nextClues      = null;
                foundDocuments = null;
            }
        }
示例#18
0
    public string SaveClue(string json, string currClue)
    {
        clueList = JsonUtility.FromJson <Clues> (json);

        Debug.Log("Working1");
        if (clueList.clue001 == null)
        {
            clueList.clue001 = currClue;
        }
        else if (clueList.clue002 == "")
        {
            clueList.clue002 = currClue;
        }
        else if (clueList.clue003 == "")
        {
            clueList.clue003 = currClue;
        }
        else if (clueList.clue004 == "")
        {
            clueList.clue004 = currClue;
        }
        else if (clueList.clue005 == "")
        {
            clueList.clue005 = currClue;
        }
        else if (clueList.clue006 == "")
        {
            clueList.clue006 = currClue;
        }
        else if (clueList.clue007 == "")
        {
            clueList.clue007 = currClue;
        }
        else if (clueList.clue008 == "")
        {
            clueList.clue008 = currClue;
        }
        else if (clueList.clue009 == "")
        {
            clueList.clue009 = currClue;
        }
        else if (clueList.clue010 == "")
        {
            clueList.clue010 = currClue;
        }
        else if (clueList.clue011 == "")
        {
            clueList.clue011 = currClue;
        }
        else if (clueList.clue012 == "")
        {
            clueList.clue012 = currClue;
        }
        else if (clueList.clue013 == "")
        {
            clueList.clue013 = currClue;
        }
        else if (clueList.clue014 == "")
        {
            clueList.clue014 = currClue;
        }
        else if (clueList.clue015 == "")
        {
            clueList.clue015 = currClue;
        }
        else if (clueList.clue016 == "")
        {
            clueList.clue016 = currClue;
        }
        else if (clueList.clue017 == "")
        {
            clueList.clue017 = currClue;
        }
        else if (clueList.clue018 == "")
        {
            clueList.clue018 = currClue;
        }
        else if (clueList.clue019 == "")
        {
            clueList.clue019 = currClue;
        }
        else if (clueList.clue020 == "")
        {
            clueList.clue020 = currClue;
        }
        else if (clueList.clue021 == "")
        {
            clueList.clue021 = currClue;
        }
        else if (clueList.clue022 == "")
        {
            clueList.clue022 = currClue;
        }
        else if (clueList.clue023 == "")
        {
            clueList.clue023 = currClue;
        }
        else if (clueList.clue024 == "")
        {
            clueList.clue024 = currClue;
        }
        else if (clueList.clue025 == "")
        {
            clueList.clue025 = currClue;
        }
        else if (clueList.clue026 == "")
        {
            clueList.clue026 = currClue;
        }
        else if (clueList.clue027 == "")
        {
            clueList.clue027 = currClue;
        }
        else if (clueList.clue028 == "")
        {
            clueList.clue028 = currClue;
        }
        else if (clueList.clue029 == "")
        {
            clueList.clue029 = currClue;
        }
        else if (clueList.clue030 == "")
        {
            clueList.clue030 = currClue;
        }
        else if (clueList.clue031 == "")
        {
            clueList.clue031 = currClue;
        }
        else if (clueList.clue032 == "")
        {
            clueList.clue032 = currClue;
        }
        else if (clueList.clue033 == "")
        {
            clueList.clue033 = currClue;
        }
        else if (clueList.clue034 == "")
        {
            clueList.clue034 = currClue;
        }
        else if (clueList.clue035 == "")
        {
            clueList.clue035 = currClue;
        }
        else if (clueList.clue036 == "")
        {
            clueList.clue036 = currClue;
        }
        else if (clueList.clue037 == "")
        {
            clueList.clue037 = currClue;
        }
        else if (clueList.clue038 == "")
        {
            clueList.clue038 = currClue;
        }
        else if (clueList.clue039 == "")
        {
            clueList.clue039 = currClue;
        }
        else
        {
            clueList.clue040 = currClue;
        }

        return(PackageList(clueList));
    }
示例#19
0
    public void DisplayClue(string json)
    {
        clueList = JsonUtility.FromJson <Clues> (json);

        clueNum = UnityEngine.Random.Range(0, 39);
        Debug.Log("Working2");
        Debug.Log(clueNum);
        Debug.Log(clueList.clue001);
        Debug.Log(clueList.clue002);
        if (clueNum == 0)
        {
            myHint.text = clueList.clue001;
        }
        else if (clueNum == 1)
        {
            myHint.text = clueList.clue002;
        }
        else if (clueNum == 2)
        {
            myHint.text = clueList.clue003;
        }
        else if (clueNum == 3)
        {
            myHint.text = clueList.clue004;
        }
        else if (clueNum == 4)
        {
            myHint.text = clueList.clue005;
        }
        else if (clueNum == 5)
        {
            myHint.text = clueList.clue006;
        }
        else if (clueNum == 6)
        {
            myHint.text = clueList.clue007;
        }
        else if (clueNum == 7)
        {
            myHint.text = clueList.clue008;
        }
        else if (clueNum == 8)
        {
            myHint.text = clueList.clue009;
        }
        else if (clueNum == 9)
        {
            myHint.text = clueList.clue010;
        }
        else if (clueNum == 10)
        {
            myHint.text = clueList.clue011;
        }
        else if (clueNum == 11)
        {
            myHint.text = clueList.clue012;
        }
        else if (clueNum == 12)
        {
            myHint.text = clueList.clue013;
        }
        else if (clueNum == 13)
        {
            myHint.text = clueList.clue014;
        }
        else if (clueNum == 14)
        {
            myHint.text = clueList.clue015;
        }
        else if (clueNum == 15)
        {
            myHint.text = clueList.clue016;
        }
        else if (clueNum == 16)
        {
            myHint.text = clueList.clue017;
        }
        else if (clueNum == 17)
        {
            myHint.text = clueList.clue018;
        }
        else if (clueNum == 18)
        {
            myHint.text = clueList.clue019;
        }
        else if (clueNum == 19)
        {
            myHint.text = clueList.clue020;
        }
        else if (clueNum == 20)
        {
            myHint.text = clueList.clue021;
        }
        else if (clueNum == 21)
        {
            myHint.text = clueList.clue022;
        }
        else if (clueNum == 22)
        {
            myHint.text = clueList.clue023;
        }
        else if (clueNum == 23)
        {
            myHint.text = clueList.clue024;
        }
        else if (clueNum == 24)
        {
            myHint.text = clueList.clue025;
        }
        else if (clueNum == 25)
        {
            myHint.text = clueList.clue026;
        }
        else if (clueNum == 26)
        {
            myHint.text = clueList.clue027;
        }
        else if (clueNum == 27)
        {
            myHint.text = clueList.clue028;
        }
        else if (clueNum == 28)
        {
            myHint.text = clueList.clue029;
        }
        else if (clueNum == 29)
        {
            myHint.text = clueList.clue030;
        }
        else if (clueNum == 30)
        {
            myHint.text = clueList.clue031;
        }
        else if (clueNum == 31)
        {
            myHint.text = clueList.clue032;
        }
        else if (clueNum == 32)
        {
            myHint.text = clueList.clue033;
        }
        else if (clueNum == 33)
        {
            myHint.text = clueList.clue034;
        }
        else if (clueNum == 34)
        {
            myHint.text = clueList.clue035;
        }
        else if (clueNum == 35)
        {
            myHint.text = clueList.clue036;
        }
        else if (clueNum == 36)
        {
            myHint.text = clueList.clue037;
        }
        else if (clueNum == 37)
        {
            myHint.text = clueList.clue038;
        }
        else if (clueNum == 38)
        {
            myHint.text = clueList.clue039;
        }
        else if (clueNum == 39)
        {
            myHint.text = clueList.clue040;
        }

        if (myHint.text == "")
        {
            myHint.text = clueList.clue001;
        }

        jsonHolder = jsonHolder2;
    }