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));
 }
示例#2
0
 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);
            }
        }