AffixName() public method

public AffixName ( ) : string
return string
Ejemplo n.º 1
0
        //public Terraria.Item GetN

        public List <string> Prefixes()
        {
            var result = new List <string> {
                string.Empty
            };
            var curitem = new Terraria.Item();

            //curitem.Name = "";
            for (int prefix = 1; prefix < byte.MaxValue; prefix++)
            {
                try
                {
                    curitem.prefix = (byte)prefix;
                    string affixName = curitem.AffixName();
                    if (string.IsNullOrWhiteSpace(affixName))
                    {
                        break;
                    }

                    result.Add(affixName);
                }
                catch
                {
                }
            }

            return(result);
        }
Ejemplo n.º 2
0
        TextSnippet ITagHandler.Parse(string text, Color baseColor, string options)
        {
            Item obj = new Item();
            int result1;
            if (int.TryParse(text, out result1))
                obj.netDefaults(result1);
            else
                obj.SetDefaults(text);

            if (obj.itemId <= 0)
                return new TextSnippet(text);

            obj.stack = 1;
            if (options != null)
            {
                string[] strArray = options.Split(',');
                for (int index = 0; index < strArray.Length; ++index)
                {
                    if (strArray[index].Length != 0)
                    {
                        switch (strArray[index][0])
                        {
                            case 'p':
                                int result2;
                                if (int.TryParse(strArray[index].Substring(1), out result2))
                                {
                                    obj.Prefix(Utils.Clamp<int>(result2, 0, 84));
                                    continue;
                                }
                                continue;
                            case 's':
                            case 'x':
                                int result3;
                                if (int.TryParse(strArray[index].Substring(1), out result3))
                                {
                                    obj.stack = Utils.Clamp<int>(result3, 1, obj.maxStack);
                                    continue;
                                }
                                continue;
                            default:
                                continue;
                        }
                    }
                }
            }

            string str = "";
            if (obj.stack > 1)
                str = " (" + obj.stack + ")";

            ItemSnippet itemSnippet = new ItemSnippet(obj);
            itemSnippet.Text = "[" + obj.AffixName() + str + "]";
            itemSnippet.CheckForHover = true;
            itemSnippet.DeleteWhole = true;
            return itemSnippet;
        }
Ejemplo n.º 3
0
        public static int NewText(PopupTextContext context, Item newItem, int stack, bool noStack = false, bool longText = false)
        {
            if (!Main.showItemText)
            {
                return(-1);
            }
            if (newItem.Name == null || !newItem.active)
            {
                return(-1);
            }
            if (Main.netMode == 2)
            {
                return(-1);
            }
            bool flag = newItem.type >= 71 && newItem.type <= 74;

            for (int i = 0; i < 20; i++)
            {
                if (!Main.popupText[i].active || Main.popupText[i].notActuallyAnItem || (!(Main.popupText[i].name == newItem.AffixName()) && (!flag || !Main.popupText[i].coinText)) || Main.popupText[i].NoStack || noStack)
                {
                    continue;
                }
                string text  = newItem.Name + " (" + (Main.popupText[i].stack + stack) + ")";
                string text2 = newItem.Name;
                if (Main.popupText[i].stack > 1)
                {
                    text2 = text2 + " (" + Main.popupText[i].stack + ")";
                }
                Vector2 vector = FontAssets.MouseText.Value.MeasureString(text2);
                vector = FontAssets.MouseText.Value.MeasureString(text);
                if (Main.popupText[i].lifeTime < 0)
                {
                    Main.popupText[i].scale = 1f;
                }
                if (Main.popupText[i].lifeTime < 60)
                {
                    Main.popupText[i].lifeTime = 60;
                }
                if (flag && Main.popupText[i].coinText)
                {
                    int num = 0;
                    if (newItem.type == 71)
                    {
                        num += stack;
                    }
                    else if (newItem.type == 72)
                    {
                        num += 100 * stack;
                    }
                    else if (newItem.type == 73)
                    {
                        num += 10000 * stack;
                    }
                    else if (newItem.type == 74)
                    {
                        num += 1000000 * stack;
                    }
                    Main.popupText[i].coinValue += num;
                    text   = ValueToName(Main.popupText[i].coinValue);
                    vector = FontAssets.MouseText.Value.MeasureString(text);
                    Main.popupText[i].name = text;
                    if (Main.popupText[i].coinValue >= 1000000)
                    {
                        if (Main.popupText[i].lifeTime < 300)
                        {
                            Main.popupText[i].lifeTime = 300;
                        }
                        Main.popupText[i].color = new Color(220, 220, 198);
                    }
                    else if (Main.popupText[i].coinValue >= 10000)
                    {
                        if (Main.popupText[i].lifeTime < 240)
                        {
                            Main.popupText[i].lifeTime = 240;
                        }
                        Main.popupText[i].color = new Color(224, 201, 92);
                    }
                    else if (Main.popupText[i].coinValue >= 100)
                    {
                        if (Main.popupText[i].lifeTime < 180)
                        {
                            Main.popupText[i].lifeTime = 180;
                        }
                        Main.popupText[i].color = new Color(181, 192, 193);
                    }
                    else if (Main.popupText[i].coinValue >= 1)
                    {
                        if (Main.popupText[i].lifeTime < 120)
                        {
                            Main.popupText[i].lifeTime = 120;
                        }
                        Main.popupText[i].color = new Color(246, 138, 96);
                    }
                }
                Main.popupText[i].stack     += stack;
                Main.popupText[i].scale      = 0f;
                Main.popupText[i].rotation   = 0f;
                Main.popupText[i].position.X = newItem.position.X + (float)newItem.width * 0.5f - vector.X * 0.5f;
                Main.popupText[i].position.Y = newItem.position.Y + (float)newItem.height * 0.25f - vector.Y * 0.5f;
                Main.popupText[i].velocity.Y = -7f;
                Main.popupText[i].context    = context;
                Main.popupText[i].npcNetID   = 0;
                if (Main.popupText[i].coinText)
                {
                    Main.popupText[i].stack = 1;
                }
                return(i);
            }
            int num2 = FindNextItemTextSlot();

            if (num2 >= 0)
            {
                string text3 = newItem.AffixName();
                if (stack > 1)
                {
                    text3 = text3 + " (" + stack + ")";
                }
                Vector2 vector2 = FontAssets.MouseText.Value.MeasureString(text3);
                Main.popupText[num2].alpha      = 1f;
                Main.popupText[num2].alphaDir   = -1;
                Main.popupText[num2].active     = true;
                Main.popupText[num2].scale      = 0f;
                Main.popupText[num2].NoStack    = noStack;
                Main.popupText[num2].rotation   = 0f;
                Main.popupText[num2].position.X = newItem.position.X + (float)newItem.width * 0.5f - vector2.X * 0.5f;
                Main.popupText[num2].position.Y = newItem.position.Y + (float)newItem.height * 0.25f - vector2.Y * 0.5f;
                Main.popupText[num2].color      = Color.White;
                Main.popupText[num2].master     = false;
                if (newItem.rare == 1)
                {
                    Main.popupText[num2].color = new Color(150, 150, 255);
                }
                else if (newItem.rare == 2)
                {
                    Main.popupText[num2].color = new Color(150, 255, 150);
                }
                else if (newItem.rare == 3)
                {
                    Main.popupText[num2].color = new Color(255, 200, 150);
                }
                else if (newItem.rare == 4)
                {
                    Main.popupText[num2].color = new Color(255, 150, 150);
                }
                else if (newItem.rare == 5)
                {
                    Main.popupText[num2].color = new Color(255, 150, 255);
                }
                else if (newItem.rare == -13)
                {
                    Main.popupText[num2].master = true;
                }
                else if (newItem.rare == -11)
                {
                    Main.popupText[num2].color = new Color(255, 175, 0);
                }
                else if (newItem.rare == -1)
                {
                    Main.popupText[num2].color = new Color(130, 130, 130);
                }
                else if (newItem.rare == 6)
                {
                    Main.popupText[num2].color = new Color(210, 160, 255);
                }
                else if (newItem.rare == 7)
                {
                    Main.popupText[num2].color = new Color(150, 255, 10);
                }
                else if (newItem.rare == 8)
                {
                    Main.popupText[num2].color = new Color(255, 255, 10);
                }
                else if (newItem.rare == 9)
                {
                    Main.popupText[num2].color = new Color(5, 200, 255);
                }
                else if (newItem.rare == 10)
                {
                    Main.popupText[num2].color = new Color(255, 40, 100);
                }
                else if (newItem.rare >= 11)
                {
                    Main.popupText[num2].color = new Color(180, 40, 255);
                }
                Main.popupText[num2].expert     = newItem.expert;
                Main.popupText[num2].name       = newItem.AffixName();
                Main.popupText[num2].stack      = stack;
                Main.popupText[num2].velocity.Y = -7f;
                Main.popupText[num2].lifeTime   = 60;
                Main.popupText[num2].context    = context;
                Main.popupText[num2].npcNetID   = 0;
                if (longText)
                {
                    Main.popupText[num2].lifeTime *= 5;
                }
                Main.popupText[num2].coinValue = 0;
                Main.popupText[num2].coinText  = newItem.type >= 71 && newItem.type <= 74;
                if (Main.popupText[num2].coinText)
                {
                    if (newItem.type == 71)
                    {
                        Main.popupText[num2].coinValue += Main.popupText[num2].stack;
                    }
                    else if (newItem.type == 72)
                    {
                        Main.popupText[num2].coinValue += 100 * Main.popupText[num2].stack;
                    }
                    else if (newItem.type == 73)
                    {
                        Main.popupText[num2].coinValue += 10000 * Main.popupText[num2].stack;
                    }
                    else if (newItem.type == 74)
                    {
                        Main.popupText[num2].coinValue += 1000000 * Main.popupText[num2].stack;
                    }
                    Main.popupText[num2].ValueToName();
                    Main.popupText[num2].stack = 1;
                    int num3 = num2;
                    if (Main.popupText[num3].coinValue >= 1000000)
                    {
                        if (Main.popupText[num3].lifeTime < 300)
                        {
                            Main.popupText[num3].lifeTime = 300;
                        }
                        Main.popupText[num3].color = new Color(220, 220, 198);
                    }
                    else if (Main.popupText[num3].coinValue >= 10000)
                    {
                        if (Main.popupText[num3].lifeTime < 240)
                        {
                            Main.popupText[num3].lifeTime = 240;
                        }
                        Main.popupText[num3].color = new Color(224, 201, 92);
                    }
                    else if (Main.popupText[num3].coinValue >= 100)
                    {
                        if (Main.popupText[num3].lifeTime < 180)
                        {
                            Main.popupText[num3].lifeTime = 180;
                        }
                        Main.popupText[num3].color = new Color(181, 192, 193);
                    }
                    else if (Main.popupText[num3].coinValue >= 1)
                    {
                        if (Main.popupText[num3].lifeTime < 120)
                        {
                            Main.popupText[num3].lifeTime = 120;
                        }
                        Main.popupText[num3].color = new Color(246, 138, 96);
                    }
                }
            }
            return(num2);
        }
Ejemplo n.º 4
0
        /// <summary>HackedInventory - Checks to see if a user has a hacked inventory. In addition, messages players the result.</summary>
        /// <param name="player">player - The TSPlayer object.</param>
        /// <returns>bool - True if the player has a hacked inventory.</returns>
        public static bool HackedInventory(TSPlayer player)
        {
            bool check = false;

            Item[] inventory = player.TPlayer.inventory;
            Item[] armor = player.TPlayer.armor;
            Item[] dye = player.TPlayer.dye;
            Item[] miscEquips = player.TPlayer.miscEquips;
            Item[] miscDyes = player.TPlayer.miscDyes;
            Item[] piggy = player.TPlayer.bank.item;
            Item[] safe = player.TPlayer.bank2.item;
            Item trash = player.TPlayer.trashItem;

            for (int i = 0; i < NetItem.MaxInventory; i++)
            {
                if (i < NetItem.InventorySlots)
                {
                    //0-58
                    Item item = new Item();
                    if (inventory[i] != null && inventory[i].netID != 0)
                    {
                        item.netDefaults(inventory[i].netID);
                        item.Prefix(inventory[i].prefix);
                        item.AffixName();
                        if (inventory[i].stack > item.maxStack)
                        {
                            check = true;
                            player.SendMessage(
                                String.Format("Stack cheat detected. Remove item {0} ({1}) and then rejoin", item.name, inventory[i].stack),
                                Color.Cyan);
                        }
                    }
                }
                else if (i < NetItem.InventorySlots + NetItem.ArmorSlots)
                {
                    //59-78
                    Item item = new Item();
                    var index = i - NetItem.InventorySlots;
                    if (armor[index] != null && armor[index].netID != 0)
                    {
                        item.netDefaults(armor[index].netID);
                        item.Prefix(armor[index].prefix);
                        item.AffixName();
                        if (armor[index].stack > item.maxStack)
                        {
                            check = true;
                            player.SendMessage(
                                String.Format("Stack cheat detected. Remove armor {0} ({1}) and then rejoin", item.name, armor[index].stack),
                                Color.Cyan);
                        }
                    }
                }
                else if (i < NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots)
                {
                    //79-88
                    Item item = new Item();
                    var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots);
                    if (dye[index] != null && dye[index].netID != 0)
                    {
                        item.netDefaults(dye[index].netID);
                        item.Prefix(dye[index].prefix);
                        item.AffixName();
                        if (dye[index].stack > item.maxStack)
                        {
                            check = true;
                            player.SendMessage(
                                String.Format("Stack cheat detected. Remove dye {0} ({1}) and then rejoin", item.name, dye[index].stack),
                                Color.Cyan);
                        }
                    }
                }
                else if (i <
                    NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots)
                {
                    //89-93
                    Item item = new Item();
                    var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots);
                    if (miscEquips[index] != null && miscEquips[index].netID != 0)
                    {
                        item.netDefaults(miscEquips[index].netID);
                        item.Prefix(miscEquips[index].prefix);
                        item.AffixName();
                        if (miscEquips[index].stack > item.maxStack)
                        {
                            check = true;
                            player.SendMessage(
                                String.Format("Stack cheat detected. Remove item {0} ({1}) and then rejoin", item.name, miscEquips[index].stack),
                                Color.Cyan);
                        }
                    }
                }
                else if (i <
                    NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots
                    + NetItem.MiscDyeSlots)
                {
                    //93-98
                    Item item = new Item();
                    var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots
                        + NetItem.MiscEquipSlots);
                    if (miscDyes[index] != null && miscDyes[index].netID != 0)
                    {
                        item.netDefaults(miscDyes[index].netID);
                        item.Prefix(miscDyes[index].prefix);
                        item.AffixName();
                        if (miscDyes[index].stack > item.maxStack)
                        {
                            check = true;
                            player.SendMessage(
                                String.Format("Stack cheat detected. Remove item dye {0} ({1}) and then rejoin", item.name, miscDyes[index].stack),
                                Color.Cyan);
                        }
                    }
                }
                else if (i <
                   NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots +
                   NetItem.MiscDyeSlots + NetItem.PiggySlots)
                {
                    //98-138
                    Item item = new Item();
                    var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots
                        + NetItem.MiscEquipSlots + NetItem.MiscDyeSlots);
                    if (piggy[index] != null && piggy[index].netID != 0)
                    {
                        item.netDefaults(piggy[index].netID);
                        item.Prefix(piggy[index].prefix);
                        item.AffixName();

                        if (piggy[index].stack > item.maxStack)
                        {
                            check = true;
                            player.SendMessage(
                                String.Format("Stack cheat detected. Remove Piggy-bank item {0} ({1}) and then rejoin", item.name, piggy[index].stack),
                                Color.Cyan);
                        }
                    }
                }
                else if (i <
                    NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots + NetItem.MiscEquipSlots +
                    NetItem.MiscDyeSlots + NetItem.PiggySlots + NetItem.SafeSlots)
                {
                    //138-178
                    Item item = new Item();
                    var index = i - (NetItem.InventorySlots + NetItem.ArmorSlots + NetItem.DyeSlots
                        + NetItem.MiscEquipSlots + NetItem.MiscDyeSlots + NetItem.PiggySlots);
                    if (safe[index] != null && safe[index].netID != 0)
                    {
                        item.netDefaults(safe[index].netID);
                        item.Prefix(safe[index].prefix);
                        item.AffixName();

                        if (safe[index].stack > item.maxStack)
                        {
                            check = true;
                            player.SendMessage(
                                String.Format("Stack cheat detected. Remove Safe item {0} ({1}) and then rejoin", item.name, safe[index].stack),
                                Color.Cyan);
                        }
                    }
                }
                else
                {
                    Item item = new Item();
                    if (trash != null && trash.netID != 0)
                    {
                        item.netDefaults(trash.netID);
                        item.Prefix(trash.prefix);
                        item.AffixName();

                        if (trash.stack > item.maxStack)
                        {
                            check = true;
                            player.SendMessage(
                                String.Format("Stack cheat detected. Remove trash item {0} ({1}) and then rejoin", item.name, trash.stack),
                                Color.Cyan);
                        }
                    }
                }
            }

            return check;
        }
		public static void NewText(Item newItem, int stack, bool noStack = false, bool longText = false)
		{
			bool flag = newItem.type >= 71 && newItem.type <= 74;
			if (!Main.showItemText)
			{
				return;
			}
			if (newItem.name == null || !newItem.active)
			{
				return;
			}
			if (Main.netMode == 2)
			{
				return;
			}
			for (int i = 0; i < 20; i++)
			{
				if (Main.itemText[i].active && (Main.itemText[i].name == newItem.AffixName() || (flag && Main.itemText[i].coinText)) && !Main.itemText[i].NoStack && !noStack)
				{
					string text = string.Concat(new object[]
					{
						newItem.name,
						" (",
						Main.itemText[i].stack + stack,
						")"
					});
					string text2 = newItem.name;
					if (Main.itemText[i].stack > 1)
					{
						object obj = text2;
						text2 = string.Concat(new object[]
						{
							obj,
							" (",
							Main.itemText[i].stack,
							")"
						});
					}
					Vector2 vector = Main.fontMouseText.MeasureString(text2);
					vector = Main.fontMouseText.MeasureString(text);
					if (Main.itemText[i].lifeTime < 0)
					{
						Main.itemText[i].scale = 1f;
					}
					if (Main.itemText[i].lifeTime < 60)
					{
						Main.itemText[i].lifeTime = 60;
					}
					if (flag && Main.itemText[i].coinText)
					{
						int num = 0;
						if (newItem.type == 71)
						{
							num += newItem.stack;
						}
						else if (newItem.type == 72)
						{
							num += 100 * newItem.stack;
						}
						else if (newItem.type == 73)
						{
							num += 10000 * newItem.stack;
						}
						else if (newItem.type == 74)
						{
							num += 1000000 * newItem.stack;
						}
						Main.itemText[i].coinValue += num;
						text = ItemText.ValueToName(Main.itemText[i].coinValue);
						vector = Main.fontMouseText.MeasureString(text);
						Main.itemText[i].name = text;
						if (Main.itemText[i].coinValue >= 1000000)
						{
							if (Main.itemText[i].lifeTime < 300)
							{
								Main.itemText[i].lifeTime = 300;
							}
							Main.itemText[i].color = new Color(220, 220, 198);
						}
						else if (Main.itemText[i].coinValue >= 10000)
						{
							if (Main.itemText[i].lifeTime < 240)
							{
								Main.itemText[i].lifeTime = 240;
							}
							Main.itemText[i].color = new Color(224, 201, 92);
						}
						else if (Main.itemText[i].coinValue >= 100)
						{
							if (Main.itemText[i].lifeTime < 180)
							{
								Main.itemText[i].lifeTime = 180;
							}
							Main.itemText[i].color = new Color(181, 192, 193);
						}
						else if (Main.itemText[i].coinValue >= 1)
						{
							if (Main.itemText[i].lifeTime < 120)
							{
								Main.itemText[i].lifeTime = 120;
							}
							Main.itemText[i].color = new Color(246, 138, 96);
						}
					}
					Main.itemText[i].stack += stack;
					Main.itemText[i].scale = 0f;
					Main.itemText[i].rotation = 0f;
					Main.itemText[i].position.X = newItem.position.X + (float)newItem.width * 0.5f - vector.X * 0.5f;
					Main.itemText[i].position.Y = newItem.position.Y + (float)newItem.height * 0.25f - vector.Y * 0.5f;
					Main.itemText[i].velocity.Y = -7f;
					if (Main.itemText[i].coinText)
					{
						Main.itemText[i].stack = 1;
					}
					return;
				}
			}
			int num2 = -1;
			for (int j = 0; j < 20; j++)
			{
				if (!Main.itemText[j].active)
				{
					num2 = j;
					break;
				}
			}
			if (num2 == -1)
			{
				double num3 = (double)Main.bottomWorld;
				for (int k = 0; k < 20; k++)
				{
					if (num3 > (double)Main.itemText[k].position.Y)
					{
						num2 = k;
						num3 = (double)Main.itemText[k].position.Y;
					}
				}
			}
			if (num2 >= 0)
			{
				string text3 = newItem.AffixName();
				if (stack > 1)
				{
					object obj2 = text3;
					text3 = string.Concat(new object[]
					{
						obj2,
						" (",
						stack,
						")"
					});
				}
				Vector2 vector2 = Main.fontMouseText.MeasureString(text3);
				Main.itemText[num2].alpha = 1f;
				Main.itemText[num2].alphaDir = -1;
				Main.itemText[num2].active = true;
				Main.itemText[num2].scale = 0f;
				Main.itemText[num2].NoStack = noStack;
				Main.itemText[num2].rotation = 0f;
				Main.itemText[num2].position.X = newItem.position.X + (float)newItem.width * 0.5f - vector2.X * 0.5f;
				Main.itemText[num2].position.Y = newItem.position.Y + (float)newItem.height * 0.25f - vector2.Y * 0.5f;
				Main.itemText[num2].color = Color.White;
				if (newItem.rare == 1)
				{
					Main.itemText[num2].color = new Color(150, 150, 255);
				}
				else if (newItem.rare == 2)
				{
					Main.itemText[num2].color = new Color(150, 255, 150);
				}
				else if (newItem.rare == 3)
				{
					Main.itemText[num2].color = new Color(255, 200, 150);
				}
				else if (newItem.rare == 4)
				{
					Main.itemText[num2].color = new Color(255, 150, 150);
				}
				else if (newItem.rare == 5)
				{
					Main.itemText[num2].color = new Color(255, 150, 255);
				}
				else if (newItem.rare == -11)
				{
					Main.itemText[num2].color = new Color(255, 175, 0);
				}
				else if (newItem.rare == -1)
				{
					Main.itemText[num2].color = new Color(130, 130, 130);
				}
				else if (newItem.rare == 6)
				{
					Main.itemText[num2].color = new Color(210, 160, 255);
				}
				else if (newItem.rare == 7)
				{
					Main.itemText[num2].color = new Color(150, 255, 10);
				}
				else if (newItem.rare == 8)
				{
					Main.itemText[num2].color = new Color(255, 255, 10);
				}
				else if (newItem.rare == 9)
				{
					Main.itemText[num2].color = new Color(5, 200, 255);
				}
				else if (newItem.rare == 10)
				{
					Main.itemText[num2].color = new Color(255, 40, 100);
				}
				else if (newItem.rare >= 11)
				{
					Main.itemText[num2].color = new Color(180, 40, 255);
				}
				Main.itemText[num2].expert = newItem.expert;
				Main.itemText[num2].name = newItem.AffixName();
				Main.itemText[num2].stack = stack;
				Main.itemText[num2].velocity.Y = -7f;
				Main.itemText[num2].lifeTime = 60;
				if (longText)
				{
					Main.itemText[num2].lifeTime *= 5;
				}
				Main.itemText[num2].coinValue = 0;
				Main.itemText[num2].coinText = (newItem.type >= 71 && newItem.type <= 74);
				if (Main.itemText[num2].coinText)
				{
					if (newItem.type == 71)
					{
						Main.itemText[num2].coinValue += Main.itemText[num2].stack;
					}
					else if (newItem.type == 72)
					{
						Main.itemText[num2].coinValue += 100 * Main.itemText[num2].stack;
					}
					else if (newItem.type == 73)
					{
						Main.itemText[num2].coinValue += 10000 * Main.itemText[num2].stack;
					}
					else if (newItem.type == 74)
					{
						Main.itemText[num2].coinValue += 1000000 * Main.itemText[num2].stack;
					}
					Main.itemText[num2].ValueToName();
					Main.itemText[num2].stack = 1;
					int num4 = num2;
					if (Main.itemText[num4].coinValue >= 1000000)
					{
						if (Main.itemText[num4].lifeTime < 300)
						{
							Main.itemText[num4].lifeTime = 300;
						}
						Main.itemText[num4].color = new Color(220, 220, 198);
						return;
					}
					if (Main.itemText[num4].coinValue >= 10000)
					{
						if (Main.itemText[num4].lifeTime < 240)
						{
							Main.itemText[num4].lifeTime = 240;
						}
						Main.itemText[num4].color = new Color(224, 201, 92);
						return;
					}
					if (Main.itemText[num4].coinValue >= 100)
					{
						if (Main.itemText[num4].lifeTime < 180)
						{
							Main.itemText[num4].lifeTime = 180;
						}
						Main.itemText[num4].color = new Color(181, 192, 193);
						return;
					}
					if (Main.itemText[num4].coinValue >= 1)
					{
						if (Main.itemText[num4].lifeTime < 120)
						{
							Main.itemText[num4].lifeTime = 120;
						}
						Main.itemText[num4].color = new Color(246, 138, 96);
					}
				}
			}
		}
Ejemplo n.º 6
0
        public void NewText(ref Item newItem, int stack)
        {
            if (view.ui.inventoryMode > 0 || !view.ui.showItemText || newItem.active == 0)
            {
                return;
            }
            int num = -1;

            for (int num2 = 3; num2 >= 0; num2--)
            {
                if (itemText[num2].active != 0)
                {
                    if (itemText[num2].netID == newItem.netID && newItem.prefix == 0)
                    {
                        itemText[num2].stack  += stack;
                        Main.strBuilder.Length = 0;
                        Main.strBuilder.Append(Lang.itemName(newItem.netID));
                        Main.strBuilder.Append(itemText[num2].stack.ToStackString());
                        Vector2 textSize = UI.fontSmallOutline.MeasureString(Main.strBuilder);
                        itemText[num2].text       = Main.strBuilder.ToString();
                        itemText[num2].textSize   = textSize;
                        itemText[num2].lifeTime   = 56;
                        itemText[num2].scale      = 0f;
                        itemText[num2].position.X = newItem.position.X + ((float)(int)newItem.width - textSize.X) * 0.5f;
                        itemText[num2].position.Y = newItem.position.Y + (float)(newItem.height >> 2) - textSize.Y * 0.5f;
                        itemText[num2].velocityY  = -7f;
                        return;
                    }
                }
                else
                {
                    num = num2;
                }
            }
            if (num < 0)
            {
                float num3 = Main.bottomWorld;
                for (int i = 0; i < 4; i++)
                {
                    if (num3 > itemText[i].position.Y)
                    {
                        num  = i;
                        num3 = itemText[i].position.Y;
                    }
                }
            }
            if (num >= 0)
            {
                string text = newItem.AffixName();
                itemText[num].active   = 1;
                itemText[num].lifeTime = 56;
                itemText[num].netID    = newItem.netID;
                itemText[num].stack    = stack;
                if (stack > 1)
                {
                    text += stack.ToStackString();
                }
                itemText[num].text = text;
                Vector2 textSize2 = UI.MeasureString(UI.fontSmallOutline, text);
                itemText[num].textSize   = textSize2;
                itemText[num].alpha      = 1f;
                itemText[num].alphaDir   = -0.01f;
                itemText[num].scale      = 0f;
                itemText[num].velocityY  = -7f;
                itemText[num].position.X = newItem.position.X + (float)(int)newItem.width * 0.5f - textSize2.X * 0.5f;
                itemText[num].position.Y = newItem.position.Y + (float)(int)newItem.height * 0.25f - textSize2.Y * 0.5f;
                if (newItem.rare == 1)
                {
                    itemText[num].color = new Color(150, 150, 255);
                }
                else if (newItem.rare == 2)
                {
                    itemText[num].color = new Color(150, 255, 150);
                }
                else if (newItem.rare == 3)
                {
                    itemText[num].color = new Color(255, 200, 150);
                }
                else if (newItem.rare == 4)
                {
                    itemText[num].color = new Color(255, 150, 150);
                }
                else if (newItem.rare == 5)
                {
                    itemText[num].color = new Color(255, 150, 255);
                }
                else if (newItem.rare == -1)
                {
                    itemText[num].color = new Color(130, 130, 130);
                }
                else if (newItem.rare == 6)
                {
                    itemText[num].color = new Color(210, 160, 255);
                }
                else
                {
                    itemText[num].color = Color.White;
                }
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Draws Item information at the mouse
        /// </summary>
        /// <param name="i">The Item to get the info from</param>
        public static void MouseText(Item i)
        {
            Main.toolTip = i;

            MouseText(i.AffixName() + (i.stack > 1 ? " (" + i.stack + ")" : ""));

            Main.toolTip = new Item();
        }
Ejemplo n.º 8
0
		public static void NewText(Item newItem, int stack, bool noStack = false, bool longText = false)
		{
			if (!Main.showItemText)
			{
				return;
			}
			if (newItem.name == null || !newItem.active)
			{
				return;
			}
			if (Main.netMode == 2)
			{
				return;
			}
			for (int i = 0; i < 20; i++)
			{
				if (Main.itemText[i].active && Main.itemText[i].name == newItem.name && !Main.itemText[i].NoStack && !noStack)
				{
					string text = string.Concat(new object[]
					{
						newItem.name,
						" (",
						Main.itemText[i].stack + stack,
						")"
					});
					string text2 = newItem.name;
					if (Main.itemText[i].stack > 1)
					{
						object obj = text2;
						text2 = string.Concat(new object[]
						{
							obj,
							" (",
							Main.itemText[i].stack,
							")"
						});
					}
					Vector2 vector = Main.fontMouseText.MeasureString(text2);
					vector = Main.fontMouseText.MeasureString(text);
					if (Main.itemText[i].lifeTime < 0)
					{
						Main.itemText[i].scale = 1f;
					}
					Main.itemText[i].lifeTime = 60;
					Main.itemText[i].stack += stack;
					Main.itemText[i].scale = 0f;
					Main.itemText[i].rotation = 0f;
					Main.itemText[i].position.X = newItem.position.X + (float)newItem.width * 0.5f - vector.X * 0.5f;
					Main.itemText[i].position.Y = newItem.position.Y + (float)newItem.height * 0.25f - vector.Y * 0.5f;
					Main.itemText[i].velocity.Y = -7f;
					return;
				}
			}
			int num = -1;
			for (int j = 0; j < 20; j++)
			{
				if (!Main.itemText[j].active)
				{
					num = j;
					break;
				}
			}
			if (num == -1)
			{
				double num2 = (double)Main.bottomWorld;
				for (int k = 0; k < 20; k++)
				{
					if (num2 > (double)Main.itemText[k].position.Y)
					{
						num = k;
						num2 = (double)Main.itemText[k].position.Y;
					}
				}
			}
			if (num >= 0)
			{
				string text3 = newItem.AffixName();
				if (stack > 1)
				{
					object obj2 = text3;
					text3 = string.Concat(new object[]
					{
						obj2,
						" (",
						stack,
						")"
					});
				}
				Vector2 vector2 = Main.fontMouseText.MeasureString(text3);
				Main.itemText[num].alpha = 1f;
				Main.itemText[num].alphaDir = -1;
				Main.itemText[num].active = true;
				Main.itemText[num].scale = 0f;
				Main.itemText[num].NoStack = noStack;
				Main.itemText[num].rotation = 0f;
				Main.itemText[num].position.X = newItem.position.X + (float)newItem.width * 0.5f - vector2.X * 0.5f;
				Main.itemText[num].position.Y = newItem.position.Y + (float)newItem.height * 0.25f - vector2.Y * 0.5f;
				Main.itemText[num].color = Color.White;
				if (newItem.rare == 1)
				{
					Main.itemText[num].color = new Color(150, 150, 255);
				}
				else if (newItem.rare == 2)
				{
					Main.itemText[num].color = new Color(150, 255, 150);
				}
				else if (newItem.rare == 3)
				{
					Main.itemText[num].color = new Color(255, 200, 150);
				}
				else if (newItem.rare == 4)
				{
					Main.itemText[num].color = new Color(255, 150, 150);
				}
				else if (newItem.rare == 5)
				{
					Main.itemText[num].color = new Color(255, 150, 255);
				}
				else if (newItem.rare == -11)
				{
					Main.itemText[num].color = new Color(255, 175, 0);
				}
				else if (newItem.rare == -1)
				{
					Main.itemText[num].color = new Color(130, 130, 130);
				}
				else if (newItem.rare == 6)
				{
					Main.itemText[num].color = new Color(210, 160, 255);
				}
				else if (newItem.rare == 7)
				{
					Main.itemText[num].color = new Color(150, 255, 10);
				}
				else if (newItem.rare == 8)
				{
					Main.itemText[num].color = new Color(255, 255, 10);
				}
				else if (newItem.rare >= 9)
				{
					Main.itemText[num].color = new Color(5, 200, 255);
				}
				Main.itemText[num].name = newItem.AffixName();
				Main.itemText[num].stack = stack;
				Main.itemText[num].velocity.Y = -7f;
				Main.itemText[num].lifeTime = 60;
				if (longText)
				{
					Main.itemText[num].lifeTime *= 5;
				}
			}
		}
Ejemplo n.º 9
0
        public static void NewText(Item newItem, int stack, bool noStack = false, bool longText = false)
        {
            bool flag = newItem.itemId >= 71 && newItem.itemId <= 74;

            if (!Main.showItemText || newItem.name == null || (!newItem.active || Main.netMode == 2))
            {
                return;
            }
            for (int index = 0; index < 20; ++index)
            {
                if (Main.itemText[index].active && (Main.itemText[index].name == newItem.AffixName() || flag && Main.itemText[index].coinText) && (!Main.itemText[index].NoStack && !noStack))
                {
                    string text1 = string.Concat(new object[4]
                    {
                        (object)newItem.name,
                        (object)" (",
                        (object)(Main.itemText[index].stack + stack),
                        (object)")"
                    });
                    string text2 = newItem.name;
                    if (Main.itemText[index].stack > 1)
                    {
                        text2 = string.Concat(new object[4]
                        {
                            (object)text2,
                            (object)" (",
                            (object)Main.itemText[index].stack,
                            (object)")"
                        });
                    }
                    Main.fontMouseText.MeasureString(text2);
                    Vector2 vector2 = Main.fontMouseText.MeasureString(text1);
                    if (Main.itemText[index].lifeTime < 0)
                    {
                        Main.itemText[index].scale = 1f;
                    }
                    if (Main.itemText[index].lifeTime < 60)
                    {
                        Main.itemText[index].lifeTime = 60;
                    }
                    if (flag && Main.itemText[index].coinText)
                    {
                        int num = 0;
                        if (newItem.itemId == 71)
                        {
                            num += newItem.stack;
                        }
                        else if (newItem.itemId == 72)
                        {
                            num += 100 * newItem.stack;
                        }
                        else if (newItem.itemId == 73)
                        {
                            num += 10000 * newItem.stack;
                        }
                        else if (newItem.itemId == 74)
                        {
                            num += 1000000 * newItem.stack;
                        }
                        Main.itemText[index].coinValue += num;
                        string text3 = ItemText.ValueToName(Main.itemText[index].coinValue);
                        vector2 = Main.fontMouseText.MeasureString(text3);
                        Main.itemText[index].name = text3;
                        if (Main.itemText[index].coinValue >= 1000000)
                        {
                            if (Main.itemText[index].lifeTime < 300)
                            {
                                Main.itemText[index].lifeTime = 300;
                            }
                            Main.itemText[index].color = new Color(220, 220, 198);
                        }
                        else if (Main.itemText[index].coinValue >= 10000)
                        {
                            if (Main.itemText[index].lifeTime < 240)
                            {
                                Main.itemText[index].lifeTime = 240;
                            }
                            Main.itemText[index].color = new Color(224, 201, 92);
                        }
                        else if (Main.itemText[index].coinValue >= 100)
                        {
                            if (Main.itemText[index].lifeTime < 180)
                            {
                                Main.itemText[index].lifeTime = 180;
                            }
                            Main.itemText[index].color = new Color(181, 192, 193);
                        }
                        else if (Main.itemText[index].coinValue >= 1)
                        {
                            if (Main.itemText[index].lifeTime < 120)
                            {
                                Main.itemText[index].lifeTime = 120;
                            }
                            Main.itemText[index].color = new Color(246, 138, 96);
                        }
                    }
                    Main.itemText[index].stack     += stack;
                    Main.itemText[index].scale      = 0.0f;
                    Main.itemText[index].rotation   = 0.0f;
                    Main.itemText[index].position.X = (float)((double)newItem.position.X + (double)newItem.width * 0.5 - (double)vector2.X * 0.5);
                    Main.itemText[index].position.Y = (float)((double)newItem.position.Y + (double)newItem.height * 0.25 - (double)vector2.Y * 0.5);
                    Main.itemText[index].velocity.Y = -7f;
                    if (!Main.itemText[index].coinText)
                    {
                        return;
                    }
                    Main.itemText[index].stack = 1;
                    return;
                }
            }
            int index1 = -1;

            for (int index2 = 0; index2 < 20; ++index2)
            {
                if (!Main.itemText[index2].active)
                {
                    index1 = index2;
                    break;
                }
            }
            if (index1 == -1)
            {
                double num = (double)Main.bottomWorld;
                for (int index2 = 0; index2 < 20; ++index2)
                {
                    if (num > (double)Main.itemText[index2].position.Y)
                    {
                        index1 = index2;
                        num    = (double)Main.itemText[index2].position.Y;
                    }
                }
            }
            if (index1 < 0)
            {
                return;
            }
            string text = newItem.AffixName();

            if (stack > 1)
            {
                text = string.Concat(new object[4]
                {
                    (object)text,
                    (object)" (",
                    (object)stack,
                    (object)")"
                });
            }
            Vector2 vector2_1 = Main.fontMouseText.MeasureString(text);

            Main.itemText[index1].alpha      = 1f;
            Main.itemText[index1].alphaDir   = -1;
            Main.itemText[index1].active     = true;
            Main.itemText[index1].scale      = 0.0f;
            Main.itemText[index1].NoStack    = noStack;
            Main.itemText[index1].rotation   = 0.0f;
            Main.itemText[index1].position.X = (float)((double)newItem.position.X + (double)newItem.width * 0.5 - (double)vector2_1.X * 0.5);
            Main.itemText[index1].position.Y = (float)((double)newItem.position.Y + (double)newItem.height * 0.25 - (double)vector2_1.Y * 0.5);
            Main.itemText[index1].color      = Color.White;
            if (newItem.rare == 1)
            {
                Main.itemText[index1].color = new Color(150, 150, (int)byte.MaxValue);
            }
            else if (newItem.rare == 2)
            {
                Main.itemText[index1].color = new Color(150, (int)byte.MaxValue, 150);
            }
            else if (newItem.rare == 3)
            {
                Main.itemText[index1].color = new Color((int)byte.MaxValue, 200, 150);
            }
            else if (newItem.rare == 4)
            {
                Main.itemText[index1].color = new Color((int)byte.MaxValue, 150, 150);
            }
            else if (newItem.rare == 5)
            {
                Main.itemText[index1].color = new Color((int)byte.MaxValue, 150, (int)byte.MaxValue);
            }
            else if (newItem.rare == -11)
            {
                Main.itemText[index1].color = new Color((int)byte.MaxValue, 175, 0);
            }
            else if (newItem.rare == -1)
            {
                Main.itemText[index1].color = new Color(130, 130, 130);
            }
            else if (newItem.rare == 6)
            {
                Main.itemText[index1].color = new Color(210, 160, (int)byte.MaxValue);
            }
            else if (newItem.rare == 7)
            {
                Main.itemText[index1].color = new Color(150, (int)byte.MaxValue, 10);
            }
            else if (newItem.rare == 8)
            {
                Main.itemText[index1].color = new Color((int)byte.MaxValue, (int)byte.MaxValue, 10);
            }
            else if (newItem.rare == 9)
            {
                Main.itemText[index1].color = new Color(5, 200, (int)byte.MaxValue);
            }
            else if (newItem.rare == 10)
            {
                Main.itemText[index1].color = new Color((int)byte.MaxValue, 40, 100);
            }
            else if (newItem.rare >= 11)
            {
                Main.itemText[index1].color = new Color(180, 40, (int)byte.MaxValue);
            }
            Main.itemText[index1].expert     = newItem.expert;
            Main.itemText[index1].name       = newItem.AffixName();
            Main.itemText[index1].stack      = stack;
            Main.itemText[index1].velocity.Y = -7f;
            Main.itemText[index1].lifeTime   = 60;
            if (longText)
            {
                Main.itemText[index1].lifeTime *= 5;
            }
            Main.itemText[index1].coinValue = 0;
            Main.itemText[index1].coinText  = newItem.itemId >= 71 && newItem.itemId <= 74;
            if (!Main.itemText[index1].coinText)
            {
                return;
            }
            if (newItem.itemId == 71)
            {
                Main.itemText[index1].coinValue += Main.itemText[index1].stack;
            }
            else if (newItem.itemId == 72)
            {
                Main.itemText[index1].coinValue += 100 * Main.itemText[index1].stack;
            }
            else if (newItem.itemId == 73)
            {
                Main.itemText[index1].coinValue += 10000 * Main.itemText[index1].stack;
            }
            else if (newItem.itemId == 74)
            {
                Main.itemText[index1].coinValue += 1000000 * Main.itemText[index1].stack;
            }
            Main.itemText[index1].ValueToName();
            Main.itemText[index1].stack = 1;
            int index3 = index1;

            if (Main.itemText[index3].coinValue >= 1000000)
            {
                if (Main.itemText[index3].lifeTime < 300)
                {
                    Main.itemText[index3].lifeTime = 300;
                }
                Main.itemText[index3].color = new Color(220, 220, 198);
            }
            else if (Main.itemText[index3].coinValue >= 10000)
            {
                if (Main.itemText[index3].lifeTime < 240)
                {
                    Main.itemText[index3].lifeTime = 240;
                }
                Main.itemText[index3].color = new Color(224, 201, 92);
            }
            else if (Main.itemText[index3].coinValue >= 100)
            {
                if (Main.itemText[index3].lifeTime < 180)
                {
                    Main.itemText[index3].lifeTime = 180;
                }
                Main.itemText[index3].color = new Color(181, 192, 193);
            }
            else
            {
                if (Main.itemText[index3].coinValue < 1)
                {
                    return;
                }
                if (Main.itemText[index3].lifeTime < 120)
                {
                    Main.itemText[index3].lifeTime = 120;
                }
                Main.itemText[index3].color = new Color(246, 138, 96);
            }
        }
Ejemplo n.º 10
0
        public static int NewText(
            PopupTextContext context,
            Item newItem,
            int stack,
            bool noStack  = false,
            bool longText = false)
        {
            if (!Main.showItemText || newItem.Name == null || (!newItem.active || Main.netMode == 2))
            {
                return(-1);
            }
            bool flag = newItem.type >= 71 && newItem.type <= 74;

            for (int index = 0; index < 20; ++index)
            {
                if (Main.popupText[index].active && !Main.popupText[index].notActuallyAnItem && (Main.popupText[index].name == newItem.AffixName() || flag && Main.popupText[index].coinText) && (!Main.popupText[index].NoStack && !noStack))
                {
                    string str1 = newItem.Name + " (" + (object)(Main.popupText[index].stack + stack) + ")";
                    string str2 = newItem.Name;
                    if (Main.popupText[index].stack > 1)
                    {
                        str2 = str2 + " (" + (object)Main.popupText[index].stack + ")";
                    }
                    FontAssets.MouseText.get_Value().MeasureString(str2);
                    Vector2 vector2 = FontAssets.MouseText.get_Value().MeasureString(str1);
                    if (Main.popupText[index].lifeTime < 0)
                    {
                        Main.popupText[index].scale = 1f;
                    }
                    if (Main.popupText[index].lifeTime < 60)
                    {
                        Main.popupText[index].lifeTime = 60;
                    }
                    if (flag && Main.popupText[index].coinText)
                    {
                        int num = 0;
                        if (newItem.type == 71)
                        {
                            num += stack;
                        }
                        else if (newItem.type == 72)
                        {
                            num += 100 * stack;
                        }
                        else if (newItem.type == 73)
                        {
                            num += 10000 * stack;
                        }
                        else if (newItem.type == 74)
                        {
                            num += 1000000 * stack;
                        }
                        Main.popupText[index].coinValue += num;
                        string name = PopupText.ValueToName(Main.popupText[index].coinValue);
                        vector2 = FontAssets.MouseText.get_Value().MeasureString(name);
                        Main.popupText[index].name = name;
                        if (Main.popupText[index].coinValue >= 1000000)
                        {
                            if (Main.popupText[index].lifeTime < 300)
                            {
                                Main.popupText[index].lifeTime = 300;
                            }
                            Main.popupText[index].color = new Color(220, 220, 198);
                        }
                        else if (Main.popupText[index].coinValue >= 10000)
                        {
                            if (Main.popupText[index].lifeTime < 240)
                            {
                                Main.popupText[index].lifeTime = 240;
                            }
                            Main.popupText[index].color = new Color(224, 201, 92);
                        }
                        else if (Main.popupText[index].coinValue >= 100)
                        {
                            if (Main.popupText[index].lifeTime < 180)
                            {
                                Main.popupText[index].lifeTime = 180;
                            }
                            Main.popupText[index].color = new Color(181, 192, 193);
                        }
                        else if (Main.popupText[index].coinValue >= 1)
                        {
                            if (Main.popupText[index].lifeTime < 120)
                            {
                                Main.popupText[index].lifeTime = 120;
                            }
                            Main.popupText[index].color = new Color(246, 138, 96);
                        }
                    }
                    Main.popupText[index].stack     += stack;
                    Main.popupText[index].scale      = 0.0f;
                    Main.popupText[index].rotation   = 0.0f;
                    Main.popupText[index].position.X = (float)((double)newItem.position.X + (double)newItem.width * 0.5 - (double)vector2.X * 0.5);
                    Main.popupText[index].position.Y = (float)((double)newItem.position.Y + (double)newItem.height * 0.25 - (double)vector2.Y * 0.5);
                    Main.popupText[index].velocity.Y = -7f;
                    Main.popupText[index].context    = context;
                    Main.popupText[index].npcNetID   = 0;
                    if (Main.popupText[index].coinText)
                    {
                        Main.popupText[index].stack = 1;
                    }
                    return(index);
                }
            }
            int nextItemTextSlot = PopupText.FindNextItemTextSlot();

            if (nextItemTextSlot >= 0)
            {
                string str = newItem.AffixName();
                if (stack > 1)
                {
                    str = str + " (" + (object)stack + ")";
                }
                Vector2 vector2 = FontAssets.MouseText.get_Value().MeasureString(str);
                Main.popupText[nextItemTextSlot].alpha      = 1f;
                Main.popupText[nextItemTextSlot].alphaDir   = -1;
                Main.popupText[nextItemTextSlot].active     = true;
                Main.popupText[nextItemTextSlot].scale      = 0.0f;
                Main.popupText[nextItemTextSlot].NoStack    = noStack;
                Main.popupText[nextItemTextSlot].rotation   = 0.0f;
                Main.popupText[nextItemTextSlot].position.X = (float)((double)newItem.position.X + (double)newItem.width * 0.5 - (double)vector2.X * 0.5);
                Main.popupText[nextItemTextSlot].position.Y = (float)((double)newItem.position.Y + (double)newItem.height * 0.25 - (double)vector2.Y * 0.5);
                Main.popupText[nextItemTextSlot].color      = Color.White;
                Main.popupText[nextItemTextSlot].master     = false;
                if (newItem.rare == 1)
                {
                    Main.popupText[nextItemTextSlot].color = new Color(150, 150, (int)byte.MaxValue);
                }
                else if (newItem.rare == 2)
                {
                    Main.popupText[nextItemTextSlot].color = new Color(150, (int)byte.MaxValue, 150);
                }
                else if (newItem.rare == 3)
                {
                    Main.popupText[nextItemTextSlot].color = new Color((int)byte.MaxValue, 200, 150);
                }
                else if (newItem.rare == 4)
                {
                    Main.popupText[nextItemTextSlot].color = new Color((int)byte.MaxValue, 150, 150);
                }
                else if (newItem.rare == 5)
                {
                    Main.popupText[nextItemTextSlot].color = new Color((int)byte.MaxValue, 150, (int)byte.MaxValue);
                }
                else if (newItem.rare == -13)
                {
                    Main.popupText[nextItemTextSlot].master = true;
                }
                else if (newItem.rare == -11)
                {
                    Main.popupText[nextItemTextSlot].color = new Color((int)byte.MaxValue, 175, 0);
                }
                else if (newItem.rare == -1)
                {
                    Main.popupText[nextItemTextSlot].color = new Color(130, 130, 130);
                }
                else if (newItem.rare == 6)
                {
                    Main.popupText[nextItemTextSlot].color = new Color(210, 160, (int)byte.MaxValue);
                }
                else if (newItem.rare == 7)
                {
                    Main.popupText[nextItemTextSlot].color = new Color(150, (int)byte.MaxValue, 10);
                }
                else if (newItem.rare == 8)
                {
                    Main.popupText[nextItemTextSlot].color = new Color((int)byte.MaxValue, (int)byte.MaxValue, 10);
                }
                else if (newItem.rare == 9)
                {
                    Main.popupText[nextItemTextSlot].color = new Color(5, 200, (int)byte.MaxValue);
                }
                else if (newItem.rare == 10)
                {
                    Main.popupText[nextItemTextSlot].color = new Color((int)byte.MaxValue, 40, 100);
                }
                else if (newItem.rare >= 11)
                {
                    Main.popupText[nextItemTextSlot].color = new Color(180, 40, (int)byte.MaxValue);
                }
                Main.popupText[nextItemTextSlot].expert     = newItem.expert;
                Main.popupText[nextItemTextSlot].name       = newItem.AffixName();
                Main.popupText[nextItemTextSlot].stack      = stack;
                Main.popupText[nextItemTextSlot].velocity.Y = -7f;
                Main.popupText[nextItemTextSlot].lifeTime   = 60;
                Main.popupText[nextItemTextSlot].context    = context;
                Main.popupText[nextItemTextSlot].npcNetID   = 0;
                if (longText)
                {
                    Main.popupText[nextItemTextSlot].lifeTime *= 5;
                }
                Main.popupText[nextItemTextSlot].coinValue = 0;
                Main.popupText[nextItemTextSlot].coinText  = newItem.type >= 71 && newItem.type <= 74;
                if (Main.popupText[nextItemTextSlot].coinText)
                {
                    if (newItem.type == 71)
                    {
                        Main.popupText[nextItemTextSlot].coinValue += Main.popupText[nextItemTextSlot].stack;
                    }
                    else if (newItem.type == 72)
                    {
                        Main.popupText[nextItemTextSlot].coinValue += 100 * Main.popupText[nextItemTextSlot].stack;
                    }
                    else if (newItem.type == 73)
                    {
                        Main.popupText[nextItemTextSlot].coinValue += 10000 * Main.popupText[nextItemTextSlot].stack;
                    }
                    else if (newItem.type == 74)
                    {
                        Main.popupText[nextItemTextSlot].coinValue += 1000000 * Main.popupText[nextItemTextSlot].stack;
                    }
                    Main.popupText[nextItemTextSlot].ValueToName();
                    Main.popupText[nextItemTextSlot].stack = 1;
                    int index = nextItemTextSlot;
                    if (Main.popupText[index].coinValue >= 1000000)
                    {
                        if (Main.popupText[index].lifeTime < 300)
                        {
                            Main.popupText[index].lifeTime = 300;
                        }
                        Main.popupText[index].color = new Color(220, 220, 198);
                    }
                    else if (Main.popupText[index].coinValue >= 10000)
                    {
                        if (Main.popupText[index].lifeTime < 240)
                        {
                            Main.popupText[index].lifeTime = 240;
                        }
                        Main.popupText[index].color = new Color(224, 201, 92);
                    }
                    else if (Main.popupText[index].coinValue >= 100)
                    {
                        if (Main.popupText[index].lifeTime < 180)
                        {
                            Main.popupText[index].lifeTime = 180;
                        }
                        Main.popupText[index].color = new Color(181, 192, 193);
                    }
                    else if (Main.popupText[index].coinValue >= 1)
                    {
                        if (Main.popupText[index].lifeTime < 120)
                        {
                            Main.popupText[index].lifeTime = 120;
                        }
                        Main.popupText[index].color = new Color(246, 138, 96);
                    }
                }
            }
            return(nextItemTextSlot);
        }
        //public Terraria.Item GetN
        public List<string> Prefixes()
        {
            var result = new List<string> { string.Empty };
            var curitem = new Terraria.Item();
            curitem.name = "";
            for (int prefix = 1; prefix < byte.MaxValue; prefix++)
            {
                curitem.prefix = (byte)prefix;
                string affixName = curitem.AffixName();
                if (string.IsNullOrWhiteSpace(affixName))
                    break;

                result.Add(affixName);
            }

            return result;
        }
Ejemplo n.º 12
0
 /// <summary>
 /// Gets a list of prefixes by name
 /// </summary>
 /// <param name="name">Name</param>
 /// <returns>List of prefix IDs</returns>
 public static List<int> GetPrefixByName(string name)
 {
     Item item = new Item();
     item.SetDefaults(0);
     string lowerName = name.ToLower();
     var found = new List<int>();
     for (int i = FirstItemPrefix; i <= LastItemPrefix; i++)
     {
         item.prefix = (byte)i;
         string prefixName = item.AffixName().Trim().ToLower();
         if (prefixName == lowerName)
             return new List<int>() { i };
         else if (prefixName.StartsWith(lowerName)) // Partial match
             found.Add(i);
     }
     return found;
 }
Ejemplo n.º 13
0
 /// <summary>
 /// Gets a prefix based on its id
 /// </summary>
 /// <param name="id">ID</param>
 /// <returns>Prefix name</returns>
 public static string GetPrefixById(int id)
 {
     var item = new Item();
     item.SetDefaults(0);
     item.prefix = (byte)id;
     item.AffixName();
     return item.name.Trim();
 }
Ejemplo n.º 14
0
 public static void NewText(Item newItem, int stack, bool noStack = false, bool longText = false)
 {
     bool flag = newItem.itemId >= 71 && newItem.itemId <= 74;
     if (!Main.showItemText || newItem.name == null || (!newItem.active || Main.netMode == 2))
         return;
     for (int index = 0; index < 20; ++index)
     {
         if (Main.itemText[index].active && (Main.itemText[index].name == newItem.AffixName() || flag && Main.itemText[index].coinText) && (!Main.itemText[index].NoStack && !noStack))
         {
             string text1 = string.Concat(new object[4]
   {
     (object) newItem.name,
     (object) " (",
     (object) (Main.itemText[index].stack + stack),
     (object) ")"
   });
             string text2 = newItem.name;
             if (Main.itemText[index].stack > 1)
                 text2 = string.Concat(new object[4]
     {
       (object) text2,
       (object) " (",
       (object) Main.itemText[index].stack,
       (object) ")"
     });
             Main.fontMouseText.MeasureString(text2);
             Vector2 vector2 = Main.fontMouseText.MeasureString(text1);
             if (Main.itemText[index].lifeTime < 0)
                 Main.itemText[index].scale = 1f;
             if (Main.itemText[index].lifeTime < 60)
                 Main.itemText[index].lifeTime = 60;
             if (flag && Main.itemText[index].coinText)
             {
                 int num = 0;
                 if (newItem.itemId == 71)
                     num += newItem.stack;
                 else if (newItem.itemId == 72)
                     num += 100 * newItem.stack;
                 else if (newItem.itemId == 73)
                     num += 10000 * newItem.stack;
                 else if (newItem.itemId == 74)
                     num += 1000000 * newItem.stack;
                 Main.itemText[index].coinValue += num;
                 string text3 = ItemText.ValueToName(Main.itemText[index].coinValue);
                 vector2 = Main.fontMouseText.MeasureString(text3);
                 Main.itemText[index].name = text3;
                 if (Main.itemText[index].coinValue >= 1000000)
                 {
                     if (Main.itemText[index].lifeTime < 300)
                         Main.itemText[index].lifeTime = 300;
                     Main.itemText[index].color = new Color(220, 220, 198);
                 }
                 else if (Main.itemText[index].coinValue >= 10000)
                 {
                     if (Main.itemText[index].lifeTime < 240)
                         Main.itemText[index].lifeTime = 240;
                     Main.itemText[index].color = new Color(224, 201, 92);
                 }
                 else if (Main.itemText[index].coinValue >= 100)
                 {
                     if (Main.itemText[index].lifeTime < 180)
                         Main.itemText[index].lifeTime = 180;
                     Main.itemText[index].color = new Color(181, 192, 193);
                 }
                 else if (Main.itemText[index].coinValue >= 1)
                 {
                     if (Main.itemText[index].lifeTime < 120)
                         Main.itemText[index].lifeTime = 120;
                     Main.itemText[index].color = new Color(246, 138, 96);
                 }
             }
             Main.itemText[index].stack += stack;
             Main.itemText[index].scale = 0.0f;
             Main.itemText[index].rotation = 0.0f;
             Main.itemText[index].position.X = (float)((double)newItem.position.X + (double)newItem.width * 0.5 - (double)vector2.X * 0.5);
             Main.itemText[index].position.Y = (float)((double)newItem.position.Y + (double)newItem.height * 0.25 - (double)vector2.Y * 0.5);
             Main.itemText[index].velocity.Y = -7f;
             if (!Main.itemText[index].coinText)
                 return;
             Main.itemText[index].stack = 1;
             return;
         }
     }
     int index1 = -1;
     for (int index2 = 0; index2 < 20; ++index2)
     {
         if (!Main.itemText[index2].active)
         {
             index1 = index2;
             break;
         }
     }
     if (index1 == -1)
     {
         double num = (double)Main.bottomWorld;
         for (int index2 = 0; index2 < 20; ++index2)
         {
             if (num > (double)Main.itemText[index2].position.Y)
             {
                 index1 = index2;
                 num = (double)Main.itemText[index2].position.Y;
             }
         }
     }
     if (index1 < 0)
         return;
     string text = newItem.AffixName();
     if (stack > 1)
         text = string.Concat(new object[4]
 {
   (object) text,
   (object) " (",
   (object) stack,
   (object) ")"
 });
     Vector2 vector2_1 = Main.fontMouseText.MeasureString(text);
     Main.itemText[index1].alpha = 1f;
     Main.itemText[index1].alphaDir = -1;
     Main.itemText[index1].active = true;
     Main.itemText[index1].scale = 0.0f;
     Main.itemText[index1].NoStack = noStack;
     Main.itemText[index1].rotation = 0.0f;
     Main.itemText[index1].position.X = (float)((double)newItem.position.X + (double)newItem.width * 0.5 - (double)vector2_1.X * 0.5);
     Main.itemText[index1].position.Y = (float)((double)newItem.position.Y + (double)newItem.height * 0.25 - (double)vector2_1.Y * 0.5);
     Main.itemText[index1].color = Color.White;
     if (newItem.rare == 1)
         Main.itemText[index1].color = new Color(150, 150, (int)byte.MaxValue);
     else if (newItem.rare == 2)
         Main.itemText[index1].color = new Color(150, (int)byte.MaxValue, 150);
     else if (newItem.rare == 3)
         Main.itemText[index1].color = new Color((int)byte.MaxValue, 200, 150);
     else if (newItem.rare == 4)
         Main.itemText[index1].color = new Color((int)byte.MaxValue, 150, 150);
     else if (newItem.rare == 5)
         Main.itemText[index1].color = new Color((int)byte.MaxValue, 150, (int)byte.MaxValue);
     else if (newItem.rare == -11)
         Main.itemText[index1].color = new Color((int)byte.MaxValue, 175, 0);
     else if (newItem.rare == -1)
         Main.itemText[index1].color = new Color(130, 130, 130);
     else if (newItem.rare == 6)
         Main.itemText[index1].color = new Color(210, 160, (int)byte.MaxValue);
     else if (newItem.rare == 7)
         Main.itemText[index1].color = new Color(150, (int)byte.MaxValue, 10);
     else if (newItem.rare == 8)
         Main.itemText[index1].color = new Color((int)byte.MaxValue, (int)byte.MaxValue, 10);
     else if (newItem.rare == 9)
         Main.itemText[index1].color = new Color(5, 200, (int)byte.MaxValue);
     else if (newItem.rare == 10)
         Main.itemText[index1].color = new Color((int)byte.MaxValue, 40, 100);
     else if (newItem.rare >= 11)
         Main.itemText[index1].color = new Color(180, 40, (int)byte.MaxValue);
     Main.itemText[index1].expert = newItem.expert;
     Main.itemText[index1].name = newItem.AffixName();
     Main.itemText[index1].stack = stack;
     Main.itemText[index1].velocity.Y = -7f;
     Main.itemText[index1].lifeTime = 60;
     if (longText)
         Main.itemText[index1].lifeTime *= 5;
     Main.itemText[index1].coinValue = 0;
     Main.itemText[index1].coinText = newItem.itemId >= 71 && newItem.itemId <= 74;
     if (!Main.itemText[index1].coinText)
         return;
     if (newItem.itemId == 71)
         Main.itemText[index1].coinValue += Main.itemText[index1].stack;
     else if (newItem.itemId == 72)
         Main.itemText[index1].coinValue += 100 * Main.itemText[index1].stack;
     else if (newItem.itemId == 73)
         Main.itemText[index1].coinValue += 10000 * Main.itemText[index1].stack;
     else if (newItem.itemId == 74)
         Main.itemText[index1].coinValue += 1000000 * Main.itemText[index1].stack;
     Main.itemText[index1].ValueToName();
     Main.itemText[index1].stack = 1;
     int index3 = index1;
     if (Main.itemText[index3].coinValue >= 1000000)
     {
         if (Main.itemText[index3].lifeTime < 300)
             Main.itemText[index3].lifeTime = 300;
         Main.itemText[index3].color = new Color(220, 220, 198);
     }
     else if (Main.itemText[index3].coinValue >= 10000)
     {
         if (Main.itemText[index3].lifeTime < 240)
             Main.itemText[index3].lifeTime = 240;
         Main.itemText[index3].color = new Color(224, 201, 92);
     }
     else if (Main.itemText[index3].coinValue >= 100)
     {
         if (Main.itemText[index3].lifeTime < 180)
             Main.itemText[index3].lifeTime = 180;
         Main.itemText[index3].color = new Color(181, 192, 193);
     }
     else
     {
         if (Main.itemText[index3].coinValue < 1)
             return;
         if (Main.itemText[index3].lifeTime < 120)
             Main.itemText[index3].lifeTime = 120;
         Main.itemText[index3].color = new Color(246, 138, 96);
     }
 }
Ejemplo n.º 15
0
 public static void NewText(Item newItem, int stack)
 {
     if ((Main.showItemText && ((newItem.name != null) && newItem.active)) && (Main.netMode != 2))
     {
         for (int i = 0; i < 20; i++)
         {
             if (Main.itemText[i].active && (Main.itemText[i].name == newItem.name))
             {
                 string text = string.Concat(new object[] { newItem.name, " (", Main.itemText[i].stack + stack, ")" });
                 string name = newItem.name;
                 if (Main.itemText[i].stack > 1)
                 {
                     object obj2 = name;
                     name = string.Concat(new object[] { obj2, " (", Main.itemText[i].stack, ")" });
                 }
                 Vector2 vector = Main.fontMouseText.MeasureString(name);
                 vector = Main.fontMouseText.MeasureString(text);
                 if (Main.itemText[i].lifeTime < 0)
                 {
                     Main.itemText[i].scale = 1f;
                 }
                 Main.itemText[i].lifeTime = 60;
                 ItemText text1 = Main.itemText[i];
                 text1.stack += stack;
                 Main.itemText[i].scale = 0f;
                 Main.itemText[i].rotation = 0f;
                 Main.itemText[i].position.X = (newItem.position.X + (newItem.width * 0.5f)) - (vector.X * 0.5f);
                 Main.itemText[i].position.Y = (newItem.position.Y + (newItem.height * 0.25f)) - (vector.Y * 0.5f);
                 Main.itemText[i].velocity.Y = -7f;
                 return;
             }
         }
         int index = -1;
         for (int j = 0; j < 20; j++)
         {
             if (!Main.itemText[j].active)
             {
                 index = j;
                 break;
             }
         }
         if (index == -1)
         {
             double bottomWorld = Main.bottomWorld;
             for (int k = 0; k < 20; k++)
             {
                 if (bottomWorld > Main.itemText[k].position.Y)
                 {
                     index = k;
                     bottomWorld = Main.itemText[k].position.Y;
                 }
             }
         }
         if (index >= 0)
         {
             string str3 = newItem.AffixName();
             if (stack > 1)
             {
                 object obj3 = str3;
                 str3 = string.Concat(new object[] { obj3, " (", stack, ")" });
             }
             Vector2 vector2 = Main.fontMouseText.MeasureString(str3);
             Main.itemText[index].alpha = 1f;
             Main.itemText[index].alphaDir = -1;
             Main.itemText[index].active = true;
             Main.itemText[index].scale = 0f;
             Main.itemText[index].rotation = 0f;
             Main.itemText[index].position.X = (newItem.position.X + (newItem.width * 0.5f)) - (vector2.X * 0.5f);
             Main.itemText[index].position.Y = (newItem.position.Y + (newItem.height * 0.25f)) - (vector2.Y * 0.5f);
             Main.itemText[index].color = Color.White;
             if (newItem.rare == 1)
             {
                 Main.itemText[index].color = new Color(150, 150, 0xff);
             }
             else if (newItem.rare == 2)
             {
                 Main.itemText[index].color = new Color(150, 0xff, 150);
             }
             else if (newItem.rare == 3)
             {
                 Main.itemText[index].color = new Color(0xff, 200, 150);
             }
             else if (newItem.rare == 4)
             {
                 Main.itemText[index].color = new Color(0xff, 150, 150);
             }
             else if (newItem.rare == 5)
             {
                 Main.itemText[index].color = new Color(0xff, 150, 0xff);
             }
             else if (newItem.rare == -1)
             {
                 Main.itemText[index].color = new Color(130, 130, 130);
             }
             else if (newItem.rare == 6)
             {
                 Main.itemText[index].color = new Color(210, 160, 0xff);
             }
             Main.itemText[index].name = newItem.AffixName();
             Main.itemText[index].stack = stack;
             Main.itemText[index].velocity.Y = -7f;
             Main.itemText[index].lifeTime = 60;
         }
     }
 }
Ejemplo n.º 16
0
        public static bool CheckInventory(TSPlayer player)
        {
            PlayerData playerData = player.PlayerData;
            bool check = true;

            if (player.TPlayer.statLifeMax > playerData.maxHealth)
            {
                player.SendMessage("Error: Your max health exceeded (" + playerData.maxHealth + ") which is stored on server",
                                   Color.Cyan);
                check = false;
            }

            Item[] inventory = player.TPlayer.inventory;
            Item[] armor = player.TPlayer.armor;
            for (int i = 0; i < NetItem.maxNetInventory; i++)
            {
                if (i < 49)
                {
                    Item item = new Item();
                    Item serverItem = new Item();
                    if (inventory[i] != null && inventory[i].netID != 0)
                    {
                        if (playerData.inventory[i].netID != inventory[i].netID)
                        {
                            item.netDefaults(inventory[i].netID);
                            item.Prefix(inventory[i].prefix);
                            item.AffixName();
                            player.SendMessage(player.IgnoreActionsForInventory = "Your item (" + item.name + ") needs to be deleted.",
                                               Color.Cyan);
                            check = false;
                        }
                        else if (playerData.inventory[i].prefix != inventory[i].prefix)
                        {
                            item.netDefaults(inventory[i].netID);
                            item.Prefix(inventory[i].prefix);
                            item.AffixName();
                            player.SendMessage(player.IgnoreActionsForInventory = "Your item (" + item.name + ") needs to be deleted.",
                                               Color.Cyan);
                            check = false;
                        }
                        else if (inventory[i].stack > playerData.inventory[i].stack)
                        {
                            item.netDefaults(inventory[i].netID);
                            item.Prefix(inventory[i].prefix);
                            item.AffixName();
                            player.SendMessage(
                                player.IgnoreActionsForInventory =
                                "Your item (" + item.name + ") (" + inventory[i].stack + ") needs to have it's stack decreased to (" +
                                playerData.inventory[i].stack + ").", Color.Cyan);
                            check = false;
                        }
                    }
                }
                else
                {
                    Item item = new Item();
                    Item serverItem = new Item();
                    if (armor[i - 48] != null && armor[i - 48].netID != 0)
                    {
                        if (playerData.inventory[i].netID != armor[i - 48].netID)
                        {
                            item.netDefaults(armor[i - 48].netID);
                            item.Prefix(armor[i - 48].prefix);
                            item.AffixName();
                            player.SendMessage(player.IgnoreActionsForInventory = "Your armor (" + item.name + ") needs to be deleted.",
                                               Color.Cyan);
                            check = false;
                        }
                        else if (playerData.inventory[i].prefix != armor[i - 48].prefix)
                        {
                            item.netDefaults(armor[i - 48].netID);
                            item.Prefix(armor[i - 48].prefix);
                            item.AffixName();
                            player.SendMessage(player.IgnoreActionsForInventory = "Your armor (" + item.name + ") needs to be deleted.",
                                               Color.Cyan);
                            check = false;
                        }
                        else if (armor[i - 48].stack > playerData.inventory[i].stack)
                        {
                            item.netDefaults(armor[i - 48].netID);
                            item.Prefix(armor[i - 48].prefix);
                            item.AffixName();
                            player.SendMessage(
                                player.IgnoreActionsForInventory =
                                "Your armor (" + item.name + ") (" + inventory[i].stack + ") needs to have it's stack decreased to (" +
                                playerData.inventory[i].stack + ").", Color.Cyan);
                            check = false;
                        }
                    }
                }
            }

            return check;
        }
Ejemplo n.º 17
0
        public static bool HackedInventory(TSPlayer player)
        {
            bool check = false;

            Item[] inventory = player.TPlayer.inventory;
            Item[] armor = player.TPlayer.armor;
            for (int i = 0; i < NetItem.maxNetInventory; i++)
            {
                if (i < 49)
                {
                    Item item = new Item();
                    if (inventory[i] != null && inventory[i].netID != 0)
                    {
                        item.netDefaults(inventory[i].netID);
                        item.Prefix(inventory[i].prefix);
                        item.AffixName();
                        if (inventory[i].stack > item.maxStack)
                        {
                            check = true;
                            player.SendMessage(
                                String.Format("Stack cheat detected. Remove item {0} ({1}) and then rejoin", item.name, inventory[i].stack),
                                Color.Cyan);
                        }
                    }
                }
                else
                {
                    Item item = new Item();
                    if (armor[i - 48] != null && armor[i - 48].netID != 0)
                    {
                        item.netDefaults(armor[i - 48].netID);
                        item.Prefix(armor[i - 48].prefix);
                        item.AffixName();
                        if (armor[i - 48].stack > item.maxStack)
                        {
                            check = true;
                            player.SendMessage(
                                String.Format("Stack cheat detected. Remove armor {0} ({1}) and then rejoin", item.name, armor[i - 48].stack),
                                Color.Cyan);
                        }
                    }
                }
            }

            return check;
        }
Ejemplo n.º 18
0
        private Item[] DeepCopyItems( Item[] source )
        {
            Item[] result = null;

              if ( source.Length > 0 )
              {
            result = new Item[source.Length];
            for ( int i = 0; i < source.Length; i++ )
            {
              var oldItem = source[i];
              if ( oldItem != null )
              {
              var newItem = new Item();
              newItem.netDefaults( oldItem.netID );
              newItem.Prefix( oldItem.prefix );
              newItem.AffixName();
              //if ( oldItem.type != 0 )
              //  Log.Write( "DCI (id:" + ID + ") " + oldItem.name + "," + newItem.name + "," + oldItem.netID + "," + newItem.netID, LogLevel.Debug );

              result[i] = newItem;
              result[i].stack = oldItem.stack;
              } // if
            } // for
              } // if

              return result;
        }
Ejemplo n.º 19
0
        public static void NewText(Item newItem, int stack)
        {
            if (!Main.showItemText || newItem.name == null || !newItem.active || Main.netMode == 2)
            {
                return;
            }
            for (int i = 0; i < 20; i++)
            {
                if (Main.itemText[i].active && Main.itemText[i].name == newItem.name)
                {
                    string text  = newItem.name + " (" + (Main.itemText[i].stack + stack) + ")";
                    string text2 = newItem.name;
                    if (Main.itemText[i].stack > 1)
                    {
                        object obj = text2;
                        text2 = string.Concat(obj, " (", Main.itemText[i].stack, ")");
                    }
                    Vector2 vector = Main.fontMouseText.MeasureString(text2);
                    vector = Main.fontMouseText.MeasureString(text);
                    if (Main.itemText[i].lifeTime < 0)
                    {
                        Main.itemText[i].scale = 1f;
                    }
                    Main.itemText[i].lifeTime   = 60;
                    Main.itemText[i].stack     += stack;
                    Main.itemText[i].scale      = 0f;
                    Main.itemText[i].rotation   = 0f;
                    Main.itemText[i].position.X = newItem.position.X + (float)newItem.width * 0.5f - vector.X * 0.5f;
                    Main.itemText[i].position.Y = newItem.position.Y + (float)newItem.height * 0.25f - vector.Y * 0.5f;
                    Main.itemText[i].velocity.Y = -7f;
                    return;
                }
            }
            int num = -1;

            for (int j = 0; j < 20; j++)
            {
                if (!Main.itemText[j].active)
                {
                    num = j;
                    break;
                }
            }
            if (num == -1)
            {
                double num2 = Main.bottomWorld;
                for (int k = 0; k < 20; k++)
                {
                    if (num2 > (double)Main.itemText[k].position.Y)
                    {
                        num  = k;
                        num2 = Main.itemText[k].position.Y;
                    }
                }
            }
            if (num >= 0)
            {
                string text3 = newItem.AffixName();
                if (stack > 1)
                {
                    object obj2 = text3;
                    text3 = string.Concat(obj2, " (", stack, ")");
                }
                Vector2 vector2 = Main.fontMouseText.MeasureString(text3);
                Main.itemText[num].alpha      = 1f;
                Main.itemText[num].alphaDir   = -1;
                Main.itemText[num].active     = true;
                Main.itemText[num].scale      = 0f;
                Main.itemText[num].rotation   = 0f;
                Main.itemText[num].position.X = newItem.position.X + (float)newItem.width * 0.5f - vector2.X * 0.5f;
                Main.itemText[num].position.Y = newItem.position.Y + (float)newItem.height * 0.25f - vector2.Y * 0.5f;
                Main.itemText[num].color      = Color.White;
                if (Main.colorRarity.ContainsKey(newItem.rare))
                {
                    Main.itemText[num].color = new Color((int)Main.colorRarity[newItem.rare][0], (int)Main.colorRarity[newItem.rare][1], (int)Main.colorRarity[newItem.rare][2]);
                }
                Main.itemText[num].name       = newItem.AffixName();
                Main.itemText[num].stack      = stack;
                Main.itemText[num].velocity.Y = -7f;
                Main.itemText[num].lifeTime   = 60;
            }
        }
Ejemplo n.º 20
0
 public static void NewText(Item newItem, int stack)
 {
     if ((Main.showItemText && ((newItem.name != null) && newItem.active)) && (Main.netMode != 2))
     {
         for (int i = 0; i < 20; i++)
         {
             if (Main.itemText[i].active && (Main.itemText[i].name == newItem.name))
             {
                 string text = string.Concat(new object[] { newItem.name, " (", Main.itemText[i].stack + stack, ")" });
                 string name = newItem.name;
                 if (Main.itemText[i].stack > 1)
                 {
                     object obj2 = name;
                     name = string.Concat(new object[] { obj2, " (", Main.itemText[i].stack, ")" });
                 }
                 Vector2 vector = Main.fontMouseText.MeasureString(name);
                 vector = Main.fontMouseText.MeasureString(text);
                 if (Main.itemText[i].lifeTime < 0)
                 {
                     Main.itemText[i].scale = 1f;
                 }
                 Main.itemText[i].lifeTime = 60;
                 ItemText text1 = Main.itemText[i];
                 text1.stack                += stack;
                 Main.itemText[i].scale      = 0f;
                 Main.itemText[i].rotation   = 0f;
                 Main.itemText[i].position.X = (newItem.position.X + (newItem.width * 0.5f)) - (vector.X * 0.5f);
                 Main.itemText[i].position.Y = (newItem.position.Y + (newItem.height * 0.25f)) - (vector.Y * 0.5f);
                 Main.itemText[i].velocity.Y = -7f;
                 return;
             }
         }
         int index = -1;
         for (int j = 0; j < 20; j++)
         {
             if (!Main.itemText[j].active)
             {
                 index = j;
                 break;
             }
         }
         if (index == -1)
         {
             double bottomWorld = Main.bottomWorld;
             for (int k = 0; k < 20; k++)
             {
                 if (bottomWorld > Main.itemText[k].position.Y)
                 {
                     index       = k;
                     bottomWorld = Main.itemText[k].position.Y;
                 }
             }
         }
         if (index >= 0)
         {
             string str3 = newItem.AffixName();
             if (stack > 1)
             {
                 object obj3 = str3;
                 str3 = string.Concat(new object[] { obj3, " (", stack, ")" });
             }
             Vector2 vector2 = Main.fontMouseText.MeasureString(str3);
             Main.itemText[index].alpha      = 1f;
             Main.itemText[index].alphaDir   = -1;
             Main.itemText[index].active     = true;
             Main.itemText[index].scale      = 0f;
             Main.itemText[index].rotation   = 0f;
             Main.itemText[index].position.X = (newItem.position.X + (newItem.width * 0.5f)) - (vector2.X * 0.5f);
             Main.itemText[index].position.Y = (newItem.position.Y + (newItem.height * 0.25f)) - (vector2.Y * 0.5f);
             Main.itemText[index].color      = Color.White;
             if (newItem.rare == 1)
             {
                 Main.itemText[index].color = new Color(150, 150, 0xff);
             }
             else if (newItem.rare == 2)
             {
                 Main.itemText[index].color = new Color(150, 0xff, 150);
             }
             else if (newItem.rare == 3)
             {
                 Main.itemText[index].color = new Color(0xff, 200, 150);
             }
             else if (newItem.rare == 4)
             {
                 Main.itemText[index].color = new Color(0xff, 150, 150);
             }
             else if (newItem.rare == 5)
             {
                 Main.itemText[index].color = new Color(0xff, 150, 0xff);
             }
             else if (newItem.rare == -1)
             {
                 Main.itemText[index].color = new Color(130, 130, 130);
             }
             else if (newItem.rare == 6)
             {
                 Main.itemText[index].color = new Color(210, 160, 0xff);
             }
             Main.itemText[index].name       = newItem.AffixName();
             Main.itemText[index].stack      = stack;
             Main.itemText[index].velocity.Y = -7f;
             Main.itemText[index].lifeTime   = 60;
         }
     }
 }
Ejemplo n.º 21
0
        public static void NewText(Item newItem, int stack)
        {
            if (!Main.showItemText)
            {
                return;
            }
            if (newItem.name == null || !newItem.active)
            {
                return;
            }
            if (Main.netMode == 2)
            {
                return;
            }
            for (int i = 0; i < 20; i++)
            {
                if (Main.itemText[i].active && Main.itemText[i].name == newItem.name)
                {
                    string text = string.Concat(new object[]
                    {
                        newItem.name,
                        " (",
                        Main.itemText[i].stack + stack,
                        ")"
                    });
                    string text2 = newItem.name;
                    if (Main.itemText[i].stack > 1)
                    {
                        object obj = text2;
                        text2 = string.Concat(new object[]
                        {
                            obj,
                            " (",
                            Main.itemText[i].stack,
                            ")"
                        });
                    }
                    Vector2 vector = Main.fontMouseText.MeasureString(text2);
                    vector = Main.fontMouseText.MeasureString(text);
                    if (Main.itemText[i].lifeTime < 0)
                    {
                        Main.itemText[i].scale = 1f;
                    }
                    Main.itemText[i].lifeTime   = 60;
                    Main.itemText[i].stack     += stack;
                    Main.itemText[i].scale      = 0f;
                    Main.itemText[i].rotation   = 0f;
                    Main.itemText[i].position.X = newItem.position.X + (float)newItem.width * 0.5f - vector.X * 0.5f;
                    Main.itemText[i].position.Y = newItem.position.Y + (float)newItem.height * 0.25f - vector.Y * 0.5f;
                    Main.itemText[i].velocity.Y = -7f;
                    return;
                }
            }
            int num = -1;

            for (int j = 0; j < 20; j++)
            {
                if (!Main.itemText[j].active)
                {
                    num = j;
                    break;
                }
            }
            if (num == -1)
            {
                double num2 = (double)Main.bottomWorld;
                for (int k = 0; k < 20; k++)
                {
                    if (num2 > (double)Main.itemText[k].position.Y)
                    {
                        num  = k;
                        num2 = (double)Main.itemText[k].position.Y;
                    }
                }
            }
            if (num >= 0)
            {
                string text3 = newItem.AffixName();
                if (stack > 1)
                {
                    object obj2 = text3;
                    text3 = string.Concat(new object[]
                    {
                        obj2,
                        " (",
                        stack,
                        ")"
                    });
                }
                Vector2 vector2 = Main.fontMouseText.MeasureString(text3);
                Main.itemText[num].alpha      = 1f;
                Main.itemText[num].alphaDir   = -1;
                Main.itemText[num].active     = true;
                Main.itemText[num].scale      = 0f;
                Main.itemText[num].rotation   = 0f;
                Main.itemText[num].position.X = newItem.position.X + (float)newItem.width * 0.5f - vector2.X * 0.5f;
                Main.itemText[num].position.Y = newItem.position.Y + (float)newItem.height * 0.25f - vector2.Y * 0.5f;
                Main.itemText[num].color      = Color.White;
                if (newItem.rare == 1)
                {
                    Main.itemText[num].color = new Color(150, 150, 255);
                }
                else
                {
                    if (newItem.rare == 2)
                    {
                        Main.itemText[num].color = new Color(150, 255, 150);
                    }
                    else
                    {
                        if (newItem.rare == 3)
                        {
                            Main.itemText[num].color = new Color(255, 200, 150);
                        }
                        else
                        {
                            if (newItem.rare == 4)
                            {
                                Main.itemText[num].color = new Color(255, 150, 150);
                            }
                            else
                            {
                                if (newItem.rare == 5)
                                {
                                    Main.itemText[num].color = new Color(255, 150, 255);
                                }
                                else
                                {
                                    if (newItem.rare == -1)
                                    {
                                        Main.itemText[num].color = new Color(130, 130, 130);
                                    }
                                    else
                                    {
                                        if (newItem.rare == 6)
                                        {
                                            Main.itemText[num].color = new Color(210, 160, 255);
                                        }
                                        else
                                        {
                                            if (newItem.rare == 7)
                                            {
                                                Main.itemText[num].color = new Color(150, 255, 10);
                                            }
                                            else
                                            {
                                                if (newItem.rare == 8)
                                                {
                                                    Main.itemText[num].color = new Color(255, 255, 10);
                                                }
                                                else
                                                {
                                                    if (newItem.rare >= 9)
                                                    {
                                                        Main.itemText[num].color = new Color(5, 200, 255);
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                Main.itemText[num].name       = newItem.AffixName();
                Main.itemText[num].stack      = stack;
                Main.itemText[num].velocity.Y = -7f;
                Main.itemText[num].lifeTime   = 60;
            }
        }
Ejemplo n.º 22
0
        private void NetHooks_GetData(GetDataEventArgs e)
        {
            switch (e.MsgID)
            {
                case PacketTypes.ChestGetContents:
                    if (!e.Handled)
                        using (var data = new MemoryStream(e.Msg.readBuffer, e.Index, e.Length))
                        {
                            var reader = new BinaryReader(data);
                            int x = reader.ReadInt32();
                            int y = reader.ReadInt32();
                            reader.Close();
                            int id = Terraria.Chest.FindChest(x, y);
                            CPlayer player = Players[e.Msg.whoAmI];
                            TPPlayer tplayer = tPulse.Players[e.Msg.whoAmI];
                            if (id != -1)
                            {
                                Chest chest = ChestManager.GetChest(id);
                                bool naggedAboutLock = false;

                                switch (player.GetState())
                                {
                                    case SettingState.Setting:
                                        if (chest.HasOwner())
                                            if (chest.IsOwnerConvert(player))
                                                player.SendMessage("You already own this chest!", Color.Red);
                                            else
                                            {
                                                player.SendMessage("This chest is already owned by someone!", Color.Red);
                                                naggedAboutLock = true;
                                            }
                                        else
                                        {
                                            chest.SetID(id);
                                            chest.SetPosition(x, y);
                                            chest.SetOwner(player);
                                            chest.Lock();

                                            player.SendMessage("This chest is now yours, and yours only.", Color.Red);
                                        }

                                        //end player setting
                                        player.SetState(SettingState.None);
                                        break;

                                    case SettingState.RegionSetting:
                                        if (chest.HasOwner())
                                            if (chest.IsOwnerConvert(player))
                                                if (chest.IsRegionLocked())
                                                {
                                                    chest.regionLock(false);

                                                    player.SendMessage(
                                                        "Region share disabled. This chest is now only yours. To fully remove protection use \"cunset\".",
                                                        Color.Red);
                                                }
                                                else if (tPulse.Regions.InArea(x, y))
                                                {
                                                    chest.regionLock(true);

                                                    player.SendMessage(
                                                        "This chest is now shared between region users. Use this command again to disable it.",
                                                        Color.Red);
                                                }
                                                else
                                                    player.SendMessage(
                                                        "You can region share chest only if the chest is inside region!",
                                                        Color.Red);
                                            else
                                            {
                                                player.SendMessage("This chest isn't yours!", Color.Red);
                                                naggedAboutLock = true;
                                            }
                                        else if (tPulse.Regions.InArea(x, y))
                                        {
                                            chest.SetID(id);
                                            chest.SetPosition(x, y);
                                            chest.SetOwner(player);
                                            chest.Lock();
                                            chest.regionLock(true);

                                            player.SendMessage(
                                                "This chest is now shared between region users with you as owner. Use this command again to disable region sharing (You will still be owner).",
                                                Color.Red);
                                        }
                                        else
                                            player.SendMessage(
                                                "You can region share chest only if the chest is inside region!",
                                                Color.Red);

                                        //end player setting
                                        player.SetState(SettingState.None);
                                        break;

                                    case SettingState.PublicSetting:
                                        if (chest.HasOwner())
                                            if (chest.IsOwnerConvert(player))
                                                if (chest.IsLocked())
                                                {
                                                    chest.UnLock();
                                                    player.SendMessage(
                                                        "This chest is now public! Use \"/cpset\" to set it private.",
                                                        Color.Red);
                                                }
                                                else
                                                {
                                                    chest.Lock();
                                                    player.SendMessage(
                                                        "This chest is now private! Use \"/cpset\" to set it public.",
                                                        Color.Red);
                                                }
                                            else
                                            {
                                                player.SendMessage("This chest isn't yours!", Color.Red);
                                                naggedAboutLock = true;
                                            }
                                        else
                                        {
                                            chest.SetID(id);
                                            chest.SetPosition(x, y);
                                            chest.SetOwner(player);

                                            player.SendMessage(
                                                "This chest is now yours. This chest is public. Use \"/cpset\" to set it private.",
                                                Color.Red);
                                        }
                                        break;

                                    case SettingState.Deleting:
                                        if (chest.HasOwner())
                                            if (chest.IsOwnerConvert(player) ||
                                                tplayer.Group.HasPermission("removechestprotection"))
                                            {
                                                chest.Reset();
                                                player.SendMessage("This chest is no longer yours!", Color.Red);
                                            }
                                            else
                                            {
                                                player.SendMessage("This chest isn't yours!", Color.Red);
                                                naggedAboutLock = true;
                                            }
                                        else
                                            player.SendMessage("This chest is not protected!", Color.Red);

                                        //end player setting
                                        player.SetState(SettingState.None);
                                        break;

                                    case SettingState.PasswordSetting:
                                        if (chest.HasOwner())
                                            if (chest.IsOwnerConvert(player))
                                            {
                                                chest.SetPassword(player.PasswordForChest);
                                                player.SendMessage("This chest is now protected with password.",
                                                    Color.Red);
                                            }
                                            else
                                            {
                                                player.SendMessage("This chest isn't yours!", Color.Red);
                                                naggedAboutLock = true;
                                            }
                                        else
                                        {
                                            chest.SetID(id);
                                            chest.SetPosition(x, y);
                                            chest.SetOwner(player);
                                            chest.Lock();
                                            chest.SetPassword(player.PasswordForChest);

                                            player.SendMessage(
                                                "This chest is now protected with password, with you as owner.",
                                                Color.Red);
                                        }

                                        //end player setting
                                        player.SetState(SettingState.None);
                                        break;

                                    case SettingState.PasswordUnSetting:
                                        if (chest.HasOwner())
                                            if (chest.IsOwnerConvert(player))
                                            {
                                                chest.SetPassword("");
                                                player.SendMessage("This chest password has been removed.", Color.Red);
                                            }
                                            else
                                            {
                                                player.SendMessage("This chest isn't yours!", Color.Red);
                                                naggedAboutLock = true;
                                            }
                                        else
                                            player.SendMessage("This chest is not protected!", Color.Red);

                                        //end player setting
                                        player.SetState(SettingState.None);
                                        break;

                                    case SettingState.RefillSetting:
                                        if (chest.HasOwner())
                                            if (chest.IsOwnerConvert(player))
                                            {
                                                chest.SetRefill(true);
                                                player.SendMessage("This chest is will now always refill with items.",
                                                    Color.Red);
                                            }
                                            else
                                            {
                                                player.SendMessage("This chest isn't yours!", Color.Red);
                                                naggedAboutLock = true;
                                            }
                                        else
                                        {
                                            chest.SetID(id);
                                            chest.SetPosition(x, y);
                                            chest.SetOwner(player);
                                            chest.SetRefill(true);

                                            player.SendMessage(
                                                "This chest is will now always refill with items, with you as owner.",
                                                Color.Red);
                                        }

                                        //end player setting
                                        player.SetState(SettingState.None);
                                        break;

                                    case SettingState.RefillUnSetting:
                                        if (chest.IsRefill())
                                            if (chest.HasOwner())
                                                if (chest.IsOwnerConvert(player))
                                                {
                                                    chest.SetRefill(false);
                                                    player.SendMessage(
                                                        "This chest is will no longer refill with items.", Color.Red);
                                                }
                                                else
                                                {
                                                    player.SendMessage("This chest isn't yours!", Color.Red);
                                                    naggedAboutLock = true;
                                                }
                                            else
                                            {
                                                chest.SetID(id);
                                                chest.SetPosition(x, y);
                                                chest.SetOwner(player);
                                                chest.SetRefill(false);

                                                player.SendMessage("This chest is will no longer refill with items",
                                                    Color.Red);
                                            }
                                        else
                                            player.SendMessage("This chest is not refilling!", Color.Red);

                                        //end player setting
                                        player.SetState(SettingState.None);
                                        break;

                                    case SettingState.UnLocking:
                                        if (chest.HasOwner())
                                            if (chest.IsLocked())
                                                if (chest.GetPassword() == "")
                                                {
                                                    player.SendMessage("This chest can't be unlocked with password!",
                                                        Color.Red);
                                                    naggedAboutLock = true;
                                                }
                                                else if (chest.IsOwnerConvert(player))
                                                    player.SendMessage(
                                                        "You are owner of this chest, you dont need to unlock it. If you want to remove password use \"/lockchest remove\".",
                                                        Color.Red);
                                                else if (player.HasAccessToChest(chest.GetID()))
                                                    player.SendMessage("You already have access to this chest!",
                                                        Color.Red);
                                                else if (chest.CheckPassword(player.PasswordForChest))
                                                {
                                                    player.UnlockedChest(chest.GetID());
                                                    player.SendMessage(
                                                        "Chest unlocked! When you leave game you must unlock it again.",
                                                        Color.Red);
                                                }
                                                else
                                                {
                                                    player.SendMessage("Wrong password for chest!", Color.Red);
                                                    naggedAboutLock = true;
                                                }
                                            else
                                                player.SendMessage("This chest is not locked!", Color.Red);
                                        else
                                            player.SendMessage("This chest is not protected!", Color.Red);

                                        //end player setting
                                        player.SetState(SettingState.None);
                                        break;
                                }

                                if (tplayer.Group.HasPermission("showchestinfo")) //if player should see chest info
                                    player.SendMessage(
                                        string.Format(
                                            "Chest Owner: {0} || Public: {1} || RegionShare: {2} || Password: {3} || Refill: {4}",
                                            chest.GetOwner() == "" ? "-None-" : chest.GetOwner(),
                                            chest.IsLocked() ? "No" : "Yes", chest.IsRegionLocked() ? "Yes" : "No",
                                            chest.GetPassword() == "" ? "No" : "Yes",
                                            chest.IsRefill() ? "Yes" : "No"), Color.Yellow);

                                if (!tplayer.Group.HasPermission("openallchests") && !chest.IsOpenFor(player))
                                    //if player doesnt has permission to see inside chest, then break and message
                                {
                                    e.Handled = true;
                                    if (!naggedAboutLock)
                                        player.SendMessage(
                                            chest.GetPassword() != ""
                                                ? "This chest is magically locked with password. ( Use \"/cunlock PASSWORD\" to unlock it. )"
                                                : "This chest is magically locked.", Color.IndianRed);
                                    return;
                                }
                            }
                            if (player.GetState() != SettingState.None)
                                //if player is still setting something - end his setting
                                player.SetState(SettingState.None);
                        }
                    break;
                case PacketTypes.TileKill:
                case PacketTypes.Tile:
                    using (var data = new MemoryStream(e.Msg.readBuffer, e.Index, e.Length))
                        try
                        {
                            var reader = new BinaryReader(data);
                            if (e.MsgID == PacketTypes.Tile)
                            {
                                byte type = reader.ReadByte();
                                if (!(type == 0 || type == 4))
                                    return;
                            }
                            int x = reader.ReadInt32();
                            int y = reader.ReadInt32();
                            reader.Close();

                            if (Chest.TileIsChest(x, y)) //if is Chest
                            {
                                int id = Terraria.Chest.FindChest(x, y);
                                CPlayer player = Players[e.Msg.whoAmI];
                                TPPlayer tplayer = tPulse.Players[e.Msg.whoAmI];

                                //dirty fix for finding chest, try to find chest point around
                                if (id == -1)
                                    try
                                    {
                                        id = Terraria.Chest.FindChest(x - 1, y); //search one tile left
                                        if (id == -1)
                                        {
                                            id = Terraria.Chest.FindChest(x - 1, y - 1);
                                            //search one tile left and one tile up
                                            if (id == -1)
                                                id = Terraria.Chest.FindChest(x, y - 1); //search one tile up
                                        }
                                    }
                                    catch (Exception ex)
                                    {
                                        Log.Write(ex.ToString(), LogLevel.Error);
                                    }

                                if (id != -1) //if have found chest
                                {
                                    Chest chest = ChestManager.GetChest(id);
                                    if (chest.HasOwner()) //if owned stop removing
                                    {
                                        if (tplayer.Group.HasPermission("removechestprotection") ||
                                            chest.IsOwnerConvert(player))
                                            //display more verbose info to player who has permission to remove protection on this chest
                                            player.SendMessage(
                                                "This chest is protected. To remove it, first remove protection using \"/cunset\" command.",
                                                Color.Red);
                                        else
                                            player.SendMessage("This chest is protected!", Color.Red);

                                        player.SendTileSquare(x, y);
                                        e.Handled = true;
                                    }
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            Log.Write(ex.ToString(), LogLevel.Error);
                        }
                    break;
                case PacketTypes.ChestItem:
                    using (var data = new MemoryStream(e.Msg.readBuffer, e.Index, e.Length))
                    {
                        var reader = new BinaryReader(data);
                        short id = reader.ReadInt16();
                        byte slot = reader.ReadByte();
                        byte stack = reader.ReadByte();
                        byte prefix = reader.ReadByte();
                        short type = reader.ReadByte();
                        if (id != -1)
                        {
                            Chest chest = ChestManager.GetChest(id);
                            if (chest.IsRefill())
                                e.Handled = true;
                            if (!e.Handled)
                            {
                                var item = Main.chest[id].item[slot];
                                var newitem = new Item();
                                newitem.netDefaults(type);
                                newitem.Prefix(prefix);
                                newitem.AffixName();
                                Log.Write(string.Format("{0}({1}) in slot {2} in chest at {3}x{4} was modified to {5}({6}) by {7}",
                                    item.name, item.stack, slot, Main.chest[id].x, Main.chest[id].y, newitem.name, stack, tPulse.Players[e.Msg.whoAmI].UserAccountName),
                                    LogLevel.Info, false);
                            }
                        }
                    }
                    break;
            }
        }
Ejemplo n.º 23
0
        public static void NewText(Item newItem, int stack, bool noStack = false, bool longText = false)
        {
            bool flag = newItem.type >= 71 && newItem.type <= 74;

            if (!Main.showItemText || newItem.Name == null || !newItem.active || Main.netMode == 2)
            {
                return;
            }
            for (int i = 0; i < 20; i++)
            {
                if (!Main.itemText[i].active || (!(Main.itemText[i].name == newItem.AffixName()) && (!flag || !Main.itemText[i].coinText)) || Main.itemText[i].NoStack || noStack)
                {
                    continue;
                }
                string text  = newItem.Name + " (" + (Main.itemText[i].stack + stack) + ")";
                string text2 = newItem.Name;
                if (Main.itemText[i].stack > 1)
                {
                    object obj = text2;
                    text2 = string.Concat(obj, " (", Main.itemText[i].stack, ")");
                }
                Vector2 vector = Main.fontMouseText.MeasureString(text2);
                vector = Main.fontMouseText.MeasureString(text);
                if (Main.itemText[i].lifeTime < 0)
                {
                    Main.itemText[i].scale = 1f;
                }
                if (Main.itemText[i].lifeTime < 60)
                {
                    Main.itemText[i].lifeTime = 60;
                }
                if (flag && Main.itemText[i].coinText)
                {
                    int num = 0;
                    if (newItem.type == 71)
                    {
                        num += newItem.stack;
                    }
                    else if (newItem.type == 72)
                    {
                        num += 100 * newItem.stack;
                    }
                    else if (newItem.type == 73)
                    {
                        num += 10000 * newItem.stack;
                    }
                    else if (newItem.type == 74)
                    {
                        num += 1000000 * newItem.stack;
                    }
                    Main.itemText[i].coinValue += num;
                    text   = ValueToName(Main.itemText[i].coinValue);
                    vector = Main.fontMouseText.MeasureString(text);
                    Main.itemText[i].name = text;
                    if (Main.itemText[i].coinValue >= 1000000)
                    {
                        if (Main.itemText[i].lifeTime < 300)
                        {
                            Main.itemText[i].lifeTime = 300;
                        }
                        Main.itemText[i].color = new Color(220, 220, 198);
                    }
                    else if (Main.itemText[i].coinValue >= 10000)
                    {
                        if (Main.itemText[i].lifeTime < 240)
                        {
                            Main.itemText[i].lifeTime = 240;
                        }
                        Main.itemText[i].color = new Color(224, 201, 92);
                    }
                    else if (Main.itemText[i].coinValue >= 100)
                    {
                        if (Main.itemText[i].lifeTime < 180)
                        {
                            Main.itemText[i].lifeTime = 180;
                        }
                        Main.itemText[i].color = new Color(181, 192, 193);
                    }
                    else if (Main.itemText[i].coinValue >= 1)
                    {
                        if (Main.itemText[i].lifeTime < 120)
                        {
                            Main.itemText[i].lifeTime = 120;
                        }
                        Main.itemText[i].color = new Color(246, 138, 96);
                    }
                }
                Main.itemText[i].stack     += stack;
                Main.itemText[i].scale      = 0f;
                Main.itemText[i].rotation   = 0f;
                Main.itemText[i].position.X = newItem.position.X + (float)newItem.width * 0.5f - vector.X * 0.5f;
                Main.itemText[i].position.Y = newItem.position.Y + (float)newItem.height * 0.25f - vector.Y * 0.5f;
                Main.itemText[i].velocity.Y = -7f;
                if (Main.itemText[i].coinText)
                {
                    Main.itemText[i].stack = 1;
                }
                return;
            }
            int num2 = -1;

            for (int j = 0; j < 20; j++)
            {
                if (!Main.itemText[j].active)
                {
                    num2 = j;
                    break;
                }
            }
            if (num2 == -1)
            {
                double num3 = Main.bottomWorld;
                for (int k = 0; k < 20; k++)
                {
                    if (num3 > (double)Main.itemText[k].position.Y)
                    {
                        num2 = k;
                        num3 = Main.itemText[k].position.Y;
                    }
                }
            }
            if (num2 < 0)
            {
                return;
            }
            string text3 = newItem.AffixName();

            if (stack > 1)
            {
                object obj2 = text3;
                text3 = string.Concat(obj2, " (", stack, ")");
            }
            Vector2 vector2 = Main.fontMouseText.MeasureString(text3);

            Main.itemText[num2].alpha      = 1f;
            Main.itemText[num2].alphaDir   = -1;
            Main.itemText[num2].active     = true;
            Main.itemText[num2].scale      = 0f;
            Main.itemText[num2].NoStack    = noStack;
            Main.itemText[num2].rotation   = 0f;
            Main.itemText[num2].position.X = newItem.position.X + (float)newItem.width * 0.5f - vector2.X * 0.5f;
            Main.itemText[num2].position.Y = newItem.position.Y + (float)newItem.height * 0.25f - vector2.Y * 0.5f;
            Main.itemText[num2].color      = Color.White;
            if (newItem.rare == 1)
            {
                Main.itemText[num2].color = new Color(150, 150, 255);
            }
            else if (newItem.rare == 2)
            {
                Main.itemText[num2].color = new Color(150, 255, 150);
            }
            else if (newItem.rare == 3)
            {
                Main.itemText[num2].color = new Color(255, 200, 150);
            }
            else if (newItem.rare == 4)
            {
                Main.itemText[num2].color = new Color(255, 150, 150);
            }
            else if (newItem.rare == 5)
            {
                Main.itemText[num2].color = new Color(255, 150, 255);
            }
            else if (newItem.rare == -11)
            {
                Main.itemText[num2].color = new Color(255, 175, 0);
            }
            else if (newItem.rare == -1)
            {
                Main.itemText[num2].color = new Color(130, 130, 130);
            }
            else if (newItem.rare == 6)
            {
                Main.itemText[num2].color = new Color(210, 160, 255);
            }
            else if (newItem.rare == 7)
            {
                Main.itemText[num2].color = new Color(150, 255, 10);
            }
            else if (newItem.rare == 8)
            {
                Main.itemText[num2].color = new Color(255, 255, 10);
            }
            else if (newItem.rare == 9)
            {
                Main.itemText[num2].color = new Color(5, 200, 255);
            }
            else if (newItem.rare == 10)
            {
                Main.itemText[num2].color = new Color(255, 40, 100);
            }
            else if (newItem.rare >= 11)
            {
                Main.itemText[num2].color = new Color(180, 40, 255);
            }
            Main.itemText[num2].expert     = newItem.expert;
            Main.itemText[num2].name       = newItem.AffixName();
            Main.itemText[num2].stack      = stack;
            Main.itemText[num2].velocity.Y = -7f;
            Main.itemText[num2].lifeTime   = 60;
            if (longText)
            {
                Main.itemText[num2].lifeTime *= 5;
            }
            Main.itemText[num2].coinValue = 0;
            Main.itemText[num2].coinText  = (newItem.type >= 71 && newItem.type <= 74);
            if (!Main.itemText[num2].coinText)
            {
                return;
            }
            if (newItem.type == 71)
            {
                Main.itemText[num2].coinValue += Main.itemText[num2].stack;
            }
            else if (newItem.type == 72)
            {
                Main.itemText[num2].coinValue += 100 * Main.itemText[num2].stack;
            }
            else if (newItem.type == 73)
            {
                Main.itemText[num2].coinValue += 10000 * Main.itemText[num2].stack;
            }
            else if (newItem.type == 74)
            {
                Main.itemText[num2].coinValue += 1000000 * Main.itemText[num2].stack;
            }
            Main.itemText[num2].ValueToName();
            Main.itemText[num2].stack = 1;
            int num4 = num2;

            if (Main.itemText[num4].coinValue >= 1000000)
            {
                if (Main.itemText[num4].lifeTime < 300)
                {
                    Main.itemText[num4].lifeTime = 300;
                }
                Main.itemText[num4].color = new Color(220, 220, 198);
            }
            else if (Main.itemText[num4].coinValue >= 10000)
            {
                if (Main.itemText[num4].lifeTime < 240)
                {
                    Main.itemText[num4].lifeTime = 240;
                }
                Main.itemText[num4].color = new Color(224, 201, 92);
            }
            else if (Main.itemText[num4].coinValue >= 100)
            {
                if (Main.itemText[num4].lifeTime < 180)
                {
                    Main.itemText[num4].lifeTime = 180;
                }
                Main.itemText[num4].color = new Color(181, 192, 193);
            }
            else if (Main.itemText[num4].coinValue >= 1)
            {
                if (Main.itemText[num4].lifeTime < 120)
                {
                    Main.itemText[num4].lifeTime = 120;
                }
                Main.itemText[num4].color = new Color(246, 138, 96);
            }
        }
Ejemplo n.º 24
0
        // ParseData +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        private void ParseData( GetDataEventArgs args )
        {
            try
            {
                PacketTypes packet = args.MsgID;
                using ( var data = new MemoryStream( args.Msg.readBuffer, args.Index, args.Length ) )
                {
                    TSPlayer player = TShock.Players[args.Msg.whoAmI];
                    switch ( packet )
                    {
                        case PacketTypes.ChestItem:
            {
              string action, itemName;
              short  chestID   = data.ReadInt16();
              byte   itemSlot  = data.ReadInt8();
              byte   itemStack = data.ReadInt8();
              byte   prefix    = data.ReadInt8();
              short  itemType  = data.ReadInt16();
              var    oldItem   = Main.chest[chestID].item[itemSlot];
              if ( oldItem.name != null && oldItem.name.Length > 0 )
              {
                action = "cGet";
                itemName = oldItem.name;
              } // if
              else
              {
                var newItem = new Item();
                newItem.netDefaults( itemType );
                newItem.Prefix( prefix );
                newItem.AffixName();
                action = "cPut";
                itemName = newItem.name;
              } // else

              if ( itemType != prevItemType )
              {
                _ircClient.SendMessage( SendType.Message, _actionChannel,
                                 string.Format( "{0} ({1}): {2}: {3}",
                                 player.Name, player.Group.Name, action, itemName ) );
                prevItemType = itemType;
              } // if
                            break;
                        } // case
                    } // switch
                } // using
            } // try
            catch ( Exception exception )
            {
                Console.WriteLine( exception.Message + "(" + exception.StackTrace + ")" );
            } // catch
        }