40617 lines
2.1 MiB
40617 lines
2.1 MiB
using Microsoft.Xna.Framework;
|
|
using System;
|
|
namespace Terraria
|
|
{
|
|
public class NPC
|
|
{
|
|
public const int maxBuffs = 5;
|
|
public float teleportTime;
|
|
public static int immuneTime = 20;
|
|
public static int maxAI = 4;
|
|
public int netSpam;
|
|
public static bool noStream = false;
|
|
private static int spawnSpaceX = 3;
|
|
private static int spawnSpaceY = 3;
|
|
public float gfxOffY;
|
|
public float stepSpeed;
|
|
private static float gravity = 0.3f;
|
|
public bool teleporting;
|
|
private static int maxAttack = 20;
|
|
private static int[] attackNPC = new int[NPC.maxAttack];
|
|
private byte netStream;
|
|
private byte[] streamPlayer = new byte[255];
|
|
public Vector2[] oldPos = new Vector2[10];
|
|
public bool setFrameSize;
|
|
public static int golemBoss = -1;
|
|
public static int plantBoss = -1;
|
|
public static int crimsonBoss = -1;
|
|
public int netSkip;
|
|
public bool netAlways;
|
|
public int realLife = -1;
|
|
public static int sWidth = 1920;
|
|
public static int sHeight = 1080;
|
|
private static int spawnRangeX = (int)((double)(NPC.sWidth / 16) * 0.7);
|
|
private static int spawnRangeY = (int)((double)(NPC.sHeight / 16) * 0.7);
|
|
public static int safeRangeX = (int)((double)(NPC.sWidth / 16) * 0.52);
|
|
public static int safeRangeY = (int)((double)(NPC.sHeight / 16) * 0.52);
|
|
private static int activeRangeX = (int)((double)NPC.sWidth * 2.1);
|
|
private static int activeRangeY = (int)((double)NPC.sHeight * 2.1);
|
|
private static int townRangeX = NPC.sWidth;
|
|
private static int townRangeY = NPC.sHeight;
|
|
public float npcSlots = 1f;
|
|
private static bool noSpawnCycle = false;
|
|
private static int activeTime = 750;
|
|
private static int defaultSpawnRate = 600;
|
|
private static int defaultMaxSpawns = 5;
|
|
public bool wet;
|
|
public bool honeyWet;
|
|
public byte wetCount;
|
|
public bool lavaWet;
|
|
public int[] buffType = new int[5];
|
|
public int[] buffTime = new int[5];
|
|
public bool[] buffImmune = new bool[81];
|
|
public bool midas;
|
|
public bool ichor;
|
|
public bool onFire;
|
|
public bool onFire2;
|
|
public bool onFrostBurn;
|
|
public bool poisoned;
|
|
public bool venom;
|
|
public int lifeRegen;
|
|
public int lifeRegenCount;
|
|
public bool confused;
|
|
public static bool downedBoss1 = false;
|
|
public static bool downedBoss2 = false;
|
|
public static bool downedBoss3 = false;
|
|
public static bool downedQueenBee = false;
|
|
public static bool savedGoblin = false;
|
|
public static bool savedWizard = false;
|
|
public static bool savedMech = false;
|
|
public static bool downedGoblins = false;
|
|
public static bool downedFrost = false;
|
|
public static bool downedPirates = false;
|
|
public static bool downedClown = false;
|
|
public static bool downedPlantBoss = false;
|
|
public static bool downedGolemBoss = false;
|
|
public static bool downedMechBossAny = false;
|
|
public static bool downedMechBoss1 = false;
|
|
public static bool downedMechBoss2 = false;
|
|
public static bool downedMechBoss3 = false;
|
|
private static int spawnRate = NPC.defaultSpawnRate;
|
|
private static int maxSpawns = NPC.defaultMaxSpawns;
|
|
public int soundDelay;
|
|
public Vector2 position;
|
|
public Vector2 velocity;
|
|
public Vector2 oldPosition;
|
|
public Vector2 oldVelocity;
|
|
public int width;
|
|
public int height;
|
|
public bool active;
|
|
public int[] immune = new int[256];
|
|
public int direction = 1;
|
|
public int directionY = 1;
|
|
public int type;
|
|
public float[] ai = new float[NPC.maxAI];
|
|
public float[] localAI = new float[NPC.maxAI];
|
|
public int aiAction;
|
|
public int aiStyle;
|
|
public bool justHit;
|
|
public int timeLeft;
|
|
public int target = -1;
|
|
public int damage;
|
|
public int defense;
|
|
public int defDamage;
|
|
public int defDefense;
|
|
public int soundHit;
|
|
public int soundKilled;
|
|
public int life;
|
|
public int lifeMax;
|
|
public Rectangle targetRect;
|
|
public double frameCounter;
|
|
public Rectangle frame;
|
|
public string name;
|
|
public string displayName;
|
|
public Color color;
|
|
public int alpha;
|
|
public float scale = 1f;
|
|
public float knockBackResist = 1f;
|
|
public int oldDirection;
|
|
public int oldDirectionY;
|
|
public int oldTarget;
|
|
public int whoAmI;
|
|
public float rotation;
|
|
public bool noGravity;
|
|
public bool noTileCollide;
|
|
public bool netUpdate;
|
|
public bool netUpdate2;
|
|
public bool collideX;
|
|
public bool collideY;
|
|
public bool boss;
|
|
public int spriteDirection = -1;
|
|
public bool behindTiles;
|
|
public bool lavaImmune;
|
|
public float value;
|
|
public bool dontTakeDamage;
|
|
public int netID;
|
|
public bool townNPC;
|
|
public bool homeless;
|
|
public int homeTileX = -1;
|
|
public int homeTileY = -1;
|
|
public bool oldHomeless;
|
|
public int oldHomeTileX = -1;
|
|
public int oldHomeTileY = -1;
|
|
public bool friendly;
|
|
public bool closeDoor;
|
|
public int doorX;
|
|
public int doorY;
|
|
public int friendlyRegen;
|
|
public static void clrNames()
|
|
{
|
|
for (int i = 0; i < 301; i++)
|
|
{
|
|
Main.chrName[i] = "";
|
|
}
|
|
}
|
|
public static void setNames()
|
|
{
|
|
if (WorldGen.genRand == null)
|
|
{
|
|
WorldGen.genRand = new Random();
|
|
}
|
|
int num = WorldGen.genRand.Next(24);
|
|
string text;
|
|
if (num == 0)
|
|
{
|
|
text = "Molly";
|
|
}
|
|
else
|
|
{
|
|
if (num == 1)
|
|
{
|
|
text = "Amy";
|
|
}
|
|
else
|
|
{
|
|
if (num == 2)
|
|
{
|
|
text = "Claire";
|
|
}
|
|
else
|
|
{
|
|
if (num == 3)
|
|
{
|
|
text = "Emily";
|
|
}
|
|
else
|
|
{
|
|
if (num == 4)
|
|
{
|
|
text = "Katie";
|
|
}
|
|
else
|
|
{
|
|
if (num == 5)
|
|
{
|
|
text = "Madeline";
|
|
}
|
|
else
|
|
{
|
|
if (num == 6)
|
|
{
|
|
text = "Katelyn";
|
|
}
|
|
else
|
|
{
|
|
if (num == 7)
|
|
{
|
|
text = "Emma";
|
|
}
|
|
else
|
|
{
|
|
if (num == 8)
|
|
{
|
|
text = "Abigail";
|
|
}
|
|
else
|
|
{
|
|
if (num == 9)
|
|
{
|
|
text = "Carly";
|
|
}
|
|
else
|
|
{
|
|
if (num == 10)
|
|
{
|
|
text = "Jenna";
|
|
}
|
|
else
|
|
{
|
|
if (num == 11)
|
|
{
|
|
text = "Heather";
|
|
}
|
|
else
|
|
{
|
|
if (num == 12)
|
|
{
|
|
text = "Katherine";
|
|
}
|
|
else
|
|
{
|
|
if (num == 13)
|
|
{
|
|
text = "Caitlin";
|
|
}
|
|
else
|
|
{
|
|
if (num == 14)
|
|
{
|
|
text = "Kaitlin";
|
|
}
|
|
else
|
|
{
|
|
if (num == 15)
|
|
{
|
|
text = "Holly";
|
|
}
|
|
else
|
|
{
|
|
if (num == 16)
|
|
{
|
|
text = "Kaitlyn";
|
|
}
|
|
else
|
|
{
|
|
if (num == 17)
|
|
{
|
|
text = "Hannah";
|
|
}
|
|
else
|
|
{
|
|
if (num == 18)
|
|
{
|
|
text = "Kathryn";
|
|
}
|
|
else
|
|
{
|
|
if (num == 19)
|
|
{
|
|
text = "Lorraine";
|
|
}
|
|
else
|
|
{
|
|
if (num == 20)
|
|
{
|
|
text = "Helen";
|
|
}
|
|
else
|
|
{
|
|
if (num == 21)
|
|
{
|
|
text = "Kayla";
|
|
}
|
|
else
|
|
{
|
|
if (num == 22)
|
|
{
|
|
text = "Lisa";
|
|
}
|
|
else
|
|
{
|
|
text = "Allison";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Main.chrName[18] == "")
|
|
{
|
|
Main.chrName[18] = text;
|
|
}
|
|
num = WorldGen.genRand.Next(24);
|
|
if (num == 0)
|
|
{
|
|
text = "Shayna";
|
|
}
|
|
else
|
|
{
|
|
if (num == 1)
|
|
{
|
|
text = "Korrie";
|
|
}
|
|
else
|
|
{
|
|
if (num == 2)
|
|
{
|
|
text = "Ginger";
|
|
}
|
|
else
|
|
{
|
|
if (num == 3)
|
|
{
|
|
text = "Brooke";
|
|
}
|
|
else
|
|
{
|
|
if (num == 4)
|
|
{
|
|
text = "Jenny";
|
|
}
|
|
else
|
|
{
|
|
if (num == 5)
|
|
{
|
|
text = "Autumn";
|
|
}
|
|
else
|
|
{
|
|
if (num == 6)
|
|
{
|
|
text = "Nancy";
|
|
}
|
|
else
|
|
{
|
|
if (num == 7)
|
|
{
|
|
text = "Ella";
|
|
}
|
|
else
|
|
{
|
|
if (num == 8)
|
|
{
|
|
text = "Kayla";
|
|
}
|
|
else
|
|
{
|
|
if (num == 9)
|
|
{
|
|
text = "Selah";
|
|
}
|
|
else
|
|
{
|
|
if (num == 10)
|
|
{
|
|
text = "Sophia";
|
|
}
|
|
else
|
|
{
|
|
if (num == 11)
|
|
{
|
|
text = "Marshanna";
|
|
}
|
|
else
|
|
{
|
|
if (num == 12)
|
|
{
|
|
text = "Lauren";
|
|
}
|
|
else
|
|
{
|
|
if (num == 13)
|
|
{
|
|
text = "Trisha";
|
|
}
|
|
else
|
|
{
|
|
if (num == 14)
|
|
{
|
|
text = "Shirlena";
|
|
}
|
|
else
|
|
{
|
|
if (num == 15)
|
|
{
|
|
text = "Sheena";
|
|
}
|
|
else
|
|
{
|
|
if (num == 16)
|
|
{
|
|
text = "Ellen";
|
|
}
|
|
else
|
|
{
|
|
if (num == 17)
|
|
{
|
|
text = "Amy";
|
|
}
|
|
else
|
|
{
|
|
if (num == 18)
|
|
{
|
|
text = "Dawn";
|
|
}
|
|
else
|
|
{
|
|
if (num == 19)
|
|
{
|
|
text = "Susana";
|
|
}
|
|
else
|
|
{
|
|
if (num == 20)
|
|
{
|
|
text = "Meredith";
|
|
}
|
|
else
|
|
{
|
|
if (num == 21)
|
|
{
|
|
text = "Selene";
|
|
}
|
|
else
|
|
{
|
|
if (num == 22)
|
|
{
|
|
text = "Terra";
|
|
}
|
|
else
|
|
{
|
|
text = "Sally";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Main.chrName[124] == "")
|
|
{
|
|
Main.chrName[124] = text;
|
|
}
|
|
num = WorldGen.genRand.Next(24);
|
|
if (num == 0)
|
|
{
|
|
text = "DeShawn";
|
|
}
|
|
else
|
|
{
|
|
if (num == 1)
|
|
{
|
|
text = "DeAndre";
|
|
}
|
|
else
|
|
{
|
|
if (num == 2)
|
|
{
|
|
text = "Marquis";
|
|
}
|
|
else
|
|
{
|
|
if (num == 3)
|
|
{
|
|
text = "Darnell";
|
|
}
|
|
else
|
|
{
|
|
if (num == 4)
|
|
{
|
|
text = "Terrell";
|
|
}
|
|
else
|
|
{
|
|
if (num == 5)
|
|
{
|
|
text = "Malik";
|
|
}
|
|
else
|
|
{
|
|
if (num == 6)
|
|
{
|
|
text = "Trevon";
|
|
}
|
|
else
|
|
{
|
|
if (num == 7)
|
|
{
|
|
text = "Tyrone";
|
|
}
|
|
else
|
|
{
|
|
if (num == 8)
|
|
{
|
|
text = "Willie";
|
|
}
|
|
else
|
|
{
|
|
if (num == 9)
|
|
{
|
|
text = "Dominique";
|
|
}
|
|
else
|
|
{
|
|
if (num == 10)
|
|
{
|
|
text = "Demetrius";
|
|
}
|
|
else
|
|
{
|
|
if (num == 11)
|
|
{
|
|
text = "Reginald";
|
|
}
|
|
else
|
|
{
|
|
if (num == 12)
|
|
{
|
|
text = "Jamal";
|
|
}
|
|
else
|
|
{
|
|
if (num == 13)
|
|
{
|
|
text = "Maurice";
|
|
}
|
|
else
|
|
{
|
|
if (num == 14)
|
|
{
|
|
text = "Jalen";
|
|
}
|
|
else
|
|
{
|
|
if (num == 15)
|
|
{
|
|
text = "Darius";
|
|
}
|
|
else
|
|
{
|
|
if (num == 16)
|
|
{
|
|
text = "Xavier";
|
|
}
|
|
else
|
|
{
|
|
if (num == 17)
|
|
{
|
|
text = "Terrance";
|
|
}
|
|
else
|
|
{
|
|
if (num == 18)
|
|
{
|
|
text = "Andre";
|
|
}
|
|
else
|
|
{
|
|
if (num == 19)
|
|
{
|
|
text = "Dante";
|
|
}
|
|
else
|
|
{
|
|
if (num == 20)
|
|
{
|
|
text = "Brimst";
|
|
}
|
|
else
|
|
{
|
|
if (num == 21)
|
|
{
|
|
text = "Bronson";
|
|
}
|
|
else
|
|
{
|
|
if (num == 22)
|
|
{
|
|
text = "Tony";
|
|
}
|
|
else
|
|
{
|
|
text = "Darryl";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Main.chrName[19] == "")
|
|
{
|
|
Main.chrName[19] = text;
|
|
}
|
|
num = WorldGen.genRand.Next(35);
|
|
if (num == 0)
|
|
{
|
|
text = "Joe";
|
|
}
|
|
else
|
|
{
|
|
if (num == 1)
|
|
{
|
|
text = "Connor";
|
|
}
|
|
else
|
|
{
|
|
if (num == 2)
|
|
{
|
|
text = "Tanner";
|
|
}
|
|
else
|
|
{
|
|
if (num == 3)
|
|
{
|
|
text = "Wyatt";
|
|
}
|
|
else
|
|
{
|
|
if (num == 4)
|
|
{
|
|
text = "Cody";
|
|
}
|
|
else
|
|
{
|
|
if (num == 5)
|
|
{
|
|
text = "Levi";
|
|
}
|
|
else
|
|
{
|
|
if (num == 6)
|
|
{
|
|
text = "Luke";
|
|
}
|
|
else
|
|
{
|
|
if (num == 7)
|
|
{
|
|
text = "Jack";
|
|
}
|
|
else
|
|
{
|
|
if (num == 8)
|
|
{
|
|
text = "Scott";
|
|
}
|
|
else
|
|
{
|
|
if (num == 9)
|
|
{
|
|
text = "Logan";
|
|
}
|
|
else
|
|
{
|
|
if (num == 10)
|
|
{
|
|
text = "Cole";
|
|
}
|
|
else
|
|
{
|
|
if (num == 11)
|
|
{
|
|
text = "Asher";
|
|
}
|
|
else
|
|
{
|
|
if (num == 12)
|
|
{
|
|
text = "Bradley";
|
|
}
|
|
else
|
|
{
|
|
if (num == 13)
|
|
{
|
|
text = "Jacob";
|
|
}
|
|
else
|
|
{
|
|
if (num == 14)
|
|
{
|
|
text = "Garrett";
|
|
}
|
|
else
|
|
{
|
|
if (num == 15)
|
|
{
|
|
text = "Dylan";
|
|
}
|
|
else
|
|
{
|
|
if (num == 16)
|
|
{
|
|
text = "Maxwell";
|
|
}
|
|
else
|
|
{
|
|
if (num == 17)
|
|
{
|
|
text = "Steve";
|
|
}
|
|
else
|
|
{
|
|
if (num == 18)
|
|
{
|
|
text = "Brett";
|
|
}
|
|
else
|
|
{
|
|
if (num == 19)
|
|
{
|
|
text = "Andrew";
|
|
}
|
|
else
|
|
{
|
|
if (num == 20)
|
|
{
|
|
text = "Harley";
|
|
}
|
|
else
|
|
{
|
|
if (num == 21)
|
|
{
|
|
text = "Kyle";
|
|
}
|
|
else
|
|
{
|
|
if (num == 22)
|
|
{
|
|
text = "Jake";
|
|
}
|
|
else
|
|
{
|
|
if (num == 23)
|
|
{
|
|
text = "Ryan";
|
|
}
|
|
else
|
|
{
|
|
if (num == 24)
|
|
{
|
|
text = "Jeffrey";
|
|
}
|
|
else
|
|
{
|
|
if (num == 25)
|
|
{
|
|
text = "Seth";
|
|
}
|
|
else
|
|
{
|
|
if (num == 26)
|
|
{
|
|
text = "Marty";
|
|
}
|
|
else
|
|
{
|
|
if (num == 27)
|
|
{
|
|
text = "Brandon";
|
|
}
|
|
else
|
|
{
|
|
if (num == 28)
|
|
{
|
|
text = "Zach";
|
|
}
|
|
else
|
|
{
|
|
if (num == 29)
|
|
{
|
|
text = "Jeff";
|
|
}
|
|
else
|
|
{
|
|
if (num == 30)
|
|
{
|
|
text = "Daniel";
|
|
}
|
|
else
|
|
{
|
|
if (num == 31)
|
|
{
|
|
text = "Trent";
|
|
}
|
|
else
|
|
{
|
|
if (num == 32)
|
|
{
|
|
text = "Kevin";
|
|
}
|
|
else
|
|
{
|
|
if (num == 33)
|
|
{
|
|
text = "Brian";
|
|
}
|
|
else
|
|
{
|
|
text = "Colin";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Main.chrName[22] == "")
|
|
{
|
|
Main.chrName[22] = text;
|
|
}
|
|
num = WorldGen.genRand.Next(22);
|
|
if (num == 0)
|
|
{
|
|
text = "Alalia";
|
|
}
|
|
else
|
|
{
|
|
if (num == 1)
|
|
{
|
|
text = "Alalia";
|
|
}
|
|
else
|
|
{
|
|
if (num == 2)
|
|
{
|
|
text = "Alura";
|
|
}
|
|
else
|
|
{
|
|
if (num == 3)
|
|
{
|
|
text = "Ariella";
|
|
}
|
|
else
|
|
{
|
|
if (num == 4)
|
|
{
|
|
text = "Caelia";
|
|
}
|
|
else
|
|
{
|
|
if (num == 5)
|
|
{
|
|
text = "Calista";
|
|
}
|
|
else
|
|
{
|
|
if (num == 6)
|
|
{
|
|
text = "Chryseis";
|
|
}
|
|
else
|
|
{
|
|
if (num == 7)
|
|
{
|
|
text = "Emerenta";
|
|
}
|
|
else
|
|
{
|
|
if (num == 8)
|
|
{
|
|
text = "Elysia";
|
|
}
|
|
else
|
|
{
|
|
if (num == 9)
|
|
{
|
|
text = "Evvie";
|
|
}
|
|
else
|
|
{
|
|
if (num == 10)
|
|
{
|
|
text = "Faye";
|
|
}
|
|
else
|
|
{
|
|
if (num == 11)
|
|
{
|
|
text = "Felicitae";
|
|
}
|
|
else
|
|
{
|
|
if (num == 12)
|
|
{
|
|
text = "Lunette";
|
|
}
|
|
else
|
|
{
|
|
if (num == 13)
|
|
{
|
|
text = "Nata";
|
|
}
|
|
else
|
|
{
|
|
if (num == 14)
|
|
{
|
|
text = "Nissa";
|
|
}
|
|
else
|
|
{
|
|
if (num == 15)
|
|
{
|
|
text = "Tatiana";
|
|
}
|
|
else
|
|
{
|
|
if (num == 16)
|
|
{
|
|
text = "Rosalva";
|
|
}
|
|
else
|
|
{
|
|
if (num == 17)
|
|
{
|
|
text = "Shea";
|
|
}
|
|
else
|
|
{
|
|
if (num == 18)
|
|
{
|
|
text = "Tania";
|
|
}
|
|
else
|
|
{
|
|
if (num == 19)
|
|
{
|
|
text = "Isis";
|
|
}
|
|
else
|
|
{
|
|
if (num == 20)
|
|
{
|
|
text = "Celestia";
|
|
}
|
|
else
|
|
{
|
|
text = "Xylia";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Main.chrName[20] == "")
|
|
{
|
|
Main.chrName[20] = text;
|
|
}
|
|
num = WorldGen.genRand.Next(22);
|
|
if (num == 0)
|
|
{
|
|
text = "Dolbere";
|
|
}
|
|
else
|
|
{
|
|
if (num == 1)
|
|
{
|
|
text = "Bazdin";
|
|
}
|
|
else
|
|
{
|
|
if (num == 2)
|
|
{
|
|
text = "Durim";
|
|
}
|
|
else
|
|
{
|
|
if (num == 3)
|
|
{
|
|
text = "Tordak";
|
|
}
|
|
else
|
|
{
|
|
if (num == 4)
|
|
{
|
|
text = "Garval";
|
|
}
|
|
else
|
|
{
|
|
if (num == 5)
|
|
{
|
|
text = "Morthal";
|
|
}
|
|
else
|
|
{
|
|
if (num == 6)
|
|
{
|
|
text = "Oten";
|
|
}
|
|
else
|
|
{
|
|
if (num == 7)
|
|
{
|
|
text = "Dolgen";
|
|
}
|
|
else
|
|
{
|
|
if (num == 8)
|
|
{
|
|
text = "Gimli";
|
|
}
|
|
else
|
|
{
|
|
if (num == 9)
|
|
{
|
|
text = "Gimut";
|
|
}
|
|
else
|
|
{
|
|
if (num == 10)
|
|
{
|
|
text = "Duerthen";
|
|
}
|
|
else
|
|
{
|
|
if (num == 11)
|
|
{
|
|
text = "Beldin";
|
|
}
|
|
else
|
|
{
|
|
if (num == 12)
|
|
{
|
|
text = "Jarut";
|
|
}
|
|
else
|
|
{
|
|
if (num == 13)
|
|
{
|
|
text = "Ovbere";
|
|
}
|
|
else
|
|
{
|
|
if (num == 14)
|
|
{
|
|
text = "Norkas";
|
|
}
|
|
else
|
|
{
|
|
if (num == 15)
|
|
{
|
|
text = "Dolgrim";
|
|
}
|
|
else
|
|
{
|
|
if (num == 16)
|
|
{
|
|
text = "Boften";
|
|
}
|
|
else
|
|
{
|
|
if (num == 17)
|
|
{
|
|
text = "Norsun";
|
|
}
|
|
else
|
|
{
|
|
if (num == 18)
|
|
{
|
|
text = "Dias";
|
|
}
|
|
else
|
|
{
|
|
if (num == 19)
|
|
{
|
|
text = "Fikod";
|
|
}
|
|
else
|
|
{
|
|
if (num == 20)
|
|
{
|
|
text = "Urist";
|
|
}
|
|
else
|
|
{
|
|
text = "Darur";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Main.chrName[38] == "")
|
|
{
|
|
Main.chrName[38] = text;
|
|
}
|
|
num = WorldGen.genRand.Next(21);
|
|
if (num == 0)
|
|
{
|
|
text = "Dalamar";
|
|
}
|
|
else
|
|
{
|
|
if (num == 1)
|
|
{
|
|
text = "Dulais";
|
|
}
|
|
else
|
|
{
|
|
if (num == 2)
|
|
{
|
|
text = "Elric";
|
|
}
|
|
else
|
|
{
|
|
if (num == 3)
|
|
{
|
|
text = "Arddun";
|
|
}
|
|
else
|
|
{
|
|
if (num == 4)
|
|
{
|
|
text = "Maelor";
|
|
}
|
|
else
|
|
{
|
|
if (num == 5)
|
|
{
|
|
text = "Leomund";
|
|
}
|
|
else
|
|
{
|
|
if (num == 6)
|
|
{
|
|
text = "Hirael";
|
|
}
|
|
else
|
|
{
|
|
if (num == 7)
|
|
{
|
|
text = "Gwentor";
|
|
}
|
|
else
|
|
{
|
|
if (num == 8)
|
|
{
|
|
text = "Greum";
|
|
}
|
|
else
|
|
{
|
|
if (num == 9)
|
|
{
|
|
text = "Gearroid";
|
|
}
|
|
else
|
|
{
|
|
if (num == 10)
|
|
{
|
|
text = "Fizban";
|
|
}
|
|
else
|
|
{
|
|
if (num == 11)
|
|
{
|
|
text = "Ningauble";
|
|
}
|
|
else
|
|
{
|
|
if (num == 12)
|
|
{
|
|
text = "Seonag";
|
|
}
|
|
else
|
|
{
|
|
if (num == 13)
|
|
{
|
|
text = "Sargon";
|
|
}
|
|
else
|
|
{
|
|
if (num == 14)
|
|
{
|
|
text = "Merlyn";
|
|
}
|
|
else
|
|
{
|
|
if (num == 15)
|
|
{
|
|
text = "Magius";
|
|
}
|
|
else
|
|
{
|
|
if (num == 16)
|
|
{
|
|
text = "Berwyn";
|
|
}
|
|
else
|
|
{
|
|
if (num == 17)
|
|
{
|
|
text = "Arwyn";
|
|
}
|
|
else
|
|
{
|
|
if (num == 18)
|
|
{
|
|
text = "Alasdair";
|
|
}
|
|
else
|
|
{
|
|
if (num == 19)
|
|
{
|
|
text = "Tagar";
|
|
}
|
|
else
|
|
{
|
|
text = "Xanadu";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Main.chrName[108] == "")
|
|
{
|
|
Main.chrName[108] = text;
|
|
}
|
|
num = WorldGen.genRand.Next(23);
|
|
if (num == 0)
|
|
{
|
|
text = "Alfred";
|
|
}
|
|
else
|
|
{
|
|
if (num == 1)
|
|
{
|
|
text = "Barney";
|
|
}
|
|
else
|
|
{
|
|
if (num == 2)
|
|
{
|
|
text = "Calvin";
|
|
}
|
|
else
|
|
{
|
|
if (num == 3)
|
|
{
|
|
text = "Edmund";
|
|
}
|
|
else
|
|
{
|
|
if (num == 4)
|
|
{
|
|
text = "Edwin";
|
|
}
|
|
else
|
|
{
|
|
if (num == 5)
|
|
{
|
|
text = "Eugene";
|
|
}
|
|
else
|
|
{
|
|
if (num == 6)
|
|
{
|
|
text = "Frank";
|
|
}
|
|
else
|
|
{
|
|
if (num == 7)
|
|
{
|
|
text = "Frederick";
|
|
}
|
|
else
|
|
{
|
|
if (num == 8)
|
|
{
|
|
text = "Gilbert";
|
|
}
|
|
else
|
|
{
|
|
if (num == 9)
|
|
{
|
|
text = "Gus";
|
|
}
|
|
else
|
|
{
|
|
if (num == 10)
|
|
{
|
|
text = "Wilbur";
|
|
}
|
|
else
|
|
{
|
|
if (num == 11)
|
|
{
|
|
text = "Seymour";
|
|
}
|
|
else
|
|
{
|
|
if (num == 12)
|
|
{
|
|
text = "Louis";
|
|
}
|
|
else
|
|
{
|
|
if (num == 13)
|
|
{
|
|
text = "Humphrey";
|
|
}
|
|
else
|
|
{
|
|
if (num == 14)
|
|
{
|
|
text = "Harold";
|
|
}
|
|
else
|
|
{
|
|
if (num == 15)
|
|
{
|
|
text = "Milton";
|
|
}
|
|
else
|
|
{
|
|
if (num == 16)
|
|
{
|
|
text = "Mortimer";
|
|
}
|
|
else
|
|
{
|
|
if (num == 17)
|
|
{
|
|
text = "Howard";
|
|
}
|
|
else
|
|
{
|
|
if (num == 18)
|
|
{
|
|
text = "Walter";
|
|
}
|
|
else
|
|
{
|
|
if (num == 19)
|
|
{
|
|
text = "Finn";
|
|
}
|
|
else
|
|
{
|
|
if (num == 20)
|
|
{
|
|
text = "Isacc";
|
|
}
|
|
else
|
|
{
|
|
if (num == 21)
|
|
{
|
|
text = "Joseph";
|
|
}
|
|
else
|
|
{
|
|
text = "Ralph";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Main.chrName[17] == "")
|
|
{
|
|
Main.chrName[17] = text;
|
|
}
|
|
num = WorldGen.genRand.Next(24);
|
|
if (num == 0)
|
|
{
|
|
text = "Sebastian";
|
|
}
|
|
else
|
|
{
|
|
if (num == 1)
|
|
{
|
|
text = "Rupert";
|
|
}
|
|
else
|
|
{
|
|
if (num == 2)
|
|
{
|
|
text = "Clive";
|
|
}
|
|
else
|
|
{
|
|
if (num == 3)
|
|
{
|
|
text = "Nigel";
|
|
}
|
|
else
|
|
{
|
|
if (num == 4)
|
|
{
|
|
text = "Mervyn";
|
|
}
|
|
else
|
|
{
|
|
if (num == 5)
|
|
{
|
|
text = "Cedric";
|
|
}
|
|
else
|
|
{
|
|
if (num == 6)
|
|
{
|
|
text = "Pip";
|
|
}
|
|
else
|
|
{
|
|
if (num == 7)
|
|
{
|
|
text = "Cyril";
|
|
}
|
|
else
|
|
{
|
|
if (num == 8)
|
|
{
|
|
text = "Fitz";
|
|
}
|
|
else
|
|
{
|
|
if (num == 9)
|
|
{
|
|
text = "Lloyd";
|
|
}
|
|
else
|
|
{
|
|
if (num == 10)
|
|
{
|
|
text = "Arthur";
|
|
}
|
|
else
|
|
{
|
|
if (num == 11)
|
|
{
|
|
text = "Rodney";
|
|
}
|
|
else
|
|
{
|
|
if (num == 12)
|
|
{
|
|
text = "Graham";
|
|
}
|
|
else
|
|
{
|
|
if (num == 13)
|
|
{
|
|
text = "Edward";
|
|
}
|
|
else
|
|
{
|
|
if (num == 14)
|
|
{
|
|
text = "Alfred";
|
|
}
|
|
else
|
|
{
|
|
if (num == 15)
|
|
{
|
|
text = "Edmund";
|
|
}
|
|
else
|
|
{
|
|
if (num == 16)
|
|
{
|
|
text = "Henry";
|
|
}
|
|
else
|
|
{
|
|
if (num == 17)
|
|
{
|
|
text = "Herald";
|
|
}
|
|
else
|
|
{
|
|
if (num == 18)
|
|
{
|
|
text = "Roland";
|
|
}
|
|
else
|
|
{
|
|
if (num == 19)
|
|
{
|
|
text = "Lincoln";
|
|
}
|
|
else
|
|
{
|
|
if (num == 20)
|
|
{
|
|
text = "Lloyd";
|
|
}
|
|
else
|
|
{
|
|
if (num == 21)
|
|
{
|
|
text = "Edgar";
|
|
}
|
|
else
|
|
{
|
|
if (num == 22)
|
|
{
|
|
text = "Eustace";
|
|
}
|
|
else
|
|
{
|
|
text = "Rodrick";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Main.chrName[54] == "")
|
|
{
|
|
Main.chrName[54] = text;
|
|
}
|
|
num = WorldGen.genRand.Next(25);
|
|
if (num == 0)
|
|
{
|
|
text = "Grodax";
|
|
}
|
|
else
|
|
{
|
|
if (num == 1)
|
|
{
|
|
text = "Sarx";
|
|
}
|
|
else
|
|
{
|
|
if (num == 2)
|
|
{
|
|
text = "Xon";
|
|
}
|
|
else
|
|
{
|
|
if (num == 3)
|
|
{
|
|
text = "Mrunok";
|
|
}
|
|
else
|
|
{
|
|
if (num == 4)
|
|
{
|
|
text = "Nuxatk";
|
|
}
|
|
else
|
|
{
|
|
if (num == 5)
|
|
{
|
|
text = "Tgerd";
|
|
}
|
|
else
|
|
{
|
|
if (num == 6)
|
|
{
|
|
text = "Darz";
|
|
}
|
|
else
|
|
{
|
|
if (num == 7)
|
|
{
|
|
text = "Smador";
|
|
}
|
|
else
|
|
{
|
|
if (num == 8)
|
|
{
|
|
text = "Stazen";
|
|
}
|
|
else
|
|
{
|
|
if (num == 9)
|
|
{
|
|
text = "Mobart";
|
|
}
|
|
else
|
|
{
|
|
if (num == 10)
|
|
{
|
|
text = "Knogs";
|
|
}
|
|
else
|
|
{
|
|
if (num == 11)
|
|
{
|
|
text = "Tkanus";
|
|
}
|
|
else
|
|
{
|
|
if (num == 12)
|
|
{
|
|
text = "Negurk";
|
|
}
|
|
else
|
|
{
|
|
if (num == 13)
|
|
{
|
|
text = "Nort";
|
|
}
|
|
else
|
|
{
|
|
if (num == 14)
|
|
{
|
|
text = "Durnok";
|
|
}
|
|
else
|
|
{
|
|
if (num == 15)
|
|
{
|
|
text = "Trogem";
|
|
}
|
|
else
|
|
{
|
|
if (num == 16)
|
|
{
|
|
text = "Stezom";
|
|
}
|
|
else
|
|
{
|
|
if (num == 17)
|
|
{
|
|
text = "Gnudar";
|
|
}
|
|
else
|
|
{
|
|
if (num == 18)
|
|
{
|
|
text = "Ragz";
|
|
}
|
|
else
|
|
{
|
|
if (num == 19)
|
|
{
|
|
text = "Fahd";
|
|
}
|
|
else
|
|
{
|
|
if (num == 20)
|
|
{
|
|
text = "Xanos";
|
|
}
|
|
else
|
|
{
|
|
if (num == 21)
|
|
{
|
|
text = "Arback";
|
|
}
|
|
else
|
|
{
|
|
if (num == 22)
|
|
{
|
|
text = "Fjell";
|
|
}
|
|
else
|
|
{
|
|
if (num == 23)
|
|
{
|
|
text = "Dalek";
|
|
}
|
|
else
|
|
{
|
|
text = "Knub";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Main.chrName[107] == "")
|
|
{
|
|
Main.chrName[107] = text;
|
|
}
|
|
num = WorldGen.genRand.Next(12);
|
|
if (num == 0)
|
|
{
|
|
text = "Reishi";
|
|
}
|
|
else
|
|
{
|
|
if (num == 1)
|
|
{
|
|
text = "Maitake";
|
|
}
|
|
else
|
|
{
|
|
if (num == 2)
|
|
{
|
|
text = "Chanterelle";
|
|
}
|
|
else
|
|
{
|
|
if (num == 3)
|
|
{
|
|
text = "Porcini";
|
|
}
|
|
else
|
|
{
|
|
if (num == 4)
|
|
{
|
|
text = "Shimeji";
|
|
}
|
|
else
|
|
{
|
|
if (num == 5)
|
|
{
|
|
text = "Amanita";
|
|
}
|
|
else
|
|
{
|
|
if (num == 6)
|
|
{
|
|
text = "Muscaria";
|
|
}
|
|
else
|
|
{
|
|
if (num == 7)
|
|
{
|
|
text = "Agaric";
|
|
}
|
|
else
|
|
{
|
|
if (num == 8)
|
|
{
|
|
text = "Cremini";
|
|
}
|
|
else
|
|
{
|
|
if (num == 9)
|
|
{
|
|
text = "Morel";
|
|
}
|
|
else
|
|
{
|
|
if (num == 10)
|
|
{
|
|
text = "Enoki";
|
|
}
|
|
else
|
|
{
|
|
text = "Shiitake";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Main.chrName[160] == "")
|
|
{
|
|
Main.chrName[160] = text;
|
|
}
|
|
num = WorldGen.genRand.Next(20);
|
|
if (num == 0)
|
|
{
|
|
text = "Whitney";
|
|
}
|
|
else
|
|
{
|
|
if (num == 1)
|
|
{
|
|
text = "Verity";
|
|
}
|
|
else
|
|
{
|
|
if (num == 2)
|
|
{
|
|
text = "Ada";
|
|
}
|
|
else
|
|
{
|
|
if (num == 3)
|
|
{
|
|
text = "Cornelia";
|
|
}
|
|
else
|
|
{
|
|
if (num == 4)
|
|
{
|
|
text = "Lydia";
|
|
}
|
|
else
|
|
{
|
|
if (num == 5)
|
|
{
|
|
text = "Leila";
|
|
}
|
|
else
|
|
{
|
|
if (num == 6)
|
|
{
|
|
text = "Minerva";
|
|
}
|
|
else
|
|
{
|
|
if (num == 7)
|
|
{
|
|
text = "Emeline";
|
|
}
|
|
else
|
|
{
|
|
if (num == 8)
|
|
{
|
|
text = "Cynthia";
|
|
}
|
|
else
|
|
{
|
|
if (num == 9)
|
|
{
|
|
text = "Fidelia";
|
|
}
|
|
else
|
|
{
|
|
if (num == 10)
|
|
{
|
|
text = "Lilly";
|
|
}
|
|
else
|
|
{
|
|
if (num == 11)
|
|
{
|
|
text = "Phoebe";
|
|
}
|
|
else
|
|
{
|
|
if (num == 12)
|
|
{
|
|
text = "Zylphia";
|
|
}
|
|
else
|
|
{
|
|
if (num == 13)
|
|
{
|
|
text = "Zelda";
|
|
}
|
|
else
|
|
{
|
|
if (num == 14)
|
|
{
|
|
text = "Selina";
|
|
}
|
|
else
|
|
{
|
|
if (num == 15)
|
|
{
|
|
text = "Hope";
|
|
}
|
|
else
|
|
{
|
|
if (num == 16)
|
|
{
|
|
text = "Isabella";
|
|
}
|
|
else
|
|
{
|
|
if (num == 17)
|
|
{
|
|
text = "Judith";
|
|
}
|
|
else
|
|
{
|
|
if (num == 18)
|
|
{
|
|
text = "Savannah";
|
|
}
|
|
else
|
|
{
|
|
text = "Vivian";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Main.chrName[178] == "")
|
|
{
|
|
Main.chrName[178] = text;
|
|
}
|
|
num = WorldGen.genRand.Next(16);
|
|
if (num == 0)
|
|
{
|
|
text = "Abdosir";
|
|
}
|
|
else
|
|
{
|
|
if (num == 1)
|
|
{
|
|
text = "Akbar";
|
|
}
|
|
else
|
|
{
|
|
if (num == 2)
|
|
{
|
|
text = "Bodashtart";
|
|
}
|
|
else
|
|
{
|
|
if (num == 3)
|
|
{
|
|
text = "Danel";
|
|
}
|
|
else
|
|
{
|
|
if (num == 4)
|
|
{
|
|
text = "Hanno";
|
|
}
|
|
else
|
|
{
|
|
if (num == 5)
|
|
{
|
|
text = "Hiram";
|
|
}
|
|
else
|
|
{
|
|
if (num == 6)
|
|
{
|
|
text = "Kanmi";
|
|
}
|
|
else
|
|
{
|
|
if (num == 7)
|
|
{
|
|
text = "Philosir";
|
|
}
|
|
else
|
|
{
|
|
if (num == 8)
|
|
{
|
|
text = "Tabnit";
|
|
}
|
|
else
|
|
{
|
|
if (num == 9)
|
|
{
|
|
text = "Yutpan";
|
|
}
|
|
else
|
|
{
|
|
if (num == 10)
|
|
{
|
|
text = "Ahirom";
|
|
}
|
|
else
|
|
{
|
|
if (num == 11)
|
|
{
|
|
text = "Batnoam";
|
|
}
|
|
else
|
|
{
|
|
if (num == 12)
|
|
{
|
|
text = "Sikarbaal";
|
|
}
|
|
else
|
|
{
|
|
if (num == 13)
|
|
{
|
|
text = "Hannibal";
|
|
}
|
|
else
|
|
{
|
|
if (num == 14)
|
|
{
|
|
text = "Yehomilk";
|
|
}
|
|
else
|
|
{
|
|
text = "Ahinadab";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Main.chrName[207] == "")
|
|
{
|
|
Main.chrName[207] = text;
|
|
}
|
|
num = WorldGen.genRand.Next(18);
|
|
if (num == 0)
|
|
{
|
|
text = "Candy";
|
|
}
|
|
else
|
|
{
|
|
if (num == 1)
|
|
{
|
|
text = "Roxanne";
|
|
}
|
|
else
|
|
{
|
|
if (num == 2)
|
|
{
|
|
text = "Trixy";
|
|
}
|
|
else
|
|
{
|
|
if (num == 3)
|
|
{
|
|
text = "Destiny";
|
|
}
|
|
else
|
|
{
|
|
if (num == 4)
|
|
{
|
|
text = "Lexus";
|
|
}
|
|
else
|
|
{
|
|
if (num == 5)
|
|
{
|
|
text = "Bambi";
|
|
}
|
|
else
|
|
{
|
|
if (num == 6)
|
|
{
|
|
text = "Bailey";
|
|
}
|
|
else
|
|
{
|
|
if (num == 7)
|
|
{
|
|
text = "Glitter";
|
|
}
|
|
else
|
|
{
|
|
if (num == 8)
|
|
{
|
|
text = "Sparkle";
|
|
}
|
|
else
|
|
{
|
|
if (num == 9)
|
|
{
|
|
text = "Paris";
|
|
}
|
|
else
|
|
{
|
|
if (num == 10)
|
|
{
|
|
text = "Dazzle";
|
|
}
|
|
else
|
|
{
|
|
if (num == 11)
|
|
{
|
|
text = "Fantasy";
|
|
}
|
|
else
|
|
{
|
|
if (num == 12)
|
|
{
|
|
text = "Bunny";
|
|
}
|
|
else
|
|
{
|
|
if (num == 13)
|
|
{
|
|
text = "Sugar";
|
|
}
|
|
else
|
|
{
|
|
if (num == 14)
|
|
{
|
|
text = "Fantasia";
|
|
}
|
|
else
|
|
{
|
|
if (num == 15)
|
|
{
|
|
text = "Star";
|
|
}
|
|
else
|
|
{
|
|
if (num == 16)
|
|
{
|
|
text = "Isis";
|
|
}
|
|
else
|
|
{
|
|
text = "Cherry";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Main.chrName[208] == "")
|
|
{
|
|
Main.chrName[208] = text;
|
|
}
|
|
num = WorldGen.genRand.Next(23);
|
|
if (num == 0)
|
|
{
|
|
text = "Alpha";
|
|
}
|
|
else
|
|
{
|
|
if (num == 1)
|
|
{
|
|
text = "Beta";
|
|
}
|
|
else
|
|
{
|
|
if (num == 2)
|
|
{
|
|
text = "Delta";
|
|
}
|
|
else
|
|
{
|
|
if (num == 3)
|
|
{
|
|
text = "Omega";
|
|
}
|
|
else
|
|
{
|
|
if (num == 4)
|
|
{
|
|
text = "Gamma";
|
|
}
|
|
else
|
|
{
|
|
if (num == 5)
|
|
{
|
|
text = "Theta";
|
|
}
|
|
else
|
|
{
|
|
if (num == 6)
|
|
{
|
|
text = "Kappa";
|
|
}
|
|
else
|
|
{
|
|
if (num == 7)
|
|
{
|
|
text = "Omicron";
|
|
}
|
|
else
|
|
{
|
|
if (num == 8)
|
|
{
|
|
text = "Sigma";
|
|
}
|
|
else
|
|
{
|
|
if (num == 9)
|
|
{
|
|
text = "Upsilon";
|
|
}
|
|
else
|
|
{
|
|
if (num == 10)
|
|
{
|
|
text = "Phi";
|
|
}
|
|
else
|
|
{
|
|
if (num == 11)
|
|
{
|
|
text = "Zeta";
|
|
}
|
|
else
|
|
{
|
|
if (num == 12)
|
|
{
|
|
text = "Lambda";
|
|
}
|
|
else
|
|
{
|
|
if (num == 13)
|
|
{
|
|
text = "Nu";
|
|
}
|
|
else
|
|
{
|
|
if (num == 14)
|
|
{
|
|
text = "Ci";
|
|
}
|
|
else
|
|
{
|
|
if (num == 15)
|
|
{
|
|
text = "Rho";
|
|
}
|
|
else
|
|
{
|
|
if (num == 16)
|
|
{
|
|
text = "Phi";
|
|
}
|
|
else
|
|
{
|
|
if (num == 17)
|
|
{
|
|
text = "Fender";
|
|
}
|
|
else
|
|
{
|
|
if (num == 18)
|
|
{
|
|
text = "T-3E0";
|
|
}
|
|
else
|
|
{
|
|
if (num == 19)
|
|
{
|
|
text = "Niner-7";
|
|
}
|
|
else
|
|
{
|
|
if (num == 20)
|
|
{
|
|
text = "A.N.D.Y";
|
|
}
|
|
else
|
|
{
|
|
if (num == 21)
|
|
{
|
|
text = "Syn-X";
|
|
}
|
|
else
|
|
{
|
|
text = "Mu";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Main.chrName[209] == "")
|
|
{
|
|
Main.chrName[209] = text;
|
|
}
|
|
num = WorldGen.genRand.Next(17);
|
|
if (num == 0)
|
|
{
|
|
text = "Marco";
|
|
}
|
|
else
|
|
{
|
|
if (num == 1)
|
|
{
|
|
text = "Guido";
|
|
}
|
|
else
|
|
{
|
|
if (num == 2)
|
|
{
|
|
text = "Enzo";
|
|
}
|
|
else
|
|
{
|
|
if (num == 3)
|
|
{
|
|
text = "Martino";
|
|
}
|
|
else
|
|
{
|
|
if (num == 4)
|
|
{
|
|
text = "Mauro";
|
|
}
|
|
else
|
|
{
|
|
if (num == 5)
|
|
{
|
|
text = "Lorenzo";
|
|
}
|
|
else
|
|
{
|
|
if (num == 6)
|
|
{
|
|
text = "Ludo";
|
|
}
|
|
else
|
|
{
|
|
if (num == 7)
|
|
{
|
|
text = "Luciano";
|
|
}
|
|
else
|
|
{
|
|
if (num == 8)
|
|
{
|
|
text = "Carlo";
|
|
}
|
|
else
|
|
{
|
|
if (num == 9)
|
|
{
|
|
text = "Bruno";
|
|
}
|
|
else
|
|
{
|
|
if (num == 10)
|
|
{
|
|
text = "Mario";
|
|
}
|
|
else
|
|
{
|
|
if (num == 11)
|
|
{
|
|
text = "Leonardo";
|
|
}
|
|
else
|
|
{
|
|
if (num == 12)
|
|
{
|
|
text = "Raphael";
|
|
}
|
|
else
|
|
{
|
|
if (num == 13)
|
|
{
|
|
text = "Luigi";
|
|
}
|
|
else
|
|
{
|
|
if (num == 14)
|
|
{
|
|
text = "Luca";
|
|
}
|
|
else
|
|
{
|
|
if (num == 15)
|
|
{
|
|
text = "Darren";
|
|
}
|
|
else
|
|
{
|
|
text = "Stefano";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Main.chrName[227] == "")
|
|
{
|
|
Main.chrName[227] = text;
|
|
}
|
|
num = WorldGen.genRand.Next(10);
|
|
if (num == 0)
|
|
{
|
|
text = "Abibe";
|
|
}
|
|
else
|
|
{
|
|
if (num == 1)
|
|
{
|
|
text = "Jamundi";
|
|
}
|
|
else
|
|
{
|
|
if (num == 2)
|
|
{
|
|
text = "U'wa";
|
|
}
|
|
else
|
|
{
|
|
if (num == 3)
|
|
{
|
|
text = "Tairona";
|
|
}
|
|
else
|
|
{
|
|
if (num == 4)
|
|
{
|
|
text = "Xirigua";
|
|
}
|
|
else
|
|
{
|
|
if (num == 5)
|
|
{
|
|
text = "Zop'a";
|
|
}
|
|
else
|
|
{
|
|
if (num == 6)
|
|
{
|
|
text = "Opuni";
|
|
}
|
|
else
|
|
{
|
|
if (num == 7)
|
|
{
|
|
text = "Kogi-ghi";
|
|
}
|
|
else
|
|
{
|
|
if (num == 8)
|
|
{
|
|
text = "Konah";
|
|
}
|
|
else
|
|
{
|
|
text = "Gboto";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Main.chrName[228] == "")
|
|
{
|
|
Main.chrName[228] = text;
|
|
}
|
|
num = WorldGen.genRand.Next(11);
|
|
if (num == 0)
|
|
{
|
|
text = "David";
|
|
}
|
|
else
|
|
{
|
|
if (num == 1)
|
|
{
|
|
text = "Red Beard";
|
|
}
|
|
else
|
|
{
|
|
if (num == 2)
|
|
{
|
|
text = "Jack";
|
|
}
|
|
else
|
|
{
|
|
if (num == 3)
|
|
{
|
|
text = "Black Beard";
|
|
}
|
|
else
|
|
{
|
|
if (num == 4)
|
|
{
|
|
text = "Captain Morgan";
|
|
}
|
|
else
|
|
{
|
|
if (num == 5)
|
|
{
|
|
text = "Wet Beard";
|
|
}
|
|
else
|
|
{
|
|
if (num == 6)
|
|
{
|
|
text = "James T. Beard";
|
|
}
|
|
else
|
|
{
|
|
if (num == 7)
|
|
{
|
|
text = "Gunpowder Garry";
|
|
}
|
|
else
|
|
{
|
|
if (num == 8)
|
|
{
|
|
text = "Captain Stoney Dirt";
|
|
}
|
|
else
|
|
{
|
|
if (num == 9)
|
|
{
|
|
text = "Jake";
|
|
}
|
|
else
|
|
{
|
|
text = "Captain Bullywort";
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Main.chrName[229] == "")
|
|
{
|
|
Main.chrName[229] = text;
|
|
}
|
|
}
|
|
public void netDefaults(int type)
|
|
{
|
|
if (type < 0)
|
|
{
|
|
if (type == -1)
|
|
{
|
|
this.SetDefaults("Slimeling");
|
|
return;
|
|
}
|
|
if (type == -2)
|
|
{
|
|
this.SetDefaults("Slimer2");
|
|
return;
|
|
}
|
|
if (type == -3)
|
|
{
|
|
this.SetDefaults("Green Slime");
|
|
return;
|
|
}
|
|
if (type == -4)
|
|
{
|
|
this.SetDefaults("Pinky");
|
|
return;
|
|
}
|
|
if (type == -5)
|
|
{
|
|
this.SetDefaults("Baby Slime");
|
|
return;
|
|
}
|
|
if (type == -6)
|
|
{
|
|
this.SetDefaults("Black Slime");
|
|
return;
|
|
}
|
|
if (type == -7)
|
|
{
|
|
this.SetDefaults("Purple Slime");
|
|
return;
|
|
}
|
|
if (type == -8)
|
|
{
|
|
this.SetDefaults("Red Slime");
|
|
return;
|
|
}
|
|
if (type == -9)
|
|
{
|
|
this.SetDefaults("Yellow Slime");
|
|
return;
|
|
}
|
|
if (type == -10)
|
|
{
|
|
this.SetDefaults("Jungle Slime");
|
|
return;
|
|
}
|
|
if (type == -11)
|
|
{
|
|
this.SetDefaults("Little Eater");
|
|
return;
|
|
}
|
|
if (type == -12)
|
|
{
|
|
this.SetDefaults("Big Eater");
|
|
return;
|
|
}
|
|
if (type == -13)
|
|
{
|
|
this.SetDefaults("Short Bones");
|
|
return;
|
|
}
|
|
if (type == -14)
|
|
{
|
|
this.SetDefaults("Big Boned");
|
|
return;
|
|
}
|
|
if (type == -15)
|
|
{
|
|
this.SetDefaults("Heavy Skeleton");
|
|
return;
|
|
}
|
|
if (type == -16)
|
|
{
|
|
this.SetDefaults("Little Stinger");
|
|
return;
|
|
}
|
|
if (type == -17)
|
|
{
|
|
this.SetDefaults("Big Stinger");
|
|
return;
|
|
}
|
|
if (type == -18)
|
|
{
|
|
this.SetDefaults("Tiny Moss Hornet");
|
|
return;
|
|
}
|
|
if (type == -19)
|
|
{
|
|
this.SetDefaults("Little Moss Hornet");
|
|
return;
|
|
}
|
|
if (type == -20)
|
|
{
|
|
this.SetDefaults("Big Moss Hornet");
|
|
return;
|
|
}
|
|
if (type == -21)
|
|
{
|
|
this.SetDefaults("Giant Moss Hornet");
|
|
return;
|
|
}
|
|
if (type == -22)
|
|
{
|
|
this.SetDefaults("Little Crimera");
|
|
return;
|
|
}
|
|
if (type == -23)
|
|
{
|
|
this.SetDefaults("Big Crimera");
|
|
return;
|
|
}
|
|
if (type == -24)
|
|
{
|
|
this.SetDefaults("Little Crimslime");
|
|
return;
|
|
}
|
|
if (type == -25)
|
|
{
|
|
this.SetDefaults("Big Crimslime");
|
|
return;
|
|
}
|
|
if (type == -26)
|
|
{
|
|
this.SetDefaults("Small Zombie");
|
|
return;
|
|
}
|
|
if (type == -27)
|
|
{
|
|
this.SetDefaults("Big Zombie");
|
|
return;
|
|
}
|
|
if (type == -28)
|
|
{
|
|
this.SetDefaults("Small Bald Zombie");
|
|
return;
|
|
}
|
|
if (type == -29)
|
|
{
|
|
this.SetDefaults("Big Bald Zombie");
|
|
return;
|
|
}
|
|
if (type == -30)
|
|
{
|
|
this.SetDefaults("Small Pincushion Zombie");
|
|
return;
|
|
}
|
|
if (type == -31)
|
|
{
|
|
this.SetDefaults("Big Pincushion Zombie");
|
|
return;
|
|
}
|
|
if (type == -32)
|
|
{
|
|
this.SetDefaults("Small Slimed Zombie");
|
|
return;
|
|
}
|
|
if (type == -33)
|
|
{
|
|
this.SetDefaults("Big Slimed Zombie");
|
|
return;
|
|
}
|
|
if (type == -34)
|
|
{
|
|
this.SetDefaults("Small Swamp Zombie");
|
|
return;
|
|
}
|
|
if (type == -35)
|
|
{
|
|
this.SetDefaults("Big Swamp Zombie");
|
|
return;
|
|
}
|
|
if (type == -36)
|
|
{
|
|
this.SetDefaults("Small Twiggy Zombie");
|
|
return;
|
|
}
|
|
if (type == -37)
|
|
{
|
|
this.SetDefaults("Big Twiggy Zombie");
|
|
return;
|
|
}
|
|
if (type == -38)
|
|
{
|
|
this.SetDefaults("Cataract Eye 2");
|
|
return;
|
|
}
|
|
if (type == -39)
|
|
{
|
|
this.SetDefaults("Sleepy Eye 2");
|
|
return;
|
|
}
|
|
if (type == -40)
|
|
{
|
|
this.SetDefaults("Dialated Eye 2");
|
|
return;
|
|
}
|
|
if (type == -41)
|
|
{
|
|
this.SetDefaults("Green Eye 2");
|
|
return;
|
|
}
|
|
if (type == -42)
|
|
{
|
|
this.SetDefaults("Purple Eye 2");
|
|
return;
|
|
}
|
|
if (type == -43)
|
|
{
|
|
this.SetDefaults("Demon Eye 2");
|
|
return;
|
|
}
|
|
if (type == -44)
|
|
{
|
|
this.SetDefaults("Small Female Zombie");
|
|
return;
|
|
}
|
|
if (type == -45)
|
|
{
|
|
this.SetDefaults("Big Female Zombie");
|
|
return;
|
|
}
|
|
if (type == -46)
|
|
{
|
|
this.SetDefaults("Small Skeleton");
|
|
return;
|
|
}
|
|
if (type == -47)
|
|
{
|
|
this.SetDefaults("Big Skeleton");
|
|
return;
|
|
}
|
|
if (type == -48)
|
|
{
|
|
this.SetDefaults("Small Headache Skeleton");
|
|
return;
|
|
}
|
|
if (type == -49)
|
|
{
|
|
this.SetDefaults("Big Headache Skeleton");
|
|
return;
|
|
}
|
|
if (type == -50)
|
|
{
|
|
this.SetDefaults("Small Misassembled Skeleton");
|
|
return;
|
|
}
|
|
if (type == -51)
|
|
{
|
|
this.SetDefaults("Big Misassembled Skeleton");
|
|
return;
|
|
}
|
|
if (type == -52)
|
|
{
|
|
this.SetDefaults("Small Pantless Skeleton");
|
|
return;
|
|
}
|
|
if (type == -53)
|
|
{
|
|
this.SetDefaults("Big Pantless Skeleton");
|
|
return;
|
|
}
|
|
if (type == -54)
|
|
{
|
|
this.SetDefaults("Small Rain Zombie");
|
|
return;
|
|
}
|
|
if (type == -55)
|
|
{
|
|
this.SetDefaults("Big Rain Zombie");
|
|
return;
|
|
}
|
|
if (type == -56)
|
|
{
|
|
this.SetDefaults("Little Hornet Fatty");
|
|
return;
|
|
}
|
|
if (type == -57)
|
|
{
|
|
this.SetDefaults("Big Hornet Fatty");
|
|
return;
|
|
}
|
|
if (type == -58)
|
|
{
|
|
this.SetDefaults("Little Hornet Honey");
|
|
return;
|
|
}
|
|
if (type == -59)
|
|
{
|
|
this.SetDefaults("Big Hornet Honey");
|
|
return;
|
|
}
|
|
if (type == -60)
|
|
{
|
|
this.SetDefaults("Little Hornet Leafy");
|
|
return;
|
|
}
|
|
if (type == -61)
|
|
{
|
|
this.SetDefaults("Big Hornet Leafy");
|
|
return;
|
|
}
|
|
if (type == -62)
|
|
{
|
|
this.SetDefaults("Little Hornet Spikey");
|
|
return;
|
|
}
|
|
if (type == -63)
|
|
{
|
|
this.SetDefaults("Big Hornet Spikey");
|
|
return;
|
|
}
|
|
if (type == -64)
|
|
{
|
|
this.SetDefaults("Little Hornet Stingy");
|
|
return;
|
|
}
|
|
if (type == -65)
|
|
{
|
|
this.SetDefaults("Big Hornet Stingy");
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.SetDefaults(type, -1f);
|
|
}
|
|
}
|
|
public void SetDefaults(string Name)
|
|
{
|
|
this.SetDefaults(0, -1f);
|
|
if (Name == "Slimeling")
|
|
{
|
|
this.SetDefaults(81, 0.6f);
|
|
this.name = Name;
|
|
this.damage = 45;
|
|
this.defense = 10;
|
|
this.life = 90;
|
|
this.knockBackResist = 1.2f;
|
|
this.value = 100f;
|
|
this.netID = -1;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Slimer2")
|
|
{
|
|
this.SetDefaults(81, 0.9f);
|
|
this.displayName = "Slimer";
|
|
this.name = Name;
|
|
this.damage = 45;
|
|
this.defense = 20;
|
|
this.life = 90;
|
|
this.knockBackResist = 1.2f;
|
|
this.value = 100f;
|
|
this.netID = -2;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Green Slime")
|
|
{
|
|
this.SetDefaults(1, 0.9f);
|
|
this.name = Name;
|
|
this.damage = 6;
|
|
this.defense = 0;
|
|
this.life = 14;
|
|
this.knockBackResist = 1.2f;
|
|
this.color = new Color(0, 220, 40, 100);
|
|
this.value = 3f;
|
|
this.netID = -3;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Pinky")
|
|
{
|
|
this.SetDefaults(1, 0.6f);
|
|
this.name = Name;
|
|
this.damage = 5;
|
|
this.defense = 5;
|
|
this.life = 150;
|
|
this.knockBackResist = 1.4f;
|
|
this.color = new Color(250, 30, 90, 90);
|
|
this.value = 10000f;
|
|
this.netID = -4;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Baby Slime")
|
|
{
|
|
this.SetDefaults(1, 0.9f);
|
|
this.name = Name;
|
|
this.damage = 13;
|
|
this.defense = 4;
|
|
this.life = 30;
|
|
this.knockBackResist = 0.95f;
|
|
this.alpha = 120;
|
|
this.color = new Color(0, 0, 0, 50);
|
|
this.value = 10f;
|
|
this.netID = -5;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Black Slime")
|
|
{
|
|
this.SetDefaults(1, -1f);
|
|
this.name = Name;
|
|
this.damage = 15;
|
|
this.defense = 4;
|
|
this.life = 45;
|
|
this.color = new Color(0, 0, 0, 50);
|
|
this.value = 20f;
|
|
this.netID = -6;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Purple Slime")
|
|
{
|
|
this.SetDefaults(1, 1.2f);
|
|
this.name = Name;
|
|
this.damage = 12;
|
|
this.defense = 6;
|
|
this.life = 40;
|
|
this.knockBackResist = 0.9f;
|
|
this.color = new Color(200, 0, 255, 150);
|
|
this.value = 10f;
|
|
this.netID = -7;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Red Slime")
|
|
{
|
|
this.SetDefaults(1, -1f);
|
|
this.name = Name;
|
|
this.damage = 12;
|
|
this.defense = 4;
|
|
this.life = 35;
|
|
this.color = new Color(255, 30, 0, 100);
|
|
this.value = 8f;
|
|
this.netID = -8;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Yellow Slime")
|
|
{
|
|
this.SetDefaults(1, 1.2f);
|
|
this.name = Name;
|
|
this.damage = 15;
|
|
this.defense = 7;
|
|
this.life = 45;
|
|
this.color = new Color(255, 255, 0, 100);
|
|
this.value = 10f;
|
|
this.netID = -9;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Jungle Slime")
|
|
{
|
|
this.SetDefaults(1, 1.1f);
|
|
this.name = Name;
|
|
this.damage = 18;
|
|
this.defense = 6;
|
|
this.life = 60;
|
|
this.color = new Color(143, 215, 93, 100);
|
|
this.value = 500f;
|
|
this.netID = -10;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Little Eater")
|
|
{
|
|
this.SetDefaults(6, 0.85f);
|
|
this.name = Name;
|
|
this.displayName = "Eater of Souls";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -11;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Big Eater")
|
|
{
|
|
this.SetDefaults(6, 1.15f);
|
|
this.name = Name;
|
|
this.displayName = "Eater of Souls";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -12;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Short Bones")
|
|
{
|
|
this.SetDefaults(31, 0.9f);
|
|
this.name = Name;
|
|
this.displayName = "Angry Bones";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.netID = -13;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Big Boned")
|
|
{
|
|
this.SetDefaults(31, 1.15f);
|
|
this.name = Name;
|
|
this.displayName = "Angry Bones";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((double)((float)this.damage * this.scale) * 1.1);
|
|
this.life = (int)((double)((float)this.life * this.scale) * 1.1);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots = 2f;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -14;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Heavy Skeleton")
|
|
{
|
|
this.SetDefaults(77, 1.15f);
|
|
this.name = Name;
|
|
this.displayName = "Armored Skeleton";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((double)((float)this.damage * this.scale) * 1.1);
|
|
this.life = 400;
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots = 2f;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.height = 44;
|
|
this.netID = -15;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Little Stinger")
|
|
{
|
|
this.SetDefaults(42, 0.85f);
|
|
this.displayName = "Hornet";
|
|
this.name = Name;
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -16;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Big Stinger")
|
|
{
|
|
this.SetDefaults(42, 1.2f);
|
|
this.displayName = "Hornet";
|
|
this.name = Name;
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -17;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Tiny Moss Hornet")
|
|
{
|
|
this.SetDefaults(176, 0.8f);
|
|
this.displayName = "Moss Hornet";
|
|
this.name = Name;
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -18;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Little Moss Hornet")
|
|
{
|
|
this.SetDefaults(176, 0.9f);
|
|
this.displayName = "Moss Hornet";
|
|
this.name = Name;
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -19;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Big Moss Hornet")
|
|
{
|
|
this.SetDefaults(176, 1.1f);
|
|
this.displayName = "Moss Hornet";
|
|
this.name = Name;
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -20;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Giant Moss Hornet")
|
|
{
|
|
this.SetDefaults(176, 1.2f);
|
|
this.displayName = "Moss Hornet";
|
|
this.name = Name;
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -21;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Little Crimera")
|
|
{
|
|
this.SetDefaults(173, 0.85f);
|
|
this.displayName = "Crimera";
|
|
this.name = Name;
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -22;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Big Crimera")
|
|
{
|
|
this.SetDefaults(173, 1.15f);
|
|
this.displayName = "Crimera";
|
|
this.name = Name;
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -23;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Little Crimslime")
|
|
{
|
|
this.SetDefaults(183, 0.85f);
|
|
this.displayName = "Crimslime";
|
|
this.name = Name;
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -24;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Big Crimslime")
|
|
{
|
|
this.SetDefaults(183, 1.15f);
|
|
this.displayName = "Crimslime";
|
|
this.name = Name;
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -25;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Small Zombie")
|
|
{
|
|
this.SetDefaults(3, 0.9f);
|
|
this.name = Name;
|
|
this.displayName = "Zombie";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -26;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Big Zombie")
|
|
{
|
|
this.SetDefaults(3, 1.1f);
|
|
this.name = Name;
|
|
this.displayName = "Zombie";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -27;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Small Bald Zombie")
|
|
{
|
|
this.SetDefaults(132, 0.85f);
|
|
this.name = Name;
|
|
this.displayName = "Zombie";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -28;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Big Bald Zombie")
|
|
{
|
|
this.SetDefaults(132, 1.15f);
|
|
this.name = Name;
|
|
this.displayName = "Zombie";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -29;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Small Pincushion Zombie")
|
|
{
|
|
this.SetDefaults(186, 0.93f);
|
|
this.name = Name;
|
|
this.displayName = "Zombie";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -30;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Big Pincushion Zombie")
|
|
{
|
|
this.SetDefaults(186, 1.13f);
|
|
this.name = Name;
|
|
this.displayName = "Zombie";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -31;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Small Slimed Zombie")
|
|
{
|
|
this.SetDefaults(187, 0.89f);
|
|
this.name = Name;
|
|
this.displayName = "Zombie";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -32;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Big Slimed Zombie")
|
|
{
|
|
this.SetDefaults(187, 1.11f);
|
|
this.name = Name;
|
|
this.displayName = "Zombie";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -33;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Small Swamp Zombie")
|
|
{
|
|
this.SetDefaults(188, 0.87f);
|
|
this.name = Name;
|
|
this.displayName = "Zombie";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -34;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Big Swamp Zombie")
|
|
{
|
|
this.SetDefaults(188, 1.13f);
|
|
this.name = Name;
|
|
this.displayName = "Zombie";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -35;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Small Twiggy Zombie")
|
|
{
|
|
this.SetDefaults(189, 0.92f);
|
|
this.name = Name;
|
|
this.displayName = "Zombie";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -36;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Big Twiggy Zombie")
|
|
{
|
|
this.SetDefaults(189, 1.08f);
|
|
this.name = Name;
|
|
this.displayName = "Zombie";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -37;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Cataract Eye 2")
|
|
{
|
|
this.SetDefaults(190, 1.15f);
|
|
this.name = Name;
|
|
this.displayName = "Demon Eye";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -38;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Sleepy Eye 2")
|
|
{
|
|
this.SetDefaults(191, 1.1f);
|
|
this.name = Name;
|
|
this.displayName = "Demon Eye";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -39;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Dialated Eye 2")
|
|
{
|
|
this.SetDefaults(192, 0.9f);
|
|
this.name = Name;
|
|
this.displayName = "Demon Eye";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -40;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Green Eye 2")
|
|
{
|
|
this.SetDefaults(193, 0.85f);
|
|
this.name = Name;
|
|
this.displayName = "Demon Eye";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -41;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Purple Eye 2")
|
|
{
|
|
this.SetDefaults(194, 1.1f);
|
|
this.name = Name;
|
|
this.displayName = "Demon Eye";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -42;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Demon Eye 2")
|
|
{
|
|
this.SetDefaults(2, 1.15f);
|
|
this.name = Name;
|
|
this.displayName = "Demon Eye";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -43;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Small Female Zombie")
|
|
{
|
|
this.SetDefaults(200, 0.87f);
|
|
this.name = Name;
|
|
this.displayName = "Zombie";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -44;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Big Female Zombie")
|
|
{
|
|
this.SetDefaults(200, 1.05f);
|
|
this.name = Name;
|
|
this.displayName = "Zombie";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -45;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Small Skeleton")
|
|
{
|
|
this.SetDefaults(21, 0.9f);
|
|
this.name = Name;
|
|
this.displayName = "Skeleton";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -46;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Big Skeleton")
|
|
{
|
|
this.SetDefaults(21, 1.1f);
|
|
this.name = Name;
|
|
this.displayName = "Skeleton";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -47;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Small Headache Skeleton")
|
|
{
|
|
this.SetDefaults(201, 0.93f);
|
|
this.name = Name;
|
|
this.displayName = "Skeleton";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -48;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Big Headache Skeleton")
|
|
{
|
|
this.SetDefaults(201, 1.07f);
|
|
this.name = Name;
|
|
this.displayName = "Skeleton";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -49;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Small Misassembled Skeleton")
|
|
{
|
|
this.SetDefaults(202, 0.87f);
|
|
this.name = Name;
|
|
this.displayName = "Skeleton";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -50;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Big Misassembled Skeleton")
|
|
{
|
|
this.SetDefaults(202, 1.13f);
|
|
this.name = Name;
|
|
this.displayName = "Skeleton";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -51;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Small Pantless Skeleton")
|
|
{
|
|
this.SetDefaults(203, 0.85f);
|
|
this.name = Name;
|
|
this.displayName = "Skeleton";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -52;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Big Pantless Skeleton")
|
|
{
|
|
this.SetDefaults(203, 1.15f);
|
|
this.name = Name;
|
|
this.displayName = "Skeleton";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -53;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Small Rain Zombie")
|
|
{
|
|
this.SetDefaults(223, 0.9f);
|
|
this.name = Name;
|
|
this.displayName = "Zombie";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -54;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Big Rain Zombie")
|
|
{
|
|
this.SetDefaults(223, 1.1f);
|
|
this.name = Name;
|
|
this.displayName = "Zombie";
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -55;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Little Hornet Fatty")
|
|
{
|
|
this.SetDefaults(231, 0.85f);
|
|
this.displayName = "Hornet";
|
|
this.name = Name;
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -56;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Big Hornet Fatty")
|
|
{
|
|
this.SetDefaults(231, 1.25f);
|
|
this.displayName = "Hornet";
|
|
this.name = Name;
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -57;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Little Hornet Honey")
|
|
{
|
|
this.SetDefaults(232, 0.8f);
|
|
this.displayName = "Hornet";
|
|
this.name = Name;
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -58;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Big Hornet Honey")
|
|
{
|
|
this.SetDefaults(232, 1.15f);
|
|
this.displayName = "Hornet";
|
|
this.name = Name;
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -59;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Little Hornet Leafy")
|
|
{
|
|
this.SetDefaults(233, 0.92f);
|
|
this.displayName = "Hornet";
|
|
this.name = Name;
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -60;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Big Hornet Leafy")
|
|
{
|
|
this.SetDefaults(233, 1.1f);
|
|
this.displayName = "Hornet";
|
|
this.name = Name;
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -61;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Little Hornet Spikey")
|
|
{
|
|
this.SetDefaults(234, 0.78f);
|
|
this.displayName = "Hornet";
|
|
this.name = Name;
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -62;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Big Hornet Spikey")
|
|
{
|
|
this.SetDefaults(234, 1.16f);
|
|
this.displayName = "Hornet";
|
|
this.name = Name;
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -63;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Little Hornet Stingy")
|
|
{
|
|
this.SetDefaults(235, 0.87f);
|
|
this.displayName = "Hornet";
|
|
this.name = Name;
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -64;
|
|
}
|
|
else
|
|
{
|
|
if (Name == "Big Hornet Stingy")
|
|
{
|
|
this.SetDefaults(235, 1.21f);
|
|
this.displayName = "Hornet";
|
|
this.name = Name;
|
|
this.defense = (int)((float)this.defense * this.scale);
|
|
this.damage = (int)((float)this.damage * this.scale);
|
|
this.life = (int)((float)this.life * this.scale);
|
|
this.value = (float)((int)(this.value * this.scale));
|
|
this.npcSlots *= this.scale;
|
|
this.knockBackResist *= 2f - this.scale;
|
|
this.netID = -65;
|
|
}
|
|
else
|
|
{
|
|
if (Name != "")
|
|
{
|
|
for (int i = 1; i < 301; i++)
|
|
{
|
|
if (Main.npcName[i] == Name)
|
|
{
|
|
this.SetDefaults(i, -1f);
|
|
return;
|
|
}
|
|
}
|
|
this.SetDefaults(0, -1f);
|
|
this.active = false;
|
|
}
|
|
else
|
|
{
|
|
this.active = false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
this.displayName = Lang.npcName(this.netID, false);
|
|
this.lifeMax = this.life;
|
|
this.defDamage = this.damage;
|
|
this.defDefense = this.defense;
|
|
}
|
|
public static bool MechSpawn(float x, float y, int type)
|
|
{
|
|
int num = 0;
|
|
int num2 = 0;
|
|
int num3 = 0;
|
|
for (int i = 0; i < 200; i++)
|
|
{
|
|
if (Main.npc[i].active && Main.npc[i].type == type)
|
|
{
|
|
num++;
|
|
Vector2 vector = new Vector2(x, y);
|
|
float num4 = Main.npc[i].position.X - vector.X;
|
|
float num5 = Main.npc[i].position.Y - vector.Y;
|
|
float num6 = (float)Math.Sqrt((double)(num4 * num4 + num5 * num5));
|
|
if (num6 < 200f)
|
|
{
|
|
num2++;
|
|
}
|
|
if (num6 < 600f)
|
|
{
|
|
num3++;
|
|
}
|
|
}
|
|
}
|
|
return num2 < 3 && num3 < 6 && num < 10;
|
|
}
|
|
public static int TypeToNum(int type)
|
|
{
|
|
if (type == 17)
|
|
{
|
|
return 2;
|
|
}
|
|
if (type == 18)
|
|
{
|
|
return 3;
|
|
}
|
|
if (type == 19)
|
|
{
|
|
return 6;
|
|
}
|
|
if (type == 20)
|
|
{
|
|
return 5;
|
|
}
|
|
if (type == 22)
|
|
{
|
|
return 1;
|
|
}
|
|
if (type == 38)
|
|
{
|
|
return 4;
|
|
}
|
|
if (type == 54)
|
|
{
|
|
return 7;
|
|
}
|
|
if (type == 107)
|
|
{
|
|
return 9;
|
|
}
|
|
if (type == 108)
|
|
{
|
|
return 10;
|
|
}
|
|
if (type == 124)
|
|
{
|
|
return 8;
|
|
}
|
|
if (type == 142)
|
|
{
|
|
return 11;
|
|
}
|
|
if (type == 160)
|
|
{
|
|
return 12;
|
|
}
|
|
if (type == 178)
|
|
{
|
|
return 13;
|
|
}
|
|
if (type == 207)
|
|
{
|
|
return 14;
|
|
}
|
|
if (type == 208)
|
|
{
|
|
return 15;
|
|
}
|
|
if (type == 209)
|
|
{
|
|
return 16;
|
|
}
|
|
if (type == 227)
|
|
{
|
|
return 17;
|
|
}
|
|
if (type == 228)
|
|
{
|
|
return 18;
|
|
}
|
|
if (type == 229)
|
|
{
|
|
return 19;
|
|
}
|
|
return -1;
|
|
}
|
|
public static int NumToType(int type)
|
|
{
|
|
if (type == 2)
|
|
{
|
|
return 17;
|
|
}
|
|
if (type == 3)
|
|
{
|
|
return 18;
|
|
}
|
|
if (type == 6)
|
|
{
|
|
return 19;
|
|
}
|
|
if (type == 5)
|
|
{
|
|
return 20;
|
|
}
|
|
if (type == 1)
|
|
{
|
|
return 22;
|
|
}
|
|
if (type == 4)
|
|
{
|
|
return 38;
|
|
}
|
|
if (type == 7)
|
|
{
|
|
return 54;
|
|
}
|
|
if (type == 9)
|
|
{
|
|
return 107;
|
|
}
|
|
if (type == 10)
|
|
{
|
|
return 108;
|
|
}
|
|
if (type == 8)
|
|
{
|
|
return 124;
|
|
}
|
|
if (type == 11)
|
|
{
|
|
return 142;
|
|
}
|
|
if (type == 12)
|
|
{
|
|
return 160;
|
|
}
|
|
if (type == 13)
|
|
{
|
|
return 178;
|
|
}
|
|
if (type == 14)
|
|
{
|
|
return 207;
|
|
}
|
|
if (type == 15)
|
|
{
|
|
return 208;
|
|
}
|
|
if (type == 16)
|
|
{
|
|
return 209;
|
|
}
|
|
if (type == 17)
|
|
{
|
|
return 227;
|
|
}
|
|
if (type == 18)
|
|
{
|
|
return 228;
|
|
}
|
|
if (type == 19)
|
|
{
|
|
return 229;
|
|
}
|
|
return -1;
|
|
}
|
|
public void SetDefaults(int Type, float scaleOverride = -1f)
|
|
{
|
|
NPC.noStream = false;
|
|
this.netStream = 32;
|
|
bool flag = false;
|
|
this.netID = 0;
|
|
this.netAlways = false;
|
|
this.netSpam = 0;
|
|
for (int i = 0; i < this.oldPos.Length; i++)
|
|
{
|
|
this.oldPos[i].X = 0f;
|
|
this.oldPos[i].Y = 0f;
|
|
}
|
|
for (int j = 0; j < 5; j++)
|
|
{
|
|
this.buffTime[j] = 0;
|
|
this.buffType[j] = 0;
|
|
}
|
|
for (int k = 0; k < 81; k++)
|
|
{
|
|
this.buffImmune[k] = false;
|
|
}
|
|
this.setFrameSize = false;
|
|
this.buffImmune[31] = true;
|
|
this.netSkip = -2;
|
|
this.realLife = -1;
|
|
this.lifeRegen = 0;
|
|
this.lifeRegenCount = 0;
|
|
this.poisoned = false;
|
|
this.venom = false;
|
|
this.onFire = false;
|
|
this.midas = false;
|
|
this.ichor = false;
|
|
this.onFrostBurn = false;
|
|
this.confused = false;
|
|
this.onFire2 = false;
|
|
this.justHit = false;
|
|
this.dontTakeDamage = false;
|
|
this.npcSlots = 1f;
|
|
this.lavaImmune = false;
|
|
this.lavaWet = false;
|
|
this.wetCount = 0;
|
|
this.wet = false;
|
|
this.townNPC = false;
|
|
this.homeless = false;
|
|
this.homeTileX = -1;
|
|
this.homeTileY = -1;
|
|
this.friendly = false;
|
|
this.behindTiles = false;
|
|
this.boss = false;
|
|
this.noTileCollide = false;
|
|
this.rotation = 0f;
|
|
this.active = true;
|
|
this.alpha = 0;
|
|
this.color = default(Color);
|
|
this.collideX = false;
|
|
this.collideY = false;
|
|
this.direction = 0;
|
|
this.oldDirection = this.direction;
|
|
this.frameCounter = 0.0;
|
|
this.netUpdate = true;
|
|
this.netUpdate2 = false;
|
|
this.knockBackResist = 1f;
|
|
this.name = "";
|
|
this.displayName = "";
|
|
this.noGravity = false;
|
|
this.scale = 1f;
|
|
this.soundHit = 0;
|
|
this.soundKilled = 0;
|
|
this.spriteDirection = -1;
|
|
this.target = 255;
|
|
this.oldTarget = this.target;
|
|
this.targetRect = default(Rectangle);
|
|
this.timeLeft = NPC.activeTime;
|
|
this.type = Type;
|
|
this.value = 0f;
|
|
for (int l = 0; l < NPC.maxAI; l++)
|
|
{
|
|
this.ai[l] = 0f;
|
|
}
|
|
for (int m = 0; m < NPC.maxAI; m++)
|
|
{
|
|
this.localAI[m] = 0f;
|
|
}
|
|
if (this.type == 1)
|
|
{
|
|
this.name = "Blue Slime";
|
|
this.width = 24;
|
|
this.height = 18;
|
|
this.aiStyle = 1;
|
|
this.damage = 7;
|
|
this.defense = 2;
|
|
this.lifeMax = 25;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.alpha = 175;
|
|
this.color = new Color(0, 80, 255, 100);
|
|
this.value = 25f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 2)
|
|
{
|
|
this.name = "Demon Eye";
|
|
this.width = 30;
|
|
this.height = 32;
|
|
this.aiStyle = 2;
|
|
this.damage = 18;
|
|
this.defense = 2;
|
|
this.lifeMax = 60;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.8f;
|
|
this.soundKilled = 1;
|
|
this.value = 75f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 3)
|
|
{
|
|
this.name = "Zombie";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 14;
|
|
this.defense = 6;
|
|
this.lifeMax = 45;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.5f;
|
|
this.value = 60f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 4)
|
|
{
|
|
this.name = "Eye of Cthulhu";
|
|
this.width = 100;
|
|
this.height = 110;
|
|
this.aiStyle = 4;
|
|
this.damage = 15;
|
|
this.defense = 12;
|
|
this.lifeMax = 2800;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0f;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.timeLeft = NPC.activeTime * 30;
|
|
this.boss = true;
|
|
this.value = 30000f;
|
|
this.npcSlots = 5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 5)
|
|
{
|
|
this.name = "Servant of Cthulhu";
|
|
this.width = 20;
|
|
this.height = 20;
|
|
this.aiStyle = 5;
|
|
this.damage = 12;
|
|
this.defense = 0;
|
|
this.lifeMax = 8;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 6)
|
|
{
|
|
this.npcSlots = 1f;
|
|
this.name = "Eater of Souls";
|
|
this.width = 30;
|
|
this.height = 30;
|
|
this.aiStyle = 5;
|
|
this.damage = 22;
|
|
this.defense = 8;
|
|
this.lifeMax = 40;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.noGravity = true;
|
|
this.knockBackResist = 0.5f;
|
|
this.value = 90f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 7)
|
|
{
|
|
this.displayName = "Devourer";
|
|
this.npcSlots = 3.5f;
|
|
this.name = "Devourer Head";
|
|
this.width = 22;
|
|
this.height = 22;
|
|
this.aiStyle = 6;
|
|
this.damage = 31;
|
|
this.defense = 2;
|
|
this.lifeMax = 100;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.behindTiles = true;
|
|
this.value = 140f;
|
|
this.netAlways = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 8)
|
|
{
|
|
this.displayName = "Devourer";
|
|
this.name = "Devourer Body";
|
|
this.width = 22;
|
|
this.height = 22;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 16;
|
|
this.defense = 6;
|
|
this.lifeMax = 100;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.behindTiles = true;
|
|
this.value = 140f;
|
|
NPC.noStream = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 9)
|
|
{
|
|
this.displayName = "Devourer";
|
|
this.name = "Devourer Tail";
|
|
this.width = 22;
|
|
this.height = 22;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 13;
|
|
this.defense = 10;
|
|
this.lifeMax = 100;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.behindTiles = true;
|
|
this.value = 140f;
|
|
NPC.noStream = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 10)
|
|
{
|
|
this.displayName = "Giant Worm";
|
|
this.name = "Giant Worm Head";
|
|
this.width = 14;
|
|
this.height = 14;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 8;
|
|
this.defense = 0;
|
|
this.lifeMax = 30;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.behindTiles = true;
|
|
this.value = 40f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 11)
|
|
{
|
|
this.displayName = "Giant Worm";
|
|
this.name = "Giant Worm Body";
|
|
this.width = 14;
|
|
this.height = 14;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 4;
|
|
this.defense = 4;
|
|
this.lifeMax = 30;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.behindTiles = true;
|
|
this.value = 40f;
|
|
NPC.noStream = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 12)
|
|
{
|
|
this.displayName = "Giant Worm";
|
|
this.name = "Giant Worm Tail";
|
|
this.width = 14;
|
|
this.height = 14;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 4;
|
|
this.defense = 6;
|
|
this.lifeMax = 30;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.behindTiles = true;
|
|
this.value = 40f;
|
|
NPC.noStream = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 13)
|
|
{
|
|
this.displayName = "Eater of Worlds";
|
|
this.npcSlots = 5f;
|
|
this.name = "Eater of Worlds Head";
|
|
this.width = 38;
|
|
this.height = 38;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 22;
|
|
this.defense = 2;
|
|
this.lifeMax = 65;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.behindTiles = true;
|
|
this.value = 300f;
|
|
this.scale = 1f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 14)
|
|
{
|
|
this.displayName = "Eater of Worlds";
|
|
this.name = "Eater of Worlds Body";
|
|
this.width = 38;
|
|
this.height = 38;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 13;
|
|
this.defense = 4;
|
|
this.lifeMax = 150;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.behindTiles = true;
|
|
this.value = 300f;
|
|
this.scale = 1f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
NPC.noStream = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 15)
|
|
{
|
|
this.displayName = "Eater of Worlds";
|
|
this.name = "Eater of Worlds Tail";
|
|
this.width = 38;
|
|
this.height = 38;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 11;
|
|
this.defense = 8;
|
|
this.lifeMax = 220;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.behindTiles = true;
|
|
this.value = 300f;
|
|
this.scale = 1f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
NPC.noStream = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 16)
|
|
{
|
|
this.npcSlots = 2f;
|
|
this.name = "Mother Slime";
|
|
this.width = 36;
|
|
this.height = 24;
|
|
this.aiStyle = 1;
|
|
this.damage = 20;
|
|
this.defense = 7;
|
|
this.lifeMax = 90;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.alpha = 120;
|
|
this.color = new Color(0, 0, 0, 50);
|
|
this.value = 75f;
|
|
this.scale = 1.25f;
|
|
this.knockBackResist = 0.6f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 17)
|
|
{
|
|
this.townNPC = true;
|
|
this.friendly = true;
|
|
this.name = "Merchant";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 7;
|
|
this.damage = 10;
|
|
this.defense = 15;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 18)
|
|
{
|
|
this.townNPC = true;
|
|
this.friendly = true;
|
|
this.name = "Nurse";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 7;
|
|
this.damage = 10;
|
|
this.defense = 15;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 19)
|
|
{
|
|
this.townNPC = true;
|
|
this.friendly = true;
|
|
this.name = "Arms Dealer";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 7;
|
|
this.damage = 10;
|
|
this.defense = 15;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 20)
|
|
{
|
|
this.townNPC = true;
|
|
this.friendly = true;
|
|
this.name = "Dryad";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 7;
|
|
this.damage = 10;
|
|
this.defense = 15;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 21)
|
|
{
|
|
this.name = "Skeleton";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 20;
|
|
this.defense = 8;
|
|
this.lifeMax = 60;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.5f;
|
|
this.value = 100f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 22)
|
|
{
|
|
this.townNPC = true;
|
|
this.friendly = true;
|
|
this.name = "Guide";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 7;
|
|
this.damage = 10;
|
|
this.defense = 15;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 23)
|
|
{
|
|
this.name = "Meteor Head";
|
|
this.width = 22;
|
|
this.height = 22;
|
|
this.aiStyle = 5;
|
|
this.damage = 40;
|
|
this.defense = 6;
|
|
this.lifeMax = 26;
|
|
this.soundHit = 3;
|
|
this.soundKilled = 3;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.value = 80f;
|
|
this.knockBackResist = 0.4f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 24)
|
|
{
|
|
this.npcSlots = 3f;
|
|
this.name = "Fire Imp";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 8;
|
|
this.damage = 30;
|
|
this.defense = 16;
|
|
this.lifeMax = 70;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
this.lavaImmune = true;
|
|
this.value = 350f;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 25)
|
|
{
|
|
this.name = "Burning Sphere";
|
|
this.width = 16;
|
|
this.height = 16;
|
|
this.aiStyle = 9;
|
|
this.damage = 30;
|
|
this.defense = 0;
|
|
this.lifeMax = 1;
|
|
this.soundHit = 3;
|
|
this.soundKilled = 3;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.alpha = 100;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 26)
|
|
{
|
|
this.name = "Goblin Peon";
|
|
this.scale = 0.9f;
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 12;
|
|
this.defense = 4;
|
|
this.lifeMax = 60;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.8f;
|
|
this.value = 100f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 27)
|
|
{
|
|
this.name = "Goblin Thief";
|
|
this.scale = 0.95f;
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 20;
|
|
this.defense = 6;
|
|
this.lifeMax = 80;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.7f;
|
|
this.value = 200f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 28)
|
|
{
|
|
this.name = "Goblin Warrior";
|
|
this.scale = 1.1f;
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 25;
|
|
this.defense = 8;
|
|
this.lifeMax = 110;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
this.value = 150f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 29)
|
|
{
|
|
this.name = "Goblin Sorcerer";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 8;
|
|
this.damage = 20;
|
|
this.defense = 2;
|
|
this.lifeMax = 40;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.6f;
|
|
this.value = 200f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 30)
|
|
{
|
|
this.name = "Chaos Ball";
|
|
this.width = 16;
|
|
this.height = 16;
|
|
this.aiStyle = 9;
|
|
this.damage = 20;
|
|
this.defense = 0;
|
|
this.lifeMax = 1;
|
|
this.soundHit = 3;
|
|
this.soundKilled = 3;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.alpha = 100;
|
|
this.knockBackResist = 0f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 31)
|
|
{
|
|
this.name = "Angry Bones";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 26;
|
|
this.defense = 8;
|
|
this.lifeMax = 80;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.8f;
|
|
this.value = 130f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 32)
|
|
{
|
|
this.name = "Dark Caster";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 8;
|
|
this.damage = 20;
|
|
this.defense = 2;
|
|
this.lifeMax = 50;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.6f;
|
|
this.value = 140f;
|
|
this.npcSlots = 2f;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 33)
|
|
{
|
|
this.name = "Water Sphere";
|
|
this.width = 16;
|
|
this.height = 16;
|
|
this.aiStyle = 9;
|
|
this.damage = 20;
|
|
this.defense = 0;
|
|
this.lifeMax = 1;
|
|
this.soundHit = 3;
|
|
this.soundKilled = 3;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.alpha = 255;
|
|
this.knockBackResist = 0f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 34)
|
|
{
|
|
this.name = "Cursed Skull";
|
|
this.width = 26;
|
|
this.height = 28;
|
|
this.aiStyle = 10;
|
|
this.damage = 35;
|
|
this.defense = 6;
|
|
this.lifeMax = 40;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.value = 150f;
|
|
this.knockBackResist = 0.2f;
|
|
this.npcSlots = 0.75f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 35)
|
|
{
|
|
this.displayName = "Skeletron";
|
|
this.name = "Skeletron Head";
|
|
this.width = 80;
|
|
this.height = 102;
|
|
this.aiStyle = 11;
|
|
this.damage = 32;
|
|
this.defense = 10;
|
|
this.lifeMax = 4400;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.value = 50000f;
|
|
this.knockBackResist = 0f;
|
|
this.boss = true;
|
|
this.npcSlots = 6f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 36)
|
|
{
|
|
this.displayName = "Skeletron";
|
|
this.name = "Skeletron Hand";
|
|
this.width = 52;
|
|
this.height = 52;
|
|
this.aiStyle = 12;
|
|
this.damage = 20;
|
|
this.defense = 14;
|
|
this.lifeMax = 600;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 37)
|
|
{
|
|
this.townNPC = true;
|
|
this.friendly = true;
|
|
this.name = "Old Man";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 7;
|
|
this.damage = 10;
|
|
this.defense = 15;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 38)
|
|
{
|
|
this.townNPC = true;
|
|
this.friendly = true;
|
|
this.name = "Demolitionist";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 7;
|
|
this.damage = 10;
|
|
this.defense = 15;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 39)
|
|
{
|
|
this.npcSlots = 6f;
|
|
this.name = "Bone Serpent Head";
|
|
this.displayName = "Bone Serpent";
|
|
this.width = 22;
|
|
this.height = 22;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 30;
|
|
this.defense = 10;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 5;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.behindTiles = true;
|
|
this.value = 1200f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 40)
|
|
{
|
|
this.name = "Bone Serpent Body";
|
|
this.displayName = "Bone Serpent";
|
|
this.width = 22;
|
|
this.height = 22;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 15;
|
|
this.defense = 12;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 5;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.behindTiles = true;
|
|
this.value = 1200f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 41)
|
|
{
|
|
this.name = "Bone Serpent Tail";
|
|
this.displayName = "Bone Serpent";
|
|
this.width = 22;
|
|
this.height = 22;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 10;
|
|
this.defense = 18;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 5;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.behindTiles = true;
|
|
this.value = 1200f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 42)
|
|
{
|
|
this.name = "Hornet";
|
|
this.width = 34;
|
|
this.height = 32;
|
|
this.aiStyle = 5;
|
|
this.damage = 26;
|
|
this.defense = 12;
|
|
this.lifeMax = 48;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.5f;
|
|
this.soundKilled = 1;
|
|
this.value = 200f;
|
|
this.noGravity = true;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 43)
|
|
{
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.name = "Man Eater";
|
|
this.width = 30;
|
|
this.height = 30;
|
|
this.aiStyle = 13;
|
|
this.damage = 34;
|
|
this.defense = 10;
|
|
this.lifeMax = 110;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0f;
|
|
this.soundKilled = 1;
|
|
this.value = 350f;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 44)
|
|
{
|
|
this.name = "Undead Miner";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 22;
|
|
this.defense = 9;
|
|
this.lifeMax = 70;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.5f;
|
|
this.value = 250f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 45)
|
|
{
|
|
this.name = "Tim";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 8;
|
|
this.damage = 20;
|
|
this.defense = 4;
|
|
this.lifeMax = 200;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.6f;
|
|
this.value = 5000f;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 46)
|
|
{
|
|
this.name = "Bunny";
|
|
this.width = 18;
|
|
this.height = 20;
|
|
this.aiStyle = 7;
|
|
this.damage = 0;
|
|
this.defense = 0;
|
|
this.lifeMax = 5;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 47)
|
|
{
|
|
this.name = "Corrupt Bunny";
|
|
this.width = 18;
|
|
this.height = 20;
|
|
this.aiStyle = 3;
|
|
this.damage = 20;
|
|
this.defense = 4;
|
|
this.lifeMax = 70;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.value = 500f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 48)
|
|
{
|
|
this.name = "Harpy";
|
|
this.width = 24;
|
|
this.height = 34;
|
|
this.aiStyle = 14;
|
|
this.damage = 25;
|
|
this.defense = 8;
|
|
this.lifeMax = 100;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.6f;
|
|
this.soundKilled = 1;
|
|
this.value = 300f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 49)
|
|
{
|
|
this.npcSlots = 0.5f;
|
|
this.name = "Cave Bat";
|
|
this.width = 22;
|
|
this.height = 18;
|
|
this.aiStyle = 14;
|
|
this.damage = 13;
|
|
this.defense = 2;
|
|
this.lifeMax = 16;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.8f;
|
|
this.soundKilled = 4;
|
|
this.value = 90f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 50)
|
|
{
|
|
this.boss = true;
|
|
this.name = "King Slime";
|
|
this.width = 98;
|
|
this.height = 92;
|
|
this.aiStyle = 15;
|
|
this.damage = 40;
|
|
this.defense = 10;
|
|
this.lifeMax = 2000;
|
|
this.knockBackResist = 0f;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.alpha = 30;
|
|
this.value = 10000f;
|
|
this.scale = 1.25f;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 51)
|
|
{
|
|
this.npcSlots = 0.5f;
|
|
this.name = "Jungle Bat";
|
|
this.width = 22;
|
|
this.height = 18;
|
|
this.aiStyle = 14;
|
|
this.damage = 20;
|
|
this.defense = 4;
|
|
this.lifeMax = 34;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.8f;
|
|
this.soundKilled = 4;
|
|
this.value = 80f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 52)
|
|
{
|
|
this.name = "Doctor Bones";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 20;
|
|
this.defense = 10;
|
|
this.lifeMax = 500;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.5f;
|
|
this.value = 1000f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 53)
|
|
{
|
|
this.name = "The Groom";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 14;
|
|
this.defense = 8;
|
|
this.lifeMax = 200;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.5f;
|
|
this.value = 1000f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 54)
|
|
{
|
|
this.townNPC = true;
|
|
this.friendly = true;
|
|
this.name = "Clothier";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 7;
|
|
this.damage = 10;
|
|
this.defense = 15;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 55)
|
|
{
|
|
this.noGravity = true;
|
|
this.name = "Goldfish";
|
|
this.width = 20;
|
|
this.height = 18;
|
|
this.aiStyle = 16;
|
|
this.damage = 0;
|
|
this.defense = 0;
|
|
this.lifeMax = 5;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 56)
|
|
{
|
|
this.noTileCollide = true;
|
|
this.noGravity = true;
|
|
this.name = "Snatcher";
|
|
this.width = 30;
|
|
this.height = 30;
|
|
this.aiStyle = 13;
|
|
this.damage = 25;
|
|
this.defense = 10;
|
|
this.lifeMax = 60;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0f;
|
|
this.soundKilled = 1;
|
|
this.value = 90f;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 57)
|
|
{
|
|
this.noGravity = true;
|
|
this.name = "Corrupt Goldfish";
|
|
this.width = 18;
|
|
this.height = 20;
|
|
this.aiStyle = 16;
|
|
this.damage = 30;
|
|
this.defense = 6;
|
|
this.lifeMax = 100;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.value = 500f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 58)
|
|
{
|
|
this.npcSlots = 0.5f;
|
|
this.noGravity = true;
|
|
this.name = "Piranha";
|
|
this.width = 18;
|
|
this.height = 20;
|
|
this.aiStyle = 16;
|
|
this.damage = 25;
|
|
this.defense = 2;
|
|
this.lifeMax = 30;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.value = 50f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 59)
|
|
{
|
|
this.name = "Lava Slime";
|
|
this.width = 24;
|
|
this.height = 18;
|
|
this.aiStyle = 1;
|
|
this.damage = 15;
|
|
this.defense = 10;
|
|
this.lifeMax = 50;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.scale = 1.1f;
|
|
this.alpha = 50;
|
|
this.lavaImmune = true;
|
|
this.value = 120f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 60)
|
|
{
|
|
this.npcSlots = 0.5f;
|
|
this.name = "Hellbat";
|
|
this.width = 22;
|
|
this.height = 18;
|
|
this.aiStyle = 14;
|
|
this.damage = 35;
|
|
this.defense = 8;
|
|
this.lifeMax = 46;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.8f;
|
|
this.soundKilled = 4;
|
|
this.value = 120f;
|
|
this.scale = 1.1f;
|
|
this.lavaImmune = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 61)
|
|
{
|
|
this.name = "Vulture";
|
|
this.width = 36;
|
|
this.height = 36;
|
|
this.aiStyle = 17;
|
|
this.damage = 15;
|
|
this.defense = 4;
|
|
this.lifeMax = 40;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.8f;
|
|
this.soundKilled = 1;
|
|
this.value = 60f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 62)
|
|
{
|
|
this.npcSlots = 2f;
|
|
this.name = "Demon";
|
|
this.width = 28;
|
|
this.height = 48;
|
|
this.aiStyle = 14;
|
|
this.damage = 32;
|
|
this.defense = 8;
|
|
this.lifeMax = 120;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.8f;
|
|
this.soundKilled = 1;
|
|
this.value = 300f;
|
|
this.lavaImmune = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 63)
|
|
{
|
|
this.noGravity = true;
|
|
this.name = "Blue Jellyfish";
|
|
this.width = 26;
|
|
this.height = 26;
|
|
this.aiStyle = 18;
|
|
this.damage = 20;
|
|
this.defense = 2;
|
|
this.lifeMax = 30;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.value = 100f;
|
|
this.alpha = 20;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 64)
|
|
{
|
|
this.noGravity = true;
|
|
this.name = "Pink Jellyfish";
|
|
this.width = 26;
|
|
this.height = 26;
|
|
this.aiStyle = 18;
|
|
this.damage = 30;
|
|
this.defense = 6;
|
|
this.lifeMax = 70;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.value = 100f;
|
|
this.alpha = 20;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 65)
|
|
{
|
|
this.noGravity = true;
|
|
this.name = "Shark";
|
|
this.width = 100;
|
|
this.height = 24;
|
|
this.aiStyle = 16;
|
|
this.damage = 40;
|
|
this.defense = 2;
|
|
this.lifeMax = 300;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.value = 400f;
|
|
this.knockBackResist = 0.7f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 66)
|
|
{
|
|
this.npcSlots = 2f;
|
|
this.name = "Voodoo Demon";
|
|
this.width = 28;
|
|
this.height = 48;
|
|
this.aiStyle = 14;
|
|
this.damage = 32;
|
|
this.defense = 8;
|
|
this.lifeMax = 140;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.8f;
|
|
this.soundKilled = 1;
|
|
this.value = 1000f;
|
|
this.lavaImmune = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 67)
|
|
{
|
|
this.name = "Crab";
|
|
this.width = 28;
|
|
this.height = 20;
|
|
this.aiStyle = 3;
|
|
this.damage = 20;
|
|
this.defense = 10;
|
|
this.lifeMax = 40;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.value = 60f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 68)
|
|
{
|
|
this.name = "Dungeon Guardian";
|
|
this.width = 80;
|
|
this.height = 102;
|
|
this.aiStyle = 11;
|
|
this.damage = 1000;
|
|
this.defense = 9000;
|
|
this.lifeMax = 9999;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 69)
|
|
{
|
|
this.name = "Antlion";
|
|
this.width = 24;
|
|
this.height = 24;
|
|
this.aiStyle = 19;
|
|
this.damage = 10;
|
|
this.defense = 6;
|
|
this.lifeMax = 45;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0f;
|
|
this.value = 60f;
|
|
this.behindTiles = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 70)
|
|
{
|
|
this.npcSlots = 0.3f;
|
|
this.name = "Spike Ball";
|
|
this.width = 34;
|
|
this.height = 34;
|
|
this.aiStyle = 20;
|
|
this.damage = 32;
|
|
this.defense = 100;
|
|
this.lifeMax = 100;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0f;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.dontTakeDamage = true;
|
|
this.scale = 1.5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 71)
|
|
{
|
|
this.npcSlots = 2f;
|
|
this.name = "Dungeon Slime";
|
|
this.width = 36;
|
|
this.height = 24;
|
|
this.aiStyle = 1;
|
|
this.damage = 30;
|
|
this.defense = 7;
|
|
this.lifeMax = 150;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.alpha = 60;
|
|
this.value = 150f;
|
|
this.scale = 1.25f;
|
|
this.knockBackResist = 0.6f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 72)
|
|
{
|
|
this.npcSlots = 0.3f;
|
|
this.name = "Blazing Wheel";
|
|
this.width = 34;
|
|
this.height = 34;
|
|
this.aiStyle = 21;
|
|
this.damage = 24;
|
|
this.defense = 100;
|
|
this.lifeMax = 100;
|
|
this.alpha = 100;
|
|
this.behindTiles = true;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0f;
|
|
this.noGravity = true;
|
|
this.dontTakeDamage = true;
|
|
this.scale = 1.2f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 73)
|
|
{
|
|
this.name = "Goblin Scout";
|
|
this.scale = 0.95f;
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 20;
|
|
this.defense = 6;
|
|
this.lifeMax = 80;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.7f;
|
|
this.value = 200f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 74 || this.type == 297 || this.type == 298)
|
|
{
|
|
this.name = "Bird";
|
|
this.width = 14;
|
|
this.height = 14;
|
|
this.aiStyle = 24;
|
|
this.damage = 0;
|
|
this.defense = 0;
|
|
this.lifeMax = 5;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.8f;
|
|
this.soundKilled = 1;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 75)
|
|
{
|
|
this.noGravity = true;
|
|
this.name = "Pixie";
|
|
this.width = 20;
|
|
this.height = 20;
|
|
this.aiStyle = 22;
|
|
this.damage = 55;
|
|
this.defense = 20;
|
|
this.lifeMax = 150;
|
|
this.soundHit = 5;
|
|
this.knockBackResist = 0.6f;
|
|
this.soundKilled = 7;
|
|
this.value = 350f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 77)
|
|
{
|
|
this.name = "Armored Skeleton";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 40;
|
|
this.defense = 28;
|
|
this.lifeMax = 260;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.4f;
|
|
this.value = 400f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 78)
|
|
{
|
|
this.name = "Mummy";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 50;
|
|
this.defense = 16;
|
|
this.lifeMax = 130;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 6;
|
|
this.knockBackResist = 0.6f;
|
|
this.value = 600f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 79)
|
|
{
|
|
this.name = "Dark Mummy";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 60;
|
|
this.defense = 18;
|
|
this.lifeMax = 180;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 6;
|
|
this.knockBackResist = 0.5f;
|
|
this.value = 700f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 80)
|
|
{
|
|
this.name = "Light Mummy";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 55;
|
|
this.defense = 18;
|
|
this.lifeMax = 200;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 6;
|
|
this.knockBackResist = 0.55f;
|
|
this.value = 700f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 81)
|
|
{
|
|
this.name = "Corrupt Slime";
|
|
this.width = 40;
|
|
this.height = 30;
|
|
this.aiStyle = 1;
|
|
this.damage = 55;
|
|
this.defense = 20;
|
|
this.lifeMax = 170;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.alpha = 55;
|
|
this.value = 400f;
|
|
this.scale = 1.1f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 82)
|
|
{
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.name = "Wraith";
|
|
this.width = 24;
|
|
this.height = 44;
|
|
this.aiStyle = 22;
|
|
this.damage = 65;
|
|
this.defense = 16;
|
|
this.lifeMax = 160;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 6;
|
|
this.alpha = 100;
|
|
this.value = 500f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
this.knockBackResist = 0.7f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 83)
|
|
{
|
|
this.name = "Cursed Hammer";
|
|
this.width = 40;
|
|
this.height = 40;
|
|
this.aiStyle = 23;
|
|
this.damage = 80;
|
|
this.defense = 18;
|
|
this.lifeMax = 200;
|
|
this.soundHit = 4;
|
|
this.soundKilled = 6;
|
|
this.value = 1000f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
this.knockBackResist = 0.4f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 84)
|
|
{
|
|
this.name = "Enchanted Sword";
|
|
this.width = 40;
|
|
this.height = 40;
|
|
this.aiStyle = 23;
|
|
this.damage = 80;
|
|
this.defense = 18;
|
|
this.lifeMax = 200;
|
|
this.soundHit = 4;
|
|
this.soundKilled = 6;
|
|
this.value = 1000f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
this.knockBackResist = 0.4f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 85)
|
|
{
|
|
this.name = "Mimic";
|
|
this.width = 24;
|
|
this.height = 24;
|
|
this.aiStyle = 25;
|
|
this.damage = 80;
|
|
this.defense = 30;
|
|
this.lifeMax = 500;
|
|
this.soundHit = 4;
|
|
this.soundKilled = 6;
|
|
this.value = 100000f;
|
|
this.knockBackResist = 0.3f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 86)
|
|
{
|
|
this.name = "Unicorn";
|
|
this.width = 46;
|
|
this.height = 42;
|
|
this.aiStyle = 26;
|
|
this.damage = 65;
|
|
this.defense = 30;
|
|
this.lifeMax = 400;
|
|
this.soundHit = 12;
|
|
this.soundKilled = 18;
|
|
this.knockBackResist = 0.3f;
|
|
this.value = 1000f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 87)
|
|
{
|
|
this.displayName = "Wyvern";
|
|
this.noTileCollide = true;
|
|
this.npcSlots = 5f;
|
|
this.name = "Wyvern Head";
|
|
this.width = 32;
|
|
this.height = 32;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 80;
|
|
this.defense = 10;
|
|
this.lifeMax = 4000;
|
|
this.soundHit = 7;
|
|
this.soundKilled = 8;
|
|
this.noGravity = true;
|
|
this.knockBackResist = 0f;
|
|
this.value = 10000f;
|
|
this.scale = 1f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 88)
|
|
{
|
|
this.displayName = "Wyvern";
|
|
this.noTileCollide = true;
|
|
this.name = "Wyvern Legs";
|
|
this.width = 32;
|
|
this.height = 32;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 40;
|
|
this.defense = 20;
|
|
this.lifeMax = 4000;
|
|
this.soundHit = 7;
|
|
this.soundKilled = 8;
|
|
this.noGravity = true;
|
|
this.knockBackResist = 0f;
|
|
this.value = 10000f;
|
|
this.scale = 1f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
NPC.noStream = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 89)
|
|
{
|
|
this.displayName = "Wyvern";
|
|
this.noTileCollide = true;
|
|
this.name = "Wyvern Body";
|
|
this.width = 32;
|
|
this.height = 32;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 40;
|
|
this.defense = 20;
|
|
this.lifeMax = 4000;
|
|
this.soundHit = 7;
|
|
this.soundKilled = 8;
|
|
this.noGravity = true;
|
|
this.knockBackResist = 0f;
|
|
this.value = 2000f;
|
|
this.scale = 1f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
NPC.noStream = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 90)
|
|
{
|
|
this.displayName = "Wyvern";
|
|
this.noTileCollide = true;
|
|
this.name = "Wyvern Body 2";
|
|
this.width = 32;
|
|
this.height = 32;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 40;
|
|
this.defense = 20;
|
|
this.lifeMax = 4000;
|
|
this.soundHit = 7;
|
|
this.soundKilled = 8;
|
|
this.noGravity = true;
|
|
this.knockBackResist = 0f;
|
|
this.value = 10000f;
|
|
this.scale = 1f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
NPC.noStream = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 91)
|
|
{
|
|
this.displayName = "Wyvern";
|
|
this.noTileCollide = true;
|
|
this.name = "Wyvern Body 3";
|
|
this.width = 32;
|
|
this.height = 32;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 40;
|
|
this.defense = 20;
|
|
this.lifeMax = 4000;
|
|
this.soundHit = 7;
|
|
this.soundKilled = 8;
|
|
this.noGravity = true;
|
|
this.knockBackResist = 0f;
|
|
this.value = 10000f;
|
|
this.scale = 1f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
NPC.noStream = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 92)
|
|
{
|
|
this.displayName = "Wyvern";
|
|
this.noTileCollide = true;
|
|
this.name = "Wyvern Tail";
|
|
this.width = 32;
|
|
this.height = 32;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 40;
|
|
this.defense = 20;
|
|
this.lifeMax = 4000;
|
|
this.soundHit = 7;
|
|
this.soundKilled = 8;
|
|
this.noGravity = true;
|
|
this.knockBackResist = 0f;
|
|
this.value = 10000f;
|
|
this.scale = 1f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
NPC.noStream = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 93)
|
|
{
|
|
this.npcSlots = 0.5f;
|
|
this.name = "Giant Bat";
|
|
this.width = 26;
|
|
this.height = 20;
|
|
this.aiStyle = 14;
|
|
this.damage = 45;
|
|
this.defense = 16;
|
|
this.lifeMax = 100;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.75f;
|
|
this.soundKilled = 4;
|
|
this.value = 400f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 94)
|
|
{
|
|
this.npcSlots = 1f;
|
|
this.name = "Corruptor";
|
|
this.width = 44;
|
|
this.height = 44;
|
|
this.aiStyle = 5;
|
|
this.damage = 60;
|
|
this.defense = 32;
|
|
this.lifeMax = 230;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.noGravity = true;
|
|
this.knockBackResist = 0.55f;
|
|
this.value = 500f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 95)
|
|
{
|
|
this.displayName = "Digger";
|
|
this.name = "Digger Head";
|
|
this.width = 22;
|
|
this.height = 22;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 45;
|
|
this.defense = 10;
|
|
this.lifeMax = 200;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.behindTiles = true;
|
|
this.scale = 0.9f;
|
|
this.value = 300f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 96)
|
|
{
|
|
this.displayName = "Digger";
|
|
this.name = "Digger Body";
|
|
this.width = 22;
|
|
this.height = 22;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 28;
|
|
this.defense = 20;
|
|
this.lifeMax = 200;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.behindTiles = true;
|
|
this.scale = 0.9f;
|
|
this.value = 300f;
|
|
NPC.noStream = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 97)
|
|
{
|
|
this.displayName = "Digger";
|
|
this.name = "Digger Tail";
|
|
this.width = 22;
|
|
this.height = 22;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 26;
|
|
this.defense = 30;
|
|
this.lifeMax = 200;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.behindTiles = true;
|
|
this.scale = 0.9f;
|
|
this.value = 300f;
|
|
NPC.noStream = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 98)
|
|
{
|
|
this.displayName = "World Feeder";
|
|
this.npcSlots = 3.5f;
|
|
this.name = "Seeker Head";
|
|
this.width = 22;
|
|
this.height = 22;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 70;
|
|
this.defense = 36;
|
|
this.lifeMax = 500;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.behindTiles = true;
|
|
this.value = 700f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 99)
|
|
{
|
|
this.displayName = "World Feeder";
|
|
this.name = "Seeker Body";
|
|
this.width = 22;
|
|
this.height = 22;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 55;
|
|
this.defense = 40;
|
|
this.lifeMax = 500;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.behindTiles = true;
|
|
this.value = 700f;
|
|
NPC.noStream = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 100)
|
|
{
|
|
this.displayName = "World Feeder";
|
|
this.name = "Seeker Tail";
|
|
this.width = 22;
|
|
this.height = 22;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 40;
|
|
this.defense = 44;
|
|
this.lifeMax = 500;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.behindTiles = true;
|
|
this.value = 700f;
|
|
NPC.noStream = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 101)
|
|
{
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.behindTiles = true;
|
|
this.name = "Clinger";
|
|
this.width = 30;
|
|
this.height = 30;
|
|
this.aiStyle = 13;
|
|
this.damage = 70;
|
|
this.defense = 30;
|
|
this.lifeMax = 320;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.2f;
|
|
this.soundKilled = 1;
|
|
this.value = 600f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 102)
|
|
{
|
|
this.npcSlots = 0.5f;
|
|
this.noGravity = true;
|
|
this.name = "Angler Fish";
|
|
this.width = 18;
|
|
this.height = 20;
|
|
this.aiStyle = 16;
|
|
this.damage = 80;
|
|
this.defense = 22;
|
|
this.lifeMax = 90;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.value = 500f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 103)
|
|
{
|
|
this.noGravity = true;
|
|
this.name = "Green Jellyfish";
|
|
this.width = 26;
|
|
this.height = 26;
|
|
this.aiStyle = 18;
|
|
this.damage = 80;
|
|
this.defense = 30;
|
|
this.lifeMax = 120;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.value = 800f;
|
|
this.alpha = 20;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 104)
|
|
{
|
|
this.name = "Werewolf";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 70;
|
|
this.defense = 40;
|
|
this.lifeMax = 400;
|
|
this.soundHit = 6;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.4f;
|
|
this.value = 1000f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 105)
|
|
{
|
|
this.friendly = true;
|
|
this.name = "Bound Goblin";
|
|
this.width = 18;
|
|
this.height = 34;
|
|
this.aiStyle = 0;
|
|
this.damage = 10;
|
|
this.defense = 15;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
this.scale = 0.9f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 106)
|
|
{
|
|
this.friendly = true;
|
|
this.name = "Bound Wizard";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 0;
|
|
this.damage = 10;
|
|
this.defense = 15;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 107)
|
|
{
|
|
this.townNPC = true;
|
|
this.friendly = true;
|
|
this.name = "Goblin Tinkerer";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 7;
|
|
this.damage = 10;
|
|
this.defense = 15;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
this.scale = 0.9f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 108)
|
|
{
|
|
this.townNPC = true;
|
|
this.friendly = true;
|
|
this.name = "Wizard";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 7;
|
|
this.damage = 10;
|
|
this.defense = 15;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 109)
|
|
{
|
|
this.name = "Clown";
|
|
this.width = 34;
|
|
this.height = 78;
|
|
this.aiStyle = 3;
|
|
this.damage = 50;
|
|
this.defense = 20;
|
|
this.lifeMax = 400;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.4f;
|
|
this.value = 8000f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 110)
|
|
{
|
|
this.name = "Skeleton Archer";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 45;
|
|
this.defense = 14;
|
|
this.lifeMax = 210;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.55f;
|
|
this.value = 400f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 111)
|
|
{
|
|
this.name = "Goblin Archer";
|
|
this.scale = 0.95f;
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 20;
|
|
this.defense = 6;
|
|
this.lifeMax = 80;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.7f;
|
|
this.value = 200f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 112)
|
|
{
|
|
this.name = "Vile Spit";
|
|
this.width = 16;
|
|
this.height = 16;
|
|
this.aiStyle = 9;
|
|
this.damage = 65;
|
|
this.defense = 0;
|
|
this.lifeMax = 1;
|
|
this.soundHit = 0;
|
|
this.soundKilled = 9;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.scale = 0.9f;
|
|
this.alpha = 80;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 113)
|
|
{
|
|
this.npcSlots = 10f;
|
|
this.name = "Wall of Flesh";
|
|
this.width = 100;
|
|
this.height = 100;
|
|
this.aiStyle = 27;
|
|
this.damage = 50;
|
|
this.defense = 12;
|
|
this.lifeMax = 8000;
|
|
this.soundHit = 8;
|
|
this.soundKilled = 10;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.behindTiles = true;
|
|
this.knockBackResist = 0f;
|
|
this.scale = 1.2f;
|
|
this.boss = true;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
this.value = 80000f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 114)
|
|
{
|
|
this.name = "Wall of Flesh Eye";
|
|
this.displayName = "Wall of Flesh";
|
|
this.width = 100;
|
|
this.height = 100;
|
|
this.aiStyle = 28;
|
|
this.damage = 50;
|
|
this.defense = 0;
|
|
this.lifeMax = 8000;
|
|
this.soundHit = 8;
|
|
this.soundKilled = 10;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.behindTiles = true;
|
|
this.knockBackResist = 0f;
|
|
this.scale = 1.2f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
this.value = 80000f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 115)
|
|
{
|
|
this.name = "The Hungry";
|
|
this.width = 30;
|
|
this.height = 30;
|
|
this.aiStyle = 29;
|
|
this.damage = 30;
|
|
this.defense = 10;
|
|
this.lifeMax = 240;
|
|
this.soundHit = 9;
|
|
this.soundKilled = 11;
|
|
this.noGravity = true;
|
|
this.behindTiles = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 1.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 116)
|
|
{
|
|
this.name = "The Hungry II";
|
|
this.displayName = "The Hungry";
|
|
this.width = 30;
|
|
this.height = 32;
|
|
this.aiStyle = 2;
|
|
this.damage = 30;
|
|
this.defense = 6;
|
|
this.lifeMax = 80;
|
|
this.soundHit = 9;
|
|
this.knockBackResist = 0.8f;
|
|
this.soundKilled = 12;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 117)
|
|
{
|
|
this.displayName = "Leech";
|
|
this.name = "Leech Head";
|
|
this.width = 14;
|
|
this.height = 14;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 26;
|
|
this.defense = 2;
|
|
this.lifeMax = 60;
|
|
this.soundHit = 9;
|
|
this.soundKilled = 12;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.behindTiles = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 118)
|
|
{
|
|
this.displayName = "Leech";
|
|
this.name = "Leech Body";
|
|
this.width = 14;
|
|
this.height = 14;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 22;
|
|
this.defense = 6;
|
|
this.lifeMax = 60;
|
|
this.soundHit = 9;
|
|
this.soundKilled = 12;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.behindTiles = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 119)
|
|
{
|
|
this.displayName = "Leech";
|
|
this.name = "Leech Tail";
|
|
this.width = 14;
|
|
this.height = 14;
|
|
this.aiStyle = 6;
|
|
this.netAlways = true;
|
|
this.damage = 18;
|
|
this.defense = 10;
|
|
this.lifeMax = 60;
|
|
this.soundHit = 9;
|
|
this.soundKilled = 12;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.behindTiles = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 120)
|
|
{
|
|
this.name = "Chaos Elemental";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 40;
|
|
this.defense = 30;
|
|
this.lifeMax = 370;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 6;
|
|
this.knockBackResist = 0.4f;
|
|
this.value = 600f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 121)
|
|
{
|
|
this.name = "Slimer";
|
|
this.width = 40;
|
|
this.height = 30;
|
|
this.aiStyle = 14;
|
|
this.damage = 45;
|
|
this.defense = 20;
|
|
this.lifeMax = 60;
|
|
this.soundHit = 1;
|
|
this.alpha = 55;
|
|
this.knockBackResist = 0.8f;
|
|
this.scale = 1.1f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 122)
|
|
{
|
|
this.noGravity = true;
|
|
this.name = "Gastropod";
|
|
this.width = 20;
|
|
this.height = 20;
|
|
this.aiStyle = 22;
|
|
this.damage = 60;
|
|
this.defense = 22;
|
|
this.lifeMax = 220;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.8f;
|
|
this.soundKilled = 1;
|
|
this.value = 600f;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 123)
|
|
{
|
|
this.friendly = true;
|
|
this.name = "Bound Mechanic";
|
|
this.width = 18;
|
|
this.height = 34;
|
|
this.aiStyle = 0;
|
|
this.damage = 10;
|
|
this.defense = 15;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
this.scale = 0.9f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 124)
|
|
{
|
|
this.townNPC = true;
|
|
this.friendly = true;
|
|
this.name = "Mechanic";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 7;
|
|
this.damage = 10;
|
|
this.defense = 15;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 125)
|
|
{
|
|
this.name = "Retinazer";
|
|
this.width = 100;
|
|
this.height = 110;
|
|
this.aiStyle = 30;
|
|
this.damage = 40;
|
|
this.defense = 10;
|
|
this.lifeMax = 20000;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 14;
|
|
this.knockBackResist = 0f;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.timeLeft = NPC.activeTime * 30;
|
|
this.boss = true;
|
|
this.value = 120000f;
|
|
this.npcSlots = 5f;
|
|
this.boss = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 126)
|
|
{
|
|
this.name = "Spazmatism";
|
|
this.width = 100;
|
|
this.height = 110;
|
|
this.aiStyle = 31;
|
|
this.damage = 40;
|
|
this.defense = 10;
|
|
this.lifeMax = 20000;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 14;
|
|
this.knockBackResist = 0f;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.timeLeft = NPC.activeTime * 30;
|
|
this.boss = true;
|
|
this.value = 120000f;
|
|
this.npcSlots = 5f;
|
|
this.boss = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 127)
|
|
{
|
|
this.name = "Skeletron Prime";
|
|
this.width = 80;
|
|
this.height = 102;
|
|
this.aiStyle = 32;
|
|
this.damage = 45;
|
|
this.defense = 22;
|
|
this.lifeMax = 25000;
|
|
this.soundHit = 4;
|
|
this.soundKilled = 14;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.value = 120000f;
|
|
this.knockBackResist = 0f;
|
|
this.boss = true;
|
|
this.npcSlots = 6f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
this.boss = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 128)
|
|
{
|
|
this.name = "Prime Cannon";
|
|
this.width = 52;
|
|
this.height = 52;
|
|
this.aiStyle = 35;
|
|
this.damage = 30;
|
|
this.defense = 20;
|
|
this.lifeMax = 6000;
|
|
this.soundHit = 4;
|
|
this.soundKilled = 14;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.netAlways = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 129)
|
|
{
|
|
this.name = "Prime Saw";
|
|
this.width = 52;
|
|
this.height = 52;
|
|
this.aiStyle = 33;
|
|
this.damage = 47;
|
|
this.defense = 36;
|
|
this.lifeMax = 8000;
|
|
this.soundHit = 4;
|
|
this.soundKilled = 14;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.netAlways = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 130)
|
|
{
|
|
this.name = "Prime Vice";
|
|
this.width = 52;
|
|
this.height = 52;
|
|
this.aiStyle = 34;
|
|
this.damage = 40;
|
|
this.defense = 30;
|
|
this.lifeMax = 8000;
|
|
this.soundHit = 4;
|
|
this.soundKilled = 14;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.netAlways = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 131)
|
|
{
|
|
this.name = "Prime Laser";
|
|
this.width = 52;
|
|
this.height = 52;
|
|
this.aiStyle = 36;
|
|
this.damage = 29;
|
|
this.defense = 20;
|
|
this.lifeMax = 5000;
|
|
this.soundHit = 4;
|
|
this.soundKilled = 14;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.netAlways = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 132)
|
|
{
|
|
this.displayName = "Zombie";
|
|
this.name = "Bald Zombie";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 15;
|
|
this.defense = 5;
|
|
this.lifeMax = 40;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.5f;
|
|
this.value = 65f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 133)
|
|
{
|
|
this.name = "Wandering Eye";
|
|
this.width = 30;
|
|
this.height = 32;
|
|
this.aiStyle = 2;
|
|
this.damage = 40;
|
|
this.defense = 20;
|
|
this.lifeMax = 300;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.8f;
|
|
this.soundKilled = 1;
|
|
this.value = 500f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 134)
|
|
{
|
|
this.displayName = "The Destroyer";
|
|
this.npcSlots = 5f;
|
|
this.name = "The Destroyer";
|
|
this.width = 38;
|
|
this.height = 38;
|
|
this.aiStyle = 37;
|
|
this.damage = 50;
|
|
this.defense = 0;
|
|
this.lifeMax = 60000;
|
|
this.soundHit = 4;
|
|
this.soundKilled = 14;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.behindTiles = true;
|
|
this.value = 120000f;
|
|
this.scale = 1.25f;
|
|
this.boss = true;
|
|
this.netAlways = true;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
flag = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 135)
|
|
{
|
|
this.displayName = "The Destroyer";
|
|
this.npcSlots = 5f;
|
|
this.name = "The Destroyer Body";
|
|
this.width = 38;
|
|
this.height = 38;
|
|
this.aiStyle = 37;
|
|
this.damage = 35;
|
|
this.defense = 26;
|
|
this.lifeMax = 60000;
|
|
this.soundHit = 4;
|
|
this.soundKilled = 14;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.behindTiles = true;
|
|
this.netAlways = true;
|
|
this.scale = 1.25f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
NPC.noStream = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 136)
|
|
{
|
|
this.displayName = "The Destroyer";
|
|
this.npcSlots = 5f;
|
|
this.name = "The Destroyer Tail";
|
|
this.width = 38;
|
|
this.height = 38;
|
|
this.aiStyle = 37;
|
|
this.damage = 20;
|
|
this.defense = 30;
|
|
this.lifeMax = 60000;
|
|
this.soundHit = 4;
|
|
this.soundKilled = 14;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.behindTiles = true;
|
|
this.scale = 1.25f;
|
|
this.netAlways = true;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
NPC.noStream = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 139)
|
|
{
|
|
this.npcSlots = 1f;
|
|
this.name = "Probe";
|
|
this.width = 30;
|
|
this.height = 30;
|
|
this.aiStyle = 5;
|
|
this.damage = 40;
|
|
this.defense = 18;
|
|
this.lifeMax = 180;
|
|
this.soundHit = 4;
|
|
this.soundKilled = 14;
|
|
this.noGravity = true;
|
|
this.knockBackResist = 0.8f;
|
|
this.noTileCollide = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 137)
|
|
{
|
|
this.name = "Illuminant Bat";
|
|
this.width = 26;
|
|
this.height = 20;
|
|
this.aiStyle = 14;
|
|
this.damage = 75;
|
|
this.defense = 30;
|
|
this.lifeMax = 200;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.75f;
|
|
this.soundKilled = 6;
|
|
this.value = 500f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 138)
|
|
{
|
|
this.name = "Illuminant Slime";
|
|
this.width = 24;
|
|
this.height = 18;
|
|
this.aiStyle = 1;
|
|
this.damage = 70;
|
|
this.defense = 30;
|
|
this.lifeMax = 180;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 6;
|
|
this.alpha = 100;
|
|
this.value = 400f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
this.knockBackResist = 0.85f;
|
|
this.scale = 1.05f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 140)
|
|
{
|
|
this.name = "Possessed Armor";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 55;
|
|
this.defense = 28;
|
|
this.lifeMax = 260;
|
|
this.soundHit = 4;
|
|
this.soundKilled = 6;
|
|
this.knockBackResist = 0.4f;
|
|
this.value = 400f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
this.buffImmune[24] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 141)
|
|
{
|
|
this.name = "Toxic Sludge";
|
|
this.width = 34;
|
|
this.height = 28;
|
|
this.aiStyle = 1;
|
|
this.damage = 50;
|
|
this.defense = 18;
|
|
this.lifeMax = 150;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.alpha = 55;
|
|
this.value = 400f;
|
|
this.scale = 1.1f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
this.knockBackResist = 0.8f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 142)
|
|
{
|
|
this.townNPC = true;
|
|
this.friendly = true;
|
|
this.name = "Santa Claus";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 7;
|
|
this.damage = 10;
|
|
this.defense = 15;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 143)
|
|
{
|
|
this.name = "Snowman Gangsta";
|
|
this.width = 26;
|
|
this.height = 40;
|
|
this.aiStyle = 38;
|
|
this.damage = 50;
|
|
this.defense = 20;
|
|
this.lifeMax = 200;
|
|
this.soundHit = 11;
|
|
this.soundKilled = 15;
|
|
this.knockBackResist = 0.6f;
|
|
this.value = 400f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 144)
|
|
{
|
|
this.name = "Mister Stabby";
|
|
this.width = 26;
|
|
this.height = 40;
|
|
this.aiStyle = 38;
|
|
this.damage = 65;
|
|
this.defense = 26;
|
|
this.lifeMax = 240;
|
|
this.soundHit = 11;
|
|
this.soundKilled = 15;
|
|
this.knockBackResist = 0.6f;
|
|
this.value = 400f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 145)
|
|
{
|
|
this.name = "Snow Balla";
|
|
this.width = 26;
|
|
this.height = 40;
|
|
this.aiStyle = 38;
|
|
this.damage = 55;
|
|
this.defense = 22;
|
|
this.lifeMax = 220;
|
|
this.soundHit = 11;
|
|
this.soundKilled = 15;
|
|
this.knockBackResist = 0.6f;
|
|
this.value = 400f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 147)
|
|
{
|
|
this.name = "Ice Slime";
|
|
this.width = 24;
|
|
this.height = 18;
|
|
this.aiStyle = 1;
|
|
this.damage = 8;
|
|
this.defense = 4;
|
|
this.lifeMax = 30;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.alpha = 50;
|
|
this.value = 50f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 148)
|
|
{
|
|
this.name = "Penguin";
|
|
this.width = 16;
|
|
this.height = 34;
|
|
this.aiStyle = 7;
|
|
this.damage = 0;
|
|
this.defense = 0;
|
|
this.lifeMax = 5;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 149)
|
|
{
|
|
this.name = "Penguin";
|
|
this.width = 16;
|
|
this.height = 34;
|
|
this.aiStyle = 7;
|
|
this.damage = 0;
|
|
this.defense = 0;
|
|
this.lifeMax = 5;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 150)
|
|
{
|
|
this.npcSlots = 0.5f;
|
|
this.name = "Ice Bat";
|
|
this.width = 22;
|
|
this.height = 22;
|
|
this.aiStyle = 14;
|
|
this.damage = 18;
|
|
this.defense = 6;
|
|
this.lifeMax = 30;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.8f;
|
|
this.soundKilled = 4;
|
|
this.value = 130f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 151)
|
|
{
|
|
this.npcSlots = 0.5f;
|
|
this.name = "Lava bat";
|
|
this.width = 22;
|
|
this.height = 22;
|
|
this.aiStyle = 14;
|
|
this.damage = 50;
|
|
this.defense = 16;
|
|
this.lifeMax = 160;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.6f;
|
|
this.soundKilled = 4;
|
|
this.value = 400f;
|
|
this.scale = 1.15f;
|
|
this.lavaImmune = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 152)
|
|
{
|
|
this.npcSlots = 0.5f;
|
|
this.name = "Giant Flying Fox";
|
|
this.width = 38;
|
|
this.height = 34;
|
|
this.aiStyle = 14;
|
|
this.damage = 80;
|
|
this.defense = 24;
|
|
this.lifeMax = 220;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.65f;
|
|
this.soundKilled = 4;
|
|
this.value = 400f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 153)
|
|
{
|
|
this.npcSlots = 2f;
|
|
this.name = "Giant Tortoise";
|
|
this.width = 46;
|
|
this.height = 32;
|
|
this.aiStyle = 39;
|
|
this.damage = 80;
|
|
this.defense = 30;
|
|
this.lifeMax = 470;
|
|
this.soundHit = 7;
|
|
this.knockBackResist = 0.3f;
|
|
this.soundKilled = 5;
|
|
this.value = 500f;
|
|
this.noGravity = false;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 154)
|
|
{
|
|
this.npcSlots = 1.5f;
|
|
this.name = "Ice Tortoise";
|
|
this.width = 46;
|
|
this.height = 32;
|
|
this.aiStyle = 39;
|
|
this.damage = 55;
|
|
this.defense = 28;
|
|
this.lifeMax = 400;
|
|
this.soundHit = 7;
|
|
this.knockBackResist = 0.3f;
|
|
this.soundKilled = 5;
|
|
this.value = 450f;
|
|
this.noGravity = false;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 155)
|
|
{
|
|
this.name = "Wolf";
|
|
this.width = 46;
|
|
this.height = 30;
|
|
this.aiStyle = 26;
|
|
this.damage = 65;
|
|
this.defense = 30;
|
|
this.lifeMax = 300;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.3f;
|
|
this.value = 1000f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 156)
|
|
{
|
|
this.npcSlots = 2f;
|
|
this.name = "Red Devil";
|
|
this.width = 28;
|
|
this.height = 48;
|
|
this.aiStyle = 14;
|
|
this.damage = 50;
|
|
this.defense = 40;
|
|
this.lifeMax = 600;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.5f;
|
|
this.soundKilled = 1;
|
|
this.value = 1200f;
|
|
this.lavaImmune = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 157)
|
|
{
|
|
this.npcSlots = 0.5f;
|
|
this.noGravity = true;
|
|
this.name = "Arapaima";
|
|
this.width = 74;
|
|
this.height = 20;
|
|
this.aiStyle = 16;
|
|
this.damage = 75;
|
|
this.defense = 30;
|
|
this.lifeMax = 200;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.value = 500f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 158)
|
|
{
|
|
this.npcSlots = 2f;
|
|
this.name = "Vampire";
|
|
this.width = 22;
|
|
this.height = 22;
|
|
this.aiStyle = 14;
|
|
this.damage = 60;
|
|
this.defense = 30;
|
|
this.lifeMax = 500;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.75f;
|
|
this.soundKilled = 6;
|
|
this.value = 5000f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 159)
|
|
{
|
|
this.npcSlots = 2f;
|
|
this.name = "Vampire";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 80;
|
|
this.defense = 20;
|
|
this.lifeMax = 500;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 6;
|
|
this.knockBackResist = 0.4f;
|
|
this.value = 5000f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 160)
|
|
{
|
|
this.townNPC = true;
|
|
this.friendly = true;
|
|
this.name = "Truffle";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 7;
|
|
this.damage = 10;
|
|
this.defense = 15;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 161)
|
|
{
|
|
this.name = "Zombie Eskimo";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 16;
|
|
this.defense = 8;
|
|
this.lifeMax = 50;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.45f;
|
|
this.value = 80f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 162)
|
|
{
|
|
this.name = "Frankenstein";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 60;
|
|
this.defense = 18;
|
|
this.lifeMax = 220;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.3f;
|
|
this.value = 600f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 163)
|
|
{
|
|
this.name = "Black Recluse";
|
|
this.width = 50;
|
|
this.height = 20;
|
|
this.aiStyle = 3;
|
|
this.damage = 90;
|
|
this.defense = 40;
|
|
this.lifeMax = 200;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.25f;
|
|
this.value = 500f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
this.npcSlots = 0.5f;
|
|
this.timeLeft = NPC.activeTime * 2;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 238)
|
|
{
|
|
this.noGravity = true;
|
|
this.name = "Black Recluse";
|
|
this.width = 50;
|
|
this.height = 20;
|
|
this.aiStyle = 40;
|
|
this.damage = 100;
|
|
this.defense = 40;
|
|
this.lifeMax = 200;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.25f;
|
|
this.value = 500f;
|
|
this.timeLeft = NPC.activeTime * 2;
|
|
this.npcSlots = 0.5f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 164)
|
|
{
|
|
this.name = "Wall Creeper";
|
|
this.width = 50;
|
|
this.height = 20;
|
|
this.aiStyle = 3;
|
|
this.damage = 30;
|
|
this.defense = 10;
|
|
this.lifeMax = 80;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.25f;
|
|
this.value = 100f;
|
|
this.timeLeft = NPC.activeTime * 2;
|
|
this.npcSlots = 0.5f;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 165)
|
|
{
|
|
this.noGravity = true;
|
|
this.name = "Wall Creeper";
|
|
this.width = 50;
|
|
this.height = 20;
|
|
this.aiStyle = 40;
|
|
this.damage = 30;
|
|
this.defense = 10;
|
|
this.lifeMax = 80;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.25f;
|
|
this.value = 100f;
|
|
this.timeLeft = NPC.activeTime * 2;
|
|
this.npcSlots = 0.5f;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 166)
|
|
{
|
|
this.name = "Swamp Thing";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 80;
|
|
this.defense = 32;
|
|
this.lifeMax = 350;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.2f;
|
|
this.value = 1000f;
|
|
this.buffImmune[31] = false;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 167)
|
|
{
|
|
this.name = "Undead Viking";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 24;
|
|
this.defense = 10;
|
|
this.lifeMax = 70;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.5f;
|
|
this.value = 200f;
|
|
this.buffImmune[31] = false;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 168)
|
|
{
|
|
this.name = "Corrupt Penguin";
|
|
this.width = 16;
|
|
this.height = 34;
|
|
this.aiStyle = 3;
|
|
this.damage = 20;
|
|
this.defense = 4;
|
|
this.lifeMax = 70;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.value = 500f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 169)
|
|
{
|
|
this.noGravity = true;
|
|
this.name = "Ice Elemental";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 22;
|
|
this.damage = 55;
|
|
this.defense = 20;
|
|
this.lifeMax = 200;
|
|
this.soundHit = 5;
|
|
this.knockBackResist = 0.6f;
|
|
this.soundKilled = 7;
|
|
this.value = 1500f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
this.buffImmune[31] = false;
|
|
this.buffImmune[44] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 170)
|
|
{
|
|
this.name = "Pigron";
|
|
this.width = 44;
|
|
this.height = 36;
|
|
this.aiStyle = 2;
|
|
this.damage = 70;
|
|
this.defense = 16;
|
|
this.lifeMax = 210;
|
|
this.soundHit = 7;
|
|
this.soundKilled = 17;
|
|
this.knockBackResist = 0.5f;
|
|
this.value = 2000f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 171)
|
|
{
|
|
this.name = "Pigron";
|
|
this.width = 44;
|
|
this.height = 36;
|
|
this.aiStyle = 2;
|
|
this.damage = 70;
|
|
this.defense = 16;
|
|
this.lifeMax = 210;
|
|
this.soundHit = 7;
|
|
this.soundKilled = 17;
|
|
this.knockBackResist = 0.5f;
|
|
this.value = 2000f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 172)
|
|
{
|
|
this.name = "Rune Wizard";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 8;
|
|
this.damage = 200;
|
|
this.defense = 30;
|
|
this.lifeMax = 600;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.3f;
|
|
this.value = 5000f;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 173)
|
|
{
|
|
this.npcSlots = 1f;
|
|
this.name = "Crimera";
|
|
this.width = 30;
|
|
this.height = 30;
|
|
this.aiStyle = 5;
|
|
this.damage = 22;
|
|
this.defense = 8;
|
|
this.lifeMax = 40;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.noGravity = true;
|
|
this.knockBackResist = 0.5f;
|
|
this.value = 90f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 174)
|
|
{
|
|
this.npcSlots = 1f;
|
|
this.name = "Herpling";
|
|
this.width = 52;
|
|
this.height = 26;
|
|
this.aiStyle = 41;
|
|
this.damage = 65;
|
|
this.defense = 26;
|
|
this.lifeMax = 220;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.3f;
|
|
this.value = 450f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 175)
|
|
{
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.name = "Angry Trapper";
|
|
this.width = 30;
|
|
this.height = 30;
|
|
this.aiStyle = 13;
|
|
this.damage = 100;
|
|
this.defense = 30;
|
|
this.lifeMax = 300;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.25f;
|
|
this.soundKilled = 1;
|
|
this.value = 650f;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 176)
|
|
{
|
|
this.name = "Moss Hornet";
|
|
this.width = 34;
|
|
this.height = 32;
|
|
this.aiStyle = 5;
|
|
this.damage = 70;
|
|
this.defense = 22;
|
|
this.lifeMax = 220;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.5f;
|
|
this.soundKilled = 1;
|
|
this.value = 600f;
|
|
this.noGravity = true;
|
|
this.buffImmune[20] = true;
|
|
this.npcSlots = 1.5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 177)
|
|
{
|
|
this.npcSlots = 1f;
|
|
this.name = "Derpling";
|
|
this.width = 58;
|
|
this.height = 44;
|
|
this.aiStyle = 41;
|
|
this.damage = 80;
|
|
this.defense = 26;
|
|
this.lifeMax = 300;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
this.value = 500f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 178)
|
|
{
|
|
this.townNPC = true;
|
|
this.friendly = true;
|
|
this.name = "Steampunker";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 7;
|
|
this.damage = 10;
|
|
this.defense = 15;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 179)
|
|
{
|
|
this.name = "Crimson Axe";
|
|
this.width = 40;
|
|
this.height = 40;
|
|
this.aiStyle = 23;
|
|
this.damage = 80;
|
|
this.defense = 18;
|
|
this.lifeMax = 200;
|
|
this.soundHit = 4;
|
|
this.soundKilled = 6;
|
|
this.value = 1000f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
this.knockBackResist = 0.4f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 180)
|
|
{
|
|
this.name = "Pigron";
|
|
this.width = 44;
|
|
this.height = 36;
|
|
this.aiStyle = 2;
|
|
this.damage = 70;
|
|
this.defense = 16;
|
|
this.lifeMax = 210;
|
|
this.soundHit = 7;
|
|
this.soundKilled = 17;
|
|
this.knockBackResist = 0.5f;
|
|
this.value = 4000f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 181)
|
|
{
|
|
this.name = "Face Monster";
|
|
this.width = 18;
|
|
this.height = 44;
|
|
this.aiStyle = 3;
|
|
this.damage = 25;
|
|
this.defense = 10;
|
|
this.lifeMax = 70;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.4f;
|
|
this.value = 200f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 182)
|
|
{
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.name = "Floaty Gross";
|
|
this.width = 24;
|
|
this.height = 62;
|
|
this.aiStyle = 22;
|
|
this.damage = 65;
|
|
this.defense = 18;
|
|
this.lifeMax = 240;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 2;
|
|
this.alpha = 100;
|
|
this.value = 500f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
this.knockBackResist = 0.7f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 183)
|
|
{
|
|
this.name = "Crimslime";
|
|
this.width = 40;
|
|
this.height = 30;
|
|
this.aiStyle = 1;
|
|
this.damage = 60;
|
|
this.defense = 26;
|
|
this.lifeMax = 200;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.alpha = 55;
|
|
this.value = 400f;
|
|
this.scale = 1.1f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 184)
|
|
{
|
|
this.name = "Spiked Ice Slime";
|
|
this.width = 24;
|
|
this.height = 18;
|
|
this.aiStyle = 1;
|
|
this.damage = 12;
|
|
this.defense = 8;
|
|
this.lifeMax = 60;
|
|
this.scale = 1.1f;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.alpha = 50;
|
|
this.value = 200f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 185)
|
|
{
|
|
this.name = "Snow Flinx";
|
|
this.width = 28;
|
|
this.height = 28;
|
|
this.aiStyle = 3;
|
|
this.damage = 26;
|
|
this.defense = 12;
|
|
this.lifeMax = 70;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 1.1f;
|
|
this.value = 200f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 186)
|
|
{
|
|
this.name = "Pincushion Zombie";
|
|
this.displayName = "Zombie";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 16;
|
|
this.defense = 8;
|
|
this.lifeMax = 50;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.45f;
|
|
this.value = 65f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 187)
|
|
{
|
|
this.name = "Slimed Zombie";
|
|
this.displayName = "Zombie";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 13;
|
|
this.defense = 6;
|
|
this.lifeMax = 40;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.55f;
|
|
this.value = 55f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 188)
|
|
{
|
|
this.name = "Swamp Zombie";
|
|
this.displayName = "Zombie";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 13;
|
|
this.defense = 8;
|
|
this.lifeMax = 45;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.45f;
|
|
this.value = 80f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 189)
|
|
{
|
|
this.name = "Twiggy Zombie";
|
|
this.displayName = "Zombie";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 16;
|
|
this.defense = 4;
|
|
this.lifeMax = 45;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.55f;
|
|
this.value = 70f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 190)
|
|
{
|
|
this.name = "Cataract Eye";
|
|
this.displayName = "Demon Eye";
|
|
this.width = 30;
|
|
this.height = 32;
|
|
this.aiStyle = 2;
|
|
this.damage = 18;
|
|
this.defense = 4;
|
|
this.lifeMax = 65;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.7f;
|
|
this.soundKilled = 1;
|
|
this.value = 75f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 191)
|
|
{
|
|
this.name = "Sleepy Eye";
|
|
this.displayName = "Demon Eye";
|
|
this.width = 30;
|
|
this.height = 32;
|
|
this.aiStyle = 2;
|
|
this.damage = 16;
|
|
this.defense = 2;
|
|
this.lifeMax = 60;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.85f;
|
|
this.soundKilled = 1;
|
|
this.value = 75f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 192)
|
|
{
|
|
this.name = "Dialated Eye";
|
|
this.displayName = "Demon Eye";
|
|
this.width = 30;
|
|
this.height = 32;
|
|
this.aiStyle = 2;
|
|
this.damage = 18;
|
|
this.defense = 2;
|
|
this.lifeMax = 50;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.8f;
|
|
this.soundKilled = 1;
|
|
this.value = 75f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 193)
|
|
{
|
|
this.name = "Green Eye";
|
|
this.displayName = "Demon Eye";
|
|
this.width = 30;
|
|
this.height = 32;
|
|
this.aiStyle = 2;
|
|
this.damage = 20;
|
|
this.defense = 0;
|
|
this.lifeMax = 60;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.8f;
|
|
this.soundKilled = 1;
|
|
this.value = 75f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 194)
|
|
{
|
|
this.name = "Purple Eye";
|
|
this.displayName = "Demon Eye";
|
|
this.width = 30;
|
|
this.height = 32;
|
|
this.aiStyle = 2;
|
|
this.damage = 14;
|
|
this.defense = 4;
|
|
this.lifeMax = 60;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.8f;
|
|
this.soundKilled = 1;
|
|
this.value = 75f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 195)
|
|
{
|
|
this.name = "Lost Girl";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 42;
|
|
this.damage = 10;
|
|
this.defense = 30;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 196)
|
|
{
|
|
this.name = "Nymph";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 35;
|
|
this.defense = 16;
|
|
this.lifeMax = 300;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.4f;
|
|
this.value = 10000f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 197)
|
|
{
|
|
this.name = "Armored Viking";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 50;
|
|
this.defense = 28;
|
|
this.lifeMax = 280;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.45f;
|
|
this.value = 500f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 198)
|
|
{
|
|
this.name = "Lihzahrd";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 38;
|
|
this.defense = 20;
|
|
this.lifeMax = 400;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.4f;
|
|
this.value = 650f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 199)
|
|
{
|
|
this.name = "Lihzahrd";
|
|
this.width = 42;
|
|
this.height = 30;
|
|
this.aiStyle = 3;
|
|
this.damage = 60;
|
|
this.defense = 30;
|
|
this.lifeMax = 400;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0f;
|
|
this.value = 650f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 200)
|
|
{
|
|
this.name = "Female Zombie";
|
|
this.displayName = "Zombie";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 12;
|
|
this.defense = 4;
|
|
this.lifeMax = 38;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.6f;
|
|
this.value = 65f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 201)
|
|
{
|
|
this.name = "Headache Skeleton";
|
|
this.displayName = "Skeleton";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 20;
|
|
this.defense = 12;
|
|
this.lifeMax = 55;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.5f;
|
|
this.value = 130f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 202)
|
|
{
|
|
this.name = "Misassembled Skeleton";
|
|
this.displayName = "Skeleton";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 18;
|
|
this.defense = 8;
|
|
this.lifeMax = 65;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.5f;
|
|
this.value = 120f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 203)
|
|
{
|
|
this.name = "Pantless Skeleton";
|
|
this.displayName = "Skeleton";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 22;
|
|
this.defense = 8;
|
|
this.lifeMax = 60;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.5f;
|
|
this.value = 110f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 204)
|
|
{
|
|
this.name = "Spiked Jungle Slime";
|
|
this.width = 24;
|
|
this.height = 18;
|
|
this.aiStyle = 1;
|
|
this.damage = 28;
|
|
this.defense = 8;
|
|
this.lifeMax = 65;
|
|
this.scale = 1.15f;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.alpha = 50;
|
|
this.value = 300f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 205)
|
|
{
|
|
this.name = "Moth";
|
|
this.width = 40;
|
|
this.height = 40;
|
|
this.aiStyle = 5;
|
|
this.damage = 70;
|
|
this.defense = 28;
|
|
this.lifeMax = 1000;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.4f;
|
|
this.soundKilled = 1;
|
|
this.value = 600f;
|
|
this.noGravity = true;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 206)
|
|
{
|
|
this.name = "Icy Merman";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 60;
|
|
this.defense = 30;
|
|
this.lifeMax = 280;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
this.value = 500f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 207)
|
|
{
|
|
this.townNPC = true;
|
|
this.friendly = true;
|
|
this.name = "Dye Trader";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 7;
|
|
this.damage = 10;
|
|
this.defense = 15;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 208)
|
|
{
|
|
this.townNPC = true;
|
|
this.friendly = true;
|
|
this.name = "Party Girl";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 7;
|
|
this.damage = 10;
|
|
this.defense = 15;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 209)
|
|
{
|
|
this.townNPC = true;
|
|
this.friendly = true;
|
|
this.name = "Cyborg";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 7;
|
|
this.damage = 10;
|
|
this.defense = 15;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 210)
|
|
{
|
|
this.name = "Bee";
|
|
this.width = 12;
|
|
this.height = 12;
|
|
this.aiStyle = 5;
|
|
this.damage = 20;
|
|
this.defense = 5;
|
|
this.lifeMax = 20;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.5f;
|
|
this.soundKilled = 1;
|
|
this.noGravity = true;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 211)
|
|
{
|
|
this.name = "Bee";
|
|
this.width = 8;
|
|
this.height = 8;
|
|
this.aiStyle = 5;
|
|
this.damage = 15;
|
|
this.defense = 2;
|
|
this.lifeMax = 10;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.5f;
|
|
this.soundKilled = 1;
|
|
this.noGravity = true;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 212)
|
|
{
|
|
this.name = "Pirate Deckhand";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 35;
|
|
this.defense = 16;
|
|
this.lifeMax = 200;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.4f;
|
|
this.value = 700f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 213)
|
|
{
|
|
this.name = "Pirate Corsair";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 50;
|
|
this.defense = 20;
|
|
this.lifeMax = 300;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.2f;
|
|
this.value = 1000f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 214)
|
|
{
|
|
this.name = "Pirate Deadeye";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 30;
|
|
this.defense = 12;
|
|
this.lifeMax = 150;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.3f;
|
|
this.value = 1000f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 215)
|
|
{
|
|
this.name = "Pirate Crossbower";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 35;
|
|
this.defense = 18;
|
|
this.lifeMax = 260;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.35f;
|
|
this.value = 1500f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 216)
|
|
{
|
|
this.name = "Pirate Captain";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 70;
|
|
this.defense = 28;
|
|
this.lifeMax = 2000;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0f;
|
|
this.value = 50000f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 217)
|
|
{
|
|
this.name = "Cochineal Beetle";
|
|
this.width = 28;
|
|
this.height = 20;
|
|
this.aiStyle = 3;
|
|
this.damage = 20;
|
|
this.defense = 10;
|
|
this.lifeMax = 40;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 16;
|
|
this.value = 60f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 218)
|
|
{
|
|
this.name = "Cyan Beetle";
|
|
this.width = 28;
|
|
this.height = 20;
|
|
this.aiStyle = 3;
|
|
this.damage = 20;
|
|
this.defense = 10;
|
|
this.lifeMax = 40;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 16;
|
|
this.value = 60f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 219)
|
|
{
|
|
this.name = "Lac Beetle";
|
|
this.width = 28;
|
|
this.height = 20;
|
|
this.aiStyle = 3;
|
|
this.damage = 20;
|
|
this.defense = 10;
|
|
this.lifeMax = 40;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 16;
|
|
this.value = 60f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 220)
|
|
{
|
|
this.name = "Sea Snail";
|
|
this.width = 28;
|
|
this.height = 20;
|
|
this.aiStyle = 3;
|
|
this.damage = 20;
|
|
this.defense = 10;
|
|
this.lifeMax = 40;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.value = 60f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 221)
|
|
{
|
|
this.noGravity = true;
|
|
this.name = "Squid";
|
|
this.width = 26;
|
|
this.height = 26;
|
|
this.aiStyle = 18;
|
|
this.damage = 20;
|
|
this.defense = 2;
|
|
this.lifeMax = 30;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.value = 100f;
|
|
this.alpha = 20;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 222)
|
|
{
|
|
this.name = "Queen Bee";
|
|
this.width = 66;
|
|
this.height = 66;
|
|
this.aiStyle = 43;
|
|
this.damage = 30;
|
|
this.defense = 8;
|
|
this.lifeMax = 3400;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0f;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.timeLeft = NPC.activeTime * 30;
|
|
this.boss = true;
|
|
this.value = 100000f;
|
|
this.npcSlots = 5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 223)
|
|
{
|
|
this.name = "Zombie";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 16;
|
|
this.defense = 8;
|
|
this.lifeMax = 50;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.45f;
|
|
this.value = 70f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 224)
|
|
{
|
|
this.name = "Flying Fish";
|
|
this.width = 32;
|
|
this.height = 18;
|
|
this.aiStyle = 44;
|
|
this.damage = 9;
|
|
this.defense = 4;
|
|
this.lifeMax = 20;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.8f;
|
|
this.soundKilled = 1;
|
|
this.value = 90f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 225)
|
|
{
|
|
this.name = "Umbrella Slime";
|
|
this.width = 38;
|
|
this.height = 26;
|
|
this.aiStyle = 1;
|
|
this.damage = 10;
|
|
this.defense = 5;
|
|
this.lifeMax = 35;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.75f;
|
|
this.value = 25f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 226)
|
|
{
|
|
this.npcSlots = 0.5f;
|
|
this.name = "Flying Snake";
|
|
this.width = 34;
|
|
this.height = 50;
|
|
this.aiStyle = 14;
|
|
this.damage = 85;
|
|
this.defense = 28;
|
|
this.lifeMax = 260;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.65f;
|
|
this.soundKilled = 1;
|
|
this.value = 400f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 227)
|
|
{
|
|
this.townNPC = true;
|
|
this.friendly = true;
|
|
this.name = "Painter";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 7;
|
|
this.damage = 10;
|
|
this.defense = 15;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 228)
|
|
{
|
|
this.townNPC = true;
|
|
this.friendly = true;
|
|
this.name = "Witch Doctor";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 7;
|
|
this.damage = 10;
|
|
this.defense = 15;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 229)
|
|
{
|
|
this.townNPC = true;
|
|
this.friendly = true;
|
|
this.name = "Pirate";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 7;
|
|
this.damage = 10;
|
|
this.defense = 15;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 230)
|
|
{
|
|
this.name = "Goldfish";
|
|
this.width = 18;
|
|
this.height = 20;
|
|
this.aiStyle = 7;
|
|
this.damage = 0;
|
|
this.defense = 0;
|
|
this.lifeMax = 5;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 231)
|
|
{
|
|
this.name = "Hornet Fatty";
|
|
this.width = 34;
|
|
this.height = 32;
|
|
this.aiStyle = 5;
|
|
this.damage = 22;
|
|
this.defense = 16;
|
|
this.lifeMax = 50;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.3f;
|
|
this.soundKilled = 1;
|
|
this.value = 200f;
|
|
this.noGravity = true;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 232)
|
|
{
|
|
this.name = "Hornet Honey";
|
|
this.width = 34;
|
|
this.height = 32;
|
|
this.aiStyle = 5;
|
|
this.damage = 28;
|
|
this.defense = 12;
|
|
this.lifeMax = 42;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.6f;
|
|
this.soundKilled = 1;
|
|
this.value = 200f;
|
|
this.noGravity = true;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 233)
|
|
{
|
|
this.name = "Hornet Leafy";
|
|
this.width = 34;
|
|
this.height = 32;
|
|
this.aiStyle = 5;
|
|
this.damage = 30;
|
|
this.defense = 14;
|
|
this.lifeMax = 38;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.45f;
|
|
this.soundKilled = 1;
|
|
this.value = 200f;
|
|
this.noGravity = true;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 234)
|
|
{
|
|
this.name = "Hornet Spikey";
|
|
this.width = 34;
|
|
this.height = 32;
|
|
this.aiStyle = 5;
|
|
this.damage = 32;
|
|
this.defense = 6;
|
|
this.lifeMax = 42;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.55f;
|
|
this.soundKilled = 1;
|
|
this.value = 200f;
|
|
this.noGravity = true;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 235)
|
|
{
|
|
this.name = "Hornet Stingy";
|
|
this.width = 34;
|
|
this.height = 32;
|
|
this.aiStyle = 5;
|
|
this.damage = 34;
|
|
this.defense = 4;
|
|
this.lifeMax = 38;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.6f;
|
|
this.soundKilled = 1;
|
|
this.value = 200f;
|
|
this.noGravity = true;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 236)
|
|
{
|
|
this.name = "Jungle Creeper";
|
|
this.width = 50;
|
|
this.height = 20;
|
|
this.aiStyle = 3;
|
|
this.damage = 50;
|
|
this.defense = 14;
|
|
this.lifeMax = 120;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.25f;
|
|
this.value = 1000f;
|
|
this.timeLeft = NPC.activeTime * 2;
|
|
this.npcSlots = 0.75f;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 237)
|
|
{
|
|
this.noGravity = true;
|
|
this.name = "Jungle Creeper";
|
|
this.width = 50;
|
|
this.height = 20;
|
|
this.aiStyle = 40;
|
|
this.damage = 50;
|
|
this.defense = 14;
|
|
this.lifeMax = 120;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0.25f;
|
|
this.value = 1000f;
|
|
this.timeLeft = NPC.activeTime * 2;
|
|
this.npcSlots = 0.75f;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 239)
|
|
{
|
|
this.name = "Blood Crawler";
|
|
this.width = 50;
|
|
this.height = 20;
|
|
this.aiStyle = 3;
|
|
this.damage = 30;
|
|
this.defense = 8;
|
|
this.lifeMax = 60;
|
|
this.soundHit = 13;
|
|
this.soundKilled = 19;
|
|
this.knockBackResist = 0.5f;
|
|
this.value = 130f;
|
|
this.timeLeft = NPC.activeTime * 2;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 240)
|
|
{
|
|
this.noGravity = true;
|
|
this.name = "Blood Crawler";
|
|
this.width = 50;
|
|
this.height = 20;
|
|
this.aiStyle = 40;
|
|
this.damage = 30;
|
|
this.defense = 8;
|
|
this.lifeMax = 60;
|
|
this.soundHit = 13;
|
|
this.soundKilled = 19;
|
|
this.knockBackResist = 0.5f;
|
|
this.value = 130f;
|
|
this.timeLeft = NPC.activeTime * 2;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 241)
|
|
{
|
|
this.npcSlots = 0.5f;
|
|
this.noGravity = true;
|
|
this.name = "Blood Feeder";
|
|
this.width = 18;
|
|
this.height = 20;
|
|
this.aiStyle = 16;
|
|
this.damage = 30;
|
|
this.defense = 4;
|
|
this.lifeMax = 20;
|
|
this.soundHit = 13;
|
|
this.soundKilled = 19;
|
|
this.value = 350f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 242)
|
|
{
|
|
this.noGravity = true;
|
|
this.name = "Blood Jelly";
|
|
this.width = 26;
|
|
this.height = 26;
|
|
this.aiStyle = 18;
|
|
this.damage = 75;
|
|
this.defense = 20;
|
|
this.lifeMax = 150;
|
|
this.soundHit = 13;
|
|
this.soundKilled = 19;
|
|
this.value = 800f;
|
|
this.alpha = 20;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 243)
|
|
{
|
|
this.name = "Ice Golem";
|
|
this.width = 30;
|
|
this.height = 114;
|
|
this.aiStyle = 3;
|
|
this.damage = 50;
|
|
this.defense = 32;
|
|
this.lifeMax = 3000;
|
|
this.soundHit = 5;
|
|
this.soundKilled = 7;
|
|
this.knockBackResist = 0.05f;
|
|
this.value = (float)Item.buyPrice(0, 1, 50, 0);
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[44] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 244)
|
|
{
|
|
this.name = "Rainbow Slime";
|
|
this.width = 60;
|
|
this.height = 42;
|
|
this.aiStyle = 1;
|
|
this.damage = 85;
|
|
this.defense = 26;
|
|
this.lifeMax = 400;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.alpha = 175;
|
|
this.value = (float)Item.buyPrice(0, 0, 20, 0);
|
|
this.knockBackResist = 0.3f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 245)
|
|
{
|
|
this.name = "Golem";
|
|
this.width = 140;
|
|
this.height = 140;
|
|
this.aiStyle = 45;
|
|
this.damage = 70;
|
|
this.defense = 24;
|
|
this.lifeMax = 8000;
|
|
this.soundHit = 4;
|
|
this.soundKilled = 14;
|
|
this.knockBackResist = 0f;
|
|
this.alpha = 255;
|
|
this.boss = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 246)
|
|
{
|
|
this.noGravity = true;
|
|
this.name = "Golem Head";
|
|
this.width = 70;
|
|
this.height = 70;
|
|
this.aiStyle = 46;
|
|
this.damage = 60;
|
|
this.defense = 18;
|
|
this.lifeMax = 15000;
|
|
this.soundHit = 4;
|
|
this.soundKilled = 0;
|
|
this.knockBackResist = 0f;
|
|
this.alpha = 255;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 247 || this.type == 248)
|
|
{
|
|
this.noGravity = true;
|
|
this.name = "Golem Fist";
|
|
this.width = 40;
|
|
this.height = 30;
|
|
this.aiStyle = 47;
|
|
this.damage = 55;
|
|
this.defense = 28;
|
|
this.lifeMax = 6000;
|
|
this.soundHit = 4;
|
|
this.soundKilled = 14;
|
|
this.alpha = 255;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 249)
|
|
{
|
|
this.noGravity = true;
|
|
this.name = "Golem Head";
|
|
this.width = 70;
|
|
this.height = 70;
|
|
this.aiStyle = 48;
|
|
this.damage = 80;
|
|
this.defense = 30;
|
|
this.lifeMax = 10000;
|
|
this.soundHit = 4;
|
|
this.soundKilled = 14;
|
|
this.knockBackResist = 0f;
|
|
this.dontTakeDamage = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 250)
|
|
{
|
|
this.name = "Angry Nimbus";
|
|
this.width = 34;
|
|
this.height = 26;
|
|
this.aiStyle = 49;
|
|
this.damage = 50;
|
|
this.defense = 24;
|
|
this.lifeMax = 300;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 6;
|
|
this.knockBackResist = 0.3f;
|
|
this.value = 300f;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 251)
|
|
{
|
|
this.name = "Eyezor";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 50;
|
|
this.defense = 30;
|
|
this.lifeMax = 1000;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.3f;
|
|
this.value = (float)Item.buyPrice(0, 0, 50, 0);
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 252)
|
|
{
|
|
this.noGravity = true;
|
|
this.npcSlots = 0.5f;
|
|
this.name = "Parrot";
|
|
this.width = 32;
|
|
this.height = 32;
|
|
this.aiStyle = 5;
|
|
this.damage = 80;
|
|
this.defense = 12;
|
|
this.lifeMax = 100;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0.7f;
|
|
this.soundKilled = 4;
|
|
this.value = 500f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 253)
|
|
{
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.name = "Reaper";
|
|
this.width = 24;
|
|
this.height = 44;
|
|
this.aiStyle = 22;
|
|
this.damage = 80;
|
|
this.defense = 18;
|
|
this.lifeMax = 300;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 6;
|
|
this.alpha = 100;
|
|
this.value = 1500f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
this.knockBackResist = 0.6f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 254)
|
|
{
|
|
this.name = "Zombie";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 40;
|
|
this.defense = 10;
|
|
this.lifeMax = 180;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 6;
|
|
this.knockBackResist = 0.4f;
|
|
this.value = 1000f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 255)
|
|
{
|
|
this.name = "Zombie";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 38;
|
|
this.defense = 16;
|
|
this.lifeMax = 220;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 6;
|
|
this.knockBackResist = 0.3f;
|
|
this.value = 1200f;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 256)
|
|
{
|
|
this.noGravity = true;
|
|
this.name = "Fungo Fish";
|
|
this.width = 26;
|
|
this.height = 26;
|
|
this.aiStyle = 18;
|
|
this.damage = 90;
|
|
this.defense = 20;
|
|
this.lifeMax = 140;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 6;
|
|
this.value = 1200f;
|
|
this.alpha = 20;
|
|
this.npcSlots = 0.3f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 257)
|
|
{
|
|
this.name = "Anomura Fungus";
|
|
this.width = 44;
|
|
this.height = 34;
|
|
this.aiStyle = 3;
|
|
this.damage = 38;
|
|
this.defense = 24;
|
|
this.lifeMax = 230;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 6;
|
|
this.knockBackResist = 0.3f;
|
|
this.value = 1300f;
|
|
this.buffImmune[31] = false;
|
|
this.npcSlots = 0.3f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 258)
|
|
{
|
|
this.name = "Mushi Ladybug";
|
|
this.width = 30;
|
|
this.height = 24;
|
|
this.aiStyle = 3;
|
|
this.damage = 60;
|
|
this.defense = 16;
|
|
this.lifeMax = 220;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 6;
|
|
this.knockBackResist = 0.3f;
|
|
this.value = 1500f;
|
|
this.buffImmune[31] = false;
|
|
this.npcSlots = 0.3f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 259)
|
|
{
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.name = "Fungi Bulb";
|
|
this.width = 20;
|
|
this.height = 20;
|
|
this.aiStyle = 13;
|
|
this.damage = 24;
|
|
this.defense = 4;
|
|
this.lifeMax = 90;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0f;
|
|
this.soundKilled = 1;
|
|
this.value = 350f;
|
|
this.buffImmune[20] = true;
|
|
this.npcSlots = 0.3f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 260)
|
|
{
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.name = "Giant Fungi Bulb";
|
|
this.width = 36;
|
|
this.height = 36;
|
|
this.aiStyle = 13;
|
|
this.damage = 70;
|
|
this.defense = 20;
|
|
this.lifeMax = 300;
|
|
this.soundHit = 1;
|
|
this.knockBackResist = 0f;
|
|
this.soundKilled = 1;
|
|
this.value = 1250f;
|
|
this.buffImmune[20] = true;
|
|
this.npcSlots = 0.3f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 261)
|
|
{
|
|
this.name = "Fungi Spore";
|
|
this.width = 12;
|
|
this.height = 12;
|
|
this.aiStyle = 50;
|
|
this.damage = 80;
|
|
this.defense = 0;
|
|
this.lifeMax = 1;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.npcSlots = 0f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 262)
|
|
{
|
|
this.noTileCollide = true;
|
|
this.name = "Plantera";
|
|
this.width = 86;
|
|
this.height = 86;
|
|
this.aiStyle = 51;
|
|
this.damage = 50;
|
|
this.defense = 14;
|
|
this.lifeMax = 30000;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.knockBackResist = 0f;
|
|
this.noGravity = true;
|
|
this.boss = true;
|
|
this.npcSlots = 16f;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 263)
|
|
{
|
|
this.noTileCollide = true;
|
|
this.noGravity = true;
|
|
this.name = "Plantera's Hook";
|
|
this.width = 40;
|
|
this.height = 40;
|
|
this.aiStyle = 52;
|
|
this.damage = 60;
|
|
this.defense = 24;
|
|
this.lifeMax = 4000;
|
|
this.dontTakeDamage = true;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 264)
|
|
{
|
|
this.name = "Plantera's Tentacle";
|
|
this.width = 24;
|
|
this.height = 24;
|
|
this.aiStyle = 53;
|
|
this.damage = 60;
|
|
this.defense = 20;
|
|
this.lifeMax = 1000;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 265)
|
|
{
|
|
this.name = "Spore";
|
|
this.width = 18;
|
|
this.height = 18;
|
|
this.aiStyle = 50;
|
|
this.damage = 70;
|
|
this.defense = 0;
|
|
this.lifeMax = 1;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0f;
|
|
this.npcSlots = 0f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 266)
|
|
{
|
|
this.name = "Brain of Cthulhu";
|
|
this.dontTakeDamage = true;
|
|
this.width = 160;
|
|
this.height = 110;
|
|
this.aiStyle = 54;
|
|
this.damage = 30;
|
|
this.defense = 14;
|
|
this.lifeMax = 1000;
|
|
this.soundHit = 9;
|
|
this.soundKilled = 11;
|
|
this.knockBackResist = 0f;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.timeLeft = NPC.activeTime * 30;
|
|
this.boss = true;
|
|
this.value = 50000f;
|
|
this.npcSlots = 6f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 267)
|
|
{
|
|
this.name = "Creeper";
|
|
this.width = 30;
|
|
this.height = 30;
|
|
this.aiStyle = 55;
|
|
this.damage = 20;
|
|
this.defense = 10;
|
|
this.lifeMax = 100;
|
|
this.soundHit = 9;
|
|
this.soundKilled = 11;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.knockBackResist = 0.8f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 268)
|
|
{
|
|
this.noGravity = true;
|
|
this.name = "Ichor Sticker";
|
|
this.width = 28;
|
|
this.height = 56;
|
|
this.aiStyle = 22;
|
|
this.damage = 55;
|
|
this.defense = 20;
|
|
this.lifeMax = 340;
|
|
this.soundHit = 13;
|
|
this.soundKilled = 19;
|
|
this.knockBackResist = 0.6f;
|
|
this.value = 450f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 269)
|
|
{
|
|
this.name = "Rusty Armored Bones";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 70;
|
|
this.defense = 34;
|
|
this.lifeMax = 550;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.3f;
|
|
this.value = 1000f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 270)
|
|
{
|
|
this.name = "Rusty Armored Bones";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 55;
|
|
this.defense = 50;
|
|
this.lifeMax = 400;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.2f;
|
|
this.value = 1000f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 271)
|
|
{
|
|
this.name = "Rusty Armored Bones";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 70;
|
|
this.defense = 40;
|
|
this.lifeMax = 450;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.25f;
|
|
this.value = 1000f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 272)
|
|
{
|
|
this.name = "Rusty Armored Bones";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 75;
|
|
this.defense = 28;
|
|
this.lifeMax = 400;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.35f;
|
|
this.value = 1000f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 273)
|
|
{
|
|
this.name = "Blue Armored Bones";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 45;
|
|
this.defense = 50;
|
|
this.lifeMax = 500;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.15f;
|
|
this.value = 1000f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 274)
|
|
{
|
|
this.name = "Blue Armored Bones";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 65;
|
|
this.defense = 34;
|
|
this.lifeMax = 350;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.4f;
|
|
this.value = 1000f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 275)
|
|
{
|
|
this.name = "Blue Armored Bones";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 45;
|
|
this.defense = 50;
|
|
this.lifeMax = 550;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.15f;
|
|
this.value = 1000f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 276)
|
|
{
|
|
this.name = "Blue Armored Bones";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 85;
|
|
this.defense = 54;
|
|
this.lifeMax = 500;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.2f;
|
|
this.value = 1000f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 277)
|
|
{
|
|
this.name = "Hell Armored Bones";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 70;
|
|
this.defense = 32;
|
|
this.lifeMax = 400;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.4f;
|
|
this.value = 1000f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 278)
|
|
{
|
|
this.name = "Hell Armored Bones";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 65;
|
|
this.defense = 48;
|
|
this.lifeMax = 450;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.3f;
|
|
this.value = 1000f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 279)
|
|
{
|
|
this.name = "Hell Armored Bones";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 40;
|
|
this.defense = 54;
|
|
this.lifeMax = 500;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.2f;
|
|
this.value = 1000f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 280)
|
|
{
|
|
this.name = "Hell Armored Bones";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 75;
|
|
this.defense = 34;
|
|
this.lifeMax = 500;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.4f;
|
|
this.value = 1000f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 281)
|
|
{
|
|
this.name = "Ragged Caster";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 8;
|
|
this.damage = 40;
|
|
this.defense = 20;
|
|
this.lifeMax = 400;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.6f;
|
|
this.value = 1500f;
|
|
this.npcSlots = 2f;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 282)
|
|
{
|
|
this.name = "Ragged Caster";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 8;
|
|
this.damage = 35;
|
|
this.defense = 28;
|
|
this.lifeMax = 450;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.5f;
|
|
this.value = 1500f;
|
|
this.npcSlots = 2f;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 283)
|
|
{
|
|
this.name = "Necromancer";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 8;
|
|
this.damage = 50;
|
|
this.defense = 18;
|
|
this.lifeMax = 300;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.55f;
|
|
this.value = 1500f;
|
|
this.npcSlots = 2f;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 284)
|
|
{
|
|
this.name = "Necromancer";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 8;
|
|
this.damage = 35;
|
|
this.defense = 24;
|
|
this.lifeMax = 450;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.5f;
|
|
this.value = 1500f;
|
|
this.npcSlots = 2f;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 285)
|
|
{
|
|
this.name = "Diabolist";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 8;
|
|
this.damage = 50;
|
|
this.defense = 12;
|
|
this.lifeMax = 200;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.7f;
|
|
this.value = 1500f;
|
|
this.npcSlots = 2f;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 286)
|
|
{
|
|
this.name = "Diabolist";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 8;
|
|
this.damage = 60;
|
|
this.defense = 10;
|
|
this.lifeMax = 250;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.65f;
|
|
this.value = 1500f;
|
|
this.npcSlots = 2f;
|
|
this.buffImmune[20] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 287)
|
|
{
|
|
this.name = "Bone Lee";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 90;
|
|
this.defense = 42;
|
|
this.lifeMax = 1000;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.3f;
|
|
this.value = 2000f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 288)
|
|
{
|
|
this.name = "Dungeon Spirit";
|
|
this.width = 20;
|
|
this.height = 20;
|
|
this.aiStyle = 56;
|
|
this.damage = 70;
|
|
this.defense = 30;
|
|
this.lifeMax = 200;
|
|
this.knockBackResist = 0.2f;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 6;
|
|
this.value = 500f;
|
|
this.noTileCollide = true;
|
|
this.noGravity = true;
|
|
flag = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 289)
|
|
{
|
|
this.name = "Giant Cursed Skull";
|
|
this.width = 44;
|
|
this.height = 44;
|
|
this.aiStyle = 10;
|
|
this.damage = 60;
|
|
this.defense = 20;
|
|
this.lifeMax = 400;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.value = 150f;
|
|
this.knockBackResist = 0.2f;
|
|
this.npcSlots = 0.75f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[24] = true;
|
|
this.buffImmune[39] = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 290)
|
|
{
|
|
this.name = "Paladin";
|
|
this.width = 34;
|
|
this.height = 62;
|
|
this.aiStyle = 3;
|
|
this.damage = 100;
|
|
this.defense = 50;
|
|
this.lifeMax = 5000;
|
|
this.soundHit = 4;
|
|
this.soundKilled = 6;
|
|
this.knockBackResist = 0f;
|
|
this.value = 50000f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 291)
|
|
{
|
|
this.name = "Skeleton Sniper";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 60;
|
|
this.defense = 28;
|
|
this.lifeMax = 400;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.4f;
|
|
this.value = 1000f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 292)
|
|
{
|
|
this.name = "Tactical Skeleton";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 60;
|
|
this.defense = 28;
|
|
this.lifeMax = 400;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.4f;
|
|
this.value = 1000f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 293)
|
|
{
|
|
this.name = "Skeleton Commando";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 60;
|
|
this.defense = 28;
|
|
this.lifeMax = 400;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.4f;
|
|
this.value = 1000f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 294)
|
|
{
|
|
this.name = "Angry Bones";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 34;
|
|
this.defense = 6;
|
|
this.lifeMax = 70;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.9f;
|
|
this.value = 130f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 295)
|
|
{
|
|
this.name = "Angry Bones";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 28;
|
|
this.defense = 12;
|
|
this.lifeMax = 70;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.7f;
|
|
this.value = 130f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 296)
|
|
{
|
|
this.name = "Angry Bones";
|
|
this.width = 18;
|
|
this.height = 40;
|
|
this.aiStyle = 3;
|
|
this.damage = 24;
|
|
this.defense = 14;
|
|
this.lifeMax = 120;
|
|
this.soundHit = 2;
|
|
this.soundKilled = 2;
|
|
this.knockBackResist = 0.6f;
|
|
this.value = 130f;
|
|
this.buffImmune[20] = true;
|
|
this.buffImmune[31] = false;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 299)
|
|
{
|
|
this.name = "Squirrel";
|
|
this.width = 18;
|
|
this.height = 20;
|
|
this.aiStyle = 7;
|
|
this.damage = 0;
|
|
this.defense = 0;
|
|
this.lifeMax = 5;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 1;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 300)
|
|
{
|
|
this.name = "Mouse";
|
|
this.width = 14;
|
|
this.height = 12;
|
|
this.aiStyle = 7;
|
|
this.damage = 0;
|
|
this.defense = 0;
|
|
this.lifeMax = 5;
|
|
this.soundHit = 1;
|
|
this.soundKilled = 4;
|
|
this.npcSlots = 0.25f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (flag)
|
|
{
|
|
for (int n = 0; n < 81; n++)
|
|
{
|
|
this.buffImmune[n] = true;
|
|
}
|
|
}
|
|
if (Main.dedServ)
|
|
{
|
|
this.frame = default(Rectangle);
|
|
}
|
|
else
|
|
{
|
|
if (Main.NPCLoaded[this.type])
|
|
{
|
|
this.frame = new Rectangle(0, 0, Main.npcTexture[this.type].Width, Main.npcTexture[this.type].Height / Main.npcFrameCount[this.type]);
|
|
}
|
|
else
|
|
{
|
|
this.setFrameSize = true;
|
|
}
|
|
}
|
|
if (scaleOverride > 0f)
|
|
{
|
|
int num = (int)((float)this.width * this.scale);
|
|
int num2 = (int)((float)this.height * this.scale);
|
|
this.position.X = this.position.X + (float)(num / 2);
|
|
this.position.Y = this.position.Y + (float)num2;
|
|
this.scale = scaleOverride;
|
|
this.width = (int)((float)this.width * this.scale);
|
|
this.height = (int)((float)this.height * this.scale);
|
|
if (this.height == 16 || this.height == 32)
|
|
{
|
|
this.height++;
|
|
}
|
|
this.position.X = this.position.X - (float)(this.width / 2);
|
|
this.position.Y = this.position.Y - (float)this.height;
|
|
}
|
|
else
|
|
{
|
|
this.width = (int)((float)this.width * this.scale);
|
|
this.height = (int)((float)this.height * this.scale);
|
|
}
|
|
if (this.buffImmune[20])
|
|
{
|
|
this.buffImmune[70] = true;
|
|
}
|
|
this.life = this.lifeMax;
|
|
this.defDamage = this.damage;
|
|
this.defDefense = this.defense;
|
|
this.netID = this.type;
|
|
this.displayName = Lang.npcName(this.netID, false);
|
|
}
|
|
public void AI()
|
|
{
|
|
if (this.aiStyle == 0)
|
|
{
|
|
for (int i = 0; i < 255; i++)
|
|
{
|
|
if (Main.player[i].active && Main.player[i].talkNPC == this.whoAmI)
|
|
{
|
|
if (this.type == 105)
|
|
{
|
|
this.Transform(107);
|
|
return;
|
|
}
|
|
if (this.type == 106)
|
|
{
|
|
this.Transform(108);
|
|
return;
|
|
}
|
|
if (this.type == 123)
|
|
{
|
|
this.Transform(124);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
this.velocity.X = this.velocity.X * 0.93f;
|
|
if ((double)this.velocity.X > -0.1 && (double)this.velocity.X < 0.1)
|
|
{
|
|
this.velocity.X = 0f;
|
|
}
|
|
this.TargetClosest(true);
|
|
this.spriteDirection = this.direction;
|
|
return;
|
|
}
|
|
if (this.aiStyle == 1)
|
|
{
|
|
if (this.type == 244)
|
|
{
|
|
float num = (float)Main.DiscoR / 255f;
|
|
float num2 = (float)Main.DiscoG / 255f;
|
|
float num3 = (float)Main.DiscoB / 255f;
|
|
num *= 1f;
|
|
num2 *= 1f;
|
|
num3 *= 1f;
|
|
Lighting.addLight((int)((this.position.X + (float)(this.width / 2)) / 16f), (int)((this.position.Y + (float)(this.height / 2)) / 16f), num, num2, num3);
|
|
this.color.R = (byte)Main.DiscoR;
|
|
this.color.G = (byte)Main.DiscoG;
|
|
this.color.B = (byte)Main.DiscoB;
|
|
this.color.A = 100;
|
|
this.alpha = 175;
|
|
}
|
|
bool flag = false;
|
|
if (!Main.dayTime || this.life != this.lifeMax || (double)this.position.Y > Main.worldSurface * 16.0)
|
|
{
|
|
flag = true;
|
|
}
|
|
if (this.type == 81)
|
|
{
|
|
flag = true;
|
|
if (Main.rand.Next(30) == 0)
|
|
{
|
|
int num4 = Dust.NewDust(this.position, this.width, this.height, 14, 0f, 0f, this.alpha, this.color, 1f);
|
|
Main.dust[num4].velocity *= 0.3f;
|
|
}
|
|
}
|
|
if (this.type == 183)
|
|
{
|
|
flag = true;
|
|
}
|
|
if (this.type == 147 && Main.rand.Next(10) == 0)
|
|
{
|
|
int num5 = Dust.NewDust(this.position, this.width, this.height, 76, 0f, 0f, 0, default(Color), 1f);
|
|
Main.dust[num5].noGravity = true;
|
|
Main.dust[num5].velocity *= 0.1f;
|
|
}
|
|
if (this.type == 244)
|
|
{
|
|
flag = true;
|
|
this.ai[0] += 2f;
|
|
}
|
|
if (this.type == 184)
|
|
{
|
|
if (Main.rand.Next(8) == 0)
|
|
{
|
|
int num6 = Dust.NewDust(this.position - this.velocity, this.width, this.height, 76, 0f, 0f, 0, default(Color), 1f);
|
|
Main.dust[num6].noGravity = true;
|
|
Main.dust[num6].velocity *= 0.15f;
|
|
}
|
|
flag = true;
|
|
if (this.localAI[0] > 0f)
|
|
{
|
|
this.localAI[0] -= 1f;
|
|
}
|
|
if (!this.wet)
|
|
{
|
|
Vector2 vector = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num7 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector.X;
|
|
float num8 = Main.player[this.target].position.Y - vector.Y;
|
|
float num9 = (float)Math.Sqrt((double)(num7 * num7 + num8 * num8));
|
|
if (num9 < 200f && Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height) && this.velocity.Y == 0f)
|
|
{
|
|
this.ai[0] = -40f;
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.9f;
|
|
}
|
|
if (Main.netMode != 1 && this.localAI[0] == 0f)
|
|
{
|
|
num8 = Main.player[this.target].position.Y - vector.Y - (float)Main.rand.Next(0, 200);
|
|
num9 = (float)Math.Sqrt((double)(num7 * num7 + num8 * num8));
|
|
num9 = 4.5f / num9;
|
|
num7 *= num9;
|
|
num8 *= num9;
|
|
this.localAI[0] = 50f;
|
|
Projectile.NewProjectile(vector.X, vector.Y, num7, num8, 174, 9, 0f, Main.myPlayer, 0f, 0f);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 204)
|
|
{
|
|
flag = true;
|
|
if (this.localAI[0] > 0f)
|
|
{
|
|
this.localAI[0] -= 1f;
|
|
}
|
|
if (!this.wet)
|
|
{
|
|
Vector2 vector2 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num10 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector2.X;
|
|
float num11 = Main.player[this.target].position.Y - vector2.Y;
|
|
float num12 = (float)Math.Sqrt((double)(num10 * num10 + num11 * num11));
|
|
if (num12 < 400f && Collision.CanHit(new Vector2(this.position.X, this.position.Y - 20f), this.width, this.height + 20, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height) && this.velocity.Y == 0f)
|
|
{
|
|
this.ai[0] = -80f;
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.9f;
|
|
}
|
|
if (Main.netMode != 1 && this.localAI[0] == 0f)
|
|
{
|
|
num11 = Main.player[this.target].position.Y - vector2.Y - (float)Main.rand.Next(-30, 20);
|
|
num11 -= num12 * 0.05f;
|
|
num10 = Main.player[this.target].position.X - vector2.X - (float)Main.rand.Next(-20, 20);
|
|
num12 = (float)Math.Sqrt((double)(num10 * num10 + num11 * num11));
|
|
num12 = 7f / num12;
|
|
num10 *= num12;
|
|
num11 *= num12;
|
|
this.localAI[0] = 65f;
|
|
Projectile.NewProjectile(vector2.X, vector2.Y, num10, num11, 176, 13, 0f, Main.myPlayer, 0f, 0f);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 59)
|
|
{
|
|
Lighting.addLight((int)((this.position.X + (float)(this.width / 2)) / 16f), (int)((this.position.Y + (float)(this.height / 2)) / 16f), 1f, 0.3f, 0.1f);
|
|
int num13 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 6, this.velocity.X * 0.2f, this.velocity.Y * 0.2f, 100, default(Color), 1.7f);
|
|
Main.dust[num13].noGravity = true;
|
|
}
|
|
if (this.ai[2] > 1f)
|
|
{
|
|
this.ai[2] -= 1f;
|
|
}
|
|
if (this.wet)
|
|
{
|
|
if (this.collideY)
|
|
{
|
|
this.velocity.Y = -2f;
|
|
}
|
|
if (this.velocity.Y < 0f && this.ai[3] == this.position.X)
|
|
{
|
|
this.direction *= -1;
|
|
this.ai[2] = 200f;
|
|
}
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.ai[3] = this.position.X;
|
|
}
|
|
if (this.type == 59)
|
|
{
|
|
if (this.velocity.Y > 2f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.9f;
|
|
}
|
|
else
|
|
{
|
|
if (this.directionY < 0)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.8f;
|
|
}
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.5f;
|
|
if (this.velocity.Y < -10f)
|
|
{
|
|
this.velocity.Y = -10f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > 2f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.9f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.5f;
|
|
if (this.velocity.Y < -4f)
|
|
{
|
|
this.velocity.Y = -4f;
|
|
}
|
|
}
|
|
if (this.ai[2] == 1f && flag)
|
|
{
|
|
this.TargetClosest(true);
|
|
}
|
|
}
|
|
this.aiAction = 0;
|
|
if (this.ai[2] == 0f)
|
|
{
|
|
this.ai[0] = -100f;
|
|
this.ai[2] = 1f;
|
|
this.TargetClosest(true);
|
|
}
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
if (this.ai[3] == this.position.X)
|
|
{
|
|
this.direction *= -1;
|
|
this.ai[2] = 200f;
|
|
}
|
|
this.ai[3] = 0f;
|
|
this.velocity.X = this.velocity.X * 0.8f;
|
|
if ((double)this.velocity.X > -0.1 && (double)this.velocity.X < 0.1)
|
|
{
|
|
this.velocity.X = 0f;
|
|
}
|
|
if (flag)
|
|
{
|
|
this.ai[0] += 1f;
|
|
}
|
|
this.ai[0] += 1f;
|
|
if (this.type == 59)
|
|
{
|
|
this.ai[0] += 2f;
|
|
}
|
|
if (this.type == 71)
|
|
{
|
|
this.ai[0] += 3f;
|
|
}
|
|
if (this.type == 138)
|
|
{
|
|
this.ai[0] += 2f;
|
|
}
|
|
if (this.type == 183)
|
|
{
|
|
this.ai[0] += 1f;
|
|
}
|
|
if (this.type == 81)
|
|
{
|
|
if (this.scale >= 0f)
|
|
{
|
|
this.ai[0] += 4f;
|
|
}
|
|
else
|
|
{
|
|
this.ai[0] += 1f;
|
|
}
|
|
}
|
|
if (this.ai[0] >= 0f)
|
|
{
|
|
this.netUpdate = true;
|
|
if (flag && this.ai[2] == 1f)
|
|
{
|
|
this.TargetClosest(true);
|
|
}
|
|
if (this.ai[1] == 2f)
|
|
{
|
|
this.velocity.Y = -8f;
|
|
if (this.type == 59)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 2f;
|
|
}
|
|
this.velocity.X = this.velocity.X + (float)(3 * this.direction);
|
|
if (this.type == 59)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.5f * (float)this.direction;
|
|
}
|
|
this.ai[0] = -200f;
|
|
this.ai[1] = 0f;
|
|
this.ai[3] = this.position.X;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.Y = -6f;
|
|
this.velocity.X = this.velocity.X + (float)(2 * this.direction);
|
|
if (this.type == 59)
|
|
{
|
|
this.velocity.X = this.velocity.X + (float)(2 * this.direction);
|
|
}
|
|
this.ai[0] = -120f;
|
|
this.ai[1] += 1f;
|
|
}
|
|
if (this.type == 141)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 1.3f;
|
|
this.velocity.X = this.velocity.X * 1.2f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] >= -30f)
|
|
{
|
|
this.aiAction = 1;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.target < 255 && ((this.direction == 1 && this.velocity.X < 3f) || (this.direction == -1 && this.velocity.X > -3f)))
|
|
{
|
|
if ((this.direction == -1 && (double)this.velocity.X < 0.1) || (this.direction == 1 && (double)this.velocity.X > -0.1))
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.2f * (float)this.direction;
|
|
return;
|
|
}
|
|
this.velocity.X = this.velocity.X * 0.93f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 2)
|
|
{
|
|
if ((this.type == 170 || this.type == 171 || this.type == 180) && Main.rand.Next(1000) == 0)
|
|
{
|
|
Main.PlaySound(29, (int)this.position.X, (int)this.position.Y, 9);
|
|
}
|
|
this.noGravity = true;
|
|
if (!this.noTileCollide)
|
|
{
|
|
if (this.collideX)
|
|
{
|
|
this.velocity.X = this.oldVelocity.X * -0.5f;
|
|
if (this.direction == -1 && this.velocity.X > 0f && this.velocity.X < 2f)
|
|
{
|
|
this.velocity.X = 2f;
|
|
}
|
|
if (this.direction == 1 && this.velocity.X < 0f && this.velocity.X > -2f)
|
|
{
|
|
this.velocity.X = -2f;
|
|
}
|
|
}
|
|
if (this.collideY)
|
|
{
|
|
this.velocity.Y = this.oldVelocity.Y * -0.5f;
|
|
if (this.velocity.Y > 0f && this.velocity.Y < 1f)
|
|
{
|
|
this.velocity.Y = 1f;
|
|
}
|
|
if (this.velocity.Y < 0f && this.velocity.Y > -1f)
|
|
{
|
|
this.velocity.Y = -1f;
|
|
}
|
|
}
|
|
}
|
|
if (Main.dayTime && (double)this.position.Y <= Main.worldSurface * 16.0 && (this.type == 2 || this.type == 133 || this.type == 190 || this.type == 191 || this.type == 192 || this.type == 193 || this.type == 194))
|
|
{
|
|
if (this.timeLeft > 10)
|
|
{
|
|
this.timeLeft = 10;
|
|
}
|
|
this.directionY = -1;
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.direction = 1;
|
|
}
|
|
this.direction = -1;
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.direction = 1;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.TargetClosest(true);
|
|
}
|
|
if (this.type == 170 || this.type == 171 || this.type == 180)
|
|
{
|
|
if (Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
if (this.ai[1] > 0f && !Collision.SolidCollision(this.position, this.width, this.height))
|
|
{
|
|
this.ai[1] = 0f;
|
|
this.ai[0] = 0f;
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] == 0f)
|
|
{
|
|
this.ai[0] += 1f;
|
|
}
|
|
}
|
|
if (this.ai[0] >= 300f)
|
|
{
|
|
this.ai[1] = 1f;
|
|
this.ai[0] = 0f;
|
|
this.netUpdate = true;
|
|
}
|
|
if (this.ai[1] == 0f)
|
|
{
|
|
this.alpha = 0;
|
|
this.noTileCollide = false;
|
|
}
|
|
else
|
|
{
|
|
this.wet = false;
|
|
this.alpha = 200;
|
|
this.noTileCollide = true;
|
|
}
|
|
this.rotation = this.velocity.Y * 0.1f * (float)this.direction;
|
|
this.TargetClosest(true);
|
|
if (this.direction == -1 && this.velocity.X > -4f && this.position.X > Main.player[this.target].position.X + (float)Main.player[this.target].width)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.08f;
|
|
if (this.velocity.X > 4f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.04f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.2f;
|
|
}
|
|
}
|
|
if (this.velocity.X < -4f)
|
|
{
|
|
this.velocity.X = -4f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.direction == 1 && this.velocity.X < 4f && this.position.X + (float)this.width < Main.player[this.target].position.X)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.08f;
|
|
if (this.velocity.X < -4f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.04f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.2f;
|
|
}
|
|
}
|
|
if (this.velocity.X > 4f)
|
|
{
|
|
this.velocity.X = 4f;
|
|
}
|
|
}
|
|
}
|
|
if (this.directionY == -1 && (double)this.velocity.Y > -2.5 && this.position.Y > Main.player[this.target].position.Y + (float)Main.player[this.target].height)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.1f;
|
|
if ((double)this.velocity.Y > 2.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.05f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.15f;
|
|
}
|
|
}
|
|
if ((double)this.velocity.Y < -2.5)
|
|
{
|
|
this.velocity.Y = -2.5f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.directionY == 1 && (double)this.velocity.Y < 2.5 && this.position.Y + (float)this.height < Main.player[this.target].position.Y)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.1f;
|
|
if ((double)this.velocity.Y < -2.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.05f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.15f;
|
|
}
|
|
}
|
|
if ((double)this.velocity.Y > 2.5)
|
|
{
|
|
this.velocity.Y = 2.5f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 116)
|
|
{
|
|
this.TargetClosest(true);
|
|
Lighting.addLight((int)(this.position.X + (float)(this.width / 2)) / 16, (int)(this.position.Y + (float)(this.height / 2)) / 16, 0.3f, 0.2f, 0.1f);
|
|
if (this.direction == -1 && this.velocity.X > -6f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
if (this.velocity.X > 6f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.2f;
|
|
}
|
|
}
|
|
if (this.velocity.X < -6f)
|
|
{
|
|
this.velocity.X = -6f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.direction == 1 && this.velocity.X < 6f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
if (this.velocity.X < -6f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.2f;
|
|
}
|
|
}
|
|
if (this.velocity.X > 6f)
|
|
{
|
|
this.velocity.X = 6f;
|
|
}
|
|
}
|
|
}
|
|
if (this.directionY == -1 && (double)this.velocity.Y > -2.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.04f;
|
|
if ((double)this.velocity.Y > 2.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.05f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.15f;
|
|
}
|
|
}
|
|
if ((double)this.velocity.Y < -2.5)
|
|
{
|
|
this.velocity.Y = -2.5f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.directionY == 1 && (double)this.velocity.Y < 1.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.04f;
|
|
if ((double)this.velocity.Y < -2.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.05f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.15f;
|
|
}
|
|
}
|
|
if ((double)this.velocity.Y > 2.5)
|
|
{
|
|
this.velocity.Y = 2.5f;
|
|
}
|
|
}
|
|
}
|
|
if (Main.rand.Next(40) == 0)
|
|
{
|
|
int num14 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + (float)this.height * 0.25f), this.width, (int)((float)this.height * 0.5f), 5, this.velocity.X, 2f, 0, default(Color), 1f);
|
|
Dust expr_1B42_cp_0 = Main.dust[num14];
|
|
expr_1B42_cp_0.velocity.X = expr_1B42_cp_0.velocity.X * 0.5f;
|
|
Dust expr_1B60_cp_0 = Main.dust[num14];
|
|
expr_1B60_cp_0.velocity.Y = expr_1B60_cp_0.velocity.Y * 0.1f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 133)
|
|
{
|
|
if ((double)this.life < (double)this.lifeMax * 0.5)
|
|
{
|
|
if (this.direction == -1 && this.velocity.X > -6f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
if (this.velocity.X > 6f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.05f;
|
|
}
|
|
}
|
|
if (this.velocity.X < -6f)
|
|
{
|
|
this.velocity.X = -6f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.direction == 1 && this.velocity.X < 6f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
if (this.velocity.X < -6f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.05f;
|
|
}
|
|
}
|
|
if (this.velocity.X > 6f)
|
|
{
|
|
this.velocity.X = 6f;
|
|
}
|
|
}
|
|
}
|
|
if (this.directionY == -1 && this.velocity.Y > -4f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.1f;
|
|
if (this.velocity.Y > 4f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.05f;
|
|
}
|
|
}
|
|
if (this.velocity.Y < -4f)
|
|
{
|
|
this.velocity.Y = -4f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.directionY == 1 && this.velocity.Y < 4f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.1f;
|
|
if (this.velocity.Y < -4f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.05f;
|
|
}
|
|
}
|
|
if (this.velocity.Y > 4f)
|
|
{
|
|
this.velocity.Y = 4f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.direction == -1 && this.velocity.X > -4f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
if (this.velocity.X > 4f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.05f;
|
|
}
|
|
}
|
|
if (this.velocity.X < -4f)
|
|
{
|
|
this.velocity.X = -4f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.direction == 1 && this.velocity.X < 4f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
if (this.velocity.X < -4f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.05f;
|
|
}
|
|
}
|
|
if (this.velocity.X > 4f)
|
|
{
|
|
this.velocity.X = 4f;
|
|
}
|
|
}
|
|
}
|
|
if (this.directionY == -1 && (double)this.velocity.Y > -1.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.04f;
|
|
if ((double)this.velocity.Y > 1.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.05f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.03f;
|
|
}
|
|
}
|
|
if ((double)this.velocity.Y < -1.5)
|
|
{
|
|
this.velocity.Y = -1.5f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.directionY == 1 && (double)this.velocity.Y < 1.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.04f;
|
|
if ((double)this.velocity.Y < -1.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.05f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.03f;
|
|
}
|
|
}
|
|
if ((double)this.velocity.Y > 1.5)
|
|
{
|
|
this.velocity.Y = 1.5f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
float num15 = 4f;
|
|
float num16 = 1.5f;
|
|
num15 *= 1f + (1f - this.scale);
|
|
num16 *= 1f + (1f - this.scale);
|
|
if (this.direction == -1 && this.velocity.X > -num15)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
if (this.velocity.X > num15)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.05f;
|
|
}
|
|
}
|
|
if (this.velocity.X < -num15)
|
|
{
|
|
this.velocity.X = -num15;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.direction == 1 && this.velocity.X < num15)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
if (this.velocity.X < -num15)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.05f;
|
|
}
|
|
}
|
|
if (this.velocity.X > num15)
|
|
{
|
|
this.velocity.X = num15;
|
|
}
|
|
}
|
|
}
|
|
if (this.directionY == -1 && this.velocity.Y > -num16)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.04f;
|
|
if (this.velocity.Y > num16)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.05f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.03f;
|
|
}
|
|
}
|
|
if (this.velocity.Y < -num16)
|
|
{
|
|
this.velocity.Y = -num16;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.directionY == 1 && this.velocity.Y < num16)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.04f;
|
|
if (this.velocity.Y < -num16)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.05f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.03f;
|
|
}
|
|
}
|
|
if (this.velocity.Y > num16)
|
|
{
|
|
this.velocity.Y = num16;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if ((this.type == 2 || this.type == 133 || this.type == 190 || this.type == 191 || this.type == 192 || this.type == 193 || this.type == 194) && Main.rand.Next(40) == 0)
|
|
{
|
|
int num17 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + (float)this.height * 0.25f), this.width, (int)((float)this.height * 0.5f), 5, this.velocity.X, 2f, 0, default(Color), 1f);
|
|
Dust expr_251E_cp_0 = Main.dust[num17];
|
|
expr_251E_cp_0.velocity.X = expr_251E_cp_0.velocity.X * 0.5f;
|
|
Dust expr_253C_cp_0 = Main.dust[num17];
|
|
expr_253C_cp_0.velocity.Y = expr_253C_cp_0.velocity.Y * 0.1f;
|
|
}
|
|
if (this.wet && this.type != 170 && this.type != 171 && this.type != 172)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.95f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.5f;
|
|
if (this.velocity.Y < -4f)
|
|
{
|
|
this.velocity.Y = -4f;
|
|
}
|
|
this.TargetClosest(true);
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 3)
|
|
{
|
|
bool flag2 = false;
|
|
if (this.velocity.X == 0f)
|
|
{
|
|
flag2 = true;
|
|
}
|
|
if (this.justHit)
|
|
{
|
|
flag2 = false;
|
|
}
|
|
if (Main.netMode != 1 && this.type == 198 && (double)this.life <= (double)this.lifeMax * 0.55)
|
|
{
|
|
this.Transform(199);
|
|
}
|
|
int num18 = 60;
|
|
if (this.type == 120)
|
|
{
|
|
num18 = 180;
|
|
if (this.ai[3] == -120f)
|
|
{
|
|
this.velocity *= 0f;
|
|
this.ai[3] = 0f;
|
|
Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 8);
|
|
Vector2 vector3 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num19 = this.oldPos[2].X + (float)this.width * 0.5f - vector3.X;
|
|
float num20 = this.oldPos[2].Y + (float)this.height * 0.5f - vector3.Y;
|
|
float num21 = (float)Math.Sqrt((double)(num19 * num19 + num20 * num20));
|
|
num21 = 2f / num21;
|
|
num19 *= num21;
|
|
num20 *= num21;
|
|
for (int j = 0; j < 20; j++)
|
|
{
|
|
int num22 = Dust.NewDust(this.position, this.width, this.height, 71, num19, num20, 200, default(Color), 2f);
|
|
Main.dust[num22].noGravity = true;
|
|
Dust expr_27D5_cp_0 = Main.dust[num22];
|
|
expr_27D5_cp_0.velocity.X = expr_27D5_cp_0.velocity.X * 2f;
|
|
}
|
|
for (int k = 0; k < 20; k++)
|
|
{
|
|
int num23 = Dust.NewDust(this.oldPos[2], this.width, this.height, 71, -num19, -num20, 200, default(Color), 2f);
|
|
Main.dust[num23].noGravity = true;
|
|
Dust expr_2856_cp_0 = Main.dust[num23];
|
|
expr_2856_cp_0.velocity.X = expr_2856_cp_0.velocity.X * 2f;
|
|
}
|
|
}
|
|
}
|
|
bool flag3 = false;
|
|
bool flag4 = true;
|
|
if (this.type == 47 || this.type == 67 || this.type == 109 || this.type == 110 || this.type == 111 || this.type == 120 || this.type == 163 || this.type == 164 || this.type == 239 || this.type == 168 || this.type == 199 || this.type == 206 || this.type == 214 || this.type == 215 || this.type == 216 || this.type == 217 || this.type == 218 || this.type == 219 || this.type == 220 || this.type == 226 || this.type == 243 || this.type == 251 || this.type == 257 || this.type == 258 || this.type == 290 || this.type == 291 || this.type == 292 || this.type == 293)
|
|
{
|
|
flag4 = false;
|
|
}
|
|
if ((this.type != 110 && this.type != 111 && this.type != 206 && this.type != 216 && this.type != 214 && this.type != 215 && this.type != 291 && this.type != 292 && this.type != 293) || this.ai[2] <= 0f)
|
|
{
|
|
if (this.velocity.Y == 0f && ((this.velocity.X > 0f && this.direction < 0) || (this.velocity.X < 0f && this.direction > 0)))
|
|
{
|
|
flag3 = true;
|
|
}
|
|
if (this.position.X == this.oldPosition.X || this.ai[3] >= (float)num18 || flag3)
|
|
{
|
|
this.ai[3] += 1f;
|
|
}
|
|
else
|
|
{
|
|
if ((double)Math.Abs(this.velocity.X) > 0.9 && this.ai[3] > 0f)
|
|
{
|
|
this.ai[3] -= 1f;
|
|
}
|
|
}
|
|
if (this.ai[3] > (float)(num18 * 10))
|
|
{
|
|
this.ai[3] = 0f;
|
|
}
|
|
if (this.justHit)
|
|
{
|
|
this.ai[3] = 0f;
|
|
}
|
|
if (this.ai[3] == (float)num18)
|
|
{
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
if ((Main.eclipse || !Main.dayTime || (double)this.position.Y > Main.worldSurface * 16.0 || this.type == 26 || this.type == 27 || this.type == 28 || this.type == 31 || this.type == 294 || this.type == 295 || this.type == 296 || this.type == 47 || this.type == 67 || this.type == 73 || this.type == 77 || this.type == 78 || this.type == 79 || this.type == 80 || this.type == 110 || this.type == 111 || this.type == 120 || this.type == 168 || this.type == 181 || this.type == 185 || this.type == 198 || this.type == 199 || this.type == 198 || this.type == 206 || this.type == 217 || this.type == 218 || this.type == 219 || this.type == 220 || this.type == 239 || this.type == 243 || this.type == 254 || (this.type == 255 | this.type == 257) || this.type == 258 || this.type == 291 || this.type == 292 || this.type == 293 || (this.type >= 212 && this.type <= 216)) && this.ai[3] < (float)num18)
|
|
{
|
|
if ((this.type == 3 || this.type == 21 || this.type == 31 || this.type == 294 || this.type == 295 || this.type == 296 || this.type == 77 || this.type == 110 || this.type == 132 || this.type == 167 || this.type == 161 || this.type == 162 || this.type == 186 || this.type == 187 || this.type == 188 || this.type == 189 || this.type == 197 || this.type == 200 || this.type == 201 || this.type == 202 || this.type == 203 || this.type == 223 || this.type == 291 || this.type == 292 || this.type == 293) && Main.rand.Next(1000) == 0)
|
|
{
|
|
Main.PlaySound(14, (int)this.position.X, (int)this.position.Y, 1);
|
|
}
|
|
if ((this.type == 78 || this.type == 79 || this.type == 80) && Main.rand.Next(500) == 0)
|
|
{
|
|
Main.PlaySound(26, (int)this.position.X, (int)this.position.Y, 1);
|
|
}
|
|
if (this.type == 159 && Main.rand.Next(500) == 0)
|
|
{
|
|
Main.PlaySound(29, (int)this.position.X, (int)this.position.Y, 7);
|
|
}
|
|
if (this.type == 162 && Main.rand.Next(500) == 0)
|
|
{
|
|
Main.PlaySound(29, (int)this.position.X, (int)this.position.Y, 6);
|
|
}
|
|
if (this.type == 181 && Main.rand.Next(500) == 0)
|
|
{
|
|
Main.PlaySound(29, (int)this.position.X, (int)this.position.Y, 8);
|
|
}
|
|
if (this.type >= 269 && this.type <= 280 && Main.rand.Next(1000) == 0)
|
|
{
|
|
Main.PlaySound(14, (int)this.position.X, (int)this.position.Y, 1);
|
|
}
|
|
this.TargetClosest(true);
|
|
}
|
|
else
|
|
{
|
|
if ((this.type != 110 && this.type != 111 && this.type != 206 && this.type != 216 && this.type != 214 && this.type != 215 && this.type != 291 && this.type != 292 && this.type != 293) || this.ai[2] <= 0f)
|
|
{
|
|
if (Main.dayTime && (double)(this.position.Y / 16f) < Main.worldSurface && this.timeLeft > 10)
|
|
{
|
|
this.timeLeft = 10;
|
|
}
|
|
if (this.velocity.X == 0f)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.ai[0] += 1f;
|
|
if (this.ai[0] >= 2f)
|
|
{
|
|
this.direction *= -1;
|
|
this.spriteDirection = this.direction;
|
|
this.ai[0] = 0f;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.ai[0] = 0f;
|
|
}
|
|
if (this.direction == 0)
|
|
{
|
|
this.direction = 1;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 159)
|
|
{
|
|
if (this.type == 159 && ((this.velocity.X > 0f && this.direction < 0) || (this.velocity.X < 0f && this.direction > 0)))
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.95f;
|
|
}
|
|
if (this.velocity.X < -6f || this.velocity.X > 6f)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.velocity *= 0.8f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < 6f && this.direction == 1)
|
|
{
|
|
if (this.velocity.Y == 0f && this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.99f;
|
|
}
|
|
this.velocity.X = this.velocity.X + 0.07f;
|
|
if (this.velocity.X > 6f)
|
|
{
|
|
this.velocity.X = 6f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > -6f && this.direction == -1)
|
|
{
|
|
if (this.velocity.Y == 0f && this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.99f;
|
|
}
|
|
this.velocity.X = this.velocity.X - 0.07f;
|
|
if (this.velocity.X < -6f)
|
|
{
|
|
this.velocity.X = -6f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 199)
|
|
{
|
|
if (this.velocity.X < -4f || this.velocity.X > 4f)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.velocity *= 0.8f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < 4f && this.direction == 1)
|
|
{
|
|
if (this.velocity.Y == 0f && this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.8f;
|
|
}
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
if (this.velocity.X > 4f)
|
|
{
|
|
this.velocity.X = 4f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > -4f && this.direction == -1)
|
|
{
|
|
if (this.velocity.Y == 0f && this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.8f;
|
|
}
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
if (this.velocity.X < -4f)
|
|
{
|
|
this.velocity.X = -4f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 120 || this.type == 166 || this.type == 213 || this.type == 258)
|
|
{
|
|
if (this.velocity.X < -3f || this.velocity.X > 3f)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.velocity *= 0.8f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < 3f && this.direction == 1)
|
|
{
|
|
if (this.velocity.Y == 0f && this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.99f;
|
|
}
|
|
this.velocity.X = this.velocity.X + 0.07f;
|
|
if (this.velocity.X > 3f)
|
|
{
|
|
this.velocity.X = 3f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > -3f && this.direction == -1)
|
|
{
|
|
if (this.velocity.Y == 0f && this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.99f;
|
|
}
|
|
this.velocity.X = this.velocity.X - 0.07f;
|
|
if (this.velocity.X < -3f)
|
|
{
|
|
this.velocity.X = -3f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 27 || this.type == 77 || this.type == 104 || this.type == 163 || this.type == 162 || this.type == 196 || this.type == 197 || this.type == 212 || this.type == 257)
|
|
{
|
|
if (this.velocity.X < -2f || this.velocity.X > 2f)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.velocity *= 0.8f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < 2f && this.direction == 1)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.07f;
|
|
if (this.velocity.X > 2f)
|
|
{
|
|
this.velocity.X = 2f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > -2f && this.direction == -1)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.07f;
|
|
if (this.velocity.X < -2f)
|
|
{
|
|
this.velocity.X = -2f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 109)
|
|
{
|
|
if (this.velocity.X < -2f || this.velocity.X > 2f)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.velocity *= 0.8f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < 2f && this.direction == 1)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.04f;
|
|
if (this.velocity.X > 2f)
|
|
{
|
|
this.velocity.X = 2f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > -2f && this.direction == -1)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.04f;
|
|
if (this.velocity.X < -2f)
|
|
{
|
|
this.velocity.X = -2f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 21 || this.type == 26 || this.type == 31 || this.type == 294 || this.type == 295 || this.type == 296 || this.type == 47 || this.type == 73 || this.type == 140 || this.type == 164 || this.type == 239 || this.type == 167 || this.type == 168 || this.type == 185 || this.type == 198 || this.type == 201 || this.type == 202 || this.type == 203 || this.type == 217 || this.type == 218 || this.type == 219 || this.type == 226 || this.type == 181 || this.type == 254)
|
|
{
|
|
float num24 = 1.5f;
|
|
if (this.type == 294)
|
|
{
|
|
num24 = 2f;
|
|
}
|
|
if (this.type == 295)
|
|
{
|
|
num24 = 1.75f;
|
|
}
|
|
if (this.type == 296)
|
|
{
|
|
num24 = 1.25f;
|
|
}
|
|
if (this.type == 201)
|
|
{
|
|
num24 = 1.1f;
|
|
}
|
|
if (this.type == 202)
|
|
{
|
|
num24 = 0.9f;
|
|
}
|
|
if (this.type == 203)
|
|
{
|
|
num24 = 1.2f;
|
|
}
|
|
if (this.type == 21 || this.type == 201 || this.type == 202 || this.type == 203)
|
|
{
|
|
num24 *= 1f + (1f - this.scale);
|
|
}
|
|
if (this.velocity.X < -num24 || this.velocity.X > num24)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.velocity *= 0.8f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < num24 && this.direction == 1)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.07f;
|
|
if (this.velocity.X > num24)
|
|
{
|
|
this.velocity.X = num24;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > -num24 && this.direction == -1)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.07f;
|
|
if (this.velocity.X < -num24)
|
|
{
|
|
this.velocity.X = -num24;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type >= 269 && this.type <= 280)
|
|
{
|
|
float num25 = 1.5f;
|
|
if (this.type == 269)
|
|
{
|
|
num25 = 2f;
|
|
}
|
|
if (this.type == 270)
|
|
{
|
|
num25 = 1f;
|
|
}
|
|
if (this.type == 271)
|
|
{
|
|
num25 = 1.5f;
|
|
}
|
|
if (this.type == 272)
|
|
{
|
|
num25 = 3f;
|
|
}
|
|
if (this.type == 273)
|
|
{
|
|
num25 = 1.25f;
|
|
}
|
|
if (this.type == 274)
|
|
{
|
|
num25 = 3f;
|
|
}
|
|
if (this.type == 275)
|
|
{
|
|
num25 = 3.25f;
|
|
}
|
|
if (this.type == 276)
|
|
{
|
|
num25 = 2f;
|
|
}
|
|
if (this.type == 277)
|
|
{
|
|
num25 = 2.75f;
|
|
}
|
|
if (this.type == 278)
|
|
{
|
|
num25 = 1.8f;
|
|
}
|
|
if (this.type == 279)
|
|
{
|
|
num25 = 1.3f;
|
|
}
|
|
if (this.type == 280)
|
|
{
|
|
num25 = 2.5f;
|
|
}
|
|
num25 *= 1f + (1f - this.scale);
|
|
if (this.velocity.X < -num25 || this.velocity.X > num25)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.velocity *= 0.8f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < num25 && this.direction == 1)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.07f;
|
|
if (this.velocity.X > num25)
|
|
{
|
|
this.velocity.X = num25;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > -num25 && this.direction == -1)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.07f;
|
|
if (this.velocity.X < -num25)
|
|
{
|
|
this.velocity.X = -num25;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 67 || this.type == 220)
|
|
{
|
|
if (this.velocity.X < -0.5f || this.velocity.X > 0.5f)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.velocity *= 0.7f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < 0.5f && this.direction == 1)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.03f;
|
|
if (this.velocity.X > 0.5f)
|
|
{
|
|
this.velocity.X = 0.5f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > -0.5f && this.direction == -1)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.03f;
|
|
if (this.velocity.X < -0.5f)
|
|
{
|
|
this.velocity.X = -0.5f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 78 || this.type == 79 || this.type == 80)
|
|
{
|
|
float num26 = 1f;
|
|
float num27 = 0.05f;
|
|
if (this.life < this.lifeMax / 2)
|
|
{
|
|
num26 = 2f;
|
|
num27 = 0.1f;
|
|
}
|
|
if (this.type == 79)
|
|
{
|
|
num26 *= 1.5f;
|
|
}
|
|
if (this.velocity.X < -num26 || this.velocity.X > num26)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.velocity *= 0.7f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < num26 && this.direction == 1)
|
|
{
|
|
this.velocity.X = this.velocity.X + num27;
|
|
if (this.velocity.X > num26)
|
|
{
|
|
this.velocity.X = num26;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > -num26 && this.direction == -1)
|
|
{
|
|
this.velocity.X = this.velocity.X - num27;
|
|
if (this.velocity.X < -num26)
|
|
{
|
|
this.velocity.X = -num26;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 287)
|
|
{
|
|
float num28 = 5f;
|
|
float num29 = 0.2f;
|
|
if (this.velocity.X < -num28 || this.velocity.X > num28)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.velocity *= 0.7f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < num28 && this.direction == 1)
|
|
{
|
|
this.velocity.X = this.velocity.X + num29;
|
|
if (this.velocity.X > num28)
|
|
{
|
|
this.velocity.X = num28;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > -num28 && this.direction == -1)
|
|
{
|
|
this.velocity.X = this.velocity.X - num29;
|
|
if (this.velocity.X < -num28)
|
|
{
|
|
this.velocity.X = -num28;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 243)
|
|
{
|
|
float num30 = 1f;
|
|
float num31 = 0.07f;
|
|
num30 += (1f - (float)this.life / (float)this.lifeMax) * 1.5f;
|
|
num31 += (1f - (float)this.life / (float)this.lifeMax) * 0.15f;
|
|
if (this.velocity.X < -num30 || this.velocity.X > num30)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.velocity *= 0.7f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < num30 && this.direction == 1)
|
|
{
|
|
this.velocity.X = this.velocity.X + num31;
|
|
if (this.velocity.X > num30)
|
|
{
|
|
this.velocity.X = num30;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > -num30 && this.direction == -1)
|
|
{
|
|
this.velocity.X = this.velocity.X - num31;
|
|
if (this.velocity.X < -num30)
|
|
{
|
|
this.velocity.X = -num30;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 251)
|
|
{
|
|
float num32 = 1f;
|
|
float num33 = 0.08f;
|
|
num32 += (1f - (float)this.life / (float)this.lifeMax) * 2f;
|
|
num33 += (1f - (float)this.life / (float)this.lifeMax) * 0.2f;
|
|
if (this.velocity.X < -num32 || this.velocity.X > num32)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.velocity *= 0.7f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < num32 && this.direction == 1)
|
|
{
|
|
this.velocity.X = this.velocity.X + num33;
|
|
if (this.velocity.X > num32)
|
|
{
|
|
this.velocity.X = num32;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > -num32 && this.direction == -1)
|
|
{
|
|
this.velocity.X = this.velocity.X - num33;
|
|
if (this.velocity.X < -num32)
|
|
{
|
|
this.velocity.X = -num32;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type != 110 && this.type != 111 && this.type != 206 && this.type != 214 && this.type != 215 && this.type != 216 && this.type != 290 && this.type != 291 && this.type != 292 && this.type != 293)
|
|
{
|
|
float num34 = 1f;
|
|
if (this.type == 186)
|
|
{
|
|
num34 = 1.1f;
|
|
}
|
|
if (this.type == 187)
|
|
{
|
|
num34 = 0.9f;
|
|
}
|
|
if (this.type == 188)
|
|
{
|
|
num34 = 1.2f;
|
|
}
|
|
if (this.type == 189)
|
|
{
|
|
num34 = 0.8f;
|
|
}
|
|
if (this.type == 132)
|
|
{
|
|
num34 = 0.95f;
|
|
}
|
|
if (this.type == 200)
|
|
{
|
|
num34 = 0.87f;
|
|
}
|
|
if (this.type == 223)
|
|
{
|
|
num34 = 1.05f;
|
|
}
|
|
if (this.type == 3 || this.type == 132 || this.type == 186 || this.type == 187 || this.type == 188 || this.type == 189 || this.type == 200 || this.type == 223)
|
|
{
|
|
num34 *= 1f + (1f - this.scale);
|
|
}
|
|
if (this.velocity.X < -num34 || this.velocity.X > num34)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.velocity *= 0.8f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < num34 && this.direction == 1)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.07f;
|
|
if (this.velocity.X > num34)
|
|
{
|
|
this.velocity.X = num34;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > -num34 && this.direction == -1)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.07f;
|
|
if (this.velocity.X < -num34)
|
|
{
|
|
this.velocity.X = -num34;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type >= 277 && this.type <= 280)
|
|
{
|
|
Lighting.addLight((int)this.center().X / 16, (int)this.center().Y / 16, 0.2f, 0.1f, 0f);
|
|
}
|
|
if (this.type == 258)
|
|
{
|
|
if (this.velocity.Y != 0f)
|
|
{
|
|
this.TargetClosest(true);
|
|
this.spriteDirection = this.direction;
|
|
if (Main.player[this.target].center().X < this.position.X && this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.95f;
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[this.target].center().X > this.position.X + (float)this.width && this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.95f;
|
|
}
|
|
}
|
|
if (Main.player[this.target].center().X < this.position.X && this.velocity.X > -5f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[this.target].center().X > this.position.X + (float)this.width && this.velocity.X < 5f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[this.target].center().Y + 50f < this.position.Y && Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
this.velocity.Y = -7f;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 185)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.rotation = 0f;
|
|
this.localAI[0] = 0f;
|
|
}
|
|
else
|
|
{
|
|
if (this.localAI[0] == 1f)
|
|
{
|
|
this.rotation += this.velocity.X * 0.05f;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 159 && Main.netMode != 1)
|
|
{
|
|
Vector2 vector4 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num35 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector4.X;
|
|
float num36 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - vector4.Y;
|
|
float num37 = (float)Math.Sqrt((double)(num35 * num35 + num36 * num36));
|
|
if (num37 > 300f)
|
|
{
|
|
this.Transform(158);
|
|
}
|
|
}
|
|
if (this.type == 164 && Main.netMode != 1 && this.velocity.Y == 0f)
|
|
{
|
|
int num38 = (int)this.center().X / 16;
|
|
int num39 = (int)this.center().Y / 16;
|
|
bool flag5 = false;
|
|
for (int l = num38 - 1; l <= num38 + 1; l++)
|
|
{
|
|
for (int m = num39 - 1; m <= num39 + 1; m++)
|
|
{
|
|
if (Main.tile[l, m].wall > 0)
|
|
{
|
|
flag5 = true;
|
|
}
|
|
}
|
|
}
|
|
if (flag5)
|
|
{
|
|
this.Transform(165);
|
|
}
|
|
}
|
|
if (this.type == 239 && Main.netMode != 1 && this.velocity.Y == 0f)
|
|
{
|
|
int num40 = (int)this.center().X / 16;
|
|
int num41 = (int)this.center().Y / 16;
|
|
bool flag6 = false;
|
|
for (int n = num40 - 1; n <= num40 + 1; n++)
|
|
{
|
|
for (int num42 = num41 - 1; num42 <= num41 + 1; num42++)
|
|
{
|
|
if (Main.tile[n, num42].wall > 0)
|
|
{
|
|
flag6 = true;
|
|
}
|
|
}
|
|
}
|
|
if (flag6)
|
|
{
|
|
this.Transform(240);
|
|
}
|
|
}
|
|
if (this.type == 163 && Main.netMode != 1 && this.velocity.Y == 0f)
|
|
{
|
|
int num43 = (int)this.center().X / 16;
|
|
int num44 = (int)this.center().Y / 16;
|
|
bool flag7 = false;
|
|
for (int num45 = num43 - 1; num45 <= num43 + 1; num45++)
|
|
{
|
|
for (int num46 = num44 - 1; num46 <= num44 + 1; num46++)
|
|
{
|
|
if (Main.tile[num45, num46].wall > 0)
|
|
{
|
|
flag7 = true;
|
|
}
|
|
}
|
|
}
|
|
if (flag7)
|
|
{
|
|
this.Transform(238);
|
|
}
|
|
}
|
|
if (this.type == 236 && Main.netMode != 1 && this.velocity.Y == 0f)
|
|
{
|
|
int num47 = (int)this.center().X / 16;
|
|
int num48 = (int)this.center().Y / 16;
|
|
bool flag8 = false;
|
|
for (int num49 = num47 - 1; num49 <= num47 + 1; num49++)
|
|
{
|
|
for (int num50 = num48 - 1; num50 <= num48 + 1; num50++)
|
|
{
|
|
if (Main.tile[num49, num50].wall > 0)
|
|
{
|
|
flag8 = true;
|
|
}
|
|
}
|
|
}
|
|
if (flag8)
|
|
{
|
|
this.Transform(237);
|
|
}
|
|
}
|
|
if (this.type == 243)
|
|
{
|
|
if (this.justHit && Main.rand.Next(3) == 0)
|
|
{
|
|
this.ai[2] -= (float)Main.rand.Next(30);
|
|
}
|
|
if (this.ai[2] < 0f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
}
|
|
if (this.confused)
|
|
{
|
|
this.ai[2] = 0f;
|
|
}
|
|
this.ai[2] += 1f;
|
|
float num51 = (float)Main.rand.Next(30, 900);
|
|
num51 *= (float)this.life / (float)this.lifeMax;
|
|
num51 += 30f;
|
|
if (Main.netMode != 1 && this.ai[2] >= num51 && this.velocity.Y == 0f && !Main.player[this.target].dead && !Main.player[this.target].frozen && ((this.direction > 0 && this.center().X < Main.player[this.target].center().X) || (this.direction < 0 && this.center().X > Main.player[this.target].center().X)) && Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
float num52 = 15f;
|
|
Vector2 vector5 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + 20f);
|
|
vector5.X += (float)(10 * this.direction);
|
|
float num53 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector5.X;
|
|
float num54 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - vector5.Y;
|
|
num53 += (float)Main.rand.Next(-40, 41);
|
|
num54 += (float)Main.rand.Next(-40, 41);
|
|
float num55 = (float)Math.Sqrt((double)(num53 * num53 + num54 * num54));
|
|
this.netUpdate = true;
|
|
num55 = num52 / num55;
|
|
num53 *= num55;
|
|
num54 *= num55;
|
|
int num56 = 32;
|
|
int num57 = 257;
|
|
vector5.X += num53 * 3f;
|
|
vector5.Y += num54 * 3f;
|
|
Projectile.NewProjectile(vector5.X, vector5.Y, num53, num54, num57, num56, 0f, Main.myPlayer, 0f, 0f);
|
|
this.ai[2] = 0f;
|
|
}
|
|
}
|
|
if (this.type == 251)
|
|
{
|
|
if (this.justHit)
|
|
{
|
|
this.ai[2] -= (float)Main.rand.Next(30);
|
|
}
|
|
if (this.ai[2] < 0f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
}
|
|
if (this.confused)
|
|
{
|
|
this.ai[2] = 0f;
|
|
}
|
|
this.ai[2] += 1f;
|
|
float num58 = (float)Main.rand.Next(60, 1800);
|
|
num58 *= (float)this.life / (float)this.lifeMax;
|
|
num58 += 15f;
|
|
if (Main.netMode != 1 && this.ai[2] >= num58 && this.velocity.Y == 0f && !Main.player[this.target].dead && !Main.player[this.target].frozen && ((this.direction > 0 && this.center().X < Main.player[this.target].center().X) || (this.direction < 0 && this.center().X > Main.player[this.target].center().X)) && Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
float num59 = 15f;
|
|
Vector2 vector6 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + 12f);
|
|
vector6.X += (float)(6 * this.direction);
|
|
float num60 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector6.X;
|
|
float num61 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - vector6.Y;
|
|
num60 += (float)Main.rand.Next(-40, 41);
|
|
num61 += (float)Main.rand.Next(-30, 0);
|
|
float num62 = (float)Math.Sqrt((double)(num60 * num60 + num61 * num61));
|
|
this.netUpdate = true;
|
|
num62 = num59 / num62;
|
|
num60 *= num62;
|
|
num61 *= num62;
|
|
int num63 = 30;
|
|
int num64 = 83;
|
|
vector6.X += num60 * 3f;
|
|
vector6.Y += num61 * 3f;
|
|
Projectile.NewProjectile(vector6.X, vector6.Y, num60, num61, num64, num63, 0f, Main.myPlayer, 0f, 0f);
|
|
this.ai[2] = 0f;
|
|
}
|
|
}
|
|
if (this.type == 110 || this.type == 111 || this.type == 206 || this.type == 214 || this.type == 215 || this.type == 216 || this.type == 290 || this.type == 291 || this.type == 292 || this.type == 293)
|
|
{
|
|
if (this.confused)
|
|
{
|
|
this.ai[2] = 0f;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] > 0f)
|
|
{
|
|
this.ai[1] -= 1f;
|
|
}
|
|
if (this.justHit)
|
|
{
|
|
this.ai[1] = 30f;
|
|
this.ai[2] = 0f;
|
|
}
|
|
int num65 = 70;
|
|
if (this.type == 291)
|
|
{
|
|
num65 = 200;
|
|
}
|
|
if (this.type == 292)
|
|
{
|
|
num65 = 120;
|
|
}
|
|
if (this.type == 293)
|
|
{
|
|
num65 = 90;
|
|
}
|
|
if (this.type == 111)
|
|
{
|
|
num65 = 180;
|
|
}
|
|
if (this.type == 206)
|
|
{
|
|
num65 = 50;
|
|
}
|
|
if (this.type == 214)
|
|
{
|
|
num65 = 40;
|
|
}
|
|
if (this.type == 215)
|
|
{
|
|
num65 = 80;
|
|
}
|
|
if (this.type == 290)
|
|
{
|
|
num65 = 30;
|
|
}
|
|
bool flag9 = false;
|
|
if (this.type == 216)
|
|
{
|
|
if (this.localAI[2] >= 20f)
|
|
{
|
|
flag9 = true;
|
|
}
|
|
if (flag9)
|
|
{
|
|
num65 = 60;
|
|
}
|
|
else
|
|
{
|
|
num65 = 8;
|
|
}
|
|
}
|
|
if (this.ai[2] > 0f)
|
|
{
|
|
this.TargetClosest(true);
|
|
if (this.ai[1] == (float)(num65 / 2))
|
|
{
|
|
if (this.type == 216)
|
|
{
|
|
this.localAI[2] += 1f;
|
|
}
|
|
float num66 = 11f;
|
|
if (this.type == 111)
|
|
{
|
|
num66 = 9f;
|
|
}
|
|
if (this.type == 206)
|
|
{
|
|
num66 = 7f;
|
|
}
|
|
if (this.type == 290)
|
|
{
|
|
num66 = 9f;
|
|
}
|
|
if (this.type == 293)
|
|
{
|
|
num66 = 4f;
|
|
}
|
|
if (this.type == 214)
|
|
{
|
|
num66 = 14f;
|
|
}
|
|
if (this.type == 215)
|
|
{
|
|
num66 = 16f;
|
|
}
|
|
Vector2 vector7 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
if (this.type == 206)
|
|
{
|
|
vector7.Y -= 10f;
|
|
}
|
|
if (this.type == 290)
|
|
{
|
|
vector7.Y -= 10f;
|
|
}
|
|
float num67 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector7.X;
|
|
float num68 = Math.Abs(num67) * 0.1f;
|
|
if (this.type == 291 || this.type == 292)
|
|
{
|
|
num68 = 0f;
|
|
}
|
|
if (this.type == 215)
|
|
{
|
|
num68 = Math.Abs(num67) * 0.08f;
|
|
}
|
|
if (this.type == 214 || (this.type == 216 && !flag9))
|
|
{
|
|
num68 = 0f;
|
|
}
|
|
float num69 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - vector7.Y - num68;
|
|
if (this.type == 291)
|
|
{
|
|
num67 += (float)Main.rand.Next(-40, 41) * 0.2f;
|
|
num69 += (float)Main.rand.Next(-40, 41) * 0.2f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type != 292)
|
|
{
|
|
num67 += (float)Main.rand.Next(-40, 41);
|
|
num69 += (float)Main.rand.Next(-40, 41);
|
|
}
|
|
}
|
|
float num70 = (float)Math.Sqrt((double)(num67 * num67 + num69 * num69));
|
|
this.netUpdate = true;
|
|
num70 = num66 / num70;
|
|
num67 *= num70;
|
|
num69 *= num70;
|
|
int num71 = 35;
|
|
if (this.type == 111)
|
|
{
|
|
num71 = 11;
|
|
}
|
|
if (this.type == 206)
|
|
{
|
|
num71 = 37;
|
|
}
|
|
int num72 = 82;
|
|
if (this.type == 111)
|
|
{
|
|
num72 = 81;
|
|
}
|
|
if (this.type == 206)
|
|
{
|
|
num72 = 177;
|
|
}
|
|
if (this.type == 291)
|
|
{
|
|
num72 = 302;
|
|
num71 = 100;
|
|
}
|
|
if (this.type == 290)
|
|
{
|
|
num72 = 300;
|
|
num71 = 60;
|
|
}
|
|
if (this.type == 293)
|
|
{
|
|
num72 = 303;
|
|
num71 = 60;
|
|
}
|
|
if (this.type == 214)
|
|
{
|
|
num72 = 180;
|
|
num71 = 25;
|
|
}
|
|
if (this.type == 215)
|
|
{
|
|
num72 = 82;
|
|
num71 = 40;
|
|
}
|
|
if (this.type == 292)
|
|
{
|
|
num71 = 50;
|
|
num72 = 180;
|
|
}
|
|
if (this.type == 216)
|
|
{
|
|
num72 = 180;
|
|
num71 = 30;
|
|
if (flag9)
|
|
{
|
|
num71 = 100;
|
|
num72 = 240;
|
|
this.localAI[2] = 0f;
|
|
}
|
|
}
|
|
vector7.X += num67;
|
|
vector7.Y += num69;
|
|
if (Main.netMode != 1)
|
|
{
|
|
if (this.type == 292)
|
|
{
|
|
for (int num73 = 0; num73 < 4; num73++)
|
|
{
|
|
num67 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector7.X;
|
|
num69 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - vector7.Y;
|
|
num70 = (float)Math.Sqrt((double)(num67 * num67 + num69 * num69));
|
|
num70 = 12f / num70;
|
|
num67 += (float)Main.rand.Next(-40, 41);
|
|
num69 += (float)Main.rand.Next(-40, 41);
|
|
num67 *= num70;
|
|
num69 *= num70;
|
|
Projectile.NewProjectile(vector7.X, vector7.Y, num67, num69, num72, num71, 0f, Main.myPlayer, 0f, 0f);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Projectile.NewProjectile(vector7.X, vector7.Y, num67, num69, num72, num71, 0f, Main.myPlayer, 0f, 0f);
|
|
}
|
|
}
|
|
if (Math.Abs(num69) > Math.Abs(num67) * 2f)
|
|
{
|
|
if (num69 > 0f)
|
|
{
|
|
this.ai[2] = 1f;
|
|
}
|
|
else
|
|
{
|
|
this.ai[2] = 5f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Math.Abs(num67) > Math.Abs(num69) * 2f)
|
|
{
|
|
this.ai[2] = 3f;
|
|
}
|
|
else
|
|
{
|
|
if (num69 > 0f)
|
|
{
|
|
this.ai[2] = 2f;
|
|
}
|
|
else
|
|
{
|
|
this.ai[2] = 4f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.Y != 0f || this.ai[1] <= 0f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
this.ai[1] = 0f;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.9f;
|
|
this.spriteDirection = this.direction;
|
|
}
|
|
}
|
|
if (this.ai[2] <= 0f && this.velocity.Y == 0f && this.ai[1] <= 0f && !Main.player[this.target].dead && Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
float num74 = 10f;
|
|
Vector2 vector8 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num75 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector8.X;
|
|
float num76 = Math.Abs(num75) * 0.1f;
|
|
float num77 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - vector8.Y - num76;
|
|
num75 += (float)Main.rand.Next(-40, 41);
|
|
num77 += (float)Main.rand.Next(-40, 41);
|
|
float num78 = (float)Math.Sqrt((double)(num75 * num75 + num77 * num77));
|
|
float num79 = 700f;
|
|
if (this.type == 214)
|
|
{
|
|
num79 = 550f;
|
|
}
|
|
if (this.type == 215)
|
|
{
|
|
num79 = 800f;
|
|
}
|
|
if (num78 < num79)
|
|
{
|
|
this.netUpdate = true;
|
|
this.velocity.X = this.velocity.X * 0.5f;
|
|
num78 = num74 / num78;
|
|
num75 *= num78;
|
|
num77 *= num78;
|
|
this.ai[2] = 3f;
|
|
this.ai[1] = (float)num65;
|
|
if (Math.Abs(num77) > Math.Abs(num75) * 2f)
|
|
{
|
|
if (num77 > 0f)
|
|
{
|
|
this.ai[2] = 1f;
|
|
}
|
|
else
|
|
{
|
|
this.ai[2] = 5f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Math.Abs(num75) > Math.Abs(num77) * 2f)
|
|
{
|
|
this.ai[2] = 3f;
|
|
}
|
|
else
|
|
{
|
|
if (num77 > 0f)
|
|
{
|
|
this.ai[2] = 2f;
|
|
}
|
|
else
|
|
{
|
|
this.ai[2] = 4f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.ai[2] <= 0f)
|
|
{
|
|
float num80 = 1f;
|
|
float num81 = 0.07f;
|
|
if (this.type == 214)
|
|
{
|
|
num80 = 2f;
|
|
num81 = 0.09f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 215)
|
|
{
|
|
num80 = 1.5f;
|
|
num81 = 0.08f;
|
|
}
|
|
}
|
|
if (this.velocity.X < -num80 || this.velocity.X > num80)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.velocity *= 0.8f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < num80 && this.direction == 1)
|
|
{
|
|
this.velocity.X = this.velocity.X + num81;
|
|
if (this.velocity.X > num80)
|
|
{
|
|
this.velocity.X = num80;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > -1f && this.direction == -1)
|
|
{
|
|
this.velocity.X = this.velocity.X - num81;
|
|
if (this.velocity.X < -num80)
|
|
{
|
|
this.velocity.X = -num80;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 109 && Main.netMode != 1 && !Main.player[this.target].dead)
|
|
{
|
|
if (this.justHit)
|
|
{
|
|
this.ai[2] = 0f;
|
|
}
|
|
this.ai[2] += 1f;
|
|
if (this.ai[2] > 450f)
|
|
{
|
|
Vector2 vector9 = new Vector2(this.position.X + (float)this.width * 0.5f - (float)(this.direction * 24), this.position.Y + 4f);
|
|
int num82 = 3 * this.direction;
|
|
int num83 = -5;
|
|
int num84 = Projectile.NewProjectile(vector9.X, vector9.Y, (float)num82, (float)num83, 75, 0, 0f, Main.myPlayer, 0f, 0f);
|
|
Main.projectile[num84].timeLeft = 300;
|
|
this.ai[2] = 0f;
|
|
}
|
|
}
|
|
bool flag10 = false;
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
int num85 = (int)(this.position.Y + (float)this.height + 7f) / 16;
|
|
int num86 = (int)this.position.X / 16;
|
|
int num87 = (int)(this.position.X + (float)this.width) / 16;
|
|
for (int num88 = num86; num88 <= num87; num88++)
|
|
{
|
|
if (Main.tile[num88, num85] == null)
|
|
{
|
|
return;
|
|
}
|
|
if (Main.tile[num88, num85].nactive() && Main.tileSolid[(int)Main.tile[num88, num85].type])
|
|
{
|
|
flag10 = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.Y >= 0f)
|
|
{
|
|
int num89 = 0;
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
num89 = -1;
|
|
}
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
num89 = 1;
|
|
}
|
|
Vector2 vector10 = this.position;
|
|
vector10.X += this.velocity.X;
|
|
int num90 = (int)((vector10.X + (float)(this.width / 2) + (float)((this.width / 2 + 1) * num89)) / 16f);
|
|
int num91 = (int)((vector10.Y + (float)this.height - 1f) / 16f);
|
|
if (Main.tile[num90, num91] == null)
|
|
{
|
|
Main.tile[num90, num91] = new Tile();
|
|
}
|
|
if (Main.tile[num90, num91 - 1] == null)
|
|
{
|
|
Main.tile[num90, num91 - 1] = new Tile();
|
|
}
|
|
if (Main.tile[num90, num91 - 2] == null)
|
|
{
|
|
Main.tile[num90, num91 - 2] = new Tile();
|
|
}
|
|
if (Main.tile[num90, num91 - 3] == null)
|
|
{
|
|
Main.tile[num90, num91 - 3] = new Tile();
|
|
}
|
|
if (Main.tile[num90, num91 + 1] == null)
|
|
{
|
|
Main.tile[num90, num91 + 1] = new Tile();
|
|
}
|
|
if (Main.tile[num90 - num89, num91 - 3] == null)
|
|
{
|
|
Main.tile[num90 - num89, num91 - 3] = new Tile();
|
|
}
|
|
if ((float)(num90 * 16) < vector10.X + (float)this.width && (float)(num90 * 16 + 16) > vector10.X && ((Main.tile[num90, num91].nactive() && Main.tile[num90, num91].slope() == 0 && Main.tile[num90, num91 - 1].slope() == 0 && Main.tileSolid[(int)Main.tile[num90, num91].type] && !Main.tileSolidTop[(int)Main.tile[num90, num91].type]) || (Main.tile[num90, num91 - 1].halfBrick() && Main.tile[num90, num91 - 1].nactive())) && (!Main.tile[num90, num91 - 1].nactive() || !Main.tileSolid[(int)Main.tile[num90, num91 - 1].type] || Main.tileSolidTop[(int)Main.tile[num90, num91 - 1].type] || (Main.tile[num90, num91 - 1].halfBrick() && (!Main.tile[num90, num91 - 4].nactive() || !Main.tileSolid[(int)Main.tile[num90, num91 - 4].type] || Main.tileSolidTop[(int)Main.tile[num90, num91 - 4].type]))) && (!Main.tile[num90, num91 - 2].nactive() || !Main.tileSolid[(int)Main.tile[num90, num91 - 2].type] || Main.tileSolidTop[(int)Main.tile[num90, num91 - 2].type]) && (!Main.tile[num90, num91 - 3].nactive() || !Main.tileSolid[(int)Main.tile[num90, num91 - 3].type] || Main.tileSolidTop[(int)Main.tile[num90, num91 - 3].type]) && (!Main.tile[num90 - num89, num91 - 3].nactive() || !Main.tileSolid[(int)Main.tile[num90 - num89, num91 - 3].type]))
|
|
{
|
|
float num92 = (float)(num91 * 16);
|
|
if (Main.tile[num90, num91].halfBrick())
|
|
{
|
|
num92 += 8f;
|
|
}
|
|
if (Main.tile[num90, num91 - 1].halfBrick())
|
|
{
|
|
num92 -= 8f;
|
|
}
|
|
if (num92 < vector10.Y + (float)this.height)
|
|
{
|
|
float num93 = vector10.Y + (float)this.height - num92;
|
|
float num94 = 16.1f;
|
|
if (this.type == 163 || this.type == 164 || this.type == 236 || this.type == 239)
|
|
{
|
|
num94 += 8f;
|
|
}
|
|
if (num93 <= num94)
|
|
{
|
|
this.gfxOffY += this.position.Y + (float)this.height - num92;
|
|
this.position.Y = num92 - (float)this.height;
|
|
if (num93 < 9f)
|
|
{
|
|
this.stepSpeed = 1f;
|
|
}
|
|
else
|
|
{
|
|
this.stepSpeed = 2f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (flag10)
|
|
{
|
|
int num95 = (int)((this.position.X + (float)(this.width / 2) + (float)(15 * this.direction)) / 16f);
|
|
int num96 = (int)((this.position.Y + (float)this.height - 15f) / 16f);
|
|
if (this.type == 109 || this.type == 163 || this.type == 164 || this.type == 199 || this.type == 236 || this.type == 239 || this.type == 257 || this.type == 258 || this.type == 290)
|
|
{
|
|
num95 = (int)((this.position.X + (float)(this.width / 2) + (float)((this.width / 2 + 16) * this.direction)) / 16f);
|
|
}
|
|
if (Main.tile[num95, num96] == null)
|
|
{
|
|
Main.tile[num95, num96] = new Tile();
|
|
}
|
|
if (Main.tile[num95, num96 - 1] == null)
|
|
{
|
|
Main.tile[num95, num96 - 1] = new Tile();
|
|
}
|
|
if (Main.tile[num95, num96 - 2] == null)
|
|
{
|
|
Main.tile[num95, num96 - 2] = new Tile();
|
|
}
|
|
if (Main.tile[num95, num96 - 3] == null)
|
|
{
|
|
Main.tile[num95, num96 - 3] = new Tile();
|
|
}
|
|
if (Main.tile[num95, num96 + 1] == null)
|
|
{
|
|
Main.tile[num95, num96 + 1] = new Tile();
|
|
}
|
|
if (Main.tile[num95 + this.direction, num96 - 1] == null)
|
|
{
|
|
Main.tile[num95 + this.direction, num96 - 1] = new Tile();
|
|
}
|
|
if (Main.tile[num95 + this.direction, num96 + 1] == null)
|
|
{
|
|
Main.tile[num95 + this.direction, num96 + 1] = new Tile();
|
|
}
|
|
if (Main.tile[num95 - this.direction, num96 + 1] == null)
|
|
{
|
|
Main.tile[num95 - this.direction, num96 + 1] = new Tile();
|
|
}
|
|
Main.tile[num95, num96 + 1].halfBrick();
|
|
if (Main.tile[num95, num96 - 1].nactive() && Main.tile[num95, num96 - 1].type == 10 && flag4)
|
|
{
|
|
this.ai[2] += 1f;
|
|
this.ai[3] = 0f;
|
|
if (this.ai[2] >= 60f)
|
|
{
|
|
if (!Main.bloodMoon && (this.type == 3 || this.type == 132 || this.type == 161 || this.type == 186 || this.type == 187 || this.type == 188 || this.type == 189 || this.type == 200 || this.type == 223))
|
|
{
|
|
this.ai[1] = 0f;
|
|
}
|
|
this.velocity.X = 0.5f * (float)(-(float)this.direction);
|
|
this.ai[1] += 5f;
|
|
if (this.type == 27)
|
|
{
|
|
this.ai[1] += 1f;
|
|
}
|
|
if (this.type == 31 || this.type == 294 || this.type == 295 || this.type == 296)
|
|
{
|
|
this.ai[1] += 6f;
|
|
}
|
|
this.ai[2] = 0f;
|
|
bool flag11 = false;
|
|
if (this.ai[1] >= 10f)
|
|
{
|
|
flag11 = true;
|
|
this.ai[1] = 10f;
|
|
}
|
|
WorldGen.KillTile(num95, num96 - 1, true, false, false);
|
|
if ((Main.netMode != 1 || !flag11) && flag11 && Main.netMode != 1)
|
|
{
|
|
if (this.type == 26)
|
|
{
|
|
WorldGen.KillTile(num95, num96 - 1, false, false, false);
|
|
if (Main.netMode == 2)
|
|
{
|
|
NetMessage.SendData(17, -1, -1, "", 0, (float)num95, (float)(num96 - 1), 0f, 0);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
bool flag12 = WorldGen.OpenDoor(num95, num96 - 1, this.direction);
|
|
if (!flag12)
|
|
{
|
|
this.ai[3] = (float)num18;
|
|
this.netUpdate = true;
|
|
}
|
|
if (Main.netMode == 2 && flag12)
|
|
{
|
|
NetMessage.SendData(19, -1, -1, "", 0, (float)num95, (float)(num96 - 1), (float)this.direction, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if ((this.velocity.X < 0f && this.spriteDirection == -1) || (this.velocity.X > 0f && this.spriteDirection == 1))
|
|
{
|
|
if (Main.tile[num95, num96 - 2].nactive() && Main.tileSolid[(int)Main.tile[num95, num96 - 2].type])
|
|
{
|
|
if (Main.tile[num95, num96 - 3].nactive() && Main.tileSolid[(int)Main.tile[num95, num96 - 3].type])
|
|
{
|
|
this.velocity.Y = -8f;
|
|
this.netUpdate = true;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.Y = -7f;
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.tile[num95, num96 - 1].nactive() && Main.tileSolid[(int)Main.tile[num95, num96 - 1].type])
|
|
{
|
|
this.velocity.Y = -6f;
|
|
this.netUpdate = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.position.Y + (float)this.height - (float)(num96 * 16) > 20f && Main.tile[num95, num96].nactive() && Main.tile[num95, num96].slope() == 0 && Main.tileSolid[(int)Main.tile[num95, num96].type])
|
|
{
|
|
this.velocity.Y = -5f;
|
|
this.netUpdate = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.directionY < 0 && this.type != 67 && (!Main.tile[num95, num96 + 1].nactive() || !Main.tileSolid[(int)Main.tile[num95, num96 + 1].type]) && (!Main.tile[num95 + this.direction, num96 + 1].nactive() || !Main.tileSolid[(int)Main.tile[num95 + this.direction, num96 + 1].type]))
|
|
{
|
|
this.velocity.Y = -8f;
|
|
this.velocity.X = this.velocity.X * 1.5f;
|
|
this.netUpdate = true;
|
|
}
|
|
else
|
|
{
|
|
if (flag4)
|
|
{
|
|
this.ai[1] = 0f;
|
|
this.ai[2] = 0f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.Y == 0f && flag2 && this.ai[3] == 1f)
|
|
{
|
|
this.velocity.Y = -5f;
|
|
}
|
|
}
|
|
if ((this.type == 31 || this.type == 294 || this.type == 295 || this.type == 296 || this.type == 47 || this.type == 77 || this.type == 104 || this.type == 168 || this.type == 196) && this.velocity.Y == 0f && Math.Abs(this.position.X + (float)(this.width / 2) - (Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2))) < 100f && Math.Abs(this.position.Y + (float)(this.height / 2) - (Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2))) < 50f && ((this.direction > 0 && this.velocity.X >= 1f) || (this.direction < 0 && this.velocity.X <= -1f)))
|
|
{
|
|
this.velocity.X = this.velocity.X * 2f;
|
|
if (this.velocity.X > 3f)
|
|
{
|
|
this.velocity.X = 3f;
|
|
}
|
|
if (this.velocity.X < -3f)
|
|
{
|
|
this.velocity.X = -3f;
|
|
}
|
|
this.velocity.Y = -4f;
|
|
this.netUpdate = true;
|
|
}
|
|
if (this.type == 120 && this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 1.1f;
|
|
}
|
|
if (this.type == 287 && this.velocity.Y == 0f && Math.Abs(this.position.X + (float)(this.width / 2) - (Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2))) < 150f && Math.Abs(this.position.Y + (float)(this.height / 2) - (Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2))) < 50f && ((this.direction > 0 && this.velocity.X >= 1f) || (this.direction < 0 && this.velocity.X <= -1f)))
|
|
{
|
|
this.velocity.X = (float)(8 * this.direction);
|
|
this.velocity.Y = -4f;
|
|
this.netUpdate = true;
|
|
}
|
|
if (this.type == 287 && this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 1.2f;
|
|
this.velocity.Y = this.velocity.Y * 1.1f;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (flag4)
|
|
{
|
|
this.ai[1] = 0f;
|
|
this.ai[2] = 0f;
|
|
}
|
|
}
|
|
if (Main.netMode != 1 && this.type == 120 && this.ai[3] >= (float)num18)
|
|
{
|
|
int num97 = (int)Main.player[this.target].position.X / 16;
|
|
int num98 = (int)Main.player[this.target].position.Y / 16;
|
|
int num99 = (int)this.position.X / 16;
|
|
int num100 = (int)this.position.Y / 16;
|
|
int num101 = 20;
|
|
int num102 = 0;
|
|
bool flag13 = false;
|
|
if (Math.Abs(this.position.X - Main.player[this.target].position.X) + Math.Abs(this.position.Y - Main.player[this.target].position.Y) > 2000f)
|
|
{
|
|
num102 = 100;
|
|
flag13 = true;
|
|
}
|
|
while (!flag13)
|
|
{
|
|
if (num102 >= 100)
|
|
{
|
|
return;
|
|
}
|
|
num102++;
|
|
int num103 = Main.rand.Next(num97 - num101, num97 + num101);
|
|
int num104 = Main.rand.Next(num98 - num101, num98 + num101);
|
|
for (int num105 = num104; num105 < num98 + num101; num105++)
|
|
{
|
|
if ((num105 < num98 - 4 || num105 > num98 + 4 || num103 < num97 - 4 || num103 > num97 + 4) && (num105 < num100 - 1 || num105 > num100 + 1 || num103 < num99 - 1 || num103 > num99 + 1) && Main.tile[num103, num105].nactive())
|
|
{
|
|
bool flag14 = true;
|
|
if (this.type == 32 && Main.tile[num103, num105 - 1].wall == 0)
|
|
{
|
|
flag14 = false;
|
|
}
|
|
else
|
|
{
|
|
if (Main.tile[num103, num105 - 1].lava())
|
|
{
|
|
flag14 = false;
|
|
}
|
|
}
|
|
if (flag14 && Main.tileSolid[(int)Main.tile[num103, num105].type] && !Collision.SolidTiles(num103 - 1, num103 + 1, num105 - 4, num105 - 1))
|
|
{
|
|
this.position.X = (float)(num103 * 16 - this.width / 2);
|
|
this.position.Y = (float)(num105 * 16 - this.height);
|
|
this.netUpdate = true;
|
|
this.ai[3] = -120f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 4)
|
|
{
|
|
if (this.target < 0 || this.target == 255 || Main.player[this.target].dead || !Main.player[this.target].active)
|
|
{
|
|
this.TargetClosest(true);
|
|
}
|
|
bool dead = Main.player[this.target].dead;
|
|
float num106 = this.position.X + (float)(this.width / 2) - Main.player[this.target].position.X - (float)(Main.player[this.target].width / 2);
|
|
float num107 = this.position.Y + (float)this.height - 59f - Main.player[this.target].position.Y - (float)(Main.player[this.target].height / 2);
|
|
float num108 = (float)Math.Atan2((double)num107, (double)num106) + 1.57f;
|
|
if (num108 < 0f)
|
|
{
|
|
num108 += 6.283f;
|
|
}
|
|
else
|
|
{
|
|
if ((double)num108 > 6.283)
|
|
{
|
|
num108 -= 6.283f;
|
|
}
|
|
}
|
|
float num109 = 0f;
|
|
if (this.ai[0] == 0f && this.ai[1] == 0f)
|
|
{
|
|
num109 = 0.02f;
|
|
}
|
|
if (this.ai[0] == 0f && this.ai[1] == 2f && this.ai[2] > 40f)
|
|
{
|
|
num109 = 0.05f;
|
|
}
|
|
if (this.ai[0] == 3f && this.ai[1] == 0f)
|
|
{
|
|
num109 = 0.05f;
|
|
}
|
|
if (this.ai[0] == 3f && this.ai[1] == 2f && this.ai[2] > 40f)
|
|
{
|
|
num109 = 0.08f;
|
|
}
|
|
if (this.rotation < num108)
|
|
{
|
|
if ((double)(num108 - this.rotation) > 3.1415)
|
|
{
|
|
this.rotation -= num109;
|
|
}
|
|
else
|
|
{
|
|
this.rotation += num109;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.rotation > num108)
|
|
{
|
|
if ((double)(this.rotation - num108) > 3.1415)
|
|
{
|
|
this.rotation += num109;
|
|
}
|
|
else
|
|
{
|
|
this.rotation -= num109;
|
|
}
|
|
}
|
|
}
|
|
if (this.rotation > num108 - num109 && this.rotation < num108 + num109)
|
|
{
|
|
this.rotation = num108;
|
|
}
|
|
if (this.rotation < 0f)
|
|
{
|
|
this.rotation += 6.283f;
|
|
}
|
|
else
|
|
{
|
|
if ((double)this.rotation > 6.283)
|
|
{
|
|
this.rotation -= 6.283f;
|
|
}
|
|
}
|
|
if (this.rotation > num108 - num109 && this.rotation < num108 + num109)
|
|
{
|
|
this.rotation = num108;
|
|
}
|
|
if (Main.rand.Next(5) == 0)
|
|
{
|
|
int num110 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + (float)this.height * 0.25f), this.width, (int)((float)this.height * 0.5f), 5, this.velocity.X, 2f, 0, default(Color), 1f);
|
|
Dust expr_7973_cp_0 = Main.dust[num110];
|
|
expr_7973_cp_0.velocity.X = expr_7973_cp_0.velocity.X * 0.5f;
|
|
Dust expr_7991_cp_0 = Main.dust[num110];
|
|
expr_7991_cp_0.velocity.Y = expr_7991_cp_0.velocity.Y * 0.1f;
|
|
}
|
|
if (Main.dayTime || dead)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.04f;
|
|
if (this.timeLeft > 10)
|
|
{
|
|
this.timeLeft = 10;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] == 0f)
|
|
{
|
|
if (this.ai[1] == 0f)
|
|
{
|
|
float num111 = 5f;
|
|
float num112 = 0.04f;
|
|
Vector2 vector11 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num113 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector11.X;
|
|
float num114 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - 200f - vector11.Y;
|
|
float num115 = (float)Math.Sqrt((double)(num113 * num113 + num114 * num114));
|
|
float num116 = num115;
|
|
num115 = num111 / num115;
|
|
num113 *= num115;
|
|
num114 *= num115;
|
|
if (this.velocity.X < num113)
|
|
{
|
|
this.velocity.X = this.velocity.X + num112;
|
|
if (this.velocity.X < 0f && num113 > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num112;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > num113)
|
|
{
|
|
this.velocity.X = this.velocity.X - num112;
|
|
if (this.velocity.X > 0f && num113 < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - num112;
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.Y < num114)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num112;
|
|
if (this.velocity.Y < 0f && num114 > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num112;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > num114)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num112;
|
|
if (this.velocity.Y > 0f && num114 < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num112;
|
|
}
|
|
}
|
|
}
|
|
this.ai[2] += 1f;
|
|
if (this.ai[2] >= 600f)
|
|
{
|
|
this.ai[1] = 1f;
|
|
this.ai[2] = 0f;
|
|
this.ai[3] = 0f;
|
|
this.target = 255;
|
|
this.netUpdate = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.position.Y + (float)this.height < Main.player[this.target].position.Y && num116 < 500f)
|
|
{
|
|
if (!Main.player[this.target].dead)
|
|
{
|
|
this.ai[3] += 1f;
|
|
}
|
|
if (this.ai[3] >= 110f)
|
|
{
|
|
this.ai[3] = 0f;
|
|
this.rotation = num108;
|
|
float num117 = 5f;
|
|
float num118 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector11.X;
|
|
float num119 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector11.Y;
|
|
float num120 = (float)Math.Sqrt((double)(num118 * num118 + num119 * num119));
|
|
num120 = num117 / num120;
|
|
Vector2 vector12 = vector11;
|
|
Vector2 vector13;
|
|
vector13.X = num118 * num120;
|
|
vector13.Y = num119 * num120;
|
|
vector12.X += vector13.X * 10f;
|
|
vector12.Y += vector13.Y * 10f;
|
|
if (Main.netMode != 1)
|
|
{
|
|
int num121 = NPC.NewNPC((int)vector12.X, (int)vector12.Y, 5, 0);
|
|
Main.npc[num121].velocity.X = vector13.X;
|
|
Main.npc[num121].velocity.Y = vector13.Y;
|
|
if (Main.netMode == 2 && num121 < 200)
|
|
{
|
|
NetMessage.SendData(23, -1, -1, "", num121, 0f, 0f, 0f, 0);
|
|
}
|
|
}
|
|
Main.PlaySound(3, (int)vector12.X, (int)vector12.Y, 1);
|
|
for (int num122 = 0; num122 < 10; num122++)
|
|
{
|
|
Dust.NewDust(vector12, 20, 20, 5, vector13.X * 0.4f, vector13.Y * 0.4f, 0, default(Color), 1f);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] == 1f)
|
|
{
|
|
this.rotation = num108;
|
|
float num123 = 6f;
|
|
Vector2 vector14 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num124 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector14.X;
|
|
float num125 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector14.Y;
|
|
float num126 = (float)Math.Sqrt((double)(num124 * num124 + num125 * num125));
|
|
num126 = num123 / num126;
|
|
this.velocity.X = num124 * num126;
|
|
this.velocity.Y = num125 * num126;
|
|
this.ai[1] = 2f;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] == 2f)
|
|
{
|
|
this.ai[2] += 1f;
|
|
if (this.ai[2] >= 40f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.98f;
|
|
this.velocity.Y = this.velocity.Y * 0.98f;
|
|
if ((double)this.velocity.X > -0.1 && (double)this.velocity.X < 0.1)
|
|
{
|
|
this.velocity.X = 0f;
|
|
}
|
|
if ((double)this.velocity.Y > -0.1 && (double)this.velocity.Y < 0.1)
|
|
{
|
|
this.velocity.Y = 0f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.rotation = (float)Math.Atan2((double)this.velocity.Y, (double)this.velocity.X) - 1.57f;
|
|
}
|
|
if (this.ai[2] >= 150f)
|
|
{
|
|
this.ai[3] += 1f;
|
|
this.ai[2] = 0f;
|
|
this.target = 255;
|
|
this.rotation = num108;
|
|
if (this.ai[3] >= 3f)
|
|
{
|
|
this.ai[1] = 0f;
|
|
this.ai[3] = 0f;
|
|
}
|
|
else
|
|
{
|
|
this.ai[1] = 1f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.5)
|
|
{
|
|
this.ai[0] = 1f;
|
|
this.ai[1] = 0f;
|
|
this.ai[2] = 0f;
|
|
this.ai[3] = 0f;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] == 1f || this.ai[0] == 2f)
|
|
{
|
|
if (this.ai[0] == 1f)
|
|
{
|
|
this.ai[2] += 0.005f;
|
|
if ((double)this.ai[2] > 0.5)
|
|
{
|
|
this.ai[2] = 0.5f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.ai[2] -= 0.005f;
|
|
if (this.ai[2] < 0f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
}
|
|
}
|
|
this.rotation += this.ai[2];
|
|
this.ai[1] += 1f;
|
|
if (this.ai[1] == 100f)
|
|
{
|
|
this.ai[0] += 1f;
|
|
this.ai[1] = 0f;
|
|
if (this.ai[0] == 3f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
}
|
|
else
|
|
{
|
|
Main.PlaySound(3, (int)this.position.X, (int)this.position.Y, 1);
|
|
for (int num127 = 0; num127 < 2; num127++)
|
|
{
|
|
Gore.NewGore(this.position, new Vector2((float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f), 8, 1f);
|
|
Gore.NewGore(this.position, new Vector2((float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f), 7, 1f);
|
|
Gore.NewGore(this.position, new Vector2((float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f), 6, 1f);
|
|
}
|
|
for (int num128 = 0; num128 < 20; num128++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f, 0, default(Color), 1f);
|
|
}
|
|
Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0);
|
|
}
|
|
}
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f, 0, default(Color), 1f);
|
|
this.velocity.X = this.velocity.X * 0.98f;
|
|
this.velocity.Y = this.velocity.Y * 0.98f;
|
|
if ((double)this.velocity.X > -0.1 && (double)this.velocity.X < 0.1)
|
|
{
|
|
this.velocity.X = 0f;
|
|
}
|
|
if ((double)this.velocity.Y > -0.1 && (double)this.velocity.Y < 0.1)
|
|
{
|
|
this.velocity.Y = 0f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.damage = 23;
|
|
this.defense = 0;
|
|
if (this.ai[1] == 0f)
|
|
{
|
|
float num129 = 6f;
|
|
float num130 = 0.07f;
|
|
Vector2 vector15 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num131 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector15.X;
|
|
float num132 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - 120f - vector15.Y;
|
|
float num133 = (float)Math.Sqrt((double)(num131 * num131 + num132 * num132));
|
|
num133 = num129 / num133;
|
|
num131 *= num133;
|
|
num132 *= num133;
|
|
if (this.velocity.X < num131)
|
|
{
|
|
this.velocity.X = this.velocity.X + num130;
|
|
if (this.velocity.X < 0f && num131 > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num130;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > num131)
|
|
{
|
|
this.velocity.X = this.velocity.X - num130;
|
|
if (this.velocity.X > 0f && num131 < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - num130;
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.Y < num132)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num130;
|
|
if (this.velocity.Y < 0f && num132 > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num130;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > num132)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num130;
|
|
if (this.velocity.Y > 0f && num132 < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num130;
|
|
}
|
|
}
|
|
}
|
|
this.ai[2] += 1f;
|
|
if (this.ai[2] >= 200f)
|
|
{
|
|
this.ai[1] = 1f;
|
|
this.ai[2] = 0f;
|
|
this.ai[3] = 0f;
|
|
this.target = 255;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] == 1f)
|
|
{
|
|
Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0);
|
|
this.rotation = num108;
|
|
float num134 = 6.8f;
|
|
Vector2 vector16 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num135 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector16.X;
|
|
float num136 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector16.Y;
|
|
float num137 = (float)Math.Sqrt((double)(num135 * num135 + num136 * num136));
|
|
num137 = num134 / num137;
|
|
this.velocity.X = num135 * num137;
|
|
this.velocity.Y = num136 * num137;
|
|
this.ai[1] = 2f;
|
|
return;
|
|
}
|
|
if (this.ai[1] == 2f)
|
|
{
|
|
this.ai[2] += 1f;
|
|
if (this.ai[2] >= 40f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.97f;
|
|
this.velocity.Y = this.velocity.Y * 0.97f;
|
|
if ((double)this.velocity.X > -0.1 && (double)this.velocity.X < 0.1)
|
|
{
|
|
this.velocity.X = 0f;
|
|
}
|
|
if ((double)this.velocity.Y > -0.1 && (double)this.velocity.Y < 0.1)
|
|
{
|
|
this.velocity.Y = 0f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.rotation = (float)Math.Atan2((double)this.velocity.Y, (double)this.velocity.X) - 1.57f;
|
|
}
|
|
if (this.ai[2] >= 130f)
|
|
{
|
|
this.ai[3] += 1f;
|
|
this.ai[2] = 0f;
|
|
this.target = 255;
|
|
this.rotation = num108;
|
|
if (this.ai[3] >= 3f)
|
|
{
|
|
this.ai[1] = 0f;
|
|
this.ai[3] = 0f;
|
|
return;
|
|
}
|
|
this.ai[1] = 1f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 5)
|
|
{
|
|
if (this.target < 0 || this.target == 255 || Main.player[this.target].dead)
|
|
{
|
|
this.TargetClosest(true);
|
|
}
|
|
float num138 = 6f;
|
|
float num139 = 0.05f;
|
|
if (this.type == 6 || this.type == 173)
|
|
{
|
|
num138 = 4f;
|
|
num139 = 0.02f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 94)
|
|
{
|
|
num138 = 4.2f;
|
|
num139 = 0.022f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 252)
|
|
{
|
|
if (Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
num138 = 6f;
|
|
num139 = 0.1f;
|
|
}
|
|
else
|
|
{
|
|
num139 = 0.01f;
|
|
num138 = 2f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 42 || (this.type >= 231 && this.type <= 235))
|
|
{
|
|
num138 = 3.5f;
|
|
num139 = 0.021f;
|
|
if (this.type == 231)
|
|
{
|
|
num138 = 3f;
|
|
num139 = 0.017f;
|
|
}
|
|
num138 *= 1f - this.scale;
|
|
num139 *= 1f - this.scale;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 205)
|
|
{
|
|
num138 = 3.25f;
|
|
num139 = 0.018f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 176)
|
|
{
|
|
num138 = 4f;
|
|
num139 = 0.017f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 23)
|
|
{
|
|
num138 = 1f;
|
|
num139 = 0.03f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 5)
|
|
{
|
|
num138 = 5f;
|
|
num139 = 0.03f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 210 || this.type == 211)
|
|
{
|
|
this.localAI[0] += 1f;
|
|
float num140 = (this.localAI[0] - 60f) / 60f;
|
|
if (num140 > 1f)
|
|
{
|
|
num140 = 1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > 6f)
|
|
{
|
|
this.velocity.X = 6f;
|
|
}
|
|
if (this.velocity.X < -6f)
|
|
{
|
|
this.velocity.X = -6f;
|
|
}
|
|
if (this.velocity.Y > 6f)
|
|
{
|
|
this.velocity.Y = 6f;
|
|
}
|
|
if (this.velocity.Y < -6f)
|
|
{
|
|
this.velocity.Y = -6f;
|
|
}
|
|
}
|
|
num138 = 5f;
|
|
num139 = 0.1f;
|
|
num139 *= num140;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Vector2 vector17 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num141 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2);
|
|
float num142 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2);
|
|
num141 = (float)((int)(num141 / 8f) * 8);
|
|
num142 = (float)((int)(num142 / 8f) * 8);
|
|
vector17.X = (float)((int)(vector17.X / 8f) * 8);
|
|
vector17.Y = (float)((int)(vector17.Y / 8f) * 8);
|
|
num141 -= vector17.X;
|
|
num142 -= vector17.Y;
|
|
float num143 = (float)Math.Sqrt((double)(num141 * num141 + num142 * num142));
|
|
float num144 = num143;
|
|
bool flag15 = false;
|
|
if (num143 > 600f)
|
|
{
|
|
flag15 = true;
|
|
}
|
|
if (num143 == 0f)
|
|
{
|
|
num141 = this.velocity.X;
|
|
num142 = this.velocity.Y;
|
|
}
|
|
else
|
|
{
|
|
num143 = num138 / num143;
|
|
num141 *= num143;
|
|
num142 *= num143;
|
|
}
|
|
if (this.type == 6 || this.type == 42 || this.type == 94 || this.type == 139 || this.type == 173 || this.type == 176 || this.type == 205 || this.type == 210 || this.type == 211 || (this.type >= 231 && this.type <= 235))
|
|
{
|
|
if (num144 > 100f || this.type == 42 || this.type == 94 || this.type == 176 || this.type == 210 || this.type == 211 || (this.type >= 231 && this.type <= 235))
|
|
{
|
|
this.ai[0] += 1f;
|
|
if (this.ai[0] > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.023f;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.023f;
|
|
}
|
|
if (this.ai[0] < -100f || this.ai[0] > 100f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.023f;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.023f;
|
|
}
|
|
if (this.ai[0] > 200f)
|
|
{
|
|
this.ai[0] = -200f;
|
|
}
|
|
}
|
|
if (num144 < 150f && (this.type == 6 || this.type == 94 || this.type == 173))
|
|
{
|
|
this.velocity.X = this.velocity.X + num141 * 0.007f;
|
|
this.velocity.Y = this.velocity.Y + num142 * 0.007f;
|
|
}
|
|
}
|
|
if (Main.player[this.target].dead)
|
|
{
|
|
num141 = (float)this.direction * num138 / 2f;
|
|
num142 = -num138 / 2f;
|
|
}
|
|
if (this.velocity.X < num141)
|
|
{
|
|
this.velocity.X = this.velocity.X + num139;
|
|
if (this.type != 173 && this.type != 6 && this.type != 42 && (this.type < 231 || this.type > 235) && this.type != 94 && this.type != 139 && this.velocity.X < 0f && num141 > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num139;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > num141)
|
|
{
|
|
this.velocity.X = this.velocity.X - num139;
|
|
if (this.type != 173 && this.type != 6 && this.type != 42 && (this.type < 231 || this.type > 235) && this.type != 94 && this.type != 139 && this.velocity.X > 0f && num141 < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - num139;
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.Y < num142)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num139;
|
|
if (this.type != 173 && this.type != 6 && this.type != 42 && (this.type < 231 || this.type > 235) && this.type != 94 && this.type != 139 && this.velocity.Y < 0f && num142 > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num139;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > num142)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num139;
|
|
if (this.type != 173 && this.type != 6 && this.type != 42 && (this.type < 231 || this.type > 235) && this.type != 94 && this.type != 139 && this.velocity.Y > 0f && num142 < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num139;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 23)
|
|
{
|
|
if (num141 > 0f)
|
|
{
|
|
this.spriteDirection = 1;
|
|
this.rotation = (float)Math.Atan2((double)num142, (double)num141);
|
|
}
|
|
else
|
|
{
|
|
if (num141 < 0f)
|
|
{
|
|
this.spriteDirection = -1;
|
|
this.rotation = (float)Math.Atan2((double)num142, (double)num141) + 3.14f;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 139)
|
|
{
|
|
this.localAI[0] += 1f;
|
|
if (this.justHit)
|
|
{
|
|
this.localAI[0] = 0f;
|
|
}
|
|
if (Main.netMode != 1 && this.localAI[0] >= 120f)
|
|
{
|
|
this.localAI[0] = 0f;
|
|
if (Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
int num145 = 25;
|
|
int num146 = 84;
|
|
Projectile.NewProjectile(vector17.X, vector17.Y, num141, num142, num146, num145, 0f, Main.myPlayer, 0f, 0f);
|
|
}
|
|
}
|
|
int num147 = (int)this.position.X + this.width / 2;
|
|
int num148 = (int)this.position.Y + this.height / 2;
|
|
num147 /= 16;
|
|
num148 /= 16;
|
|
if (!WorldGen.SolidTile(num147, num148))
|
|
{
|
|
Lighting.addLight((int)((this.position.X + (float)(this.width / 2)) / 16f), (int)((this.position.Y + (float)(this.height / 2)) / 16f), 0.3f, 0.1f, 0.05f);
|
|
}
|
|
if (num141 > 0f)
|
|
{
|
|
this.spriteDirection = 1;
|
|
this.rotation = (float)Math.Atan2((double)num142, (double)num141);
|
|
}
|
|
if (num141 < 0f)
|
|
{
|
|
this.spriteDirection = -1;
|
|
this.rotation = (float)Math.Atan2((double)num142, (double)num141) + 3.14f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 6 || this.type == 94 || this.type == 173)
|
|
{
|
|
this.rotation = (float)Math.Atan2((double)num142, (double)num141) - 1.57f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 42 || this.type == 176 || this.type == 205 || (this.type >= 231 && this.type <= 235))
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.spriteDirection = 1;
|
|
}
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.spriteDirection = -1;
|
|
}
|
|
this.rotation = this.velocity.X * 0.1f;
|
|
}
|
|
else
|
|
{
|
|
this.rotation = (float)Math.Atan2((double)this.velocity.Y, (double)this.velocity.X) - 1.57f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 6 || this.type == 23 || this.type == 42 || this.type == 94 || this.type == 139 || this.type == 173 || this.type == 176 || this.type == 205 || this.type == 210 || this.type == 211 || (this.type >= 231 && this.type <= 235))
|
|
{
|
|
float num149 = 0.7f;
|
|
if (this.type == 6 || this.type == 173)
|
|
{
|
|
num149 = 0.4f;
|
|
}
|
|
if (this.collideX)
|
|
{
|
|
this.netUpdate = true;
|
|
this.velocity.X = this.oldVelocity.X * -num149;
|
|
if (this.direction == -1 && this.velocity.X > 0f && this.velocity.X < 2f)
|
|
{
|
|
this.velocity.X = 2f;
|
|
}
|
|
if (this.direction == 1 && this.velocity.X < 0f && this.velocity.X > -2f)
|
|
{
|
|
this.velocity.X = -2f;
|
|
}
|
|
}
|
|
if (this.collideY)
|
|
{
|
|
this.netUpdate = true;
|
|
this.velocity.Y = this.oldVelocity.Y * -num149;
|
|
if (this.velocity.Y > 0f && (double)this.velocity.Y < 1.5)
|
|
{
|
|
this.velocity.Y = 2f;
|
|
}
|
|
if (this.velocity.Y < 0f && (double)this.velocity.Y > -1.5)
|
|
{
|
|
this.velocity.Y = -2f;
|
|
}
|
|
}
|
|
if (this.type == 23)
|
|
{
|
|
int num150 = Dust.NewDust(new Vector2(this.position.X - this.velocity.X, this.position.Y - this.velocity.Y), this.width, this.height, 6, this.velocity.X * 0.2f, this.velocity.Y * 0.2f, 100, default(Color), 2f);
|
|
Main.dust[num150].noGravity = true;
|
|
Dust expr_9A75_cp_0 = Main.dust[num150];
|
|
expr_9A75_cp_0.velocity.X = expr_9A75_cp_0.velocity.X * 0.3f;
|
|
Dust expr_9A93_cp_0 = Main.dust[num150];
|
|
expr_9A93_cp_0.velocity.Y = expr_9A93_cp_0.velocity.Y * 0.3f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type != 42 && this.type != 139 && this.type != 176 && this.type != 205 && this.type != 210 && this.type != 211 && this.type != 252 && (this.type < 231 || this.type > 235) && Main.rand.Next(20) == 0)
|
|
{
|
|
int num151 = 18;
|
|
if (this.type == 173)
|
|
{
|
|
num151 = 5;
|
|
}
|
|
int num152 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + (float)this.height * 0.25f), this.width, (int)((float)this.height * 0.5f), num151, this.velocity.X, 2f, 75, this.color, this.scale);
|
|
Dust expr_9BC9_cp_0 = Main.dust[num152];
|
|
expr_9BC9_cp_0.velocity.X = expr_9BC9_cp_0.velocity.X * 0.5f;
|
|
Dust expr_9BE7_cp_0 = Main.dust[num152];
|
|
expr_9BE7_cp_0.velocity.Y = expr_9BE7_cp_0.velocity.Y * 0.1f;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type != 252 && Main.rand.Next(40) == 0)
|
|
{
|
|
int num153 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + (float)this.height * 0.25f), this.width, (int)((float)this.height * 0.5f), 5, this.velocity.X, 2f, 0, default(Color), 1f);
|
|
Dust expr_9C94_cp_0 = Main.dust[num153];
|
|
expr_9C94_cp_0.velocity.X = expr_9C94_cp_0.velocity.X * 0.5f;
|
|
Dust expr_9CB2_cp_0 = Main.dust[num153];
|
|
expr_9CB2_cp_0.velocity.Y = expr_9CB2_cp_0.velocity.Y * 0.1f;
|
|
}
|
|
}
|
|
if ((this.type == 6 || this.type == 94 || this.type == 173) && this.wet)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.95f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.3f;
|
|
if (this.velocity.Y < -2f)
|
|
{
|
|
this.velocity.Y = -2f;
|
|
}
|
|
}
|
|
if (this.type == 205 && this.wet)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.95f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.5f;
|
|
if (this.velocity.Y < -4f)
|
|
{
|
|
this.velocity.Y = -4f;
|
|
}
|
|
this.TargetClosest(true);
|
|
}
|
|
if (this.type == 42 || this.type == 176 || (this.type >= 231 && this.type <= 235))
|
|
{
|
|
if (this.wet)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.95f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.5f;
|
|
if (this.velocity.Y < -4f)
|
|
{
|
|
this.velocity.Y = -4f;
|
|
}
|
|
this.TargetClosest(true);
|
|
}
|
|
if (this.ai[1] == 101f)
|
|
{
|
|
Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 17);
|
|
this.ai[1] = 0f;
|
|
}
|
|
if (Main.netMode != 1)
|
|
{
|
|
this.ai[1] += (float)Main.rand.Next(5, 20) * 0.1f * this.scale;
|
|
if (this.type == 176)
|
|
{
|
|
this.ai[1] += (float)Main.rand.Next(5, 20) * 0.1f * this.scale;
|
|
}
|
|
if (this.ai[1] >= 130f)
|
|
{
|
|
if (Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
float num154 = 8f;
|
|
Vector2 vector18 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)(this.height / 2));
|
|
float num155 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector18.X + (float)Main.rand.Next(-20, 21);
|
|
float num156 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - vector18.Y + (float)Main.rand.Next(-20, 21);
|
|
if ((num155 < 0f && this.velocity.X < 0f) || (num155 > 0f && this.velocity.X > 0f))
|
|
{
|
|
float num157 = (float)Math.Sqrt((double)(num155 * num155 + num156 * num156));
|
|
num157 = num154 / num157;
|
|
num155 *= num157;
|
|
num156 *= num157;
|
|
int num158 = (int)(10f * this.scale);
|
|
if (this.type == 176)
|
|
{
|
|
num158 = (int)(30f * this.scale);
|
|
}
|
|
int num159 = 55;
|
|
int num160 = Projectile.NewProjectile(vector18.X, vector18.Y, num155, num156, num159, num158, 0f, Main.myPlayer, 0f, 0f);
|
|
Main.projectile[num160].timeLeft = 300;
|
|
this.ai[1] = 101f;
|
|
this.netUpdate = true;
|
|
}
|
|
else
|
|
{
|
|
this.ai[1] = 0f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.ai[1] = 0f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 139 && flag15)
|
|
{
|
|
if ((this.velocity.X > 0f && num141 > 0f) || (this.velocity.X < 0f && num141 < 0f))
|
|
{
|
|
if (Math.Abs(this.velocity.X) < 12f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 1.05f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.9f;
|
|
}
|
|
}
|
|
if (Main.netMode != 1 && this.type == 94 && !Main.player[this.target].dead)
|
|
{
|
|
if (this.justHit)
|
|
{
|
|
this.localAI[0] = 0f;
|
|
}
|
|
this.localAI[0] += 1f;
|
|
if (this.localAI[0] == 180f)
|
|
{
|
|
if (Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
NPC.NewNPC((int)(this.position.X + (float)(this.width / 2) + this.velocity.X), (int)(this.position.Y + (float)(this.height / 2) + this.velocity.Y), 112, 0);
|
|
}
|
|
this.localAI[0] = 0f;
|
|
}
|
|
}
|
|
if ((Main.dayTime && this.type != 173 && this.type != 6 && this.type != 23 && this.type != 42 && this.type != 94 && this.type != 176 && this.type != 205 && this.type != 210 && this.type != 211 && this.type != 252 && (this.type < 231 || this.type > 235)) || Main.player[this.target].dead)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num139 * 2f;
|
|
if (this.timeLeft > 10)
|
|
{
|
|
this.timeLeft = 10;
|
|
}
|
|
}
|
|
if (((this.velocity.X > 0f && this.oldVelocity.X < 0f) || (this.velocity.X < 0f && this.oldVelocity.X > 0f) || (this.velocity.Y > 0f && this.oldVelocity.Y < 0f) || (this.velocity.Y < 0f && this.oldVelocity.Y > 0f)) && !this.justHit)
|
|
{
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 6)
|
|
{
|
|
if (this.type == 117 && this.localAI[1] == 0f)
|
|
{
|
|
this.localAI[1] = 1f;
|
|
Main.PlaySound(4, (int)this.position.X, (int)this.position.Y, 13);
|
|
int num161 = 1;
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
num161 = -1;
|
|
}
|
|
for (int num162 = 0; num162 < 20; num162++)
|
|
{
|
|
Dust.NewDust(new Vector2(this.position.X - 20f, this.position.Y - 20f), this.width + 40, this.height + 40, 5, (float)(num161 * 8), -1f, 0, default(Color), 1f);
|
|
}
|
|
}
|
|
if (this.type >= 13 && this.type <= 15)
|
|
{
|
|
this.realLife = -1;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[3] > 0f)
|
|
{
|
|
this.realLife = (int)this.ai[3];
|
|
}
|
|
}
|
|
if (this.target < 0 || this.target == 255 || Main.player[this.target].dead)
|
|
{
|
|
this.TargetClosest(true);
|
|
}
|
|
if (Main.player[this.target].dead && this.timeLeft > 300)
|
|
{
|
|
this.timeLeft = 300;
|
|
}
|
|
if (Main.netMode != 1)
|
|
{
|
|
if (this.type == 87 && this.ai[0] == 0f)
|
|
{
|
|
this.ai[3] = (float)this.whoAmI;
|
|
this.realLife = this.whoAmI;
|
|
int num163 = this.whoAmI;
|
|
for (int num164 = 0; num164 < 14; num164++)
|
|
{
|
|
int num165 = 89;
|
|
if (num164 == 1 || num164 == 8)
|
|
{
|
|
num165 = 88;
|
|
}
|
|
else
|
|
{
|
|
if (num164 == 11)
|
|
{
|
|
num165 = 90;
|
|
}
|
|
else
|
|
{
|
|
if (num164 == 12)
|
|
{
|
|
num165 = 91;
|
|
}
|
|
else
|
|
{
|
|
if (num164 == 13)
|
|
{
|
|
num165 = 92;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
int num166 = NPC.NewNPC((int)(this.position.X + (float)(this.width / 2)), (int)(this.position.Y + (float)this.height), num165, this.whoAmI);
|
|
Main.npc[num166].ai[3] = (float)this.whoAmI;
|
|
Main.npc[num166].realLife = this.whoAmI;
|
|
Main.npc[num166].ai[1] = (float)num163;
|
|
Main.npc[num163].ai[0] = (float)num166;
|
|
NetMessage.SendData(23, -1, -1, "", num166, 0f, 0f, 0f, 0);
|
|
num163 = num166;
|
|
}
|
|
}
|
|
if ((this.type == 7 || this.type == 8 || this.type == 10 || this.type == 11 || this.type == 13 || this.type == 14 || this.type == 39 || this.type == 40 || this.type == 95 || this.type == 96 || this.type == 98 || this.type == 99 || this.type == 117 || this.type == 118) && this.ai[0] == 0f)
|
|
{
|
|
if (this.type == 7 || this.type == 10 || this.type == 13 || this.type == 39 || this.type == 95 || this.type == 98 || this.type == 117)
|
|
{
|
|
if (this.type < 13 || this.type > 15)
|
|
{
|
|
this.ai[3] = (float)this.whoAmI;
|
|
this.realLife = this.whoAmI;
|
|
}
|
|
this.ai[2] = (float)Main.rand.Next(8, 13);
|
|
if (this.type == 10)
|
|
{
|
|
this.ai[2] = (float)Main.rand.Next(4, 7);
|
|
}
|
|
if (this.type == 13)
|
|
{
|
|
this.ai[2] = (float)Main.rand.Next(45, 56);
|
|
}
|
|
if (this.type == 39)
|
|
{
|
|
this.ai[2] = (float)Main.rand.Next(12, 19);
|
|
}
|
|
if (this.type == 95)
|
|
{
|
|
this.ai[2] = (float)Main.rand.Next(6, 12);
|
|
}
|
|
if (this.type == 98)
|
|
{
|
|
this.ai[2] = (float)Main.rand.Next(20, 26);
|
|
}
|
|
if (this.type == 117)
|
|
{
|
|
this.ai[2] = (float)Main.rand.Next(3, 6);
|
|
}
|
|
this.ai[0] = (float)NPC.NewNPC((int)(this.position.X + (float)(this.width / 2)), (int)(this.position.Y + (float)this.height), this.type + 1, this.whoAmI);
|
|
}
|
|
else
|
|
{
|
|
if ((this.type == 8 || this.type == 11 || this.type == 14 || this.type == 40 || this.type == 96 || this.type == 99 || this.type == 118) && this.ai[2] > 0f)
|
|
{
|
|
this.ai[0] = (float)NPC.NewNPC((int)(this.position.X + (float)(this.width / 2)), (int)(this.position.Y + (float)this.height), this.type, this.whoAmI);
|
|
}
|
|
else
|
|
{
|
|
this.ai[0] = (float)NPC.NewNPC((int)(this.position.X + (float)(this.width / 2)), (int)(this.position.Y + (float)this.height), this.type + 1, this.whoAmI);
|
|
}
|
|
}
|
|
if (this.type < 13 || this.type > 15)
|
|
{
|
|
Main.npc[(int)this.ai[0]].ai[3] = this.ai[3];
|
|
Main.npc[(int)this.ai[0]].realLife = this.realLife;
|
|
}
|
|
Main.npc[(int)this.ai[0]].ai[1] = (float)this.whoAmI;
|
|
Main.npc[(int)this.ai[0]].ai[2] = this.ai[2] - 1f;
|
|
this.netUpdate = true;
|
|
}
|
|
if ((this.type == 8 || this.type == 9 || this.type == 11 || this.type == 12 || this.type == 40 || this.type == 41 || this.type == 96 || this.type == 97 || this.type == 99 || this.type == 100 || (this.type > 87 && this.type <= 92) || this.type == 118 || this.type == 119) && (!Main.npc[(int)this.ai[1]].active || Main.npc[(int)this.ai[1]].aiStyle != this.aiStyle))
|
|
{
|
|
this.life = 0;
|
|
this.HitEffect(0, 10.0);
|
|
this.active = false;
|
|
}
|
|
if ((this.type == 7 || this.type == 8 || this.type == 10 || this.type == 11 || this.type == 39 || this.type == 40 || this.type == 95 || this.type == 96 || this.type == 98 || this.type == 99 || (this.type >= 87 && this.type < 92) || this.type == 117 || this.type == 118) && (!Main.npc[(int)this.ai[0]].active || Main.npc[(int)this.ai[0]].aiStyle != this.aiStyle))
|
|
{
|
|
this.life = 0;
|
|
this.HitEffect(0, 10.0);
|
|
this.active = false;
|
|
}
|
|
if (this.type == 13 || this.type == 14 || this.type == 15)
|
|
{
|
|
if (!Main.npc[(int)this.ai[1]].active && !Main.npc[(int)this.ai[0]].active)
|
|
{
|
|
this.life = 0;
|
|
this.HitEffect(0, 10.0);
|
|
this.active = false;
|
|
}
|
|
if (this.type == 13 && !Main.npc[(int)this.ai[0]].active)
|
|
{
|
|
this.life = 0;
|
|
this.HitEffect(0, 10.0);
|
|
this.active = false;
|
|
}
|
|
if (this.type == 15 && !Main.npc[(int)this.ai[1]].active)
|
|
{
|
|
this.life = 0;
|
|
this.HitEffect(0, 10.0);
|
|
this.active = false;
|
|
}
|
|
if (this.type == 14 && (!Main.npc[(int)this.ai[1]].active || Main.npc[(int)this.ai[1]].aiStyle != this.aiStyle))
|
|
{
|
|
this.type = 13;
|
|
int num167 = this.whoAmI;
|
|
float num168 = (float)this.life / (float)this.lifeMax;
|
|
float num169 = this.ai[0];
|
|
this.SetDefaults(this.type, -1f);
|
|
this.life = (int)((float)this.lifeMax * num168);
|
|
this.ai[0] = num169;
|
|
this.TargetClosest(true);
|
|
this.netUpdate = true;
|
|
this.whoAmI = num167;
|
|
}
|
|
if (this.type == 14 && (!Main.npc[(int)this.ai[0]].active || Main.npc[(int)this.ai[0]].aiStyle != this.aiStyle))
|
|
{
|
|
int num170 = this.whoAmI;
|
|
float num171 = (float)this.life / (float)this.lifeMax;
|
|
float num172 = this.ai[1];
|
|
this.SetDefaults(this.type, -1f);
|
|
this.life = (int)((float)this.lifeMax * num171);
|
|
this.ai[1] = num172;
|
|
this.TargetClosest(true);
|
|
this.netUpdate = true;
|
|
this.whoAmI = num170;
|
|
}
|
|
if (this.life == 0)
|
|
{
|
|
bool flag16 = true;
|
|
for (int num173 = 0; num173 < 200; num173++)
|
|
{
|
|
if (Main.npc[num173].active && (Main.npc[num173].type == 13 || Main.npc[num173].type == 14 || Main.npc[num173].type == 15))
|
|
{
|
|
flag16 = false;
|
|
break;
|
|
}
|
|
}
|
|
if (flag16)
|
|
{
|
|
this.boss = true;
|
|
this.NPCLoot();
|
|
}
|
|
}
|
|
}
|
|
if (!this.active && Main.netMode == 2)
|
|
{
|
|
NetMessage.SendData(28, -1, -1, "", this.whoAmI, -1f, 0f, 0f, 0);
|
|
}
|
|
}
|
|
int num174 = (int)(this.position.X / 16f) - 1;
|
|
int num175 = (int)((this.position.X + (float)this.width) / 16f) + 2;
|
|
int num176 = (int)(this.position.Y / 16f) - 1;
|
|
int num177 = (int)((this.position.Y + (float)this.height) / 16f) + 2;
|
|
if (num174 < 0)
|
|
{
|
|
num174 = 0;
|
|
}
|
|
if (num175 > Main.maxTilesX)
|
|
{
|
|
num175 = Main.maxTilesX;
|
|
}
|
|
if (num176 < 0)
|
|
{
|
|
num176 = 0;
|
|
}
|
|
if (num177 > Main.maxTilesY)
|
|
{
|
|
num177 = Main.maxTilesY;
|
|
}
|
|
bool flag17 = false;
|
|
if (this.type >= 87 && this.type <= 92)
|
|
{
|
|
flag17 = true;
|
|
}
|
|
if (!flag17)
|
|
{
|
|
for (int num178 = num174; num178 < num175; num178++)
|
|
{
|
|
for (int num179 = num176; num179 < num177; num179++)
|
|
{
|
|
if (Main.tile[num178, num179] != null && ((Main.tile[num178, num179].nactive() && (Main.tileSolid[(int)Main.tile[num178, num179].type] || (Main.tileSolidTop[(int)Main.tile[num178, num179].type] && Main.tile[num178, num179].frameY == 0))) || Main.tile[num178, num179].liquid > 64))
|
|
{
|
|
Vector2 vector19;
|
|
vector19.X = (float)(num178 * 16);
|
|
vector19.Y = (float)(num179 * 16);
|
|
if (this.position.X + (float)this.width > vector19.X && this.position.X < vector19.X + 16f && this.position.Y + (float)this.height > vector19.Y && this.position.Y < vector19.Y + 16f)
|
|
{
|
|
flag17 = true;
|
|
if (Main.rand.Next(100) == 0 && this.type != 117 && Main.tile[num178, num179].nactive())
|
|
{
|
|
WorldGen.KillTile(num178, num179, true, true, false);
|
|
}
|
|
if (Main.netMode != 1 && Main.tile[num178, num179].type == 2)
|
|
{
|
|
byte arg_B1F3_0 = Main.tile[num178, num179 - 1].type;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (!flag17 && (this.type == 7 || this.type == 10 || this.type == 13 || this.type == 39 || this.type == 95 || this.type == 98 || this.type == 117))
|
|
{
|
|
Rectangle rectangle = new Rectangle((int)this.position.X, (int)this.position.Y, this.width, this.height);
|
|
int num180 = 1000;
|
|
bool flag18 = true;
|
|
for (int num181 = 0; num181 < 255; num181++)
|
|
{
|
|
if (Main.player[num181].active)
|
|
{
|
|
Rectangle rectangle2 = new Rectangle((int)Main.player[num181].position.X - num180, (int)Main.player[num181].position.Y - num180, num180 * 2, num180 * 2);
|
|
if (rectangle.Intersects(rectangle2))
|
|
{
|
|
flag18 = false;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if (flag18)
|
|
{
|
|
flag17 = true;
|
|
}
|
|
}
|
|
if (this.type >= 87 && this.type <= 92)
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.spriteDirection = 1;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.spriteDirection = -1;
|
|
}
|
|
}
|
|
}
|
|
float num182 = 8f;
|
|
float num183 = 0.07f;
|
|
if (this.type == 95)
|
|
{
|
|
num182 = 5.5f;
|
|
num183 = 0.045f;
|
|
}
|
|
if (this.type == 10)
|
|
{
|
|
num182 = 6f;
|
|
num183 = 0.05f;
|
|
}
|
|
if (this.type == 13)
|
|
{
|
|
num182 = 10f;
|
|
num183 = 0.07f;
|
|
}
|
|
if (this.type == 87)
|
|
{
|
|
num182 = 11f;
|
|
num183 = 0.25f;
|
|
}
|
|
if (this.type == 117 && Main.wof >= 0)
|
|
{
|
|
float num184 = (float)Main.npc[Main.wof].life / (float)Main.npc[Main.wof].lifeMax;
|
|
if ((double)num184 < 0.5)
|
|
{
|
|
num182 += 1f;
|
|
num183 += 0.1f;
|
|
}
|
|
if ((double)num184 < 0.25)
|
|
{
|
|
num182 += 1f;
|
|
num183 += 0.1f;
|
|
}
|
|
if ((double)num184 < 0.1)
|
|
{
|
|
num182 += 2f;
|
|
num183 += 0.1f;
|
|
}
|
|
}
|
|
Vector2 vector20 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num185 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2);
|
|
float num186 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2);
|
|
num185 = (float)((int)(num185 / 16f) * 16);
|
|
num186 = (float)((int)(num186 / 16f) * 16);
|
|
vector20.X = (float)((int)(vector20.X / 16f) * 16);
|
|
vector20.Y = (float)((int)(vector20.Y / 16f) * 16);
|
|
num185 -= vector20.X;
|
|
num186 -= vector20.Y;
|
|
float num187 = (float)Math.Sqrt((double)(num185 * num185 + num186 * num186));
|
|
if (this.ai[1] > 0f && this.ai[1] < (float)Main.npc.Length)
|
|
{
|
|
try
|
|
{
|
|
vector20 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
num185 = Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - vector20.X;
|
|
num186 = Main.npc[(int)this.ai[1]].position.Y + (float)(Main.npc[(int)this.ai[1]].height / 2) - vector20.Y;
|
|
}
|
|
catch
|
|
{
|
|
}
|
|
this.rotation = (float)Math.Atan2((double)num186, (double)num185) + 1.57f;
|
|
num187 = (float)Math.Sqrt((double)(num185 * num185 + num186 * num186));
|
|
int num188 = this.width;
|
|
if (this.type >= 87 && this.type <= 92)
|
|
{
|
|
num188 = 42;
|
|
}
|
|
num187 = (num187 - (float)num188) / num187;
|
|
num185 *= num187;
|
|
num186 *= num187;
|
|
this.velocity = default(Vector2);
|
|
this.position.X = this.position.X + num185;
|
|
this.position.Y = this.position.Y + num186;
|
|
if (this.type >= 87 && this.type <= 92)
|
|
{
|
|
if (num185 < 0f)
|
|
{
|
|
this.spriteDirection = 1;
|
|
return;
|
|
}
|
|
if (num185 > 0f)
|
|
{
|
|
this.spriteDirection = -1;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!flag17)
|
|
{
|
|
this.TargetClosest(true);
|
|
this.velocity.Y = this.velocity.Y + 0.11f;
|
|
if (this.velocity.Y > num182)
|
|
{
|
|
this.velocity.Y = num182;
|
|
}
|
|
if ((double)(Math.Abs(this.velocity.X) + Math.Abs(this.velocity.Y)) < (double)num182 * 0.4)
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - num183 * 1.1f;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.X = this.velocity.X + num183 * 1.1f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y == num182)
|
|
{
|
|
if (this.velocity.X < num185)
|
|
{
|
|
this.velocity.X = this.velocity.X + num183;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > num185)
|
|
{
|
|
this.velocity.X = this.velocity.X - num183;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > 4f)
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num183 * 0.9f;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.X = this.velocity.X - num183 * 0.9f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type != 87 && this.type != 117 && this.soundDelay == 0)
|
|
{
|
|
float num189 = num187 / 40f;
|
|
if (num189 < 10f)
|
|
{
|
|
num189 = 10f;
|
|
}
|
|
if (num189 > 20f)
|
|
{
|
|
num189 = 20f;
|
|
}
|
|
this.soundDelay = (int)num189;
|
|
Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 1);
|
|
}
|
|
num187 = (float)Math.Sqrt((double)(num185 * num185 + num186 * num186));
|
|
float num190 = Math.Abs(num185);
|
|
float num191 = Math.Abs(num186);
|
|
float num192 = num182 / num187;
|
|
num185 *= num192;
|
|
num186 *= num192;
|
|
if ((this.type == 13 || this.type == 7) && !Main.player[this.target].zoneEvil && !Main.player[this.target].zoneBlood)
|
|
{
|
|
bool flag19 = true;
|
|
for (int num193 = 0; num193 < 255; num193++)
|
|
{
|
|
if (Main.player[num193].active && !Main.player[num193].dead && Main.player[num193].zoneEvil)
|
|
{
|
|
flag19 = false;
|
|
}
|
|
}
|
|
if (flag19)
|
|
{
|
|
if (Main.netMode != 1 && (double)(this.position.Y / 16f) > (Main.rockLayer + (double)Main.maxTilesY) / 2.0)
|
|
{
|
|
this.active = false;
|
|
int num194 = (int)this.ai[0];
|
|
while (num194 > 0 && num194 < 200 && Main.npc[num194].active && Main.npc[num194].aiStyle == this.aiStyle)
|
|
{
|
|
int num195 = (int)Main.npc[num194].ai[0];
|
|
Main.npc[num194].active = false;
|
|
this.life = 0;
|
|
if (Main.netMode == 2)
|
|
{
|
|
NetMessage.SendData(23, -1, -1, "", num194, 0f, 0f, 0f, 0);
|
|
}
|
|
num194 = num195;
|
|
}
|
|
if (Main.netMode == 2)
|
|
{
|
|
NetMessage.SendData(23, -1, -1, "", this.whoAmI, 0f, 0f, 0f, 0);
|
|
}
|
|
}
|
|
num185 = 0f;
|
|
num186 = num182;
|
|
}
|
|
}
|
|
bool flag20 = false;
|
|
if (this.type == 87)
|
|
{
|
|
if (((this.velocity.X > 0f && num185 < 0f) || (this.velocity.X < 0f && num185 > 0f) || (this.velocity.Y > 0f && num186 < 0f) || (this.velocity.Y < 0f && num186 > 0f)) && Math.Abs(this.velocity.X) + Math.Abs(this.velocity.Y) > num183 / 2f && num187 < 300f)
|
|
{
|
|
flag20 = true;
|
|
if (Math.Abs(this.velocity.X) + Math.Abs(this.velocity.Y) < num182)
|
|
{
|
|
this.velocity *= 1.1f;
|
|
}
|
|
}
|
|
if (this.position.Y > Main.player[this.target].position.Y || (double)(Main.player[this.target].position.Y / 16f) > Main.worldSurface || Main.player[this.target].dead)
|
|
{
|
|
flag20 = true;
|
|
if (Math.Abs(this.velocity.X) < num182 / 2f)
|
|
{
|
|
if (this.velocity.X == 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - (float)this.direction;
|
|
}
|
|
this.velocity.X = this.velocity.X * 1.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > -num182)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num183;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (!flag20)
|
|
{
|
|
if ((this.velocity.X > 0f && num185 > 0f) || (this.velocity.X < 0f && num185 < 0f) || (this.velocity.Y > 0f && num186 > 0f) || (this.velocity.Y < 0f && num186 < 0f))
|
|
{
|
|
if (this.velocity.X < num185)
|
|
{
|
|
this.velocity.X = this.velocity.X + num183;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > num185)
|
|
{
|
|
this.velocity.X = this.velocity.X - num183;
|
|
}
|
|
}
|
|
if (this.velocity.Y < num186)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num183;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > num186)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num183;
|
|
}
|
|
}
|
|
if ((double)Math.Abs(num186) < (double)num182 * 0.2 && ((this.velocity.X > 0f && num185 < 0f) || (this.velocity.X < 0f && num185 > 0f)))
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num183 * 2f;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num183 * 2f;
|
|
}
|
|
}
|
|
if ((double)Math.Abs(num185) < (double)num182 * 0.2 && ((this.velocity.Y > 0f && num186 < 0f) || (this.velocity.Y < 0f && num186 > 0f)))
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num183 * 2f;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.X = this.velocity.X - num183 * 2f;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num190 > num191)
|
|
{
|
|
if (this.velocity.X < num185)
|
|
{
|
|
this.velocity.X = this.velocity.X + num183 * 1.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > num185)
|
|
{
|
|
this.velocity.X = this.velocity.X - num183 * 1.1f;
|
|
}
|
|
}
|
|
if ((double)(Math.Abs(this.velocity.X) + Math.Abs(this.velocity.Y)) < (double)num182 * 0.5)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num183;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num183;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y < num186)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num183 * 1.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > num186)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num183 * 1.1f;
|
|
}
|
|
}
|
|
if ((double)(Math.Abs(this.velocity.X) + Math.Abs(this.velocity.Y)) < (double)num182 * 0.5)
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num183;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.X = this.velocity.X - num183;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
this.rotation = (float)Math.Atan2((double)this.velocity.Y, (double)this.velocity.X) + 1.57f;
|
|
if (this.type == 7 || this.type == 10 || this.type == 13 || this.type == 39 || this.type == 95 || this.type == 98 || this.type == 117)
|
|
{
|
|
if (flag17)
|
|
{
|
|
if (this.localAI[0] != 1f)
|
|
{
|
|
this.netUpdate = true;
|
|
}
|
|
this.localAI[0] = 1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.localAI[0] != 0f)
|
|
{
|
|
this.netUpdate = true;
|
|
}
|
|
this.localAI[0] = 0f;
|
|
}
|
|
if (((this.velocity.X > 0f && this.oldVelocity.X < 0f) || (this.velocity.X < 0f && this.oldVelocity.X > 0f) || (this.velocity.Y > 0f && this.oldVelocity.Y < 0f) || (this.velocity.Y < 0f && this.oldVelocity.Y > 0f)) && !this.justHit)
|
|
{
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 7)
|
|
{
|
|
bool flag21 = Main.raining;
|
|
if (!Main.dayTime)
|
|
{
|
|
flag21 = true;
|
|
}
|
|
if (this.type == 142 && Main.netMode != 1 && !Main.xMas)
|
|
{
|
|
this.StrikeNPC(9999, 0f, 0, false, false);
|
|
if (Main.netMode == 2)
|
|
{
|
|
NetMessage.SendData(28, -1, -1, "", this.whoAmI, 9999f, 0f, 0f, 0);
|
|
}
|
|
}
|
|
if ((this.type == 148 || this.type == 149) && this.localAI[0] == 0f)
|
|
{
|
|
this.localAI[0] = (float)Main.rand.Next(1, 5);
|
|
}
|
|
int num196 = (int)(this.position.X + (float)(this.width / 2)) / 16;
|
|
int num197 = (int)(this.position.Y + (float)this.height + 1f) / 16;
|
|
if (this.type == 107)
|
|
{
|
|
NPC.savedGoblin = true;
|
|
}
|
|
if (this.type == 108)
|
|
{
|
|
NPC.savedWizard = true;
|
|
}
|
|
if (this.type == 124)
|
|
{
|
|
NPC.savedMech = true;
|
|
}
|
|
if ((this.type == 46 || this.type == 148 || this.type == 149 || this.type == 230 || this.type == 299 || this.type == 300) && this.target == 255)
|
|
{
|
|
this.TargetClosest(true);
|
|
if (this.position.X < Main.player[this.target].position.X)
|
|
{
|
|
this.direction = 1;
|
|
this.spriteDirection = this.direction;
|
|
}
|
|
if (this.position.X > Main.player[this.target].position.X)
|
|
{
|
|
this.direction = -1;
|
|
this.spriteDirection = this.direction;
|
|
}
|
|
if (this.homeTileX == -1)
|
|
{
|
|
this.homeTileX = (int)((this.position.X + (float)(this.width / 2)) / 16f);
|
|
}
|
|
}
|
|
bool flag22 = false;
|
|
this.directionY = -1;
|
|
if (this.direction == 0)
|
|
{
|
|
this.direction = 1;
|
|
}
|
|
for (int num198 = 0; num198 < 255; num198++)
|
|
{
|
|
if (Main.player[num198].active && Main.player[num198].talkNPC == this.whoAmI)
|
|
{
|
|
flag22 = true;
|
|
if (this.ai[0] != 0f)
|
|
{
|
|
this.netUpdate = true;
|
|
}
|
|
this.ai[0] = 0f;
|
|
this.ai[1] = 300f;
|
|
this.ai[2] = 100f;
|
|
if (Main.player[num198].position.X + (float)(Main.player[num198].width / 2) < this.position.X + (float)(this.width / 2))
|
|
{
|
|
this.direction = -1;
|
|
}
|
|
else
|
|
{
|
|
this.direction = 1;
|
|
}
|
|
}
|
|
}
|
|
if (this.ai[3] > 0f)
|
|
{
|
|
this.life = -1;
|
|
this.HitEffect(0, 10.0);
|
|
this.active = false;
|
|
if (this.type == 37)
|
|
{
|
|
Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0);
|
|
}
|
|
}
|
|
if (this.type == 37 && Main.netMode != 1)
|
|
{
|
|
this.homeless = false;
|
|
this.homeTileX = Main.dungeonX;
|
|
this.homeTileY = Main.dungeonY;
|
|
if (NPC.downedBoss3)
|
|
{
|
|
this.ai[3] = 1f;
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
int num199 = this.homeTileY;
|
|
if (Main.netMode != 1 && this.homeTileY > 0)
|
|
{
|
|
while (!WorldGen.SolidTile(this.homeTileX, num199) && num199 < Main.maxTilesY - 20)
|
|
{
|
|
num199++;
|
|
}
|
|
}
|
|
if (Main.netMode != 1 && this.townNPC && (flag21 || Main.tileDungeon[(int)Main.tile[num196, num197].type]) && (num196 != this.homeTileX || num197 != num199) && !this.homeless)
|
|
{
|
|
bool flag23 = true;
|
|
for (int num200 = 0; num200 < 2; num200++)
|
|
{
|
|
Rectangle rectangle3 = new Rectangle((int)(this.position.X + (float)(this.width / 2) - (float)(NPC.sWidth / 2) - (float)NPC.safeRangeX), (int)(this.position.Y + (float)(this.height / 2) - (float)(NPC.sHeight / 2) - (float)NPC.safeRangeY), NPC.sWidth + NPC.safeRangeX * 2, NPC.sHeight + NPC.safeRangeY * 2);
|
|
if (num200 == 1)
|
|
{
|
|
rectangle3 = new Rectangle(this.homeTileX * 16 + 8 - NPC.sWidth / 2 - NPC.safeRangeX, num199 * 16 + 8 - NPC.sHeight / 2 - NPC.safeRangeY, NPC.sWidth + NPC.safeRangeX * 2, NPC.sHeight + NPC.safeRangeY * 2);
|
|
}
|
|
for (int num201 = 0; num201 < 255; num201++)
|
|
{
|
|
if (Main.player[num201].active)
|
|
{
|
|
Rectangle rectangle4 = new Rectangle((int)Main.player[num201].position.X, (int)Main.player[num201].position.Y, Main.player[num201].width, Main.player[num201].height);
|
|
if (rectangle4.Intersects(rectangle3))
|
|
{
|
|
flag23 = false;
|
|
break;
|
|
}
|
|
}
|
|
if (!flag23)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if (flag23)
|
|
{
|
|
if (this.type == 37 || !Collision.SolidTiles(this.homeTileX - 1, this.homeTileX + 1, num199 - 3, num199 - 1))
|
|
{
|
|
this.velocity.X = 0f;
|
|
this.velocity.Y = 0f;
|
|
this.position.X = (float)(this.homeTileX * 16 + 8 - this.width / 2);
|
|
this.position.Y = (float)(num199 * 16 - this.height) - 0.1f;
|
|
this.netUpdate = true;
|
|
}
|
|
else
|
|
{
|
|
this.homeless = true;
|
|
WorldGen.QuickFindHome(this.whoAmI);
|
|
}
|
|
}
|
|
}
|
|
if (this.ai[0] == 0f)
|
|
{
|
|
if (this.ai[2] > 0f)
|
|
{
|
|
this.ai[2] -= 1f;
|
|
}
|
|
if (flag21 && !flag22 && this.type != 46 && this.type != 148 && this.type != 149 && this.type != 230 && this.type != 299 && this.type != 300)
|
|
{
|
|
if (Main.netMode != 1)
|
|
{
|
|
if (num196 == this.homeTileX && num197 == num199)
|
|
{
|
|
if (this.velocity.X != 0f)
|
|
{
|
|
this.netUpdate = true;
|
|
}
|
|
if ((double)this.velocity.X > 0.1)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if ((double)this.velocity.X < -0.1)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.X = 0f;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!flag22)
|
|
{
|
|
if (num196 > this.homeTileX)
|
|
{
|
|
this.direction = -1;
|
|
}
|
|
else
|
|
{
|
|
this.direction = 1;
|
|
}
|
|
this.ai[0] = 1f;
|
|
this.ai[1] = (float)(200 + Main.rand.Next(200));
|
|
this.ai[2] = 0f;
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 300)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.5f;
|
|
}
|
|
if ((double)this.velocity.X > 0.1)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if ((double)this.velocity.X < -0.1)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.X = 0f;
|
|
}
|
|
}
|
|
if (Main.netMode != 1)
|
|
{
|
|
if (this.ai[1] > 0f)
|
|
{
|
|
this.ai[1] -= 1f;
|
|
}
|
|
if (this.ai[1] <= 0f)
|
|
{
|
|
this.ai[0] = 1f;
|
|
this.ai[1] = (float)(200 + Main.rand.Next(200));
|
|
if (this.type == 46 || this.type == 148 || this.type == 149 || this.type == 230 || this.type == 299 || this.type == 300)
|
|
{
|
|
this.ai[1] += (float)Main.rand.Next(200, 400);
|
|
}
|
|
this.ai[2] = 0f;
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
}
|
|
if (Main.netMode != 1 && (!flag21 || (num196 == this.homeTileX && num197 == num199)))
|
|
{
|
|
if (num196 < this.homeTileX - 25 || num196 > this.homeTileX + 25)
|
|
{
|
|
if (this.ai[2] == 0f)
|
|
{
|
|
if (num196 < this.homeTileX - 50 && this.direction == -1)
|
|
{
|
|
this.direction = 1;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
if (num196 > this.homeTileX + 50 && this.direction == 1)
|
|
{
|
|
this.direction = -1;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(80) == 0 && this.ai[2] == 0f)
|
|
{
|
|
this.ai[2] = 200f;
|
|
this.direction *= -1;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] == 1f)
|
|
{
|
|
if (Main.netMode != 1 && flag21 && num196 == this.homeTileX && num197 == this.homeTileY && this.type != 46 && this.type != 148 && this.type != 149 && this.type != 230 && this.type != 299 && this.type != 300)
|
|
{
|
|
this.ai[0] = 0f;
|
|
this.ai[1] = (float)(200 + Main.rand.Next(200));
|
|
this.ai[2] = 60f;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
if (Main.netMode != 1 && !this.homeless && !Main.tileDungeon[(int)Main.tile[num196, num197].type] && (num196 < this.homeTileX - 35 || num196 > this.homeTileX + 35))
|
|
{
|
|
if (this.position.X < (float)(this.homeTileX * 16) && this.direction == -1)
|
|
{
|
|
this.ai[1] -= 5f;
|
|
}
|
|
else
|
|
{
|
|
if (this.position.X > (float)(this.homeTileX * 16) && this.direction == 1)
|
|
{
|
|
this.ai[1] -= 5f;
|
|
}
|
|
}
|
|
}
|
|
this.ai[1] -= 1f;
|
|
if (this.ai[1] <= 0f)
|
|
{
|
|
this.ai[0] = 0f;
|
|
this.ai[1] = (float)(300 + Main.rand.Next(300));
|
|
if (this.type == 46 || this.type == 148 || this.type == 149 || this.type == 230 || this.type == 299 || this.type == 300)
|
|
{
|
|
this.ai[1] -= (float)Main.rand.Next(100);
|
|
}
|
|
this.ai[2] = 60f;
|
|
this.netUpdate = true;
|
|
}
|
|
if (this.closeDoor && ((this.position.X + (float)(this.width / 2)) / 16f > (float)(this.doorX + 2) || (this.position.X + (float)(this.width / 2)) / 16f < (float)(this.doorX - 2)))
|
|
{
|
|
bool flag24 = WorldGen.CloseDoor(this.doorX, this.doorY, false);
|
|
if (flag24)
|
|
{
|
|
this.closeDoor = false;
|
|
NetMessage.SendData(19, -1, -1, "", 1, (float)this.doorX, (float)this.doorY, (float)this.direction, 0);
|
|
}
|
|
if ((this.position.X + (float)(this.width / 2)) / 16f > (float)(this.doorX + 4) || (this.position.X + (float)(this.width / 2)) / 16f < (float)(this.doorX - 4) || (this.position.Y + (float)(this.height / 2)) / 16f > (float)(this.doorY + 4) || (this.position.Y + (float)(this.height / 2)) / 16f < (float)(this.doorY - 4))
|
|
{
|
|
this.closeDoor = false;
|
|
}
|
|
}
|
|
float num202 = 1f;
|
|
float num203 = 0.07f;
|
|
if (this.type == 299)
|
|
{
|
|
num202 = 1.5f;
|
|
}
|
|
if (this.type == 300)
|
|
{
|
|
num202 = 2f;
|
|
num203 = 1f;
|
|
}
|
|
if (this.velocity.X < -num202 || this.velocity.X > num202)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.velocity *= 0.8f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < num202 && this.direction == 1)
|
|
{
|
|
this.velocity.X = this.velocity.X + num203;
|
|
if (this.velocity.X > num202)
|
|
{
|
|
this.velocity.X = num202;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > -num202 && this.direction == -1)
|
|
{
|
|
this.velocity.X = this.velocity.X - num203;
|
|
if (this.velocity.X > num202)
|
|
{
|
|
this.velocity.X = num202;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
bool flag25 = (float)((this.homeTileY - 2) * 16) <= this.position.Y;
|
|
if ((this.direction == 1 && this.position.Y + (float)(this.width / 2) > (float)(this.homeTileX * 16)) || (this.direction == -1 && this.position.Y + (float)(this.width / 2) < (float)(this.homeTileX * 16)))
|
|
{
|
|
flag25 = true;
|
|
}
|
|
if (this.velocity.Y >= 0f)
|
|
{
|
|
int num204 = 0;
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
num204 = -1;
|
|
}
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
num204 = 1;
|
|
}
|
|
Vector2 vector21 = this.position;
|
|
vector21.X += this.velocity.X;
|
|
int num205 = (int)((vector21.X + (float)(this.width / 2) + (float)((this.width / 2 + 1) * num204)) / 16f);
|
|
int num206 = (int)((vector21.Y + (float)this.height - 1f) / 16f);
|
|
if ((float)(num205 * 16) < vector21.X + (float)this.width && (float)(num205 * 16 + 16) > vector21.X)
|
|
{
|
|
if (Main.tile[num205, num206] == null)
|
|
{
|
|
Main.tile[num205, num206] = new Tile();
|
|
}
|
|
if (Main.tile[num205, num206 - 1] == null)
|
|
{
|
|
Main.tile[num205, num206 - 1] = new Tile();
|
|
}
|
|
if (Main.tile[num205, num206 - 2] == null)
|
|
{
|
|
Main.tile[num205, num206 - 2] = new Tile();
|
|
}
|
|
if (Main.tile[num205, num206 - 3] == null)
|
|
{
|
|
Main.tile[num205, num206 - 3] = new Tile();
|
|
}
|
|
if (Main.tile[num205, num206 + 1] == null)
|
|
{
|
|
Main.tile[num205, num206 + 1] = new Tile();
|
|
}
|
|
if (((Main.tile[num205, num206].nactive() && Main.tile[num205, num206].slope() == 0 && Main.tile[num205, num206 - 1].slope() == 0 && ((Main.tileSolid[(int)Main.tile[num205, num206].type] && !Main.tileSolidTop[(int)Main.tile[num205, num206].type]) || (flag25 && Main.tileSolidTop[(int)Main.tile[num205, num206].type] && Main.tile[num205, num206].frameY == 0 && (!Main.tileSolid[(int)Main.tile[num205, num206 - 1].type] || !Main.tile[num205, num206 - 1].nactive()) && Main.tile[num205, num206].type != 16 && Main.tile[num205, num206].type != 18 && Main.tile[num205, num206].type != 134))) || (Main.tile[num205, num206 - 1].halfBrick() && Main.tile[num205, num206 - 1].nactive())) && (!Main.tile[num205, num206 - 1].nactive() || !Main.tileSolid[(int)Main.tile[num205, num206 - 1].type] || Main.tileSolidTop[(int)Main.tile[num205, num206 - 1].type] || (Main.tile[num205, num206 - 1].halfBrick() && (!Main.tile[num205, num206 - 4].nactive() || !Main.tileSolid[(int)Main.tile[num205, num206 - 4].type] || Main.tileSolidTop[(int)Main.tile[num205, num206 - 4].type]))) && (!Main.tile[num205, num206 - 2].nactive() || !Main.tileSolid[(int)Main.tile[num205, num206 - 2].type] || Main.tileSolidTop[(int)Main.tile[num205, num206 - 2].type]) && (!Main.tile[num205, num206 - 3].nactive() || !Main.tileSolid[(int)Main.tile[num205, num206 - 3].type] || Main.tileSolidTop[(int)Main.tile[num205, num206 - 3].type]) && (!Main.tile[num205 - num204, num206 - 3].nactive() || !Main.tileSolid[(int)Main.tile[num205 - num204, num206 - 3].type] || Main.tileSolidTop[(int)Main.tile[num205 - num204, num206 - 3].type]))
|
|
{
|
|
float num207 = (float)(num206 * 16);
|
|
if (Main.tile[num205, num206].halfBrick())
|
|
{
|
|
num207 += 8f;
|
|
}
|
|
if (Main.tile[num205, num206 - 1].halfBrick())
|
|
{
|
|
num207 -= 8f;
|
|
}
|
|
if (num207 < vector21.Y + (float)this.height)
|
|
{
|
|
float num208 = vector21.Y + (float)this.height - num207;
|
|
if ((double)num208 <= 16.1)
|
|
{
|
|
this.gfxOffY += this.position.Y + (float)this.height - num207;
|
|
this.position.Y = num207 - (float)this.height;
|
|
if (num208 < 9f)
|
|
{
|
|
this.stepSpeed = 1f;
|
|
}
|
|
else
|
|
{
|
|
this.stepSpeed = 2f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
if (this.position.X == this.ai[2])
|
|
{
|
|
this.direction *= -1;
|
|
}
|
|
this.ai[2] = -1f;
|
|
int num209 = (int)((this.position.X + (float)(this.width / 2) + (float)(15 * this.direction)) / 16f);
|
|
int num210 = (int)((this.position.Y + (float)this.height - 16f) / 16f);
|
|
if (Main.tile[num209, num210] == null)
|
|
{
|
|
Main.tile[num209, num210] = new Tile();
|
|
}
|
|
if (Main.tile[num209, num210 - 1] == null)
|
|
{
|
|
Main.tile[num209, num210 - 1] = new Tile();
|
|
}
|
|
if (Main.tile[num209, num210 - 2] == null)
|
|
{
|
|
Main.tile[num209, num210 - 2] = new Tile();
|
|
}
|
|
if (Main.tile[num209, num210 - 3] == null)
|
|
{
|
|
Main.tile[num209, num210 - 3] = new Tile();
|
|
}
|
|
if (Main.tile[num209, num210 + 1] == null)
|
|
{
|
|
Main.tile[num209, num210 + 1] = new Tile();
|
|
}
|
|
if (Main.tile[num209 - this.direction, num210 + 1] == null)
|
|
{
|
|
Main.tile[num209 - this.direction, num210 + 1] = new Tile();
|
|
}
|
|
if (Main.tile[num209 + this.direction, num210 - 1] == null)
|
|
{
|
|
Main.tile[num209 + this.direction, num210 - 1] = new Tile();
|
|
}
|
|
if (Main.tile[num209 + this.direction, num210 + 1] == null)
|
|
{
|
|
Main.tile[num209 + this.direction, num210 + 1] = new Tile();
|
|
}
|
|
Main.tile[num209 - this.direction, num210 + 1].halfBrick();
|
|
if (this.townNPC && Main.tile[num209, num210 - 2].nactive() && Main.tile[num209, num210 - 2].type == 10 && (Main.rand.Next(10) == 0 || flag21))
|
|
{
|
|
if (Main.netMode != 1)
|
|
{
|
|
bool flag26 = WorldGen.OpenDoor(num209, num210 - 2, this.direction);
|
|
if (flag26)
|
|
{
|
|
this.closeDoor = true;
|
|
this.doorX = num209;
|
|
this.doorY = num210 - 2;
|
|
NetMessage.SendData(19, -1, -1, "", 0, (float)num209, (float)(num210 - 2), (float)this.direction, 0);
|
|
this.netUpdate = true;
|
|
this.ai[1] += 80f;
|
|
return;
|
|
}
|
|
if (WorldGen.OpenDoor(num209, num210 - 2, -this.direction))
|
|
{
|
|
this.closeDoor = true;
|
|
this.doorX = num209;
|
|
this.doorY = num210 - 2;
|
|
NetMessage.SendData(19, -1, -1, "", 0, (float)num209, (float)(num210 - 2), (float)(-(float)this.direction), 0);
|
|
this.netUpdate = true;
|
|
this.ai[1] += 80f;
|
|
return;
|
|
}
|
|
this.direction *= -1;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if ((this.velocity.X < 0f && this.spriteDirection == -1) || (this.velocity.X > 0f && this.spriteDirection == 1))
|
|
{
|
|
if (Main.tile[num209, num210 - 2].nactive() && Main.tileSolid[(int)Main.tile[num209, num210 - 2].type] && !Main.tileSolidTop[(int)Main.tile[num209, num210 - 2].type])
|
|
{
|
|
if ((this.direction == 1 && !Collision.SolidTiles(num209 - 2, num209 - 1, num210 - 5, num210 - 1)) || (this.direction == -1 && !Collision.SolidTiles(num209 + 1, num209 + 2, num210 - 5, num210 - 1)))
|
|
{
|
|
if (!Collision.SolidTiles(num209, num209, num210 - 5, num210 - 3))
|
|
{
|
|
this.velocity.Y = -6f;
|
|
this.netUpdate = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 300)
|
|
{
|
|
if (WorldGen.SolidTile((int)(this.center().X / 16f) + this.direction, (int)(this.center().Y / 16f)))
|
|
{
|
|
this.direction *= -1;
|
|
this.velocity.X = this.velocity.X * 0f;
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.direction *= -1;
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 300)
|
|
{
|
|
if (WorldGen.SolidTile((int)(this.center().X / 16f) + this.direction, (int)(this.center().Y / 16f)))
|
|
{
|
|
this.direction *= -1;
|
|
this.velocity.X = this.velocity.X * 0f;
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.direction *= -1;
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.tile[num209, num210 - 1].nactive() && Main.tileSolid[(int)Main.tile[num209, num210 - 1].type] && !Main.tileSolidTop[(int)Main.tile[num209, num210 - 1].type])
|
|
{
|
|
if ((this.direction == 1 && !Collision.SolidTiles(num209 - 2, num209 - 1, num210 - 4, num210 - 1)) || (this.direction == -1 && !Collision.SolidTiles(num209 + 1, num209 + 2, num210 - 4, num210 - 1)))
|
|
{
|
|
if (!Collision.SolidTiles(num209, num209, num210 - 4, num210 - 2))
|
|
{
|
|
this.velocity.Y = -5f;
|
|
this.netUpdate = true;
|
|
}
|
|
else
|
|
{
|
|
this.direction *= -1;
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.direction *= -1;
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.position.Y + (float)this.height - (float)(num210 * 16) > 20f && Main.tile[num209, num210].nactive() && Main.tileSolid[(int)Main.tile[num209, num210].type] && Main.tile[num209, num210].slope() == 0)
|
|
{
|
|
if ((this.direction == 1 && !Collision.SolidTiles(num209 - 2, num209, num210 - 3, num210 - 1)) || (this.direction == -1 && !Collision.SolidTiles(num209, num209 + 2, num210 - 3, num210 - 1)))
|
|
{
|
|
this.velocity.Y = -4.4f;
|
|
this.netUpdate = true;
|
|
}
|
|
else
|
|
{
|
|
this.direction *= -1;
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
try
|
|
{
|
|
if (Main.tile[num209, num210 + 1] == null)
|
|
{
|
|
Main.tile[num209, num210 + 1] = new Tile();
|
|
}
|
|
if (Main.tile[num209 - this.direction, num210 + 1] == null)
|
|
{
|
|
Main.tile[num209 - this.direction, num210 + 1] = new Tile();
|
|
}
|
|
if (Main.tile[num209, num210 + 2] == null)
|
|
{
|
|
Main.tile[num209, num210 + 2] = new Tile();
|
|
}
|
|
if (Main.tile[num209 - this.direction, num210 + 2] == null)
|
|
{
|
|
Main.tile[num209 - this.direction, num210 + 2] = new Tile();
|
|
}
|
|
if (Main.tile[num209, num210 + 3] == null)
|
|
{
|
|
Main.tile[num209, num210 + 3] = new Tile();
|
|
}
|
|
if (Main.tile[num209 - this.direction, num210 + 3] == null)
|
|
{
|
|
Main.tile[num209 - this.direction, num210 + 3] = new Tile();
|
|
}
|
|
if (Main.tile[num209, num210 + 4] == null)
|
|
{
|
|
Main.tile[num209, num210 + 4] = new Tile();
|
|
}
|
|
if (Main.tile[num209 - this.direction, num210 + 4] == null)
|
|
{
|
|
Main.tile[num209 - this.direction, num210 + 4] = new Tile();
|
|
}
|
|
else
|
|
{
|
|
if (num196 >= this.homeTileX - 35 && num196 <= this.homeTileX + 35 && (!Main.tile[num209, num210 + 1].nactive() || !Main.tileSolid[(int)Main.tile[num209, num210 + 1].type]) && (!Main.tile[num209 - this.direction, num210 + 1].active() || !Main.tileSolid[(int)Main.tile[num209 - this.direction, num210 + 1].type]) && (!Main.tile[num209, num210 + 2].nactive() || !Main.tileSolid[(int)Main.tile[num209, num210 + 2].type]) && (!Main.tile[num209 - this.direction, num210 + 2].active() || !Main.tileSolid[(int)Main.tile[num209 - this.direction, num210 + 2].type]) && (!Main.tile[num209, num210 + 3].nactive() || !Main.tileSolid[(int)Main.tile[num209, num210 + 3].type]) && (!Main.tile[num209 - this.direction, num210 + 3].active() || !Main.tileSolid[(int)Main.tile[num209 - this.direction, num210 + 3].type]) && (!Main.tile[num209, num210 + 4].nactive() || !Main.tileSolid[(int)Main.tile[num209, num210 + 4].type]) && (!Main.tile[num209 - this.direction, num210 + 4].nactive() || !Main.tileSolid[(int)Main.tile[num209 - this.direction, num210 + 4].type]) && this.type != 46 && this.type != 148 && this.type != 149 && this.type != 230 && this.type != 299 && this.type != 300)
|
|
{
|
|
this.direction *= -1;
|
|
this.velocity.X = this.velocity.X * -1f;
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
}
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.ai[2] = this.position.X;
|
|
}
|
|
}
|
|
if (this.velocity.Y < 0f && this.wet)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 1.2f;
|
|
}
|
|
if (this.velocity.Y < 0f && (this.type == 46 || this.type == 299))
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 1.2f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 8)
|
|
{
|
|
this.TargetClosest(true);
|
|
this.velocity.X = this.velocity.X * 0.93f;
|
|
if ((double)this.velocity.X > -0.1 && (double)this.velocity.X < 0.1)
|
|
{
|
|
this.velocity.X = 0f;
|
|
}
|
|
if (this.ai[0] == 0f)
|
|
{
|
|
this.ai[0] = 500f;
|
|
}
|
|
if (this.type == 172)
|
|
{
|
|
if (this.alpha < 255)
|
|
{
|
|
this.alpha++;
|
|
}
|
|
if (this.justHit)
|
|
{
|
|
this.alpha = 0;
|
|
}
|
|
}
|
|
if (this.ai[2] != 0f && this.ai[3] != 0f)
|
|
{
|
|
if (this.type == 172)
|
|
{
|
|
this.alpha = 255;
|
|
}
|
|
Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 8);
|
|
for (int num211 = 0; num211 < 50; num211++)
|
|
{
|
|
if (this.type == 29 || this.type == 45)
|
|
{
|
|
int num212 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 27, 0f, 0f, 100, default(Color), (float)Main.rand.Next(1, 3));
|
|
Main.dust[num212].velocity *= 3f;
|
|
if (Main.dust[num212].scale > 1f)
|
|
{
|
|
Main.dust[num212].noGravity = true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 32)
|
|
{
|
|
int num213 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 172, 0f, 0f, 100, default(Color), 1.5f);
|
|
Main.dust[num213].velocity *= 3f;
|
|
Main.dust[num213].noGravity = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 283 || this.type == 284)
|
|
{
|
|
int num214 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 173, 0f, 0f, 0, default(Color), 1f);
|
|
Main.dust[num214].velocity *= 2f;
|
|
Main.dust[num214].scale = 1.4f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 285 || this.type == 286)
|
|
{
|
|
int num215 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 174, 0f, 0f, 100, default(Color), 1.5f);
|
|
Main.dust[num215].velocity *= 3f;
|
|
Main.dust[num215].noGravity = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 281 || this.type == 282)
|
|
{
|
|
int num216 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 175, 0f, 0f, 100, default(Color), 1.5f);
|
|
Main.dust[num216].velocity *= 3f;
|
|
Main.dust[num216].noGravity = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 172)
|
|
{
|
|
int num217 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 106, 0f, 0f, 100, default(Color), 2.5f);
|
|
Main.dust[num217].velocity *= 3f;
|
|
Main.dust[num217].noGravity = true;
|
|
}
|
|
else
|
|
{
|
|
int num218 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 6, 0f, 0f, 100, default(Color), 2.5f);
|
|
Main.dust[num218].velocity *= 3f;
|
|
Main.dust[num218].noGravity = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
this.position.X = this.ai[2] * 16f - (float)(this.width / 2) + 8f;
|
|
this.position.Y = this.ai[3] * 16f - (float)this.height;
|
|
this.velocity.X = 0f;
|
|
this.velocity.Y = 0f;
|
|
this.ai[2] = 0f;
|
|
this.ai[3] = 0f;
|
|
Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 8);
|
|
for (int num219 = 0; num219 < 50; num219++)
|
|
{
|
|
if (this.type == 29 || this.type == 45)
|
|
{
|
|
int num220 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 27, 0f, 0f, 100, default(Color), (float)Main.rand.Next(1, 3));
|
|
Main.dust[num220].velocity *= 3f;
|
|
if (Main.dust[num220].scale > 1f)
|
|
{
|
|
Main.dust[num220].noGravity = true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 32)
|
|
{
|
|
int num221 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 172, 0f, 0f, 100, default(Color), 1.5f);
|
|
Main.dust[num221].velocity *= 3f;
|
|
Main.dust[num221].noGravity = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 172)
|
|
{
|
|
int num222 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 106, 0f, 0f, 100, default(Color), 2.5f);
|
|
Main.dust[num222].velocity *= 3f;
|
|
Main.dust[num222].noGravity = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 283 || this.type == 284)
|
|
{
|
|
int num223 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 173, 0f, 0f, 0, default(Color), 1f);
|
|
Main.dust[num223].velocity *= 2f;
|
|
Main.dust[num223].scale = 1.4f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 285 || this.type == 286)
|
|
{
|
|
int num224 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 174, 0f, 0f, 100, default(Color), 1.5f);
|
|
Main.dust[num224].velocity *= 3f;
|
|
Main.dust[num224].noGravity = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 281 || this.type == 282)
|
|
{
|
|
int num225 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 175, 0f, 0f, 100, default(Color), 1.5f);
|
|
Main.dust[num225].velocity *= 3f;
|
|
Main.dust[num225].noGravity = true;
|
|
}
|
|
else
|
|
{
|
|
int num226 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 6, 0f, 0f, 100, default(Color), 2.5f);
|
|
Main.dust[num226].velocity *= 3f;
|
|
Main.dust[num226].noGravity = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
this.ai[0] += 1f;
|
|
if (this.type == 283 || this.type == 284)
|
|
{
|
|
if (this.ai[0] == 50f || this.ai[0] == 100f || this.ai[0] == 150f || this.ai[0] == 200f || this.ai[0] == 250f)
|
|
{
|
|
this.ai[1] = 30f;
|
|
this.netUpdate = true;
|
|
}
|
|
if (this.ai[0] >= 400f)
|
|
{
|
|
this.ai[0] = 700f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 172 && (this.ai[0] == 75f || this.ai[0] == 150f || this.ai[0] == 225f || this.ai[0] == 300f || this.ai[0] == 375f || this.ai[0] == 450f))
|
|
{
|
|
this.ai[1] = 30f;
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
if (this.type == 281 || this.type == 282)
|
|
{
|
|
if (this.ai[0] == 20f || this.ai[0] == 40f || this.ai[0] == 60f || this.ai[0] == 120f || this.ai[0] == 140f || this.ai[0] == 160f || this.ai[0] == 220f || this.ai[0] == 240f || this.ai[0] == 260f)
|
|
{
|
|
this.ai[1] = 30f;
|
|
this.netUpdate = true;
|
|
}
|
|
if (this.ai[0] >= 460f)
|
|
{
|
|
this.ai[0] = 700f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] == 100f || this.ai[0] == 200f || this.ai[0] == 300f)
|
|
{
|
|
this.ai[1] = 30f;
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
if ((this.type == 285 || this.type == 286) && this.ai[0] > 400f)
|
|
{
|
|
this.ai[0] = 650f;
|
|
}
|
|
if (this.ai[0] >= 650f && Main.netMode != 1)
|
|
{
|
|
this.ai[0] = 1f;
|
|
int num227 = (int)Main.player[this.target].position.X / 16;
|
|
int num228 = (int)Main.player[this.target].position.Y / 16;
|
|
int num229 = (int)this.position.X / 16;
|
|
int num230 = (int)this.position.Y / 16;
|
|
int num231 = 20;
|
|
int num232 = 0;
|
|
bool flag27 = false;
|
|
if (Math.Abs(this.position.X - Main.player[this.target].position.X) + Math.Abs(this.position.Y - Main.player[this.target].position.Y) > 2000f)
|
|
{
|
|
num232 = 100;
|
|
flag27 = true;
|
|
}
|
|
while (!flag27 && num232 < 100)
|
|
{
|
|
num232++;
|
|
int num233 = Main.rand.Next(num227 - num231, num227 + num231);
|
|
int num234 = Main.rand.Next(num228 - num231, num228 + num231);
|
|
for (int num235 = num234; num235 < num228 + num231; num235++)
|
|
{
|
|
if ((num235 < num228 - 4 || num235 > num228 + 4 || num233 < num227 - 4 || num233 > num227 + 4) && (num235 < num230 - 1 || num235 > num230 + 1 || num233 < num229 - 1 || num233 > num229 + 1) && Main.tile[num233, num235].nactive())
|
|
{
|
|
bool flag28 = true;
|
|
if ((this.type == 32 || (this.type >= 281 && this.type <= 286)) && !Main.wallDungeon[(int)Main.tile[num233, num235 - 1].wall])
|
|
{
|
|
flag28 = false;
|
|
}
|
|
else
|
|
{
|
|
if (Main.tile[num233, num235 - 1].lava())
|
|
{
|
|
flag28 = false;
|
|
}
|
|
}
|
|
if (flag28 && Main.tileSolid[(int)Main.tile[num233, num235].type] && !Collision.SolidTiles(num233 - 1, num233 + 1, num235 - 4, num235 - 1))
|
|
{
|
|
this.ai[1] = 20f;
|
|
this.ai[2] = (float)num233;
|
|
this.ai[3] = (float)num235;
|
|
flag27 = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
this.netUpdate = true;
|
|
}
|
|
if (this.ai[1] > 0f)
|
|
{
|
|
this.ai[1] -= 1f;
|
|
if (this.ai[1] == 25f)
|
|
{
|
|
if (this.type >= 281 && this.type <= 286)
|
|
{
|
|
float num236 = 6f;
|
|
if (this.type == 285 || this.type == 286)
|
|
{
|
|
num236 = 8f;
|
|
}
|
|
if (this.type == 281 || this.type == 282)
|
|
{
|
|
num236 = 4f;
|
|
}
|
|
Vector2 vector22 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y);
|
|
float num237 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector22.X;
|
|
float num238 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - vector22.Y;
|
|
if (this.type == 283 || this.type == 284)
|
|
{
|
|
num237 += (float)Main.rand.Next(-30, 31);
|
|
num238 += (float)Main.rand.Next(-30, 31);
|
|
num237 -= Main.player[this.target].velocity.X * 10f;
|
|
num238 -= Main.player[this.target].velocity.Y * 10f;
|
|
}
|
|
float num239 = (float)Math.Sqrt((double)(num237 * num237 + num238 * num238));
|
|
num239 = num236 / num239;
|
|
num237 *= num239;
|
|
num238 *= num239;
|
|
int num240 = 30;
|
|
int num241 = 290;
|
|
if (this.type == 285 || this.type == 286)
|
|
{
|
|
num241 = 291;
|
|
num240 = 40;
|
|
}
|
|
if (this.type == 281 || this.type == 282)
|
|
{
|
|
num241 = 293;
|
|
num240 = 40;
|
|
}
|
|
int num242 = Projectile.NewProjectile(vector22.X, vector22.Y, num237, num238, num241, num240, 0f, Main.myPlayer, 0f, 0f);
|
|
Main.projectile[num242].timeLeft = 300;
|
|
if (num241 == 291)
|
|
{
|
|
Main.projectile[num242].ai[0] = Main.player[this.target].center().X;
|
|
Main.projectile[num242].ai[1] = Main.player[this.target].center().Y;
|
|
Main.projectile[num242].netUpdate = true;
|
|
}
|
|
this.localAI[0] = 0f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type != 172)
|
|
{
|
|
Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 8);
|
|
}
|
|
if (Main.netMode != 1)
|
|
{
|
|
if (this.type == 29 || this.type == 45)
|
|
{
|
|
NPC.NewNPC((int)this.position.X + this.width / 2, (int)this.position.Y - 8, 30, 0);
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 32)
|
|
{
|
|
NPC.NewNPC((int)this.position.X + this.width / 2, (int)this.position.Y - 8, 33, 0);
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 172)
|
|
{
|
|
float num243 = 10f;
|
|
Vector2 vector23 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num244 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector23.X + (float)Main.rand.Next(-10, 11);
|
|
float num245 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - vector23.Y + (float)Main.rand.Next(-10, 11);
|
|
float num246 = (float)Math.Sqrt((double)(num244 * num244 + num245 * num245));
|
|
num246 = num243 / num246;
|
|
num244 *= num246;
|
|
num245 *= num246;
|
|
int num247 = 40;
|
|
int num248 = 129;
|
|
int num249 = Projectile.NewProjectile(vector23.X, vector23.Y, num244, num245, num248, num247, 0f, Main.myPlayer, 0f, 0f);
|
|
Main.projectile[num249].timeLeft = 300;
|
|
this.localAI[0] = 0f;
|
|
}
|
|
else
|
|
{
|
|
NPC.NewNPC((int)this.position.X + this.width / 2 + this.direction * 8, (int)this.position.Y + 20, 25, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 29 || this.type == 45)
|
|
{
|
|
if (Main.rand.Next(5) == 0)
|
|
{
|
|
int num250 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + 2f), this.width, this.height, 27, this.velocity.X * 0.2f, this.velocity.Y * 0.2f, 100, default(Color), 1.5f);
|
|
Main.dust[num250].noGravity = true;
|
|
Dust expr_FC8F_cp_0 = Main.dust[num250];
|
|
expr_FC8F_cp_0.velocity.X = expr_FC8F_cp_0.velocity.X * 0.5f;
|
|
Main.dust[num250].velocity.Y = -2f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 32)
|
|
{
|
|
if (Main.rand.Next(3) != 0)
|
|
{
|
|
int num251 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + 2f), this.width, this.height, 172, this.velocity.X * 0.2f, this.velocity.Y * 0.2f, 100, default(Color), 0.9f);
|
|
Main.dust[num251].noGravity = true;
|
|
Dust expr_FD68_cp_0 = Main.dust[num251];
|
|
expr_FD68_cp_0.velocity.X = expr_FD68_cp_0.velocity.X * 0.3f;
|
|
Dust expr_FD88_cp_0 = Main.dust[num251];
|
|
expr_FD88_cp_0.velocity.Y = expr_FD88_cp_0.velocity.Y * 0.2f;
|
|
Dust expr_FDA8_cp_0 = Main.dust[num251];
|
|
expr_FDA8_cp_0.velocity.Y = expr_FDA8_cp_0.velocity.Y - 1f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 172)
|
|
{
|
|
int num252 = 1;
|
|
if (this.alpha == 255)
|
|
{
|
|
num252 = 2;
|
|
}
|
|
for (int num253 = 0; num253 < num252; num253++)
|
|
{
|
|
if (Main.rand.Next(255) > 255 - this.alpha)
|
|
{
|
|
int num254 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + 2f), this.width, this.height, 106, this.velocity.X * 0.2f, this.velocity.Y * 0.2f, 100, default(Color), 1.2f);
|
|
Main.dust[num254].noGravity = true;
|
|
Dust expr_FE99_cp_0 = Main.dust[num254];
|
|
expr_FE99_cp_0.velocity.X = expr_FE99_cp_0.velocity.X * (0.1f + (float)Main.rand.Next(30) * 0.01f);
|
|
Dust expr_FECD_cp_0 = Main.dust[num254];
|
|
expr_FECD_cp_0.velocity.Y = expr_FECD_cp_0.velocity.Y * (0.1f + (float)Main.rand.Next(30) * 0.01f);
|
|
Main.dust[num254].scale *= 1f + (float)Main.rand.Next(6) * 0.1f;
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
if (this.type == 283 || this.type == 284)
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
int num255 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + 2f), this.width, this.height, 173, 0f, 0f, 0, default(Color), 1f);
|
|
Dust expr_FFCD_cp_0 = Main.dust[num255];
|
|
expr_FFCD_cp_0.velocity.X = expr_FFCD_cp_0.velocity.X * 0.5f;
|
|
Dust expr_FFED_cp_0 = Main.dust[num255];
|
|
expr_FFED_cp_0.velocity.Y = expr_FFED_cp_0.velocity.Y * 0.5f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 285 || this.type == 286)
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
int num256 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + 2f), this.width, this.height, 174, this.velocity.X * 0.2f, this.velocity.Y * 0.2f, 100, default(Color), 1f);
|
|
Main.dust[num256].noGravity = true;
|
|
Main.dust[num256].velocity *= 0.4f;
|
|
Dust expr_100DC_cp_0 = Main.dust[num256];
|
|
expr_100DC_cp_0.velocity.Y = expr_100DC_cp_0.velocity.Y - 0.7f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 281 || this.type == 282)
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
int num257 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + 2f), this.width, this.height, 175, this.velocity.X * 0.2f, this.velocity.Y * 0.2f, 100, default(Color), 0.1f);
|
|
Main.dust[num257].noGravity = true;
|
|
Main.dust[num257].velocity *= 0.5f;
|
|
Main.dust[num257].fadeIn = 1.2f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
int num258 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + 2f), this.width, this.height, 6, this.velocity.X * 0.2f, this.velocity.Y * 0.2f, 100, default(Color), 2f);
|
|
Main.dust[num258].noGravity = true;
|
|
Dust expr_1026E_cp_0 = Main.dust[num258];
|
|
expr_1026E_cp_0.velocity.X = expr_1026E_cp_0.velocity.X * 1f;
|
|
Dust expr_1028E_cp_0 = Main.dust[num258];
|
|
expr_1028E_cp_0.velocity.Y = expr_1028E_cp_0.velocity.Y * 1f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 9)
|
|
{
|
|
if (this.target == 255)
|
|
{
|
|
this.TargetClosest(true);
|
|
float num259 = 6f;
|
|
if (this.type == 25)
|
|
{
|
|
num259 = 5f;
|
|
}
|
|
if (this.type == 112)
|
|
{
|
|
num259 = 7f;
|
|
}
|
|
Vector2 vector24 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num260 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector24.X;
|
|
float num261 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector24.Y;
|
|
float num262 = (float)Math.Sqrt((double)(num260 * num260 + num261 * num261));
|
|
num262 = num259 / num262;
|
|
this.velocity.X = num260 * num262;
|
|
this.velocity.Y = num261 * num262;
|
|
}
|
|
if (this.type == 112)
|
|
{
|
|
this.ai[0] += 1f;
|
|
if (this.ai[0] > 3f)
|
|
{
|
|
this.ai[0] = 3f;
|
|
}
|
|
if (this.ai[0] == 2f)
|
|
{
|
|
this.position += this.velocity;
|
|
Main.PlaySound(4, (int)this.position.X, (int)this.position.Y, 9);
|
|
for (int num263 = 0; num263 < 20; num263++)
|
|
{
|
|
int num264 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + 2f), this.width, this.height, 18, 0f, 0f, 100, default(Color), 1.8f);
|
|
Main.dust[num264].velocity *= 1.3f;
|
|
Main.dust[num264].velocity += this.velocity;
|
|
Main.dust[num264].noGravity = true;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 112 && Collision.SolidCollision(this.position, this.width, this.height))
|
|
{
|
|
int arg_1056F_0 = Main.netMode;
|
|
this.StrikeNPC(999, 0f, 0, false, false);
|
|
}
|
|
if (this.timeLeft > 100)
|
|
{
|
|
this.timeLeft = 100;
|
|
}
|
|
for (int num265 = 0; num265 < 2; num265++)
|
|
{
|
|
if (this.type == 30)
|
|
{
|
|
int num266 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + 2f), this.width, this.height, 27, this.velocity.X * 0.2f, this.velocity.Y * 0.2f, 100, default(Color), 2f);
|
|
Main.dust[num266].noGravity = true;
|
|
Main.dust[num266].velocity *= 0.3f;
|
|
Dust expr_1065A_cp_0 = Main.dust[num266];
|
|
expr_1065A_cp_0.velocity.X = expr_1065A_cp_0.velocity.X - this.velocity.X * 0.2f;
|
|
Dust expr_10686_cp_0 = Main.dust[num266];
|
|
expr_10686_cp_0.velocity.Y = expr_10686_cp_0.velocity.Y - this.velocity.Y * 0.2f;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 33)
|
|
{
|
|
for (int num267 = 0; num267 < 3; num267++)
|
|
{
|
|
float num268 = this.velocity.X / 3f * (float)num265;
|
|
float num269 = this.velocity.Y / 3f * (float)num265;
|
|
int num270 = 2;
|
|
int num271 = Dust.NewDust(new Vector2(this.position.X + (float)num270, this.position.Y + (float)num270), this.width - num270 * 2, this.height - num270 * 2, 172, 0f, 0f, 100, default(Color), 1.2f);
|
|
Main.dust[num271].noGravity = true;
|
|
Main.dust[num271].velocity *= 0.1f;
|
|
Main.dust[num271].velocity += this.velocity * 0.5f;
|
|
Dust expr_107D0_cp_0 = Main.dust[num271];
|
|
expr_107D0_cp_0.position.X = expr_107D0_cp_0.position.X - num268;
|
|
Dust expr_107EF_cp_0 = Main.dust[num271];
|
|
expr_107EF_cp_0.position.Y = expr_107EF_cp_0.position.Y - num269;
|
|
}
|
|
if (Main.rand.Next(5) == 0)
|
|
{
|
|
int num272 = 2;
|
|
int num273 = Dust.NewDust(new Vector2(this.position.X + (float)num272, this.position.Y + (float)num272), this.width - num272 * 2, this.height - num272 * 2, 172, 0f, 0f, 100, default(Color), 0.6f);
|
|
Main.dust[num273].velocity *= 0.25f;
|
|
Main.dust[num273].velocity += this.velocity * 0.5f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 112)
|
|
{
|
|
int num274 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + 2f), this.width, this.height, 18, this.velocity.X * 0.1f, this.velocity.Y * 0.1f, 80, default(Color), 1.3f);
|
|
Main.dust[num274].velocity *= 0.3f;
|
|
Main.dust[num274].noGravity = true;
|
|
}
|
|
else
|
|
{
|
|
Lighting.addLight((int)((this.position.X + (float)(this.width / 2)) / 16f), (int)((this.position.Y + (float)(this.height / 2)) / 16f), 1f, 0.3f, 0.1f);
|
|
int num275 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + 2f), this.width, this.height, 6, this.velocity.X * 0.2f, this.velocity.Y * 0.2f, 100, default(Color), 2f);
|
|
Main.dust[num275].noGravity = true;
|
|
Dust expr_10A6D_cp_0 = Main.dust[num275];
|
|
expr_10A6D_cp_0.velocity.X = expr_10A6D_cp_0.velocity.X * 0.3f;
|
|
Dust expr_10A8D_cp_0 = Main.dust[num275];
|
|
expr_10A8D_cp_0.velocity.Y = expr_10A8D_cp_0.velocity.Y * 0.3f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
this.rotation += 0.4f * (float)this.direction;
|
|
return;
|
|
}
|
|
if (this.aiStyle == 10)
|
|
{
|
|
float num276 = 1f;
|
|
float num277 = 0.011f;
|
|
this.TargetClosest(true);
|
|
Vector2 vector25 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num278 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector25.X;
|
|
float num279 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector25.Y;
|
|
float num280 = (float)Math.Sqrt((double)(num278 * num278 + num279 * num279));
|
|
float num281 = num280;
|
|
this.ai[1] += 1f;
|
|
if (this.ai[1] > 600f)
|
|
{
|
|
num277 *= 8f;
|
|
num276 = 4f;
|
|
if (this.ai[1] > 650f)
|
|
{
|
|
this.ai[1] = 0f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num281 < 250f)
|
|
{
|
|
this.ai[0] += 0.9f;
|
|
if (this.ai[0] > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.019f;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.019f;
|
|
}
|
|
if (this.ai[0] < -100f || this.ai[0] > 100f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.019f;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.019f;
|
|
}
|
|
if (this.ai[0] > 200f)
|
|
{
|
|
this.ai[0] = -200f;
|
|
}
|
|
}
|
|
}
|
|
if (num281 > 350f)
|
|
{
|
|
num276 = 5f;
|
|
num277 = 0.3f;
|
|
}
|
|
else
|
|
{
|
|
if (num281 > 300f)
|
|
{
|
|
num276 = 3f;
|
|
num277 = 0.2f;
|
|
}
|
|
else
|
|
{
|
|
if (num281 > 250f)
|
|
{
|
|
num276 = 1.5f;
|
|
num277 = 0.1f;
|
|
}
|
|
}
|
|
}
|
|
num280 = num276 / num280;
|
|
num278 *= num280;
|
|
num279 *= num280;
|
|
if (Main.player[this.target].dead)
|
|
{
|
|
num278 = (float)this.direction * num276 / 2f;
|
|
num279 = -num276 / 2f;
|
|
}
|
|
if (this.velocity.X < num278)
|
|
{
|
|
this.velocity.X = this.velocity.X + num277;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > num278)
|
|
{
|
|
this.velocity.X = this.velocity.X - num277;
|
|
}
|
|
}
|
|
if (this.velocity.Y < num279)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num277;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > num279)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num277;
|
|
}
|
|
}
|
|
if (num278 > 0f)
|
|
{
|
|
this.spriteDirection = -1;
|
|
this.rotation = (float)Math.Atan2((double)num279, (double)num278);
|
|
}
|
|
if (num278 < 0f)
|
|
{
|
|
this.spriteDirection = 1;
|
|
this.rotation = (float)Math.Atan2((double)num279, (double)num278) + 3.14f;
|
|
}
|
|
if (this.type == 289)
|
|
{
|
|
if (this.justHit)
|
|
{
|
|
this.ai[2] = 0f;
|
|
this.ai[3] = 0f;
|
|
}
|
|
vector25 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
num278 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector25.X;
|
|
num279 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector25.Y;
|
|
num280 = (float)Math.Sqrt((double)(num278 * num278 + num279 * num279));
|
|
if (num280 > 500f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
this.ai[3] = 0f;
|
|
return;
|
|
}
|
|
this.ai[2] += 1f;
|
|
if (this.ai[3] == 0f)
|
|
{
|
|
if (this.ai[2] > 120f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
this.ai[3] = 1f;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[2] > 40f)
|
|
{
|
|
this.ai[3] = 0f;
|
|
}
|
|
if (Main.netMode != 1 && this.ai[2] == 20f)
|
|
{
|
|
float num282 = 6f;
|
|
int num283 = 25;
|
|
int num284 = 299;
|
|
num280 = num282 / num280;
|
|
num278 *= num280;
|
|
num279 *= num280;
|
|
Projectile.NewProjectile(vector25.X, vector25.Y, num278, num279, num284, num283, 0f, Main.myPlayer, 0f, 0f);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 11)
|
|
{
|
|
if (this.ai[0] == 0f && Main.netMode != 1)
|
|
{
|
|
this.TargetClosest(true);
|
|
this.ai[0] = 1f;
|
|
if (this.type != 68)
|
|
{
|
|
int num285 = NPC.NewNPC((int)(this.position.X + (float)(this.width / 2)), (int)this.position.Y + this.height / 2, 36, this.whoAmI);
|
|
Main.npc[num285].ai[0] = -1f;
|
|
Main.npc[num285].ai[1] = (float)this.whoAmI;
|
|
Main.npc[num285].target = this.target;
|
|
Main.npc[num285].netUpdate = true;
|
|
num285 = NPC.NewNPC((int)(this.position.X + (float)(this.width / 2)), (int)this.position.Y + this.height / 2, 36, this.whoAmI);
|
|
Main.npc[num285].ai[0] = 1f;
|
|
Main.npc[num285].ai[1] = (float)this.whoAmI;
|
|
Main.npc[num285].ai[3] = 150f;
|
|
Main.npc[num285].target = this.target;
|
|
Main.npc[num285].netUpdate = true;
|
|
}
|
|
}
|
|
if (this.type == 68 && this.ai[1] != 3f && this.ai[1] != 2f)
|
|
{
|
|
Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0);
|
|
this.ai[1] = 2f;
|
|
}
|
|
if (Main.player[this.target].dead || Math.Abs(this.position.X - Main.player[this.target].position.X) > 2000f || Math.Abs(this.position.Y - Main.player[this.target].position.Y) > 2000f)
|
|
{
|
|
this.TargetClosest(true);
|
|
if (Main.player[this.target].dead || Math.Abs(this.position.X - Main.player[this.target].position.X) > 2000f || Math.Abs(this.position.Y - Main.player[this.target].position.Y) > 2000f)
|
|
{
|
|
this.ai[1] = 3f;
|
|
}
|
|
}
|
|
if (Main.dayTime && this.ai[1] != 3f && this.ai[1] != 2f)
|
|
{
|
|
this.ai[1] = 2f;
|
|
Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0);
|
|
}
|
|
if (this.ai[1] == 0f)
|
|
{
|
|
this.defense = 10;
|
|
this.ai[2] += 1f;
|
|
if (this.ai[2] >= 800f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
this.ai[1] = 1f;
|
|
this.TargetClosest(true);
|
|
this.netUpdate = true;
|
|
}
|
|
this.rotation = this.velocity.X / 15f;
|
|
if (this.position.Y > Main.player[this.target].position.Y - 250f)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.98f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.02f;
|
|
if (this.velocity.Y > 2f)
|
|
{
|
|
this.velocity.Y = 2f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.position.Y < Main.player[this.target].position.Y - 250f)
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.98f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y + 0.02f;
|
|
if (this.velocity.Y < -2f)
|
|
{
|
|
this.velocity.Y = -2f;
|
|
}
|
|
}
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) > Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2))
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.98f;
|
|
}
|
|
this.velocity.X = this.velocity.X - 0.05f;
|
|
if (this.velocity.X > 8f)
|
|
{
|
|
this.velocity.X = 8f;
|
|
}
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) < Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2))
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.98f;
|
|
}
|
|
this.velocity.X = this.velocity.X + 0.05f;
|
|
if (this.velocity.X < -8f)
|
|
{
|
|
this.velocity.X = -8f;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] == 1f)
|
|
{
|
|
this.defense = 0;
|
|
this.ai[2] += 1f;
|
|
if (this.ai[2] == 2f)
|
|
{
|
|
Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0);
|
|
}
|
|
if (this.ai[2] >= 400f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
this.ai[1] = 0f;
|
|
}
|
|
this.rotation += (float)this.direction * 0.3f;
|
|
Vector2 vector26 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num286 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector26.X;
|
|
float num287 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector26.Y;
|
|
float num288 = (float)Math.Sqrt((double)(num286 * num286 + num287 * num287));
|
|
num288 = 1.5f / num288;
|
|
this.velocity.X = num286 * num288;
|
|
this.velocity.Y = num287 * num288;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] == 2f)
|
|
{
|
|
this.damage = 9999;
|
|
this.defense = 9999;
|
|
this.rotation += (float)this.direction * 0.3f;
|
|
Vector2 vector27 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num289 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector27.X;
|
|
float num290 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector27.Y;
|
|
float num291 = (float)Math.Sqrt((double)(num289 * num289 + num290 * num290));
|
|
num291 = 8f / num291;
|
|
this.velocity.X = num289 * num291;
|
|
this.velocity.Y = num290 * num291;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] == 3f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.1f;
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.95f;
|
|
}
|
|
this.velocity.X = this.velocity.X * 0.95f;
|
|
if (this.timeLeft > 500)
|
|
{
|
|
this.timeLeft = 500;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.ai[1] != 2f && this.ai[1] != 3f && this.type != 68)
|
|
{
|
|
int num292 = Dust.NewDust(new Vector2(this.position.X + (float)(this.width / 2) - 15f - this.velocity.X * 5f, this.position.Y + (float)this.height - 2f), 30, 10, 5, -this.velocity.X * 0.2f, 3f, 0, default(Color), 2f);
|
|
Main.dust[num292].noGravity = true;
|
|
Dust expr_11B42_cp_0 = Main.dust[num292];
|
|
expr_11B42_cp_0.velocity.X = expr_11B42_cp_0.velocity.X * 1.3f;
|
|
Dust expr_11B62_cp_0 = Main.dust[num292];
|
|
expr_11B62_cp_0.velocity.X = expr_11B62_cp_0.velocity.X + this.velocity.X * 0.4f;
|
|
Dust expr_11B8E_cp_0 = Main.dust[num292];
|
|
expr_11B8E_cp_0.velocity.Y = expr_11B8E_cp_0.velocity.Y + (2f + this.velocity.Y);
|
|
for (int num293 = 0; num293 < 2; num293++)
|
|
{
|
|
num292 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + 120f), this.width, 60, 5, this.velocity.X, this.velocity.Y, 0, default(Color), 2f);
|
|
Main.dust[num292].noGravity = true;
|
|
Main.dust[num292].velocity -= this.velocity;
|
|
Dust expr_11C51_cp_0 = Main.dust[num292];
|
|
expr_11C51_cp_0.velocity.Y = expr_11C51_cp_0.velocity.Y + 5f;
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 12)
|
|
{
|
|
this.spriteDirection = -(int)this.ai[0];
|
|
if (!Main.npc[(int)this.ai[1]].active || Main.npc[(int)this.ai[1]].aiStyle != 11)
|
|
{
|
|
this.ai[2] += 10f;
|
|
if (this.ai[2] > 50f || Main.netMode != 2)
|
|
{
|
|
this.life = -1;
|
|
this.HitEffect(0, 10.0);
|
|
this.active = false;
|
|
}
|
|
}
|
|
if (this.ai[2] == 0f || this.ai[2] == 3f)
|
|
{
|
|
if (Main.npc[(int)this.ai[1]].ai[1] == 3f && this.timeLeft > 10)
|
|
{
|
|
this.timeLeft = 10;
|
|
}
|
|
if (Main.npc[(int)this.ai[1]].ai[1] != 0f)
|
|
{
|
|
if (this.position.Y > Main.npc[(int)this.ai[1]].position.Y - 100f)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.96f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.07f;
|
|
if (this.velocity.Y > 6f)
|
|
{
|
|
this.velocity.Y = 6f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.position.Y < Main.npc[(int)this.ai[1]].position.Y - 100f)
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.96f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y + 0.07f;
|
|
if (this.velocity.Y < -6f)
|
|
{
|
|
this.velocity.Y = -6f;
|
|
}
|
|
}
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) > Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - 120f * this.ai[0])
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.96f;
|
|
}
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
if (this.velocity.X > 8f)
|
|
{
|
|
this.velocity.X = 8f;
|
|
}
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) < Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - 120f * this.ai[0])
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.96f;
|
|
}
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
if (this.velocity.X < -8f)
|
|
{
|
|
this.velocity.X = -8f;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.ai[3] += 1f;
|
|
if (this.ai[3] >= 300f)
|
|
{
|
|
this.ai[2] += 1f;
|
|
this.ai[3] = 0f;
|
|
this.netUpdate = true;
|
|
}
|
|
if (this.position.Y > Main.npc[(int)this.ai[1]].position.Y + 230f)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.96f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.04f;
|
|
if (this.velocity.Y > 3f)
|
|
{
|
|
this.velocity.Y = 3f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.position.Y < Main.npc[(int)this.ai[1]].position.Y + 230f)
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.96f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y + 0.04f;
|
|
if (this.velocity.Y < -3f)
|
|
{
|
|
this.velocity.Y = -3f;
|
|
}
|
|
}
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) > Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - 200f * this.ai[0])
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.96f;
|
|
}
|
|
this.velocity.X = this.velocity.X - 0.07f;
|
|
if (this.velocity.X > 8f)
|
|
{
|
|
this.velocity.X = 8f;
|
|
}
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) < Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - 200f * this.ai[0])
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.96f;
|
|
}
|
|
this.velocity.X = this.velocity.X + 0.07f;
|
|
if (this.velocity.X < -8f)
|
|
{
|
|
this.velocity.X = -8f;
|
|
}
|
|
}
|
|
}
|
|
Vector2 vector28 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num294 = Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - 200f * this.ai[0] - vector28.X;
|
|
float num295 = Main.npc[(int)this.ai[1]].position.Y + 230f - vector28.Y;
|
|
Math.Sqrt((double)(num294 * num294 + num295 * num295));
|
|
this.rotation = (float)Math.Atan2((double)num295, (double)num294) + 1.57f;
|
|
return;
|
|
}
|
|
if (this.ai[2] == 1f)
|
|
{
|
|
Vector2 vector29 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num296 = Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - 200f * this.ai[0] - vector29.X;
|
|
float num297 = Main.npc[(int)this.ai[1]].position.Y + 230f - vector29.Y;
|
|
float num298 = (float)Math.Sqrt((double)(num296 * num296 + num297 * num297));
|
|
this.rotation = (float)Math.Atan2((double)num297, (double)num296) + 1.57f;
|
|
this.velocity.X = this.velocity.X * 0.95f;
|
|
this.velocity.Y = this.velocity.Y - 0.1f;
|
|
if (this.velocity.Y < -8f)
|
|
{
|
|
this.velocity.Y = -8f;
|
|
}
|
|
if (this.position.Y < Main.npc[(int)this.ai[1]].position.Y - 200f)
|
|
{
|
|
this.TargetClosest(true);
|
|
this.ai[2] = 2f;
|
|
vector29 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
num296 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector29.X;
|
|
num297 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector29.Y;
|
|
num298 = (float)Math.Sqrt((double)(num296 * num296 + num297 * num297));
|
|
num298 = 18f / num298;
|
|
this.velocity.X = num296 * num298;
|
|
this.velocity.Y = num297 * num298;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[2] == 2f)
|
|
{
|
|
if (this.position.Y > Main.player[this.target].position.Y || this.velocity.Y < 0f)
|
|
{
|
|
this.ai[2] = 3f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[2] == 4f)
|
|
{
|
|
Vector2 vector30 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num299 = Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - 200f * this.ai[0] - vector30.X;
|
|
float num300 = Main.npc[(int)this.ai[1]].position.Y + 230f - vector30.Y;
|
|
float num301 = (float)Math.Sqrt((double)(num299 * num299 + num300 * num300));
|
|
this.rotation = (float)Math.Atan2((double)num300, (double)num299) + 1.57f;
|
|
this.velocity.Y = this.velocity.Y * 0.95f;
|
|
this.velocity.X = this.velocity.X + 0.1f * -this.ai[0];
|
|
if (this.velocity.X < -8f)
|
|
{
|
|
this.velocity.X = -8f;
|
|
}
|
|
if (this.velocity.X > 8f)
|
|
{
|
|
this.velocity.X = 8f;
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) < Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - 500f || this.position.X + (float)(this.width / 2) > Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) + 500f)
|
|
{
|
|
this.TargetClosest(true);
|
|
this.ai[2] = 5f;
|
|
vector30 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
num299 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector30.X;
|
|
num300 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector30.Y;
|
|
num301 = (float)Math.Sqrt((double)(num299 * num299 + num300 * num300));
|
|
num301 = 17f / num301;
|
|
this.velocity.X = num299 * num301;
|
|
this.velocity.Y = num300 * num301;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[2] == 5f && ((this.velocity.X > 0f && this.position.X + (float)(this.width / 2) > Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2)) || (this.velocity.X < 0f && this.position.X + (float)(this.width / 2) < Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2))))
|
|
{
|
|
this.ai[2] = 0f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 13)
|
|
{
|
|
if (this.ai[0] < 0f || this.ai[0] >= (float)Main.maxTilesX || this.ai[1] < 0f || this.ai[1] >= (float)Main.maxTilesX)
|
|
{
|
|
return;
|
|
}
|
|
if (Main.tile[(int)this.ai[0], (int)this.ai[1]] == null)
|
|
{
|
|
Main.tile[(int)this.ai[0], (int)this.ai[1]] = new Tile();
|
|
}
|
|
if (!Main.tile[(int)this.ai[0], (int)this.ai[1]].active())
|
|
{
|
|
this.life = -1;
|
|
this.HitEffect(0, 10.0);
|
|
this.active = false;
|
|
return;
|
|
}
|
|
this.TargetClosest(true);
|
|
float num302 = 0.035f;
|
|
float num303 = 150f;
|
|
if (this.type == 43)
|
|
{
|
|
num303 = 250f;
|
|
}
|
|
if (this.type == 101)
|
|
{
|
|
num303 = 175f;
|
|
}
|
|
if (this.type == 259)
|
|
{
|
|
num303 = 100f;
|
|
}
|
|
if (this.type == 175)
|
|
{
|
|
num303 = 500f;
|
|
num302 = 0.05f;
|
|
}
|
|
if (this.type == 260)
|
|
{
|
|
num303 = 350f;
|
|
num302 = 0.15f;
|
|
}
|
|
this.ai[2] += 1f;
|
|
if (this.ai[2] > 300f)
|
|
{
|
|
num303 = (float)((int)((double)num303 * 1.3));
|
|
if (this.ai[2] > 450f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
}
|
|
}
|
|
Vector2 vector31 = new Vector2(this.ai[0] * 16f + 8f, this.ai[1] * 16f + 8f);
|
|
float num304 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - (float)(this.width / 2) - vector31.X;
|
|
float num305 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - (float)(this.height / 2) - vector31.Y;
|
|
float num306 = (float)Math.Sqrt((double)(num304 * num304 + num305 * num305));
|
|
if (num306 > num303)
|
|
{
|
|
num306 = num303 / num306;
|
|
num304 *= num306;
|
|
num305 *= num306;
|
|
}
|
|
if (this.position.X < this.ai[0] * 16f + 8f + num304)
|
|
{
|
|
this.velocity.X = this.velocity.X + num302;
|
|
if (this.velocity.X < 0f && num304 > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num302 * 1.5f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.position.X > this.ai[0] * 16f + 8f + num304)
|
|
{
|
|
this.velocity.X = this.velocity.X - num302;
|
|
if (this.velocity.X > 0f && num304 < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - num302 * 1.5f;
|
|
}
|
|
}
|
|
}
|
|
if (this.position.Y < this.ai[1] * 16f + 8f + num305)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num302;
|
|
if (this.velocity.Y < 0f && num305 > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num302 * 1.5f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.position.Y > this.ai[1] * 16f + 8f + num305)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num302;
|
|
if (this.velocity.Y > 0f && num305 < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num302 * 1.5f;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 43)
|
|
{
|
|
if (this.velocity.X > 3f)
|
|
{
|
|
this.velocity.X = 3f;
|
|
}
|
|
if (this.velocity.X < -3f)
|
|
{
|
|
this.velocity.X = -3f;
|
|
}
|
|
if (this.velocity.Y > 3f)
|
|
{
|
|
this.velocity.Y = 3f;
|
|
}
|
|
if (this.velocity.Y < -3f)
|
|
{
|
|
this.velocity.Y = -3f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 175)
|
|
{
|
|
if (this.velocity.X > 4f)
|
|
{
|
|
this.velocity.X = 4f;
|
|
}
|
|
if (this.velocity.X < -4f)
|
|
{
|
|
this.velocity.X = -4f;
|
|
}
|
|
if (this.velocity.Y > 4f)
|
|
{
|
|
this.velocity.Y = 4f;
|
|
}
|
|
if (this.velocity.Y < -4f)
|
|
{
|
|
this.velocity.Y = -4f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > 2f)
|
|
{
|
|
this.velocity.X = 2f;
|
|
}
|
|
if (this.velocity.X < -2f)
|
|
{
|
|
this.velocity.X = -2f;
|
|
}
|
|
if (this.velocity.Y > 2f)
|
|
{
|
|
this.velocity.Y = 2f;
|
|
}
|
|
if (this.velocity.Y < -2f)
|
|
{
|
|
this.velocity.Y = -2f;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 259 || this.type == 260)
|
|
{
|
|
this.rotation = (float)Math.Atan2((double)num305, (double)num304) + 1.57f;
|
|
}
|
|
else
|
|
{
|
|
if (num304 > 0f)
|
|
{
|
|
this.spriteDirection = 1;
|
|
this.rotation = (float)Math.Atan2((double)num305, (double)num304);
|
|
}
|
|
if (num304 < 0f)
|
|
{
|
|
this.spriteDirection = -1;
|
|
this.rotation = (float)Math.Atan2((double)num305, (double)num304) + 3.14f;
|
|
}
|
|
}
|
|
if (this.collideX)
|
|
{
|
|
this.netUpdate = true;
|
|
this.velocity.X = this.oldVelocity.X * -0.7f;
|
|
if (this.velocity.X > 0f && this.velocity.X < 2f)
|
|
{
|
|
this.velocity.X = 2f;
|
|
}
|
|
if (this.velocity.X < 0f && this.velocity.X > -2f)
|
|
{
|
|
this.velocity.X = -2f;
|
|
}
|
|
}
|
|
if (this.collideY)
|
|
{
|
|
this.netUpdate = true;
|
|
this.velocity.Y = this.oldVelocity.Y * -0.7f;
|
|
if (this.velocity.Y > 0f && this.velocity.Y < 2f)
|
|
{
|
|
this.velocity.Y = 2f;
|
|
}
|
|
if (this.velocity.Y < 0f && this.velocity.Y > -2f)
|
|
{
|
|
this.velocity.Y = -2f;
|
|
}
|
|
}
|
|
if (Main.netMode != 1)
|
|
{
|
|
if (this.type == 101 && !Main.player[this.target].dead)
|
|
{
|
|
if (this.justHit)
|
|
{
|
|
this.localAI[0] = 0f;
|
|
}
|
|
this.localAI[0] += 1f;
|
|
if (this.localAI[0] >= 120f)
|
|
{
|
|
if (!Collision.SolidCollision(this.position, this.width, this.height) && Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
float num307 = 10f;
|
|
vector31 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
num304 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector31.X + (float)Main.rand.Next(-10, 11);
|
|
num305 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - vector31.Y + (float)Main.rand.Next(-10, 11);
|
|
num306 = (float)Math.Sqrt((double)(num304 * num304 + num305 * num305));
|
|
num306 = num307 / num306;
|
|
num304 *= num306;
|
|
num305 *= num306;
|
|
int num308 = 22;
|
|
int num309 = 96;
|
|
int num310 = Projectile.NewProjectile(vector31.X, vector31.Y, num304, num305, num309, num308, 0f, Main.myPlayer, 0f, 0f);
|
|
Main.projectile[num310].timeLeft = 300;
|
|
this.localAI[0] = 0f;
|
|
}
|
|
else
|
|
{
|
|
this.localAI[0] = 100f;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 260 && !Main.player[this.target].dead)
|
|
{
|
|
if (this.justHit)
|
|
{
|
|
this.localAI[0] = 0f;
|
|
}
|
|
this.localAI[0] += 1f;
|
|
if (this.localAI[0] >= 150f)
|
|
{
|
|
if (!Collision.SolidCollision(this.position, this.width, this.height))
|
|
{
|
|
float num311 = 14f;
|
|
vector31 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
num304 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector31.X + (float)Main.rand.Next(-10, 11);
|
|
float num312 = Math.Abs(num304 * 0.1f);
|
|
if (num305 > 0f)
|
|
{
|
|
num312 = 0f;
|
|
}
|
|
num305 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - vector31.Y + (float)Main.rand.Next(-10, 11) - num312;
|
|
num306 = (float)Math.Sqrt((double)(num304 * num304 + num305 * num305));
|
|
num306 = num311 / num306;
|
|
num304 *= num306;
|
|
num305 *= num306;
|
|
int num313 = NPC.NewNPC((int)this.center().X, (int)this.center().Y, 261, 0);
|
|
Main.npc[num313].velocity.X = num304;
|
|
Main.npc[num313].velocity.Y = num305;
|
|
Main.npc[num313].netUpdate = true;
|
|
this.localAI[0] = 0f;
|
|
return;
|
|
}
|
|
this.localAI[0] = 250f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 14)
|
|
{
|
|
if (this.type == 60 || this.type == 151)
|
|
{
|
|
int num314 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 6, this.velocity.X * 0.2f, this.velocity.Y * 0.2f, 100, default(Color), 2f);
|
|
Main.dust[num314].noGravity = true;
|
|
}
|
|
if (this.type == 150 && Main.rand.Next(10) == 0)
|
|
{
|
|
int num315 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 67, this.velocity.X * 0.5f, this.velocity.Y * 0.5f, 90, default(Color), 1.5f);
|
|
Main.dust[num315].noGravity = true;
|
|
Main.dust[num315].velocity *= 0.2f;
|
|
Main.dust[num315].noLight = true;
|
|
}
|
|
this.noGravity = true;
|
|
if (this.collideX)
|
|
{
|
|
this.velocity.X = this.oldVelocity.X * -0.5f;
|
|
if (this.direction == -1 && this.velocity.X > 0f && this.velocity.X < 2f)
|
|
{
|
|
this.velocity.X = 2f;
|
|
}
|
|
if (this.direction == 1 && this.velocity.X < 0f && this.velocity.X > -2f)
|
|
{
|
|
this.velocity.X = -2f;
|
|
}
|
|
}
|
|
if (this.collideY)
|
|
{
|
|
this.velocity.Y = this.oldVelocity.Y * -0.5f;
|
|
if (this.velocity.Y > 0f && this.velocity.Y < 1f)
|
|
{
|
|
this.velocity.Y = 1f;
|
|
}
|
|
if (this.velocity.Y < 0f && this.velocity.Y > -1f)
|
|
{
|
|
this.velocity.Y = -1f;
|
|
}
|
|
}
|
|
if (this.type == 226)
|
|
{
|
|
int num316 = 1;
|
|
int num317 = 1;
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
num316 = -1;
|
|
}
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
num317 = -1;
|
|
}
|
|
this.TargetClosest(true);
|
|
if (!Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
this.direction = num316;
|
|
this.directionY = num317;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.TargetClosest(true);
|
|
}
|
|
if (this.type == 158)
|
|
{
|
|
if ((double)this.position.Y < Main.worldSurface * 16.0 && Main.dayTime && !Main.eclipse)
|
|
{
|
|
this.directionY = -1;
|
|
this.direction *= -1;
|
|
}
|
|
if (this.direction == -1 && this.velocity.X > -7f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.2f;
|
|
if (this.velocity.X > 4f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.05f;
|
|
}
|
|
}
|
|
if (this.velocity.X < -7f)
|
|
{
|
|
this.velocity.X = -7f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.direction == 1 && this.velocity.X < 7f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.2f;
|
|
if (this.velocity.X < -4f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.05f;
|
|
}
|
|
}
|
|
if (this.velocity.X > 7f)
|
|
{
|
|
this.velocity.X = 7f;
|
|
}
|
|
}
|
|
}
|
|
if (this.directionY == -1 && this.velocity.Y > -7f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.2f;
|
|
if (this.velocity.Y > 4f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.05f;
|
|
}
|
|
}
|
|
if (this.velocity.Y < -7f)
|
|
{
|
|
this.velocity.Y = -7f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.directionY == 1 && this.velocity.Y < 7f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.2f;
|
|
if (this.velocity.Y < -4f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.05f;
|
|
}
|
|
}
|
|
if (this.velocity.Y > 7f)
|
|
{
|
|
this.velocity.Y = 7f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 226)
|
|
{
|
|
if (this.direction == -1 && this.velocity.X > -4f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.2f;
|
|
if (this.velocity.X > 4f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.05f;
|
|
}
|
|
}
|
|
if (this.velocity.X < -4f)
|
|
{
|
|
this.velocity.X = -4f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.direction == 1 && this.velocity.X < 4f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.2f;
|
|
if (this.velocity.X < -4f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.05f;
|
|
}
|
|
}
|
|
if (this.velocity.X > 4f)
|
|
{
|
|
this.velocity.X = 4f;
|
|
}
|
|
}
|
|
}
|
|
if (this.directionY == -1 && (double)this.velocity.Y > -2.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.1f;
|
|
if ((double)this.velocity.Y > 2.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.05f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.03f;
|
|
}
|
|
}
|
|
if ((double)this.velocity.Y < -2.5)
|
|
{
|
|
this.velocity.Y = -2.5f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.directionY == 1 && (double)this.velocity.Y < 2.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.1f;
|
|
if ((double)this.velocity.Y < -2.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.05f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.03f;
|
|
}
|
|
}
|
|
if ((double)this.velocity.Y > 2.5)
|
|
{
|
|
this.velocity.Y = 2.5f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.direction == -1 && this.velocity.X > -4f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
if (this.velocity.X > 4f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.05f;
|
|
}
|
|
}
|
|
if (this.velocity.X < -4f)
|
|
{
|
|
this.velocity.X = -4f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.direction == 1 && this.velocity.X < 4f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
if (this.velocity.X < -4f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.05f;
|
|
}
|
|
}
|
|
if (this.velocity.X > 4f)
|
|
{
|
|
this.velocity.X = 4f;
|
|
}
|
|
}
|
|
}
|
|
if (this.directionY == -1 && (double)this.velocity.Y > -1.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.04f;
|
|
if ((double)this.velocity.Y > 1.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.05f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.03f;
|
|
}
|
|
}
|
|
if ((double)this.velocity.Y < -1.5)
|
|
{
|
|
this.velocity.Y = -1.5f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.directionY == 1 && (double)this.velocity.Y < 1.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.04f;
|
|
if ((double)this.velocity.Y < -1.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.05f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.03f;
|
|
}
|
|
}
|
|
if ((double)this.velocity.Y > 1.5)
|
|
{
|
|
this.velocity.Y = 1.5f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 49 || this.type == 51 || this.type == 60 || this.type == 62 || this.type == 66 || this.type == 93 || this.type == 137 || this.type == 150 || this.type == 151 || this.type == 152)
|
|
{
|
|
if (this.wet)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.95f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.5f;
|
|
if (this.velocity.Y < -4f)
|
|
{
|
|
this.velocity.Y = -4f;
|
|
}
|
|
this.TargetClosest(true);
|
|
}
|
|
if (this.type == 60)
|
|
{
|
|
if (this.direction == -1 && this.velocity.X > -4f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
if (this.velocity.X > 4f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.07f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.03f;
|
|
}
|
|
}
|
|
if (this.velocity.X < -4f)
|
|
{
|
|
this.velocity.X = -4f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.direction == 1 && this.velocity.X < 4f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
if (this.velocity.X < -4f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.07f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.03f;
|
|
}
|
|
}
|
|
if (this.velocity.X > 4f)
|
|
{
|
|
this.velocity.X = 4f;
|
|
}
|
|
}
|
|
}
|
|
if (this.directionY == -1 && (double)this.velocity.Y > -1.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.04f;
|
|
if ((double)this.velocity.Y > 1.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.03f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.02f;
|
|
}
|
|
}
|
|
if ((double)this.velocity.Y < -1.5)
|
|
{
|
|
this.velocity.Y = -1.5f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.directionY == 1 && (double)this.velocity.Y < 1.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.04f;
|
|
if ((double)this.velocity.Y < -1.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.03f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.02f;
|
|
}
|
|
}
|
|
if ((double)this.velocity.Y > 1.5)
|
|
{
|
|
this.velocity.Y = 1.5f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.direction == -1 && this.velocity.X > -4f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
if (this.velocity.X > 4f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.05f;
|
|
}
|
|
}
|
|
if (this.velocity.X < -4f)
|
|
{
|
|
this.velocity.X = -4f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.direction == 1 && this.velocity.X < 4f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
if (this.velocity.X < -4f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.05f;
|
|
}
|
|
}
|
|
if (this.velocity.X > 4f)
|
|
{
|
|
this.velocity.X = 4f;
|
|
}
|
|
}
|
|
}
|
|
if (this.directionY == -1 && (double)this.velocity.Y > -1.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.04f;
|
|
if ((double)this.velocity.Y > 1.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.05f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.03f;
|
|
}
|
|
}
|
|
if ((double)this.velocity.Y < -1.5)
|
|
{
|
|
this.velocity.Y = -1.5f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.directionY == 1 && (double)this.velocity.Y < 1.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.04f;
|
|
if ((double)this.velocity.Y < -1.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.05f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.03f;
|
|
}
|
|
}
|
|
if ((double)this.velocity.Y > 1.5)
|
|
{
|
|
this.velocity.Y = 1.5f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 158 && Main.netMode != 1)
|
|
{
|
|
Vector2 vector32 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num318 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector32.X;
|
|
float num319 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - vector32.Y;
|
|
float num320 = (float)Math.Sqrt((double)(num318 * num318 + num319 * num319));
|
|
if (num320 < 200f && this.position.Y + (float)this.height < Main.player[this.target].position.Y + (float)Main.player[this.target].height && Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
this.Transform(159);
|
|
}
|
|
}
|
|
this.ai[1] += 1f;
|
|
if (this.type == 158)
|
|
{
|
|
this.ai[1] += 1f;
|
|
}
|
|
if (this.ai[1] > 200f)
|
|
{
|
|
if (!Main.player[this.target].wet && Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
this.ai[1] = 0f;
|
|
}
|
|
float num321 = 0.2f;
|
|
float num322 = 0.1f;
|
|
float num323 = 4f;
|
|
float num324 = 1.5f;
|
|
if (this.type == 48 || this.type == 62 || this.type == 66)
|
|
{
|
|
num321 = 0.12f;
|
|
num322 = 0.07f;
|
|
num323 = 3f;
|
|
num324 = 1.25f;
|
|
}
|
|
if (this.ai[1] > 1000f)
|
|
{
|
|
this.ai[1] = 0f;
|
|
}
|
|
this.ai[2] += 1f;
|
|
if (this.ai[2] > 0f)
|
|
{
|
|
if (this.velocity.Y < num324)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num322;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > -num324)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num322;
|
|
}
|
|
}
|
|
if (this.ai[2] < -150f || this.ai[2] > 150f)
|
|
{
|
|
if (this.velocity.X < num323)
|
|
{
|
|
this.velocity.X = this.velocity.X + num321;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > -num323)
|
|
{
|
|
this.velocity.X = this.velocity.X - num321;
|
|
}
|
|
}
|
|
if (this.ai[2] > 300f)
|
|
{
|
|
this.ai[2] = -300f;
|
|
}
|
|
}
|
|
if (Main.netMode != 1)
|
|
{
|
|
if (this.type == 48)
|
|
{
|
|
this.ai[0] += 1f;
|
|
if (this.ai[0] == 30f || this.ai[0] == 60f || this.ai[0] == 90f)
|
|
{
|
|
if (Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
float num325 = 6f;
|
|
Vector2 vector33 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num326 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector33.X + (float)Main.rand.Next(-100, 101);
|
|
float num327 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - vector33.Y + (float)Main.rand.Next(-100, 101);
|
|
float num328 = (float)Math.Sqrt((double)(num326 * num326 + num327 * num327));
|
|
num328 = num325 / num328;
|
|
num326 *= num328;
|
|
num327 *= num328;
|
|
int num329 = 15;
|
|
int num330 = 38;
|
|
int num331 = Projectile.NewProjectile(vector33.X, vector33.Y, num326, num327, num330, num329, 0f, Main.myPlayer, 0f, 0f);
|
|
Main.projectile[num331].timeLeft = 300;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] >= (float)(400 + Main.rand.Next(400)))
|
|
{
|
|
this.ai[0] = 0f;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 62 || this.type == 66)
|
|
{
|
|
this.ai[0] += 1f;
|
|
if (this.ai[0] == 20f || this.ai[0] == 40f || this.ai[0] == 60f || this.ai[0] == 80f)
|
|
{
|
|
if (Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
float num332 = 0.2f;
|
|
Vector2 vector34 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num333 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector34.X + (float)Main.rand.Next(-100, 101);
|
|
float num334 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - vector34.Y + (float)Main.rand.Next(-100, 101);
|
|
float num335 = (float)Math.Sqrt((double)(num333 * num333 + num334 * num334));
|
|
num335 = num332 / num335;
|
|
num333 *= num335;
|
|
num334 *= num335;
|
|
int num336 = 21;
|
|
int num337 = 44;
|
|
int num338 = Projectile.NewProjectile(vector34.X, vector34.Y, num333, num334, num337, num336, 0f, Main.myPlayer, 0f, 0f);
|
|
Main.projectile[num338].timeLeft = 300;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] >= (float)(300 + Main.rand.Next(300)))
|
|
{
|
|
this.ai[0] = 0f;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 156)
|
|
{
|
|
this.ai[0] += 1f;
|
|
if (this.ai[0] == 20f || this.ai[0] == 40f || this.ai[0] == 60f || this.ai[0] == 80f || this.ai[0] == 100f)
|
|
{
|
|
if (Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
float num339 = 0.2f;
|
|
Vector2 value = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num340 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - value.X + (float)Main.rand.Next(-50, 51);
|
|
float num341 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - value.Y + (float)Main.rand.Next(-50, 51);
|
|
float num342 = (float)Math.Sqrt((double)(num340 * num340 + num341 * num341));
|
|
num342 = num339 / num342;
|
|
num340 *= num342;
|
|
num341 *= num342;
|
|
int num343 = 80;
|
|
int num344 = 115;
|
|
value += this.velocity * 5f;
|
|
int num345 = Projectile.NewProjectile(value.X + num340 * 100f, value.Y + num341 * 100f, num340, num341, num344, num343, 0f, Main.myPlayer, 0f, 0f);
|
|
Main.projectile[num345].timeLeft = 300;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] >= (float)(250 + Main.rand.Next(250)))
|
|
{
|
|
this.ai[0] = 0f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 15)
|
|
{
|
|
this.aiAction = 0;
|
|
if (this.ai[3] == 0f && this.life > 0)
|
|
{
|
|
this.ai[3] = (float)this.lifeMax;
|
|
}
|
|
if (this.ai[2] == 0f)
|
|
{
|
|
this.ai[0] = -100f;
|
|
this.ai[2] = 1f;
|
|
this.TargetClosest(true);
|
|
}
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.8f;
|
|
if ((double)this.velocity.X > -0.1 && (double)this.velocity.X < 0.1)
|
|
{
|
|
this.velocity.X = 0f;
|
|
}
|
|
this.ai[0] += 2f;
|
|
if ((double)this.life < (double)this.lifeMax * 0.8)
|
|
{
|
|
this.ai[0] += 1f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.6)
|
|
{
|
|
this.ai[0] += 1f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.4)
|
|
{
|
|
this.ai[0] += 2f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.2)
|
|
{
|
|
this.ai[0] += 3f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.1)
|
|
{
|
|
this.ai[0] += 4f;
|
|
}
|
|
if (this.ai[0] >= 0f)
|
|
{
|
|
this.netUpdate = true;
|
|
this.TargetClosest(true);
|
|
if (this.ai[1] == 3f)
|
|
{
|
|
this.velocity.Y = -13f;
|
|
this.velocity.X = this.velocity.X + 3.5f * (float)this.direction;
|
|
this.ai[0] = -200f;
|
|
this.ai[1] = 0f;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] == 2f)
|
|
{
|
|
this.velocity.Y = -6f;
|
|
this.velocity.X = this.velocity.X + 4.5f * (float)this.direction;
|
|
this.ai[0] = -120f;
|
|
this.ai[1] += 1f;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.Y = -8f;
|
|
this.velocity.X = this.velocity.X + 4f * (float)this.direction;
|
|
this.ai[0] = -120f;
|
|
this.ai[1] += 1f;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] >= -30f)
|
|
{
|
|
this.aiAction = 1;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.target < 255 && ((this.direction == 1 && this.velocity.X < 3f) || (this.direction == -1 && this.velocity.X > -3f)))
|
|
{
|
|
if ((this.direction == -1 && (double)this.velocity.X < 0.1) || (this.direction == 1 && (double)this.velocity.X > -0.1))
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.2f * (float)this.direction;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.93f;
|
|
}
|
|
}
|
|
}
|
|
int num346 = Dust.NewDust(this.position, this.width, this.height, 4, this.velocity.X, this.velocity.Y, 255, new Color(0, 80, 255, 80), this.scale * 1.2f);
|
|
Main.dust[num346].noGravity = true;
|
|
Main.dust[num346].velocity *= 0.5f;
|
|
if (this.life > 0)
|
|
{
|
|
float num347 = (float)this.life / (float)this.lifeMax;
|
|
num347 = num347 * 0.5f + 0.75f;
|
|
if (num347 != this.scale)
|
|
{
|
|
this.position.X = this.position.X + (float)(this.width / 2);
|
|
this.position.Y = this.position.Y + (float)this.height;
|
|
this.scale = num347;
|
|
this.width = (int)(98f * this.scale);
|
|
this.height = (int)(92f * this.scale);
|
|
this.position.X = this.position.X - (float)(this.width / 2);
|
|
this.position.Y = this.position.Y - (float)this.height;
|
|
}
|
|
if (Main.netMode != 1)
|
|
{
|
|
int num348 = (int)((double)this.lifeMax * 0.05);
|
|
if ((float)(this.life + num348) < this.ai[3])
|
|
{
|
|
this.ai[3] = (float)this.life;
|
|
int num349 = Main.rand.Next(1, 4);
|
|
for (int num350 = 0; num350 < num349; num350++)
|
|
{
|
|
int x = (int)(this.position.X + (float)Main.rand.Next(this.width - 32));
|
|
int y = (int)(this.position.Y + (float)Main.rand.Next(this.height - 32));
|
|
int num351 = NPC.NewNPC(x, y, 1, 0);
|
|
Main.npc[num351].SetDefaults(1, -1f);
|
|
Main.npc[num351].velocity.X = (float)Main.rand.Next(-15, 16) * 0.1f;
|
|
Main.npc[num351].velocity.Y = (float)Main.rand.Next(-30, 1) * 0.1f;
|
|
Main.npc[num351].ai[1] = (float)Main.rand.Next(3);
|
|
if (Main.netMode == 2 && num351 < 200)
|
|
{
|
|
NetMessage.SendData(23, -1, -1, "", num351, 0f, 0f, 0f, 0);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 16)
|
|
{
|
|
if (this.direction == 0)
|
|
{
|
|
this.TargetClosest(true);
|
|
}
|
|
if (this.wet)
|
|
{
|
|
bool flag29 = false;
|
|
if (this.type != 55)
|
|
{
|
|
this.TargetClosest(false);
|
|
if (Main.player[this.target].wet && !Main.player[this.target].dead)
|
|
{
|
|
flag29 = true;
|
|
}
|
|
}
|
|
if (!flag29)
|
|
{
|
|
if (this.collideX)
|
|
{
|
|
this.velocity.X = this.velocity.X * -1f;
|
|
this.direction *= -1;
|
|
this.netUpdate = true;
|
|
}
|
|
if (this.collideY)
|
|
{
|
|
this.netUpdate = true;
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = Math.Abs(this.velocity.Y) * -1f;
|
|
this.directionY = -1;
|
|
this.ai[0] = -1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = Math.Abs(this.velocity.Y);
|
|
this.directionY = 1;
|
|
this.ai[0] = 1f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 102)
|
|
{
|
|
Lighting.addLight((int)(this.position.X + (float)(this.width / 2) + (float)(this.direction * (this.width + 8))) / 16, (int)(this.position.Y + 2f) / 16, 0.07f, 0.04f, 0.025f);
|
|
}
|
|
if (flag29)
|
|
{
|
|
this.TargetClosest(true);
|
|
if (this.type == 157)
|
|
{
|
|
if (this.velocity.X > 0f && this.direction < 0)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.95f;
|
|
}
|
|
if (this.velocity.X < 0f && this.direction > 0)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.95f;
|
|
}
|
|
this.velocity.X = this.velocity.X + (float)this.direction * 0.25f;
|
|
this.velocity.Y = this.velocity.Y + (float)this.directionY * 0.2f;
|
|
if (this.velocity.X > 8f)
|
|
{
|
|
this.velocity.X = 7f;
|
|
}
|
|
if (this.velocity.X < -8f)
|
|
{
|
|
this.velocity.X = -7f;
|
|
}
|
|
if (this.velocity.Y > 5f)
|
|
{
|
|
this.velocity.Y = 4f;
|
|
}
|
|
if (this.velocity.Y < -5f)
|
|
{
|
|
this.velocity.Y = -4f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 65 || this.type == 102)
|
|
{
|
|
this.velocity.X = this.velocity.X + (float)this.direction * 0.15f;
|
|
this.velocity.Y = this.velocity.Y + (float)this.directionY * 0.15f;
|
|
if (this.velocity.X > 5f)
|
|
{
|
|
this.velocity.X = 5f;
|
|
}
|
|
if (this.velocity.X < -5f)
|
|
{
|
|
this.velocity.X = -5f;
|
|
}
|
|
if (this.velocity.Y > 3f)
|
|
{
|
|
this.velocity.Y = 3f;
|
|
}
|
|
if (this.velocity.Y < -3f)
|
|
{
|
|
this.velocity.Y = -3f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.velocity.X = this.velocity.X + (float)this.direction * 0.1f;
|
|
this.velocity.Y = this.velocity.Y + (float)this.directionY * 0.1f;
|
|
if (this.velocity.X > 3f)
|
|
{
|
|
this.velocity.X = 3f;
|
|
}
|
|
if (this.velocity.X < -3f)
|
|
{
|
|
this.velocity.X = -3f;
|
|
}
|
|
if (this.velocity.Y > 2f)
|
|
{
|
|
this.velocity.Y = 2f;
|
|
}
|
|
if (this.velocity.Y < -2f)
|
|
{
|
|
this.velocity.Y = -2f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 157)
|
|
{
|
|
if (Main.player[this.target].position.Y > this.position.Y)
|
|
{
|
|
this.directionY = 1;
|
|
}
|
|
else
|
|
{
|
|
this.directionY = -1;
|
|
}
|
|
this.velocity.X = this.velocity.X + (float)this.direction * 0.2f;
|
|
if (this.velocity.X < -2f || this.velocity.X > 2f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.95f;
|
|
}
|
|
if (this.ai[0] == -1f)
|
|
{
|
|
float num352 = -0.6f;
|
|
if (this.directionY < 0)
|
|
{
|
|
num352 = -1f;
|
|
}
|
|
if (this.directionY > 0)
|
|
{
|
|
num352 = -0.2f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.02f;
|
|
if (this.velocity.Y < num352)
|
|
{
|
|
this.ai[0] = 1f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
float num353 = 0.6f;
|
|
if (this.directionY < 0)
|
|
{
|
|
num353 = 0.2f;
|
|
}
|
|
if (this.directionY > 0)
|
|
{
|
|
num353 = 1f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y + 0.02f;
|
|
if (this.velocity.Y > num353)
|
|
{
|
|
this.ai[0] = -1f;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.velocity.X = this.velocity.X + (float)this.direction * 0.1f;
|
|
if (this.velocity.X < -1f || this.velocity.X > 1f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.95f;
|
|
}
|
|
if (this.ai[0] == -1f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.01f;
|
|
if ((double)this.velocity.Y < -0.3)
|
|
{
|
|
this.ai[0] = 1f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.01f;
|
|
if ((double)this.velocity.Y > 0.3)
|
|
{
|
|
this.ai[0] = -1f;
|
|
}
|
|
}
|
|
}
|
|
int num354 = (int)(this.position.X + (float)(this.width / 2)) / 16;
|
|
int num355 = (int)(this.position.Y + (float)(this.height / 2)) / 16;
|
|
if (Main.tile[num354, num355 - 1] == null)
|
|
{
|
|
Main.tile[num354, num355 - 1] = new Tile();
|
|
}
|
|
if (Main.tile[num354, num355 + 1] == null)
|
|
{
|
|
Main.tile[num354, num355 + 1] = new Tile();
|
|
}
|
|
if (Main.tile[num354, num355 + 2] == null)
|
|
{
|
|
Main.tile[num354, num355 + 2] = new Tile();
|
|
}
|
|
if (Main.tile[num354, num355 - 1].liquid > 128)
|
|
{
|
|
if (Main.tile[num354, num355 + 1].active())
|
|
{
|
|
this.ai[0] = -1f;
|
|
}
|
|
else
|
|
{
|
|
if (Main.tile[num354, num355 + 2].active())
|
|
{
|
|
this.ai[0] = -1f;
|
|
}
|
|
}
|
|
}
|
|
if (this.type != 157 && ((double)this.velocity.Y > 0.4 || (double)this.velocity.Y < -0.4))
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.95f;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
if (this.type == 65)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.94f;
|
|
if ((double)this.velocity.X > -0.2 && (double)this.velocity.X < 0.2)
|
|
{
|
|
this.velocity.X = 0f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.netMode != 1)
|
|
{
|
|
this.velocity.Y = (float)Main.rand.Next(-50, -20) * 0.1f;
|
|
this.velocity.X = (float)Main.rand.Next(-20, 20) * 0.1f;
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
}
|
|
this.velocity.Y = this.velocity.Y + 0.3f;
|
|
if (this.velocity.Y > 10f)
|
|
{
|
|
this.velocity.Y = 10f;
|
|
}
|
|
this.ai[0] = 1f;
|
|
}
|
|
this.rotation = this.velocity.Y * (float)this.direction * 0.1f;
|
|
if ((double)this.rotation < -0.2)
|
|
{
|
|
this.rotation = -0.2f;
|
|
}
|
|
if ((double)this.rotation > 0.2)
|
|
{
|
|
this.rotation = 0.2f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 17)
|
|
{
|
|
this.noGravity = true;
|
|
if (this.ai[0] == 0f)
|
|
{
|
|
this.noGravity = false;
|
|
this.TargetClosest(true);
|
|
if (Main.netMode != 1)
|
|
{
|
|
if (this.velocity.X != 0f || this.velocity.Y < 0f || (double)this.velocity.Y > 0.3)
|
|
{
|
|
this.ai[0] = 1f;
|
|
this.netUpdate = true;
|
|
}
|
|
else
|
|
{
|
|
Rectangle rectangle5 = new Rectangle((int)Main.player[this.target].position.X, (int)Main.player[this.target].position.Y, Main.player[this.target].width, Main.player[this.target].height);
|
|
Rectangle rectangle6 = new Rectangle((int)this.position.X - 100, (int)this.position.Y - 100, this.width + 200, this.height + 200);
|
|
if (rectangle6.Intersects(rectangle5) || this.life < this.lifeMax)
|
|
{
|
|
this.ai[0] = 1f;
|
|
this.velocity.Y = this.velocity.Y - 6f;
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!Main.player[this.target].dead)
|
|
{
|
|
if (this.collideX)
|
|
{
|
|
this.velocity.X = this.oldVelocity.X * -0.5f;
|
|
if (this.direction == -1 && this.velocity.X > 0f && this.velocity.X < 2f)
|
|
{
|
|
this.velocity.X = 2f;
|
|
}
|
|
if (this.direction == 1 && this.velocity.X < 0f && this.velocity.X > -2f)
|
|
{
|
|
this.velocity.X = -2f;
|
|
}
|
|
}
|
|
if (this.collideY)
|
|
{
|
|
this.velocity.Y = this.oldVelocity.Y * -0.5f;
|
|
if (this.velocity.Y > 0f && this.velocity.Y < 1f)
|
|
{
|
|
this.velocity.Y = 1f;
|
|
}
|
|
if (this.velocity.Y < 0f && this.velocity.Y > -1f)
|
|
{
|
|
this.velocity.Y = -1f;
|
|
}
|
|
}
|
|
this.TargetClosest(true);
|
|
if (this.direction == -1 && this.velocity.X > -3f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
if (this.velocity.X > 3f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.05f;
|
|
}
|
|
}
|
|
if (this.velocity.X < -3f)
|
|
{
|
|
this.velocity.X = -3f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.direction == 1 && this.velocity.X < 3f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
if (this.velocity.X < -3f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.05f;
|
|
}
|
|
}
|
|
if (this.velocity.X > 3f)
|
|
{
|
|
this.velocity.X = 3f;
|
|
}
|
|
}
|
|
}
|
|
float num356 = Math.Abs(this.position.X + (float)(this.width / 2) - (Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2)));
|
|
float num357 = Main.player[this.target].position.Y - (float)(this.height / 2);
|
|
if (num356 > 50f)
|
|
{
|
|
num357 -= 100f;
|
|
}
|
|
if (this.position.Y < num357)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.05f;
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.01f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.05f;
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.01f;
|
|
}
|
|
}
|
|
if (this.velocity.Y < -3f)
|
|
{
|
|
this.velocity.Y = -3f;
|
|
}
|
|
if (this.velocity.Y > 3f)
|
|
{
|
|
this.velocity.Y = 3f;
|
|
}
|
|
}
|
|
}
|
|
if (this.wet)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.95f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.5f;
|
|
if (this.velocity.Y < -4f)
|
|
{
|
|
this.velocity.Y = -4f;
|
|
}
|
|
this.TargetClosest(true);
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 18)
|
|
{
|
|
if (this.type == 63)
|
|
{
|
|
Lighting.addLight((int)(this.position.X + (float)(this.height / 2)) / 16, (int)(this.position.Y + (float)(this.height / 2)) / 16, 0.05f, 0.15f, 0.4f);
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 103)
|
|
{
|
|
Lighting.addLight((int)(this.position.X + (float)(this.height / 2)) / 16, (int)(this.position.Y + (float)(this.height / 2)) / 16, 0.05f, 0.45f, 0.1f);
|
|
}
|
|
else
|
|
{
|
|
if (this.type != 221 && this.type != 242)
|
|
{
|
|
Lighting.addLight((int)(this.position.X + (float)(this.height / 2)) / 16, (int)(this.position.Y + (float)(this.height / 2)) / 16, 0.35f, 0.05f, 0.2f);
|
|
}
|
|
}
|
|
}
|
|
if (this.direction == 0)
|
|
{
|
|
this.TargetClosest(true);
|
|
}
|
|
if (!this.wet)
|
|
{
|
|
this.rotation += this.velocity.X * 0.1f;
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.98f;
|
|
if ((double)this.velocity.X > -0.01 && (double)this.velocity.X < 0.01)
|
|
{
|
|
this.velocity.X = 0f;
|
|
}
|
|
}
|
|
this.velocity.Y = this.velocity.Y + 0.2f;
|
|
if (this.velocity.Y > 10f)
|
|
{
|
|
this.velocity.Y = 10f;
|
|
}
|
|
this.ai[0] = 1f;
|
|
return;
|
|
}
|
|
if (this.collideX)
|
|
{
|
|
this.velocity.X = this.velocity.X * -1f;
|
|
this.direction *= -1;
|
|
}
|
|
if (this.collideY)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = Math.Abs(this.velocity.Y) * -1f;
|
|
this.directionY = -1;
|
|
this.ai[0] = -1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = Math.Abs(this.velocity.Y);
|
|
this.directionY = 1;
|
|
this.ai[0] = 1f;
|
|
}
|
|
}
|
|
}
|
|
bool flag30 = false;
|
|
if (!this.friendly)
|
|
{
|
|
this.TargetClosest(false);
|
|
if (Main.player[this.target].wet && !Main.player[this.target].dead)
|
|
{
|
|
flag30 = true;
|
|
}
|
|
}
|
|
if (flag30)
|
|
{
|
|
this.localAI[2] = 1f;
|
|
this.rotation = (float)Math.Atan2((double)this.velocity.Y, (double)this.velocity.X) + 1.57f;
|
|
this.velocity *= 0.98f;
|
|
float num358 = 0.2f;
|
|
if (this.type == 103)
|
|
{
|
|
this.velocity *= 0.98f;
|
|
num358 = 0.6f;
|
|
}
|
|
if (this.type == 221)
|
|
{
|
|
this.velocity *= 0.99f;
|
|
num358 = 1f;
|
|
}
|
|
if (this.type == 242)
|
|
{
|
|
this.velocity *= 0.995f;
|
|
num358 = 3f;
|
|
}
|
|
if (this.velocity.X > -num358 && this.velocity.X < num358 && this.velocity.Y > -num358 && this.velocity.Y < num358)
|
|
{
|
|
if (this.type == 221)
|
|
{
|
|
this.localAI[0] = 1f;
|
|
}
|
|
this.TargetClosest(true);
|
|
float num359 = 7f;
|
|
if (this.type == 103)
|
|
{
|
|
num359 = 9f;
|
|
}
|
|
Vector2 vector35 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num360 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector35.X;
|
|
float num361 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector35.Y;
|
|
float num362 = (float)Math.Sqrt((double)(num360 * num360 + num361 * num361));
|
|
num362 = num359 / num362;
|
|
num360 *= num362;
|
|
num361 *= num362;
|
|
this.velocity.X = num360;
|
|
this.velocity.Y = num361;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.localAI[2] = 0f;
|
|
this.velocity.X = this.velocity.X + (float)this.direction * 0.02f;
|
|
this.rotation = this.velocity.X * 0.4f;
|
|
if (this.velocity.X < -1f || this.velocity.X > 1f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.95f;
|
|
}
|
|
if (this.ai[0] == -1f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.01f;
|
|
if (this.velocity.Y < -1f)
|
|
{
|
|
this.ai[0] = 1f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.01f;
|
|
if (this.velocity.Y > 1f)
|
|
{
|
|
this.ai[0] = -1f;
|
|
}
|
|
}
|
|
int num363 = (int)(this.position.X + (float)(this.width / 2)) / 16;
|
|
int num364 = (int)(this.position.Y + (float)(this.height / 2)) / 16;
|
|
if (Main.tile[num363, num364 - 1] == null)
|
|
{
|
|
Main.tile[num363, num364 - 1] = new Tile();
|
|
}
|
|
if (Main.tile[num363, num364 + 1] == null)
|
|
{
|
|
Main.tile[num363, num364 + 1] = new Tile();
|
|
}
|
|
if (Main.tile[num363, num364 + 2] == null)
|
|
{
|
|
Main.tile[num363, num364 + 2] = new Tile();
|
|
}
|
|
if (Main.tile[num363, num364 - 1].liquid > 128)
|
|
{
|
|
if (Main.tile[num363, num364 + 1].active())
|
|
{
|
|
this.ai[0] = -1f;
|
|
}
|
|
else
|
|
{
|
|
if (Main.tile[num363, num364 + 2].active())
|
|
{
|
|
this.ai[0] = -1f;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.ai[0] = 1f;
|
|
}
|
|
if ((double)this.velocity.Y > 1.2 || (double)this.velocity.Y < -1.2)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.99f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 19)
|
|
{
|
|
this.TargetClosest(true);
|
|
float num365 = 12f;
|
|
Vector2 vector36 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num366 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector36.X;
|
|
float num367 = Main.player[this.target].position.Y - vector36.Y;
|
|
float num368 = (float)Math.Sqrt((double)(num366 * num366 + num367 * num367));
|
|
num368 = num365 / num368;
|
|
num366 *= num368;
|
|
num367 *= num368;
|
|
bool flag31 = false;
|
|
if (this.directionY < 0)
|
|
{
|
|
this.rotation = (float)(Math.Atan2((double)num367, (double)num366) + 1.57);
|
|
flag31 = ((double)this.rotation >= -1.2 && (double)this.rotation <= 1.2);
|
|
if ((double)this.rotation < -0.8)
|
|
{
|
|
this.rotation = -0.8f;
|
|
}
|
|
else
|
|
{
|
|
if ((double)this.rotation > 0.8)
|
|
{
|
|
this.rotation = 0.8f;
|
|
}
|
|
}
|
|
if (this.velocity.X != 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.9f;
|
|
if ((double)this.velocity.X > -0.1 || (double)this.velocity.X < 0.1)
|
|
{
|
|
this.netUpdate = true;
|
|
this.velocity.X = 0f;
|
|
}
|
|
}
|
|
}
|
|
if (this.ai[0] > 0f)
|
|
{
|
|
if (this.ai[0] == 200f)
|
|
{
|
|
Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 5);
|
|
}
|
|
this.ai[0] -= 1f;
|
|
}
|
|
if (Main.netMode != 1 && flag31 && this.ai[0] == 0f && Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
this.ai[0] = 200f;
|
|
int num369 = 10;
|
|
int num370 = 31;
|
|
int num371 = Projectile.NewProjectile(vector36.X, vector36.Y, num366, num367, num370, num369, 0f, Main.myPlayer, 0f, 0f);
|
|
Main.projectile[num371].ai[0] = 2f;
|
|
Main.projectile[num371].timeLeft = 300;
|
|
Main.projectile[num371].friendly = false;
|
|
NetMessage.SendData(27, -1, -1, "", num371, 0f, 0f, 0f, 0);
|
|
this.netUpdate = true;
|
|
}
|
|
try
|
|
{
|
|
int num372 = (int)this.position.X / 16;
|
|
int num373 = (int)(this.position.X + (float)(this.width / 2)) / 16;
|
|
int num374 = (int)(this.position.X + (float)this.width) / 16;
|
|
int num375 = (int)(this.position.Y + (float)this.height) / 16;
|
|
bool flag32 = false;
|
|
if (Main.tile[num372, num375] == null)
|
|
{
|
|
Main.tile[num372, num375] = new Tile();
|
|
}
|
|
if (Main.tile[num373, num375] == null)
|
|
{
|
|
Main.tile[num372, num375] = new Tile();
|
|
}
|
|
if (Main.tile[num374, num375] == null)
|
|
{
|
|
Main.tile[num372, num375] = new Tile();
|
|
}
|
|
if ((Main.tile[num372, num375].nactive() && Main.tileSolid[(int)Main.tile[num372, num375].type]) || (Main.tile[num373, num375].nactive() && Main.tileSolid[(int)Main.tile[num373, num375].type]) || (Main.tile[num374, num375].nactive() && Main.tileSolid[(int)Main.tile[num374, num375].type]))
|
|
{
|
|
flag32 = true;
|
|
}
|
|
if (flag32)
|
|
{
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
this.velocity.Y = -0.2f;
|
|
}
|
|
else
|
|
{
|
|
this.noGravity = false;
|
|
this.noTileCollide = false;
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
int num376 = Dust.NewDust(new Vector2(this.position.X - 4f, this.position.Y + (float)this.height - 8f), this.width + 8, 24, 32, 0f, this.velocity.Y / 2f, 0, default(Color), 1f);
|
|
Dust expr_17B8A_cp_0 = Main.dust[num376];
|
|
expr_17B8A_cp_0.velocity.X = expr_17B8A_cp_0.velocity.X * 0.4f;
|
|
Dust expr_17BAA_cp_0 = Main.dust[num376];
|
|
expr_17BAA_cp_0.velocity.Y = expr_17BAA_cp_0.velocity.Y * -1f;
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
Main.dust[num376].noGravity = true;
|
|
Main.dust[num376].scale += 0.2f;
|
|
}
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
catch
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
if (this.aiStyle == 20)
|
|
{
|
|
if (this.ai[0] == 0f)
|
|
{
|
|
if (Main.netMode != 1)
|
|
{
|
|
this.TargetClosest(true);
|
|
this.direction *= -1;
|
|
this.directionY *= -1;
|
|
this.position.Y = this.position.Y + (float)(this.height / 2 + 8);
|
|
this.ai[1] = this.position.X + (float)(this.width / 2);
|
|
this.ai[2] = this.position.Y + (float)(this.height / 2);
|
|
if (this.direction == 0)
|
|
{
|
|
this.direction = 1;
|
|
}
|
|
if (this.directionY == 0)
|
|
{
|
|
this.directionY = 1;
|
|
}
|
|
this.ai[3] = 1f + (float)Main.rand.Next(15) * 0.1f;
|
|
this.velocity.Y = (float)(this.directionY * 6) * this.ai[3];
|
|
this.ai[0] += 1f;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
this.ai[1] = this.position.X + (float)(this.width / 2);
|
|
this.ai[2] = this.position.Y + (float)(this.height / 2);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
float num377 = 6f * this.ai[3];
|
|
float num378 = 0.2f * this.ai[3];
|
|
float num379 = num377 / num378 / 2f;
|
|
if (this.ai[0] >= 1f && this.ai[0] < (float)((int)num379))
|
|
{
|
|
this.velocity.Y = (float)this.directionY * num377;
|
|
this.ai[0] += 1f;
|
|
return;
|
|
}
|
|
if (this.ai[0] >= (float)((int)num379))
|
|
{
|
|
this.velocity.Y = 0f;
|
|
this.directionY *= -1;
|
|
this.velocity.X = num377 * (float)this.direction;
|
|
this.ai[0] = -1f;
|
|
return;
|
|
}
|
|
if (this.directionY > 0)
|
|
{
|
|
if (this.velocity.Y >= num377)
|
|
{
|
|
this.directionY *= -1;
|
|
this.velocity.Y = num377;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.directionY < 0 && this.velocity.Y <= -num377)
|
|
{
|
|
this.directionY *= -1;
|
|
this.velocity.Y = -num377;
|
|
}
|
|
}
|
|
if (this.direction > 0)
|
|
{
|
|
if (this.velocity.X >= num377)
|
|
{
|
|
this.direction *= -1;
|
|
this.velocity.X = num377;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.direction < 0 && this.velocity.X <= -num377)
|
|
{
|
|
this.direction *= -1;
|
|
this.velocity.X = -num377;
|
|
}
|
|
}
|
|
this.velocity.X = this.velocity.X + num378 * (float)this.direction;
|
|
this.velocity.Y = this.velocity.Y + num378 * (float)this.directionY;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 21)
|
|
{
|
|
if (this.ai[0] == 0f)
|
|
{
|
|
this.TargetClosest(true);
|
|
this.directionY = 1;
|
|
this.ai[0] = 1f;
|
|
}
|
|
int num380 = 6;
|
|
if (this.ai[1] == 0f)
|
|
{
|
|
this.rotation += (float)(this.direction * this.directionY) * 0.13f;
|
|
if (this.collideY)
|
|
{
|
|
this.ai[0] = 2f;
|
|
}
|
|
if (!this.collideY && this.ai[0] == 2f)
|
|
{
|
|
this.direction = -this.direction;
|
|
this.ai[1] = 1f;
|
|
this.ai[0] = 1f;
|
|
}
|
|
if (this.collideX)
|
|
{
|
|
this.directionY = -this.directionY;
|
|
this.ai[1] = 1f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.rotation -= (float)(this.direction * this.directionY) * 0.13f;
|
|
if (this.collideX)
|
|
{
|
|
this.ai[0] = 2f;
|
|
}
|
|
if (!this.collideX && this.ai[0] == 2f)
|
|
{
|
|
this.directionY = -this.directionY;
|
|
this.ai[1] = 0f;
|
|
this.ai[0] = 1f;
|
|
}
|
|
if (this.collideY)
|
|
{
|
|
this.direction = -this.direction;
|
|
this.ai[1] = 0f;
|
|
}
|
|
}
|
|
this.velocity.X = (float)(num380 * this.direction);
|
|
this.velocity.Y = (float)(num380 * this.directionY);
|
|
float num381 = (float)(270 - (int)Main.mouseTextColor) / 400f;
|
|
Lighting.addLight((int)(this.position.X + (float)(this.width / 2)) / 16, (int)(this.position.Y + (float)(this.height / 2)) / 16, 0.9f, 0.3f + num381, 0.2f);
|
|
return;
|
|
}
|
|
if (this.aiStyle == 22)
|
|
{
|
|
bool flag33 = false;
|
|
if (this.justHit)
|
|
{
|
|
this.ai[2] = 0f;
|
|
}
|
|
if (this.ai[2] >= 0f)
|
|
{
|
|
int num382 = 16;
|
|
bool flag34 = false;
|
|
bool flag35 = false;
|
|
if (this.position.X > this.ai[0] - (float)num382 && this.position.X < this.ai[0] + (float)num382)
|
|
{
|
|
flag34 = true;
|
|
}
|
|
else
|
|
{
|
|
if ((this.velocity.X < 0f && this.direction > 0) || (this.velocity.X > 0f && this.direction < 0))
|
|
{
|
|
flag34 = true;
|
|
}
|
|
}
|
|
num382 += 24;
|
|
if (this.position.Y > this.ai[1] - (float)num382 && this.position.Y < this.ai[1] + (float)num382)
|
|
{
|
|
flag35 = true;
|
|
}
|
|
if (flag34 && flag35)
|
|
{
|
|
this.ai[2] += 1f;
|
|
if (this.ai[2] >= 30f && num382 == 16)
|
|
{
|
|
flag33 = true;
|
|
}
|
|
if (this.ai[2] >= 60f)
|
|
{
|
|
this.ai[2] = -200f;
|
|
this.direction *= -1;
|
|
this.velocity.X = this.velocity.X * -1f;
|
|
this.collideX = false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.ai[0] = this.position.X;
|
|
this.ai[1] = this.position.Y;
|
|
this.ai[2] = 0f;
|
|
}
|
|
this.TargetClosest(true);
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 253)
|
|
{
|
|
this.TargetClosest(true);
|
|
this.ai[2] += 2f;
|
|
}
|
|
else
|
|
{
|
|
this.ai[2] += 1f;
|
|
if (Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) > this.position.X + (float)(this.width / 2))
|
|
{
|
|
this.direction = -1;
|
|
}
|
|
else
|
|
{
|
|
this.direction = 1;
|
|
}
|
|
}
|
|
}
|
|
int num383 = (int)((this.position.X + (float)(this.width / 2)) / 16f) + this.direction * 2;
|
|
int num384 = (int)((this.position.Y + (float)this.height) / 16f);
|
|
bool flag36 = true;
|
|
bool flag37 = false;
|
|
int num385 = 3;
|
|
if (this.type == 122)
|
|
{
|
|
if (this.justHit)
|
|
{
|
|
this.ai[3] = 0f;
|
|
this.localAI[1] = 0f;
|
|
}
|
|
float num386 = 7f;
|
|
Vector2 vector37 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num387 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector37.X;
|
|
float num388 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector37.Y;
|
|
float num389 = (float)Math.Sqrt((double)(num387 * num387 + num388 * num388));
|
|
num389 = num386 / num389;
|
|
num387 *= num389;
|
|
num388 *= num389;
|
|
if (Main.netMode != 1 && this.ai[3] == 32f)
|
|
{
|
|
int num390 = 25;
|
|
int num391 = 84;
|
|
Projectile.NewProjectile(vector37.X, vector37.Y, num387, num388, num391, num390, 0f, Main.myPlayer, 0f, 0f);
|
|
}
|
|
num385 = 8;
|
|
if (this.ai[3] > 0f)
|
|
{
|
|
this.ai[3] += 1f;
|
|
if (this.ai[3] >= 64f)
|
|
{
|
|
this.ai[3] = 0f;
|
|
}
|
|
}
|
|
if (Main.netMode != 1 && this.ai[3] == 0f)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
if (this.localAI[1] > 120f && Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
this.localAI[1] = 0f;
|
|
this.ai[3] = 1f;
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 75)
|
|
{
|
|
num385 = 4;
|
|
if (Main.rand.Next(6) == 0)
|
|
{
|
|
int num392 = Dust.NewDust(this.position, this.width, this.height, 55, 0f, 0f, 200, this.color, 1f);
|
|
Main.dust[num392].velocity *= 0.3f;
|
|
}
|
|
if (Main.rand.Next(40) == 0)
|
|
{
|
|
Main.PlaySound(27, (int)this.position.X, (int)this.position.Y, 1);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 169)
|
|
{
|
|
Lighting.addLight((int)((this.position.X + (float)(this.width / 2)) / 16f), (int)((this.position.Y + (float)(this.height / 2)) / 16f), 0f, 0.6f, 0.75f);
|
|
this.alpha = 30;
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
int num393 = Dust.NewDust(this.position, this.width, this.height, 92, 0f, 0f, 200, default(Color), 1f);
|
|
Main.dust[num393].velocity *= 0.3f;
|
|
Main.dust[num393].noGravity = true;
|
|
}
|
|
if (this.justHit)
|
|
{
|
|
this.ai[3] = 0f;
|
|
this.localAI[1] = 0f;
|
|
}
|
|
float num394 = 5f;
|
|
Vector2 vector38 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num395 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector38.X;
|
|
float num396 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector38.Y;
|
|
float num397 = (float)Math.Sqrt((double)(num395 * num395 + num396 * num396));
|
|
num397 = num394 / num397;
|
|
num395 *= num397;
|
|
num396 *= num397;
|
|
if (num395 > 0f)
|
|
{
|
|
this.direction = 1;
|
|
}
|
|
else
|
|
{
|
|
this.direction = -1;
|
|
}
|
|
this.spriteDirection = this.direction;
|
|
if (this.direction < 0)
|
|
{
|
|
this.rotation = (float)Math.Atan2((double)(-(double)num396), (double)(-(double)num395));
|
|
}
|
|
else
|
|
{
|
|
this.rotation = (float)Math.Atan2((double)num396, (double)num395);
|
|
}
|
|
if (Main.netMode != 1 && this.ai[3] == 16f)
|
|
{
|
|
int num398 = 45;
|
|
int num399 = 128;
|
|
Projectile.NewProjectile(vector38.X, vector38.Y, num395, num396, num399, num398, 0f, Main.myPlayer, 0f, 0f);
|
|
}
|
|
num385 = 10;
|
|
if (this.ai[3] > 0f)
|
|
{
|
|
this.ai[3] += 1f;
|
|
if (this.ai[3] >= 64f)
|
|
{
|
|
this.ai[3] = 0f;
|
|
}
|
|
}
|
|
if (Main.netMode != 1 && this.ai[3] == 0f)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
if (this.localAI[1] > 120f && Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
this.localAI[1] = 0f;
|
|
this.ai[3] = 1f;
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 268)
|
|
{
|
|
this.rotation = this.velocity.X * 0.1f;
|
|
if (Main.player[this.target].center().Y < this.center().Y)
|
|
{
|
|
num385 = 12;
|
|
}
|
|
else
|
|
{
|
|
num385 = 6;
|
|
}
|
|
if (Main.netMode != 1 && !this.confused)
|
|
{
|
|
this.ai[3] += 1f;
|
|
if (this.justHit)
|
|
{
|
|
this.ai[3] = -45f;
|
|
this.localAI[1] = 0f;
|
|
}
|
|
if (Main.netMode != 1 && this.ai[3] >= (float)(60 + Main.rand.Next(60)))
|
|
{
|
|
this.ai[3] = 0f;
|
|
if (Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].head))
|
|
{
|
|
float num400 = 10f;
|
|
Vector2 vector39 = new Vector2(this.position.X + (float)this.width * 0.5f - 4f, this.position.Y + (float)this.height * 0.7f);
|
|
float num401 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector39.X;
|
|
float num402 = Math.Abs(num401) * 0.1f;
|
|
float num403 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector39.Y - num402;
|
|
num401 += (float)Main.rand.Next(-10, 11);
|
|
num403 += (float)Main.rand.Next(-30, 21);
|
|
float num404 = (float)Math.Sqrt((double)(num401 * num401 + num403 * num403));
|
|
num404 = num400 / num404;
|
|
num401 *= num404;
|
|
num403 *= num404;
|
|
int num405 = 40;
|
|
int num406 = 288;
|
|
Projectile.NewProjectile(vector39.X, vector39.Y, num401, num403, num406, num405, 0f, Main.myPlayer, 0f, 0f);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
for (int num407 = num384; num407 < num384 + num385; num407++)
|
|
{
|
|
if (Main.tile[num383, num407] == null)
|
|
{
|
|
Main.tile[num383, num407] = new Tile();
|
|
}
|
|
if ((Main.tile[num383, num407].nactive() && Main.tileSolid[(int)Main.tile[num383, num407].type]) || Main.tile[num383, num407].liquid > 0)
|
|
{
|
|
if (num407 <= num384 + 1)
|
|
{
|
|
flag37 = true;
|
|
}
|
|
flag36 = false;
|
|
break;
|
|
}
|
|
}
|
|
if (this.type == 169 || this.type == 268)
|
|
{
|
|
for (int num408 = num384 - 3; num408 < num384; num408++)
|
|
{
|
|
if (Main.tile[num383, num408] == null)
|
|
{
|
|
Main.tile[num383, num408] = new Tile();
|
|
}
|
|
if ((Main.tile[num383, num408].nactive() && Main.tileSolid[(int)Main.tile[num383, num408].type]) || Main.tile[num383, num408].liquid > 0)
|
|
{
|
|
flag37 = false;
|
|
flag33 = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if (flag33)
|
|
{
|
|
flag37 = false;
|
|
flag36 = true;
|
|
if (this.type == 268)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 2f;
|
|
}
|
|
}
|
|
if (flag36)
|
|
{
|
|
if (this.type == 75 || this.type == 169)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.2f;
|
|
if (this.velocity.Y > 2f)
|
|
{
|
|
this.velocity.Y = 2f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.1f;
|
|
if (this.velocity.Y > 3f)
|
|
{
|
|
this.velocity.Y = 3f;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 75 || this.type == 169)
|
|
{
|
|
if ((this.directionY < 0 && this.velocity.Y > 0f) || flag37)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.2f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.directionY < 0 && this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.1f;
|
|
}
|
|
}
|
|
if (this.velocity.Y < -4f)
|
|
{
|
|
this.velocity.Y = -4f;
|
|
}
|
|
}
|
|
if (this.type == 75 && this.wet)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.2f;
|
|
if (this.velocity.Y < -2f)
|
|
{
|
|
this.velocity.Y = -2f;
|
|
}
|
|
}
|
|
if (this.collideX)
|
|
{
|
|
this.velocity.X = this.oldVelocity.X * -0.4f;
|
|
if (this.direction == -1 && this.velocity.X > 0f && this.velocity.X < 1f)
|
|
{
|
|
this.velocity.X = 1f;
|
|
}
|
|
if (this.direction == 1 && this.velocity.X < 0f && this.velocity.X > -1f)
|
|
{
|
|
this.velocity.X = -1f;
|
|
}
|
|
}
|
|
if (this.collideY)
|
|
{
|
|
this.velocity.Y = this.oldVelocity.Y * -0.25f;
|
|
if (this.velocity.Y > 0f && this.velocity.Y < 1f)
|
|
{
|
|
this.velocity.Y = 1f;
|
|
}
|
|
if (this.velocity.Y < 0f && this.velocity.Y > -1f)
|
|
{
|
|
this.velocity.Y = -1f;
|
|
}
|
|
}
|
|
float num409 = 2f;
|
|
if (this.type == 75)
|
|
{
|
|
num409 = 3f;
|
|
}
|
|
if (this.type == 253)
|
|
{
|
|
num409 = 4f;
|
|
}
|
|
if (this.direction == -1 && this.velocity.X > -num409)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
if (this.velocity.X > num409)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.05f;
|
|
}
|
|
}
|
|
if (this.velocity.X < -num409)
|
|
{
|
|
this.velocity.X = -num409;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.direction == 1 && this.velocity.X < num409)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
if (this.velocity.X < -num409)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.05f;
|
|
}
|
|
}
|
|
if (this.velocity.X > num409)
|
|
{
|
|
this.velocity.X = num409;
|
|
}
|
|
}
|
|
}
|
|
if (this.directionY == -1 && (double)this.velocity.Y > -1.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.04f;
|
|
if ((double)this.velocity.Y > 1.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.05f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.03f;
|
|
}
|
|
}
|
|
if ((double)this.velocity.Y < -1.5)
|
|
{
|
|
this.velocity.Y = -1.5f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.directionY == 1 && (double)this.velocity.Y < 1.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.04f;
|
|
if ((double)this.velocity.Y < -1.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.05f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.03f;
|
|
}
|
|
}
|
|
if ((double)this.velocity.Y > 1.5)
|
|
{
|
|
this.velocity.Y = 1.5f;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 122)
|
|
{
|
|
Lighting.addLight((int)this.position.X / 16, (int)this.position.Y / 16, 0.4f, 0f, 0.25f);
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 23)
|
|
{
|
|
this.noGravity = true;
|
|
this.noTileCollide = true;
|
|
if (this.type == 83)
|
|
{
|
|
Lighting.addLight((int)((this.position.X + (float)(this.width / 2)) / 16f), (int)((this.position.Y + (float)(this.height / 2)) / 16f), 0.2f, 0.05f, 0.3f);
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 179)
|
|
{
|
|
Lighting.addLight((int)((this.position.X + (float)(this.width / 2)) / 16f), (int)((this.position.Y + (float)(this.height / 2)) / 16f), 0.3f, 0.15f, 0.05f);
|
|
}
|
|
else
|
|
{
|
|
Lighting.addLight((int)((this.position.X + (float)(this.width / 2)) / 16f), (int)((this.position.Y + (float)(this.height / 2)) / 16f), 0.05f, 0.2f, 0.3f);
|
|
}
|
|
}
|
|
if (this.target < 0 || this.target == 255 || Main.player[this.target].dead)
|
|
{
|
|
this.TargetClosest(true);
|
|
}
|
|
if (this.ai[0] == 0f)
|
|
{
|
|
float num410 = 9f;
|
|
Vector2 vector40 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num411 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector40.X;
|
|
float num412 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector40.Y;
|
|
float num413 = (float)Math.Sqrt((double)(num411 * num411 + num412 * num412));
|
|
num413 = num410 / num413;
|
|
num411 *= num413;
|
|
num412 *= num413;
|
|
this.velocity.X = num411;
|
|
this.velocity.Y = num412;
|
|
this.rotation = (float)Math.Atan2((double)this.velocity.Y, (double)this.velocity.X) + 0.785f;
|
|
this.ai[0] = 1f;
|
|
this.ai[1] = 0f;
|
|
return;
|
|
}
|
|
if (this.ai[0] == 1f)
|
|
{
|
|
if (this.justHit)
|
|
{
|
|
this.ai[0] = 2f;
|
|
this.ai[1] = 0f;
|
|
}
|
|
this.velocity *= 0.99f;
|
|
this.ai[1] += 1f;
|
|
if (this.ai[1] >= 100f)
|
|
{
|
|
this.ai[0] = 2f;
|
|
this.ai[1] = 0f;
|
|
this.velocity.X = 0f;
|
|
this.velocity.Y = 0f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.justHit)
|
|
{
|
|
this.ai[0] = 2f;
|
|
this.ai[1] = 0f;
|
|
}
|
|
this.velocity *= 0.96f;
|
|
this.ai[1] += 1f;
|
|
float num414 = this.ai[1] / 120f;
|
|
num414 = 0.1f + num414 * 0.4f;
|
|
this.rotation += num414 * (float)this.direction;
|
|
if (this.ai[1] >= 120f)
|
|
{
|
|
this.netUpdate = true;
|
|
this.ai[0] = 0f;
|
|
this.ai[1] = 0f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 24)
|
|
{
|
|
this.noGravity = true;
|
|
if (this.ai[0] == 0f)
|
|
{
|
|
this.noGravity = false;
|
|
this.TargetClosest(true);
|
|
if (Main.netMode != 1)
|
|
{
|
|
if (this.velocity.X != 0f || this.velocity.Y < 0f || (double)this.velocity.Y > 0.3)
|
|
{
|
|
this.ai[0] = 1f;
|
|
this.netUpdate = true;
|
|
this.direction = -this.direction;
|
|
}
|
|
else
|
|
{
|
|
Rectangle rectangle7 = new Rectangle((int)Main.player[this.target].position.X, (int)Main.player[this.target].position.Y, Main.player[this.target].width, Main.player[this.target].height);
|
|
Rectangle rectangle8 = new Rectangle((int)this.position.X - 100, (int)this.position.Y - 100, this.width + 200, this.height + 200);
|
|
if (rectangle8.Intersects(rectangle7) || this.life < this.lifeMax)
|
|
{
|
|
this.ai[0] = 1f;
|
|
this.velocity.Y = this.velocity.Y - 6f;
|
|
this.netUpdate = true;
|
|
this.direction = -this.direction;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!Main.player[this.target].dead)
|
|
{
|
|
if (this.collideX)
|
|
{
|
|
this.direction *= -1;
|
|
this.velocity.X = this.oldVelocity.X * -0.5f;
|
|
if (this.direction == -1 && this.velocity.X > 0f && this.velocity.X < 2f)
|
|
{
|
|
this.velocity.X = 2f;
|
|
}
|
|
if (this.direction == 1 && this.velocity.X < 0f && this.velocity.X > -2f)
|
|
{
|
|
this.velocity.X = -2f;
|
|
}
|
|
}
|
|
if (this.collideY)
|
|
{
|
|
this.velocity.Y = this.oldVelocity.Y * -0.5f;
|
|
if (this.velocity.Y > 0f && this.velocity.Y < 1f)
|
|
{
|
|
this.velocity.Y = 1f;
|
|
}
|
|
if (this.velocity.Y < 0f && this.velocity.Y > -1f)
|
|
{
|
|
this.velocity.Y = -1f;
|
|
}
|
|
}
|
|
if (this.direction == -1 && this.velocity.X > -3f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
if (this.velocity.X > 3f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.05f;
|
|
}
|
|
}
|
|
if (this.velocity.X < -3f)
|
|
{
|
|
this.velocity.X = -3f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.direction == 1 && this.velocity.X < 3f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
if (this.velocity.X < -3f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.05f;
|
|
}
|
|
}
|
|
if (this.velocity.X > 3f)
|
|
{
|
|
this.velocity.X = 3f;
|
|
}
|
|
}
|
|
}
|
|
int num415 = (int)((this.position.X + (float)(this.width / 2)) / 16f) + this.direction;
|
|
int num416 = (int)((this.position.Y + (float)this.height) / 16f);
|
|
bool flag38 = true;
|
|
int num417 = 15;
|
|
bool flag39 = false;
|
|
for (int num418 = num416; num418 < num416 + num417; num418++)
|
|
{
|
|
if (Main.tile[num415, num418] == null)
|
|
{
|
|
Main.tile[num415, num418] = new Tile();
|
|
}
|
|
if ((Main.tile[num415, num418].nactive() && Main.tileSolid[(int)Main.tile[num415, num418].type]) || Main.tile[num415, num418].liquid > 0)
|
|
{
|
|
if (num418 < num416 + 5)
|
|
{
|
|
flag39 = true;
|
|
}
|
|
flag38 = false;
|
|
break;
|
|
}
|
|
}
|
|
if (flag38)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.1f;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.1f;
|
|
}
|
|
if (flag39)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.2f;
|
|
}
|
|
if (this.velocity.Y > 3f)
|
|
{
|
|
this.velocity.Y = 3f;
|
|
}
|
|
if (this.velocity.Y < -4f)
|
|
{
|
|
this.velocity.Y = -4f;
|
|
}
|
|
}
|
|
}
|
|
if (this.wet)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.95f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.5f;
|
|
if (this.velocity.Y < -4f)
|
|
{
|
|
this.velocity.Y = -4f;
|
|
}
|
|
this.TargetClosest(true);
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 25)
|
|
{
|
|
if (this.ai[3] == 0f)
|
|
{
|
|
this.position.X = this.position.X + 8f;
|
|
if (this.position.Y / 16f > (float)(Main.maxTilesY - 200))
|
|
{
|
|
this.ai[3] = 3f;
|
|
}
|
|
else
|
|
{
|
|
if ((double)(this.position.Y / 16f) > Main.worldSurface)
|
|
{
|
|
this.TargetClosest(true);
|
|
if (Main.player[this.target].zoneSnow)
|
|
{
|
|
this.ai[3] = 4f;
|
|
}
|
|
else
|
|
{
|
|
this.ai[3] = 2f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.ai[3] = 1f;
|
|
}
|
|
}
|
|
}
|
|
if (this.ai[0] == 0f)
|
|
{
|
|
this.TargetClosest(true);
|
|
if (Main.netMode != 1)
|
|
{
|
|
if (this.velocity.X != 0f || this.velocity.Y < 0f || (double)this.velocity.Y > 0.3)
|
|
{
|
|
this.ai[0] = 1f;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
Rectangle rectangle9 = new Rectangle((int)Main.player[this.target].position.X, (int)Main.player[this.target].position.Y, Main.player[this.target].width, Main.player[this.target].height);
|
|
Rectangle rectangle10 = new Rectangle((int)this.position.X - 100, (int)this.position.Y - 100, this.width + 200, this.height + 200);
|
|
if (rectangle10.Intersects(rectangle9) || this.life < this.lifeMax)
|
|
{
|
|
this.ai[0] = 1f;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.ai[2] += 1f;
|
|
int num419 = 20;
|
|
if (this.ai[1] == 0f)
|
|
{
|
|
num419 = 12;
|
|
}
|
|
if (this.ai[2] < (float)num419)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.9f;
|
|
return;
|
|
}
|
|
this.ai[2] = 0f;
|
|
this.TargetClosest(true);
|
|
this.spriteDirection = this.direction;
|
|
this.ai[1] += 1f;
|
|
if (this.ai[1] == 2f)
|
|
{
|
|
this.velocity.X = (float)this.direction * 2.5f;
|
|
this.velocity.Y = -8f;
|
|
this.ai[1] = 0f;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.X = (float)this.direction * 3.5f;
|
|
this.velocity.Y = -4f;
|
|
}
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.direction == 1 && this.velocity.X < 1f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
return;
|
|
}
|
|
if (this.direction == -1 && this.velocity.X > -1f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 26)
|
|
{
|
|
int num420 = 30;
|
|
bool flag40 = false;
|
|
if (this.velocity.Y == 0f && ((this.velocity.X > 0f && this.direction < 0) || (this.velocity.X < 0f && this.direction > 0)))
|
|
{
|
|
flag40 = true;
|
|
this.ai[3] += 1f;
|
|
}
|
|
if (this.position.X == this.oldPosition.X || this.ai[3] >= (float)num420 || flag40)
|
|
{
|
|
this.ai[3] += 1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[3] > 0f)
|
|
{
|
|
this.ai[3] -= 1f;
|
|
}
|
|
}
|
|
if (this.ai[3] > (float)(num420 * 10))
|
|
{
|
|
this.ai[3] = 0f;
|
|
}
|
|
if (this.justHit)
|
|
{
|
|
this.ai[3] = 0f;
|
|
}
|
|
if (this.ai[3] == (float)num420)
|
|
{
|
|
this.netUpdate = true;
|
|
}
|
|
Vector2 vector41 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num421 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector41.X;
|
|
float num422 = Main.player[this.target].position.Y - vector41.Y;
|
|
float num423 = (float)Math.Sqrt((double)(num421 * num421 + num422 * num422));
|
|
if (num423 < 200f)
|
|
{
|
|
this.ai[3] = 0f;
|
|
}
|
|
if (this.type == 155 && this.velocity.Y == 0f && num423 < 100f && Math.Abs(this.velocity.X) > 3f && ((this.position.X + (float)(this.width / 2) < Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) && this.velocity.X > 0f) || (this.position.X + (float)(this.width / 2) > Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) && this.velocity.X < 0f)))
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 4f;
|
|
}
|
|
if (this.ai[3] < (float)num420)
|
|
{
|
|
this.TargetClosest(true);
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X == 0f)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.ai[0] += 1f;
|
|
if (this.ai[0] >= 2f)
|
|
{
|
|
this.direction *= -1;
|
|
this.spriteDirection = this.direction;
|
|
this.ai[0] = 0f;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.ai[0] = 0f;
|
|
}
|
|
this.directionY = -1;
|
|
if (this.direction == 0)
|
|
{
|
|
this.direction = 1;
|
|
}
|
|
}
|
|
float num424 = 6f;
|
|
if (this.velocity.Y == 0f || this.wet || (this.velocity.X <= 0f && this.direction < 0) || (this.velocity.X >= 0f && this.direction > 0))
|
|
{
|
|
if (this.type == 155)
|
|
{
|
|
if (this.velocity.X > 0f && this.direction < 0)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.95f;
|
|
}
|
|
if (this.velocity.X < 0f && this.direction > 0)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.95f;
|
|
}
|
|
}
|
|
if (this.velocity.X < -num424 || this.velocity.X > num424)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.velocity *= 0.8f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < num424 && this.direction == 1)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.07f;
|
|
if (this.velocity.X > num424)
|
|
{
|
|
this.velocity.X = num424;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > -num424 && this.direction == -1)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.07f;
|
|
if (this.velocity.X < -num424)
|
|
{
|
|
this.velocity.X = -num424;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.Y >= 0f)
|
|
{
|
|
int num425 = 0;
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
num425 = -1;
|
|
}
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
num425 = 1;
|
|
}
|
|
Vector2 vector42 = this.position;
|
|
vector42.X += this.velocity.X;
|
|
int num426 = (int)((vector42.X + (float)(this.width / 2) + (float)((this.width / 2 + 1) * num425)) / 16f);
|
|
int num427 = (int)((vector42.Y + (float)this.height - 1f) / 16f);
|
|
if (Main.tile[num426, num427] == null)
|
|
{
|
|
Main.tile[num426, num427] = new Tile();
|
|
}
|
|
if (Main.tile[num426, num427 - 1] == null)
|
|
{
|
|
Main.tile[num426, num427 - 1] = new Tile();
|
|
}
|
|
if (Main.tile[num426, num427 - 2] == null)
|
|
{
|
|
Main.tile[num426, num427 - 2] = new Tile();
|
|
}
|
|
if (Main.tile[num426, num427 - 3] == null)
|
|
{
|
|
Main.tile[num426, num427 - 3] = new Tile();
|
|
}
|
|
if (Main.tile[num426, num427 + 1] == null)
|
|
{
|
|
Main.tile[num426, num427 + 1] = new Tile();
|
|
}
|
|
if ((float)(num426 * 16) < vector42.X + (float)this.width && (float)(num426 * 16 + 16) > vector42.X && ((Main.tile[num426, num427].nactive() && Main.tile[num426, num427].slope() == 0 && Main.tile[num426, num427 - 1].slope() == 0 && Main.tileSolid[(int)Main.tile[num426, num427].type] && !Main.tileSolidTop[(int)Main.tile[num426, num427].type]) || (Main.tile[num426, num427 - 1].halfBrick() && Main.tile[num426, num427 - 1].nactive())) && (!Main.tile[num426, num427 - 1].nactive() || !Main.tileSolid[(int)Main.tile[num426, num427 - 1].type] || Main.tileSolidTop[(int)Main.tile[num426, num427 - 1].type] || (Main.tile[num426, num427 - 1].halfBrick() && (!Main.tile[num426, num427 - 4].nactive() || !Main.tileSolid[(int)Main.tile[num426, num427 - 4].type] || Main.tileSolidTop[(int)Main.tile[num426, num427 - 4].type]))) && (!Main.tile[num426, num427 - 2].nactive() || !Main.tileSolid[(int)Main.tile[num426, num427 - 2].type] || Main.tileSolidTop[(int)Main.tile[num426, num427 - 2].type]) && (!Main.tile[num426, num427 - 3].nactive() || !Main.tileSolid[(int)Main.tile[num426, num427 - 3].type] || Main.tileSolidTop[(int)Main.tile[num426, num427 - 3].type]) && (!Main.tile[num426 - num425, num427 - 3].nactive() || !Main.tileSolid[(int)Main.tile[num426 - num425, num427 - 3].type]))
|
|
{
|
|
float num428 = (float)(num427 * 16);
|
|
if (Main.tile[num426, num427].halfBrick())
|
|
{
|
|
num428 += 8f;
|
|
}
|
|
if (Main.tile[num426, num427 - 1].halfBrick())
|
|
{
|
|
num428 -= 8f;
|
|
}
|
|
if (num428 < vector42.Y + (float)this.height)
|
|
{
|
|
float num429 = vector42.Y + (float)this.height - num428;
|
|
if ((double)num429 <= 16.1)
|
|
{
|
|
this.gfxOffY += this.position.Y + (float)this.height - num428;
|
|
this.position.Y = num428 - (float)this.height;
|
|
if (num429 < 9f)
|
|
{
|
|
this.stepSpeed = 1f;
|
|
}
|
|
else
|
|
{
|
|
this.stepSpeed = 2f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
int num430 = (int)((this.position.X + (float)(this.width / 2) + (float)((this.width / 2 + 2) * this.direction) + this.velocity.X * 5f) / 16f);
|
|
int num431 = (int)((this.position.Y + (float)this.height - 15f) / 16f);
|
|
if (Main.tile[num430, num431] == null)
|
|
{
|
|
Main.tile[num430, num431] = new Tile();
|
|
}
|
|
if (Main.tile[num430, num431 - 1] == null)
|
|
{
|
|
Main.tile[num430, num431 - 1] = new Tile();
|
|
}
|
|
if (Main.tile[num430, num431 - 2] == null)
|
|
{
|
|
Main.tile[num430, num431 - 2] = new Tile();
|
|
}
|
|
if (Main.tile[num430, num431 - 3] == null)
|
|
{
|
|
Main.tile[num430, num431 - 3] = new Tile();
|
|
}
|
|
if (Main.tile[num430, num431 + 1] == null)
|
|
{
|
|
Main.tile[num430, num431 + 1] = new Tile();
|
|
}
|
|
if (Main.tile[num430 + this.direction, num431 - 1] == null)
|
|
{
|
|
Main.tile[num430 + this.direction, num431 - 1] = new Tile();
|
|
}
|
|
if (Main.tile[num430 + this.direction, num431 + 1] == null)
|
|
{
|
|
Main.tile[num430 + this.direction, num431 + 1] = new Tile();
|
|
}
|
|
if (Main.tile[num430 - this.direction, num431 + 1] == null)
|
|
{
|
|
Main.tile[num430 - this.direction, num431 + 1] = new Tile();
|
|
}
|
|
if ((this.velocity.X < 0f && this.spriteDirection == -1) || (this.velocity.X > 0f && this.spriteDirection == 1))
|
|
{
|
|
if (Main.tile[num430, num431 - 2].nactive() && Main.tileSolid[(int)Main.tile[num430, num431 - 2].type])
|
|
{
|
|
if (Main.tile[num430, num431 - 3].nactive() && Main.tileSolid[(int)Main.tile[num430, num431 - 3].type])
|
|
{
|
|
this.velocity.Y = -8.5f;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
this.velocity.Y = -7.5f;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (Main.tile[num430, num431 - 1].nactive() && Main.tile[num430, num431 - 1].slope() == 0 && Main.tileSolid[(int)Main.tile[num430, num431 - 1].type])
|
|
{
|
|
this.velocity.Y = -7f;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
if (this.position.Y + (float)this.height - (float)(num431 * 16) > 20f && Main.tile[num430, num431].nactive() && Main.tile[num430, num431].slope() == 0 && Main.tileSolid[(int)Main.tile[num430, num431].type])
|
|
{
|
|
this.velocity.Y = -6f;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
if ((this.directionY < 0 || Math.Abs(this.velocity.X) > 3f) && (!Main.tile[num430, num431 + 2].nactive() || !Main.tileSolid[(int)Main.tile[num430, num431 + 2].type]) && (!Main.tile[num430 + this.direction, num431 + 3].nactive() || !Main.tileSolid[(int)Main.tile[num430 + this.direction, num431 + 3].type]))
|
|
{
|
|
this.velocity.Y = -8f;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 27)
|
|
{
|
|
if (this.position.X < 160f || this.position.X > (float)((Main.maxTilesX - 10) * 16))
|
|
{
|
|
this.active = false;
|
|
}
|
|
if (this.localAI[0] == 0f)
|
|
{
|
|
this.localAI[0] = 1f;
|
|
Main.wofB = -1;
|
|
Main.wofT = -1;
|
|
}
|
|
this.ai[1] += 1f;
|
|
if (this.ai[2] == 0f)
|
|
{
|
|
if ((double)this.life < (double)this.lifeMax * 0.5)
|
|
{
|
|
this.ai[1] += 1f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.2)
|
|
{
|
|
this.ai[1] += 1f;
|
|
}
|
|
if (this.ai[1] > 2700f)
|
|
{
|
|
this.ai[2] = 1f;
|
|
}
|
|
}
|
|
if (this.ai[2] > 0f && this.ai[1] > 60f)
|
|
{
|
|
int num432 = 3;
|
|
if ((double)this.life < (double)this.lifeMax * 0.3)
|
|
{
|
|
num432++;
|
|
}
|
|
this.ai[2] += 1f;
|
|
this.ai[1] = 0f;
|
|
if (this.ai[2] > (float)num432)
|
|
{
|
|
this.ai[2] = 0f;
|
|
}
|
|
if (Main.netMode != 1)
|
|
{
|
|
int num433 = NPC.NewNPC((int)(this.position.X + (float)(this.width / 2)), (int)(this.position.Y + (float)(this.height / 2) + 20f), 117, 1);
|
|
Main.npc[num433].velocity.X = (float)(this.direction * 8);
|
|
}
|
|
}
|
|
this.localAI[3] += 1f;
|
|
if (this.localAI[3] >= (float)(600 + Main.rand.Next(1000)))
|
|
{
|
|
this.localAI[3] = (float)(-(float)Main.rand.Next(200));
|
|
Main.PlaySound(4, (int)this.position.X, (int)this.position.Y, 10);
|
|
}
|
|
Main.wof = this.whoAmI;
|
|
int num434 = (int)(this.position.X / 16f);
|
|
int num435 = (int)((this.position.X + (float)this.width) / 16f);
|
|
int num436 = (int)((this.position.Y + (float)(this.height / 2)) / 16f);
|
|
int num437 = 0;
|
|
int num438 = num436 + 7;
|
|
while (num437 < 15 && num438 > Main.maxTilesY - 200)
|
|
{
|
|
num438++;
|
|
for (int num439 = num434; num439 <= num435; num439++)
|
|
{
|
|
try
|
|
{
|
|
if (WorldGen.SolidTile(num439, num438) || Main.tile[num439, num438].liquid > 0)
|
|
{
|
|
num437++;
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
num437 += 15;
|
|
}
|
|
}
|
|
}
|
|
num438 += 4;
|
|
if (Main.wofB == -1)
|
|
{
|
|
Main.wofB = num438 * 16;
|
|
}
|
|
else
|
|
{
|
|
if (Main.wofB > num438 * 16)
|
|
{
|
|
Main.wofB--;
|
|
if (Main.wofB < num438 * 16)
|
|
{
|
|
Main.wofB = num438 * 16;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.wofB < num438 * 16)
|
|
{
|
|
Main.wofB++;
|
|
if (Main.wofB > num438 * 16)
|
|
{
|
|
Main.wofB = num438 * 16;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
num437 = 0;
|
|
num438 = num436 - 7;
|
|
while (num437 < 15 && num438 < Main.maxTilesY - 10)
|
|
{
|
|
num438--;
|
|
for (int num440 = num434; num440 <= num435; num440++)
|
|
{
|
|
try
|
|
{
|
|
if (WorldGen.SolidTile(num440, num438) || Main.tile[num440, num438].liquid > 0)
|
|
{
|
|
num437++;
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
num437 += 15;
|
|
}
|
|
}
|
|
}
|
|
num438 -= 4;
|
|
if (Main.wofT == -1)
|
|
{
|
|
Main.wofT = num438 * 16;
|
|
}
|
|
else
|
|
{
|
|
if (Main.wofT > num438 * 16)
|
|
{
|
|
Main.wofT--;
|
|
if (Main.wofT < num438 * 16)
|
|
{
|
|
Main.wofT = num438 * 16;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.wofT < num438 * 16)
|
|
{
|
|
Main.wofT++;
|
|
if (Main.wofT > num438 * 16)
|
|
{
|
|
Main.wofT = num438 * 16;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
float num441 = (float)((Main.wofB + Main.wofT) / 2 - this.height / 2);
|
|
if (this.position.Y > num441 + 1f)
|
|
{
|
|
this.velocity.Y = -1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.position.Y < num441 - 1f)
|
|
{
|
|
this.velocity.Y = 1f;
|
|
}
|
|
}
|
|
this.velocity.Y = 0f;
|
|
this.position.Y = num441;
|
|
float num442 = 1.5f;
|
|
if ((double)this.life < (double)this.lifeMax * 0.75)
|
|
{
|
|
num442 += 0.25f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.5)
|
|
{
|
|
num442 += 0.4f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.25)
|
|
{
|
|
num442 += 0.5f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.1)
|
|
{
|
|
num442 += 0.6f;
|
|
}
|
|
if (this.velocity.X == 0f)
|
|
{
|
|
this.TargetClosest(true);
|
|
this.velocity.X = (float)this.direction;
|
|
}
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = -num442;
|
|
this.direction = -1;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.X = num442;
|
|
this.direction = 1;
|
|
}
|
|
this.spriteDirection = this.direction;
|
|
Vector2 vector43 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num443 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector43.X;
|
|
float num444 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector43.Y;
|
|
float num445 = (float)Math.Sqrt((double)(num443 * num443 + num444 * num444));
|
|
num443 *= num445;
|
|
num444 *= num445;
|
|
if (this.direction > 0)
|
|
{
|
|
if (Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) > this.position.X + (float)(this.width / 2))
|
|
{
|
|
this.rotation = (float)Math.Atan2((double)(-(double)num444), (double)(-(double)num443)) + 3.14f;
|
|
}
|
|
else
|
|
{
|
|
this.rotation = 0f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) < this.position.X + (float)(this.width / 2))
|
|
{
|
|
this.rotation = (float)Math.Atan2((double)num444, (double)num443) + 3.14f;
|
|
}
|
|
else
|
|
{
|
|
this.rotation = 0f;
|
|
}
|
|
}
|
|
if (this.localAI[0] == 1f && Main.netMode != 1)
|
|
{
|
|
this.localAI[0] = 2f;
|
|
num441 = (float)((Main.wofB + Main.wofT) / 2);
|
|
num441 = (num441 + (float)Main.wofT) / 2f;
|
|
int num446 = NPC.NewNPC((int)this.position.X, (int)num441, 114, this.whoAmI);
|
|
Main.npc[num446].ai[0] = 1f;
|
|
num441 = (float)((Main.wofB + Main.wofT) / 2);
|
|
num441 = (num441 + (float)Main.wofB) / 2f;
|
|
num446 = NPC.NewNPC((int)this.position.X, (int)num441, 114, this.whoAmI);
|
|
Main.npc[num446].ai[0] = -1f;
|
|
num441 = (float)((Main.wofB + Main.wofT) / 2);
|
|
num441 = (num441 + (float)Main.wofB) / 2f;
|
|
for (int num447 = 0; num447 < 11; num447++)
|
|
{
|
|
num446 = NPC.NewNPC((int)this.position.X, (int)num441, 115, this.whoAmI);
|
|
Main.npc[num446].ai[0] = (float)num447 * 0.1f - 0.05f;
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 28)
|
|
{
|
|
if (Main.wof < 0)
|
|
{
|
|
this.active = false;
|
|
return;
|
|
}
|
|
this.realLife = Main.wof;
|
|
if (Main.npc[Main.wof].life > 0)
|
|
{
|
|
this.life = Main.npc[Main.wof].life;
|
|
}
|
|
this.TargetClosest(true);
|
|
this.position.X = Main.npc[Main.wof].position.X;
|
|
this.direction = Main.npc[Main.wof].direction;
|
|
this.spriteDirection = this.direction;
|
|
float num448 = (float)((Main.wofB + Main.wofT) / 2);
|
|
if (this.ai[0] > 0f)
|
|
{
|
|
num448 = (num448 + (float)Main.wofT) / 2f;
|
|
}
|
|
else
|
|
{
|
|
num448 = (num448 + (float)Main.wofB) / 2f;
|
|
}
|
|
num448 -= (float)(this.height / 2);
|
|
if (this.position.Y > num448 + 1f)
|
|
{
|
|
this.velocity.Y = -1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.position.Y < num448 - 1f)
|
|
{
|
|
this.velocity.Y = 1f;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.Y = 0f;
|
|
this.position.Y = num448;
|
|
}
|
|
}
|
|
if (this.velocity.Y > 5f)
|
|
{
|
|
this.velocity.Y = 5f;
|
|
}
|
|
if (this.velocity.Y < -5f)
|
|
{
|
|
this.velocity.Y = -5f;
|
|
}
|
|
Vector2 vector44 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num449 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector44.X;
|
|
float num450 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector44.Y;
|
|
float num451 = (float)Math.Sqrt((double)(num449 * num449 + num450 * num450));
|
|
num449 *= num451;
|
|
num450 *= num451;
|
|
bool flag41 = true;
|
|
if (this.direction > 0)
|
|
{
|
|
if (Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) > this.position.X + (float)(this.width / 2))
|
|
{
|
|
this.rotation = (float)Math.Atan2((double)(-(double)num450), (double)(-(double)num449)) + 3.14f;
|
|
}
|
|
else
|
|
{
|
|
this.rotation = 0f;
|
|
flag41 = false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) < this.position.X + (float)(this.width / 2))
|
|
{
|
|
this.rotation = (float)Math.Atan2((double)num450, (double)num449) + 3.14f;
|
|
}
|
|
else
|
|
{
|
|
this.rotation = 0f;
|
|
flag41 = false;
|
|
}
|
|
}
|
|
if (Main.netMode != 1)
|
|
{
|
|
int num452 = 4;
|
|
this.localAI[1] += 1f;
|
|
if ((double)Main.npc[Main.wof].life < (double)Main.npc[Main.wof].lifeMax * 0.75)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
num452++;
|
|
}
|
|
if ((double)Main.npc[Main.wof].life < (double)Main.npc[Main.wof].lifeMax * 0.5)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
num452++;
|
|
}
|
|
if ((double)Main.npc[Main.wof].life < (double)Main.npc[Main.wof].lifeMax * 0.25)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
num452 += 2;
|
|
}
|
|
if ((double)Main.npc[Main.wof].life < (double)Main.npc[Main.wof].lifeMax * 0.1)
|
|
{
|
|
this.localAI[1] += 2f;
|
|
num452 += 3;
|
|
}
|
|
if (this.localAI[2] == 0f)
|
|
{
|
|
if (this.localAI[1] > 600f)
|
|
{
|
|
this.localAI[2] = 1f;
|
|
this.localAI[1] = 0f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.localAI[1] > 45f && Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
this.localAI[1] = 0f;
|
|
this.localAI[2] += 1f;
|
|
if (this.localAI[2] >= (float)num452)
|
|
{
|
|
this.localAI[2] = 0f;
|
|
}
|
|
if (flag41)
|
|
{
|
|
float num453 = 9f;
|
|
int num454 = 11;
|
|
int num455 = 83;
|
|
if ((double)Main.npc[Main.wof].life < (double)Main.npc[Main.wof].lifeMax * 0.5)
|
|
{
|
|
num454++;
|
|
num453 += 1f;
|
|
}
|
|
if ((double)Main.npc[Main.wof].life < (double)Main.npc[Main.wof].lifeMax * 0.25)
|
|
{
|
|
num454++;
|
|
num453 += 1f;
|
|
}
|
|
if ((double)Main.npc[Main.wof].life < (double)Main.npc[Main.wof].lifeMax * 0.1)
|
|
{
|
|
num454 += 2;
|
|
num453 += 2f;
|
|
}
|
|
vector44 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
num449 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector44.X;
|
|
num450 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - vector44.Y;
|
|
num451 = (float)Math.Sqrt((double)(num449 * num449 + num450 * num450));
|
|
num451 = num453 / num451;
|
|
num449 *= num451;
|
|
num450 *= num451;
|
|
vector44.X += num449;
|
|
vector44.Y += num450;
|
|
Projectile.NewProjectile(vector44.X, vector44.Y, num449, num450, num455, num454, 0f, Main.myPlayer, 0f, 0f);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 29)
|
|
{
|
|
if (this.justHit)
|
|
{
|
|
this.ai[1] = 10f;
|
|
}
|
|
if (Main.wof < 0)
|
|
{
|
|
this.active = false;
|
|
return;
|
|
}
|
|
this.TargetClosest(true);
|
|
float num456 = 0.1f;
|
|
float num457 = 300f;
|
|
if ((double)Main.npc[Main.wof].life < (double)Main.npc[Main.wof].lifeMax * 0.25)
|
|
{
|
|
this.damage = 75;
|
|
this.defense = 40;
|
|
num457 = 900f;
|
|
}
|
|
else
|
|
{
|
|
if ((double)Main.npc[Main.wof].life < (double)Main.npc[Main.wof].lifeMax * 0.5)
|
|
{
|
|
this.damage = 60;
|
|
this.defense = 30;
|
|
num457 = 700f;
|
|
}
|
|
else
|
|
{
|
|
if ((double)Main.npc[Main.wof].life < (double)Main.npc[Main.wof].lifeMax * 0.75)
|
|
{
|
|
this.damage = 45;
|
|
this.defense = 20;
|
|
num457 = 500f;
|
|
}
|
|
}
|
|
}
|
|
float num458 = Main.npc[Main.wof].position.X + (float)(Main.npc[Main.wof].width / 2);
|
|
float num459 = Main.npc[Main.wof].position.Y;
|
|
float num460 = (float)(Main.wofB - Main.wofT);
|
|
num459 = (float)Main.wofT + num460 * this.ai[0];
|
|
this.ai[2] += 1f;
|
|
if (this.ai[2] > 100f)
|
|
{
|
|
num457 = (float)((int)(num457 * 1.3f));
|
|
if (this.ai[2] > 200f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
}
|
|
}
|
|
Vector2 vector45 = new Vector2(num458, num459);
|
|
float num461 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - (float)(this.width / 2) - vector45.X;
|
|
float num462 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - (float)(this.height / 2) - vector45.Y;
|
|
float num463 = (float)Math.Sqrt((double)(num461 * num461 + num462 * num462));
|
|
if (this.ai[1] == 0f)
|
|
{
|
|
if (num463 > num457)
|
|
{
|
|
num463 = num457 / num463;
|
|
num461 *= num463;
|
|
num462 *= num463;
|
|
}
|
|
if (this.position.X < num458 + num461)
|
|
{
|
|
this.velocity.X = this.velocity.X + num456;
|
|
if (this.velocity.X < 0f && num461 > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num456 * 2.5f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.position.X > num458 + num461)
|
|
{
|
|
this.velocity.X = this.velocity.X - num456;
|
|
if (this.velocity.X > 0f && num461 < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - num456 * 2.5f;
|
|
}
|
|
}
|
|
}
|
|
if (this.position.Y < num459 + num462)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num456;
|
|
if (this.velocity.Y < 0f && num462 > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num456 * 2.5f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.position.Y > num459 + num462)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num456;
|
|
if (this.velocity.Y > 0f && num462 < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num456 * 2.5f;
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.X > 4f)
|
|
{
|
|
this.velocity.X = 4f;
|
|
}
|
|
if (this.velocity.X < -4f)
|
|
{
|
|
this.velocity.X = -4f;
|
|
}
|
|
if (this.velocity.Y > 4f)
|
|
{
|
|
this.velocity.Y = 4f;
|
|
}
|
|
if (this.velocity.Y < -4f)
|
|
{
|
|
this.velocity.Y = -4f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] > 0f)
|
|
{
|
|
this.ai[1] -= 1f;
|
|
}
|
|
else
|
|
{
|
|
this.ai[1] = 0f;
|
|
}
|
|
}
|
|
if (num461 > 0f)
|
|
{
|
|
this.spriteDirection = 1;
|
|
this.rotation = (float)Math.Atan2((double)num462, (double)num461);
|
|
}
|
|
if (num461 < 0f)
|
|
{
|
|
this.spriteDirection = -1;
|
|
this.rotation = (float)Math.Atan2((double)num462, (double)num461) + 3.14f;
|
|
}
|
|
Lighting.addLight((int)(this.position.X + (float)(this.width / 2)) / 16, (int)(this.position.Y + (float)(this.height / 2)) / 16, 0.3f, 0.2f, 0.1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 30)
|
|
{
|
|
if (this.target < 0 || this.target == 255 || Main.player[this.target].dead || !Main.player[this.target].active)
|
|
{
|
|
this.TargetClosest(true);
|
|
}
|
|
bool dead2 = Main.player[this.target].dead;
|
|
float num464 = this.position.X + (float)(this.width / 2) - Main.player[this.target].position.X - (float)(Main.player[this.target].width / 2);
|
|
float num465 = this.position.Y + (float)this.height - 59f - Main.player[this.target].position.Y - (float)(Main.player[this.target].height / 2);
|
|
float num466 = (float)Math.Atan2((double)num465, (double)num464) + 1.57f;
|
|
if (num466 < 0f)
|
|
{
|
|
num466 += 6.283f;
|
|
}
|
|
else
|
|
{
|
|
if ((double)num466 > 6.283)
|
|
{
|
|
num466 -= 6.283f;
|
|
}
|
|
}
|
|
float num467 = 0.1f;
|
|
if (this.rotation < num466)
|
|
{
|
|
if ((double)(num466 - this.rotation) > 3.1415)
|
|
{
|
|
this.rotation -= num467;
|
|
}
|
|
else
|
|
{
|
|
this.rotation += num467;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.rotation > num466)
|
|
{
|
|
if ((double)(this.rotation - num466) > 3.1415)
|
|
{
|
|
this.rotation += num467;
|
|
}
|
|
else
|
|
{
|
|
this.rotation -= num467;
|
|
}
|
|
}
|
|
}
|
|
if (this.rotation > num466 - num467 && this.rotation < num466 + num467)
|
|
{
|
|
this.rotation = num466;
|
|
}
|
|
if (this.rotation < 0f)
|
|
{
|
|
this.rotation += 6.283f;
|
|
}
|
|
else
|
|
{
|
|
if ((double)this.rotation > 6.283)
|
|
{
|
|
this.rotation -= 6.283f;
|
|
}
|
|
}
|
|
if (this.rotation > num466 - num467 && this.rotation < num466 + num467)
|
|
{
|
|
this.rotation = num466;
|
|
}
|
|
if (Main.rand.Next(5) == 0)
|
|
{
|
|
int num468 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + (float)this.height * 0.25f), this.width, (int)((float)this.height * 0.5f), 5, this.velocity.X, 2f, 0, default(Color), 1f);
|
|
Dust expr_1CF50_cp_0 = Main.dust[num468];
|
|
expr_1CF50_cp_0.velocity.X = expr_1CF50_cp_0.velocity.X * 0.5f;
|
|
Dust expr_1CF70_cp_0 = Main.dust[num468];
|
|
expr_1CF70_cp_0.velocity.Y = expr_1CF70_cp_0.velocity.Y * 0.1f;
|
|
}
|
|
if (Main.dayTime || dead2)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.04f;
|
|
if (this.timeLeft > 10)
|
|
{
|
|
this.timeLeft = 10;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] == 0f)
|
|
{
|
|
if (this.ai[1] == 0f)
|
|
{
|
|
float num469 = 7f;
|
|
float num470 = 0.1f;
|
|
int num471 = 1;
|
|
if (this.position.X + (float)(this.width / 2) < Main.player[this.target].position.X + (float)Main.player[this.target].width)
|
|
{
|
|
num471 = -1;
|
|
}
|
|
Vector2 vector46 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num472 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) + (float)(num471 * 300) - vector46.X;
|
|
float num473 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - 300f - vector46.Y;
|
|
float num474 = (float)Math.Sqrt((double)(num472 * num472 + num473 * num473));
|
|
float num475 = num474;
|
|
num474 = num469 / num474;
|
|
num472 *= num474;
|
|
num473 *= num474;
|
|
if (this.velocity.X < num472)
|
|
{
|
|
this.velocity.X = this.velocity.X + num470;
|
|
if (this.velocity.X < 0f && num472 > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num470;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > num472)
|
|
{
|
|
this.velocity.X = this.velocity.X - num470;
|
|
if (this.velocity.X > 0f && num472 < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - num470;
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.Y < num473)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num470;
|
|
if (this.velocity.Y < 0f && num473 > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num470;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > num473)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num470;
|
|
if (this.velocity.Y > 0f && num473 < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num470;
|
|
}
|
|
}
|
|
}
|
|
this.ai[2] += 1f;
|
|
if (this.ai[2] >= 600f)
|
|
{
|
|
this.ai[1] = 1f;
|
|
this.ai[2] = 0f;
|
|
this.ai[3] = 0f;
|
|
this.target = 255;
|
|
this.netUpdate = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.position.Y + (float)this.height < Main.player[this.target].position.Y && num475 < 400f)
|
|
{
|
|
if (!Main.player[this.target].dead)
|
|
{
|
|
this.ai[3] += 1f;
|
|
}
|
|
if (this.ai[3] >= 60f)
|
|
{
|
|
this.ai[3] = 0f;
|
|
vector46 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
num472 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector46.X;
|
|
num473 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector46.Y;
|
|
if (Main.netMode != 1)
|
|
{
|
|
float num476 = 9f;
|
|
int num477 = 20;
|
|
int num478 = 83;
|
|
num474 = (float)Math.Sqrt((double)(num472 * num472 + num473 * num473));
|
|
num474 = num476 / num474;
|
|
num472 *= num474;
|
|
num473 *= num474;
|
|
num472 += (float)Main.rand.Next(-40, 41) * 0.08f;
|
|
num473 += (float)Main.rand.Next(-40, 41) * 0.08f;
|
|
vector46.X += num472 * 15f;
|
|
vector46.Y += num473 * 15f;
|
|
Projectile.NewProjectile(vector46.X, vector46.Y, num472, num473, num478, num477, 0f, Main.myPlayer, 0f, 0f);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] == 1f)
|
|
{
|
|
this.rotation = num466;
|
|
float num479 = 12f;
|
|
Vector2 vector47 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num480 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector47.X;
|
|
float num481 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector47.Y;
|
|
float num482 = (float)Math.Sqrt((double)(num480 * num480 + num481 * num481));
|
|
num482 = num479 / num482;
|
|
this.velocity.X = num480 * num482;
|
|
this.velocity.Y = num481 * num482;
|
|
this.ai[1] = 2f;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] == 2f)
|
|
{
|
|
this.ai[2] += 1f;
|
|
if (this.ai[2] >= 25f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.96f;
|
|
this.velocity.Y = this.velocity.Y * 0.96f;
|
|
if ((double)this.velocity.X > -0.1 && (double)this.velocity.X < 0.1)
|
|
{
|
|
this.velocity.X = 0f;
|
|
}
|
|
if ((double)this.velocity.Y > -0.1 && (double)this.velocity.Y < 0.1)
|
|
{
|
|
this.velocity.Y = 0f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.rotation = (float)Math.Atan2((double)this.velocity.Y, (double)this.velocity.X) - 1.57f;
|
|
}
|
|
if (this.ai[2] >= 70f)
|
|
{
|
|
this.ai[3] += 1f;
|
|
this.ai[2] = 0f;
|
|
this.target = 255;
|
|
this.rotation = num466;
|
|
if (this.ai[3] >= 4f)
|
|
{
|
|
this.ai[1] = 0f;
|
|
this.ai[3] = 0f;
|
|
}
|
|
else
|
|
{
|
|
this.ai[1] = 1f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.5)
|
|
{
|
|
this.ai[0] = 1f;
|
|
this.ai[1] = 0f;
|
|
this.ai[2] = 0f;
|
|
this.ai[3] = 0f;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] == 1f || this.ai[0] == 2f)
|
|
{
|
|
if (this.ai[0] == 1f)
|
|
{
|
|
this.ai[2] += 0.005f;
|
|
if ((double)this.ai[2] > 0.5)
|
|
{
|
|
this.ai[2] = 0.5f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.ai[2] -= 0.005f;
|
|
if (this.ai[2] < 0f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
}
|
|
}
|
|
this.rotation += this.ai[2];
|
|
this.ai[1] += 1f;
|
|
if (this.ai[1] == 100f)
|
|
{
|
|
this.ai[0] += 1f;
|
|
this.ai[1] = 0f;
|
|
if (this.ai[0] == 3f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
}
|
|
else
|
|
{
|
|
Main.PlaySound(3, (int)this.position.X, (int)this.position.Y, 1);
|
|
for (int num483 = 0; num483 < 2; num483++)
|
|
{
|
|
Gore.NewGore(this.position, new Vector2((float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f), 143, 1f);
|
|
Gore.NewGore(this.position, new Vector2((float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f), 7, 1f);
|
|
Gore.NewGore(this.position, new Vector2((float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f), 6, 1f);
|
|
}
|
|
for (int num484 = 0; num484 < 20; num484++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f, 0, default(Color), 1f);
|
|
}
|
|
Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0);
|
|
}
|
|
}
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f, 0, default(Color), 1f);
|
|
this.velocity.X = this.velocity.X * 0.98f;
|
|
this.velocity.Y = this.velocity.Y * 0.98f;
|
|
if ((double)this.velocity.X > -0.1 && (double)this.velocity.X < 0.1)
|
|
{
|
|
this.velocity.X = 0f;
|
|
}
|
|
if ((double)this.velocity.Y > -0.1 && (double)this.velocity.Y < 0.1)
|
|
{
|
|
this.velocity.Y = 0f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.damage = (int)((double)this.defDamage * 1.5);
|
|
this.defense = this.defDefense + 15;
|
|
this.soundHit = 4;
|
|
if (this.ai[1] == 0f)
|
|
{
|
|
float num485 = 8f;
|
|
float num486 = 0.15f;
|
|
Vector2 vector48 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num487 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector48.X;
|
|
float num488 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - 300f - vector48.Y;
|
|
float num489 = (float)Math.Sqrt((double)(num487 * num487 + num488 * num488));
|
|
num489 = num485 / num489;
|
|
num487 *= num489;
|
|
num488 *= num489;
|
|
if (this.velocity.X < num487)
|
|
{
|
|
this.velocity.X = this.velocity.X + num486;
|
|
if (this.velocity.X < 0f && num487 > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num486;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > num487)
|
|
{
|
|
this.velocity.X = this.velocity.X - num486;
|
|
if (this.velocity.X > 0f && num487 < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - num486;
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.Y < num488)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num486;
|
|
if (this.velocity.Y < 0f && num488 > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num486;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > num488)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num486;
|
|
if (this.velocity.Y > 0f && num488 < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num486;
|
|
}
|
|
}
|
|
}
|
|
this.ai[2] += 1f;
|
|
if (this.ai[2] >= 300f)
|
|
{
|
|
this.ai[1] = 1f;
|
|
this.ai[2] = 0f;
|
|
this.ai[3] = 0f;
|
|
this.TargetClosest(true);
|
|
this.netUpdate = true;
|
|
}
|
|
vector48 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
num487 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector48.X;
|
|
num488 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector48.Y;
|
|
this.rotation = (float)Math.Atan2((double)num488, (double)num487) - 1.57f;
|
|
if (Main.netMode != 1)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
if ((double)this.life < (double)this.lifeMax * 0.75)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.5)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.25)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.1)
|
|
{
|
|
this.localAI[1] += 2f;
|
|
}
|
|
if (this.localAI[1] > 140f && Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
this.localAI[1] = 0f;
|
|
float num490 = 9f;
|
|
int num491 = 25;
|
|
int num492 = 100;
|
|
num489 = (float)Math.Sqrt((double)(num487 * num487 + num488 * num488));
|
|
num489 = num490 / num489;
|
|
num487 *= num489;
|
|
num488 *= num489;
|
|
vector48.X += num487 * 15f;
|
|
vector48.Y += num488 * 15f;
|
|
Projectile.NewProjectile(vector48.X, vector48.Y, num487, num488, num492, num491, 0f, Main.myPlayer, 0f, 0f);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
int num493 = 1;
|
|
if (this.position.X + (float)(this.width / 2) < Main.player[this.target].position.X + (float)Main.player[this.target].width)
|
|
{
|
|
num493 = -1;
|
|
}
|
|
float num494 = 8f;
|
|
float num495 = 0.2f;
|
|
Vector2 vector49 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num496 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) + (float)(num493 * 340) - vector49.X;
|
|
float num497 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector49.Y;
|
|
float num498 = (float)Math.Sqrt((double)(num496 * num496 + num497 * num497));
|
|
num498 = num494 / num498;
|
|
num496 *= num498;
|
|
num497 *= num498;
|
|
if (this.velocity.X < num496)
|
|
{
|
|
this.velocity.X = this.velocity.X + num495;
|
|
if (this.velocity.X < 0f && num496 > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num495;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > num496)
|
|
{
|
|
this.velocity.X = this.velocity.X - num495;
|
|
if (this.velocity.X > 0f && num496 < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - num495;
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.Y < num497)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num495;
|
|
if (this.velocity.Y < 0f && num497 > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num495;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > num497)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num495;
|
|
if (this.velocity.Y > 0f && num497 < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num495;
|
|
}
|
|
}
|
|
}
|
|
vector49 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
num496 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector49.X;
|
|
num497 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector49.Y;
|
|
this.rotation = (float)Math.Atan2((double)num497, (double)num496) - 1.57f;
|
|
if (Main.netMode != 1)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
if ((double)this.life < (double)this.lifeMax * 0.75)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.5)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.25)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.1)
|
|
{
|
|
this.localAI[1] += 2f;
|
|
}
|
|
if (this.localAI[1] > 45f && Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
this.localAI[1] = 0f;
|
|
float num499 = 9f;
|
|
int num500 = 20;
|
|
int num501 = 100;
|
|
num498 = (float)Math.Sqrt((double)(num496 * num496 + num497 * num497));
|
|
num498 = num499 / num498;
|
|
num496 *= num498;
|
|
num497 *= num498;
|
|
vector49.X += num496 * 15f;
|
|
vector49.Y += num497 * 15f;
|
|
Projectile.NewProjectile(vector49.X, vector49.Y, num496, num497, num501, num500, 0f, Main.myPlayer, 0f, 0f);
|
|
}
|
|
}
|
|
this.ai[2] += 1f;
|
|
if (this.ai[2] >= 200f)
|
|
{
|
|
this.ai[1] = 0f;
|
|
this.ai[2] = 0f;
|
|
this.ai[3] = 0f;
|
|
this.TargetClosest(true);
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 31)
|
|
{
|
|
if (this.target < 0 || this.target == 255 || Main.player[this.target].dead || !Main.player[this.target].active)
|
|
{
|
|
this.TargetClosest(true);
|
|
}
|
|
bool dead3 = Main.player[this.target].dead;
|
|
float num502 = this.position.X + (float)(this.width / 2) - Main.player[this.target].position.X - (float)(Main.player[this.target].width / 2);
|
|
float num503 = this.position.Y + (float)this.height - 59f - Main.player[this.target].position.Y - (float)(Main.player[this.target].height / 2);
|
|
float num504 = (float)Math.Atan2((double)num503, (double)num502) + 1.57f;
|
|
if (num504 < 0f)
|
|
{
|
|
num504 += 6.283f;
|
|
}
|
|
else
|
|
{
|
|
if ((double)num504 > 6.283)
|
|
{
|
|
num504 -= 6.283f;
|
|
}
|
|
}
|
|
float num505 = 0.15f;
|
|
if (this.rotation < num504)
|
|
{
|
|
if ((double)(num504 - this.rotation) > 3.1415)
|
|
{
|
|
this.rotation -= num505;
|
|
}
|
|
else
|
|
{
|
|
this.rotation += num505;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.rotation > num504)
|
|
{
|
|
if ((double)(this.rotation - num504) > 3.1415)
|
|
{
|
|
this.rotation += num505;
|
|
}
|
|
else
|
|
{
|
|
this.rotation -= num505;
|
|
}
|
|
}
|
|
}
|
|
if (this.rotation > num504 - num505 && this.rotation < num504 + num505)
|
|
{
|
|
this.rotation = num504;
|
|
}
|
|
if (this.rotation < 0f)
|
|
{
|
|
this.rotation += 6.283f;
|
|
}
|
|
else
|
|
{
|
|
if ((double)this.rotation > 6.283)
|
|
{
|
|
this.rotation -= 6.283f;
|
|
}
|
|
}
|
|
if (this.rotation > num504 - num505 && this.rotation < num504 + num505)
|
|
{
|
|
this.rotation = num504;
|
|
}
|
|
if (Main.rand.Next(5) == 0)
|
|
{
|
|
int num506 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + (float)this.height * 0.25f), this.width, (int)((float)this.height * 0.5f), 5, this.velocity.X, 2f, 0, default(Color), 1f);
|
|
Dust expr_1EBBF_cp_0 = Main.dust[num506];
|
|
expr_1EBBF_cp_0.velocity.X = expr_1EBBF_cp_0.velocity.X * 0.5f;
|
|
Dust expr_1EBDF_cp_0 = Main.dust[num506];
|
|
expr_1EBDF_cp_0.velocity.Y = expr_1EBDF_cp_0.velocity.Y * 0.1f;
|
|
}
|
|
if (Main.dayTime || dead3)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.04f;
|
|
if (this.timeLeft > 10)
|
|
{
|
|
this.timeLeft = 10;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] == 0f)
|
|
{
|
|
if (this.ai[1] == 0f)
|
|
{
|
|
this.TargetClosest(true);
|
|
float num507 = 12f;
|
|
float num508 = 0.4f;
|
|
int num509 = 1;
|
|
if (this.position.X + (float)(this.width / 2) < Main.player[this.target].position.X + (float)Main.player[this.target].width)
|
|
{
|
|
num509 = -1;
|
|
}
|
|
Vector2 vector50 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num510 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) + (float)(num509 * 400) - vector50.X;
|
|
float num511 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector50.Y;
|
|
float num512 = (float)Math.Sqrt((double)(num510 * num510 + num511 * num511));
|
|
num512 = num507 / num512;
|
|
num510 *= num512;
|
|
num511 *= num512;
|
|
if (this.velocity.X < num510)
|
|
{
|
|
this.velocity.X = this.velocity.X + num508;
|
|
if (this.velocity.X < 0f && num510 > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num508;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > num510)
|
|
{
|
|
this.velocity.X = this.velocity.X - num508;
|
|
if (this.velocity.X > 0f && num510 < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - num508;
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.Y < num511)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num508;
|
|
if (this.velocity.Y < 0f && num511 > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num508;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > num511)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num508;
|
|
if (this.velocity.Y > 0f && num511 < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num508;
|
|
}
|
|
}
|
|
}
|
|
this.ai[2] += 1f;
|
|
if (this.ai[2] >= 600f)
|
|
{
|
|
this.ai[1] = 1f;
|
|
this.ai[2] = 0f;
|
|
this.ai[3] = 0f;
|
|
this.target = 255;
|
|
this.netUpdate = true;
|
|
}
|
|
else
|
|
{
|
|
if (!Main.player[this.target].dead)
|
|
{
|
|
this.ai[3] += 1f;
|
|
}
|
|
if (this.ai[3] >= 60f)
|
|
{
|
|
this.ai[3] = 0f;
|
|
vector50 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
num510 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector50.X;
|
|
num511 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector50.Y;
|
|
if (Main.netMode != 1)
|
|
{
|
|
float num513 = 12f;
|
|
int num514 = 25;
|
|
int num515 = 96;
|
|
num512 = (float)Math.Sqrt((double)(num510 * num510 + num511 * num511));
|
|
num512 = num513 / num512;
|
|
num510 *= num512;
|
|
num511 *= num512;
|
|
num510 += (float)Main.rand.Next(-40, 41) * 0.05f;
|
|
num511 += (float)Main.rand.Next(-40, 41) * 0.05f;
|
|
vector50.X += num510 * 4f;
|
|
vector50.Y += num511 * 4f;
|
|
Projectile.NewProjectile(vector50.X, vector50.Y, num510, num511, num515, num514, 0f, Main.myPlayer, 0f, 0f);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] == 1f)
|
|
{
|
|
this.rotation = num504;
|
|
float num516 = 13f;
|
|
Vector2 vector51 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num517 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector51.X;
|
|
float num518 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector51.Y;
|
|
float num519 = (float)Math.Sqrt((double)(num517 * num517 + num518 * num518));
|
|
num519 = num516 / num519;
|
|
this.velocity.X = num517 * num519;
|
|
this.velocity.Y = num518 * num519;
|
|
this.ai[1] = 2f;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] == 2f)
|
|
{
|
|
this.ai[2] += 1f;
|
|
if (this.ai[2] >= 8f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.9f;
|
|
this.velocity.Y = this.velocity.Y * 0.9f;
|
|
if ((double)this.velocity.X > -0.1 && (double)this.velocity.X < 0.1)
|
|
{
|
|
this.velocity.X = 0f;
|
|
}
|
|
if ((double)this.velocity.Y > -0.1 && (double)this.velocity.Y < 0.1)
|
|
{
|
|
this.velocity.Y = 0f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.rotation = (float)Math.Atan2((double)this.velocity.Y, (double)this.velocity.X) - 1.57f;
|
|
}
|
|
if (this.ai[2] >= 42f)
|
|
{
|
|
this.ai[3] += 1f;
|
|
this.ai[2] = 0f;
|
|
this.target = 255;
|
|
this.rotation = num504;
|
|
if (this.ai[3] >= 10f)
|
|
{
|
|
this.ai[1] = 0f;
|
|
this.ai[3] = 0f;
|
|
}
|
|
else
|
|
{
|
|
this.ai[1] = 1f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.5)
|
|
{
|
|
this.ai[0] = 1f;
|
|
this.ai[1] = 0f;
|
|
this.ai[2] = 0f;
|
|
this.ai[3] = 0f;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] == 1f || this.ai[0] == 2f)
|
|
{
|
|
if (this.ai[0] == 1f)
|
|
{
|
|
this.ai[2] += 0.005f;
|
|
if ((double)this.ai[2] > 0.5)
|
|
{
|
|
this.ai[2] = 0.5f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.ai[2] -= 0.005f;
|
|
if (this.ai[2] < 0f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
}
|
|
}
|
|
this.rotation += this.ai[2];
|
|
this.ai[1] += 1f;
|
|
if (this.ai[1] == 100f)
|
|
{
|
|
this.ai[0] += 1f;
|
|
this.ai[1] = 0f;
|
|
if (this.ai[0] == 3f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
}
|
|
else
|
|
{
|
|
Main.PlaySound(3, (int)this.position.X, (int)this.position.Y, 1);
|
|
for (int num520 = 0; num520 < 2; num520++)
|
|
{
|
|
Gore.NewGore(this.position, new Vector2((float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f), 144, 1f);
|
|
Gore.NewGore(this.position, new Vector2((float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f), 7, 1f);
|
|
Gore.NewGore(this.position, new Vector2((float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f), 6, 1f);
|
|
}
|
|
for (int num521 = 0; num521 < 20; num521++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f, 0, default(Color), 1f);
|
|
}
|
|
Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0);
|
|
}
|
|
}
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f, 0, default(Color), 1f);
|
|
this.velocity.X = this.velocity.X * 0.98f;
|
|
this.velocity.Y = this.velocity.Y * 0.98f;
|
|
if ((double)this.velocity.X > -0.1 && (double)this.velocity.X < 0.1)
|
|
{
|
|
this.velocity.X = 0f;
|
|
}
|
|
if ((double)this.velocity.Y > -0.1 && (double)this.velocity.Y < 0.1)
|
|
{
|
|
this.velocity.Y = 0f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.soundHit = 4;
|
|
this.damage = (int)((double)this.defDamage * 1.5);
|
|
this.defense = this.defDefense + 25;
|
|
if (this.ai[1] == 0f)
|
|
{
|
|
float num522 = 4f;
|
|
float num523 = 0.1f;
|
|
int num524 = 1;
|
|
if (this.position.X + (float)(this.width / 2) < Main.player[this.target].position.X + (float)Main.player[this.target].width)
|
|
{
|
|
num524 = -1;
|
|
}
|
|
Vector2 vector52 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num525 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) + (float)(num524 * 180) - vector52.X;
|
|
float num526 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector52.Y;
|
|
float num527 = (float)Math.Sqrt((double)(num525 * num525 + num526 * num526));
|
|
num527 = num522 / num527;
|
|
num525 *= num527;
|
|
num526 *= num527;
|
|
if (this.velocity.X < num525)
|
|
{
|
|
this.velocity.X = this.velocity.X + num523;
|
|
if (this.velocity.X < 0f && num525 > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num523;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > num525)
|
|
{
|
|
this.velocity.X = this.velocity.X - num523;
|
|
if (this.velocity.X > 0f && num525 < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - num523;
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.Y < num526)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num523;
|
|
if (this.velocity.Y < 0f && num526 > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num523;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > num526)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num523;
|
|
if (this.velocity.Y > 0f && num526 < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num523;
|
|
}
|
|
}
|
|
}
|
|
this.ai[2] += 1f;
|
|
if (this.ai[2] >= 400f)
|
|
{
|
|
this.ai[1] = 1f;
|
|
this.ai[2] = 0f;
|
|
this.ai[3] = 0f;
|
|
this.target = 255;
|
|
this.netUpdate = true;
|
|
}
|
|
if (Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
this.localAI[2] += 1f;
|
|
if (this.localAI[2] > 22f)
|
|
{
|
|
this.localAI[2] = 0f;
|
|
Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 34);
|
|
}
|
|
if (Main.netMode != 1)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
if ((double)this.life < (double)this.lifeMax * 0.75)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.5)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.25)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.1)
|
|
{
|
|
this.localAI[1] += 2f;
|
|
}
|
|
if (this.localAI[1] > 8f)
|
|
{
|
|
this.localAI[1] = 0f;
|
|
float num528 = 6f;
|
|
int num529 = 30;
|
|
int num530 = 101;
|
|
vector52 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
num525 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector52.X;
|
|
num526 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector52.Y;
|
|
num527 = (float)Math.Sqrt((double)(num525 * num525 + num526 * num526));
|
|
num527 = num528 / num527;
|
|
num525 *= num527;
|
|
num526 *= num527;
|
|
num526 += (float)Main.rand.Next(-40, 41) * 0.01f;
|
|
num525 += (float)Main.rand.Next(-40, 41) * 0.01f;
|
|
num526 += this.velocity.Y * 0.5f;
|
|
num525 += this.velocity.X * 0.5f;
|
|
vector52.X -= num525 * 1f;
|
|
vector52.Y -= num526 * 1f;
|
|
Projectile.NewProjectile(vector52.X, vector52.Y, num525, num526, num530, num529, 0f, Main.myPlayer, 0f, 0f);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] == 1f)
|
|
{
|
|
Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0);
|
|
this.rotation = num504;
|
|
float num531 = 14f;
|
|
Vector2 vector53 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num532 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector53.X;
|
|
float num533 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector53.Y;
|
|
float num534 = (float)Math.Sqrt((double)(num532 * num532 + num533 * num533));
|
|
num534 = num531 / num534;
|
|
this.velocity.X = num532 * num534;
|
|
this.velocity.Y = num533 * num534;
|
|
this.ai[1] = 2f;
|
|
return;
|
|
}
|
|
if (this.ai[1] == 2f)
|
|
{
|
|
this.ai[2] += 1f;
|
|
if (this.ai[2] >= 50f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.93f;
|
|
this.velocity.Y = this.velocity.Y * 0.93f;
|
|
if ((double)this.velocity.X > -0.1 && (double)this.velocity.X < 0.1)
|
|
{
|
|
this.velocity.X = 0f;
|
|
}
|
|
if ((double)this.velocity.Y > -0.1 && (double)this.velocity.Y < 0.1)
|
|
{
|
|
this.velocity.Y = 0f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.rotation = (float)Math.Atan2((double)this.velocity.Y, (double)this.velocity.X) - 1.57f;
|
|
}
|
|
if (this.ai[2] >= 80f)
|
|
{
|
|
this.ai[3] += 1f;
|
|
this.ai[2] = 0f;
|
|
this.target = 255;
|
|
this.rotation = num504;
|
|
if (this.ai[3] >= 6f)
|
|
{
|
|
this.ai[1] = 0f;
|
|
this.ai[3] = 0f;
|
|
return;
|
|
}
|
|
this.ai[1] = 1f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 32)
|
|
{
|
|
this.damage = this.defDamage;
|
|
this.defense = this.defDefense;
|
|
if (this.ai[0] == 0f && Main.netMode != 1)
|
|
{
|
|
this.TargetClosest(true);
|
|
this.ai[0] = 1f;
|
|
if (this.type != 68)
|
|
{
|
|
int num535 = NPC.NewNPC((int)(this.position.X + (float)(this.width / 2)), (int)this.position.Y + this.height / 2, 128, this.whoAmI);
|
|
Main.npc[num535].ai[0] = -1f;
|
|
Main.npc[num535].ai[1] = (float)this.whoAmI;
|
|
Main.npc[num535].target = this.target;
|
|
Main.npc[num535].netUpdate = true;
|
|
num535 = NPC.NewNPC((int)(this.position.X + (float)(this.width / 2)), (int)this.position.Y + this.height / 2, 129, this.whoAmI);
|
|
Main.npc[num535].ai[0] = 1f;
|
|
Main.npc[num535].ai[1] = (float)this.whoAmI;
|
|
Main.npc[num535].target = this.target;
|
|
Main.npc[num535].netUpdate = true;
|
|
num535 = NPC.NewNPC((int)(this.position.X + (float)(this.width / 2)), (int)this.position.Y + this.height / 2, 130, this.whoAmI);
|
|
Main.npc[num535].ai[0] = -1f;
|
|
Main.npc[num535].ai[1] = (float)this.whoAmI;
|
|
Main.npc[num535].target = this.target;
|
|
Main.npc[num535].ai[3] = 150f;
|
|
Main.npc[num535].netUpdate = true;
|
|
num535 = NPC.NewNPC((int)(this.position.X + (float)(this.width / 2)), (int)this.position.Y + this.height / 2, 131, this.whoAmI);
|
|
Main.npc[num535].ai[0] = 1f;
|
|
Main.npc[num535].ai[1] = (float)this.whoAmI;
|
|
Main.npc[num535].target = this.target;
|
|
Main.npc[num535].netUpdate = true;
|
|
Main.npc[num535].ai[3] = 150f;
|
|
}
|
|
}
|
|
if (this.type == 68 && this.ai[1] != 3f && this.ai[1] != 2f)
|
|
{
|
|
Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0);
|
|
this.ai[1] = 2f;
|
|
}
|
|
if (Main.player[this.target].dead || Math.Abs(this.position.X - Main.player[this.target].position.X) > 6000f || Math.Abs(this.position.Y - Main.player[this.target].position.Y) > 6000f)
|
|
{
|
|
this.TargetClosest(true);
|
|
if (Main.player[this.target].dead || Math.Abs(this.position.X - Main.player[this.target].position.X) > 6000f || Math.Abs(this.position.Y - Main.player[this.target].position.Y) > 6000f)
|
|
{
|
|
this.ai[1] = 3f;
|
|
}
|
|
}
|
|
if (Main.dayTime && this.ai[1] != 3f && this.ai[1] != 2f)
|
|
{
|
|
this.ai[1] = 2f;
|
|
Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0);
|
|
}
|
|
if (this.ai[1] == 0f)
|
|
{
|
|
this.ai[2] += 1f;
|
|
if (this.ai[2] >= 600f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
this.ai[1] = 1f;
|
|
this.TargetClosest(true);
|
|
this.netUpdate = true;
|
|
}
|
|
this.rotation = this.velocity.X / 15f;
|
|
if (this.position.Y > Main.player[this.target].position.Y - 200f)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.98f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.1f;
|
|
if (this.velocity.Y > 2f)
|
|
{
|
|
this.velocity.Y = 2f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.position.Y < Main.player[this.target].position.Y - 500f)
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.98f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y + 0.1f;
|
|
if (this.velocity.Y < -2f)
|
|
{
|
|
this.velocity.Y = -2f;
|
|
}
|
|
}
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) > Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) + 100f)
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.98f;
|
|
}
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
if (this.velocity.X > 8f)
|
|
{
|
|
this.velocity.X = 8f;
|
|
}
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) < Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - 100f)
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.98f;
|
|
}
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
if (this.velocity.X < -8f)
|
|
{
|
|
this.velocity.X = -8f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] == 1f)
|
|
{
|
|
this.defense *= 2;
|
|
this.damage *= 2;
|
|
this.ai[2] += 1f;
|
|
if (this.ai[2] == 2f)
|
|
{
|
|
Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0);
|
|
}
|
|
if (this.ai[2] >= 400f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
this.ai[1] = 0f;
|
|
}
|
|
this.rotation += (float)this.direction * 0.3f;
|
|
Vector2 vector54 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num536 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector54.X;
|
|
float num537 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector54.Y;
|
|
float num538 = (float)Math.Sqrt((double)(num536 * num536 + num537 * num537));
|
|
num538 = 2f / num538;
|
|
this.velocity.X = num536 * num538;
|
|
this.velocity.Y = num537 * num538;
|
|
return;
|
|
}
|
|
if (this.ai[1] == 2f)
|
|
{
|
|
this.damage = 9999;
|
|
this.defense = 9999;
|
|
this.rotation += (float)this.direction * 0.3f;
|
|
Vector2 vector55 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num539 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector55.X;
|
|
float num540 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector55.Y;
|
|
float num541 = (float)Math.Sqrt((double)(num539 * num539 + num540 * num540));
|
|
num541 = 8f / num541;
|
|
this.velocity.X = num539 * num541;
|
|
this.velocity.Y = num540 * num541;
|
|
return;
|
|
}
|
|
if (this.ai[1] == 3f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.1f;
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.95f;
|
|
}
|
|
this.velocity.X = this.velocity.X * 0.95f;
|
|
if (this.timeLeft > 500)
|
|
{
|
|
this.timeLeft = 500;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 33)
|
|
{
|
|
Vector2 vector56 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num542 = Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - 200f * this.ai[0] - vector56.X;
|
|
float num543 = Main.npc[(int)this.ai[1]].position.Y + 230f - vector56.Y;
|
|
float num544 = (float)Math.Sqrt((double)(num542 * num542 + num543 * num543));
|
|
if (this.ai[2] != 99f)
|
|
{
|
|
if (num544 > 800f)
|
|
{
|
|
this.ai[2] = 99f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num544 < 400f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
}
|
|
}
|
|
this.spriteDirection = -(int)this.ai[0];
|
|
if (!Main.npc[(int)this.ai[1]].active || Main.npc[(int)this.ai[1]].aiStyle != 32)
|
|
{
|
|
this.ai[2] += 10f;
|
|
if (this.ai[2] > 50f || Main.netMode != 2)
|
|
{
|
|
this.life = -1;
|
|
this.HitEffect(0, 10.0);
|
|
this.active = false;
|
|
}
|
|
}
|
|
if (this.ai[2] == 99f)
|
|
{
|
|
if (this.position.Y > Main.npc[(int)this.ai[1]].position.Y)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.96f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.1f;
|
|
if (this.velocity.Y > 8f)
|
|
{
|
|
this.velocity.Y = 8f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.position.Y < Main.npc[(int)this.ai[1]].position.Y)
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.96f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y + 0.1f;
|
|
if (this.velocity.Y < -8f)
|
|
{
|
|
this.velocity.Y = -8f;
|
|
}
|
|
}
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) > Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2))
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.96f;
|
|
}
|
|
this.velocity.X = this.velocity.X - 0.5f;
|
|
if (this.velocity.X > 12f)
|
|
{
|
|
this.velocity.X = 12f;
|
|
}
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) < Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2))
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.96f;
|
|
}
|
|
this.velocity.X = this.velocity.X + 0.5f;
|
|
if (this.velocity.X < -12f)
|
|
{
|
|
this.velocity.X = -12f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[2] == 0f || this.ai[2] == 3f)
|
|
{
|
|
if (Main.npc[(int)this.ai[1]].ai[1] == 3f && this.timeLeft > 10)
|
|
{
|
|
this.timeLeft = 10;
|
|
}
|
|
if (Main.npc[(int)this.ai[1]].ai[1] != 0f)
|
|
{
|
|
this.TargetClosest(true);
|
|
if (Main.player[this.target].dead)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.1f;
|
|
if (this.velocity.Y > 16f)
|
|
{
|
|
this.velocity.Y = 16f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Vector2 vector57 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num545 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector57.X;
|
|
float num546 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector57.Y;
|
|
float num547 = (float)Math.Sqrt((double)(num545 * num545 + num546 * num546));
|
|
num547 = 7f / num547;
|
|
num545 *= num547;
|
|
num546 *= num547;
|
|
this.rotation = (float)Math.Atan2((double)num546, (double)num545) - 1.57f;
|
|
if (this.velocity.X > num545)
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.97f;
|
|
}
|
|
this.velocity.X = this.velocity.X - 0.05f;
|
|
}
|
|
if (this.velocity.X < num545)
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.97f;
|
|
}
|
|
this.velocity.X = this.velocity.X + 0.05f;
|
|
}
|
|
if (this.velocity.Y > num546)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.97f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.05f;
|
|
}
|
|
if (this.velocity.Y < num546)
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.97f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y + 0.05f;
|
|
}
|
|
}
|
|
this.ai[3] += 1f;
|
|
if (this.ai[3] >= 600f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
this.ai[3] = 0f;
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.ai[3] += 1f;
|
|
if (this.ai[3] >= 300f)
|
|
{
|
|
this.ai[2] += 1f;
|
|
this.ai[3] = 0f;
|
|
this.netUpdate = true;
|
|
}
|
|
if (this.position.Y > Main.npc[(int)this.ai[1]].position.Y + 320f)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.96f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.04f;
|
|
if (this.velocity.Y > 3f)
|
|
{
|
|
this.velocity.Y = 3f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.position.Y < Main.npc[(int)this.ai[1]].position.Y + 260f)
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.96f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y + 0.04f;
|
|
if (this.velocity.Y < -3f)
|
|
{
|
|
this.velocity.Y = -3f;
|
|
}
|
|
}
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) > Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2))
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.96f;
|
|
}
|
|
this.velocity.X = this.velocity.X - 0.3f;
|
|
if (this.velocity.X > 12f)
|
|
{
|
|
this.velocity.X = 12f;
|
|
}
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) < Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - 250f)
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.96f;
|
|
}
|
|
this.velocity.X = this.velocity.X + 0.3f;
|
|
if (this.velocity.X < -12f)
|
|
{
|
|
this.velocity.X = -12f;
|
|
}
|
|
}
|
|
}
|
|
Vector2 vector58 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num548 = Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - 200f * this.ai[0] - vector58.X;
|
|
float num549 = Main.npc[(int)this.ai[1]].position.Y + 230f - vector58.Y;
|
|
Math.Sqrt((double)(num548 * num548 + num549 * num549));
|
|
this.rotation = (float)Math.Atan2((double)num549, (double)num548) + 1.57f;
|
|
return;
|
|
}
|
|
if (this.ai[2] == 1f)
|
|
{
|
|
Vector2 vector59 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num550 = Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - 200f * this.ai[0] - vector59.X;
|
|
float num551 = Main.npc[(int)this.ai[1]].position.Y + 230f - vector59.Y;
|
|
float num552 = (float)Math.Sqrt((double)(num550 * num550 + num551 * num551));
|
|
this.rotation = (float)Math.Atan2((double)num551, (double)num550) + 1.57f;
|
|
this.velocity.X = this.velocity.X * 0.95f;
|
|
this.velocity.Y = this.velocity.Y - 0.1f;
|
|
if (this.velocity.Y < -8f)
|
|
{
|
|
this.velocity.Y = -8f;
|
|
}
|
|
if (this.position.Y < Main.npc[(int)this.ai[1]].position.Y - 200f)
|
|
{
|
|
this.TargetClosest(true);
|
|
this.ai[2] = 2f;
|
|
vector59 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
num550 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector59.X;
|
|
num551 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector59.Y;
|
|
num552 = (float)Math.Sqrt((double)(num550 * num550 + num551 * num551));
|
|
num552 = 22f / num552;
|
|
this.velocity.X = num550 * num552;
|
|
this.velocity.Y = num551 * num552;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[2] == 2f)
|
|
{
|
|
if (this.position.Y > Main.player[this.target].position.Y || this.velocity.Y < 0f)
|
|
{
|
|
this.ai[2] = 3f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[2] == 4f)
|
|
{
|
|
this.TargetClosest(true);
|
|
Vector2 vector60 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num553 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector60.X;
|
|
float num554 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector60.Y;
|
|
float num555 = (float)Math.Sqrt((double)(num553 * num553 + num554 * num554));
|
|
num555 = 7f / num555;
|
|
num553 *= num555;
|
|
num554 *= num555;
|
|
if (this.velocity.X > num553)
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.97f;
|
|
}
|
|
this.velocity.X = this.velocity.X - 0.05f;
|
|
}
|
|
if (this.velocity.X < num553)
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.97f;
|
|
}
|
|
this.velocity.X = this.velocity.X + 0.05f;
|
|
}
|
|
if (this.velocity.Y > num554)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.97f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.05f;
|
|
}
|
|
if (this.velocity.Y < num554)
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.97f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y + 0.05f;
|
|
}
|
|
this.ai[3] += 1f;
|
|
if (this.ai[3] >= 600f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
this.ai[3] = 0f;
|
|
this.netUpdate = true;
|
|
}
|
|
vector60 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
num553 = Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - 200f * this.ai[0] - vector60.X;
|
|
num554 = Main.npc[(int)this.ai[1]].position.Y + 230f - vector60.Y;
|
|
num555 = (float)Math.Sqrt((double)(num553 * num553 + num554 * num554));
|
|
this.rotation = (float)Math.Atan2((double)num554, (double)num553) + 1.57f;
|
|
return;
|
|
}
|
|
if (this.ai[2] == 5f && ((this.velocity.X > 0f && this.position.X + (float)(this.width / 2) > Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2)) || (this.velocity.X < 0f && this.position.X + (float)(this.width / 2) < Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2))))
|
|
{
|
|
this.ai[2] = 0f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 34)
|
|
{
|
|
this.spriteDirection = -(int)this.ai[0];
|
|
Vector2 vector61 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num556 = Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - 200f * this.ai[0] - vector61.X;
|
|
float num557 = Main.npc[(int)this.ai[1]].position.Y + 230f - vector61.Y;
|
|
float num558 = (float)Math.Sqrt((double)(num556 * num556 + num557 * num557));
|
|
if (this.ai[2] != 99f)
|
|
{
|
|
if (num558 > 800f)
|
|
{
|
|
this.ai[2] = 99f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num558 < 400f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
}
|
|
}
|
|
if (!Main.npc[(int)this.ai[1]].active || Main.npc[(int)this.ai[1]].aiStyle != 32)
|
|
{
|
|
this.ai[2] += 10f;
|
|
if (this.ai[2] > 50f || Main.netMode != 2)
|
|
{
|
|
this.life = -1;
|
|
this.HitEffect(0, 10.0);
|
|
this.active = false;
|
|
}
|
|
}
|
|
if (this.ai[2] == 99f)
|
|
{
|
|
if (this.position.Y > Main.npc[(int)this.ai[1]].position.Y)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.96f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.1f;
|
|
if (this.velocity.Y > 8f)
|
|
{
|
|
this.velocity.Y = 8f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.position.Y < Main.npc[(int)this.ai[1]].position.Y)
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.96f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y + 0.1f;
|
|
if (this.velocity.Y < -8f)
|
|
{
|
|
this.velocity.Y = -8f;
|
|
}
|
|
}
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) > Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2))
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.96f;
|
|
}
|
|
this.velocity.X = this.velocity.X - 0.5f;
|
|
if (this.velocity.X > 12f)
|
|
{
|
|
this.velocity.X = 12f;
|
|
}
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) < Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2))
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.96f;
|
|
}
|
|
this.velocity.X = this.velocity.X + 0.5f;
|
|
if (this.velocity.X < -12f)
|
|
{
|
|
this.velocity.X = -12f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[2] == 0f || this.ai[2] == 3f)
|
|
{
|
|
if (Main.npc[(int)this.ai[1]].ai[1] == 3f && this.timeLeft > 10)
|
|
{
|
|
this.timeLeft = 10;
|
|
}
|
|
if (Main.npc[(int)this.ai[1]].ai[1] != 0f)
|
|
{
|
|
this.TargetClosest(true);
|
|
this.TargetClosest(true);
|
|
if (Main.player[this.target].dead)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.1f;
|
|
if (this.velocity.Y > 16f)
|
|
{
|
|
this.velocity.Y = 16f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Vector2 vector62 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num559 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector62.X;
|
|
float num560 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector62.Y;
|
|
float num561 = (float)Math.Sqrt((double)(num559 * num559 + num560 * num560));
|
|
num561 = 12f / num561;
|
|
num559 *= num561;
|
|
num560 *= num561;
|
|
this.rotation = (float)Math.Atan2((double)num560, (double)num559) - 1.57f;
|
|
if (Math.Abs(this.velocity.X) + Math.Abs(this.velocity.Y) < 2f)
|
|
{
|
|
this.rotation = (float)Math.Atan2((double)num560, (double)num559) - 1.57f;
|
|
this.velocity.X = num559;
|
|
this.velocity.Y = num560;
|
|
this.netUpdate = true;
|
|
}
|
|
else
|
|
{
|
|
this.velocity *= 0.97f;
|
|
}
|
|
this.ai[3] += 1f;
|
|
if (this.ai[3] >= 600f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
this.ai[3] = 0f;
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.ai[3] += 1f;
|
|
if (this.ai[3] >= 600f)
|
|
{
|
|
this.ai[2] += 1f;
|
|
this.ai[3] = 0f;
|
|
this.netUpdate = true;
|
|
}
|
|
if (this.position.Y > Main.npc[(int)this.ai[1]].position.Y + 300f)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.96f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.1f;
|
|
if (this.velocity.Y > 3f)
|
|
{
|
|
this.velocity.Y = 3f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.position.Y < Main.npc[(int)this.ai[1]].position.Y + 230f)
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.96f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y + 0.1f;
|
|
if (this.velocity.Y < -3f)
|
|
{
|
|
this.velocity.Y = -3f;
|
|
}
|
|
}
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) > Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) + 250f)
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.94f;
|
|
}
|
|
this.velocity.X = this.velocity.X - 0.3f;
|
|
if (this.velocity.X > 9f)
|
|
{
|
|
this.velocity.X = 9f;
|
|
}
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) < Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2))
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.94f;
|
|
}
|
|
this.velocity.X = this.velocity.X + 0.2f;
|
|
if (this.velocity.X < -8f)
|
|
{
|
|
this.velocity.X = -8f;
|
|
}
|
|
}
|
|
}
|
|
Vector2 vector63 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num562 = Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - 200f * this.ai[0] - vector63.X;
|
|
float num563 = Main.npc[(int)this.ai[1]].position.Y + 230f - vector63.Y;
|
|
Math.Sqrt((double)(num562 * num562 + num563 * num563));
|
|
this.rotation = (float)Math.Atan2((double)num563, (double)num562) + 1.57f;
|
|
return;
|
|
}
|
|
if (this.ai[2] == 1f)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.9f;
|
|
}
|
|
Vector2 vector64 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num564 = Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - 280f * this.ai[0] - vector64.X;
|
|
float num565 = Main.npc[(int)this.ai[1]].position.Y + 230f - vector64.Y;
|
|
float num566 = (float)Math.Sqrt((double)(num564 * num564 + num565 * num565));
|
|
this.rotation = (float)Math.Atan2((double)num565, (double)num564) + 1.57f;
|
|
this.velocity.X = (this.velocity.X * 5f + Main.npc[(int)this.ai[1]].velocity.X) / 6f;
|
|
this.velocity.X = this.velocity.X + 0.5f;
|
|
this.velocity.Y = this.velocity.Y - 0.5f;
|
|
if (this.velocity.Y < -9f)
|
|
{
|
|
this.velocity.Y = -9f;
|
|
}
|
|
if (this.position.Y < Main.npc[(int)this.ai[1]].position.Y - 280f)
|
|
{
|
|
this.TargetClosest(true);
|
|
this.ai[2] = 2f;
|
|
vector64 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
num564 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector64.X;
|
|
num565 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector64.Y;
|
|
num566 = (float)Math.Sqrt((double)(num564 * num564 + num565 * num565));
|
|
num566 = 20f / num566;
|
|
this.velocity.X = num564 * num566;
|
|
this.velocity.Y = num565 * num566;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[2] == 2f)
|
|
{
|
|
if (this.position.Y > Main.player[this.target].position.Y || this.velocity.Y < 0f)
|
|
{
|
|
if (this.ai[3] >= 4f)
|
|
{
|
|
this.ai[2] = 3f;
|
|
this.ai[3] = 0f;
|
|
return;
|
|
}
|
|
this.ai[2] = 1f;
|
|
this.ai[3] += 1f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[2] == 4f)
|
|
{
|
|
Vector2 vector65 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num567 = Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - 200f * this.ai[0] - vector65.X;
|
|
float num568 = Main.npc[(int)this.ai[1]].position.Y + 230f - vector65.Y;
|
|
float num569 = (float)Math.Sqrt((double)(num567 * num567 + num568 * num568));
|
|
this.rotation = (float)Math.Atan2((double)num568, (double)num567) + 1.57f;
|
|
this.velocity.Y = (this.velocity.Y * 5f + Main.npc[(int)this.ai[1]].velocity.Y) / 6f;
|
|
this.velocity.X = this.velocity.X + 0.5f;
|
|
if (this.velocity.X > 12f)
|
|
{
|
|
this.velocity.X = 12f;
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) < Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - 500f || this.position.X + (float)(this.width / 2) > Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) + 500f)
|
|
{
|
|
this.TargetClosest(true);
|
|
this.ai[2] = 5f;
|
|
vector65 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
num567 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector65.X;
|
|
num568 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector65.Y;
|
|
num569 = (float)Math.Sqrt((double)(num567 * num567 + num568 * num568));
|
|
num569 = 17f / num569;
|
|
this.velocity.X = num567 * num569;
|
|
this.velocity.Y = num568 * num569;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[2] == 5f && this.position.X + (float)(this.width / 2) < Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - 100f)
|
|
{
|
|
if (this.ai[3] >= 4f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
this.ai[3] = 0f;
|
|
return;
|
|
}
|
|
this.ai[2] = 4f;
|
|
this.ai[3] += 1f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 35)
|
|
{
|
|
this.spriteDirection = -(int)this.ai[0];
|
|
if (!Main.npc[(int)this.ai[1]].active || Main.npc[(int)this.ai[1]].aiStyle != 32)
|
|
{
|
|
this.ai[2] += 10f;
|
|
if (this.ai[2] > 50f || Main.netMode != 2)
|
|
{
|
|
this.life = -1;
|
|
this.HitEffect(0, 10.0);
|
|
this.active = false;
|
|
}
|
|
}
|
|
if (this.ai[2] == 0f)
|
|
{
|
|
if (Main.npc[(int)this.ai[1]].ai[1] == 3f && this.timeLeft > 10)
|
|
{
|
|
this.timeLeft = 10;
|
|
}
|
|
if (Main.npc[(int)this.ai[1]].ai[1] != 0f)
|
|
{
|
|
this.localAI[0] += 2f;
|
|
if (this.position.Y > Main.npc[(int)this.ai[1]].position.Y - 100f)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.96f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.07f;
|
|
if (this.velocity.Y > 6f)
|
|
{
|
|
this.velocity.Y = 6f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.position.Y < Main.npc[(int)this.ai[1]].position.Y - 100f)
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.96f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y + 0.07f;
|
|
if (this.velocity.Y < -6f)
|
|
{
|
|
this.velocity.Y = -6f;
|
|
}
|
|
}
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) > Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - 120f * this.ai[0])
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.96f;
|
|
}
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
if (this.velocity.X > 8f)
|
|
{
|
|
this.velocity.X = 8f;
|
|
}
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) < Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - 120f * this.ai[0])
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.96f;
|
|
}
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
if (this.velocity.X < -8f)
|
|
{
|
|
this.velocity.X = -8f;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.ai[3] += 1f;
|
|
if (this.ai[3] >= 1100f)
|
|
{
|
|
this.localAI[0] = 0f;
|
|
this.ai[2] = 1f;
|
|
this.ai[3] = 0f;
|
|
this.netUpdate = true;
|
|
}
|
|
if (this.position.Y > Main.npc[(int)this.ai[1]].position.Y - 150f)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.96f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.04f;
|
|
if (this.velocity.Y > 3f)
|
|
{
|
|
this.velocity.Y = 3f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.position.Y < Main.npc[(int)this.ai[1]].position.Y - 150f)
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.96f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y + 0.04f;
|
|
if (this.velocity.Y < -3f)
|
|
{
|
|
this.velocity.Y = -3f;
|
|
}
|
|
}
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) > Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) + 200f)
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.96f;
|
|
}
|
|
this.velocity.X = this.velocity.X - 0.2f;
|
|
if (this.velocity.X > 8f)
|
|
{
|
|
this.velocity.X = 8f;
|
|
}
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) < Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) + 160f)
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.96f;
|
|
}
|
|
this.velocity.X = this.velocity.X + 0.2f;
|
|
if (this.velocity.X < -8f)
|
|
{
|
|
this.velocity.X = -8f;
|
|
}
|
|
}
|
|
}
|
|
Vector2 vector66 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num570 = Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - 200f * this.ai[0] - vector66.X;
|
|
float num571 = Main.npc[(int)this.ai[1]].position.Y + 230f - vector66.Y;
|
|
float num572 = (float)Math.Sqrt((double)(num570 * num570 + num571 * num571));
|
|
this.rotation = (float)Math.Atan2((double)num571, (double)num570) + 1.57f;
|
|
if (Main.netMode != 1)
|
|
{
|
|
this.localAI[0] += 1f;
|
|
if (this.localAI[0] > 140f)
|
|
{
|
|
this.localAI[0] = 0f;
|
|
float num573 = 12f;
|
|
int num574 = 0;
|
|
int num575 = 102;
|
|
num572 = num573 / num572;
|
|
num570 = -num570 * num572;
|
|
num571 = -num571 * num572;
|
|
num570 += (float)Main.rand.Next(-40, 41) * 0.01f;
|
|
num571 += (float)Main.rand.Next(-40, 41) * 0.01f;
|
|
vector66.X += num570 * 4f;
|
|
vector66.Y += num571 * 4f;
|
|
Projectile.NewProjectile(vector66.X, vector66.Y, num570, num571, num575, num574, 0f, Main.myPlayer, 0f, 0f);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[2] == 1f)
|
|
{
|
|
this.ai[3] += 1f;
|
|
if (this.ai[3] >= 300f)
|
|
{
|
|
this.localAI[0] = 0f;
|
|
this.ai[2] = 0f;
|
|
this.ai[3] = 0f;
|
|
this.netUpdate = true;
|
|
}
|
|
Vector2 vector67 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num576 = Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - vector67.X;
|
|
float num577 = Main.npc[(int)this.ai[1]].position.Y - vector67.Y;
|
|
num577 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - 80f - vector67.Y;
|
|
float num578 = (float)Math.Sqrt((double)(num576 * num576 + num577 * num577));
|
|
num578 = 6f / num578;
|
|
num576 *= num578;
|
|
num577 *= num578;
|
|
if (this.velocity.X > num576)
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.9f;
|
|
}
|
|
this.velocity.X = this.velocity.X - 0.04f;
|
|
}
|
|
if (this.velocity.X < num576)
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.9f;
|
|
}
|
|
this.velocity.X = this.velocity.X + 0.04f;
|
|
}
|
|
if (this.velocity.Y > num577)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.9f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.08f;
|
|
}
|
|
if (this.velocity.Y < num577)
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.9f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y + 0.08f;
|
|
}
|
|
this.TargetClosest(true);
|
|
vector67 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
num576 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector67.X;
|
|
num577 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector67.Y;
|
|
num578 = (float)Math.Sqrt((double)(num576 * num576 + num577 * num577));
|
|
this.rotation = (float)Math.Atan2((double)num577, (double)num576) - 1.57f;
|
|
if (Main.netMode != 1)
|
|
{
|
|
this.localAI[0] += 1f;
|
|
if (this.localAI[0] > 40f)
|
|
{
|
|
this.localAI[0] = 0f;
|
|
float num579 = 10f;
|
|
int num580 = 0;
|
|
int num581 = 102;
|
|
num578 = num579 / num578;
|
|
num576 *= num578;
|
|
num577 *= num578;
|
|
num576 += (float)Main.rand.Next(-40, 41) * 0.01f;
|
|
num577 += (float)Main.rand.Next(-40, 41) * 0.01f;
|
|
vector67.X += num576 * 4f;
|
|
vector67.Y += num577 * 4f;
|
|
Projectile.NewProjectile(vector67.X, vector67.Y, num576, num577, num581, num580, 0f, Main.myPlayer, 0f, 0f);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 36)
|
|
{
|
|
this.spriteDirection = -(int)this.ai[0];
|
|
if (!Main.npc[(int)this.ai[1]].active || Main.npc[(int)this.ai[1]].aiStyle != 32)
|
|
{
|
|
this.ai[2] += 10f;
|
|
if (this.ai[2] > 50f || Main.netMode != 2)
|
|
{
|
|
this.life = -1;
|
|
this.HitEffect(0, 10.0);
|
|
this.active = false;
|
|
}
|
|
}
|
|
if (this.ai[2] == 0f || this.ai[2] == 3f)
|
|
{
|
|
if (Main.npc[(int)this.ai[1]].ai[1] == 3f && this.timeLeft > 10)
|
|
{
|
|
this.timeLeft = 10;
|
|
}
|
|
if (Main.npc[(int)this.ai[1]].ai[1] != 0f)
|
|
{
|
|
this.localAI[0] += 3f;
|
|
if (this.position.Y > Main.npc[(int)this.ai[1]].position.Y - 100f)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.96f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.07f;
|
|
if (this.velocity.Y > 6f)
|
|
{
|
|
this.velocity.Y = 6f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.position.Y < Main.npc[(int)this.ai[1]].position.Y - 100f)
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.96f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y + 0.07f;
|
|
if (this.velocity.Y < -6f)
|
|
{
|
|
this.velocity.Y = -6f;
|
|
}
|
|
}
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) > Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - 120f * this.ai[0])
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.96f;
|
|
}
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
if (this.velocity.X > 8f)
|
|
{
|
|
this.velocity.X = 8f;
|
|
}
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) < Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - 120f * this.ai[0])
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.96f;
|
|
}
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
if (this.velocity.X < -8f)
|
|
{
|
|
this.velocity.X = -8f;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.ai[3] += 1f;
|
|
if (this.ai[3] >= 800f)
|
|
{
|
|
this.ai[2] += 1f;
|
|
this.ai[3] = 0f;
|
|
this.netUpdate = true;
|
|
}
|
|
if (this.position.Y > Main.npc[(int)this.ai[1]].position.Y - 100f)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.96f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.1f;
|
|
if (this.velocity.Y > 3f)
|
|
{
|
|
this.velocity.Y = 3f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.position.Y < Main.npc[(int)this.ai[1]].position.Y - 100f)
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.96f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y + 0.1f;
|
|
if (this.velocity.Y < -3f)
|
|
{
|
|
this.velocity.Y = -3f;
|
|
}
|
|
}
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) > Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - 180f * this.ai[0])
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.96f;
|
|
}
|
|
this.velocity.X = this.velocity.X - 0.14f;
|
|
if (this.velocity.X > 8f)
|
|
{
|
|
this.velocity.X = 8f;
|
|
}
|
|
}
|
|
if (this.position.X + (float)(this.width / 2) < Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - 180f * this.ai[0])
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.96f;
|
|
}
|
|
this.velocity.X = this.velocity.X + 0.14f;
|
|
if (this.velocity.X < -8f)
|
|
{
|
|
this.velocity.X = -8f;
|
|
}
|
|
}
|
|
}
|
|
this.TargetClosest(true);
|
|
Vector2 vector68 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num582 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector68.X;
|
|
float num583 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector68.Y;
|
|
float num584 = (float)Math.Sqrt((double)(num582 * num582 + num583 * num583));
|
|
this.rotation = (float)Math.Atan2((double)num583, (double)num582) - 1.57f;
|
|
if (Main.netMode != 1)
|
|
{
|
|
this.localAI[0] += 1f;
|
|
if (this.localAI[0] > 200f)
|
|
{
|
|
this.localAI[0] = 0f;
|
|
float num585 = 8f;
|
|
int num586 = 25;
|
|
int num587 = 100;
|
|
num584 = num585 / num584;
|
|
num582 *= num584;
|
|
num583 *= num584;
|
|
num582 += (float)Main.rand.Next(-40, 41) * 0.05f;
|
|
num583 += (float)Main.rand.Next(-40, 41) * 0.05f;
|
|
vector68.X += num582 * 8f;
|
|
vector68.Y += num583 * 8f;
|
|
Projectile.NewProjectile(vector68.X, vector68.Y, num582, num583, num587, num586, 0f, Main.myPlayer, 0f, 0f);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[2] == 1f)
|
|
{
|
|
this.ai[3] += 1f;
|
|
if (this.ai[3] >= 200f)
|
|
{
|
|
this.localAI[0] = 0f;
|
|
this.ai[2] = 0f;
|
|
this.ai[3] = 0f;
|
|
this.netUpdate = true;
|
|
}
|
|
Vector2 vector69 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num588 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - 350f - vector69.X;
|
|
float num589 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - 20f - vector69.Y;
|
|
float num590 = (float)Math.Sqrt((double)(num588 * num588 + num589 * num589));
|
|
num590 = 7f / num590;
|
|
num588 *= num590;
|
|
num589 *= num590;
|
|
if (this.velocity.X > num588)
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.9f;
|
|
}
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
}
|
|
if (this.velocity.X < num588)
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.9f;
|
|
}
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
}
|
|
if (this.velocity.Y > num589)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.9f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.03f;
|
|
}
|
|
if (this.velocity.Y < num589)
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.9f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y + 0.03f;
|
|
}
|
|
this.TargetClosest(true);
|
|
vector69 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
num588 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector69.X;
|
|
num589 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector69.Y;
|
|
num590 = (float)Math.Sqrt((double)(num588 * num588 + num589 * num589));
|
|
this.rotation = (float)Math.Atan2((double)num589, (double)num588) - 1.57f;
|
|
if (Main.netMode == 1)
|
|
{
|
|
this.localAI[0] += 1f;
|
|
if (this.localAI[0] > 80f)
|
|
{
|
|
this.localAI[0] = 0f;
|
|
float num591 = 10f;
|
|
int num592 = 25;
|
|
int num593 = 100;
|
|
num590 = num591 / num590;
|
|
num588 *= num590;
|
|
num589 *= num590;
|
|
num588 += (float)Main.rand.Next(-40, 41) * 0.05f;
|
|
num589 += (float)Main.rand.Next(-40, 41) * 0.05f;
|
|
vector69.X += num588 * 8f;
|
|
vector69.Y += num589 * 8f;
|
|
Projectile.NewProjectile(vector69.X, vector69.Y, num588, num589, num593, num592, 0f, Main.myPlayer, 0f, 0f);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 37)
|
|
{
|
|
if (this.ai[3] > 0f)
|
|
{
|
|
this.realLife = (int)this.ai[3];
|
|
}
|
|
if (this.target < 0 || this.target == 255 || Main.player[this.target].dead)
|
|
{
|
|
this.TargetClosest(true);
|
|
}
|
|
if (this.type > 134)
|
|
{
|
|
bool flag42 = false;
|
|
if (this.ai[1] <= 0f)
|
|
{
|
|
flag42 = true;
|
|
}
|
|
else
|
|
{
|
|
if (Main.npc[(int)this.ai[1]].life <= 0)
|
|
{
|
|
flag42 = true;
|
|
}
|
|
}
|
|
if (flag42)
|
|
{
|
|
this.life = 0;
|
|
this.HitEffect(0, 10.0);
|
|
this.checkDead();
|
|
}
|
|
}
|
|
if (Main.netMode != 1)
|
|
{
|
|
if (this.ai[0] == 0f && this.type == 134)
|
|
{
|
|
this.ai[3] = (float)this.whoAmI;
|
|
this.realLife = this.whoAmI;
|
|
int num594 = this.whoAmI;
|
|
int num595 = 80;
|
|
for (int num596 = 0; num596 <= num595; num596++)
|
|
{
|
|
int num597 = 135;
|
|
if (num596 == num595)
|
|
{
|
|
num597 = 136;
|
|
}
|
|
int num598 = NPC.NewNPC((int)(this.position.X + (float)(this.width / 2)), (int)(this.position.Y + (float)this.height), num597, this.whoAmI);
|
|
Main.npc[num598].ai[3] = (float)this.whoAmI;
|
|
Main.npc[num598].realLife = this.whoAmI;
|
|
Main.npc[num598].ai[1] = (float)num594;
|
|
Main.npc[num594].ai[0] = (float)num598;
|
|
NetMessage.SendData(23, -1, -1, "", num598, 0f, 0f, 0f, 0);
|
|
num594 = num598;
|
|
}
|
|
}
|
|
if (this.type == 135)
|
|
{
|
|
this.localAI[0] += (float)Main.rand.Next(4);
|
|
if (this.localAI[0] >= (float)Main.rand.Next(1400, 26000))
|
|
{
|
|
this.localAI[0] = 0f;
|
|
this.TargetClosest(true);
|
|
if (Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
float num599 = 8f;
|
|
Vector2 vector70 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)(this.height / 2));
|
|
float num600 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector70.X + (float)Main.rand.Next(-20, 21);
|
|
float num601 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - vector70.Y + (float)Main.rand.Next(-20, 21);
|
|
float num602 = (float)Math.Sqrt((double)(num600 * num600 + num601 * num601));
|
|
num602 = num599 / num602;
|
|
num600 *= num602;
|
|
num601 *= num602;
|
|
num600 += (float)Main.rand.Next(-20, 21) * 0.05f;
|
|
num601 += (float)Main.rand.Next(-20, 21) * 0.05f;
|
|
int num603 = 22;
|
|
int num604 = 100;
|
|
vector70.X += num600 * 5f;
|
|
vector70.Y += num601 * 5f;
|
|
int num605 = Projectile.NewProjectile(vector70.X, vector70.Y, num600, num601, num604, num603, 0f, Main.myPlayer, 0f, 0f);
|
|
Main.projectile[num605].timeLeft = 300;
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
int num606 = (int)(this.position.X / 16f) - 1;
|
|
int num607 = (int)((this.position.X + (float)this.width) / 16f) + 2;
|
|
int num608 = (int)(this.position.Y / 16f) - 1;
|
|
int num609 = (int)((this.position.Y + (float)this.height) / 16f) + 2;
|
|
if (num606 < 0)
|
|
{
|
|
num606 = 0;
|
|
}
|
|
if (num607 > Main.maxTilesX)
|
|
{
|
|
num607 = Main.maxTilesX;
|
|
}
|
|
if (num608 < 0)
|
|
{
|
|
num608 = 0;
|
|
}
|
|
if (num609 > Main.maxTilesY)
|
|
{
|
|
num609 = Main.maxTilesY;
|
|
}
|
|
bool flag43 = false;
|
|
if (!flag43)
|
|
{
|
|
for (int num610 = num606; num610 < num607; num610++)
|
|
{
|
|
for (int num611 = num608; num611 < num609; num611++)
|
|
{
|
|
if (Main.tile[num610, num611] != null && ((Main.tile[num610, num611].nactive() && (Main.tileSolid[(int)Main.tile[num610, num611].type] || (Main.tileSolidTop[(int)Main.tile[num610, num611].type] && Main.tile[num610, num611].frameY == 0))) || Main.tile[num610, num611].liquid > 64))
|
|
{
|
|
Vector2 vector71;
|
|
vector71.X = (float)(num610 * 16);
|
|
vector71.Y = (float)(num611 * 16);
|
|
if (this.position.X + (float)this.width > vector71.X && this.position.X < vector71.X + 16f && this.position.Y + (float)this.height > vector71.Y && this.position.Y < vector71.Y + 16f)
|
|
{
|
|
flag43 = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (!flag43)
|
|
{
|
|
if (this.type != 135 || this.ai[2] != 1f)
|
|
{
|
|
Lighting.addLight((int)((this.position.X + (float)(this.width / 2)) / 16f), (int)((this.position.Y + (float)(this.height / 2)) / 16f), 0.3f, 0.1f, 0.05f);
|
|
}
|
|
this.localAI[1] = 1f;
|
|
if (this.type == 134)
|
|
{
|
|
Rectangle rectangle11 = new Rectangle((int)this.position.X, (int)this.position.Y, this.width, this.height);
|
|
int num612 = 1000;
|
|
bool flag44 = true;
|
|
if (this.position.Y > Main.player[this.target].position.Y)
|
|
{
|
|
for (int num613 = 0; num613 < 255; num613++)
|
|
{
|
|
if (Main.player[num613].active)
|
|
{
|
|
Rectangle rectangle12 = new Rectangle((int)Main.player[num613].position.X - num612, (int)Main.player[num613].position.Y - num612, num612 * 2, num612 * 2);
|
|
if (rectangle11.Intersects(rectangle12))
|
|
{
|
|
flag44 = false;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if (flag44)
|
|
{
|
|
flag43 = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.localAI[1] = 0f;
|
|
}
|
|
float num614 = 16f;
|
|
if (Main.dayTime || Main.player[this.target].dead)
|
|
{
|
|
flag43 = false;
|
|
this.velocity.Y = this.velocity.Y + 1f;
|
|
if ((double)this.position.Y > Main.worldSurface * 16.0)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 1f;
|
|
num614 = 32f;
|
|
}
|
|
if ((double)this.position.Y > Main.rockLayer * 16.0)
|
|
{
|
|
for (int num615 = 0; num615 < 200; num615++)
|
|
{
|
|
if (Main.npc[num615].aiStyle == this.aiStyle)
|
|
{
|
|
Main.npc[num615].active = false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
float num616 = 0.1f;
|
|
float num617 = 0.15f;
|
|
Vector2 vector72 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num618 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2);
|
|
float num619 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2);
|
|
num618 = (float)((int)(num618 / 16f) * 16);
|
|
num619 = (float)((int)(num619 / 16f) * 16);
|
|
vector72.X = (float)((int)(vector72.X / 16f) * 16);
|
|
vector72.Y = (float)((int)(vector72.Y / 16f) * 16);
|
|
num618 -= vector72.X;
|
|
num619 -= vector72.Y;
|
|
float num620 = (float)Math.Sqrt((double)(num618 * num618 + num619 * num619));
|
|
if (this.ai[1] > 0f && this.ai[1] < (float)Main.npc.Length)
|
|
{
|
|
try
|
|
{
|
|
vector72 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
num618 = Main.npc[(int)this.ai[1]].position.X + (float)(Main.npc[(int)this.ai[1]].width / 2) - vector72.X;
|
|
num619 = Main.npc[(int)this.ai[1]].position.Y + (float)(Main.npc[(int)this.ai[1]].height / 2) - vector72.Y;
|
|
}
|
|
catch
|
|
{
|
|
}
|
|
this.rotation = (float)Math.Atan2((double)num619, (double)num618) + 1.57f;
|
|
num620 = (float)Math.Sqrt((double)(num618 * num618 + num619 * num619));
|
|
int num621 = (int)(44f * this.scale);
|
|
num620 = (num620 - (float)num621) / num620;
|
|
num618 *= num620;
|
|
num619 *= num620;
|
|
this.velocity = default(Vector2);
|
|
this.position.X = this.position.X + num618;
|
|
this.position.Y = this.position.Y + num619;
|
|
return;
|
|
}
|
|
if (!flag43)
|
|
{
|
|
this.TargetClosest(true);
|
|
this.velocity.Y = this.velocity.Y + 0.15f;
|
|
if (this.velocity.Y > num614)
|
|
{
|
|
this.velocity.Y = num614;
|
|
}
|
|
if ((double)(Math.Abs(this.velocity.X) + Math.Abs(this.velocity.Y)) < (double)num614 * 0.4)
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - num616 * 1.1f;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.X = this.velocity.X + num616 * 1.1f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y == num614)
|
|
{
|
|
if (this.velocity.X < num618)
|
|
{
|
|
this.velocity.X = this.velocity.X + num616;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > num618)
|
|
{
|
|
this.velocity.X = this.velocity.X - num616;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > 4f)
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num616 * 0.9f;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.X = this.velocity.X - num616 * 0.9f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.soundDelay == 0)
|
|
{
|
|
float num622 = num620 / 40f;
|
|
if (num622 < 10f)
|
|
{
|
|
num622 = 10f;
|
|
}
|
|
if (num622 > 20f)
|
|
{
|
|
num622 = 20f;
|
|
}
|
|
this.soundDelay = (int)num622;
|
|
Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 1);
|
|
}
|
|
num620 = (float)Math.Sqrt((double)(num618 * num618 + num619 * num619));
|
|
float num623 = Math.Abs(num618);
|
|
float num624 = Math.Abs(num619);
|
|
float num625 = num614 / num620;
|
|
num618 *= num625;
|
|
num619 *= num625;
|
|
if (((this.velocity.X > 0f && num618 > 0f) || (this.velocity.X < 0f && num618 < 0f)) && ((this.velocity.Y > 0f && num619 > 0f) || (this.velocity.Y < 0f && num619 < 0f)))
|
|
{
|
|
if (this.velocity.X < num618)
|
|
{
|
|
this.velocity.X = this.velocity.X + num617;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > num618)
|
|
{
|
|
this.velocity.X = this.velocity.X - num617;
|
|
}
|
|
}
|
|
if (this.velocity.Y < num619)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num617;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > num619)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num617;
|
|
}
|
|
}
|
|
}
|
|
if ((this.velocity.X > 0f && num618 > 0f) || (this.velocity.X < 0f && num618 < 0f) || (this.velocity.Y > 0f && num619 > 0f) || (this.velocity.Y < 0f && num619 < 0f))
|
|
{
|
|
if (this.velocity.X < num618)
|
|
{
|
|
this.velocity.X = this.velocity.X + num616;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > num618)
|
|
{
|
|
this.velocity.X = this.velocity.X - num616;
|
|
}
|
|
}
|
|
if (this.velocity.Y < num619)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num616;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > num619)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num616;
|
|
}
|
|
}
|
|
if ((double)Math.Abs(num619) < (double)num614 * 0.2 && ((this.velocity.X > 0f && num618 < 0f) || (this.velocity.X < 0f && num618 > 0f)))
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num616 * 2f;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num616 * 2f;
|
|
}
|
|
}
|
|
if ((double)Math.Abs(num618) < (double)num614 * 0.2 && ((this.velocity.Y > 0f && num619 < 0f) || (this.velocity.Y < 0f && num619 > 0f)))
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num616 * 2f;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.X = this.velocity.X - num616 * 2f;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num623 > num624)
|
|
{
|
|
if (this.velocity.X < num618)
|
|
{
|
|
this.velocity.X = this.velocity.X + num616 * 1.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > num618)
|
|
{
|
|
this.velocity.X = this.velocity.X - num616 * 1.1f;
|
|
}
|
|
}
|
|
if ((double)(Math.Abs(this.velocity.X) + Math.Abs(this.velocity.Y)) < (double)num614 * 0.5)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num616;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num616;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y < num619)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num616 * 1.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > num619)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num616 * 1.1f;
|
|
}
|
|
}
|
|
if ((double)(Math.Abs(this.velocity.X) + Math.Abs(this.velocity.Y)) < (double)num614 * 0.5)
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num616;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.X = this.velocity.X - num616;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
this.rotation = (float)Math.Atan2((double)this.velocity.Y, (double)this.velocity.X) + 1.57f;
|
|
if (this.type == 134)
|
|
{
|
|
if (flag43)
|
|
{
|
|
if (this.localAI[0] != 1f)
|
|
{
|
|
this.netUpdate = true;
|
|
}
|
|
this.localAI[0] = 1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.localAI[0] != 0f)
|
|
{
|
|
this.netUpdate = true;
|
|
}
|
|
this.localAI[0] = 0f;
|
|
}
|
|
if (((this.velocity.X > 0f && this.oldVelocity.X < 0f) || (this.velocity.X < 0f && this.oldVelocity.X > 0f) || (this.velocity.Y > 0f && this.oldVelocity.Y < 0f) || (this.velocity.Y < 0f && this.oldVelocity.Y > 0f)) && !this.justHit)
|
|
{
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 38)
|
|
{
|
|
float num626 = 4f;
|
|
float num627 = 1f;
|
|
if (this.type == 143)
|
|
{
|
|
num626 = 3f;
|
|
num627 = 0.7f;
|
|
}
|
|
if (this.type == 145)
|
|
{
|
|
num626 = 3.5f;
|
|
num627 = 0.8f;
|
|
}
|
|
if (this.type == 143)
|
|
{
|
|
this.ai[2] += 1f;
|
|
if (this.ai[2] >= 120f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
if (Main.netMode != 1)
|
|
{
|
|
Vector2 vector73 = new Vector2(this.position.X + (float)this.width * 0.5f - (float)(this.direction * 12), this.position.Y + (float)this.height * 0.5f);
|
|
float speedX = (float)(12 * this.spriteDirection);
|
|
float speedY = 0f;
|
|
if (Main.netMode != 1)
|
|
{
|
|
int num628 = 25;
|
|
int num629 = 110;
|
|
int num630 = Projectile.NewProjectile(vector73.X, vector73.Y, speedX, speedY, num629, num628, 0f, Main.myPlayer, 0f, 0f);
|
|
Main.projectile[num630].ai[0] = 2f;
|
|
Main.projectile[num630].timeLeft = 300;
|
|
Main.projectile[num630].friendly = false;
|
|
NetMessage.SendData(27, -1, -1, "", num630, 0f, 0f, 0f, 0);
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 144 && this.ai[1] >= 3f)
|
|
{
|
|
this.TargetClosest(true);
|
|
this.spriteDirection = this.direction;
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.9f;
|
|
this.ai[2] += 1f;
|
|
if ((double)this.velocity.X > -0.3 && (double)this.velocity.X < 0.3)
|
|
{
|
|
this.velocity.X = 0f;
|
|
}
|
|
if (this.ai[2] >= 200f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
this.ai[1] = 0f;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 145 && this.ai[1] >= 3f)
|
|
{
|
|
this.TargetClosest(true);
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.9f;
|
|
this.ai[2] += 1f;
|
|
if ((double)this.velocity.X > -0.3 && (double)this.velocity.X < 0.3)
|
|
{
|
|
this.velocity.X = 0f;
|
|
}
|
|
if (this.ai[2] >= 16f)
|
|
{
|
|
this.ai[2] = 0f;
|
|
this.ai[1] = 0f;
|
|
}
|
|
}
|
|
if (this.velocity.X == 0f && this.velocity.Y == 0f && this.ai[2] == 8f)
|
|
{
|
|
float num631 = 10f;
|
|
Vector2 vector74 = new Vector2(this.position.X + (float)this.width * 0.5f - (float)(this.direction * 12), this.position.Y + (float)this.height * 0.25f);
|
|
float num632 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector74.X;
|
|
float num633 = Main.player[this.target].position.Y - vector74.Y;
|
|
float num634 = (float)Math.Sqrt((double)(num632 * num632 + num633 * num633));
|
|
num634 = num631 / num634;
|
|
num632 *= num634;
|
|
num633 *= num634;
|
|
if (Main.netMode != 1)
|
|
{
|
|
int num635 = 35;
|
|
int num636 = 109;
|
|
int num637 = Projectile.NewProjectile(vector74.X, vector74.Y, num632, num633, num636, num635, 0f, Main.myPlayer, 0f, 0f);
|
|
Main.projectile[num637].ai[0] = 2f;
|
|
Main.projectile[num637].timeLeft = 300;
|
|
Main.projectile[num637].friendly = false;
|
|
NetMessage.SendData(27, -1, -1, "", num637, 0f, 0f, 0f, 0);
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
if (this.localAI[2] == this.position.X)
|
|
{
|
|
this.direction *= -1;
|
|
this.ai[3] = 60f;
|
|
}
|
|
this.localAI[2] = this.position.X;
|
|
if (this.ai[3] == 0f)
|
|
{
|
|
this.TargetClosest(true);
|
|
}
|
|
this.ai[0] += 1f;
|
|
if (this.ai[0] > 2f)
|
|
{
|
|
this.ai[0] = 0f;
|
|
this.ai[1] += 1f;
|
|
this.velocity.Y = -8.2f;
|
|
this.velocity.X = this.velocity.X + (float)this.direction * num627 * 1.1f;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.Y = -6f;
|
|
this.velocity.X = this.velocity.X + (float)this.direction * num627 * 0.9f;
|
|
}
|
|
this.spriteDirection = this.direction;
|
|
}
|
|
this.velocity.X = this.velocity.X + (float)this.direction * num627 * 0.01f;
|
|
}
|
|
}
|
|
if (this.ai[3] > 0f)
|
|
{
|
|
this.ai[3] -= 1f;
|
|
}
|
|
if (this.velocity.X > num626 && this.direction > 0)
|
|
{
|
|
this.velocity.X = 4f;
|
|
}
|
|
if (this.velocity.X < -num626 && this.direction < 0)
|
|
{
|
|
this.velocity.X = -4f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 39)
|
|
{
|
|
if (this.target < 0 || Main.player[this.target].dead || this.direction == 0)
|
|
{
|
|
this.TargetClosest(true);
|
|
}
|
|
bool flag45 = true;
|
|
int num638 = 0;
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
num638 = -1;
|
|
}
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
num638 = 1;
|
|
}
|
|
Vector2 vector75 = this.position;
|
|
vector75.X += this.velocity.X;
|
|
int num639 = (int)((vector75.X + (float)(this.width / 2) + (float)((this.width / 2 + 1) * num638)) / 16f);
|
|
int num640 = (int)((vector75.Y + (float)this.height - 1f) / 16f);
|
|
if ((float)(num639 * 16) < vector75.X + (float)this.width && (float)(num639 * 16 + 16) > vector75.X && ((Main.tile[num639, num640].nactive() && Main.tile[num639, num640].slope() == 0 && Main.tile[num639, num640 - 1].slope() == 0 && ((Main.tileSolid[(int)Main.tile[num639, num640].type] && !Main.tileSolidTop[(int)Main.tile[num639, num640].type]) || (flag45 && Main.tileSolidTop[(int)Main.tile[num639, num640].type] && (!Main.tileSolid[(int)Main.tile[num639, num640 - 1].type] || !Main.tile[num639, num640 - 1].nactive()) && Main.tile[num639, num640].type != 16 && Main.tile[num639, num640].type != 18 && Main.tile[num639, num640].type != 134))) || (Main.tile[num639, num640 - 1].halfBrick() && Main.tile[num639, num640 - 1].nactive())) && (!Main.tile[num639, num640 - 1].nactive() || !Main.tileSolid[(int)Main.tile[num639, num640 - 1].type] || Main.tileSolidTop[(int)Main.tile[num639, num640 - 1].type] || (Main.tile[num639, num640 - 1].halfBrick() && (!Main.tile[num639, num640 - 4].nactive() || !Main.tileSolid[(int)Main.tile[num639, num640 - 4].type] || Main.tileSolidTop[(int)Main.tile[num639, num640 - 4].type]))) && (!Main.tile[num639, num640 - 2].nactive() || !Main.tileSolid[(int)Main.tile[num639, num640 - 2].type] || Main.tileSolidTop[(int)Main.tile[num639, num640 - 2].type]) && (!Main.tile[num639, num640 - 3].nactive() || !Main.tileSolid[(int)Main.tile[num639, num640 - 3].type] || Main.tileSolidTop[(int)Main.tile[num639, num640 - 3].type]) && (!Main.tile[num639 - num638, num640 - 3].nactive() || !Main.tileSolid[(int)Main.tile[num639 - num638, num640 - 3].type] || Main.tileSolidTop[(int)Main.tile[num639 - num638, num640 - 3].type]))
|
|
{
|
|
float num641 = (float)(num640 * 16);
|
|
if (Main.tile[num639, num640].halfBrick())
|
|
{
|
|
num641 += 8f;
|
|
}
|
|
if (Main.tile[num639, num640 - 1].halfBrick())
|
|
{
|
|
num641 -= 8f;
|
|
}
|
|
if (num641 < vector75.Y + (float)this.height)
|
|
{
|
|
float num642 = vector75.Y + (float)this.height - num641;
|
|
if ((double)num642 <= 16.1)
|
|
{
|
|
this.gfxOffY += this.position.Y + (float)this.height - num641;
|
|
this.position.Y = num641 - (float)this.height;
|
|
if (num642 < 9f)
|
|
{
|
|
this.stepSpeed = 0.75f;
|
|
}
|
|
else
|
|
{
|
|
this.stepSpeed = 1.5f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.justHit)
|
|
{
|
|
this.ai[0] = 0f;
|
|
this.ai[1] = 0f;
|
|
this.TargetClosest(true);
|
|
}
|
|
if (this.type == 154 && Main.rand.Next(10) == 0)
|
|
{
|
|
int num643 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 67, this.velocity.X * 0.5f, this.velocity.Y * 0.5f, 90, default(Color), 1.5f);
|
|
Main.dust[num643].noGravity = true;
|
|
Main.dust[num643].velocity *= 0.2f;
|
|
}
|
|
if (this.ai[0] == 0f)
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.direction = -1;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.direction = 1;
|
|
}
|
|
}
|
|
this.spriteDirection = this.direction;
|
|
Vector2 vector76 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num644 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector76.X;
|
|
float num645 = Main.player[this.target].position.Y - vector76.Y;
|
|
float num646 = (float)Math.Sqrt((double)(num644 * num644 + num645 * num645));
|
|
bool flag46 = Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height);
|
|
if (num646 > 200f && flag46)
|
|
{
|
|
this.ai[1] += 4f;
|
|
}
|
|
if (num646 > 600f && (flag46 || this.position.Y + (float)this.height > Main.player[this.target].position.Y - 200f))
|
|
{
|
|
this.ai[1] += 10f;
|
|
}
|
|
if (this.wet)
|
|
{
|
|
this.ai[1] = 1000f;
|
|
}
|
|
this.defense = 30;
|
|
this.damage = 80;
|
|
this.knockBackResist = 0.3f;
|
|
this.ai[1] += 1f;
|
|
if (this.ai[1] >= 400f)
|
|
{
|
|
this.ai[1] = 0f;
|
|
this.ai[0] = 1f;
|
|
}
|
|
if (!this.justHit && this.velocity.X != this.oldVelocity.X)
|
|
{
|
|
this.direction *= -1;
|
|
}
|
|
if (this.velocity.Y == 0f && Main.player[this.target].position.Y < this.position.Y + (float)this.height)
|
|
{
|
|
int num647;
|
|
int num648;
|
|
if (this.direction > 0)
|
|
{
|
|
num647 = (int)(((double)this.position.X + (double)this.width * 0.5) / 16.0);
|
|
num648 = num647 + 3;
|
|
}
|
|
else
|
|
{
|
|
num648 = (int)(((double)this.position.X + (double)this.width * 0.5) / 16.0);
|
|
num647 = num648 - 3;
|
|
}
|
|
int num649 = (int)((this.position.Y + (float)this.height + 2f) / 16f) - 1;
|
|
int num650 = num649 + 4;
|
|
bool flag47 = false;
|
|
for (int num651 = num647; num651 <= num648; num651++)
|
|
{
|
|
for (int num652 = num649; num652 <= num650; num652++)
|
|
{
|
|
if (Main.tile[num651, num652] != null && Main.tile[num651, num652].nactive() && Main.tileSolid[(int)Main.tile[num651, num652].type])
|
|
{
|
|
flag47 = true;
|
|
}
|
|
}
|
|
}
|
|
if (!flag47)
|
|
{
|
|
this.direction *= -1;
|
|
this.velocity.X = 0.1f * (float)this.direction;
|
|
}
|
|
}
|
|
if (num646 < 400f)
|
|
{
|
|
if (this.velocity.X < -1f || this.velocity.X > 1f)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.velocity *= 0.8f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < 1f && this.direction == 1)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.07f;
|
|
if (this.velocity.X > 1f)
|
|
{
|
|
this.velocity.X = 1f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > -1f && this.direction == -1)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.07f;
|
|
if (this.velocity.X < -1f)
|
|
{
|
|
this.velocity.X = -1f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < -1.5f || this.velocity.X > 1.5f)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.velocity *= 0.8f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < 1.5f && this.direction == 1)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.07f;
|
|
if (this.velocity.X > 1.5f)
|
|
{
|
|
this.velocity.X = 1.5f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > -1.5f && this.direction == -1)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.07f;
|
|
if (this.velocity.X < -1.5f)
|
|
{
|
|
this.velocity.X = -1.5f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] == 1f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.5f;
|
|
this.ai[1] += 1f;
|
|
if (this.ai[1] >= 30f)
|
|
{
|
|
this.netUpdate = true;
|
|
this.TargetClosest(true);
|
|
this.ai[1] = 0f;
|
|
this.ai[0] = 3f;
|
|
this.ai[2] = 0f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] == 3f)
|
|
{
|
|
if (this.type == 154 && Main.rand.Next(3) < 2)
|
|
{
|
|
int num653 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 67, this.velocity.X * 0.5f, this.velocity.Y * 0.5f, 90, default(Color), 1.5f);
|
|
Main.dust[num653].noGravity = true;
|
|
Main.dust[num653].velocity *= 0.2f;
|
|
}
|
|
this.damage = 120;
|
|
this.defense = 70;
|
|
this.ai[1] += 1f;
|
|
if (this.ai[1] == 1f)
|
|
{
|
|
this.netUpdate = true;
|
|
this.TargetClosest(true);
|
|
this.ai[2] += 0.3f;
|
|
this.rotation += this.ai[2] * (float)this.direction;
|
|
this.ai[1] += 1f;
|
|
bool flag48 = Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height);
|
|
float num654 = 10f;
|
|
if (!flag48)
|
|
{
|
|
num654 = 6f;
|
|
}
|
|
Vector2 vector77 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num655 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector77.X;
|
|
float num656 = Math.Abs(num655) * 0.2f;
|
|
if (this.directionY > 0)
|
|
{
|
|
num656 = 0f;
|
|
}
|
|
float num657 = Main.player[this.target].position.Y - vector77.Y - num656;
|
|
float num658 = (float)Math.Sqrt((double)(num655 * num655 + num657 * num657));
|
|
this.netUpdate = true;
|
|
num658 = num654 / num658;
|
|
num655 *= num658;
|
|
num657 *= num658;
|
|
if (!flag48)
|
|
{
|
|
num657 = -10f;
|
|
}
|
|
this.velocity.X = num655;
|
|
this.velocity.Y = num657;
|
|
this.ai[3] = this.velocity.X;
|
|
}
|
|
else
|
|
{
|
|
if (this.position.X + (float)this.width > Main.player[this.target].position.X && this.position.X < Main.player[this.target].position.X + (float)Main.player[this.target].width && this.position.Y < Main.player[this.target].position.Y + (float)Main.player[this.target].height)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.8f;
|
|
this.ai[3] = 0f;
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.2f;
|
|
}
|
|
}
|
|
if (this.ai[3] != 0f)
|
|
{
|
|
this.velocity.X = this.ai[3];
|
|
this.velocity.Y = this.velocity.Y - 0.22f;
|
|
}
|
|
if (this.ai[1] >= 90f)
|
|
{
|
|
this.noGravity = false;
|
|
this.ai[1] = 0f;
|
|
this.ai[0] = 4f;
|
|
}
|
|
}
|
|
if (this.wet && this.directionY < 0)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.3f;
|
|
}
|
|
this.rotation += this.ai[2] * (float)this.direction;
|
|
return;
|
|
}
|
|
if (this.ai[0] == 4f)
|
|
{
|
|
if (this.wet && this.directionY < 0)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.3f;
|
|
}
|
|
this.velocity.X = this.velocity.X * 0.96f;
|
|
if (this.ai[2] > 0f)
|
|
{
|
|
this.ai[2] -= 0.01f;
|
|
this.rotation += this.ai[2] * (float)this.direction;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y >= 0f)
|
|
{
|
|
this.rotation = 0f;
|
|
}
|
|
}
|
|
if (this.ai[2] <= 0f && (this.velocity.Y == 0f || this.wet))
|
|
{
|
|
this.netUpdate = true;
|
|
this.rotation = 0f;
|
|
this.ai[2] = 0f;
|
|
this.ai[1] = 0f;
|
|
this.ai[0] = 5f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] == 5f)
|
|
{
|
|
this.rotation = 0f;
|
|
this.velocity.X = 0f;
|
|
this.ai[1] += 1f;
|
|
if (this.ai[1] >= 30f)
|
|
{
|
|
this.TargetClosest(true);
|
|
this.netUpdate = true;
|
|
this.ai[1] = 0f;
|
|
this.ai[0] = 0f;
|
|
}
|
|
if (this.wet)
|
|
{
|
|
this.ai[0] = 3f;
|
|
this.ai[1] = 0f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 40)
|
|
{
|
|
if (this.target < 0 || this.target == 255 || Main.player[this.target].dead)
|
|
{
|
|
this.TargetClosest(true);
|
|
}
|
|
float num659 = 2f;
|
|
float num660 = 0.08f;
|
|
Vector2 vector78 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num661 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2);
|
|
float num662 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2);
|
|
num661 = (float)((int)(num661 / 8f) * 8);
|
|
num662 = (float)((int)(num662 / 8f) * 8);
|
|
vector78.X = (float)((int)(vector78.X / 8f) * 8);
|
|
vector78.Y = (float)((int)(vector78.Y / 8f) * 8);
|
|
num661 -= vector78.X;
|
|
num662 -= vector78.Y;
|
|
float num663 = (float)Math.Sqrt((double)(num661 * num661 + num662 * num662));
|
|
if (num663 == 0f)
|
|
{
|
|
num661 = this.velocity.X;
|
|
num662 = this.velocity.Y;
|
|
}
|
|
else
|
|
{
|
|
num663 = num659 / num663;
|
|
num661 *= num663;
|
|
num662 *= num663;
|
|
}
|
|
if (Main.player[this.target].dead)
|
|
{
|
|
num661 = (float)this.direction * num659 / 2f;
|
|
num662 = -num659 / 2f;
|
|
}
|
|
this.spriteDirection = -1;
|
|
if (!Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
this.ai[0] += 1f;
|
|
if (this.ai[0] > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.023f;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.023f;
|
|
}
|
|
if (this.ai[0] < -100f || this.ai[0] > 100f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.023f;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.023f;
|
|
}
|
|
if (this.ai[0] > 200f)
|
|
{
|
|
this.ai[0] = -200f;
|
|
}
|
|
this.velocity.X = this.velocity.X + num661 * 0.007f;
|
|
this.velocity.Y = this.velocity.Y + num662 * 0.007f;
|
|
this.rotation = (float)Math.Atan2((double)this.velocity.Y, (double)this.velocity.X);
|
|
if ((double)this.velocity.X > 1.5)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.9f;
|
|
}
|
|
if ((double)this.velocity.X < -1.5)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.9f;
|
|
}
|
|
if ((double)this.velocity.Y > 1.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.9f;
|
|
}
|
|
if ((double)this.velocity.Y < -1.5)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.9f;
|
|
}
|
|
if (this.velocity.X > 3f)
|
|
{
|
|
this.velocity.X = 3f;
|
|
}
|
|
if (this.velocity.X < -3f)
|
|
{
|
|
this.velocity.X = -3f;
|
|
}
|
|
if (this.velocity.Y > 3f)
|
|
{
|
|
this.velocity.Y = 3f;
|
|
}
|
|
if (this.velocity.Y < -3f)
|
|
{
|
|
this.velocity.Y = -3f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < num661)
|
|
{
|
|
this.velocity.X = this.velocity.X + num660;
|
|
if (this.velocity.X < 0f && num661 > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num660;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > num661)
|
|
{
|
|
this.velocity.X = this.velocity.X - num660;
|
|
if (this.velocity.X > 0f && num661 < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - num660;
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.Y < num662)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num660;
|
|
if (this.velocity.Y < 0f && num662 > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num660;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > num662)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num660;
|
|
if (this.velocity.Y > 0f && num662 < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num660;
|
|
}
|
|
}
|
|
}
|
|
this.rotation = (float)Math.Atan2((double)num662, (double)num661);
|
|
}
|
|
float num664 = 0.5f;
|
|
if (this.collideX)
|
|
{
|
|
this.netUpdate = true;
|
|
this.velocity.X = this.oldVelocity.X * -num664;
|
|
if (this.direction == -1 && this.velocity.X > 0f && this.velocity.X < 2f)
|
|
{
|
|
this.velocity.X = 2f;
|
|
}
|
|
if (this.direction == 1 && this.velocity.X < 0f && this.velocity.X > -2f)
|
|
{
|
|
this.velocity.X = -2f;
|
|
}
|
|
}
|
|
if (this.collideY)
|
|
{
|
|
this.netUpdate = true;
|
|
this.velocity.Y = this.oldVelocity.Y * -num664;
|
|
if (this.velocity.Y > 0f && (double)this.velocity.Y < 1.5)
|
|
{
|
|
this.velocity.Y = 2f;
|
|
}
|
|
if (this.velocity.Y < 0f && (double)this.velocity.Y > -1.5)
|
|
{
|
|
this.velocity.Y = -2f;
|
|
}
|
|
}
|
|
if (((this.velocity.X > 0f && this.oldVelocity.X < 0f) || (this.velocity.X < 0f && this.oldVelocity.X > 0f) || (this.velocity.Y > 0f && this.oldVelocity.Y < 0f) || (this.velocity.Y < 0f && this.oldVelocity.Y > 0f)) && !this.justHit)
|
|
{
|
|
this.netUpdate = true;
|
|
}
|
|
if (Main.netMode != 1)
|
|
{
|
|
int num665 = (int)this.center().X / 16;
|
|
int num666 = (int)this.center().Y / 16;
|
|
bool flag49 = false;
|
|
for (int num667 = num665 - 1; num667 <= num665 + 1; num667++)
|
|
{
|
|
for (int num668 = num666 - 1; num668 <= num666 + 1; num668++)
|
|
{
|
|
if (Main.tile[num667, num668].wall > 0)
|
|
{
|
|
flag49 = true;
|
|
}
|
|
}
|
|
}
|
|
if (!flag49)
|
|
{
|
|
if (this.type == 237)
|
|
{
|
|
this.Transform(236);
|
|
return;
|
|
}
|
|
if (this.type == 238)
|
|
{
|
|
this.Transform(163);
|
|
return;
|
|
}
|
|
if (this.type == 240)
|
|
{
|
|
this.Transform(239);
|
|
return;
|
|
}
|
|
this.Transform(164);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 41)
|
|
{
|
|
if (this.ai[2] > 1f)
|
|
{
|
|
this.ai[2] -= 1f;
|
|
}
|
|
if (this.ai[2] == 0f)
|
|
{
|
|
this.ai[0] = -100f;
|
|
this.ai[2] = 1f;
|
|
this.TargetClosest(true);
|
|
this.spriteDirection = this.direction;
|
|
}
|
|
if (this.wet && this.type != 177)
|
|
{
|
|
if (this.collideX)
|
|
{
|
|
this.direction *= -this.direction;
|
|
this.spriteDirection = this.direction;
|
|
}
|
|
if (this.collideY)
|
|
{
|
|
this.TargetClosest(true);
|
|
if (this.oldVelocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = 5f;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 2f;
|
|
}
|
|
this.spriteDirection = this.direction;
|
|
}
|
|
if (this.velocity.Y > 4f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.95f;
|
|
}
|
|
this.velocity.Y = this.velocity.Y - 0.3f;
|
|
if (this.velocity.Y < -4f)
|
|
{
|
|
this.velocity.Y = -4f;
|
|
}
|
|
}
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
if (this.ai[3] == this.position.X)
|
|
{
|
|
this.direction *= -1;
|
|
this.ai[2] = 300f;
|
|
}
|
|
this.ai[3] = 0f;
|
|
this.velocity.X = this.velocity.X * 0.8f;
|
|
if ((double)this.velocity.X > -0.1 && (double)this.velocity.X < 0.1)
|
|
{
|
|
this.velocity.X = 0f;
|
|
}
|
|
if (this.type == 177)
|
|
{
|
|
this.ai[0] += 2f;
|
|
}
|
|
else
|
|
{
|
|
this.ai[0] += 5f;
|
|
}
|
|
Vector2 vector79 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num669 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector79.X;
|
|
float num670 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - vector79.Y;
|
|
float num671 = (float)Math.Sqrt((double)(num669 * num669 + num670 * num670));
|
|
float num672 = 400f / num671;
|
|
if (this.type == 177)
|
|
{
|
|
num672 *= 5f;
|
|
}
|
|
else
|
|
{
|
|
num672 *= 10f;
|
|
}
|
|
if (num672 > 30f)
|
|
{
|
|
num672 = 30f;
|
|
}
|
|
this.ai[0] += (float)((int)num672);
|
|
if (this.ai[0] >= 0f)
|
|
{
|
|
this.netUpdate = true;
|
|
if (this.ai[2] == 1f)
|
|
{
|
|
this.TargetClosest(true);
|
|
}
|
|
if (this.type == 177)
|
|
{
|
|
if (this.ai[1] == 2f)
|
|
{
|
|
this.velocity.Y = -11.5f;
|
|
this.velocity.X = this.velocity.X + 2f * (float)this.direction;
|
|
if (num671 < 350f && num671 > 200f)
|
|
{
|
|
this.velocity.X = this.velocity.X + (float)this.direction;
|
|
}
|
|
this.ai[0] = -200f;
|
|
this.ai[1] = 0f;
|
|
this.ai[3] = this.position.X;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.Y = -7.5f;
|
|
this.velocity.X = this.velocity.X + (float)(4 * this.direction);
|
|
if (num671 < 350f && num671 > 200f)
|
|
{
|
|
this.velocity.X = this.velocity.X + (float)this.direction;
|
|
}
|
|
this.ai[0] = -120f;
|
|
this.ai[1] += 1f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] == 3f)
|
|
{
|
|
this.velocity.Y = -9f;
|
|
this.velocity.X = this.velocity.X + (float)(3 * this.direction);
|
|
if (num671 < 350f && num671 > 200f)
|
|
{
|
|
this.velocity.X = this.velocity.X + (float)this.direction;
|
|
}
|
|
this.ai[0] = -200f;
|
|
this.ai[1] = 0f;
|
|
this.ai[3] = this.position.X;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.Y = -5f;
|
|
this.velocity.X = this.velocity.X + (float)(5 * this.direction);
|
|
if (num671 < 350f && num671 > 200f)
|
|
{
|
|
this.velocity.X = this.velocity.X + (float)this.direction;
|
|
}
|
|
this.ai[0] = -120f;
|
|
this.ai[1] += 1f;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] >= -30f)
|
|
{
|
|
this.aiAction = 1;
|
|
}
|
|
}
|
|
this.spriteDirection = this.direction;
|
|
return;
|
|
}
|
|
if (this.target < 255)
|
|
{
|
|
if (this.type == 177)
|
|
{
|
|
bool flag50 = false;
|
|
if (this.position.Y + (float)this.height < Main.player[this.target].position.Y && this.position.X + (float)this.width > Main.player[this.target].position.X && this.position.X < Main.player[this.target].position.X + (float)Main.player[this.target].width)
|
|
{
|
|
flag50 = true;
|
|
this.velocity.X = this.velocity.X * 0.92f;
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.9f;
|
|
this.velocity.Y = this.velocity.Y + 0.1f;
|
|
}
|
|
}
|
|
if (!flag50 && ((this.direction == 1 && this.velocity.X < 4f) || (this.direction == -1 && this.velocity.X > -4f)))
|
|
{
|
|
if ((this.direction == -1 && (double)this.velocity.X < 0.1) || (this.direction == 1 && (double)this.velocity.X > -0.1))
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.2f * (float)this.direction;
|
|
return;
|
|
}
|
|
this.velocity.X = this.velocity.X * 0.93f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if ((this.direction == 1 && this.velocity.X < 3f) || (this.direction == -1 && this.velocity.X > -3f))
|
|
{
|
|
if ((this.direction == -1 && (double)this.velocity.X < 0.1) || (this.direction == 1 && (double)this.velocity.X > -0.1))
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.2f * (float)this.direction;
|
|
return;
|
|
}
|
|
this.velocity.X = this.velocity.X * 0.93f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 42)
|
|
{
|
|
this.TargetClosest(true);
|
|
if (this.ai[0] == 0f)
|
|
{
|
|
if (this.target >= 0)
|
|
{
|
|
Vector2 vector80 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num673 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector80.X;
|
|
float num674 = Main.player[this.target].position.Y - vector80.Y;
|
|
float num675 = (float)Math.Sqrt((double)(num673 * num673 + num674 * num674));
|
|
if (num675 < 200f && Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
this.ai[0] = 1f;
|
|
}
|
|
}
|
|
if (this.velocity.X != 0f || this.velocity.Y < 0f || this.velocity.Y > 2f || this.life != this.lifeMax)
|
|
{
|
|
this.ai[0] = 1f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.ai[0] += 1f;
|
|
if (this.ai[0] >= 21f)
|
|
{
|
|
this.ai[0] = 21f;
|
|
this.Transform(196);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 43)
|
|
{
|
|
if (this.target == -1 || Main.player[this.target].dead || !Main.player[this.target].active)
|
|
{
|
|
this.TargetClosest(true);
|
|
}
|
|
if (this.ai[0] == -1f && Main.netMode != 1)
|
|
{
|
|
float num676 = this.ai[1];
|
|
int num677;
|
|
do
|
|
{
|
|
num677 = Main.rand.Next(3);
|
|
if (num677 == 1)
|
|
{
|
|
num677 = 2;
|
|
}
|
|
else
|
|
{
|
|
if (num677 == 2)
|
|
{
|
|
num677 = 3;
|
|
}
|
|
}
|
|
}
|
|
while ((float)num677 == num676);
|
|
this.ai[0] = (float)num677;
|
|
this.ai[1] = 0f;
|
|
this.ai[2] = 0f;
|
|
}
|
|
if (this.ai[0] == 0f)
|
|
{
|
|
if (this.ai[1] > 4f && this.ai[1] % 2f == 0f)
|
|
{
|
|
this.ai[0] = -1f;
|
|
this.ai[1] = 0f;
|
|
this.ai[2] = 0f;
|
|
this.netUpdate = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] % 2f == 0f)
|
|
{
|
|
this.TargetClosest(true);
|
|
if (Math.Abs(this.position.Y + (float)(this.height / 2) - (Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2))) < 20f)
|
|
{
|
|
this.localAI[0] = 1f;
|
|
this.ai[1] += 1f;
|
|
this.ai[2] = 0f;
|
|
float num678 = 12f;
|
|
Vector2 vector81 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num679 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector81.X;
|
|
float num680 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector81.Y;
|
|
float num681 = (float)Math.Sqrt((double)(num679 * num679 + num680 * num680));
|
|
num681 = num678 / num681;
|
|
this.velocity.X = num679 * num681;
|
|
this.velocity.Y = num680 * num681;
|
|
this.spriteDirection = this.direction;
|
|
Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0);
|
|
}
|
|
else
|
|
{
|
|
this.localAI[0] = 0f;
|
|
if (this.position.Y + (float)(this.height / 2) < Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2))
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.15f;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.15f;
|
|
}
|
|
if (this.velocity.Y < -12f)
|
|
{
|
|
this.velocity.Y = -12f;
|
|
}
|
|
if (this.velocity.Y > 12f)
|
|
{
|
|
this.velocity.Y = 12f;
|
|
}
|
|
if (Math.Abs(this.position.X + (float)(this.width / 2) - (Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2))) > 600f)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.15f * (float)this.direction;
|
|
}
|
|
else
|
|
{
|
|
if (Math.Abs(this.position.X + (float)(this.width / 2) - (Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2))) < 300f)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.15f * (float)this.direction;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.8f;
|
|
}
|
|
}
|
|
if (this.velocity.X < -16f)
|
|
{
|
|
this.velocity.X = -16f;
|
|
}
|
|
if (this.velocity.X > 16f)
|
|
{
|
|
this.velocity.X = 16f;
|
|
}
|
|
this.spriteDirection = this.direction;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.direction = -1;
|
|
}
|
|
else
|
|
{
|
|
this.direction = 1;
|
|
}
|
|
this.spriteDirection = this.direction;
|
|
int num682 = 1;
|
|
if (this.position.X + (float)(this.width / 2) < Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2))
|
|
{
|
|
num682 = -1;
|
|
}
|
|
if (this.direction == num682 && Math.Abs(this.position.X + (float)(this.width / 2) - (Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2))) > 600f)
|
|
{
|
|
this.ai[2] = 1f;
|
|
}
|
|
if (this.ai[2] == 1f)
|
|
{
|
|
this.TargetClosest(true);
|
|
this.spriteDirection = this.direction;
|
|
this.localAI[0] = 0f;
|
|
this.velocity *= 0.9f;
|
|
if ((double)(Math.Abs(this.velocity.X) + Math.Abs(this.velocity.Y)) < 0.1)
|
|
{
|
|
this.ai[2] = 0f;
|
|
this.ai[1] += 1f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.localAI[0] = 1f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.ai[0] == 2f)
|
|
{
|
|
this.TargetClosest(true);
|
|
this.spriteDirection = this.direction;
|
|
float num683 = 12f;
|
|
float num684 = 0.07f;
|
|
Vector2 vector82 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num685 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector82.X;
|
|
float num686 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - 200f - vector82.Y;
|
|
float num687 = (float)Math.Sqrt((double)(num685 * num685 + num686 * num686));
|
|
if (num687 < 200f)
|
|
{
|
|
this.ai[0] = 1f;
|
|
this.ai[1] = 0f;
|
|
this.netUpdate = true;
|
|
}
|
|
else
|
|
{
|
|
num687 = num683 / num687;
|
|
if (this.velocity.X < num685)
|
|
{
|
|
this.velocity.X = this.velocity.X + num684;
|
|
if (this.velocity.X < 0f && num685 > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num684;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > num685)
|
|
{
|
|
this.velocity.X = this.velocity.X - num684;
|
|
if (this.velocity.X > 0f && num685 < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - num684;
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.Y < num686)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num684;
|
|
if (this.velocity.Y < 0f && num686 > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num684;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > num686)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num684;
|
|
if (this.velocity.Y > 0f && num686 < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num684;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.ai[0] == 1f)
|
|
{
|
|
this.localAI[0] = 0f;
|
|
this.TargetClosest(true);
|
|
Vector2 vector83 = new Vector2(this.position.X + (float)(this.width / 2) + (float)(Main.rand.Next(20) * this.direction), this.position.Y + (float)this.height * 0.8f);
|
|
Vector2 vector84 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num688 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector84.X;
|
|
float num689 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector84.Y;
|
|
float num690 = (float)Math.Sqrt((double)(num688 * num688 + num689 * num689));
|
|
if (Collision.CanHit(vector83, 1, 1, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
this.ai[1] += 1f;
|
|
if (this.ai[1] > 40f)
|
|
{
|
|
this.ai[1] = 0f;
|
|
this.ai[2] += 1f;
|
|
Main.PlaySound(3, (int)this.position.X, (int)this.position.Y, 1);
|
|
if (Main.netMode != 1)
|
|
{
|
|
int num691 = Main.rand.Next(210, 212);
|
|
int num692 = NPC.NewNPC((int)vector83.X, (int)vector83.Y, num691, 0);
|
|
Main.npc[num692].velocity.X = (float)Main.rand.Next(-200, 201) * 0.002f;
|
|
Main.npc[num692].velocity.Y = (float)Main.rand.Next(-200, 201) * 0.002f;
|
|
Main.npc[num692].localAI[0] = 60f;
|
|
Main.npc[num692].netUpdate = true;
|
|
}
|
|
}
|
|
}
|
|
if (num690 > 400f || !Collision.CanHit(new Vector2(vector83.X, vector83.Y - 30f), 1, 1, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
float num693 = 14f;
|
|
float num694 = 0.1f;
|
|
vector84 = vector83;
|
|
num688 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector84.X;
|
|
num689 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector84.Y;
|
|
num690 = (float)Math.Sqrt((double)(num688 * num688 + num689 * num689));
|
|
num690 = num693 / num690;
|
|
if (this.velocity.X < num688)
|
|
{
|
|
this.velocity.X = this.velocity.X + num694;
|
|
if (this.velocity.X < 0f && num688 > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num694;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > num688)
|
|
{
|
|
this.velocity.X = this.velocity.X - num694;
|
|
if (this.velocity.X > 0f && num688 < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - num694;
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.Y < num689)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num694;
|
|
if (this.velocity.Y < 0f && num689 > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num694;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > num689)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num694;
|
|
if (this.velocity.Y > 0f && num689 < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num694;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.velocity *= 0.9f;
|
|
}
|
|
this.spriteDirection = this.direction;
|
|
if (this.ai[2] > 5f)
|
|
{
|
|
this.ai[0] = -1f;
|
|
this.ai[1] = 1f;
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
if (this.ai[0] == 3f)
|
|
{
|
|
float num695 = 4f;
|
|
float num696 = 0.05f;
|
|
Vector2 vector85 = new Vector2(this.position.X + (float)(this.width / 2) + (float)(Main.rand.Next(20) * this.direction), this.position.Y + (float)this.height * 0.8f);
|
|
Vector2 vector86 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num697 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector86.X;
|
|
float num698 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - 300f - vector86.Y;
|
|
float num699 = (float)Math.Sqrt((double)(num697 * num697 + num698 * num698));
|
|
this.ai[1] += 1f;
|
|
if (this.ai[1] % 40f == 39f && this.position.Y + (float)this.height < Main.player[this.target].position.Y && Collision.CanHit(vector85, 1, 1, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 17);
|
|
if (Main.netMode != 1)
|
|
{
|
|
float num700 = 8f;
|
|
float num701 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector85.X + (float)Main.rand.Next(-80, 81);
|
|
float num702 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - vector85.Y + (float)Main.rand.Next(-40, 41);
|
|
float num703 = (float)Math.Sqrt((double)(num701 * num701 + num702 * num702));
|
|
num703 = num700 / num703;
|
|
num701 *= num703;
|
|
num702 *= num703;
|
|
int num704 = 11;
|
|
int num705 = 55;
|
|
int num706 = Projectile.NewProjectile(vector85.X, vector85.Y, num701, num702, num705, num704, 0f, Main.myPlayer, 0f, 0f);
|
|
Main.projectile[num706].timeLeft = 300;
|
|
}
|
|
}
|
|
if (!Collision.CanHit(new Vector2(vector85.X, vector85.Y - 30f), 1, 1, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
num695 = 14f;
|
|
num696 = 0.1f;
|
|
vector86 = vector85;
|
|
num697 = Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2) - vector86.X;
|
|
num698 = Main.player[this.target].position.Y + (float)(Main.player[this.target].height / 2) - vector86.Y;
|
|
num699 = (float)Math.Sqrt((double)(num697 * num697 + num698 * num698));
|
|
num699 = num695 / num699;
|
|
if (this.velocity.X < num697)
|
|
{
|
|
this.velocity.X = this.velocity.X + num696;
|
|
if (this.velocity.X < 0f && num697 > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num696;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > num697)
|
|
{
|
|
this.velocity.X = this.velocity.X - num696;
|
|
if (this.velocity.X > 0f && num697 < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - num696;
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.Y < num698)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num696;
|
|
if (this.velocity.Y < 0f && num698 > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num696;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > num698)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num696;
|
|
if (this.velocity.Y > 0f && num698 < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num696;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num699 > 100f)
|
|
{
|
|
this.TargetClosest(true);
|
|
this.spriteDirection = this.direction;
|
|
num699 = num695 / num699;
|
|
if (this.velocity.X < num697)
|
|
{
|
|
this.velocity.X = this.velocity.X + num696;
|
|
if (this.velocity.X < 0f && num697 > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num696 * 2f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > num697)
|
|
{
|
|
this.velocity.X = this.velocity.X - num696;
|
|
if (this.velocity.X > 0f && num697 < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - num696 * 2f;
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.Y < num698)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num696;
|
|
if (this.velocity.Y < 0f && num698 > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num696 * 2f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > num698)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num696;
|
|
if (this.velocity.Y > 0f && num698 < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num696 * 2f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.ai[1] > 800f)
|
|
{
|
|
this.ai[0] = -1f;
|
|
this.ai[1] = 3f;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 44)
|
|
{
|
|
this.noGravity = true;
|
|
if (this.collideX)
|
|
{
|
|
this.velocity.X = this.oldVelocity.X * -0.5f;
|
|
if (this.direction == -1 && this.velocity.X > 0f && this.velocity.X < 2f)
|
|
{
|
|
this.velocity.X = 2f;
|
|
}
|
|
if (this.direction == 1 && this.velocity.X < 0f && this.velocity.X > -2f)
|
|
{
|
|
this.velocity.X = -2f;
|
|
}
|
|
}
|
|
if (this.collideY)
|
|
{
|
|
this.velocity.Y = this.oldVelocity.Y * -0.5f;
|
|
if (this.velocity.Y > 0f && this.velocity.Y < 1f)
|
|
{
|
|
this.velocity.Y = 1f;
|
|
}
|
|
if (this.velocity.Y < 0f && this.velocity.Y > -1f)
|
|
{
|
|
this.velocity.Y = -1f;
|
|
}
|
|
}
|
|
this.TargetClosest(true);
|
|
float num707 = 0.05f;
|
|
float num708 = 3f;
|
|
float num709 = Math.Abs(this.position.X + (float)(this.width / 2) - (Main.player[this.target].position.X + (float)(Main.player[this.target].width / 2)));
|
|
float num710 = Main.player[this.target].position.Y - (float)(this.height / 2);
|
|
if (num709 > 30f)
|
|
{
|
|
if (this.direction == -1 && this.velocity.X > -num708)
|
|
{
|
|
this.velocity.X = this.velocity.X - num707;
|
|
if (this.velocity.X > num708)
|
|
{
|
|
this.velocity.X = this.velocity.X - num707;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - num707 / 2f;
|
|
}
|
|
}
|
|
if (this.velocity.X < -num708)
|
|
{
|
|
this.velocity.X = -num708;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.direction == 1 && this.velocity.X < num708)
|
|
{
|
|
this.velocity.X = this.velocity.X + num707;
|
|
if (this.velocity.X < -num708)
|
|
{
|
|
this.velocity.X = this.velocity.X + num707;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num707 / 2f;
|
|
}
|
|
}
|
|
if (this.velocity.X > num708)
|
|
{
|
|
this.velocity.X = num708;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (num709 > 100f)
|
|
{
|
|
num710 -= 50f;
|
|
}
|
|
if (this.position.Y < num710)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.01f;
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + 0.01f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.01f;
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - 0.01f;
|
|
}
|
|
}
|
|
if (this.velocity.Y < -1f)
|
|
{
|
|
this.velocity.Y = -1f;
|
|
}
|
|
if (this.velocity.Y > 1f)
|
|
{
|
|
this.velocity.Y = 1f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 45)
|
|
{
|
|
NPC.golemBoss = this.whoAmI;
|
|
if (this.localAI[0] == 0f && Main.netMode != 1)
|
|
{
|
|
this.localAI[0] = 1f;
|
|
NPC.NewNPC((int)this.center().X - 84, (int)this.center().Y - 9, 247, 0);
|
|
NPC.NewNPC((int)this.center().X + 78, (int)this.center().Y - 9, 248, 0);
|
|
NPC.NewNPC((int)this.center().X - 3, (int)this.center().Y - 57, 246, 0);
|
|
}
|
|
if (this.alpha > 0)
|
|
{
|
|
this.alpha -= 10;
|
|
if (this.alpha < 0)
|
|
{
|
|
this.alpha = 0;
|
|
}
|
|
this.ai[1] = 0f;
|
|
}
|
|
bool flag51 = false;
|
|
bool flag52 = false;
|
|
bool flag53 = false;
|
|
this.dontTakeDamage = false;
|
|
for (int num711 = 0; num711 < 200; num711++)
|
|
{
|
|
if (Main.npc[num711].active && Main.npc[num711].type == 246)
|
|
{
|
|
flag51 = true;
|
|
}
|
|
if (Main.npc[num711].active && Main.npc[num711].type == 247)
|
|
{
|
|
flag52 = true;
|
|
}
|
|
if (Main.npc[num711].active && Main.npc[num711].type == 248)
|
|
{
|
|
flag53 = true;
|
|
}
|
|
}
|
|
this.dontTakeDamage = flag51;
|
|
if (!flag52)
|
|
{
|
|
int num712 = Dust.NewDust(new Vector2(this.center().X - 80f, this.center().Y - 9f), 8, 8, 31, 0f, 0f, 100, default(Color), 1f);
|
|
Main.dust[num712].alpha += Main.rand.Next(100);
|
|
Main.dust[num712].velocity *= 0.2f;
|
|
Dust expr_2B011_cp_0 = Main.dust[num712];
|
|
expr_2B011_cp_0.velocity.Y = expr_2B011_cp_0.velocity.Y - (0.5f + (float)Main.rand.Next(10) * 0.1f);
|
|
Main.dust[num712].fadeIn = 0.5f + (float)Main.rand.Next(10) * 0.1f;
|
|
if (Main.rand.Next(10) == 0)
|
|
{
|
|
num712 = Dust.NewDust(new Vector2(this.center().X - 80f, this.center().Y - 9f), 8, 8, 6, 0f, 0f, 0, default(Color), 1f);
|
|
if (Main.rand.Next(20) != 0)
|
|
{
|
|
Main.dust[num712].noGravity = true;
|
|
Main.dust[num712].scale *= 1f + (float)Main.rand.Next(10) * 0.1f;
|
|
Dust expr_2B11C_cp_0 = Main.dust[num712];
|
|
expr_2B11C_cp_0.velocity.Y = expr_2B11C_cp_0.velocity.Y - 1f;
|
|
}
|
|
}
|
|
}
|
|
if (!flag53)
|
|
{
|
|
int num713 = Dust.NewDust(new Vector2(this.center().X + 62f, this.center().Y - 9f), 8, 8, 31, 0f, 0f, 100, default(Color), 1f);
|
|
Main.dust[num713].alpha += Main.rand.Next(100);
|
|
Main.dust[num713].velocity *= 0.2f;
|
|
Dust expr_2B1D9_cp_0 = Main.dust[num713];
|
|
expr_2B1D9_cp_0.velocity.Y = expr_2B1D9_cp_0.velocity.Y - (0.5f + (float)Main.rand.Next(10) * 0.1f);
|
|
Main.dust[num713].fadeIn = 0.5f + (float)Main.rand.Next(10) * 0.1f;
|
|
if (Main.rand.Next(10) == 0)
|
|
{
|
|
num713 = Dust.NewDust(new Vector2(this.center().X + 62f, this.center().Y - 9f), 8, 8, 6, 0f, 0f, 0, default(Color), 1f);
|
|
if (Main.rand.Next(20) != 0)
|
|
{
|
|
Main.dust[num713].noGravity = true;
|
|
Main.dust[num713].scale *= 1f + (float)Main.rand.Next(10) * 0.1f;
|
|
Dust expr_2B2E4_cp_0 = Main.dust[num713];
|
|
expr_2B2E4_cp_0.velocity.Y = expr_2B2E4_cp_0.velocity.Y - 1f;
|
|
}
|
|
}
|
|
}
|
|
if (this.ai[0] == 0f)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.8f;
|
|
this.ai[1] += 1f;
|
|
if (this.ai[1] > 0f)
|
|
{
|
|
if (!flag52)
|
|
{
|
|
this.ai[1] += 2f;
|
|
}
|
|
if (!flag53)
|
|
{
|
|
this.ai[1] += 2f;
|
|
}
|
|
if (!flag51)
|
|
{
|
|
this.ai[1] += 4f;
|
|
}
|
|
if (this.life < this.lifeMax)
|
|
{
|
|
this.ai[1] += 2f;
|
|
}
|
|
if (this.life < this.lifeMax / 2)
|
|
{
|
|
this.ai[1] += 4f;
|
|
}
|
|
if (this.life < this.lifeMax / 3)
|
|
{
|
|
this.ai[1] += 8f;
|
|
}
|
|
}
|
|
if (this.ai[1] >= 300f)
|
|
{
|
|
this.ai[1] = -20f;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] == -1f)
|
|
{
|
|
this.TargetClosest(true);
|
|
this.velocity.X = (float)(4 * this.direction);
|
|
this.velocity.Y = -12.1f;
|
|
this.ai[0] = 1f;
|
|
this.ai[1] = 0f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] == 1f)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 14);
|
|
this.ai[0] = 0f;
|
|
for (int num714 = (int)this.position.X - 20; num714 < (int)this.position.X + this.width + 40; num714 += 20)
|
|
{
|
|
for (int num715 = 0; num715 < 4; num715++)
|
|
{
|
|
int num716 = Dust.NewDust(new Vector2(this.position.X - 20f, this.position.Y + (float)this.height), this.width + 20, 4, 31, 0f, 0f, 100, default(Color), 1.5f);
|
|
Main.dust[num716].velocity *= 0.2f;
|
|
}
|
|
int num717 = Gore.NewGore(new Vector2((float)(num714 - 20), this.position.Y + (float)this.height - 8f), default(Vector2), Main.rand.Next(61, 64), 1f);
|
|
Main.gore[num717].velocity *= 0.4f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.TargetClosest(true);
|
|
if (this.position.X < Main.player[this.target].position.X && this.position.X + (float)this.width > Main.player[this.target].position.X + (float)Main.player[this.target].width)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.9f;
|
|
this.velocity.Y = this.velocity.Y + 0.2f;
|
|
}
|
|
else
|
|
{
|
|
if (this.direction < 0)
|
|
{
|
|
this.velocity.X = this.velocity.X - 0.2f;
|
|
}
|
|
else
|
|
{
|
|
if (this.direction > 0)
|
|
{
|
|
this.velocity.X = this.velocity.X + 0.2f;
|
|
}
|
|
}
|
|
float num718 = 3f;
|
|
if (this.life < this.lifeMax)
|
|
{
|
|
num718 += 1f;
|
|
}
|
|
if (this.life < this.lifeMax / 2)
|
|
{
|
|
num718 += 1f;
|
|
}
|
|
if (this.life < this.lifeMax / 4)
|
|
{
|
|
num718 += 1f;
|
|
}
|
|
if (this.velocity.X < -num718)
|
|
{
|
|
this.velocity.X = -num718;
|
|
}
|
|
if (this.velocity.X > num718)
|
|
{
|
|
this.velocity.X = num718;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.target <= 0 || this.target == 255 || Main.player[this.target].dead)
|
|
{
|
|
this.TargetClosest(true);
|
|
}
|
|
int num719 = 3000;
|
|
if (Math.Abs(this.center().X - Main.player[this.target].center().X) + Math.Abs(this.center().Y - Main.player[this.target].center().Y) > (float)num719)
|
|
{
|
|
this.TargetClosest(true);
|
|
if (Math.Abs(this.center().X - Main.player[this.target].center().X) + Math.Abs(this.center().Y - Main.player[this.target].center().Y) > (float)num719)
|
|
{
|
|
this.active = false;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 46)
|
|
{
|
|
if (NPC.golemBoss < 0)
|
|
{
|
|
this.StrikeNPC(9999, 0f, 0, false, false);
|
|
return;
|
|
}
|
|
this.noTileCollide = false;
|
|
float num720 = 12f;
|
|
Vector2 vector87 = new Vector2(this.center().X, this.center().Y);
|
|
float num721 = Main.npc[NPC.golemBoss].center().X - vector87.X;
|
|
float num722 = Main.npc[NPC.golemBoss].center().Y - vector87.Y;
|
|
num722 -= 57f;
|
|
num721 -= 3f;
|
|
float num723 = (float)Math.Sqrt((double)(num721 * num721 + num722 * num722));
|
|
if (num723 < 20f)
|
|
{
|
|
this.rotation = 0f;
|
|
this.velocity.X = num721;
|
|
this.velocity.Y = num722;
|
|
}
|
|
else
|
|
{
|
|
num723 = num720 / num723;
|
|
this.velocity.X = num721 * num723;
|
|
this.velocity.Y = num722 * num723;
|
|
this.rotation = this.velocity.X * 0.1f;
|
|
}
|
|
if (this.alpha > 0)
|
|
{
|
|
this.alpha -= 10;
|
|
if (this.alpha < 0)
|
|
{
|
|
this.alpha = 0;
|
|
}
|
|
this.ai[1] = 30f;
|
|
}
|
|
if (this.ai[0] == 0f)
|
|
{
|
|
this.ai[1] += 1f;
|
|
int num724 = 300;
|
|
if (this.ai[1] < 20f || this.ai[1] > (float)(num724 - 20))
|
|
{
|
|
this.localAI[0] = 1f;
|
|
}
|
|
else
|
|
{
|
|
this.localAI[0] = 0f;
|
|
}
|
|
if (this.ai[1] >= (float)num724)
|
|
{
|
|
this.TargetClosest(true);
|
|
this.ai[1] = 0f;
|
|
Vector2 vector88 = new Vector2(this.center().X, this.center().Y + 10f);
|
|
float num725 = 8f;
|
|
float num726 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector88.X;
|
|
float num727 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - vector88.Y;
|
|
float num728 = (float)Math.Sqrt((double)(num726 * num726 + num727 * num727));
|
|
num728 = num725 / num728;
|
|
num726 *= num728;
|
|
num727 *= num728;
|
|
int num729 = 18;
|
|
int num730 = 258;
|
|
if (Main.netMode != 1)
|
|
{
|
|
Projectile.NewProjectile(vector88.X, vector88.Y, num726, num727, num730, num729, 0f, Main.myPlayer, 0f, 0f);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] == 1f)
|
|
{
|
|
this.TargetClosest(true);
|
|
Vector2 vector89 = new Vector2(this.center().X, this.center().Y + 10f);
|
|
if (Main.player[this.target].center().X < this.center().X - (float)this.width)
|
|
{
|
|
this.localAI[1] = -1f;
|
|
vector89.X -= 40f;
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[this.target].center().X > this.center().X + (float)this.width)
|
|
{
|
|
this.localAI[1] = 1f;
|
|
vector89.X += 40f;
|
|
}
|
|
else
|
|
{
|
|
this.localAI[1] = 0f;
|
|
}
|
|
}
|
|
this.ai[1] += 1f;
|
|
if ((double)this.life < (double)this.lifeMax * 0.4)
|
|
{
|
|
this.ai[1] += 1f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.3)
|
|
{
|
|
this.ai[1] += 1f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.2)
|
|
{
|
|
this.ai[1] += 1f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.1)
|
|
{
|
|
this.ai[1] += 1f;
|
|
}
|
|
int num731 = 300;
|
|
if (this.ai[1] < 20f || this.ai[1] > (float)(num731 - 20))
|
|
{
|
|
this.localAI[0] = 1f;
|
|
}
|
|
else
|
|
{
|
|
this.localAI[0] = 0f;
|
|
}
|
|
if (this.ai[1] >= (float)num731)
|
|
{
|
|
this.TargetClosest(true);
|
|
this.ai[1] = 0f;
|
|
float num732 = 8f;
|
|
float num733 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector89.X;
|
|
float num734 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - vector89.Y;
|
|
float num735 = (float)Math.Sqrt((double)(num733 * num733 + num734 * num734));
|
|
num735 = num732 / num735;
|
|
num733 *= num735;
|
|
num734 *= num735;
|
|
int num736 = 24;
|
|
int num737 = 258;
|
|
if (Main.netMode != 1)
|
|
{
|
|
Projectile.NewProjectile(vector89.X, vector89.Y, num733, num734, num737, num736, 0f, Main.myPlayer, 0f, 0f);
|
|
}
|
|
}
|
|
this.ai[2] += 1f;
|
|
if (this.life < this.lifeMax / 3)
|
|
{
|
|
this.ai[2] += 1f;
|
|
}
|
|
if (this.life < this.lifeMax / 4)
|
|
{
|
|
this.ai[2] += 1f;
|
|
}
|
|
if (this.life < this.lifeMax / 5)
|
|
{
|
|
this.ai[2] += 1f;
|
|
}
|
|
if (this.ai[2] > (float)(60 + Main.rand.Next(600)))
|
|
{
|
|
this.ai[2] = 0f;
|
|
if (this.localAI[1] != 0f)
|
|
{
|
|
vector89 = new Vector2(this.center().X, this.center().Y - 22f);
|
|
if (this.localAI[1] == -1f)
|
|
{
|
|
vector89.X -= 30f;
|
|
}
|
|
else
|
|
{
|
|
if (this.localAI[1] == 1f)
|
|
{
|
|
vector89.X += 30f;
|
|
}
|
|
}
|
|
float num738 = 12f;
|
|
float num739 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector89.X;
|
|
float num740 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - vector89.Y;
|
|
float num741 = (float)Math.Sqrt((double)(num739 * num739 + num740 * num740));
|
|
num741 = num738 / num741;
|
|
num739 *= num741;
|
|
num740 *= num741;
|
|
int num742 = 29;
|
|
int num743 = 259;
|
|
vector89.X += num739 * 3f;
|
|
vector89.Y += num740 * 3f;
|
|
if (Main.netMode != 1)
|
|
{
|
|
int num744 = Projectile.NewProjectile(vector89.X, vector89.Y, num739, num740, num743, num742, 0f, Main.myPlayer, 0f, 0f);
|
|
Main.projectile[num744].timeLeft = 300;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.life < this.lifeMax / 2)
|
|
{
|
|
this.ai[0] = 1f;
|
|
return;
|
|
}
|
|
this.ai[0] = 0f;
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 47)
|
|
{
|
|
if (NPC.golemBoss < 0)
|
|
{
|
|
this.StrikeNPC(9999, 0f, 0, false, false);
|
|
return;
|
|
}
|
|
if (this.alpha > 0)
|
|
{
|
|
this.alpha -= 10;
|
|
if (this.alpha < 0)
|
|
{
|
|
this.alpha = 0;
|
|
}
|
|
this.ai[1] = 0f;
|
|
}
|
|
if (this.ai[0] == 0f)
|
|
{
|
|
this.noTileCollide = true;
|
|
float num745 = 8f;
|
|
if (this.life < this.lifeMax / 2)
|
|
{
|
|
num745 += 2f;
|
|
}
|
|
if (this.life < this.lifeMax / 4)
|
|
{
|
|
num745 += 2f;
|
|
}
|
|
if (Main.npc[NPC.golemBoss].life < Main.npc[NPC.golemBoss].lifeMax)
|
|
{
|
|
num745 += 8f;
|
|
}
|
|
Vector2 vector90 = new Vector2(this.center().X, this.center().Y);
|
|
float num746 = Main.npc[NPC.golemBoss].center().X - vector90.X;
|
|
float num747 = Main.npc[NPC.golemBoss].center().Y - vector90.Y;
|
|
num747 -= 9f;
|
|
if (this.type == 247)
|
|
{
|
|
num746 -= 84f;
|
|
}
|
|
else
|
|
{
|
|
num746 += 78f;
|
|
}
|
|
float num748 = (float)Math.Sqrt((double)(num746 * num746 + num747 * num747));
|
|
if (num748 < 12f + num745)
|
|
{
|
|
this.rotation = 0f;
|
|
this.velocity.X = num746;
|
|
this.velocity.Y = num747;
|
|
this.ai[1] += 1f;
|
|
if (this.life < this.lifeMax / 2)
|
|
{
|
|
this.ai[1] += 1f;
|
|
}
|
|
if (this.life < this.lifeMax / 4)
|
|
{
|
|
this.ai[1] += 1f;
|
|
}
|
|
if (Main.npc[NPC.golemBoss].life < Main.npc[NPC.golemBoss].lifeMax)
|
|
{
|
|
this.ai[1] += 10f;
|
|
}
|
|
if (this.ai[1] >= 60f)
|
|
{
|
|
this.TargetClosest(true);
|
|
if ((this.type == 247 && this.center().X + 100f > Main.player[this.target].center().X) || (this.type == 248 && this.center().X - 100f < Main.player[this.target].center().X))
|
|
{
|
|
this.ai[1] = 0f;
|
|
this.ai[0] = 1f;
|
|
return;
|
|
}
|
|
this.ai[1] = 0f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
num748 = num745 / num748;
|
|
this.velocity.X = num746 * num748;
|
|
this.velocity.Y = num747 * num748;
|
|
this.rotation = (float)Math.Atan2((double)(-(double)this.velocity.Y), (double)(-(double)this.velocity.X));
|
|
if (this.type == 247)
|
|
{
|
|
this.rotation = (float)Math.Atan2((double)this.velocity.Y, (double)this.velocity.X);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] == 1f)
|
|
{
|
|
this.noTileCollide = false;
|
|
float num749 = 10f;
|
|
if (this.life < this.lifeMax / 2)
|
|
{
|
|
num749 += 4f;
|
|
}
|
|
if (this.life < this.lifeMax / 4)
|
|
{
|
|
num749 += 4f;
|
|
}
|
|
if (Main.npc[NPC.golemBoss].life < Main.npc[NPC.golemBoss].lifeMax)
|
|
{
|
|
num749 += 10f;
|
|
}
|
|
Vector2 vector91 = new Vector2(this.center().X, this.center().Y);
|
|
float num750 = Main.player[this.target].center().X - vector91.X;
|
|
float num751 = Main.player[this.target].center().Y - vector91.Y;
|
|
float num752 = (float)Math.Sqrt((double)(num750 * num750 + num751 * num751));
|
|
num752 = num749 / num752;
|
|
this.velocity.X = num750 * num752;
|
|
this.velocity.Y = num751 * num752;
|
|
this.ai[0] = 2f;
|
|
this.rotation = (float)Math.Atan2((double)this.velocity.Y, (double)this.velocity.X);
|
|
if (this.type == 247)
|
|
{
|
|
this.rotation = (float)Math.Atan2((double)(-(double)this.velocity.Y), (double)(-(double)this.velocity.X));
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] == 2f)
|
|
{
|
|
Vector2 vector92 = new Vector2(this.center().X, this.center().Y);
|
|
float num753 = Main.npc[NPC.golemBoss].center().X - vector92.X;
|
|
float num754 = Main.npc[NPC.golemBoss].center().Y - vector92.Y;
|
|
num753 += Main.npc[NPC.golemBoss].velocity.X;
|
|
num754 += Main.npc[NPC.golemBoss].velocity.Y;
|
|
num754 -= 9f;
|
|
if (this.type == 247)
|
|
{
|
|
num753 -= 84f;
|
|
}
|
|
else
|
|
{
|
|
num753 += 78f;
|
|
}
|
|
float num755 = (float)Math.Sqrt((double)(num753 * num753 + num754 * num754));
|
|
if (Main.npc[NPC.golemBoss].life < Main.npc[NPC.golemBoss].lifeMax)
|
|
{
|
|
this.knockBackResist = 0f;
|
|
if (num755 > 700f || this.collideX || this.collideY)
|
|
{
|
|
this.noTileCollide = true;
|
|
this.ai[0] = 0f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num755 > 600f || this.collideX || this.collideY || this.justHit)
|
|
{
|
|
this.noTileCollide = true;
|
|
this.ai[0] = 0f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] == 3f)
|
|
{
|
|
this.noTileCollide = true;
|
|
float num756 = 12f;
|
|
float num757 = 0.4f;
|
|
Vector2 vector93 = new Vector2(this.center().X, this.center().Y);
|
|
float num758 = Main.player[this.target].center().X - vector93.X;
|
|
float num759 = Main.player[this.target].center().Y - vector93.Y;
|
|
float num760 = (float)Math.Sqrt((double)(num758 * num758 + num759 * num759));
|
|
num760 = num756 / num760;
|
|
num758 *= num760;
|
|
num759 *= num760;
|
|
if (this.velocity.X < num758)
|
|
{
|
|
this.velocity.X = this.velocity.X + num757;
|
|
if (this.velocity.X < 0f && num758 > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num757 * 2f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > num758)
|
|
{
|
|
this.velocity.X = this.velocity.X - num757;
|
|
if (this.velocity.X > 0f && num758 < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - num757 * 2f;
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.Y < num759)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num757;
|
|
if (this.velocity.Y < 0f && num759 > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num757 * 2f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > num759)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num757;
|
|
if (this.velocity.Y > 0f && num759 < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num757 * 2f;
|
|
}
|
|
}
|
|
}
|
|
this.rotation = (float)Math.Atan2((double)this.velocity.Y, (double)this.velocity.X);
|
|
if (this.type == 247)
|
|
{
|
|
this.rotation = (float)Math.Atan2((double)(-(double)this.velocity.Y), (double)(-(double)this.velocity.X));
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 48)
|
|
{
|
|
if (NPC.golemBoss < 0)
|
|
{
|
|
this.StrikeNPC(9999, 0f, 0, false, false);
|
|
return;
|
|
}
|
|
this.TargetClosest(true);
|
|
float num761 = 7f;
|
|
float num762 = 0.05f;
|
|
Vector2 vector94 = new Vector2(this.center().X, this.center().Y);
|
|
float num763 = Main.player[this.target].center().X - vector94.X;
|
|
float num764 = Main.player[this.target].center().Y - vector94.Y - 300f;
|
|
float num765 = (float)Math.Sqrt((double)(num763 * num763 + num764 * num764));
|
|
num765 = num761 / num765;
|
|
num763 *= num765;
|
|
num764 *= num765;
|
|
if (this.velocity.X < num763)
|
|
{
|
|
this.velocity.X = this.velocity.X + num762;
|
|
if (this.velocity.X < 0f && num763 > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num762;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > num763)
|
|
{
|
|
this.velocity.X = this.velocity.X - num762;
|
|
if (this.velocity.X > 0f && num763 < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - num762;
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.Y < num764)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num762;
|
|
if (this.velocity.Y < 0f && num764 > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num762;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > num764)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num762;
|
|
if (this.velocity.Y > 0f && num764 < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num762;
|
|
}
|
|
}
|
|
}
|
|
this.ai[1] += 1f;
|
|
if ((double)Main.npc[NPC.golemBoss].life < (double)Main.npc[NPC.golemBoss].lifeMax * 0.8)
|
|
{
|
|
this.ai[1] += 1f;
|
|
}
|
|
if ((double)Main.npc[NPC.golemBoss].life < (double)Main.npc[NPC.golemBoss].lifeMax * 0.6)
|
|
{
|
|
this.ai[1] += 1f;
|
|
}
|
|
if ((double)Main.npc[NPC.golemBoss].life < (double)Main.npc[NPC.golemBoss].lifeMax * 0.4)
|
|
{
|
|
this.ai[1] += 1f;
|
|
}
|
|
if ((double)Main.npc[NPC.golemBoss].life < (double)Main.npc[NPC.golemBoss].lifeMax * 0.2)
|
|
{
|
|
this.ai[1] += 1f;
|
|
}
|
|
int num766 = 300;
|
|
if (this.ai[1] < 20f || this.ai[1] > (float)(num766 - 20))
|
|
{
|
|
this.localAI[0] = 1f;
|
|
}
|
|
else
|
|
{
|
|
this.localAI[0] = 0f;
|
|
}
|
|
if (this.ai[1] >= (float)num766)
|
|
{
|
|
this.TargetClosest(true);
|
|
this.ai[1] = 0f;
|
|
Vector2 vector95 = new Vector2(this.center().X, this.center().Y - 10f);
|
|
float num767 = 8f;
|
|
float num768 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector95.X;
|
|
float num769 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - vector95.Y;
|
|
float num770 = (float)Math.Sqrt((double)(num768 * num768 + num769 * num769));
|
|
num770 = num767 / num770;
|
|
num768 *= num770;
|
|
num769 *= num770;
|
|
int num771 = 20;
|
|
int num772 = 258;
|
|
if (Main.netMode != 1)
|
|
{
|
|
Projectile.NewProjectile(vector95.X, vector95.Y, num768, num769, num772, num771, 0f, Main.myPlayer, 0f, 0f);
|
|
}
|
|
}
|
|
if (Main.npc[NPC.golemBoss].life < Main.npc[NPC.golemBoss].lifeMax / 2)
|
|
{
|
|
this.ai[2] += 1f;
|
|
}
|
|
if (Main.npc[NPC.golemBoss].life < Main.npc[NPC.golemBoss].lifeMax / 3)
|
|
{
|
|
this.ai[2] += 1f;
|
|
}
|
|
if (Main.npc[NPC.golemBoss].life < Main.npc[NPC.golemBoss].lifeMax / 4)
|
|
{
|
|
this.ai[2] += 1f;
|
|
}
|
|
if (Main.npc[NPC.golemBoss].life < Main.npc[NPC.golemBoss].lifeMax / 5)
|
|
{
|
|
this.ai[2] += 1f;
|
|
}
|
|
if (this.ai[2] > (float)(80 + Main.rand.Next(1200)))
|
|
{
|
|
this.ai[2] = 0f;
|
|
for (int num773 = 0; num773 < 2; num773++)
|
|
{
|
|
Vector2 vector96 = new Vector2(this.center().X, this.center().Y - 50f);
|
|
if (num773 == 0)
|
|
{
|
|
vector96.X -= 14f;
|
|
}
|
|
else
|
|
{
|
|
if (num773 == 1)
|
|
{
|
|
vector96.X += 14f;
|
|
}
|
|
}
|
|
float num774 = 12f;
|
|
float num775 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector96.X;
|
|
float num776 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - vector96.Y;
|
|
float num777 = (float)Math.Sqrt((double)(num775 * num775 + num776 * num776));
|
|
num777 = num774 / num777;
|
|
num775 *= num777;
|
|
num776 *= num777;
|
|
int num778 = 25;
|
|
int num779 = 259;
|
|
vector96.X += num775 * 3f;
|
|
vector96.Y += num776 * 3f;
|
|
if (Main.netMode != 1)
|
|
{
|
|
int num780 = Projectile.NewProjectile(vector96.X, vector96.Y, num775, num776, num779, num778, 0f, Main.myPlayer, 0f, 0f);
|
|
Main.projectile[num780].timeLeft = 300;
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 49)
|
|
{
|
|
this.noGravity = true;
|
|
this.TargetClosest(true);
|
|
float num781 = 4f;
|
|
float num782 = 0.25f;
|
|
Vector2 vector97 = new Vector2(this.center().X, this.center().Y);
|
|
float num783 = Main.player[this.target].center().X - vector97.X;
|
|
float num784 = Main.player[this.target].center().Y - vector97.Y - 200f;
|
|
float num785 = (float)Math.Sqrt((double)(num783 * num783 + num784 * num784));
|
|
if (num785 < 20f)
|
|
{
|
|
num783 = this.velocity.X;
|
|
num784 = this.velocity.Y;
|
|
}
|
|
else
|
|
{
|
|
num785 = num781 / num785;
|
|
num783 *= num785;
|
|
num784 *= num785;
|
|
}
|
|
if (this.velocity.X < num783)
|
|
{
|
|
this.velocity.X = this.velocity.X + num782;
|
|
if (this.velocity.X < 0f && num783 > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num782 * 2f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > num783)
|
|
{
|
|
this.velocity.X = this.velocity.X - num782;
|
|
if (this.velocity.X > 0f && num783 < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - num782 * 2f;
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.Y < num784)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num782;
|
|
if (this.velocity.Y < 0f && num784 > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num782 * 2f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > num784)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num782;
|
|
if (this.velocity.Y > 0f && num784 < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num782 * 2f;
|
|
}
|
|
}
|
|
}
|
|
if (this.position.X + (float)this.width > Main.player[this.target].position.X && this.position.X < Main.player[this.target].position.X + (float)Main.player[this.target].width && this.position.Y + (float)this.height < Main.player[this.target].position.Y && Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height) && Main.netMode != 1)
|
|
{
|
|
this.ai[0] += 1f;
|
|
if (this.ai[0] > 8f)
|
|
{
|
|
this.ai[0] = 0f;
|
|
int num786 = (int)(this.position.X + 10f + (float)Main.rand.Next(this.width - 20));
|
|
int num787 = (int)(this.position.Y + (float)this.height + 4f);
|
|
Projectile.NewProjectile((float)num786, (float)num787, 0f, 5f, 264, 20, 0f, Main.myPlayer, 0f, 0f);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 50)
|
|
{
|
|
if (this.timeLeft > 5)
|
|
{
|
|
this.timeLeft = 5;
|
|
}
|
|
this.noTileCollide = true;
|
|
this.velocity.Y = this.velocity.Y + 0.02f;
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.99f;
|
|
}
|
|
if (this.velocity.Y > 1f)
|
|
{
|
|
this.velocity.Y = 1f;
|
|
}
|
|
this.TargetClosest(true);
|
|
if (this.position.X + (float)this.width < Main.player[this.target].position.X)
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.98f;
|
|
}
|
|
this.velocity.X = this.velocity.X + 0.1f;
|
|
}
|
|
else
|
|
{
|
|
if (this.position.X > Main.player[this.target].position.X + (float)Main.player[this.target].width)
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.98f;
|
|
}
|
|
this.velocity.X = this.velocity.X - 0.1f;
|
|
}
|
|
}
|
|
if (this.velocity.X > 5f || this.velocity.X < -5f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.97f;
|
|
}
|
|
this.rotation = this.velocity.X * 0.2f;
|
|
return;
|
|
}
|
|
if (this.aiStyle == 51)
|
|
{
|
|
this.TargetClosest(true);
|
|
if (Main.netMode != 1)
|
|
{
|
|
int num788 = 6000;
|
|
if (Math.Abs(this.center().X - Main.player[this.target].center().X) + Math.Abs(this.center().Y - Main.player[this.target].center().Y) > (float)num788)
|
|
{
|
|
this.active = false;
|
|
this.life = 0;
|
|
if (Main.netMode == 2)
|
|
{
|
|
NetMessage.SendData(23, -1, -1, "", this.whoAmI, 0f, 0f, 0f, 0);
|
|
}
|
|
}
|
|
}
|
|
NPC.plantBoss = this.whoAmI;
|
|
if (this.localAI[0] == 0f && Main.netMode != 1)
|
|
{
|
|
this.localAI[0] = 1f;
|
|
NPC.NewNPC((int)this.center().X, (int)this.center().Y, 263, this.whoAmI);
|
|
NPC.NewNPC((int)this.center().X, (int)this.center().Y, 263, this.whoAmI);
|
|
NPC.NewNPC((int)this.center().X, (int)this.center().Y, 263, this.whoAmI);
|
|
}
|
|
int[] array = new int[3];
|
|
float num789 = 0f;
|
|
float num790 = 0f;
|
|
int num791 = 0;
|
|
for (int num792 = 0; num792 < 200; num792++)
|
|
{
|
|
if (Main.npc[num792].active && Main.npc[num792].aiStyle == 52)
|
|
{
|
|
num789 += Main.npc[num792].center().X;
|
|
num790 += Main.npc[num792].center().Y;
|
|
array[num791] = num792;
|
|
num791++;
|
|
if (num791 > 2)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
num789 /= (float)num791;
|
|
num790 /= (float)num791;
|
|
float num793 = 2.5f;
|
|
float num794 = 0.025f;
|
|
if (this.life < this.lifeMax / 2)
|
|
{
|
|
num793 = 5f;
|
|
num794 = 0.05f;
|
|
}
|
|
if (this.life < this.lifeMax / 4)
|
|
{
|
|
num793 = 7f;
|
|
}
|
|
if (!Main.player[this.target].zoneJungle || (double)Main.player[this.target].position.Y < Main.worldSurface / 16.0 || Main.player[this.target].position.Y > (float)(Main.maxTilesY / 16 - 300))
|
|
{
|
|
num793 += 4f;
|
|
}
|
|
Vector2 vector98 = new Vector2(num789, num790);
|
|
float num795 = Main.player[this.target].center().X - vector98.X;
|
|
float num796 = Main.player[this.target].center().Y - vector98.Y;
|
|
float num797 = (float)Math.Sqrt((double)(num795 * num795 + num796 * num796));
|
|
int num798 = 500;
|
|
if (num797 >= (float)num798)
|
|
{
|
|
num797 = (float)num798 / num797;
|
|
num795 *= num797;
|
|
num796 *= num797;
|
|
}
|
|
num789 += num795;
|
|
num790 += num796;
|
|
vector98 = new Vector2(this.center().X, this.center().Y);
|
|
num795 = num789 - vector98.X;
|
|
num796 = num790 - vector98.Y;
|
|
num797 = (float)Math.Sqrt((double)(num795 * num795 + num796 * num796));
|
|
if (num797 < num793)
|
|
{
|
|
num795 = this.velocity.X;
|
|
num796 = this.velocity.Y;
|
|
}
|
|
else
|
|
{
|
|
num797 = num793 / num797;
|
|
num795 *= num797;
|
|
num796 *= num797;
|
|
}
|
|
if (this.velocity.X < num795)
|
|
{
|
|
this.velocity.X = this.velocity.X + num794;
|
|
if (this.velocity.X < 0f && num795 > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num794 * 2f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > num795)
|
|
{
|
|
this.velocity.X = this.velocity.X - num794;
|
|
if (this.velocity.X > 0f && num795 < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - num794 * 2f;
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.Y < num796)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num794;
|
|
if (this.velocity.Y < 0f && num796 > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num794 * 2f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > num796)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num794;
|
|
if (this.velocity.Y > 0f && num796 < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num794 * 2f;
|
|
}
|
|
}
|
|
}
|
|
Vector2 vector99 = new Vector2(this.center().X, this.center().Y);
|
|
float num799 = Main.player[this.target].center().X - vector99.X;
|
|
float num800 = Main.player[this.target].center().Y - vector99.Y;
|
|
this.rotation = (float)Math.Atan2((double)num800, (double)num799) + 1.57f;
|
|
if (this.life > this.lifeMax / 2)
|
|
{
|
|
this.defense = 36;
|
|
this.damage = 50;
|
|
if (Main.netMode != 1)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
if ((double)this.life < (double)this.lifeMax * 0.9)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.8)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.7)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.6)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
}
|
|
if (this.localAI[1] > 80f)
|
|
{
|
|
this.localAI[1] = 0f;
|
|
if (Collision.CanHit(this.position, this.width, this.height, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
Vector2 vector100 = new Vector2(this.center().X, this.center().Y);
|
|
float num801 = 15f;
|
|
float num802 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector100.X;
|
|
float num803 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - vector100.Y;
|
|
float num804 = (float)Math.Sqrt((double)(num802 * num802 + num803 * num803));
|
|
num804 = num801 / num804;
|
|
num802 *= num804;
|
|
num803 *= num804;
|
|
int num805 = 22;
|
|
int num806 = 275;
|
|
if ((double)this.life < (double)this.lifeMax * 0.8 && Main.rand.Next(4) == 0)
|
|
{
|
|
num805 = 27;
|
|
this.localAI[1] = -30f;
|
|
num806 = 276;
|
|
}
|
|
else
|
|
{
|
|
if ((double)this.life < (double)this.lifeMax * 0.8 && Main.rand.Next(8) == 0)
|
|
{
|
|
num805 = 31;
|
|
this.localAI[1] = -120f;
|
|
num806 = 277;
|
|
}
|
|
}
|
|
vector100.X += num802 * 3f;
|
|
vector100.Y += num803 * 3f;
|
|
int num807 = Projectile.NewProjectile(vector100.X, vector100.Y, num802, num803, num806, num805, 0f, Main.myPlayer, 0f, 0f);
|
|
if (num806 != 277)
|
|
{
|
|
Main.projectile[num807].timeLeft = 300;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.defense = 10;
|
|
this.damage = 70;
|
|
if (this.localAI[0] == 1f && Main.netMode != 1)
|
|
{
|
|
this.localAI[0] = 2f;
|
|
for (int num808 = 0; num808 < 8; num808++)
|
|
{
|
|
NPC.NewNPC((int)this.center().X, (int)this.center().Y, 264, this.whoAmI);
|
|
}
|
|
}
|
|
if (this.localAI[2] == 0f)
|
|
{
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 378, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 379, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 380, this.scale);
|
|
this.localAI[2] = 1f;
|
|
}
|
|
this.localAI[1] += 1f;
|
|
if ((double)this.life < (double)this.lifeMax * 0.4)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.3)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.2)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.1)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
}
|
|
if (this.localAI[1] >= 350f)
|
|
{
|
|
float num809 = 8f;
|
|
Vector2 vector101 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f);
|
|
float num810 = Main.player[this.target].position.X + (float)Main.player[this.target].width * 0.5f - vector101.X + (float)Main.rand.Next(-10, 11);
|
|
float num811 = Math.Abs(num810 * 0.2f);
|
|
float num812 = Main.player[this.target].position.Y + (float)Main.player[this.target].height * 0.5f - vector101.Y + (float)Main.rand.Next(-10, 11);
|
|
if (num812 > 0f)
|
|
{
|
|
num811 = 0f;
|
|
}
|
|
num812 -= num811;
|
|
float num813 = (float)Math.Sqrt((double)(num810 * num810 + num812 * num812));
|
|
num813 = num809 / num813;
|
|
num810 *= num813;
|
|
num812 *= num813;
|
|
int num814 = NPC.NewNPC((int)this.center().X, (int)this.center().Y, 265, 0);
|
|
Main.npc[num814].velocity.X = num810;
|
|
Main.npc[num814].velocity.Y = num812;
|
|
Main.npc[num814].netUpdate = true;
|
|
this.localAI[1] = 0f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 52)
|
|
{
|
|
if (NPC.plantBoss < 0)
|
|
{
|
|
this.StrikeNPC(9999, 0f, 0, false, false);
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
if (Main.netMode == 1)
|
|
{
|
|
if (this.ai[0] == 0f)
|
|
{
|
|
this.ai[0] = (float)((int)(this.center().X / 16f));
|
|
}
|
|
if (this.ai[1] == 0f)
|
|
{
|
|
this.ai[1] = (float)((int)(this.center().X / 16f));
|
|
}
|
|
}
|
|
if (Main.netMode != 1)
|
|
{
|
|
if (this.ai[0] == 0f || this.ai[1] == 0f)
|
|
{
|
|
this.localAI[0] = 0f;
|
|
}
|
|
this.localAI[0] -= 1f;
|
|
if (Main.npc[NPC.plantBoss].life < Main.npc[NPC.plantBoss].lifeMax / 2)
|
|
{
|
|
this.localAI[0] -= 2f;
|
|
}
|
|
if (Main.npc[NPC.plantBoss].life < Main.npc[NPC.plantBoss].lifeMax / 4)
|
|
{
|
|
this.localAI[0] -= 2f;
|
|
}
|
|
if (!Main.player[Main.npc[NPC.plantBoss].target].zoneJungle || (double)Main.player[Main.npc[NPC.plantBoss].target].position.Y < Main.worldSurface / 16.0 || Main.player[Main.npc[NPC.plantBoss].target].position.Y > (float)(Main.maxTilesY / 16 - 300))
|
|
{
|
|
this.localAI[0] -= 4f;
|
|
}
|
|
if (this.localAI[0] <= 0f && this.ai[0] != 0f)
|
|
{
|
|
for (int num815 = 0; num815 < 200; num815++)
|
|
{
|
|
if (num815 != this.whoAmI && Main.npc[num815].active && Main.npc[num815].type == this.type && (Main.npc[num815].velocity.X != 0f || Main.npc[num815].velocity.Y != 0f))
|
|
{
|
|
this.localAI[0] = (float)Main.rand.Next(60, 300);
|
|
}
|
|
}
|
|
}
|
|
if (this.localAI[0] <= 0f)
|
|
{
|
|
this.localAI[0] = (float)Main.rand.Next(300, 600);
|
|
bool flag54 = false;
|
|
int num816 = 0;
|
|
while (!flag54 && num816 <= 1000)
|
|
{
|
|
num816++;
|
|
int num817 = (int)(Main.player[Main.npc[NPC.plantBoss].target].center().X / 16f);
|
|
int num818 = (int)(Main.player[Main.npc[NPC.plantBoss].target].center().Y / 16f);
|
|
if (this.ai[0] == 0f)
|
|
{
|
|
num817 = (int)((Main.player[Main.npc[NPC.plantBoss].target].center().X + Main.npc[NPC.plantBoss].center().X) / 32f);
|
|
num818 = (int)((Main.player[Main.npc[NPC.plantBoss].target].center().Y + Main.npc[NPC.plantBoss].center().Y) / 32f);
|
|
}
|
|
int num819 = 20;
|
|
num819 += (int)(100f * ((float)num816 / 1000f));
|
|
int num820 = num817 + Main.rand.Next(-num819, num819 + 1);
|
|
int num821 = num818 + Main.rand.Next(-num819, num819 + 1);
|
|
if (Main.npc[NPC.plantBoss].life < Main.npc[NPC.plantBoss].lifeMax / 2 && Main.rand.Next(6) == 0)
|
|
{
|
|
this.TargetClosest(true);
|
|
int num822 = (int)(Main.player[this.target].center().X / 16f);
|
|
int num823 = (int)(Main.player[this.target].center().Y / 16f);
|
|
if (Main.tile[num822, num823].wall > 0)
|
|
{
|
|
num820 = num822;
|
|
num821 = num823;
|
|
}
|
|
}
|
|
if (WorldGen.SolidTile(num820, num821) || (Main.tile[num820, num821].wall > 0 && (num816 > 500 || Main.npc[NPC.plantBoss].life < Main.npc[NPC.plantBoss].lifeMax / 2)))
|
|
{
|
|
flag54 = true;
|
|
this.ai[0] = (float)num820;
|
|
this.ai[1] = (float)num821;
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.ai[0] > 0f && this.ai[1] > 0f)
|
|
{
|
|
float num824 = 6f;
|
|
if (Main.npc[NPC.plantBoss].life < Main.npc[NPC.plantBoss].lifeMax / 2)
|
|
{
|
|
num824 = 8f;
|
|
}
|
|
if (Main.npc[NPC.plantBoss].life < Main.npc[NPC.plantBoss].lifeMax / 4)
|
|
{
|
|
num824 = 10f;
|
|
}
|
|
if (!Main.player[Main.npc[NPC.plantBoss].target].zoneJungle || (double)Main.player[Main.npc[NPC.plantBoss].target].position.Y < Main.worldSurface / 16.0 || Main.player[Main.npc[NPC.plantBoss].target].position.Y > (float)(Main.maxTilesY / 16 - 300))
|
|
{
|
|
num824 += 6f;
|
|
}
|
|
Vector2 vector102 = new Vector2(this.center().X, this.center().Y);
|
|
float num825 = this.ai[0] * 16f - 8f - vector102.X;
|
|
float num826 = this.ai[1] * 16f - 8f - vector102.Y;
|
|
float num827 = (float)Math.Sqrt((double)(num825 * num825 + num826 * num826));
|
|
if (num827 < 12f + num824)
|
|
{
|
|
this.velocity.X = num825;
|
|
this.velocity.Y = num826;
|
|
}
|
|
else
|
|
{
|
|
num827 = num824 / num827;
|
|
this.velocity.X = num825 * num827;
|
|
this.velocity.Y = num826 * num827;
|
|
}
|
|
Vector2 vector103 = new Vector2(this.center().X, this.center().Y);
|
|
float num828 = Main.npc[NPC.plantBoss].center().X - vector103.X;
|
|
float num829 = Main.npc[NPC.plantBoss].center().Y - vector103.Y;
|
|
this.rotation = (float)Math.Atan2((double)num829, (double)num828) - 1.57f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 53)
|
|
{
|
|
if (NPC.plantBoss < 0)
|
|
{
|
|
this.StrikeNPC(9999, 0f, 0, false, false);
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
int num830 = NPC.plantBoss;
|
|
if (Main.netMode != 1)
|
|
{
|
|
this.localAI[0] -= 1f;
|
|
if (this.localAI[0] <= 0f)
|
|
{
|
|
this.localAI[0] = (float)Main.rand.Next(120, 480);
|
|
this.ai[0] = (float)Main.rand.Next(-100, 101);
|
|
this.ai[1] = (float)Main.rand.Next(-100, 101);
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
this.TargetClosest(true);
|
|
float num831 = 0.2f;
|
|
float num832 = 200f;
|
|
if ((double)Main.npc[num830].life < (double)Main.npc[num830].lifeMax * 0.25)
|
|
{
|
|
num832 += 100f;
|
|
}
|
|
if ((double)Main.npc[num830].life < (double)Main.npc[num830].lifeMax * 0.1)
|
|
{
|
|
num832 += 100f;
|
|
}
|
|
if (!Main.npc[num830].active || NPC.plantBoss < 0)
|
|
{
|
|
this.active = false;
|
|
return;
|
|
}
|
|
float num833 = Main.npc[num830].position.X + (float)(Main.npc[num830].width / 2);
|
|
float num834 = Main.npc[num830].position.Y + (float)(Main.npc[num830].height / 2);
|
|
Vector2 vector104 = new Vector2(num833, num834);
|
|
float num835 = num833 + this.ai[0];
|
|
float num836 = num834 + this.ai[1];
|
|
float num837 = num835 - vector104.X;
|
|
float num838 = num836 - vector104.Y;
|
|
float num839 = (float)Math.Sqrt((double)(num837 * num837 + num838 * num838));
|
|
num839 = num832 / num839;
|
|
num837 *= num839;
|
|
num838 *= num839;
|
|
if (this.position.X < num833 + num837)
|
|
{
|
|
this.velocity.X = this.velocity.X + num831;
|
|
if (this.velocity.X < 0f && num837 > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.9f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.position.X > num833 + num837)
|
|
{
|
|
this.velocity.X = this.velocity.X - num831;
|
|
if (this.velocity.X > 0f && num837 < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.9f;
|
|
}
|
|
}
|
|
}
|
|
if (this.position.Y < num834 + num838)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num831;
|
|
if (this.velocity.Y < 0f && num838 > 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.9f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.position.Y > num834 + num838)
|
|
{
|
|
this.velocity.Y = this.velocity.Y - num831;
|
|
if (this.velocity.Y > 0f && num838 < 0f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 0.9f;
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.X > 8f)
|
|
{
|
|
this.velocity.X = 8f;
|
|
}
|
|
if (this.velocity.X < -8f)
|
|
{
|
|
this.velocity.X = -8f;
|
|
}
|
|
if (this.velocity.Y > 8f)
|
|
{
|
|
this.velocity.Y = 8f;
|
|
}
|
|
if (this.velocity.Y < -8f)
|
|
{
|
|
this.velocity.Y = -8f;
|
|
}
|
|
if (num837 > 0f)
|
|
{
|
|
this.spriteDirection = 1;
|
|
this.rotation = (float)Math.Atan2((double)num838, (double)num837);
|
|
}
|
|
if (num837 < 0f)
|
|
{
|
|
this.spriteDirection = -1;
|
|
this.rotation = (float)Math.Atan2((double)num838, (double)num837) + 3.14f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 54)
|
|
{
|
|
NPC.crimsonBoss = this.whoAmI;
|
|
if (Main.netMode != 1 && this.localAI[0] == 0f)
|
|
{
|
|
this.localAI[0] = 1f;
|
|
for (int num840 = 0; num840 < 20; num840++)
|
|
{
|
|
float num841 = this.center().X;
|
|
float num842 = this.center().Y;
|
|
num841 += (float)Main.rand.Next(-this.width, this.width);
|
|
num842 += (float)Main.rand.Next(-this.height, this.height);
|
|
int num843 = NPC.NewNPC((int)num841, (int)num842, 267, 0);
|
|
Main.npc[num843].velocity = new Vector2((float)Main.rand.Next(-30, 31) * 0.1f, (float)Main.rand.Next(-30, 31) * 0.1f);
|
|
Main.npc[num843].netUpdate = true;
|
|
}
|
|
}
|
|
if (Main.netMode != 1)
|
|
{
|
|
this.TargetClosest(true);
|
|
int num844 = 6000;
|
|
if (Math.Abs(this.center().X - Main.player[this.target].center().X) + Math.Abs(this.center().Y - Main.player[this.target].center().Y) > (float)num844)
|
|
{
|
|
this.active = false;
|
|
this.life = 0;
|
|
if (Main.netMode == 2)
|
|
{
|
|
NetMessage.SendData(23, -1, -1, "", this.whoAmI, 0f, 0f, 0f, 0);
|
|
}
|
|
}
|
|
}
|
|
if (this.ai[0] < 0f)
|
|
{
|
|
if (this.localAI[2] == 0f)
|
|
{
|
|
Main.PlaySound(3, (int)this.position.X, (int)this.position.Y, 1);
|
|
this.localAI[2] = 1f;
|
|
Gore.NewGore(this.position, new Vector2((float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f), 392, 1f);
|
|
Gore.NewGore(this.position, new Vector2((float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f), 393, 1f);
|
|
Gore.NewGore(this.position, new Vector2((float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f), 394, 1f);
|
|
Gore.NewGore(this.position, new Vector2((float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f), 395, 1f);
|
|
for (int num845 = 0; num845 < 20; num845++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f, 0, default(Color), 1f);
|
|
}
|
|
Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0);
|
|
}
|
|
this.dontTakeDamage = false;
|
|
this.knockBackResist = 0.5f;
|
|
this.TargetClosest(true);
|
|
Vector2 vector105 = new Vector2(this.center().X, this.center().Y);
|
|
float num846 = Main.player[this.target].center().X - vector105.X;
|
|
float num847 = Main.player[this.target].center().Y - vector105.Y;
|
|
float num848 = (float)Math.Sqrt((double)(num846 * num846 + num847 * num847));
|
|
float num849 = 8f;
|
|
num848 = num849 / num848;
|
|
num846 *= num848;
|
|
num847 *= num848;
|
|
this.velocity.X = (this.velocity.X * 50f + num846) / 51f;
|
|
this.velocity.Y = (this.velocity.Y * 50f + num847) / 51f;
|
|
if (this.ai[0] == -1f)
|
|
{
|
|
if (Main.netMode != 1)
|
|
{
|
|
this.localAI[1] += 1f;
|
|
if (this.localAI[1] >= (float)(60 + Main.rand.Next(120)))
|
|
{
|
|
this.localAI[1] = 0f;
|
|
this.TargetClosest(true);
|
|
int num850 = 0;
|
|
int num851;
|
|
int num852;
|
|
while (true)
|
|
{
|
|
num850++;
|
|
num851 = (int)Main.player[this.target].center().X / 16;
|
|
num852 = (int)Main.player[this.target].center().Y / 16;
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
num851 += Main.rand.Next(7, 13);
|
|
}
|
|
else
|
|
{
|
|
num851 -= Main.rand.Next(7, 13);
|
|
}
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
num852 += Main.rand.Next(7, 13);
|
|
}
|
|
else
|
|
{
|
|
num852 -= Main.rand.Next(7, 13);
|
|
}
|
|
if (!WorldGen.SolidTile(num851, num852))
|
|
{
|
|
break;
|
|
}
|
|
if (num850 > 100)
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
this.ai[0] = -2f;
|
|
this.ai[1] = (float)num851;
|
|
this.ai[2] = (float)num852;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] == -2f)
|
|
{
|
|
this.velocity *= 0.9f;
|
|
this.alpha += 25;
|
|
if (this.alpha >= 255)
|
|
{
|
|
this.alpha = 255;
|
|
this.position.X = this.ai[1] * 16f - (float)(this.width / 2);
|
|
this.position.Y = this.ai[2] * 16f - (float)(this.height / 2);
|
|
Main.PlaySound(2, (int)this.center().X, (int)this.center().Y, 8);
|
|
this.ai[0] = -3f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] == -3f)
|
|
{
|
|
this.alpha -= 25;
|
|
if (this.alpha <= 0)
|
|
{
|
|
this.alpha = 0;
|
|
this.ai[0] = -1f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.TargetClosest(true);
|
|
Vector2 vector106 = new Vector2(this.center().X, this.center().Y);
|
|
float num853 = Main.player[this.target].center().X - vector106.X;
|
|
float num854 = Main.player[this.target].center().Y - vector106.Y;
|
|
float num855 = (float)Math.Sqrt((double)(num853 * num853 + num854 * num854));
|
|
float num856 = 1f;
|
|
if (num855 < num856)
|
|
{
|
|
this.velocity.X = num853;
|
|
this.velocity.Y = num854;
|
|
}
|
|
else
|
|
{
|
|
num855 = num856 / num855;
|
|
this.velocity.X = num853 * num855;
|
|
this.velocity.Y = num854 * num855;
|
|
}
|
|
if (this.ai[0] == 0f)
|
|
{
|
|
if (Main.netMode != 1)
|
|
{
|
|
int num857 = 0;
|
|
for (int num858 = 0; num858 < 200; num858++)
|
|
{
|
|
if (Main.npc[num858].active && Main.npc[num858].type == 267)
|
|
{
|
|
num857++;
|
|
}
|
|
}
|
|
if (num857 == 0)
|
|
{
|
|
this.ai[0] = -1f;
|
|
this.localAI[1] = 0f;
|
|
this.alpha = 0;
|
|
this.netUpdate = true;
|
|
}
|
|
this.localAI[1] += 1f;
|
|
if (this.localAI[1] >= (float)(120 + Main.rand.Next(300)))
|
|
{
|
|
this.localAI[1] = 0f;
|
|
this.TargetClosest(true);
|
|
int num859 = 0;
|
|
int num860;
|
|
int num861;
|
|
while (true)
|
|
{
|
|
num859++;
|
|
num860 = (int)Main.player[this.target].center().X / 16;
|
|
num861 = (int)Main.player[this.target].center().Y / 16;
|
|
num860 += Main.rand.Next(-50, 51);
|
|
num861 += Main.rand.Next(-50, 51);
|
|
if (!WorldGen.SolidTile(num860, num861) && Collision.CanHit(new Vector2((float)(num860 * 16), (float)(num861 * 16)), 1, 1, Main.player[this.target].position, Main.player[this.target].width, Main.player[this.target].height))
|
|
{
|
|
break;
|
|
}
|
|
if (num859 > 100)
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
this.ai[0] = 1f;
|
|
this.ai[1] = (float)num860;
|
|
this.ai[2] = (float)num861;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] == 1f)
|
|
{
|
|
this.alpha += 5;
|
|
if (this.alpha >= 255)
|
|
{
|
|
Main.PlaySound(2, (int)this.center().X, (int)this.center().Y, 8);
|
|
this.alpha = 255;
|
|
this.position.X = this.ai[1] * 16f - (float)(this.width / 2);
|
|
this.position.Y = this.ai[2] * 16f - (float)(this.height / 2);
|
|
this.ai[0] = 2f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] == 2f)
|
|
{
|
|
this.alpha -= 5;
|
|
if (this.alpha <= 0)
|
|
{
|
|
this.alpha = 0;
|
|
this.ai[0] = 0f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 55)
|
|
{
|
|
if (NPC.crimsonBoss < 0)
|
|
{
|
|
this.active = false;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
if (this.ai[0] == 0f)
|
|
{
|
|
Vector2 vector107 = new Vector2(this.center().X, this.center().Y);
|
|
float num862 = Main.npc[NPC.crimsonBoss].center().X - vector107.X;
|
|
float num863 = Main.npc[NPC.crimsonBoss].center().Y - vector107.Y;
|
|
float num864 = (float)Math.Sqrt((double)(num862 * num862 + num863 * num863));
|
|
if (num864 > 90f)
|
|
{
|
|
num864 = 8f / num864;
|
|
num862 *= num864;
|
|
num863 *= num864;
|
|
this.velocity.X = (this.velocity.X * 15f + num862) / 16f;
|
|
this.velocity.Y = (this.velocity.Y * 15f + num863) / 16f;
|
|
return;
|
|
}
|
|
if (Math.Abs(this.velocity.X) + Math.Abs(this.velocity.Y) < 8f)
|
|
{
|
|
this.velocity.Y = this.velocity.Y * 1.05f;
|
|
this.velocity.X = this.velocity.X * 1.05f;
|
|
}
|
|
if (Main.netMode != 1 && Main.rand.Next(200) == 0)
|
|
{
|
|
this.TargetClosest(true);
|
|
vector107 = new Vector2(this.center().X, this.center().Y);
|
|
num862 = Main.player[this.target].center().X - vector107.X;
|
|
num863 = Main.player[this.target].center().Y - vector107.Y;
|
|
num864 = (float)Math.Sqrt((double)(num862 * num862 + num863 * num863));
|
|
num864 = 8f / num864;
|
|
this.velocity.X = num862 * num864;
|
|
this.velocity.Y = num863 * num864;
|
|
this.ai[0] = 1f;
|
|
this.netUpdate = true;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
Vector2 vector108 = new Vector2(this.center().X, this.center().Y);
|
|
float num865 = Main.npc[NPC.crimsonBoss].center().X - vector108.X;
|
|
float num866 = Main.npc[NPC.crimsonBoss].center().Y - vector108.Y;
|
|
float num867 = (float)Math.Sqrt((double)(num865 * num865 + num866 * num866));
|
|
if (num867 > 700f || this.justHit)
|
|
{
|
|
this.ai[0] = 0f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiStyle == 56)
|
|
{
|
|
this.TargetClosest(true);
|
|
Vector2 vector109 = new Vector2(this.center().X, this.center().Y);
|
|
float num868 = Main.player[this.target].center().X - vector109.X;
|
|
float num869 = Main.player[this.target].center().Y - vector109.Y;
|
|
float num870 = (float)Math.Sqrt((double)(num868 * num868 + num869 * num869));
|
|
float num871 = 12f;
|
|
num870 = num871 / num870;
|
|
num868 *= num870;
|
|
num869 *= num870;
|
|
this.velocity.X = (this.velocity.X * 100f + num868) / 101f;
|
|
this.velocity.Y = (this.velocity.Y * 100f + num869) / 101f;
|
|
this.rotation = (float)Math.Atan2((double)num869, (double)num868) - 1.57f;
|
|
int num872 = Dust.NewDust(this.position, this.width, this.height, 180, 0f, 0f, 0, default(Color), 1f);
|
|
Main.dust[num872].velocity *= 0.1f;
|
|
Main.dust[num872].scale = 1.3f;
|
|
Main.dust[num872].noGravity = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
public void FindFrame()
|
|
{
|
|
int num = 1;
|
|
if (!Main.dedServ)
|
|
{
|
|
if (!Main.NPCLoaded[this.type])
|
|
{
|
|
return;
|
|
}
|
|
num = Main.npcTexture[this.type].Height / Main.npcFrameCount[this.type];
|
|
}
|
|
int num2 = 0;
|
|
if (this.aiAction == 0)
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
num2 = 2;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
num2 = 3;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X != 0f)
|
|
{
|
|
num2 = 1;
|
|
}
|
|
else
|
|
{
|
|
num2 = 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.aiAction == 1)
|
|
{
|
|
num2 = 4;
|
|
}
|
|
}
|
|
if (this.type == 1 || this.type == 16 || this.type == 59 || this.type == 71 || this.type == 81 || this.type == 138 || this.type == 147 || this.type == 183 || this.type == 184 || this.type == 204 || this.type == 225)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (num2 > 0)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
}
|
|
if (num2 == 4)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
}
|
|
if (this.frameCounter >= 8.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y >= num * Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
if (this.type == 266)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter > 6.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = this.frame.Y + num;
|
|
}
|
|
if (this.ai[0] >= 0f)
|
|
{
|
|
if (this.frame.Y > num * 3)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.frame.Y < num * 4)
|
|
{
|
|
this.frame.Y = num * 4;
|
|
}
|
|
if (this.frame.Y > num * 7)
|
|
{
|
|
this.frame.Y = num * 4;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 262)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter > 6.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = this.frame.Y + num;
|
|
}
|
|
if (this.life > this.lifeMax / 2)
|
|
{
|
|
if (this.frame.Y > num * 3)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.frame.Y < num * 4)
|
|
{
|
|
this.frame.Y = num * 4;
|
|
}
|
|
if (this.frame.Y > num * 7)
|
|
{
|
|
this.frame.Y = num * 4;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 263)
|
|
{
|
|
if (this.velocity.X == 0f && this.velocity.Y == 0f)
|
|
{
|
|
if (this.frame.Y > 0)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter > 4.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = this.frame.Y - num;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.frame.Y < 2)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter > 4.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = this.frame.Y + num;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 244)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (num2 > 0)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
}
|
|
if (num2 == 4)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
}
|
|
if (this.frameCounter >= 8.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y >= num * Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
if (this.type == 289)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter < 2.0)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 3.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = num * 2;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
}
|
|
if (this.ai[3] == 1f)
|
|
{
|
|
this.frame.Y = this.frame.Y + num * 3;
|
|
}
|
|
}
|
|
if (this.type == 288)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 6.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y >= num * Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
if (this.type == 250 || this.type == 264 || this.type == 268)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 6.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y >= num * Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
if (this.type == 245)
|
|
{
|
|
if (this.ai[0] == 0f)
|
|
{
|
|
if (this.ai[1] < -16f)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] < -12f)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] < -8f)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] < -4f)
|
|
{
|
|
this.frame.Y = num * 3;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] < 0f)
|
|
{
|
|
this.frame.Y = num * 4;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] == 1f)
|
|
{
|
|
this.frame.Y = 1;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 246)
|
|
{
|
|
if (this.ai[0] == 0f)
|
|
{
|
|
if (this.localAI[0] == 1f)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] == 1f)
|
|
{
|
|
if (this.localAI[0] == 1f)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
if (this.localAI[1] == -1f)
|
|
{
|
|
this.frame.Y = this.frame.Y + num * 4;
|
|
}
|
|
if (this.localAI[1] == 1f)
|
|
{
|
|
this.frame.Y = this.frame.Y + num * 2;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 249)
|
|
{
|
|
if (this.localAI[0] == 1f)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
if (this.type == 141)
|
|
{
|
|
this.spriteDirection = this.direction;
|
|
if (this.velocity.Y != 0f)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 8.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y > num)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 243)
|
|
{
|
|
if (this.frameCounter < 0.0)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter < -12.0)
|
|
{
|
|
if (this.frame.Y > num * 9)
|
|
{
|
|
this.frame.Y = num * 11;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < -6.0)
|
|
{
|
|
if (this.frame.Y > num * 9)
|
|
{
|
|
this.frame.Y = num * 12;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 0.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
if (this.frame.Y > num * 9)
|
|
{
|
|
this.frame.Y = num * 11;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = -18.0;
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.frame.Y = num * 14;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = num * 13;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.spriteDirection = this.direction;
|
|
this.frameCounter += (double)Math.Abs(this.velocity.X * 1.1f);
|
|
if (this.frameCounter >= 6.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = this.frame.Y + num;
|
|
if (this.frame.Y > num * 9)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
if (this.velocity.Y < -2f || this.velocity.Y > 5f)
|
|
{
|
|
this.frameCounter = -18.0;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 222)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.localAI[0] == 1f)
|
|
{
|
|
if (this.frameCounter > 4.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y >= num * 4)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter > 4.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y < num * 4)
|
|
{
|
|
this.frame.Y = num * 4;
|
|
}
|
|
if (this.frame.Y >= num * 12)
|
|
{
|
|
this.frame.Y = num * 4;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 164 || this.type == 239)
|
|
{
|
|
if (this.velocity.Y != 0f)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.frame.Y = num * 4;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.spriteDirection = this.direction;
|
|
this.frameCounter += (double)(Math.Abs(this.velocity.X) * 1.1f);
|
|
if (this.frameCounter < 6.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 12.0)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 18.0)
|
|
{
|
|
this.frame.Y = num * 3;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 236)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.spriteDirection = this.direction;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
this.frameCounter += (double)Math.Abs(this.velocity.X);
|
|
if (this.frameCounter > 6.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y > num || this.velocity.Y != 0f)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
if (this.type == 165 || this.type == 237 || this.type == 238 || this.type == 240)
|
|
{
|
|
this.frameCounter += (double)((Math.Abs(this.velocity.X) + Math.Abs(this.velocity.Y)) * 0.5f);
|
|
if (this.frameCounter < 6.0)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 12.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 18.0)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 24.0)
|
|
{
|
|
this.frame.Y = num * 3;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 195)
|
|
{
|
|
if (this.ai[0] < 3f)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] < 6f)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] < 9f)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] < 12f)
|
|
{
|
|
this.frame.Y = num * 3;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] < 15f)
|
|
{
|
|
this.frame.Y = num * 4;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = num * 5;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 174)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
if ((double)this.velocity.Y < -1.5)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
if ((double)this.velocity.Y > 1.5)
|
|
{
|
|
this.frame.Y = num * 3;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 177)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 10.0)
|
|
{
|
|
this.frameCounter = 30.0;
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = num * 2;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 163)
|
|
{
|
|
if (this.velocity.Y != 0f)
|
|
{
|
|
this.frameCounter = -12.0;
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.frame.Y = num * 5;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = num * 6;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.spriteDirection = this.direction;
|
|
this.frameCounter += (double)(Math.Abs(this.velocity.X) * 1.1f);
|
|
if (this.frameCounter < -6.0)
|
|
{
|
|
this.frame.Y = num * 6;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 0.0)
|
|
{
|
|
this.frame.Y = num * 7;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 6.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 12.0)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 18.0)
|
|
{
|
|
this.frame.Y = num * 3;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 143)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.frameCounter -= 1.0;
|
|
}
|
|
}
|
|
if (this.frameCounter < 6.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 12.0)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 18.0)
|
|
{
|
|
this.frame.Y = num * 3;
|
|
}
|
|
}
|
|
}
|
|
if (this.frameCounter < 0.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frameCounter > 17.0)
|
|
{
|
|
this.frameCounter = 17.0;
|
|
}
|
|
}
|
|
if (this.type == 144)
|
|
{
|
|
if (this.velocity.X == 0f && this.velocity.Y == 0f)
|
|
{
|
|
this.localAI[3] += 1f;
|
|
if (this.localAI[3] < 6f)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
if (this.localAI[3] < 12f)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
}
|
|
if (this.localAI[3] >= 11f)
|
|
{
|
|
this.localAI[3] = 0f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.frameCounter -= 1.0;
|
|
}
|
|
}
|
|
if (this.frameCounter < 6.0)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 12.0)
|
|
{
|
|
this.frame.Y = num * 3;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 18.0)
|
|
{
|
|
this.frame.Y = num * 4;
|
|
}
|
|
}
|
|
}
|
|
if (this.frameCounter < 0.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frameCounter > 17.0)
|
|
{
|
|
this.frameCounter = 17.0;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 145)
|
|
{
|
|
if (this.velocity.X == 0f && this.velocity.Y == 0f)
|
|
{
|
|
if (this.ai[2] < 4f)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[2] < 8f)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[2] < 12f)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[2] < 16f)
|
|
{
|
|
this.frame.Y = num * 3;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.frameCounter -= 1.0;
|
|
}
|
|
}
|
|
if (this.frameCounter < 6.0)
|
|
{
|
|
this.frame.Y = num * 4;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 12.0)
|
|
{
|
|
this.frame.Y = num * 5;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 18.0)
|
|
{
|
|
this.frame.Y = num * 6;
|
|
}
|
|
}
|
|
}
|
|
if (this.frameCounter < 0.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frameCounter > 17.0)
|
|
{
|
|
this.frameCounter = 17.0;
|
|
}
|
|
}
|
|
}
|
|
if (this.aiStyle == 39)
|
|
{
|
|
if (this.ai[0] == 0f)
|
|
{
|
|
this.rotation = 0f;
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.spriteDirection = this.direction;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
}
|
|
this.frameCounter += (double)(Math.Abs(this.velocity.X) * 1.1f);
|
|
if (this.frameCounter < 6.0)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 12.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 18.0)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 24.0)
|
|
{
|
|
this.frame.Y = num * 3;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 32.0)
|
|
{
|
|
this.frame.Y = num * 4;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] == 1f)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
if (this.ai[1] < 10f)
|
|
{
|
|
this.frame.Y = num * 5;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] < 20f)
|
|
{
|
|
this.frame.Y = num * 6;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = num * 7;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[0] == 5f)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
if (this.ai[1] < 10f)
|
|
{
|
|
this.frame.Y = num * 7;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] < 20f)
|
|
{
|
|
this.frame.Y = num * 6;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = num * 5;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = num * 7;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 50)
|
|
{
|
|
if (this.velocity.Y != 0f)
|
|
{
|
|
this.frame.Y = num * 4;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (num2 > 0)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
}
|
|
if (num2 == 4)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
}
|
|
if (this.frameCounter >= 8.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y >= num * 4)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 170 || this.type == 171 || this.type == 180)
|
|
{
|
|
this.spriteDirection = this.direction;
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 4.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y >= num * 14)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
if (this.type == 135)
|
|
{
|
|
if (this.ai[2] == 0f)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
}
|
|
if (this.type == 85)
|
|
{
|
|
if (this.ai[0] == 0f)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
int num3 = 3;
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.frameCounter -= 1.0;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter += 1.0;
|
|
}
|
|
if (this.frameCounter < 0.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frameCounter > (double)(num3 * 4))
|
|
{
|
|
this.frameCounter = (double)(num3 * 4);
|
|
}
|
|
if (this.frameCounter < (double)num3)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < (double)(num3 * 2))
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < (double)(num3 * 3))
|
|
{
|
|
this.frame.Y = num * 3;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < (double)(num3 * 4))
|
|
{
|
|
this.frame.Y = num * 4;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < (double)(num3 * 5))
|
|
{
|
|
this.frame.Y = num * 5;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < (double)(num3 * 6))
|
|
{
|
|
this.frame.Y = num * 4;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < (double)(num3 * 7))
|
|
{
|
|
this.frame.Y = num * 3;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = num * 2;
|
|
if (this.frameCounter >= (double)(num3 * 8))
|
|
{
|
|
this.frameCounter = (double)num3;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.ai[3] == 2f)
|
|
{
|
|
this.frame.Y = this.frame.Y + num * 6;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[3] == 3f)
|
|
{
|
|
this.frame.Y = this.frame.Y + num * 12;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[3] == 4f)
|
|
{
|
|
this.frame.Y = this.frame.Y + num * 18;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 113 || this.type == 114)
|
|
{
|
|
if (this.ai[2] == 0f)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 12.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y >= num * Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = 0;
|
|
this.frameCounter = -60.0;
|
|
}
|
|
}
|
|
if (this.type == 61)
|
|
{
|
|
this.spriteDirection = this.direction;
|
|
this.rotation = this.velocity.X * 0.1f;
|
|
if (this.velocity.X == 0f && this.velocity.Y == 0f)
|
|
{
|
|
this.frame.Y = 0;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter < 4.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = num * 2;
|
|
if (this.frameCounter >= 7.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 252)
|
|
{
|
|
if ((double)this.velocity.X > 0.5)
|
|
{
|
|
this.spriteDirection = 1;
|
|
}
|
|
if ((double)this.velocity.X < -0.5)
|
|
{
|
|
this.spriteDirection = -1;
|
|
}
|
|
this.rotation = this.velocity.X * 0.1f;
|
|
if (this.velocity.X == 0f && this.velocity.Y == 0f)
|
|
{
|
|
this.frame.Y = 0;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter > 4.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = this.frame.Y + num;
|
|
}
|
|
if (this.frame.Y > num * 4 || this.frame.Y == 0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 122)
|
|
{
|
|
this.spriteDirection = this.direction;
|
|
this.rotation = this.velocity.X * 0.05f;
|
|
if (this.ai[3] > 0f)
|
|
{
|
|
int num4 = (int)(this.ai[3] / 8f);
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = (num4 + 3) * num;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 8.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y >= num * 3)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 74 || this.type == 297 || this.type == 298)
|
|
{
|
|
this.spriteDirection = this.direction;
|
|
this.rotation = this.velocity.X * 0.1f;
|
|
if (this.velocity.X == 0f && this.velocity.Y == 0f)
|
|
{
|
|
this.frame.Y = num * 4;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 4.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y >= num * Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 62 || this.type == 66 || this.type == 156)
|
|
{
|
|
this.spriteDirection = this.direction;
|
|
this.rotation = this.velocity.X * 0.1f;
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter < 6.0)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = num;
|
|
if (this.frameCounter >= 11.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 63 || this.type == 64 || this.type == 103 || this.type == 242 || this.type == 256)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter < 6.0)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 12.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 18.0)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = num * 3;
|
|
if (this.frameCounter >= 23.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 221)
|
|
{
|
|
if (this.localAI[2] == 1f)
|
|
{
|
|
if (this.localAI[0] == 1f)
|
|
{
|
|
this.frame.Y = 0;
|
|
this.localAI[0] = 0f;
|
|
}
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 8.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y >= num * Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = num * Main.npcFrameCount[this.type] - num;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 13.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y >= num * Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 2 || this.type == 23 || this.type == 121 || this.type == 169 || this.type == 190 || this.type == 191 || this.type == 192 || this.type == 193 || this.type == 194)
|
|
{
|
|
if (this.type == 2 || this.type == 190 || this.type == 191 || this.type == 192 || this.type == 193 || this.type == 194)
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.spriteDirection = 1;
|
|
this.rotation = (float)Math.Atan2((double)this.velocity.Y, (double)this.velocity.X);
|
|
}
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.spriteDirection = -1;
|
|
this.rotation = (float)Math.Atan2((double)this.velocity.Y, (double)this.velocity.X) + 3.14f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 2 || this.type == 121)
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.spriteDirection = 1;
|
|
}
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.spriteDirection = -1;
|
|
}
|
|
this.rotation = this.velocity.X * 0.1f;
|
|
}
|
|
}
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 8.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y >= num * Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
if (this.type == 133)
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.spriteDirection = 1;
|
|
this.rotation = (float)Math.Atan2((double)this.velocity.Y, (double)this.velocity.X);
|
|
}
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.spriteDirection = -1;
|
|
this.rotation = (float)Math.Atan2((double)this.velocity.Y, (double)this.velocity.X) + 3.14f;
|
|
}
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 8.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
if (this.frameCounter >= 16.0)
|
|
{
|
|
this.frame.Y = 0;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if ((double)this.life < (double)this.lifeMax * 0.5)
|
|
{
|
|
this.frame.Y = this.frame.Y + num * 2;
|
|
}
|
|
}
|
|
if (this.type == 116)
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.spriteDirection = 1;
|
|
this.rotation = (float)Math.Atan2((double)this.velocity.Y, (double)this.velocity.X);
|
|
}
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.spriteDirection = -1;
|
|
this.rotation = (float)Math.Atan2((double)this.velocity.Y, (double)this.velocity.X) + 3.14f;
|
|
}
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 5.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y >= num * Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
if (this.type == 75)
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.spriteDirection = 1;
|
|
}
|
|
else
|
|
{
|
|
this.spriteDirection = -1;
|
|
}
|
|
this.rotation = this.velocity.X * 0.1f;
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 4.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y >= num * Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
if (this.type == 157)
|
|
{
|
|
this.spriteDirection = this.direction;
|
|
this.frameCounter += 1.0;
|
|
if (!this.wet)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
}
|
|
int num5 = 5;
|
|
if (this.frameCounter < (double)num5)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < (double)(num5 * 2))
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < (double)(num5 * 3))
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < (double)(num5 * 4))
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < (double)(num5 * 5))
|
|
{
|
|
this.frame.Y = num * 3;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < (double)(num5 * 6))
|
|
{
|
|
this.frame.Y = num * 4;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < (double)(num5 * 7))
|
|
{
|
|
this.frame.Y = num * 5;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < (double)(num5 * 8))
|
|
{
|
|
this.frame.Y = num * 4;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 55 || this.type == 57 || this.type == 58 || this.type == 102 || this.type == 241)
|
|
{
|
|
this.spriteDirection = this.direction;
|
|
this.frameCounter += 1.0;
|
|
if (this.wet)
|
|
{
|
|
if (this.frameCounter < 6.0)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 12.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 18.0)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 24.0)
|
|
{
|
|
this.frame.Y = num * 3;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 6.0)
|
|
{
|
|
this.frame.Y = num * 4;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 12.0)
|
|
{
|
|
this.frame.Y = num * 5;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 69)
|
|
{
|
|
if (this.ai[0] < 190f)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 6.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = this.frame.Y + num;
|
|
if (this.frame.Y / num >= Main.npcFrameCount[this.type] - 1)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = num * (Main.npcFrameCount[this.type] - 1);
|
|
}
|
|
}
|
|
if (this.type == 155)
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.frame.Y = num * 4;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.frame.Y = num * 6;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
else
|
|
{
|
|
this.spriteDirection = this.direction;
|
|
this.frameCounter += (double)(Math.Abs(this.velocity.X) * 0.4f);
|
|
if ((this.direction > 0 && this.velocity.X < 0f) || (this.direction < 0 && this.velocity.X > 0f))
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 8.0)
|
|
{
|
|
this.frame.Y = num * 3;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 16.0)
|
|
{
|
|
this.frame.Y = num * 6;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 24.0)
|
|
{
|
|
this.frame.Y = num * 4;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 32.0)
|
|
{
|
|
this.frame.Y = num * 5;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 86)
|
|
{
|
|
if (this.velocity.Y == 0f || this.wet)
|
|
{
|
|
if (this.velocity.X < -2f)
|
|
{
|
|
this.spriteDirection = -1;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X > 2f)
|
|
{
|
|
this.spriteDirection = 1;
|
|
}
|
|
else
|
|
{
|
|
this.spriteDirection = this.direction;
|
|
}
|
|
}
|
|
}
|
|
if (this.velocity.Y != 0f)
|
|
{
|
|
this.frame.Y = num * 15;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X == 0f)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
if (Math.Abs(this.velocity.X) < 3f)
|
|
{
|
|
this.frameCounter += (double)Math.Abs(this.velocity.X);
|
|
if (this.frameCounter >= 6.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = this.frame.Y + num;
|
|
if (this.frame.Y / num >= 9)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
if (this.frame.Y / num <= 0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter += (double)Math.Abs(this.velocity.X);
|
|
if (this.frameCounter >= 10.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = this.frame.Y + num;
|
|
if (this.frame.Y / num >= 15)
|
|
{
|
|
this.frame.Y = num * 9;
|
|
}
|
|
if (this.frame.Y / num <= 8)
|
|
{
|
|
this.frame.Y = num * 9;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 127)
|
|
{
|
|
if (this.ai[1] == 0f)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 12.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = this.frame.Y + num;
|
|
if (this.frame.Y / num >= 2)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = num * 2;
|
|
}
|
|
}
|
|
if (this.type == 129)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.spriteDirection = this.direction;
|
|
}
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 2.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = this.frame.Y + num;
|
|
if (this.frame.Y / num >= Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 130)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.spriteDirection = this.direction;
|
|
}
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 8.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = this.frame.Y + num;
|
|
if (this.frame.Y / num >= Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 67 || this.type == 217 || this.type == 218 || this.type == 219)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.spriteDirection = this.direction;
|
|
}
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 6.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = this.frame.Y + num;
|
|
if (this.frame.Y / num >= Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 220)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.spriteDirection = this.direction;
|
|
}
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 10.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = this.frame.Y + num;
|
|
if (this.frame.Y / num >= Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 109)
|
|
{
|
|
if (this.velocity.Y == 0f && ((this.velocity.X <= 0f && this.direction < 0) || (this.velocity.X >= 0f && this.direction > 0)))
|
|
{
|
|
this.spriteDirection = this.direction;
|
|
}
|
|
this.frameCounter += (double)Math.Abs(this.velocity.X);
|
|
if (this.frameCounter >= 7.0)
|
|
{
|
|
this.frameCounter -= 7.0;
|
|
this.frame.Y = this.frame.Y + num;
|
|
if (this.frame.Y / num >= Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 83 || this.type == 84 || this.type == 179)
|
|
{
|
|
if (this.ai[0] == 2f)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 4.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = this.frame.Y + num;
|
|
if (this.frame.Y / num >= Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 72)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 3.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = this.frame.Y + num;
|
|
if (this.frame.Y / num >= Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 65)
|
|
{
|
|
this.spriteDirection = this.direction;
|
|
this.frameCounter += 1.0;
|
|
if (this.wet)
|
|
{
|
|
if (this.frameCounter < 6.0)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 12.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 18.0)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 24.0)
|
|
{
|
|
this.frame.Y = num * 3;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 224)
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.spriteDirection = 1;
|
|
this.rotation = this.velocity.Y * 0.2f;
|
|
}
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.spriteDirection = -1;
|
|
this.rotation = -this.velocity.Y * 0.2f;
|
|
}
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 6.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y >= num * 4)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
if (this.type == 150 || this.type == 151 || this.type == 152 || this.type == 158 || this.type == 226)
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.spriteDirection = 1;
|
|
}
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.spriteDirection = -1;
|
|
}
|
|
this.rotation = this.velocity.X * 0.1f;
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 6.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y >= num * 4)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
if (this.type == 48 || this.type == 49 || this.type == 51 || this.type == 60 || this.type == 82 || this.type == 93 || this.type == 137 || this.type == 182 || this.type == 210 || this.type == 211 || this.type == 253)
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.spriteDirection = 1;
|
|
}
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.spriteDirection = -1;
|
|
}
|
|
this.rotation = this.velocity.X * 0.1f;
|
|
if (this.type == 210 || this.type == 211)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
this.rotation = this.velocity.X * 0.2f;
|
|
}
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 6.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y >= num * Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
if (this.type == 42 || (this.type >= 231 && this.type <= 235))
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter < 2.0)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 4.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 6.0)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 8.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 205)
|
|
{
|
|
this.frameCounter += 0.5;
|
|
if (this.frameCounter < 2.0)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 4.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 6.0)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 8.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 176)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter > 4.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y > num)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
if (this.type == 43 || this.type == 56 || this.type == 175)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter < 6.0)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 12.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 18.0)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 24.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.frameCounter == 23.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
}
|
|
if (this.type == 115)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter < 3.0)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 6.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 12.0)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 15.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.frameCounter == 15.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
}
|
|
if (this.type == 101)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter > 6.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num * 2;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y > num * 2)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
if (this.type == 199)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
if (this.direction == 1)
|
|
{
|
|
this.spriteDirection = 1;
|
|
}
|
|
if (this.direction == -1)
|
|
{
|
|
this.spriteDirection = -1;
|
|
}
|
|
}
|
|
if (this.frame.Y < num * 3)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter > 6.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = this.frame.Y + num;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.frameCounter += (double)Math.Abs(this.velocity.X);
|
|
if (this.frameCounter > 12.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = this.frame.Y + num;
|
|
if (this.frame.Y > num * 7)
|
|
{
|
|
this.frame.Y = num * 3;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 17 || this.type == 18 || this.type == 19 || this.type == 20 || this.type == 22 || this.type == 142 || this.type == 178 || this.type == 38 || this.type == 26 || this.type == 27 || this.type == 28 || this.type == 31 || this.type == 294 || this.type == 295 || this.type == 296 || this.type == 21 || this.type == 44 || this.type == 54 || this.type == 37 || this.type == 73 || this.type == 77 || this.type == 78 || this.type == 79 || this.type == 80 || this.type == 104 || this.type == 107 || this.type == 108 || this.type == 120 || this.type == 124 || this.type == 140 || this.type == 159 || this.type == 160 || this.type == 167 || this.type == 181 || this.type == 185 || this.type == 196 || this.type == 197 || this.type == 198 || this.type == 201 || this.type == 202 || this.type == 203 || this.type == 207 || this.type == 208 || this.type == 209 || this.type == 212 || this.type == 213 || this.type == 227 || this.type == 228 || this.type == 229 || this.type == 287)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
if (this.direction == 1)
|
|
{
|
|
this.spriteDirection = 1;
|
|
}
|
|
if (this.direction == -1)
|
|
{
|
|
this.spriteDirection = -1;
|
|
}
|
|
if (this.velocity.X == 0f)
|
|
{
|
|
if (this.type == 140 || this.type == 287)
|
|
{
|
|
this.frame.Y = num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = 0;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter += (double)(Math.Abs(this.velocity.X) * 2f);
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter > 6.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y / num >= Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = num;
|
|
if (this.type == 21 || this.type == 31 || this.type == 294 || this.type == 295 || this.type == 296 || this.type == 44 || this.type == 77 || this.type == 78 || this.type == 79 || this.type == 80 || this.type == 120 || this.type == 140 || this.type == 159 || this.type == 167 || this.type == 197 || this.type == 201 || this.type == 202 || this.type == 203 || this.type == 287)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
if (this.type == 181)
|
|
{
|
|
this.frame.Y = num * 14;
|
|
}
|
|
}
|
|
}
|
|
if (this.type >= 269 && this.type <= 280)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
if (this.direction == 1)
|
|
{
|
|
this.spriteDirection = 1;
|
|
}
|
|
if (this.direction == -1)
|
|
{
|
|
this.spriteDirection = -1;
|
|
}
|
|
if (this.velocity.X == 0f)
|
|
{
|
|
if (this.type == 140)
|
|
{
|
|
this.frame.Y = num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = 0;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter += (double)(Math.Abs(this.velocity.X) * 2f);
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter > 6.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y / num >= Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
if (this.type == 230)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
this.rotation = 0f;
|
|
if (this.direction == 1)
|
|
{
|
|
this.spriteDirection = 1;
|
|
}
|
|
if (this.direction == -1)
|
|
{
|
|
this.spriteDirection = -1;
|
|
}
|
|
if (this.velocity.X == 0f)
|
|
{
|
|
this.frame.Y = 0;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter += (double)(Math.Abs(this.velocity.X) * 2f);
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter > 10.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y / num >= Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = 0;
|
|
if (this.velocity.Y > 4f)
|
|
{
|
|
this.rotation -= this.velocity.Y * 0.01f;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 290)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
if (this.direction == 1)
|
|
{
|
|
this.spriteDirection = 1;
|
|
}
|
|
if (this.direction == -1)
|
|
{
|
|
this.spriteDirection = -1;
|
|
}
|
|
if (this.ai[2] > 0f)
|
|
{
|
|
if (this.ai[1] < 10f)
|
|
{
|
|
this.frame.Y = num * 11;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] < 20f)
|
|
{
|
|
this.frame.Y = num * 10;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = num * 9;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X == 0f)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
if (this.frame.Y < num * 2)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
this.frameCounter += (double)(Math.Abs(this.velocity.X) * 1f);
|
|
if (this.frameCounter > 6.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y > num * 8)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = num;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 110 || this.type == 214 || this.type == 215 || this.type == 216 || this.type == 291 || this.type == 292 || this.type == 293)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
if (this.direction == 1)
|
|
{
|
|
this.spriteDirection = 1;
|
|
}
|
|
if (this.direction == -1)
|
|
{
|
|
this.spriteDirection = -1;
|
|
}
|
|
if (this.ai[2] > 0f)
|
|
{
|
|
this.spriteDirection = this.direction;
|
|
this.frame.Y = num * (int)this.ai[2];
|
|
this.frameCounter = 0.0;
|
|
}
|
|
else
|
|
{
|
|
if (this.frame.Y < num * 6)
|
|
{
|
|
this.frame.Y = num * 6;
|
|
}
|
|
this.frameCounter += (double)(Math.Abs(this.velocity.X) * 2f);
|
|
this.frameCounter += (double)this.velocity.X;
|
|
if (this.frameCounter > 6.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y / num >= Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = num * 6;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 206)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
if (this.direction == 1)
|
|
{
|
|
this.spriteDirection = 1;
|
|
}
|
|
if (this.direction == -1)
|
|
{
|
|
this.spriteDirection = -1;
|
|
}
|
|
if (this.ai[2] > 0f)
|
|
{
|
|
this.spriteDirection = this.direction;
|
|
this.frame.Y = num * (int)this.ai[2];
|
|
this.frameCounter = 0.0;
|
|
}
|
|
else
|
|
{
|
|
if (this.frame.Y < num * 6)
|
|
{
|
|
this.frame.Y = num * 6;
|
|
}
|
|
this.frameCounter += (double)(Math.Abs(this.velocity.X) * 2f);
|
|
this.frameCounter += (double)this.velocity.X;
|
|
if (this.frameCounter > 6.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y / num >= Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = num * 6;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 111)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
if (this.direction == 1)
|
|
{
|
|
this.spriteDirection = 1;
|
|
}
|
|
if (this.direction == -1)
|
|
{
|
|
this.spriteDirection = -1;
|
|
}
|
|
if (this.ai[2] > 0f)
|
|
{
|
|
this.spriteDirection = this.direction;
|
|
this.frame.Y = num * ((int)this.ai[2] - 1);
|
|
this.frameCounter = 0.0;
|
|
}
|
|
else
|
|
{
|
|
if (this.frame.Y < num * 7)
|
|
{
|
|
this.frame.Y = num * 7;
|
|
}
|
|
this.frameCounter += (double)(Math.Abs(this.velocity.X) * 2f);
|
|
this.frameCounter += (double)(this.velocity.X * 1.3f);
|
|
if (this.frameCounter > 6.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y / num >= Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = num * 7;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = num * 6;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 257)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
if (this.direction == 1)
|
|
{
|
|
this.spriteDirection = 1;
|
|
}
|
|
if (this.direction == -1)
|
|
{
|
|
this.spriteDirection = -1;
|
|
}
|
|
}
|
|
if (this.velocity.Y != 0f || (this.direction == -1 && this.velocity.X > 0f) || (this.direction == 1 && this.velocity.X < 0f))
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = num * 4;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X == 0f)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter += (double)Math.Abs(this.velocity.X);
|
|
if (this.frameCounter < 8.0)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 16.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 24.0)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 32.0)
|
|
{
|
|
this.frame.Y = num * 3;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 258)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
if (this.direction == 1)
|
|
{
|
|
this.spriteDirection = 1;
|
|
}
|
|
if (this.direction == -1)
|
|
{
|
|
this.spriteDirection = -1;
|
|
}
|
|
}
|
|
if (this.velocity.Y != 0f || (this.direction == -1 && this.velocity.X > 0f) || (this.direction == 1 && this.velocity.X < 0f))
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter > 1.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y > num * 5 || this.frame.Y < num * 3)
|
|
{
|
|
this.frame.Y = num * 3;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X == 0f)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter += (double)Math.Abs(this.velocity.X);
|
|
if (this.frameCounter < 8.0)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 16.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 24.0)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 3 || this.type == 52 || this.type == 53 || this.type == 132 || this.type == 161 || this.type == 162 || this.type == 166 || this.type == 186 || this.type == 187 || this.type == 188 || this.type == 189 || this.type == 200 || this.type == 223 || this.type == 251 || this.type == 254 || this.type == 255)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
if (this.direction == 1)
|
|
{
|
|
this.spriteDirection = 1;
|
|
}
|
|
if (this.direction == -1)
|
|
{
|
|
this.spriteDirection = -1;
|
|
}
|
|
}
|
|
if (this.velocity.Y != 0f || (this.direction == -1 && this.velocity.X > 0f) || (this.direction == 1 && this.velocity.X < 0f))
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.X == 0f)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter += (double)Math.Abs(this.velocity.X);
|
|
if (this.frameCounter < 8.0)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 16.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 24.0)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 32.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 148 || this.type == 149 || this.type == 168)
|
|
{
|
|
int num6 = 0;
|
|
if (this.localAI[0] == 2f)
|
|
{
|
|
num6 = 3;
|
|
}
|
|
if (this.localAI[0] == 3f)
|
|
{
|
|
num6 = 6;
|
|
}
|
|
if (this.localAI[0] == 4f)
|
|
{
|
|
num6 = 9;
|
|
}
|
|
num6 *= num;
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
if (this.direction == 1)
|
|
{
|
|
this.spriteDirection = 1;
|
|
}
|
|
if (this.direction == -1)
|
|
{
|
|
this.spriteDirection = -1;
|
|
}
|
|
if (this.velocity.X == 0f)
|
|
{
|
|
this.frame.Y = num6;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter += (double)(Math.Abs(this.velocity.X) * 1f);
|
|
if (this.frameCounter < 6.0)
|
|
{
|
|
this.frame.Y = num6;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 12.0)
|
|
{
|
|
this.frame.Y = num + num6;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 15.0)
|
|
{
|
|
this.frame.Y = num * 2 + num6;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = num * 2 + num6;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = num * 2 + num6;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = num * 2 + num6;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 299)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
if (this.direction == 1)
|
|
{
|
|
this.spriteDirection = 1;
|
|
}
|
|
if (this.direction == -1)
|
|
{
|
|
this.spriteDirection = -1;
|
|
}
|
|
if (this.velocity.X == 0f)
|
|
{
|
|
this.frame.Y = 0;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter += (double)(Math.Abs(this.velocity.X) * 0.5f);
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter > 6.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y / num >= Main.npcFrameCount[this.type] - 1)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = num * 4;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 300)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
if (this.direction == 1)
|
|
{
|
|
this.spriteDirection = 1;
|
|
}
|
|
if (this.direction == -1)
|
|
{
|
|
this.spriteDirection = -1;
|
|
}
|
|
if (this.velocity.X == 0f)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter > 8.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y / num > 1)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter += (double)(Math.Abs(this.velocity.X) * 0.5f);
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter > 6.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y / num >= Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter += (double)(Math.Abs(this.velocity.X) * 0.5f);
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter > 6.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y / num >= Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 46 || this.type == 47)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
if (this.direction == 1)
|
|
{
|
|
this.spriteDirection = 1;
|
|
}
|
|
if (this.direction == -1)
|
|
{
|
|
this.spriteDirection = -1;
|
|
}
|
|
if (this.velocity.X == 0f)
|
|
{
|
|
this.frame.Y = 0;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter += (double)(Math.Abs(this.velocity.X) * 1f);
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter > 6.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y / num >= Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = num * 4;
|
|
}
|
|
else
|
|
{
|
|
if (this.velocity.Y > 0f)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = num * 6;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 4 || this.type == 125 || this.type == 126)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter < 7.0)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 14.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 21.0)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter = 0.0;
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
}
|
|
if (this.ai[0] > 1f)
|
|
{
|
|
this.frame.Y = this.frame.Y + num * 3;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 5)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 8.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y >= num * Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 94)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter < 6.0)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 12.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter < 18.0)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = num;
|
|
if (this.frameCounter >= 23.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 6 || this.type == 173)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 8.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y >= num * Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 24)
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
if (this.direction == 1)
|
|
{
|
|
this.spriteDirection = 1;
|
|
}
|
|
if (this.direction == -1)
|
|
{
|
|
this.spriteDirection = -1;
|
|
}
|
|
}
|
|
if (this.ai[1] > 0f)
|
|
{
|
|
if (this.frame.Y < 4)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter <= 4.0)
|
|
{
|
|
this.frame.Y = num * 4;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter <= 8.0)
|
|
{
|
|
this.frame.Y = num * 5;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter <= 12.0)
|
|
{
|
|
this.frame.Y = num * 6;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter <= 16.0)
|
|
{
|
|
this.frame.Y = num * 7;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter <= 20.0)
|
|
{
|
|
this.frame.Y = num * 8;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = num * 9;
|
|
this.frameCounter = 100.0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter <= 4.0)
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter <= 8.0)
|
|
{
|
|
this.frame.Y = num;
|
|
}
|
|
else
|
|
{
|
|
if (this.frameCounter <= 12.0)
|
|
{
|
|
this.frame.Y = num * 2;
|
|
}
|
|
else
|
|
{
|
|
this.frame.Y = num * 3;
|
|
if (this.frameCounter >= 16.0)
|
|
{
|
|
this.frameCounter = 0.0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 29 || this.type == 32 || this.type == 45 || this.type == 172 || (this.type >= 281 && this.type <= 286))
|
|
{
|
|
if (this.velocity.Y == 0f)
|
|
{
|
|
if (this.direction == 1)
|
|
{
|
|
this.spriteDirection = 1;
|
|
}
|
|
if (this.direction == -1)
|
|
{
|
|
this.spriteDirection = -1;
|
|
}
|
|
}
|
|
this.frame.Y = 0;
|
|
if (this.velocity.Y != 0f)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
}
|
|
else
|
|
{
|
|
if (this.ai[1] > 0f)
|
|
{
|
|
this.frame.Y = this.frame.Y + num * 2;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 34)
|
|
{
|
|
this.frameCounter += 1.0;
|
|
if (this.frameCounter >= 4.0)
|
|
{
|
|
this.frame.Y = this.frame.Y + num;
|
|
this.frameCounter = 0.0;
|
|
}
|
|
if (this.frame.Y >= num * Main.npcFrameCount[this.type])
|
|
{
|
|
this.frame.Y = 0;
|
|
}
|
|
}
|
|
}
|
|
public void TargetClosest(bool faceTarget = true)
|
|
{
|
|
float num = 0f;
|
|
bool flag = false;
|
|
for (int i = 0; i < 255; i++)
|
|
{
|
|
if (Main.player[i].active && !Main.player[i].dead)
|
|
{
|
|
float num2 = Math.Abs(Main.player[i].position.X + (float)(Main.player[i].width / 2) - this.position.X + (float)(this.width / 2)) + Math.Abs(Main.player[i].position.Y + (float)(Main.player[i].height / 2) - this.position.Y + (float)(this.height / 2));
|
|
num2 -= (float)Main.player[i].aggro;
|
|
if (!flag || num2 < num)
|
|
{
|
|
flag = true;
|
|
num = Math.Abs(Main.player[i].position.X + (float)(Main.player[i].width / 2) - this.position.X + (float)(this.width / 2)) + Math.Abs(Main.player[i].position.Y + (float)(Main.player[i].height / 2) - this.position.Y + (float)(this.height / 2));
|
|
this.target = i;
|
|
}
|
|
}
|
|
}
|
|
if (this.target < 0 || this.target >= 255)
|
|
{
|
|
this.target = 0;
|
|
}
|
|
this.targetRect = new Rectangle((int)Main.player[this.target].position.X, (int)Main.player[this.target].position.Y, Main.player[this.target].width, Main.player[this.target].height);
|
|
if (Main.player[this.target].dead)
|
|
{
|
|
faceTarget = false;
|
|
}
|
|
if (faceTarget)
|
|
{
|
|
this.direction = 1;
|
|
if ((float)(this.targetRect.X + this.targetRect.Width / 2) < this.position.X + (float)(this.width / 2))
|
|
{
|
|
this.direction = -1;
|
|
}
|
|
this.directionY = 1;
|
|
if ((float)(this.targetRect.Y + this.targetRect.Height / 2) < this.position.Y + (float)(this.height / 2))
|
|
{
|
|
this.directionY = -1;
|
|
}
|
|
}
|
|
if (this.confused)
|
|
{
|
|
this.direction *= -1;
|
|
}
|
|
if ((this.direction != this.oldDirection || this.directionY != this.oldDirectionY || this.target != this.oldTarget) && !this.collideX && !this.collideY)
|
|
{
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
public void CheckActive()
|
|
{
|
|
if (this.active)
|
|
{
|
|
if (this.type == 8 || this.type == 9 || this.type == 11 || this.type == 12 || this.type == 14 || this.type == 15 || this.type == 40 || this.type == 41 || this.type == 96 || this.type == 97 || this.type == 99 || this.type == 100 || (this.type > 87 && this.type <= 92) || this.type == 118 || this.type == 119 || this.type == 113 || this.type == 114 || this.type == 115 || this.type == 263 || this.type == 267)
|
|
{
|
|
return;
|
|
}
|
|
if (this.type >= 246 && this.type <= 249)
|
|
{
|
|
return;
|
|
}
|
|
if (this.type >= 134 && this.type <= 136)
|
|
{
|
|
return;
|
|
}
|
|
if (this.townNPC)
|
|
{
|
|
Rectangle rectangle = new Rectangle((int)(this.position.X + (float)(this.width / 2) - (float)NPC.townRangeX), (int)(this.position.Y + (float)(this.height / 2) - (float)NPC.townRangeY), NPC.townRangeX * 2, NPC.townRangeY * 2);
|
|
for (int i = 0; i < 255; i++)
|
|
{
|
|
if (Main.player[i].active && rectangle.Intersects(new Rectangle((int)Main.player[i].position.X, (int)Main.player[i].position.Y, Main.player[i].width, Main.player[i].height)))
|
|
{
|
|
Main.player[i].townNPCs += this.npcSlots;
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
bool flag = false;
|
|
Rectangle rectangle2 = new Rectangle((int)(this.position.X + (float)(this.width / 2) - (float)NPC.activeRangeX), (int)(this.position.Y + (float)(this.height / 2) - (float)NPC.activeRangeY), NPC.activeRangeX * 2, NPC.activeRangeY * 2);
|
|
Rectangle rectangle3 = new Rectangle((int)((double)(this.position.X + (float)(this.width / 2)) - (double)NPC.sWidth * 0.5 - (double)this.width), (int)((double)(this.position.Y + (float)(this.height / 2)) - (double)NPC.sHeight * 0.5 - (double)this.height), NPC.sWidth + this.width * 2, NPC.sHeight + this.height * 2);
|
|
for (int j = 0; j < 255; j++)
|
|
{
|
|
if (Main.player[j].active)
|
|
{
|
|
if (rectangle2.Intersects(new Rectangle((int)Main.player[j].position.X, (int)Main.player[j].position.Y, Main.player[j].width, Main.player[j].height)))
|
|
{
|
|
flag = true;
|
|
if (this.type != 25 && this.type != 30 && this.type != 33 && this.lifeMax > 0)
|
|
{
|
|
Main.player[j].activeNPCs += this.npcSlots;
|
|
}
|
|
}
|
|
if (rectangle3.Intersects(new Rectangle((int)Main.player[j].position.X, (int)Main.player[j].position.Y, Main.player[j].width, Main.player[j].height)))
|
|
{
|
|
this.timeLeft = NPC.activeTime;
|
|
}
|
|
if (this.type == 7 || this.type == 10 || this.type == 13 || this.type == 39 || this.type == 87)
|
|
{
|
|
flag = true;
|
|
}
|
|
if (this.boss || this.type == 35 || this.type == 36 || this.type == 127 || this.type == 128 || this.type == 129 || this.type == 130 || this.type == 131)
|
|
{
|
|
flag = true;
|
|
}
|
|
}
|
|
}
|
|
this.timeLeft--;
|
|
if (this.timeLeft <= 0)
|
|
{
|
|
flag = false;
|
|
}
|
|
if (!flag && Main.netMode != 1)
|
|
{
|
|
NPC.noSpawnCycle = true;
|
|
this.active = false;
|
|
if (Main.netMode == 2)
|
|
{
|
|
this.netSkip = -1;
|
|
this.life = 0;
|
|
NetMessage.SendData(23, -1, -1, "", this.whoAmI, 0f, 0f, 0f, 0);
|
|
}
|
|
if (this.aiStyle == 6)
|
|
{
|
|
for (int k = (int)this.ai[0]; k > 0; k = (int)Main.npc[k].ai[0])
|
|
{
|
|
if (Main.npc[k].active)
|
|
{
|
|
Main.npc[k].active = false;
|
|
if (Main.netMode == 2)
|
|
{
|
|
Main.npc[k].life = 0;
|
|
Main.npc[k].netSkip = -1;
|
|
NetMessage.SendData(23, -1, -1, "", k, 0f, 0f, 0f, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
public static void SpawnNPC()
|
|
{
|
|
if (NPC.noSpawnCycle)
|
|
{
|
|
NPC.noSpawnCycle = false;
|
|
return;
|
|
}
|
|
bool flag = false;
|
|
int num = 0;
|
|
int num2 = 0;
|
|
int num3 = 0;
|
|
int num4 = 0;
|
|
for (int i = 0; i < 255; i++)
|
|
{
|
|
if (Main.player[i].active)
|
|
{
|
|
num4++;
|
|
}
|
|
}
|
|
for (int j = 0; j < 255; j++)
|
|
{
|
|
if (Main.player[j].active && !Main.player[j].dead)
|
|
{
|
|
bool flag2 = false;
|
|
bool flag3 = false;
|
|
bool flag4 = false;
|
|
bool flag5 = false;
|
|
bool flag6 = false;
|
|
if (Main.player[j].active && Main.invasionType > 0 && Main.invasionDelay == 0 && Main.invasionSize > 0 && (double)Main.player[j].position.Y < Main.worldSurface * 16.0 + (double)NPC.sHeight)
|
|
{
|
|
int num5 = 3000;
|
|
if ((double)Main.player[j].position.X > Main.invasionX * 16.0 - (double)num5 && (double)Main.player[j].position.X < Main.invasionX * 16.0 + (double)num5)
|
|
{
|
|
flag4 = true;
|
|
}
|
|
}
|
|
bool flag7 = false;
|
|
NPC.spawnRate = NPC.defaultSpawnRate;
|
|
NPC.maxSpawns = NPC.defaultMaxSpawns;
|
|
if (Main.hardMode)
|
|
{
|
|
NPC.spawnRate = (int)((double)NPC.defaultSpawnRate * 0.9);
|
|
NPC.maxSpawns = NPC.defaultMaxSpawns + 1;
|
|
}
|
|
if (Main.player[j].position.Y > (float)((Main.maxTilesY - 200) * 16))
|
|
{
|
|
NPC.maxSpawns = (int)((float)NPC.maxSpawns * 2f);
|
|
}
|
|
else
|
|
{
|
|
if ((double)Main.player[j].position.Y > Main.rockLayer * 16.0 + (double)NPC.sHeight)
|
|
{
|
|
NPC.spawnRate = (int)((double)NPC.spawnRate * 0.4);
|
|
NPC.maxSpawns = (int)((float)NPC.maxSpawns * 1.9f);
|
|
}
|
|
else
|
|
{
|
|
if ((double)Main.player[j].position.Y > Main.worldSurface * 16.0 + (double)NPC.sHeight)
|
|
{
|
|
if (Main.hardMode)
|
|
{
|
|
NPC.spawnRate = (int)((double)NPC.spawnRate * 0.45);
|
|
NPC.maxSpawns = (int)((float)NPC.maxSpawns * 1.8f);
|
|
}
|
|
else
|
|
{
|
|
NPC.spawnRate = (int)((double)NPC.spawnRate * 0.5);
|
|
NPC.maxSpawns = (int)((float)NPC.maxSpawns * 1.7f);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!Main.dayTime)
|
|
{
|
|
NPC.spawnRate = (int)((double)NPC.spawnRate * 0.6);
|
|
NPC.maxSpawns = (int)((float)NPC.maxSpawns * 1.3f);
|
|
if (Main.bloodMoon)
|
|
{
|
|
NPC.spawnRate = (int)((double)NPC.spawnRate * 0.3);
|
|
NPC.maxSpawns = (int)((float)NPC.maxSpawns * 1.8f);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.dayTime && Main.eclipse)
|
|
{
|
|
NPC.spawnRate = (int)((double)NPC.spawnRate * 0.2);
|
|
NPC.maxSpawns = (int)((float)NPC.maxSpawns * 1.9f);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Main.player[j].zoneSnow && (double)(Main.player[j].position.Y / 16f) < Main.worldSurface)
|
|
{
|
|
NPC.maxSpawns = (int)((float)NPC.maxSpawns + (float)NPC.maxSpawns * Main.cloudAlpha);
|
|
NPC.spawnRate = (int)((float)NPC.spawnRate * (1f - Main.cloudAlpha + 1f) / 2f);
|
|
}
|
|
if (Main.player[j].zoneDungeon)
|
|
{
|
|
NPC.spawnRate = (int)((double)NPC.spawnRate * 0.4);
|
|
NPC.maxSpawns = (int)((float)NPC.maxSpawns * 1.7f);
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[j].zoneJungle)
|
|
{
|
|
NPC.spawnRate = (int)((double)NPC.spawnRate * 0.4);
|
|
NPC.maxSpawns = (int)((float)NPC.maxSpawns * 1.5f);
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[j].zoneEvil || Main.player[j].zoneBlood)
|
|
{
|
|
NPC.spawnRate = (int)((double)NPC.spawnRate * 0.65);
|
|
NPC.maxSpawns = (int)((float)NPC.maxSpawns * 1.3f);
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[j].zoneMeteor)
|
|
{
|
|
NPC.spawnRate = (int)((double)NPC.spawnRate * 0.4);
|
|
NPC.maxSpawns = (int)((float)NPC.maxSpawns * 1.1f);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Main.player[j].zoneHoly && (double)Main.player[j].position.Y > Main.rockLayer * 16.0 + (double)NPC.sHeight)
|
|
{
|
|
NPC.spawnRate = (int)((double)NPC.spawnRate * 0.65);
|
|
NPC.maxSpawns = (int)((float)NPC.maxSpawns * 1.3f);
|
|
}
|
|
if (Main.wof >= 0 && Main.player[j].position.Y > (float)((Main.maxTilesY - 200) * 16))
|
|
{
|
|
NPC.maxSpawns = (int)((float)NPC.maxSpawns * 0.3f);
|
|
NPC.spawnRate *= 3;
|
|
}
|
|
if ((double)Main.player[j].activeNPCs < (double)NPC.maxSpawns * 0.2)
|
|
{
|
|
NPC.spawnRate = (int)((float)NPC.spawnRate * 0.6f);
|
|
}
|
|
else
|
|
{
|
|
if ((double)Main.player[j].activeNPCs < (double)NPC.maxSpawns * 0.4)
|
|
{
|
|
NPC.spawnRate = (int)((float)NPC.spawnRate * 0.7f);
|
|
}
|
|
else
|
|
{
|
|
if ((double)Main.player[j].activeNPCs < (double)NPC.maxSpawns * 0.6)
|
|
{
|
|
NPC.spawnRate = (int)((float)NPC.spawnRate * 0.8f);
|
|
}
|
|
else
|
|
{
|
|
if ((double)Main.player[j].activeNPCs < (double)NPC.maxSpawns * 0.8)
|
|
{
|
|
NPC.spawnRate = (int)((float)NPC.spawnRate * 0.9f);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if ((double)(Main.player[j].position.Y * 16f) > (Main.worldSurface + Main.rockLayer) / 2.0 || Main.player[j].zoneEvil || Main.player[j].zoneBlood)
|
|
{
|
|
if ((double)Main.player[j].activeNPCs < (double)NPC.maxSpawns * 0.2)
|
|
{
|
|
NPC.spawnRate = (int)((float)NPC.spawnRate * 0.7f);
|
|
}
|
|
else
|
|
{
|
|
if ((double)Main.player[j].activeNPCs < (double)NPC.maxSpawns * 0.4)
|
|
{
|
|
NPC.spawnRate = (int)((float)NPC.spawnRate * 0.9f);
|
|
}
|
|
}
|
|
}
|
|
if (Main.player[j].inventory[Main.player[j].selectedItem].type == 148)
|
|
{
|
|
NPC.spawnRate = (int)((double)NPC.spawnRate * 0.75);
|
|
NPC.maxSpawns = (int)((float)NPC.maxSpawns * 1.5f);
|
|
}
|
|
if (Main.player[j].enemySpawns)
|
|
{
|
|
NPC.spawnRate = (int)((double)NPC.spawnRate * 0.5);
|
|
NPC.maxSpawns = (int)((float)NPC.maxSpawns * 2f);
|
|
}
|
|
if (Main.player[j].zoneCandle)
|
|
{
|
|
NPC.spawnRate = (int)((double)NPC.spawnRate * 0.75);
|
|
NPC.maxSpawns = (int)((float)NPC.maxSpawns * 1.5f);
|
|
}
|
|
if ((double)NPC.spawnRate < (double)NPC.defaultSpawnRate * 0.1)
|
|
{
|
|
NPC.spawnRate = (int)((double)NPC.defaultSpawnRate * 0.1);
|
|
}
|
|
if (NPC.maxSpawns > NPC.defaultMaxSpawns * 3)
|
|
{
|
|
NPC.maxSpawns = NPC.defaultMaxSpawns * 3;
|
|
}
|
|
if (flag4)
|
|
{
|
|
NPC.maxSpawns = (int)((double)NPC.defaultMaxSpawns * (2.0 + 0.3 * (double)num4));
|
|
NPC.spawnRate = 20;
|
|
}
|
|
if (Main.player[j].zoneDungeon && !NPC.downedBoss3)
|
|
{
|
|
NPC.spawnRate = 10;
|
|
}
|
|
bool flag8 = false;
|
|
if (!flag4 && (!Main.bloodMoon || Main.dayTime) && (!Main.eclipse || !Main.dayTime) && !Main.player[j].zoneDungeon && !Main.player[j].zoneEvil && !Main.player[j].zoneBlood && !Main.player[j].zoneMeteor)
|
|
{
|
|
if (Main.player[j].townNPCs == 1f)
|
|
{
|
|
flag3 = true;
|
|
if (Main.rand.Next(3) <= 1)
|
|
{
|
|
flag8 = true;
|
|
NPC.maxSpawns = (int)((double)((float)NPC.maxSpawns) * 0.6);
|
|
}
|
|
else
|
|
{
|
|
NPC.spawnRate = (int)((float)NPC.spawnRate * 2f);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[j].townNPCs == 2f)
|
|
{
|
|
flag3 = true;
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
flag8 = true;
|
|
NPC.maxSpawns = (int)((double)((float)NPC.maxSpawns) * 0.6);
|
|
}
|
|
else
|
|
{
|
|
NPC.spawnRate = (int)((float)NPC.spawnRate * 3f);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[j].townNPCs >= 3f)
|
|
{
|
|
flag3 = true;
|
|
flag8 = true;
|
|
NPC.maxSpawns = (int)((double)((float)NPC.maxSpawns) * 0.6);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
int num6 = (int)(Main.player[j].position.X + (float)(Main.player[j].width / 2)) / 16;
|
|
int num7 = (int)(Main.player[j].position.Y + (float)(Main.player[j].height / 2)) / 16;
|
|
if (Main.wallHouse[(int)Main.tile[num6, num7].wall])
|
|
{
|
|
flag3 = true;
|
|
}
|
|
if (Main.tile[num6, num7].wall == 87)
|
|
{
|
|
flag2 = true;
|
|
}
|
|
if (Main.player[j].active && !Main.player[j].dead && Main.player[j].activeNPCs < (float)NPC.maxSpawns && Main.rand.Next(NPC.spawnRate) == 0)
|
|
{
|
|
NPC.spawnRangeX = (int)((double)(NPC.sWidth / 16) * 0.7);
|
|
NPC.spawnRangeY = (int)((double)(NPC.sHeight / 16) * 0.7);
|
|
NPC.safeRangeX = (int)((double)(NPC.sWidth / 16) * 0.52);
|
|
NPC.safeRangeY = (int)((double)(NPC.sHeight / 16) * 0.52);
|
|
if (Main.player[j].inventory[Main.player[j].selectedItem].type == 1254 || Main.player[j].inventory[Main.player[j].selectedItem].type == 1299 || Main.player[j].scope)
|
|
{
|
|
float num8 = 1.5f;
|
|
if (Main.player[j].inventory[Main.player[j].selectedItem].type == 1254 && Main.player[j].scope)
|
|
{
|
|
num8 = 1.25f;
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[j].inventory[Main.player[j].selectedItem].type == 1254)
|
|
{
|
|
num8 = 1.5f;
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[j].inventory[Main.player[j].selectedItem].type == 1299)
|
|
{
|
|
num8 = 1.5f;
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[j].scope)
|
|
{
|
|
num8 = 2f;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
NPC.spawnRangeX += (int)((double)(NPC.sWidth / 16) * 0.5 / (double)num8);
|
|
NPC.spawnRangeY += (int)((double)(NPC.sHeight / 16) * 0.5 / (double)num8);
|
|
NPC.safeRangeX += (int)((double)(NPC.sWidth / 16) * 0.5 / (double)num8);
|
|
NPC.safeRangeY += (int)((double)(NPC.sHeight / 16) * 0.5 / (double)num8);
|
|
}
|
|
int num9 = (int)(Main.player[j].position.X / 16f) - NPC.spawnRangeX;
|
|
int num10 = (int)(Main.player[j].position.X / 16f) + NPC.spawnRangeX;
|
|
int num11 = (int)(Main.player[j].position.Y / 16f) - NPC.spawnRangeY;
|
|
int num12 = (int)(Main.player[j].position.Y / 16f) + NPC.spawnRangeY;
|
|
int num13 = (int)(Main.player[j].position.X / 16f) - NPC.safeRangeX;
|
|
int num14 = (int)(Main.player[j].position.X / 16f) + NPC.safeRangeX;
|
|
int num15 = (int)(Main.player[j].position.Y / 16f) - NPC.safeRangeY;
|
|
int num16 = (int)(Main.player[j].position.Y / 16f) + NPC.safeRangeY;
|
|
if (num9 < 0)
|
|
{
|
|
num9 = 0;
|
|
}
|
|
if (num10 > Main.maxTilesX)
|
|
{
|
|
num10 = Main.maxTilesX;
|
|
}
|
|
if (num11 < 0)
|
|
{
|
|
num11 = 0;
|
|
}
|
|
if (num12 > Main.maxTilesY)
|
|
{
|
|
num12 = Main.maxTilesY;
|
|
}
|
|
int k = 0;
|
|
while (k < 50)
|
|
{
|
|
int num17 = Main.rand.Next(num9, num10);
|
|
int num18 = Main.rand.Next(num11, num12);
|
|
if (Main.tile[num17, num18].nactive() && Main.tileSolid[(int)Main.tile[num17, num18].type])
|
|
{
|
|
goto IL_FF5;
|
|
}
|
|
if (!Main.wallHouse[(int)Main.tile[num17, num18].wall])
|
|
{
|
|
if (!flag4 && (double)num18 < Main.worldSurface * 0.34999999403953552 && !flag8 && ((double)num17 < (double)Main.maxTilesX * 0.45 || (double)num17 > (double)Main.maxTilesX * 0.55 || Main.hardMode))
|
|
{
|
|
num3 = (int)Main.tile[num17, num18].type;
|
|
num = num17;
|
|
num2 = num18;
|
|
flag7 = true;
|
|
flag = true;
|
|
}
|
|
else
|
|
{
|
|
if (!flag4 && (double)num18 < Main.worldSurface * 0.44999998807907104 && !flag8 && Main.hardMode && Main.rand.Next(10) == 0)
|
|
{
|
|
num3 = (int)Main.tile[num17, num18].type;
|
|
num = num17;
|
|
num2 = num18;
|
|
flag7 = true;
|
|
flag = true;
|
|
}
|
|
else
|
|
{
|
|
int l = num18;
|
|
while (l < Main.maxTilesY)
|
|
{
|
|
if (Main.tile[num17, l].nactive() && Main.tileSolid[(int)Main.tile[num17, l].type])
|
|
{
|
|
if (num17 < num13 || num17 > num14 || l < num15 || l > num16)
|
|
{
|
|
num3 = (int)Main.tile[num17, l].type;
|
|
num = num17;
|
|
num2 = l;
|
|
flag7 = true;
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
l++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (!flag7)
|
|
{
|
|
goto IL_FF5;
|
|
}
|
|
int num19 = num - NPC.spawnSpaceX / 2;
|
|
int num20 = num + NPC.spawnSpaceX / 2;
|
|
int num21 = num2 - NPC.spawnSpaceY;
|
|
int num22 = num2;
|
|
if (num19 < 0)
|
|
{
|
|
flag7 = false;
|
|
}
|
|
if (num20 > Main.maxTilesX)
|
|
{
|
|
flag7 = false;
|
|
}
|
|
if (num21 < 0)
|
|
{
|
|
flag7 = false;
|
|
}
|
|
if (num22 > Main.maxTilesY)
|
|
{
|
|
flag7 = false;
|
|
}
|
|
if (flag7)
|
|
{
|
|
for (int m = num19; m < num20; m++)
|
|
{
|
|
for (int n = num21; n < num22; n++)
|
|
{
|
|
if (Main.tile[m, n].nactive() && Main.tileSolid[(int)Main.tile[m, n].type])
|
|
{
|
|
flag7 = false;
|
|
break;
|
|
}
|
|
if (Main.tile[m, n].lava())
|
|
{
|
|
flag7 = false;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
goto IL_FF5;
|
|
}
|
|
goto IL_FF5;
|
|
}
|
|
IL_FFB:
|
|
k++;
|
|
continue;
|
|
IL_FF5:
|
|
if (!flag7 && !flag7)
|
|
{
|
|
goto IL_FFB;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
if (flag7)
|
|
{
|
|
Rectangle rectangle = new Rectangle(num * 16, num2 * 16, 16, 16);
|
|
for (int num23 = 0; num23 < 255; num23++)
|
|
{
|
|
if (Main.player[num23].active)
|
|
{
|
|
Rectangle rectangle2 = new Rectangle((int)(Main.player[num23].position.X + (float)(Main.player[num23].width / 2) - (float)(NPC.sWidth / 2) - (float)NPC.safeRangeX), (int)(Main.player[num23].position.Y + (float)(Main.player[num23].height / 2) - (float)(NPC.sHeight / 2) - (float)NPC.safeRangeY), NPC.sWidth + NPC.safeRangeX * 2, NPC.sHeight + NPC.safeRangeY * 2);
|
|
if (rectangle.Intersects(rectangle2))
|
|
{
|
|
flag7 = false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (flag7)
|
|
{
|
|
if (Main.player[j].zoneDungeon && (!Main.tileDungeon[(int)Main.tile[num, num2].type] || Main.tile[num, num2 - 1].wall == 0))
|
|
{
|
|
flag7 = false;
|
|
}
|
|
if (Main.tile[num, num2 - 1].liquid > 0 && Main.tile[num, num2 - 2].liquid > 0 && !Main.tile[num, num2 - 1].lava())
|
|
{
|
|
if (Main.tile[num, num2 - 1].honey())
|
|
{
|
|
flag6 = true;
|
|
}
|
|
else
|
|
{
|
|
flag5 = true;
|
|
}
|
|
}
|
|
}
|
|
if (flag6)
|
|
{
|
|
flag7 = false;
|
|
}
|
|
if (flag7)
|
|
{
|
|
bool flag9 = false;
|
|
if ((double)num2 > Main.rockLayer && num2 < Main.maxTilesY - 200 && !Main.player[j].zoneDungeon && !flag4)
|
|
{
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
int num24 = Main.rand.Next(5, 15);
|
|
if (num - num24 >= 0 && num + num24 < Main.maxTilesX)
|
|
{
|
|
for (int num25 = num - num24; num25 < num + num24; num25++)
|
|
{
|
|
for (int num26 = num2 - num24; num26 < num2 + num24; num26++)
|
|
{
|
|
if (Main.tile[num25, num26].wall == 62)
|
|
{
|
|
flag9 = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
int num27 = (int)Main.player[j].position.X / 16;
|
|
int num28 = (int)Main.player[j].position.Y / 16;
|
|
if (Main.tile[num27, num28].wall == 62)
|
|
{
|
|
flag9 = true;
|
|
}
|
|
}
|
|
}
|
|
bool flag10 = false;
|
|
if (NPC.downedPlantBoss && Main.hardMode)
|
|
{
|
|
flag10 = true;
|
|
}
|
|
int num29 = (int)Main.tile[num, num2].type;
|
|
int num30 = 200;
|
|
if (flag)
|
|
{
|
|
if (Main.hardMode && Main.rand.Next(10) == 0 && !NPC.AnyNPCs(87) && !flag3)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 87, 1);
|
|
}
|
|
else
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 48, 0);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (flag4)
|
|
{
|
|
if (Main.invasionType == 1)
|
|
{
|
|
if (Main.rand.Next(9) == 0)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 29, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(5) == 0)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 26, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 111, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 27, 0);
|
|
}
|
|
else
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 28, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.invasionType == 2)
|
|
{
|
|
if (Main.rand.Next(7) == 0)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 145, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 143, 0);
|
|
}
|
|
else
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 144, 0);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.invasionType == 3)
|
|
{
|
|
if (Main.rand.Next(30) == 0 && !NPC.AnyNPCs(216))
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 216, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(11) == 0)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 215, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(9) == 0)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 252, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(7) == 0)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 214, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 213, 0);
|
|
}
|
|
else
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 212, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.tile[num, num2].wall == 62 || flag9)
|
|
{
|
|
if (Main.hardMode)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 163, 0);
|
|
}
|
|
else
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 164, 0);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && flag5 && Main.player[j].zoneJungle && Main.rand.Next(3) != 0)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 157, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && flag5 && Main.player[j].zoneBlood && Main.rand.Next(3) != 0)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 242, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && flag5 && Main.player[j].zoneBlood && Main.rand.Next(3) != 0)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 241, 0);
|
|
}
|
|
else
|
|
{
|
|
if (flag5 && (num < 250 || num > Main.maxTilesX - 250) && num29 == 53 && (double)num2 < Main.rockLayer)
|
|
{
|
|
if (Main.rand.Next(60) == 0)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 220, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(25) == 0)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 221, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(8) == 0)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 65, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 67, 0);
|
|
}
|
|
else
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 64, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (flag5 && (((double)num2 > Main.rockLayer && Main.rand.Next(2) == 0) || num29 == 60))
|
|
{
|
|
if (Main.hardMode && Main.rand.Next(3) > 0)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 102, 0);
|
|
}
|
|
else
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 58, 0);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (flag5 && (double)num2 > Main.worldSurface && Main.rand.Next(3) == 0)
|
|
{
|
|
if (Main.hardMode)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 103, 0);
|
|
}
|
|
else
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 63, 0);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (flag5 && Main.rand.Next(4) == 0)
|
|
{
|
|
if (Main.player[j].zoneEvil)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 57, 0);
|
|
}
|
|
else
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 55, 0);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (NPC.downedGoblins && Main.rand.Next(20) == 0 && !flag5 && (double)num2 >= Main.rockLayer && num2 < Main.maxTilesY - 210 && !NPC.savedGoblin && !NPC.AnyNPCs(105))
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 105, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && Main.rand.Next(20) == 0 && !flag5 && (double)num2 >= Main.rockLayer && num2 < Main.maxTilesY - 210 && !NPC.savedWizard && !NPC.AnyNPCs(106))
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 106, 0);
|
|
}
|
|
else
|
|
{
|
|
if (flag8)
|
|
{
|
|
if (flag5)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 55, 0);
|
|
}
|
|
else
|
|
{
|
|
if (num29 == 147 || num29 == 161)
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 148, 0);
|
|
}
|
|
else
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 149, 0);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num29 != 2 && num29 != 109 && (double)num2 <= Main.worldSurface)
|
|
{
|
|
return;
|
|
}
|
|
if (Main.raining)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 230, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(2) == 0 && (double)num2 <= Main.worldSurface)
|
|
{
|
|
int num31 = Main.rand.Next(4);
|
|
if (num31 == 0)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 297, 0);
|
|
}
|
|
else
|
|
{
|
|
if (num31 == 1)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 298, 0);
|
|
}
|
|
else
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 74, 0);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(3) == 0 && (double)num2 <= Main.worldSurface)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 299, 0);
|
|
}
|
|
else
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 46, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[j].zoneDungeon)
|
|
{
|
|
int num32 = 0;
|
|
if (Main.tile[num, num2].wall == 94 || Main.tile[num, num2].wall == 96 || Main.tile[num, num2].wall == 98)
|
|
{
|
|
num32 = 1;
|
|
}
|
|
if (Main.tile[num, num2].wall == 95 || Main.tile[num, num2].wall == 97 || Main.tile[num, num2].wall == 99)
|
|
{
|
|
num32 = 2;
|
|
}
|
|
if (!NPC.downedBoss3)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 68, 0);
|
|
}
|
|
else
|
|
{
|
|
if (!NPC.savedMech && Main.rand.Next(5) == 0 && !flag5 && !NPC.AnyNPCs(123) && (double)num2 > Main.rockLayer)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 123, 0);
|
|
}
|
|
else
|
|
{
|
|
if (flag10 && Main.rand.Next(75) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 287, 0);
|
|
}
|
|
else
|
|
{
|
|
if (flag10 && num32 == 0 && Main.rand.Next(25) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 293, 0);
|
|
}
|
|
else
|
|
{
|
|
if (flag10 && num32 == 1 && Main.rand.Next(25) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 291, 0);
|
|
}
|
|
else
|
|
{
|
|
if (flag10 && num32 == 2 && Main.rand.Next(25) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 292, 0);
|
|
}
|
|
else
|
|
{
|
|
if (flag10 && !NPC.AnyNPCs(290) && num32 == 0 && Main.rand.Next(45) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 290, 0);
|
|
}
|
|
else
|
|
{
|
|
if (flag10 && (num32 == 1 || num32 == 2) && Main.rand.Next(30) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 289, 0);
|
|
}
|
|
else
|
|
{
|
|
if (flag10 && Main.rand.Next(20) == 0)
|
|
{
|
|
int num33 = 281;
|
|
if (num32 == 0)
|
|
{
|
|
num33 += 2;
|
|
}
|
|
if (num32 == 2)
|
|
{
|
|
num33 += 4;
|
|
}
|
|
num33 += Main.rand.Next(2);
|
|
if (!NPC.AnyNPCs(num33))
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, num33, 0);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (flag10 && Main.rand.Next(3) != 0)
|
|
{
|
|
int num34 = 269;
|
|
if (num32 == 0)
|
|
{
|
|
num34 += 4;
|
|
}
|
|
if (num32 == 2)
|
|
{
|
|
num34 += 8;
|
|
}
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, num34 + Main.rand.Next(4), 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(37) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 71, 0);
|
|
}
|
|
else
|
|
{
|
|
if (num32 == 1 && Main.rand.Next(4) == 0 && !NPC.NearSpikeBall(num, num2))
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 70, 0);
|
|
}
|
|
else
|
|
{
|
|
if (num32 == 2 && Main.rand.Next(15) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 72, 0);
|
|
}
|
|
else
|
|
{
|
|
if (num32 == 0 && Main.rand.Next(9) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 34, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(7) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 32, 0);
|
|
}
|
|
else
|
|
{
|
|
int num35 = Main.rand.Next(5);
|
|
if (num35 == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 294, 0);
|
|
}
|
|
else
|
|
{
|
|
if (num35 == 1)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 295, 0);
|
|
}
|
|
else
|
|
{
|
|
if (num35 == 2)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 296, 0);
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 31, 0);
|
|
if (Main.rand.Next(4) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Big Boned");
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(5) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Short Bones");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[j].zoneMeteor)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 23, 0);
|
|
}
|
|
else
|
|
{
|
|
if ((double)num2 <= Main.worldSurface && Main.dayTime && Main.eclipse)
|
|
{
|
|
if (Main.rand.Next(50) == 0 && !NPC.AnyNPCs(251))
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 251, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(10) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 253, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(12) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 158, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 162, 0);
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 166, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && num3 == 70 && flag5)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 256, 0);
|
|
}
|
|
else
|
|
{
|
|
if (num3 == 70 && (double)num2 <= Main.worldSurface && Main.rand.Next(3) != 0)
|
|
{
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
if (Main.rand.Next(4) == 0)
|
|
{
|
|
if (Main.hardMode && Main.rand.Next(3) != 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 260, 0);
|
|
Main.npc[num30].ai[0] = (float)num;
|
|
Main.npc[num30].ai[1] = (float)num2;
|
|
Main.npc[num30].netUpdate = true;
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 259, 0);
|
|
Main.npc[num30].ai[0] = (float)num;
|
|
Main.npc[num30].ai[1] = (float)num2;
|
|
Main.npc[num30].netUpdate = true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 257, 0);
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 258, 0);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 254, 0);
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 255, 0);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num3 == 70 && Main.hardMode && (double)num2 >= Main.worldSurface && Main.rand.Next(3) != 0)
|
|
{
|
|
if (Main.rand.Next(4) == 0)
|
|
{
|
|
if (Main.hardMode && Main.rand.Next(3) != 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 260, 0);
|
|
Main.npc[num30].ai[0] = (float)num;
|
|
Main.npc[num30].ai[1] = (float)num2;
|
|
Main.npc[num30].netUpdate = true;
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 259, 0);
|
|
Main.npc[num30].ai[0] = (float)num;
|
|
Main.npc[num30].ai[1] = (float)num2;
|
|
Main.npc[num30].netUpdate = true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 257, 0);
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 258, 0);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[j].zoneEvil && Main.rand.Next(65) == 0 && !flag3)
|
|
{
|
|
if (Main.hardMode && Main.rand.Next(4) != 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 98, 1);
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 7, 1);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && (double)num2 > Main.worldSurface && Main.rand.Next(75) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 85, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && Main.tile[num, num2 - 1].wall == 2 && Main.rand.Next(20) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 85, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && (double)num2 <= Main.worldSurface && !Main.dayTime && (Main.rand.Next(20) == 0 || (Main.rand.Next(5) == 0 && Main.moonPhase == 4)))
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 82, 0);
|
|
}
|
|
else
|
|
{
|
|
if (num29 == 60 && Main.rand.Next(500) == 0 && !Main.dayTime)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 52, 0);
|
|
}
|
|
else
|
|
{
|
|
if (num29 == 60 && (double)num2 > Main.worldSurface && Main.rand.Next(60) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 219, 0);
|
|
}
|
|
else
|
|
{
|
|
if ((double)num2 > Main.worldSurface && !Main.player[j].zoneSnow && !Main.player[j].zoneBlood && !Main.player[j].zoneEvil && !Main.player[j].zoneJungle && !Main.player[j].zoneHoly && Main.rand.Next(10) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 300, 0);
|
|
}
|
|
else
|
|
{
|
|
if (num29 == 60 && Main.hardMode && Main.rand.Next(3) != 0)
|
|
{
|
|
if ((double)num2 < Main.worldSurface && !Main.dayTime && Main.rand.Next(3) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 152, 0);
|
|
}
|
|
else
|
|
{
|
|
if ((double)num2 < Main.worldSurface && Main.dayTime && Main.rand.Next(4) != 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 177, 0);
|
|
}
|
|
else
|
|
{
|
|
if ((double)num2 > Main.worldSurface && Main.rand.Next(100) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 205, 0);
|
|
}
|
|
else
|
|
{
|
|
if ((double)num2 > Main.worldSurface && Main.rand.Next(5) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 236, 0);
|
|
}
|
|
else
|
|
{
|
|
if ((double)num2 > Main.worldSurface && Main.rand.Next(4) != 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 176, 0);
|
|
if (Main.rand.Next(10) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Tiny Moss Hornet");
|
|
}
|
|
if (Main.rand.Next(10) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Little Moss Hornet");
|
|
}
|
|
if (Main.rand.Next(10) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Big Moss Hornet");
|
|
}
|
|
if (Main.rand.Next(10) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Giant Moss Hornet");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 175, 0);
|
|
Main.npc[num30].ai[0] = (float)num;
|
|
Main.npc[num30].ai[1] = (float)num2;
|
|
Main.npc[num30].netUpdate = true;
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 153, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num29 == 226 && flag2)
|
|
{
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 226, 0);
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 198, 0);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num29 == 60 && (double)num2 > (Main.worldSurface + Main.rockLayer) / 2.0)
|
|
{
|
|
if (Main.rand.Next(4) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 204, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(4) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 43, 0);
|
|
Main.npc[num30].ai[0] = (float)num;
|
|
Main.npc[num30].ai[1] = (float)num2;
|
|
Main.npc[num30].netUpdate = true;
|
|
}
|
|
else
|
|
{
|
|
int num36 = Main.rand.Next(8);
|
|
if (num36 == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 231, 0);
|
|
if (Main.rand.Next(4) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Little Hornet Fatty");
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(4) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Big Hornet Fatty");
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num36 == 1)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 232, 0);
|
|
if (Main.rand.Next(4) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Little Hornet Honey");
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(4) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Big Hornet Honey");
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num36 == 2)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 233, 0);
|
|
if (Main.rand.Next(4) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Little Hornet Leafy");
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(4) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Big Hornet Leafy");
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num36 == 3)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 234, 0);
|
|
if (Main.rand.Next(4) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Little Hornet Spikey");
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(4) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Big Hornet Spikey");
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num36 == 4)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 235, 0);
|
|
if (Main.rand.Next(4) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Little Hornet Stingy");
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(4) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Big Hornet Stingy");
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 42, 0);
|
|
if (Main.rand.Next(4) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Little Stinger");
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(4) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Big Stinger");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num29 == 60 && Main.rand.Next(4) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 51, 0);
|
|
}
|
|
else
|
|
{
|
|
if (num29 == 60 && Main.rand.Next(8) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 56, 0);
|
|
Main.npc[num30].ai[0] = (float)num;
|
|
Main.npc[num30].ai[1] = (float)num2;
|
|
Main.npc[num30].netUpdate = true;
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && num29 == 53 && Main.rand.Next(3) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 78, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && (num29 == 112 || num29 == 234) && Main.rand.Next(2) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 79, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && num29 == 116 && Main.rand.Next(2) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 80, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && !flag5 && (double)num2 < Main.rockLayer && (num29 == 116 || num29 == 117 || num29 == 109 || num29 == 164))
|
|
{
|
|
if (!Main.dayTime && Main.rand.Next(2) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 122, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(10) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 86, 0);
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 75, 0);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!flag3 && Main.hardMode && Main.rand.Next(50) == 0 && !flag5 && (double)num2 >= Main.rockLayer && (num29 == 116 || num29 == 117 || num29 == 109 || num29 == 164))
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 84, 0);
|
|
}
|
|
else
|
|
{
|
|
if ((num29 == 204 && Main.player[j].zoneBlood) || num29 == 199 || num29 == 200 || num29 == 203)
|
|
{
|
|
if (Main.hardMode && (double)num2 >= Main.rockLayer && Main.rand.Next(5) == 0 && !flag3)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 182, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && (double)num2 >= Main.rockLayer && Main.rand.Next(2) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 268, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && Main.rand.Next(3) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 183, 0);
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Little Crimslime");
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Big Crimslime");
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && (double)num2 >= Main.rockLayer && Main.rand.Next(40) == 0 && !flag3)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 179, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && (Main.rand.Next(2) == 0 || (double)num2 > Main.worldSurface))
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 174, 0);
|
|
}
|
|
else
|
|
{
|
|
if ((Main.tile[num, num2].wall > 0 && Main.rand.Next(4) != 0) || Main.rand.Next(8) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 239, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 181, 0);
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 173, 0);
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Little Crimera");
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Big Crimera");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if ((num29 == 22 && Main.player[j].zoneEvil) || num29 == 23 || num29 == 25 || num29 == 112 || num29 == 163)
|
|
{
|
|
if (Main.hardMode && (double)num2 >= Main.rockLayer && Main.rand.Next(3) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 101, 0);
|
|
Main.npc[num30].ai[0] = (float)num;
|
|
Main.npc[num30].ai[1] = (float)num2;
|
|
Main.npc[num30].netUpdate = true;
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && Main.rand.Next(3) == 0)
|
|
{
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 121, 0);
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 81, 0);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && (double)num2 >= Main.rockLayer && Main.rand.Next(40) == 0 && !flag3)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 83, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && (Main.rand.Next(2) == 0 || (double)num2 > Main.rockLayer))
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 94, 0);
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 6, 0);
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Little Eater");
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Big Eater");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if ((double)num2 <= Main.worldSurface)
|
|
{
|
|
if (Main.player[j].zoneSnow && Main.hardMode && Main.cloudAlpha > 0f && !NPC.AnyNPCs(243) && Main.rand.Next(20) == 0)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 243, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[j].zoneHoly && Main.hardMode && Main.cloudAlpha > 0f && !NPC.AnyNPCs(244) && Main.rand.Next(20) == 0)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 244, 0);
|
|
}
|
|
else
|
|
{
|
|
if (!Main.player[j].zoneSnow && Main.hardMode && Main.cloudAlpha > 0f && !NPC.AnyNPCs(250) && Main.rand.Next(14) == 0)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 250, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.dayTime)
|
|
{
|
|
int num37 = Math.Abs(num - Main.spawnTileX);
|
|
if (num37 < Main.maxTilesX / 3 && Main.rand.Next(15) == 0 && (num29 == 2 || num29 == 109 || num29 == 147 || num29 == 161))
|
|
{
|
|
if (num29 == 147 || num29 == 161)
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 148, 0);
|
|
}
|
|
else
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 149, 0);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(3) == 0 && (double)num2 <= Main.worldSurface)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 299, 0);
|
|
}
|
|
else
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 46, 0);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num37 < Main.maxTilesX / 3 && Main.rand.Next(15) == 0 && (num29 == 2 || num29 == 109 || num29 == 147))
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 74, 0);
|
|
}
|
|
else
|
|
{
|
|
if (num37 > Main.maxTilesX / 3 && num29 == 2 && Main.rand.Next(300) == 0 && !NPC.AnyNPCs(50))
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 50, 0);
|
|
}
|
|
else
|
|
{
|
|
if (num29 == 53 && Main.rand.Next(5) == 0 && !flag5)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 69, 0);
|
|
}
|
|
else
|
|
{
|
|
if (num29 == 53 && !flag5)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 61, 0);
|
|
}
|
|
else
|
|
{
|
|
if (num37 > Main.maxTilesX / 3 && (Main.rand.Next(15) == 0 || (!NPC.downedGoblins && WorldGen.shadowOrbSmashed && Main.rand.Next(7) == 0)))
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 73, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.raining && Main.rand.Next(3) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 224, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.raining && Main.rand.Next(2) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 225, 0);
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 1, 0);
|
|
if (num29 == 60)
|
|
{
|
|
Main.npc[num30].SetDefaults("Jungle Slime");
|
|
}
|
|
else
|
|
{
|
|
if (num29 == 161 || num29 == 147)
|
|
{
|
|
Main.npc[num30].SetDefaults("Ice Slime");
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(3) == 0 || num37 < 200)
|
|
{
|
|
Main.npc[num30].SetDefaults("Green Slime");
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(10) == 0 && num37 > 400)
|
|
{
|
|
Main.npc[num30].SetDefaults("Purple Slime");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(6) == 0 || (Main.moonPhase == 4 && Main.rand.Next(2) == 0))
|
|
{
|
|
if (Main.hardMode && Main.rand.Next(3) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 133, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 2, 0);
|
|
if (Main.rand.Next(4) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Demon Eye 2");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
int num38 = Main.rand.Next(5);
|
|
if (num38 == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 190, 0);
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Cataract Eye 2");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num38 == 1)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 191, 0);
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Sleepy Eye 2");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num38 == 2)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 192, 0);
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Dialated Eye 2");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num38 == 3)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 193, 0);
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Green Eye 2");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num38 == 4)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 194, 0);
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Purple Eye 2");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && Main.rand.Next(50) == 0 && Main.bloodMoon && !NPC.AnyNPCs(109))
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 109, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(250) == 0 && Main.bloodMoon)
|
|
{
|
|
NPC.NewNPC(num * 16 + 8, num2 * 16, 53, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.moonPhase == 0 && Main.hardMode && Main.rand.Next(3) != 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 104, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && Main.rand.Next(3) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 140, 0);
|
|
}
|
|
else
|
|
{
|
|
if (num3 == 147 || num3 == 161 || num3 == 163 || num3 == 164 || num3 == 162)
|
|
{
|
|
if (Main.hardMode && Main.rand.Next(4) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 169, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && Main.rand.Next(3) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 155, 0);
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 161, 0);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.raining && Main.rand.Next(2) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 223, 0);
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Small Rain Zombie");
|
|
}
|
|
else
|
|
{
|
|
Main.npc[num30].SetDefaults("Big Rain Zombie");
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
int num39 = Main.rand.Next(7);
|
|
if (num39 == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 3, 0);
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Small Zombie");
|
|
}
|
|
else
|
|
{
|
|
Main.npc[num30].SetDefaults("Big Zombie");
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num39 == 1)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 132, 0);
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Small Bald Zombie");
|
|
}
|
|
else
|
|
{
|
|
Main.npc[num30].SetDefaults("Big Bald Zombie");
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num39 == 2)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 186, 0);
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Small Pincushion Zombie");
|
|
}
|
|
else
|
|
{
|
|
Main.npc[num30].SetDefaults("Big Pincushion Zombie");
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num39 == 3)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 187, 0);
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Small Slimed Zombie");
|
|
}
|
|
else
|
|
{
|
|
Main.npc[num30].SetDefaults("Big Slimed Zombie");
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num39 == 4)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 188, 0);
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Small Swamp Zombie");
|
|
}
|
|
else
|
|
{
|
|
Main.npc[num30].SetDefaults("Big Swamp Zombie");
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num39 == 5)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 189, 0);
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Small Twiggy Zombie");
|
|
}
|
|
else
|
|
{
|
|
Main.npc[num30].SetDefaults("Big Twiggy Zombie");
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num39 == 6)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 200, 0);
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Small Female Zombie");
|
|
}
|
|
else
|
|
{
|
|
Main.npc[num30].SetDefaults("Big Female Zombie");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if ((double)num2 <= Main.rockLayer)
|
|
{
|
|
if (!flag3 && Main.rand.Next(50) == 0 && !Main.player[j].zoneSnow)
|
|
{
|
|
if (Main.hardMode)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 95, 1);
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[j].zoneSnow)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 185, 0);
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 10, 1);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && Main.rand.Next(3) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 140, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && Main.rand.Next(4) != 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 141, 0);
|
|
}
|
|
else
|
|
{
|
|
if (num29 == 147 || num29 == 161 || Main.player[j].zoneSnow)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 147, 0);
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 1, 0);
|
|
if (Main.rand.Next(5) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Yellow Slime");
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Blue Slime");
|
|
}
|
|
else
|
|
{
|
|
Main.npc[num30].SetDefaults("Red Slime");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num2 > Main.maxTilesY - 190)
|
|
{
|
|
if (Main.rand.Next(40) == 0 && !NPC.AnyNPCs(39))
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 39, 1);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(14) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 24, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(8) == 0)
|
|
{
|
|
if (Main.rand.Next(7) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 66, 0);
|
|
}
|
|
else
|
|
{
|
|
if (NPC.downedMechBossAny && Main.rand.Next(5) != 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 156, 0);
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 62, 0);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 59, 0);
|
|
}
|
|
else
|
|
{
|
|
if (NPC.downedMechBossAny && Main.rand.Next(5) != 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 151, 0);
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 60, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(60) == 0)
|
|
{
|
|
if (Main.player[j].zoneSnow)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 218, 0);
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 217, 0);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if ((num29 == 116 || num29 == 117 || num29 == 164) && !flag3 && Main.rand.Next(8) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 120, 0);
|
|
}
|
|
else
|
|
{
|
|
if ((num3 == 147 || num3 == 161 || num3 == 162 || num3 == 163 || num3 == 164) && !flag3 && Main.hardMode && Main.player[j].zoneEvil && Main.rand.Next(30) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 170, 0);
|
|
}
|
|
else
|
|
{
|
|
if ((num3 == 147 || num3 == 161 || num3 == 162 || num3 == 163 || num3 == 164) && !flag3 && Main.hardMode && Main.player[j].zoneHoly && Main.rand.Next(30) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 171, 0);
|
|
}
|
|
else
|
|
{
|
|
if ((num3 == 147 || num3 == 161 || num3 == 162 || num3 == 163 || num3 == 164) && !flag3 && Main.hardMode && Main.player[j].zoneBlood && Main.rand.Next(30) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 171, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && Main.player[j].zoneSnow && Main.rand.Next(10) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 154, 0);
|
|
}
|
|
else
|
|
{
|
|
if (!flag3 && Main.rand.Next(100) == 0 && !Main.player[j].zoneHoly)
|
|
{
|
|
if (Main.hardMode)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 95, 1);
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[j].zoneSnow)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 185, 0);
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 10, 1);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[j].zoneSnow && Main.rand.Next(20) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 185, 0);
|
|
}
|
|
else
|
|
{
|
|
if (!Main.hardMode && Main.rand.Next(10) == 0)
|
|
{
|
|
if (Main.player[j].zoneSnow)
|
|
{
|
|
Main.npc[num30].SetDefaults(184, -1f);
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 16, 0);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!Main.hardMode && Main.rand.Next(4) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 1, 0);
|
|
if (Main.player[j].zoneJungle)
|
|
{
|
|
Main.npc[num30].SetDefaults("Jungle Slime");
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[j].zoneSnow)
|
|
{
|
|
Main.npc[num30].SetDefaults(184, -1f);
|
|
}
|
|
else
|
|
{
|
|
Main.npc[num30].SetDefaults("Black Slime");
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
if ((!Main.hardMode && Main.rand.Next(100) == 0) || Main.rand.Next(500) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 195, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && (double)num2 > (Main.rockLayer + (double)Main.maxTilesY) / 2.0 && Main.rand.Next(400) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 172, 0);
|
|
}
|
|
else
|
|
{
|
|
if ((double)num2 > (Main.rockLayer + (double)Main.maxTilesY) / 2.0 && Main.rand.Next(350) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 45, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && Main.rand.Next(10) != 0)
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
if (Main.player[j].zoneSnow)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 197, 0);
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 77, 0);
|
|
if ((double)num2 > (Main.rockLayer + (double)Main.maxTilesY) / 2.0 && Main.rand.Next(5) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Heavy Skeleton");
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[j].zoneSnow)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 206, 0);
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 110, 0);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(20) == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 44, 0);
|
|
}
|
|
else
|
|
{
|
|
if (num3 == 147 || num3 == 161 || num3 == 162)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 167, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[j].zoneSnow)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 185, 0);
|
|
}
|
|
else
|
|
{
|
|
int num40 = Main.rand.Next(4);
|
|
if (num40 == 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 21, 0);
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Big Skeleton");
|
|
}
|
|
else
|
|
{
|
|
Main.npc[num30].SetDefaults("Small Skeleton");
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num40 == 1)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 201, 0);
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Big Headache Skeleton");
|
|
}
|
|
else
|
|
{
|
|
Main.npc[num30].SetDefaults("Small Headache Skeleton");
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num40 == 2)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 202, 0);
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Big Misassembled Skeleton");
|
|
}
|
|
else
|
|
{
|
|
Main.npc[num30].SetDefaults("Small Misassembled Skeleton");
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (num40 == 3)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 203, 0);
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Big Pantless Skeleton");
|
|
}
|
|
else
|
|
{
|
|
Main.npc[num30].SetDefaults("Small Pantless Skeleton");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && (Main.player[j].zoneHoly & Main.rand.Next(2) == 0))
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 138, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[j].zoneJungle)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 51, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && Main.player[j].zoneHoly)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 137, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.hardMode && Main.rand.Next(6) > 0)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 93, 0);
|
|
}
|
|
else
|
|
{
|
|
if (num3 == 147 || num3 == 161 || num3 == 162)
|
|
{
|
|
if (Main.hardMode)
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 169, 0);
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 150, 0);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
num30 = NPC.NewNPC(num * 16 + 8, num2 * 16, 49, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Main.npc[num30].type == 1 && Main.rand.Next(250) == 0)
|
|
{
|
|
Main.npc[num30].SetDefaults("Pinky");
|
|
}
|
|
if (Main.netMode == 2 && num30 < 200)
|
|
{
|
|
NetMessage.SendData(23, -1, -1, "", num30, 0f, 0f, 0f, 0);
|
|
return;
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
public static void SpawnWOF(Vector2 pos)
|
|
{
|
|
if (pos.Y / 16f < (float)(Main.maxTilesY - 205))
|
|
{
|
|
return;
|
|
}
|
|
if (Main.wof >= 0)
|
|
{
|
|
return;
|
|
}
|
|
if (Main.netMode == 1)
|
|
{
|
|
return;
|
|
}
|
|
Player.FindClosest(pos, 16, 16);
|
|
int num = 1;
|
|
if (pos.X / 16f > (float)(Main.maxTilesX / 2))
|
|
{
|
|
num = -1;
|
|
}
|
|
bool flag = false;
|
|
int num2 = (int)pos.X;
|
|
while (!flag)
|
|
{
|
|
flag = true;
|
|
for (int i = 0; i < 255; i++)
|
|
{
|
|
if (Main.player[i].active && Main.player[i].position.X > (float)(num2 - 1200) && Main.player[i].position.X < (float)(num2 + 1200))
|
|
{
|
|
num2 -= num * 16;
|
|
flag = false;
|
|
}
|
|
}
|
|
if (num2 / 16 < 20 || num2 / 16 > Main.maxTilesX - 20)
|
|
{
|
|
flag = true;
|
|
}
|
|
}
|
|
int num3 = (int)pos.Y;
|
|
int num4 = num2 / 16;
|
|
int num5 = num3 / 16;
|
|
int num6 = 0;
|
|
try
|
|
{
|
|
while (WorldGen.SolidTile(num4, num5 - num6) || Main.tile[num4, num5 - num6].liquid >= 100)
|
|
{
|
|
if (!WorldGen.SolidTile(num4, num5 + num6) && Main.tile[num4, num5 + num6].liquid < 100)
|
|
{
|
|
num5 += num6;
|
|
goto IL_162;
|
|
}
|
|
num6++;
|
|
}
|
|
num5 -= num6;
|
|
}
|
|
catch
|
|
{
|
|
}
|
|
IL_162:
|
|
num3 = num5 * 16;
|
|
int num7 = NPC.NewNPC(num2, num3, 113, 0);
|
|
if (Main.npc[num7].displayName == "")
|
|
{
|
|
Main.npc[num7].displayName = Main.npc[num7].name;
|
|
}
|
|
if (Main.netMode == 0)
|
|
{
|
|
Main.NewText(Main.npc[num7].displayName + " " + Lang.misc[16], 175, 75, 255, false);
|
|
return;
|
|
}
|
|
if (Main.netMode == 2)
|
|
{
|
|
NetMessage.SendData(25, -1, -1, Main.npc[num7].displayName + " " + Lang.misc[16], 255, 175f, 75f, 255f, 0);
|
|
}
|
|
}
|
|
public static void SpawnOnPlayer(int plr, int Type)
|
|
{
|
|
if (Main.netMode == 1)
|
|
{
|
|
return;
|
|
}
|
|
if (Type == 262 && NPC.AnyNPCs(262))
|
|
{
|
|
return;
|
|
}
|
|
if (Type != 245)
|
|
{
|
|
bool flag = false;
|
|
int num = 0;
|
|
int num2 = 0;
|
|
int num3 = (int)(Main.player[plr].position.X / 16f) - NPC.spawnRangeX * 2;
|
|
int num4 = (int)(Main.player[plr].position.X / 16f) + NPC.spawnRangeX * 2;
|
|
int num5 = (int)(Main.player[plr].position.Y / 16f) - NPC.spawnRangeY * 2;
|
|
int num6 = (int)(Main.player[plr].position.Y / 16f) + NPC.spawnRangeY * 2;
|
|
int num7 = (int)(Main.player[plr].position.X / 16f) - NPC.safeRangeX;
|
|
int num8 = (int)(Main.player[plr].position.X / 16f) + NPC.safeRangeX;
|
|
int num9 = (int)(Main.player[plr].position.Y / 16f) - NPC.safeRangeY;
|
|
int num10 = (int)(Main.player[plr].position.Y / 16f) + NPC.safeRangeY;
|
|
if (num3 < 0)
|
|
{
|
|
num3 = 0;
|
|
}
|
|
if (num4 > Main.maxTilesX)
|
|
{
|
|
num4 = Main.maxTilesX;
|
|
}
|
|
if (num5 < 0)
|
|
{
|
|
num5 = 0;
|
|
}
|
|
if (num6 > Main.maxTilesY)
|
|
{
|
|
num6 = Main.maxTilesY;
|
|
}
|
|
for (int i = 0; i < 1000; i++)
|
|
{
|
|
int j = 0;
|
|
while (j < 100)
|
|
{
|
|
int num11 = Main.rand.Next(num3, num4);
|
|
int num12 = Main.rand.Next(num5, num6);
|
|
if (Main.tile[num11, num12].nactive() && Main.tileSolid[(int)Main.tile[num11, num12].type])
|
|
{
|
|
goto IL_518;
|
|
}
|
|
if (!Main.wallHouse[(int)Main.tile[num11, num12].wall] || i >= 999)
|
|
{
|
|
int k = num12;
|
|
while (k < Main.maxTilesY)
|
|
{
|
|
if (Main.tile[num11, k].nactive() && Main.tileSolid[(int)Main.tile[num11, k].type])
|
|
{
|
|
if (num11 < num7 || num11 > num8 || k < num9 || k > num10 || i == 999)
|
|
{
|
|
byte arg_43A_0 = Main.tile[num11, k].type;
|
|
num = num11;
|
|
num2 = k;
|
|
flag = true;
|
|
break;
|
|
}
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
k++;
|
|
}
|
|
}
|
|
if (!flag || i >= 999)
|
|
{
|
|
goto IL_518;
|
|
}
|
|
int num13 = num - NPC.spawnSpaceX / 2;
|
|
int num14 = num + NPC.spawnSpaceX / 2;
|
|
int num15 = num2 - NPC.spawnSpaceY;
|
|
int num16 = num2;
|
|
if (num13 < 0)
|
|
{
|
|
flag = false;
|
|
}
|
|
if (num14 > Main.maxTilesX)
|
|
{
|
|
flag = false;
|
|
}
|
|
if (num15 < 0)
|
|
{
|
|
flag = false;
|
|
}
|
|
if (num16 > Main.maxTilesY)
|
|
{
|
|
flag = false;
|
|
}
|
|
if (flag)
|
|
{
|
|
for (int l = num13; l < num14; l++)
|
|
{
|
|
for (int m = num15; m < num16; m++)
|
|
{
|
|
if (Main.tile[l, m].nactive() && Main.tileSolid[(int)Main.tile[l, m].type])
|
|
{
|
|
flag = false;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
goto IL_518;
|
|
}
|
|
goto IL_518;
|
|
}
|
|
IL_520:
|
|
j++;
|
|
continue;
|
|
IL_518:
|
|
if (!flag && !flag)
|
|
{
|
|
goto IL_520;
|
|
}
|
|
break;
|
|
}
|
|
if (flag && i < 999)
|
|
{
|
|
Rectangle rectangle = new Rectangle(num * 16, num2 * 16, 16, 16);
|
|
for (int n = 0; n < 255; n++)
|
|
{
|
|
if (Main.player[n].active)
|
|
{
|
|
Rectangle rectangle2 = new Rectangle((int)(Main.player[n].position.X + (float)(Main.player[n].width / 2) - (float)(NPC.sWidth / 2) - (float)NPC.safeRangeX), (int)(Main.player[n].position.Y + (float)(Main.player[n].height / 2) - (float)(NPC.sHeight / 2) - (float)NPC.safeRangeY), NPC.sWidth + NPC.safeRangeX * 2, NPC.sHeight + NPC.safeRangeY * 2);
|
|
if (rectangle.Intersects(rectangle2))
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (flag)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
if (flag)
|
|
{
|
|
int num17 = NPC.NewNPC(num * 16 + 8, num2 * 16, Type, 1);
|
|
if (num17 == 200)
|
|
{
|
|
return;
|
|
}
|
|
Main.npc[num17].target = plr;
|
|
Main.npc[num17].timeLeft *= 20;
|
|
string str = Main.npc[num17].name;
|
|
if (Main.npc[num17].displayName != "")
|
|
{
|
|
str = Main.npc[num17].displayName;
|
|
}
|
|
if (Main.netMode == 2 && num17 < 200)
|
|
{
|
|
NetMessage.SendData(23, -1, -1, "", num17, 0f, 0f, 0f, 0);
|
|
}
|
|
if (Type == 125)
|
|
{
|
|
if (Main.netMode == 0)
|
|
{
|
|
Main.NewText("The Twins " + Lang.misc[16], 175, 75, 255, false);
|
|
return;
|
|
}
|
|
if (Main.netMode == 2)
|
|
{
|
|
NetMessage.SendData(25, -1, -1, "The Twins " + Lang.misc[16], 255, 175f, 75f, 255f, 0);
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Type != 82 && Type != 126 && Type != 50)
|
|
{
|
|
if (Main.netMode == 0)
|
|
{
|
|
Main.NewText(str + " " + Lang.misc[16], 175, 75, 255, false);
|
|
return;
|
|
}
|
|
if (Main.netMode == 2)
|
|
{
|
|
NetMessage.SendData(25, -1, -1, str + " " + Lang.misc[16], 255, 175f, 75f, 255f, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
if (NPC.AnyNPCs(245))
|
|
{
|
|
return;
|
|
}
|
|
try
|
|
{
|
|
int num18 = (int)Main.player[plr].center().X / 16;
|
|
int num19 = (int)Main.player[plr].center().Y / 16;
|
|
int num20 = 0;
|
|
int num21 = 0;
|
|
for (int num22 = num18 - 20; num22 < num18 + 20; num22++)
|
|
{
|
|
for (int num23 = num19 - 20; num23 < num19 + 20; num23++)
|
|
{
|
|
if (Main.tile[num22, num23].active() && Main.tile[num22, num23].type == 237 && Main.tile[num22, num23].frameX == 18 && Main.tile[num22, num23].frameY == 0)
|
|
{
|
|
num20 = num22;
|
|
num21 = num23;
|
|
}
|
|
}
|
|
}
|
|
if (num20 > 0 && num21 > 0)
|
|
{
|
|
int num24 = num21 - 15;
|
|
int num25 = num21 - 15;
|
|
for (int num26 = num21; num26 > num21 - 100; num26--)
|
|
{
|
|
if (WorldGen.SolidTile(num20, num26))
|
|
{
|
|
num24 = num26;
|
|
break;
|
|
}
|
|
}
|
|
for (int num27 = num21; num27 < num21 + 100; num27++)
|
|
{
|
|
if (WorldGen.SolidTile(num20, num27))
|
|
{
|
|
num25 = num27;
|
|
break;
|
|
}
|
|
}
|
|
num21 = (num24 + num24 + num25) / 3;
|
|
int num28 = NPC.NewNPC(num20 * 16 + 8, num21 * 16, 245, 100);
|
|
Main.npc[num28].target = plr;
|
|
string str2 = Main.npc[num28].name;
|
|
if (Main.netMode == 0)
|
|
{
|
|
Main.NewText(str2 + " " + Lang.misc[16], 175, 75, 255, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.netMode == 2)
|
|
{
|
|
NetMessage.SendData(25, -1, -1, str2 + " " + Lang.misc[16], 255, 175f, 75f, 255f, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
}
|
|
}
|
|
public static int NewNPC(int X, int Y, int Type, int Start = 0)
|
|
{
|
|
int num = -1;
|
|
if (Type == 222)
|
|
{
|
|
for (int i = 199; i >= 0; i--)
|
|
{
|
|
if (!Main.npc[i].active)
|
|
{
|
|
num = i;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for (int j = Start; j < 200; j++)
|
|
{
|
|
if (!Main.npc[j].active)
|
|
{
|
|
num = j;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if (num >= 0)
|
|
{
|
|
Main.npc[num] = new NPC();
|
|
Main.npc[num].SetDefaults(Type, -1f);
|
|
Main.npc[num].position.X = (float)(X - Main.npc[num].width / 2);
|
|
Main.npc[num].position.Y = (float)(Y - Main.npc[num].height);
|
|
Main.npc[num].active = true;
|
|
Main.npc[num].timeLeft = (int)((double)NPC.activeTime * 1.25);
|
|
Main.npc[num].wet = Collision.WetCollision(Main.npc[num].position, Main.npc[num].width, Main.npc[num].height);
|
|
if (Type == 50)
|
|
{
|
|
if (Main.netMode == 0)
|
|
{
|
|
Main.NewText(Main.npc[num].name + " " + Lang.misc[16], 175, 75, 255, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.netMode == 2)
|
|
{
|
|
NetMessage.SendData(25, -1, -1, Main.npc[num].name + " " + Lang.misc[16], 255, 175f, 75f, 255f, 0);
|
|
}
|
|
}
|
|
}
|
|
return num;
|
|
}
|
|
return 200;
|
|
}
|
|
public void xForm(int oldType, int newType)
|
|
{
|
|
if ((oldType == 158 && newType == 159) || (oldType == 159 && newType == 158))
|
|
{
|
|
Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 8);
|
|
int num = Gore.NewGore(new Vector2(this.position.X, this.position.Y - 10f), this.velocity, 99, this.scale);
|
|
Main.gore[num].velocity *= 0.3f;
|
|
num = Gore.NewGore(new Vector2(this.position.X, this.position.Y + (float)(this.height / 2) - 10f), this.velocity, 99, this.scale);
|
|
Main.gore[num].velocity *= 0.3f;
|
|
num = Gore.NewGore(new Vector2(this.position.X, this.position.Y + (float)this.height - 10f), this.velocity, 99, this.scale);
|
|
Main.gore[num].velocity *= 0.3f;
|
|
}
|
|
}
|
|
public void Teleport(Vector2 newPos, int Style = 0)
|
|
{
|
|
Main.TeleportEffect(this.getRect(), Style);
|
|
this.position = newPos;
|
|
Main.TeleportEffect(this.getRect(), Style);
|
|
this.teleportTime = 1f;
|
|
if (Main.netMode == 2)
|
|
{
|
|
NetMessage.SendData(65, -1, -1, "", 1, (float)this.whoAmI, newPos.X, newPos.Y, Style);
|
|
}
|
|
}
|
|
public void Transform(int newType)
|
|
{
|
|
if (Main.netMode != 1)
|
|
{
|
|
bool flag = false;
|
|
if (this.value == 0f)
|
|
{
|
|
flag = true;
|
|
}
|
|
int oldType = this.type;
|
|
int num = this.life;
|
|
int num2 = this.lifeMax;
|
|
Vector2 vector = this.velocity;
|
|
this.position.Y = this.position.Y + (float)this.height;
|
|
int num3 = this.spriteDirection;
|
|
this.SetDefaults(newType, -1f);
|
|
this.spriteDirection = num3;
|
|
this.TargetClosest(true);
|
|
this.velocity = vector;
|
|
this.position.Y = this.position.Y - (float)this.height;
|
|
if (flag)
|
|
{
|
|
this.value = 0f;
|
|
}
|
|
if (this.lifeMax == num2)
|
|
{
|
|
this.life = num;
|
|
}
|
|
if (newType == 107 || newType == 108)
|
|
{
|
|
this.homeTileX = (int)(this.position.X + (float)(this.width / 2)) / 16;
|
|
this.homeTileY = (int)(this.position.Y + (float)this.height) / 16;
|
|
this.homeless = true;
|
|
}
|
|
if (Main.netMode == 2)
|
|
{
|
|
this.netUpdate = true;
|
|
NetMessage.SendData(23, -1, -1, "", this.whoAmI, 0f, 0f, 0f, 0);
|
|
}
|
|
this.xForm(oldType, newType);
|
|
}
|
|
}
|
|
public double StrikeNPC(int Damage, float knockBack, int hitDirection, bool crit = false, bool noEffect = false)
|
|
{
|
|
if (!this.active || this.life <= 0)
|
|
{
|
|
return 0.0;
|
|
}
|
|
double num = (double)Damage;
|
|
if (this.ichor)
|
|
{
|
|
num = Main.CalculateDamage((int)num, this.defense - 20);
|
|
}
|
|
else
|
|
{
|
|
num = Main.CalculateDamage((int)num, this.defense);
|
|
}
|
|
if (crit)
|
|
{
|
|
num *= 2.0;
|
|
}
|
|
if (Damage != 9999 && this.lifeMax > 1)
|
|
{
|
|
if (this.friendly)
|
|
{
|
|
CombatText.NewText(new Rectangle((int)this.position.X, (int)this.position.Y, this.width, this.height), new Color(255, 80, 90, 255), string.Concat((int)num), crit, false);
|
|
}
|
|
else
|
|
{
|
|
CombatText.NewText(new Rectangle((int)this.position.X, (int)this.position.Y, this.width, this.height), new Color(255, 160, 80, 255), string.Concat((int)num), crit, false);
|
|
}
|
|
}
|
|
if (num >= 1.0)
|
|
{
|
|
this.justHit = true;
|
|
if (this.townNPC)
|
|
{
|
|
this.ai[0] = 1f;
|
|
this.ai[1] = (float)(300 + Main.rand.Next(300));
|
|
this.ai[2] = 0f;
|
|
this.direction = hitDirection;
|
|
this.netUpdate = true;
|
|
}
|
|
if (this.aiStyle == 8 && Main.netMode != 1)
|
|
{
|
|
if (this.type == 172)
|
|
{
|
|
this.ai[0] = 450f;
|
|
}
|
|
else
|
|
{
|
|
this.ai[0] = 400f;
|
|
}
|
|
this.TargetClosest(true);
|
|
}
|
|
if (this.type == 184)
|
|
{
|
|
this.localAI[0] = 60f;
|
|
}
|
|
if (this.type == 185)
|
|
{
|
|
this.localAI[0] = 1f;
|
|
}
|
|
if (this.realLife >= 0)
|
|
{
|
|
Main.npc[this.realLife].life -= (int)num;
|
|
this.life = Main.npc[this.realLife].life;
|
|
this.lifeMax = Main.npc[this.realLife].lifeMax;
|
|
}
|
|
else
|
|
{
|
|
this.life -= (int)num;
|
|
}
|
|
if (knockBack > 0f && this.knockBackResist > 0f)
|
|
{
|
|
float num2 = knockBack * this.knockBackResist;
|
|
if (num2 > 8f)
|
|
{
|
|
num2 = 8f;
|
|
}
|
|
if (crit)
|
|
{
|
|
num2 *= 1.4f;
|
|
}
|
|
if (num * 10.0 > (double)this.lifeMax)
|
|
{
|
|
if (hitDirection < 0 && this.velocity.X > -num2)
|
|
{
|
|
if (this.velocity.X > 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X - num2;
|
|
}
|
|
this.velocity.X = this.velocity.X - num2;
|
|
if (this.velocity.X < -num2)
|
|
{
|
|
this.velocity.X = -num2;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (hitDirection > 0 && this.velocity.X < num2)
|
|
{
|
|
if (this.velocity.X < 0f)
|
|
{
|
|
this.velocity.X = this.velocity.X + num2;
|
|
}
|
|
this.velocity.X = this.velocity.X + num2;
|
|
if (this.velocity.X > num2)
|
|
{
|
|
this.velocity.X = num2;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 185)
|
|
{
|
|
num2 *= 1.5f;
|
|
}
|
|
if (!this.noGravity)
|
|
{
|
|
num2 *= -0.75f;
|
|
}
|
|
else
|
|
{
|
|
num2 *= -0.5f;
|
|
}
|
|
if (this.velocity.Y > num2)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + num2;
|
|
if (this.velocity.Y < num2)
|
|
{
|
|
this.velocity.Y = num2;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!this.noGravity)
|
|
{
|
|
this.velocity.Y = -num2 * 0.75f * this.knockBackResist;
|
|
}
|
|
else
|
|
{
|
|
this.velocity.Y = -num2 * 0.5f * this.knockBackResist;
|
|
}
|
|
this.velocity.X = num2 * (float)hitDirection * this.knockBackResist;
|
|
}
|
|
}
|
|
if ((this.type == 113 || this.type == 114) && this.life <= 0)
|
|
{
|
|
for (int i = 0; i < 200; i++)
|
|
{
|
|
if (Main.npc[i].active && (Main.npc[i].type == 113 || Main.npc[i].type == 114))
|
|
{
|
|
Main.npc[i].HitEffect(hitDirection, num);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.HitEffect(hitDirection, num);
|
|
}
|
|
if (this.soundHit > 0)
|
|
{
|
|
Main.PlaySound(3, (int)this.position.X, (int)this.position.Y, this.soundHit);
|
|
}
|
|
if (this.realLife >= 0)
|
|
{
|
|
Main.npc[this.realLife].checkDead();
|
|
}
|
|
else
|
|
{
|
|
this.checkDead();
|
|
}
|
|
return num;
|
|
}
|
|
return 0.0;
|
|
}
|
|
public void checkDead()
|
|
{
|
|
if (!this.active)
|
|
{
|
|
return;
|
|
}
|
|
if (this.realLife >= 0 && this.realLife != this.whoAmI)
|
|
{
|
|
return;
|
|
}
|
|
if (this.life <= 0)
|
|
{
|
|
NPC.noSpawnCycle = true;
|
|
if (this.townNPC && this.type != 37)
|
|
{
|
|
string str = this.name;
|
|
if (this.displayName != "")
|
|
{
|
|
str = this.displayName;
|
|
}
|
|
if (Main.netMode == 0)
|
|
{
|
|
Main.NewText(str + Lang.misc[19], 255, 25, 25, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.netMode == 2)
|
|
{
|
|
NetMessage.SendData(25, -1, -1, str + Lang.misc[19], 255, 255f, 25f, 25f, 0);
|
|
}
|
|
}
|
|
}
|
|
if (Main.netMode != 1 && !Main.dayTime && this.type == 54 && !NPC.AnyNPCs(35))
|
|
{
|
|
for (int i = 0; i < 255; i++)
|
|
{
|
|
if (Main.player[i].active && !Main.player[i].dead && Main.player[i].killClothier)
|
|
{
|
|
NPC.SpawnOnPlayer(i, 35);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
if (this.townNPC && Main.netMode != 1 && this.homeless && WorldGen.spawnNPC == this.type)
|
|
{
|
|
WorldGen.spawnNPC = 0;
|
|
}
|
|
if (this.soundKilled > 0)
|
|
{
|
|
Main.PlaySound(4, (int)this.position.X, (int)this.position.Y, this.soundKilled);
|
|
}
|
|
this.NPCLoot();
|
|
if (this.townNPC && this.type != 37 && Main.netMode != 1)
|
|
{
|
|
Main.chrName[this.type] = "";
|
|
NPC.setNames();
|
|
NetMessage.SendData(56, -1, -1, "", this.type, 0f, 0f, 0f, 0);
|
|
}
|
|
this.active = false;
|
|
if (this.type == 26 || this.type == 27 || this.type == 28 || this.type == 29 || this.type == 111 || this.type == 143 || this.type == 144 || this.type == 145 || this.type == 212 || this.type == 213 || this.type == 214 || this.type == 215)
|
|
{
|
|
Main.invasionSize--;
|
|
}
|
|
if (this.type == 216)
|
|
{
|
|
Main.invasionSize -= 5;
|
|
}
|
|
}
|
|
}
|
|
public void NPCLoot()
|
|
{
|
|
if (Main.netMode == 1)
|
|
{
|
|
return;
|
|
}
|
|
if (Main.hardMode && this.lifeMax > 1 && this.damage > 0 && !this.friendly && (double)this.position.Y > Main.rockLayer * 16.0 && Main.rand.Next(5) == 0 && this.type != 121 && this.value > 0f)
|
|
{
|
|
if (Main.player[(int)Player.FindClosest(this.position, this.width, this.height)].zoneEvil || Main.player[(int)Player.FindClosest(this.position, this.width, this.height)].zoneBlood)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 521, 1, false, 0, false);
|
|
}
|
|
if (Main.player[(int)Player.FindClosest(this.position, this.width, this.height)].zoneHoly)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 520, 1, false, 0, false);
|
|
}
|
|
}
|
|
if (this.type == 22 && Main.chrName[22] == "Andrew")
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 867, 1, false, 0, false);
|
|
}
|
|
if (Main.rand.Next(200) == 0)
|
|
{
|
|
int num = Item.NPCtoBanner(this.type);
|
|
if (num > 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1615 + num - 1, 1, false, 0, false);
|
|
}
|
|
}
|
|
if (Main.hardMode && this.value > 0f)
|
|
{
|
|
if (!NPC.downedMechBoss1 && Main.rand.Next(1000) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 556, 1, false, 0, false);
|
|
}
|
|
else
|
|
{
|
|
if (!NPC.downedMechBoss2 && Main.rand.Next(1000) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 544, 1, false, 0, false);
|
|
}
|
|
else
|
|
{
|
|
if (!NPC.downedMechBoss3 && Main.rand.Next(1000) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 557, 1, false, 0, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Main.hardMode && this.value > 0f)
|
|
{
|
|
if (Main.rand.Next(4000) == 0 && Main.player[(int)Player.FindClosest(this.position, this.width, this.height)].zoneJungle)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1533, 1, false, 0, false);
|
|
}
|
|
if (Main.rand.Next(4000) == 0 && Main.player[(int)Player.FindClosest(this.position, this.width, this.height)].zoneEvil)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1534, 1, false, 0, false);
|
|
}
|
|
if (Main.rand.Next(4000) == 0 && Main.player[(int)Player.FindClosest(this.position, this.width, this.height)].zoneBlood)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1535, 1, false, 0, false);
|
|
}
|
|
if (Main.rand.Next(4000) == 0 && Main.player[(int)Player.FindClosest(this.position, this.width, this.height)].zoneHoly)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1536, 1, false, 0, false);
|
|
}
|
|
if (Main.rand.Next(4000) == 0 && Main.player[(int)Player.FindClosest(this.position, this.width, this.height)].zoneSnow)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1537, 1, false, 0, false);
|
|
}
|
|
}
|
|
if (this.type == 68)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1169, 1, false, 0, false);
|
|
}
|
|
if (this.type == 156 && Main.rand.Next(75) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1518, 1, false, 0, false);
|
|
}
|
|
if (this.type == 243 && Main.rand.Next(3) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1519, 1, false, 0, false);
|
|
}
|
|
if (this.type >= 269 && this.type <= 280 && Main.rand.Next(450) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1517, 1, false, 0, false);
|
|
}
|
|
if ((this.type == 158 || this.type == 159) && Main.rand.Next(40) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1520, 1, false, 0, false);
|
|
}
|
|
if (this.type == 176 && Main.rand.Next(150) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1521, 1, false, 0, false);
|
|
}
|
|
if (this.type == 48 && Main.rand.Next(200) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1516, 1, false, 0, false);
|
|
}
|
|
if (this.type == 205 && Main.rand.Next(2) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1611, 1, false, 0, false);
|
|
}
|
|
if (Main.xMas && this.lifeMax > 1 && this.damage > 0 && !this.friendly && this.type != 121 && this.value > 0f && Main.rand.Next(13) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, Main.rand.Next(599, 602), 1, false, 0, false);
|
|
}
|
|
if ((this.type == 281 || this.type == 282) && Main.rand.Next(40) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1446, 1, false, -1, false);
|
|
}
|
|
if ((this.type == 283 || this.type == 284) && Main.rand.Next(40) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1444, 1, false, -1, false);
|
|
}
|
|
if ((this.type == 285 || this.type == 286) && Main.rand.Next(40) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1445, 1, false, -1, false);
|
|
}
|
|
if (this.lifeMax > 100 && this.type != 288 && this.target >= 0 && Main.hardMode && NPC.downedPlantBoss && Main.player[this.target].zoneDungeon && Main.rand.Next(13) == 0 && Main.wallDungeon[(int)Main.tile[(int)this.center().X / 16, (int)this.center().Y / 16].wall])
|
|
{
|
|
NPC.NewNPC((int)this.center().X, (int)this.center().Y, 288, 0);
|
|
}
|
|
if (this.type == 288)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1508, Main.rand.Next(1, 3), false, -1, false);
|
|
}
|
|
if ((this.type == 162 || this.type == 166) && Main.rand.Next(250) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1570, 1, false, -1, false);
|
|
}
|
|
if ((this.type == 158 || this.type == 159) && Main.rand.Next(100) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 900, 1, false, -1, false);
|
|
}
|
|
if (this.type == 35)
|
|
{
|
|
if (Main.rand.Next(7) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1281, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(7) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1273, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(7) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1313, 1, false, -1, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Main.bloodMoon && Main.hardMode && Main.rand.Next(1000) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1314, 1, false, -1, false);
|
|
}
|
|
if (Main.rand.Next(100) == 0)
|
|
{
|
|
if (this.type == 104 || this.type == 102 || (this.type >= 269 && this.type <= 272))
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 885, 1, false, -1, false);
|
|
}
|
|
if (this.type == 77 || (this.type >= 273 && this.type <= 276))
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 886, 1, false, -1, false);
|
|
}
|
|
if (this.type == 141 || this.type == 178 || this.type == 42 || (this.type >= 231 && this.type <= 235))
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 887, 1, false, -1, false);
|
|
}
|
|
if (this.type == 79 || this.type == 81)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 888, 1, false, -1, false);
|
|
}
|
|
if (this.type == 75 || this.type == 78 || this.type == 82)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 889, 1, false, -1, false);
|
|
}
|
|
if (this.type == 75 || this.type == 79 || this.type == 103)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 890, 1, false, -1, false);
|
|
}
|
|
if (this.type == 34 || this.type == 83 || this.type == 84)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 891, 1, false, -1, false);
|
|
}
|
|
if (this.type == 94)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 892, 1, false, -1, false);
|
|
}
|
|
if (this.type == 93 || this.type == 109 || this.type == 80)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 893, 1, false, -1, false);
|
|
}
|
|
}
|
|
if (this.type == 290)
|
|
{
|
|
if (Main.rand.Next(35) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1513, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(15) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 938, 1, false, -1, false);
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 291)
|
|
{
|
|
if (Main.rand.Next(15) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1300, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(15) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1254, 1, false, -1, false);
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 292)
|
|
{
|
|
if (Main.rand.Next(15) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1514, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(15) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 679, 1, false, -1, false);
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 293 && Main.rand.Next(20) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 759, 1, false, -1, false);
|
|
}
|
|
if (this.type == 156 && Main.rand.Next(30) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 683, 1, false, -1, false);
|
|
}
|
|
if (this.type == 245)
|
|
{
|
|
int num2 = Main.rand.Next(8);
|
|
if (num2 == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1258, 1, false, -1, false);
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1261, Main.rand.Next(60, 100), false, 0, false);
|
|
}
|
|
else
|
|
{
|
|
if (num2 == 1)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1122, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
if (num2 == 2)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 899, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
if (num2 == 3)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1248, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
if (num2 == 4)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1294, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
if (num2 == 5)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1295, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
if (num2 == 6)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1296, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
if (num2 == 7)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1297, 1, false, -1, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
NPC.downedGolemBoss = true;
|
|
}
|
|
if (this.type == 268)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1332, Main.rand.Next(1, 4), false, 0, false);
|
|
}
|
|
if (this.type == 109 && !NPC.downedClown)
|
|
{
|
|
NPC.downedClown = true;
|
|
if (Main.netMode == 2)
|
|
{
|
|
NetMessage.SendData(7, -1, -1, "", 0, 0f, 0f, 0f, 0);
|
|
}
|
|
}
|
|
if (this.type == 153 && Main.rand.Next(17) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1328, 1, false, -1, false);
|
|
}
|
|
if (this.type == 253 && Main.rand.Next(250) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1327, 1, false, -1, false);
|
|
}
|
|
if (this.type == 120 && Main.rand.Next(500) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1326, 1, false, -1, false);
|
|
}
|
|
if (this.type == 49 && Main.rand.Next(250) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1325, 1, false, -1, false);
|
|
}
|
|
if (this.type == 185 && Main.rand.Next(150) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 951, 1, false, -1, false);
|
|
}
|
|
if (this.type == 44 && Main.rand.Next(75) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1320, 1, false, -1, false);
|
|
}
|
|
if (this.type == 110 && Main.rand.Next(100) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1321, 1, false, -1, false);
|
|
}
|
|
if (this.type == 260 && Main.rand.Next(150) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1322, 1, false, -1, false);
|
|
}
|
|
if (this.type == 151 && Main.rand.Next(50) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1322, 1, false, -1, false);
|
|
}
|
|
if (this.type == 24 && Main.rand.Next(75) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1323, 1, false, -1, false);
|
|
}
|
|
if (this.type == 109 && Main.rand.Next(30) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1324, Main.rand.Next(1, 5), false, -1, false);
|
|
}
|
|
if ((this.type == 163 || this.type == 238) && Main.rand.Next(40) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1308, 1, false, -1, false);
|
|
}
|
|
if (this.type == 287 && Main.rand.Next(7) == 0)
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 963, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 977, 1, false, -1, false);
|
|
}
|
|
}
|
|
if (this.type == 77 && Main.rand.Next(150) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 723, 1, false, -1, false);
|
|
}
|
|
if (this.type == 251 && Main.rand.Next(50) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1311, 1, false, -1, false);
|
|
}
|
|
if (this.type == 197 && Main.rand.Next(200) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1306, 1, false, -1, false);
|
|
}
|
|
if (this.type == 244)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 23, Main.rand.Next(1, 6), false, 0, false);
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 23, Main.rand.Next(1, 6), false, 0, false);
|
|
}
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 23, Main.rand.Next(1, 6), false, 0, false);
|
|
}
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 23, Main.rand.Next(1, 6), false, 0, false);
|
|
}
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 662, Main.rand.Next(30, 60), false, 0, false);
|
|
}
|
|
if (this.type == 250 && Main.rand.Next(15) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1244, 1, false, -1, false);
|
|
}
|
|
if (this.type == 172)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 754, 1, false, -1, false);
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 755, 1, false, -1, false);
|
|
}
|
|
if (this.type == 110 && Main.rand.Next(200) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 682, 1, false, -1, false);
|
|
}
|
|
if (this.type >= 269 && this.type <= 280)
|
|
{
|
|
if (Main.rand.Next(600) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1183, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(400) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1266, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(300) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 671, 1, false, -1, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 154 && Main.rand.Next(100) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1253, 1, false, -1, false);
|
|
}
|
|
if ((this.type == 169 || this.type == 206) && Main.rand.Next(50) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 726, 1, false, -1, false);
|
|
}
|
|
if (this.type == 243)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, Main.rand.Next(684, 687), 1, false, -1, false);
|
|
}
|
|
if (this.type == 198 || this.type == 199 || this.type == 226)
|
|
{
|
|
if (Main.rand.Next(3000) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1172, 1, false, -1, false);
|
|
}
|
|
if (Main.rand.Next(100) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1293, 1, false, -1, false);
|
|
}
|
|
}
|
|
if (this.type == 78 || this.type == 79 || this.type == 80)
|
|
{
|
|
if (Main.rand.Next(75) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 870, 1, false, -1, false);
|
|
}
|
|
if (Main.rand.Next(75) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 871, 1, false, -1, false);
|
|
}
|
|
if (Main.rand.Next(75) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 872, 1, false, -1, false);
|
|
}
|
|
}
|
|
if (this.type == 85 && this.value > 0f)
|
|
{
|
|
if (this.ai[3] == 4f)
|
|
{
|
|
if (Main.rand.Next(20) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1312, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
int num3 = Main.rand.Next(3);
|
|
if (num3 == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 676, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
if (num3 == 1)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 725, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
if (num3 == 2)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1264, 1, false, -1, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
int num4 = Main.rand.Next(7);
|
|
if (num4 == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 437, 1, false, -1, false);
|
|
}
|
|
if (num4 == 1)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 517, 1, false, -1, false);
|
|
}
|
|
if (num4 == 2)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 535, 1, false, -1, false);
|
|
}
|
|
if (num4 == 3)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 536, 1, false, -1, false);
|
|
}
|
|
if (num4 == 4)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 532, 1, false, -1, false);
|
|
}
|
|
if (num4 == 5)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 393, 1, false, -1, false);
|
|
}
|
|
if (num4 == 6)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 554, 1, false, -1, false);
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 87)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 575, Main.rand.Next(5, 11), false, 0, false);
|
|
}
|
|
if (this.type >= 212 && this.type <= 215)
|
|
{
|
|
if (Main.rand.Next(8000) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 905, 1, false, -1, false);
|
|
}
|
|
if (Main.rand.Next(4000) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 855, 1, false, -1, false);
|
|
}
|
|
if (Main.rand.Next(2000) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 854, 1, false, -1, false);
|
|
}
|
|
if (Main.rand.Next(200) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 672, 1, false, -1, false);
|
|
}
|
|
if (Main.rand.Next(500) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1277, 1, false, 0, false);
|
|
}
|
|
if (Main.rand.Next(500) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1278, 1, false, 0, false);
|
|
}
|
|
if (Main.rand.Next(500) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1279, 1, false, 0, false);
|
|
}
|
|
if (Main.rand.Next(500) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1280, 1, false, 0, false);
|
|
}
|
|
if (Main.rand.Next(300) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1704, 1, false, 0, false);
|
|
}
|
|
if (Main.rand.Next(300) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1705, 1, false, 0, false);
|
|
}
|
|
if (Main.rand.Next(300) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1710, 1, false, 0, false);
|
|
}
|
|
if (Main.rand.Next(300) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1716, 1, false, 0, false);
|
|
}
|
|
if (Main.rand.Next(300) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1720, 1, false, 0, false);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 216)
|
|
{
|
|
if (Main.rand.Next(4000) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 905, 1, false, -1, false);
|
|
}
|
|
if (Main.rand.Next(2000) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 855, 1, false, -1, false);
|
|
}
|
|
if (Main.rand.Next(1000) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 854, 1, false, -1, false);
|
|
}
|
|
if (Main.rand.Next(100) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 672, 1, false, -1, false);
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 161 && Main.rand.Next(50) == 0)
|
|
{
|
|
int num5 = Main.rand.Next(3);
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 803 + num5, 1, false, 0, false);
|
|
}
|
|
if (this.type == 217)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1115, 1, false, -1, false);
|
|
}
|
|
if (this.type == 218)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1116, 1, false, -1, false);
|
|
}
|
|
if (this.type == 219)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1117, 1, false, -1, false);
|
|
}
|
|
if (this.type == 220)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1118, 1, false, -1, false);
|
|
}
|
|
if (this.type == 221)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1119, 1, false, -1, false);
|
|
}
|
|
if (this.type == 167 && Main.rand.Next(50) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 879, 1, false, -1, false);
|
|
}
|
|
if (this.type == 143 || this.type == 144 || this.type == 145)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 593, Main.rand.Next(5, 11), false, 0, false);
|
|
}
|
|
if (this.type == 79)
|
|
{
|
|
if (Main.rand.Next(10) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 527, 1, false, 0, false);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 80 && Main.rand.Next(10) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 528, 1, false, 0, false);
|
|
}
|
|
}
|
|
if (this.type == 49 && Main.rand.Next(200) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 18, 1, false, -1, false);
|
|
}
|
|
if (this.type == 21 || this.type == 201 || this.type == 202 || this.type == 203)
|
|
{
|
|
if (Main.rand.Next(100) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 954, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(200) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 955, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(200) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1166, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(500) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1274, 1, false, -1, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 6)
|
|
{
|
|
if (Main.rand.Next(150) == 0)
|
|
{
|
|
int num6 = Main.rand.Next(3);
|
|
if (num6 == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 956, 1, false, -1, false);
|
|
}
|
|
if (num6 == 1)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 957, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 958, 1, false, -1, false);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 42 || this.type == 43 || (this.type >= 231 && this.type <= 235))
|
|
{
|
|
if (Main.rand.Next(100) == 0)
|
|
{
|
|
int num7 = Main.rand.Next(3);
|
|
if (num7 == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 960, 1, false, -1, false);
|
|
}
|
|
if (num7 == 1)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 961, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 962, 1, false, -1, false);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 31 || this.type == 32 || this.type == 294 || this.type == 295 || this.type == 296)
|
|
{
|
|
if (Main.rand.Next(450) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 959, 1, false, -1, false);
|
|
}
|
|
if (Main.rand.Next(300) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1307, 1, false, -1, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if ((this.type == 174 || this.type == 179 || this.type == 182 || this.type == 183) && Main.rand.Next(200) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 996, 1, false, 0, false);
|
|
}
|
|
if (this.type == 101 || this.type == 98)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 522, Main.rand.Next(2, 6), false, 0, false);
|
|
}
|
|
if (this.type == 86)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 526, 1, false, 0, false);
|
|
if (Main.rand.Next(100) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 856, 1, false, 0, false);
|
|
}
|
|
}
|
|
if (this.type == 113)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 367, 1, false, -1, false);
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, Main.rand.Next(489, 492), 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
int num8 = Main.rand.Next(3);
|
|
if (num8 == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 514, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
if (num8 == 1)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 426, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
if (num8 == 2)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 434, 1, false, -1, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Main.netMode != 1)
|
|
{
|
|
int num9 = (int)(this.position.X + (float)(this.width / 2)) / 16;
|
|
int num10 = (int)(this.position.Y + (float)(this.height / 2)) / 16;
|
|
int num11 = this.width / 2 / 16 + 1;
|
|
for (int i = num9 - num11; i <= num9 + num11; i++)
|
|
{
|
|
for (int j = num10 - num11; j <= num10 + num11; j++)
|
|
{
|
|
if ((i == num9 - num11 || i == num9 + num11 || j == num10 - num11 || j == num10 + num11) && !Main.tile[i, j].active())
|
|
{
|
|
Main.tile[i, j].type = 140;
|
|
Main.tile[i, j].active(true);
|
|
}
|
|
Main.tile[i, j].lava(false);
|
|
Main.tile[i, j].liquid = 0;
|
|
if (Main.netMode == 2)
|
|
{
|
|
NetMessage.SendTileSquare(-1, i, j, 1);
|
|
}
|
|
else
|
|
{
|
|
WorldGen.SquareTileFrame(i, j, true);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 186)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 40, Main.rand.Next(1, 10), false, 0, false);
|
|
}
|
|
if (this.type == 225)
|
|
{
|
|
if (Main.rand.Next(45) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1243, 1, false, 0, false);
|
|
}
|
|
else
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 23, Main.rand.Next(2, 6), false, 0, false);
|
|
}
|
|
}
|
|
if (this.type == 1 || this.type == 16 || this.type == 138 || this.type == 141 || this.type == 147 || this.type == 184 || this.type == 187 || this.type == 204)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 23, Main.rand.Next(1, 3), false, 0, false);
|
|
if (Main.rand.Next(10000) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1309, 1, false, -1, false);
|
|
}
|
|
}
|
|
if (this.type == 75)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 501, Main.rand.Next(1, 4), false, 0, false);
|
|
}
|
|
if (this.type == 81)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 23, Main.rand.Next(2, 5), false, 0, false);
|
|
}
|
|
if (this.type == 122)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 23, Main.rand.Next(5, 11), false, 0, false);
|
|
}
|
|
if (this.type == 71)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 327, 1, false, 0, false);
|
|
}
|
|
if (this.type == 2)
|
|
{
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 38, 1, false, 0, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(100) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 236, 1, false, 0, false);
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 104 && Main.rand.Next(60) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 485, 1, false, -1, false);
|
|
}
|
|
if (this.type == 58)
|
|
{
|
|
if (Main.rand.Next(500) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 263, 1, false, 0, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(40) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 118, 1, false, 0, false);
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 102 && Main.rand.Next(500) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 263, 1, false, 0, false);
|
|
}
|
|
if (this.type == 3 || this.type == 132 || this.type == 161 || this.type == 186 || this.type == 187 || this.type == 188 || this.type == 189 || this.type == 200 || this.type == 223)
|
|
{
|
|
if (Main.rand.Next(50) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 216, 1, false, -1, false);
|
|
}
|
|
if (Main.rand.Next(250) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1304, 1, false, -1, false);
|
|
}
|
|
}
|
|
if (this.type == 223 && Main.rand.Next(10) == 0)
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1135, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1136, 1, false, -1, false);
|
|
}
|
|
}
|
|
if (this.type == 66)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 267, 1, false, 0, false);
|
|
}
|
|
if (this.type == 62 && Main.rand.Next(50) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 272, 1, false, -1, false);
|
|
}
|
|
if (this.value > 0f && Main.hardMode && (double)(this.position.Y / 16f) < Main.worldSurface + 10.0 && (this.center().X / 16f < 380f || this.center().X / 16f > (float)(Main.maxTilesX - 380)) && Main.rand.Next(100) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1315, 1, false, 0, false);
|
|
}
|
|
if (this.type == 52)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 251, 1, false, 0, false);
|
|
}
|
|
if (this.type == 53)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 239, 1, false, 0, false);
|
|
}
|
|
if (this.type == 54)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 260, 1, false, 0, false);
|
|
}
|
|
if (this.type == 55 || this.type == 230)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 261, 1, false, 0, false);
|
|
}
|
|
if (this.type == 69 && Main.rand.Next(7) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 323, 1, false, 0, false);
|
|
}
|
|
if (this.type == 73)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 362, Main.rand.Next(1, 3), false, 0, false);
|
|
}
|
|
if (this.type == 4)
|
|
{
|
|
if (Main.rand.Next(150) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1299, 1, false, 0, false);
|
|
}
|
|
if (WorldGen.crimson)
|
|
{
|
|
int stack = Main.rand.Next(20) + 10;
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 880, stack, false, 0, false);
|
|
stack = Main.rand.Next(20) + 10;
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 880, stack, false, 0, false);
|
|
stack = Main.rand.Next(20) + 10;
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 880, stack, false, 0, false);
|
|
}
|
|
else
|
|
{
|
|
int stack2 = Main.rand.Next(30) + 20;
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 47, stack2, false, 0, false);
|
|
stack2 = Main.rand.Next(20) + 10;
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 56, stack2, false, 0, false);
|
|
stack2 = Main.rand.Next(20) + 10;
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 56, stack2, false, 0, false);
|
|
stack2 = Main.rand.Next(20) + 10;
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 56, stack2, false, 0, false);
|
|
stack2 = Main.rand.Next(3) + 1;
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 59, stack2, false, 0, false);
|
|
}
|
|
}
|
|
if ((this.type == 6 || this.type == 94) && Main.rand.Next(3) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 68, 1, false, 0, false);
|
|
}
|
|
if ((this.type == 181 || this.type == 173 || this.type == 239 || this.type == 240) && Main.rand.Next(3) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1330, 1, false, 0, false);
|
|
}
|
|
if (this.type == 7 || this.type == 8 || this.type == 9)
|
|
{
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 68, Main.rand.Next(1, 3), false, 0, false);
|
|
}
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 69, Main.rand.Next(3, 9), false, 0, false);
|
|
}
|
|
if ((this.type == 10 || this.type == 11 || this.type == 12 || this.type == 95 || this.type == 96 || this.type == 97) && Main.rand.Next(100) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 215, 1, false, 0, false);
|
|
}
|
|
if (this.type == 47 && Main.rand.Next(75) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 243, 1, false, 0, false);
|
|
}
|
|
if (this.type == 222)
|
|
{
|
|
NPC.downedQueenBee = true;
|
|
int num12 = Main.rand.Next(3);
|
|
if (num12 == 0)
|
|
{
|
|
num12 = 1121;
|
|
}
|
|
else
|
|
{
|
|
if (num12 == 1)
|
|
{
|
|
num12 = 1123;
|
|
}
|
|
else
|
|
{
|
|
if (num12 == 2)
|
|
{
|
|
num12 = 1132;
|
|
}
|
|
}
|
|
}
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, num12, 1, false, 0, false);
|
|
if (Main.rand.Next(20) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1170, 1, false, 0, false);
|
|
}
|
|
if (Main.rand.Next(3) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1129, 1, false, 0, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
num12 = Main.rand.Next(842, 845);
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, num12, 1, false, 0, false);
|
|
}
|
|
}
|
|
if (Main.rand.Next(4) != 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1130, Main.rand.Next(10, 30), false, 0, false);
|
|
}
|
|
}
|
|
if (this.type == 266)
|
|
{
|
|
int stack3 = Main.rand.Next(15, 41);
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 880, stack3, false, 0, false);
|
|
stack3 = Main.rand.Next(15, 41);
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 880, stack3, false, 0, false);
|
|
}
|
|
if (this.type == 267 && NPC.AnyNPCs(266))
|
|
{
|
|
int stack4 = Main.rand.Next(2, 6);
|
|
if (Main.rand.Next(3) != 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1329, stack4, false, 0, false);
|
|
}
|
|
if (Main.rand.Next(3) != 0)
|
|
{
|
|
stack4 = Main.rand.Next(4, 11);
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 880, stack4, false, 0, false);
|
|
}
|
|
if (Main.rand.Next(2) == 0 && Main.player[(int)Player.FindClosest(this.position, this.width, this.height)].statLife < Main.player[(int)Player.FindClosest(this.position, this.width, this.height)].statLifeMax)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 58, 1, false, 0, false);
|
|
}
|
|
}
|
|
if (this.type == 13 || this.type == 14 || this.type == 15)
|
|
{
|
|
int stack5 = Main.rand.Next(1, 3);
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 86, stack5, false, 0, false);
|
|
}
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
stack5 = Main.rand.Next(2, 6);
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 56, stack5, false, 0, false);
|
|
}
|
|
if (this.boss)
|
|
{
|
|
stack5 = Main.rand.Next(10, 30);
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 56, stack5, false, 0, false);
|
|
stack5 = Main.rand.Next(10, 31);
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 56, stack5, false, 0, false);
|
|
if (Main.rand.Next(30) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 995, 1, false, 0, false);
|
|
}
|
|
}
|
|
if (Main.rand.Next(4) == 0 && Main.player[(int)Player.FindClosest(this.position, this.width, this.height)].statLife < Main.player[(int)Player.FindClosest(this.position, this.width, this.height)].statLifeMax)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 58, 1, false, 0, false);
|
|
}
|
|
}
|
|
if (this.type == 116 || this.type == 117 || this.type == 118 || this.type == 119 || this.type == 139)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 58, 1, false, 0, false);
|
|
}
|
|
if (this.type == 63 || this.type == 64 || this.type == 103)
|
|
{
|
|
if (Main.rand.Next(100) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1303, 1, false, -1, false);
|
|
}
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 282, Main.rand.Next(1, 5), false, 0, false);
|
|
}
|
|
if (this.type == 21 || this.type == 44 || this.type == 167 || this.type == 201 || this.type == 202 || this.type == 203)
|
|
{
|
|
if (Main.rand.Next(25) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 118, 1, false, 0, false);
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 44)
|
|
{
|
|
if (Main.rand.Next(20) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, Main.rand.Next(410, 412), 1, false, 0, false);
|
|
}
|
|
else
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 166, Main.rand.Next(1, 4), false, 0, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 45)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 238, 1, false, 0, false);
|
|
}
|
|
if (this.type == 50)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, Main.rand.Next(256, 259), 1, false, 0, false);
|
|
}
|
|
if (this.type == 23 && Main.rand.Next(50) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 116, 1, false, 0, false);
|
|
}
|
|
if (this.type == 24 && Main.rand.Next(300) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 244, 1, false, 0, false);
|
|
}
|
|
if (this.type == 31 || this.type == 32 || this.type == 34)
|
|
{
|
|
if (Main.rand.Next(250) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 932, 1, false, 0, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(65) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 327, 1, false, 0, false);
|
|
}
|
|
else
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 154, Main.rand.Next(1, 4), false, 0, false);
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 26 || this.type == 27 || this.type == 28 || this.type == 29 || this.type == 111)
|
|
{
|
|
if (Main.rand.Next(200) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 160, 1, false, 0, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
int stack6 = Main.rand.Next(1, 6);
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 161, stack6, false, 0, false);
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 175 && Main.rand.Next(200) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1265, 1, false, -1, false);
|
|
}
|
|
if ((this.type == 42 || (this.type >= 231 && this.type <= 235)) && Main.rand.Next(2) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 209, 1, false, 0, false);
|
|
}
|
|
if (this.type == 204 && Main.rand.Next(3) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 209, 1, false, 0, false);
|
|
}
|
|
if (this.type == 43 && Main.rand.Next(3) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 210, 1, false, 0, false);
|
|
}
|
|
if (this.type == 65)
|
|
{
|
|
if (Main.rand.Next(50) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 268, 1, false, 0, false);
|
|
}
|
|
else
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 319, 1, false, 0, false);
|
|
}
|
|
}
|
|
if (this.type == 48 && Main.rand.Next(2) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 320, 1, false, 0, false);
|
|
}
|
|
if (this.type == 125 || this.type == 126)
|
|
{
|
|
int num13 = 125;
|
|
if (this.type == 125)
|
|
{
|
|
num13 = 126;
|
|
}
|
|
if (!NPC.AnyNPCs(num13))
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 549, Main.rand.Next(25, 41), false, 0, false);
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1225, Main.rand.Next(20, 36), false, 0, false);
|
|
}
|
|
else
|
|
{
|
|
this.value = 0f;
|
|
this.boss = false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 127)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 547, Main.rand.Next(25, 41), false, 0, false);
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1225, Main.rand.Next(20, 36), false, 0, false);
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 134)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 548, Main.rand.Next(25, 41), false, 0, false);
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1225, Main.rand.Next(20, 36), false, 0, false);
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 262)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1141, 1, false, -1, false);
|
|
if (Main.rand.Next(20) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1182, 1, false, -1, false);
|
|
}
|
|
if (Main.rand.Next(200) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1305, 1, false, -1, false);
|
|
}
|
|
if (Main.rand.Next(4) == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1157, 1, false, -1, false);
|
|
}
|
|
int num14 = Main.rand.Next(6);
|
|
if (!NPC.downedPlantBoss)
|
|
{
|
|
num14 = 0;
|
|
}
|
|
if (num14 == 0)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 758, 1, false, -1, false);
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 771, Main.rand.Next(20, 50), false, 0, false);
|
|
}
|
|
else
|
|
{
|
|
if (num14 == 1)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1255, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
if (num14 == 2)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 788, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
if (num14 == 3)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1178, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
if (num14 == 4)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1259, 1, false, -1, false);
|
|
}
|
|
else
|
|
{
|
|
if (num14 == 5)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1155, 1, false, -1, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
NPC.downedPlantBoss = true;
|
|
}
|
|
if ((this.boss || this.type == 125 || this.type == 126) && Main.rand.Next(10) == 0)
|
|
{
|
|
if (this.type == 4)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1360, 1, false, 0, false);
|
|
}
|
|
if (this.type == 13 || this.type == 14 || this.type == 15)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1361, 1, false, 0, false);
|
|
}
|
|
if (this.type == 266)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1362, 1, false, 0, false);
|
|
}
|
|
if (this.type == 35)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1363, 1, false, 0, false);
|
|
}
|
|
if (this.type == 222)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1364, 1, false, 0, false);
|
|
}
|
|
if (this.type == 113)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1365, 1, false, 0, false);
|
|
}
|
|
if (this.type == 134)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1366, 1, false, 0, false);
|
|
}
|
|
if (this.type == 127)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1367, 1, false, 0, false);
|
|
}
|
|
if (this.type == 125)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1368, 1, false, 0, false);
|
|
}
|
|
if (this.type == 126)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1369, 1, false, 0, false);
|
|
}
|
|
if (this.type == 262)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1370, 1, false, 0, false);
|
|
}
|
|
if (this.type == 245)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 1371, 1, false, 0, false);
|
|
}
|
|
}
|
|
if (this.boss)
|
|
{
|
|
if (this.type == 4)
|
|
{
|
|
NPC.downedBoss1 = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 13 || this.type == 14 || this.type == 15)
|
|
{
|
|
NPC.downedBoss2 = true;
|
|
this.name = "Eater of Worlds";
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 35)
|
|
{
|
|
NPC.downedBoss3 = true;
|
|
this.name = "Skeletron";
|
|
}
|
|
else
|
|
{
|
|
this.name = this.displayName;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 127)
|
|
{
|
|
NPC.downedMechBoss3 = true;
|
|
NPC.downedMechBossAny = true;
|
|
}
|
|
if (this.type == 134)
|
|
{
|
|
NPC.downedMechBoss1 = true;
|
|
NPC.downedMechBossAny = true;
|
|
}
|
|
string str = this.name;
|
|
if (this.displayName != "")
|
|
{
|
|
str = this.displayName;
|
|
}
|
|
int stack7 = Main.rand.Next(5, 16);
|
|
int num15 = 28;
|
|
if (this.type == 113)
|
|
{
|
|
num15 = 188;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 222)
|
|
{
|
|
num15 = 1134;
|
|
}
|
|
else
|
|
{
|
|
if (this.type > 113 && this.type < 222)
|
|
{
|
|
num15 = 499;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 245 || this.type == 262)
|
|
{
|
|
num15 = 499;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, num15, stack7, false, 0, false);
|
|
int num16 = Main.rand.Next(5) + 5;
|
|
for (int k = 0; k < num16; k++)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 58, 1, false, 0, false);
|
|
}
|
|
if (this.type == 125 || this.type == 126)
|
|
{
|
|
NPC.downedMechBoss2 = true;
|
|
NPC.downedMechBossAny = true;
|
|
if (Main.netMode == 0)
|
|
{
|
|
Main.NewText("The Twins " + Lang.misc[17], 175, 75, 255, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.netMode == 2)
|
|
{
|
|
NetMessage.SendData(25, -1, -1, "The Twins " + Lang.misc[17], 255, 175f, 75f, 255f, 0);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.netMode == 0)
|
|
{
|
|
Main.NewText(str + " " + Lang.misc[17], 175, 75, 255, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.netMode == 2)
|
|
{
|
|
NetMessage.SendData(25, -1, -1, str + " " + Lang.misc[17], 255, 175f, 75f, 255f, 0);
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 113 && Main.netMode != 1)
|
|
{
|
|
WorldGen.StartHardmode();
|
|
}
|
|
if (Main.netMode == 2)
|
|
{
|
|
NetMessage.SendData(7, -1, -1, "", 0, 0f, 0f, 0f, 0);
|
|
}
|
|
}
|
|
if (Main.rand.Next(6) == 0 && this.lifeMax > 1 && this.damage > 0)
|
|
{
|
|
if (Main.rand.Next(2) == 0 && Main.player[(int)Player.FindClosest(this.position, this.width, this.height)].statMana < Main.player[(int)Player.FindClosest(this.position, this.width, this.height)].statManaMax)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 184, 1, false, 0, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(2) == 0 && Main.player[(int)Player.FindClosest(this.position, this.width, this.height)].statLife < Main.player[(int)Player.FindClosest(this.position, this.width, this.height)].statLifeMax)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 58, 1, false, 0, false);
|
|
}
|
|
}
|
|
}
|
|
if (Main.rand.Next(2) == 0 && this.lifeMax > 1 && this.damage > 0 && Main.player[(int)Player.FindClosest(this.position, this.width, this.height)].statMana < Main.player[(int)Player.FindClosest(this.position, this.width, this.height)].statManaMax)
|
|
{
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 184, 1, false, 0, false);
|
|
}
|
|
float num17 = this.value;
|
|
if (this.midas)
|
|
{
|
|
num17 *= 1f + (float)Main.rand.Next(10, 50) * 0.01f;
|
|
}
|
|
num17 *= 1f + (float)Main.rand.Next(-20, 21) * 0.01f;
|
|
if (Main.rand.Next(5) == 0)
|
|
{
|
|
num17 *= 1f + (float)Main.rand.Next(5, 11) * 0.01f;
|
|
}
|
|
if (Main.rand.Next(10) == 0)
|
|
{
|
|
num17 *= 1f + (float)Main.rand.Next(10, 21) * 0.01f;
|
|
}
|
|
if (Main.rand.Next(15) == 0)
|
|
{
|
|
num17 *= 1f + (float)Main.rand.Next(15, 31) * 0.01f;
|
|
}
|
|
if (Main.rand.Next(20) == 0)
|
|
{
|
|
num17 *= 1f + (float)Main.rand.Next(20, 41) * 0.01f;
|
|
}
|
|
while ((int)num17 > 0)
|
|
{
|
|
if (num17 > 1000000f)
|
|
{
|
|
int num18 = (int)(num17 / 1000000f);
|
|
if (num18 > 50 && Main.rand.Next(5) == 0)
|
|
{
|
|
num18 /= Main.rand.Next(3) + 1;
|
|
}
|
|
if (Main.rand.Next(5) == 0)
|
|
{
|
|
num18 /= Main.rand.Next(3) + 1;
|
|
}
|
|
num17 -= (float)(1000000 * num18);
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 74, num18, false, 0, false);
|
|
}
|
|
else
|
|
{
|
|
if (num17 > 10000f)
|
|
{
|
|
int num19 = (int)(num17 / 10000f);
|
|
if (num19 > 50 && Main.rand.Next(5) == 0)
|
|
{
|
|
num19 /= Main.rand.Next(3) + 1;
|
|
}
|
|
if (Main.rand.Next(5) == 0)
|
|
{
|
|
num19 /= Main.rand.Next(3) + 1;
|
|
}
|
|
num17 -= (float)(10000 * num19);
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 73, num19, false, 0, false);
|
|
}
|
|
else
|
|
{
|
|
if (num17 > 100f)
|
|
{
|
|
int num20 = (int)(num17 / 100f);
|
|
if (num20 > 50 && Main.rand.Next(5) == 0)
|
|
{
|
|
num20 /= Main.rand.Next(3) + 1;
|
|
}
|
|
if (Main.rand.Next(5) == 0)
|
|
{
|
|
num20 /= Main.rand.Next(3) + 1;
|
|
}
|
|
num17 -= (float)(100 * num20);
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 72, num20, false, 0, false);
|
|
}
|
|
else
|
|
{
|
|
int num21 = (int)num17;
|
|
if (num21 > 50 && Main.rand.Next(5) == 0)
|
|
{
|
|
num21 /= Main.rand.Next(3) + 1;
|
|
}
|
|
if (Main.rand.Next(5) == 0)
|
|
{
|
|
num21 /= Main.rand.Next(4) + 1;
|
|
}
|
|
if (num21 < 1)
|
|
{
|
|
num21 = 1;
|
|
}
|
|
num17 -= (float)num21;
|
|
Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, 71, num21, false, 0, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
public void HitEffect(int hitDirection = 0, double dmg = 10.0)
|
|
{
|
|
if (!this.active)
|
|
{
|
|
return;
|
|
}
|
|
if (this.type == 1 || this.type == 16 || this.type == 71 || this.type == 244)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num = 0;
|
|
while ((double)num < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 4, (float)hitDirection, -1f, this.alpha, this.color, 1f);
|
|
num++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for (int i = 0; i < 50; i++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 4, (float)(2 * hitDirection), -2f, this.alpha, this.color, 1f);
|
|
}
|
|
if (Main.netMode != 1 && this.type == 16)
|
|
{
|
|
int num2 = Main.rand.Next(2) + 2;
|
|
for (int j = 0; j < num2; j++)
|
|
{
|
|
int num3 = NPC.NewNPC((int)(this.position.X + (float)(this.width / 2)), (int)(this.position.Y + (float)this.height), 1, 0);
|
|
Main.npc[num3].SetDefaults("Baby Slime");
|
|
Main.npc[num3].velocity.X = this.velocity.X * 2f;
|
|
Main.npc[num3].velocity.Y = this.velocity.Y;
|
|
NPC expr_193_cp_0 = Main.npc[num3];
|
|
expr_193_cp_0.velocity.X = expr_193_cp_0.velocity.X + ((float)Main.rand.Next(-20, 20) * 0.1f + (float)(j * this.direction) * 0.3f);
|
|
NPC expr_1D1_cp_0 = Main.npc[num3];
|
|
expr_1D1_cp_0.velocity.Y = expr_1D1_cp_0.velocity.Y - ((float)Main.rand.Next(0, 10) * 0.1f + (float)j);
|
|
Main.npc[num3].ai[1] = (float)j;
|
|
if (Main.netMode == 2 && num3 < 200)
|
|
{
|
|
NetMessage.SendData(23, -1, -1, "", num3, 0f, 0f, 0f, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type >= 245 && this.type <= 249)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num4 = 0;
|
|
while ((double)num4 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 148, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num4++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 246)
|
|
{
|
|
if (Main.netMode != 1)
|
|
{
|
|
NPC.NewNPC((int)this.center().X, (int)this.position.Y + this.height, 249, this.whoAmI);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for (int k = 0; k < 50; k++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 148, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
if (this.type == 245)
|
|
{
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 368, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 370, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 368, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 370, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 368, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 370, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 360, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 361, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 362, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 363, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 364, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 367, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 366, this.scale);
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 249)
|
|
{
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 368, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 370, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 368, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 370, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 365, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 363, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 362, this.scale);
|
|
}
|
|
else
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 369, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 371, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 370, this.scale);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 288 && this.life <= 0)
|
|
{
|
|
for (int l = 0; l < 50; l++)
|
|
{
|
|
int num5 = Dust.NewDust(this.position, this.width, this.height, 180, this.velocity.X, this.velocity.Y, 0, default(Color), 1f);
|
|
Main.dust[num5].velocity *= 2f;
|
|
Main.dust[num5].noGravity = true;
|
|
Main.dust[num5].scale = 1.4f;
|
|
}
|
|
}
|
|
if (this.type == 204)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num6 = 0;
|
|
while ((double)num6 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 4, (float)hitDirection, -1f, 100, new Color(149, 208, 104), 1f);
|
|
num6++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for (int m = 0; m < 50; m++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 4, (float)(2 * hitDirection), -2f, 100, new Color(149, 208, 104), 1f);
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 225)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num7 = 0;
|
|
while ((double)num7 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 4, (float)hitDirection, -1f, 100, new Color(0, 80, 255, 100), 1f);
|
|
num7++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for (int n = 0; n < 50; n++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 4, (float)(2 * hitDirection), -2f, 100, new Color(0, 80, 255, 100), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 314, this.scale);
|
|
}
|
|
}
|
|
if (this.type == 243)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num8 = 0;
|
|
while ((double)num8 < dmg / (double)this.lifeMax * 150.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 161, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num8++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for (int num9 = 0; num9 < 200; num9++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 161, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 359, this.scale);
|
|
}
|
|
}
|
|
if ((this.type == 210 || this.type == 211) && this.life <= 0)
|
|
{
|
|
for (int num10 = 0; num10 < 6; num10++)
|
|
{
|
|
int num11 = Dust.NewDust(this.position, this.width, this.height, 150, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
Main.dust[num11].noGravity = true;
|
|
Main.dust[num11].scale = 1.5f;
|
|
}
|
|
else
|
|
{
|
|
Main.dust[num11].scale = 0.8f;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 154)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num12 = 0;
|
|
while ((double)num12 < dmg / (double)this.lifeMax * 50.0)
|
|
{
|
|
int num13 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 67, this.velocity.X, this.velocity.Y, 90, default(Color), 1.5f);
|
|
Main.dust[num13].noGravity = true;
|
|
Main.dust[num13].velocity *= 0.2f;
|
|
num12++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for (int num14 = 0; num14 < 50; num14++)
|
|
{
|
|
int num15 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 67, this.velocity.X, this.velocity.Y, 90, default(Color), 1.5f);
|
|
Main.dust[num15].noGravity = true;
|
|
Main.dust[num15].velocity *= 0.2f;
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 180, this.scale);
|
|
}
|
|
}
|
|
if (this.type == 147 || this.type == 184)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num16 = 0;
|
|
while ((double)num16 < dmg / (double)this.lifeMax * 50.0)
|
|
{
|
|
int num17 = Dust.NewDust(this.position, this.width, this.height, 76, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
Main.dust[num17].noGravity = true;
|
|
Dust.NewDust(this.position, this.width, this.height, 4, (float)hitDirection, -1f, 100, new Color(97, 200, 255, 100), 1f);
|
|
num16++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for (int num18 = 0; num18 < 30; num18++)
|
|
{
|
|
int num19 = Dust.NewDust(this.position, this.width, this.height, 76, (float)hitDirection, -2f, 0, default(Color), 1f);
|
|
Main.dust[num19].noGravity = true;
|
|
Dust.NewDust(this.position, this.width, this.height, 4, (float)hitDirection, -2f, 100, new Color(97, 200, 255, 100), 1f);
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 143 || this.type == 144 || this.type == 145)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num20 = 0;
|
|
while ((double)num20 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
int num21 = Dust.NewDust(this.position, this.width, this.height, 76, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
Main.dust[num21].noGravity = true;
|
|
num20++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for (int num22 = 0; num22 < 50; num22++)
|
|
{
|
|
int num23 = Dust.NewDust(this.position, this.width, this.height, 76, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
Main.dust[num23].noGravity = true;
|
|
Main.dust[num23].scale *= 1.2f;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 141)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num24 = 0;
|
|
while ((double)num24 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 4, (float)hitDirection, -1f, this.alpha, new Color(210, 230, 140), 1f);
|
|
num24++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for (int num25 = 0; num25 < 50; num25++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 4, (float)(2 * hitDirection), -2f, this.alpha, new Color(210, 230, 140), 1f);
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 112)
|
|
{
|
|
for (int num26 = 0; num26 < 20; num26++)
|
|
{
|
|
int num27 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + 2f), this.width, this.height, 18, 0f, 0f, 100, default(Color), 2f);
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
Main.dust[num27].scale *= 0.6f;
|
|
}
|
|
else
|
|
{
|
|
Main.dust[num27].velocity *= 1.4f;
|
|
Main.dust[num27].noGravity = true;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 183)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num28 = 0;
|
|
while ((double)num28 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 136, 0f, 0f, this.alpha, this.color, 1f);
|
|
num28++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for (int num29 = 0; num29 < 50; num29++)
|
|
{
|
|
int num30 = Dust.NewDust(this.position, this.width, this.height, 136, (float)hitDirection, 0f, this.alpha, this.color, 1f);
|
|
Main.dust[num30].velocity *= 2f;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 81 || this.type == 121)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num31 = 0;
|
|
while ((double)num31 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 14, 0f, 0f, this.alpha, this.color, 1f);
|
|
num31++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for (int num32 = 0; num32 < 50; num32++)
|
|
{
|
|
int num33 = Dust.NewDust(this.position, this.width, this.height, 14, (float)hitDirection, 0f, this.alpha, this.color, 1f);
|
|
Main.dust[num33].velocity *= 2f;
|
|
}
|
|
if (Main.netMode != 1)
|
|
{
|
|
if (this.type == 121)
|
|
{
|
|
int num34 = NPC.NewNPC((int)(this.position.X + (float)(this.width / 2)), (int)(this.position.Y + (float)this.height), 81, 0);
|
|
Main.npc[num34].SetDefaults("Slimer2");
|
|
Main.npc[num34].velocity.X = this.velocity.X;
|
|
Main.npc[num34].velocity.Y = this.velocity.Y;
|
|
Gore.NewGore(this.position, this.velocity, 94, this.scale);
|
|
if (Main.netMode == 2 && num34 < 200)
|
|
{
|
|
NetMessage.SendData(23, -1, -1, "", num34, 0f, 0f, 0f, 0);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.scale >= 1f)
|
|
{
|
|
int num35 = Main.rand.Next(2) + 2;
|
|
for (int num36 = 0; num36 < num35; num36++)
|
|
{
|
|
int num37 = NPC.NewNPC((int)(this.position.X + (float)(this.width / 2)), (int)(this.position.Y + (float)this.height), 1, 0);
|
|
Main.npc[num37].SetDefaults("Slimeling");
|
|
Main.npc[num37].velocity.X = this.velocity.X * 3f;
|
|
Main.npc[num37].velocity.Y = this.velocity.Y;
|
|
NPC expr_1545_cp_0 = Main.npc[num37];
|
|
expr_1545_cp_0.velocity.X = expr_1545_cp_0.velocity.X + ((float)Main.rand.Next(-10, 10) * 0.1f + (float)(num36 * this.direction) * 0.3f);
|
|
NPC expr_1584_cp_0 = Main.npc[num37];
|
|
expr_1584_cp_0.velocity.Y = expr_1584_cp_0.velocity.Y - ((float)Main.rand.Next(0, 10) * 0.1f + (float)num36);
|
|
Main.npc[num37].ai[1] = (float)num36;
|
|
if (Main.netMode == 2 && num37 < 200)
|
|
{
|
|
NetMessage.SendData(23, -1, -1, "", num37, 0f, 0f, 0f, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 120 || this.type == 137 || this.type == 138)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num38 = 0;
|
|
while ((double)num38 < dmg / (double)this.lifeMax * 50.0)
|
|
{
|
|
int num39 = Dust.NewDust(this.position, this.width, this.height, 71, 0f, 0f, 200, default(Color), 1f);
|
|
Main.dust[num39].velocity *= 1.5f;
|
|
num38++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for (int num40 = 0; num40 < 50; num40++)
|
|
{
|
|
int num41 = Dust.NewDust(this.position, this.width, this.height, 71, (float)hitDirection, 0f, 200, default(Color), 1f);
|
|
Main.dust[num41].velocity *= 1.5f;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 122)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num42 = 0;
|
|
while ((double)num42 < dmg / (double)this.lifeMax * 50.0)
|
|
{
|
|
int num43 = Dust.NewDust(this.position, this.width, this.height, 72, 0f, 0f, 200, default(Color), 1f);
|
|
Main.dust[num43].velocity *= 1.5f;
|
|
num42++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for (int num44 = 0; num44 < 50; num44++)
|
|
{
|
|
int num45 = Dust.NewDust(this.position, this.width, this.height, 72, (float)hitDirection, 0f, 200, default(Color), 1f);
|
|
Main.dust[num45].velocity *= 1.5f;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 75)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num46 = 0;
|
|
while ((double)num46 < dmg / (double)this.lifeMax * 50.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 55, 0f, 0f, 200, this.color, 1f);
|
|
num46++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for (int num47 = 0; num47 < 50; num47++)
|
|
{
|
|
int num48 = Dust.NewDust(this.position, this.width, this.height, 55, (float)hitDirection, 0f, 200, this.color, 1f);
|
|
Main.dust[num48].velocity *= 2f;
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 63 || this.type == 64 || this.type == 103)
|
|
{
|
|
Color newColor = new Color(50, 120, 255, 100);
|
|
if (this.type == 64)
|
|
{
|
|
newColor = new Color(225, 70, 140, 100);
|
|
}
|
|
if (this.type == 103)
|
|
{
|
|
newColor = new Color(70, 225, 140, 100);
|
|
}
|
|
if (this.life > 0)
|
|
{
|
|
int num49 = 0;
|
|
while ((double)num49 < dmg / (double)this.lifeMax * 50.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 4, (float)hitDirection, -1f, 0, newColor, 1f);
|
|
num49++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num50 = 0; num50 < 25; num50++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 4, (float)(2 * hitDirection), -2f, 0, newColor, 1f);
|
|
}
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type != 59 && this.type != 60 && this.type != 151)
|
|
{
|
|
if (this.type == 50)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num51 = 0;
|
|
while ((double)num51 < dmg / (double)this.lifeMax * 300.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 4, (float)hitDirection, -1f, 175, new Color(0, 80, 255, 100), 1f);
|
|
num51++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num52 = 0; num52 < 200; num52++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 4, (float)(2 * hitDirection), -2f, 175, new Color(0, 80, 255, 100), 1f);
|
|
}
|
|
if (Main.netMode != 1)
|
|
{
|
|
int num53 = Main.rand.Next(4) + 4;
|
|
for (int num54 = 0; num54 < num53; num54++)
|
|
{
|
|
int x = (int)(this.position.X + (float)Main.rand.Next(this.width - 32));
|
|
int y = (int)(this.position.Y + (float)Main.rand.Next(this.height - 32));
|
|
int num55 = NPC.NewNPC(x, y, 1, 0);
|
|
Main.npc[num55].SetDefaults(1, -1f);
|
|
Main.npc[num55].velocity.X = (float)Main.rand.Next(-15, 16) * 0.1f;
|
|
Main.npc[num55].velocity.Y = (float)Main.rand.Next(-30, 1) * 0.1f;
|
|
Main.npc[num55].ai[1] = (float)Main.rand.Next(3);
|
|
if (Main.netMode == 2 && num55 < 200)
|
|
{
|
|
NetMessage.SendData(23, -1, -1, "", num55, 0f, 0f, 0f, 0);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 153)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num56 = 0;
|
|
while ((double)num56 < dmg / (double)this.lifeMax * 30.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num56++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num57 = 0; num57 < 15; num57++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 177, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 178, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 179, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 179, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 177)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num58 = 0;
|
|
while ((double)num58 < dmg / (double)this.lifeMax * 30.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num58++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num59 = 0; num59 < 15; num59++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 234, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 235, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 236, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 236, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 49 || this.type == 51 || this.type == 93 || this.type == 150 || this.type == 152 || this.type == 226)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num60 = 0;
|
|
while ((double)num60 < dmg / (double)this.lifeMax * 30.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num60++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num61 = 0; num61 < 15; num61++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
if (this.type == 51)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 83, 1f);
|
|
return;
|
|
}
|
|
if (this.type == 93)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 107, 1f);
|
|
return;
|
|
}
|
|
if (this.type == 150)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 164, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 165, 1f);
|
|
return;
|
|
}
|
|
if (this.type == 152)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 175, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 176, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 176, 1f);
|
|
return;
|
|
}
|
|
if (this.type == 226)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 317, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 318, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 318, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 319, 1f);
|
|
return;
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 82, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 46 || this.type == 55 || this.type == 67 || this.type == 74 || this.type == 102 || this.type == 224 || this.type == 230 || this.type == 297 || this.type == 298 || this.type == 299 || this.type == 300)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num62 = 0;
|
|
while ((double)num62 < dmg / (double)this.lifeMax * 20.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num62++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num63 = 0; num63 < 10; num63++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
if (this.type == 46)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 76, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y), this.velocity, 77, 1f);
|
|
return;
|
|
}
|
|
if (this.type == 67)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 95, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 95, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 96, 1f);
|
|
return;
|
|
}
|
|
if (this.type == 74)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 100, 1f);
|
|
return;
|
|
}
|
|
if (this.type == 297)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 431, 1f);
|
|
return;
|
|
}
|
|
if (this.type == 298)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 432, 1f);
|
|
return;
|
|
}
|
|
if (this.type == 299)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 433, 1f);
|
|
return;
|
|
}
|
|
if (this.type == 300)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 434, 1f);
|
|
return;
|
|
}
|
|
if (this.type == 102)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 116, 1f);
|
|
return;
|
|
}
|
|
if (this.type == 224)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 312, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 313, 1f);
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 148 || this.type == 149 || this.type == 168)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num64 = 0;
|
|
while ((double)num64 < dmg / (double)this.lifeMax * 20.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num64++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num65 = 0; num65 < 10; num65++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
if (this.type == 148)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 160, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y), this.velocity, 161, 1f);
|
|
return;
|
|
}
|
|
if (this.type == 149)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 162, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y), this.velocity, 163, 1f);
|
|
return;
|
|
}
|
|
if (this.type == 168)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 215, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y), this.velocity, 216, 1f);
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 47 || this.type == 57 || this.type == 58)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num66 = 0;
|
|
while ((double)num66 < dmg / (double)this.lifeMax * 20.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num66++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num67 = 0; num67 < 10; num67++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
if (this.type == 57)
|
|
{
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y), this.velocity, 84, 1f);
|
|
return;
|
|
}
|
|
if (this.type == 58)
|
|
{
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y), this.velocity, 85, 1f);
|
|
return;
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 78, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y), this.velocity, 79, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 173 || this.type == 174 || this.type == 181 || this.type == 182 || this.type == 268)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num68 = 0;
|
|
while ((double)num68 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, this.alpha, default(Color), 1f);
|
|
num68++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num69 = 0; num69 < 50; num69++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -2f, this.alpha, default(Color), 1f);
|
|
}
|
|
if (this.type == 173)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 223, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 224, 1f);
|
|
return;
|
|
}
|
|
if (this.type == 174)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 225, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 226, 1f);
|
|
return;
|
|
}
|
|
if (this.type == 181)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 237, 1f);
|
|
return;
|
|
}
|
|
if (this.type == 182)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 238, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 239, 1f);
|
|
return;
|
|
}
|
|
if (this.type == 268)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 403, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 404, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 405, 1f);
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 2 || this.type == 190 || this.type == 191 || this.type == 192 || this.type == 193 || this.type == 194)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num70 = 0;
|
|
while ((double)num70 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num70++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num71 = 0; num71 < 50; num71++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
if (this.type == 190)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 249, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + 14f, this.position.Y), this.velocity, 2, this.scale);
|
|
return;
|
|
}
|
|
if (this.type == 191)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 248, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + 14f, this.position.Y), this.velocity, 2, this.scale);
|
|
return;
|
|
}
|
|
if (this.type == 192)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 247, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + 14f, this.position.Y), this.velocity, 2, this.scale);
|
|
return;
|
|
}
|
|
if (this.type == 193)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 252, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + 14f, this.position.Y), this.velocity, 253, this.scale);
|
|
return;
|
|
}
|
|
if (this.type == 194)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 250, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + 14f, this.position.Y), this.velocity, 251, this.scale);
|
|
return;
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 1, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + 14f, this.position.Y), this.velocity, 2, this.scale);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 157)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num72 = 0;
|
|
while ((double)num72 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num72++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num73 = 0; num73 < 50; num73++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 186, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X + 14f, this.position.Y), this.velocity, 187, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 133)
|
|
{
|
|
if (this.life <= 0)
|
|
{
|
|
for (int num74 = 0; num74 < 50; num74++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 155, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 14f), this.velocity, 155, 1f);
|
|
return;
|
|
}
|
|
int num75 = 0;
|
|
while ((double)num75 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num75++;
|
|
}
|
|
if ((float)this.life < (float)this.lifeMax * 0.5f && this.localAI[0] == 0f)
|
|
{
|
|
this.localAI[0] = 1f;
|
|
Gore.NewGore(this.position, this.velocity, 1, 1f);
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 69)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num76 = 0;
|
|
while ((double)num76 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num76++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num77 = 0; num77 < 50; num77++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 97, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 98, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 61)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num78 = 0;
|
|
while ((double)num78 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num78++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num79 = 0; num79 < 50; num79++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 86, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X + 14f, this.position.Y), this.velocity, 87, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X + 14f, this.position.Y), this.velocity, 88, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 252)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num80 = 0;
|
|
while ((double)num80 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num80++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num81 = 0; num81 < 50; num81++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 373, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 374, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 65)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num82 = 0;
|
|
while ((double)num82 < dmg / (double)this.lifeMax * 150.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num82++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num83 = 0; num83 < 75; num83++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity * 0.8f, 89, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X + 14f, this.position.Y), this.velocity * 0.8f, 90, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X + 14f, this.position.Y), this.velocity * 0.8f, 91, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X + 14f, this.position.Y), this.velocity * 0.8f, 92, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 195 || this.type == 196)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num84 = 0;
|
|
while ((double)num84 < dmg / (double)this.lifeMax * 150.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num84++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num85 = 0; num85 < 75; num85++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 254, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 255, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 255, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 256, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 256, this.scale);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 198 || this.type == 199)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num86 = 0;
|
|
while ((double)num86 < dmg / (double)this.lifeMax * 150.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num86++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num87 = 0; num87 < 75; num87++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 258, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 259, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 259, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 260, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 260, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 261, this.scale);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 206)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num88 = 0;
|
|
while ((double)num88 < dmg / (double)this.lifeMax * 150.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 137, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num88++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num89 = 0; num89 < 75; num89++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 137, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 273, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 274, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 274, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 275, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 275, this.scale);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 3 || this.type == 52 || this.type == 53 || this.type == 104 || this.type == 109 || this.type == 132 || this.type == 161 || this.type == 162 || this.type == 186 || this.type == 187 || this.type == 188 || this.type == 189 || this.type == 200 || this.type == 223 || this.type == 251)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num90 = 0;
|
|
while ((double)num90 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num90++;
|
|
}
|
|
if (this.type == 186 && Main.rand.Next(5) == 0)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 242, 1f);
|
|
}
|
|
if (this.type == 187)
|
|
{
|
|
int num91 = 0;
|
|
while ((double)num91 < dmg / (double)this.lifeMax * 200.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, 24, 4, (float)hitDirection, -1f, 125, new Color(0, 80, 255, 100), 1f);
|
|
num91++;
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for (int num92 = 0; num92 < 50; num92++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
if (this.type == 187)
|
|
{
|
|
for (int num93 = 0; num93 < 25; num93++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, 24, 4, (float)hitDirection, -1f, 125, new Color(0, 80, 255, 100), 1f);
|
|
}
|
|
}
|
|
if (this.type == 104)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 117, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 118, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 118, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 119, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 119, this.scale);
|
|
return;
|
|
}
|
|
if (this.type == 109)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 121, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 122, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 122, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 123, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 123, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 46f), this.velocity, 120, this.scale);
|
|
return;
|
|
}
|
|
if (this.type == 161)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 191, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 192, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 192, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 193, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 193, this.scale);
|
|
return;
|
|
}
|
|
if (this.type == 162)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 194, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 195, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 195, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 196, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 196, this.scale);
|
|
return;
|
|
}
|
|
if (this.type == 188)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 243, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 244, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 244, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 245, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 245, this.scale);
|
|
return;
|
|
}
|
|
if (this.type == 200)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 262, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 263, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 263, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 264, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 264, this.scale);
|
|
return;
|
|
}
|
|
if (this.type == 223)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 309, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 310, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 310, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 311, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 311, this.scale);
|
|
return;
|
|
}
|
|
if (this.type == 132)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 154, 1f);
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 186)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 241, 1f);
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 189)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 246, 1f);
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 251)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 372, 1f);
|
|
}
|
|
else
|
|
{
|
|
if (this.type != 187)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 3, 1f);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 4, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 4, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 5, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 5, 1f);
|
|
if (this.type == 186)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 242, 1f);
|
|
}
|
|
if (this.type == 186 && Main.rand.Next(2) == 0)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 242, 1f);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 83 || this.type == 84 || this.type == 179)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num94 = 0;
|
|
while ((double)num94 < dmg / (double)this.lifeMax * 50.0)
|
|
{
|
|
int num95 = Dust.NewDust(this.position, this.width, this.height, 31, 0f, 0f, 0, default(Color), 1.5f);
|
|
Main.dust[num95].noGravity = true;
|
|
num94++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num96 = 0; num96 < 20; num96++)
|
|
{
|
|
int num97 = Dust.NewDust(this.position, this.width, this.height, 31, 0f, 0f, 0, default(Color), 1.5f);
|
|
Main.dust[num97].velocity *= 2f;
|
|
Main.dust[num97].noGravity = true;
|
|
}
|
|
int num98 = Gore.NewGore(new Vector2(this.position.X, this.position.Y + (float)(this.height / 2) - 10f), new Vector2((float)Main.rand.Next(-2, 3), (float)Main.rand.Next(-2, 3)), 61, this.scale);
|
|
Main.gore[num98].velocity *= 0.5f;
|
|
num98 = Gore.NewGore(new Vector2(this.position.X, this.position.Y + (float)(this.height / 2) - 10f), new Vector2((float)Main.rand.Next(-2, 3), (float)Main.rand.Next(-2, 3)), 61, this.scale);
|
|
Main.gore[num98].velocity *= 0.5f;
|
|
num98 = Gore.NewGore(new Vector2(this.position.X, this.position.Y + (float)(this.height / 2) - 10f), new Vector2((float)Main.rand.Next(-2, 3), (float)Main.rand.Next(-2, 3)), 61, this.scale);
|
|
Main.gore[num98].velocity *= 0.5f;
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 262 || this.type == 263 || this.type == 264)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num99 = 0;
|
|
while ((double)num99 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
if (this.type == 262 && this.life > this.lifeMax / 2 && Main.rand.Next(3) != 0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 166, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 265 && Main.rand.Next(3) != 0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 166, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
}
|
|
else
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 167, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
}
|
|
}
|
|
num99++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num100 = 0; num100 < 150; num100++)
|
|
{
|
|
if (this.type == 265 && Main.rand.Next(3) != 0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 166, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
else
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 167, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
}
|
|
if (this.type == 262)
|
|
{
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 381, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 382, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 383, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 384, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 385, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 386, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 386, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 387, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 387, this.scale);
|
|
}
|
|
if (this.type == 263)
|
|
{
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 390, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 391, this.scale);
|
|
}
|
|
if (this.type == 264)
|
|
{
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 388, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + (float)Main.rand.Next(this.width), this.position.Y + (float)Main.rand.Next(this.height)), this.velocity, 389, this.scale);
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 265)
|
|
{
|
|
if (this.life < 0)
|
|
{
|
|
for (int num101 = 0; num101 < 15; num101++)
|
|
{
|
|
if (Main.rand.Next(3) != 0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 166, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
}
|
|
else
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 167, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 266)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num102 = 0;
|
|
while ((double)num102 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num102++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num103 = 0; num103 < 150; num103++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, new Vector2((float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f), 396, 1f);
|
|
Gore.NewGore(this.position, new Vector2((float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f), 397, 1f);
|
|
Gore.NewGore(this.position, new Vector2((float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f), 398, 1f);
|
|
Gore.NewGore(this.position, new Vector2((float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f), 399, 1f);
|
|
Gore.NewGore(this.position, new Vector2((float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f), 400, 1f);
|
|
Gore.NewGore(this.position, new Vector2((float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f), 401, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 267)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num104 = 0;
|
|
while ((double)num104 < dmg / (double)this.lifeMax * 50.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num104++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num105 = 0; num105 < 20; num105++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 402, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 4 || this.type == 126 || this.type == 125)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num106 = 0;
|
|
while ((double)num106 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num106++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num107 = 0; num107 < 150; num107++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
for (int num108 = 0; num108 < 2; num108++)
|
|
{
|
|
Gore.NewGore(this.position, new Vector2((float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f), 2, 1f);
|
|
Gore.NewGore(this.position, new Vector2((float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f), 7, 1f);
|
|
Gore.NewGore(this.position, new Vector2((float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f), 9, 1f);
|
|
if (this.type == 4)
|
|
{
|
|
Gore.NewGore(this.position, new Vector2((float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f), 10, 1f);
|
|
Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0);
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 125)
|
|
{
|
|
Gore.NewGore(this.position, new Vector2((float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f), 146, 1f);
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 126)
|
|
{
|
|
Gore.NewGore(this.position, new Vector2((float)Main.rand.Next(-30, 31) * 0.2f, (float)Main.rand.Next(-30, 31) * 0.2f), 145, 1f);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.type == 125 || this.type == 126)
|
|
{
|
|
for (int num109 = 0; num109 < 10; num109++)
|
|
{
|
|
int num110 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 31, 0f, 0f, 100, default(Color), 1.5f);
|
|
Main.dust[num110].velocity *= 1.4f;
|
|
}
|
|
for (int num111 = 0; num111 < 5; num111++)
|
|
{
|
|
int num112 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 6, 0f, 0f, 100, default(Color), 2.5f);
|
|
Main.dust[num112].noGravity = true;
|
|
Main.dust[num112].velocity *= 5f;
|
|
num112 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 6, 0f, 0f, 100, default(Color), 1.5f);
|
|
Main.dust[num112].velocity *= 3f;
|
|
}
|
|
int num113 = Gore.NewGore(new Vector2(this.position.X, this.position.Y), default(Vector2), Main.rand.Next(61, 64), 1f);
|
|
Main.gore[num113].velocity *= 0.4f;
|
|
Gore expr_575D_cp_0 = Main.gore[num113];
|
|
expr_575D_cp_0.velocity.X = expr_575D_cp_0.velocity.X + 1f;
|
|
Gore expr_577B_cp_0 = Main.gore[num113];
|
|
expr_577B_cp_0.velocity.Y = expr_577B_cp_0.velocity.Y + 1f;
|
|
num113 = Gore.NewGore(new Vector2(this.position.X, this.position.Y), default(Vector2), Main.rand.Next(61, 64), 1f);
|
|
Main.gore[num113].velocity *= 0.4f;
|
|
Gore expr_57F9_cp_0 = Main.gore[num113];
|
|
expr_57F9_cp_0.velocity.X = expr_57F9_cp_0.velocity.X - 1f;
|
|
Gore expr_5817_cp_0 = Main.gore[num113];
|
|
expr_5817_cp_0.velocity.Y = expr_5817_cp_0.velocity.Y + 1f;
|
|
num113 = Gore.NewGore(new Vector2(this.position.X, this.position.Y), default(Vector2), Main.rand.Next(61, 64), 1f);
|
|
Main.gore[num113].velocity *= 0.4f;
|
|
Gore expr_5895_cp_0 = Main.gore[num113];
|
|
expr_5895_cp_0.velocity.X = expr_5895_cp_0.velocity.X + 1f;
|
|
Gore expr_58B3_cp_0 = Main.gore[num113];
|
|
expr_58B3_cp_0.velocity.Y = expr_58B3_cp_0.velocity.Y - 1f;
|
|
num113 = Gore.NewGore(new Vector2(this.position.X, this.position.Y), default(Vector2), Main.rand.Next(61, 64), 1f);
|
|
Main.gore[num113].velocity *= 0.4f;
|
|
Gore expr_5931_cp_0 = Main.gore[num113];
|
|
expr_5931_cp_0.velocity.X = expr_5931_cp_0.velocity.X - 1f;
|
|
Gore expr_594F_cp_0 = Main.gore[num113];
|
|
expr_594F_cp_0.velocity.Y = expr_594F_cp_0.velocity.Y - 1f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 5)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num114 = 0;
|
|
while ((double)num114 < dmg / (double)this.lifeMax * 50.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num114++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num115 = 0; num115 < 20; num115++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 6, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 7, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 113 || this.type == 114)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
for (int num116 = 0; num116 < 20; num116++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
}
|
|
return;
|
|
}
|
|
for (int num117 = 0; num117 < 50; num117++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -1f, 0, default(Color), 1f);
|
|
}
|
|
if (this.type == 114)
|
|
{
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y), this.velocity, 137, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + (float)(this.height / 2)), this.velocity, 139, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + (float)(this.width / 2), this.position.Y), this.velocity, 139, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + (float)(this.width / 2), this.position.Y + (float)(this.height / 2)), this.velocity, 137, this.scale);
|
|
return;
|
|
}
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y), this.velocity, 137, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + (float)(this.height / 2)), this.velocity, 138, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + (float)(this.width / 2), this.position.Y), this.velocity, 138, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X + (float)(this.width / 2), this.position.Y + (float)(this.height / 2)), this.velocity, 137, this.scale);
|
|
if (Main.player[Main.myPlayer].position.Y / 16f > (float)(Main.maxTilesY - 250))
|
|
{
|
|
int num118 = (int)Main.screenPosition.Y;
|
|
int num119 = num118 + Main.screenWidth;
|
|
int num120 = (int)this.position.X;
|
|
if (this.direction > 0)
|
|
{
|
|
num120 -= 80;
|
|
}
|
|
int num121 = num120 + 140;
|
|
int num122 = num120;
|
|
for (int num123 = num118; num123 < num119; num123 += 50)
|
|
{
|
|
while (num122 < num121)
|
|
{
|
|
for (int num124 = 0; num124 < 5; num124++)
|
|
{
|
|
Dust.NewDust(new Vector2((float)num122, (float)num123), 32, 32, 5, (float)Main.rand.Next(-60, 61) * 0.1f, (float)Main.rand.Next(-60, 61) * 0.1f, 0, default(Color), 1f);
|
|
}
|
|
Vector2 vector = new Vector2((float)Main.rand.Next(-80, 81) * 0.1f, (float)Main.rand.Next(-60, 21) * 0.1f);
|
|
Gore.NewGore(new Vector2((float)num122, (float)num123), vector, Main.rand.Next(140, 143), 1f);
|
|
num122 += 46;
|
|
}
|
|
num122 = num120;
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 115 || this.type == 116)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
for (int num125 = 0; num125 < 5; num125++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
}
|
|
return;
|
|
}
|
|
if (this.type == 115 && Main.netMode != 1)
|
|
{
|
|
NPC.NewNPC((int)(this.position.X + (float)(this.width / 2)), (int)(this.position.Y + (float)this.height), 116, 0);
|
|
for (int num126 = 0; num126 < 10; num126++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
}
|
|
return;
|
|
}
|
|
for (int num127 = 0; num127 < 20; num127++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 132, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 133, this.scale);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type >= 117 && this.type <= 119)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
for (int num128 = 0; num128 < 5; num128++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
}
|
|
return;
|
|
}
|
|
for (int num129 = 0; num129 < 10; num129++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 134 + this.type - 117, this.scale);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 217 || this.type == 218 || this.type == 219)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num130 = 0;
|
|
while ((double)num130 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 18, (float)hitDirection, -1f, this.alpha, this.color, this.scale);
|
|
num130++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num131 = 0; num131 < 50; num131++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 18, (float)hitDirection, -2f, this.alpha, this.color, this.scale);
|
|
}
|
|
if (this.type == 217)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 292, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 293, this.scale);
|
|
}
|
|
if (this.type == 218)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 295, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 296, this.scale);
|
|
}
|
|
if (this.type == 219)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 294, this.scale);
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 222)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num132 = 0;
|
|
while ((double)num132 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 18, (float)hitDirection, -1f, this.alpha, this.color, this.scale);
|
|
num132++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num133 = 0; num133 < 50; num133++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 18, (float)hitDirection, -2f, this.alpha, this.color, this.scale);
|
|
}
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y - 35f), this.velocity, 303, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y - 45f), this.velocity, 304, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y), this.velocity, 305, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 306, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 10f), this.velocity, 307, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y - 10f), this.velocity, 308, this.scale);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 6 || this.type == 94 || this.type == 166)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num134 = 0;
|
|
while ((double)num134 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 18, (float)hitDirection, -1f, this.alpha, this.color, this.scale);
|
|
num134++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num135 = 0; num135 < 50; num135++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 18, (float)hitDirection, -2f, this.alpha, this.color, this.scale);
|
|
}
|
|
int num136;
|
|
if (this.type == 94)
|
|
{
|
|
num136 = Gore.NewGore(this.position, this.velocity, 108, this.scale);
|
|
num136 = Gore.NewGore(this.position, this.velocity, 108, this.scale);
|
|
num136 = Gore.NewGore(this.position, this.velocity, 109, this.scale);
|
|
num136 = Gore.NewGore(this.position, this.velocity, 110, this.scale);
|
|
return;
|
|
}
|
|
if (this.type == 166)
|
|
{
|
|
num136 = Gore.NewGore(this.position, this.velocity, 209, this.scale);
|
|
num136 = Gore.NewGore(this.position, this.velocity, 210, this.scale);
|
|
num136 = Gore.NewGore(this.position, this.velocity, 211, this.scale);
|
|
return;
|
|
}
|
|
num136 = Gore.NewGore(this.position, this.velocity, 14, this.scale);
|
|
Main.gore[num136].alpha = this.alpha;
|
|
num136 = Gore.NewGore(this.position, this.velocity, 15, this.scale);
|
|
Main.gore[num136].alpha = this.alpha;
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 101)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num137 = 0;
|
|
while ((double)num137 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 18, (float)hitDirection, -1f, this.alpha, this.color, this.scale);
|
|
num137++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num138 = 0; num138 < 50; num138++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 18, (float)hitDirection, -2f, this.alpha, this.color, this.scale);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 110, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 114, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 114, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 115, this.scale);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 7 || this.type == 8 || this.type == 9)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num139 = 0;
|
|
while ((double)num139 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 18, (float)hitDirection, -1f, this.alpha, this.color, this.scale);
|
|
num139++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num140 = 0; num140 < 50; num140++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 18, (float)hitDirection, -2f, this.alpha, this.color, this.scale);
|
|
}
|
|
int num141 = Gore.NewGore(this.position, this.velocity, this.type - 7 + 18, 1f);
|
|
Main.gore[num141].alpha = this.alpha;
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 98 || this.type == 99 || this.type == 100)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num142 = 0;
|
|
while ((double)num142 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 18, (float)hitDirection, -1f, this.alpha, this.color, this.scale);
|
|
num142++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num143 = 0; num143 < 50; num143++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 18, (float)hitDirection, -2f, this.alpha, this.color, this.scale);
|
|
}
|
|
int num144 = Gore.NewGore(this.position, this.velocity, 110, 1f);
|
|
Main.gore[num144].alpha = this.alpha;
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 10 || this.type == 11 || this.type == 12)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num145 = 0;
|
|
while ((double)num145 < dmg / (double)this.lifeMax * 50.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num145++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num146 = 0; num146 < 10; num146++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, this.type - 7 + 18, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 95 || this.type == 96 || this.type == 97)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num147 = 0;
|
|
while ((double)num147 < dmg / (double)this.lifeMax * 50.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num147++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num148 = 0; num148 < 10; num148++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, this.type - 95 + 111, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 13 || this.type == 14 || this.type == 15)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num149 = 0;
|
|
while ((double)num149 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 18, (float)hitDirection, -1f, this.alpha, this.color, this.scale);
|
|
num149++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num150 = 0; num150 < 50; num150++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 18, (float)hitDirection, -2f, this.alpha, this.color, this.scale);
|
|
}
|
|
if (this.type == 13)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 24, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 25, 1f);
|
|
return;
|
|
}
|
|
if (this.type == 14)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 26, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 27, 1f);
|
|
return;
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 28, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 29, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 17)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num151 = 0;
|
|
while ((double)num151 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num151++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num152 = 0; num152 < 50; num152++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 30, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 31, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 31, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 32, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 32, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 86)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num153 = 0;
|
|
while ((double)num153 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num153++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num154 = 0; num154 < 50; num154++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 101, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 102, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 103, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 103, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 104, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 104, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 105, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 155)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num155 = 0;
|
|
while ((double)num155 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num155++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num156 = 0; num156 < 50; num156++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 181, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 182, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 183, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 183, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 163 || this.type == 238)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num157 = 0;
|
|
while ((double)num157 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 18, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num157++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num158 = 0; num158 < 50; num158++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 18, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 205, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 206, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 206, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 206, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 206, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 164 || this.type == 165)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num159 = 0;
|
|
while ((double)num159 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 18, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num159++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num160 = 0; num160 < 50; num160++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 18, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 207, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 208, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 208, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 208, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 208, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 239 || this.type == 240)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num161 = 0;
|
|
while ((double)num161 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num161++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num162 = 0; num162 < 50; num162++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 351, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 352, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 352, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 353, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 353, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 236 || this.type == 237)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num163 = 0;
|
|
while ((double)num163 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 18, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num163++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num164 = 0; num164 < 50; num164++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 18, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 332, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 333, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 334, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 335, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 335, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 241)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num165 = 0;
|
|
while ((double)num165 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num165++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num166 = 0; num166 < 50; num166++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 354, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 355, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 242)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num167 = 0;
|
|
while ((double)num167 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num167++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num168 = 0; num168 < 50; num168++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 356, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 357, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 357, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 358, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 358, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type >= 105 && this.type <= 108)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num169 = 0;
|
|
while ((double)num169 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num169++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num170 = 0; num170 < 50; num170++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
if (this.type == 105 || this.type == 107)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 124, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 125, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 125, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 126, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 126, 1f);
|
|
return;
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 127, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 128, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 128, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 129, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 129, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 123 || this.type == 124)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num171 = 0;
|
|
while ((double)num171 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num171++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num172 = 0; num172 < 50; num172++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 151, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 152, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 152, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 153, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 153, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 22)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num173 = 0;
|
|
while ((double)num173 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num173++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num174 = 0; num174 < 50; num174++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 73, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 74, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 74, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 75, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 75, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 227)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num175 = 0;
|
|
while ((double)num175 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num175++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num176 = 0; num176 < 50; num176++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 320, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 321, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 322, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 323, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 323, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 228)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num177 = 0;
|
|
while ((double)num177 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num177++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num178 = 0; num178 < 50; num178++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 324, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 325, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 326, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 327, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 327, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 229)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num179 = 0;
|
|
while ((double)num179 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num179++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num180 = 0; num180 < 50; num180++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 328, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 329, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 329, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 330, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 330, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 142)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num181 = 0;
|
|
while ((double)num181 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num181++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num182 = 0; num182 < 50; num182++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 157, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 158, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 158, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 159, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 159, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 178)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num183 = 0;
|
|
while ((double)num183 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num183++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num184 = 0; num184 < 50; num184++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 231, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 232, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 232, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 233, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 37 || this.type == 54)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num185 = 0;
|
|
while ((double)num185 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num185++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num186 = 0; num186 < 50; num186++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 58, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 59, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 59, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 60, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 60, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 160)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num187 = 0;
|
|
while ((double)num187 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 26, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num187++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num188 = 0; num188 < 50; num188++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 26, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 188, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 189, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 189, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 190, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 190, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 18)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num189 = 0;
|
|
while ((double)num189 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num189++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num190 = 0; num190 < 50; num190++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 33, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 34, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 34, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 35, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 35, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 19)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num191 = 0;
|
|
while ((double)num191 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num191++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num192 = 0; num192 < 50; num192++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 36, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 37, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 37, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 38, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 38, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 38)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num193 = 0;
|
|
while ((double)num193 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num193++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num194 = 0; num194 < 50; num194++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 64, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 65, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 65, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 66, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 66, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 20)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num195 = 0;
|
|
while ((double)num195 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num195++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num196 = 0; num196 < 50; num196++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 39, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 40, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 40, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 41, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 41, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 207)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num197 = 0;
|
|
while ((double)num197 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num197++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num198 = 0; num198 < 50; num198++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 283, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 284, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 284, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 285, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 285, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 208)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num199 = 0;
|
|
while ((double)num199 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num199++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num200 = 0; num200 < 50; num200++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 286, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 287, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 287, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 288, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 288, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 209)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num201 = 0;
|
|
while ((double)num201 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num201++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num202 = 0; num202 < 50; num202++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 289, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 290, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 290, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 291, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 291, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type >= 212 && this.type <= 216)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num203 = 0;
|
|
while ((double)num203 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num203++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num204 = 0; num204 < 50; num204++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
if (this.type == 212)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 336, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 337, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 337, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 338, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 338, 1f);
|
|
return;
|
|
}
|
|
if (this.type == 213)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 339, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 340, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 340, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 341, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 341, 1f);
|
|
return;
|
|
}
|
|
if (this.type == 214)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 342, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 343, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 343, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 344, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 344, 1f);
|
|
return;
|
|
}
|
|
if (this.type == 215)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 345, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 346, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 346, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 347, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 347, 1f);
|
|
return;
|
|
}
|
|
if (this.type == 216)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 348, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 348, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 348, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 348, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 348, 1f);
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 220 || this.type == 221)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num205 = 0;
|
|
while ((double)num205 < dmg / (double)this.lifeMax * 50.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 151, (float)hitDirection, -1f, 0, default(Color), 0.7f);
|
|
num205++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num206 = 0; num206 < 20; num206++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 151, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 0.7f);
|
|
}
|
|
if (this.type == 221)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 298, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 299, this.scale);
|
|
return;
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 297, this.scale);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 21 || this.type == 31 || this.type == 294 || this.type == 295 || this.type == 296 || this.type == 32 || this.type == 44 || this.type == 45 || this.type == 77 || this.type == 110 || this.type == 167 || this.type == 197 || this.type == 201 || this.type == 202 || this.type == 203 || this.type == 287 || this.type == 291 || this.type == 292 || this.type == 293)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num207 = 0;
|
|
while ((double)num207 < dmg / (double)this.lifeMax * 50.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 26, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num207++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num208 = 0; num208 < 20; num208++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 26, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
if (this.type == 167)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 213, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 214, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 43, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 43, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 212, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 212, this.scale);
|
|
return;
|
|
}
|
|
if (this.type == 197)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 257, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 43, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 43, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 212, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 212, this.scale);
|
|
return;
|
|
}
|
|
if (this.type == 201)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 265, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 267, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 43, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 43, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 44, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 44, this.scale);
|
|
return;
|
|
}
|
|
if (this.type == 202)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 268, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 43, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 43, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 44, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 44, this.scale);
|
|
return;
|
|
}
|
|
if (this.type == 203)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 269, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 43, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 43, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 266, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 266, this.scale);
|
|
return;
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 42, this.scale);
|
|
if (this.type == 77)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 106, this.scale);
|
|
}
|
|
if (this.type == 110)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 130, this.scale);
|
|
}
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 43, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 43, this.scale);
|
|
if (this.type == 110)
|
|
{
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 131, this.scale);
|
|
}
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 44, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 44, this.scale);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if ((this.type >= 269 && this.type <= 276) || (this.type >= 281 && this.type <= 286))
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num209 = 0;
|
|
while ((double)num209 < dmg / (double)this.lifeMax * 50.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 26, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num209++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num210 = 0; num210 < 20; num210++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 26, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 42, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 43, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 43, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 44, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 44, this.scale);
|
|
if (this.type == 269)
|
|
{
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 406, this.scale);
|
|
}
|
|
if (this.type == 270)
|
|
{
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 407, this.scale);
|
|
}
|
|
if (this.type == 271 || this.type == 272)
|
|
{
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 408, this.scale);
|
|
}
|
|
if (this.type == 274)
|
|
{
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 409, this.scale);
|
|
}
|
|
if (this.type == 276)
|
|
{
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 410, this.scale);
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type >= 277 && this.type <= 280)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num211 = 0;
|
|
while ((double)num211 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
int num212 = Dust.NewDust(this.position, this.width, this.height, 174, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
Main.dust[num212].scale = 1.1f;
|
|
Main.dust[num212].noGravity = true;
|
|
num211++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num213 = 0; num213 < 75; num213++)
|
|
{
|
|
int num214 = Dust.NewDust(this.position, this.width, this.height, 174, 1.5f * (float)hitDirection, -0.5f, 0, default(Color), 1f);
|
|
Main.dust[num214].velocity *= 2f;
|
|
Main.dust[num214].scale = 1.4f;
|
|
Main.dust[num214].noGravity = true;
|
|
}
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 85)
|
|
{
|
|
int num215 = 7;
|
|
if (this.ai[3] == 2f)
|
|
{
|
|
num215 = 10;
|
|
}
|
|
if (this.ai[3] == 3f)
|
|
{
|
|
num215 = 37;
|
|
}
|
|
if (this.life > 0)
|
|
{
|
|
int num216 = 0;
|
|
while ((double)num216 < dmg / (double)this.lifeMax * 50.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, num215, 0f, 0f, 0, default(Color), 1f);
|
|
num216++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num217 = 0; num217 < 20; num217++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, num215, 0f, 0f, 0, default(Color), 1f);
|
|
}
|
|
int num218 = Gore.NewGore(new Vector2(this.position.X, this.position.Y - 10f), new Vector2((float)hitDirection, 0f), 61, this.scale);
|
|
Main.gore[num218].velocity *= 0.3f;
|
|
num218 = Gore.NewGore(new Vector2(this.position.X, this.position.Y + (float)(this.height / 2) - 10f), new Vector2((float)hitDirection, 0f), 62, this.scale);
|
|
Main.gore[num218].velocity *= 0.3f;
|
|
num218 = Gore.NewGore(new Vector2(this.position.X, this.position.Y + (float)this.height - 10f), new Vector2((float)hitDirection, 0f), 63, this.scale);
|
|
Main.gore[num218].velocity *= 0.3f;
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 169)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num219 = 0;
|
|
while ((double)num219 < dmg / (double)this.lifeMax * 50.0)
|
|
{
|
|
int num220 = Dust.NewDust(this.position, this.width, this.height, 92, 0f, 0f, 0, default(Color), 1.5f);
|
|
Main.dust[num220].velocity *= 1.5f;
|
|
Main.dust[num220].noGravity = true;
|
|
num219++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num221 = 0; num221 < 100; num221++)
|
|
{
|
|
int num222 = Dust.NewDust(this.position, this.width, this.height, 92, 0f, 0f, 0, default(Color), 1.5f);
|
|
Main.dust[num222].scale = 1.5f;
|
|
Main.dust[num222].velocity *= 2f;
|
|
Main.dust[num222].noGravity = true;
|
|
}
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 170 || this.type == 180)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num223 = 0;
|
|
while ((double)num223 < dmg / (double)this.lifeMax * 50.0)
|
|
{
|
|
int num224 = Dust.NewDust(this.position, this.width, this.height, 54, 0f, 0f, 0, default(Color), 1.5f);
|
|
Main.dust[num224].velocity *= 1.5f;
|
|
Main.dust[num224].noGravity = true;
|
|
num223++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num225 = 0; num225 < 10; num225++)
|
|
{
|
|
int num226 = Dust.NewDust(this.position, this.width, this.height, 54, 0f, 0f, 0, default(Color), 1.5f);
|
|
Main.dust[num226].velocity *= 2f;
|
|
Main.dust[num226].noGravity = true;
|
|
}
|
|
for (int num227 = 0; num227 < 4; num227++)
|
|
{
|
|
int num228 = Gore.NewGore(new Vector2(this.position.X, this.position.Y + (float)(this.height / 2) - 10f), new Vector2((float)hitDirection, 0f), 99, this.scale);
|
|
Main.gore[num228].velocity *= 0.3f;
|
|
}
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 171)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num229 = 0;
|
|
while ((double)num229 < dmg / (double)this.lifeMax * 50.0)
|
|
{
|
|
int num230 = Dust.NewDust(this.position, this.width, this.height, 16, 0f, 0f, 0, default(Color), 1.5f);
|
|
Main.dust[num230].velocity *= 1.5f;
|
|
Main.dust[num230].noGravity = true;
|
|
num229++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num231 = 0; num231 < 10; num231++)
|
|
{
|
|
int num232 = Dust.NewDust(this.position, this.width, this.height, 16, 0f, 0f, 0, default(Color), 1.5f);
|
|
Main.dust[num232].velocity *= 2f;
|
|
Main.dust[num232].noGravity = true;
|
|
}
|
|
for (int num233 = 0; num233 < 4; num233++)
|
|
{
|
|
int num234 = 11 + num233;
|
|
if (num234 > 13)
|
|
{
|
|
num234 = Main.rand.Next(11, 14);
|
|
}
|
|
int num235 = Gore.NewGore(new Vector2(this.position.X, this.position.Y + (float)(this.height / 2) - 10f), new Vector2((float)hitDirection, 0f), num234, this.scale);
|
|
Main.gore[num235].velocity *= 0.3f;
|
|
}
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 290)
|
|
{
|
|
if (this.life <= 0)
|
|
{
|
|
for (int num236 = 0; num236 < 10; num236++)
|
|
{
|
|
int num237 = Dust.NewDust(this.position, this.width, this.height, 16, 0f, 0f, 0, default(Color), 1.5f);
|
|
Main.dust[num237].velocity *= 2f;
|
|
Main.dust[num237].noGravity = true;
|
|
}
|
|
int num238 = Gore.NewGore(new Vector2(this.position.X, this.position.Y), default(Vector2), Main.rand.Next(11, 14), this.scale);
|
|
Main.gore[num238].velocity *= 0.5f;
|
|
num238 = Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), default(Vector2), Main.rand.Next(11, 14), this.scale);
|
|
Main.gore[num238].velocity *= 0.5f;
|
|
num238 = Gore.NewGore(new Vector2(this.position.X, this.position.Y + 40f), default(Vector2), Main.rand.Next(11, 14), this.scale);
|
|
Main.gore[num238].velocity *= 0.5f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type >= 87 && this.type <= 92)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num239 = 0;
|
|
while ((double)num239 < dmg / (double)this.lifeMax * 50.0)
|
|
{
|
|
int num240 = Dust.NewDust(this.position, this.width, this.height, 16, 0f, 0f, 0, default(Color), 1.5f);
|
|
Main.dust[num240].velocity *= 1.5f;
|
|
Main.dust[num240].noGravity = true;
|
|
num239++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num241 = 0; num241 < 10; num241++)
|
|
{
|
|
int num242 = Dust.NewDust(this.position, this.width, this.height, 16, 0f, 0f, 0, default(Color), 1.5f);
|
|
Main.dust[num242].velocity *= 2f;
|
|
Main.dust[num242].noGravity = true;
|
|
}
|
|
int num243 = Main.rand.Next(1, 4);
|
|
for (int num244 = 0; num244 < num243; num244++)
|
|
{
|
|
int num245 = Gore.NewGore(new Vector2(this.position.X, this.position.Y + (float)(this.height / 2) - 10f), new Vector2((float)hitDirection, 0f), Main.rand.Next(11, 14), this.scale);
|
|
Main.gore[num245].velocity *= 0.8f;
|
|
}
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 78 || this.type == 79 || this.type == 80)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num246 = 0;
|
|
while ((double)num246 < dmg / (double)this.lifeMax * 50.0)
|
|
{
|
|
int num247 = Dust.NewDust(this.position, this.width, this.height, 31, 0f, 0f, 0, default(Color), 1.5f);
|
|
Main.dust[num247].velocity *= 2f;
|
|
Main.dust[num247].noGravity = true;
|
|
num246++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num248 = 0; num248 < 20; num248++)
|
|
{
|
|
int num249 = Dust.NewDust(this.position, this.width, this.height, 31, 0f, 0f, 0, default(Color), 1.5f);
|
|
Main.dust[num249].velocity *= 2f;
|
|
Main.dust[num249].noGravity = true;
|
|
}
|
|
int num250 = Gore.NewGore(new Vector2(this.position.X, this.position.Y - 10f), new Vector2((float)hitDirection, 0f), 61, this.scale);
|
|
Main.gore[num250].velocity *= 0.3f;
|
|
num250 = Gore.NewGore(new Vector2(this.position.X, this.position.Y + (float)(this.height / 2) - 10f), new Vector2((float)hitDirection, 0f), 62, this.scale);
|
|
Main.gore[num250].velocity *= 0.3f;
|
|
num250 = Gore.NewGore(new Vector2(this.position.X, this.position.Y + (float)this.height - 10f), new Vector2((float)hitDirection, 0f), 63, this.scale);
|
|
Main.gore[num250].velocity *= 0.3f;
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 82 || this.type == 158 || this.type == 159 || this.type == 250 || this.type == 253)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num251 = 0;
|
|
while ((double)num251 < dmg / (double)this.lifeMax * 50.0)
|
|
{
|
|
int num252 = Dust.NewDust(this.position, this.width, this.height, 54, 0f, 0f, 50, default(Color), 1.5f);
|
|
Main.dust[num252].velocity *= 2f;
|
|
Main.dust[num252].noGravity = true;
|
|
num251++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num253 = 0; num253 < 20; num253++)
|
|
{
|
|
int num254 = Dust.NewDust(this.position, this.width, this.height, 54, 0f, 0f, 50, default(Color), 1.5f);
|
|
Main.dust[num254].velocity *= 2f;
|
|
Main.dust[num254].noGravity = true;
|
|
}
|
|
int num255 = Gore.NewGore(new Vector2(this.position.X, this.position.Y - 10f), new Vector2((float)hitDirection, 0f), 99, this.scale);
|
|
Main.gore[num255].velocity *= 0.3f;
|
|
num255 = Gore.NewGore(new Vector2(this.position.X, this.position.Y + (float)(this.height / 2) - 15f), new Vector2((float)hitDirection, 0f), 99, this.scale);
|
|
Main.gore[num255].velocity *= 0.3f;
|
|
num255 = Gore.NewGore(new Vector2(this.position.X, this.position.Y + (float)this.height - 20f), new Vector2((float)hitDirection, 0f), 99, this.scale);
|
|
Main.gore[num255].velocity *= 0.3f;
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 254 || this.type == 255 || this.type == 256 || this.type == 257 || this.type == 258 || this.type == 259 || this.type == 260 || this.type == 261)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num256 = 0;
|
|
while ((double)num256 < dmg / (double)this.lifeMax * 50.0)
|
|
{
|
|
int num257 = Dust.NewDust(this.position, this.width, this.height, 165, 0f, 0f, 50, default(Color), 1.5f);
|
|
Main.dust[num257].velocity *= 2f;
|
|
Main.dust[num257].noGravity = true;
|
|
num256++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num258 = 0; num258 < 20; num258++)
|
|
{
|
|
int num259 = Dust.NewDust(this.position, this.width, this.height, 165, 0f, 0f, 50, default(Color), 1.5f);
|
|
Main.dust[num259].velocity *= 2f;
|
|
Main.dust[num259].noGravity = true;
|
|
}
|
|
if (this.type != 261)
|
|
{
|
|
int num260 = Gore.NewGore(new Vector2(this.position.X, this.position.Y - 10f), new Vector2((float)hitDirection, 0f), 375, this.scale);
|
|
Main.gore[num260].velocity *= 0.3f;
|
|
num260 = Gore.NewGore(new Vector2(this.position.X, this.position.Y + (float)(this.height / 2) - 15f), new Vector2((float)hitDirection, 0f), 376, this.scale);
|
|
Main.gore[num260].velocity *= 0.3f;
|
|
num260 = Gore.NewGore(new Vector2(this.position.X, this.position.Y + (float)this.height - 20f), new Vector2((float)hitDirection, 0f), 377, this.scale);
|
|
Main.gore[num260].velocity *= 0.3f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 140)
|
|
{
|
|
if (this.life <= 0)
|
|
{
|
|
for (int num261 = 0; num261 < 20; num261++)
|
|
{
|
|
int num262 = Dust.NewDust(this.position, this.width, this.height, 54, 0f, 0f, 50, default(Color), 1.5f);
|
|
Main.dust[num262].velocity *= 2f;
|
|
Main.dust[num262].noGravity = true;
|
|
}
|
|
int num263 = Gore.NewGore(new Vector2(this.position.X, this.position.Y - 10f), new Vector2((float)hitDirection, 0f), 99, this.scale);
|
|
Main.gore[num263].velocity *= 0.3f;
|
|
num263 = Gore.NewGore(new Vector2(this.position.X, this.position.Y + (float)(this.height / 2) - 15f), new Vector2((float)hitDirection, 0f), 99, this.scale);
|
|
Main.gore[num263].velocity *= 0.3f;
|
|
num263 = Gore.NewGore(new Vector2(this.position.X, this.position.Y + (float)this.height - 20f), new Vector2((float)hitDirection, 0f), 99, this.scale);
|
|
Main.gore[num263].velocity *= 0.3f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 39 || this.type == 40 || this.type == 41)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num264 = 0;
|
|
while ((double)num264 < dmg / (double)this.lifeMax * 50.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 26, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num264++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num265 = 0; num265 < 20; num265++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 26, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, this.type - 39 + 67, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 34)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num266 = 0;
|
|
while ((double)num266 < dmg / (double)this.lifeMax * 30.0)
|
|
{
|
|
int num267 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 15, -this.velocity.X * 0.2f, -this.velocity.Y * 0.2f, 100, default(Color), 1.8f);
|
|
Main.dust[num267].noLight = true;
|
|
Main.dust[num267].noGravity = true;
|
|
Main.dust[num267].velocity *= 1.3f;
|
|
num267 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 26, -this.velocity.X * 0.2f, -this.velocity.Y * 0.2f, 0, default(Color), 0.9f);
|
|
Main.dust[num267].noLight = true;
|
|
Main.dust[num267].velocity *= 1.3f;
|
|
num266++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num268 = 0; num268 < 15; num268++)
|
|
{
|
|
int num269 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 15, -this.velocity.X * 0.2f, -this.velocity.Y * 0.2f, 100, default(Color), 1.8f);
|
|
Main.dust[num269].noLight = true;
|
|
Main.dust[num269].noGravity = true;
|
|
Main.dust[num269].velocity *= 1.3f;
|
|
num269 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 26, -this.velocity.X * 0.2f, -this.velocity.Y * 0.2f, 0, default(Color), 0.9f);
|
|
Main.dust[num269].noLight = true;
|
|
Main.dust[num269].velocity *= 1.3f;
|
|
}
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 289)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num270 = 0;
|
|
while ((double)num270 < dmg / (double)this.lifeMax * 30.0)
|
|
{
|
|
int num271 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 181, -this.velocity.X * 0.2f, -this.velocity.Y * 0.2f, 100, default(Color), 1.8f);
|
|
Main.dust[num271].noLight = true;
|
|
Main.dust[num271].noGravity = true;
|
|
Main.dust[num271].velocity *= 1.3f;
|
|
num270++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num272 = 0; num272 < 50; num272++)
|
|
{
|
|
int num273 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 181, -this.velocity.X * 0.2f, -this.velocity.Y * 0.2f, 100, default(Color), 1.8f);
|
|
Main.dust[num273].noLight = true;
|
|
Main.dust[num273].noGravity = true;
|
|
Main.dust[num273].velocity *= 1.3f;
|
|
}
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 35 || this.type == 36)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num274 = 0;
|
|
while ((double)num274 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 26, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num274++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num275 = 0; num275 < 150; num275++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 26, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
if (this.type == 35)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 54, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 55, 1f);
|
|
return;
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 56, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 57, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 57, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 57, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 139)
|
|
{
|
|
if (this.life <= 0)
|
|
{
|
|
for (int num276 = 0; num276 < 10; num276++)
|
|
{
|
|
int num277 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 31, 0f, 0f, 100, default(Color), 1.5f);
|
|
Main.dust[num277].velocity *= 1.4f;
|
|
}
|
|
for (int num278 = 0; num278 < 5; num278++)
|
|
{
|
|
int num279 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 6, 0f, 0f, 100, default(Color), 2.5f);
|
|
Main.dust[num279].noGravity = true;
|
|
Main.dust[num279].velocity *= 5f;
|
|
num279 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 6, 0f, 0f, 100, default(Color), 1.5f);
|
|
Main.dust[num279].velocity *= 3f;
|
|
}
|
|
int num280 = Gore.NewGore(new Vector2(this.position.X, this.position.Y), default(Vector2), Main.rand.Next(61, 64), 1f);
|
|
Main.gore[num280].velocity *= 0.4f;
|
|
Gore expr_C6F1_cp_0 = Main.gore[num280];
|
|
expr_C6F1_cp_0.velocity.X = expr_C6F1_cp_0.velocity.X + 1f;
|
|
Gore expr_C711_cp_0 = Main.gore[num280];
|
|
expr_C711_cp_0.velocity.Y = expr_C711_cp_0.velocity.Y + 1f;
|
|
num280 = Gore.NewGore(new Vector2(this.position.X, this.position.Y), default(Vector2), Main.rand.Next(61, 64), 1f);
|
|
Main.gore[num280].velocity *= 0.4f;
|
|
Gore expr_C795_cp_0 = Main.gore[num280];
|
|
expr_C795_cp_0.velocity.X = expr_C795_cp_0.velocity.X - 1f;
|
|
Gore expr_C7B5_cp_0 = Main.gore[num280];
|
|
expr_C7B5_cp_0.velocity.Y = expr_C7B5_cp_0.velocity.Y + 1f;
|
|
num280 = Gore.NewGore(new Vector2(this.position.X, this.position.Y), default(Vector2), Main.rand.Next(61, 64), 1f);
|
|
Main.gore[num280].velocity *= 0.4f;
|
|
Gore expr_C839_cp_0 = Main.gore[num280];
|
|
expr_C839_cp_0.velocity.X = expr_C839_cp_0.velocity.X + 1f;
|
|
Gore expr_C859_cp_0 = Main.gore[num280];
|
|
expr_C859_cp_0.velocity.Y = expr_C859_cp_0.velocity.Y - 1f;
|
|
num280 = Gore.NewGore(new Vector2(this.position.X, this.position.Y), default(Vector2), Main.rand.Next(61, 64), 1f);
|
|
Main.gore[num280].velocity *= 0.4f;
|
|
Gore expr_C8DD_cp_0 = Main.gore[num280];
|
|
expr_C8DD_cp_0.velocity.X = expr_C8DD_cp_0.velocity.X - 1f;
|
|
Gore expr_C8FD_cp_0 = Main.gore[num280];
|
|
expr_C8FD_cp_0.velocity.Y = expr_C8FD_cp_0.velocity.Y - 1f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type >= 134 && this.type <= 136)
|
|
{
|
|
if (this.type == 135 && this.life > 0 && Main.netMode != 1 && this.ai[2] == 0f && Main.rand.Next(25) == 0)
|
|
{
|
|
this.ai[2] = 1f;
|
|
int num281 = NPC.NewNPC((int)(this.position.X + (float)(this.width / 2)), (int)(this.position.Y + (float)this.height), 139, 0);
|
|
if (Main.netMode == 2 && num281 < 200)
|
|
{
|
|
NetMessage.SendData(23, -1, -1, "", num281, 0f, 0f, 0f, 0);
|
|
}
|
|
this.netUpdate = true;
|
|
}
|
|
if (this.life <= 0)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 156, 1f);
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
for (int num282 = 0; num282 < 10; num282++)
|
|
{
|
|
int num283 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 31, 0f, 0f, 100, default(Color), 1.5f);
|
|
Main.dust[num283].velocity *= 1.4f;
|
|
}
|
|
for (int num284 = 0; num284 < 5; num284++)
|
|
{
|
|
int num285 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 6, 0f, 0f, 100, default(Color), 2.5f);
|
|
Main.dust[num285].noGravity = true;
|
|
Main.dust[num285].velocity *= 5f;
|
|
num285 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 6, 0f, 0f, 100, default(Color), 1.5f);
|
|
Main.dust[num285].velocity *= 3f;
|
|
}
|
|
int num286 = Gore.NewGore(new Vector2(this.position.X, this.position.Y), default(Vector2), Main.rand.Next(61, 64), 1f);
|
|
Main.gore[num286].velocity *= 0.4f;
|
|
Gore expr_CC3E_cp_0 = Main.gore[num286];
|
|
expr_CC3E_cp_0.velocity.X = expr_CC3E_cp_0.velocity.X + 1f;
|
|
Gore expr_CC5E_cp_0 = Main.gore[num286];
|
|
expr_CC5E_cp_0.velocity.Y = expr_CC5E_cp_0.velocity.Y + 1f;
|
|
num286 = Gore.NewGore(new Vector2(this.position.X, this.position.Y), default(Vector2), Main.rand.Next(61, 64), 1f);
|
|
Main.gore[num286].velocity *= 0.4f;
|
|
Gore expr_CCE2_cp_0 = Main.gore[num286];
|
|
expr_CCE2_cp_0.velocity.X = expr_CCE2_cp_0.velocity.X - 1f;
|
|
Gore expr_CD02_cp_0 = Main.gore[num286];
|
|
expr_CD02_cp_0.velocity.Y = expr_CD02_cp_0.velocity.Y + 1f;
|
|
num286 = Gore.NewGore(new Vector2(this.position.X, this.position.Y), default(Vector2), Main.rand.Next(61, 64), 1f);
|
|
Main.gore[num286].velocity *= 0.4f;
|
|
Gore expr_CD86_cp_0 = Main.gore[num286];
|
|
expr_CD86_cp_0.velocity.X = expr_CD86_cp_0.velocity.X + 1f;
|
|
Gore expr_CDA6_cp_0 = Main.gore[num286];
|
|
expr_CDA6_cp_0.velocity.Y = expr_CDA6_cp_0.velocity.Y - 1f;
|
|
num286 = Gore.NewGore(new Vector2(this.position.X, this.position.Y), default(Vector2), Main.rand.Next(61, 64), 1f);
|
|
Main.gore[num286].velocity *= 0.4f;
|
|
Gore expr_CE2A_cp_0 = Main.gore[num286];
|
|
expr_CE2A_cp_0.velocity.X = expr_CE2A_cp_0.velocity.X - 1f;
|
|
Gore expr_CE4A_cp_0 = Main.gore[num286];
|
|
expr_CE4A_cp_0.velocity.Y = expr_CE4A_cp_0.velocity.Y - 1f;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 127)
|
|
{
|
|
if (this.life <= 0)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 149, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 150, 1f);
|
|
for (int num287 = 0; num287 < 10; num287++)
|
|
{
|
|
int num288 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 31, 0f, 0f, 100, default(Color), 1.5f);
|
|
Main.dust[num288].velocity *= 1.4f;
|
|
}
|
|
for (int num289 = 0; num289 < 5; num289++)
|
|
{
|
|
int num290 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 6, 0f, 0f, 100, default(Color), 2.5f);
|
|
Main.dust[num290].noGravity = true;
|
|
Main.dust[num290].velocity *= 5f;
|
|
num290 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 6, 0f, 0f, 100, default(Color), 1.5f);
|
|
Main.dust[num290].velocity *= 3f;
|
|
}
|
|
int num291 = Gore.NewGore(new Vector2(this.position.X, this.position.Y), default(Vector2), Main.rand.Next(61, 64), 1f);
|
|
Main.gore[num291].velocity *= 0.4f;
|
|
Gore expr_D0B8_cp_0 = Main.gore[num291];
|
|
expr_D0B8_cp_0.velocity.X = expr_D0B8_cp_0.velocity.X + 1f;
|
|
Gore expr_D0D8_cp_0 = Main.gore[num291];
|
|
expr_D0D8_cp_0.velocity.Y = expr_D0D8_cp_0.velocity.Y + 1f;
|
|
num291 = Gore.NewGore(new Vector2(this.position.X, this.position.Y), default(Vector2), Main.rand.Next(61, 64), 1f);
|
|
Main.gore[num291].velocity *= 0.4f;
|
|
Gore expr_D15C_cp_0 = Main.gore[num291];
|
|
expr_D15C_cp_0.velocity.X = expr_D15C_cp_0.velocity.X - 1f;
|
|
Gore expr_D17C_cp_0 = Main.gore[num291];
|
|
expr_D17C_cp_0.velocity.Y = expr_D17C_cp_0.velocity.Y + 1f;
|
|
num291 = Gore.NewGore(new Vector2(this.position.X, this.position.Y), default(Vector2), Main.rand.Next(61, 64), 1f);
|
|
Main.gore[num291].velocity *= 0.4f;
|
|
Gore expr_D200_cp_0 = Main.gore[num291];
|
|
expr_D200_cp_0.velocity.X = expr_D200_cp_0.velocity.X + 1f;
|
|
Gore expr_D220_cp_0 = Main.gore[num291];
|
|
expr_D220_cp_0.velocity.Y = expr_D220_cp_0.velocity.Y - 1f;
|
|
num291 = Gore.NewGore(new Vector2(this.position.X, this.position.Y), default(Vector2), Main.rand.Next(61, 64), 1f);
|
|
Main.gore[num291].velocity *= 0.4f;
|
|
Gore expr_D2A4_cp_0 = Main.gore[num291];
|
|
expr_D2A4_cp_0.velocity.X = expr_D2A4_cp_0.velocity.X - 1f;
|
|
Gore expr_D2C4_cp_0 = Main.gore[num291];
|
|
expr_D2C4_cp_0.velocity.Y = expr_D2C4_cp_0.velocity.Y - 1f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type >= 128 && this.type <= 131)
|
|
{
|
|
if (this.life <= 0)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 147, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 148, 1f);
|
|
for (int num292 = 0; num292 < 10; num292++)
|
|
{
|
|
int num293 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 31, 0f, 0f, 100, default(Color), 1.5f);
|
|
Main.dust[num293].velocity *= 1.4f;
|
|
}
|
|
for (int num294 = 0; num294 < 5; num294++)
|
|
{
|
|
int num295 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 6, 0f, 0f, 100, default(Color), 2.5f);
|
|
Main.dust[num295].noGravity = true;
|
|
Main.dust[num295].velocity *= 5f;
|
|
num295 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 6, 0f, 0f, 100, default(Color), 1.5f);
|
|
Main.dust[num295].velocity *= 3f;
|
|
}
|
|
int num296 = Gore.NewGore(new Vector2(this.position.X, this.position.Y), default(Vector2), Main.rand.Next(61, 64), 1f);
|
|
Main.gore[num296].velocity *= 0.4f;
|
|
Gore expr_D545_cp_0 = Main.gore[num296];
|
|
expr_D545_cp_0.velocity.X = expr_D545_cp_0.velocity.X + 1f;
|
|
Gore expr_D565_cp_0 = Main.gore[num296];
|
|
expr_D565_cp_0.velocity.Y = expr_D565_cp_0.velocity.Y + 1f;
|
|
num296 = Gore.NewGore(new Vector2(this.position.X, this.position.Y), default(Vector2), Main.rand.Next(61, 64), 1f);
|
|
Main.gore[num296].velocity *= 0.4f;
|
|
Gore expr_D5E9_cp_0 = Main.gore[num296];
|
|
expr_D5E9_cp_0.velocity.X = expr_D5E9_cp_0.velocity.X - 1f;
|
|
Gore expr_D609_cp_0 = Main.gore[num296];
|
|
expr_D609_cp_0.velocity.Y = expr_D609_cp_0.velocity.Y + 1f;
|
|
num296 = Gore.NewGore(new Vector2(this.position.X, this.position.Y), default(Vector2), Main.rand.Next(61, 64), 1f);
|
|
Main.gore[num296].velocity *= 0.4f;
|
|
Gore expr_D68D_cp_0 = Main.gore[num296];
|
|
expr_D68D_cp_0.velocity.X = expr_D68D_cp_0.velocity.X + 1f;
|
|
Gore expr_D6AD_cp_0 = Main.gore[num296];
|
|
expr_D6AD_cp_0.velocity.Y = expr_D6AD_cp_0.velocity.Y - 1f;
|
|
num296 = Gore.NewGore(new Vector2(this.position.X, this.position.Y), default(Vector2), Main.rand.Next(61, 64), 1f);
|
|
Main.gore[num296].velocity *= 0.4f;
|
|
Gore expr_D731_cp_0 = Main.gore[num296];
|
|
expr_D731_cp_0.velocity.X = expr_D731_cp_0.velocity.X - 1f;
|
|
Gore expr_D751_cp_0 = Main.gore[num296];
|
|
expr_D751_cp_0.velocity.Y = expr_D751_cp_0.velocity.Y - 1f;
|
|
return;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 23)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num297 = 0;
|
|
while ((double)num297 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
int num298 = 25;
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
num298 = 6;
|
|
}
|
|
Dust.NewDust(this.position, this.width, this.height, num298, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
int num299 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 6, this.velocity.X * 0.2f, this.velocity.Y * 0.2f, 100, default(Color), 2f);
|
|
Main.dust[num299].noGravity = true;
|
|
num297++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num300 = 0; num300 < 50; num300++)
|
|
{
|
|
int num301 = 25;
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
num301 = 6;
|
|
}
|
|
Dust.NewDust(this.position, this.width, this.height, num301, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
for (int num302 = 0; num302 < 50; num302++)
|
|
{
|
|
int num303 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 6, this.velocity.X * 0.2f, this.velocity.Y * 0.2f, 100, default(Color), 2.5f);
|
|
Main.dust[num303].velocity *= 6f;
|
|
Main.dust[num303].noGravity = true;
|
|
}
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 24)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num304 = 0;
|
|
while ((double)num304 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
int num305 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 6, this.velocity.X, this.velocity.Y, 100, default(Color), 2.5f);
|
|
Main.dust[num305].noGravity = true;
|
|
num304++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num306 = 0; num306 < 50; num306++)
|
|
{
|
|
int num307 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 6, this.velocity.X, this.velocity.Y, 100, default(Color), 2.5f);
|
|
Main.dust[num307].noGravity = true;
|
|
Main.dust[num307].velocity *= 2f;
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 45, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 46, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 46, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 47, 1f);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 47, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 25)
|
|
{
|
|
Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 10);
|
|
for (int num308 = 0; num308 < 20; num308++)
|
|
{
|
|
int num309 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 6, -this.velocity.X * 0.2f, -this.velocity.Y * 0.2f, 100, default(Color), 2f);
|
|
Main.dust[num309].noGravity = true;
|
|
Main.dust[num309].velocity *= 2f;
|
|
num309 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 6, -this.velocity.X * 0.2f, -this.velocity.Y * 0.2f, 100, default(Color), 1f);
|
|
Main.dust[num309].velocity *= 2f;
|
|
}
|
|
return;
|
|
}
|
|
if (this.type == 33)
|
|
{
|
|
Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 10);
|
|
for (int num310 = 0; num310 < 20; num310++)
|
|
{
|
|
int num311 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 172, -this.velocity.X * 0.2f, -this.velocity.Y * 0.2f, 100, default(Color), 1.2f);
|
|
Main.dust[num311].noGravity = true;
|
|
Main.dust[num311].velocity *= 2f;
|
|
num311 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 172, -this.velocity.X * 0.2f, -this.velocity.Y * 0.2f, 100, default(Color), 0.6f);
|
|
Main.dust[num311].velocity *= 2f;
|
|
}
|
|
return;
|
|
}
|
|
if (this.type == 26 || this.type == 27 || this.type == 28 || this.type == 29 || this.type == 73 || this.type == 111)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num312 = 0;
|
|
while ((double)num312 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num312++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num313 = 0; num313 < 50; num313++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 48, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 49, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 20f), this.velocity, 49, this.scale);
|
|
if (this.type == 111)
|
|
{
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 131, this.scale);
|
|
}
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 50, this.scale);
|
|
Gore.NewGore(new Vector2(this.position.X, this.position.Y + 34f), this.velocity, 50, this.scale);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 185)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num314 = 0;
|
|
while ((double)num314 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num314++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num315 = 0; num315 < 50; num315++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, 2.5f * (float)hitDirection, -2.5f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 240, this.scale);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 30)
|
|
{
|
|
Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 10);
|
|
for (int num316 = 0; num316 < 20; num316++)
|
|
{
|
|
int num317 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 27, -this.velocity.X * 0.2f, -this.velocity.Y * 0.2f, 100, default(Color), 2f);
|
|
Main.dust[num317].noGravity = true;
|
|
Main.dust[num317].velocity *= 2f;
|
|
num317 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 27, -this.velocity.X * 0.2f, -this.velocity.Y * 0.2f, 100, default(Color), 1f);
|
|
Main.dust[num317].velocity *= 2f;
|
|
}
|
|
return;
|
|
}
|
|
if (this.type == 42 || this.type == 176 || this.type == 205 || (this.type >= 231 && this.type <= 235))
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num318 = 0;
|
|
while ((double)num318 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 18, (float)hitDirection, -1f, this.alpha, this.color, this.scale);
|
|
num318++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num319 = 0; num319 < 50; num319++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 18, (float)hitDirection, -2f, this.alpha, this.color, this.scale);
|
|
}
|
|
if (this.type == 205)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 270, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 271, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 271, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 272, this.scale);
|
|
return;
|
|
}
|
|
if (this.type == 176)
|
|
{
|
|
Gore.NewGore(this.position, this.velocity, 229, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 230, this.scale);
|
|
return;
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 70, this.scale);
|
|
Gore.NewGore(this.position, this.velocity, 71, this.scale);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 43 || this.type == 56)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num320 = 0;
|
|
while ((double)num320 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 40, (float)hitDirection, -1f, this.alpha, this.color, 1.2f);
|
|
num320++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num321 = 0; num321 < 50; num321++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 40, (float)hitDirection, -2f, this.alpha, this.color, 1.2f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 72, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 72, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 175)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num322 = 0;
|
|
while ((double)num322 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 40, (float)hitDirection, -1f, this.alpha, this.color, 1.2f);
|
|
num322++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num323 = 0; num323 < 50; num323++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 40, (float)hitDirection, -2f, this.alpha, this.color, 1.2f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 227, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 228, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 48)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num324 = 0;
|
|
while ((double)num324 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num324++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num325 = 0; num325 < 50; num325++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 80, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 81, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 62 || this.type == 66)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num326 = 0;
|
|
while ((double)num326 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num326++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num327 = 0; num327 < 50; num327++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 93, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 94, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 94, 1f);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 156)
|
|
{
|
|
if (this.life > 0)
|
|
{
|
|
int num328 = 0;
|
|
while ((double)num328 < dmg / (double)this.lifeMax * 100.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)hitDirection, -1f, 0, default(Color), 1f);
|
|
num328++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num329 = 0; num329 < 50; num329++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -2f, 0, default(Color), 1f);
|
|
}
|
|
Gore.NewGore(this.position, this.velocity, 184, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 185, 1f);
|
|
Gore.NewGore(this.position, this.velocity, 185, 1f);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return;
|
|
}
|
|
if (this.life > 0)
|
|
{
|
|
int num330 = 0;
|
|
while ((double)num330 < dmg / (double)this.lifeMax * 80.0)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 6, (float)(hitDirection * 2), -1f, this.alpha, default(Color), 1.5f);
|
|
num330++;
|
|
}
|
|
return;
|
|
}
|
|
for (int num331 = 0; num331 < 40; num331++)
|
|
{
|
|
Dust.NewDust(this.position, this.width, this.height, 6, (float)(hitDirection * 2), -1f, this.alpha, default(Color), 1.5f);
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
public static bool AnyNPCs(int Type)
|
|
{
|
|
for (int i = 0; i < 200; i++)
|
|
{
|
|
if (Main.npc[i].active && Main.npc[i].type == Type)
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
public static void SpawnSkeletron()
|
|
{
|
|
bool flag = true;
|
|
bool flag2 = false;
|
|
Vector2 vector = default(Vector2);
|
|
int num = 0;
|
|
int num2 = 0;
|
|
for (int i = 0; i < 200; i++)
|
|
{
|
|
if (Main.npc[i].active && Main.npc[i].type == 35)
|
|
{
|
|
flag = false;
|
|
break;
|
|
}
|
|
}
|
|
for (int j = 0; j < 200; j++)
|
|
{
|
|
if (Main.npc[j].active && Main.npc[j].type == 37)
|
|
{
|
|
flag2 = true;
|
|
Main.npc[j].ai[3] = 1f;
|
|
vector = Main.npc[j].position;
|
|
num = Main.npc[j].width;
|
|
num2 = Main.npc[j].height;
|
|
if (Main.netMode == 2)
|
|
{
|
|
NetMessage.SendData(23, -1, -1, "", j, 0f, 0f, 0f, 0);
|
|
}
|
|
}
|
|
}
|
|
if (flag && flag2)
|
|
{
|
|
int num3 = NPC.NewNPC((int)vector.X + num / 2, (int)vector.Y + num2 / 2, 35, 0);
|
|
Main.npc[num3].netUpdate = true;
|
|
string str = "Skeletron";
|
|
if (Main.netMode == 0)
|
|
{
|
|
Main.NewText(str + " " + Lang.misc[16], 175, 75, 255, false);
|
|
return;
|
|
}
|
|
if (Main.netMode == 2)
|
|
{
|
|
NetMessage.SendData(25, -1, -1, str + " " + Lang.misc[16], 255, 175f, 75f, 255f, 0);
|
|
}
|
|
}
|
|
}
|
|
public static bool NearSpikeBall(int x, int y)
|
|
{
|
|
Rectangle rectangle = new Rectangle(x * 16 - 300, y * 16 - 300, 600, 600);
|
|
for (int i = 0; i < 200; i++)
|
|
{
|
|
if (Main.npc[i].active && Main.npc[i].aiStyle == 20)
|
|
{
|
|
Rectangle rectangle2 = new Rectangle((int)Main.npc[i].ai[1], (int)Main.npc[i].ai[2], 20, 20);
|
|
if (rectangle.Intersects(rectangle2))
|
|
{
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
public void AddBuff(int type, int time, bool quiet = false)
|
|
{
|
|
if (this.buffImmune[type])
|
|
{
|
|
return;
|
|
}
|
|
if (!quiet)
|
|
{
|
|
if (Main.netMode == 1)
|
|
{
|
|
NetMessage.SendData(53, -1, -1, "", this.whoAmI, (float)type, (float)time, 0f, 0);
|
|
}
|
|
else
|
|
{
|
|
if (Main.netMode == 2)
|
|
{
|
|
NetMessage.SendData(54, -1, -1, "", this.whoAmI, 0f, 0f, 0f, 0);
|
|
}
|
|
}
|
|
}
|
|
int num = -1;
|
|
for (int i = 0; i < 5; i++)
|
|
{
|
|
if (this.buffType[i] == type)
|
|
{
|
|
if (this.buffTime[i] < time)
|
|
{
|
|
this.buffTime[i] = time;
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
while (num == -1)
|
|
{
|
|
int num2 = -1;
|
|
for (int j = 0; j < 5; j++)
|
|
{
|
|
if (!Main.debuff[this.buffType[j]])
|
|
{
|
|
num2 = j;
|
|
break;
|
|
}
|
|
}
|
|
if (num2 == -1)
|
|
{
|
|
return;
|
|
}
|
|
for (int k = num2; k < 5; k++)
|
|
{
|
|
if (this.buffType[k] == 0)
|
|
{
|
|
num = k;
|
|
break;
|
|
}
|
|
}
|
|
if (num == -1)
|
|
{
|
|
this.DelBuff(num2);
|
|
}
|
|
}
|
|
this.buffType[num] = type;
|
|
this.buffTime[num] = time;
|
|
}
|
|
public void DelBuff(int b)
|
|
{
|
|
this.buffTime[b] = 0;
|
|
this.buffType[b] = 0;
|
|
for (int i = 0; i < 4; i++)
|
|
{
|
|
if (this.buffTime[i] == 0 || this.buffType[i] == 0)
|
|
{
|
|
for (int j = i + 1; j < 5; j++)
|
|
{
|
|
this.buffTime[j - 1] = this.buffTime[j];
|
|
this.buffType[j - 1] = this.buffType[j];
|
|
this.buffTime[j] = 0;
|
|
this.buffType[j] = 0;
|
|
}
|
|
}
|
|
}
|
|
if (Main.netMode == 2)
|
|
{
|
|
NetMessage.SendData(54, -1, -1, "", this.whoAmI, 0f, 0f, 0f, 0);
|
|
}
|
|
}
|
|
public Vector2 center()
|
|
{
|
|
return new Vector2(this.position.X + (float)(this.width / 2), this.position.Y + (float)(this.height / 2));
|
|
}
|
|
public Rectangle getRect()
|
|
{
|
|
return new Rectangle((int)this.position.X, (int)this.position.Y, this.width, this.height);
|
|
}
|
|
public void UpdateNPC(int i)
|
|
{
|
|
this.whoAmI = i;
|
|
if (this.active)
|
|
{
|
|
if (this.realLife >= 0)
|
|
{
|
|
this.life = Main.npc[this.realLife].life;
|
|
}
|
|
if (Main.netMode == 1)
|
|
{
|
|
bool flag = false;
|
|
int num = (int)(this.position.X + (float)(this.width / 2)) / 16;
|
|
int num2 = (int)(this.position.Y + (float)(this.height / 2)) / 16;
|
|
try
|
|
{
|
|
if (num >= 4 && num <= Main.maxTilesX - 4 && num2 >= 4 && num2 <= Main.maxTilesY - 4)
|
|
{
|
|
if (Main.tile[num, num2] == null)
|
|
{
|
|
flag = true;
|
|
}
|
|
else
|
|
{
|
|
if (Main.tile[num - 3, num2] == null)
|
|
{
|
|
flag = true;
|
|
}
|
|
else
|
|
{
|
|
if (Main.tile[num + 3, num2] == null)
|
|
{
|
|
flag = true;
|
|
}
|
|
else
|
|
{
|
|
if (Main.tile[num, num2 - 3] == null)
|
|
{
|
|
flag = true;
|
|
}
|
|
else
|
|
{
|
|
if (Main.tile[num, num2 + 3] == null)
|
|
{
|
|
flag = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
flag = true;
|
|
}
|
|
if (flag)
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
if (this.displayName == "")
|
|
{
|
|
this.displayName = this.name;
|
|
}
|
|
if (this.townNPC && Main.chrName[this.type] != "")
|
|
{
|
|
this.displayName = Main.chrName[this.type];
|
|
}
|
|
this.lifeRegen = 0;
|
|
this.poisoned = false;
|
|
this.venom = false;
|
|
this.onFire = false;
|
|
this.midas = false;
|
|
this.ichor = false;
|
|
this.onFrostBurn = false;
|
|
this.onFire2 = false;
|
|
this.confused = false;
|
|
for (int j = 0; j < 5; j++)
|
|
{
|
|
if (this.buffType[j] > 0 && this.buffTime[j] > 0)
|
|
{
|
|
this.buffTime[j]--;
|
|
if (this.buffType[j] == 20)
|
|
{
|
|
this.poisoned = true;
|
|
}
|
|
if (this.buffType[j] == 70)
|
|
{
|
|
this.venom = true;
|
|
}
|
|
if (this.buffType[j] == 24)
|
|
{
|
|
this.onFire = true;
|
|
}
|
|
if (this.buffType[j] == 72)
|
|
{
|
|
this.midas = true;
|
|
}
|
|
if (this.buffType[j] == 69)
|
|
{
|
|
this.ichor = true;
|
|
}
|
|
if (this.buffType[j] == 31)
|
|
{
|
|
this.confused = true;
|
|
}
|
|
if (this.buffType[j] == 39)
|
|
{
|
|
this.onFire2 = true;
|
|
}
|
|
if (this.buffType[j] == 44)
|
|
{
|
|
this.onFrostBurn = true;
|
|
}
|
|
}
|
|
}
|
|
if (Main.netMode != 1)
|
|
{
|
|
for (int k = 0; k < 5; k++)
|
|
{
|
|
if (this.buffType[k] > 0 && this.buffTime[k] <= 0)
|
|
{
|
|
this.DelBuff(k);
|
|
if (Main.netMode == 2)
|
|
{
|
|
NetMessage.SendData(54, -1, -1, "", this.whoAmI, 0f, 0f, 0f, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.teleportTime > 0f)
|
|
{
|
|
if ((float)Main.rand.Next(100) <= 100f * this.teleportTime * 2f)
|
|
{
|
|
int num3 = Dust.NewDust(new Vector2((float)this.getRect().X, (float)this.getRect().Y), this.getRect().Width, this.getRect().Height, 159, 0f, 0f, 0, default(Color), 1f);
|
|
Main.dust[num3].scale = this.teleportTime * 1.5f;
|
|
Main.dust[num3].noGravity = true;
|
|
Main.dust[num3].velocity *= 1.1f;
|
|
}
|
|
this.teleportTime -= 0.005f;
|
|
}
|
|
if (this.type >= 254 && this.type <= 261)
|
|
{
|
|
float num4 = (float)Main.rand.Next(28, 42) * 0.005f;
|
|
num4 += (float)(270 - (int)Main.mouseTextColor) / 500f;
|
|
float num5 = 0.1f;
|
|
float num6 = 0.3f + num4 / 2f;
|
|
float num7 = 0.6f + num4;
|
|
float num8 = 0.35f;
|
|
num5 *= num8;
|
|
num6 *= num8;
|
|
num7 *= num8;
|
|
Lighting.addLight((int)this.center().X / 16, (int)this.center().Y / 16, num5, num6, num7);
|
|
}
|
|
if (!this.dontTakeDamage)
|
|
{
|
|
if (this.poisoned)
|
|
{
|
|
if (this.lifeRegen > 0)
|
|
{
|
|
this.lifeRegen = 0;
|
|
}
|
|
this.lifeRegen -= 4;
|
|
}
|
|
if (this.onFire)
|
|
{
|
|
if (this.lifeRegen > 0)
|
|
{
|
|
this.lifeRegen = 0;
|
|
}
|
|
this.lifeRegen -= 8;
|
|
}
|
|
if (this.onFrostBurn)
|
|
{
|
|
if (this.lifeRegen > 0)
|
|
{
|
|
this.lifeRegen = 0;
|
|
}
|
|
this.lifeRegen -= 12;
|
|
}
|
|
if (this.onFire2)
|
|
{
|
|
if (this.lifeRegen > 0)
|
|
{
|
|
this.lifeRegen = 0;
|
|
}
|
|
this.lifeRegen -= 12;
|
|
}
|
|
if (this.venom)
|
|
{
|
|
if (this.lifeRegen > 0)
|
|
{
|
|
this.lifeRegen = 0;
|
|
}
|
|
this.lifeRegen -= 12;
|
|
}
|
|
this.lifeRegenCount += this.lifeRegen;
|
|
while (this.lifeRegenCount >= 120)
|
|
{
|
|
this.lifeRegenCount -= 120;
|
|
if (this.life < this.lifeMax)
|
|
{
|
|
this.life++;
|
|
}
|
|
if (this.life > this.lifeMax)
|
|
{
|
|
this.life = this.lifeMax;
|
|
}
|
|
}
|
|
while (this.lifeRegenCount <= -120)
|
|
{
|
|
this.lifeRegenCount += 120;
|
|
int num9 = this.whoAmI;
|
|
if (this.realLife >= 0)
|
|
{
|
|
num9 = this.realLife;
|
|
}
|
|
Main.npc[num9].life--;
|
|
CombatText.NewText(new Rectangle((int)this.position.X, (int)this.position.Y, this.width, this.height), new Color(255, 140, 40, 255), string.Concat(1), false, true);
|
|
if (Main.npc[num9].life <= 0)
|
|
{
|
|
Main.npc[num9].life = 1;
|
|
if (Main.netMode != 1)
|
|
{
|
|
Main.npc[num9].StrikeNPC(9999, 0f, 0, false, false);
|
|
if (Main.netMode == 2)
|
|
{
|
|
NetMessage.SendData(28, -1, -1, "", num9, 9999f, 0f, 0f, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (Main.netMode != 1 && Main.bloodMoon)
|
|
{
|
|
bool flag2 = false;
|
|
if (this.value == 0f)
|
|
{
|
|
flag2 = true;
|
|
}
|
|
if (this.type == 46)
|
|
{
|
|
this.Transform(47);
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 55)
|
|
{
|
|
this.Transform(57);
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 148 || this.type == 149)
|
|
{
|
|
this.Transform(168);
|
|
}
|
|
}
|
|
}
|
|
if (flag2)
|
|
{
|
|
this.value = 0f;
|
|
}
|
|
}
|
|
float num10 = 10f;
|
|
NPC.gravity = 0.3f;
|
|
if (this.type == 258)
|
|
{
|
|
NPC.gravity = 0.1f;
|
|
if (this.velocity.Y > 3f)
|
|
{
|
|
this.velocity.Y = 3f;
|
|
}
|
|
}
|
|
float num11 = (float)(Main.maxTilesX / 4200);
|
|
num11 *= num11;
|
|
float num12 = (float)((double)(this.position.Y / 16f - (60f + 10f * num11)) / (Main.worldSurface / 6.0));
|
|
if ((double)num12 < 0.25)
|
|
{
|
|
num12 = 0.25f;
|
|
}
|
|
if (num12 > 1f)
|
|
{
|
|
num12 = 1f;
|
|
}
|
|
NPC.gravity *= num12;
|
|
if (this.wet)
|
|
{
|
|
if (this.honeyWet)
|
|
{
|
|
NPC.gravity = 0.1f;
|
|
num10 = 4f;
|
|
}
|
|
else
|
|
{
|
|
NPC.gravity = 0.2f;
|
|
num10 = 7f;
|
|
}
|
|
}
|
|
if (this.soundDelay > 0)
|
|
{
|
|
this.soundDelay--;
|
|
}
|
|
if (this.life <= 0)
|
|
{
|
|
this.active = false;
|
|
}
|
|
this.oldTarget = this.target;
|
|
this.oldDirection = this.direction;
|
|
this.oldDirectionY = this.directionY;
|
|
float num13 = 1f + Math.Abs(this.velocity.X) / 3f;
|
|
if (this.gfxOffY > 0f)
|
|
{
|
|
this.gfxOffY -= num13 * this.stepSpeed;
|
|
if (this.gfxOffY < 0f)
|
|
{
|
|
this.gfxOffY = 0f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.gfxOffY < 0f)
|
|
{
|
|
this.gfxOffY += num13 * this.stepSpeed;
|
|
if (this.gfxOffY > 0f)
|
|
{
|
|
this.gfxOffY = 0f;
|
|
}
|
|
}
|
|
}
|
|
if (this.gfxOffY > 16f)
|
|
{
|
|
this.gfxOffY = 16f;
|
|
}
|
|
if (this.gfxOffY < -16f)
|
|
{
|
|
this.gfxOffY = -16f;
|
|
}
|
|
this.AI();
|
|
if (this.type == 44)
|
|
{
|
|
Lighting.addLight((int)(this.position.X + (float)(this.width / 2)) / 16, (int)(this.position.Y + 4f) / 16, 0.9f, 0.75f, 0.5f);
|
|
}
|
|
for (int l = 0; l < 256; l++)
|
|
{
|
|
if (this.immune[l] > 0)
|
|
{
|
|
this.immune[l]--;
|
|
}
|
|
}
|
|
if (!this.noGravity && !this.noTileCollide)
|
|
{
|
|
int num14 = (int)(this.position.X + (float)(this.width / 2)) / 16;
|
|
int num15 = (int)(this.position.Y + (float)(this.height / 2)) / 16;
|
|
if (Main.tile[num14, num15] == null)
|
|
{
|
|
NPC.gravity = 0f;
|
|
this.velocity.X = 0f;
|
|
this.velocity.Y = 0f;
|
|
}
|
|
}
|
|
if (!this.noGravity)
|
|
{
|
|
this.velocity.Y = this.velocity.Y + NPC.gravity;
|
|
if (this.velocity.Y > num10)
|
|
{
|
|
this.velocity.Y = num10;
|
|
}
|
|
}
|
|
if ((double)this.velocity.X < 0.005 && (double)this.velocity.X > -0.005)
|
|
{
|
|
this.velocity.X = 0f;
|
|
}
|
|
if (Main.netMode != 1 && this.type != 37 && (this.friendly || this.type == 46 || this.type == 55 || this.type == 74 || this.type == 148 || this.type == 149 || this.type == 230 || this.type == 297 || this.type == 298 || this.type == 299 || this.type == 300))
|
|
{
|
|
if (this.life < this.lifeMax)
|
|
{
|
|
this.friendlyRegen++;
|
|
if (this.friendlyRegen > 300)
|
|
{
|
|
this.friendlyRegen = 0;
|
|
this.life++;
|
|
this.netUpdate = true;
|
|
}
|
|
}
|
|
if (this.immune[255] == 0)
|
|
{
|
|
Rectangle rectangle = new Rectangle((int)this.position.X, (int)this.position.Y, this.width, this.height);
|
|
for (int m = 0; m < 200; m++)
|
|
{
|
|
if (Main.npc[m].active && !Main.npc[m].friendly && Main.npc[m].damage > 0)
|
|
{
|
|
Rectangle rectangle2 = new Rectangle((int)Main.npc[m].position.X, (int)Main.npc[m].position.Y, Main.npc[m].width, Main.npc[m].height);
|
|
if (rectangle.Intersects(rectangle2))
|
|
{
|
|
int num16 = Main.npc[m].damage;
|
|
int num17 = 6;
|
|
int num18 = 1;
|
|
if (Main.npc[m].position.X + (float)(Main.npc[m].width / 2) > this.position.X + (float)(this.width / 2))
|
|
{
|
|
num18 = -1;
|
|
}
|
|
Main.npc[i].StrikeNPC(num16, (float)num17, num18, false, false);
|
|
if (Main.netMode != 0)
|
|
{
|
|
NetMessage.SendData(28, -1, -1, "", i, (float)num16, (float)num17, (float)num18, 0);
|
|
}
|
|
this.netUpdate = true;
|
|
this.immune[255] = 30;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (!this.noTileCollide)
|
|
{
|
|
Vector4 vector = Collision.WalkDownSlope(this.position, this.velocity, this.width, this.height, NPC.gravity);
|
|
this.position.X = vector.X;
|
|
this.position.Y = vector.Y;
|
|
this.velocity.X = vector.Z;
|
|
this.velocity.Y = vector.W;
|
|
bool flag3 = Collision.LavaCollision(this.position, this.width, this.height);
|
|
if (flag3)
|
|
{
|
|
this.lavaWet = true;
|
|
if (!this.lavaImmune && !this.dontTakeDamage && Main.netMode != 1 && this.immune[255] == 0)
|
|
{
|
|
this.AddBuff(24, 420, false);
|
|
this.immune[255] = 30;
|
|
this.StrikeNPC(50, 0f, 0, false, false);
|
|
if (Main.netMode == 2 && Main.netMode != 0)
|
|
{
|
|
NetMessage.SendData(28, -1, -1, "", this.whoAmI, 50f, 0f, 0f, 0);
|
|
}
|
|
}
|
|
}
|
|
bool flag4;
|
|
if (this.type == 72 || this.aiStyle == 21)
|
|
{
|
|
flag4 = false;
|
|
this.wetCount = 0;
|
|
flag3 = false;
|
|
}
|
|
else
|
|
{
|
|
flag4 = Collision.WetCollision(this.position, this.width, this.height);
|
|
if (Collision.honey)
|
|
{
|
|
this.honeyWet = true;
|
|
}
|
|
}
|
|
if (flag4)
|
|
{
|
|
if (this.onFire && !this.lavaWet && Main.netMode != 1)
|
|
{
|
|
for (int n = 0; n < 5; n++)
|
|
{
|
|
if (this.buffType[n] == 24)
|
|
{
|
|
this.DelBuff(n);
|
|
}
|
|
}
|
|
}
|
|
if (!this.wet && this.wetCount == 0)
|
|
{
|
|
this.wetCount = 10;
|
|
if (!flag3)
|
|
{
|
|
if (this.honeyWet)
|
|
{
|
|
for (int num19 = 0; num19 < 10; num19++)
|
|
{
|
|
int num20 = Dust.NewDust(new Vector2(this.position.X - 6f, this.position.Y + (float)(this.height / 2) - 8f), this.width + 12, 24, 152, 0f, 0f, 0, default(Color), 1f);
|
|
Dust expr_F65_cp_0 = Main.dust[num20];
|
|
expr_F65_cp_0.velocity.Y = expr_F65_cp_0.velocity.Y - 1f;
|
|
Dust expr_F83_cp_0 = Main.dust[num20];
|
|
expr_F83_cp_0.velocity.X = expr_F83_cp_0.velocity.X * 2.5f;
|
|
Main.dust[num20].scale = 1.3f;
|
|
Main.dust[num20].alpha = 100;
|
|
Main.dust[num20].noGravity = true;
|
|
}
|
|
if (this.aiStyle != 1 && this.type != 1 && this.type != 16 && this.type != 147 && this.type != 59 && this.aiStyle != 39 && !this.noGravity)
|
|
{
|
|
Main.PlaySound(19, (int)this.position.X, (int)this.position.Y, 1);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for (int num21 = 0; num21 < 30; num21++)
|
|
{
|
|
int num22 = Dust.NewDust(new Vector2(this.position.X - 6f, this.position.Y + (float)(this.height / 2) - 8f), this.width + 12, 24, Dust.dustWater(), 0f, 0f, 0, default(Color), 1f);
|
|
Dust expr_10C8_cp_0 = Main.dust[num22];
|
|
expr_10C8_cp_0.velocity.Y = expr_10C8_cp_0.velocity.Y - 4f;
|
|
Dust expr_10E6_cp_0 = Main.dust[num22];
|
|
expr_10E6_cp_0.velocity.X = expr_10E6_cp_0.velocity.X * 2.5f;
|
|
Main.dust[num22].scale *= 0.8f;
|
|
Main.dust[num22].alpha = 100;
|
|
Main.dust[num22].noGravity = true;
|
|
}
|
|
if (this.aiStyle != 1 && this.type != 1 && this.type != 16 && this.type != 147 && this.type != 59 && this.aiStyle != 39 && !this.noGravity)
|
|
{
|
|
Main.PlaySound(19, (int)this.position.X, (int)this.position.Y, 0);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for (int num23 = 0; num23 < 10; num23++)
|
|
{
|
|
int num24 = Dust.NewDust(new Vector2(this.position.X - 6f, this.position.Y + (float)(this.height / 2) - 8f), this.width + 12, 24, 35, 0f, 0f, 0, default(Color), 1f);
|
|
Dust expr_122F_cp_0 = Main.dust[num24];
|
|
expr_122F_cp_0.velocity.Y = expr_122F_cp_0.velocity.Y - 1.5f;
|
|
Dust expr_124D_cp_0 = Main.dust[num24];
|
|
expr_124D_cp_0.velocity.X = expr_124D_cp_0.velocity.X * 2.5f;
|
|
Main.dust[num24].scale = 1.3f;
|
|
Main.dust[num24].alpha = 100;
|
|
Main.dust[num24].noGravity = true;
|
|
}
|
|
if (this.aiStyle != 1 && this.type != 1 && this.type != 16 && this.type != 147 && this.type != 59 && this.aiStyle != 39 && !this.noGravity)
|
|
{
|
|
Main.PlaySound(19, (int)this.position.X, (int)this.position.Y, 1);
|
|
}
|
|
}
|
|
}
|
|
this.wet = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.wet)
|
|
{
|
|
this.velocity.X = this.velocity.X * 0.5f;
|
|
this.wet = false;
|
|
if (this.wetCount == 0)
|
|
{
|
|
this.wetCount = 10;
|
|
if (!this.lavaWet)
|
|
{
|
|
if (this.honeyWet)
|
|
{
|
|
for (int num25 = 0; num25 < 10; num25++)
|
|
{
|
|
int num26 = Dust.NewDust(new Vector2(this.position.X - 6f, this.position.Y + (float)(this.height / 2) - 8f), this.width + 12, 24, 152, 0f, 0f, 0, default(Color), 1f);
|
|
Dust expr_13D6_cp_0 = Main.dust[num26];
|
|
expr_13D6_cp_0.velocity.Y = expr_13D6_cp_0.velocity.Y - 1f;
|
|
Dust expr_13F4_cp_0 = Main.dust[num26];
|
|
expr_13F4_cp_0.velocity.X = expr_13F4_cp_0.velocity.X * 2.5f;
|
|
Main.dust[num26].scale = 1.3f;
|
|
Main.dust[num26].alpha = 100;
|
|
Main.dust[num26].noGravity = true;
|
|
}
|
|
if (this.aiStyle != 1 && this.type != 1 && this.type != 16 && this.type != 147 && this.type != 59 && this.aiStyle != 39 && !this.noGravity)
|
|
{
|
|
Main.PlaySound(19, (int)this.position.X, (int)this.position.Y, 1);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for (int num27 = 0; num27 < 30; num27++)
|
|
{
|
|
int num28 = Dust.NewDust(new Vector2(this.position.X - 6f, this.position.Y + (float)(this.height / 2) - 8f), this.width + 12, 24, Dust.dustWater(), 0f, 0f, 0, default(Color), 1f);
|
|
Dust expr_1539_cp_0 = Main.dust[num28];
|
|
expr_1539_cp_0.velocity.Y = expr_1539_cp_0.velocity.Y - 4f;
|
|
Dust expr_1557_cp_0 = Main.dust[num28];
|
|
expr_1557_cp_0.velocity.X = expr_1557_cp_0.velocity.X * 2.5f;
|
|
Main.dust[num28].scale *= 0.8f;
|
|
Main.dust[num28].alpha = 100;
|
|
Main.dust[num28].noGravity = true;
|
|
}
|
|
if (this.aiStyle != 1 && this.type != 1 && this.type != 16 && this.type != 59 && this.aiStyle != 39 && !this.noGravity)
|
|
{
|
|
Main.PlaySound(19, (int)this.position.X, (int)this.position.Y, 0);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
for (int num29 = 0; num29 < 10; num29++)
|
|
{
|
|
int num30 = Dust.NewDust(new Vector2(this.position.X - 6f, this.position.Y + (float)(this.height / 2) - 8f), this.width + 12, 24, 35, 0f, 0f, 0, default(Color), 1f);
|
|
Dust expr_1690_cp_0 = Main.dust[num30];
|
|
expr_1690_cp_0.velocity.Y = expr_1690_cp_0.velocity.Y - 1.5f;
|
|
Dust expr_16AE_cp_0 = Main.dust[num30];
|
|
expr_16AE_cp_0.velocity.X = expr_16AE_cp_0.velocity.X * 2.5f;
|
|
Main.dust[num30].scale = 1.3f;
|
|
Main.dust[num30].alpha = 100;
|
|
Main.dust[num30].noGravity = true;
|
|
}
|
|
if (this.aiStyle != 1 && this.type != 1 && this.type != 16 && this.type != 59 && this.aiStyle != 39 && !this.noGravity)
|
|
{
|
|
Main.PlaySound(19, (int)this.position.X, (int)this.position.Y, 1);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (!this.wet)
|
|
{
|
|
this.lavaWet = false;
|
|
this.honeyWet = false;
|
|
}
|
|
if (this.wetCount > 0)
|
|
{
|
|
this.wetCount -= 1;
|
|
}
|
|
bool flag5 = false;
|
|
if (this.aiStyle == 10)
|
|
{
|
|
flag5 = true;
|
|
}
|
|
if (this.aiStyle == 14)
|
|
{
|
|
flag5 = true;
|
|
}
|
|
if (this.aiStyle == 3 && this.directionY == 1)
|
|
{
|
|
flag5 = true;
|
|
}
|
|
this.oldVelocity = this.velocity;
|
|
this.collideX = false;
|
|
this.collideY = false;
|
|
if (Main.netMode != 1)
|
|
{
|
|
if (this.type == 230 && this.wet)
|
|
{
|
|
int num31 = this.direction;
|
|
Vector2 vector2 = this.velocity;
|
|
this.Transform(55);
|
|
this.direction = num31;
|
|
this.velocity = vector2;
|
|
this.wet = true;
|
|
if (this.velocity.Y < 0f)
|
|
{
|
|
this.velocity.Y = 0f;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 55 && !this.wet && Main.raining)
|
|
{
|
|
int num32 = this.direction;
|
|
Vector2 vector3 = this.velocity;
|
|
this.Transform(230);
|
|
this.direction = num32;
|
|
this.velocity = vector3;
|
|
this.homeTileX = (int)(this.position.X / 16f) + 10 * this.direction;
|
|
}
|
|
}
|
|
}
|
|
Vector2 vector4 = this.position;
|
|
int num33 = this.width;
|
|
int num34 = this.height;
|
|
if (this.type == 243)
|
|
{
|
|
num34 = 90;
|
|
}
|
|
if (this.type == 290)
|
|
{
|
|
num34 = 40;
|
|
}
|
|
if (num34 != this.height)
|
|
{
|
|
vector4.Y += (float)(this.height - num34);
|
|
}
|
|
if (this.wet)
|
|
{
|
|
if (this.honeyWet)
|
|
{
|
|
Vector2 vector5 = this.velocity;
|
|
this.velocity = Collision.TileCollision(vector4, this.velocity, num33, num34, flag5, flag5);
|
|
if (Collision.up)
|
|
{
|
|
this.velocity.Y = 0.01f;
|
|
}
|
|
Vector2 value = this.velocity * 0.25f;
|
|
if (this.velocity.X != vector5.X)
|
|
{
|
|
value.X = this.velocity.X;
|
|
this.collideX = true;
|
|
}
|
|
if (this.velocity.Y != vector5.Y)
|
|
{
|
|
value.Y = this.velocity.Y;
|
|
this.collideY = true;
|
|
}
|
|
this.oldPosition = this.position;
|
|
this.position += value;
|
|
}
|
|
else
|
|
{
|
|
Vector2 vector6 = this.velocity;
|
|
this.velocity = Collision.TileCollision(vector4, this.velocity, num33, num34, flag5, flag5);
|
|
if (Collision.up)
|
|
{
|
|
this.velocity.Y = 0.01f;
|
|
}
|
|
Vector2 value2 = this.velocity * 0.5f;
|
|
if (this.velocity.X != vector6.X)
|
|
{
|
|
value2.X = this.velocity.X;
|
|
this.collideX = true;
|
|
}
|
|
if (this.velocity.Y != vector6.Y)
|
|
{
|
|
value2.Y = this.velocity.Y;
|
|
this.collideY = true;
|
|
}
|
|
this.oldPosition = this.position;
|
|
this.position += value2;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 72)
|
|
{
|
|
Vector2 vector7 = new Vector2(this.position.X + (float)(this.width / 2), this.position.Y + (float)(this.height / 2));
|
|
int num35 = 12;
|
|
int num36 = 12;
|
|
vector7.X -= (float)(num35 / 2);
|
|
vector7.Y -= (float)(num36 / 2);
|
|
this.velocity = Collision.noSlopeCollision(vector4, this.velocity, num33, num34, true, true);
|
|
}
|
|
else
|
|
{
|
|
this.velocity = Collision.TileCollision(vector4, this.velocity, num33, num34, flag5, flag5);
|
|
}
|
|
if (Collision.up)
|
|
{
|
|
this.velocity.Y = 0.01f;
|
|
}
|
|
if (this.oldVelocity.X != this.velocity.X)
|
|
{
|
|
this.collideX = true;
|
|
}
|
|
if (this.oldVelocity.Y != this.velocity.Y)
|
|
{
|
|
this.collideY = true;
|
|
}
|
|
this.oldPosition = this.position;
|
|
this.position += this.velocity;
|
|
}
|
|
Vector4 vector8 = Collision.SlopeCollision(this.position, this.velocity, this.width, this.height, NPC.gravity);
|
|
this.position.X = vector8.X;
|
|
this.position.Y = vector8.Y;
|
|
this.velocity.X = vector8.Z;
|
|
this.velocity.Y = vector8.W;
|
|
}
|
|
else
|
|
{
|
|
this.oldPosition = this.position;
|
|
this.position += this.velocity;
|
|
}
|
|
if (Main.netMode != 1 && !this.noTileCollide && this.lifeMax > 1 && Collision.SwitchTiles(this.position, this.width, this.height, this.oldPosition, 2) && (this.type == 46 || this.type == 148 || this.type == 149))
|
|
{
|
|
this.ai[0] = 1f;
|
|
this.ai[1] = 400f;
|
|
this.ai[2] = 0f;
|
|
}
|
|
this.FindFrame();
|
|
if (this.type == 120 || this.type == 137 || this.type == 138)
|
|
{
|
|
for (int num37 = this.oldPos.Length - 1; num37 > 0; num37--)
|
|
{
|
|
this.oldPos[num37] = this.oldPos[num37 - 1];
|
|
Lighting.addLight((int)this.position.X / 16, (int)this.position.Y / 16, 0.3f, 0f, 0.2f);
|
|
}
|
|
this.oldPos[0] = this.position;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 94)
|
|
{
|
|
for (int num38 = this.oldPos.Length - 1; num38 > 0; num38--)
|
|
{
|
|
this.oldPos[num38] = this.oldPos[num38 - 1];
|
|
}
|
|
this.oldPos[0] = this.position;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 125 || this.type == 126 || this.type == 127 || this.type == 128 || this.type == 129 || this.type == 130 || this.type == 131 || this.type == 139 || this.type == 140)
|
|
{
|
|
for (int num39 = this.oldPos.Length - 1; num39 > 0; num39--)
|
|
{
|
|
this.oldPos[num39] = this.oldPos[num39 - 1];
|
|
}
|
|
this.oldPos[0] = this.position;
|
|
}
|
|
}
|
|
}
|
|
if (!this.active)
|
|
{
|
|
this.netUpdate = true;
|
|
}
|
|
if (Main.netMode == 2)
|
|
{
|
|
if (Main.npcStreamSpeed > 0 && !this.townNPC && Math.Abs(this.velocity.X) + Math.Abs(this.velocity.Y) > 1f)
|
|
{
|
|
this.netStream += 1;
|
|
if ((int)this.netStream > Main.npcStreamSpeed)
|
|
{
|
|
for (int num40 = 0; num40 < 255; num40++)
|
|
{
|
|
if (Main.player[num40].active)
|
|
{
|
|
float num41 = Math.Abs(this.center().X - Main.player[num40].center().X) + Math.Abs(this.center().Y - Main.player[num40].center().Y);
|
|
if (num41 < 250f)
|
|
{
|
|
byte[] expr_1FAE_cp_0 = this.streamPlayer;
|
|
int expr_1FAE_cp_1 = num40;
|
|
expr_1FAE_cp_0[expr_1FAE_cp_1] -= 8;
|
|
}
|
|
else
|
|
{
|
|
if (num41 < 500f)
|
|
{
|
|
byte[] expr_1FD4_cp_0 = this.streamPlayer;
|
|
int expr_1FD4_cp_1 = num40;
|
|
expr_1FD4_cp_0[expr_1FD4_cp_1] -= 4;
|
|
}
|
|
else
|
|
{
|
|
if (num41 < 1000f)
|
|
{
|
|
byte[] expr_1FFA_cp_0 = this.streamPlayer;
|
|
int expr_1FFA_cp_1 = num40;
|
|
expr_1FFA_cp_0[expr_1FFA_cp_1] -= 2;
|
|
}
|
|
else
|
|
{
|
|
if (num41 < 1500f)
|
|
{
|
|
byte[] expr_2020_cp_0 = this.streamPlayer;
|
|
int expr_2020_cp_1 = num40;
|
|
expr_2020_cp_0[expr_2020_cp_1] -= 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.streamPlayer[num40] <= 0)
|
|
{
|
|
this.streamPlayer[num40] = 8;
|
|
NetMessage.SendData(23, num40, -1, "", i, 0f, 0f, 0f, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (this.townNPC)
|
|
{
|
|
this.netSpam = 0;
|
|
}
|
|
if (this.netUpdate2)
|
|
{
|
|
this.netUpdate = true;
|
|
}
|
|
if (!this.active)
|
|
{
|
|
this.netSpam = 0;
|
|
}
|
|
if (this.netUpdate)
|
|
{
|
|
if (this.netSpam <= 90)
|
|
{
|
|
this.netSpam += 30;
|
|
NetMessage.SendData(23, -1, -1, "", i, 0f, 0f, 0f, 0);
|
|
this.netUpdate2 = false;
|
|
}
|
|
else
|
|
{
|
|
this.netUpdate2 = true;
|
|
}
|
|
}
|
|
if (this.netSpam > 0)
|
|
{
|
|
this.netSpam--;
|
|
}
|
|
if (this.active && this.townNPC && NPC.TypeToNum(this.type) != -1)
|
|
{
|
|
if (this.homeless != this.oldHomeless || this.homeTileX != this.oldHomeTileX || this.homeTileY != this.oldHomeTileY)
|
|
{
|
|
int num42 = 0;
|
|
if (this.homeless)
|
|
{
|
|
num42 = 1;
|
|
}
|
|
NetMessage.SendData(60, -1, -1, "", i, (float)Main.npc[i].homeTileX, (float)Main.npc[i].homeTileY, (float)num42, 0);
|
|
}
|
|
this.oldHomeless = this.homeless;
|
|
this.oldHomeTileX = this.homeTileX;
|
|
this.oldHomeTileY = this.homeTileY;
|
|
}
|
|
}
|
|
this.CheckActive();
|
|
this.netUpdate = false;
|
|
this.justHit = false;
|
|
}
|
|
}
|
|
public Color GetAlpha(Color newColor)
|
|
{
|
|
float num = (float)(255 - this.alpha) / 255f;
|
|
int num2 = (int)((float)newColor.R * num);
|
|
int num3 = (int)((float)newColor.G * num);
|
|
int num4 = (int)((float)newColor.B * num);
|
|
int num5 = (int)newColor.A - this.alpha;
|
|
if (this.type == 25 || this.type == 30 || this.type == 59 || this.type == 60)
|
|
{
|
|
return new Color(200, 200, 200, 0);
|
|
}
|
|
if (this.type == 72)
|
|
{
|
|
num2 = (int)newColor.R;
|
|
num3 = (int)newColor.G;
|
|
num4 = (int)newColor.B;
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 288)
|
|
{
|
|
return new Color(200, 200, 200, 0);
|
|
}
|
|
if (this.type == 289)
|
|
{
|
|
return new Color(250, 250, 250, 50);
|
|
}
|
|
if (this.type >= 254 && this.type <= 261)
|
|
{
|
|
num4 = 255;
|
|
if (num2 < 100)
|
|
{
|
|
num2 = 100;
|
|
}
|
|
if (num3 < 150)
|
|
{
|
|
num3 = 150;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 64 || this.type == 63 || this.type == 75 || this.type == 103)
|
|
{
|
|
num2 = (int)((double)newColor.R * 1.5);
|
|
num3 = (int)((double)newColor.G * 1.5);
|
|
num4 = (int)((double)newColor.B * 1.5);
|
|
if (num2 > 255)
|
|
{
|
|
num2 = 255;
|
|
}
|
|
if (num3 > 255)
|
|
{
|
|
num3 = 255;
|
|
}
|
|
if (num4 > 255)
|
|
{
|
|
num4 = 255;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (num5 < 0)
|
|
{
|
|
num5 = 0;
|
|
}
|
|
if (num5 > 255)
|
|
{
|
|
num5 = 255;
|
|
}
|
|
return new Color(num2, num3, num4, num5);
|
|
}
|
|
public Color GetColor(Color newColor)
|
|
{
|
|
int num = (int)(this.color.R - (255 - newColor.R));
|
|
int num2 = (int)(this.color.G - (255 - newColor.G));
|
|
int num3 = (int)(this.color.B - (255 - newColor.B));
|
|
int num4 = (int)(this.color.A - (255 - newColor.A));
|
|
if (num < 0)
|
|
{
|
|
num = 0;
|
|
}
|
|
if (num > 255)
|
|
{
|
|
num = 255;
|
|
}
|
|
if (num2 < 0)
|
|
{
|
|
num2 = 0;
|
|
}
|
|
if (num2 > 255)
|
|
{
|
|
num2 = 255;
|
|
}
|
|
if (num3 < 0)
|
|
{
|
|
num3 = 0;
|
|
}
|
|
if (num3 > 255)
|
|
{
|
|
num3 = 255;
|
|
}
|
|
if (num4 < 0)
|
|
{
|
|
num4 = 0;
|
|
}
|
|
if (num4 > 255)
|
|
{
|
|
num4 = 255;
|
|
}
|
|
return new Color(num, num2, num3, num4);
|
|
}
|
|
public string GetChat()
|
|
{
|
|
Recipe.FindRecipes();
|
|
bool flag = false;
|
|
bool flag2 = false;
|
|
bool flag3 = false;
|
|
bool flag4 = false;
|
|
bool flag5 = false;
|
|
bool flag6 = false;
|
|
bool flag7 = false;
|
|
bool flag8 = false;
|
|
bool flag9 = false;
|
|
bool flag10 = false;
|
|
bool flag11 = false;
|
|
bool flag12 = false;
|
|
bool flag13 = false;
|
|
bool flag14 = false;
|
|
bool flag15 = false;
|
|
for (int i = 0; i < 200; i++)
|
|
{
|
|
if (Main.npc[i].active)
|
|
{
|
|
if (Main.npc[i].type == 17)
|
|
{
|
|
flag = true;
|
|
}
|
|
else
|
|
{
|
|
if (Main.npc[i].type == 18)
|
|
{
|
|
flag2 = true;
|
|
}
|
|
else
|
|
{
|
|
if (Main.npc[i].type == 19)
|
|
{
|
|
flag3 = true;
|
|
}
|
|
else
|
|
{
|
|
if (Main.npc[i].type == 20)
|
|
{
|
|
flag4 = true;
|
|
}
|
|
else
|
|
{
|
|
if (Main.npc[i].type == 37)
|
|
{
|
|
flag5 = true;
|
|
}
|
|
else
|
|
{
|
|
if (Main.npc[i].type == 38)
|
|
{
|
|
flag6 = true;
|
|
}
|
|
else
|
|
{
|
|
if (Main.npc[i].type == 124)
|
|
{
|
|
flag7 = true;
|
|
}
|
|
else
|
|
{
|
|
if (Main.npc[i].type == 107)
|
|
{
|
|
flag8 = true;
|
|
}
|
|
else
|
|
{
|
|
if (Main.npc[i].type == 54)
|
|
{
|
|
flag9 = true;
|
|
}
|
|
else
|
|
{
|
|
if (Main.npc[i].type == 160)
|
|
{
|
|
flag10 = true;
|
|
}
|
|
else
|
|
{
|
|
if (Main.npc[i].type == 178)
|
|
{
|
|
flag11 = true;
|
|
}
|
|
else
|
|
{
|
|
if (Main.npc[i].type == 229)
|
|
{
|
|
flag12 = true;
|
|
}
|
|
else
|
|
{
|
|
if (Main.npc[i].type == 209)
|
|
{
|
|
flag13 = true;
|
|
}
|
|
else
|
|
{
|
|
if (Main.npc[i].type == 208)
|
|
{
|
|
flag14 = true;
|
|
}
|
|
else
|
|
{
|
|
if (Main.npc[i].type == 2)
|
|
{
|
|
flag15 = true;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
string result = "";
|
|
if (this.type == 17)
|
|
{
|
|
if (!NPC.downedBoss1 && Main.rand.Next(3) == 0)
|
|
{
|
|
if (Main.player[Main.myPlayer].statLifeMax < 200)
|
|
{
|
|
result = Lang.dialog(1, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[Main.myPlayer].statDefense <= 10)
|
|
{
|
|
result = Lang.dialog(2, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(3, false);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.dayTime)
|
|
{
|
|
if (Main.time < 16200.0)
|
|
{
|
|
int num = Main.rand.Next(3);
|
|
if (num == 0)
|
|
{
|
|
result = Lang.dialog(4, false);
|
|
}
|
|
else
|
|
{
|
|
if (num == 1)
|
|
{
|
|
result = Lang.dialog(5, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(6, false);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.time > 37800.0)
|
|
{
|
|
int num2 = Main.rand.Next(3);
|
|
if (num2 == 0)
|
|
{
|
|
result = Lang.dialog(7, false);
|
|
}
|
|
else
|
|
{
|
|
if (num2 == 1)
|
|
{
|
|
result = Lang.dialog(8, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(9, false);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
int num3 = Main.rand.Next(3);
|
|
if (num3 == 0)
|
|
{
|
|
result = Lang.dialog(10, false);
|
|
}
|
|
else
|
|
{
|
|
if (num3 == 1)
|
|
{
|
|
result = Lang.dialog(11, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(12, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.bloodMoon)
|
|
{
|
|
if (flag2 && flag7 && Main.rand.Next(3) == 0)
|
|
{
|
|
result = Lang.dialog(13, false);
|
|
}
|
|
else
|
|
{
|
|
int num4 = Main.rand.Next(4);
|
|
if (num4 == 0)
|
|
{
|
|
result = Lang.dialog(14, false);
|
|
}
|
|
else
|
|
{
|
|
if (num4 == 1)
|
|
{
|
|
result = Lang.dialog(15, false);
|
|
}
|
|
else
|
|
{
|
|
if (num4 == 2)
|
|
{
|
|
result = Lang.dialog(16, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(17, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.time < 9720.0)
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
result = Lang.dialog(18, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(19, false);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.time > 22680.0)
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
result = Lang.dialog(20, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(21, false);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
int num5 = Main.rand.Next(3);
|
|
if (num5 == 0)
|
|
{
|
|
result = Lang.dialog(22, false);
|
|
}
|
|
else
|
|
{
|
|
if (num5 == 1)
|
|
{
|
|
result = Lang.dialog(23, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(24, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 18)
|
|
{
|
|
if (Main.bloodMoon)
|
|
{
|
|
if ((double)Main.player[Main.myPlayer].statLife < (double)Main.player[Main.myPlayer].statLifeMax * 0.66)
|
|
{
|
|
int num6 = Main.rand.Next(3);
|
|
if (num6 == 0)
|
|
{
|
|
result = Lang.dialog(25, false);
|
|
}
|
|
else
|
|
{
|
|
if (num6 == 1)
|
|
{
|
|
result = Lang.dialog(26, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(27, false);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
int num7 = Main.rand.Next(4);
|
|
if (num7 == 0)
|
|
{
|
|
result = Lang.dialog(28, false);
|
|
}
|
|
else
|
|
{
|
|
if (num7 == 1)
|
|
{
|
|
result = Lang.dialog(29, false);
|
|
}
|
|
else
|
|
{
|
|
if (num7 == 2)
|
|
{
|
|
result = Lang.dialog(30, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(31, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.rand.Next(3) == 0 && !NPC.downedBoss3)
|
|
{
|
|
result = Lang.dialog(32, false);
|
|
}
|
|
else
|
|
{
|
|
if (flag6 && Main.rand.Next(4) == 0)
|
|
{
|
|
result = Lang.dialog(33, false);
|
|
}
|
|
else
|
|
{
|
|
if (flag3 && Main.rand.Next(4) == 0)
|
|
{
|
|
result = Lang.dialog(34, false);
|
|
}
|
|
else
|
|
{
|
|
if (flag15 && Main.rand.Next(4) == 0)
|
|
{
|
|
result = Lang.dialog(35, false);
|
|
}
|
|
else
|
|
{
|
|
if ((double)Main.player[Main.myPlayer].statLife < (double)Main.player[Main.myPlayer].statLifeMax * 0.33)
|
|
{
|
|
int num8 = Main.rand.Next(5);
|
|
if (num8 == 0)
|
|
{
|
|
result = Lang.dialog(36, false);
|
|
}
|
|
else
|
|
{
|
|
if (num8 == 1)
|
|
{
|
|
result = Lang.dialog(37, false);
|
|
}
|
|
else
|
|
{
|
|
if (num8 == 2)
|
|
{
|
|
result = Lang.dialog(38, false);
|
|
}
|
|
else
|
|
{
|
|
if (num8 == 3)
|
|
{
|
|
result = Lang.dialog(39, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(40, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if ((double)Main.player[Main.myPlayer].statLife < (double)Main.player[Main.myPlayer].statLifeMax * 0.66)
|
|
{
|
|
int num9 = Main.rand.Next(7);
|
|
if (num9 == 0)
|
|
{
|
|
result = Lang.dialog(41, false);
|
|
}
|
|
else
|
|
{
|
|
if (num9 == 1)
|
|
{
|
|
result = Lang.dialog(42, false);
|
|
}
|
|
else
|
|
{
|
|
if (num9 == 2)
|
|
{
|
|
result = Lang.dialog(43, false);
|
|
}
|
|
else
|
|
{
|
|
if (num9 == 3)
|
|
{
|
|
result = Lang.dialog(44, false);
|
|
}
|
|
else
|
|
{
|
|
if (num9 == 4)
|
|
{
|
|
result = Lang.dialog(45, false);
|
|
}
|
|
else
|
|
{
|
|
if (num9 == 5)
|
|
{
|
|
result = Lang.dialog(46, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(47, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
int num10 = Main.rand.Next(4);
|
|
if (num10 == 0)
|
|
{
|
|
result = Lang.dialog(48, false);
|
|
}
|
|
else
|
|
{
|
|
if (num10 == 1)
|
|
{
|
|
result = Lang.dialog(49, false);
|
|
}
|
|
else
|
|
{
|
|
if (num10 == 2)
|
|
{
|
|
result = Lang.dialog(50, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(51, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 19)
|
|
{
|
|
if (NPC.downedBoss3 && !Main.hardMode)
|
|
{
|
|
result = Lang.dialog(58, false);
|
|
}
|
|
else
|
|
{
|
|
if (flag2 && Main.rand.Next(5) == 0)
|
|
{
|
|
result = Lang.dialog(59, false);
|
|
}
|
|
else
|
|
{
|
|
if (flag2 && Main.rand.Next(5) == 0)
|
|
{
|
|
result = Lang.dialog(60, false);
|
|
}
|
|
else
|
|
{
|
|
if (flag4 && Main.rand.Next(5) == 0)
|
|
{
|
|
result = Lang.dialog(61, false);
|
|
}
|
|
else
|
|
{
|
|
if (flag6 && Main.rand.Next(5) == 0)
|
|
{
|
|
result = Lang.dialog(62, false);
|
|
}
|
|
else
|
|
{
|
|
if (flag6 && Main.rand.Next(5) == 0)
|
|
{
|
|
result = Lang.dialog(63, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.bloodMoon)
|
|
{
|
|
if (Main.rand.Next(2) == 0)
|
|
{
|
|
result = Lang.dialog(64, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(65, false);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
int num11 = Main.rand.Next(3);
|
|
if (num11 == 0)
|
|
{
|
|
result = Lang.dialog(66, false);
|
|
}
|
|
else
|
|
{
|
|
if (num11 == 1)
|
|
{
|
|
result = Lang.dialog(67, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(68, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 20)
|
|
{
|
|
if (!NPC.downedBoss2 && Main.rand.Next(3) == 0)
|
|
{
|
|
result = Lang.dialog(69, false);
|
|
}
|
|
else
|
|
{
|
|
if (flag3 && Main.rand.Next(6) == 0)
|
|
{
|
|
result = Lang.dialog(70, false);
|
|
}
|
|
else
|
|
{
|
|
if (flag && Main.rand.Next(6) == 0)
|
|
{
|
|
result = Lang.dialog(71, false);
|
|
}
|
|
else
|
|
{
|
|
if (flag5 && Main.rand.Next(6) == 0)
|
|
{
|
|
result = Lang.dialog(72, false);
|
|
}
|
|
else
|
|
{
|
|
if (flag10 && Main.rand.Next(6) == 0)
|
|
{
|
|
result = Lang.dialog(238, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.bloodMoon)
|
|
{
|
|
int num12 = Main.rand.Next(4);
|
|
if (num12 == 0)
|
|
{
|
|
result = Lang.dialog(73, false);
|
|
}
|
|
else
|
|
{
|
|
if (num12 == 1)
|
|
{
|
|
result = Lang.dialog(74, false);
|
|
}
|
|
else
|
|
{
|
|
if (num12 == 2)
|
|
{
|
|
result = Lang.dialog(75, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(76, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
int num13 = Main.rand.Next(5);
|
|
if (num13 == 0)
|
|
{
|
|
result = Lang.dialog(77, false);
|
|
}
|
|
else
|
|
{
|
|
if (num13 == 1)
|
|
{
|
|
result = Lang.dialog(78, false);
|
|
}
|
|
else
|
|
{
|
|
if (num13 == 2)
|
|
{
|
|
result = Lang.dialog(79, false);
|
|
}
|
|
else
|
|
{
|
|
if (num13 == 3)
|
|
{
|
|
result = Lang.dialog(80, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(81, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 37)
|
|
{
|
|
if (Main.dayTime)
|
|
{
|
|
int num14 = Main.rand.Next(3);
|
|
if (num14 == 0)
|
|
{
|
|
result = Lang.dialog(82, false);
|
|
}
|
|
else
|
|
{
|
|
if (num14 == 1)
|
|
{
|
|
result = Lang.dialog(83, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(84, false);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[Main.myPlayer].statLifeMax < 300 || Main.player[Main.myPlayer].statDefense < 10)
|
|
{
|
|
int num15 = Main.rand.Next(4);
|
|
if (num15 == 0)
|
|
{
|
|
result = Lang.dialog(85, false);
|
|
}
|
|
else
|
|
{
|
|
if (num15 == 1)
|
|
{
|
|
result = Lang.dialog(86, false);
|
|
}
|
|
else
|
|
{
|
|
if (num15 == 2)
|
|
{
|
|
result = Lang.dialog(87, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(88, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
int num16 = Main.rand.Next(4);
|
|
if (num16 == 0)
|
|
{
|
|
result = Lang.dialog(89, false);
|
|
}
|
|
else
|
|
{
|
|
if (num16 == 1)
|
|
{
|
|
result = Lang.dialog(90, false);
|
|
}
|
|
else
|
|
{
|
|
if (num16 == 2)
|
|
{
|
|
result = Lang.dialog(91, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(92, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 38)
|
|
{
|
|
if (!NPC.downedBoss2 && Main.rand.Next(3) == 0)
|
|
{
|
|
result = Lang.dialog(93, false);
|
|
}
|
|
if (Main.bloodMoon)
|
|
{
|
|
int num17 = Main.rand.Next(3);
|
|
if (num17 == 0)
|
|
{
|
|
result = Lang.dialog(94, false);
|
|
}
|
|
else
|
|
{
|
|
if (num17 == 1)
|
|
{
|
|
result = Lang.dialog(95, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(96, false);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (flag3 && Main.rand.Next(5) == 0)
|
|
{
|
|
result = Lang.dialog(97, false);
|
|
}
|
|
else
|
|
{
|
|
if (flag3 && Main.rand.Next(5) == 0)
|
|
{
|
|
result = Lang.dialog(98, false);
|
|
}
|
|
else
|
|
{
|
|
if (flag2 && Main.rand.Next(4) == 0)
|
|
{
|
|
result = Lang.dialog(99, false);
|
|
}
|
|
else
|
|
{
|
|
if (flag4 && Main.rand.Next(4) == 0)
|
|
{
|
|
result = Lang.dialog(100, false);
|
|
}
|
|
else
|
|
{
|
|
if (!Main.dayTime)
|
|
{
|
|
int num18 = Main.rand.Next(4);
|
|
if (num18 == 0)
|
|
{
|
|
result = Lang.dialog(101, false);
|
|
}
|
|
else
|
|
{
|
|
if (num18 == 1)
|
|
{
|
|
result = Lang.dialog(102, false);
|
|
}
|
|
else
|
|
{
|
|
if (num18 == 2)
|
|
{
|
|
result = Lang.dialog(103, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(104, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
int num19 = Main.rand.Next(5);
|
|
if (num19 == 0)
|
|
{
|
|
result = Lang.dialog(105, false);
|
|
}
|
|
else
|
|
{
|
|
if (num19 == 1)
|
|
{
|
|
result = Lang.dialog(106, false);
|
|
}
|
|
else
|
|
{
|
|
if (num19 == 2)
|
|
{
|
|
result = Lang.dialog(107, false);
|
|
}
|
|
else
|
|
{
|
|
if (num19 == 3)
|
|
{
|
|
result = Lang.dialog(108, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(109, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 54)
|
|
{
|
|
if (!flag7 && Main.rand.Next(2) == 0)
|
|
{
|
|
result = Lang.dialog(110, false);
|
|
}
|
|
else
|
|
{
|
|
if (flag10 && Main.rand.Next(6) == 0)
|
|
{
|
|
result = Lang.dialog(237, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.bloodMoon)
|
|
{
|
|
result = Lang.dialog(111, false);
|
|
}
|
|
else
|
|
{
|
|
if (flag2 && Main.rand.Next(4) == 0)
|
|
{
|
|
result = Lang.dialog(112, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[Main.myPlayer].head == 24)
|
|
{
|
|
result = Lang.dialog(113, false);
|
|
}
|
|
else
|
|
{
|
|
int num20 = Main.rand.Next(6);
|
|
if (num20 == 0)
|
|
{
|
|
result = Lang.dialog(114, false);
|
|
}
|
|
else
|
|
{
|
|
if (num20 == 1)
|
|
{
|
|
result = Lang.dialog(115, false);
|
|
}
|
|
else
|
|
{
|
|
if (num20 == 2)
|
|
{
|
|
result = Lang.dialog(116, false);
|
|
}
|
|
else
|
|
{
|
|
if (num20 == 3)
|
|
{
|
|
result = Lang.dialog(117, false);
|
|
}
|
|
else
|
|
{
|
|
if (num20 == 4)
|
|
{
|
|
result = Lang.dialog(118, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(119, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 105)
|
|
{
|
|
result = Lang.dialog(120, false);
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 107)
|
|
{
|
|
if (this.homeless)
|
|
{
|
|
int num21 = Main.rand.Next(5);
|
|
if (num21 == 0)
|
|
{
|
|
result = Lang.dialog(121, false);
|
|
}
|
|
else
|
|
{
|
|
if (num21 == 1)
|
|
{
|
|
result = Lang.dialog(122, false);
|
|
}
|
|
else
|
|
{
|
|
if (num21 == 2)
|
|
{
|
|
result = Lang.dialog(123, false);
|
|
}
|
|
else
|
|
{
|
|
if (num21 == 3)
|
|
{
|
|
result = Lang.dialog(124, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(125, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (flag7 && Main.rand.Next(4) == 0)
|
|
{
|
|
result = Lang.dialog(126, false);
|
|
}
|
|
else
|
|
{
|
|
if (!Main.dayTime)
|
|
{
|
|
int num22 = Main.rand.Next(5);
|
|
if (num22 == 0)
|
|
{
|
|
result = Lang.dialog(127, false);
|
|
}
|
|
else
|
|
{
|
|
if (num22 == 1)
|
|
{
|
|
result = Lang.dialog(128, false);
|
|
}
|
|
else
|
|
{
|
|
if (num22 == 2)
|
|
{
|
|
result = Lang.dialog(129, false);
|
|
}
|
|
else
|
|
{
|
|
if (num22 == 3)
|
|
{
|
|
result = Lang.dialog(130, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(131, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
int num23 = Main.rand.Next(5);
|
|
if (num23 == 0)
|
|
{
|
|
result = Lang.dialog(132, false);
|
|
}
|
|
else
|
|
{
|
|
if (num23 == 1)
|
|
{
|
|
result = Lang.dialog(133, false);
|
|
}
|
|
else
|
|
{
|
|
if (num23 == 2)
|
|
{
|
|
result = Lang.dialog(134, false);
|
|
}
|
|
else
|
|
{
|
|
if (num23 == 3)
|
|
{
|
|
result = Lang.dialog(135, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(136, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 106)
|
|
{
|
|
result = Lang.dialog(137, false);
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 108)
|
|
{
|
|
if (this.homeless)
|
|
{
|
|
int num24 = Main.rand.Next(3);
|
|
if (num24 == 0)
|
|
{
|
|
result = Lang.dialog(138, false);
|
|
}
|
|
else
|
|
{
|
|
if (num24 == 1 && !Main.player[Main.myPlayer].male)
|
|
{
|
|
result = Lang.dialog(139, false);
|
|
}
|
|
else
|
|
{
|
|
if (num24 == 1)
|
|
{
|
|
result = Lang.dialog(140, false);
|
|
}
|
|
else
|
|
{
|
|
if (num24 == 2)
|
|
{
|
|
result = Lang.dialog(141, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[Main.myPlayer].male && flag15 && Main.rand.Next(6) == 0)
|
|
{
|
|
result = Lang.dialog(142, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[Main.myPlayer].male && flag6 && Main.rand.Next(6) == 0)
|
|
{
|
|
result = Lang.dialog(143, false);
|
|
}
|
|
else
|
|
{
|
|
if (Main.player[Main.myPlayer].male && flag8 && Main.rand.Next(6) == 0)
|
|
{
|
|
result = Lang.dialog(144, false);
|
|
}
|
|
else
|
|
{
|
|
if (!Main.player[Main.myPlayer].male && flag2 && Main.rand.Next(6) == 0)
|
|
{
|
|
result = Lang.dialog(145, false);
|
|
}
|
|
else
|
|
{
|
|
if (!Main.player[Main.myPlayer].male && flag7 && Main.rand.Next(6) == 0)
|
|
{
|
|
result = Lang.dialog(146, false);
|
|
}
|
|
else
|
|
{
|
|
if (!Main.player[Main.myPlayer].male && flag4 && Main.rand.Next(6) == 0)
|
|
{
|
|
result = Lang.dialog(147, false);
|
|
}
|
|
else
|
|
{
|
|
if (!Main.dayTime)
|
|
{
|
|
int num25 = Main.rand.Next(3);
|
|
if (num25 == 0)
|
|
{
|
|
result = Lang.dialog(148, false);
|
|
}
|
|
else
|
|
{
|
|
if (num25 == 1)
|
|
{
|
|
result = Lang.dialog(149, false);
|
|
}
|
|
else
|
|
{
|
|
if (num25 == 2)
|
|
{
|
|
result = Lang.dialog(150, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
int num26 = Main.rand.Next(5);
|
|
if (num26 == 0)
|
|
{
|
|
result = Lang.dialog(151, false);
|
|
}
|
|
else
|
|
{
|
|
if (num26 == 1)
|
|
{
|
|
result = Lang.dialog(152, false);
|
|
}
|
|
else
|
|
{
|
|
if (num26 == 2)
|
|
{
|
|
result = Lang.dialog(153, false);
|
|
}
|
|
else
|
|
{
|
|
if (num26 == 3)
|
|
{
|
|
result = Lang.dialog(154, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(155, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 123)
|
|
{
|
|
result = Lang.dialog(156, false);
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 124)
|
|
{
|
|
if (this.homeless)
|
|
{
|
|
int num27 = Main.rand.Next(4);
|
|
if (num27 == 0)
|
|
{
|
|
result = Lang.dialog(157, false);
|
|
}
|
|
else
|
|
{
|
|
if (num27 == 1)
|
|
{
|
|
result = Lang.dialog(158, false);
|
|
}
|
|
else
|
|
{
|
|
if (num27 == 2)
|
|
{
|
|
result = Lang.dialog(159, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(160, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (Main.bloodMoon)
|
|
{
|
|
int num28 = Main.rand.Next(4);
|
|
if (num28 == 0)
|
|
{
|
|
result = Lang.dialog(161, false);
|
|
}
|
|
else
|
|
{
|
|
if (num28 == 1)
|
|
{
|
|
result = Lang.dialog(162, false);
|
|
}
|
|
else
|
|
{
|
|
if (num28 == 2)
|
|
{
|
|
result = Lang.dialog(163, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(164, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (flag8 && Main.rand.Next(6) == 0)
|
|
{
|
|
result = Lang.dialog(165, false);
|
|
}
|
|
else
|
|
{
|
|
if (flag3 && Main.rand.Next(6) == 0)
|
|
{
|
|
result = Lang.dialog(166, false);
|
|
}
|
|
else
|
|
{
|
|
int num29 = Main.rand.Next(3);
|
|
if (num29 == 0)
|
|
{
|
|
result = Lang.dialog(167, false);
|
|
}
|
|
else
|
|
{
|
|
if (num29 == 1)
|
|
{
|
|
result = Lang.dialog(168, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(169, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 22)
|
|
{
|
|
if (Main.bloodMoon)
|
|
{
|
|
int num30 = Main.rand.Next(3);
|
|
if (num30 == 0)
|
|
{
|
|
result = Lang.dialog(170, false);
|
|
}
|
|
else
|
|
{
|
|
if (num30 == 1)
|
|
{
|
|
result = Lang.dialog(171, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(172, false);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!Main.dayTime)
|
|
{
|
|
result = Lang.dialog(173, false);
|
|
}
|
|
else
|
|
{
|
|
int num31 = Main.rand.Next(3);
|
|
if (num31 == 0)
|
|
{
|
|
result = Lang.dialog(174, false);
|
|
}
|
|
else
|
|
{
|
|
if (num31 == 1)
|
|
{
|
|
result = Lang.dialog(175, false);
|
|
}
|
|
else
|
|
{
|
|
result = Lang.dialog(176, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 142)
|
|
{
|
|
int num32 = Main.rand.Next(3);
|
|
if (num32 == 0)
|
|
{
|
|
result = Lang.dialog(224, false);
|
|
}
|
|
else
|
|
{
|
|
if (num32 == 1)
|
|
{
|
|
result = Lang.dialog(225, false);
|
|
}
|
|
else
|
|
{
|
|
if (num32 == 2)
|
|
{
|
|
result = Lang.dialog(226, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 160)
|
|
{
|
|
int num33 = Main.rand.Next(6);
|
|
if (flag4 && Main.rand.Next(6) == 0)
|
|
{
|
|
result = Lang.dialog(232, false);
|
|
}
|
|
else
|
|
{
|
|
if (flag9 && Main.rand.Next(6) == 0)
|
|
{
|
|
result = Lang.dialog(236, false);
|
|
}
|
|
else
|
|
{
|
|
if (num33 == 0)
|
|
{
|
|
result = Lang.dialog(231, false);
|
|
}
|
|
else
|
|
{
|
|
if (num33 == 1)
|
|
{
|
|
result = Lang.dialog(233, false);
|
|
}
|
|
else
|
|
{
|
|
if (num33 == 2)
|
|
{
|
|
result = Lang.dialog(234, false);
|
|
}
|
|
else
|
|
{
|
|
if (num33 == 3)
|
|
{
|
|
result = Lang.dialog(235, false);
|
|
}
|
|
else
|
|
{
|
|
if (num33 == 4)
|
|
{
|
|
result = Lang.dialog(240, false);
|
|
}
|
|
else
|
|
{
|
|
if (num33 == 5)
|
|
{
|
|
result = Lang.dialog(241, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 178)
|
|
{
|
|
int num34 = Main.rand.Next(5);
|
|
if (Main.bloodMoon && Main.rand.Next(3) == 0)
|
|
{
|
|
result = Lang.dialog(245, false);
|
|
}
|
|
else
|
|
{
|
|
if (flag13 && Main.rand.Next(6) == 0)
|
|
{
|
|
result = Lang.dialog(246, false);
|
|
}
|
|
else
|
|
{
|
|
if (flag12 && Main.rand.Next(6) == 0)
|
|
{
|
|
result = Lang.dialog(247, false);
|
|
}
|
|
else
|
|
{
|
|
if (num34 == 0)
|
|
{
|
|
result = Lang.dialog(242, false);
|
|
}
|
|
else
|
|
{
|
|
if (num34 == 1)
|
|
{
|
|
result = Lang.dialog(243, false);
|
|
}
|
|
else
|
|
{
|
|
if (num34 == 2)
|
|
{
|
|
result = Lang.dialog(244, false);
|
|
}
|
|
else
|
|
{
|
|
if (num34 == 3)
|
|
{
|
|
result = Lang.dialog(248, false);
|
|
}
|
|
else
|
|
{
|
|
if (num34 == 4)
|
|
{
|
|
result = Lang.dialog(249, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 207)
|
|
{
|
|
int num35 = Main.rand.Next(3);
|
|
if (flag12 && Main.rand.Next(6) == 0)
|
|
{
|
|
result = Lang.dialog(260, false);
|
|
}
|
|
else
|
|
{
|
|
if (num35 == 0)
|
|
{
|
|
result = Lang.dialog(257, false);
|
|
}
|
|
else
|
|
{
|
|
if (num35 == 1)
|
|
{
|
|
result = Lang.dialog(258, false);
|
|
}
|
|
else
|
|
{
|
|
if (num35 == 2)
|
|
{
|
|
result = Lang.dialog(259, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 208)
|
|
{
|
|
int num36 = Main.rand.Next(7);
|
|
if (Main.player[Main.myPlayer].male && Main.rand.Next(5) == 0)
|
|
{
|
|
result = Lang.dialog(268, false);
|
|
}
|
|
else
|
|
{
|
|
if (num36 == 0)
|
|
{
|
|
result = Lang.dialog(265, false);
|
|
}
|
|
else
|
|
{
|
|
if (num36 == 1)
|
|
{
|
|
result = Lang.dialog(266, false);
|
|
}
|
|
else
|
|
{
|
|
if (num36 == 2)
|
|
{
|
|
result = Lang.dialog(267, false);
|
|
}
|
|
else
|
|
{
|
|
if (num36 == 3)
|
|
{
|
|
result = Lang.dialog(269, false);
|
|
}
|
|
else
|
|
{
|
|
if (num36 == 4)
|
|
{
|
|
result = Lang.dialog(270, false);
|
|
}
|
|
else
|
|
{
|
|
if (num36 == 5)
|
|
{
|
|
result = Lang.dialog(271, false);
|
|
}
|
|
else
|
|
{
|
|
if (num36 == 6)
|
|
{
|
|
result = Lang.dialog(272, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 209)
|
|
{
|
|
int num37 = Main.rand.Next(5);
|
|
if (flag12 && Main.rand.Next(6) == 0)
|
|
{
|
|
result = Lang.dialog(284, false);
|
|
}
|
|
else
|
|
{
|
|
if (flag11 && Main.rand.Next(6) == 0)
|
|
{
|
|
result = Lang.dialog(283, false);
|
|
}
|
|
else
|
|
{
|
|
if (num37 == 0)
|
|
{
|
|
result = Lang.dialog(280, false);
|
|
}
|
|
else
|
|
{
|
|
if (num37 == 1)
|
|
{
|
|
result = Lang.dialog(281, false);
|
|
}
|
|
else
|
|
{
|
|
if (num37 == 2)
|
|
{
|
|
result = Lang.dialog(282, false);
|
|
}
|
|
else
|
|
{
|
|
if (num37 == 3)
|
|
{
|
|
result = Lang.dialog(285, false);
|
|
}
|
|
else
|
|
{
|
|
if (num37 == 4)
|
|
{
|
|
result = Lang.dialog(286, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 227)
|
|
{
|
|
int num38 = Main.rand.Next(5);
|
|
if (Main.hardMode && Main.rand.Next(7) == 0)
|
|
{
|
|
result = Lang.dialog(250, false);
|
|
}
|
|
else
|
|
{
|
|
if (flag14 && Main.rand.Next(6) == 0)
|
|
{
|
|
result = Lang.dialog(251, false);
|
|
}
|
|
else
|
|
{
|
|
if (num38 == 0)
|
|
{
|
|
result = Lang.dialog(252, false);
|
|
}
|
|
else
|
|
{
|
|
if (num38 == 1)
|
|
{
|
|
result = Lang.dialog(253, false);
|
|
}
|
|
else
|
|
{
|
|
if (num38 == 2)
|
|
{
|
|
result = Lang.dialog(254, false);
|
|
}
|
|
else
|
|
{
|
|
if (num38 == 3)
|
|
{
|
|
result = Lang.dialog(255, false);
|
|
}
|
|
else
|
|
{
|
|
if (num38 == 4)
|
|
{
|
|
result = Lang.dialog(256, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 228)
|
|
{
|
|
int num39 = Main.rand.Next(3);
|
|
if (flag2 && Main.rand.Next(6) == 0)
|
|
{
|
|
result = Lang.dialog(263, false);
|
|
}
|
|
else
|
|
{
|
|
if (num39 == 0)
|
|
{
|
|
result = Lang.dialog(261, false);
|
|
}
|
|
else
|
|
{
|
|
if (num39 == 1)
|
|
{
|
|
result = Lang.dialog(262, false);
|
|
}
|
|
else
|
|
{
|
|
if (num39 == 2)
|
|
{
|
|
result = Lang.dialog(264, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.type == 229)
|
|
{
|
|
int num40 = Main.rand.Next(6);
|
|
if (!Main.player[Main.myPlayer].male && Main.rand.Next(5) == 0)
|
|
{
|
|
result = Lang.dialog(276, false);
|
|
}
|
|
else
|
|
{
|
|
if (num40 == 0)
|
|
{
|
|
result = Lang.dialog(273, false);
|
|
}
|
|
else
|
|
{
|
|
if (num40 == 1)
|
|
{
|
|
result = Lang.dialog(274, false);
|
|
}
|
|
else
|
|
{
|
|
if (num40 == 2)
|
|
{
|
|
result = Lang.dialog(275, false);
|
|
}
|
|
else
|
|
{
|
|
if (num40 == 3)
|
|
{
|
|
result = Lang.dialog(277, false);
|
|
}
|
|
else
|
|
{
|
|
if (num40 == 4)
|
|
{
|
|
result = Lang.dialog(278, false);
|
|
}
|
|
else
|
|
{
|
|
if (num40 == 5)
|
|
{
|
|
result = Lang.dialog(279, false);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
public object Clone()
|
|
{
|
|
return base.MemberwiseClone();
|
|
}
|
|
}
|
|
}
|