public GameMessagePrivateUpdateVital(Session session, global::ACE.Entity.Enum.Ability ability, uint ranks, uint baseValue, uint totalInvestment, uint currentValue) : base(GameMessageOpcode.PrivateUpdateVital, GameMessageGroup.UIQueue) { // TODO We shouldn't be passing session. Insetad, we should pass the value after session.UpdateSkillSequence++. Vital vital; switch (ability) { case global::ACE.Entity.Enum.Ability.Health: vital = Vital.Health; break; case global::ACE.Entity.Enum.Ability.Stamina: vital = Vital.Stamina; break; case global::ACE.Entity.Enum.Ability.Mana: vital = Vital.Mana; break; default: throw new ArgumentException("invalid ability specified"); } Writer.Write(session.Player.Sequences.GetNextSequence(Sequence.SequenceType.PrivateUpdateAttribute)); Writer.Write((uint)vital); Writer.Write(ranks); Writer.Write(baseValue); Writer.Write(totalInvestment); Writer.Write(currentValue); }
public GameMessagePrivateUpdateAbility(Session session, global::ACE.Entity.Enum.Ability ability, uint ranks, uint baseValue, uint totalInvestment) : base(GameMessageOpcode.PrivateUpdateAttribute, GameMessageGroup.UIQueue) { // TODO We shouldn't be passing session. Insetad, we should pass the value after session.UpdateSkillSequence++. PropertyAttribute networkAbility; switch (ability) { case global::ACE.Entity.Enum.Ability.Strength: networkAbility = PropertyAttribute.Strength; break; case global::ACE.Entity.Enum.Ability.Endurance: networkAbility = PropertyAttribute.Endurance; break; case global::ACE.Entity.Enum.Ability.Coordination: networkAbility = PropertyAttribute.Coordination; break; case global::ACE.Entity.Enum.Ability.Quickness: networkAbility = PropertyAttribute.Quickness; break; case global::ACE.Entity.Enum.Ability.Focus: networkAbility = PropertyAttribute.Focus; break; case global::ACE.Entity.Enum.Ability.Self: networkAbility = PropertyAttribute.Self; break; default: throw new ArgumentException("invalid ability specified"); } Writer.Write(session.Player.Sequences.GetNextSequence(Sequence.SequenceType.PrivateUpdateAttribute)); Writer.Write((uint)networkAbility); Writer.Write(ranks); Writer.Write(baseValue); Writer.Write(totalInvestment); }
public static void Handle(ClientMessage message, Session session) { global::ACE.Entity.Enum.Ability ability = global::ACE.Entity.Enum.Ability.None; var networkAbility = (PropertyAttribute)message.Payload.ReadUInt32(); switch (networkAbility) { case PropertyAttribute.Strength: ability = global::ACE.Entity.Enum.Ability.Strength; break; case PropertyAttribute.Endurance: ability = global::ACE.Entity.Enum.Ability.Endurance; break; case PropertyAttribute.Coordination: ability = global::ACE.Entity.Enum.Ability.Coordination; break; case PropertyAttribute.Quickness: ability = global::ACE.Entity.Enum.Ability.Quickness; break; case PropertyAttribute.Focus: ability = global::ACE.Entity.Enum.Ability.Focus; break; case PropertyAttribute.Self: ability = global::ACE.Entity.Enum.Ability.Self; break; case PropertyAttribute.Undef: return; } var xpSpent = message.Payload.ReadUInt32(); session.Player.SpendXp(ability, xpSpent); }
public GameMessagePrivateUpdateVital(Session session, global::ACE.Entity.Enum.Ability ability, CreatureVital cv) : this(session, ability, cv.Ranks, cv.Base, cv.ExperienceSpent, cv.Current) { }