using System; using System.Collections.Generic; using System.Linq; using System.Text; using DuckEmulator.HabboHotel.Outside.Messages.Types; namespace DuckEmulator.HabboHotel.Outside.Quests { enum QuestReward { Pixels = 0, SnowFlakes = 1, Hearts = 2, Shells = 4 } class Quest { private UInt32 fId; private UInt32 fCatId; private string fAction; private Int32 fAmount; private QuestReward fReward; private Int32 fRewardCount; private Int32 fOrdernum; internal UInt32 Id { get { return fId; } } internal UInt32 CatId { get { return fCatId; } } internal string Action { get { return fAction; } } internal Int32 Amount { get { return fAmount; } } internal QuestReward Reward { get { return fReward; } } internal Int32 RewardCount { get { return fRewardCount; } } internal Int32 Ordernum { get { return fOrdernum; } } internal Quest(UInt32 Id, UInt32 CatId, string Action, Int32 Amount, QuestReward Reward, Int32 RewardCount, Int32 Ordernum) { fId = Id; fCatId = CatId; fAction = Action; fAmount = Amount; fReward = Reward; fRewardCount = RewardCount; fOrdernum = Ordernum; } internal void Serialize(ServerMessage Message, Boolean InProgress, Int32 ProgressCount) { Message.AppendUInt(fId); Message.AppendBoolean(InProgress); Message.AppendStringWithBreak((Action.ToUpper().StartsWith("FIND")) ? "FIND_STUFF" : Action); Message.AppendStringWithBreak((Ordernum == 1 && CatId >= 2 && CatId <= 4) ? "_2" : ""); Message.AppendInt32(RewardCount); Message.AppendStringWithBreak(Action.Replace("_USERS_","S").Replace("_ITEM_","").Replace("_","")); Message.AppendInt32(ProgressCount); Message.AppendInt32(Amount); } } }