/// <summary> /// Reads an array of values from a <see cref="BitStream"/>. /// </summary> /// <param name="bs">The <see cref="BitStream"/> to read from.</param> /// <param name="count">The number of values to read.</param> /// <returns>The array of read values.</returns> public static ushort[] ReadUShorts(this BitStream bs, int count) { var ret = new ushort[count]; for (var i = 0; i < count; i++) { ret[i] = bs.ReadUShort(); } return(ret); }
/// <summary> /// Handles <see cref="QuestInfoMessages.LoadInitialValues"/>. /// </summary> /// <param name="bs">The <see cref="BitStream"/> to read from.</param> void ReadLoadInitialValues(BitStream bs) { _completedQuests.Clear(); _activeQuests.Clear(); // Read completed quests var count = bs.ReadUShort(); for (var i = 0; i < count; i++) { _completedQuests.Add(bs.ReadQuestID()); } // Read Active quests count = bs.ReadByte(); for (var i = 0; i < count; i++) { _activeQuests.Add(bs.ReadQuestID()); } // Raise events OnLoaded(); if (Loaded != null) Loaded.Raise(this, EventArgs.Empty); }
/// <summary> /// Reads a 16-bit unsigned integer. /// </summary> /// <param name="name">Unused by the <see cref="BinaryValueReader"/>.</param> /// <returns>Value read from the reader.</returns> public ushort ReadUShort(string name) { return(_reader.ReadUShort()); }
void RecvSkillStartCasting_ToUser(IIPSocket conn, BitStream r) { var skillType = r.ReadEnum<SkillType>(); var castTime = r.ReadUShort(); GameplayScreen.SkillCastProgressBar.StartCasting(skillType, castTime); }
void RecvSkillSetGroupCooldown(IIPSocket conn, BitStream r) { var skillGroup = r.ReadByte(); var cooldownTime = r.ReadUShort(); GameplayScreen.SkillCooldownManager.SetCooldown(skillGroup, cooldownTime, GetTime()); }
void RecvAddStatusEffect(IIPSocket conn, BitStream r) { var statusEffectType = r.ReadEnum<StatusEffectType>(); var power = r.ReadUShort(); var secsLeft = r.ReadUShort(); var param = new string[] {User.Name, statusEffectType.ToString(), power.ToString()}; var message = GameMessageCollection.CurrentLanguage.GetMessage(GameMessage.CombatStatusEffectGained, param); GameplayScreen.StatusEffectsForm.AddStatusEffect(statusEffectType, power, secsLeft); GameplayScreen.AppendToChatOutput(message); }
/// <summary> /// Reads the <see cref="GuildInfoMessages.SetGuild"/> message. /// </summary> /// <param name="r">The stream to read the message from.</param> void ReadSetGuild(BitStream r) { _members.Clear(); _onlineMembers.Clear(); InGuild = r.ReadBool(); if (InGuild) { Name = r.ReadString(); Tag = r.ReadString(); var numMembers = r.ReadUShort(); for (var i = 0; i < numMembers; i++) { var v = r.ReadGuildMemberNameRank(null); _members.Add(v); } var onlineMembers = r.ReadUShort(); for (var i = 0; i < onlineMembers; i++) { var name = r.ReadString(); SetOnlineValue(name, true); } _members.Sort(); } OnGuildChanged(); if (GuildChanged != null) GuildChanged.Raise(this, EventArgs.Empty); }
void RecvAddStatusEffect(IIPSocket conn, BitStream r) { var statusEffectType = r.ReadEnum<StatusEffectType>(); var power = r.ReadUShort(); var secsLeft = r.ReadUShort(); GameplayScreen.StatusEffectsForm.AddStatusEffect(statusEffectType, power, secsLeft); GameplayScreen.AppendToChatOutput(string.Format("Added status effect {0} with power {1}.", statusEffectType, power)); }