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

◆ GetPickaxeDamage()

int Terraria.Player.GetPickaxeDamage ( int x,
int y,
int pickPower,
int hitBufferIndex,
Tile tileTarget )
inlineprivate

Definition at line 50368 of file Player.cs.

50369 {
50370 int num = 0;
50371 if (Main.tileNoFail[tileTarget.type])
50372 {
50373 num = 100;
50374 }
50375 num = ((!Main.tileDungeon[tileTarget.type] && tileTarget.type != 25 && tileTarget.type != 58 && tileTarget.type != 117 && tileTarget.type != 203) ? ((tileTarget.type == 85) ? ((!Main.getGoodWorld) ? (num + pickPower / 3) : (num + pickPower / 4)) : ((tileTarget.type != 48 && tileTarget.type != 232) ? ((tileTarget.type == 226) ? (num + pickPower / 4) : ((tileTarget.type != 107 && tileTarget.type != 221) ? ((tileTarget.type != 108 && tileTarget.type != 222) ? ((tileTarget.type == 111 || tileTarget.type == 223) ? (num + pickPower / 4) : ((tileTarget.type != 211) ? (num + pickPower) : (num + pickPower / 5))) : (num + pickPower / 3)) : (num + pickPower / 2))) : (num + pickPower * 2))) : (num + pickPower / 2));
50376 if (tileTarget.type == 211 && pickPower < 200)
50377 {
50378 num = 0;
50379 }
50380 if ((tileTarget.type == 25 || tileTarget.type == 203) && pickPower < 65)
50381 {
50382 num = 0;
50383 }
50384 else if (tileTarget.type == 117 && pickPower < 65)
50385 {
50386 num = 0;
50387 }
50388 else if (tileTarget.type == 37 && pickPower < 50)
50389 {
50390 num = 0;
50391 }
50392 else if ((tileTarget.type == 22 || tileTarget.type == 204) && (double)y > Main.worldSurface && pickPower < 55)
50393 {
50394 num = 0;
50395 }
50396 else if (tileTarget.type == 56 && pickPower < 55)
50397 {
50398 num = 0;
50399 }
50400 else if (tileTarget.type == 77 && pickPower < 65 && y >= Main.UnderworldLayer)
50401 {
50402 num = 0;
50403 }
50404 else if (tileTarget.type == 58 && pickPower < 65)
50405 {
50406 num = 0;
50407 }
50408 else if ((tileTarget.type == 226 || tileTarget.type == 237) && pickPower < 210)
50409 {
50410 num = 0;
50411 }
50412 else if (tileTarget.type == 137 && pickPower < 210)
50413 {
50414 int num2 = tileTarget.frameY / 18;
50415 if ((uint)(num2 - 1) <= 3u)
50416 {
50417 num = 0;
50418 }
50419 }
50420 else if (Main.tileDungeon[tileTarget.type] && pickPower < 100 && (double)y > Main.worldSurface)
50421 {
50422 if ((double)x < (double)Main.maxTilesX * 0.35 || (double)x > (double)Main.maxTilesX * 0.65)
50423 {
50424 num = 0;
50425 }
50426 }
50427 else if (tileTarget.type == 107 && pickPower < 100)
50428 {
50429 num = 0;
50430 }
50431 else if (tileTarget.type == 108 && pickPower < 110)
50432 {
50433 num = 0;
50434 }
50435 else if (tileTarget.type == 111 && pickPower < 150)
50436 {
50437 num = 0;
50438 }
50439 else if (tileTarget.type == 221 && pickPower < 100)
50440 {
50441 num = 0;
50442 }
50443 else if (tileTarget.type == 222 && pickPower < 110)
50444 {
50445 num = 0;
50446 }
50447 else if (tileTarget.type == 223 && pickPower < 150)
50448 {
50449 num = 0;
50450 }
50451 if (tileTarget.type == 147 || tileTarget.type == 0 || tileTarget.type == 40 || tileTarget.type == 53 || tileTarget.type == 57 || tileTarget.type == 59 || tileTarget.type == 123 || tileTarget.type == 224 || tileTarget.type == 397)
50452 {
50453 num += pickPower;
50454 }
50455 if (tileTarget.type == 404)
50456 {
50457 num += 5;
50458 }
50459 if (tileTarget.type == 165 || Main.tileRope[tileTarget.type] || tileTarget.type == 199)
50460 {
50461 num = 100;
50462 }
50463 if (tileTarget.type == 128 || tileTarget.type == 269)
50464 {
50465 if (tileTarget.frameX == 18 || tileTarget.frameX == 54)
50466 {
50467 x--;
50468 tileTarget = Main.tile[x, y];
50470 }
50471 if (tileTarget.frameX >= 100)
50472 {
50473 num = 0;
50474 Main.blockMouse = true;
50475 }
50476 }
50477 if (tileTarget.type == 334)
50478 {
50479 if (tileTarget.frameY == 0)
50480 {
50481 y++;
50482 tileTarget = Main.tile[x, y];
50484 }
50485 if (tileTarget.frameY == 36)
50486 {
50487 y--;
50488 tileTarget = Main.tile[x, y];
50490 }
50491 int frameX = tileTarget.frameX;
50492 bool flag = frameX >= 5000;
50493 bool flag2 = false;
50494 if (!flag)
50495 {
50496 int num3 = frameX / 18;
50497 num3 %= 3;
50498 x -= num3;
50499 tileTarget = Main.tile[x, y];
50500 if (tileTarget.frameX >= 5000)
50501 {
50502 flag = true;
50503 }
50504 }
50505 if (flag)
50506 {
50507 frameX = tileTarget.frameX;
50508 int num4 = 0;
50509 while (frameX >= 5000)
50510 {
50511 frameX -= 5000;
50512 num4++;
50513 }
50514 if (num4 != 0)
50515 {
50516 flag2 = true;
50517 }
50518 }
50519 if (flag2)
50520 {
50521 num = 0;
50522 Main.blockMouse = true;
50523 }
50524 }
50525 return num;
50526 }
void UpdatePosition(int tileId, int x, int y)
Definition HitTile.cs:167
HitTile hitTile
Definition Player.cs:1323

References Terraria.Tile.frameX, Terraria.Tile.frameY, Terraria.Main.getGoodWorld, Terraria.Main.maxTilesX, Terraria.Main.tile, Terraria.Main.tileDungeon, Terraria.Main.tileNoFail, Terraria.Main.tileRope, Terraria.Tile.type, Terraria.Main.UnderworldLayer, and Terraria.Main.worldSurface.