public static string UpdateHerb(UpdateHerb packet, UpdateHerbForm to) { string[] args = packet.ToString().Split(); switch (to) { case UpdateHerbForm.SPAWN: args[0] = "fl_spawn"; break; case UpdateHerbForm.GROWTH: args[0] = "fl_growth"; break; case UpdateHerbForm.REMOVE: args[0] = "fl_remove"; break; } return(string.Join(" ", args)); }
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 }