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; } }
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); }
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; }
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; }
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; } }