示例#1
0
        public void AddDrop(Drop drop)
        {
            int id = _objectIDs.NextValue();

            Drops.Add(id, drop);
            drop.ID = id;
        }
示例#2
0
 public void AddDrop(Drop drop)
 {
     Drops.Add(drop.ID, drop);
     using (var spawn = Handler7.ShowDrop(drop))
     {
         Broadcast(spawn);
     }
 }
示例#3
0
        protected override void UpdateDrops(Drop <ContainerDestination> drop)
        {
            base.UpdateDrops(drop);

            if (drop.Data.Container.Size == ContainerSize.FortyFoot)
            {
                Drops.Add(new Drop <ContainerDestination>(drop.Data, drop.Row, (int.Parse(drop.Bay) + 1).ToString()));
            }
        }
示例#4
0
文件: Jell.cs 项目: j-oh/Online-CTF
 public Jell(bool server) : base(server)
 {
     InitVars();
     //Drops.Add(new ItemDrop(ItemName.Dirt, random.Next(5) + 5, server));
     Drops.Add(new ItemDrop(ItemName.Stone, random.Next(5) + 5, server));
     if (random.Next(10) < 1)
     {
         Drops.Add(new ItemDrop(ItemName.Sword, 1, server));
     }
 }
示例#5
0
        public async Task CreateDrop(Drop drop)
        {
            //set creatorId to current device id
            drop.CreatorId = _deviceService.DeviceId;

            var dropResult = await _dropClient.CreateDrop(drop);

            Drops.Add(dropResult);
            OwnDrops.Add(dropResult);
        }
示例#6
0
        public void Update()
        {
            map.UpDate();
            MEvent Event;

            while ((Event = map.NextEvent()) != null)
            {
                if (Event.Type == MEvents.PlayerArrow)
                {
                    int TagArrow  = ((MEventArrowHit)Event).TagArrow;
                    int TagPlayer = ((MEventArrowHit)Event).TagPlayer;
                    players[TagPlayer].recieveDamage(Arrows[TagArrow].dmg);
                    if (players[TagPlayer].isDead())
                    {
                        if (ArenaPlayer.ContainsKey(Arrows[TagArrow].creater))
                        {
                            ArenaPlayer[Arrows[TagArrow].creater].AddKill();
                        }
                        ArenaPlayer[TagPlayer].AddDeath();
                        if (players[TagPlayer].rightHand != 1)
                        {
                            int NewTag = Utily.GetTag();
                            Drops.Add(NewTag, new ADrop(1, players[TagPlayer].rightHand));
                            map.SpawnDrops(NewTag, map.players[TagPlayer].x, map.players[TagPlayer].y);
                        }
                        map.SpawnPlayer(TagPlayer);
                        players[TagPlayer].respawn();
                    }
                    Arrows.Remove(TagArrow);
                }
                if (Event.Type == MEvents.PlayerDrop)
                {
                    var drop = Drops[((MEventDrop)Event).TagDrop];
                    players[((MEventDrop)Event).TagPlayer].pickedUpItem(drop.id, drop.Count);
                    Drops.Remove(((MEventDrop)Event).TagDrop);
                    if (((MEventDrop)Event).BySpawner)
                    {
                        DropForRespawn.Enqueue(Utily.MakePair <long, int>(timer.ElapsedMilliseconds, ((MEventDrop)Event).NumSpawner));
                    }
                }
                if (Event.Type == MEvents.DestroyArrow)
                {
                    Arrows.Remove(((MEventDestroyArrow)Event).TagArrow);
                }
            }
            while (DropForRespawn.Count > 0 && DropForRespawn.Peek().Item1 + WaitRespawnDrop < timer.ElapsedMilliseconds)
            {
                int num = DropForRespawn.Dequeue().Item2;
                int tag = Utily.GetTag();
                map.SpawnDrops(num, tag);
                Drops.Add(tag, new ADrop(map.dropSpawners[num].count, map.dropSpawners[num].id));
            }
        }
示例#7
0
 public ToxWyrm(int characterLV, Game1 _game, PlayerCharacter pc)
     : base(characterLV, _game)
 {
     name       = "Toxwyrm";
     image      = Content.Load <Texture2D>(@"Images/fireworm");
     ATK_MOD    = .5f;
     DEF_MOD    = .9f;
     SP_DEF_MOD = .85f;
     atk        = 12;
     goldAmt    = this.level * 12;
     Drops.Add(new HealthPot("Health Potion", pc, "+35% HP\n\nA small, red potion.\nAs generic as they come.", 20));
 }
示例#8
0
        public async Task <GetDropsResponse> GetDropsForMap(double mapNorth, double mapSouth, double mapWest, double mapEast)
        {
            var dropsResult = await _dropClient.GetDrops(mapNorth, mapSouth, mapWest, mapEast);

            foreach (var drop in dropsResult.Drops)
            {
                if (Drops.All(x => x.Id != drop.Id))
                {
                    Drops.Add(drop);
                }
            }
            return(dropsResult);
        }
示例#9
0
        public override void OnUserDamaged(Character pUser, CMob pMob, int nDamage)
        {
            // TODO override drop expiration timer with template dropExpire attribute (10 sec on this map)

            if (!aTeams.ContainsKey(pUser.dwId) && pUser.Account.AccountData.Admin <= 0)
            {
                pUser.Action.SetField(ReturnMapId);
                return;
            }

            var nItemID = (int)(aTeams[pUser.dwId] == BattlefieldData.BattlefieldTeams.Wolves
                                ? BattlefieldData.BattleItems.ShepherdBoysLunch
                                : BattlefieldData.BattleItems.FineWool);

            if (nItemID == (int)BattlefieldData.BattleItems.ShepherdBoysLunch && Constants.Rand.Next() % 100 > 10)
            {
                return;
            }

            if (nItemID == (int)BattlefieldData.BattleItems.FineWool)
            {
                if (aSheepPoints[pUser.dwId] > 0)
                {
                    if (--aSheepPoints[pUser.dwId] == 0)
                    {
                        ChangePlayerTeam(pUser.dwId, BattlefieldData.BattlefieldTeams.SheepNaked);
                        BroadcastNotice($"{pUser.Stats.sCharacterName} has lost all their wool!");
                    }
                }
                else
                {
                    return;                     // cant drop wool if u already dropped all of it
                }
            }

            var item = MasterManager.CreateItem(nItemID);

            var drop = new CDrop(pUser.Position.CurrentXY, 0)
            {
                Item   = item,
                ItemId = item.nItemID,
                QR     = pUser.dwId.ToString()
            };

            drop.Position.X = drop.StartPosX;
            drop.CalculateY(this, drop.StartPosY);

            Drops.Add(drop);
        }
示例#10
0
 public VioletWing(int CharacterLV, Game1 _game, PlayerCharacter pc)
     : base(CharacterLV, _game)
 {
     image      = Content.Load <Texture2D>(@"Images/secondEnemy");
     name       = "Violet Wing";
     ATK_MOD    = .6f;
     DEF_MOD    = .5f;
     SPD_MOD    = 1.1f;
     SP_DEF_MOD = .6f;
     SP_ATK_MOD = .5f;
     HP_MOD     = .7f;
     goldAmt    = this.level * 12;
     CurrentHP  = (int)(hp * HP_MOD);
     Drops.Add(new ManaPot("Small Mana Potion", pc, 10, "+10 Mana\n\nA bubbling blue potion.\nIt seems fizzy.", 15));
 }
示例#11
0
 public SporeWeed(int characterLV, Game1 _game, PlayerCharacter pc)
     : base(characterLV, _game)
 {
     image           = Content.Load <Texture2D>(@"Images/ThirdEnemy");
     this.SP_ATK_MOD = .60f;
     this.SP_DEF_MOD = .85f;
     this.SPD_MOD    = 1.1f;
     this.DEF_MOD    = .75f;
     this.ATK_MOD    = .7f;
     this.HP_MOD     = .8f;
     this.specChance = .3f;
     this.goldAmt    = this.level * 12;
     this.name       = "Spore Weed";
     this.CurrentHP  = (int)(hp * HP_MOD);
     Drops.Add(new HealthPot("Health Potion", pc, "+35% HP\n\nA small, red potion. As generic as they come.", 15));
 }
示例#12
0
        public async Task <Drop> GetDrop(Guid?id)
        {
            if (id.HasValue)
            {
                var result = Drops.FirstOrDefault(x => x.Id == id);
                if (result == null)
                {
                    result = await _dropClient.GetDrop(id.Value);

                    if (result != null)
                    {
                        Drops.Add(result);
                    }
                }
                return(result);
            }
            return(null);
        }
示例#13
0
 public void NewMap(string name)
 {
     map = new Map("./data/Maps/" + name + ".txt");
     foreach (var i in players)
     {
         map.AddPlayer(i.Key);
         players[i.Key].respawn();
     }
     Arrows.Clear();
     Drops.Clear();
     DropForRespawn.Clear();
     for (int i = 0; i < map.dropSpawners.Count; ++i)
     {
         int tag = Utily.GetTag();
         map.SpawnDrops(i, tag);
         Drops.Add(tag, new ADrop(map.dropSpawners[i].count, map.dropSpawners[i].id));
     }
     timer.Restart();
 }
示例#14
0
        public void OnDropAdded(object source, GameplayDropEventArgs args)
        {
            Drop drop = null;

            switch (args.Type)
            {
            case (int)DropTypes.SurpriseBoxDrop:
                drop = new SurpriseBoxDrop(args.X, args.Y);
                break;

            case (int)DropTypes.BananaDrop:
                drop = new BananaDrop(args.X, args.Y);
                break;

            default:
                throw new System.ComponentModel.InvalidEnumArgumentException();
            }

            Drops.Add(args.Id, drop);
        }
示例#15
0
        public void TakeString(string Arrow, string Drop, string Player)
        {
            var           arr    = Arrow.Split(',');
            HashSet <int> IsUsed = new HashSet <int>();

            for (int i = 0; i < arr.Length; i++)
            {
                var small = arr[i].Split(' ');
                int tag   = Utily.Parse(small[0]);
                int dmg   = Utily.Parse(small[1]);
                int id    = Utily.Parse(small[2]);
                if (Arrows.ContainsKey(tag))
                {
                    Arrows[tag].dmg = dmg;
                    Arrows[tag].id  = id;
                }
                else
                {
                    Arrows.Add(tag, new AArrow(dmg, id));
                    ArrowEvent.Enqueue(tag);
                }
                IsUsed.Add(tag);
            }
            List <int> ForRemove = new List <int>();

            foreach (var i in Arrows)
            {
                if (!IsUsed.Contains(i.Key))
                {
                    ForRemove.Add(i.Key);
                    ArrowEvent.Enqueue(-i.Key);
                }
            }
            foreach (var i in ForRemove)
            {
                Arrows.Remove(i);
            }

            var dro = Drop.Split(',');

            IsUsed.Clear();
            for (int i = 0; i < arr.Length; i++)
            {
                var small = dro[i].Split(' ');
                int tag   = Utily.Parse(small[0]);
                int cnt   = Utily.Parse(small[1]);
                int id    = Utily.Parse(small[2]);
                if (Drops.ContainsKey(tag))
                {
                    Drops[tag].Count = cnt;
                    Drops[tag].id    = id;
                }
                else
                {
                    Drops.Add(tag, new ADrop(cnt, id));
                    DropEvent.Enqueue(tag);
                }
                IsUsed.Add(tag);
            }
            ForRemove.Clear();
            foreach (var i in Drops)
            {
                if (!IsUsed.Contains(i.Key))
                {
                    ForRemove.Add(i.Key);
                    DropEvent.Enqueue(-i.Key);
                }
            }
            foreach (var i in ForRemove)
            {
                Drops.Remove(i);
            }

            var pla = Player.Split(',');

            IsUsed.Clear();
            for (int i = 0; i < arr.Length; i++)
            {
                var small = pla[i].Split(' ');
                int tag   = Utily.Parse(small[0]);
                int kill  = Utily.Parse(small[1]);
                int death = Utily.Parse(small[2]);
                if (ArenaPlayer.ContainsKey(tag))
                {
                    ArenaPlayer[tag].RealName = small[3];
                    IsUsed.Add(tag);
                }
                else
                {
                    ArenaPlayer.Add(tag, new APlayer(small[3]));
                }
                ArenaPlayer[tag].Kill  = kill;
                ArenaPlayer[tag].Death = death;
            }
            ForRemove.Clear();
            foreach (var i in ArenaPlayer)
            {
                if (!IsUsed.Contains(i.Key))
                {
                    ForRemove.Add(i.Key);
                }
            }
            foreach (var i in ForRemove)
            {
                ArenaPlayer.Remove(i);
            }
        }
示例#16
0
        protected virtual void UpdateDrops(Drop <T> drop)
        {
            RemoveExisting(drop);

            Drops.Add(drop);
        }
示例#17
0
        /// <summary>
        /// get all the current touches
        /// </summary>
        private void GetTouches()
        {
            //go though the points that are being touched
            foreach (var touch in TouchCollection)
            {
                var touchIndex = touch.Id % _numTouches;

                if (touch.State == TouchLocationState.Pressed)
                {
                    AddHighlightEvent(touch);

                    //set the drag operation, just in case
                    TouchStartPosition[touchIndex] = touch;
                }
                else if (touch.State == TouchLocationState.Moved)
                {
                    AddHighlightEvent(touch);

                    //Sometimes TryGetPreviousLocation can fail.
                    //Bail out early if this happened or if the last state didn't move
                    TouchLocation prevLoc;
                    if (!touch.TryGetPreviousLocation(out prevLoc) ||
                        prevLoc.State != TouchLocationState.Moved ||
                        TouchStartPosition[touchIndex].Id != touch.Id)
                    {
                        continue;
                    }

                    // get your delta
                    var delta = touch.Position - prevLoc.Position;

                    //fire off drag event
                    Drags.Add(new DragEventArgs()
                    {
                        Start   = ConvertCoordinate(TouchStartPosition[touchIndex].Position),
                        Current = ConvertCoordinate(touch.Position),
                        Delta   = (touch.Position - prevLoc.Position),
                        Button  = MouseButton.Left
                    });
                }
                else if (touch.State == TouchLocationState.Released)
                {
                    //Sometimes TryGetPreviousLocation can fail.
                    //Bail out early if this happened or if the last state didn't move
                    TouchLocation prevLoc;
                    if (!touch.TryGetPreviousLocation(out prevLoc) ||
                        prevLoc.State != TouchLocationState.Moved ||
                        TouchStartPosition[touchIndex].Id != touch.Id)
                    {
                        continue;
                    }

                    // get your delta
                    var dragStartPosition = ConvertCoordinate(TouchStartPosition[touchIndex].Position);
                    var touchPos          = ConvertCoordinate(touch.Position);
                    var delta             = touchPos - dragStartPosition;

                    // Usually you don't want to do something if the user drags 1 pixel.
                    if (delta.LengthSquared() < _dragDelta)
                    {
                        continue;
                    }

                    //fire off drop event
                    Drops.Add(new DropEventArgs()
                    {
                        Start  = dragStartPosition,
                        Drop   = touchPos,
                        Button = MouseButton.Left
                    });
                }
            }
        }