public override bool CanUseItem(Player player) { if (player == Main.player[Main.myPlayer]) { OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>(); Item[] cards = modPlayer.gamblerCardsItem; int count = OrchidModGamblerHelper.getNbGamblerCards(player, modPlayer); if (OrchidModGamblerHelper.containsGamblerCard(item, player, modPlayer) || player.altFunctionUse == 2 || count < this.cardRequirement || count >= 20) { return(false); } else { if (OrchidModGamblerHelper.getNbGamblerCards(player, modPlayer) <= 0) { bool found = false; for (int i = 0; i < Main.maxInventory; i++) { Item item = Main.LocalPlayer.inventory[i]; if (item.type != 0) { OrchidModGlobalItem orchidItem = item.GetGlobalItem <OrchidModGlobalItem>(); if (orchidItem.gamblerDeck) { found = true; break; } } } if (!found) { int gamblerDeck = ItemType <Gambler.Decks.GamblerAttack>(); player.QuickSpawnItem(gamblerDeck, 1); } } item.useAnimation = 20; item.useTime = 20; for (int i = 0; i < 20; i++) { if (cards[i].type == 0) { cards[i] = new Item(); cards[i].SetDefaults(item.type, true); OrchidModGamblerHelper.clearGamblerCardCurrent(player, modPlayer); OrchidModGamblerHelper.clearGamblerCardsNext(player, modPlayer); modPlayer.gamblerShuffleCooldown = 0; modPlayer.gamblerRedraws = 0; OrchidModGamblerHelper.drawGamblerCard(player, modPlayer); return(true); } } //item.TurnToAir(); } } return(base.CanUseItem(player)); }
public static void removeGamblerCard(Item card, Player player, OrchidModPlayer modPlayer) { if (OrchidModGamblerHelper.containsGamblerCard(card, player, modPlayer)) { bool found = false; for (int i = 0; i < 20; i++) { if (modPlayer.gamblerCardsItem[i].type == card.type) { found = true; } if (found) { modPlayer.gamblerCardsItem[i] = new Item(); modPlayer.gamblerCardsItem[i].SetDefaults(i == 19 ? 0 : modPlayer.gamblerCardsItem[i + 1].type, true); } } } }
public override void ModifyTooltips(List <TooltipLine> tooltips) { TooltipLine tt = tooltips.FirstOrDefault(x => x.Name == "Damage" && x.mod == "Terraria"); if (tt != null) { string[] splitText = tt.text.Split(' '); string damageValue = splitText.First(); string damageWord = splitText.Last(); tt.text = damageValue + " gambling " + damageWord; } Player player = Main.player[Main.myPlayer]; OrchidModPlayer modPlayer = player.GetModPlayer <OrchidModPlayer>(); Item[] cards = modPlayer.gamblerCardsItem; int count = OrchidModGamblerHelper.getNbGamblerCards(player, modPlayer); int diff = this.cardRequirement - count; int index = tooltips.FindIndex(ttip => ttip.mod.Equals("Terraria") && ttip.Name.Equals("Tooltip0")); if (index != -1) { int tagCount = this.gamblerCardSets.Count - 1; if (tagCount > -1) { List <string> alreadyDone = new List <string>(); string tags = ""; foreach (string tag in this.gamblerCardSets) { if (!alreadyDone.Contains(tag)) { tags += alreadyDone.Count > 0 ? ", " : ""; tags += tag; tagCount--; alreadyDone.Add(tag); } } tags += alreadyDone.Count > 1 ? " sets" : " set"; tooltips.Insert(index, new TooltipLine(mod, "TagsTag", tags) { overrideColor = new Color(175, 255, 175) }); } } tooltips.Insert(1, new TooltipLine(mod, "CardsNeeded", "Requires " + this.cardRequirement + " cards (Deck : " + count + ")") { overrideColor = new Color(255, 200, 100) }); if (OrchidModGamblerHelper.containsGamblerCard(item, player, modPlayer)) { tooltips.Insert(1, new TooltipLine(mod, "UseTag", "Currently in your deck") { overrideColor = new Color(255, 100, 100) }); } else if (count == 20) { tooltips.Insert(1, new TooltipLine(mod, "UseTag", "Your deck is full") { overrideColor = new Color(255, 100, 100) }); } else if (count < this.cardRequirement) { tooltips.Insert(1, new TooltipLine(mod, "UseTag", "Requires " + diff + " more cards") { overrideColor = new Color(255, 100, 100) }); } else { tooltips.Insert(1, new TooltipLine(mod, "UseTag", "Use to add to your deck") { overrideColor = new Color(255, 200, 100) }); } Mod thoriumMod = OrchidMod.ThoriumMod; if (thoriumMod != null) { tooltips.Insert(1, new TooltipLine(mod, "ClassTag", "-Gambler Class-") { overrideColor = new Color(255, 200, 0) }); } tt = tooltips.FirstOrDefault(x => x.Name == "Speed" && x.mod == "Terraria"); if (tt != null) { tooltips.Remove(tt); } tt = tooltips.FirstOrDefault(x => x.Name == "Consumable" && x.mod == "Terraria"); if (tt != null) { tooltips.Remove(tt); } }