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

◆ ScaleStats_ApplyMultiplayerStats()

void Terraria.NPC.ScaleStats_ApplyMultiplayerStats ( int numPlayers,
float balance,
float boost,
float bossAdjustment )
inlineprivate

Definition at line 12357 of file NPC.cs.

12358 {
12359 int num = numPlayers - 1;
12360 if (type == 5)
12361 {
12362 lifeMax = (int)((float)lifeMax * 0.75f * bossAdjustment);
12363 }
12364 if (type == 4)
12365 {
12366 lifeMax = (int)((double)lifeMax * 0.65 * (double)balance * (double)bossAdjustment);
12367 }
12368 if (type >= 13 && type <= 15)
12369 {
12370 lifeMax = (int)((double)lifeMax * 0.7 * (double)balance * (double)bossAdjustment);
12371 if (type == 13)
12372 {
12373 damage = (int)((double)damage * 1.1);
12374 }
12375 if (type == 14)
12376 {
12377 damage = (int)((double)damage * 0.8);
12378 }
12379 if (type == 15)
12380 {
12381 damage = (int)((double)damage * 0.8);
12382 }
12383 scale *= 1.2f;
12384 defense += 2;
12385 }
12386 if (type == 266 || type == 267)
12387 {
12388 lifeMax = (int)((double)lifeMax * 0.85 * (double)balance * (double)bossAdjustment);
12389 damage = (int)((double)damage * 0.9);
12390 scale *= 1.05f;
12391 for (float num2 = 1f; num2 < balance; num2 += 0.34f)
12392 {
12393 if ((double)knockBackResist < 0.1)
12394 {
12395 knockBackResist = 0f;
12396 break;
12397 }
12398 knockBackResist *= 0.8f;
12399 }
12400 }
12401 if (type == 50)
12402 {
12403 lifeMax = (int)((double)lifeMax * 0.7 * (double)balance * (double)bossAdjustment);
12404 damage = (int)((double)damage * 0.8);
12405 }
12406 if (type == 471)
12407 {
12408 lifeMax = (int)((double)lifeMax * 0.85 * (double)(balance * 2f + 1f) / 3.0);
12409 }
12410 if (type == 472)
12411 {
12412 lifeMax = (int)((double)lifeMax * 0.85 * (double)(balance + 1f) / 2.0);
12413 damage = (int)((double)damage * 0.8);
12414 }
12415 if (type == 222)
12416 {
12417 lifeMax = (int)((double)lifeMax * 0.7 * (double)balance * (double)bossAdjustment);
12418 damage = (int)((double)damage * 0.9);
12419 }
12420 if (type == 210 || type == 211)
12421 {
12422 lifeMax = (int)((double)lifeMax * 0.75);
12423 }
12424 if (type == 35)
12425 {
12426 lifeMax = (int)((float)lifeMax * balance * bossAdjustment);
12427 damage = (int)((double)damage * 1.1);
12428 }
12429 else if (type == 36)
12430 {
12431 lifeMax = (int)((double)lifeMax * 1.3 * (double)balance * (double)bossAdjustment);
12432 damage = (int)((double)damage * 1.1);
12433 }
12434 if (type == 668)
12435 {
12436 lifeMax = (int)((double)lifeMax * 0.85 * (double)balance * (double)bossAdjustment);
12437 damage = damage;
12438 }
12439 if (type == 113 || type == 114)
12440 {
12441 defense += 6;
12442 lifeMax = (int)((double)lifeMax * 0.7 * (double)balance * (double)bossAdjustment);
12443 damage = (int)((double)damage * 1.5);
12444 }
12445 else if (type == 115)
12446 {
12447 lifeMax = (int)((double)lifeMax * 0.7 * (double)balance);
12448 if (numPlayers > 4)
12449 {
12450 knockBackResist = 0f;
12451 }
12452 else if (numPlayers > 1)
12453 {
12454 knockBackResist *= 1f - boost;
12455 }
12456 defense += 6;
12457 }
12458 else if (type == 116)
12459 {
12460 lifeMax = (int)((double)lifeMax * 0.7 * (double)balance);
12461 if (numPlayers > 4)
12462 {
12463 knockBackResist = 0f;
12464 }
12465 else if (numPlayers > 1)
12466 {
12467 knockBackResist *= 1f - boost;
12468 }
12469 }
12470 else if (type == 117 || type == 118 || type == 119)
12471 {
12472 lifeMax = (int)((double)lifeMax * 0.8);
12473 }
12474 if (type == 657)
12475 {
12476 lifeMax = (int)((float)lifeMax * 0.8f * balance * bossAdjustment);
12477 }
12478 if (type >= 658 && type <= 660)
12479 {
12480 lifeMax = (int)((float)lifeMax * 0.75f * balance * bossAdjustment);
12481 }
12482 if (type >= 134 && type <= 136)
12483 {
12484 lifeMax = (int)((double)lifeMax * 0.75 * (double)balance * (double)bossAdjustment);
12485 if (type == 134)
12486 {
12487 damage *= 2;
12488 }
12489 if (type == 135)
12490 {
12491 damage = (int)((double)damage * 0.85);
12492 }
12493 if (type == 136)
12494 {
12495 damage = (int)((double)damage * 0.85);
12496 }
12497 scale *= 1.05f;
12498 }
12499 else if (type == 139)
12500 {
12501 lifeMax = (int)((double)lifeMax * 0.75 * (double)(balance * 2f + 1f) / 3.0);
12502 damage = (int)((double)damage * 0.8);
12503 scale *= 1.05f;
12504 }
12505 if (type >= 127 && type <= 131)
12506 {
12507 lifeMax = (int)((double)lifeMax * 0.75 * (double)balance * (double)bossAdjustment);
12508 damage = (int)((double)damage * 0.85);
12509 }
12510 if (type >= 125 && type <= 126)
12511 {
12512 lifeMax = (int)((double)lifeMax * 0.75 * (double)balance * (double)bossAdjustment);
12513 damage = (int)((double)damage * 0.85);
12514 }
12515 if (type == 262)
12516 {
12517 lifeMax = (int)((double)lifeMax * 0.7 * (double)balance * (double)bossAdjustment);
12518 damage = (int)((double)damage * 1.15);
12519 }
12520 else if (type == 264)
12521 {
12522 lifeMax = (int)((float)lifeMax * balance * bossAdjustment);
12523 damage = (int)((double)damage * 1.15);
12524 }
12525 if (type == 636)
12526 {
12527 lifeMax = (int)((double)lifeMax * 0.7 * (double)balance * (double)bossAdjustment);
12528 damage = (int)((double)damage * 1.15);
12529 }
12530 if (type >= 245 && type <= 249)
12531 {
12532 lifeMax = (int)((double)lifeMax * 0.75 * (double)balance * (double)bossAdjustment);
12533 damage = (int)((double)damage * 0.8);
12534 }
12535 if (type == 370)
12536 {
12537 lifeMax = (int)((double)lifeMax * 0.65 * (double)balance * (double)bossAdjustment);
12538 damage = (int)((double)damage * 0.7);
12539 }
12540 else if (type == 371 || type == 372 || type == 373)
12541 {
12542 if (type != 371)
12543 {
12544 lifeMax = (int)((double)lifeMax * 0.75);
12545 }
12546 damage = (int)((double)damage * 0.75);
12547 }
12548 if (type == 439 || type == 440 || (type >= 454 && type <= 459) || type == 522 || type == 523)
12549 {
12550 if (type != 522)
12551 {
12552 lifeMax = (int)((float)lifeMax * 0.75f * balance * bossAdjustment);
12553 }
12554 damage = (int)((double)damage * 0.75);
12555 }
12556 if (type == 397 || type == 396 || type == 398)
12557 {
12558 lifeMax = (int)((double)lifeMax * 0.75 * (double)balance * (double)bossAdjustment);
12559 damage = (int)((double)damage * 0.75);
12560 }
12561 if (type == 551)
12562 {
12563 lifeMax = (int)((double)lifeMax * 0.75 * (double)balance * (double)bossAdjustment);
12564 damage = (int)((double)damage * 0.65);
12565 }
12567 {
12568 int num3 = 7;
12569 float num4 = (balance * (float)(num3 - 1) + 1f) / (float)num3;
12570 lifeMax = (int)((float)lifeMax * num4 * bossAdjustment);
12571 }
12572 float num5 = 1f + (float)num * 0.2f;
12573 switch (type)
12574 {
12575 case 305:
12576 case 306:
12577 case 307:
12578 case 308:
12579 case 309:
12580 case 310:
12581 case 311:
12582 case 312:
12583 case 313:
12584 case 314:
12585 case 326:
12586 case 329:
12587 case 330:
12588 lifeMax = (int)((double)lifeMax * 0.75 * (double)num5);
12589 damage = (int)((double)damage * 0.75);
12590 break;
12591 case 315:
12592 case 325:
12593 case 327:
12594 lifeMax = (int)((double)lifeMax * 0.65 * (double)bossAdjustment);
12595 damage = (int)((double)damage * 0.75);
12596 break;
12597 }
12598 switch (type)
12599 {
12600 case 338:
12601 case 339:
12602 case 340:
12603 case 341:
12604 case 342:
12605 case 343:
12606 case 347:
12607 case 348:
12608 case 349:
12609 case 350:
12610 case 351:
12611 case 352:
12612 lifeMax = (int)((double)lifeMax * 0.75 * (double)num5);
12613 damage = (int)((double)damage * 0.75);
12614 break;
12615 case 344:
12616 case 345:
12617 case 346:
12618 lifeMax = (int)((double)lifeMax * 0.65 * (double)bossAdjustment);
12619 damage = (int)((double)damage * 0.75);
12620 break;
12621 }
12622 if (Main.getGoodWorld)
12623 {
12624 if (type == 6 && AnyNPCs(13))
12625 {
12626 lifeMax = (int)((double)lifeMax * 1.5 * (double)bossAdjustment);
12627 defense += 2;
12628 }
12629 if (type == 32 && AnyNPCs(35))
12630 {
12631 lifeMax = (int)((double)lifeMax * 1.5 * (double)bossAdjustment);
12632 defense += 6;
12633 }
12634 if (type == 24 && AnyNPCs(113))
12635 {
12636 lifeMax = (int)((double)lifeMax * 1.5 * (double)bossAdjustment);
12637 defense += 10;
12638 }
12639 }
12641 defDamage = damage;
12642 life = lifeMax;
12643 }
static bool[] BelongsToInvasionOldOnesArmy
Definition NPCID.cs:4166
int defense
Definition NPC.cs:463
int damage
Definition NPC.cs:461
int lifeMax
Definition NPC.cs:479
int defDefense
Definition NPC.cs:467
float knockBackResist
Definition NPC.cs:495
float scale
Definition NPC.cs:493
static bool AnyNPCs(int Type)
Definition NPC.cs:86689
int type
Definition NPC.cs:445
int defDamage
Definition NPC.cs:465
int life
Definition NPC.cs:477

References Terraria.NPC.AnyNPCs(), Terraria.ID.NPCID.Sets.BelongsToInvasionOldOnesArmy, Terraria.NPC.damage, Terraria.NPC.defDamage, Terraria.NPC.defDefense, Terraria.NPC.defense, Terraria.Main.getGoodWorld, Terraria.NPC.knockBackResist, Terraria.NPC.life, Terraria.NPC.lifeMax, Terraria.NPC.scale, and Terraria.NPC.type.

Referenced by Terraria.NPC.ScaleStats().