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

◆ SmashAltar()

static void Terraria.WorldGen.SmashAltar ( int i,
int j )
inlinestatic

Definition at line 40277 of file WorldGen.cs.

40278 {
40279 if (Main.netMode == 1 || !Main.hardMode || noTileActions || gen)
40280 {
40281 return;
40282 }
40283 int num = altarCount % 3;
40284 int num2 = altarCount / 3 + 1;
40285 double num3 = (double)Main.maxTilesX / 4200.0;
40286 int num4 = 1 - num;
40287 num3 = num3 * 310.0 - (double)(85 * num);
40288 num3 *= 0.85;
40289 num3 /= (double)num2;
40290 bool flag = false;
40291 if (Main.drunkWorld)
40292 {
40293 if (SavedOreTiers.Adamantite == 111)
40294 {
40295 SavedOreTiers.Adamantite = 223;
40296 }
40297 else if (SavedOreTiers.Adamantite == 223)
40298 {
40299 SavedOreTiers.Adamantite = 111;
40300 }
40301 }
40302 switch (num)
40303 {
40304 case 0:
40305 {
40306 if (SavedOreTiers.Cobalt == -1)
40307 {
40308 flag = true;
40309 SavedOreTiers.Cobalt = 107;
40310 if (genRand.Next(2) == 0)
40311 {
40312 SavedOreTiers.Cobalt = 221;
40313 }
40314 }
40315 int num6 = 12;
40316 if (SavedOreTiers.Cobalt == 221)
40317 {
40318 num6 += 9;
40319 num3 *= 0.8999999761581421;
40320 }
40321 if (Main.netMode == 0)
40322 {
40323 Main.NewText(Lang.misc[num6].Value, 50, byte.MaxValue, 130);
40324 }
40325 else if (Main.netMode == 2)
40326 {
40327 ChatHelper.BroadcastChatMessage(NetworkText.FromKey(Lang.misc[num6].Key), new Color(50, 255, 130));
40328 }
40329 num = SavedOreTiers.Cobalt;
40330 num3 *= 1.0499999523162842;
40331 break;
40332 }
40333 case 1:
40334 {
40335 if (Main.drunkWorld)
40336 {
40337 if (SavedOreTiers.Mythril == 108)
40338 {
40339 SavedOreTiers.Mythril = 222;
40340 }
40341 else if (SavedOreTiers.Mythril == 222)
40342 {
40343 SavedOreTiers.Mythril = 108;
40344 }
40345 }
40346 if (SavedOreTiers.Mythril == -1)
40347 {
40348 flag = true;
40349 SavedOreTiers.Mythril = 108;
40350 if (genRand.Next(2) == 0)
40351 {
40352 SavedOreTiers.Mythril = 222;
40353 }
40354 }
40355 int num7 = 13;
40356 if (SavedOreTiers.Mythril == 222)
40357 {
40358 num7 += 9;
40359 num3 *= 0.8999999761581421;
40360 }
40361 if (Main.netMode == 0)
40362 {
40363 Main.NewText(Lang.misc[num7].Value, 50, byte.MaxValue, 130);
40364 }
40365 else if (Main.netMode == 2)
40366 {
40367 ChatHelper.BroadcastChatMessage(NetworkText.FromKey(Lang.misc[num7].Key), new Color(50, 255, 130));
40368 }
40369 num = SavedOreTiers.Mythril;
40370 break;
40371 }
40372 default:
40373 {
40374 if (Main.drunkWorld)
40375 {
40376 if (SavedOreTiers.Cobalt == 107)
40377 {
40378 SavedOreTiers.Cobalt = 221;
40379 }
40380 else if (SavedOreTiers.Cobalt == 221)
40381 {
40382 SavedOreTiers.Cobalt = 107;
40383 }
40384 }
40385 if (SavedOreTiers.Adamantite == -1)
40386 {
40387 flag = true;
40388 SavedOreTiers.Adamantite = 111;
40389 if (genRand.Next(2) == 0)
40390 {
40391 SavedOreTiers.Adamantite = 223;
40392 }
40393 }
40394 int num5 = 14;
40395 if (SavedOreTiers.Adamantite == 223)
40396 {
40397 num5 += 9;
40398 num3 *= 0.8999999761581421;
40399 }
40400 if (Main.netMode == 0)
40401 {
40402 Main.NewText(Lang.misc[num5].Value, 50, byte.MaxValue, 130);
40403 }
40404 else if (Main.netMode == 2)
40405 {
40406 ChatHelper.BroadcastChatMessage(NetworkText.FromKey(Lang.misc[num5].Key), new Color(50, 255, 130));
40407 }
40408 num = SavedOreTiers.Adamantite;
40409 break;
40410 }
40411 }
40412 if (flag)
40413 {
40414 NetMessage.SendData(7);
40415 }
40416 for (int k = 0; (double)k < num3; k++)
40417 {
40418 int i2 = genRand.Next(100, Main.maxTilesX - 100);
40419 double num8 = Main.worldSurface;
40420 if (num == 108 || num == 222)
40421 {
40422 num8 = Main.rockLayer;
40423 }
40424 if (num == 111 || num == 223)
40425 {
40426 num8 = (Main.rockLayer + Main.rockLayer + (double)Main.maxTilesY) / 3.0;
40427 }
40428 int j2 = genRand.Next((int)num8, Main.maxTilesY - 150);
40429 if (Main.remixWorld)
40430 {
40431 double num9 = Main.maxTilesX - 350;
40432 if (num == 108 || num == 222)
40433 {
40434 num9 = (Main.rockLayer + Main.rockLayer + (double)Main.maxTilesY - 350.0) / 3.0;
40435 }
40436 if (num == 111 || num == 223)
40437 {
40438 num9 = Main.rockLayer - 25.0;
40439 }
40440 j2 = genRand.Next((int)Main.worldSurface + 15, (int)num9);
40441 }
40442 if (Main.tenthAnniversaryWorld)
40443 {
40444 OreRunner(i2, j2, genRand.Next(5, 11 + num4), genRand.Next(5, 11 + num4), (ushort)num);
40445 }
40446 else
40447 {
40448 OreRunner(i2, j2, genRand.Next(5, 9 + num4), genRand.Next(5, 9 + num4), (ushort)num);
40449 }
40450 }
40451 if (Main.netMode != 1)
40452 {
40453 int num10 = Main.rand.Next(2) + 1;
40454 for (int l = 0; l < num10; l++)
40455 {
40456 NPC.SpawnOnPlayer(Player.FindClosest(new Vector2(i * 16, j * 16), 16, 16), 82);
40457 }
40458 }
40459 altarCount++;
40461 }
static void BroadcastChatMessage(NetworkText text, Color color, int excludedPlayer=-1)
Definition ChatHelper.cs:46
static NetworkText FromKey(string key, params object[] substitutions)
static void OreRunner(int i, int j, double strength, int steps, ushort type)
static volatile bool gen
Definition WorldGen.cs:972
static UnifiedRandom genRand
Definition WorldGen.cs:1215
static bool noTileActions
Definition WorldGen.cs:966
static int altarCount
Definition WorldGen.cs:978

References Terraria.WorldGen.SavedOreTiers.Adamantite, Terraria.Chat.ChatHelper.BroadcastChatMessage(), Terraria.WorldGen.SavedOreTiers.Cobalt, Terraria.Main.drunkWorld, Terraria.Player.FindClosest(), Terraria.Localization.NetworkText.FromKey(), Terraria.Main.hardMode, Terraria.Main.maxTilesX, Terraria.Main.maxTilesY, Terraria.Lang.misc, Terraria.WorldGen.SavedOreTiers.Mythril, Terraria.Main.netMode, Terraria.Main.NewText(), Terraria.GameContent.Achievements.AchievementsHelper.NotifyProgressionEvent(), Terraria.Main.rand, Terraria.Main.remixWorld, Terraria.Main.rockLayer, Terraria.NetMessage.SendData(), Terraria.NPC.SpawnOnPlayer(), Terraria.Main.tenthAnniversaryWorld, and Terraria.Main.worldSurface.