public void LearnSpellWithNetworking(uint spellId, bool uiOutput = true) { var spells = DatManager.PortalDat.SpellTable; if (!spells.Spells.ContainsKey(spellId)) { GameMessageSystemChat errorMessage = new GameMessageSystemChat("SpellID not found in Spell Table", ChatMessageType.Broadcast); Session.Network.EnqueueSend(errorMessage); return; } if (!AddKnownSpell(spellId)) { GameMessageSystemChat errorMessage = new GameMessageSystemChat("That spell is already known", ChatMessageType.Broadcast); Session.Network.EnqueueSend(errorMessage); return; } GameEventMagicUpdateSpell updateSpellEvent = new GameEventMagicUpdateSpell(Session, (ushort)spellId); Session.Network.EnqueueSend(updateSpellEvent); //Check to see if we echo output to the client if (uiOutput == true) { // Always seems to be this SkillUpPurple effect ApplyVisualEffects(PlayScript.SkillUpPurple); string message = $"You learn the {spells.Spells[spellId].Name} spell.\n"; GameMessageSystemChat learnMessage = new GameMessageSystemChat(message, ChatMessageType.Broadcast); Session.Network.EnqueueSend(learnMessage); } }
public void LearnSpell(uint spellId) { var spells = DatManager.PortalDat.SpellTable; if (!spells.Spells.ContainsKey(spellId)) { GameMessageSystemChat errorMessage = new GameMessageSystemChat("SpellID not found in Spell Table", ChatMessageType.Broadcast); Session.Network.EnqueueSend(errorMessage); return; } if (SpellIsKnown(spellId)) { GameMessageSystemChat errorMessage = new GameMessageSystemChat("That spell is already known", ChatMessageType.Broadcast); Session.Network.EnqueueSend(errorMessage); return; } Biota.BiotaPropertiesSpellBook.Add(new BiotaPropertiesSpellBook { ObjectId = Biota.Id, Spell = (int)spellId }); GameEventMagicUpdateSpell updateSpellEvent = new GameEventMagicUpdateSpell(Session, spellId); Session.Network.EnqueueSend(updateSpellEvent); // Always seems to be this SkillUpPurple effect Session.Player.ApplyVisualEffects(ACE.Entity.Enum.PlayScript.SkillUpPurple); string spellName = spells.Spells[spellId].Name; string message = "You learn the " + spellName + " spell.\n"; GameMessageSystemChat learnMessage = new GameMessageSystemChat(message, ChatMessageType.Broadcast); Session.Network.EnqueueSend(learnMessage); }