Exemple #1
0
 public LevelChallengeDataItem(int challengeId, LevelMetaData levelMeta, int rewardId = 0)
 {
     this.challengeId = challengeId;
     this._metaData   = LevelChallengeMetaDataReader.GetLevelChallengeMetaDataByKey(challengeId);
     if (this.IsFinishStageFastChallenge() || this.IsFinishStageVeryFastChallenge())
     {
         int num = !this.IsFinishStageFastChallenge() ? levelMeta.sonicBonusTime : levelMeta.fastBonusTime;
         this._metaData = new LevelChallengeMetaData(this._metaData.challengeId, this._metaData.conditionId, new List <int> {
             num
         }, this._metaData.diaplayTarget);
     }
     this.Finished = false;
 }
        private BaseLevelChallenge GetChallengeById(int challengeId)
        {
            LevelChallengeMetaData levelChallengeMetaDataByKey = LevelChallengeMetaDataReader.GetLevelChallengeMetaDataByKey(challengeId);

            switch (levelChallengeMetaDataByKey.conditionId)
            {
            case 1:
                return(new LimitAvatarChallege(this, levelChallengeMetaDataByKey));

            case 2:
                return(new LimitAvatarKilledChallenge(this, levelChallengeMetaDataByKey));

            case 3:
                return(new MaxComboChallenge(this, levelChallengeMetaDataByKey));

            case 4:
                return(new LimitBeHitChallenge(this, levelChallengeMetaDataByKey));

            case 5:
                return(new LimitLevelTimeChallenge(this, levelChallengeMetaDataByKey));

            case 6:
                return(new LimitWitchTimeTriggeredChallenge(this, levelChallengeMetaDataByKey));

            case 7:
                return(new MaxDamageInWitchTimeChallenge(this, levelChallengeMetaDataByKey));

            case 8:
                return(new MaxUltimateSkillTriggeredChallenge(this, levelChallengeMetaDataByKey));

            case 9:
                return(new MaxDamageInCertainTimeChallenge(this, levelChallengeMetaDataByKey));

            case 10:
                return(new MaxUltimateSkillTriggeredByDistinctAvatarChallenge(this, levelChallengeMetaDataByKey));

            case 11:
                return(new LimitBeHitDownChallenge(this, levelChallengeMetaDataByKey));

            case 12:
                return(new MaxAvatarClassInTeamChallenge(this, levelChallengeMetaDataByKey));

            case 13:
                return(new MaxMonsterKilledChallenge(this, levelChallengeMetaDataByKey));

            case 14:
                return(new MaxAvatarNatureInTeamChallenge(this, levelChallengeMetaDataByKey));

            case 15:
                return(new LimitTotalDamageTakenChallenge(this, levelChallengeMetaDataByKey));

            case 0x10:
                return(new HelperAvatarAliveChallenge(this, levelChallengeMetaDataByKey));

            case 0x11:
                return(new LimitTrapTriggeredChallenge(this, levelChallengeMetaDataByKey));

            case 0x12:
                return(new MaxBoxOpenedChallenge(this, levelChallengeMetaDataByKey));

            case 0x13:
                return(new MaxDebuffAddChallenge(this, levelChallengeMetaDataByKey));

            case 20:
                return(new LimitBeAddedDebuffChallenge(this, levelChallengeMetaDataByKey));

            case 0x15:
                return(new MaxAllDamageInWitchTimeChallenge(this, levelChallengeMetaDataByKey));

            case 0x16:
                return(new MaxMonsterKilledBySwitchInAttackChallenge(this, levelChallengeMetaDataByKey));

            case 0x17:
                return(new MaxMonsterKilledInWitchTimeChallenge(this, levelChallengeMetaDataByKey));

            case 0x18:
                return(new MonsterLastKilledBySwitchInAttackChallenge(this, levelChallengeMetaDataByKey));

            case 0x19:
                return(new MaxMonsterKilledInCertainTimeChallenge(this, levelChallengeMetaDataByKey));

            case 0x1a:
                return(new MaxMonsterHitAirChallenge(this, levelChallengeMetaDataByKey));

            case 0x1b:
            case 0x1c:
            case 0x1d:
                return(new SpecialLevelTimeChallenge(this, levelChallengeMetaDataByKey));

            case 30:
                return(new MaxMonsterKilledByBranchAttackChallenge(this, levelChallengeMetaDataByKey));

            case 0x1f:
                return(new MaxQTETriggeredChallenge(this, levelChallengeMetaDataByKey));
            }
            throw new Exception("Invalid Type or State!");
        }