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>();
 }
Exemplo n.º 2
0
 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;
 }
Exemplo n.º 5
0
 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"));
 }
Exemplo n.º 6
0
 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);
     }
 }
Exemplo n.º 8
0
        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;
            }
        }
Exemplo n.º 13
0
 protected AchievementTracker(AchievementManager achievementManager)
 {
     _achievementManager = achievementManager;
 }
Exemplo n.º 14
0
 protected CbesSingleAchievementTracker(AchievementManager achievementManager, EntityWorld entityWorld, string achievementName)
     : base(achievementManager, achievementName)
 {
     _entityWorld = entityWorld;
 }
Exemplo n.º 15
0
 protected CbesAchievementTracker(AchievementManager achievementManager, EntityWorld entityWorld)
     : base(achievementManager)
 {
     _entityWorld = entityWorld;
 }
Exemplo n.º 16
0
 protected SingleAchievementTracker(AchievementManager achievementManager, string achievementName)
     : base(achievementManager)
 {
     Ensure.NotNullOrWhitespace(achievementName);
     _achievement = achievementManager[achievementName];
 }
Exemplo n.º 17
0
 public AchievementTracker CreateTracker(AchievementManager achievementManager, EntityWorld entityWorld, Achievement achievement)
 {
     return _createTrackerFunction(achievementManager, entityWorld, achievement);
 }
Exemplo n.º 18
0
 public AchievementSystem()
 {
     _achievementManager = AchievementHelper.CreateAchivementManager();
 }
Exemplo n.º 19
0
 public static AchievementManager CreateAchivementManager()
 {
     AchievementManager achievementManager = new AchievementManager(AchievementHelper.AchievementFilePath, AchievementHelper.CreateAchievements());
     AchievementHelper.CreateAchievementGroups(achievementManager);
     return achievementManager;
 }