Beispiel #1
0
        public static string UpdateMonster(UpdateMonster packet, UpdateMonsterForm to)
        {
            string[] args = packet.ToString().Split();
            switch (to)
            {
            case UpdateMonsterForm.SPAWN:
                args[0] = "fa_spawn";
                break;

            case UpdateMonsterForm.MOVE:
                args[0] = "fa_move";
                break;
            }
            return(string.Join(" ", args));
        }
Beispiel #2
0
        public void Push(InPacket packet)
        {
            #region Playable unit events
            if (packet is ReceiveDestination)
            {
                ReceiveDestination pos = packet as ReceiveDestination;

                if (presentedUnits.Contains(pos.Name))
                {
                    events.Enqueue(PacketConverter.ReceiveDestination(pos, ReceiveDestinationForm.MOVE));
                }
                else
                {
                    presentedUnits.Add(pos.Name);
                    events.Enqueue(PacketConverter.ReceiveDestination(pos, ReceiveDestinationForm.SPAWN));
                }
            }
            else if (packet is LeaveMessage)
            {
                LeaveMessage lev = packet as LeaveMessage;

                presentedUnits.Remove(lev.Name);
                events.Enqueue(lev.ToString());
            }
            #endregion
            #region Fauna events
            else if (packet is UpdateMonster)
            {
                UpdateMonster monster = packet as UpdateMonster;

                if (presentedFauna.Contains(monster.Id))
                {
                    events.Enqueue(PacketConverter.UpdateMonster(monster, UpdateMonsterForm.MOVE));
                }
                else
                {
                    presentedFauna.Add(monster.Id);
                    events.Enqueue(PacketConverter.UpdateMonster(monster, UpdateMonsterForm.SPAWN));
                }
            }
            #endregion
            #region Flora events
            else if (packet is UpdateHerb)
            {
                UpdateHerb herb = packet as UpdateHerb;

                if (presentedFauna.Contains(herb.Id))
                {
                    if (herb.State == 0)
                    {
                        events.Enqueue(PacketConverter.UpdateHerb(herb, UpdateHerbForm.REMOVE));
                    }
                    else
                    {
                        events.Enqueue(PacketConverter.UpdateHerb(herb, UpdateHerbForm.GROWTH));
                    }
                }
                else
                {
                    presentedFlora.Add(herb.Id);
                    events.Enqueue(PacketConverter.UpdateHerb(herb, UpdateHerbForm.SPAWN));
                }
            }
            #endregion
        }