Esempio n. 1
0
 /// <summary>
 /// Default constructor.
 /// </summary>
 public QuestItem()
 {
     _completed = false;
     _type = QuestType.item;
     _value = 0;
     ++_count;
 }
Esempio n. 2
0
 public Quest(string name, int id, string desc, QuestType type)
 {
     questName = name;
     questID = id;
     questDesc = desc;
     questType = type;
 }
Esempio n. 3
0
        internal static string GetString(QuestType type)
        {
            switch (type)
            {
                case QuestType.SOCIAL_WAVE:
                    return "WAVE";

                case QuestType.SOCIAL_DANCE:
                    return "DANCE";

                case QuestType.SOCIAL_RESPECT:
                    return "GIVE_RESPECT";

                case QuestType.SOCIAL_FRIEND:
                    return "REQUEST_FRIEND";

                case QuestType.SOCIAL_CHAT:
                    return "CHAT_WITH_SOMEONE";

                case QuestType.SOCIAL_VISIT:
                    return "ENTER_OTHERS_ROOM";

                case QuestType.PROFILE_BADGE:
                    return "WEAR_BADGE";

                case QuestType.PROFILE_CHANGE_MOTTO:
                    return "CHANGE_MOTTO";

                case QuestType.PROFILE_CHANGE_LOOK:
                    return "CHANGE_FIGURE";

                case QuestType.FURNI_DECORATION_WALL:
                    return "PLACE_WALLPAPER";

                case QuestType.FURNI_DECORATION_FLOOR:
                    return "PLACE_FLOOR";

                case QuestType.FURNI_STACK:
                    return "STACK_ITEM";

                case QuestType.FURNI_SWITCH:
                    return "SWITCH_ITEM_STATE";

                case QuestType.FURNI_PICK:
                    return "PICKUP_ITEM";

                case QuestType.FURNI_PLACE:
                    return "PLACE_ITEM";

                case QuestType.FURNI_ROTATE:
                    return "ROTATE_ITEM";

                case QuestType.FURNI_MOVE:
                    return "MOVE_ITEM";

                default:
                case QuestType.EXPLORE_FIND_ITEM:
                    return "FIND_STUFF";
            }
        }
    public void SetQuestIconType(QuestType _questType)
    {
		// begin kij 2013-10-02
		if( true== m_isUseEvent)
		{
			DisableAllIcon();
			return;
		}
		// end kij 2013-10-02

        if (_questType == QuestType.QUEST_DAILY || _questType == QuestType.QUEST_MAIN || _questType == QuestType.QUEST_NPC_DAILY ||
			_questType == QuestType.QUEST_FIELD || _questType == QuestType.QUEST_BOSS || _questType == QuestType.QUEST_PVP)
        {
            nowQuestType = _questType;

            DisableAllIcon();

			if (_questType == QuestType.QUEST_MAIN)
				icons[0].gameObject.SetActive(true);
			else if (_questType == QuestType.QUEST_FIELD)
				icons[1].gameObject.SetActive(true);
			else if (_questType == QuestType.QUEST_DAILY)
				icons[2].gameObject.SetActive(true);
			else if (_questType == QuestType.QUEST_BOSS)
				icons[3].gameObject.SetActive(true);
			else if (_questType == QuestType.QUEST_PVP)
				icons[4].gameObject.SetActive(true);
			else if (_questType == QuestType.QUEST_NPC_DAILY)
				icons[5].gameObject.SetActive(true);
        }
    }	
        internal ProgressInfo(int rpID, QuestType rpResetType, QuestState rpState, int rpProgress, DateTimeOffset rpUpdateTime)
        {
            Quest = QuestProgressService.Instance.Infos[rpID];
            ResetType = rpResetType;

            r_State = rpState;
            r_Progress = rpProgress;
            UpdateTime = rpUpdateTime;
        }
Esempio n. 6
0
        internal void ProgressUserQuest(GameClient Session, QuestType QuestType, uint EventData = 0)
        {
            if (Session == null || Session.GetHabbo() == null || Session.GetHabbo().CurrentQuestId <= 0)
                return;

            Quest UserQuest = GetQuest(Session.GetHabbo().CurrentQuestId);

            if (UserQuest == null || UserQuest.GoalType != QuestType)
                return;

            int CurrentProgress = Session.GetHabbo().GetQuestProgress(UserQuest.Id);
            int NewProgress = CurrentProgress;
            bool PassQuest = false;

            switch (QuestType)
            {
                default:

                    NewProgress++;

                    if (NewProgress >= UserQuest.GoalData)
                        PassQuest = true;

                    break;

                case QuestType.EXPLORE_FIND_ITEM:

                    if (EventData != UserQuest.GoalData)
                        return;

                    NewProgress = (int)UserQuest.GoalData;
                    PassQuest = true;
                    break;
            }

            using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().getQueryreactor())
            {
                dbClient.runFastQuery("UPDATE user_quests SET progress = " + NewProgress + " WHERE user_id = " + Session.GetHabbo().Id + " AND quest_id =  " + UserQuest.Id);

                if (PassQuest)
                    dbClient.runFastQuery("UPDATE users SET currentquestid = 0 WHERE id = " + Session.GetHabbo().Id);
            }

            Session.GetHabbo().quests[Session.GetHabbo().CurrentQuestId] = NewProgress;
            Session.SendMessage(QuestStartedComposer.Compose(Session, UserQuest));

            if (PassQuest)
            {
                Session.GetHabbo().CurrentQuestId = 0;
                Session.GetHabbo().LastCompleted = UserQuest.Id;
                Session.SendMessage(QuestCompletedComposer.Compose(Session, UserQuest));
                Session.GetHabbo().ActivityPoints += UserQuest.Reward;
                Session.GetHabboDataContainer().UpdateActivityPointsBalance();
                GetList(Session, null);
            }
        }
Esempio n. 7
0
 public Quest(string QuestInstructions,string RewardText, Item RequiredItem, Item RewardItem, QuestType type, bool ActiveQuest)
 {
     _QuestInstructions = QuestInstructions;
         _RewardText			= RewardText;
         _RequiredItem      = RequiredItem;
         _RewardItem        = RewardItem;
         _QuestType         = type;
         _QuestCompleted	   = false;
         _ActiveQuest 		= ActiveQuest;
 }
Esempio n. 8
0
 public Quest(string QuestInstructions,string RewardText, GameObject QuestObjective, int Gold, QuestType type, bool ActiveQuest)
 {
     _QuestInstructions = QuestInstructions;
         _RewardText			= RewardText;
         _QuestObjective    = QuestObjective;
         _Gold     		   = Gold;
         _QuestType         = type;
         _QuestCompleted	   = false;
         _ActiveQuest 		= ActiveQuest;
 }
Esempio n. 9
0
 public static QuestStep makeStep(string description, QuestType questType, int targetID, int count, int awardEXP, int awardMoney)
 {
     QuestStep step;
     step.description = description;
     step.questType = questType;
     step.count = count;
     step.targetID = targetID;
     step.award = new Award() { EXP = awardEXP, money = awardMoney, itemID = -1 };
     return step;
 }
Esempio n. 10
0
 public Quest(QuestType type,string questname ,string qGivingDialog, string onQuestDialog, string qReturningDialog, GameObject takenFrom, GameObject ship, GameObject planet)
 {
     questType = type;
     questName = questname;
     questGivingDialog = qGivingDialog;
     questOnDialog = onQuestDialog;
     questReturningDialog = qReturningDialog;
     takenFromNPC = takenFrom.GetComponent<NPC> ();
     focusedShip = ship;
     planetOfAction = planet;
 }
Esempio n. 11
0
 public Quest(uint Id, string Category, int Number, QuestType GoalType, uint GoalData, string Name, int Reward,
     string DataBit)
 {
     mId = Id;
     mCategory = Category;
     mSeriesNumber = Number;
     mGoalType = GoalType;
     mGoalData = GoalData;
     mName = Name;
     mReward = Reward;
     mDataBit = DataBit;
 }
Esempio n. 12
0
 public Quest(uint Id, string Category, int Number, QuestType GoalType, uint GoalData, string Name, int Reward,
     string DataBit)
 {
     this.Id = Id;
     this.Category = Category;
     this.Number = Number;
     this.GoalType = GoalType;
     this.GoalData = GoalData;
     this.Name = Name;
     this.Reward = Reward;
     this.DataBit = DataBit;
 }
Esempio n. 13
0
File: Quest.cs Progetto: sgf/Yupi
 /// <summary>
 ///     Initializes a new instance of the <see cref="Quest" /> class.
 /// </summary>
 /// <param name="id">The identifier.</param>
 /// <param name="category">The category.</param>
 /// <param name="number">The number.</param>
 /// <param name="goalType">Type of the goal.</param>
 /// <param name="goalData">The goal data.</param>
 /// <param name="name">The name.</param>
 /// <param name="reward">The reward.</param>
 /// <param name="dataBit">The data bit.</param>
 /// <param name="rewardType">Type of the reward.</param>
 /// <param name="timeUnlock">The time unlock.</param>
 /// <param name="timeLock">The time lock.</param>
 public Quest(int id, string category, int number, QuestType goalType, uint goalData, string name, int reward, string dataBit, int rewardType, int timeUnlock, int timeLock)
 {
     Id = id;
     Category = category;
     Number = number;
     GoalType = goalType;
     GoalData = goalData;
     Name = name;
     Reward = reward;
     DataBit = dataBit;
     RewardType = rewardType;
     TimeUnlock = timeUnlock;
     HasEnded = timeLock >= Yupi.GetUnixTimeStamp() && timeLock > 0;
 }
        internal ProgressInfo(int rpID, QuestType rpResetType, QuestState rpState, int rpProgress, DateTimeOffset rpUpdateTime)
        {
            QuestInfo rQuest;
            if (QuestProgressService.Instance.Infos.TryGetValue(rpID, out rQuest))
                Quest = rQuest;
            else
                Quest = new QuestInfo(rpID);

            r_ResetType = rpResetType;

            r_State = rpState;
            r_Progress = rpProgress;
            UpdateTime = rpUpdateTime;
        }
Esempio n. 15
0
 public QuestItem(int id,
                  QuestType type,
                  string name,
                  bool isTracking,
                  DateTime start,
                  string processStorage)
 {
     Id = id;
     Name = name;
     IsTracking = isTracking;
     Type = type;
     TrackingStart = start;
     ProcessStorageString = processStorage;
 }
Esempio n. 16
0
		public Quest(uint Id, string Category, int Number, QuestType GoalType, uint GoalData, string Name, int Reward, string DataBit, int RewardType, int TimeUnlock, int TimeLock)
		{
			this.Id = Id;
			this.Category = Category;
			this.Number = Number;
			this.GoalType = GoalType;
			this.GoalData = GoalData;
			this.Name = Name;
			this.Reward = Reward;
			this.DataBit = DataBit;
			this.RewardType = RewardType;
			this.TimeUnlock = TimeUnlock;
			this.HasEnded = (TimeLock >= MercuryEnvironment.GetUnixTimestamp() && TimeLock > 0);
		}
		public override void Deserialize( GenericReader reader )
		{
			base.Deserialize( reader );

			int version = reader.ReadInt();

			switch ( version )
			{
				case 0:
				{
					m_Type = (QuestType)reader.ReadInt();

					break;
				}
			}
		}
        /// <summary>
        /// Check's whether the Player meets requirements and processes from there.
        /// </summary>
        /// <param name="QuestGiverName"></param>
        /// <param name="player"></param>
        /// <param name="type"></param>
        public void CheckQuest(string QuestGiverName, Player player, QuestType type)
        {
            if (QuestGiverName != player.QuestNPCName)
                throw new QuestKicker();

            //[TODO] More checks

            //[TODO] More Quest crap
            switch (type)
            {
                case QuestType.NO_QUEST:
                case QuestType.SLIME_QUEST:
                case QuestType.CRAFTING_QUEST:
                case QuestType.MINING_QUEST:
                case QuestType.TRANSFORMATION:
                case QuestType.ALCHEMIST_1:
                case QuestType.ALCHEMIST_2:
                case QuestType.ALCHEMIST_3:
                case QuestType.TINKERER_1:
                case QuestType.DARK_MAGE_1:
                case QuestType.DARK_MAGE_2:
                case QuestType.PALADIN_1:
                case QuestType.PALADIN_2:
                case QuestType.QUESTS_END:
                    break;
                case QuestType.TINKERER_2:
                    QuestActions.Tinkerer_2(player);
                    break;
                case QuestType.TINKERER_3:
                    QuestActions.Tinkerer_3(player);
                    break;
                case QuestType.TINKERER_4:
                    QuestActions.Tinkerer_4(player);
                    break;
                case QuestType.DARK_MAGE_3:
                    QuestActions.Dark_Mage_3(player);
                    break;
                case QuestType.DARK_MAGE_4:
                    QuestActions.Dark_Mage_4(player);
                    break;
                case QuestType.PALADIN_3:
                    QuestActions.Paladin_3(player);
                    break;
            }
        }
		public FragmentCrystal( QuestType type, int amount ) : base( 0xF8E )
		{
			m_Type = type;
			Name = "a fragment crystal of " + type;
			switch ( type )
			{
				case QuestType.Shame: Hue = 0x58F; break;
				case QuestType.Deceit: Hue = 0x7DA; break;
				case QuestType.Destard: Hue = 0x455;  break;
				case QuestType.Hythloth: Hue = 0x482;  break;
				case QuestType.Despise: Hue = 0x4E2; break;
				case QuestType.Covetous:  Hue = 0x4D3; break;
				case QuestType.Wrong: Hue = 0x655; break;
			}
			Stackable = true;
			Weight = 1.0;
			Amount = amount;
		}
Esempio n. 20
0
        public QuestInfo(BinaryReader reader)
        {
            Index = reader.ReadInt32();
            Name = reader.ReadString();
            Group = reader.ReadString();
            FileName = reader.ReadString();
            RequiredMinLevel = reader.ReadInt32();

            if (Envir.LoadVersion >= 38)
            {
                RequiredMaxLevel = reader.ReadInt32();
                if (RequiredMaxLevel == 0) RequiredMaxLevel = byte.MaxValue;
            }

            RequiredQuest = reader.ReadInt32();
            RequiredClass = (RequiredClass)reader.ReadByte();
            Type = (QuestType)reader.ReadByte();
            GotoMessage = reader.ReadString();
            KillMessage = reader.ReadString();
            ItemMessage = reader.ReadString();
            if(Envir.LoadVersion >= 37) FlagMessage = reader.ReadString();

            LoadInfo();
        }
Esempio n. 21
0
        public void AcceptQuest(int questID, QuestType questType)
        {
            for (int i = 0; i < questList.Count; i++)
            {
                switch (questType)
                {
                case QuestType.MAIN:
                    if (questList[i].quest.id == questID && questList[i].progress == QuestProgress.AVAILABLE)
                    {
                        if (currentQuests.mainQuest.quest == null)
                        {
                            currentQuests.mainQuest = questList[i];
                            questList[i].progress   = QuestProgress.ACCEPTED;
                        }
                        else
                        {
                            Debug.Log("Quest : " + questList[i].quest.questType + " in Progress");
                            return;
                        }
                    }
                    break;

                case QuestType.SIDE:
                    if (questList[i].quest.id == questID && questList[i].progress == QuestProgress.AVAILABLE)
                    {
                        if (currentQuests.sideQuest.quest == null)
                        {
                            currentQuests.sideQuest = questList[i];
                            questList[i].progress   = QuestProgress.ACCEPTED;
                        }
                        else
                        {
                            Debug.Log("Quest : " + questList[i].quest.questType + " in Progress");
                            return;
                        }
                    }
                    break;

                case QuestType.MISSION:
                    if (questList[i].quest.id == questID && questList[i].progress == QuestProgress.AVAILABLE)
                    {
                        if (currentQuests.missionQuest.quest == null)
                        {
                            currentQuests.missionQuest = questList[i];
                            questList[i].progress      = QuestProgress.ACCEPTED;
                        }
                        else
                        {
                            Debug.Log("Quest : " + questList[i].quest.questType + " in Progress");
                            return;
                        }
                    }
                    break;

                case QuestType.NONE:
                    break;

                default:
                    break;
                }
            }
        }
Esempio n. 22
0
 public static byte[] Build(QuestType quest)
 {
     return new byte[] { 0x58, ((byte) quest), ((byte) (((ushort) quest) >> 8)) };
 }
Esempio n. 23
0
        /// <summary>
        /// Gets the string.
        /// </summary>
        /// <param name="type">The type.</param>
        /// <returns>System.String.</returns>
        internal static string GetString(QuestType type)
        {
            switch (type)
            {
                case QuestType.FurniMove:
                    return "MOVE_ITEM";

                case QuestType.FurniRotate:
                    return "ROTATE_ITEM";

                case QuestType.FurniPlace:
                    return "PLACE_ITEM";

                case QuestType.FurniPick:
                    return "PICKUP_ITEM";

                case QuestType.FurniSwitch:
                    return "SWITCH_ITEM_STATE";

                case QuestType.FurniStack:
                    return "STACK_ITEM";

                case QuestType.FurniDecorationFloor:
                    return "PLACE_FLOOR";

                case QuestType.FurniDecorationWall:
                    return "PLACE_WALLPAPER";

                case QuestType.SocialVisit:
                    return "ENTER_OTHERS_ROOM";

                case QuestType.SocialChat:
                    return "CHAT_WITH_SOMEONE";

                case QuestType.SocialFriend:
                    return "REQUEST_FRIEND";

                case QuestType.SocialRespect:
                    return "GIVE_RESPECT";

                case QuestType.SocialDance:
                    return "DANCE";

                case QuestType.SocialWave:
                    return "WAVE";

                case QuestType.ProfileChangeLook:
                    return "CHANGE_FIGURE";

                case QuestType.ProfileChangeMotto:
                    return "CHANGE_MOTTO";

                case QuestType.ProfileBadge:
                    return "WEAR_BADGE";

                case QuestType.SummerEnterRoom:
                    return "ENTER_ROOM";

                case QuestType.AddFriends:
                    return "add_25_friends";

                case QuestType.WaveUsers:
                    return "wave_10_users";
            }
            return "FIND_STUFF";
        }
Esempio n. 24
0
    // Quest Type Find
    public Location(GameObject _target, QuestType type = QuestType.Camera)
    {
        questType = QuestType.Camera;

        target = _target;
    }
Esempio n. 25
0
 // Methods
 public CloseQuest(byte[] data)
     : base(data)
 {
     this.quest = (QuestType) BitConverter.ToUInt16(data, 1);
 }
Esempio n. 26
0
        public static string GetQuestMessage(this QuestType type, int target)
        {
            switch (type)
            {
            case QuestType.AddFriend:
                return($"Add {target} Friends");

            case QuestType.AutoComplete:
                return($"Autocomplete");

            case QuestType.BadgeRank:
                return($"Get {target} Badge(s)");

            case QuestType.CatchPokemon:
                return($"Catch {target} Pokemon");

            case QuestType.CompleteBattle:
                return($"Complete {target} Battles");

            case QuestType.CompleteGymBattle:
                return($"Complete {target} Gym Battles");

            case QuestType.CompleteQuest:
                return($"Complete {target} Quests");

            case QuestType.CompleteRaidBattle:
                return($"Complete {target} Raid Battles");

            case QuestType.EvolveIntoPokemon:
                return($"Evolve {target} Into Specific Pokemon");

            case QuestType.EvolvePokemon:
                return($"Evolve {target} Pokemon");

            case QuestType.FavoritePokemon:
                return($"Favorite {target} Pokemon");

            case QuestType.FirstCatchOfTheDay:
                return($"Catch first Pokemon of the day");

            case QuestType.FirstPokestopOfTheDay:
                return($"Spin first pokestop of the day");

            case QuestType.GetBuddyCandy:
                return($"Earn {target} candy walking with your buddy");

            case QuestType.HatchEgg:
                return($"Hatch {target} Eggs");

            case QuestType.JoinRaid:
                return($"Join {target} Raid Battles");

            case QuestType.LandThrow:
                return($"Land {target} Throws");

            case QuestType.MultiPart:
                return("Multi Part Quest");

            case QuestType.PlayerLevel:
                return($"Reach level {target}");;

            case QuestType.SendGift:
                return($"Send {target} Gifts");

            case QuestType.SpinPokestop:
                return($"Spin {target} Pokestops");

            case QuestType.TradePokemon:
                return($"Trade {target} Pokemon");

            case QuestType.TransferPokemon:
                return($"Transfer {target} Pokemon");

            case QuestType.UpgradePokemon:
                return($"Power up {target} Pokemon");

            case QuestType.UseBerryInEncounter:
                return($"Use {target} Berries on Pokemon");

            case QuestType.CompleteCombat:
                return($"Complete {target} Combat(s)");

            case QuestType.TakeSnapshot:
                return($"Take {target} Snapshot(s)");

            case QuestType.BattleTeamRocket:
                return($"Battle {target} Team Rocket Battle(s)");

            case QuestType.PurifyPokemon:
                return($"Purify {target} Pokemon");

            case QuestType.Unknown:
                return($"Unknown");
            }

            return(type.ToString());
        }
Esempio n. 27
0
        public void ProgressUserQuest(GameClient Session, QuestType QuestType, int EventData = 0)
        {
            if (Session == null || Session.GetHabbo() == null || Session.GetHabbo().GetStats().QuestID <= 0)
            {
                return;
            }

            Quest UserQuest = GetQuest(Session.GetHabbo().GetStats().QuestID);

            if (UserQuest == null || UserQuest.GoalType != QuestType)
            {
                return;
            }

            int  CurrentProgress = Session.GetHabbo().GetQuestProgress(UserQuest.Id);
            int  NewProgress     = CurrentProgress;
            bool PassQuest       = false;

            switch (QuestType)
            {
            default:

                NewProgress++;

                if (NewProgress >= UserQuest.GoalData)
                {
                    PassQuest = true;
                }

                break;

            case QuestType.EXPLORE_FIND_ITEM:

                if (EventData != UserQuest.GoalData)
                {
                    return;
                }

                NewProgress = Convert.ToInt32(UserQuest.GoalData);
                PassQuest   = true;
                break;

            case QuestType.STAND_ON:

                if (EventData != UserQuest.GoalData)
                {
                    return;
                }

                NewProgress = Convert.ToInt32(UserQuest.GoalData);
                PassQuest   = true;
                break;

            case QuestType.XMAS_PARTY:
                NewProgress++;
                if (NewProgress == UserQuest.GoalData)
                {
                    PassQuest = true;
                }
                break;

            case QuestType.GIVE_ITEM:

                if (EventData != UserQuest.GoalData)
                {
                    return;
                }

                NewProgress = Convert.ToInt32(UserQuest.GoalData);
                PassQuest   = true;
                break;
            }

            using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.RunQuery("UPDATE `user_quests` SET `progress` = '" + NewProgress + "' WHERE `user_id` = '" + Session.GetHabbo().Id + "' AND `quest_id` = '" + UserQuest.Id + "' LIMIT 1");

                if (PassQuest)
                {
                    dbClient.RunQuery("UPDATE `user_stats` SET `quest_id` = '0' WHERE `id` = '" + Session.GetHabbo().Id + "' LIMIT 1");
                }
            }

            Session.GetHabbo().quests[Session.GetHabbo().GetStats().QuestID] = NewProgress;
            Session.SendMessage(new QuestStartedComposer(Session, UserQuest));

            if (PassQuest)
            {
                Session.GetHabbo().GetMessenger().BroadcastAchievement(Session.GetHabbo().Id, Users.Messenger.MessengerEventTypes.QUEST_COMPLETED, UserQuest.Category + "." + UserQuest.Name);

                Session.GetHabbo().GetStats().QuestID = 0;
                Session.GetHabbo().QuestLastCompleted = UserQuest.Id;
                Session.SendMessage(new QuestCompletedComposer(Session, UserQuest));
                Session.GetHabbo().Duckets += UserQuest.Reward;
                Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Duckets, UserQuest.Reward));
                GetList(Session, null);
            }
        }
Esempio n. 28
0
        public static void ProgressUserQuest(Session Session, QuestType QuestType, uint EventData = 0)
        {
            if (Session.QuestCache.CurrentQuestId <= 0)
            {
                return;
            }

            Quest UserQuest = GetQuest(Session.QuestCache.CurrentQuestId);

            if (UserQuest == null || UserQuest.GoalType != QuestType)
            {
                return;
            }

            int  CurrentProgress = Session.QuestCache.GetQuestProgress(UserQuest.Id);
            int  NewProgress     = CurrentProgress;
            bool PassQuest       = false;

            switch (QuestType)
            {
            default:

                NewProgress++;

                if (NewProgress >= UserQuest.GoalData)
                {
                    PassQuest = true;
                }

                break;

            case QuestType.EXPLORE_FIND_ITEM:

                if (EventData != UserQuest.GoalData)
                {
                    return;
                }

                NewProgress = (int)UserQuest.GoalData;
                PassQuest   = true;
                break;
            }

            using (SqlDatabaseClient MySqlClient = SqlDatabaseManager.GetClient())
            {
                Session.QuestCache.AddOrUpdateData(MySqlClient, UserQuest.Id, NewProgress, !PassQuest);

                if (PassQuest)
                {
                    Session.CharacterInfo.UpdateActivityPointsBalance(MySqlClient, UserQuest.Reward);

                    Quest NextQuest = GetNextQuestInSeries(UserQuest.Category, UserQuest.Number + 1);

                    if (NextQuest != null)
                    {
                        Session.QuestCache.AddOrUpdateData(MySqlClient, NextQuest.Id, 0, true);
                    }
                }
            }

            Session.SendData(QuestStartedComposer.Compose(Session, UserQuest));

            if (PassQuest)
            {
                Session.SendData(QuestCompletedComposer.Compose(Session, UserQuest));
                Session.SendData(ActivityPointsBalanceComposer.Compose(Session.CharacterInfo.ActivityPointsBalance,
                                                                       UserQuest.Reward));
                GetList(Session, null);

                Session.MessengerFriendCache.BroadcastToFriends(MessengerFriendEventComposer.Compose(Session.CharacterId,
                                                                                                     MessengerFriendEventType.QuestCompleted, UserQuest.Category + "." + UserQuest.QuestName));
            }
        }
Esempio n. 29
0
    // Quest Type Act
    // _equipment : 장착 혹은 사용할 장비의 이름 name[questId]
    // _isEquipment : 해당 포인트가 장비를 장착하는 포인트인가(장비가 준비되어야 하는 포인트인가)
    public Location(Vector3 _position, GameObject _equipment, bool _isEquipPoint = false, QuestType type = QuestType.Act)
    {
        questType = QuestType.Act;

        position = _position;
        if (_isEquipPoint)
        {
            _equipment.transform.position = position;
        }
        target       = _equipment;
        isEquipPoint = _isEquipPoint;
    }
Esempio n. 30
0
 public Quest(Character npc, QuestImportance importance, QuestType type)
 {
     this.npc        = npc;
     this.importance = importance;
 }
Esempio n. 31
0
 public QuestSystem(string name, string file, string target, string address, string desc, string cat, int cash, int rep, QuestType type)
 {
     Name    = name;
     File    = file;
     Target  = target;
     Address = address;
     Desc    = desc;
     Cat     = cat;
     Cash    = cash;
     Rep     = rep;
     Type    = type;
 }
        public static string GetString(QuestType type)
        {
            switch (type)
            {
            case QuestType.SOCIAL_WAVE:
                return("WAVE");

            case QuestType.SOCIAL_DANCE:
                return("DANCE");

            case QuestType.SOCIAL_RESPECT:
                return("GIVE_RESPECT");

            case QuestType.SOCIAL_FRIEND:
                return("REQUEST_FRIEND");

            case QuestType.SOCIAL_CHAT:
                return("CHAT_WITH_SOMEONE");

            case QuestType.SOCIAL_VISIT:
                return("ENTER_OTHERS_ROOM");

            case QuestType.PROFILE_BADGE:
                return("WEAR_BADGE");

            case QuestType.PROFILE_CHANGE_MOTTO:
                return("CHANGE_MOTTO");

            case QuestType.PROFILE_CHANGE_LOOK:
                return("CHANGE_FIGURE");

            case QuestType.FURNI_DECORATION_WALL:
                return("PLACE_WALLPAPER");

            case QuestType.FURNI_DECORATION_FLOOR:
                return("PLACE_FLOOR");

            case QuestType.FURNI_STACK:
                return("STACK_ITEM");

            case QuestType.FURNI_SWITCH:
                return("SWITCH_ITEM_STATE");

            case QuestType.FURNI_PICK:
                return("PICKUP_ITEM");

            case QuestType.FURNI_PLACE:
                return("PLACE_ITEM");

            case QuestType.FURNI_ROTATE:
                return("ROTATE_ITEM");

            case QuestType.FURNI_MOVE:
                return("MOVE_ITEM");

            case QuestType.SUMMER_ENTER_ROOM:
                return("ENTER_ROOM");

            case QuestType.ADD_FRIENDS:
                return("add_25_friends");

            case QuestType.WAVE_USERS:
                return("wave_10_users");

            default:
            case QuestType.EXPLORE_FIND_ITEM:
                return("FIND_STUFF");
            }
        }
Esempio n. 33
0
        public override void ChildDeserialize(GenericReader reader)
        {
            int version = reader.ReadEncodedInt();

            m_Type = (QuestType)reader.ReadInt();
        }
Esempio n. 34
0
        internal void ProgressUserQuest(GameClient Session, QuestType QuestType, uint EventData = 0)
        {
            if (Session == null || Session.GetHabbo() == null || Session.GetHabbo().CurrentQuestId <= 0)
            {
                return;
            }

            Quest UserQuest = GetQuest(Session.GetHabbo().CurrentQuestId);

            if (UserQuest == null || UserQuest.GoalType != QuestType)
            {
                return;
            }

            int  CurrentProgress = Session.GetHabbo().GetQuestProgress(UserQuest.Id);
            int  NewProgress     = CurrentProgress;
            bool PassQuest       = false;

            switch (QuestType)
            {
            default:

                NewProgress++;

                if (NewProgress >= UserQuest.GoalData)
                {
                    PassQuest = true;
                }

                break;

            case QuestType.EXPLORE_FIND_ITEM:

                if (EventData != UserQuest.GoalData)
                {
                    return;
                }

                NewProgress = (int)UserQuest.GoalData;
                PassQuest   = true;
                break;
            }

            using (IQueryAdapter dbClient = PiciEnvironment.GetDatabaseManager().getQueryreactor())
            {
                dbClient.runFastQuery("UPDATE user_quests SET progress = " + NewProgress + " WHERE user_id = " + Session.GetHabbo().Id + " AND quest_id =  " + UserQuest.Id);

                if (PassQuest)
                {
                    dbClient.runFastQuery("UPDATE users SET currentquestid = 0 WHERE id = " + Session.GetHabbo().Id);
                    //Quest NextQuest = GetNextQuestInSeries(UserQuest.Category, UserQuest.Number + 1);

                    //if (NextQuest != null)
                    //    dbClient.runFastQuery("INSERT INTO user_quests (user_id, quest_id, progress) VALUES (" + Session.GetHabbo().Id + ", " + NextQuest.Id + ", 0)");
                }
            }

            Session.GetHabbo().quests[Session.GetHabbo().CurrentQuestId] = NewProgress;
            Session.SendMessage(QuestStartedComposer.Compose(Session, UserQuest));

            if (PassQuest)
            {
                Session.GetHabbo().CurrentQuestId = 0;
                Session.GetHabbo().LastCompleted  = UserQuest.Id;
                Session.SendMessage(QuestCompletedComposer.Compose(Session, UserQuest));
                Session.GetHabbo().ActivityPoints += UserQuest.Reward;
                Session.GetHabbo().UpdateActivityPointsBalance(false);
                GetList(Session, null);
            }
        }
Esempio n. 35
0
        public void ProgressUserQuest(GameClient session, QuestType type, int data = 0)
        {
            if (session == null || session.GetHabbo() == null || session.GetHabbo().GetStats().QuestId <= 0)
            {
                return;
            }

            Quest quest = GetQuest(session.GetHabbo().GetStats().QuestId);

            if (quest == null || quest.GoalType != type)
            {
                return;
            }

            int  currentProgress = session.GetHabbo().GetQuestProgress(quest.Id);
            int  totalProgress   = currentProgress;
            bool completeQuest   = false;

            switch (type)
            {
            default:

                totalProgress++;

                if (totalProgress >= quest.GoalData)
                {
                    completeQuest = true;
                }

                break;

            case QuestType.ExploreFindItem:

                if (data != quest.GoalData)
                {
                    return;
                }

                totalProgress = Convert.ToInt32(quest.GoalData);
                completeQuest = true;
                break;

            case QuestType.StandOn:

                if (data != quest.GoalData)
                {
                    return;
                }

                totalProgress = Convert.ToInt32(quest.GoalData);
                completeQuest = true;
                break;

            case QuestType.XmasParty:
                totalProgress++;
                if (totalProgress == quest.GoalData)
                {
                    completeQuest = true;
                }
                break;

            case QuestType.GiveItem:

                if (data != quest.GoalData)
                {
                    return;
                }

                totalProgress = Convert.ToInt32(quest.GoalData);
                completeQuest = true;
                break;
            }

            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.RunQuery("UPDATE `user_quests` SET `progress` = '" + totalProgress + "' WHERE `user_id` = '" + session.GetHabbo().Id + "' AND `quest_id` = '" + quest.Id + "' LIMIT 1");

                if (completeQuest)
                {
                    dbClient.RunQuery("UPDATE `user_stats` SET `quest_id` = '0' WHERE `id` = '" + session.GetHabbo().Id + "' LIMIT 1");
                }
            }

            session.GetHabbo().quests[session.GetHabbo().GetStats().QuestId] = totalProgress;
            session.SendPacket(new QuestStartedComposer(session, quest));

            if (completeQuest)
            {
                session.GetHabbo().GetMessenger().BroadcastAchievement(session.GetHabbo().Id, Users.Messenger.MessengerEventTypes.QuestCompleted, quest.Category + "." + quest.Name);

                session.GetHabbo().GetStats().QuestId = 0;
                session.GetHabbo().QuestLastCompleted = quest.Id;
                session.SendPacket(new QuestCompletedComposer(session, quest));
                session.GetHabbo().Duckets += quest.Reward;
                session.SendPacket(new HabboActivityPointNotificationComposer(session.GetHabbo().Duckets, quest.Reward));
                GetList(session, null);
            }
        }
Esempio n. 36
0
 public static string GetQuestMessage(this QuestType type, int target)
 {
     return(Translator.Instance.Translate("quest_" + Convert.ToInt32(type), target));
 }
Esempio n. 37
0
 public Quest CreateQuest(QuestType type)
 {
     return(CreateQuest(type, Game.instance.GetPlayerProfile().GetCustomSpawnPoint()));
 }
Esempio n. 38
0
        public void ShowIcon(Player player, Npc npc, bool force = false)
        {
            if (!npc.NpcTemplate.IsVillager)
            {
                return;
            }

            QuestType       questType = QuestType.Guild;
            QuestStatusIcon icon      = QuestStatusIcon.None;

            //Rewards
            {
                bool isReward = false;

                foreach (var data in player.Quests)
                {
                    if (npc.NpcTemplate.FullId == Quests[data.Key].TryGetRewardNpc(player))
                    {
                        if (Data.Data.Quests[data.Key].Type < questType)
                        {
                            questType = Data.Data.Quests[data.Key].Type;
                            isReward  = true;

                            if (questType == 0)
                            {
                                break;
                            }
                        }
                    }
                }

                if (isReward)
                {
                    switch (questType)
                    {
                    case QuestType.Mission:
                        icon = QuestStatusIcon.RewardMissionQuest;
                        break;

                    case QuestType.Normal:
                        icon = QuestStatusIcon.RewardNormalQuest;
                        break;

                    case QuestType.Guild:
                        icon = QuestStatusIcon.RewardGuildQuest;
                        break;
                    }

                    new SpNpcIcon(npc, icon, 1).Send(player.Connection);
                    return;
                }
            }

            //Talk
            {
                bool isTalk = false;

                foreach (var data in player.Quests)
                {
                    QStepDefault step = Quests[data.Key].GetNowStep(player);

                    if (step == null)
                    {
                        continue;
                    }

                    List <int> villagers = step.GetParticipantVillagers(player);

                    if (villagers.Count > 0 && npc.NpcTemplate.FullId == villagers[0])
                    {
                        if (Data.Data.Quests[data.Key].Type < questType)
                        {
                            questType = Data.Data.Quests[data.Key].Type;
                            isTalk    = true;

                            if (questType == 0)
                            {
                                break;
                            }
                        }
                    }
                }

                if (isTalk)
                {
                    switch (questType)
                    {
                    case QuestType.Mission:
                        icon = QuestStatusIcon.ProgressMissionQuest;
                        break;

                    case QuestType.Normal:
                        icon = QuestStatusIcon.ProgressNormalQuest;
                        break;

                    case QuestType.Guild:
                        icon = QuestStatusIcon.ProgressGuildQuest;
                        break;
                    }

                    new SpNpcIcon(npc, icon, 1).Send(player.Connection);
                    return;
                }
            }

            //Start
            if (NpcStartQuests.ContainsKey(npc.NpcTemplate.FullId))
            {
                bool isStart = false;

                for (int i = 0; i < NpcStartQuests[npc.NpcTemplate.FullId].Count; i++)
                {
                    Quest quest = NpcStartQuests[npc.NpcTemplate.FullId][i];

                    if (player.Quests.ContainsKey(quest.QuestId))
                    {
                        continue;
                    }

                    if (!quest.NeedClasses.Contains(player.PlayerData.Class))
                    {
                        continue;
                    }

                    if (quest.NeedLevel > player.PlayerLevel)
                    {
                        continue;
                    }

                    isStart = true;

                    if (quest.Type < questType)
                    {
                        questType = quest.Type;
                    }

                    if (questType == 0)
                    {
                        break;
                    }
                }

                if (isStart)
                {
                    switch (questType)
                    {
                    case QuestType.Mission:
                        icon = QuestStatusIcon.MissionQuest;
                        break;

                    case QuestType.Normal:
                        icon = QuestStatusIcon.NormalQuest;
                        break;

                    case QuestType.Guild:
                        icon = QuestStatusIcon.GuildQuest;
                        break;
                    }
                }
            }

            if (icon != QuestStatusIcon.None)
            {
                new SpNpcIcon(npc, icon, 1).Send(player.Connection);
            }
            else if (force)
            {
                new SpNpcIcon(npc, 0, 0).Send(player.Connection);
            }
        }
Esempio n. 39
0
 public Quest(GameCore core, QuestType questType) : base(core)
 {
     _questType = questType;
 }
Esempio n. 40
0
    // Quest Type Wait
    public Location(Vector3 _position, Vector3 _rotation, float _waitTime, bool _isFailPossible, QuestType type = QuestType.Wait)
    {
        questType = QuestType.Wait;

        isFailPossible = _isFailPossible;
        position       = _position;
        rotation       = _rotation;
        waitTime       = _waitTime;
    }
Esempio n. 41
0
        public static string GetString(QuestType type)
        {
            switch (type)
            {
            case QuestType.SocialWave:
                return("WAVE");

            case QuestType.SocialDance:
                return("DANCE");

            case QuestType.SocialRespect:
                return("GIVE_RESPECT");

            case QuestType.SocialFriend:
                return("REQUEST_FRIEND");

            case QuestType.SocialChat:
                return("CHAT_WITH_SOMEONE");

            case QuestType.SocialVisit:
                return("ENTER_OTHERS_ROOM");

            case QuestType.ProfileBadge:
                return("WEAR_BADGE");

            case QuestType.ProfileChangeMotto:
                return("CHANGE_MOTTO");

            case QuestType.ProfileChangeLook:
                return("CHANGE_FIGURE");

            case QuestType.FurniDecorationWall:
                return("PLACE_WALLPAPER");

            case QuestType.FurniDecorationFloor:
                return("PLACE_FLOOR");

            case QuestType.FurniStack:
                return("STACK_ITEM");

            case QuestType.FurniSwitch:
                return("SWITCH_ITEM_STATE");

            case QuestType.FurniPick:
                return("PICKUP_ITEM");

            case QuestType.FurniPlace:
                return("PLACE_ITEM");

            case QuestType.FurniRotate:
                return("ROTATE_ITEM");

            case QuestType.FurniMove:
                return("MOVE_ITEM");

            case QuestType.SummerEnterRoom:
                return("ENTER_ROOM");

            case QuestType.AddFriends:
                return("add_25_friends");

            case QuestType.WaveUsers:
                return("wave_10_users");

            default:
            case QuestType.ExploreFindItem:
                return("FIND_STUFF");
            }
        }
Esempio n. 42
0
 public QuestRequirement(QuestType type = QuestType.None, int id = 0, int quantity = 0, Item item = null, int start = 0)
 {
 }
Esempio n. 43
0
        // ****

        public Quest(string name, QuestType type)
        {
            _name = name;
            _type = type;
        }
Esempio n. 44
0
	public AchCompleteQuest(QuestType _questType, int _mapID, int _count)
	{
		questType = _questType;
		mapID = _mapID;
		DestCount = count = _count;
	}
Esempio n. 45
0
    public Quest(QuestType i_type, byte subID)
    {
        type      = i_type;
        subIndex  = subID;
        crews     = new List <Crew>();
        completed = false;
        bool setByDefault = true;

        switch (i_type)
        {
        case QuestType.Progress:
            switch ((ProgressQuestID)subIndex)
            {
            case ProgressQuestID.Progress_HousesToMax: reward = 250; break;

            case ProgressQuestID.Progress_2Docks: reward = 500; break;

            case ProgressQuestID.Progress_2Storages: reward = 100; break;

            case ProgressQuestID.Progress_Tier2: reward = 120; break;

            case ProgressQuestID.Progress_300Population: reward = 100; break;

            case ProgressQuestID.Progress_OreRefiner: reward = 200; break;

            case ProgressQuestID.Progress_HospitalCoverage: reward = 240; break;

            case ProgressQuestID.Progress_Tier3: reward = 240; break;

            case ProgressQuestID.Progress_4MiniReactors: reward = 800; break;

            case ProgressQuestID.Progress_100Fuel: reward = 210; break;

            case ProgressQuestID.Progress_XStation: reward = 120; break;

            case ProgressQuestID.Progress_Tier4: reward = 480; break;

            case ProgressQuestID.Progress_CoveredFarm: reward = 200; break;

            case ProgressQuestID.Progress_CoveredLumbermill: reward = 200; break;

            case ProgressQuestID.Progress_Reactor: reward = 220; break;

            case ProgressQuestID.Progress_FirstExpedition:
                setByDefault          = false;
                steps                 = new string[4];
                stepsAddInfo          = new string[4];
                stepsFinished         = new bool[4];
                shuttlesRequired      = 0;
                crewsRequired         = 0;
                questLifeTimer        = -1;
                questRealizationTimer = -1;
                reward                = 400;
                break;

            case ProgressQuestID.Progress_Tier5: reward = 960; break;

            case ProgressQuestID.Progress_FactoryComplex:
                setByDefault          = false;
                steps                 = new string[2];
                stepsAddInfo          = new string[2];
                stepsFinished         = new bool[2];
                shuttlesRequired      = 0;
                crewsRequired         = 0;
                questLifeTimer        = -1;
                questRealizationTimer = -1;
                reward                = 960;
                break;

            case ProgressQuestID.Progress_SecondFloor:
                setByDefault          = false;
                steps                 = new string[2];
                stepsAddInfo          = new string[2];
                stepsFinished         = new bool[2];
                shuttlesRequired      = 0;
                crewsRequired         = 0;
                questLifeTimer        = -1;
                questRealizationTimer = -1;
                reward                = 420;
                break;
            }

            if (setByDefault)
            {
                steps                 = new string[1];
                stepsAddInfo          = new string[1];
                stepsFinished         = new bool[1];
                shuttlesRequired      = 0;
                crewsRequired         = 0;
                questLifeTimer        = -1;
                questRealizationTimer = -1;
            }
            Localization.FillProgressQuest(this);
            break;
        }
        canBeDelayed = true;
    }
Esempio n. 46
0
 public Quest(string QuestInstructions, string RewardText, Item RequiredItem, Item RewardItem, QuestType type, bool ActiveQuest)
 {
     _QuestInstructions = QuestInstructions;
     _RewardText        = RewardText;
     _RequiredItem      = RequiredItem;
     _RewardItem        = RewardItem;
     _QuestType         = type;
     _QuestCompleted    = false;
     _ActiveQuest       = ActiveQuest;
 }
Esempio n. 47
0
        private void ProcessQIKey(string key, int pos, string line, bool force = false)
        {
            Regex           myRegex = null;
            MatchCollection mc = null;
            Match           m = null;
            int             j, k;

            switch (key)
            {
            case "level":
                if (force || Level < 1)
                {
                    k = line.Length - 1;
                    while (Char.IsDigit(line[k]))
                    {
                        k--;
                    }
                    Level = Helper.ParseInt(line.Substring(k + 1));
                }
                break;

            case "requires":
                if (force || RequiredLevel < 1)
                {
                    k = line.Length - 1;
                    while (Char.IsDigit(line[k]))
                    {
                        k--;
                    }
                    Level = Helper.ParseInt(line.Substring(k + 1));
                }
                break;

            case "loremaster":
                Loremaster = true;
                break;

            case "side":
                if (force || (int)Side == -1)
                {
                    myRegex = new Regex(@"](?<side>\w+)\[", RegexOptions.Compiled);
                    mc      = myRegex.Matches(line);

                    m = mc.Count > 0 ? mc[0] : null;
                    if (m == null || !m.Success)
                    {
                        line = line.Substring(pos + 1).Trim();
                    }
                    else
                    {
                        line = m.Groups["side"].Value;
                    }
                    Side _dside = (Wowhead.Side)(-1);

                    if (!Enum.TryParse(line, true, out _dside))
                    {
                        Helper.LogDebug("Can't parse QI Side[" + Id + "]:" + line);
                    }
                    else
                    {
                        Side = _dside;
                    }
                }
                break;

            case "[icon":
                myRegex = new Regex(@"](?<key>\w+):\s*\[(url=/)?(?<type>\w*)=(?<id>\d+)]", RegexOptions.Compiled);
                mc      = myRegex.Matches(line);

                m = mc.Count > 0 ? mc[0] : null;
                if (m == null || !m.Success)
                {
                    Helper.LogDebug("Can't parse QI Icon[" + Id + "]:" + line);
                }

                Group             gKey     = m.Groups["key"];
                CaptureCollection gTypeCap = m.Groups["type"].Captures;
                CaptureCollection gIdCap   = m.Groups["id"].Captures;
                for (j = 0; j < gKey.Captures.Count; j++)
                {
                    Capture c = gKey.Captures[j];

                    switch (c.Value.ToLower())
                    {
                    case "start":
                        QuestGiver = Helper.GetInteractEntity(Helper.ParseInt(gIdCap[j].Value), gTypeCap[j].Value);
                        break;

                    case "end":
                        QuestTurnIn = Helper.GetInteractEntity(Helper.ParseInt(gIdCap[j].Value), gTypeCap[j].Value);
                        break;

                    default:
                        Helper.LogDebug("Unknown QI line[" + Id + "]:" + line);
                        break;
                    }
                }

                break;

            case "not":
                line = line.Substring(3).Trim().ToLower();
                if (line == "sharable")
                {
                    Sharable = false;
                }
                else
                {
                    Helper.LogDebug("Unknown sub 'not' key[" + Id + "]:" + line);
                }
                break;

            case "difficulty":
                myRegex = new Regex(@"r(?<d>\d)](?<level>\d+)\[", RegexOptions.Compiled);
                mc      = myRegex.Matches(line);

                for (j = 0; j < mc.Count; j++)
                {
                    if (!mc[j].Success)
                    {
                        Helper.LogDebug("Can't parse QI difficulty[" + Id + "]:" + line);
                    }

                    Group             gIdx      = mc[j].Groups["d"];
                    CaptureCollection gLevelCap = mc[j].Groups["level"].Captures;

                    pos             = Helper.ParseInt(gIdx.Captures[0].Value) - 1;
                    Difficulty[pos] = Helper.ParseInt(gLevelCap[0].Value);
                }
                break;

            case "added":
                k = line.Length - 1;
                while (Char.IsDigit(line[k]) || line[k] == '.')
                {
                    k--;
                }
                AddedIn = line.Substring(k + 1);
                break;

            case "type":
                string    lt = line.Substring("Type:".Length).Trim();
                QuestType qt = (QuestType)(-1);
                if (!Enum.TryParse(lt, out qt))
                {
                    Helper.LogDebug("Unknown QI Type [" + Id + "]:" + lt);
                }
                else
                if (force || Type == QuestType.Normal)
                {
                    Type = qt;
                }
                break;

            case "race":
            case "races":
                if (force || _races == null)
                {
                    myRegex = new Regex(@"=(?<id>\d+)", RegexOptions.Compiled);
                    mc      = myRegex.Matches(line);
                    _races  = new List <Race>();

                    for (j = 0; j < mc.Count; j++)
                    {
                        if (!mc[j].Success)
                        {
                            Helper.LogDebug("Can't parse QI Races[" + Id + "]:" + line);
                        }

                        _races.Add(Race.GetById(Helper.ParseInt(mc[j].Groups["id"].Captures[0].Value)));
                    }
                }
                break;

            case "class":
                if (force || _classes == null)
                {
                    myRegex  = new Regex(@"=(?<id>\d+)", RegexOptions.Compiled);
                    mc       = myRegex.Matches(line);
                    _classes = new List <wClass>();

                    for (j = 0; j < mc.Count; j++)
                    {
                        if (!mc[j].Success)
                        {
                            Helper.LogDebug("Can't parse QI Races[" + Id + "]:" + line);
                        }

                        _classes.Add(wClass.GetById(Helper.ParseInt(mc[j].Groups["id"].Captures[0].Value)));
                    }
                }
                break;

            case "sharable":     // by default - sharable
                break;

            default:
                Helper.LogDebug("Unknown key[" + Id + "]:" + key);
                break;
            }
        }
Esempio n. 48
0
 public void CompleteQuest(QuestType questType) // завершение квеста
 {
     quests.First(x => x.questType == questType).completed = true;
 }
Esempio n. 49
0
 public Quest(string QuestInstructions, string RewardText, GameObject QuestObjective, int Gold, QuestType type, bool ActiveQuest)
 {
     _QuestInstructions = QuestInstructions;
     _RewardText        = RewardText;
     _QuestObjective    = QuestObjective;
     _Gold           = Gold;
     _QuestType      = type;
     _QuestCompleted = false;
     _ActiveQuest    = ActiveQuest;
 }
 public static void WriteQuestType(this PacketWriter writer, QuestType data)
 {
     writer.WriteByte((byte)data);
 }
Esempio n. 51
0
 public CloseQuest(QuestType quest)
     : base(Build(quest))
 {
     this.quest = quest;
 }
Esempio n. 52
0
 public static IList <QuestConfig> GetByType(QuestType type)
 {
     _typeConfigs.TryGetValue(type, out var result);
     return(result ?? ImmutableList <QuestConfig> .Empty);
 }
Esempio n. 53
0
        private bool IsTrackingAvailable(QuestType type, DateTime time)
        {
            // The quests are refreshed everyday/week at 5AM(UTC+9).
            // if we subtract the time by 5h, we can then say the refresh time is 0AM(UTC+4).
            // It will be easier to check the availibility.
            // One example is "United Arab Emirates Standard Time (ar-AE)": UTC+4, no daylight saving

            if (time == DateTime.MinValue)
                return false;

            var no = GetTokyoDateTime().AddHours(-5);
            time = time.AddHours(-5);

            switch (type)
            {
                case QuestType.OneTime:
                    return true;

                case QuestType.Daily:
                    return time.Date == no.Date;

                case QuestType.Weekly:
                    var cal = CultureInfo.CreateSpecificCulture("ar-AE").Calendar;
                    var w_time = cal.GetWeekOfYear(time, CalendarWeekRule.FirstDay, DayOfWeek.Monday);
                    var w_now = cal.GetWeekOfYear(no, CalendarWeekRule.FirstDay, DayOfWeek.Monday);

                    return w_time == w_now && time.Year == no.Year;

                case QuestType.Monthly:
                    return time.Month == no.Month && time.Year == no.Year;

                default:
                    return false;
            }
        }
Esempio n. 54
0
 /// <summary>
 /// Sets type of quest.
 /// </summary>
 /// <param name="type"></param>
 protected void SetType(QuestType type)
 {
     this.Type = type;
 }
Esempio n. 55
0
		/// <summary>
		/// Sets type of quest.
		/// </summary>
		/// <param name="type"></param>
		protected void SetType(QuestType type)
		{
			this.Type = type;
		}
Esempio n. 56
0
 public EventStartQuest(QuestType quest) : base(GameEventType.EVENT_START_QUEST)
 {
     this.quest = quest;
 }
Esempio n. 57
0
 public static string getQuestTypeStr(QuestType questType)
 {
     switch (questType)
      {
          case QuestType.Daily:
              return "每日";
          case QuestType.Weekly:
              return "每周";
          case QuestType.Main:
              return "主线";
          case QuestType.All:
          default:
              return "普通";
      }
 }
Esempio n. 58
0
 public Quest GetQuest(QuestType questType) //выдача квеста
 {
     return(quests.First(x => x.questType == questType));
 }
Esempio n. 59
0
    public ClientQuestInfo(BinaryReader reader)
    {
        Index = reader.ReadInt32();
        NPCIndex = reader.ReadUInt32();
        Name = reader.ReadString();
        Group = reader.ReadString();

        int count = reader.ReadInt32();
        for (int i = 0; i < count; i++)
            Description.Add(reader.ReadString());

        count = reader.ReadInt32();
        for (int i = 0; i < count; i++)
            TaskDescription.Add(reader.ReadString());

        count = reader.ReadInt32();
        for (int i = 0; i < count; i++)
            CompletionDescription.Add(reader.ReadString());

        MinLevelNeeded = reader.ReadInt32();
        MaxLevelNeeded = reader.ReadInt32();
        QuestNeeded = reader.ReadInt32();
        ClassNeeded = (RequiredClass)reader.ReadByte();
        Type = (QuestType)reader.ReadByte();
        RewardGold = reader.ReadUInt32();
        RewardExp = reader.ReadUInt32();
        RewardCredit = reader.ReadUInt32();

        count = reader.ReadInt32();

        for (int i = 0; i < count; i++ )
            RewardsFixedItem.Add(new QuestItemReward(reader));

        count = reader.ReadInt32();

        for (int i = 0; i < count; i++)
            RewardsSelectItem.Add(new QuestItemReward(reader));

        FinishNPCIndex = reader.ReadUInt32();
    }
Esempio n. 60
0
    Quest GetRandomizedQuest()
    {
        Transform randomNpc = NPCManager.Instance.NPCs[Random.Range(0, NPCManager.Instance.NPCs.Count)].transform;

        StateMachine stateMachine = randomNpc.gameObject.GetComponent <StateMachine>();

        int i = 0;

        while (stateMachine.CurrentState != NpcState.Happy)
        {
            randomNpc    = NPCManager.Instance.NPCs[Random.Range(0, NPCManager.Instance.NPCs.Count)].transform;
            stateMachine = randomNpc.gameObject.GetComponent <StateMachine>();
            i++;

            if (i == 100)
            {
                //Debug.LogError("Everyone is propably leaving");
                return(null);
            }
        }

        QuestType typeOfQuest = (QuestType)RandomExtension.ChooseFromMultipleWeighted(new List <int> {
            (int)QuestType.GetSomething,
            (int)QuestType.ChangeMusic, (int)QuestType.ThrowTheTrashOut, (int)QuestType.Puking
        }, new List <int> {
            55, 10, 25, 10
        });

        // Debug
        //typeOfQuest = QuestType.Puking;
        //typeOfQuest = QuestType.ThrowTheTrashOut;
        //typeOfQuest = QuestType.GetSomething;

        QuestState npcActiveQuest = randomNpc.gameObject.GetComponent <QuestState>();

        while (typeOfQuest == QuestType.ChangeMusic && changeMusicQuestActive)
        {
            typeOfQuest = (QuestType)RandomExtension.ChooseFromMultipleWeighted(new List <int> {
                (int)QuestType.GetSomething,
                (int)QuestType.ChangeMusic, (int)QuestType.ThrowTheTrashOut, (int)QuestType.Puking
            }, new List <int> {
                60, 10, 25, 5
            });
        }

        if (npcActiveQuest.ActiveQuest != null)
        {
            while (npcActiveQuest.ActiveQuest.TypeOfQuest == QuestType.Puking)
            {
                randomNpc = NPCManager.Instance.NPCs[Random.Range(0, NPCManager.Instance.NPCs.Count)].transform;
                i++;

                if (i == 100)
                {
                    typeOfQuest = QuestType.GetSomething;
                    break;
                }
            }
        }

        PickupableObjectType objType = PickupableObjectType.None;

        if (typeOfQuest == QuestType.GetSomething)
        {
            objType = (PickupableObjectType)RandomExtension.ChooseFromMultiple(new List <int> {
                (int)PickupableObjectType.Beer,
                (int)PickupableObjectType.Chips, (int)PickupableObjectType.Soda
            });
        }
        else if (typeOfQuest == QuestType.ThrowTheTrashOut)
        {
            objType = PickupableObjectType.Trash;
        }
        else if (typeOfQuest == QuestType.ChangeMusic)
        {
            changeMusicQuestActive = true;
        }

        return(new Quest(typeOfQuest, timeBeforeQuestFail, objType, randomNpc));
    }