public void Feed(IFeedable petFoodNOMNOMNOM) { FirstPetLevel.Increase(petFoodNOMNOMNOM); SecondPetLevel.Increase(petFoodNOMNOMNOM); ThirdPetLevel.Increase(petFoodNOMNOMNOM); Manager.Database.AddDatabaseOperation(db => { MySqlCommand cmd = db.CreateQuery(); cmd.CommandText = "UPDATE pets SET levels=@newLevels, xp=@newXp WHERE petId=@petId AND accId=@accId"; cmd.Parameters.AddWithValue("@petId", PetId); cmd.Parameters.AddWithValue("@accId", Owner.Players.ToArray()[0].Value.AccountId); cmd.Parameters.AddWithValue("@newLevels", String.Format("{0}, {1}, {2}", FirstPetLevel.Level, SecondPetLevel.Level, ThirdPetLevel.Level)); cmd.Parameters.AddWithValue("@newXp", String.Format("{0}, {1}, {2}", FirstPetLevel.Power, SecondPetLevel.Power, ThirdPetLevel.Power)); cmd.ExecuteNonQuery(); }); UpdateNeeded = true; UpdateCount++; this.Owner.Players.ToArray()[0].Value.Client.SendPacket(new UpdatePacket { Tiles = new UpdatePacket.TileData[0], NewObjects = new ObjectDef[1] { this.ToDefinition() }, RemovedObjectIds = new int[0] }); }
public void Feed(IFeedable petFoodNOMNOMNOM) { FirstPetLevel.Incease(petFoodNOMNOMNOM); SecondPetLevel.Incease(petFoodNOMNOMNOM); ThirdPetLevel.Incease(petFoodNOMNOMNOM); Manager.Database.DoActionAsync(db => { MySqlCommand cmd = db.CreateQuery(); cmd.CommandText = "UPDATE pets SET levels=@newLevels, xp=@newXp WHERE petId=@petId AND accId=@accId"; cmd.Parameters.AddWithValue("@petId", PetId); cmd.Parameters.AddWithValue("@accId", Owner.Players.ToArray()[0].Value.AccountId); cmd.Parameters.AddWithValue("@newLevels", String.Format("{0}, {1}, {2}", FirstPetLevel.Level, SecondPetLevel.Level, ThirdPetLevel.Level)); cmd.Parameters.AddWithValue("@newXp", String.Format("{0}, {1}, {2}", FirstPetLevel.Power, SecondPetLevel.Power, ThirdPetLevel.Power)); cmd.ExecuteNonQuery(); }); UpdateNeeded = true; UpdateCount++; this.Owner.Players.ToArray()[0].Value.Client.SendPacket(new UpdatePacket { Tiles = new UpdatePacket.TileData[0], NewObjects = new ObjectDef[1] { this.ToDefinition() }, RemovedObjectIds = new int[0] }); }
public void Incease(IFeedable petFoodNOMNOMNOM) { int remaining = petFoodNOMNOMNOM.FeedPower; if (type == AbilityType.Second) { remaining = (int)(petFoodNOMNOMNOM.FeedPower * 0.7); } if (type == AbilityType.Third) { remaining = (int)(petFoodNOMNOMNOM.FeedPower * 0.3); } if (Level == pet.MaximumLevel || Level == 100) { return; } while (remaining > 0) { remaining--; Power++; if (Power == LevelCap[Level]) { Level++; } if (Level == pet.MaximumLevel || Level == 100) { break; } } }
void FeedFromInventory(IFeedable feedable) { if (feedable != null) { // First we need to find out how much food left do we need to feed baby var hunger = feedable.GetHunger(); feedable.Feed(TakeFoodFromInventory(hunger)); } }
public void Incease(IFeedable petFoodNOMNOMNOM) { int remaining = petFoodNOMNOMNOM.FeedPower; if (type == AbilityType.Second) remaining = (int)(petFoodNOMNOMNOM.FeedPower * 0.702025); if (type == AbilityType.Third) remaining = (int)(petFoodNOMNOMNOM.FeedPower * 0.3240117); if (Level == pet.MaximumLevel || Level == 100) return; while (remaining > 0) { remaining--; Power++; if (Power == LevelCap[Level]) Level++; if (Level == pet.MaximumLevel || Level == 100) break; } }
private void FeedPet(Client client, PetYardCommandPacket packet) { try { Pet pet = (client.Player.Owner as PetYard).FindPetById(packet.PetId1); if (packet.Currency == CurrencyType.Fame) { switch (pet.PetRarity) { case Rarity.Common: if (!TryDeduct(packet.Currency, client.Player, 10)) { return; } break; case Rarity.Uncommon: if (!TryDeduct(packet.Currency, client.Player, 30)) { return; } break; case Rarity.Rare: if (!TryDeduct(packet.Currency, client.Player, 100)) { return; } break; case Rarity.Legendary: if (!TryDeduct(packet.Currency, client.Player, 350)) { return; } break; case Rarity.Divine: if (!TryDeduct(packet.Currency, client.Player, 1000)) { return; } break; default: throw new Exception("Invalid pet rarity"); } } if (packet.Currency == CurrencyType.Gold) { switch (pet.PetRarity) { case Rarity.Common: if (!TryDeduct(packet.Currency, client.Player, 5)) { return; } break; case Rarity.Uncommon: if (!TryDeduct(packet.Currency, client.Player, 12)) { return; } break; case Rarity.Rare: if (!TryDeduct(packet.Currency, client.Player, 30)) { return; } break; case Rarity.Legendary: if (!TryDeduct(packet.Currency, client.Player, 60)) { return; } break; case Rarity.Divine: if (!TryDeduct(packet.Currency, client.Player, 150)) { return; } break; default: throw new Exception("Invalid pet rarity"); } } client.SendPacket(new BuyResultPacket { Result = 0, Message = "{\"key\":\"server.buy_success\"}" }); IFeedable tofeed = client.Player.Inventory[packet.ObjectSlot.SlotId]; client.Player.Inventory[packet.ObjectSlot.SlotId] = null; pet.Feed(tofeed); client.Player.UpdateCount++; } catch (Exception ex) { Console.WriteLine(ex); client.Player.SendError("Internal server error: " + ex.Message); } }
public void Init(int inputPortsNum, int outputPortsNum, IFeedable <Tuple <JobTicket <TTicketIn>, FiberCapsule <TUnit, TTicketIn, TTicketOut> > > feedable) { Data = feedable; InternalInit(inputPortsNum, outputPortsNum); }
private void FeedPet(Client client, PetYardCommandPacket packet) { try { Pet pet = (client.Player.Owner as PetYard).FindPetById(packet.PetId1); if (packet.Currency == CurrencyType.Fame) { switch (pet.PetRarity) { case Rarity.Common: if (!TryDeduct(packet.Currency, client.Player, 10)) { return; } break; case Rarity.Uncommon: if (!TryDeduct(packet.Currency, client.Player, 30)) { return; } break; case Rarity.Rare: if (!TryDeduct(packet.Currency, client.Player, 100)) { return; } break; case Rarity.Legendary: if (!TryDeduct(packet.Currency, client.Player, 350)) { return; } break; case Rarity.Divine: if (!TryDeduct(packet.Currency, client.Player, 1000)) { return; } break; default: throw new Exception("Invalid pet rarity"); } } if (packet.Currency == CurrencyType.Gold) { switch (pet.PetRarity) { case Rarity.Common: if (!TryDeduct(packet.Currency, client.Player, 5)) { return; } break; case Rarity.Uncommon: if (!TryDeduct(packet.Currency, client.Player, 12)) { return; } break; case Rarity.Rare: if (!TryDeduct(packet.Currency, client.Player, 30)) { return; } break; case Rarity.Legendary: if (!TryDeduct(packet.Currency, client.Player, 60)) { return; } break; case Rarity.Divine: if (!TryDeduct(packet.Currency, client.Player, 150)) { return; } break; default: throw new Exception("Invalid pet rarity"); } } client.Player.SendInfo("Purchase successful!"); //client.SendPacket(new BuyResultPacket //{ // Result = 0, // Message = "{\"key\":\"server.buy_success\"}" //}); IFeedable tofeed = client.Player.Inventory[packet.ObjectSlot.SlotId]; client.Player.Inventory[packet.ObjectSlot.SlotId] = null; pet.Feed(tofeed); client.Player.SaveToCharacter(); client.Save(); client.Player.UpdateCount++; } catch// (Exception ex) { Pet pet = (client.Player.Owner as PetYard).FindPetById(packet.PetId1); if (packet.Currency == CurrencyType.Fame) { switch (pet.PetRarity) { case Rarity.Common: if (!TryDeduct(packet.Currency, client.Player, 10)) { return; } break; case Rarity.Uncommon: if (!TryDeduct(packet.Currency, client.Player, 30)) { return; } break; case Rarity.Rare: if (!TryDeduct(packet.Currency, client.Player, 100)) { return; } break; case Rarity.Legendary: if (!TryDeduct(packet.Currency, client.Player, 350)) { return; } break; case Rarity.Divine: if (!TryDeduct(packet.Currency, client.Player, 1000)) { return; } break; default: throw new Exception("Invalid pet rarity"); } } if (packet.Currency == CurrencyType.Gold) { switch (pet.PetRarity) { case Rarity.Common: if (!TryDeduct(packet.Currency, client.Player, 5)) { return; } break; case Rarity.Uncommon: if (!TryDeduct(packet.Currency, client.Player, 12)) { return; } break; case Rarity.Rare: if (!TryDeduct(packet.Currency, client.Player, 30)) { return; } break; case Rarity.Legendary: if (!TryDeduct(packet.Currency, client.Player, 60)) { return; } break; case Rarity.Divine: if (!TryDeduct(packet.Currency, client.Player, 150)) { return; } break; default: throw new Exception("Invalid pet rarity"); } } IFeedable tofeed = client.Player.Inventory[packet.ObjectSlot.SlotId]; client.Player.Inventory[packet.ObjectSlot.SlotId] = null; pet.Feed(tofeed); client.Player.SaveToCharacter(); client.Save(); client.Player.UpdateCount++; //log.Error(ex); //client.Player.SendError("Internal server error: " + ex.Message); //client.Player.SendInfo("Server Error #173 - PetYardCommandHandler.cs. Contact LoE Team."); } }
public CatSitter(IFeedable pet) : base(pet) { Pet = pet; }
public PetSitter(IFeedable pet) { Pet = pet; }