TModLoader v1.4.4.9
TModLoader source code documentation
Loading...
Searching...
No Matches

◆ GetChat()

string Terraria.NPC.GetChat ( )
inline

Definition at line 111054 of file NPC.cs.

111055 {
111056 PreventJojaColaDialog = false;
111057 RerollDryadText = 0;
111058 Recipe.FindRecipes();
111059 bool flag = false;
111060 bool flag10 = false;
111061 bool flag11 = false;
111062 bool flag12 = false;
111063 bool flag13 = false;
111064 bool flag14 = false;
111065 bool flag15 = false;
111066 bool flag16 = false;
111067 bool flag17 = false;
111068 bool flag2 = false;
111069 bool flag3 = false;
111070 bool flag4 = false;
111071 bool flag5 = false;
111072 bool flag6 = false;
111073 bool flag7 = false;
111074 bool flag8 = false;
111075 bool flag9 = false;
111076 object obj = Lang.CreateDialogSubstitutionObject(this);
111077 for (int i = 0; i < 200; i++)
111078 {
111079 if (Main.npc[i].active)
111080 {
111081 if (Main.npc[i].type == 17)
111082 {
111083 flag = true;
111084 }
111085 else if (Main.npc[i].type == 18)
111086 {
111087 flag10 = true;
111088 }
111089 else if (Main.npc[i].type == 19)
111090 {
111091 flag11 = true;
111092 }
111093 else if (Main.npc[i].type == 20)
111094 {
111095 flag12 = true;
111096 }
111097 else if (Main.npc[i].type == 37)
111098 {
111099 flag13 = true;
111100 }
111101 else if (Main.npc[i].type == 38)
111102 {
111103 flag14 = true;
111104 }
111105 else if (Main.npc[i].type == 124)
111106 {
111107 flag15 = true;
111108 }
111109 else if (Main.npc[i].type == 107)
111110 {
111111 flag16 = true;
111112 }
111113 else if (Main.npc[i].type == 54)
111114 {
111115 flag17 = true;
111116 }
111117 else if (Main.npc[i].type == 160)
111118 {
111119 flag2 = true;
111120 }
111121 else if (Main.npc[i].type == 178)
111122 {
111123 flag3 = true;
111124 }
111125 else if (Main.npc[i].type == 229)
111126 {
111127 flag4 = true;
111128 }
111129 else if (Main.npc[i].type == 209)
111130 {
111131 flag5 = true;
111132 }
111133 else if (Main.npc[i].type == 208)
111134 {
111135 flag6 = true;
111136 }
111137 else if (Main.npc[i].type == 353)
111138 {
111139 flag7 = true;
111140 }
111141 else if (Main.npc[i].type == 22)
111142 {
111143 flag8 = true;
111144 }
111145 else if (Main.npc[i].type == 441)
111146 {
111147 flag9 = true;
111148 }
111149 }
111150 }
111151 string result = "";
111152 string specialEventText = "";
111153 if (type == 17)
111154 {
111155 result = (HasSpecialEventText("Merchant", out specialEventText) ? specialEventText : ((!downedBoss1 && Main.rand.Next(3) == 0) ? ((Main.player[Main.myPlayer].statLifeMax < 200) ? Lang.dialog(1) : (((int)Main.player[Main.myPlayer].statDefense > 10) ? Lang.dialog(3) : Lang.dialog(2))) : (Main.dayTime ? ((Main.time < 16200.0) ? (Main.rand.Next(3) switch
111156 {
111157 0 => Lang.dialog(4),
111158 1 => Lang.dialog(5),
111159 _ => Lang.dialog(6),
111160 }) : ((Main.time > 37800.0) ? (Main.rand.Next(3) switch
111161 {
111162 0 => Lang.dialog(7),
111163 1 => Lang.dialog(8),
111164 _ => Lang.dialog(9),
111165 }) : (Main.rand.Next(3) switch
111166 {
111167 0 => Lang.dialog(10),
111168 1 => Lang.dialog(11),
111169 _ => Lang.dialog(12),
111170 }))) : (Main.bloodMoon ? ((flag10 && flag15 && Main.rand.Next(3) == 0) ? Lang.dialog(13) : (Main.rand.Next(4) switch
111171 {
111172 0 => Lang.dialog(14),
111173 1 => Lang.dialog(15),
111174 2 => Lang.dialog(16),
111175 _ => Lang.dialog(17),
111176 })) : ((Main.time < 9720.0) ? ((Main.rand.Next(2) != 0) ? Lang.dialog(19) : Lang.dialog(18)) : ((Main.time > 22680.0) ? ((Main.rand.Next(2) != 0) ? Lang.dialog(21) : Lang.dialog(20)) : (Main.rand.Next(3) switch
111177 {
111178 0 => Lang.dialog(22),
111179 1 => Lang.dialog(23),
111180 _ => Lang.dialog(24),
111181 })))))));
111182 }
111183 else if (type == 18)
111184 {
111186 {
111188 }
111189 else if (Main.bloodMoon)
111190 {
111191 result = (((double)Main.player[Main.myPlayer].statLife < (double)Main.player[Main.myPlayer].statLifeMax2 * 0.66) ? (Main.rand.Next(3) switch
111192 {
111193 0 => Lang.dialog(25),
111194 1 => Lang.dialog(26),
111195 _ => Lang.dialog(27),
111196 }) : (Main.rand.Next(4) switch
111197 {
111198 0 => Lang.dialog(28),
111199 1 => Lang.dialog(29),
111200 2 => Lang.dialog(30),
111201 _ => Lang.dialog(31),
111202 }));
111203 }
111204 else if (Main.rand.Next(5) == 0 && Main.LocalPlayer.numberOfDeathsPVE > 1)
111205 {
111206 int numberOfDeathsPVE = Main.LocalPlayer.numberOfDeathsPVE;
111207 int num = 25;
111208 int num10 = 100;
111209 string text = "Low";
111210 if (numberOfDeathsPVE >= num10)
111211 {
111212 text = "High";
111213 }
111214 else if (numberOfDeathsPVE >= num)
111215 {
111216 text = "Medium";
111217 }
111218 result = Language.GetTextValueWith("NurseSpecialText.DeathCount" + text, obj);
111219 }
111220 else if (Main.rand.Next(3) == 0 && !downedBoss3)
111221 {
111222 result = Lang.dialog(32);
111223 }
111224 else if (flag14 && Main.rand.Next(4) == 0)
111225 {
111226 result = Lang.dialog(33);
111227 }
111228 else if (flag11 && Main.rand.Next(4) == 0)
111229 {
111230 result = Lang.dialog(34);
111231 }
111232 else if (flag8 && Main.rand.Next(4) == 0)
111233 {
111234 result = Lang.dialog(35);
111235 }
111236 else if ((double)Main.player[Main.myPlayer].statLife < (double)Main.player[Main.myPlayer].statLifeMax2 * 0.33)
111237 {
111238 result = Main.rand.Next(5) switch
111239 {
111240 0 => Lang.dialog(36),
111241 1 => Lang.dialog(37),
111242 2 => Lang.dialog(38),
111243 3 => Lang.dialog(39),
111244 _ => Lang.dialog(40),
111245 };
111246 }
111247 else if ((double)Main.player[Main.myPlayer].statLife < (double)Main.player[Main.myPlayer].statLifeMax2 * 0.66)
111248 {
111249 result = Main.rand.Next(7) switch
111250 {
111251 0 => Lang.dialog(41),
111252 1 => Lang.dialog(42),
111253 2 => Lang.dialog(43),
111254 3 => Lang.dialog(44),
111255 4 => Lang.dialog(45),
111256 5 => Lang.dialog(46),
111257 _ => Lang.dialog(47),
111258 };
111259 }
111260 else
111261 {
111262 LocalizedText[] array = Language.FindAll(Lang.CreateDialogFilter("NurseChatter.", obj));
111263 int num11 = Main.rand.Next(4 + array.Length);
111264 result = ((num11 >= 4) ? array[num11 - 4].FormatWith(obj) : (num11 switch
111265 {
111266 0 => Lang.dialog(48),
111267 1 => Lang.dialog(49),
111268 2 => Lang.dialog(50),
111269 _ => Lang.dialog(51),
111270 }));
111271 }
111272 }
111273 else if (type == 19)
111274 {
111275 result = (HasSpecialEventText("ArmsDealer", out specialEventText) ? specialEventText : ((flag8 && downedBoss3 && !Main.hardMode) ? Lang.dialog(58) : ((flag10 && Main.rand.Next(5) == 0) ? Lang.dialog(59) : ((flag10 && Main.rand.Next(5) == 0) ? Lang.dialog(60) : ((flag12 && Main.rand.Next(5) == 0) ? Lang.dialog(61) : ((flag14 && Main.rand.Next(5) == 0) ? Lang.dialog(62) : ((flag14 && Main.rand.Next(5) == 0) ? Lang.dialog(63) : (Main.bloodMoon ? ((Main.rand.Next(2) != 0) ? Lang.dialog(65) : Lang.dialog(64)) : (Main.rand.Next(3) switch
111276 {
111277 0 => Lang.dialog(66),
111278 1 => Lang.dialog(67),
111279 _ => Lang.dialog(68),
111280 })))))))));
111281 }
111282 else if (type == 20)
111283 {
111284 result = (HasSpecialEventText("Dryad", out specialEventText) ? specialEventText : ((DD2Event.DownedInvasionT1 && Main.rand.Next(6) == 0) ? ((!DD2Event.DownedInvasionT2) ? Language.GetTextValueWith("DryadSpecialText.AfterDD2Tier1", obj) : Language.GetTextValueWith("DryadSpecialText.AfterDD2Tier2", obj)) : ((!downedBoss2 && Main.rand.Next(3) == 0) ? ((!WorldGen.crimson) ? Lang.dialog(69) : Lang.dialog(332)) : ((flag11 && Main.rand.Next(6) == 0) ? Lang.dialog(70) : ((flag && Main.rand.Next(6) == 0) ? Lang.dialog(71) : ((flag13 && Main.rand.Next(6) == 0) ? Lang.dialog(72) : ((flag2 && Main.rand.Next(6) == 0) ? Lang.dialog(238) : (Main.bloodMoon ? (Main.rand.Next(4) switch
111285 {
111286 0 => Lang.dialog(73),
111287 1 => Lang.dialog(74),
111288 2 => Lang.dialog(75),
111289 _ => Lang.dialog(76),
111290 }) : (Main.rand.Next(5) switch
111291 {
111292 0 => (!WorldGen.crimson) ? Lang.dialog(77) : Lang.dialog(333),
111293 1 => Lang.dialog(78),
111294 2 => Lang.dialog(79),
111295 3 => Lang.dialog(80),
111296 _ => Lang.dialog(81),
111297 })))))))));
111298 if (Main.LocalPlayer.HasItem(5275))
111299 {
111300 result = Language.GetTextValue("StardewTalk.PlayerHasColaButIsNotHoldingIt");
111301 }
111302 }
111303 else if (type == 37)
111304 {
111305 result = ((!Main.dayTime || Main.remixWorld) ? ((Main.player[Main.myPlayer].ConsumedLifeCrystals < 10 || (int)Main.player[Main.myPlayer].statDefense < 10) ? (Main.rand.Next(4) switch
111306 {
111307 0 => Lang.dialog(85),
111308 1 => Lang.dialog(86),
111309 2 => Lang.dialog(87),
111310 _ => Lang.dialog(88),
111311 }) : (Main.rand.Next(4) switch
111312 {
111313 0 => Lang.dialog(89),
111314 1 => Lang.dialog(90),
111315 2 => Lang.dialog(91),
111316 _ => Lang.dialog(92),
111317 })) : (Main.rand.Next(3) switch
111318 {
111319 0 => Lang.dialog(82),
111320 1 => Lang.dialog(83),
111321 _ => Lang.dialog(84),
111322 }));
111323 }
111324 else if (type == 38)
111325 {
111326 result = (HasSpecialEventText("Demolitionist", out specialEventText) ? specialEventText : ((!downedBoss2 && Main.rand.Next(3) == 0) ? Lang.dialog(93) : (Main.bloodMoon ? (Main.rand.Next(3) switch
111327 {
111328 0 => Lang.dialog(94),
111329 1 => Lang.dialog(95),
111330 _ => Lang.dialog(96),
111331 }) : (((DD2Event.DownedInvasionT1 || DD2Event.Ongoing) && Main.rand.Next(5) == 0) ? Language.GetTextValueWith("DemolitionistSpecialText.AfterDD2Start", obj) : ((flag11 && Main.rand.Next(5) == 0) ? Lang.dialog(97) : ((flag11 && Main.rand.Next(5) == 0) ? Lang.dialog(98) : ((flag10 && Main.rand.Next(4) == 0) ? Lang.dialog(99) : ((flag12 && Main.rand.Next(4) == 0) ? Lang.dialog(100) : ((!Main.dayTime) ? (Main.rand.Next(4) switch
111332 {
111333 0 => Lang.dialog(101),
111334 1 => Lang.dialog(102),
111335 2 => Lang.dialog(103),
111336 _ => Lang.dialog(104),
111337 }) : (Main.rand.Next(5) switch
111338 {
111339 0 => Lang.dialog(105),
111340 1 => Lang.dialog(106),
111341 2 => Lang.dialog(107),
111342 3 => Lang.dialog(108),
111343 _ => Lang.dialog(109),
111344 }))))))))));
111345 }
111346 else if (type == 54)
111347 {
111348 result = (HasSpecialEventText("Clothier", out specialEventText) ? specialEventText : ((!flag15 && Main.rand.Next(2) == 0) ? Lang.dialog(110) : ((flag2 && Main.rand.Next(6) == 0) ? Lang.dialog(237) : (Main.bloodMoon ? Lang.dialog(111) : ((flag10 && Main.rand.Next(4) == 0) ? Lang.dialog(112) : ((Main.player[Main.myPlayer].head == 24) ? Lang.dialog(113) : (Main.rand.Next(6) switch
111349 {
111350 0 => Lang.dialog(114),
111351 1 => Lang.dialog(115),
111352 2 => Lang.dialog(116),
111353 3 => Lang.dialog(117),
111354 4 => Lang.dialog(118),
111355 _ => Lang.dialog(119),
111356 })))))));
111357 }
111358 else if (type == 105)
111359 {
111360 result = Lang.dialog(120);
111361 }
111362 else if (type == 107)
111363 {
111364 if (homeless)
111365 {
111366 result = Main.rand.Next(5) switch
111367 {
111368 0 => Lang.dialog(121),
111369 1 => Lang.dialog(122),
111370 2 => Lang.dialog(123),
111371 3 => Lang.dialog(124),
111372 _ => Lang.dialog(125),
111373 };
111374 }
111375 else if (HasSpecialEventText("GoblinTinkerer", out specialEventText))
111376 {
111378 }
111379 else if (flag15 && Main.rand.Next(5) == 0)
111380 {
111381 result = Lang.dialog(126);
111382 }
111383 else if (flag7 && Main.rand.Next(5) == 0)
111384 {
111385 result = Lang.dialog(309);
111386 }
111387 else
111388 {
111389 LocalizedText[] array2 = Language.FindAll(Lang.CreateDialogFilter("GoblinTinkererChatter.", obj));
111390 int num12 = Main.rand.Next(array2.Length + 5);
111391 result = ((num12 >= 5) ? array2[num12 - 5].FormatWith(obj) : ((!Main.dayTime) ? (num12 switch
111392 {
111393 0 => Lang.dialog(127),
111394 1 => Lang.dialog(128),
111395 2 => Lang.dialog(129),
111396 3 => Lang.dialog(130),
111397 _ => Lang.dialog(131),
111398 }) : (num12 switch
111399 {
111400 0 => Lang.dialog(132),
111401 1 => Lang.dialog(133),
111402 2 => Lang.dialog(134),
111403 3 => Lang.dialog(135),
111404 _ => Lang.dialog(136),
111405 })));
111406 }
111407 }
111408 else if (type == 106)
111409 {
111410 result = Lang.dialog(137);
111411 }
111412 else if (type == 108)
111413 {
111414 if (homeless)
111415 {
111416 int num13 = Main.rand.Next(3);
111417 if (num13 == 0)
111418 {
111419 result = Lang.dialog(138);
111420 }
111421 else if (num13 == 1 && !Main.player[Main.myPlayer].Male)
111422 {
111423 result = Lang.dialog(139);
111424 }
111425 else
111426 {
111427 switch (num13)
111428 {
111429 case 1:
111430 result = Lang.dialog(140);
111431 break;
111432 case 2:
111433 result = Lang.dialog(141);
111434 break;
111435 }
111436 }
111437 }
111439 {
111441 }
111442 else if (HasSpecialEventText("Wizard", out specialEventText))
111443 {
111445 }
111446 else if (DD2Event.DownedInvasionT1 && Main.rand.Next(6) == 0)
111447 {
111448 result = Language.GetTextValueWith("WizardSpecialText.AfterDD2Tier1", obj);
111449 }
111450 else if (Main.player[Main.myPlayer].Male && flag8 && Main.rand.Next(6) == 0)
111451 {
111452 result = Lang.dialog(142);
111453 }
111454 else if (Main.player[Main.myPlayer].Male && flag14 && Main.rand.Next(6) == 0)
111455 {
111456 result = Lang.dialog(143);
111457 }
111458 else if (Main.player[Main.myPlayer].Male && flag16 && Main.rand.Next(6) == 0)
111459 {
111460 result = Lang.dialog(144);
111461 }
111462 else if (!Main.player[Main.myPlayer].Male && flag10 && Main.rand.Next(6) == 0)
111463 {
111464 result = Lang.dialog(145);
111465 }
111466 else if (!Main.player[Main.myPlayer].Male && flag15 && Main.rand.Next(6) == 0)
111467 {
111468 result = Lang.dialog(146);
111469 }
111470 else if (!Main.player[Main.myPlayer].Male && flag12 && Main.rand.Next(6) == 0)
111471 {
111472 result = Lang.dialog(147);
111473 }
111474 else if (Main.dayTime)
111475 {
111476 result = Main.rand.Next(5) switch
111477 {
111478 0 => Lang.dialog(151),
111479 1 => Lang.dialog(152),
111480 2 => Lang.dialog(153),
111481 3 => Lang.dialog(154),
111482 _ => Lang.dialog(155),
111483 };
111484 }
111485 else
111486 {
111487 switch (Main.rand.Next(3))
111488 {
111489 case 0:
111490 result = Lang.dialog(148);
111491 break;
111492 case 1:
111493 result = Lang.dialog(149);
111494 break;
111495 case 2:
111496 result = Lang.dialog(150);
111497 break;
111498 }
111499 }
111500 }
111501 else if (type == 123)
111502 {
111503 result = Lang.dialog(156);
111504 }
111505 else if (type == 124)
111506 {
111507 if (homeless)
111508 {
111509 result = Main.rand.Next(4) switch
111510 {
111511 0 => Lang.dialog(157),
111512 1 => Lang.dialog(158),
111513 2 => Lang.dialog(159),
111514 _ => Lang.dialog(160),
111515 };
111516 }
111517 else if (HasSpecialEventText("Mechanic", out specialEventText))
111518 {
111520 }
111521 else if (Main.bloodMoon)
111522 {
111523 result = Main.rand.Next(4) switch
111524 {
111525 0 => Lang.dialog(161),
111526 1 => Lang.dialog(162),
111527 2 => Lang.dialog(163),
111528 _ => Lang.dialog(164),
111529 };
111530 }
111531 else if (flag16 && Main.rand.Next(6) == 0)
111532 {
111533 result = Lang.dialog(165);
111534 }
111535 else if (flag11 && Main.rand.Next(6) == 0)
111536 {
111537 result = Lang.dialog(166);
111538 }
111539 else
111540 {
111541 LocalizedText[] array3 = Language.FindAll(Lang.CreateDialogFilter("MechanicChatter.", obj));
111542 int num14 = Main.rand.Next(3 + array3.Length);
111543 result = ((num14 >= 3) ? array3[num14 - 3].FormatWith(obj) : (num14 switch
111544 {
111545 0 => Lang.dialog(167),
111546 1 => Lang.dialog(168),
111547 _ => Lang.dialog(169),
111548 }));
111549 }
111550 }
111551 else if (type == 22)
111552 {
111553 result = (HasSpecialEventText("Guide", out specialEventText) ? specialEventText : (Main.bloodMoon ? (Main.rand.Next(3) switch
111554 {
111555 0 => Lang.dialog(170),
111556 1 => Lang.dialog(171),
111557 _ => Lang.dialog(172),
111558 }) : ((LanternNight.LanternsUp && !downedMoonlord) ? Language.GetTextValue("GuideSpecialText.Lantern1") : ((LanternNight.LanternsUp && downedMoonlord) ? Language.GetTextValue("GuideSpecialText.Lantern2") : (Main.eclipse ? Language.GetTextValue("GuideSpecialText.Eclipse") : (Main.slimeRain ? Language.GetTextValue("GuideSpecialText.SlimeRain") : ((!Main.dayTime) ? Lang.dialog(173) : ((Main.hardMode && flag9 && Main.rand.Next(8) == 0) ? Language.GetTextValueWith("GuideChatter.Chatter_1", obj) : ((Main.hardMode && Main.rand.Next(8) == 0) ? Language.GetTextValue("GuideChatter.Chatter_2") : (Main.rand.Next(3) switch
111559 {
111560 0 => Lang.dialog(174),
111561 1 => Lang.dialog(175),
111562 _ => Lang.dialog(176),
111563 }))))))))));
111564 }
111565 else if (type == 142)
111566 {
111567 int num15 = Main.rand.Next(3);
111569 {
111571 }
111572 else
111573 {
111574 switch (num15)
111575 {
111576 case 0:
111577 result = Lang.dialog(224);
111578 break;
111579 case 1:
111580 result = Lang.dialog(225);
111581 break;
111582 case 2:
111583 result = Lang.dialog(226);
111584 break;
111585 }
111586 }
111587 }
111588 else if (type == 160)
111589 {
111590 int num16 = Main.rand.Next(6);
111591 if (HasSpecialEventText("Truffle", out specialEventText))
111592 {
111594 }
111595 else if (flag12 && Main.rand.Next(6) == 0)
111596 {
111597 result = Lang.dialog(232);
111598 }
111599 else if (flag17 && Main.rand.Next(6) == 0)
111600 {
111601 result = Lang.dialog(236);
111602 }
111603 else
111604 {
111605 switch (num16)
111606 {
111607 case 0:
111608 result = Lang.dialog(231);
111609 break;
111610 case 1:
111611 result = Lang.dialog(233);
111612 break;
111613 case 2:
111614 result = Lang.dialog(234);
111615 break;
111616 case 3:
111617 result = Lang.dialog(235);
111618 break;
111619 case 4:
111620 result = Lang.dialog(240);
111621 break;
111622 case 5:
111623 result = Lang.dialog(241);
111624 break;
111625 }
111626 }
111627 }
111628 else if (type == 178)
111629 {
111630 int num17 = Main.rand.Next(5);
111631 if (HasSpecialEventText("Steampunker", out specialEventText))
111632 {
111634 }
111635 else if (Main.bloodMoon && Main.rand.Next(3) == 0)
111636 {
111637 result = Lang.dialog(245);
111638 }
111639 else if (flag5 && Main.rand.Next(6) == 0)
111640 {
111641 result = Lang.dialog(246);
111642 }
111643 else if (flag4 && Main.rand.Next(6) == 0)
111644 {
111645 result = Lang.dialog(247);
111646 }
111647 else
111648 {
111649 switch (num17)
111650 {
111651 case 0:
111652 result = Lang.dialog(242);
111653 break;
111654 case 1:
111655 result = Lang.dialog(243);
111656 break;
111657 case 2:
111658 result = Lang.dialog(244);
111659 break;
111660 case 3:
111661 result = Lang.dialog(248);
111662 break;
111663 case 4:
111664 result = Lang.dialog(249);
111665 break;
111666 }
111667 }
111668 }
111669 else if (type == 207)
111670 {
111671 int num2 = Main.rand.Next(3);
111672 if (HasSpecialEventText("DyeTrader", out specialEventText))
111673 {
111675 }
111676 else if (flag4 && Main.rand.Next(6) == 0)
111677 {
111678 result = Lang.dialog(260);
111679 }
111680 else
111681 {
111682 switch (num2)
111683 {
111684 case 0:
111685 result = Lang.dialog(257);
111686 break;
111687 case 1:
111688 result = Lang.dialog(258);
111689 break;
111690 case 2:
111691 result = Lang.dialog(259);
111692 break;
111693 }
111694 }
111695 }
111696 else if (type == 208)
111697 {
111698 if (freeCake)
111699 {
111700 result = Language.GetTextValueWith("PartyGirlSpecialText.Cake" + Main.rand.Next(1, 4), obj);
111701 }
111702 else
111703 {
111704 int num3 = Main.rand.Next(7);
111705 if (HasSpecialEventText("PartyGirl", out specialEventText))
111706 {
111708 }
111709 else if (DD2Event.DownedInvasionT1 && Main.rand.Next(5) == 0)
111710 {
111711 result = Language.GetTextValueWith("PartyGirlSpecialText.AfterDD2Tier1", obj);
111712 }
111713 else if (Main.player[Main.myPlayer].Male && Main.rand.Next(5) == 0)
111714 {
111715 result = Lang.dialog(268);
111716 }
111717 else if (flag7 && Main.rand.Next(5) == 0)
111718 {
111719 result = Lang.dialog(310);
111720 }
111721 else
111722 {
111723 switch (num3)
111724 {
111725 case 0:
111726 result = Lang.dialog(265);
111727 break;
111728 case 1:
111729 result = Lang.dialog(266);
111730 break;
111731 case 2:
111732 result = Lang.dialog(267);
111733 break;
111734 case 3:
111735 result = Lang.dialog(269);
111736 break;
111737 case 4:
111738 result = Lang.dialog(270);
111739 break;
111740 case 5:
111741 result = Lang.dialog(271);
111742 break;
111743 case 6:
111744 result = Lang.dialog(272);
111745 break;
111746 }
111747 }
111748 }
111749 }
111750 else if (type == 209)
111751 {
111753 {
111755 }
111756 else if (flag4 && Main.rand.Next(6) == 0)
111757 {
111758 result = Lang.dialog(284);
111759 }
111760 else if (flag3 && Main.rand.Next(6) == 0)
111761 {
111762 result = Lang.dialog(283);
111763 }
111764 else
111765 {
111766 LocalizedText[] array4 = Language.FindAll(Lang.CreateDialogFilter("CyborgChatter.", obj));
111767 int num4 = Main.rand.Next(5 + array4.Length);
111768 if (num4 >= 5)
111769 {
111770 result = array4[num4 - 5].FormatWith(obj);
111771 }
111772 else
111773 {
111774 switch (num4)
111775 {
111776 case 0:
111777 result = Lang.dialog(280);
111778 break;
111779 case 1:
111780 result = Lang.dialog(281);
111781 break;
111782 case 2:
111783 result = Lang.dialog(282);
111784 break;
111785 case 3:
111786 result = Lang.dialog(285);
111787 break;
111788 case 4:
111789 result = Lang.dialog(286);
111790 break;
111791 }
111792 }
111793 }
111794 }
111795 else if (type == 227)
111796 {
111797 int num5 = Main.rand.Next(5);
111798 if (HasSpecialEventText("Painter", out specialEventText))
111799 {
111801 }
111802 else if (Main.hardMode && Main.rand.Next(7) == 0)
111803 {
111804 result = Lang.dialog(250);
111805 }
111806 else if (flag6 && Main.rand.Next(6) == 0)
111807 {
111808 result = Lang.dialog(251);
111809 }
111810 else
111811 {
111812 switch (num5)
111813 {
111814 case 0:
111815 result = Lang.dialog(252);
111816 break;
111817 case 1:
111818 result = Lang.dialog(253);
111819 break;
111820 case 2:
111821 result = Lang.dialog(254);
111822 break;
111823 case 3:
111824 result = Lang.dialog(255);
111825 break;
111826 case 4:
111827 result = Lang.dialog(256);
111828 break;
111829 }
111830 }
111831 }
111832 else if (type == 228)
111833 {
111834 int num6 = Main.rand.Next(4);
111835 if (HasSpecialEventText("WitchDoctor", out specialEventText))
111836 {
111838 }
111839 else if (flag10 && Main.rand.Next(4) == 0)
111840 {
111841 result = Lang.dialog(263);
111842 }
111843 else
111844 {
111845 switch (num6)
111846 {
111847 case 0:
111848 result = Lang.dialog(261);
111849 break;
111850 case 1:
111851 result = Lang.dialog(262);
111852 break;
111853 case 2:
111854 result = Lang.dialog(264);
111855 break;
111856 case 3:
111857 result = Language.GetTextValueWith("WitchDoctorSpecialText.AfterDD2Tier1", obj);
111858 break;
111859 }
111860 }
111861 }
111862 else if (type == 229)
111863 {
111864 LocalizedText[] array5 = Language.FindAll(Lang.CreateDialogFilter("PirateChatter.", obj));
111865 int num7 = Main.rand.Next(6 + array5.Length);
111866 if (num7 >= 6)
111867 {
111868 result = array5[num7 - 6].FormatWith(obj);
111869 }
111870 else if (HasSpecialEventText("Pirate", out specialEventText))
111871 {
111873 }
111874 else if (!Main.player[Main.myPlayer].Male && Main.rand.Next(5) == 0)
111875 {
111876 result = Lang.dialog(276);
111877 }
111878 else
111879 {
111880 switch (num7)
111881 {
111882 case 0:
111883 result = Lang.dialog(273);
111884 break;
111885 case 1:
111886 result = Lang.dialog(274);
111887 break;
111888 case 2:
111889 result = Lang.dialog(275);
111890 break;
111891 case 3:
111892 result = Lang.dialog(277);
111893 break;
111894 case 4:
111895 result = Lang.dialog(278);
111896 break;
111897 case 5:
111898 result = Lang.dialog(279);
111899 break;
111900 }
111901 }
111902 }
111903 else if (type == 354)
111904 {
111905 result = Lang.dialog(Main.rand.Next(315, 319));
111906 }
111907 else if (type == 353)
111908 {
111909 if (HasSpecialEventText("Stylist", out specialEventText))
111910 {
111912 }
111913 else if (Main.bloodMoon)
111914 {
111915 switch (Main.rand.Next(3))
111916 {
111917 case 0:
111918 result = Lang.dialog(304);
111919 break;
111920 case 1:
111921 result = Lang.dialog(305);
111922 break;
111923 case 2:
111924 result = Lang.dialog(306);
111925 break;
111926 }
111927 }
111928 else if (Main.dayTime && Main.time < 16200.0 && Main.rand.Next(3) == 0)
111929 {
111930 result = Lang.dialog(311);
111931 }
111932 else if (Main.player[Main.myPlayer].Male && Main.rand.Next(3) == 0)
111933 {
111934 switch (Main.rand.Next(2))
111935 {
111936 case 0:
111937 result = Lang.dialog(293);
111938 break;
111939 case 1:
111940 result = Lang.dialog(300);
111941 break;
111942 }
111943 }
111944 else if (!Main.player[Main.myPlayer].Male && Main.rand.Next(3) == 0)
111945 {
111946 switch (Main.rand.Next(3))
111947 {
111948 case 0:
111949 result = Lang.dialog(291);
111950 break;
111951 case 1:
111952 result = Lang.dialog(292);
111953 break;
111954 case 2:
111955 result = Lang.dialog(312);
111956 break;
111957 }
111958 }
111959 else if (flag6 && flag15 && flag10 && flag11 && Main.rand.Next(5) == 0)
111960 {
111961 result = Lang.dialog(307);
111962 }
111963 else if (flag6 && Main.rand.Next(5) == 0)
111964 {
111965 result = Lang.dialog(302);
111966 }
111967 else if (flag14 && Main.rand.Next(5) == 0)
111968 {
111969 result = Lang.dialog(303);
111970 }
111971 else if (flag5 && Main.rand.Next(5) == 0)
111972 {
111973 result = Lang.dialog(308);
111974 }
111975 else
111976 {
111977 LocalizedText[] array6 = Language.FindAll(Lang.CreateDialogFilter("StylistChatter.", obj));
111978 int num8 = ((Main.moonPhase < 3) ? 5 : 4);
111979 int num9 = Main.rand.Next(num8 + array6.Length);
111980 if (num9 >= num8)
111981 {
111982 result = array6[num9 - num8].FormatWith(obj);
111983 }
111984 else if (Main.moonPhase < 3)
111985 {
111986 switch (num9)
111987 {
111988 case 0:
111989 result = Lang.dialog(287);
111990 break;
111991 case 1:
111992 result = Lang.dialog(288);
111993 break;
111994 case 2:
111995 result = Lang.dialog(289);
111996 break;
111997 case 3:
111998 result = Lang.dialog(290);
111999 break;
112000 case 4:
112001 result = Lang.dialog(294);
112002 break;
112003 }
112004 }
112005 else if (Main.moonPhase < 6)
112006 {
112007 switch (num9)
112008 {
112009 case 0:
112010 result = Lang.dialog(295);
112011 break;
112012 case 1:
112013 result = Lang.dialog(296);
112014 break;
112015 case 2:
112016 result = Lang.dialog(297);
112017 break;
112018 case 3:
112019 result = Lang.dialog(298);
112020 break;
112021 }
112022 }
112023 else
112024 {
112025 switch (num9)
112026 {
112027 case 0:
112028 result = Lang.dialog(299);
112029 break;
112030 case 1:
112031 result = Lang.dialog(301);
112032 break;
112033 case 2:
112034 result = Lang.dialog(313);
112035 break;
112036 case 3:
112037 result = Lang.dialog(314);
112038 break;
112039 }
112040 }
112041 }
112042 }
112043 else if (type == 368)
112044 {
112045 result = (HasSpecialEventText("TravellingMerchant", out specialEventText) ? specialEventText : ((flag8 && Main.rand.Next(5) == 0) ? Lang.dialog(319) : ((flag && Main.rand.Next(5) == 0) ? Lang.dialog(320) : ((!flag17 || Main.rand.Next(5) != 0) ? Lang.dialog(Main.rand.Next(322, 331)) : Lang.dialog(321)))));
112046 }
112047 else if (type == 376)
112048 {
112049 result = Lang.dialog(Main.rand.Next(353, 356));
112050 }
112051 else if (type == 369)
112052 {
112053 result = ((Main.rand.Next(5) == 0 && Main.LocalPlayer.anglerQuestsFinished > 1) ? Lang.AnglerQuestCountChat(this) : (HasSpecialEventText("Angler", out specialEventText) ? specialEventText : ((!Main.bloodMoon) ? ((!Main.anglerQuestFinished) ? Lang.dialog(Main.rand.Next(334, 338)) : ((!flag12 || Main.rand.Next(5) != 0) ? Language.SelectRandom(Lang.CreateDialogFilter("AnglerChatter.", obj)).FormatWith(obj) : Lang.dialog(347))) : ((Main.rand.Next(3) == 0) ? Language.SelectRandom(Lang.CreateDialogFilter("AnglerSpecialText.BloodMoonFishing")).FormatWith(obj) : (Main.anglerQuestFinished ? Lang.dialog(Main.rand.Next(350, 353)) : Lang.dialog(Main.rand.Next(348, 350)))))));
112054 }
112055 else if (type == 453)
112056 {
112057 result = ((!HasSpecialEventText("SkeletonMerchant", out specialEventText)) ? Lang.dialog(Main.rand.Next(356, 364)) : specialEventText);
112058 }
112059 else if (type == 441)
112060 {
112061 result = (HasSpecialEventText("TaxCollector", out specialEventText) ? specialEventText : ((Main.rand.Next(6) == 0 && flag12) ? Lang.dialog(371) : ((Main.rand.Next(6) == 0 && flag11) ? Lang.dialog(372) : ((Main.rand.Next(6) == 0 && flag14) ? Lang.dialog(373) : ((!(Main.rand.Next(6) == 0 && flag)) ? Lang.dialog(Main.rand.Next(364, 370)) : Lang.dialog(374))))));
112062 }
112063 else if (type == 579)
112064 {
112065 result = Language.GetTextValue("BartenderSpecialText.FirstMeeting");
112066 }
112067 else if (type == 550)
112068 {
112069 result = ((!HasSpecialEventText("Bartender", out specialEventText)) ? Lang.BartenderChat(this) : specialEventText);
112070 }
112071 else if (type == 589)
112072 {
112073 result = ((Main.rand.Next(2) != 0) ? Language.GetTextValue("GolferSpecialText.FirstMeeting2") : Language.GetTextValue("GolferSpecialText.FirstMeeting1"));
112074 }
112075 else if (type == 588)
112076 {
112077 result = ((Main.rand.Next(3) != 0 && HasSpecialEventText("Golfer", out specialEventText)) ? specialEventText : ((Main.rand.Next(3) != 0) ? Lang.GolferChat(this) : Language.SelectRandom(Lang.CreateDialogFilter(((Main.LocalPlayer.golferScoreAccumulated >= 2000) ? "GolferQuestsChatterMaster" : ((Main.LocalPlayer.golferScoreAccumulated >= 1000) ? "GolferQuestsChatterJourneyman" : ((Main.LocalPlayer.golferScoreAccumulated < 500) ? "GolferQuestsChatterBeginner" : "GolferQuestsChatterApprentice"))) + ".")).FormatWith(obj)));
112078 }
112079 else if (type == 633)
112080 {
112081 result = ((ShouldBestiaryGirlBeLycantrope() || !HasSpecialEventText("BestiaryGirl", out specialEventText)) ? Lang.BestiaryGirlChat(this) : specialEventText);
112082 }
112083 else if (type == 663)
112084 {
112085 result = ((!HasSpecialEventText("Princess", out specialEventText)) ? Lang.PrincessChat(this) : specialEventText);
112086 }
112087 else if (type == 637)
112088 {
112089 result = ((!HasSpecialEventText("Cat", out specialEventText)) ? Lang.CatChat(this) : specialEventText);
112090 }
112091 else if (type == 638)
112092 {
112093 result = ((!HasSpecialEventText("Dog", out specialEventText)) ? Lang.DogChat(this) : specialEventText);
112094 }
112095 else if (type == 656)
112096 {
112097 result = ((!HasSpecialEventText("Bunny", out specialEventText)) ? Lang.BunnyChat(this) : specialEventText);
112098 }
112099 else if (NPCID.Sets.IsTownSlime[type])
112100 {
112101 result = ((!HasSpecialEventText("Slime", out specialEventText)) ? Lang.SlimeChat(this) : specialEventText);
112102 }
112103 NPCLoader.GetChat(this, ref result);
112104 return result;
112105 }
static bool[] IsTownSlime
If true for a given NPC type (F:Terraria.NPC.type), then that NPC is categorized as a town slime....
Definition NPCID.cs:232
static LocalizedText[] FindAll(Regex regex)
Definition Language.cs:86
static LocalizedText SelectRandom(LanguageSearchFilter filter, UnifiedRandom random=null)
Selects a single random LocalizedText that satisfies the filter parameter. Typically used with M:Ter...
Definition Language.cs:107
static string GetTextValue(string key)
Retrieves the text value for a specified localization key. The text returned will be for the currentl...
Definition Language.cs:35
static string GetTextValueWith(string key, object obj)
Definition Language.cs:65
Contains methods to access or retrieve localization values. The Localization Guideteaches more about ...
Definition Language.cs:12
Contains the localization value corresponding to a key for the current game language....
static void GetChat(NPC npc, ref string chat)
This serves as the central class from which NPC-related functions are carried out....
Definition NPCLoader.cs:26
bool ShouldBestiaryGirlBeLycantrope()
Definition NPC.cs:111041
bool HasLuckTextForWizard(out string specialEventText)
Definition NPC.cs:112112
static bool downedBoss2
Denotes whether or not the Eater of Worlds OR the Brain of Cthulhu have been defeated at least once i...
Definition NPC.cs:796
static bool downedBoss1
Denotes whether or not the Eye of Cthulhu has been defeated at least once in the current world.
Definition NPC.cs:790
static bool downedMoonlord
Denotes whether or not the Moon Lord has been defeated at least once in the current world.
Definition NPC.cs:887
static bool freeCake
Definition NPC.cs:540
static bool PreventJojaColaDialog
Definition NPC.cs:1276
int type
The NPC ID of this NPC. The NPC ID is a unique number assigned to each NPC loaded into the game....
Definition NPC.cs:990
static int RerollDryadText
Definition NPC.cs:1278
bool HasSpecialEventText(string specialTextCategoryKey, out string specialEventText)
Definition NPC.cs:112131
bool homeless
Definition NPC.cs:1178
static bool downedBoss3
Denotes whether or not Skeletron has been defeated at least once in the current world.
Definition NPC.cs:801

References Terraria.Lang.AnglerQuestCountChat(), Terraria.Main.anglerQuestFinished, Terraria.Lang.BartenderChat(), Terraria.Lang.BestiaryGirlChat(), Terraria.Main.bloodMoon, Terraria.Lang.BunnyChat(), Terraria.Lang.CatChat(), Terraria.Lang.CreateDialogFilter(), Terraria.Lang.CreateDialogSubstitutionObject(), Terraria.WorldGen.crimson, Terraria.Main.dayTime, Terraria.Lang.dialog(), Terraria.Lang.DogChat(), Terraria.GameContent.Events.DD2Event.DownedInvasionT1, Terraria.GameContent.Events.DD2Event.DownedInvasionT2, Terraria.Localization.Language.FindAll(), Terraria.Recipe.FindRecipes(), Terraria.ModLoader.NPCLoader.GetChat(), Terraria.Localization.Language.GetTextValue(), Terraria.Localization.Language.GetTextValueWith(), Terraria.Lang.GolferChat(), Terraria.Main.hardMode, Terraria.ID.NPCID.Sets.IsTownSlime, Terraria.Main.LocalPlayer, Terraria.Main.moonPhase, Terraria.Main.myPlayer, Terraria.Main.npc, Terraria.GameContent.Events.DD2Event.Ongoing, Terraria.Main.player, Terraria.Lang.PrincessChat(), Terraria.Main.rand, Terraria.Main.remixWorld, Terraria.Localization.Language.SelectRandom(), Terraria.Lang.SlimeChat(), and Terraria.Main.time.

+ Here is the call graph for this function: