public override void HandleFromClient(BinaryReader reader, int whoAmI) { var data = reader.ReadString(); switch (data) { case SQUIRTLE: { if (!Main.player[whoAmI].active) { return; } PokeballCaught.writeDetour(nameof(Squirtle), "Squirtle", "Terramon/Minisprites/Regular/miniSquirtle"); int index = Item.NewItem(Main.player[whoAmI].getRect(), ModContent.ItemType <PokeballCaught>()); if (index >= 400 || !(Main.item[index].modItem is PokeballCaught modItem)) { return; } } break; case CHARMANDER: { PokeballCaught.writeDetour(nameof(Charmander), "Charmander", "Terramon/Minisprites/Regular/miniCharmander"); int index = Item.NewItem(Main.player[whoAmI].getRect(), ModContent.ItemType <PokeballCaught>()); if (index >= 400 || !(Main.item[index].modItem is PokeballCaught modItem)) { return; } } break; case BULBASAUR: { PokeballCaught.writeDetour(nameof(Bulbasaur), "Bulbasaur", "Terramon/Minisprites/Regular/miniBulbasaur"); int index = Item.NewItem(Main.player[whoAmI].getRect(), ModContent.ItemType <PokeballCaught>()); if (index >= 400 || !(Main.item[index].modItem is PokeballCaught modItem)) { return; } } break; } }
public override float SpawnChance(NPCSpawnInfo spawnInfo) { Player player = Main.LocalPlayer; Item[] pokeballCaught = spawnInfo.player.inventory.Where(i => !i.IsAir && i.modItem is PokeballCaught).ToArray(); Item[] greatballCaught = spawnInfo.player.inventory.Where(i => !i.IsAir && i.modItem is GreatBallCaught).ToArray(); Item[] ultraballCaught = spawnInfo.player.inventory.Where(i => !i.IsAir && i.modItem is UltraBallCaught).ToArray(); Item[] duskballCaught = spawnInfo.player.inventory.Where(i => !i.IsAir && i.modItem is DuskBallCaught).ToArray(); Item[] premierballCaught = spawnInfo.player.inventory.Where(i => !i.IsAir && i.modItem is PremierBallCaught).ToArray(); if (spawnInfo.player.ZoneRockLayerHeight && spawnInfo.player.ZoneSnow) { if (pokeballCaught.Any() || greatballCaught.Any() || ultraballCaught.Any() || duskballCaught.Any() || premierballCaught.Any()) { for (int i = 0; i < pokeballCaught.Length; i++) { PokeballCaught ball = (pokeballCaught[i].modItem as PokeballCaught); if (ball.PokemonName == "Blastoise") { return(0.035f); } } for (int i = 0; i < greatballCaught.Length; i++) { GreatBallCaught greatball = (greatballCaught[i].modItem as GreatBallCaught); if (greatball.PokemonName == "Blastoise") { return(0.035f); } } for (int i = 0; i < ultraballCaught.Length; i++) { UltraBallCaught ultraball = (pokeballCaught[i].modItem as UltraBallCaught); if (ultraball.PokemonName == "Blastoise") { return(0.035f); } } for (int i = 0; i < duskballCaught.Length; i++) { DuskBallCaught duskball = (pokeballCaught[i].modItem as DuskBallCaught); if (duskball.PokemonName == "Blastoise") { return(0.035f); } } for (int i = 0; i < premierballCaught.Length; i++) { PremierBallCaught premierball = (pokeballCaught[i].modItem as PremierBallCaught); if (premierball.PokemonName == "Blastoise") { return(0.035f); } } } return(0f); } else { return(0f); } }