public ModPacket GetPacket(TerramonMod mod) { var packet = mod.GetPacket(); packet.Write(PacketName); return(packet); }
/// <summary> /// Returns the BaseMove learned at the specified level. Don't use to get moves for a level 1, instead use BaseMove.DefaultMoves(). /// </summary> /// <param name="t">The ParentPokemon type</param> /// <param name="targetlevel">The query level to search the database for</param> /// <returns></returns> public static BaseMove LearnAt(ParentPokemon t, int targetlevel) { string match = t.Name; foreach (MoveDb pokemon in moveDb) // Loop through MoveDb { if (pokemon.Name == match) { foreach (Dictionary <string, long> move in pokemon.LearnAtLevel) { foreach (string key in move.Keys) { if (move[key] == targetlevel) { BaseMove type = TerramonMod.GetMove(key); if (type == null) { return(null); } return(type); } } } } } return(null); }
public void Send(TerramonMod mod, int id) { var p = GetPacket(mod); p.Write(id); p.Send(); }
public void Send(TerramonMod mod, BaseMove move) { var p = GetPacket(mod); p.Write(move.GetType().Name); p.Send(); }
public void Send(TerramonMod mod, string mon) { var packet = GetPacket(mod); packet.Write(mon); packet.Send(256); }
public void Send(TerramonMod mod, BattleState state, Player battleWith) { var p = GetPacket(mod); p.Write((int)state); p.Write(battleWith.whoAmI); p.Send(); }
public void Send(TerramonMod mod, int npcID, int projID) { var p = GetPacket(mod); p.Write(npcID); p.Write(projID); p.Send(); }
public override void Update(GameTime gameTime) { // Don't delete this or the UIElements attached to this UIState will cease to function. base.Update(gameTime); if (partyslot1.Item.IsAir) { PokemonGoesHere.SetText("Place a Pokémon in the first slot."); mainPanel.RemoveChild(partyslot2); } else { if (partyslot1.Item.modItem is BaseCaughtClass pokeball) { var mon = TerramonMod.GetPokemon(pokeball.CapturedPokemon); if (mon != null && mon.CanEvolve) { if (mon.EvolveItem == EvolveItem.RareCandy) { //Set preference to RareCandy partyslot2.ValidItemFunc = item => item.IsAir || item.modItem is RareCandy; PokemonGoesHere.SetText($"Place {mon.EvolveCost} Rare Candies in the second slot."); mainPanel.Append(partyslot2); if (!partyslot2.Item.IsAir && partyslot2.Item.modItem is RareCandy && partyslot2.Item.stack == mon.EvolveCost) { PokemonGoesHere.SetText("Great! Press the evolve button!"); mainPanel.Append(SaveButton); } else { mainPanel.RemoveChild(SaveButton); } } else if (mon.EvolveItem == EvolveItem.LinkCable) { //Set preference to LinkCable partyslot2.ValidItemFunc = item => item.IsAir || item.modItem is LinkCable; PokemonGoesHere.SetText($"Place {mon.EvolveCost} Link Cable in the second slot."); mainPanel.Append(partyslot2); if (!partyslot2.Item.IsAir && partyslot2.Item.modItem is LinkCable && partyslot2.Item.stack == mon.EvolveCost) { PokemonGoesHere.SetText("Great! Press the evolve button!"); mainPanel.Append(SaveButton); } else { mainPanel.RemoveChild(SaveButton); } } } else { PokemonGoesHere.SetText("This Pokémon cannot evolve!"); } } } }
public void Send(TerramonMod mod, BattleState state, PokemonData data, int projID) { var p = GetPacket(mod); p.Write((int)state); p.Write(data); p.Write(projID); p.Send(); }
public override void Action(CommandCaller caller, string input, string[] args) { if (args.Length == 0) { TerramonMod terramonMod = ModContent.GetInstance <TerramonMod>(); terramonMod._battle.SetState(BattleMode.UI = new BattleUI()); terramonMod.summaryUIInterface.SetState(terramonMod.summaryUI = new AnimatorUI()); //Process.Start("https://terrariamods.gamepedia.com/Terramon"); } }
public override void UpdateInventory(Player player) { currentWaitTime++; if (currentWaitTime < WaitTime * 60) { return; } if (PokemonName == null || PokemonName == string.Empty) { item.TurnToAir();//This is invalid item return; } ParentPokemon hatchedPokemon = TerramonMod.GetPokemon(PokemonName); string pokemonName = hatchedPokemon?.GetType().Name; if (player.whoAmI != Main.myPlayer) { return; } switch (Main.netMode) { case NetmodeID.MultiplayerClient: { var packet = new BaseCatchPacket(); packet.Send((TerramonMod)mod, pokemonName, pokemonName, player.getRect(), ItemType <PokeballCaught>()); break; } case NetmodeID.Server: { BaseCaughtClass.writeDetour(pokemonName, pokemonName, GetSmallSpritePath(pokemonName), 1, "", false); //This force server to write data when SetDefault() was called Item.NewItem(player.position, ItemType <PokeballCaught>()); // Within this call SetDefault was called break; } default: { int pokeballIndex = Item.NewItem(player.position, ItemType <PokeballCaught>()); BaseCaughtClass pokeballItem = Main.item[pokeballIndex].modItem as BaseCaughtClass; pokeballItem.PokemonName = pokeballItem.CapturedPokemon = pokemonName; pokeballItem.SmallSpritePath = GetSmallSpritePath(pokemonName); break; } } Main.NewText(player.name + " the " + pokemonName + " Egg has hatched!", Color.Orange); player.ConsumeItem(item.type); currentWaitTime = 0; }
public void Send(TerramonMod mod, TerramonPlayer pl) { if (Main.netMode == NetmodeID.Server) { return; } var p = GetPacket(mod); p.Write(pl.ActivePartySlot); p.Send(); }
public void Send(TerramonMod mod, TerramonPlayer pl, int target = -1) { if (Main.netMode == NetmodeID.Server) { return; } var p = GetPacket(mod); p.Write(pl.Save()); p.Send(); }
public override void Initialize() { InitializePokeballs(); //Initialise active pets bools var list = TerramonMod.GetPokemonsNames(); ActivePet = new Dictionary <string, bool>(); foreach (var it in list) { ActivePet.Add(it, false); } }
private void EvolveButtonClicked(UIMouseEvent evt, UIElement listeningElement) { int whicheverballtype = TerramonMod.PokeballFactory.GetPokeballType(partyslot1.Item.modItem); // stuff break if (partyslot1.Item.modItem is BaseCaughtClass pokeball) { var mon = TerramonMod.GetPokemon(pokeball.CapturedPokemon); if (mon == null) { Main.NewText("This Pokémon cannot evolve!"); return; } var evolved = TerramonMod.GetPokemon(mon.EvolveTo.Name); if (evolved == null) { Main.NewText("This Pokémon cannot evolve!"); return; } if (Main.netMode == NetmodeID.MultiplayerClient) { BaseCatchPacket packet = new BaseCatchPacket(); packet.Send(TerramonMod.Instance, evolved.GetType().Name, evolved.GetType().Name, Main.LocalPlayer.getRect(), whicheverballtype); } else { int index = Item.NewItem(Main.LocalPlayer.getRect(), whicheverballtype); if (index >= 400) { return; } if (Main.item[index].modItem is BaseCaughtClass item) { item.PokemonName = evolved.GetType().Name; item.CapturedPokemon = evolved.GetType().Name; } } } Visible = false; partyslot1.Item.TurnToAir(); partyslot2.Item.TurnToAir(); mainPanel.RemoveChild(SaveButton); Main.LocalPlayer.talkNPC = 0; }
public override bool PreDrawInInventory(SpriteBatch spriteBatch, Vector2 position, Rectangle frame, Color drawColor, Color itemColor, Vector2 origin, float scale) { if (SmallSpritePath == null) { var mon = TerramonMod.GetPokemon(CapturedPokemon); if (mon == null) { return(true); } SmallSpritePath = mon.IconName; } Texture2D pokemonTexture = ModContent.GetTexture(SmallSpritePath); Texture2D itemTexture = Main.itemTexture[item.type]; spriteBatch.Draw(itemTexture, position, frame, drawColor, 0f, origin, scale, SpriteEffects.None, 0); spriteBatch.Draw(pokemonTexture, position + itemTexture.Size() * Main.inventoryScale - new Vector2(4, 4), pokemonTexture.Frame(), drawColor, 0f, pokemonTexture.Size() / 2f, Main.inventoryScale, SpriteEffects.None, 0); return(false); }
public void Send(TerramonMod mod, string type, string name, Rectangle rect, int pokeType) { try { var packet = GetPacket(mod); packet.Write(type); packet.Write(name); //packet.Write("v2"); packet.Write(rect.X); packet.Write(rect.Y); packet.Write(rect.Width); packet.Write(rect.Height); packet.Write(pokeType); packet.Send(256); } catch (Exception e) { mod.Logger.ErrorFormat("Please report this stacktrace to Terramon devs:\n\n{0}\n\n{1}", e.Message, e.StackTrace); } }
public void Send(TerramonMod mod) { GetPacket(mod).Send(); }