示例#1
0
        public bool CheckIfWordMeetsGoal(WordBuilder builder, bool countGoal)
        {
            if (Shorewood.Difficulty != Difficulty.FreeSpell)
            {
                bool wordMeetsGoal = false;
                List<IGoal> currentGoals = CurrentLevelGoals;
                for (int i = 0; i < currentGoals.Count; i++)
                {
                    IGoal goal = currentGoals[i];
                    if (!goal.IsGoalCompleted && !goal.GoalBox.IsDiscarding)
                    {
                        if (goal.CheckGoal(builder, countGoal))
                        {
                            wordMeetsGoal = true;
                        }
                    }
                }

                return wordMeetsGoal;
            }
            else
            {
                return true;
            }
        }
示例#2
0
 public WordBuilder(WordBuilder wordBuilder)
 {
     isDisposed = false;
     builder = new StringBuilder(60);
     reverseBuilder = new StringBuilder(60);
     letters = new List<Letter>(60);
     isReversed = false;
     checkSum = 0;
     gridWidth = 0;
     points = 0;
     isValidWord = false;
     Copy(wordBuilder);
 }
示例#3
0
 public void Add(WordBuilder builder)
 {
     if (builder.letters.Count > 5)
     {
         for (int i = 0; i < builder.letters.Count; i++)
         {
             Letter letter = builder.letters[i];
             letter.scale *= 0.80f;
             builder.letters[i] = letter;
         }
     }
     recentWords.Enqueue(builder);
     if (recentWords.Count > capacity)
     {
         WordBuilder oldBuilder = recentWords.Dequeue();
     }
     wordBoxBody.ApplyImpulse(new Vector2(chainMass*50,chainMass*50));
     Changed = true;
 }
示例#4
0
 public void Copy(WordBuilder wordBuilder)
 {
     Clear();
     this.gridWidth = wordBuilder.gridWidth;
     builder.Append(wordBuilder.builder);
     reverseBuilder.Append(wordBuilder.reverseBuilder);
     this.letters.AddRange(wordBuilder.letters);
     this.checkSum = wordBuilder.checkSum;
     this.points = wordBuilder.points;
     this.reverseBuilder = wordBuilder.reverseBuilder;
     this.isReversed = wordBuilder.isReversed;
 }
示例#5
0
        public static WordBuilder Merge(WordBuilder left, WordBuilder right)
        {
            WordBuilder builder = new WordBuilder(left);//ShorewoodPool.GetBuilder(left);

            for (int i = 1; i < right.letters.Count; i++)
            {
                builder.Append(right.letters[i]);
                //reverseBuilder.Insert(0, right.letters[i]);
            }
            builder.UpdateReverse();
            //builder.builder.Insert(left.builder.Length, right.builder.Remove(0, 1));
            return builder;
        }
 public void Add(WordBuilder builder, TimeSpan timeSpan)
 {
     lock (words)
     {
         destination = Shorewood.recentWords.Position;
         for (int i = 0; i < builder.letters.Count; i++)
         {
             Letter letter = builder.letters[i];
             letter.startPosition *= Shorewood.normalGameplayRenderer.scale;
             builder.letters[i] = letter;
         }
         FloatingPoints point = new FloatingPoints((builder.letters[0].startPosition), new Vector2(rand.Next(0, 1200), -20), builder.points);
         Shorewood.particleSystem.TriggerProjectile(point);
         CalculateDestinations(builder);
         Shorewood.pew.Play();
         //if (!words.Keys.Contains(builder))
         bool containsWord = false;
         for (int i = 0; i < words.Count; i++)
         {
             if (words[i].Key == builder)
             {
                 containsWord = true;
                 break;
             }
         }
         if (!containsWord)
         {
             FoundWordHelper word = new FoundWordHelper();
             word.Key = builder;
             word.Value = TimeSpan.Zero;
             words.Add(word);
         }
         Visible = true;
         Enabled = true;
     }
 }
 private void DrawWord(WordBuilder word)
 {
     foreach (var letter in word.letters)
     {
         if (Shorewood.Is1337Compliant)
         {
             spriteBatch.Draw(letter.texture1337, (letter.position), null, Color.White, 0, Vector2.Zero, letter.scale * scale, SpriteEffects.None, 0);
         }
         else
         {
             spriteBatch.Draw(letter.texture, (letter.position), null, Color.White, 0, Vector2.Zero, letter.scale * scale, SpriteEffects.None, 0);
         }
     }
 }
 private void CalculateDestinations(WordBuilder builder)
 {
     for (int i = 0; i < builder.letters.Count; i++)
     {
         Letter letter = builder.letters[i];
         if (builder.isReversed)
         {
             letter.destination = (destination + titleSafeVector ) + (Vector2.UnitX * ((builder.letters.Count - 1) - i) * letter.width) * destinationScale * destinationScale;
         }
         else
         {
             letter.destination = (destination + titleSafeVector ) + (Vector2.UnitX * i * letter.width) * destinationScale * destinationScale;
         }
         builder.letters[i] = letter;
     }
 }