public LivesAtAnyPointOfGameTracker(AchievementManager achievementManager, EntityWorld entityWorld, string achievementName, int lives) : base(achievementManager, entityWorld, achievementName) { Ensure.Is<BooleanProgression>(_achievement.Progression); _lives = lives; _playerInfo = entityWorld.FindEntityByName(EntityNames.Player).Get<CPlayerInfo>(); }
public ScoreTracker(AchievementManager achievementManager, EntityWorld entityWorld, string achievementName, int scoreTarget) : base(achievementManager, entityWorld, achievementName) { Ensure.Is<BooleanProgression>(_achievement.Progression); _scoreTarget = scoreTarget; _playerInfo = entityWorld.FindEntityByName(EntityNames.Player).Get<CPlayerInfo>(); }
public PersistentRunningTracker(AchievementManager achievementManager, EntityWorld entityWorld, string achievementName) : base(achievementManager, entityWorld, achievementName) { Ensure.Is<FloatProgression>(_achievement.Progression); _progression = (FloatProgression)_achievement.Progression; _playerTransform = _entityWorld.FindEntityByName(EntityNames.Player).Transform; _previousPosition = _playerTransform.Position; }
public SurviveWithoutMovingTracker(AchievementManager achievementManager, EntityWorld entityWorld, string achievementName, float seconds) : base(achievementManager, entityWorld, achievementName) { Ensure.Is<BooleanProgression>(_achievement.Progression); _targetSeconds = seconds; _playerTransform = entityWorld.FindEntityByName(EntityNames.Player).Transform; _previousPosition = _playerTransform.Position; }
private static void CreateAchievementGroups(AchievementManager achievementManager) { achievementManager.AddGroup("ZombieKills", AchievementHelper.CreateAchievementGroup(achievementManager, "Sunday Killer", "Zombie-nator", "Reaper of the Dead", "Titan", "God")); achievementManager.AddGroup("Running", AchievementHelper.CreateAchievementGroup(achievementManager, "Jogger", "Marathoner", "The Flash", "Duracell")); achievementManager.AddGroup("KillsInTime", AchievementHelper.CreateAchievementGroup(achievementManager, "Massacre", "Genocide", "Desolation")); achievementManager.AddGroup("KillRushersWhileRushing", AchievementHelper.CreateAchievementGroup(achievementManager, "Peace Officer", "Punisher of Maniacs", "Exterminator of Lunatics")); achievementManager.AddGroup("Score", AchievementHelper.CreateAchievementGroup(achievementManager, "Novice", "Master", "Legend", "Divine")); }
public PersistentKillZombiesTracker(AchievementManager achievementManager, EntityWorld entityWorld, string achievementName) : base(achievementManager, entityWorld, achievementName) { Ensure.Is<IntegerProgression>(_achievement.Progression); if (!_achievement.IsUnlocked) { entityWorld.SubscribeToMessage<ZombieKilledMessage>(this.OnZombieKilled); } }
public SurviveWithoutKillingTracker(AchievementManager achievementManager, EntityWorld entityWorld, string achievementName, float time) : base(achievementManager, entityWorld, achievementName) { Ensure.Is<BooleanProgression>(_achievement.Progression); _time = time; if (!_achievement.IsUnlocked) { entityWorld.SubscribeToMessage<ZombieKilledMessage>(this.OnZombieKilled); } }
private static AchievementGroup CreateAchievementGroup(AchievementManager achievementManager, params string[] achievementNames) { Achievement[] achievements = new Achievement[achievementNames.Length]; for (int i = 0; i < achievements.Length; i++) { achievements[i] = achievementManager[achievementNames[i]]; } return new AchievementGroup(achievements); }
public KillEnemiesWithSingleRocket(AchievementManager achievementManager, EntityWorld entityWorld, string achievementName, int killsNeeded) : base(achievementManager, entityWorld, achievementName) { Ensure.Is<BooleanProgression>(_achievement.Progression); _killsNeeded = killsNeeded; if (!_achievement.IsUnlocked) { entityWorld.SubscribeToMessage<RocketExplodedMessage>(this.OnRocketExploded); } }
public KillWithInvulnerabilityBoosterTracker(AchievementManager achievementManager, EntityWorld entityWorld, string achievementName, int count) : base(achievementManager, entityWorld, achievementName) { Ensure.Is<BooleanProgression>(_achievement.Progression); _targetKills = count; _boosterState = entityWorld.Services.Get<IBoosterState>(); if (!_achievement.IsUnlocked) { entityWorld.SubscribeToMessage<ZombieKilledMessage>(this.OnZombieKilled); } }
public KillZombiesInTimeTracker(AchievementManager achievementManager, EntityWorld entityWorld, string achievementName, int count, float time) : base(achievementManager, entityWorld, achievementName) { Ensure.Is<BooleanProgression>(_achievement.Progression); // no progression because not persistent _count = count; _time = time; if (!_achievement.IsUnlocked) { entityWorld.SubscribeToMessage<ZombieKilledMessage>(this.OnZombieKilled); } }
public SpendLaserAmmoWithoutHittingTracker(AchievementManager achievementManager, EntityWorld entityWorld, string achievementName) : base(achievementManager, entityWorld, achievementName) { Ensure.Is<BooleanProgression>(_achievement.Progression); if (!_achievement.IsUnlocked) { entityWorld.SubscribeToMessage<WeaponChangedMessage>(this.OnWeaponChanged); entityWorld.SubscribeToMessage<ZombieKilledMessage>(this.OnZombieKilled); } // if the player starts with laser, then the tracking should be active from the start if (entityWorld.FindEntityByName(EntityNames.Player).Get<CWeapon>().Weapon.Type == WeaponType.Laser) { _isActive = true; } }
protected AchievementTracker(AchievementManager achievementManager) { _achievementManager = achievementManager; }
protected CbesSingleAchievementTracker(AchievementManager achievementManager, EntityWorld entityWorld, string achievementName) : base(achievementManager, achievementName) { _entityWorld = entityWorld; }
protected CbesAchievementTracker(AchievementManager achievementManager, EntityWorld entityWorld) : base(achievementManager) { _entityWorld = entityWorld; }
protected SingleAchievementTracker(AchievementManager achievementManager, string achievementName) : base(achievementManager) { Ensure.NotNullOrWhitespace(achievementName); _achievement = achievementManager[achievementName]; }
public AchievementTracker CreateTracker(AchievementManager achievementManager, EntityWorld entityWorld, Achievement achievement) { return _createTrackerFunction(achievementManager, entityWorld, achievement); }
public AchievementSystem() { _achievementManager = AchievementHelper.CreateAchivementManager(); }
public static AchievementManager CreateAchivementManager() { AchievementManager achievementManager = new AchievementManager(AchievementHelper.AchievementFilePath, AchievementHelper.CreateAchievements()); AchievementHelper.CreateAchievementGroups(achievementManager); return achievementManager; }