Beispiel #1
0
        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);
                }
            }
        }
Beispiel #2
0
 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");
 }
Beispiel #3
0
 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);
     }
 }
Beispiel #4
0
 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;
         }
     }
 }
Beispiel #5
0
        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);
        }
Beispiel #6
0
 public Spellpage(SpellObject spell)
 {
     MySpellObject = spell;
 }