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

◆ Difficulty_1_SpawnMonsterFromGate()

static void Terraria.GameContent.Events.DD2Event.Difficulty_1_SpawnMonsterFromGate ( Vector2 gateBottom)
inlinestaticprivate

Definition at line 994 of file DD2Event.cs.

995 {
996 int x = (int)gateBottom.X;
997 int y = (int)gateBottom.Y;
998 int num = 50;
999 int num2 = 6;
1000 if (NPC.waveNumber > 4)
1001 {
1002 num2 = 12;
1003 }
1004 else if (NPC.waveNumber > 3)
1005 {
1006 num2 = 8;
1007 }
1008 int num3 = 6;
1009 if (NPC.waveNumber > 4)
1010 {
1011 num3 = 8;
1012 }
1013 for (int i = 1; i < Main.CurrentFrameFlags.ActivePlayersCount; i++)
1014 {
1015 num = (int)((double)num * 1.3);
1016 num2 = (int)((double)num2 * 1.3);
1017 num3 = (int)((double)num3 * 1.3);
1018 }
1019 int num4 = 200;
1020 switch (NPC.waveNumber)
1021 {
1022 case 1:
1023 if (NPC.CountNPCS(552) + NPC.CountNPCS(555) < num)
1024 {
1025 num4 = NPC.NewNPC(GetSpawnSource_OldOnesArmy(), x, y, 552);
1026 }
1027 break;
1028 case 2:
1029 if (NPC.CountNPCS(552) + NPC.CountNPCS(555) < num)
1030 {
1031 num4 = ((Main.rand.Next(7) != 0) ? NPC.NewNPC(GetSpawnSource_OldOnesArmy(), x, y, 552) : NPC.NewNPC(GetSpawnSource_OldOnesArmy(), x, y, 555));
1032 }
1033 break;
1034 case 3:
1035 if (Main.rand.Next(6) == 0 && NPC.CountNPCS(561) < num2)
1036 {
1037 num4 = NPC.NewNPC(GetSpawnSource_OldOnesArmy(), x, y, 561);
1038 }
1039 else if (NPC.CountNPCS(552) + NPC.CountNPCS(555) < num)
1040 {
1041 num4 = ((Main.rand.Next(5) != 0) ? NPC.NewNPC(GetSpawnSource_OldOnesArmy(), x, y, 552) : NPC.NewNPC(GetSpawnSource_OldOnesArmy(), x, y, 555));
1042 }
1043 break;
1044 case 4:
1045 if (Main.rand.Next(12) == 0 && NPC.CountNPCS(558) < num3)
1046 {
1047 num4 = NPC.NewNPC(GetSpawnSource_OldOnesArmy(), x, y, 558);
1048 }
1049 else if (Main.rand.Next(5) == 0 && NPC.CountNPCS(561) < num2)
1050 {
1051 num4 = NPC.NewNPC(GetSpawnSource_OldOnesArmy(), x, y, 561);
1052 }
1053 else if (NPC.CountNPCS(552) + NPC.CountNPCS(555) < num)
1054 {
1055 num4 = ((Main.rand.Next(5) != 0) ? NPC.NewNPC(GetSpawnSource_OldOnesArmy(), x, y, 552) : NPC.NewNPC(GetSpawnSource_OldOnesArmy(), x, y, 555));
1056 }
1057 break;
1058 case 5:
1059 {
1061 if ((float)currentKillCount > (float)requiredKillCount * 0.5f && !NPC.AnyNPCs(564))
1062 {
1063 num4 = NPC.NewNPC(GetSpawnSource_OldOnesArmy(), x, y, 564);
1064 }
1065 if (Main.rand.Next(10) == 0 && NPC.CountNPCS(558) < num3)
1066 {
1067 num4 = NPC.NewNPC(GetSpawnSource_OldOnesArmy(), x, y, 558);
1068 }
1069 else if (Main.rand.Next(4) == 0 && NPC.CountNPCS(561) < num2)
1070 {
1071 num4 = NPC.NewNPC(GetSpawnSource_OldOnesArmy(), x, y, 561);
1072 }
1073 else if (NPC.CountNPCS(552) + NPC.CountNPCS(555) < num)
1074 {
1075 num4 = ((Main.rand.Next(4) != 0) ? NPC.NewNPC(GetSpawnSource_OldOnesArmy(), x, y, 552) : NPC.NewNPC(GetSpawnSource_OldOnesArmy(), x, y, 555));
1076 }
1077 break;
1078 }
1079 default:
1080 num4 = NPC.NewNPC(GetSpawnSource_OldOnesArmy(), x, y, 552);
1081 break;
1082 }
1083 if (Main.netMode == 2 && num4 < 200)
1084 {
1085 NetMessage.SendData(23, -1, -1, null, num4);
1086 }
1087 }
static void GetInvasionStatus(out int currentWave, out int requiredKillCount, out int currentKillCount, bool currentlyInCheckProgress=false)
Definition DD2Event.cs:485
static IEntitySource GetSpawnSource_OldOnesArmy()
Definition DD2Event.cs:1786

References Terraria.Main.CurrentFrameFlags.ActivePlayersCount, Terraria.NPC.AnyNPCs(), Terraria.NPC.CountNPCS(), Terraria.GameContent.Events.DD2Event.GetInvasionStatus(), Terraria.GameContent.Events.DD2Event.GetSpawnSource_OldOnesArmy(), Terraria.Main.netMode, Terraria.NPC.NewNPC(), Terraria.Main.rand, Terraria.NetMessage.SendData(), and Terraria.NPC.waveNumber.

Referenced by Terraria.GameContent.Events.DD2Event.SpawnMonsterFromGate().