Beispiel #1
0
    private void onAchievementsLoaded(string array)
    {
        ISN_Result result = new ISN_Result(false);

        if (array.Equals(string.Empty))
        {
            OnAchievementsLoaded(result);
            dispatcher.dispatch(GAME_CENTER_ACHIEVEMENTS_LOADED, result);
            return;
        }

        string[] data;
        data = array.Split("," [0]);


        for (int i = 0; i < data.Length; i += 2)
        {
            AchievementTemplate tpl = new AchievementTemplate();
            tpl.id       = data[i];
            tpl.progress = System.Convert.ToSingle(data[i + 1]);
            submitAchievement(tpl);
        }

        _IsAchievmentInfoLoaded = true;
        OnAchievementsLoaded(result);
        dispatcher.dispatch(GAME_CENTER_ACHIEVEMENTS_LOADED, result);
    }
        private void CompleteAchievement(AchievementTemplate achievement)
        {
            lock (this.m_lock)
            {
                var reward = this.Owner.Record.AchievementRewards.FirstOrDefault(entry => entry == this.Owner.Level);
                if (reward == null)
                {
                    reward = new PlayerAchievementReward(this.Owner, achievement);

                    this.Owner.Record.AchievementRewards.Add(reward);
                }
                else
                {
                    reward.AddRewardableAchievement(achievement);
                }

                this.Owner.Record.FinishedAchievements.Add((ushort)achievement.Id);
                this.Owner.Record.AchievementPoints += (int)achievement.Points;

                this.m_finishedAchievements.Add(achievement);
            }

            AchievementHandler.SendAchievementFinishedMessage(this.Owner.Client, (ushort)achievement.Id, this.Owner.Level);

            this.OnAchievementCompleted(achievement);
        }
Beispiel #3
0
    private void OnAchievementProgress(CEvent e)
    {
        Debug.Log("OnAchievementProgress");

        AchievementTemplate tpl = e.data as AchievementTemplate;

        Debug.Log(tpl.id + ":  " + tpl.progress.ToString());
    }
        private void OnAchievementCompleted(AchievementTemplate achievement)
        {
            var achievementCriterion = Singleton <AchievementManager> .Instance.TryGetAchievementCriterion(achievement);

            if (achievementCriterion != null)
            {
                this.AddCriterion(achievementCriterion);
            }
        }
Beispiel #5
0
        public bool Remove(AchievementTemplate achievement)
        {
            if (this.m_rewardAchievementIds.Remove((ushort)achievement.Id))
            {
                return(this.m_rewardAchievements.Remove(achievement));
            }

            return(false);
        }
Beispiel #6
0
 // CONSTRUCTORS
 public AchievementCriterionData(ComparaisonOperatorEnum @operator, params string[] parameters)
     : base(@operator, parameters)
 {
     if (uint.TryParse(base[0], out this.m_achievementId))
     {
         this.m_achievement = Singleton <AchievementManager> .Instance.TryGetAchievement(this.m_achievementId);
     }
     else
     {
         throw new Exception();
     }
 }
Beispiel #7
0
    private void OnAchievementProgress(CEvent e)
    {
        Debug.Log("OnAchievementProgress");

        ISN_AcheivmentProgressResult result = e.data as ISN_AcheivmentProgressResult;

        if (result.IsSucceeded)
        {
            AchievementTemplate tpl = result.info;
            Debug.Log(tpl.id + ":  " + tpl.progress.ToString());
        }
    }
    private void onAchievementProgressChanged(string array)
    {
        string[] data;
        data = array.Split("," [0]);

        AchievementTemplate tpl = new AchievementTemplate();

        tpl.id       = data [0];
        tpl.progress = System.Convert.ToSingle(data [1]);


        submitAchievement(tpl);

        dispatcher.dispatch(GAME_CENTER_ACHIEVEMENT_PROGRESS, tpl);
    }
    //--------------------------------------
    //  PRIVATE METHODS
    //--------------------------------------

    private void submitAchievement(AchievementTemplate tpl)
    {
        bool isContains = false;

        foreach (AchievementTemplate t in _achievements)
        {
            if (t.id.Equals(tpl.id))
            {
                isContains = true;
                t.progress = tpl.progress;
            }
        }

        if (!isContains)
        {
            _achievements.Add(tpl);
        }
    }
Beispiel #10
0
    private void onAchievementProgressChanged(string array)
    {
        string[] data;
        data = array.Split("," [0]);



        AchievementTemplate tpl = new AchievementTemplate();

        tpl.Id       = data [0];
        tpl.Progress = System.Convert.ToSingle(data [1]);
        ISN_AchievementProgressResult result = new ISN_AchievementProgressResult(tpl);

        submitAchievement(tpl);

        OnAchievementsProgress(result);
        Dispatcher.dispatch(GAME_CENTER_ACHIEVEMENT_PROGRESS, result);
    }
Beispiel #11
0
    public static void registerAchievement(string achievemenId)
    {
        bool isContains = false;

        foreach (AchievementTemplate t in _achievements)
        {
            if (t.id.Equals(achievemenId))
            {
                isContains = true;
            }
        }


        if (!isContains)
        {
            AchievementTemplate tpl = new AchievementTemplate();
            tpl.id       = achievemenId;
            tpl.progress = 0;
            _achievements.Add(tpl);
        }
    }
Beispiel #12
0
    private void onAchievementsLoaded(string array)
    {
        if (array.Equals(string.Empty))
        {
            dispatcher.dispatch(GAME_CENTER_ACHIEVEMENTS_LOADED);
            return;
        }

        string[] data;
        data = array.Split("," [0]);


        for (int i = 0; i < data.Length; i += 2)
        {
            AchievementTemplate tpl = new AchievementTemplate();
            tpl.id       = data[i];
            tpl.progress = System.Convert.ToSingle(data[i + 1]);
            submitAchievement(tpl);
        }

        dispatcher.dispatch(GAME_CENTER_ACHIEVEMENTS_LOADED);
    }
        public bool RewardAchievement(AchievementTemplate achievement, out int experience, out int guildExperience)
        {
            bool result;
            PlayerAchievementReward reward = null;

            experience      = 0;
            guildExperience = 0;

            if (achievement != null)
            {
                lock (this.m_lock)
                {
                    foreach (var item in this.Owner.Record.AchievementRewards)
                    {
                        if (item.Contains(achievement))
                        {
                            reward = item;
                            break;
                        }
                    }
                }

                if (reward != null)
                {
                    result = this.RewardAchievement(achievement, reward, out experience, out guildExperience);
                }
                else
                {
                    result = false;
                }
            }
            else
            {
                result = false;
            }

            return(result);
        }
Beispiel #14
0
    //--------------------------------------
    //  PRIVATE METHODS
    //--------------------------------------

    private void submitAchievement(AchievementTemplate tpl)
    {
        bool isContains = false;

        foreach (AchievementTemplate t in _achievements)
        {
            if (t.id.Equals(tpl.id))
            {
                isContains = true;
                t.progress = tpl.progress;
            }
        }

        if (IOSNativeSettings.Instance.UsePPForAchievements)
        {
            SaveAchievementProgress(tpl.id, tpl.progress);
        }

        if (!isContains)
        {
            _achievements.Add(tpl);
        }
    }
Beispiel #15
0
	private void onAchievementsLoaded(string array) {

		ISN_Result result = new ISN_Result (true);
		if(array.Equals(string.Empty)) {
			OnAchievementsLoaded (result);
			Dispatcher.dispatch (GAME_CENTER_ACHIEVEMENTS_LOADED, result);
			return;
		}

		string[] data;
		data = array.Split("," [0]);


		for(int i = 0; i < data.Length; i+=3) {
			AchievementTemplate tpl =  new AchievementTemplate();
			tpl.Id 				= data[i];
			tpl.Description 	= data[i + 1];
			tpl.Progress 		= System.Convert.ToSingle(data[i + 2]);
			submitAchievement (tpl);
		}

		_IsAchievementsInfoLoaded = true;
		OnAchievementsLoaded (result);
		Dispatcher.dispatch (GAME_CENTER_ACHIEVEMENTS_LOADED, result);
	}
Beispiel #16
0
	private void onAchievementProgressChanged(string array) {
		string[] data;
		data = array.Split("," [0]);



		AchievementTemplate tpl =  new AchievementTemplate();
		tpl.Id = data [0];
		tpl.Progress = System.Convert.ToSingle(data [1]) ;
		ISN_AchievementProgressResult result = new ISN_AchievementProgressResult(tpl);

		submitAchievement (tpl);

		OnAchievementsProgress(result);
		Dispatcher.dispatch (GAME_CENTER_ACHIEVEMENT_PROGRESS, result);

	}
Beispiel #17
0
	public static void RegisterAchievement(string achievementId) {


		bool isContains = false;

		foreach(AchievementTemplate t in _achievements) {
			if (t.Id.Equals (achievementId)) {
				isContains = true;
			}
		}


		if(!isContains) {
			AchievementTemplate tpl = new AchievementTemplate ();
			tpl.Id = achievementId;
			tpl.Progress = 0;
			_achievements.Add (tpl);
		}
	}
Beispiel #18
0
 public void AddRewardableAchievement(AchievementTemplate achievement)
 {
     this.m_rewardAchievements.Add(achievement);
     this.m_rewardAchievementIds.Add((ushort)achievement.Id);
 }
    //--------------------------------------
    //  PRIVATE METHODS
    //--------------------------------------
    private void submitAchievement(AchievementTemplate tpl)
    {
        bool isContains = false;
        foreach(AchievementTemplate t in _achievements) {
            if (t.id.Equals (tpl.id)) {
                isContains = true;
                t.progress = tpl.progress;
            }
        }

        if(!isContains) {
            _achievements.Add (tpl);
        }
    }
    private void onAchievementsLoaded(string array)
    {
        if(array.Equals(string.Empty)) {
            dispatcher.dispatch (GAME_CENTER_ACHIEVEMENTS_LOADED);
            return;
        }

        string[] data;
        data = array.Split("," [0]);

        for(int i = 0; i < data.Length; i+=2) {
            AchievementTemplate tpl =  new AchievementTemplate();
            tpl.id 				= data[i];
            tpl.progress 		= System.Convert.ToSingle(data[i + 1]);
            submitAchievement (tpl);
        }

        dispatcher.dispatch (GAME_CENTER_ACHIEVEMENTS_LOADED);
    }
    private void onAchievementProgressChanged(string array)
    {
        string[] data;
        data = array.Split("," [0]);

        AchievementTemplate tpl =  new AchievementTemplate();
        tpl.id = data [0];
        tpl.progress = System.Convert.ToSingle(data [1]) ;

        submitAchievement (tpl);

        dispatcher.dispatch (GAME_CENTER_ACHIEVEMENT_PROGRESS, tpl);
    }
        public bool RewardAchievement(AchievementTemplate achievement, PlayerAchievementReward owner, out int experience, out int guildExperience)
        {
            experience      = 0;
            guildExperience = 0;
            if (!owner.Remove(achievement))
            {
                return(false);
            }

            experience = achievement.GetExperienceReward(this.Owner.Client);
            if (experience > 0)
            {
                if (this.Owner.GuildMember != null && this.Owner.GuildMember.GivenPercent > 0)
                {
                    int guildXP = (int)(experience * (this.Owner.GuildMember.GivenPercent * 0.01));
                    int adjustedGuildExperience = (int)this.Owner.Guild.AdjustGivenExperience(this.Owner, (long)guildXP);
                    adjustedGuildExperience = Math.Min(Guild.MaxGuildXP, adjustedGuildExperience);

                    experience = (int)(experience * (100.0 - this.Owner.GuildMember.GivenPercent) * 0.01);
                    if (adjustedGuildExperience > 0)
                    {
                        guildExperience = adjustedGuildExperience;
                    }
                }
            }
            if (experience < 0)
            {
                experience = 0;
            }

            var kamas = achievement.GetKamasReward(this.Owner.Client);

            if (kamas > 0)
            {
                this.Owner.Inventory.AddKamas(kamas);
            }

            foreach (var item in achievement.Rewards)
            {
                for (int i = 0; i < item.ItemsReward.Length; i++)
                {
                    var id       = item.ItemsReward[i];
                    var quantity = item.ItemsQuantityReward[i];

                    var itemTemplate = Singleton <ItemManager> .Instance.TryGetTemplate((int)id);

                    if (itemTemplate != null)
                    {
                        this.Owner.Inventory.AddItem(itemTemplate, quantity);
                    }
                }

                foreach (var emoteId in item.EmotesReward)
                {
                    // TODO
                }

                foreach (int spellId in item.SpellsReward)
                {
                    if (!this.Owner.Spells.HasSpell(spellId))
                    {
                        this.Owner.Spells.LearnSpell(spellId);
                    }
                }

                foreach (ushort titleId in item.TitlesReward)
                {
                    if (!this.Owner.HasTitle(titleId))
                    {
                        this.Owner.AddTitle(titleId);
                    }
                }

                foreach (ushort ornamentId in item.OrnamentsReward)
                {
                    if (!this.Owner.HasOrnament(ornamentId))
                    {
                        this.Owner.AddOrnament(ornamentId);
                    }
                }
            }
            // TODO : items

            if (!owner.Any())
            {
                this.Owner.Record.AchievementRewards.Remove(owner);
            }

            return(true);
        }
 public void CreateLocalSave(Text nameText)
 {
     Name = nameText.text;
     Achievements = new AchievementTemplate();
     Save();
 }
	public ISN_AchievementProgressResult(AchievementTemplate tpl):base(true) {
		_tpl = tpl;
	}
 public AchievementCriterion TryGetAchievementCriterion(AchievementTemplate achievement)
 {
     return(this.m_achievementCriterions.ContainsKey(achievement) ? this.m_achievementCriterions[achievement] : null);
 }
Beispiel #26
0
	//--------------------------------------
	//  PRIVATE METHODS
	//--------------------------------------

	private void submitAchievement(AchievementTemplate tpl) {
		bool isContains = false;
		foreach(AchievementTemplate t in _achievements) {
			if (t.Id.Equals (tpl.Id)) {
				isContains = true;
				t.Progress = tpl.Progress;
			}
		}

		if(IOSNativeSettings.Instance.UsePPForAchievements) {
			SaveAchievementProgress(tpl.Id, tpl.Progress);
		}

		if(!isContains) {
			_achievements.Add (tpl);
		}
	}
 public ISN_AchievementProgressResult(AchievementTemplate tpl) : base(true)
 {
     _tpl = tpl;
 }
Beispiel #28
0
 public bool Contains(AchievementTemplate achievement)
 {
     return(this.m_rewardAchievements.Contains(achievement));
 }