private static Gamer CreateGamerWithLevelAndPoints(int level, int points) { var gamer = new Gamer(); gamer.CurrentLevel = new Level { LevelNumber = level }; gamer.Points = points; return gamer; }
public void SetUp() { this.autoChangeLevelTrigger = new AutoChangeLevelTrigger(); this.gamer = new Gamer(); gamer.Project = new Project(); gamer.Project.Levels.Add(new Level { LevelNumber = 1, NeededPoints = 0 }.WithId()); gamer.Project.Levels.Add(new Level { LevelNumber = 2, NeededPoints = 100 }.WithId(2)); gamer.Project.Levels.Add(new Level { LevelNumber = 3, NeededPoints = 200 }.WithId(3)); }
public void CallOnGamer_WhenPointsOperationIsIncrease_ShouldIncreaseGamerPointsOnPointsValue() { pointsTrigger.Points = 10; pointsTrigger.PointsOperation = PointsOperation.Increase; var gamer = new Gamer(); gamer.Points = 20; pointsTrigger.CallOnGamer(gamer); gamer.Points.Should().Be.EqualTo(30); }
public static Gamer CreateGamer(string gamerName, Project project) { if (gamerName.IsNullOrBlank()) return null; var gamer = new Gamer(); gamer.UniqueKey = gamerName; gamer.Project = project; if (project.Levels.IsNotEmpty()) { gamer.CurrentLevel = project.Levels.Min(); } return gamer; }
public void Clone_ShoulCopyAllGamerProperties() { var gamer = new Gamer(); gamer.Project = new Project(); gamer.Project.GameActions.Add(new GameAction()); gamer.Project.NumericConstraints.Add(new PointsBasedConstraint()); gamer.Project.Triggers.Add(new AchievementsTrigger()); gamer.Project.CollectionConstraints.Add(new AchievementsConstraint()); gamer.Achievements.Add(new Achievement()); gamer.GamerStatuses.Add(new GamerStatus()); gamer.CurrentLevel = new Level { LevelNumber = 10 }; var clonedGamer = gamer.Clone(); clonedGamer.Should().Not.Be.Null(); Assert.That(ReferenceEquals(gamer, clonedGamer), Is.False); clonedGamer.Project.Should().Not.Be.Null(); clonedGamer.Achievements.Should().Have.Count.EqualTo(1); clonedGamer.GamerStatuses.Should().Have.Count.EqualTo(1); clonedGamer.CurrentLevel.LevelNumber.Should().Be.EqualTo(10); }
public IEnumerable<ActionPerformError> PerformAction(Gamer gamer) { var errors = new List<ActionPerformError>(); foreach (var constraint in QtyBasedConstraints) { var result = constraint.GetResult(gamer); if (!result) { errors.Add(new ActionPerformError(constraint.Description)); } } if (errors.IsEmpty()) { foreach (var trigger in TriggersToCall) { trigger.CallOnGamer(gamer); } } return errors; }
public StringCollectionResultProvider(BaseStringCollectionConstraint stringCollectionConstraint, Gamer gamer) : base(gamer) { this.stringCollectionConstraint = stringCollectionConstraint; }
public QuantityBasedResultsProvider(BaseNumericBasedConstraint numericBasedConstraint, Gamer gamer) : base(gamer) { this.numericBasedConstraint = numericBasedConstraint; }
private ActionResponse CreateResponse(Gamer oldGamer, Gamer newGamer) { var response = new ActionResponse(); response.Success = true; response.AchievementChanges.Add(GetAchievementsDiff(oldGamer.Achievements, newGamer.Achievements, ChangeAction.Unassign)); response.AchievementChanges.Add(GetAchievementsDiff(newGamer.Achievements, oldGamer.Achievements, ChangeAction.Assign)); response.StatusChanges.Add(GetStatusDiff(oldGamer.GamerStatuses, newGamer.GamerStatuses, ChangeAction.Unassign)); response.StatusChanges.Add(GetStatusDiff(newGamer.GamerStatuses, oldGamer.GamerStatuses, ChangeAction.Assign)); if (oldGamer.CurrentLevel != newGamer.CurrentLevel) { var levelDiff = Math.Abs(oldGamer.CurrentLevel.LevelNumber - newGamer.CurrentLevel.LevelNumber); response.LevelChange = new NumericCharacteristicChange(levelDiff, oldGamer.CurrentLevel > newGamer.CurrentLevel ? NumberOperation.Decrease : NumberOperation.Increase); } if (oldGamer.Points != newGamer.Points) { var pointsDiff = Math.Abs(oldGamer.Points - newGamer.Points); response.PointsChange = new NumericCharacteristicChange(pointsDiff, oldGamer.Points > newGamer.Points ? NumberOperation.Decrease : NumberOperation.Increase); } return response; }
private static Gamer CreateGamer() { var gamer = new Gamer(); gamer.Project = new Project(); return gamer; }
protected BaseGamerDependResultProvider(Gamer gamer) { this.Gamer = gamer; }