// these two methods are probably the hardest ones to debug in the entire mod. I HATE red's colour system.
		static Color ComposeColour(Item item, Color? tint = null)
		{
			Color c;

			c = item.color == default(Color) ? item.GetAlpha(tint ?? Color.White) : item.GetAlpha(item.GetColor(tint ?? Color.White));

			//c.A = 255;

			return c;
		}
		static void DrawItem(Item item, SpriteBatch sb, Vector2 position, Color? tint = null)
		{
			sb.Draw(item.GetTexture(), position, item.GetAlpha(tint ?? Color.White));

			if (item.color != default(Color))
				sb.Draw(item.GetTexture(), position, ComposeColour(item, tint));
		}
Ejemplo n.º 3
0
 public static void VanillaDrawItemTextureInSlot(SpriteBatch sb, Color color, Item item, Vector2 pos, float scale)
 {
     if (item.type > 0 && item.stack > 0)
     {
         Texture2D texture2D       = Main.itemTexture[item.type];
         Rectangle?sourceRectangle = new Rectangle(0, 0, texture2D.Width, texture2D.Height);
         sb.Draw(texture2D, pos, sourceRectangle, item.GetAlpha(color), 0f, default(Vector2), scale, SpriteEffects.None, 0f);
         if (item.color != default(Color))
         {
             sb.Draw(texture2D, pos, sourceRectangle, item.GetColor(color), 0f, default(Vector2), scale, SpriteEffects.None, 0f);
         }
     }
 }
Ejemplo n.º 4
0
		protected void DrawChat()
		{
			if (Main.player[Main.myPlayer].talkNPC < 0 && Main.player[Main.myPlayer].sign == -1)
			{
				Main.npcChatText = "";
				return;
			}
			if (Main.netMode == 0 && Main.autoPause && Main.player[Main.myPlayer].talkNPC >= 0)
			{
				if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 105)
				{
					Main.npc[Main.player[Main.myPlayer].talkNPC].Transform(107);
				}
				if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 106)
				{
					Main.npc[Main.player[Main.myPlayer].talkNPC].Transform(108);
				}
				if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 123)
				{
					Main.npc[Main.player[Main.myPlayer].talkNPC].Transform(124);
				}
				if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 354)
				{
					Main.npc[Main.player[Main.myPlayer].talkNPC].Transform(353);
				}
				if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 376)
				{
					Main.npc[Main.player[Main.myPlayer].talkNPC].Transform(369);
				}
			}
			Color color = new Color(200, 200, 200, 200);
			int num = (int)((Main.mouseTextColor * 2 + 255) / 3);
			Color textColor = new Color(num, num, num, num);
			int num2;
			string[] array = Utils.WordwrapString(Main.npcChatText, Main.fontMouseText, 460, 10, out num2);
			if (Main.editSign)
			{
				this.textBlinkerCount++;
				if (this.textBlinkerCount >= 20)
				{
					if (this.textBlinkerState == 0)
					{
						this.textBlinkerState = 1;
					}
					else
					{
						this.textBlinkerState = 0;
					}
					this.textBlinkerCount = 0;
				}
				if (this.textBlinkerState == 1)
				{
					string[] array2;
					IntPtr intPtr;
					(array2 = array)[(int)(intPtr = (IntPtr)num2)] = array2[(int)intPtr] + "|";
				}
			}
			num2++;
			Main.spriteBatch.Draw(Main.chatBackTexture, new Vector2((float)(Main.screenWidth / 2 - Main.chatBackTexture.Width / 2), 100f), new Rectangle?(new Rectangle(0, 0, Main.chatBackTexture.Width, (num2 + 1) * 30)), color, 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
			Main.spriteBatch.Draw(Main.chatBackTexture, new Vector2((float)(Main.screenWidth / 2 - Main.chatBackTexture.Width / 2), (float)(100 + (num2 + 1) * 30)), new Rectangle?(new Rectangle(0, Main.chatBackTexture.Height - 30, Main.chatBackTexture.Width, 30)), color, 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
			for (int i = 0; i < num2; i++)
			{
				Utils.DrawBorderStringFourWay(Main.spriteBatch, Main.fontMouseText, array[i], (float)(170 + (Main.screenWidth - 800) / 2), (float)(120 + i * 30), textColor, Color.Black, Vector2.Zero, 1f);
			}
			if (Main.npcChatCornerItem != 0)
			{
				Vector2 vector = new Vector2((float)(Main.screenWidth / 2 + Main.chatBackTexture.Width / 2), (float)(100 + (num2 + 1) * 30 + 30));
				vector -= Vector2.One * 8f;
				Item item = new Item();
				item.netDefaults(Main.npcChatCornerItem);
				float num3 = 1f;
				Texture2D texture2D = Main.itemTexture[item.type];
				if (texture2D.Width > 32 || texture2D.Height > 32)
				{
					if (texture2D.Width > texture2D.Height)
					{
						num3 = 32f / (float)texture2D.Width;
					}
					else
					{
						num3 = 32f / (float)texture2D.Height;
					}
				}
				Main.spriteBatch.Draw(texture2D, vector, null, item.GetAlpha(Color.White), 0f, new Vector2((float)texture2D.Width, (float)texture2D.Height), num3, SpriteEffects.None, 0f);
				if (item.color != default(Color))
				{
					Main.spriteBatch.Draw(texture2D, vector, null, item.GetColor(item.color), 0f, new Vector2((float)texture2D.Width, (float)texture2D.Height), num3, SpriteEffects.None, 0f);
				}
				if (new Rectangle((int)vector.X - (int)((float)texture2D.Width * num3), (int)vector.Y - (int)((float)texture2D.Height * num3), (int)((float)texture2D.Width * num3), (int)((float)texture2D.Height * num3)).Contains(new Point(Main.mouseX, Main.mouseY)))
				{
					this.MouseText(item.name, -11, 0);
				}
			}
			num = (int)Main.mouseTextColor;
			textColor = new Color(num, (int)((double)num / 1.1), num / 2, num);
			string text = "";
			string text2 = "";
			int num4 = Main.player[Main.myPlayer].statLifeMax2 - Main.player[Main.myPlayer].statLife;
			for (int j = 0; j < 22; j++)
			{
				int num5 = Main.player[Main.myPlayer].buffType[j];
				if (Main.debuff[num5] && Main.player[Main.myPlayer].buffTime[j] > 0 && num5 != 28 && num5 != 34 && num5 != 87 && num5 != 89 && num5 != 21 && num5 != 86)
				{
					num4 += 1000;
				}
			}
			if (Main.player[Main.myPlayer].sign > -1)
			{
				if (Main.editSign)
				{
					text = Lang.inter[47];
				}
				else
				{
					text = Lang.inter[48];
				}
			}
			else
			{
				if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 20)
				{
					text = Lang.inter[28];
					text2 = Lang.inter[49];
				}
				else
				{
					if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 353)
					{
						text = Lang.inter[28];
						text2 = "Hair Style";
					}
					else
					{
						if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 368)
						{
							text = Lang.inter[28];
						}
						else
						{
							if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 369)
							{
								text = Lang.inter[64];
							}
							else
							{
								if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 17 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 19 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 38 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 54 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 107 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 108 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 124 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 142 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 160 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 178 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 207 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 208 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 209 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 227 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 228 || Main.npc[Main.player[Main.myPlayer].talkNPC].type == 229)
								{
									text = Lang.inter[28];
									if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 107)
									{
										text2 = Lang.inter[19];
									}
								}
								else
								{
									if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 37)
									{
										if (!Main.dayTime)
										{
											text = Lang.inter[50];
										}
									}
									else
									{
										if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 22)
										{
											text = Lang.inter[51];
											text2 = Lang.inter[25];
										}
										else
										{
											if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 18)
											{
												string text3 = "";
												int num6 = 0;
												int num7 = 0;
												int num8 = 0;
												int num9 = 0;
												int num10 = num4;
												if (num10 > 0)
												{
													num10 = (int)((double)num10 * 0.75);
													if (num10 < 1)
													{
														num10 = 1;
													}
												}
												if (num10 < 0)
												{
													num10 = 0;
												}
												num4 = num10;
												if (num10 >= 1000000)
												{
													num6 = num10 / 1000000;
													num10 -= num6 * 1000000;
												}
												if (num10 >= 10000)
												{
													num7 = num10 / 10000;
													num10 -= num7 * 10000;
												}
												if (num10 >= 100)
												{
													num8 = num10 / 100;
													num10 -= num8 * 100;
												}
												if (num10 >= 1)
												{
													num9 = num10;
												}
												if (num6 > 0)
												{
													object obj = text3;
													text3 = string.Concat(new object[]
													{
														obj,
														num6,
														" ",
														Lang.inter[15],
														" "
													});
												}
												if (num7 > 0)
												{
													object obj2 = text3;
													text3 = string.Concat(new object[]
													{
														obj2,
														num7,
														" ",
														Lang.inter[16],
														" "
													});
												}
												if (num8 > 0)
												{
													object obj3 = text3;
													text3 = string.Concat(new object[]
													{
														obj3,
														num8,
														" ",
														Lang.inter[17],
														" "
													});
												}
												if (num9 > 0)
												{
													object obj4 = text3;
													text3 = string.Concat(new object[]
													{
														obj4,
														num9,
														" ",
														Lang.inter[18],
														" "
													});
												}
												float num11 = (float)Main.mouseTextColor / 255f;
												if (num6 > 0)
												{
													textColor = new Color((int)((byte)(220f * num11)), (int)((byte)(220f * num11)), (int)((byte)(198f * num11)), (int)Main.mouseTextColor);
												}
												else
												{
													if (num7 > 0)
													{
														textColor = new Color((int)((byte)(224f * num11)), (int)((byte)(201f * num11)), (int)((byte)(92f * num11)), (int)Main.mouseTextColor);
													}
													else
													{
														if (num8 > 0)
														{
															textColor = new Color((int)((byte)(181f * num11)), (int)((byte)(192f * num11)), (int)((byte)(193f * num11)), (int)Main.mouseTextColor);
														}
														else
														{
															if (num9 > 0)
															{
																textColor = new Color((int)((byte)(246f * num11)), (int)((byte)(138f * num11)), (int)((byte)(96f * num11)), (int)Main.mouseTextColor);
															}
														}
													}
												}
												text = Lang.inter[54] + " (" + text3 + ")";
												if (num10 == 0)
												{
													text = Lang.inter[54];
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
			int num12 = 180 + (Main.screenWidth - 800) / 2;
			int num13 = 130 + num2 * 30;
			float scale = 0.9f;
			if (Main.mouseX > num12 && (float)Main.mouseX < (float)num12 + Main.fontMouseText.MeasureString(text).X && Main.mouseY > num13 && (float)Main.mouseY < (float)num13 + Main.fontMouseText.MeasureString(text).Y)
			{
				Main.player[Main.myPlayer].mouseInterface = true;
				scale = 1.1f;
				if (!Main.npcChatFocus2)
				{
					Main.PlaySound(12, -1, -1, 1);
				}
				Main.npcChatFocus2 = true;
				Main.player[Main.myPlayer].releaseUseItem = false;
			}
			else
			{
				if (Main.npcChatFocus2)
				{
					Main.PlaySound(12, -1, -1, 1);
				}
				Main.npcChatFocus2 = false;
			}
			Vector2 origin = Main.fontMouseText.MeasureString(text) * 0.5f;
			Utils.DrawBorderStringFourWay(Main.spriteBatch, Main.fontMouseText, text, (float)num12 + origin.X, (float)num13 + origin.Y, textColor, Color.Black, origin, scale);
			string text4 = Lang.inter[52];
			textColor = new Color(num, (int)((double)num / 1.1), num / 2, num);
			num12 = num12 + (int)Main.fontMouseText.MeasureString(text).X + 20;
			int num14 = num12 + (int)Main.fontMouseText.MeasureString(text4).X;
			num13 = 130 + num2 * 30;
			scale = 0.9f;
			if (Main.mouseX > num12 && (float)Main.mouseX < (float)num12 + Main.fontMouseText.MeasureString(text4).X && Main.mouseY > num13 && (float)Main.mouseY < (float)num13 + Main.fontMouseText.MeasureString(text4).Y)
			{
				scale = 1.1f;
				if (!Main.npcChatFocus1)
				{
					Main.PlaySound(12, -1, -1, 1);
				}
				Main.npcChatFocus1 = true;
				Main.player[Main.myPlayer].releaseUseItem = false;
				Main.player[Main.myPlayer].controlUseItem = false;
			}
			else
			{
				if (Main.npcChatFocus1)
				{
					Main.PlaySound(12, -1, -1, 1);
				}
				Main.npcChatFocus1 = false;
			}
			origin = Main.fontMouseText.MeasureString(text4) * 0.5f;
			Utils.DrawBorderStringFourWay(Main.spriteBatch, Main.fontMouseText, text4, (float)num12 + origin.X, (float)num13 + origin.Y, textColor, Color.Black, origin, scale);
			if (text2 != "")
			{
				num12 = num14 + (int)Main.fontMouseText.MeasureString(text2).X / 3;
				num13 = 130 + num2 * 30;
				scale = 0.9f;
				if (Main.mouseX > num12 && (float)Main.mouseX < (float)num12 + Main.fontMouseText.MeasureString(text2).X && Main.mouseY > num13 && (float)Main.mouseY < (float)num13 + Main.fontMouseText.MeasureString(text2).Y)
				{
					Main.player[Main.myPlayer].mouseInterface = true;
					scale = 1.1f;
					if (!Main.npcChatFocus3)
					{
						Main.PlaySound(12, -1, -1, 1);
					}
					Main.npcChatFocus3 = true;
					Main.player[Main.myPlayer].releaseUseItem = false;
				}
				else
				{
					if (Main.npcChatFocus3)
					{
						Main.PlaySound(12, -1, -1, 1);
					}
					Main.npcChatFocus3 = false;
				}
				origin = Main.fontMouseText.MeasureString(text2) * 0.5f;
				Utils.DrawBorderStringFourWay(Main.spriteBatch, Main.fontMouseText, text2, (float)num12 + origin.X, (float)num13 + origin.Y, textColor, Color.Black, origin, scale);
			}
			if (Main.mouseLeft && Main.mouseLeftRelease)
			{
				Main.mouseLeftRelease = false;
				Main.player[Main.myPlayer].releaseUseItem = false;
				Main.player[Main.myPlayer].mouseInterface = true;
				if (Main.npcChatFocus1)
				{
					Main.player[Main.myPlayer].talkNPC = -1;
					Main.player[Main.myPlayer].sign = -1;
					Main.npcChatCornerItem = 0;
					Main.editSign = false;
					Main.npcChatText = "";
					Main.PlaySound(11, -1, -1, 1);
					return;
				}
				if (Main.npcChatFocus2)
				{
					if (Main.player[Main.myPlayer].sign != -1)
					{
						if (!Main.editSign)
						{
							Main.PlaySound(12, -1, -1, 1);
							Main.editSign = true;
							Main.clrInput();
							return;
						}
						Main.PlaySound(12, -1, -1, 1);
						int num15 = Main.player[Main.myPlayer].sign;
						Sign.TextSign(num15, Main.npcChatText);
						Main.editSign = false;
						if (Main.netMode == 1)
						{
							NetMessage.SendData(47, -1, -1, "", num15, 0f, 0f, 0f, 0);
							return;
						}
					}
					else
					{
						if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 369)
						{
							Main.npcChatCornerItem = 0;
							Main.PlaySound(12, -1, -1, 1);
							bool flag = false;
							if (!Main.anglerQuestFinished && !Main.anglerWhoFinishedToday.Contains(Main.player[Main.myPlayer].name))
							{
								int num16 = Main.player[Main.myPlayer].FindItem(Main.anglerQuestItemNetIDs[Main.anglerQuest]);
								if (num16 != -1)
								{
									Main.player[Main.myPlayer].inventory[num16].stack--;
									if (Main.player[Main.myPlayer].inventory[num16].stack <= 0)
									{
										Main.player[Main.myPlayer].inventory[num16] = new Item();
									}
									flag = true;
									Main.PlaySound(24, -1, -1, 1);
									Main.player[Main.myPlayer].anglerQuestsFinished++;
									Main.player[Main.myPlayer].GetAnglerReward();
								}
							}
							Main.npcChatText = Lang.AnglerQuestChat(flag);
							if (flag)
							{
								Main.anglerQuestFinished = true;
								if (Main.netMode == 1)
								{
									NetMessage.SendData(75, -1, -1, "", 0, 0f, 0f, 0f, 0);
									return;
								}
								Main.anglerWhoFinishedToday.Add(Main.player[Main.myPlayer].name);
								return;
							}
						}
						else
						{
							if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 17)
							{
								Main.playerInventory = true;
								Main.npcChatText = "";
								Main.npcShop = 1;
								this.shop[Main.npcShop].SetupShop(Main.npcShop);
								Main.PlaySound(12, -1, -1, 1);
								return;
							}
							if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 19)
							{
								Main.playerInventory = true;
								Main.npcChatText = "";
								Main.npcShop = 2;
								this.shop[Main.npcShop].SetupShop(Main.npcShop);
								Main.PlaySound(12, -1, -1, 1);
								return;
							}
							if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 124)
							{
								Main.playerInventory = true;
								Main.npcChatText = "";
								Main.npcShop = 8;
								this.shop[Main.npcShop].SetupShop(Main.npcShop);
								Main.PlaySound(12, -1, -1, 1);
								return;
							}
							if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 142)
							{
								Main.playerInventory = true;
								Main.npcChatText = "";
								Main.npcShop = 9;
								this.shop[Main.npcShop].SetupShop(Main.npcShop);
								Main.PlaySound(12, -1, -1, 1);
								return;
							}
							if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 353)
							{
								Main.playerInventory = true;
								Main.npcChatText = "";
								Main.npcShop = 18;
								this.shop[Main.npcShop].SetupShop(Main.npcShop);
								Main.PlaySound(12, -1, -1, 1);
								return;
							}
							if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 368)
							{
								Main.playerInventory = true;
								Main.npcChatText = "";
								Main.npcShop = 19;
								this.shop[Main.npcShop].SetupShop(Main.npcShop);
								Main.PlaySound(12, -1, -1, 1);
								return;
							}
							if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 37)
							{
								if (Main.netMode == 0)
								{
									NPC.SpawnSkeletron();
								}
								else
								{
									NetMessage.SendData(51, -1, -1, "", Main.myPlayer, 1f, 0f, 0f, 0);
								}
								Main.npcChatText = "";
								return;
							}
							if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 20)
							{
								Main.playerInventory = true;
								Main.npcChatText = "";
								Main.npcShop = 3;
								this.shop[Main.npcShop].SetupShop(Main.npcShop);
								Main.PlaySound(12, -1, -1, 1);
								return;
							}
							if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 38)
							{
								Main.playerInventory = true;
								Main.npcChatText = "";
								Main.npcShop = 4;
								this.shop[Main.npcShop].SetupShop(Main.npcShop);
								Main.PlaySound(12, -1, -1, 1);
								return;
							}
							if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 54)
							{
								Main.playerInventory = true;
								Main.npcChatText = "";
								Main.npcShop = 5;
								this.shop[Main.npcShop].SetupShop(Main.npcShop);
								Main.PlaySound(12, -1, -1, 1);
								return;
							}
							if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 107)
							{
								Main.playerInventory = true;
								Main.npcChatText = "";
								Main.npcShop = 6;
								this.shop[Main.npcShop].SetupShop(Main.npcShop);
								Main.PlaySound(12, -1, -1, 1);
								return;
							}
							if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 108)
							{
								Main.playerInventory = true;
								Main.npcChatText = "";
								Main.npcShop = 7;
								this.shop[Main.npcShop].SetupShop(Main.npcShop);
								Main.PlaySound(12, -1, -1, 1);
								return;
							}
							if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 160)
							{
								Main.playerInventory = true;
								Main.npcChatText = "";
								Main.npcShop = 10;
								this.shop[Main.npcShop].SetupShop(Main.npcShop);
								Main.PlaySound(12, -1, -1, 1);
								return;
							}
							if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 178)
							{
								Main.playerInventory = true;
								Main.npcChatText = "";
								Main.npcShop = 11;
								this.shop[Main.npcShop].SetupShop(Main.npcShop);
								Main.PlaySound(12, -1, -1, 1);
								return;
							}
							if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 207)
							{
								Main.playerInventory = true;
								Main.npcChatText = "";
								Main.npcShop = 12;
								this.shop[Main.npcShop].SetupShop(Main.npcShop);
								Main.PlaySound(12, -1, -1, 1);
								return;
							}
							if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 208)
							{
								Main.playerInventory = true;
								Main.npcChatText = "";
								Main.npcShop = 13;
								this.shop[Main.npcShop].SetupShop(Main.npcShop);
								Main.PlaySound(12, -1, -1, 1);
								return;
							}
							if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 209)
							{
								Main.playerInventory = true;
								Main.npcChatText = "";
								Main.npcShop = 14;
								this.shop[Main.npcShop].SetupShop(Main.npcShop);
								Main.PlaySound(12, -1, -1, 1);
								return;
							}
							if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 227)
							{
								Main.playerInventory = true;
								Main.npcChatText = "";
								Main.npcShop = 15;
								this.shop[Main.npcShop].SetupShop(Main.npcShop);
								Main.PlaySound(12, -1, -1, 1);
								return;
							}
							if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 228)
							{
								Main.playerInventory = true;
								Main.npcChatText = "";
								Main.npcShop = 16;
								this.shop[Main.npcShop].SetupShop(Main.npcShop);
								Main.PlaySound(12, -1, -1, 1);
								return;
							}
							if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 229)
							{
								Main.playerInventory = true;
								Main.npcChatText = "";
								Main.npcShop = 17;
								this.shop[Main.npcShop].SetupShop(Main.npcShop);
								Main.PlaySound(12, -1, -1, 1);
								return;
							}
							if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 22)
							{
								Main.PlaySound(12, -1, -1, 1);
								Main.HelpText();
								return;
							}
							if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 18)
							{
								Main.PlaySound(12, -1, -1, 1);
								if (num4 > 0)
								{
									if (Main.player[Main.myPlayer].BuyItem(num4))
									{
										Main.PlaySound(2, -1, -1, 4);
										Main.player[Main.myPlayer].HealEffect(Main.player[Main.myPlayer].statLifeMax2 - Main.player[Main.myPlayer].statLife, true);
										if ((double)Main.player[Main.myPlayer].statLife < (double)Main.player[Main.myPlayer].statLifeMax2 * 0.25)
										{
											Main.npcChatText = Lang.dialog(227, false);
										}
										else
										{
											if ((double)Main.player[Main.myPlayer].statLife < (double)Main.player[Main.myPlayer].statLifeMax2 * 0.5)
											{
												Main.npcChatText = Lang.dialog(228, false);
											}
											else
											{
												if ((double)Main.player[Main.myPlayer].statLife < (double)Main.player[Main.myPlayer].statLifeMax2 * 0.75)
												{
													Main.npcChatText = Lang.dialog(229, false);
												}
												else
												{
													Main.npcChatText = Lang.dialog(230, false);
												}
											}
										}
										Main.player[Main.myPlayer].statLife = Main.player[Main.myPlayer].statLifeMax2;
										for (int k = 0; k < 22; k++)
										{
											int num17 = Main.player[Main.myPlayer].buffType[k];
											if (Main.debuff[num17] && Main.player[Main.myPlayer].buffTime[k] > 0 && num17 != 28 && num17 != 34 && num17 != 87 && num17 != 89 && num17 != 21 && num17 != 86)
											{
												Main.player[Main.myPlayer].DelBuff(k);
											}
										}
										return;
									}
									int num18 = Main.rand.Next(3);
									if (num18 == 0)
									{
										Main.npcChatText = Lang.dialog(52, false);
									}
									if (num18 == 1)
									{
										Main.npcChatText = Lang.dialog(53, false);
									}
									if (num18 == 2)
									{
										Main.npcChatText = Lang.dialog(54, false);
										return;
									}
								}
								else
								{
									int num19 = Main.rand.Next(3);
									if (num19 == 0)
									{
										Main.npcChatText = Lang.dialog(55, false);
									}
									if (num19 == 1)
									{
										Main.npcChatText = Lang.dialog(56, false);
									}
									if (num19 == 2)
									{
										Main.npcChatText = Lang.dialog(57, false);
										return;
									}
								}
							}
						}
					}
				}
				else
				{
					if (Main.npcChatFocus3 && Main.player[Main.myPlayer].talkNPC >= 0)
					{
						if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 20)
						{
							Main.PlaySound(12, -1, -1, 1);
							Main.npcChatText = Lang.evilGood();
							return;
						}
						if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 22)
						{
							Main.playerInventory = true;
							Main.npcChatText = "";
							Main.PlaySound(12, -1, -1, 1);
							Main.craftGuide = true;
							return;
						}
						if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 107)
						{
							Main.playerInventory = true;
							Main.npcChatText = "";
							Main.PlaySound(12, -1, -1, 1);
							Main.reforge = true;
							return;
						}
						if (Main.npc[Main.player[Main.myPlayer].talkNPC].type == 353)
						{
							Main.OpenHairWindow();
						}
					}
				}
			}
		}
Ejemplo n.º 5
0
		protected void DrawItem(Item item)
		{
			int arg_22_0 = (int)((double)item.position.X + (double)item.width * 0.5) / 16;
			int arg_28_0 = Lighting.offScreenTiles;
			int arg_4B_0 = (int)((double)item.position.Y + (double)item.height * 0.5) / 16;
			int arg_51_0 = Lighting.offScreenTiles;
			Color color = Lighting.GetColor((int)((double)item.position.X + (double)item.width * 0.5) / 16, (int)((double)item.position.Y + (double)item.height * 0.5) / 16);
			if (!Main.gamePaused && base.IsActive && ((item.type >= 71 && item.type <= 74) || item.type == 58 || item.type == 109) && color.R > 60)
			{
				float num = (float)Main.rand.Next(500) - (Math.Abs(item.velocity.X) + Math.Abs(item.velocity.Y)) * 10f;
				if (num < (float)(color.R / 50))
				{
					int num2 = Dust.NewDust(item.position, item.width, item.height, 43, 0f, 0f, 254, default(Color), 0.5f);
					Main.dust[num2].velocity *= 0f;
				}
			}
			float rotation = item.velocity.X * 0.2f;
			float num3 = 1f;
			Color alpha = item.GetAlpha(color);
			if (item.type == 662 || item.type == 663)
			{
				alpha.R = (byte)Main.DiscoR;
				alpha.G = (byte)Main.DiscoG;
				alpha.B = (byte)Main.DiscoB;
				alpha.A = 255;
			}
			if (item.type == 520 || item.type == 521 || item.type == 547 || item.type == 548 || item.type == 549)
			{
				num3 = Main.essScale;
				alpha.R = (byte)((float)alpha.R * num3);
				alpha.G = (byte)((float)alpha.G * num3);
				alpha.B = (byte)((float)alpha.B * num3);
				alpha.A = (byte)((float)alpha.A * num3);
			}
			else
			{
				if (item.type == 58 || item.type == 184)
				{
					num3 = Main.essScale * 0.25f + 0.75f;
					alpha.R = (byte)((float)alpha.R * num3);
					alpha.G = (byte)((float)alpha.G * num3);
					alpha.B = (byte)((float)alpha.B * num3);
					alpha.A = (byte)((float)alpha.A * num3);
				}
			}
			float num4 = (float)(item.height - Main.itemTexture[item.type].Height);
			float num5 = (float)(item.width / 2 - Main.itemTexture[item.type].Width / 2);
			if (item.type >= 1522 && item.type <= 1527)
			{
				Main.spriteBatch.Draw(Main.itemTexture[item.type], new Vector2(item.position.X - Main.screenPosition.X + (float)(Main.itemTexture[item.type].Width / 2) + num5, item.position.Y - Main.screenPosition.Y + (float)(Main.itemTexture[item.type].Height / 2) + num4 + 2f), new Rectangle?(new Rectangle(0, 0, Main.itemTexture[item.type].Width, Main.itemTexture[item.type].Height)), new Color(250, 250, 250, (int)(Main.mouseTextColor / 2)), rotation, new Vector2((float)(Main.itemTexture[item.type].Width / 2), (float)(Main.itemTexture[item.type].Height / 2)), (float)Main.mouseTextColor / 1000f + 0.8f, SpriteEffects.None, 0f);
				return;
			}
			Main.spriteBatch.Draw(Main.itemTexture[item.type], new Vector2(item.position.X - Main.screenPosition.X + (float)(Main.itemTexture[item.type].Width / 2) + num5, item.position.Y - Main.screenPosition.Y + (float)(Main.itemTexture[item.type].Height / 2) + num4 + 2f), new Rectangle?(new Rectangle(0, 0, Main.itemTexture[item.type].Width, Main.itemTexture[item.type].Height)), alpha, rotation, new Vector2((float)(Main.itemTexture[item.type].Width / 2), (float)(Main.itemTexture[item.type].Height / 2)), num3, SpriteEffects.None, 0f);
			if (item.color != default(Color))
			{
				Main.spriteBatch.Draw(Main.itemTexture[item.type], new Vector2(item.position.X - Main.screenPosition.X + (float)(Main.itemTexture[item.type].Width / 2) + num5, item.position.Y - Main.screenPosition.Y + (float)(Main.itemTexture[item.type].Height / 2) + num4 + 2f), new Rectangle?(new Rectangle(0, 0, Main.itemTexture[item.type].Width, Main.itemTexture[item.type].Height)), item.GetColor(color), rotation, new Vector2((float)(Main.itemTexture[item.type].Width / 2), (float)(Main.itemTexture[item.type].Height / 2)), num3, SpriteEffects.None, 0f);
			}
		}
        static void DrawItem(Item item, SpriteBatch sb, Vector2 position, float rotation,
			Vector2 origin, Vector2 scale, SpriteEffects effects, float layerDepth, Color? tint = null)
        {
            sb.Draw(item.GetTexture(), position, item.GetAlpha(tint ?? Color.White));

            if (item.color != default(Color))
                sb.Draw(item.GetTexture(), position, null, ComposeColour(item, tint), rotation, origin, scale, effects, layerDepth);
        }