public void BuySpell(Player _player, int SpellId) { SpellObject chosen = spellsForSale[SpellId]; if (_player.spellBook.Has(chosen.spellType)) { int price = _player.spellBook.rankOfSpell(chosen.spellType) * 5; if (_player.gold >= price) { _player.gold -= price; _player.spellBook.upgradeSpell(chosen.spellType); //ServerSend.Instance.sendGold(_player.gold); } } else { int price = pricePrRank; if (_player.gold >= price) { _player.gold -= price; _player.spellBook.addSpell(chosen); ServerSend.Instance.spellPurchase(_player.id, SpellId, _player.spellBook.getSlot(chosen.spellType), _player.gold); } } }
public void addSpell(SpellObject spell) { spell.owner = owner; spell.LastCast = DateTime.Now.Add(new TimeSpan(0, -1, 0)); pages.Add(new Spellpage(spell.toObject())); MyIndex.Add(spell.spellType); Console.WriteLine($"Spell of type {spell.spellType} has been learned"); }
public void spawnObject(SpellObject _object) { using (Packet _packet = new Packet((int)ServerPackets.spawnObject)) { _packet.Write(_object.type); _packet.Write(_object.id); _packet.Write(_object.position); _packet.Write(_object.rotation); _packet.Write((int)_object.spellType); SendUDPDataToAll(_packet); } }
private void castSpell() { if (status.IsCasting) { TimeSpan elapsed = DateTime.Now - status.CastingBegan; if (elapsed.TotalMilliseconds >= status.CurrentlyCasting.CastTime) { SpellObject spell = status.CurrentlyCasting.toObject(); spell.id = GameLogic.spells2.Count; spell.target = status.Target; GameLogic.spells2.Add(spell); ServerSend.Instance.spawnObject(spell); status.CurrentlyCasting.LastCast = DateTime.Now; status.IsCasting = false; } } }
public SpellObject toObject() { SpellObject clone = (SpellObject)this.MemberwiseClone(); clone.owner = owner; clone.rank = rank; clone.spellType = spellType; clone.OffsetScalar = OffsetScalar; try { clone.rotation = Server.clients[owner].player.rotation; clone.position = Server.clients[owner].player.position + this.offset; }catch { clone.rotation = new Quaternion(); clone.position = new Vector3(); } clone.position += clone.forward() * OffsetScalar; clone.SpawnTime = DateTime.Now; return(clone); }
public Spellpage(SpellObject spell) { MySpellObject = spell; }