using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Input; using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace Terraria { public class Player { public const int maxBuffs = 10; public Vector2[] itemFlamePos = new Vector2[7]; public int itemFlameCount; public bool outOfRange; public bool teleporting; public float teleportTime; public int teleportStyle; public bool sloping; public bool chilled; public bool frozen; public bool ichor; public int ropeCount; public int manaRegenBonus; public int manaRegenDelayBonus; public int dash; public int dashTime; public int dashDelay; public int gem = -1; public int gemCount; public byte meleeEnchant; public byte pulleyDir; public bool pulley; public int pulleyFrame; public float pulleyFrameCounter; public bool blackBelt; public bool sliding; public int slideDir; public int launcherWait; public bool iceSkate; public bool carpet; public int spikedBoots; public int carpetFrame = -1; public float carpetFrameCounter; public bool canCarpet; public int carpetTime; public int miscCounter; public bool sandStorm; public bool crimsonRegen; public bool ghostHeal; public bool sticky; public bool slippy; public bool slippy2; public bool powerrun; public bool flapSound; public bool iceBarrier; public bool panic; public byte iceBarrierFrame; public byte iceBarrierFrameCounter; public bool shadowDodge; public float shadowDodgeCount; public bool palladiumRegen; public bool onHitDodge; public bool onHitRegen; public bool onHitPetal; public int petalTimer; public int shadowDodgeTimer; public int maxMinions = 1; public int numMinions; public bool pygmy; public bool slime; public int wingTime; public int wings; public int wingFrame; public int wingFrameCounter; public bool male = true; public bool ghost; public int ghostFrame; public int ghostFrameCounter; public int miscTimer; public bool pvpDeath; public bool zoneDungeon; public bool zoneEvil; public bool zoneHoly; public bool zoneMeteor; public bool zoneJungle; public bool zoneSnow; public bool zoneBlood; public bool zoneCandle; public bool boneArmor; public bool frostArmor; public bool honey; public bool crystalLeaf; public bool paladinBuff; public bool paladinGive; public float townNPCs; public Vector2 position; public Vector2 oldPosition; public Vector2 velocity; public Vector2 oldVelocity; public double headFrameCounter; public double bodyFrameCounter; public double legFrameCounter; public int netSkip; public int oldSelectItem; public bool immune; public int immuneTime; public int immuneAlphaDirection; public int immuneAlpha; public int team; public bool hbLocked; public static int nameLen = 20; private float maxRegenDelay; public string chatText = ""; public int sign = -1; public int chatShowTime; public int reuseDelay; public int aggro; public float activeNPCs; public bool mouseInterface; public int noThrow; public int changeItem = -1; public int selectedItem; public Item[] armor = new Item[11]; public Item[] dye = new Item[3]; public int itemAnimation; public int itemAnimationMax; public int itemTime; public int toolTime; public float itemRotation; public int itemWidth; public int itemHeight; public Vector2 itemLocation; public bool poundRelease; public float ghostFade; public float ghostDir = 1f; public int[] buffType = new int[10]; public int[] buffTime = new int[10]; public bool[] buffImmune = new bool[81]; public int heldProj = -1; public int breathCD; public int breathMax = 200; public int breath = 200; public int lavaCD; public int lavaMax; public int lavaTime; public bool socialShadow; public bool socialGhost; public bool armorSteath; public int stealthTimer; public float stealth = 1f; public string setBonus = ""; public Item[] inventory = new Item[59]; public Item[] bank = new Item[Chest.maxItems]; public Item[] bank2 = new Item[Chest.maxItems]; public float headRotation; public float bodyRotation; public float legRotation; public Vector2 headPosition; public Vector2 bodyPosition; public Vector2 legPosition; public Vector2 headVelocity; public Vector2 bodyVelocity; public Vector2 legVelocity; public int nonTorch = -1; public float gfxOffY; public float stepSpeed = 1f; public static bool deadForGood = false; public bool dead; public int respawnTimer; public string name = ""; public int attackCD; public int potionDelay; public byte difficulty; public bool wet; public byte wetCount; public bool lavaWet; public bool honeyWet; public int hitTile; public int hitTileX; public int hitTileY; public int jump; public int head = -1; public int body = -1; public int legs = -1; public Rectangle headFrame; public Rectangle bodyFrame; public Rectangle legFrame; public Rectangle hairFrame; public bool controlLeft; public bool controlRight; public bool controlUp; public bool controlDown; public bool controlJump; public bool controlUseItem; public bool controlUseTile; public bool controlThrow; public bool controlInv; public bool controlHook; public bool controlTorch; public bool controlMap; public bool releaseJump; public bool releaseUp; public bool releaseUseItem; public bool releaseUseTile; public bool releaseInventory; public bool releaseHook; public bool releaseThrow; public bool releaseQuickMana; public bool releaseQuickHeal; public bool releaseLeft; public bool releaseRight; public bool mapZoomIn; public bool mapZoomOut; public bool mapAlphaUp; public bool mapAlphaDown; public bool mapFullScreen; public bool mapStyle; public bool releaseMapFullscreen; public bool releaseMapStyle; public int leftTimer; public int rightTimer; public bool delayUseItem; public bool active; public int width = 20; public int height = 42; public int direction = 1; public bool showItemIcon; public bool showItemIconR; public int showItemIcon2; public int whoAmi; public int runSoundDelay; public float shadow; public float manaCost = 1f; public bool fireWalk; public Vector2[] shadowPos = new Vector2[3]; public int shadowCount; public bool channel; public int step = -1; public int statDefense; public int statAttack; public int statLifeMax = 100; public int statLife = 100; public int statMana; public int statManaMax; public int statManaMax2; public int lifeRegen; public int lifeRegenCount; public int lifeRegenTime; public int manaRegen; public int manaRegenCount; public int manaRegenDelay; public bool manaRegenBuff; public bool noKnockback; public bool spaceGun; public float gravDir = 1f; public bool ammoCost80; public bool ammoCost75; public int stickyBreak; public bool magicQuiver; public bool magmaStone; public bool lavaRose; public bool lightOrb; public bool fairy; public bool bunny; public bool turtle; public bool eater; public bool penguin; public bool magicCuffs; public bool coldDash; public bool eyeSpring; public bool snowman; public bool scope; public bool dino; public bool skeletron; public bool hornet; public bool tiki; public bool parrot; public bool truffle; public bool sapling; public bool wisp; public bool lizard; public bool archery; public bool poisoned; public bool venom; public bool blind; public bool blackout; public bool frostBurn; public bool onFrostBurn; public bool burned; public bool suffocating; public bool onFire; public bool onFire2; public bool noItems; public bool wereWolf; public bool wolfAcc; public bool rulerAcc; public bool bleed; public bool confused; public bool accMerman; public bool merman; public bool brokenArmor; public bool silence; public bool slow; public bool gross; public bool tongued; public bool kbGlove; public bool starCloak; public bool longInvince; public bool pStone; public bool manaFlower; public int meleeCrit = 4; public int rangedCrit = 4; public int magicCrit = 4; public float meleeDamage = 1f; public float rangedDamage = 1f; public float bulletDamage = 1f; public float arrowDamage = 1f; public float rocketDamage = 1f; public float magicDamage = 1f; public float minionDamage = 1f; public float minionKB; public float meleeSpeed = 1f; public float moveSpeed = 1f; public float pickSpeed = 1f; public int SpawnX = -1; public int SpawnY = -1; public int[] spX = new int[200]; public int[] spY = new int[200]; public string[] spN = new string[200]; public int[] spI = new int[200]; public static int tileRangeX = 5; public static int tileRangeY = 4; private static int tileTargetX; private static int tileTargetY; private static int jumpHeight = 15; private static float jumpSpeed = 5.01f; public bool adjWater; public bool adjHoney; public bool oldAdjWater; public bool oldAdjHoney; public bool[] adjTile = new bool[251]; public bool[] oldAdjTile = new bool[251]; private static int itemGrabRange = 38; private static float itemGrabSpeed = 0.45f; private static float itemGrabSpeedMax = 4f; public Color hairColor = new Color(215, 90, 55); public Color skinColor = new Color(255, 125, 90); public Color eyeColor = new Color(105, 90, 75); public Color shirtColor = new Color(175, 165, 140); public Color underShirtColor = new Color(160, 180, 215); public Color pantsColor = new Color(255, 230, 175); public Color shoeColor = new Color(160, 105, 60); public int hair; public bool hostile; public int accCompass; public int accWatch; public int accDepthMeter; public bool discount; public bool coins; public bool accDivingHelm; public bool accFlipper; public bool doubleJump; public bool jumpAgain; public bool dJumpEffect; public bool doubleJump2; public bool jumpAgain2; public bool dJumpEffect2; public bool doubleJump3; public bool jumpAgain3; public bool dJumpEffect3; public bool doubleJump4; public bool jumpAgain4; public bool dJumpEffect4; public bool spawnMax; public int blockRange; public int[] grappling = new int[20]; public int grapCount; public int rocketTime; public int rocketTimeMax = 7; public int rocketDelay; public int rocketDelay2; public bool rocketRelease; public bool rocketFrame; public int rocketBoots; public bool canRocket; public bool jumpBoost; public bool noFallDmg; public int swimTime; public bool killGuide; public bool killClothier; public bool lavaImmune; public bool gills; public bool slowFall; public bool findTreasure; public bool invis; public bool detectCreature; public bool nightVision; public bool enemySpawns; public bool thorns; public bool turtleArmor; public bool turtleThorns; public bool waterWalk; public bool waterWalk2; public bool gravControl; public bool gravControl2; public bool bee; public int chest = -1; public int chestX; public int chestY; public int talkNPC = -1; public int fallStart; public int slowCount; public int potionDelayTime = Item.potionDelay; public void HealEffect(int healAmount, bool broadcast = true) { CombatText.NewText(new Rectangle((int)this.position.X, (int)this.position.Y, this.width, this.height), new Color(100, 255, 100, 255), string.Concat(healAmount), false, false); if (broadcast && Main.netMode == 1 && this.whoAmi == Main.myPlayer) { NetMessage.SendData(35, -1, -1, "", this.whoAmi, (float)healAmount, 0f, 0f, 0); } } public void ManaEffect(int manaAmount) { CombatText.NewText(new Rectangle((int)this.position.X, (int)this.position.Y, this.width, this.height), new Color(100, 100, 255, 255), string.Concat(manaAmount), false, false); if (Main.netMode == 1 && this.whoAmi == Main.myPlayer) { NetMessage.SendData(43, -1, -1, "", this.whoAmi, (float)manaAmount, 0f, 0f, 0); } } public static byte FindClosest(Vector2 Position, int Width, int Height) { byte result = 0; for (int i = 0; i < 255; i++) { if (Main.player[i].active) { result = (byte)i; break; } } float num = -1f; for (int j = 0; j < 255; j++) { if (Main.player[j].active && !Main.player[j].dead && (num == -1f || Math.Abs(Main.player[j].position.X + (float)(Main.player[j].width / 2) - Position.X + (float)(Width / 2)) + Math.Abs(Main.player[j].position.Y + (float)(Main.player[j].height / 2) - Position.Y + (float)(Height / 2)) < num)) { num = Math.Abs(Main.player[j].position.X + (float)(Main.player[j].width / 2) - Position.X + (float)(Width / 2)) + Math.Abs(Main.player[j].position.Y + (float)(Main.player[j].height / 2) - Position.Y + (float)(Height / 2)); result = (byte)j; } } return result; } public void checkArmor() { } public void toggleInv() { if (this.talkNPC >= 0) { this.talkNPC = -1; Main.npcChatText = ""; Main.PlaySound(11, -1, -1, 1); return; } if (this.sign >= 0) { this.sign = -1; Main.editSign = false; Main.npcChatText = ""; Main.PlaySound(11, -1, -1, 1); return; } if (!Main.playerInventory) { Recipe.FindRecipes(); Main.playerInventory = true; Main.PlaySound(10, -1, -1, 1); return; } Main.playerInventory = false; Main.PlaySound(11, -1, -1, 1); } public void dropItemCheck() { if (!Main.playerInventory) { this.noThrow = 0; } if (this.noThrow > 0) { this.noThrow--; } if (!Main.craftGuide && Main.guideItem.type > 0) { int num = Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, Main.guideItem.type, 1, false, 0, false); Main.guideItem.position = Main.item[num].position; Main.item[num] = Main.guideItem; Main.guideItem = new Item(); if (Main.netMode == 0) { Main.item[num].noGrabDelay = 100; } Main.item[num].velocity.Y = -2f; Main.item[num].velocity.X = (float)(4 * this.direction) + this.velocity.X; if (Main.netMode == 1) { NetMessage.SendData(21, -1, -1, "", num, 0f, 0f, 0f, 0); } } if (!Main.reforge && Main.reforgeItem.type > 0) { int num2 = Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, Main.reforgeItem.type, 1, false, 0, false); Main.reforgeItem.position = Main.item[num2].position; Main.item[num2] = Main.reforgeItem; Main.reforgeItem = new Item(); if (Main.netMode == 0) { Main.item[num2].noGrabDelay = 100; } Main.item[num2].velocity.Y = -2f; Main.item[num2].velocity.X = (float)(4 * this.direction) + this.velocity.X; if (Main.netMode == 1) { NetMessage.SendData(21, -1, -1, "", num2, 0f, 0f, 0f, 0); } } if (Main.myPlayer == this.whoAmi) { this.inventory[58] = (Item)Main.mouseItem.Clone(); } bool flag = true; if (Main.mouseItem.type > 0 && Main.mouseItem.stack > 0) { Player.tileTargetX = (int)(((float)Main.mouseX + Main.screenPosition.X) / 16f); Player.tileTargetY = (int)(((float)Main.mouseY + Main.screenPosition.Y) / 16f); if (this.gravDir == -1f) { Player.tileTargetY = (int)((Main.screenPosition.Y + (float)Main.screenHeight - (float)Main.mouseY) / 16f); } if (this.selectedItem != 58) { this.oldSelectItem = this.selectedItem; } this.selectedItem = 58; flag = false; } if (flag && this.selectedItem == 58) { this.selectedItem = this.oldSelectItem; } if (((this.controlThrow && this.releaseThrow && this.inventory[this.selectedItem].type > 0 && !Main.chatMode) || (((Main.mouseRight && !this.mouseInterface && Main.mouseRightRelease) || !Main.playerInventory) && Main.mouseItem.type > 0 && Main.mouseItem.stack > 0)) && this.noThrow <= 0) { Item item = new Item(); bool flag2 = false; if (((Main.mouseRight && !this.mouseInterface && Main.mouseRightRelease) || !Main.playerInventory) && Main.mouseItem.type > 0 && Main.mouseItem.stack > 0) { item = this.inventory[this.selectedItem]; this.inventory[this.selectedItem] = Main.mouseItem; this.delayUseItem = true; this.controlUseItem = false; flag2 = true; } int num3 = Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, this.inventory[this.selectedItem].type, 1, false, 0, false); if (!flag2 && this.inventory[this.selectedItem].type == 8 && this.inventory[this.selectedItem].stack > 1) { this.inventory[this.selectedItem].stack--; } else { this.inventory[this.selectedItem].position = Main.item[num3].position; Main.item[num3] = this.inventory[this.selectedItem]; this.inventory[this.selectedItem] = new Item(); } if (Main.netMode == 0) { Main.item[num3].noGrabDelay = 100; } Main.item[num3].velocity.Y = -2f; Main.item[num3].velocity.X = (float)(4 * this.direction) + this.velocity.X; if (((Main.mouseRight && !this.mouseInterface) || !Main.playerInventory) && Main.mouseItem.type > 0) { this.inventory[this.selectedItem] = item; Main.mouseItem = new Item(); } else { this.itemAnimation = 10; this.itemAnimationMax = 10; } Recipe.FindRecipes(); if (Main.netMode == 1) { NetMessage.SendData(21, -1, -1, "", num3, 0f, 0f, 0f, 0); } } } public void AddBuff(int type, int time, bool quiet = true) { if (this.buffImmune[type]) { return; } if (!quiet && Main.netMode == 1) { bool flag = true; for (int i = 0; i < 10; i++) { if (this.buffType[i] == type) { flag = false; } } if (flag) { NetMessage.SendData(55, -1, -1, "", this.whoAmi, (float)type, (float)time, 0f, 0); } } int num = -1; for (int j = 0; j < 10; j++) { if (this.buffType[j] == type) { if (this.buffTime[j] < time) { this.buffTime[j] = time; } return; } } if (Main.vanityPet[type] || Main.lightPet[type]) { for (int k = 0; k < 10; k++) { if (Main.vanityPet[type] && Main.vanityPet[this.buffType[k]]) { this.DelBuff(k); } if (Main.lightPet[type] && Main.lightPet[this.buffType[k]]) { this.DelBuff(k); } } } while (num == -1) { int num2 = -1; for (int l = 0; l < 10; l++) { if (!Main.debuff[this.buffType[l]]) { num2 = l; break; } } if (num2 == -1) { return; } for (int m = num2; m < 10; m++) { if (this.buffType[m] == 0) { num = m; break; } } if (num == -1) { this.DelBuff(num2); } } this.buffType[num] = type; this.buffTime[num] = time; if (Main.meleeBuff[type]) { for (int n = 0; n < 10; n++) { if (n != num && Main.meleeBuff[this.buffType[n]]) { this.DelBuff(n); } } } } public void DelBuff(int b) { this.buffTime[b] = 0; this.buffType[b] = 0; for (int i = 0; i < 9; i++) { if (this.buffTime[i] == 0 || this.buffType[i] == 0) { for (int j = i + 1; j < 10; j++) { this.buffTime[j - 1] = this.buffTime[j]; this.buffType[j - 1] = this.buffType[j]; this.buffTime[j] = 0; this.buffType[j] = 0; } } } } public void QuickHeal() { if (this.noItems) { return; } if (this.statLife == this.statLifeMax || this.potionDelay > 0) { return; } for (int i = 0; i < 58; i++) { if (this.inventory[i].stack > 0 && this.inventory[i].type > 0 && this.inventory[i].potion && this.inventory[i].healLife > 0) { Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, this.inventory[i].useSound); if (this.inventory[i].potion) { this.potionDelay = this.potionDelayTime; this.AddBuff(21, this.potionDelay, true); } this.statLife += this.inventory[i].healLife; this.statMana += this.inventory[i].healMana; if (this.statLife > this.statLifeMax) { this.statLife = this.statLifeMax; } if (this.statMana > this.statManaMax2) { this.statMana = this.statManaMax2; } if (this.inventory[i].healLife > 0 && Main.myPlayer == this.whoAmi) { this.HealEffect(this.inventory[i].healLife, true); } if (this.inventory[i].healMana > 0 && Main.myPlayer == this.whoAmi) { this.ManaEffect(this.inventory[i].healMana); } this.inventory[i].stack--; if (this.inventory[i].stack <= 0) { this.inventory[i].type = 0; this.inventory[i].name = ""; } Recipe.FindRecipes(); return; } } } public void QuickMana() { if (this.noItems) { return; } if (this.statMana == this.statManaMax2) { return; } for (int i = 0; i < 58; i++) { if (this.inventory[i].stack > 0 && this.inventory[i].type > 0 && this.inventory[i].healMana > 0 && (this.potionDelay == 0 || !this.inventory[i].potion)) { Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, this.inventory[i].useSound); if (this.inventory[i].potion) { this.potionDelay = this.potionDelayTime; this.AddBuff(21, this.potionDelay, true); } this.statLife += this.inventory[i].healLife; this.statMana += this.inventory[i].healMana; if (this.statLife > this.statLifeMax) { this.statLife = this.statLifeMax; } if (this.statMana > this.statManaMax2) { this.statMana = this.statManaMax2; } if (this.inventory[i].healLife > 0 && Main.myPlayer == this.whoAmi) { this.HealEffect(this.inventory[i].healLife, true); } if (this.inventory[i].healMana > 0 && Main.myPlayer == this.whoAmi) { this.ManaEffect(this.inventory[i].healMana); } this.inventory[i].stack--; if (this.inventory[i].stack <= 0) { this.inventory[i].type = 0; this.inventory[i].name = ""; } Recipe.FindRecipes(); return; } } } public int countBuffs() { int num = 0; for (int i = 0; i < 10; i++) { if (this.buffType[num] > 0) { num++; } } return num; } public void QuickBuff() { if (this.noItems) { return; } int num = 0; for (int i = 0; i < 58; i++) { if (this.countBuffs() == 10) { return; } if (this.inventory[i].stack > 0 && this.inventory[i].type > 0 && this.inventory[i].buffType > 0 && !this.inventory[i].summon) { bool flag = true; for (int j = 0; j < 10; j++) { if (this.buffType[j] == this.inventory[i].buffType) { flag = false; break; } if (Main.meleeBuff[this.inventory[i].buffType] && Main.meleeBuff[this.buffType[j]]) { flag = false; break; } } if (Main.lightPet[this.inventory[i].buffType] || Main.vanityPet[this.inventory[i].buffType]) { for (int k = 0; k < 10; k++) { if (Main.lightPet[this.buffType[k]] && Main.lightPet[this.inventory[i].buffType]) { flag = false; } if (Main.vanityPet[this.buffType[k]] && Main.vanityPet[this.inventory[i].buffType]) { flag = false; } } } if (this.inventory[i].mana > 0 && flag) { if (this.statMana >= (int)((float)this.inventory[i].mana * this.manaCost)) { this.manaRegenDelay = (int)this.maxRegenDelay; this.statMana -= (int)((float)this.inventory[i].mana * this.manaCost); } else { flag = false; } } if (this.whoAmi == Main.myPlayer && this.inventory[i].type == 603 && !Main.cEd) { flag = false; } if (flag) { num = this.inventory[i].useSound; int num2 = this.inventory[i].buffTime; if (num2 == 0) { num2 = 3600; } this.AddBuff(this.inventory[i].buffType, num2, true); if (this.inventory[i].consumable) { this.inventory[i].stack--; if (this.inventory[i].stack <= 0) { this.inventory[i].type = 0; this.inventory[i].name = ""; } } } } } if (num > 0) { Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, num); Recipe.FindRecipes(); } } public void StatusNPC(int type, int i) { if (this.meleeEnchant > 0) { if (this.meleeEnchant == 1) { Main.npc[i].AddBuff(70, 60 * Main.rand.Next(5, 10), false); } if (this.meleeEnchant == 2) { Main.npc[i].AddBuff(39, 60 * Main.rand.Next(3, 7), false); } if (this.meleeEnchant == 3) { Main.npc[i].AddBuff(24, 60 * Main.rand.Next(3, 7), false); } if (this.meleeEnchant == 5) { Main.npc[i].AddBuff(69, 60 * Main.rand.Next(10, 20), false); } if (this.meleeEnchant == 6) { Main.npc[i].AddBuff(31, 60 * Main.rand.Next(1, 4), false); } if (this.meleeEnchant == 8) { Main.npc[i].AddBuff(20, 60 * Main.rand.Next(5, 10), false); } if (this.meleeEnchant == 4) { Main.npc[i].AddBuff(69, 120, false); } } if (this.frostBurn) { Main.npc[i].AddBuff(44, 60 * Main.rand.Next(5, 15), false); } if (this.magmaStone) { if (Main.rand.Next(7) == 0) { Main.npc[i].AddBuff(24, 360, false); } else { if (Main.rand.Next(3) == 0) { Main.npc[i].AddBuff(24, 120, false); } else { Main.npc[i].AddBuff(24, 60, false); } } } if (type == 121) { if (Main.rand.Next(2) == 0) { Main.npc[i].AddBuff(24, 180, false); return; } } else { if (type == 122) { if (Main.rand.Next(10) == 0) { Main.npc[i].AddBuff(24, 180, false); return; } } else { if (type == 190) { if (Main.rand.Next(4) == 0) { Main.npc[i].AddBuff(20, 420, false); return; } } else { if (type == 217) { if (Main.rand.Next(5) == 0) { Main.npc[i].AddBuff(24, 180, false); return; } } else { if (type == 1123 && Main.rand.Next(10) != 0) { Main.npc[i].AddBuff(31, 120, false); } } } } } } public void StatusPvP(int type, int i) { if (this.meleeEnchant > 0) { if (this.meleeEnchant == 1) { Main.player[i].AddBuff(70, 60 * Main.rand.Next(5, 10), true); } if (this.meleeEnchant == 2) { Main.player[i].AddBuff(39, 60 * Main.rand.Next(3, 7), true); } if (this.meleeEnchant == 3) { Main.player[i].AddBuff(24, 60 * Main.rand.Next(3, 7), true); } if (this.meleeEnchant == 5) { Main.player[i].AddBuff(69, 60 * Main.rand.Next(10, 20), true); } if (this.meleeEnchant == 6) { Main.player[i].AddBuff(31, 60 * Main.rand.Next(1, 4), true); } if (this.meleeEnchant == 8) { Main.player[i].AddBuff(20, 60 * Main.rand.Next(5, 10), true); } } if (this.frostBurn) { Main.player[i].AddBuff(44, 60 * Main.rand.Next(1, 8), true); } if (this.magmaStone) { if (Main.rand.Next(7) == 0) { Main.player[i].AddBuff(24, 360, true); } else { if (Main.rand.Next(3) == 0) { Main.player[i].AddBuff(24, 120, true); } else { Main.player[i].AddBuff(24, 60, true); } } } if (type == 121) { if (Main.rand.Next(2) == 0) { Main.player[i].AddBuff(24, 180, false); return; } } else { if (type == 122) { if (Main.rand.Next(10) == 0) { Main.player[i].AddBuff(24, 180, false); return; } } else { if (type == 190) { if (Main.rand.Next(4) == 0) { Main.player[i].AddBuff(20, 420, false); return; } } else { if (type == 217) { if (Main.rand.Next(5) == 0) { Main.player[i].AddBuff(24, 180, false); return; } } else { if (type == 1123 && Main.rand.Next(9) != 0) { Main.player[i].AddBuff(31, 120, false); } } } } } } public void Ghost() { this.immune = false; this.immuneAlpha = 0; this.controlUp = false; this.controlLeft = false; this.controlDown = false; this.controlRight = false; this.controlJump = false; if (Main.hasFocus && !Main.chatMode && !Main.editSign) { Keys[] pressedKeys = Main.keyState.GetPressedKeys(); for (int i = 0; i < pressedKeys.Length; i++) { string a = string.Concat(pressedKeys[i]); if (a == Main.cUp) { this.controlUp = true; } if (a == Main.cLeft) { this.controlLeft = true; } if (a == Main.cDown) { this.controlDown = true; } if (a == Main.cRight) { this.controlRight = true; } if (a == Main.cJump) { this.controlJump = true; } } } if (this.controlUp || this.controlJump) { if (this.velocity.Y > 0f) { this.velocity.Y = this.velocity.Y * 0.9f; } this.velocity.Y = this.velocity.Y - 0.1f; if (this.velocity.Y < -3f) { this.velocity.Y = -3f; } } else { if (this.controlDown) { if (this.velocity.Y < 0f) { this.velocity.Y = this.velocity.Y * 0.9f; } this.velocity.Y = this.velocity.Y + 0.1f; if (this.velocity.Y > 3f) { this.velocity.Y = 3f; } } else { if ((double)this.velocity.Y < -0.1 || (double)this.velocity.Y > 0.1) { this.velocity.Y = this.velocity.Y * 0.9f; } else { this.velocity.Y = 0f; } } } if (this.controlLeft && !this.controlRight) { 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 < -3f) { this.velocity.X = -3f; } } else { if (this.controlRight && !this.controlLeft) { 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 > 3f) { this.velocity.X = 3f; } } else { if ((double)this.velocity.X < -0.1 || (double)this.velocity.X > 0.1) { this.velocity.X = this.velocity.X * 0.9f; } else { this.velocity.X = 0f; } } } this.position += this.velocity; this.ghostFrameCounter++; if (this.velocity.X < 0f) { this.direction = -1; } else { if (this.velocity.X > 0f) { this.direction = 1; } } if (this.ghostFrameCounter >= 8) { this.ghostFrameCounter = 0; this.ghostFrame++; if (this.ghostFrame >= 4) { this.ghostFrame = 0; } } if (this.position.X < Main.leftWorld + (float)(Lighting.offScreenTiles * 16) + 16f) { this.position.X = Main.leftWorld + (float)(Lighting.offScreenTiles * 16) + 16f; this.velocity.X = 0f; } if (this.position.X + (float)this.width > Main.rightWorld - (float)(Lighting.offScreenTiles * 16) - 32f) { this.position.X = Main.rightWorld - (float)(Lighting.offScreenTiles * 16) - 32f - (float)this.width; this.velocity.X = 0f; } if (this.position.Y < Main.topWorld + (float)(Lighting.offScreenTiles * 16) + 16f) { this.position.Y = Main.topWorld + (float)(Lighting.offScreenTiles * 16) + 16f; if ((double)this.velocity.Y < -0.1) { this.velocity.Y = -0.1f; } } if (this.position.Y > Main.bottomWorld - (float)(Lighting.offScreenTiles * 16) - 32f - (float)this.height) { this.position.Y = Main.bottomWorld - (float)(Lighting.offScreenTiles * 16) - 32f - (float)this.height; this.velocity.Y = 0f; } } public Vector2 Center() { return new Vector2(this.position.X + (float)(this.width / 2), this.position.Y + (float)(this.height / 2)); } public int GetWingTime() { if (this.wings == 1 || this.wings == 2) { return 100; } if (this.wings == 4) { return 115; } if (this.wings == 5 || this.wings == 6 || this.wings == 15) { return 130; } if (this.wings == 7 || this.wings == 8 || this.wings == 14) { return 140; } if (this.wings == 9 || this.wings == 10 || this.wings == 11 || this.wings == 13) { return 160; } if (this.wings == 12) { return 180; } if (this.wings == 16 || this.wings == 17 || this.wings == 18 || this.wings == 19) { return 190; } if (this.wings == 3) { return 220; } return 90; } public void onHit(float x, float y) { if (Main.myPlayer != this.whoAmi) { return; } if (this.onHitDodge && this.shadowDodgeTimer == 0 && Main.rand.Next(4) == 0) { if (!this.shadowDodge) { this.shadowDodgeTimer = 1200; } this.AddBuff(59, 1200, true); } if (this.onHitRegen) { this.AddBuff(58, 300, true); } if (this.onHitPetal && this.petalTimer == 0) { this.petalTimer = 20; if (x < this.position.X + (float)(this.width / 2)) { } int num = this.direction; float num2 = Main.screenPosition.X; if (num < 0) { num2 += (float)Main.screenWidth; } float num3 = Main.screenPosition.Y; num3 += (float)Main.rand.Next(Main.screenHeight); Vector2 vector = new Vector2(num2, num3); float num4 = x - vector.X; float num5 = y - vector.Y; num4 += (float)Main.rand.Next(-50, 51) * 0.1f; num5 += (float)Main.rand.Next(-50, 51) * 0.1f; int num6 = 24; float num7 = (float)Math.Sqrt((double)(num4 * num4 + num5 * num5)); num7 = (float)num6 / num7; num4 *= num7; num5 *= num7; Projectile.NewProjectile(num2, num3, num4, num5, 221, 36, 0f, this.whoAmi, 0f, 0f); } if (this.crystalLeaf && this.petalTimer == 0) { int arg_1AA_0 = this.inventory[this.selectedItem].type; for (int i = 0; i < 1000; i++) { if (Main.projectile[i].owner == this.whoAmi && Main.projectile[i].type == 226) { this.petalTimer = 60; float num8 = 12f; Vector2 vector2 = new Vector2(Main.projectile[i].position.X + (float)this.width * 0.5f, Main.projectile[i].position.Y + (float)this.height * 0.5f); float num9 = x - vector2.X; float num10 = y - vector2.Y; float num11 = (float)Math.Sqrt((double)(num9 * num9 + num10 * num10)); num11 = num8 / num11; num9 *= num11; num10 *= num11; Projectile.NewProjectile(Main.projectile[i].center().X - 4f, Main.projectile[i].center().Y, num9, num10, 227, 40, 5f, this.whoAmi, 0f, 0f); return; } } } } public void UpdatePlayer(int i) { if (this.launcherWait > 0) { this.launcherWait--; } float num = 10f; float num2 = 0.4f; Player.jumpHeight = 15; Player.jumpSpeed = 5.01f; if (this.wet) { if (this.honeyWet) { num2 = 0.1f; num = 3f; } else { if (this.merman) { num2 = 0.3f; num = 7f; } else { num2 = 0.2f; num = 5f; Player.jumpHeight = 30; Player.jumpSpeed = 6.01f; } } } float num3 = 3f; float num4 = 0.08f; float num5 = 0.2f; float num6 = num3; this.heldProj = -1; bool flag = false; if (this.active) { Main.numPlayers++; this.outOfRange = false; if (this.whoAmi != Main.myPlayer) { int num7 = (int)(this.position.X + (float)(this.width / 2)) / 16; int num8 = (int)(this.position.Y + (float)(this.height / 2)) / 16; if (Main.tile[num7, num8] == null) { flag = true; } else { if (Main.tile[num7 - 3, num8] == null) { flag = true; } else { if (Main.tile[num7 + 3, num8] == null) { flag = true; } else { if (Main.tile[num7, num8 - 3] == null) { flag = true; } else { if (Main.tile[num7, num8 + 3] == null) { flag = true; } } } } } if (flag) { this.outOfRange = true; this.numMinions = 0; this.itemAnimation = 0; this.PlayerFrame(); } } } if (this.active && !flag) { this.miscCounter++; if (this.miscCounter >= 300) { this.miscCounter = 0; } float num9 = (float)(Main.maxTilesX / 4200); num9 *= num9; float num10 = (float)((double)(this.position.Y / 16f - (60f + 10f * num9)) / (Main.worldSurface / 6.0)); if ((double)num10 < 0.25) { num10 = 0.25f; } if (num10 > 1f) { num10 = 1f; } num2 *= num10; this.maxRegenDelay = (1f - (float)this.statMana / (float)this.statManaMax2) * 60f * 4f + 45f; this.shadowCount++; if (this.shadowCount == 1) { this.shadowPos[2] = this.shadowPos[1]; } else { if (this.shadowCount == 2) { this.shadowPos[1] = this.shadowPos[0]; } else { if (this.shadowCount >= 3) { this.shadowCount = 0; this.shadowPos[0] = this.position; Vector2[] expr_306_cp_0 = this.shadowPos; int expr_306_cp_1 = 0; expr_306_cp_0[expr_306_cp_1].Y = expr_306_cp_0[expr_306_cp_1].Y + this.gfxOffY; } } } if (this.teleportTime > 0f) { if (this.teleportStyle == 1) { if ((float)Main.rand.Next(100) <= 100f * this.teleportTime) { int num11 = Dust.NewDust(new Vector2((float)this.getRect().X, (float)this.getRect().Y), this.getRect().Width, this.getRect().Height, 164, 0f, 0f, 0, default(Color), 1f); Main.dust[num11].scale = this.teleportTime * 1.5f; Main.dust[num11].noGravity = true; Main.dust[num11].velocity *= 1.1f; } } else { if ((float)Main.rand.Next(100) <= 100f * this.teleportTime * 2f) { int num12 = 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[num12].scale = this.teleportTime * 1.5f; Main.dust[num12].noGravity = true; Main.dust[num12].velocity *= 1.1f; } } this.teleportTime -= 0.005f; } this.whoAmi = i; if (this.runSoundDelay > 0) { this.runSoundDelay--; } if (this.attackCD > 0) { this.attackCD--; } if (this.itemAnimation == 0) { this.attackCD = 0; } if (this.chatShowTime > 0) { this.chatShowTime--; } if (this.potionDelay > 0) { this.potionDelay--; } if (i == Main.myPlayer) { if (Main.trashItem.type >= 1522 && Main.trashItem.type <= 1527) { Main.trashItem.SetDefaults(0, false); } this.zoneEvil = false; if (Main.evilTiles >= 200) { this.zoneEvil = true; } this.zoneHoly = false; if (Main.holyTiles >= 100) { this.zoneHoly = true; } this.zoneMeteor = false; if (Main.meteorTiles >= 50) { this.zoneMeteor = true; } this.zoneDungeon = false; if (Main.dungeonTiles >= 250 && (double)this.position.Y > Main.worldSurface * 16.0) { int num13 = (int)this.position.X / 16; int num14 = (int)this.position.Y / 16; if (Main.wallDungeon[(int)Main.tile[num13, num14].wall]) { this.zoneDungeon = true; } } this.zoneJungle = false; if (Main.jungleTiles >= 80) { this.zoneJungle = true; } this.zoneSnow = false; if (Main.snowTiles >= 300) { this.zoneSnow = true; } this.zoneBlood = false; if (Main.bloodTiles >= 200) { this.zoneBlood = true; } if (Main.waterCandles > 0) { this.zoneCandle = true; } else { this.zoneCandle = false; } } if (this.ghost) { this.Ghost(); return; } if (this.dead) { this.gem = -1; this.slippy = false; this.slippy2 = false; this.powerrun = false; this.wings = 0; this.poisoned = false; this.venom = false; this.onFire = false; this.burned = false; this.suffocating = false; this.onFire2 = false; this.onFrostBurn = false; this.blind = false; this.blackout = false; this.gravDir = 1f; for (int j = 0; j < 10; j++) { this.buffTime[j] = 0; this.buffType[j] = 0; } if (i == Main.myPlayer) { Main.npcChatText = ""; Main.editSign = false; } this.grappling[0] = -1; this.grappling[1] = -1; this.grappling[2] = -1; this.sign = -1; this.talkNPC = -1; this.statLife = 0; this.channel = false; this.potionDelay = 0; this.chest = -1; this.changeItem = -1; this.itemAnimation = 0; this.immuneAlpha += 2; if (this.immuneAlpha > 255) { this.immuneAlpha = 255; } this.headPosition += this.headVelocity; this.bodyPosition += this.bodyVelocity; this.legPosition += this.legVelocity; this.headRotation += this.headVelocity.X * 0.1f; this.bodyRotation += this.bodyVelocity.X * 0.1f; this.legRotation += this.legVelocity.X * 0.1f; this.headVelocity.Y = this.headVelocity.Y + 0.1f; this.bodyVelocity.Y = this.bodyVelocity.Y + 0.1f; this.legVelocity.Y = this.legVelocity.Y + 0.1f; this.headVelocity.X = this.headVelocity.X * 0.99f; this.bodyVelocity.X = this.bodyVelocity.X * 0.99f; this.legVelocity.X = this.legVelocity.X * 0.99f; if (this.difficulty == 2) { if (this.respawnTimer > 0) { this.respawnTimer--; return; } if (this.whoAmi == Main.myPlayer || Main.netMode == 2) { this.ghost = true; return; } } else { this.respawnTimer--; if (this.respawnTimer <= 0 && Main.myPlayer == this.whoAmi) { if (Main.mouseItem.type > 0) { Main.playerInventory = true; } this.Spawn(); return; } } } else { if (i == Main.myPlayer) { this.controlUp = false; this.controlLeft = false; this.controlDown = false; this.controlRight = false; this.controlJump = false; this.controlUseItem = false; this.controlUseTile = false; this.controlThrow = false; this.controlInv = false; this.controlHook = false; this.controlTorch = false; this.mapStyle = false; this.mapAlphaDown = false; this.mapAlphaUp = false; this.mapFullScreen = false; this.mapZoomIn = false; this.mapZoomOut = false; if (Main.hasFocus) { if (!Main.chatMode && !Main.editSign) { Keys[] pressedKeys = Main.keyState.GetPressedKeys(); bool flag2 = false; bool flag3 = false; for (int k = 0; k < pressedKeys.Length; k++) { string a = string.Concat(pressedKeys[k]); if (a == Main.cUp) { this.controlUp = true; } if (a == Main.cLeft) { this.controlLeft = true; } if (a == Main.cDown) { this.controlDown = true; } if (a == Main.cRight) { this.controlRight = true; } if (a == Main.cJump) { this.controlJump = true; } if (a == Main.cThrowItem) { this.controlThrow = true; } if (a == Main.cInv) { this.controlInv = true; } if (a == Main.cBuff) { this.QuickBuff(); } if (a == Main.cHeal) { flag3 = true; } if (a == Main.cMana) { flag2 = true; } if (a == Main.cHook) { this.controlHook = true; } if (a == Main.cTorch) { this.controlTorch = true; } if (Main.mapEnabled) { if (a == Main.cMapZoomIn) { this.mapZoomIn = true; } if (a == Main.cMapZoomOut) { this.mapZoomOut = true; } if (a == Main.cMapAlphaUp) { this.mapAlphaUp = true; } if (a == Main.cMapAlphaDown) { this.mapAlphaDown = true; } if (a == Main.cMapFull) { this.mapFullScreen = true; } if (a == Main.cMapStyle) { this.mapStyle = true; } } } if (Main.gamePad) { GamePadState state = GamePad.GetState(PlayerIndex.One); if (state.DPad.Up == ButtonState.Pressed) { this.controlUp = true; } if (state.DPad.Down == ButtonState.Pressed) { this.controlDown = true; } if (state.DPad.Left == ButtonState.Pressed) { this.controlLeft = true; } if (state.DPad.Right == ButtonState.Pressed) { this.controlRight = true; } if (state.Triggers.Left > 0f) { this.controlJump = true; } if (state.Triggers.Right > 0f) { this.controlUseItem = true; } Main.mouseX = (int)((float)(Main.screenWidth / 2) + state.ThumbSticks.Right.X * (float)Player.tileRangeX * 16f); Main.mouseY = (int)((float)(Main.screenHeight / 2) - state.ThumbSticks.Right.Y * (float)Player.tileRangeX * 16f); if (state.ThumbSticks.Right.X == 0f) { Main.mouseX = Main.screenWidth / 2 + this.direction * 2; } } if (Main.mapFullscreen) { if (this.controlUp) { Main.mapFullscreenPos.Y = Main.mapFullscreenPos.Y - 1f * (16f / Main.mapFullscreenScale); } if (this.controlDown) { Main.mapFullscreenPos.Y = Main.mapFullscreenPos.Y + 1f * (16f / Main.mapFullscreenScale); } if (this.controlLeft) { Main.mapFullscreenPos.X = Main.mapFullscreenPos.X - 1f * (16f / Main.mapFullscreenScale); } if (this.controlRight) { Main.mapFullscreenPos.X = Main.mapFullscreenPos.X + 1f * (16f / Main.mapFullscreenScale); } this.controlUp = false; this.controlLeft = false; this.controlDown = false; this.controlRight = false; this.controlJump = false; this.controlUseItem = false; this.controlUseTile = false; this.controlThrow = false; this.controlHook = false; this.controlTorch = false; } if (flag3) { if (this.releaseQuickHeal) { this.QuickHeal(); } this.releaseQuickHeal = false; } else { this.releaseQuickHeal = true; } if (flag2) { if (this.releaseQuickMana) { this.QuickMana(); } this.releaseQuickMana = false; } else { this.releaseQuickMana = true; } if (this.controlLeft && this.controlRight) { this.controlLeft = false; this.controlRight = false; } if (Main.mapFullscreen) { if (this.mapZoomIn) { Main.mapFullscreenScale *= 1.05f; } if (this.mapZoomOut) { Main.mapFullscreenScale *= 0.95f; } } else { if (Main.mapStyle == 1) { if (this.mapZoomIn) { Main.mapMinimapScale *= 1.025f; } if (this.mapZoomOut) { Main.mapMinimapScale *= 0.975f; } if (this.mapAlphaUp) { Main.mapMinimapAlpha += 0.015f; } if (this.mapAlphaDown) { Main.mapMinimapAlpha -= 0.015f; } } else { if (Main.mapStyle == 2) { if (this.mapZoomIn) { Main.mapOverlayScale *= 1.05f; } if (this.mapZoomOut) { Main.mapOverlayScale *= 0.95f; } if (this.mapAlphaUp) { Main.mapOverlayAlpha += 0.015f; } if (this.mapAlphaDown) { Main.mapOverlayAlpha -= 0.015f; } } } if (this.mapStyle) { if (this.releaseMapStyle) { Main.PlaySound(12, -1, -1, 1); Main.mapStyle++; if (Main.mapStyle > 2) { Main.mapStyle = 0; } } this.releaseMapStyle = false; } else { this.releaseMapStyle = true; } } if (this.mapFullScreen) { if (this.releaseMapFullscreen) { if (Main.mapFullscreen) { Main.PlaySound(11, -1, -1, 1); Main.mapFullscreen = false; } else { Main.playerInventory = false; this.talkNPC = -1; Main.PlaySound(10, -1, -1, 1); float mapFullscreenScale = 2.5f; Main.mapFullscreenScale = mapFullscreenScale; Main.mapFullscreen = true; Main.resetMapFull = true; } } this.releaseMapFullscreen = false; } else { this.releaseMapFullscreen = true; } } if (this.confused) { bool flag4 = this.controlLeft; bool flag5 = this.controlUp; this.controlLeft = this.controlRight; this.controlRight = flag4; this.controlUp = this.controlRight; this.controlDown = flag5; } if (Main.mouseLeft && !this.mouseInterface) { this.controlUseItem = true; } if (Main.mouseRight && !this.mouseInterface) { this.controlUseTile = true; } if (this.controlInv) { if (this.releaseInventory) { if (Main.mapFullscreen) { Main.mapFullscreen = false; this.releaseInventory = false; Main.PlaySound(11, -1, -1, 1); } else { this.toggleInv(); } } this.releaseInventory = false; } else { this.releaseInventory = true; } if (this.delayUseItem) { if (!this.controlUseItem) { this.delayUseItem = false; } this.controlUseItem = false; } if (this.itemAnimation == 0 && this.itemTime == 0) { this.dropItemCheck(); int num15 = this.selectedItem; if (!Main.chatMode && this.selectedItem != 58) { if (Main.keyState.IsKeyDown(Keys.D1)) { this.selectedItem = 0; } if (Main.keyState.IsKeyDown(Keys.D2)) { this.selectedItem = 1; } if (Main.keyState.IsKeyDown(Keys.D3)) { this.selectedItem = 2; } if (Main.keyState.IsKeyDown(Keys.D4)) { this.selectedItem = 3; } if (Main.keyState.IsKeyDown(Keys.D5)) { this.selectedItem = 4; } if (Main.keyState.IsKeyDown(Keys.D6)) { this.selectedItem = 5; } if (Main.keyState.IsKeyDown(Keys.D7)) { this.selectedItem = 6; } if (Main.keyState.IsKeyDown(Keys.D8)) { this.selectedItem = 7; } if (Main.keyState.IsKeyDown(Keys.D9)) { this.selectedItem = 8; } if (Main.keyState.IsKeyDown(Keys.D0)) { this.selectedItem = 9; } } if (num15 != this.selectedItem) { Main.PlaySound(12, -1, -1, 1); } if (Main.mapFullscreen) { int num16 = (Main.mouseState.ScrollWheelValue - Main.oldMouseState.ScrollWheelValue) / 120; Main.mapFullscreenScale *= 1f + (float)num16 * 0.3f; } else { if (!Main.playerInventory) { int l; for (l = (Main.mouseState.ScrollWheelValue - Main.oldMouseState.ScrollWheelValue) / 120; l > 9; l -= 10) { } while (l < 0) { l += 10; } this.selectedItem -= l; if (l != 0) { Main.PlaySound(12, -1, -1, 1); } if (this.changeItem >= 0) { if (this.selectedItem != this.changeItem) { Main.PlaySound(12, -1, -1, 1); } this.selectedItem = this.changeItem; this.changeItem = -1; } while (this.selectedItem > 9) { this.selectedItem -= 10; } while (this.selectedItem < 0) { this.selectedItem += 10; } } else { int num17 = (Main.mouseState.ScrollWheelValue - Main.oldMouseState.ScrollWheelValue) / 120; Main.focusRecipe += num17; if (Main.focusRecipe > Main.numAvailableRecipes - 1) { Main.focusRecipe = Main.numAvailableRecipes - 1; } if (Main.focusRecipe < 0) { Main.focusRecipe = 0; } } } } } if (this.selectedItem == 58) { this.nonTorch = -1; } else { if (this.controlTorch && this.itemAnimation == 0) { int num18 = 0; int num19 = (int)(((float)Main.mouseX + Main.screenPosition.X) / 16f); int num20 = (int)(((float)Main.mouseY + Main.screenPosition.Y) / 16f); if (this.gravDir == -1f) { num20 = (int)((Main.screenPosition.Y + (float)Main.screenHeight - (float)Main.mouseY) / 16f); } if (this.position.X / 16f - (float)Player.tileRangeX <= (float)num19 && (this.position.X + (float)this.width) / 16f + (float)Player.tileRangeX - 1f >= (float)num19 && this.position.Y / 16f - (float)Player.tileRangeY <= (float)num20 && (this.position.Y + (float)this.height) / 16f + (float)Player.tileRangeY - 2f >= (float)num20) { try { if (Main.tile[num19, num20].active()) { int type = (int)Main.tile[num19, num20].type; if (type == 209) { num18 = 6; } else { if (Main.tileHammer[type]) { num18 = 1; } else { if (Main.tileAxe[type]) { num18 = 2; } else { num18 = 3; } } } } else { if (Main.tile[num19, num20].liquid > 0 && this.wet) { num18 = 4; } } goto IL_1561; } catch { goto IL_1561; } } if (this.wet) { num18 = 4; } IL_1561: if (num18 == 0) { float num21 = Math.Abs((float)Main.mouseX + Main.screenPosition.X - (this.position.X + (float)(this.width / 2))); float num22 = Math.Abs((float)Main.mouseY + Main.screenPosition.Y - (this.position.Y + (float)(this.height / 2))) * 1.3f; float num23 = (float)Math.Sqrt((double)(num21 * num21 + num22 * num22)); if (num23 > 200f) { num18 = 5; } } for (int m = 0; m < 50; m++) { int type2 = this.inventory[m].type; if (num18 == 0) { if (type2 == 8 || type2 == 427 || type2 == 428 || type2 == 429 || type2 == 430 || type2 == 431 || type2 == 432 || type2 == 433 || type2 == 523 || type2 == 974 || type2 == 1245 || type2 == 1333) { if (this.nonTorch == -1) { this.nonTorch = this.selectedItem; } this.selectedItem = m; break; } if (type2 == 282 || type2 == 286) { if (this.nonTorch == -1) { this.nonTorch = this.selectedItem; } this.selectedItem = m; } } else { if (num18 == 1) { if (this.inventory[m].hammer > 0) { if (this.nonTorch == -1) { this.nonTorch = this.selectedItem; } this.selectedItem = m; break; } } else { if (num18 == 2) { if (this.inventory[m].axe > 0) { if (this.nonTorch == -1) { this.nonTorch = this.selectedItem; } this.selectedItem = m; break; } } else { if (num18 == 3) { if (this.inventory[m].pick > 0) { if (this.nonTorch == -1) { this.nonTorch = this.selectedItem; } this.selectedItem = m; break; } } else { if (num18 == 4) { if (type2 == 8 || type2 == 427 || type2 == 428 || type2 == 429 || type2 == 430 || type2 == 431 || type2 == 432 || type2 == 433 || type2 == 523 || type2 == 974 || type2 == 1245 || type2 == 1333) { if (this.nonTorch == -1) { this.nonTorch = this.selectedItem; } if (this.inventory[this.selectedItem].createTile != 4) { this.selectedItem = m; } } else { if (type2 == 930) { bool flag6 = false; for (int n = 57; n >= 0; n--) { if (this.inventory[n].ammo == this.inventory[m].useAmmo) { flag6 = true; break; } } if (flag6) { if (this.nonTorch == -1) { this.nonTorch = this.selectedItem; } this.selectedItem = m; break; } } else { if (type2 == 282 || type2 == 286 || type2 == 523 || type2 == 1333) { if (this.nonTorch == -1) { this.nonTorch = this.selectedItem; } this.selectedItem = m; break; } } } } else { if (num18 == 5) { if (type2 == 8 || type2 == 427 || type2 == 428 || type2 == 429 || type2 == 430 || type2 == 431 || type2 == 432 || type2 == 433 || type2 == 523 || type2 == 974 || type2 == 1245 || type2 == 1333) { if (this.nonTorch == -1) { this.nonTorch = this.selectedItem; } if (this.inventory[this.selectedItem].createTile != 4) { this.selectedItem = m; } } else { if (type2 == 930) { bool flag7 = false; for (int num24 = 57; num24 >= 0; num24--) { if (this.inventory[num24].ammo == this.inventory[m].useAmmo) { flag7 = true; break; } } if (flag7) { if (this.nonTorch == -1) { this.nonTorch = this.selectedItem; } this.selectedItem = m; break; } } else { if (type2 == 282 || type2 == 286) { if (this.nonTorch == -1) { this.nonTorch = this.selectedItem; } this.selectedItem = m; break; } } } } else { if (num18 == 6) { int num25 = 929; if (Main.tile[num19, num20].frameX >= 72) { num25 = 1338; } if (type2 == num25) { if (this.nonTorch == -1) { this.nonTorch = this.selectedItem; } this.selectedItem = m; break; } } } } } } } } } } else { if (this.nonTorch > -1 && this.itemAnimation == 0) { this.selectedItem = this.nonTorch; this.nonTorch = -1; } } } if (this.frozen) { this.controlJump = false; this.controlDown = false; this.controlLeft = false; this.controlRight = false; this.controlUp = false; this.controlUseItem = false; this.controlUseTile = false; this.controlThrow = false; } if (!this.controlThrow) { this.releaseThrow = true; } else { this.releaseThrow = false; } if (Main.netMode == 1) { bool flag8 = false; if (this.statLife != Main.clientPlayer.statLife || this.statLifeMax != Main.clientPlayer.statLifeMax) { NetMessage.SendData(16, -1, -1, "", Main.myPlayer, 0f, 0f, 0f, 0); flag8 = true; } if (this.statMana != Main.clientPlayer.statMana || this.statManaMax != Main.clientPlayer.statManaMax) { NetMessage.SendData(42, -1, -1, "", Main.myPlayer, 0f, 0f, 0f, 0); flag8 = true; } if (this.controlUp != Main.clientPlayer.controlUp) { flag8 = true; } if (this.controlDown != Main.clientPlayer.controlDown) { flag8 = true; } if (this.controlLeft != Main.clientPlayer.controlLeft) { flag8 = true; } if (this.controlRight != Main.clientPlayer.controlRight) { flag8 = true; } if (this.controlJump != Main.clientPlayer.controlJump) { flag8 = true; } if (this.controlUseItem != Main.clientPlayer.controlUseItem) { flag8 = true; } if (this.selectedItem != Main.clientPlayer.selectedItem) { flag8 = true; } if (flag8) { NetMessage.SendData(13, -1, -1, "", Main.myPlayer, 0f, 0f, 0f, 0); } } if (Main.playerInventory) { this.AdjTiles(); } if (this.chest != -1) { int num26 = (int)(((double)this.position.X + (double)this.width * 0.5) / 16.0); int num27 = (int)(((double)this.position.Y + (double)this.height * 0.5) / 16.0); if (num26 < this.chestX - 5 || num26 > this.chestX + 6 || num27 < this.chestY - 4 || num27 > this.chestY + 5) { if (this.chest != -1) { Main.PlaySound(11, -1, -1, 1); } this.chest = -1; } if (!Main.tile[this.chestX, this.chestY].active()) { Main.PlaySound(11, -1, -1, 1); this.chest = -1; } } if (this.velocity.Y == 0f) { int num28 = (int)(this.position.Y / 16f) - this.fallStart; if (((this.gravDir == 1f && num28 > 25) || (this.gravDir == -1f && num28 < -25)) && !this.noFallDmg && this.wings == 0) { int damage = (int)((float)num28 * this.gravDir - 25f) * 10; this.immune = false; this.Hurt(damage, 0, false, false, Lang.deathMsg(-1, -1, -1, 0), false); } this.fallStart = (int)(this.position.Y / 16f); } if (this.jump > 0 || this.rocketDelay > 0 || this.wet || this.slowFall || (double)num10 < 0.8 || this.tongued) { this.fallStart = (int)(this.position.Y / 16f); } } if (this.mouseInterface) { this.delayUseItem = true; } Player.tileTargetX = (int)(((float)Main.mouseX + Main.screenPosition.X) / 16f); Player.tileTargetY = (int)(((float)Main.mouseY + Main.screenPosition.Y) / 16f); if (this.gravDir == -1f) { Player.tileTargetY = (int)((Main.screenPosition.Y + (float)Main.screenHeight - (float)Main.mouseY) / 16f); } if (this.immune) { this.immuneTime--; if (this.immuneTime <= 0) { this.immune = false; } this.immuneAlpha += this.immuneAlphaDirection * 50; if (this.immuneAlpha <= 50) { this.immuneAlphaDirection = 1; } else { if (this.immuneAlpha >= 205) { this.immuneAlphaDirection = -1; } } } else { this.immuneAlpha = 0; } if (this.petalTimer > 0) { this.petalTimer--; } if (this.shadowDodgeTimer > 0) { this.shadowDodgeTimer--; } if (this.jump > 0 || this.velocity.Y != 0f) { this.slippy = false; this.slippy2 = false; this.powerrun = false; this.sticky = false; } this.potionDelayTime = Item.potionDelay; if (this.pStone) { this.potionDelayTime -= 900; } this.armorSteath = false; this.statDefense = 0; this.accWatch = 0; this.accCompass = 0; this.accDepthMeter = 0; this.accDivingHelm = false; this.lifeRegen = 0; this.manaCost = 1f; this.meleeSpeed = 1f; this.meleeDamage = 1f; this.rangedDamage = 1f; this.magicDamage = 1f; this.minionDamage = 1f; this.minionKB = 0f; this.moveSpeed = 1f; this.boneArmor = false; this.honey = false; this.frostArmor = false; this.rocketBoots = 0; this.fireWalk = false; this.noKnockback = false; this.jumpBoost = false; this.noFallDmg = false; this.accFlipper = false; this.spawnMax = false; this.spaceGun = false; this.killGuide = false; this.killClothier = false; this.lavaImmune = false; this.gills = false; this.slowFall = false; this.findTreasure = false; this.invis = false; this.nightVision = false; this.enemySpawns = false; this.thorns = false; this.aggro = 0; this.waterWalk = false; this.waterWalk2 = false; this.detectCreature = false; this.gravControl = false; this.bee = false; this.gravControl2 = false; this.statManaMax2 = this.statManaMax; this.ammoCost80 = false; this.ammoCost75 = false; this.manaRegenBuff = false; this.meleeCrit = 4; this.rangedCrit = 4; this.magicCrit = 4; this.arrowDamage = 1f; this.bulletDamage = 1f; this.rocketDamage = 1f; this.lightOrb = false; this.fairy = false; this.wisp = false; this.bunny = false; this.turtle = false; this.eater = false; this.skeletron = false; this.hornet = false; this.tiki = false; this.lizard = false; this.parrot = false; this.sapling = false; this.truffle = false; this.shadowDodge = false; this.palladiumRegen = false; this.onHitDodge = false; this.onHitRegen = false; this.onHitPetal = false; this.iceBarrier = false; this.maxMinions = 1; this.penguin = false; this.magicCuffs = false; this.coldDash = false; this.magicQuiver = false; this.magmaStone = false; this.lavaRose = false; this.eyeSpring = false; this.snowman = false; this.scope = false; this.panic = false; this.dino = false; this.crystalLeaf = false; this.pygmy = false; this.slime = false; this.chilled = false; this.frozen = false; this.ichor = false; this.manaRegenBonus = 0; this.manaRegenDelayBonus = 0; this.carpet = false; this.iceSkate = false; this.dash = 0; this.spikedBoots = 0; this.blackBelt = false; this.lavaMax = 0; this.archery = false; this.poisoned = false; this.venom = false; this.blind = false; this.blackout = false; this.onFire = false; this.burned = false; this.suffocating = false; this.onFire2 = false; this.onFrostBurn = false; this.frostBurn = false; this.noItems = false; this.blockRange = 0; this.pickSpeed = 1f; this.wereWolf = false; this.rulerAcc = false; this.bleed = false; this.confused = false; this.wings = 0; this.brokenArmor = false; this.silence = false; this.slow = false; this.gross = false; this.tongued = false; this.kbGlove = false; this.starCloak = false; this.longInvince = false; this.pStone = false; this.manaFlower = false; this.crimsonRegen = false; this.ghostHeal = false; this.turtleArmor = false; this.turtleThorns = false; this.meleeEnchant = 0; this.discount = false; this.coins = false; this.doubleJump2 = false; this.doubleJump3 = false; this.doubleJump4 = false; this.paladinBuff = false; this.paladinGive = false; this.meleeCrit += this.inventory[this.selectedItem].crit; this.magicCrit += this.inventory[this.selectedItem].crit; this.rangedCrit += this.inventory[this.selectedItem].crit; if (this.whoAmi == Main.myPlayer) { Main.musicBox2 = -1; } for (int num29 = 0; num29 < 81; num29++) { this.buffImmune[num29] = false; } for (int num30 = 0; num30 < 10; num30++) { if (this.buffType[num30] > 0 && this.buffTime[num30] > 0) { if (this.whoAmi == Main.myPlayer && this.buffType[num30] != 28) { this.buffTime[num30]--; } if (this.buffType[num30] == 1) { this.lavaImmune = true; this.fireWalk = true; } else { if (this.buffType[num30] == 2) { this.lifeRegen += 2; } else { if (this.buffType[num30] == 3) { this.moveSpeed += 0.25f; } else { if (this.buffType[num30] == 4) { this.gills = true; } else { if (this.buffType[num30] == 5) { this.statDefense += 8; } else { if (this.buffType[num30] == 6) { this.manaRegenBuff = true; } else { if (this.buffType[num30] == 7) { this.magicDamage += 0.2f; } else { if (this.buffType[num30] == 8) { this.slowFall = true; } else { if (this.buffType[num30] == 9) { this.findTreasure = true; } else { if (this.buffType[num30] == 10) { this.invis = true; } else { if (this.buffType[num30] == 11) { Lighting.addLight((int)(this.position.X + (float)(this.width / 2)) / 16, (int)(this.position.Y + (float)(this.height / 2)) / 16, 0.8f, 0.95f, 1f); } else { if (this.buffType[num30] == 12) { this.nightVision = true; } else { if (this.buffType[num30] == 13) { this.enemySpawns = true; } else { if (this.buffType[num30] == 14) { this.thorns = true; } else { if (this.buffType[num30] == 15) { this.waterWalk = true; } else { if (this.buffType[num30] == 16) { this.archery = true; } else { if (this.buffType[num30] == 17) { this.detectCreature = true; } else { if (this.buffType[num30] == 18) { this.gravControl = true; } else { if (this.buffType[num30] == 30) { this.bleed = true; } else { if (this.buffType[num30] == 31) { this.confused = true; } else { if (this.buffType[num30] == 32) { this.slow = true; } else { if (this.buffType[num30] == 35) { this.silence = true; } else { if (this.buffType[num30] == 46) { this.chilled = true; } else { if (this.buffType[num30] == 47) { this.frozen = true; } else { if (this.buffType[num30] == 69) { this.ichor = true; this.statDefense -= 20; } else { if (this.buffType[num30] == 36) { this.brokenArmor = true; } else { if (this.buffType[num30] == 48) { this.honey = true; } else { if (this.buffType[num30] == 59) { this.shadowDodge = true; } else { if (this.buffType[num30] == 58) { this.palladiumRegen = true; } else { if (this.buffType[num30] == 63) { this.moveSpeed += 1f; } else { if (this.buffType[num30] == 62) { if ((double)this.statLife <= (double)this.statLifeMax * 0.25) { Lighting.addLight((int)(this.Center().X / 16f), (int)(this.Center().Y / 16f), 0.1f, 0.2f, 0.45f); this.iceBarrier = true; this.statDefense += 30; this.iceBarrierFrameCounter += 1; if (this.iceBarrierFrameCounter > 2) { this.iceBarrierFrameCounter = 0; this.iceBarrierFrame += 1; if (this.iceBarrierFrame >= 12) { this.iceBarrierFrame = 0; } } } else { this.DelBuff(num30); } } else { if (this.buffType[num30] == 49) { if (Main.myPlayer == i) { for (int num31 = 0; num31 < 1000; num31++) { if (Main.projectile[num31].active && Main.projectile[num31].owner == i && Main.projectile[num31].type >= 191 && Main.projectile[num31].type <= 194) { this.pygmy = true; break; } } if (!this.pygmy) { this.DelBuff(num30); } else { this.buffTime[num30] = 18000; } } } else { if (this.buffType[num30] == 64) { if (Main.myPlayer == i) { for (int num32 = 0; num32 < 1000; num32++) { if (Main.projectile[num32].active && Main.projectile[num32].owner == i && Main.projectile[num32].type == 266) { this.slime = true; break; } } if (!this.slime) { this.DelBuff(num30); } else { this.buffTime[num30] = 18000; } } } else { if (this.buffType[num30] == 37) { if (Main.wof >= 0 && Main.npc[Main.wof].type == 113) { this.gross = true; this.buffTime[num30] = 10; } else { this.DelBuff(num30); } } else { if (this.buffType[num30] == 38) { this.buffTime[num30] = 10; this.tongued = true; } else { if (this.buffType[num30] == 19) { this.buffTime[num30] = 18000; this.lightOrb = true; bool flag9 = true; for (int num33 = 0; num33 < 1000; num33++) { if (Main.projectile[num33].active && Main.projectile[num33].owner == this.whoAmi && Main.projectile[num33].type == 18) { flag9 = false; } } if (flag9) { Projectile.NewProjectile(this.position.X + (float)(this.width / 2), this.position.Y + (float)(this.height / 2), 0f, 0f, 18, 0, 0f, this.whoAmi, 0f, 0f); } } else { if (this.buffType[num30] == 27) { this.buffTime[num30] = 18000; this.fairy = true; bool flag10 = true; for (int num34 = 0; num34 < 1000; num34++) { if (Main.projectile[num34].active && Main.projectile[num34].owner == this.whoAmi && (Main.projectile[num34].type == 72 || Main.projectile[num34].type == 86 || Main.projectile[num34].type == 87)) { flag10 = false; break; } } if (flag10) { int num35 = Main.rand.Next(3); if (num35 == 0) { num35 = 72; } else { if (num35 == 1) { num35 = 86; } else { if (num35 == 2) { num35 = 87; } } } if (this.head == 45 && this.body == 26 && this.legs == 25) { num35 = 72; } Projectile.NewProjectile(this.position.X + (float)(this.width / 2), this.position.Y + (float)(this.height / 2), 0f, 0f, num35, 0, 0f, this.whoAmi, 0f, 0f); } } else { if (this.buffType[num30] == 40) { this.buffTime[num30] = 18000; this.bunny = true; bool flag11 = true; for (int num36 = 0; num36 < 1000; num36++) { if (Main.projectile[num36].active && Main.projectile[num36].owner == this.whoAmi && Main.projectile[num36].type == 111) { flag11 = false; break; } } if (flag11) { Projectile.NewProjectile(this.position.X + (float)(this.width / 2), this.position.Y + (float)(this.height / 2), 0f, 0f, 111, 0, 0f, this.whoAmi, 0f, 0f); } } else { if (this.buffType[num30] == 41) { this.buffTime[num30] = 18000; this.penguin = true; bool flag12 = true; for (int num37 = 0; num37 < 1000; num37++) { if (Main.projectile[num37].active && Main.projectile[num37].owner == this.whoAmi && Main.projectile[num37].type == 112) { flag12 = false; break; } } if (flag12) { Projectile.NewProjectile(this.position.X + (float)(this.width / 2), this.position.Y + (float)(this.height / 2), 0f, 0f, 112, 0, 0f, this.whoAmi, 0f, 0f); } } else { if (this.buffType[num30] == 61) { this.buffTime[num30] = 18000; this.dino = true; bool flag13 = true; for (int num38 = 0; num38 < 1000; num38++) { if (Main.projectile[num38].active && Main.projectile[num38].owner == this.whoAmi && Main.projectile[num38].type == 236) { flag13 = false; break; } } if (flag13) { Projectile.NewProjectile(this.position.X + (float)(this.width / 2), this.position.Y + (float)(this.height / 2), 0f, 0f, 236, 0, 0f, this.whoAmi, 0f, 0f); } } else { if (this.buffType[num30] == 65) { this.buffTime[num30] = 18000; this.eyeSpring = true; bool flag14 = true; for (int num39 = 0; num39 < 1000; num39++) { if (Main.projectile[num39].active && Main.projectile[num39].owner == this.whoAmi && Main.projectile[num39].type == 268) { flag14 = false; break; } } if (flag14) { Projectile.NewProjectile(this.position.X + (float)(this.width / 2), this.position.Y + (float)(this.height / 2), 0f, 0f, 268, 0, 0f, this.whoAmi, 0f, 0f); } } else { if (this.buffType[num30] == 66) { this.buffTime[num30] = 18000; this.snowman = true; bool flag15 = true; for (int num40 = 0; num40 < 1000; num40++) { if (Main.projectile[num40].active && Main.projectile[num40].owner == this.whoAmi && Main.projectile[num40].type == 269) { flag15 = false; break; } } if (flag15) { Projectile.NewProjectile(this.position.X + (float)(this.width / 2), this.position.Y + (float)(this.height / 2), 0f, 0f, 269, 0, 0f, this.whoAmi, 0f, 0f); } } else { if (this.buffType[num30] == 42) { this.buffTime[num30] = 18000; this.turtle = true; bool flag16 = true; for (int num41 = 0; num41 < 1000; num41++) { if (Main.projectile[num41].active && Main.projectile[num41].owner == this.whoAmi && Main.projectile[num41].type == 127) { flag16 = false; break; } } if (flag16) { Projectile.NewProjectile(this.position.X + (float)(this.width / 2), this.position.Y + (float)(this.height / 2), 0f, 0f, 127, 0, 0f, this.whoAmi, 0f, 0f); } } else { if (this.buffType[num30] == 45) { this.buffTime[num30] = 18000; this.eater = true; bool flag17 = true; for (int num42 = 0; num42 < 1000; num42++) { if (Main.projectile[num42].active && Main.projectile[num42].owner == this.whoAmi && Main.projectile[num42].type == 175) { flag17 = false; break; } } if (flag17) { Projectile.NewProjectile(this.position.X + (float)(this.width / 2), this.position.Y + (float)(this.height / 2), 0f, 0f, 175, 0, 0f, this.whoAmi, 0f, 0f); } } else { if (this.buffType[num30] == 50) { this.buffTime[num30] = 18000; this.skeletron = true; bool flag18 = true; for (int num43 = 0; num43 < 1000; num43++) { if (Main.projectile[num43].active && Main.projectile[num43].owner == this.whoAmi && Main.projectile[num43].type == 197) { flag18 = false; break; } } if (flag18) { Projectile.NewProjectile(this.position.X + (float)(this.width / 2), this.position.Y + (float)(this.height / 2), 0f, 0f, 197, 0, 0f, this.whoAmi, 0f, 0f); } } else { if (this.buffType[num30] == 51) { this.buffTime[num30] = 18000; this.hornet = true; bool flag19 = true; for (int num44 = 0; num44 < 1000; num44++) { if (Main.projectile[num44].active && Main.projectile[num44].owner == this.whoAmi && Main.projectile[num44].type == 198) { flag19 = false; break; } } if (flag19) { Projectile.NewProjectile(this.position.X + (float)(this.width / 2), this.position.Y + (float)(this.height / 2), 0f, 0f, 198, 0, 0f, this.whoAmi, 0f, 0f); } } else { if (this.buffType[num30] == 52) { this.buffTime[num30] = 18000; this.tiki = true; bool flag20 = true; for (int num45 = 0; num45 < 1000; num45++) { if (Main.projectile[num45].active && Main.projectile[num45].owner == this.whoAmi && Main.projectile[num45].type == 199) { flag20 = false; break; } } if (flag20) { Projectile.NewProjectile(this.position.X + (float)(this.width / 2), this.position.Y + (float)(this.height / 2), 0f, 0f, 199, 0, 0f, this.whoAmi, 0f, 0f); } } else { if (this.buffType[num30] == 53) { this.buffTime[num30] = 18000; this.lizard = true; bool flag21 = true; for (int num46 = 0; num46 < 1000; num46++) { if (Main.projectile[num46].active && Main.projectile[num46].owner == this.whoAmi && Main.projectile[num46].type == 200) { flag21 = false; break; } } if (flag21) { Projectile.NewProjectile(this.position.X + (float)(this.width / 2), this.position.Y + (float)(this.height / 2), 0f, 0f, 200, 0, 0f, this.whoAmi, 0f, 0f); } } else { if (this.buffType[num30] == 54) { this.buffTime[num30] = 18000; this.parrot = true; bool flag22 = true; for (int num47 = 0; num47 < 1000; num47++) { if (Main.projectile[num47].active && Main.projectile[num47].owner == this.whoAmi && Main.projectile[num47].type == 208) { flag22 = false; break; } } if (flag22) { Projectile.NewProjectile(this.position.X + (float)(this.width / 2), this.position.Y + (float)(this.height / 2), 0f, 0f, 208, 0, 0f, this.whoAmi, 0f, 0f); } } else { if (this.buffType[num30] == 55) { this.buffTime[num30] = 18000; this.truffle = true; bool flag23 = true; for (int num48 = 0; num48 < 1000; num48++) { if (Main.projectile[num48].active && Main.projectile[num48].owner == this.whoAmi && Main.projectile[num48].type == 209) { flag23 = false; break; } } if (flag23) { Projectile.NewProjectile(this.position.X + (float)(this.width / 2), this.position.Y + (float)(this.height / 2), 0f, 0f, 209, 0, 0f, this.whoAmi, 0f, 0f); } } else { if (this.buffType[num30] == 56) { this.buffTime[num30] = 18000; this.sapling = true; bool flag24 = true; for (int num49 = 0; num49 < 1000; num49++) { if (Main.projectile[num49].active && Main.projectile[num49].owner == this.whoAmi && Main.projectile[num49].type == 210) { flag24 = false; break; } } if (flag24) { Projectile.NewProjectile(this.position.X + (float)(this.width / 2), this.position.Y + (float)(this.height / 2), 0f, 0f, 210, 0, 0f, this.whoAmi, 0f, 0f); } } else { if (this.buffType[num30] == 57) { this.buffTime[num30] = 18000; this.wisp = true; bool flag25 = true; for (int num50 = 0; num50 < 1000; num50++) { if (Main.projectile[num50].active && Main.projectile[num50].owner == this.whoAmi && Main.projectile[num50].type == 211) { flag25 = false; break; } } if (flag25) { Projectile.NewProjectile(this.position.X + (float)(this.width / 2), this.position.Y + (float)(this.height / 2), 0f, 0f, 211, 0, 0f, this.whoAmi, 0f, 0f); } } else { if (this.buffType[num30] == 60) { this.buffTime[num30] = 18000; this.crystalLeaf = true; bool flag26 = true; for (int num51 = 0; num51 < 1000; num51++) { if (Main.projectile[num51].active && Main.projectile[num51].owner == this.whoAmi && Main.projectile[num51].type == 226) { if (!flag26) { Main.projectile[num51].Kill(); } flag26 = false; } } if (flag26) { Projectile.NewProjectile(this.position.X + (float)(this.width / 2), this.position.Y + (float)(this.height / 2), 0f, 0f, 226, 0, 0f, this.whoAmi, 0f, 0f); } } else { if (this.buffType[num30] == 70) { this.venom = true; } else { if (this.buffType[num30] == 20) { this.poisoned = true; } else { if (this.buffType[num30] == 21) { this.potionDelay = this.buffTime[num30]; } else { if (this.buffType[num30] == 22) { this.blind = true; } else { if (this.buffType[num30] == 80) { this.blackout = true; } else { if (this.buffType[num30] == 23) { this.noItems = true; } else { if (this.buffType[num30] == 24) { this.onFire = true; } else { if (this.buffType[num30] == 67) { this.burned = true; } else { if (this.buffType[num30] == 68) { this.suffocating = true; } else { if (this.buffType[num30] == 39) { this.onFire2 = true; } else { if (this.buffType[num30] == 44) { this.onFrostBurn = true; } else { if (this.buffType[num30] == 43) { this.paladinBuff = true; } else { if (this.buffType[num30] == 29) { this.magicCrit += 2; this.magicDamage += 0.05f; this.statManaMax2 += 20; this.manaCost -= 0.02f; } else { if (this.buffType[num30] == 28) { if (!Main.dayTime && this.wolfAcc && !this.merman) { this.lifeRegen++; this.wereWolf = true; this.meleeCrit += 2; this.meleeDamage += 0.051f; this.meleeSpeed += 0.051f; this.statDefense += 3; this.moveSpeed += 0.05f; } else { this.DelBuff(num30); } } else { if (this.buffType[num30] == 33) { this.meleeDamage -= 0.051f; this.meleeSpeed -= 0.051f; this.statDefense -= 4; this.moveSpeed -= 0.1f; } else { if (this.buffType[num30] == 25) { this.statDefense -= 4; this.meleeCrit += 2; this.meleeDamage += 0.1f; this.meleeSpeed += 0.1f; } else { if (this.buffType[num30] == 26) { this.statDefense += 2; this.meleeCrit += 2; this.meleeDamage += 0.05f; this.meleeSpeed += 0.05f; this.magicCrit += 2; this.magicDamage += 0.05f; this.rangedCrit += 2; this.magicDamage += 0.05f; this.minionDamage += 0.05f; this.minionKB += 0.5f; this.moveSpeed += 0.2f; } else { if (this.buffType[num30] == 71) { this.meleeEnchant = 1; } else { if (this.buffType[num30] == 73) { this.meleeEnchant = 2; } else { if (this.buffType[num30] == 74) { this.meleeEnchant = 3; } else { if (this.buffType[num30] == 75) { this.meleeEnchant = 4; } else { if (this.buffType[num30] == 76) { this.meleeEnchant = 5; } else { if (this.buffType[num30] == 77) { this.meleeEnchant = 6; } else { if (this.buffType[num30] == 78) { this.meleeEnchant = 7; } else { if (this.buffType[num30] == 79) { this.meleeEnchant = 8; } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } if (this.accMerman && this.wet && !this.lavaWet) { this.releaseJump = true; this.wings = 0; this.merman = true; this.accFlipper = true; this.AddBuff(34, 2, true); } else { this.merman = false; } this.accMerman = false; if (this.wolfAcc && !this.merman && !Main.dayTime && !this.wereWolf) { this.AddBuff(28, 60, true); } this.wolfAcc = false; if (this.whoAmi == Main.myPlayer) { for (int num52 = 0; num52 < 10; num52++) { if (this.buffType[num52] > 0 && this.buffTime[num52] <= 0) { this.DelBuff(num52); } } } this.doubleJump = false; for (int num53 = 0; num53 < 8; num53++) { this.statDefense += this.armor[num53].defense; this.lifeRegen += this.armor[num53].lifeRegen; if (this.armor[num53].type == 268) { this.accDivingHelm = true; } if (this.armor[num53].type == 238) { this.magicDamage += 0.15f; } if (this.armor[num53].type == 123 || this.armor[num53].type == 124 || this.armor[num53].type == 125) { this.magicDamage += 0.07f; } if (this.armor[num53].type == 151 || this.armor[num53].type == 152 || this.armor[num53].type == 153 || this.armor[num53].type == 959) { this.rangedDamage += 0.05f; } if (this.armor[num53].type == 111 || this.armor[num53].type == 228 || this.armor[num53].type == 229 || this.armor[num53].type == 230 || this.armor[num53].type == 960 || this.armor[num53].type == 961 || this.armor[num53].type == 962) { this.statManaMax2 += 20; } if (this.armor[num53].type == 982) { this.statManaMax2 += 20; this.manaRegenDelayBonus++; this.manaRegenBonus += 25; } if (this.armor[num53].type == 1595) { this.statManaMax2 += 20; this.magicCuffs = true; } if (this.armor[num53].type == 228 || this.armor[num53].type == 229 || this.armor[num53].type == 230) { this.magicCrit += 3; } if (this.armor[num53].type == 100 || this.armor[num53].type == 101 || this.armor[num53].type == 102) { this.meleeSpeed += 0.07f; } if (this.armor[num53].type == 956 || this.armor[num53].type == 957 || this.armor[num53].type == 958) { this.meleeSpeed += 0.07f; } if (this.armor[num53].type == 791 || this.armor[num53].type == 792 || this.armor[num53].type == 793) { this.meleeDamage += 0.02f; this.rangedDamage += 0.02f; this.magicDamage += 0.02f; } if (this.armor[num53].type == 371) { this.magicCrit += 9; this.statManaMax2 += 40; } if (this.armor[num53].type == 372) { this.moveSpeed += 0.07f; this.meleeSpeed += 0.12f; } if (this.armor[num53].type == 373) { this.rangedDamage += 0.1f; this.rangedCrit += 6; } if (this.armor[num53].type == 374) { this.magicCrit += 3; this.meleeCrit += 3; this.rangedCrit += 3; } if (this.armor[num53].type == 375) { this.moveSpeed += 0.1f; } if (this.armor[num53].type == 376) { this.magicDamage += 0.15f; this.statManaMax2 += 60; } if (this.armor[num53].type == 377) { this.meleeCrit += 5; this.meleeDamage += 0.1f; } if (this.armor[num53].type == 378) { this.rangedDamage += 0.12f; this.rangedCrit += 7; } if (this.armor[num53].type == 379) { this.rangedDamage += 0.05f; this.meleeDamage += 0.05f; this.magicDamage += 0.05f; } if (this.armor[num53].type == 380) { this.magicCrit += 3; this.meleeCrit += 3; this.rangedCrit += 3; } if (this.armor[num53].type == 400) { this.magicDamage += 0.11f; this.magicCrit += 11; this.statManaMax2 += 80; } if (this.armor[num53].type == 401) { this.meleeCrit += 7; this.meleeDamage += 0.14f; } if (this.armor[num53].type == 402) { this.rangedDamage += 0.14f; this.rangedCrit += 8; } if (this.armor[num53].type == 403) { this.rangedDamage += 0.06f; this.meleeDamage += 0.06f; this.magicDamage += 0.06f; } if (this.armor[num53].type == 404) { this.magicCrit += 4; this.meleeCrit += 4; this.rangedCrit += 4; this.moveSpeed += 0.05f; } if (this.armor[num53].type == 1205) { this.meleeDamage += 0.08f; this.meleeSpeed += 0.12f; } if (this.armor[num53].type == 1206) { this.rangedDamage += 0.09f; this.rangedCrit += 9; } if (this.armor[num53].type == 1207) { this.magicDamage += 0.07f; this.magicCrit += 7; this.statManaMax2 += 60; } if (this.armor[num53].type == 1208) { this.meleeDamage += 0.03f; this.rangedDamage += 0.03f; this.magicDamage += 0.03f; this.magicCrit += 2; this.meleeCrit += 2; this.rangedCrit += 2; } if (this.armor[num53].type == 1209) { this.meleeDamage += 0.02f; this.rangedDamage += 0.02f; this.magicDamage += 0.02f; this.magicCrit++; this.meleeCrit++; this.rangedCrit++; } if (this.armor[num53].type == 1210) { this.meleeDamage += 0.07f; this.meleeSpeed += 0.07f; this.moveSpeed += 0.07f; } if (this.armor[num53].type == 1211) { this.rangedCrit += 15; this.moveSpeed += 0.08f; } if (this.armor[num53].type == 1212) { this.magicCrit += 18; this.statManaMax2 += 80; } if (this.armor[num53].type == 1213) { this.magicCrit += 6; this.meleeCrit += 6; this.rangedCrit += 6; } if (this.armor[num53].type == 1214) { this.moveSpeed += 0.11f; } if (this.armor[num53].type == 1215) { this.meleeDamage += 0.08f; this.meleeCrit += 8; this.meleeSpeed += 0.08f; } if (this.armor[num53].type == 1216) { this.rangedDamage += 0.16f; this.rangedCrit += 7; } if (this.armor[num53].type == 1217) { this.magicDamage += 0.16f; this.magicCrit += 7; this.statManaMax2 += 100; } if (this.armor[num53].type == 1218) { this.meleeDamage += 0.04f; this.rangedDamage += 0.04f; this.magicDamage += 0.04f; this.magicCrit += 3; this.meleeCrit += 3; this.rangedCrit += 3; } if (this.armor[num53].type == 1219) { this.meleeDamage += 0.03f; this.rangedDamage += 0.03f; this.magicDamage += 0.03f; this.magicCrit += 3; this.meleeCrit += 3; this.rangedCrit += 3; this.moveSpeed += 0.06f; } if (this.armor[num53].type == 558) { this.magicDamage += 0.12f; this.magicCrit += 12; this.statManaMax2 += 100; } if (this.armor[num53].type == 559) { this.meleeCrit += 10; this.meleeDamage += 0.1f; this.meleeSpeed += 0.1f; } if (this.armor[num53].type == 553) { this.rangedDamage += 0.15f; this.rangedCrit += 8; } if (this.armor[num53].type == 551) { this.magicCrit += 7; this.meleeCrit += 7; this.rangedCrit += 7; } if (this.armor[num53].type == 552) { this.rangedDamage += 0.07f; this.meleeDamage += 0.07f; this.magicDamage += 0.07f; this.moveSpeed += 0.08f; } if (this.armor[num53].type == 1001) { this.meleeDamage += 0.16f; this.meleeCrit += 6; } if (this.armor[num53].type == 1002) { this.rangedDamage += 0.16f; this.ammoCost80 = true; } if (this.armor[num53].type == 1003) { this.statManaMax2 += 80; this.manaCost -= 0.17f; this.magicDamage += 0.16f; } if (this.armor[num53].type == 1004) { this.meleeDamage += 0.05f; this.magicDamage += 0.05f; this.rangedDamage += 0.05f; this.magicCrit += 7; this.meleeCrit += 7; this.rangedCrit += 7; } if (this.armor[num53].type == 1005) { this.magicCrit += 8; this.meleeCrit += 8; this.rangedCrit += 8; this.moveSpeed += 0.05f; } if (this.armor[num53].type == 1503) { this.statManaMax2 += 80; this.manaCost -= 0.17f; this.magicDamage += 0.1f; this.magicCrit += 10; } if (this.armor[num53].type == 1504) { this.magicDamage += 0.07f; this.magicCrit += 7; } if (this.armor[num53].type == 1505) { this.magicDamage += 0.08f; this.moveSpeed += 0.08f; } if (this.armor[num53].type == 1546) { this.rangedCrit += 5; this.arrowDamage += 0.15f; } if (this.armor[num53].type == 1547) { this.rangedCrit += 5; this.bulletDamage += 0.15f; } if (this.armor[num53].type == 1548) { this.rangedCrit += 5; this.rocketDamage += 0.15f; } if (this.armor[num53].type == 1549) { this.rangedCrit += 13; this.rangedDamage += 0.13f; this.ammoCost80 = true; } if (this.armor[num53].type == 1550) { this.rangedCrit += 7; this.moveSpeed += 0.12f; } if (this.armor[num53].type == 1282) { this.statManaMax2 += 20; this.manaCost -= 0.05f; } if (this.armor[num53].type == 1283) { this.statManaMax2 += 40; this.manaCost -= 0.07f; } if (this.armor[num53].type == 1284) { this.statManaMax2 += 40; this.manaCost -= 0.09f; } if (this.armor[num53].type == 1285) { this.statManaMax2 += 60; this.manaCost -= 0.11f; } if (this.armor[num53].type == 1286) { this.statManaMax2 += 60; this.manaCost -= 0.13f; } if (this.armor[num53].type == 1287) { this.statManaMax2 += 80; this.manaCost -= 0.15f; } if (this.armor[num53].type == 1316 || this.armor[num53].type == 1317 || this.armor[num53].type == 1318) { this.aggro += 200; } if (this.armor[num53].type == 1316) { this.meleeDamage += 0.06f; } if (this.armor[num53].type == 1317) { this.meleeDamage += 0.08f; this.meleeCrit += 8; } if (this.armor[num53].type == 1318) { this.meleeCrit += 4; } if (this.armor[num53].type == 684) { this.rangedDamage += 0.16f; this.meleeDamage += 0.16f; } if (this.armor[num53].type == 685) { this.meleeCrit += 11; this.rangedCrit += 11; } if (this.armor[num53].type == 686) { this.moveSpeed += 0.08f; this.meleeSpeed += 0.07f; } if (this.armor[num53].type >= 1158 && this.armor[num53].type <= 1161) { this.maxMinions++; } if (this.armor[num53].type >= 1158 && this.armor[num53].type <= 1161) { this.minionDamage += 0.1f; } if (this.armor[num53].prefix == 62) { this.statDefense++; } if (this.armor[num53].prefix == 63) { this.statDefense += 2; } if (this.armor[num53].prefix == 64) { this.statDefense += 3; } if (this.armor[num53].prefix == 65) { this.statDefense += 4; } if (this.armor[num53].prefix == 66) { this.statManaMax2 += 20; } if (this.armor[num53].prefix == 67) { this.meleeCrit++; this.rangedCrit++; this.magicCrit++; } if (this.armor[num53].prefix == 68) { this.meleeCrit += 2; this.rangedCrit += 2; this.magicCrit += 2; } if (this.armor[num53].prefix == 69) { this.meleeDamage += 0.01f; this.rangedDamage += 0.01f; this.magicDamage += 0.01f; this.minionDamage += 0.01f; } if (this.armor[num53].prefix == 70) { this.meleeDamage += 0.02f; this.rangedDamage += 0.02f; this.magicDamage += 0.02f; this.minionDamage += 0.02f; } if (this.armor[num53].prefix == 71) { this.meleeDamage += 0.03f; this.rangedDamage += 0.03f; this.magicDamage += 0.03f; this.minionDamage += 0.03f; } if (this.armor[num53].prefix == 72) { this.meleeDamage += 0.04f; this.rangedDamage += 0.04f; this.magicDamage += 0.04f; this.minionDamage += 0.04f; } if (this.armor[num53].prefix == 73) { this.moveSpeed += 0.01f; } if (this.armor[num53].prefix == 74) { this.moveSpeed += 0.02f; } if (this.armor[num53].prefix == 75) { this.moveSpeed += 0.03f; } if (this.armor[num53].prefix == 76) { this.moveSpeed += 0.04f; } if (this.armor[num53].prefix == 77) { this.meleeSpeed += 0.01f; } if (this.armor[num53].prefix == 78) { this.meleeSpeed += 0.02f; } if (this.armor[num53].prefix == 79) { this.meleeSpeed += 0.03f; } if (this.armor[num53].prefix == 80) { this.meleeSpeed += 0.04f; } } this.head = this.armor[0].headSlot; this.body = this.armor[1].bodySlot; this.legs = this.armor[2].legSlot; for (int num54 = 3; num54 < 8; num54++) { if (this.armor[num54].type == 15 && this.accWatch < 1) { this.accWatch = 1; } if (this.armor[num54].type == 16 && this.accWatch < 2) { this.accWatch = 2; } if (this.armor[num54].type == 17 && this.accWatch < 3) { this.accWatch = 3; } if (this.armor[num54].type == 707 && this.accWatch < 1) { this.accWatch = 1; } if (this.armor[num54].type == 708 && this.accWatch < 2) { this.accWatch = 2; } if (this.armor[num54].type == 709 && this.accWatch < 3) { this.accWatch = 3; } if (this.armor[num54].type == 18 && this.accDepthMeter < 1) { this.accDepthMeter = 1; } if (this.armor[num54].type == 857) { this.doubleJump2 = true; } if (this.armor[num54].type == 983) { this.doubleJump2 = true; this.jumpBoost = true; } if (this.armor[num54].type == 987) { this.doubleJump3 = true; } if (this.armor[num54].type == 1163) { this.doubleJump3 = true; this.jumpBoost = true; } if (this.armor[num54].type == 1724) { this.doubleJump4 = true; } if (this.armor[num54].type == 1164) { this.doubleJump = true; this.doubleJump2 = true; this.doubleJump3 = true; this.jumpBoost = true; } if (this.armor[num54].type == 1250) { this.jumpBoost = true; this.doubleJump = true; this.noFallDmg = true; } if (this.armor[num54].type == 1252) { this.doubleJump2 = true; this.jumpBoost = true; this.noFallDmg = true; } if (this.armor[num54].type == 1251) { this.doubleJump3 = true; this.jumpBoost = true; this.noFallDmg = true; } if (this.armor[num54].type == 1249) { this.jumpBoost = true; this.bee = true; } if (this.armor[num54].type == 1253 && (double)this.statLife <= (double)this.statLifeMax * 0.25) { this.AddBuff(62, 5, true); } if (this.armor[num54].type == 1290) { this.panic = true; } if (this.armor[num54].type == 1300 && this.inventory[this.selectedItem].useAmmo == 14) { this.scope = true; } if (this.armor[num54].type == 1303 && this.wet) { Lighting.addLight((int)this.center().X / 16, (int)this.center().Y / 16, 0.9f, 0.2f, 0.6f); } if (this.armor[num54].type == 1301) { this.meleeCrit += 8; this.rangedCrit += 8; this.magicCrit += 8; this.meleeDamage += 0.1f; this.rangedDamage += 0.1f; this.magicDamage += 0.1f; this.minionDamage += 0.1f; } if (this.armor[num54].type == 1247) { this.starCloak = true; this.bee = true; } if (this.armor[num54].type == 1248) { this.meleeCrit += 10; this.rangedCrit += 10; this.magicCrit += 10; } if (this.armor[num54].type == 854) { this.discount = true; } if (this.armor[num54].type == 855) { this.coins = true; } if (this.armor[num54].type == 53) { this.doubleJump = true; } if (this.armor[num54].type == 54) { num6 = 6f; } if (this.armor[num54].type == 1579) { num6 = 6f; this.coldDash = true; } if (this.armor[num54].type == 128) { this.rocketBoots = 1; } if (this.armor[num54].type == 156) { this.noKnockback = true; } if (this.armor[num54].type == 158) { this.noFallDmg = true; } if (this.armor[num54].type == 934) { this.carpet = true; } if (this.armor[num54].type == 953) { this.spikedBoots++; } if (this.armor[num54].type == 975) { this.spikedBoots++; } if (this.armor[num54].type == 976) { this.spikedBoots += 2; } if (this.armor[num54].type == 977) { this.dash = 1; } if (this.armor[num54].type == 963) { this.blackBelt = true; } if (this.armor[num54].type == 984) { this.blackBelt = true; this.dash = 1; this.spikedBoots = 2; } if (this.armor[num54].type == 1131) { this.gravControl2 = true; } if (this.armor[num54].type == 1132) { this.bee = true; } if (this.armor[num54].type == 1578) { this.bee = true; this.panic = true; } if (this.armor[num54].type == 950) { this.iceSkate = true; } if (this.armor[num54].type == 159) { this.jumpBoost = true; } if (this.armor[num54].type == 187) { this.accFlipper = true; } if (this.armor[num54].type == 211) { this.meleeSpeed += 0.12f; } if (this.armor[num54].type == 223) { this.manaCost -= 0.06f; } if (this.armor[num54].type == 285) { this.moveSpeed += 0.05f; } if (this.armor[num54].type == 212) { this.moveSpeed += 0.1f; } if (this.armor[num54].type == 267) { this.killGuide = true; } if (this.armor[num54].type == 1307) { this.killClothier = true; } if (this.armor[num54].type == 193) { this.fireWalk = true; } if (this.armor[num54].type == 861) { this.accMerman = true; this.wolfAcc = true; } if (this.armor[num54].type == 862) { this.starCloak = true; this.longInvince = true; } if (this.armor[num54].type == 860) { this.pStone = true; } if (this.armor[num54].type == 863) { this.waterWalk2 = true; } if (this.armor[num54].type == 907) { this.waterWalk2 = true; this.fireWalk = true; } if (this.armor[num54].type == 908) { this.waterWalk = true; this.fireWalk = true; this.lavaMax += 420; } if (this.armor[num54].type == 906) { this.lavaMax += 420; } if (this.armor[num54].type == 485) { this.wolfAcc = true; } if (this.armor[num54].type == 486) { this.rulerAcc = true; } if (this.armor[num54].type == 393) { this.accCompass = 1; } if (this.armor[num54].type == 394) { this.accFlipper = true; this.accDivingHelm = true; } if (this.armor[num54].type == 395) { this.accWatch = 3; this.accDepthMeter = 1; this.accCompass = 1; } if (this.armor[num54].type == 396) { this.noFallDmg = true; this.fireWalk = true; } if (this.armor[num54].type == 397) { this.noKnockback = true; this.fireWalk = true; } if (this.armor[num54].type == 399) { this.jumpBoost = true; this.doubleJump = true; } if (this.armor[num54].type == 405) { num6 = 6f; this.rocketBoots = 2; } if (this.armor[num54].type == 897) { this.kbGlove = true; this.meleeSpeed += 0.12f; } if (this.armor[num54].type == 1343) { this.kbGlove = true; this.meleeSpeed += 0.09f; this.meleeDamage += 0.09f; this.magmaStone = true; } if (this.armor[num54].type == 1167) { this.minionKB += 2f; this.minionDamage += 0.15f; } if (this.armor[num54].type == 1321) { this.magicQuiver = true; } if (this.armor[num54].type == 1322) { this.magmaStone = true; } if (this.armor[num54].type == 1323) { this.lavaRose = true; } if (this.armor[num54].type == 938) { this.noKnockback = true; if ((double)this.statLife > (double)this.statLifeMax * 0.25) { if (i == Main.myPlayer) { this.paladinGive = true; } else { if (this.miscCounter % 5 == 0) { int myPlayer = Main.myPlayer; if (Main.player[myPlayer].team == this.team && this.team != 0) { float num55 = this.position.X - Main.player[myPlayer].position.X; float num56 = this.position.Y - Main.player[myPlayer].position.Y; float num57 = (float)Math.Sqrt((double)(num55 * num55 + num56 * num56)); if (num57 < 800f) { Main.player[myPlayer].AddBuff(43, 10, true); } } } } } } if (this.armor[num54].type == 936) { this.kbGlove = true; this.meleeSpeed += 0.12f; this.magicDamage += 0.12f; this.meleeDamage += 0.12f; this.rangedDamage += 0.12f; } if (this.armor[num54].type == 898) { num6 = 6.75f; this.rocketBoots = 2; this.moveSpeed += 0.08f; } if (this.armor[num54].type == 899 && Main.dayTime) { this.lifeRegen += 2; this.statDefense += 4; this.meleeSpeed += 0.1f; this.meleeDamage += 0.1f; this.meleeCrit += 2; this.rangedDamage += 0.1f; this.rangedCrit += 2; this.magicDamage += 0.1f; this.magicCrit += 2; this.pickSpeed -= 0.15f; this.minionDamage += 0.1f; this.minionKB += 0.5f; } if (this.armor[num54].type == 900 && !Main.dayTime) { this.lifeRegen += 2; this.statDefense += 4; this.meleeSpeed += 0.1f; this.meleeDamage += 0.1f; this.meleeCrit += 2; this.rangedDamage += 0.1f; this.rangedCrit += 2; this.magicDamage += 0.1f; this.magicCrit += 2; this.pickSpeed -= 0.15f; this.minionDamage += 0.1f; this.minionKB += 0.5f; } if (this.armor[num54].type == 407) { this.blockRange = 1; } if (this.armor[num54].type == 489) { this.magicDamage += 0.15f; } if (this.armor[num54].type == 490) { this.meleeDamage += 0.15f; } if (this.armor[num54].type == 491) { this.rangedDamage += 0.15f; } if (this.armor[num54].type == 935) { this.magicDamage += 0.12f; this.meleeDamage += 0.12f; this.rangedDamage += 0.12f; this.minionDamage += 0.12f; } if (this.armor[num54].type == 492) { this.wings = 1; } if (this.armor[num54].type == 493) { this.wings = 2; } if (this.armor[num54].type == 665) { this.wings = 3; } if (this.armor[num54].type == 748) { this.wings = 4; } if (this.armor[num54].type == 749) { this.wings = 5; } if (this.armor[num54].type == 761) { this.wings = 6; } if (this.armor[num54].type == 785) { this.wings = 7; } if (this.armor[num54].type == 786) { this.wings = 8; } if (this.armor[num54].type == 821) { this.wings = 9; } if (this.armor[num54].type == 822) { this.wings = 10; } if (this.armor[num54].type == 823) { this.wings = 11; } if (this.armor[num54].type == 948) { this.wings = 12; } if (this.armor[num54].type == 1162) { this.wings = 13; } if (this.armor[num54].type == 1165) { this.wings = 14; } if (this.armor[num54].type == 1515) { this.wings = 15; } if (this.armor[num54].type == 1583) { this.wings = 16; } if (this.armor[num54].type == 1584) { this.wings = 17; } if (this.armor[num54].type == 1585) { this.wings = 18; } if (this.armor[num54].type == 1586) { this.wings = 19; } if (this.armor[num54].type == 885) { this.buffImmune[30] = true; } if (this.armor[num54].type == 886) { this.buffImmune[36] = true; } if (this.armor[num54].type == 887) { this.buffImmune[20] = true; } if (this.armor[num54].type == 888) { this.buffImmune[22] = true; } if (this.armor[num54].type == 889) { this.buffImmune[32] = true; } if (this.armor[num54].type == 890) { this.buffImmune[35] = true; } if (this.armor[num54].type == 891) { this.buffImmune[23] = true; } if (this.armor[num54].type == 892) { this.buffImmune[33] = true; } if (this.armor[num54].type == 893) { this.buffImmune[31] = true; } if (this.armor[num54].type == 901) { this.buffImmune[33] = true; this.buffImmune[36] = true; } if (this.armor[num54].type == 902) { this.buffImmune[30] = true; this.buffImmune[20] = true; } if (this.armor[num54].type == 903) { this.buffImmune[32] = true; this.buffImmune[31] = true; } if (this.armor[num54].type == 904) { this.buffImmune[35] = true; this.buffImmune[23] = true; } if (this.armor[num54].type == 1612) { this.buffImmune[33] = true; this.buffImmune[36] = true; this.buffImmune[30] = true; this.buffImmune[20] = true; this.buffImmune[32] = true; this.buffImmune[31] = true; this.buffImmune[35] = true; this.buffImmune[23] = true; this.buffImmune[22] = true; } if (this.armor[num54].type == 1613) { this.noKnockback = true; this.fireWalk = true; this.buffImmune[33] = true; this.buffImmune[36] = true; this.buffImmune[30] = true; this.buffImmune[20] = true; this.buffImmune[32] = true; this.buffImmune[31] = true; this.buffImmune[35] = true; this.buffImmune[23] = true; this.buffImmune[22] = true; } if (this.armor[num54].type == 497) { this.accMerman = true; } if (this.armor[num54].type == 535) { this.pStone = true; } if (this.armor[num54].type == 536) { this.kbGlove = true; } if (this.armor[num54].type == 532) { this.starCloak = true; } if (this.armor[num54].type == 554) { this.longInvince = true; } if (this.armor[num54].type == 555) { this.manaFlower = true; this.manaCost -= 0.08f; } if (Main.myPlayer == this.whoAmi) { if (this.armor[num54].type == 576 && Main.rand.Next(18000) == 0 && Main.curMusic > 0) { int num58 = 0; if (Main.curMusic == 1) { num58 = 0; } if (Main.curMusic == 2) { num58 = 1; } if (Main.curMusic == 3) { num58 = 2; } if (Main.curMusic == 4) { num58 = 4; } if (Main.curMusic == 5) { num58 = 5; } if (Main.curMusic == 7) { num58 = 6; } if (Main.curMusic == 8) { num58 = 7; } if (Main.curMusic == 9) { num58 = 9; } if (Main.curMusic == 10) { num58 = 8; } if (Main.curMusic == 11) { num58 = 11; } if (Main.curMusic == 12) { num58 = 10; } if (Main.curMusic == 13) { num58 = 12; } if (Main.curMusic == 29) { this.armor[num54].SetDefaults(1610, false); } else { if (Main.curMusic > 13) { this.armor[num54].SetDefaults(1596 + Main.curMusic - 14, false); } else { this.armor[num54].SetDefaults(num58 + 562, false); } } } if (this.armor[num54].type >= 562 && this.armor[num54].type <= 574) { Main.musicBox2 = this.armor[num54].type - 562; } if (this.armor[num54].type >= 1596 && this.armor[num54].type <= 1609) { Main.musicBox2 = this.armor[num54].type - 1596 + 13; } if (this.armor[num54].type == 1610) { Main.musicBox2 = 27; } } } this.gemCount++; if (this.gemCount >= 10) { this.gem = -1; this.gemCount = 0; for (int num59 = 0; num59 <= 58; num59++) { if (this.inventory[num59].type == 0 || this.inventory[num59].stack == 0) { this.inventory[num59].type = 0; this.inventory[num59].stack = 0; this.inventory[num59].name = ""; this.inventory[num59].netID = 0; } if (this.inventory[num59].type >= 1522 && this.inventory[num59].type <= 1527) { this.gem = this.inventory[num59].type - 1522; } } } if (this.head == 11) { int i2 = (int)(this.position.X + (float)(this.width / 2) + (float)(8 * this.direction)) / 16; int j2 = (int)(this.position.Y + 2f) / 16; Lighting.addLight(i2, j2, 0.92f, 0.8f, 0.65f); } this.setBonus = ""; if (this.body == 67 && this.legs == 56 && this.head >= 103 && this.head <= 105) { this.setBonus = Lang.setBonus(31, false); this.armorSteath = true; } if ((this.head == 52 && this.body == 32 && this.legs == 31) || (this.head == 53 && this.body == 33 && this.legs == 32) || (this.head == 54 && this.body == 34 && this.legs == 33) || (this.head == 55 && this.body == 35 && this.legs == 34) || (this.head == 70 && this.body == 46 && this.legs == 42) || (this.head == 71 && this.body == 47 && this.legs == 43)) { this.setBonus = Lang.setBonus(20, false); this.statDefense++; } if ((this.head == 1 && this.body == 1 && this.legs == 1) || ((this.head == 72 || this.head == 2) && this.body == 2 && this.legs == 2) || (this.head == 47 && this.body == 28 && this.legs == 27)) { this.setBonus = Lang.setBonus(0, false); this.statDefense += 2; } if ((this.head == 3 && this.body == 3 && this.legs == 3) || ((this.head == 73 || this.head == 4) && this.body == 4 && this.legs == 4) || (this.head == 48 && this.body == 29 && this.legs == 28) || (this.head == 49 && this.body == 30 && this.legs == 29)) { this.setBonus = Lang.setBonus(1, false); this.statDefense += 3; } if (this.head == 50 && this.body == 31 && this.legs == 30) { this.setBonus = Lang.setBonus(32, false); this.statDefense += 4; } if (this.head == 14 && this.body >= 58 && this.body <= 63) { this.setBonus = Lang.setBonus(28, false); this.magicCrit += 10; } if ((this.head == 5 || this.head == 74) && (this.body == 5 || this.body == 48) && (this.legs == 5 || this.legs == 44)) { this.setBonus = Lang.setBonus(2, false); this.moveSpeed += 0.15f; } if (this.head == 57 && this.body == 37 && this.legs == 35) { this.setBonus = Lang.setBonus(21, false); this.crimsonRegen = true; } if (this.head == 101 && this.body == 66 && this.legs == 55) { this.setBonus = Lang.setBonus(30, false); this.ghostHeal = true; } if (this.head == 6 && this.body == 6 && this.legs == 6) { this.setBonus = Lang.setBonus(3, false); this.spaceGun = true; } if (this.head == 46 && this.body == 27 && this.legs == 26) { this.setBonus = Lang.setBonus(22, false); this.frostBurn = true; } if ((this.head == 75 || this.head == 7) && this.body == 7 && this.legs == 7) { this.boneArmor = true; this.setBonus = Lang.setBonus(4, false); this.ammoCost80 = true; } if (this.head == 8 && this.body == 8 && this.legs == 8) { this.setBonus = Lang.setBonus(5, false); this.manaCost -= 0.16f; } if (this.head == 76 && this.body == 49 && this.legs == 45) { this.setBonus = Lang.setBonus(5, false); this.manaCost -= 0.16f; } if (this.head == 9 && this.body == 9 && this.legs == 9) { this.setBonus = Lang.setBonus(6, false); this.meleeDamage += 0.17f; } if (this.head == 11 && this.body == 20 && this.legs == 19) { this.setBonus = Lang.setBonus(7, false); this.pickSpeed -= 0.3f; } if ((this.head == 78 || this.head == 79 || this.head == 80) && this.body == 51 && this.legs == 47) { this.setBonus = Lang.setBonus(27, false); this.AddBuff(60, 18000, true); } else { if (this.crystalLeaf) { for (int num60 = 0; num60 < 10; num60++) { if (this.buffType[num60] == 60) { this.DelBuff(num60); } } } } if (this.head == 99 && this.body == 65 && this.legs == 54) { this.setBonus = Lang.setBonus(29, false); this.thorns = true; this.turtleThorns = true; } if (this.body == 17 && this.legs == 16) { if (this.head == 29) { this.setBonus = Lang.setBonus(8, false); this.manaCost -= 0.14f; } else { if (this.head == 30) { this.setBonus = Lang.setBonus(9, false); this.meleeSpeed += 0.15f; } else { if (this.head == 31) { this.setBonus = Lang.setBonus(10, false); this.ammoCost80 = true; } } } } if (this.body == 18 && this.legs == 17) { if (this.head == 32) { this.setBonus = Lang.setBonus(11, false); this.manaCost -= 0.17f; } else { if (this.head == 33) { this.setBonus = Lang.setBonus(12, false); this.meleeCrit += 5; } else { if (this.head == 34) { this.setBonus = Lang.setBonus(13, false); this.ammoCost80 = true; } } } } if (this.body == 19 && this.legs == 18) { if (this.head == 35) { this.setBonus = Lang.setBonus(14, false); this.manaCost -= 0.19f; } else { if (this.head == 36) { this.setBonus = Lang.setBonus(15, false); this.meleeSpeed += 0.18f; this.moveSpeed += 0.18f; } else { if (this.head == 37) { this.setBonus = Lang.setBonus(16, false); this.ammoCost75 = true; } } } } if (this.body == 54 && this.legs == 49 && (this.head == 83 || this.head == 84 || this.head == 85)) { this.setBonus = Lang.setBonus(24, false); this.onHitRegen = true; } if (this.body == 55 && this.legs == 50 && (this.head == 86 || this.head == 87 || this.head == 88)) { this.setBonus = Lang.setBonus(25, false); this.onHitPetal = true; } if (this.body == 56 && this.legs == 51 && (this.head == 89 || this.head == 90 || this.head == 91)) { this.setBonus = Lang.setBonus(26, false); this.onHitDodge = true; } if (this.body == 24 && this.legs == 23) { if (this.head == 42) { this.setBonus = Lang.setBonus(17, false); this.manaCost -= 0.2f; } else { if (this.head == 43) { this.setBonus = Lang.setBonus(18, false); this.meleeSpeed += 0.19f; this.moveSpeed += 0.19f; } else { if (this.head == 41) { this.setBonus = Lang.setBonus(19, false); this.ammoCost75 = true; } } } } if (this.head == 82 && this.body == 53 && this.legs == 48) { this.setBonus = Lang.setBonus(23, false); this.maxMinions++; } if (this.merman) { this.wings = 0; } if (this.armorSteath) { if (this.itemAnimation > 0) { this.stealthTimer = 5; this.stealth += 0.0015f; if (this.stealth > 1f) { this.stealth = 1f; } } if ((double)this.velocity.X > -0.1 && (double)this.velocity.X < 0.1 && (double)this.velocity.Y > -0.1 && (double)this.velocity.Y < 0.1) { if (this.stealthTimer == 0) { this.stealth -= 0.015f; if ((double)this.stealth < 0.0) { this.stealth = 0f; } } } else { float num61 = Math.Abs(this.velocity.X) + Math.Abs(this.velocity.Y); this.stealth += num61 * 0.0075f; if (this.stealth > 1f) { this.stealth = 1f; } } this.rangedDamage += (1f - this.stealth) * 0.5f; this.rangedCrit += (int)((1f - this.stealth) * 10f); this.aggro -= (int)((1f - this.stealth) * 600f); if (this.stealthTimer > 0) { this.stealthTimer--; } } else { this.stealth = 1f; } if ((double)this.pickSpeed < 0.3) { this.pickSpeed = 0.3f; } if (this.meleeSpeed > 4f) { this.meleeSpeed = 4f; } if ((double)this.moveSpeed > 1.6) { this.moveSpeed = 1.6f; } if (this.slow) { this.moveSpeed *= 0.5f; } if (this.chilled) { this.moveSpeed *= 0.75f; } if (this.statManaMax2 > 400) { this.statManaMax2 = 400; } if (this.statDefense < 0) { this.statDefense = 0; } this.meleeSpeed = 1f / this.meleeSpeed; if (this.poisoned) { if (this.lifeRegen > 0) { this.lifeRegen = 0; } this.lifeRegenTime = 0; this.lifeRegen -= 4; } else { if (this.venom) { if (this.lifeRegen > 0) { this.lifeRegen = 0; } this.lifeRegenTime = 0; this.lifeRegen -= 12; } } if (this.onFire) { if (this.lifeRegen > 0) { this.lifeRegen = 0; } this.lifeRegenTime = 0; this.lifeRegen -= 8; } if (this.onFrostBurn) { if (this.lifeRegen > 0) { this.lifeRegen = 0; } this.lifeRegenTime = 0; this.lifeRegen -= 12; } if (this.onFire2) { if (this.lifeRegen > 0) { this.lifeRegen = 0; } this.lifeRegenTime = 0; this.lifeRegen -= 12; } if (this.burned) { if (this.lifeRegen > 0) { this.lifeRegen = 0; } this.lifeRegenTime = 0; this.lifeRegen -= 60; this.moveSpeed *= 0.5f; } if (this.suffocating) { if (this.lifeRegen > 0) { this.lifeRegen = 0; } this.lifeRegenTime = 0; this.lifeRegen -= 40; } this.lifeRegenTime++; if (this.crimsonRegen) { this.lifeRegenTime++; } if (this.honey) { this.lifeRegenTime += 2; this.lifeRegen += 2; } if (this.whoAmi == Main.myPlayer && Main.campfire) { this.lifeRegen += 2; } if (this.bleed) { this.lifeRegenTime = 0; } float num62 = 0f; if (this.lifeRegenTime >= 300) { num62 += 1f; } if (this.lifeRegenTime >= 600) { num62 += 1f; } if (this.lifeRegenTime >= 900) { num62 += 1f; } if (this.lifeRegenTime >= 1200) { num62 += 1f; } if (this.lifeRegenTime >= 1500) { num62 += 1f; } if (this.lifeRegenTime >= 1800) { num62 += 1f; } if (this.lifeRegenTime >= 2400) { num62 += 1f; } if (this.lifeRegenTime >= 3000) { num62 += 1f; } if (this.lifeRegenTime >= 3600) { num62 += 1f; this.lifeRegenTime = 3600; } if (this.velocity.X == 0f || this.grappling[0] > 0) { num62 *= 1.25f; } else { num62 *= 0.5f; } if (this.crimsonRegen) { num62 *= 1.5f; } if (this.whoAmi == Main.myPlayer && Main.campfire) { num62 *= 1.1f; } float num63 = (float)this.statLifeMax / 400f * 0.85f + 0.15f; num62 *= num63; this.lifeRegen += (int)Math.Round((double)num62); this.lifeRegenCount += this.lifeRegen; if (this.palladiumRegen) { this.lifeRegenCount += 6; } while (this.lifeRegenCount >= 120) { this.lifeRegenCount -= 120; if (this.statLife < this.statLifeMax) { this.statLife++; if (this.crimsonRegen) { for (int num64 = 0; num64 < 10; num64++) { int num65 = Dust.NewDust(this.position, this.width, this.height, 5, 0f, 0f, 175, default(Color), 1.75f); Main.dust[num65].noGravity = true; Main.dust[num65].velocity *= 0.75f; int num66 = Main.rand.Next(-40, 41); int num67 = Main.rand.Next(-40, 41); Dust expr_7E1D_cp_0 = Main.dust[num65]; expr_7E1D_cp_0.position.X = expr_7E1D_cp_0.position.X + (float)num66; Dust expr_7E39_cp_0 = Main.dust[num65]; expr_7E39_cp_0.position.Y = expr_7E39_cp_0.position.Y + (float)num67; Main.dust[num65].velocity.X = (float)(-(float)num66) * 0.075f; Main.dust[num65].velocity.Y = (float)(-(float)num67) * 0.075f; } } } if (this.statLife > this.statLifeMax) { this.statLife = this.statLifeMax; } } if (!this.burned) { if (!this.suffocating) { while (this.lifeRegenCount <= -120) { if (this.lifeRegenCount <= -480) { this.lifeRegenCount += 480; this.statLife -= 4; CombatText.NewText(new Rectangle((int)this.position.X, (int)this.position.Y, this.width, this.height), new Color(255, 60, 70, 255), string.Concat(4), false, true); } else { if (this.lifeRegenCount <= -360) { this.lifeRegenCount += 360; this.statLife -= 3; CombatText.NewText(new Rectangle((int)this.position.X, (int)this.position.Y, this.width, this.height), new Color(255, 60, 70, 255), string.Concat(3), false, true); } else { if (this.lifeRegenCount <= -240) { this.lifeRegenCount += 240; this.statLife -= 2; CombatText.NewText(new Rectangle((int)this.position.X, (int)this.position.Y, this.width, this.height), new Color(255, 60, 70, 255), string.Concat(2), false, true); } else { this.lifeRegenCount += 120; this.statLife--; CombatText.NewText(new Rectangle((int)this.position.X, (int)this.position.Y, this.width, this.height), new Color(255, 60, 70, 255), string.Concat(1), false, true); } } } if (this.statLife <= 0 && this.whoAmi == Main.myPlayer) { if (this.poisoned || this.venom) { this.KillMe(10.0, 0, false, " " + Lang.dt[0]); } else { this.KillMe(10.0, 0, false, " " + Lang.dt[1]); } } } goto IL_8219; } } while (this.lifeRegenCount <= -600) { this.lifeRegenCount += 600; this.statLife -= 5; CombatText.NewText(new Rectangle((int)this.position.X, (int)this.position.Y, this.width, this.height), new Color(255, 60, 70, 255), string.Concat(5), false, true); if (this.statLife <= 0 && this.whoAmi == Main.myPlayer) { if (this.suffocating) { this.KillMe(10.0, 0, false, " " + Lang.dt[2]); } else { this.KillMe(10.0, 0, false, " " + Lang.dt[1]); } } } IL_8219: if (this.manaRegenDelay > 0) { this.manaRegenDelay--; this.manaRegenDelay -= this.manaRegenDelayBonus; if ((this.velocity.X == 0f && this.velocity.Y == 0f) || this.grappling[0] >= 0 || this.manaRegenBuff) { this.manaRegenDelay--; } } if (this.manaRegenBuff && this.manaRegenDelay > 20) { this.manaRegenDelay = 20; } if (this.manaRegenDelay <= 0) { this.manaRegenDelay = 0; this.manaRegen = this.statManaMax2 / 7 + 1 + this.manaRegenBonus; if ((this.velocity.X == 0f && this.velocity.Y == 0f) || this.grappling[0] >= 0 || this.manaRegenBuff) { this.manaRegen += this.statManaMax2 / 2; } float num68 = (float)this.statMana / (float)this.statManaMax2 * 0.8f + 0.2f; if (this.manaRegenBuff) { num68 = 1f; } this.manaRegen = (int)((float)this.manaRegen * num68); } else { this.manaRegen = 0; } this.manaRegenCount += this.manaRegen; while (this.manaRegenCount >= 120) { bool flag27 = false; this.manaRegenCount -= 120; if (this.statMana < this.statManaMax2) { this.statMana++; flag27 = true; } if (this.statMana >= this.statManaMax2) { if (this.whoAmi == Main.myPlayer && flag27) { Main.PlaySound(25, -1, -1, 1); for (int num69 = 0; num69 < 5; num69++) { int num70 = Dust.NewDust(this.position, this.width, this.height, 45, 0f, 0f, 255, default(Color), (float)Main.rand.Next(20, 26) * 0.1f); Main.dust[num70].noLight = true; Main.dust[num70].noGravity = true; Main.dust[num70].velocity *= 0.5f; } } this.statMana = this.statManaMax2; } } if (this.manaRegenCount < 0) { this.manaRegenCount = 0; } if (this.statMana > this.statManaMax2) { this.statMana = this.statManaMax2; } num4 *= this.moveSpeed; num3 *= this.moveSpeed; if (this.jumpBoost) { Player.jumpHeight = 20; Player.jumpSpeed = 6.51f; } if (this.wereWolf) { Player.jumpHeight += 2; Player.jumpSpeed += 0.2f; } if (this.sticky) { Player.jumpHeight /= 10; Player.jumpSpeed /= 5f; } for (int num71 = 0; num71 < 10; num71++) { if (this.buffType[num71] > 0 && this.buffTime[num71] > 0 && this.buffImmune[this.buffType[num71]]) { this.DelBuff(num71); } } if (this.brokenArmor) { this.statDefense /= 2; } if (!this.doubleJump) { this.jumpAgain = false; } else { if (this.velocity.Y == 0f || this.sliding) { this.jumpAgain = true; } } if (!this.doubleJump2) { this.jumpAgain2 = false; } else { if (this.velocity.Y == 0f || this.sliding) { this.jumpAgain2 = true; } } if (!this.doubleJump3) { this.jumpAgain3 = false; } else { if (this.velocity.Y == 0f || this.sliding) { this.jumpAgain3 = true; } } if (!this.doubleJump4) { this.jumpAgain4 = false; } else { if (this.velocity.Y == 0f || this.sliding) { this.jumpAgain4 = true; } } if (!this.carpet) { this.canCarpet = false; this.carpetFrame = -1; } else { if (this.velocity.Y == 0f || this.sliding) { this.canCarpet = true; this.carpetTime = 0; this.carpetFrame = -1; this.carpetFrameCounter = 0f; } } if (this.gravDir == -1f) { this.canCarpet = false; } if (this.ropeCount > 0) { this.ropeCount--; } if (!this.pulley && !this.frozen && !this.controlJump && this.gravDir == 1f && this.ropeCount == 0 && this.grappling[0] == -1 && !this.tongued && (this.controlUp || this.controlDown)) { int num72 = (int)(this.position.X + (float)(this.width / 2)) / 16; int num73 = (int)(this.position.Y - 8f) / 16; if (Main.tile[num72, num73].active() && Main.tileRope[(int)Main.tile[num72, num73].type]) { float num74 = this.position.Y; if (Main.tile[num72, num73 - 1] == null) { Main.tile[num72, num73 - 1] = new Tile(); } if (Main.tile[num72, num73 + 1] == null) { Main.tile[num72, num73 + 1] = new Tile(); } if ((!Main.tile[num72, num73 - 1].active() || !Main.tileRope[(int)Main.tile[num72, num73 - 1].type]) && (!Main.tile[num72, num73 + 1].active() || !Main.tileRope[(int)Main.tile[num72, num73 + 1].type])) { num74 = (float)(num73 * 16 + 22); } float num75 = (float)(num72 * 16 + 8 - this.width / 2 + 6 * this.direction); int num76 = num72 * 16 + 8 - this.width / 2 + 6; int num77 = num72 * 16 + 8 - this.width / 2; int num78 = num72 * 16 + 8 - this.width / 2 + -6; int num79 = 1; float num80 = Math.Abs(this.position.X - (float)num76); if (Math.Abs(this.position.X - (float)num77) < num80) { num79 = 2; num80 = Math.Abs(this.position.X - (float)num77); } if (Math.Abs(this.position.X - (float)num78) < num80) { num79 = 3; num80 = Math.Abs(this.position.X - (float)num78); } if (num79 == 1) { num75 = (float)num76; this.pulleyDir = 2; this.direction = 1; } if (num79 == 2) { num75 = (float)num77; this.pulleyDir = 1; } if (num79 == 3) { num75 = (float)num78; this.pulleyDir = 2; this.direction = -1; } if (!Collision.SolidCollision(new Vector2(num75, this.position.Y), this.width, this.height)) { if (i == Main.myPlayer) { Main.cameraX = Main.cameraX + this.position.X - num75; } this.pulley = true; this.position.X = num75; this.gfxOffY = this.position.Y - num74; this.stepSpeed = 2.5f; this.position.Y = num74; this.velocity.X = 0f; } else { num75 = (float)num76; this.pulleyDir = 2; this.direction = 1; if (!Collision.SolidCollision(new Vector2(num75, this.position.Y), this.width, this.height)) { if (i == Main.myPlayer) { Main.cameraX = Main.cameraX + this.position.X - num75; } this.pulley = true; this.position.X = num75; this.gfxOffY = this.position.Y - num74; this.stepSpeed = 2.5f; this.position.Y = num74; this.velocity.X = 0f; } else { num75 = (float)num78; this.pulleyDir = 2; this.direction = -1; if (!Collision.SolidCollision(new Vector2(num75, this.position.Y), this.width, this.height)) { if (i == Main.myPlayer) { Main.cameraX = Main.cameraX + this.position.X - num75; } this.pulley = true; this.position.X = num75; this.gfxOffY = this.position.Y - num74; this.stepSpeed = 2.5f; this.position.Y = num74; this.velocity.X = 0f; } } } } } if (this.pulley) { this.sandStorm = false; this.dJumpEffect = false; this.dJumpEffect2 = false; this.dJumpEffect3 = false; this.dJumpEffect4 = false; int num81 = (int)(this.position.X + (float)(this.width / 2)) / 16; int num82 = (int)(this.position.Y - 8f) / 16; bool flag28 = false; if (this.pulleyDir == 0) { this.pulleyDir = 1; } if (this.pulleyDir == 1) { if (this.direction == -1 && this.controlLeft && (this.releaseLeft || this.leftTimer == 0)) { this.pulleyDir = 2; flag28 = true; } else { if ((this.direction == 1 && this.controlRight && this.releaseRight) || this.rightTimer == 0) { this.pulleyDir = 2; flag28 = true; } else { if (this.direction == 1 && this.controlLeft) { this.direction = -1; flag28 = true; } if (this.direction == -1 && this.controlRight) { this.direction = 1; flag28 = true; } } } } else { if (this.pulleyDir == 2) { if (this.direction == 1 && this.controlLeft) { flag28 = true; int num83 = num81 * 16 + 8 - this.width / 2; if (!Collision.SolidCollision(new Vector2((float)num83, this.position.Y), this.width, this.height)) { this.pulleyDir = 1; this.direction = -1; flag28 = true; } } if (this.direction == -1 && this.controlRight) { flag28 = true; int num84 = num81 * 16 + 8 - this.width / 2; if (!Collision.SolidCollision(new Vector2((float)num84, this.position.Y), this.width, this.height)) { this.pulleyDir = 1; this.direction = 1; flag28 = true; } } } } bool flag29 = false; if (!flag28 && ((this.controlLeft && (this.releaseLeft || this.leftTimer == 0)) || (this.controlRight && (this.releaseRight || this.rightTimer == 0)))) { int num85 = 1; if (this.controlLeft) { num85 = -1; } int num86 = num81 + num85; if (Main.tile[num86, num82].active() && Main.tileRope[(int)Main.tile[num86, num82].type]) { this.pulleyDir = 1; this.direction = num85; int num87 = num86 * 16 + 8 - this.width / 2; float num88 = this.position.Y; num88 = (float)(num82 * 16 + 22); if ((!Main.tile[num86, num82 - 1].active() || !Main.tileRope[(int)Main.tile[num86, num82 - 1].type]) && (!Main.tile[num86, num82 + 1].active() || !Main.tileRope[(int)Main.tile[num86, num82 + 1].type])) { num88 = (float)(num82 * 16 + 22); } if (Collision.SolidCollision(new Vector2((float)num87, num88), this.width, this.height)) { this.pulleyDir = 2; this.direction = -num85; if (this.direction == 1) { num87 = num86 * 16 + 8 - this.width / 2 + 6; } else { num87 = num86 * 16 + 8 - this.width / 2 + -6; } } if (i == Main.myPlayer) { Main.cameraX = Main.cameraX + this.position.X - (float)num87; } this.position.X = (float)num87; this.gfxOffY = this.position.Y - num88; this.position.Y = num88; flag29 = true; } } if (!flag29 && !flag28 && !this.controlUp && ((this.controlLeft && this.releaseLeft) || (this.controlRight && this.releaseRight))) { this.pulley = false; if (this.controlLeft && this.velocity.X == 0f) { this.velocity.X = -1f; } if (this.controlRight && this.velocity.X == 0f) { this.velocity.X = 1f; } } if (this.velocity.X != 0f) { this.pulley = false; } if (Main.tile[num81, num82] == null) { Main.tile[num81, num82] = new Tile(); } if (!Main.tile[num81, num82].active() || !Main.tileRope[(int)Main.tile[num81, num82].type]) { this.pulley = false; } if (this.gravDir != 1f) { this.pulley = false; } if (this.frozen) { this.pulley = false; } if (!this.pulley) { this.velocity.Y = this.velocity.Y - num2; } if (this.controlJump) { this.pulley = false; this.jump = Player.jumpHeight; this.velocity.Y = -Player.jumpSpeed; } } if (this.pulley) { this.fallStart = (int)this.position.Y / 16; this.wingFrame = 0; if (this.wings == 4) { this.wingFrame = 3; } int num89 = (int)(this.position.X + (float)(this.width / 2)) / 16; int num90 = (int)(this.position.Y - 16f) / 16; int num91 = (int)(this.position.Y - 8f) / 16; bool flag30 = true; bool flag31 = false; if ((Main.tile[num89, num91 - 1].active() && Main.tileRope[(int)Main.tile[num89, num91 - 1].type]) || (Main.tile[num89, num91 + 1].active() && Main.tileRope[(int)Main.tile[num89, num91 + 1].type])) { flag31 = true; } if (Main.tile[num89, num90] == null) { Main.tile[num89, num90] = new Tile(); } if (!Main.tile[num89, num90].active() || !Main.tileRope[(int)Main.tile[num89, num90].type]) { flag30 = false; if (this.velocity.Y < 0f) { this.velocity.Y = 0f; } } if (flag31) { if (this.controlUp && flag30) { float num92 = this.position.X; float y = this.position.Y - Math.Abs(this.velocity.Y) - 2f; if (Collision.SolidCollision(new Vector2(num92, y), this.width, this.height)) { num92 = (float)(num89 * 16 + 8 - this.width / 2 + 6); if (!Collision.SolidCollision(new Vector2(num92, y), this.width, (int)((float)this.height + Math.Abs(this.velocity.Y) + 2f))) { if (i == Main.myPlayer) { Main.cameraX = Main.cameraX + this.position.X - num92; } this.pulleyDir = 2; this.direction = 1; this.position.X = num92; this.velocity.X = 0f; } else { num92 = (float)(num89 * 16 + 8 - this.width / 2 + -6); if (!Collision.SolidCollision(new Vector2(num92, y), this.width, (int)((float)this.height + Math.Abs(this.velocity.Y) + 2f))) { if (i == Main.myPlayer) { Main.cameraX = Main.cameraX + this.position.X - num92; } this.pulleyDir = 2; this.direction = -1; this.position.X = num92; this.velocity.X = 0f; } } } if (this.velocity.Y > 0f) { this.velocity.Y = this.velocity.Y * 0.7f; } if (this.velocity.Y > -3f) { this.velocity.Y = this.velocity.Y - 0.2f; } else { this.velocity.Y = this.velocity.Y - 0.02f; } if (this.velocity.Y < -8f) { this.velocity.Y = -8f; } } else { if (this.controlDown) { float num93 = this.position.X; float y2 = this.position.Y; if (Collision.SolidCollision(new Vector2(num93, y2), this.width, (int)((float)this.height + Math.Abs(this.velocity.Y) + 2f))) { num93 = (float)(num89 * 16 + 8 - this.width / 2 + 6); if (!Collision.SolidCollision(new Vector2(num93, y2), this.width, (int)((float)this.height + Math.Abs(this.velocity.Y) + 2f))) { if (i == Main.myPlayer) { Main.cameraX = Main.cameraX + this.position.X - num93; } this.pulleyDir = 2; this.direction = 1; this.position.X = num93; this.velocity.X = 0f; } else { num93 = (float)(num89 * 16 + 8 - this.width / 2 + -6); if (!Collision.SolidCollision(new Vector2(num93, y2), this.width, (int)((float)this.height + Math.Abs(this.velocity.Y) + 2f))) { if (i == Main.myPlayer) { Main.cameraX = Main.cameraX + this.position.X - num93; } this.pulleyDir = 2; this.direction = -1; this.position.X = num93; this.velocity.X = 0f; } } } if (this.velocity.Y < 0f) { this.velocity.Y = this.velocity.Y * 0.7f; } if (this.velocity.Y < 3f) { this.velocity.Y = this.velocity.Y + 0.2f; } else { this.velocity.Y = this.velocity.Y + 0.1f; } if (this.velocity.Y > num) { this.velocity.Y = num; } } else { this.velocity.Y = this.velocity.Y * 0.7f; if ((double)this.velocity.Y > -0.1 && (double)this.velocity.Y < 0.1) { this.velocity.Y = 0f; } } } } else { if (this.controlDown) { this.ropeCount = 10; this.pulley = false; this.velocity.Y = 1f; } else { this.velocity.Y = 0f; this.position.Y = (float)(num90 * 16 + 22); } } float num94 = (float)(num89 * 16 + 8 - this.width / 2); if (this.pulleyDir == 1) { num94 = (float)(num89 * 16 + 8 - this.width / 2); } if (this.pulleyDir == 2) { num94 = (float)(num89 * 16 + 8 - this.width / 2 + 6 * this.direction); } if (i == Main.myPlayer) { Main.cameraX = Main.cameraX + this.position.X - num94; } this.position.X = num94; this.pulleyFrameCounter += Math.Abs(this.velocity.Y * 0.75f); if (this.velocity.Y != 0f) { this.pulleyFrameCounter += 0.75f; } if (this.pulleyFrameCounter > 10f) { this.pulleyFrame++; this.pulleyFrameCounter = 0f; } if (this.pulleyFrame > 1) { this.pulleyFrame = 0; } this.canCarpet = true; this.carpetFrame = -1; this.wingTime = this.GetWingTime(); this.rocketTime = this.rocketTimeMax; this.rocketDelay = 0; this.rocketFrame = false; this.canRocket = false; this.rocketRelease = false; } else { if (this.grappling[0] == -1 && !this.tongued) { if (this.wings == 3 && this.velocity.Y == 0f) { num6 = 8.5f; } if (this.wings == 3 && Main.myPlayer == this.whoAmi) { num6 = 0f; } if (this.wings > 0 && this.velocity.Y != 0f) { if (this.wings == 1 || this.wings == 2) { num6 = 6.25f; } if (this.wings == 4) { num6 = 6.5f; } if (this.wings == 5 || this.wings == 6 || this.wings == 13 || this.wings == 15) { num6 = 6.75f; } if (this.wings == 7 || this.wings == 8) { num6 = 7f; } if (this.wings == 9 || this.wings == 10 || this.wings == 11) { num6 = 7.5f; } if (this.wings == 12) { num6 = 7.75f; } if (this.wings == 16 || this.wings == 17 || this.wings == 18 || this.wings == 19) { num6 = 7.9f; } if (this.wings == 3) { num6 = 11f; num4 *= 3f; } } if (Main.myPlayer == this.whoAmi && (this.wings == 3 || this.wings == 16 || this.wings == 17 || this.wings == 18 || this.wings == 19)) { num6 = 0f; num3 *= 0.2f; num4 *= 0.2f; } if (this.sticky) { num3 *= 0.25f; num4 *= 0.25f; num5 *= 2f; if (this.velocity.X > num3) { this.velocity.X = num3; } if (this.velocity.X < -num3) { this.velocity.X = -num3; } } else { if (this.powerrun) { num3 *= 3.5f; num4 *= 1f; num5 *= 2f; } else { if (this.slippy2) { num4 *= 0.6f; num5 = 0f; if (this.iceSkate) { num4 *= 3.5f; num3 *= 1.25f; } } else { if (this.slippy) { num4 *= 0.7f; if (this.iceSkate) { num4 *= 3.5f; num3 *= 1.25f; } else { num5 *= 0.1f; } } } } } if (this.sandStorm) { num4 *= 1.5f; num3 *= 2f; } if (this.dJumpEffect3 && this.doubleJump3) { num4 *= 3f; num3 *= 1.5f; } if (this.dJumpEffect4 && this.doubleJump4) { num4 *= 3f; num3 *= 1.75f; } if (this.carpetFrame != -1) { num4 *= 1.25f; num3 *= 1.5f; } if (this.controlLeft && this.velocity.X > -num3) { if (this.velocity.X > num5) { this.velocity.X = this.velocity.X - num5; } this.velocity.X = this.velocity.X - num4; if (!this.sandStorm && (this.itemAnimation == 0 || this.inventory[this.selectedItem].useTurn)) { this.direction = -1; } } else { if (this.controlRight && this.velocity.X < num3) { if (this.velocity.X < -num5) { this.velocity.X = this.velocity.X + num5; } this.velocity.X = this.velocity.X + num4; if (!this.sandStorm && (this.itemAnimation == 0 || this.inventory[this.selectedItem].useTurn)) { this.direction = 1; } } else { if (this.controlLeft && this.velocity.X > -num6 && this.dashDelay == 0) { if (this.itemAnimation == 0 || this.inventory[this.selectedItem].useTurn) { this.direction = -1; } if (this.velocity.Y == 0f || this.wings > 0) { if (this.velocity.X > num5) { this.velocity.X = this.velocity.X - num5; } this.velocity.X = this.velocity.X - num4 * 0.2f; if (this.wings > 0) { this.velocity.X = this.velocity.X - num4 * 0.2f; } } if (this.velocity.X < -(num6 + num3) / 2f && this.velocity.Y == 0f) { int num95 = 0; if (this.gravDir == -1f) { num95 -= this.height; } if (this.runSoundDelay == 0 && this.velocity.Y == 0f) { Main.PlaySound(17, (int)this.position.X, (int)this.position.Y, 1); this.runSoundDelay = 9; } if (this.wings == 3) { int num96 = Dust.NewDust(new Vector2(this.position.X - 4f, this.position.Y + (float)this.height + (float)num95), this.width + 8, 4, 186, -this.velocity.X * 0.5f, this.velocity.Y * 0.5f, 50, default(Color), 1.5f); Main.dust[num96].velocity *= 0.025f; num96 = Dust.NewDust(new Vector2(this.position.X - 4f, this.position.Y + (float)this.height + (float)num95), this.width + 8, 4, 186, -this.velocity.X * 0.5f, this.velocity.Y * 0.5f, 50, default(Color), 1.5f); Main.dust[num96].velocity *= 0.2f; } else { if (this.coldDash) { for (int num97 = 0; num97 < 2; num97++) { int num98; if (num97 == 0) { num98 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + (float)this.height + this.gfxOffY), this.width / 2, 6, 76, 0f, 0f, 0, default(Color), 1.35f); } else { num98 = Dust.NewDust(new Vector2(this.position.X + (float)(this.width / 2), this.position.Y + (float)this.height + this.gfxOffY), this.width / 2, 6, 76, 0f, 0f, 0, default(Color), 1.35f); } Main.dust[num98].scale *= 1f + (float)Main.rand.Next(20, 40) * 0.01f; Main.dust[num98].noGravity = true; Main.dust[num98].noLight = true; Main.dust[num98].velocity *= 0.001f; Dust expr_A041_cp_0 = Main.dust[num98]; expr_A041_cp_0.velocity.Y = expr_A041_cp_0.velocity.Y - 0.003f; } } else { int num99 = Dust.NewDust(new Vector2(this.position.X - 4f, this.position.Y + (float)this.height + (float)num95), this.width + 8, 4, 16, -this.velocity.X * 0.5f, this.velocity.Y * 0.5f, 50, default(Color), 1.5f); Main.dust[num99].velocity.X = Main.dust[num99].velocity.X * 0.2f; Main.dust[num99].velocity.Y = Main.dust[num99].velocity.Y * 0.2f; } } } } else { if (this.controlRight && this.velocity.X < num6 && this.dashDelay == 0) { if (this.itemAnimation == 0 || this.inventory[this.selectedItem].useTurn) { this.direction = 1; } if (this.velocity.Y == 0f || this.wings > 0) { if (this.velocity.X < -num5) { this.velocity.X = this.velocity.X + num5; } this.velocity.X = this.velocity.X + num4 * 0.2f; if (this.wings > 0) { this.velocity.X = this.velocity.X + num4 * 0.2f; } } if (this.velocity.X > (num6 + num3) / 2f && this.velocity.Y == 0f) { int num100 = 0; if (this.gravDir == -1f) { num100 -= this.height; } if (this.runSoundDelay == 0 && this.velocity.Y == 0f) { Main.PlaySound(17, (int)this.position.X, (int)this.position.Y, 1); this.runSoundDelay = 9; } if (this.wings == 3) { int num101 = Dust.NewDust(new Vector2(this.position.X - 4f, this.position.Y + (float)this.height + (float)num100), this.width + 8, 4, 186, -this.velocity.X * 0.5f, this.velocity.Y * 0.5f, 50, default(Color), 1.5f); Main.dust[num101].velocity *= 0.025f; num101 = Dust.NewDust(new Vector2(this.position.X - 4f, this.position.Y + (float)this.height + (float)num100), this.width + 8, 4, 186, -this.velocity.X * 0.5f, this.velocity.Y * 0.5f, 50, default(Color), 1.5f); Main.dust[num101].velocity *= 0.2f; } else { if (this.coldDash) { for (int num102 = 0; num102 < 2; num102++) { int num103; if (num102 == 0) { num103 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + (float)this.height + this.gfxOffY), this.width / 2, 6, 76, 0f, 0f, 0, default(Color), 1.35f); } else { num103 = Dust.NewDust(new Vector2(this.position.X + (float)(this.width / 2), this.position.Y + (float)this.height + this.gfxOffY), this.width / 2, 6, 76, 0f, 0f, 0, default(Color), 1.35f); } Main.dust[num103].scale *= 1f + (float)Main.rand.Next(20, 40) * 0.01f; Main.dust[num103].noGravity = true; Main.dust[num103].noLight = true; Main.dust[num103].velocity *= 0.001f; Dust expr_A511_cp_0 = Main.dust[num103]; expr_A511_cp_0.velocity.Y = expr_A511_cp_0.velocity.Y - 0.003f; } } else { int num104 = Dust.NewDust(new Vector2(this.position.X - 4f, this.position.Y + (float)this.height + (float)num100), this.width + 8, 4, 16, -this.velocity.X * 0.5f, this.velocity.Y * 0.5f, 50, default(Color), 1.5f); Main.dust[num104].velocity.X = Main.dust[num104].velocity.X * 0.2f; Main.dust[num104].velocity.Y = Main.dust[num104].velocity.Y * 0.2f; } } } } else { if (this.velocity.Y == 0f) { if (this.velocity.X > num5) { this.velocity.X = this.velocity.X - num5; } else { if (this.velocity.X < -num5) { this.velocity.X = this.velocity.X + num5; } else { this.velocity.X = 0f; } } } else { if ((double)this.velocity.X > (double)num5 * 0.5) { this.velocity.X = this.velocity.X - num5 * 0.5f; } else { if ((double)this.velocity.X < (double)(-(double)num5) * 0.5) { this.velocity.X = this.velocity.X + num5 * 0.5f; } else { this.velocity.X = 0f; } } } } } } } if (this.gravControl) { if (this.controlUp && this.releaseUp) { if (this.gravDir == 1f) { this.gravDir = -1f; this.fallStart = (int)(this.position.Y / 16f); this.jump = 0; Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 8); } else { this.gravDir = 1f; this.fallStart = (int)(this.position.Y / 16f); this.jump = 0; Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 8); } } } else { if (this.gravControl2) { if (this.controlUp && this.releaseUp && this.velocity.Y == 0f) { if (this.gravDir == 1f) { this.gravDir = -1f; this.fallStart = (int)(this.position.Y / 16f); this.jump = 0; Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 8); } else { this.gravDir = 1f; this.fallStart = (int)(this.position.Y / 16f); this.jump = 0; Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 8); } } } else { this.gravDir = 1f; } } if (this.controlUp) { this.releaseUp = false; } else { this.releaseUp = true; } this.sandStorm = false; if (this.controlJump) { if (this.jump > 0) { if (this.velocity.Y == 0f) { if (this.merman) { this.jump = 10; } this.jump = 0; } else { this.velocity.Y = -Player.jumpSpeed * this.gravDir; if (this.merman) { if (this.swimTime <= 10) { this.swimTime = 30; } } else { this.jump--; } } } else { if ((this.sliding || this.velocity.Y == 0f || this.jumpAgain || this.jumpAgain2 || this.jumpAgain3 || this.jumpAgain4 || (this.wet && this.accFlipper)) && this.releaseJump) { bool flag32 = false; if (this.wet && this.accFlipper) { if (this.swimTime == 0) { this.swimTime = 30; } flag32 = true; } bool flag33 = false; bool flag34 = false; bool flag35 = false; if (this.jumpAgain2) { flag33 = true; this.jumpAgain2 = false; } else { if (this.jumpAgain3) { flag34 = true; this.jumpAgain3 = false; } else { if (this.jumpAgain4) { this.jumpAgain4 = false; flag35 = true; } else { this.jumpAgain = false; } } } this.canRocket = false; this.rocketRelease = false; if ((this.velocity.Y == 0f || this.sliding) && this.doubleJump) { this.jumpAgain = true; } if ((this.velocity.Y == 0f || this.sliding) && this.doubleJump2) { this.jumpAgain2 = true; } if ((this.velocity.Y == 0f || this.sliding) && this.doubleJump3) { this.jumpAgain3 = true; } if ((this.velocity.Y == 0f || this.sliding) && this.doubleJump4) { this.jumpAgain4 = true; } if (this.velocity.Y == 0f || flag32 || this.sliding) { this.velocity.Y = -Player.jumpSpeed * this.gravDir; this.jump = Player.jumpHeight; if (this.sliding) { this.velocity.X = (float)(3 * -(float)this.slideDir); } } else { if (flag33) { this.dJumpEffect2 = true; float arg_AB51_0 = this.gravDir; Main.PlaySound(16, (int)this.position.X, (int)this.position.Y, 1); this.velocity.Y = -Player.jumpSpeed * this.gravDir; this.jump = Player.jumpHeight * 3; } else { if (flag34) { this.dJumpEffect3 = true; float arg_ABB3_0 = this.gravDir; Main.PlaySound(16, (int)this.position.X, (int)this.position.Y, 1); this.velocity.Y = -Player.jumpSpeed * this.gravDir; this.jump = (int)((double)Player.jumpHeight * 1.5); } else { if (flag35) { this.dJumpEffect4 = true; int num105 = this.height; if (this.gravDir == -1f) { num105 = 0; } Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 16); this.velocity.Y = -Player.jumpSpeed * this.gravDir; this.jump = Player.jumpHeight * 2; for (int num106 = 0; num106 < 10; num106++) { int num107 = Dust.NewDust(new Vector2(this.position.X - 34f, this.position.Y + (float)num105 - 16f), 102, 32, 188, -this.velocity.X * 0.5f, this.velocity.Y * 0.5f, 100, default(Color), 1.5f); Main.dust[num107].velocity.X = Main.dust[num107].velocity.X * 0.5f - this.velocity.X * 0.1f; Main.dust[num107].velocity.Y = Main.dust[num107].velocity.Y * 0.5f - this.velocity.Y * 0.3f; } int num108 = Gore.NewGore(new Vector2(this.position.X + (float)(this.width / 2) - 16f, this.position.Y + (float)num105 - 16f), new Vector2(-this.velocity.X, -this.velocity.Y), Main.rand.Next(435, 438), 1f); Main.gore[num108].velocity.X = Main.gore[num108].velocity.X * 0.1f - this.velocity.X * 0.1f; Main.gore[num108].velocity.Y = Main.gore[num108].velocity.Y * 0.1f - this.velocity.Y * 0.05f; num108 = Gore.NewGore(new Vector2(this.position.X - 36f, this.position.Y + (float)num105 - 16f), new Vector2(-this.velocity.X, -this.velocity.Y), Main.rand.Next(435, 438), 1f); Main.gore[num108].velocity.X = Main.gore[num108].velocity.X * 0.1f - this.velocity.X * 0.1f; Main.gore[num108].velocity.Y = Main.gore[num108].velocity.Y * 0.1f - this.velocity.Y * 0.05f; num108 = Gore.NewGore(new Vector2(this.position.X + (float)this.width + 4f, this.position.Y + (float)num105 - 16f), new Vector2(-this.velocity.X, -this.velocity.Y), Main.rand.Next(435, 438), 1f); Main.gore[num108].velocity.X = Main.gore[num108].velocity.X * 0.1f - this.velocity.X * 0.1f; Main.gore[num108].velocity.Y = Main.gore[num108].velocity.Y * 0.1f - this.velocity.Y * 0.05f; } else { this.dJumpEffect = true; int num109 = this.height; if (this.gravDir == -1f) { num109 = 0; } Main.PlaySound(16, (int)this.position.X, (int)this.position.Y, 1); this.velocity.Y = -Player.jumpSpeed * this.gravDir; this.jump = (int)((double)Player.jumpHeight * 0.75); for (int num110 = 0; num110 < 10; num110++) { int num111 = Dust.NewDust(new Vector2(this.position.X - 34f, this.position.Y + (float)num109 - 16f), 102, 32, 16, -this.velocity.X * 0.5f, this.velocity.Y * 0.5f, 100, default(Color), 1.5f); Main.dust[num111].velocity.X = Main.dust[num111].velocity.X * 0.5f - this.velocity.X * 0.1f; Main.dust[num111].velocity.Y = Main.dust[num111].velocity.Y * 0.5f - this.velocity.Y * 0.3f; } int num112 = Gore.NewGore(new Vector2(this.position.X + (float)(this.width / 2) - 16f, this.position.Y + (float)num109 - 16f), new Vector2(-this.velocity.X, -this.velocity.Y), Main.rand.Next(11, 14), 1f); Main.gore[num112].velocity.X = Main.gore[num112].velocity.X * 0.1f - this.velocity.X * 0.1f; Main.gore[num112].velocity.Y = Main.gore[num112].velocity.Y * 0.1f - this.velocity.Y * 0.05f; num112 = Gore.NewGore(new Vector2(this.position.X - 36f, this.position.Y + (float)num109 - 16f), new Vector2(-this.velocity.X, -this.velocity.Y), Main.rand.Next(11, 14), 1f); Main.gore[num112].velocity.X = Main.gore[num112].velocity.X * 0.1f - this.velocity.X * 0.1f; Main.gore[num112].velocity.Y = Main.gore[num112].velocity.Y * 0.1f - this.velocity.Y * 0.05f; num112 = Gore.NewGore(new Vector2(this.position.X + (float)this.width + 4f, this.position.Y + (float)num109 - 16f), new Vector2(-this.velocity.X, -this.velocity.Y), Main.rand.Next(11, 14), 1f); Main.gore[num112].velocity.X = Main.gore[num112].velocity.X * 0.1f - this.velocity.X * 0.1f; Main.gore[num112].velocity.Y = Main.gore[num112].velocity.Y * 0.1f - this.velocity.Y * 0.05f; } } } } } } this.releaseJump = false; } else { this.jump = 0; this.releaseJump = true; this.rocketRelease = true; } if (this.wings == 0) { this.wingTime = 0; } if (this.wings == 3) { this.wingTime = 1000; } if (Main.myPlayer == this.whoAmi && (this.wings == 3 || this.wings == 16 || this.wings == 17 || this.wings == 18 || this.wings == 19)) { this.wingTime = 0; this.jump = 0; } if (this.rocketBoots == 0) { this.rocketTime = 0; } if (this.jump == 0) { this.dJumpEffect = false; this.dJumpEffect2 = false; this.dJumpEffect3 = false; this.dJumpEffect4 = false; } if (this.dashDelay > 0) { this.dashDelay--; } else { if (this.dashDelay < 0) { for (int num113 = 0; num113 < 2; num113++) { int num114; if (this.velocity.Y == 0f) { num114 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + (float)this.height - 4f), this.width, 8, 31, 0f, 0f, 100, default(Color), 1.4f); } else { num114 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + (float)(this.height / 2) - 8f), this.width, 16, 31, 0f, 0f, 100, default(Color), 1.4f); } Main.dust[num114].velocity *= 0.1f; Main.dust[num114].scale *= 1f + (float)Main.rand.Next(20) * 0.01f; } if (this.velocity.X > 13f || this.velocity.X < -13f) { this.velocity.X = this.velocity.X * 0.99f; } else { if (this.velocity.X > num3 || this.velocity.X < -num3) { this.velocity.X = this.velocity.X * 0.8f; } else { this.dashDelay = 30; } } } else { if (this.dash > 0) { int num115 = 0; bool flag36 = false; if (this.dashTime > 0) { this.dashTime--; } if (this.dashTime < 0) { this.dashTime++; } if (this.controlRight && this.releaseRight) { if (this.dashTime > 0) { num115 = 1; flag36 = true; this.dashTime = 0; } else { this.dashTime = 15; } } else { if (this.controlLeft && this.releaseLeft) { if (this.dashTime < 0) { num115 = -1; flag36 = true; this.dashTime = 0; } else { this.dashTime = -15; } } } if (flag36) { this.velocity.X = 15.9f * (float)num115; this.dashDelay = -1; for (int num116 = 0; num116 < 20; num116++) { int num117 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 31, 0f, 0f, 100, default(Color), 2f); Dust expr_B7F6_cp_0 = Main.dust[num117]; expr_B7F6_cp_0.position.X = expr_B7F6_cp_0.position.X + (float)Main.rand.Next(-5, 6); Dust expr_B81D_cp_0 = Main.dust[num117]; expr_B81D_cp_0.position.Y = expr_B81D_cp_0.position.Y + (float)Main.rand.Next(-5, 6); Main.dust[num117].velocity *= 0.2f; Main.dust[num117].scale *= 1f + (float)Main.rand.Next(20) * 0.01f; } int num118 = Gore.NewGore(new Vector2(this.position.X + (float)(this.width / 2) - 24f, this.position.Y + (float)(this.height / 2) - 34f), default(Vector2), Main.rand.Next(61, 64), 1f); Main.gore[num118].velocity.X = (float)Main.rand.Next(-50, 51) * 0.01f; Main.gore[num118].velocity.Y = (float)Main.rand.Next(-50, 51) * 0.01f; Main.gore[num118].velocity *= 0.4f; num118 = Gore.NewGore(new Vector2(this.position.X + (float)(this.width / 2) - 24f, this.position.Y + (float)(this.height / 2) - 14f), default(Vector2), Main.rand.Next(61, 64), 1f); Main.gore[num118].velocity.X = (float)Main.rand.Next(-50, 51) * 0.01f; Main.gore[num118].velocity.Y = (float)Main.rand.Next(-50, 51) * 0.01f; Main.gore[num118].velocity *= 0.4f; } } } } this.sliding = false; if (this.slideDir != 0 && this.spikedBoots > 0 && ((this.controlLeft && this.slideDir == -1) || (this.controlRight && this.slideDir == 1))) { bool flag37 = false; float num119 = this.position.X; if (this.slideDir == 1) { num119 += (float)this.width; } num119 += (float)this.slideDir; float num120 = this.position.Y + (float)this.height + 1f; if (this.gravDir < 0f) { num120 = this.position.Y - 1f; } num119 /= 16f; num120 /= 16f; if (WorldGen.SolidTile((int)num119, (int)num120) && WorldGen.SolidTile((int)num119, (int)num120 - 1)) { flag37 = true; } if (this.spikedBoots >= 2) { if (flag37 && ((this.velocity.Y > 0f && this.gravDir == 1f) || (this.velocity.Y < num2 && this.gravDir == -1f))) { float num121 = num2; if (this.slowFall) { if (this.controlUp) { num121 = num2 / 10f * this.gravDir; } else { num121 = num2 / 3f * this.gravDir; } } this.fallStart = (int)(this.position.Y / 16f); if ((this.controlDown && this.gravDir == 1f) || (this.controlUp && this.gravDir == -1f)) { this.velocity.Y = 4f * this.gravDir; int num122 = Dust.NewDust(new Vector2(this.position.X + (float)(this.width / 2) + (float)((this.width / 2 - 4) * this.slideDir), this.position.Y + (float)(this.height / 2) + (float)(this.height / 2 - 4) * this.gravDir), 8, 8, 31, 0f, 0f, 0, default(Color), 1f); if (this.slideDir < 0) { Dust expr_BC8C_cp_0 = Main.dust[num122]; expr_BC8C_cp_0.position.X = expr_BC8C_cp_0.position.X - 10f; } if (this.gravDir < 0f) { Dust expr_BCB7_cp_0 = Main.dust[num122]; expr_BCB7_cp_0.position.Y = expr_BCB7_cp_0.position.Y - 12f; } Main.dust[num122].velocity *= 0.1f; Main.dust[num122].scale *= 1.2f; Main.dust[num122].noGravity = true; } else { if (this.gravDir == -1f) { this.velocity.Y = (-num121 + 1E-05f) * this.gravDir; } else { this.velocity.Y = (-num121 + 1E-05f) * this.gravDir; } } this.sliding = true; } } else { if ((flag37 && (double)this.velocity.Y > 0.5 && this.gravDir == 1f) || ((double)this.velocity.Y < -0.5 && this.gravDir == -1f)) { this.fallStart = (int)(this.position.Y / 16f); if (this.controlDown) { this.velocity.Y = 4f * this.gravDir; } else { this.velocity.Y = 0.5f * this.gravDir; } this.sliding = true; int num123 = Dust.NewDust(new Vector2(this.position.X + (float)(this.width / 2) + (float)((this.width / 2 - 4) * this.slideDir), this.position.Y + (float)(this.height / 2) + (float)(this.height / 2 - 4) * this.gravDir), 8, 8, 31, 0f, 0f, 0, default(Color), 1f); if (this.slideDir < 0) { Dust expr_BE9C_cp_0 = Main.dust[num123]; expr_BE9C_cp_0.position.X = expr_BE9C_cp_0.position.X - 10f; } if (this.gravDir < 0f) { Dust expr_BEC7_cp_0 = Main.dust[num123]; expr_BEC7_cp_0.position.Y = expr_BEC7_cp_0.position.Y - 12f; } Main.dust[num123].velocity *= 0.1f; Main.dust[num123].scale *= 1.2f; Main.dust[num123].noGravity = true; } } } bool flag38 = false; if (this.grappling[0] == -1 && this.carpet && !this.jumpAgain && !this.jumpAgain2 && !this.jumpAgain3 && !this.jumpAgain4 && this.jump == 0 && this.velocity.Y != 0f && this.rocketTime == 0 && this.wingTime == 0) { if (this.controlJump && this.canCarpet) { this.canCarpet = false; this.carpetTime = 300; } if (this.carpetTime > 0 && this.controlJump) { this.fallStart = (int)(this.position.Y / 16f); flag38 = true; this.carpetTime--; if (this.gravDir == 1f && this.velocity.Y > -num2) { this.velocity.Y = -(num2 + 1E-06f); } else { if (this.gravDir == -1f && this.velocity.Y < num2) { this.velocity.Y = num2 + 1E-06f; } } this.carpetFrameCounter += 1f + Math.Abs(this.velocity.X * 0.5f); if (this.carpetFrameCounter > 8f) { this.carpetFrameCounter = 0f; this.carpetFrame++; } if (this.carpetFrame < 0) { this.carpetFrame = 0; } if (this.carpetFrame > 5) { this.carpetFrame = 0; } } } if (!flag38) { this.carpetFrame = -1; } if (this.dJumpEffect && this.doubleJump && !this.jumpAgain && (this.jumpAgain2 || !this.doubleJump2) && ((this.gravDir == 1f && this.velocity.Y < 0f) || (this.gravDir == -1f && this.velocity.Y > 0f))) { int num124 = this.height; if (this.gravDir == -1f) { num124 = -6; } int num125 = Dust.NewDust(new Vector2(this.position.X - 4f, this.position.Y + (float)num124), this.width + 8, 4, 16, -this.velocity.X * 0.5f, this.velocity.Y * 0.5f, 100, default(Color), 1.5f); Main.dust[num125].velocity.X = Main.dust[num125].velocity.X * 0.5f - this.velocity.X * 0.1f; Main.dust[num125].velocity.Y = Main.dust[num125].velocity.Y * 0.5f - this.velocity.Y * 0.3f; } if (this.dJumpEffect2 && this.doubleJump2 && !this.jumpAgain2 && ((this.gravDir == 1f && this.velocity.Y < 0f) || (this.gravDir == -1f && this.velocity.Y > 0f))) { int num126 = this.height; if (this.gravDir == -1f) { num126 = -6; } float num127 = ((float)this.jump / 75f + 1f) / 2f; for (int num128 = 0; num128 < 3; num128++) { int num129 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + (float)(num126 / 2)), this.width, 32, 124, this.velocity.X * 0.3f, this.velocity.Y * 0.3f, 150, default(Color), 1f * num127); Main.dust[num129].velocity *= 0.5f * num127; Main.dust[num129].fadeIn = 1.5f * num127; } this.sandStorm = true; if (this.miscCounter % 3 == 0) { int num130 = Gore.NewGore(new Vector2(this.position.X + (float)(this.width / 2) - 18f, this.position.Y + (float)(num126 / 2)), new Vector2(-this.velocity.X, -this.velocity.Y), Main.rand.Next(220, 223), num127); Main.gore[num130].velocity = this.velocity * 0.3f * num127; Main.gore[num130].alpha = 100; } } if (this.dJumpEffect4 && this.doubleJump4 && !this.jumpAgain4 && ((this.gravDir == 1f && this.velocity.Y < 0f) || (this.gravDir == -1f && this.velocity.Y > 0f))) { int num131 = this.height; if (this.gravDir == -1f) { num131 = -6; } int num132 = Dust.NewDust(new Vector2(this.position.X - 4f, this.position.Y + (float)num131), this.width + 8, 4, 188, -this.velocity.X * 0.5f, this.velocity.Y * 0.5f, 100, default(Color), 1.5f); Main.dust[num132].velocity.X = Main.dust[num132].velocity.X * 0.5f - this.velocity.X * 0.1f; Main.dust[num132].velocity.Y = Main.dust[num132].velocity.Y * 0.5f - this.velocity.Y * 0.3f; Main.dust[num132].velocity *= 0.5f; } if (this.dJumpEffect3 && this.doubleJump3 && !this.jumpAgain3 && ((this.gravDir == 1f && this.velocity.Y < 0f) || (this.gravDir == -1f && this.velocity.Y > 0f))) { int num133 = this.height - 6; if (this.gravDir == -1f) { num133 = 6; } for (int num134 = 0; num134 < 2; num134++) { int num135 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + (float)num133), this.width, 12, 76, this.velocity.X * 0.3f, this.velocity.Y * 0.3f, 0, default(Color), 1f); Main.dust[num135].velocity *= 0.1f; if (num134 == 0) { Main.dust[num135].velocity += this.velocity * 0.03f; } else { Main.dust[num135].velocity -= this.velocity * 0.03f; } Main.dust[num135].noLight = true; } for (int num136 = 0; num136 < 3; num136++) { int num137 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + (float)num133), this.width, 12, 76, this.velocity.X * 0.3f, this.velocity.Y * 0.3f, 0, default(Color), 1f); Main.dust[num137].fadeIn = 1.5f; Main.dust[num137].velocity *= 0.6f; Main.dust[num137].velocity += this.velocity * 0.8f; Main.dust[num137].noGravity = true; Main.dust[num137].noLight = true; } for (int num138 = 0; num138 < 3; num138++) { int num139 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + (float)num133), this.width, 12, 76, this.velocity.X * 0.3f, this.velocity.Y * 0.3f, 0, default(Color), 1f); Main.dust[num139].fadeIn = 1.5f; Main.dust[num139].velocity *= 0.6f; Main.dust[num139].velocity -= this.velocity * 0.8f; Main.dust[num139].noGravity = true; Main.dust[num139].noLight = true; } } if (this.wings > 0) { this.sandStorm = false; } if (((this.gravDir == 1f && this.velocity.Y > -Player.jumpSpeed) || (this.gravDir == -1f && this.velocity.Y < Player.jumpSpeed)) && this.velocity.Y != 0f) { this.canRocket = true; } bool flag39 = false; if (this.velocity.Y == 0f || this.sliding) { this.wingTime = this.GetWingTime(); } if (this.wings > 0 && this.controlJump && this.wingTime > 0 && !this.jumpAgain && this.jump == 0 && this.velocity.Y != 0f) { flag39 = true; } if (this.frozen) { this.velocity.Y = this.velocity.Y + num2; if (this.velocity.Y > num) { this.velocity.Y = num; } this.sandStorm = false; this.dJumpEffect = false; this.dJumpEffect2 = false; this.dJumpEffect3 = false; } else { if (flag39) { if (this.wings == 10 && Main.rand.Next(2) == 0) { int num140 = 4; if (this.direction == 1) { num140 = -40; } int num141 = Dust.NewDust(new Vector2(this.position.X + (float)(this.width / 2) + (float)num140, this.position.Y + (float)(this.height / 2) - 15f), 30, 30, 76, 0f, 0f, 50, default(Color), 0.6f); Main.dust[num141].fadeIn = 1.1f; Main.dust[num141].noGravity = true; Main.dust[num141].noLight = true; Main.dust[num141].velocity *= 0.3f; } if (this.wings == 9 && Main.rand.Next(2) == 0) { int num142 = 4; if (this.direction == 1) { num142 = -40; } int num143 = Dust.NewDust(new Vector2(this.position.X + (float)(this.width / 2) + (float)num142, this.position.Y + (float)(this.height / 2) - 15f), 30, 30, 6, 0f, 0f, 200, default(Color), 2f); Main.dust[num143].noGravity = true; Main.dust[num143].velocity *= 0.3f; } if (this.wings == 6 && Main.rand.Next(4) == 0) { int num144 = 4; if (this.direction == 1) { num144 = -40; } int num145 = Dust.NewDust(new Vector2(this.position.X + (float)(this.width / 2) + (float)num144, this.position.Y + (float)(this.height / 2) - 15f), 30, 30, 55, 0f, 0f, 200, default(Color), 1f); Main.dust[num145].velocity *= 0.3f; } if (this.wings == 5 && Main.rand.Next(3) == 0) { int num146 = 6; if (this.direction == 1) { num146 = -30; } int num147 = Dust.NewDust(new Vector2(this.position.X + (float)(this.width / 2) + (float)num146, this.position.Y), 18, this.height, 58, 0f, 0f, 255, default(Color), 1.2f); Main.dust[num147].velocity *= 0.3f; } if (this.wings == 4 && this.controlUp) { this.velocity.Y = this.velocity.Y - 0.2f * this.gravDir; if (this.gravDir == 1f) { if (this.velocity.Y > 0f) { this.velocity.Y = this.velocity.Y - 1f; } else { if (this.velocity.Y > -Player.jumpSpeed) { this.velocity.Y = this.velocity.Y - 0.2f; } } if (this.velocity.Y < -Player.jumpSpeed * 3f) { this.velocity.Y = -Player.jumpSpeed * 3f; } } else { if (this.velocity.Y < 0f) { this.velocity.Y = this.velocity.Y + 1f; } else { if (this.velocity.Y < Player.jumpSpeed) { this.velocity.Y = this.velocity.Y + 0.2f; } } if (this.velocity.Y > Player.jumpSpeed * 3f) { this.velocity.Y = Player.jumpSpeed * 3f; } } this.wingTime -= 2; } else { if (this.wings == 3 && this.controlUp) { this.velocity.Y = this.velocity.Y - 0.3f * this.gravDir; if (this.gravDir == 1f) { if (this.velocity.Y > 0f) { this.velocity.Y = this.velocity.Y - 1f; } else { if (this.velocity.Y > -Player.jumpSpeed) { this.velocity.Y = this.velocity.Y - 0.2f; } } if (this.velocity.Y < -Player.jumpSpeed * 3f) { this.velocity.Y = -Player.jumpSpeed * 3f; } } else { if (this.velocity.Y < 0f) { this.velocity.Y = this.velocity.Y + 1f; } else { if (this.velocity.Y < Player.jumpSpeed) { this.velocity.Y = this.velocity.Y + 0.2f; } } if (this.velocity.Y > Player.jumpSpeed * 3f) { this.velocity.Y = Player.jumpSpeed * 3f; } } this.wingTime -= 2; } else { this.velocity.Y = this.velocity.Y - 0.1f * this.gravDir; if (this.gravDir == 1f) { if (this.velocity.Y > 0f) { this.velocity.Y = this.velocity.Y - 0.5f; } else { if ((double)this.velocity.Y > (double)(-(double)Player.jumpSpeed) * 0.5) { this.velocity.Y = this.velocity.Y - 0.1f; } } if (this.velocity.Y < -Player.jumpSpeed * 1.5f) { this.velocity.Y = -Player.jumpSpeed * 1.5f; } } else { if (this.velocity.Y < 0f) { this.velocity.Y = this.velocity.Y + 0.5f; } else { if ((double)this.velocity.Y < (double)Player.jumpSpeed * 0.5) { this.velocity.Y = this.velocity.Y + 0.1f; } } if (this.velocity.Y > Player.jumpSpeed * 1.5f) { this.velocity.Y = Player.jumpSpeed * 1.5f; } } this.wingTime--; } } } if (this.wings == 4) { if (flag39 || this.jump > 0) { this.rocketDelay2--; if (this.rocketDelay2 <= 0) { Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 13); this.rocketDelay2 = 60; } int num148 = 2; if (this.controlUp) { num148 = 4; } for (int num149 = 0; num149 < num148; num149++) { int type3 = 6; if (this.head == 41) { int arg_D207_0 = this.body; } float scale = 1.75f; int alpha = 100; float x = this.position.X + (float)(this.width / 2) + 16f; if (this.direction > 0) { x = this.position.X + (float)(this.width / 2) - 26f; } float num150 = this.position.Y + (float)this.height - 18f; if (num149 == 1 || num149 == 3) { x = this.position.X + (float)(this.width / 2) + 8f; if (this.direction > 0) { x = this.position.X + (float)(this.width / 2) - 20f; } num150 += 6f; } if (num149 > 1) { num150 += this.velocity.Y; } int num151 = Dust.NewDust(new Vector2(x, num150), 8, 8, type3, 0f, 0f, alpha, default(Color), scale); Dust expr_D31A_cp_0 = Main.dust[num151]; expr_D31A_cp_0.velocity.X = expr_D31A_cp_0.velocity.X * 0.1f; Main.dust[num151].velocity.Y = Main.dust[num151].velocity.Y * 1f + 2f * this.gravDir - this.velocity.Y * 0.3f; Main.dust[num151].noGravity = true; if (num148 == 4) { Dust expr_D394_cp_0 = Main.dust[num151]; expr_D394_cp_0.velocity.Y = expr_D394_cp_0.velocity.Y + 6f; } } this.wingFrameCounter++; if (this.wingFrameCounter > 4) { this.wingFrame++; this.wingFrameCounter = 0; if (this.wingFrame >= 3) { this.wingFrame = 0; } } } else { if (!this.controlJump || this.velocity.Y == 0f) { this.wingFrame = 3; } } } else { if (this.wings == 12) { if (flag39 || this.jump > 0) { this.wingFrameCounter++; int num152 = 5; if (this.wingFrameCounter < num152) { this.wingFrame = 1; } else { if (this.wingFrameCounter < num152 * 2) { this.wingFrame = 2; } else { if (this.wingFrameCounter < num152 * 3) { this.wingFrame = 3; } else { if (this.wingFrameCounter < num152 * 4 - 1) { this.wingFrame = 2; } else { this.wingFrame = 2; this.wingFrameCounter = 0; } } } } } else { if (this.velocity.Y != 0f) { this.wingFrame = 2; } else { this.wingFrame = 0; } } } else { if (flag39 || this.jump > 0) { this.wingFrameCounter++; if (this.wingFrameCounter > 4) { this.wingFrame++; this.wingFrameCounter = 0; if (this.wingFrame >= 4) { this.wingFrame = 0; } } } else { if (this.velocity.Y != 0f) { this.wingFrame = 1; } else { this.wingFrame = 0; } } } } if (this.wings > 0 && this.rocketBoots > 0) { this.wingTime += this.rocketTime * 3; this.rocketTime = 0; } if (flag39 && this.wings != 4) { if (this.wingFrame == 3) { if (!this.flapSound) { Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 32); } this.flapSound = true; } else { this.flapSound = false; } } if (this.velocity.Y == 0f || this.sliding) { this.rocketTime = this.rocketTimeMax; } if ((this.wingTime == 0 || this.wings == 0) && this.rocketBoots > 0 && this.controlJump && this.rocketDelay == 0 && this.canRocket && this.rocketRelease && !this.jumpAgain) { if (this.rocketTime > 0) { this.rocketTime--; this.rocketDelay = 10; if (this.rocketDelay2 <= 0) { if (this.rocketBoots == 1) { Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 13); this.rocketDelay2 = 30; } else { if (this.rocketBoots == 2) { Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 24); this.rocketDelay2 = 15; } } } } else { this.canRocket = false; } } if (this.rocketDelay2 > 0) { this.rocketDelay2--; } if (this.rocketDelay == 0) { this.rocketFrame = false; } if (this.rocketDelay > 0) { int num153 = this.height; if (this.gravDir == -1f) { num153 = 4; } this.rocketFrame = true; for (int num154 = 0; num154 < 2; num154++) { int type4 = 6; float scale2 = 2.5f; int alpha2 = 100; if (this.rocketBoots == 2) { type4 = 16; scale2 = 1.5f; alpha2 = 20; } else { if (this.socialShadow) { type4 = 27; scale2 = 1.5f; } } if (num154 == 0) { int num155 = Dust.NewDust(new Vector2(this.position.X - 4f, this.position.Y + (float)num153 - 10f), 8, 8, type4, 0f, 0f, alpha2, default(Color), scale2); if (this.rocketBoots == 1) { Main.dust[num155].noGravity = true; } Main.dust[num155].velocity.X = Main.dust[num155].velocity.X * 1f - 2f - this.velocity.X * 0.3f; Main.dust[num155].velocity.Y = Main.dust[num155].velocity.Y * 1f + 2f * this.gravDir - this.velocity.Y * 0.3f; if (this.rocketBoots == 2) { Main.dust[num155].velocity *= 0.1f; } } else { int num156 = Dust.NewDust(new Vector2(this.position.X + (float)this.width - 4f, this.position.Y + (float)num153 - 10f), 8, 8, type4, 0f, 0f, alpha2, default(Color), scale2); if (this.rocketBoots == 1) { Main.dust[num156].noGravity = true; } Main.dust[num156].velocity.X = Main.dust[num156].velocity.X * 1f + 2f - this.velocity.X * 0.3f; Main.dust[num156].velocity.Y = Main.dust[num156].velocity.Y * 1f + 2f * this.gravDir - this.velocity.Y * 0.3f; if (this.rocketBoots == 2) { Main.dust[num156].velocity *= 0.1f; } } } if (this.rocketDelay == 0) { this.releaseJump = true; } this.rocketDelay--; this.velocity.Y = this.velocity.Y - 0.1f * this.gravDir; if (this.gravDir == 1f) { if (this.velocity.Y > 0f) { this.velocity.Y = this.velocity.Y - 0.5f; } else { if ((double)this.velocity.Y > (double)(-(double)Player.jumpSpeed) * 0.5) { this.velocity.Y = this.velocity.Y - 0.1f; } } if (this.velocity.Y < -Player.jumpSpeed * 1.5f) { this.velocity.Y = -Player.jumpSpeed * 1.5f; } } else { if (this.velocity.Y < 0f) { this.velocity.Y = this.velocity.Y + 0.5f; } else { if ((double)this.velocity.Y < (double)Player.jumpSpeed * 0.5) { this.velocity.Y = this.velocity.Y + 0.1f; } } if (this.velocity.Y > Player.jumpSpeed * 1.5f) { this.velocity.Y = Player.jumpSpeed * 1.5f; } } } else { if (!flag39) { if (this.slowFall && ((!this.controlDown && this.gravDir == 1f) || (!this.controlUp && this.gravDir == -1f))) { if ((this.controlUp && this.gravDir == 1f) || (this.controlDown && this.gravDir == -1f)) { num2 = num2 / 10f * this.gravDir; } else { num2 = num2 / 3f * this.gravDir; } this.velocity.Y = this.velocity.Y + num2; } else { if (this.wings > 0 && this.controlJump && this.velocity.Y > 0f) { this.fallStart = (int)(this.position.Y / 16f); if (this.velocity.Y > 0f) { if (this.wings == 10 && Main.rand.Next(3) == 0) { int num157 = 4; if (this.direction == 1) { num157 = -40; } int num158 = Dust.NewDust(new Vector2(this.position.X + (float)(this.width / 2) + (float)num157, this.position.Y + (float)(this.height / 2) - 15f), 30, 30, 76, 0f, 0f, 50, default(Color), 0.6f); Main.dust[num158].fadeIn = 1.1f; Main.dust[num158].noGravity = true; Main.dust[num158].noLight = true; Main.dust[num158].velocity *= 0.3f; } if (this.wings == 9 && Main.rand.Next(3) == 0) { int num159 = 8; if (this.direction == 1) { num159 = -40; } int num160 = Dust.NewDust(new Vector2(this.position.X + (float)(this.width / 2) + (float)num159, this.position.Y + (float)(this.height / 2) - 15f), 30, 30, 6, 0f, 0f, 200, default(Color), 2f); Main.dust[num160].noGravity = true; Main.dust[num160].velocity *= 0.3f; } if (this.wings == 6) { if (Main.rand.Next(10) == 0) { int num161 = 4; if (this.direction == 1) { num161 = -40; } int num162 = Dust.NewDust(new Vector2(this.position.X + (float)(this.width / 2) + (float)num161, this.position.Y + (float)(this.height / 2) - 12f), 30, 20, 55, 0f, 0f, 200, default(Color), 1f); Main.dust[num162].velocity *= 0.3f; } } else { if (this.wings == 5 && Main.rand.Next(6) == 0) { int num163 = 6; if (this.direction == 1) { num163 = -30; } int num164 = Dust.NewDust(new Vector2(this.position.X + (float)(this.width / 2) + (float)num163, this.position.Y), 18, this.height, 58, 0f, 0f, 255, default(Color), 1.2f); Main.dust[num164].velocity *= 0.3f; } } if (this.wings == 4) { this.rocketDelay2--; if (this.rocketDelay2 <= 0) { Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 13); this.rocketDelay2 = 60; } int type5 = 6; float scale3 = 1.5f; int alpha3 = 100; float x2 = this.position.X + (float)(this.width / 2) + 16f; if (this.direction > 0) { x2 = this.position.X + (float)(this.width / 2) - 26f; } float num165 = this.position.Y + (float)this.height - 18f; if (Main.rand.Next(2) == 1) { x2 = this.position.X + (float)(this.width / 2) + 8f; if (this.direction > 0) { x2 = this.position.X + (float)(this.width / 2) - 20f; } num165 += 6f; } int num166 = Dust.NewDust(new Vector2(x2, num165), 8, 8, type5, 0f, 0f, alpha3, default(Color), scale3); Dust expr_E08B_cp_0 = Main.dust[num166]; expr_E08B_cp_0.velocity.X = expr_E08B_cp_0.velocity.X * 0.3f; Dust expr_E0A9_cp_0 = Main.dust[num166]; expr_E0A9_cp_0.velocity.Y = expr_E0A9_cp_0.velocity.Y + 10f; Main.dust[num166].noGravity = true; this.wingFrameCounter++; if (this.wingFrameCounter > 4) { this.wingFrame++; this.wingFrameCounter = 0; if (this.wingFrame >= 3) { this.wingFrame = 0; } } } else { if (this.wings == 12) { this.wingFrame = 3; } else { this.wingFrame = 2; } } } this.velocity.Y = this.velocity.Y + num2 / 3f * this.gravDir; if (this.gravDir == 1f) { if (this.velocity.Y > num / 3f && !this.controlDown) { this.velocity.Y = num / 3f; } } else { if (this.velocity.Y < -num / 3f && !this.controlUp) { this.velocity.Y = -num / 3f; } } } else { this.velocity.Y = this.velocity.Y + num2 * this.gravDir; } } } } if (this.gravDir == 1f) { if (this.velocity.Y > num) { this.velocity.Y = num; } if (this.slowFall && this.velocity.Y > num / 3f && !this.controlDown) { this.velocity.Y = num / 3f; } if (this.slowFall && this.velocity.Y > num / 5f && this.controlUp) { this.velocity.Y = num / 10f; } } else { if (this.velocity.Y < -num) { this.velocity.Y = -num; } if (this.slowFall && this.velocity.Y < -num / 3f && !this.controlUp) { this.velocity.Y = -num / 3f; } if (this.slowFall && this.velocity.Y < -num / 5f && this.controlDown) { this.velocity.Y = -num / 10f; } } } } } if (this.wings == 3) { if (this.controlUp && this.controlDown) { this.velocity.Y = 0f; } else { if (this.controlDown && this.controlJump) { this.velocity.Y = this.velocity.Y * 0.9f; if (this.velocity.Y > -2f && this.velocity.Y < 1f) { this.velocity.Y = 1E-05f; } } else { if (this.controlDown && this.velocity.Y != 0f) { this.velocity.Y = this.velocity.Y + 0.2f; } } } } for (int num167 = 0; num167 < 400; num167++) { if (Main.item[num167].active && Main.item[num167].noGrabDelay == 0 && Main.item[num167].owner == i) { if (new Rectangle((int)this.position.X, (int)this.position.Y, this.width, this.height).Intersects(new Rectangle((int)Main.item[num167].position.X, (int)Main.item[num167].position.Y, Main.item[num167].width, Main.item[num167].height))) { if (i == Main.myPlayer && (this.inventory[this.selectedItem].type != 0 || this.itemAnimation <= 0)) { if (Main.item[num167].type == 58) { Main.PlaySound(7, (int)this.position.X, (int)this.position.Y, 1); this.statLife += 20; if (Main.myPlayer == this.whoAmi) { this.HealEffect(20, true); } if (this.statLife > this.statLifeMax) { this.statLife = this.statLifeMax; } Main.item[num167] = new Item(); if (Main.netMode == 1) { NetMessage.SendData(21, -1, -1, "", num167, 0f, 0f, 0f, 0); } } else { if (Main.item[num167].type == 184) { Main.PlaySound(7, (int)this.position.X, (int)this.position.Y, 1); this.statMana += 100; if (Main.myPlayer == this.whoAmi) { this.ManaEffect(100); } if (this.statMana > this.statManaMax2) { this.statMana = this.statManaMax2; } Main.item[num167] = new Item(); if (Main.netMode == 1) { NetMessage.SendData(21, -1, -1, "", num167, 0f, 0f, 0f, 0); } } else { Main.item[num167] = this.GetItem(i, Main.item[num167]); if (Main.netMode == 1) { NetMessage.SendData(21, -1, -1, "", num167, 0f, 0f, 0f, 0); } } } } } else { if (new Rectangle((int)this.position.X - Player.itemGrabRange, (int)this.position.Y - Player.itemGrabRange, this.width + Player.itemGrabRange * 2, this.height + Player.itemGrabRange * 2).Intersects(new Rectangle((int)Main.item[num167].position.X, (int)Main.item[num167].position.Y, Main.item[num167].width, Main.item[num167].height)) && this.ItemSpace(Main.item[num167])) { Main.item[num167].beingGrabbed = true; if ((double)this.position.X + (double)this.width * 0.5 > (double)Main.item[num167].position.X + (double)Main.item[num167].width * 0.5) { if (Main.item[num167].velocity.X < Player.itemGrabSpeedMax + this.velocity.X) { Item expr_E787_cp_0 = Main.item[num167]; expr_E787_cp_0.velocity.X = expr_E787_cp_0.velocity.X + Player.itemGrabSpeed; } if (Main.item[num167].velocity.X < 0f) { Item expr_E7C1_cp_0 = Main.item[num167]; expr_E7C1_cp_0.velocity.X = expr_E7C1_cp_0.velocity.X + Player.itemGrabSpeed * 0.75f; } } else { if (Main.item[num167].velocity.X > -Player.itemGrabSpeedMax + this.velocity.X) { Item expr_E810_cp_0 = Main.item[num167]; expr_E810_cp_0.velocity.X = expr_E810_cp_0.velocity.X - Player.itemGrabSpeed; } if (Main.item[num167].velocity.X > 0f) { Item expr_E847_cp_0 = Main.item[num167]; expr_E847_cp_0.velocity.X = expr_E847_cp_0.velocity.X - Player.itemGrabSpeed * 0.75f; } } if ((double)this.position.Y + (double)this.height * 0.5 > (double)Main.item[num167].position.Y + (double)Main.item[num167].height * 0.5) { if (Main.item[num167].velocity.Y < Player.itemGrabSpeedMax) { Item expr_E8D0_cp_0 = Main.item[num167]; expr_E8D0_cp_0.velocity.Y = expr_E8D0_cp_0.velocity.Y + Player.itemGrabSpeed; } if (Main.item[num167].velocity.Y < 0f) { Item expr_E90A_cp_0 = Main.item[num167]; expr_E90A_cp_0.velocity.Y = expr_E90A_cp_0.velocity.Y + Player.itemGrabSpeed * 0.75f; } } else { if (Main.item[num167].velocity.Y > -Player.itemGrabSpeedMax) { Item expr_E94A_cp_0 = Main.item[num167]; expr_E94A_cp_0.velocity.Y = expr_E94A_cp_0.velocity.Y - Player.itemGrabSpeed; } if (Main.item[num167].velocity.Y > 0f) { Item expr_E981_cp_0 = Main.item[num167]; expr_E981_cp_0.velocity.Y = expr_E981_cp_0.velocity.Y - Player.itemGrabSpeed * 0.75f; } } } } } } if (this.position.X / 16f - (float)Player.tileRangeX <= (float)Player.tileTargetX && (this.position.X + (float)this.width) / 16f + (float)Player.tileRangeX - 1f >= (float)Player.tileTargetX && this.position.Y / 16f - (float)Player.tileRangeY <= (float)Player.tileTargetY && (this.position.Y + (float)this.height) / 16f + (float)Player.tileRangeY - 2f >= (float)Player.tileTargetY) { if (Main.tile[Player.tileTargetX, Player.tileTargetY] == null) { Main.tile[Player.tileTargetX, Player.tileTargetY] = new Tile(); } if (Main.tile[Player.tileTargetX, Player.tileTargetY].active()) { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 104) { this.noThrow = 2; this.showItemIcon = true; this.showItemIcon2 = 359; } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 79) { this.noThrow = 2; this.showItemIcon = true; if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameY < 36) { this.showItemIcon2 = 224; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameY < 72) { this.showItemIcon2 = 644; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameY < 108) { this.showItemIcon2 = 645; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameY < 144) { this.showItemIcon2 = 646; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameY < 180) { this.showItemIcon2 = 920; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameY < 216) { this.showItemIcon2 = 1470; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameY < 252) { this.showItemIcon2 = 1471; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameY < 288) { this.showItemIcon2 = 1472; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameY < 324) { this.showItemIcon2 = 1473; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameY < 358) { this.showItemIcon2 = 1719; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameY < 396) { this.showItemIcon2 = 1720; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameY < 432) { this.showItemIcon2 = 1721; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameY < 468) { this.showItemIcon2 = 1722; } else { this.showItemIcon2 = 646; } } } } } } } } } } } } } } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 209) { this.noThrow = 2; this.showItemIcon = true; if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX < 72) { this.showItemIcon2 = 928; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX < 144) { this.showItemIcon2 = 1337; } } int num168; for (num168 = (int)(Main.tile[Player.tileTargetX, Player.tileTargetY].frameX / 18); num168 >= 4; num168 -= 4) { } if (num168 < 2) { this.showItemIconR = true; } else { this.showItemIconR = false; } } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 216) { this.noThrow = 2; this.showItemIcon = true; int num169 = (int)Main.tile[Player.tileTargetX, Player.tileTargetY].frameY; int num170 = 0; while (num169 >= 40) { num169 -= 40; num170++; } this.showItemIcon2 = 970 + num170; } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 212) { this.noThrow = 2; this.showItemIcon = true; this.showItemIcon2 = 949; } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 21) { this.noThrow = 2; this.showItemIcon = true; if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 972) { this.showItemIcon2 = 1537; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 936) { this.showItemIcon2 = 1536; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 900) { this.showItemIcon2 = 1535; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 864) { this.showItemIcon2 = 1534; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 828) { this.showItemIcon2 = 1533; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 792) { this.showItemIcon2 = 1532; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 756) { this.showItemIcon2 = 1531; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 720) { this.showItemIcon2 = 1530; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 684) { this.showItemIcon2 = 1529; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 648) { this.showItemIcon2 = 1528; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 612) { this.showItemIcon2 = 1298; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 576) { this.showItemIcon2 = 1142; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 540) { this.showItemIcon2 = 952; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 504) { this.showItemIcon2 = 914; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 468) { this.showItemIcon2 = 838; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 432) { this.showItemIcon2 = 831; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 396) { this.showItemIcon2 = 681; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 360) { this.showItemIcon2 = 680; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 324) { this.showItemIcon2 = 627; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 288) { this.showItemIcon2 = 626; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 252) { this.showItemIcon2 = 625; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 216) { this.showItemIcon2 = 348; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 180) { this.showItemIcon2 = 343; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 144) { this.showItemIcon2 = 329; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 108) { this.showItemIcon2 = 328; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 72) { this.showItemIcon2 = 327; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 36) { this.showItemIcon2 = 306; } else { this.showItemIcon2 = 48; } } } } } } } } } } } } } } } } } } } } } } } } } } } } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 4) { this.noThrow = 2; this.showItemIcon = true; int num171 = (int)(Main.tile[Player.tileTargetX, Player.tileTargetY].frameY / 22); if (num171 == 0) { this.showItemIcon2 = 8; } else { if (num171 == 8) { this.showItemIcon2 = 523; } else { if (num171 == 9) { this.showItemIcon2 = 974; } else { if (num171 == 10) { this.showItemIcon2 = 1245; } else { if (num171 == 11) { this.showItemIcon2 = 1333; } else { this.showItemIcon2 = 426 + num171; } } } } } } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 13) { this.noThrow = 2; this.showItemIcon = true; if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX == 72) { this.showItemIcon2 = 351; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX == 54) { this.showItemIcon2 = 350; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX == 18) { this.showItemIcon2 = 28; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX == 36) { this.showItemIcon2 = 110; } else { this.showItemIcon2 = 31; } } } } } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 29) { this.noThrow = 2; this.showItemIcon = true; this.showItemIcon2 = 87; } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 97) { this.noThrow = 2; this.showItemIcon = true; this.showItemIcon2 = 346; } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 33) { this.noThrow = 2; this.showItemIcon = true; this.showItemIcon2 = 105; int num172 = (int)(Main.tile[Player.tileTargetX, Player.tileTargetY].frameY / 22); if (num172 == 1) { this.showItemIcon2 = 1405; } if (num172 == 2) { this.showItemIcon2 = 1406; } if (num172 == 3) { this.showItemIcon2 = 1407; } } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 49) { this.noThrow = 2; this.showItemIcon = true; this.showItemIcon2 = 148; } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 50) { this.noThrow = 2; if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX == 90) { this.showItemIcon = true; this.showItemIcon2 = 165; } } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 139) { this.noThrow = 2; int num173 = Player.tileTargetX; int num174 = Player.tileTargetY; int num175 = 0; for (int num176 = (int)(Main.tile[num173, num174].frameY / 18); num176 >= 2; num176 -= 2) { num175++; } this.showItemIcon = true; if (num175 >= 13) { this.showItemIcon2 = 1596 + num175 - 13; } else { this.showItemIcon2 = 562 + num175; } } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 207) { this.noThrow = 2; int num177 = Player.tileTargetX; int num178 = Player.tileTargetY; int num179 = 0; for (int num180 = (int)(Main.tile[num177, num178].frameX / 18); num180 >= 2; num180 -= 2) { num179++; } this.showItemIcon = true; if (num179 == 0) { this.showItemIcon2 = 909; } else { if (num179 == 1) { this.showItemIcon2 = 910; } else { if (num179 == 2) { this.showItemIcon2 = 940; } else { if (num179 == 3) { this.showItemIcon2 = 941; } else { if (num179 == 4) { this.showItemIcon2 = 942; } else { if (num179 == 5) { this.showItemIcon2 = 943; } else { if (num179 == 6) { this.showItemIcon2 = 944; } else { if (num179 == 7) { this.showItemIcon2 = 945; } } } } } } } } } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 55 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 85) { this.noThrow = 2; int num181 = (int)(Main.tile[Player.tileTargetX, Player.tileTargetY].frameX / 18); int num182 = (int)(Main.tile[Player.tileTargetX, Player.tileTargetY].frameY / 18); while (num181 > 1) { num181 -= 2; } int num183 = Player.tileTargetX - num181; int num184 = Player.tileTargetY - num182; Main.signBubble = true; Main.signX = num183 * 16 + 16; Main.signY = num184 * 16; } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 237) { this.noThrow = 2; this.showItemIcon = true; this.showItemIcon2 = 1293; } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 10 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 11) { this.noThrow = 2; this.showItemIcon = true; int num185 = (int)Main.tile[Player.tileTargetX, Player.tileTargetY].frameY; int num186 = 0; while (num185 >= 54) { num185 -= 54; num186++; } if (num186 == 0) { this.showItemIcon2 = 25; } else { if (num186 == 9) { this.showItemIcon2 = 837; } else { if (num186 == 10) { this.showItemIcon2 = 912; } else { if (num186 == 11) { this.showItemIcon2 = 1141; } else { if (num186 == 12) { this.showItemIcon2 = 1137; } else { if (num186 == 13) { this.showItemIcon2 = 1138; } else { if (num186 == 14) { this.showItemIcon2 = 1139; } else { if (num186 == 15) { this.showItemIcon2 = 1140; } else { if (num186 == 16) { this.showItemIcon2 = 1411; } else { if (num186 == 17) { this.showItemIcon2 = 1412; } else { if (num186 == 18) { this.showItemIcon2 = 1413; } else { if (num186 == 19) { this.showItemIcon2 = 1458; } else { if (num186 >= 20 && num186 <= 23) { this.showItemIcon2 = 1709 + num186 - 20; } else { if (num186 >= 4 && num186 <= 8) { this.showItemIcon2 = 812 + num186; } else { this.showItemIcon2 = 649 + num186; } } } } } } } } } } } } } } } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 125) { this.noThrow = 2; this.showItemIcon = true; this.showItemIcon2 = 487; } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 132) { this.noThrow = 2; this.showItemIcon = true; this.showItemIcon2 = 513; } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 136) { this.noThrow = 2; this.showItemIcon = true; this.showItemIcon2 = 538; } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 144) { this.noThrow = 2; this.showItemIcon = true; this.showItemIcon2 = (int)(583 + Main.tile[Player.tileTargetX, Player.tileTargetY].frameX / 18); } if (this.controlUseTile) { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 212 && this.launcherWait <= 0) { int num187 = Player.tileTargetX; int num188 = Player.tileTargetY; bool flag40 = false; for (int num189 = 0; num189 < 58; num189++) { if (this.inventory[num189].type == 949 && this.inventory[num189].stack > 0) { this.inventory[num189].stack--; if (this.inventory[num189].stack <= 0) { this.inventory[num189].SetDefaults(0, false); } flag40 = true; break; } } if (flag40) { this.launcherWait = 10; Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 11); int num190 = (int)(Main.tile[num187, num188].frameX / 18); int num191 = 0; while (num190 >= 3) { num191++; num190 -= 3; } num190 = num187 - num190; int num192; for (num192 = (int)(Main.tile[num187, num188].frameY / 18); num192 >= 3; num192 -= 3) { } num192 = num188 - num192; float num193 = 12f + (float)Main.rand.Next(450) * 0.01f; float num194 = (float)Main.rand.Next(85, 105); float num195 = (float)Main.rand.Next(-35, 11); int type6 = 166; int damage2 = 17; float knockBack = 3.5f; Vector2 vector = new Vector2((float)((num190 + 2) * 16 - 8), (float)((num192 + 2) * 16 - 8)); if (num191 == 0) { num194 *= -1f; vector.X -= 12f; } else { vector.X += 12f; } float num196 = num194; float num197 = num195; float num198 = (float)Math.Sqrt((double)(num196 * num196 + num197 * num197)); num198 = num193 / num198; num196 *= num198; num197 *= num198; Projectile.NewProjectile(vector.X, vector.Y, num196, num197, type6, damage2, knockBack, Main.myPlayer, 0f, 0f); } } if (this.releaseUseTile) { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 132 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 136 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 144) { WorldGen.hitSwitch(Player.tileTargetX, Player.tileTargetY); NetMessage.SendData(59, -1, -1, "", Player.tileTargetX, (float)Player.tileTargetY, 0f, 0f, 0); } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 139) { Main.PlaySound(28, Player.tileTargetX * 16, Player.tileTargetY * 16, 0); WorldGen.SwitchMB(Player.tileTargetX, Player.tileTargetY); } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 207) { Main.PlaySound(28, Player.tileTargetX * 16, Player.tileTargetY * 16, 0); WorldGen.SwitchFountain(Player.tileTargetX, Player.tileTargetY); } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 216) { WorldGen.LaunchRocket(Player.tileTargetX, Player.tileTargetY); } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 4 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 13 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 33 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 49 || (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 50 && Main.tile[Player.tileTargetX, Player.tileTargetY].frameX == 90)) { WorldGen.KillTile(Player.tileTargetX, Player.tileTargetY, false, false, false); if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 0, (float)Player.tileTargetX, (float)Player.tileTargetY, 0f, 0); } } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 125) { this.AddBuff(29, 36000, true); Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 4); } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 79) { int num199 = Player.tileTargetX; int num200 = Player.tileTargetY; num199 += (int)(Main.tile[Player.tileTargetX, Player.tileTargetY].frameX / 18 * -1); if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 72) { num199 += 4; num199++; } else { num199 += 2; } int num201 = (int)(Main.tile[Player.tileTargetX, Player.tileTargetY].frameY / 18); int num202 = 0; while (num201 > 1) { num201 -= 2; num202++; } num200 -= num201; num200 += 2; if (Player.CheckSpawn(num199, num200)) { this.ChangeSpawn(num199, num200); Main.NewText("Spawn point set!", 255, 240, 20, false); } } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 55 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 85) { bool flag41 = true; if (this.sign >= 0) { int num203 = Sign.ReadSign(Player.tileTargetX, Player.tileTargetY); if (num203 == this.sign) { this.sign = -1; Main.npcChatText = ""; Main.editSign = false; Main.PlaySound(11, -1, -1, 1); flag41 = false; } } if (flag41) { if (Main.netMode == 0) { this.talkNPC = -1; Main.playerInventory = false; Main.editSign = false; Main.PlaySound(10, -1, -1, 1); int num204 = Sign.ReadSign(Player.tileTargetX, Player.tileTargetY); this.sign = num204; Main.npcChatText = Main.sign[num204].text; } else { int num205 = (int)(Main.tile[Player.tileTargetX, Player.tileTargetY].frameX / 18); int num206 = (int)(Main.tile[Player.tileTargetX, Player.tileTargetY].frameY / 18); while (num205 > 1) { num205 -= 2; } int num207 = Player.tileTargetX - num205; int num208 = Player.tileTargetY - num206; if (Main.tile[num207, num208].type == 55 || Main.tile[num207, num208].type == 85) { NetMessage.SendData(46, -1, -1, "", num207, (float)num208, 0f, 0f, 0); } } } } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 104) { string text = "AM"; double num209 = Main.time; if (!Main.dayTime) { num209 += 54000.0; } num209 = num209 / 86400.0 * 24.0; double num210 = 7.5; num209 = num209 - num210 - 12.0; if (num209 < 0.0) { num209 += 24.0; } if (num209 >= 12.0) { text = "PM"; } int num211 = (int)num209; double num212 = num209 - (double)num211; num212 = (double)((int)(num212 * 60.0)); string text2 = string.Concat(num212); if (num212 < 10.0) { text2 = "0" + text2; } if (num211 > 12) { num211 -= 12; } if (num211 == 0) { num211 = 12; } string newText = string.Concat(new object[] { "Time: ", num211, ":", text2, " ", text }); Main.NewText(newText, 255, 240, 20, false); } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 237) { bool flag42 = false; if (!NPC.AnyNPCs(245)) { for (int num213 = 0; num213 < 58; num213++) { if (this.inventory[num213].type == 1293) { this.inventory[num213].stack--; if (this.inventory[num213].stack <= 0) { this.inventory[num213].SetDefaults(0, false); } flag42 = true; } } } if (flag42) { Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0); if (Main.netMode != 1) { NPC.SpawnOnPlayer(i, 245); } else { NetMessage.SendData(61, -1, -1, "", this.whoAmi, 245f, 0f, 0f, 0); } } } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 10) { int num214 = Player.tileTargetX; int num215 = Player.tileTargetY; if (Main.tile[num214, num215].frameY >= 594 && Main.tile[num214, num215].frameY <= 646) { int num216 = 1141; for (int num217 = 0; num217 < 58; num217++) { if (this.inventory[num217].type == num216 && this.inventory[num217].stack > 0) { this.inventory[num217].stack--; if (this.inventory[num217].stack <= 0) { this.inventory[num217] = new Item(); } WorldGen.UnlockDoor(num214, num215); if (Main.netMode == 1) { NetMessage.SendData(52, -1, -1, "", this.whoAmi, 2f, (float)num214, (float)num215, 0); } } } } else { WorldGen.OpenDoor(Player.tileTargetX, Player.tileTargetY, this.direction); NetMessage.SendData(19, -1, -1, "", 0, (float)Player.tileTargetX, (float)Player.tileTargetY, (float)this.direction, 0); } } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 11 && WorldGen.CloseDoor(Player.tileTargetX, Player.tileTargetY, false)) { NetMessage.SendData(19, -1, -1, "", 1, (float)Player.tileTargetX, (float)Player.tileTargetY, (float)this.direction, 0); } } } } } } } } } } } } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 209) { WorldGen.SwitchCannon(Player.tileTargetX, Player.tileTargetY); } else { if ((Main.tile[Player.tileTargetX, Player.tileTargetY].type == 21 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 29 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 97) && this.talkNPC == -1) { Main.mouseRightRelease = false; int num218 = 0; int num219; for (num219 = (int)(Main.tile[Player.tileTargetX, Player.tileTargetY].frameX / 18); num219 > 1; num219 -= 2) { } num219 = Player.tileTargetX - num219; int num220 = Player.tileTargetY - (int)(Main.tile[Player.tileTargetX, Player.tileTargetY].frameY / 18); if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 29) { num218 = 1; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 97) { num218 = 2; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 252) { Main.chestText = "Chest"; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 216) { Main.chestText = "Trash Can"; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 180) { Main.chestText = "Barrel"; } else { Main.chestText = "Chest"; } } } } } if (Main.netMode == 1 && num218 == 0 && (Main.tile[num219, num220].frameX < 72 || Main.tile[num219, num220].frameX > 106) && (Main.tile[num219, num220].frameX < 144 || Main.tile[num219, num220].frameX > 178) && (Main.tile[num219, num220].frameX < 828 || Main.tile[num219, num220].frameX > 1006)) { if (num219 == this.chestX && num220 == this.chestY && this.chest != -1) { this.chest = -1; Main.PlaySound(11, -1, -1, 1); } else { NetMessage.SendData(31, -1, -1, "", num219, (float)num220, 0f, 0f, 0); } } else { int num221 = -1; if (num218 == 1) { num221 = -2; } else { if (num218 == 2) { num221 = -3; } else { bool flag43 = false; if ((Main.tile[num219, num220].frameX >= 72 && Main.tile[num219, num220].frameX <= 106) || (Main.tile[num219, num220].frameX >= 144 && Main.tile[num219, num220].frameX <= 178) || (Main.tile[num219, num220].frameX >= 828 && Main.tile[num219, num220].frameX <= 1006)) { int num222 = 327; if (Main.tile[num219, num220].frameX >= 144 && Main.tile[num219, num220].frameX <= 178) { num222 = 329; } if (Main.tile[num219, num220].frameX >= 828 && Main.tile[num219, num220].frameX <= 1006) { int num223 = (int)(Main.tile[num219, num220].frameX / 18); int num224 = 0; while (num223 >= 2) { num223 -= 2; num224++; } num224 -= 23; num222 = 1533 + num224; } flag43 = true; for (int num225 = 0; num225 < 58; num225++) { if (this.inventory[num225].type == num222 && this.inventory[num225].stack > 0) { if (num222 != 329) { this.inventory[num225].stack--; if (this.inventory[num225].stack <= 0) { this.inventory[num225] = new Item(); } } Chest.Unlock(num219, num220); if (Main.netMode == 1) { NetMessage.SendData(52, -1, -1, "", this.whoAmi, 1f, (float)num219, (float)num220, 0); } } } } if (!flag43) { num221 = Chest.FindChest(num219, num220); } } } if (num221 != -1) { if (num221 == this.chest) { this.chest = -1; Main.PlaySound(11, -1, -1, 1); } else { if (num221 != this.chest && this.chest == -1) { this.chest = num221; Main.playerInventory = true; Main.PlaySound(10, -1, -1, 1); this.chestX = num219; this.chestY = num220; } else { this.chest = num221; Main.playerInventory = true; Main.PlaySound(12, -1, -1, 1); this.chestX = num219; this.chestY = num220; } } } } } } } this.releaseUseTile = false; } else { this.releaseUseTile = true; } } } if (this.tongued) { bool flag44 = false; if (Main.wof >= 0) { float num226 = Main.npc[Main.wof].position.X + (float)(Main.npc[Main.wof].width / 2); num226 += (float)(Main.npc[Main.wof].direction * 200); float num227 = Main.npc[Main.wof].position.Y + (float)(Main.npc[Main.wof].height / 2); Vector2 vector2 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f); float num228 = num226 - vector2.X; float num229 = num227 - vector2.Y; float num230 = (float)Math.Sqrt((double)(num228 * num228 + num229 * num229)); float num231 = 11f; float num232; if (num230 > num231) { num232 = num231 / num230; } else { num232 = 1f; flag44 = true; } num228 *= num232; num229 *= num232; this.velocity.X = num228; this.velocity.Y = num229; } else { flag44 = true; } if (flag44 && Main.myPlayer == this.whoAmi) { for (int num233 = 0; num233 < 10; num233++) { if (this.buffType[num233] == 38) { this.DelBuff(num233); } } } } if (Main.myPlayer == this.whoAmi) { if (Main.wof >= 0 && Main.npc[Main.wof].active) { float num234 = Main.npc[Main.wof].position.X + 40f; if (Main.npc[Main.wof].direction > 0) { num234 -= 96f; } if (this.position.X + (float)this.width > num234 && this.position.X < num234 + 140f && this.gross) { this.noKnockback = false; this.Hurt(50, Main.npc[Main.wof].direction, false, false, " was slain...", false); } if (!this.gross && this.position.Y > (float)((Main.maxTilesY - 250) * 16) && this.position.X > num234 - 1920f && this.position.X < num234 + 1920f) { this.AddBuff(37, 10, true); Main.PlaySound(4, (int)Main.npc[Main.wof].position.X, (int)Main.npc[Main.wof].position.Y, 10); } if (this.gross) { if (this.position.Y < (float)((Main.maxTilesY - 200) * 16)) { this.AddBuff(38, 10, true); } if (Main.npc[Main.wof].direction < 0) { if (this.position.X + (float)(this.width / 2) > Main.npc[Main.wof].position.X + (float)(Main.npc[Main.wof].width / 2) + 40f) { this.AddBuff(38, 10, true); } } else { if (this.position.X + (float)(this.width / 2) < Main.npc[Main.wof].position.X + (float)(Main.npc[Main.wof].width / 2) - 40f) { this.AddBuff(38, 10, true); } } } if (this.tongued) { this.controlHook = false; this.controlUseItem = false; for (int num235 = 0; num235 < 1000; num235++) { if (Main.projectile[num235].active && Main.projectile[num235].owner == Main.myPlayer && Main.projectile[num235].aiStyle == 7) { Main.projectile[num235].Kill(); } } Vector2 vector3 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f); float num236 = Main.npc[Main.wof].position.X + (float)(Main.npc[Main.wof].width / 2) - vector3.X; float num237 = Main.npc[Main.wof].position.Y + (float)(Main.npc[Main.wof].height / 2) - vector3.Y; float num238 = (float)Math.Sqrt((double)(num236 * num236 + num237 * num237)); if (num238 > 3000f) { this.KillMe(1000.0, 0, false, " tried to escape."); } else { if (Main.npc[Main.wof].position.X < 608f || Main.npc[Main.wof].position.X > (float)((Main.maxTilesX - 38) * 16)) { this.KillMe(1000.0, 0, false, " was licked."); } } } } if (this.controlHook) { if (this.releaseHook) { this.QuickGrapple(); } this.releaseHook = false; } else { this.releaseHook = true; } if (this.talkNPC >= 0) { Rectangle rectangle = new Rectangle((int)(this.position.X + (float)(this.width / 2) - (float)(Player.tileRangeX * 16)), (int)(this.position.Y + (float)(this.height / 2) - (float)(Player.tileRangeY * 16)), Player.tileRangeX * 16 * 2, Player.tileRangeY * 16 * 2); Rectangle value = new Rectangle((int)Main.npc[this.talkNPC].position.X, (int)Main.npc[this.talkNPC].position.Y, Main.npc[this.talkNPC].width, Main.npc[this.talkNPC].height); if (!rectangle.Intersects(value) || this.chest != -1 || !Main.npc[this.talkNPC].active) { if (this.chest == -1) { Main.PlaySound(11, -1, -1, 1); } this.talkNPC = -1; Main.npcChatText = ""; } } if (this.sign >= 0) { Rectangle rectangle2 = new Rectangle((int)(this.position.X + (float)(this.width / 2) - (float)(Player.tileRangeX * 16)), (int)(this.position.Y + (float)(this.height / 2) - (float)(Player.tileRangeY * 16)), Player.tileRangeX * 16 * 2, Player.tileRangeY * 16 * 2); try { Rectangle value2 = new Rectangle(Main.sign[this.sign].x * 16, Main.sign[this.sign].y * 16, 32, 32); if (!rectangle2.Intersects(value2)) { Main.PlaySound(11, -1, -1, 1); this.sign = -1; Main.editSign = false; Main.npcChatText = ""; } } catch { Main.PlaySound(11, -1, -1, 1); this.sign = -1; Main.editSign = false; Main.npcChatText = ""; } } if (Main.editSign) { if (this.sign == -1) { Main.editSign = false; } else { Main.npcChatText = Main.GetInputText(Main.npcChatText); if (Main.inputTextEnter) { byte[] bytes = new byte[] { 10 }; Main.npcChatText += Encoding.ASCII.GetString(bytes); } } } if (!this.immune) { Rectangle rectangle3 = new Rectangle((int)this.position.X, (int)this.position.Y, this.width, this.height); for (int num239 = 0; num239 < 200; num239++) { if (Main.npc[num239].active && !Main.npc[num239].friendly && Main.npc[num239].damage > 0 && rectangle3.Intersects(new Rectangle((int)Main.npc[num239].position.X, (int)Main.npc[num239].position.Y, Main.npc[num239].width, Main.npc[num239].height))) { int num240 = -1; if (Main.npc[num239].position.X + (float)(Main.npc[num239].width / 2) < this.position.X + (float)(this.width / 2)) { num240 = 1; } int num241 = Main.DamageVar((float)Main.npc[num239].damage); if (this.whoAmi == Main.myPlayer && this.thorns && !this.immune && !Main.npc[num239].dontTakeDamage) { int num242 = num241 / 3; int num243 = 10; if (this.turtleThorns) { num242 = num241; } Main.npc[num239].StrikeNPC(num242, (float)num243, -num240, false, false); if (Main.netMode != 0) { NetMessage.SendData(28, -1, -1, "", num239, (float)num242, (float)num243, (float)(-(float)num240), 0); } } if (!this.immune) { if (Main.npc[num239].type >= 269 && Main.npc[num239].type <= 272) { if (Main.rand.Next(3) == 0) { this.AddBuff(30, 600, true); } else { if (Main.rand.Next(3) == 0) { this.AddBuff(32, 300, true); } } } if (Main.npc[num239].type >= 273 && Main.npc[num239].type <= 276 && Main.rand.Next(2) == 0) { this.AddBuff(36, 600, true); } if (Main.npc[num239].type >= 277 && Main.npc[num239].type <= 280) { this.AddBuff(24, 600, true); } if (((Main.npc[num239].type == 1 && Main.npc[num239].name == "Black Slime") || Main.npc[num239].type == 81 || Main.npc[num239].type == 79) && Main.rand.Next(4) == 0) { this.AddBuff(22, 900, true); } if ((Main.npc[num239].type == 23 || Main.npc[num239].type == 25) && Main.rand.Next(3) == 0) { this.AddBuff(24, 420, true); } if ((Main.npc[num239].type == 34 || Main.npc[num239].type == 83 || Main.npc[num239].type == 84) && Main.rand.Next(3) == 0) { this.AddBuff(23, 240, true); } if ((Main.npc[num239].type == 104 || Main.npc[num239].type == 102) && Main.rand.Next(8) == 0) { this.AddBuff(30, 2700, true); } if (Main.npc[num239].type == 75 && Main.rand.Next(10) == 0) { this.AddBuff(35, 420, true); } if ((Main.npc[num239].type == 163 || Main.npc[num239].type == 238) && Main.rand.Next(10) == 0) { this.AddBuff(70, 480, true); } if ((Main.npc[num239].type == 79 || Main.npc[num239].type == 103) && Main.rand.Next(5) == 0) { this.AddBuff(35, 420, true); } if ((Main.npc[num239].type == 75 || Main.npc[num239].type == 78 || Main.npc[num239].type == 82) && Main.rand.Next(8) == 0) { this.AddBuff(32, 900, true); } if ((Main.npc[num239].type == 93 || Main.npc[num239].type == 109 || Main.npc[num239].type == 80) && Main.rand.Next(14) == 0) { this.AddBuff(31, 300, true); } if (Main.npc[num239].type == 77 && Main.rand.Next(6) == 0) { this.AddBuff(36, 18000, true); } if (Main.npc[num239].type == 112 && Main.rand.Next(20) == 0) { this.AddBuff(33, 18000, true); } if (Main.npc[num239].type == 141 && Main.rand.Next(2) == 0) { this.AddBuff(20, 600, true); } if (Main.npc[num239].type == 147 && !Main.player[i].frozen && Main.rand.Next(12) == 0) { Main.player[i].AddBuff(46, 600, true); } if (Main.npc[num239].type == 150) { if (Main.rand.Next(2) == 0) { Main.player[i].AddBuff(46, 900, true); } if (!Main.player[i].frozen && Main.rand.Next(35) == 0) { Main.player[i].AddBuff(47, 60, true); } } if (Main.npc[num239].type == 184) { Main.player[i].AddBuff(46, 1200, true); if (!Main.player[i].frozen && Main.rand.Next(15) == 0) { Main.player[i].AddBuff(47, 60, true); } } } this.Hurt(num241, num240, false, false, Lang.deathMsg(-1, num239, -1, -1), false); } } } Vector2 vector4 = Collision.HurtTiles(this.position, this.velocity, this.width, this.height, this.fireWalk); if (vector4.Y == 20f) { this.AddBuff(67, 20, true); } else { if (vector4.Y == 15f) { this.AddBuff(68, 1, true); } else { if (vector4.Y != 0f) { int damage3 = Main.DamageVar(vector4.Y); this.Hurt(damage3, 0, false, false, Lang.deathMsg(-1, -1, -1, 3), false); } } } } if (this.controlRight) { this.releaseRight = false; } else { this.releaseRight = true; this.rightTimer = 7; } if (this.controlLeft) { this.releaseLeft = false; } else { this.releaseLeft = true; this.leftTimer = 7; } if (this.rightTimer > 0) { this.rightTimer--; } else { if (this.controlRight) { this.rightTimer = 7; } } if (this.leftTimer > 0) { this.leftTimer--; } else { if (this.controlLeft) { this.leftTimer = 7; } } if (this.grappling[0] >= 0) { this.canCarpet = true; this.carpetFrame = -1; this.wingFrame = 1; if (this.velocity.Y == 0f || (this.wet && (double)this.velocity.Y > -0.02 && (double)this.velocity.Y < 0.02)) { this.wingFrame = 0; } if (this.wings == 4) { this.wingFrame = 3; } this.wingTime = this.GetWingTime(); this.rocketTime = this.rocketTimeMax; this.rocketDelay = 0; this.rocketFrame = false; this.canRocket = false; this.rocketRelease = false; this.fallStart = (int)(this.position.Y / 16f); float num244 = 0f; float num245 = 0f; for (int num246 = 0; num246 < this.grapCount; num246++) { num244 += Main.projectile[this.grappling[num246]].position.X + (float)(Main.projectile[this.grappling[num246]].width / 2); num245 += Main.projectile[this.grappling[num246]].position.Y + (float)(Main.projectile[this.grappling[num246]].height / 2); } num244 /= (float)this.grapCount; num245 /= (float)this.grapCount; Vector2 vector5 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f); float num247 = num244 - vector5.X; float num248 = num245 - vector5.Y; float num249 = (float)Math.Sqrt((double)(num247 * num247 + num248 * num248)); float num250 = 11f; float num251; if (num249 > num250) { num251 = num250 / num249; } else { num251 = 1f; } num247 *= num251; num248 *= num251; this.velocity.X = num247; this.velocity.Y = num248; if (this.itemAnimation == 0) { if (this.velocity.X > 0f) { this.ChangeDir(1); } if (this.velocity.X < 0f) { this.ChangeDir(-1); } } if (this.controlJump) { if (this.releaseJump) { if ((this.velocity.Y == 0f || (this.wet && (double)this.velocity.Y > -0.02 && (double)this.velocity.Y < 0.02)) && !this.controlDown) { this.velocity.Y = -Player.jumpSpeed; this.jump = Player.jumpHeight / 2; this.releaseJump = false; } else { this.velocity.Y = this.velocity.Y + 0.01f; this.releaseJump = false; } if (this.doubleJump) { this.jumpAgain = true; } if (this.doubleJump2) { this.jumpAgain2 = true; } if (this.doubleJump3) { this.jumpAgain3 = true; } if (this.doubleJump4) { this.jumpAgain4 = true; } this.grappling[0] = 0; this.grapCount = 0; for (int num252 = 0; num252 < 1000; num252++) { if (Main.projectile[num252].active && Main.projectile[num252].owner == i && Main.projectile[num252].aiStyle == 7) { Main.projectile[num252].Kill(); } } } } else { this.releaseJump = true; } } int num253 = this.width / 2; int num254 = this.height / 2; new Vector2(this.position.X + (float)(this.width / 2) - (float)(num253 / 2), this.position.Y + (float)(this.height / 2) - (float)(num254 / 2)); Vector2 vector6 = Collision.StickyTiles(this.position, this.velocity, this.width, this.height); if (vector6.Y != -1f && vector6.X != -1f) { int num255 = (int)vector6.X; int num256 = (int)vector6.Y; int type7 = (int)Main.tile[num255, num256].type; if (this.whoAmi == Main.myPlayer && type7 == 51 && (this.velocity.X != 0f || this.velocity.Y != 0f)) { this.stickyBreak++; if (this.stickyBreak > Main.rand.Next(20, 100)) { this.stickyBreak = 0; WorldGen.KillTile(num255, num256, false, false, false); if (Main.netMode == 1 && !Main.tile[num255, num256].active() && Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 0, (float)num255, (float)num256, 0f, 0); } } } this.fallStart = (int)(this.position.Y / 16f); if (type7 != 229) { this.jump = 0; } if (this.velocity.X > 1f) { this.velocity.X = 1f; } if (this.velocity.X < -1f) { this.velocity.X = -1f; } if (this.velocity.Y > 1f) { this.velocity.Y = 1f; } if (this.velocity.Y < -5f) { this.velocity.Y = -5f; } if ((double)this.velocity.X > 0.75 || (double)this.velocity.X < -0.75) { this.velocity.X = this.velocity.X * 0.85f; } else { this.velocity.X = this.velocity.X * 0.6f; } if (this.velocity.Y < 0f) { this.velocity.Y = this.velocity.Y * 0.96f; } else { this.velocity.Y = this.velocity.Y * 0.3f; } if (type7 == 229 && Main.rand.Next(5) == 0 && ((double)this.velocity.Y > 0.15 || this.velocity.Y < 0f)) { if ((float)(num255 * 16) < this.position.X + (float)(this.width / 2)) { int num257 = Dust.NewDust(new Vector2(this.position.X - 4f, (float)(num256 * 16)), 4, 16, 153, 0f, 0f, 50, default(Color), 1f); Main.dust[num257].scale += (float)Main.rand.Next(0, 6) * 0.1f; Main.dust[num257].velocity *= 0.1f; Main.dust[num257].noGravity = true; } else { int num258 = Dust.NewDust(new Vector2(this.position.X + (float)this.width - 2f, (float)(num256 * 16)), 4, 16, 153, 0f, 0f, 50, default(Color), 1f); Main.dust[num258].scale += (float)Main.rand.Next(0, 6) * 0.1f; Main.dust[num258].velocity *= 0.1f; Main.dust[num258].noGravity = true; } if (Main.tile[num255, num256 + 1] != null && Main.tile[num255, num256 + 1].type == 229 && this.position.Y + (float)this.height > (float)((num256 + 1) * 16)) { if ((float)(num255 * 16) < this.position.X + (float)(this.width / 2)) { int num259 = Dust.NewDust(new Vector2(this.position.X - 4f, (float)(num256 * 16 + 16)), 4, 16, 153, 0f, 0f, 50, default(Color), 1f); Main.dust[num259].scale += (float)Main.rand.Next(0, 6) * 0.1f; Main.dust[num259].velocity *= 0.1f; Main.dust[num259].noGravity = true; } else { int num260 = Dust.NewDust(new Vector2(this.position.X + (float)this.width - 2f, (float)(num256 * 16 + 16)), 4, 16, 153, 0f, 0f, 50, default(Color), 1f); Main.dust[num260].scale += (float)Main.rand.Next(0, 6) * 0.1f; Main.dust[num260].velocity *= 0.1f; Main.dust[num260].noGravity = true; } } if (Main.tile[num255, num256 + 2] != null && Main.tile[num255, num256 + 2].type == 229 && this.position.Y + (float)this.height > (float)((num256 + 2) * 16)) { if ((float)(num255 * 16) < this.position.X + (float)(this.width / 2)) { int num261 = Dust.NewDust(new Vector2(this.position.X - 4f, (float)(num256 * 16 + 32)), 4, 16, 153, 0f, 0f, 50, default(Color), 1f); Main.dust[num261].scale += (float)Main.rand.Next(0, 6) * 0.1f; Main.dust[num261].velocity *= 0.1f; Main.dust[num261].noGravity = true; } else { int num262 = Dust.NewDust(new Vector2(this.position.X + (float)this.width - 2f, (float)(num256 * 16 + 32)), 4, 16, 153, 0f, 0f, 50, default(Color), 1f); Main.dust[num262].scale += (float)Main.rand.Next(0, 6) * 0.1f; Main.dust[num262].velocity *= 0.1f; Main.dust[num262].noGravity = true; } } } } else { this.stickyBreak = 0; } bool flag45 = Collision.DrownCollision(this.position, this.width, this.height, this.gravDir); if (this.armor[0].type == 250) { flag45 = true; } if (this.inventory[this.selectedItem].type == 186) { try { int num263 = (int)((this.position.X + (float)(this.width / 2) + (float)(6 * this.direction)) / 16f); int num264 = 0; if (this.gravDir == -1f) { num264 = this.height; } int num265 = (int)((this.position.Y + (float)num264 - 44f * this.gravDir) / 16f); if (Main.tile[num263, num265].liquid < 128) { if (Main.tile[num263, num265] == null) { Main.tile[num263, num265] = new Tile(); } if (!Main.tile[num263, num265].active() || !Main.tileSolid[(int)Main.tile[num263, num265].type] || Main.tileSolidTop[(int)Main.tile[num263, num265].type]) { flag45 = false; } } } catch { } } if (this.gills) { flag45 = false; } if (Main.myPlayer == i) { if (this.merman) { flag45 = false; } if (flag45) { this.breathCD++; int num266 = 7; if (this.inventory[this.selectedItem].type == 186) { num266 *= 2; } if (this.accDivingHelm) { num266 *= 4; } if (this.breathCD >= num266) { this.breathCD = 0; this.breath--; if (this.breath == 0) { Main.PlaySound(23, -1, -1, 1); } if (this.breath <= 0) { this.lifeRegenTime = 0; this.breath = 0; this.statLife -= 2; if (this.statLife <= 0) { this.statLife = 0; this.KillMe(10.0, 0, false, Lang.deathMsg(-1, -1, -1, 1)); } } } } else { this.breath += 3; if (this.breath > this.breathMax) { this.breath = this.breathMax; } this.breathCD = 0; } } if (flag45 && Main.rand.Next(20) == 0 && !this.lavaWet && !this.honeyWet) { int num267 = 0; if (this.gravDir == -1f) { num267 += this.height - 12; } if (this.inventory[this.selectedItem].type == 186) { Dust.NewDust(new Vector2(this.position.X + (float)(10 * this.direction) + 4f, this.position.Y + (float)num267 - 54f * this.gravDir), this.width - 8, 8, 34, 0f, 0f, 0, default(Color), 1.2f); } else { Dust.NewDust(new Vector2(this.position.X + (float)(12 * this.direction), this.position.Y + (float)num267 + 4f * this.gravDir), this.width - 8, 8, 34, 0f, 0f, 0, default(Color), 1.2f); } } if (this.gravDir == -1f) { this.waterWalk = false; this.waterWalk2 = false; } int num268 = this.height; if (this.waterWalk) { num268 -= 6; } bool flag46 = Collision.LavaCollision(this.position, this.width, num268); if (flag46) { if (!this.lavaImmune && Main.myPlayer == i && !this.immune) { if (this.lavaTime > 0) { this.lavaTime--; } else { if (this.lavaRose) { this.Hurt(50, 0, false, false, Lang.deathMsg(-1, -1, -1, 2), false); this.AddBuff(24, 210, true); } else { this.Hurt(80, 0, false, false, Lang.deathMsg(-1, -1, -1, 2), false); this.AddBuff(24, 420, true); } } } this.lavaWet = true; } else { if (this.lavaTime < this.lavaMax) { this.lavaTime++; } } if (this.lavaTime > this.lavaMax) { this.lavaTime = this.lavaMax; } if (this.waterWalk2 && !this.waterWalk) { num268 -= 6; } bool flag47 = Collision.WetCollision(this.position, this.width, this.height); if (Collision.honey) { this.AddBuff(48, 1800, true); this.honeyWet = true; } if (flag47) { if (this.onFire && !this.lavaWet) { for (int num269 = 0; num269 < 10; num269++) { if (this.buffType[num269] == 24) { this.DelBuff(num269); } } } if (!this.wet) { if (this.wetCount == 0) { this.wetCount = 10; if (!flag46) { if (this.honeyWet) { for (int num270 = 0; num270 < 20; num270++) { int num271 = 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_1335A_cp_0 = Main.dust[num271]; expr_1335A_cp_0.velocity.Y = expr_1335A_cp_0.velocity.Y - 1f; Dust expr_1337A_cp_0 = Main.dust[num271]; expr_1337A_cp_0.velocity.X = expr_1337A_cp_0.velocity.X * 2.5f; Main.dust[num271].scale = 1.3f; Main.dust[num271].alpha = 100; Main.dust[num271].noGravity = true; } Main.PlaySound(19, (int)this.position.X, (int)this.position.Y, 1); } else { for (int num272 = 0; num272 < 50; num272++) { int num273 = 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_1347B_cp_0 = Main.dust[num273]; expr_1347B_cp_0.velocity.Y = expr_1347B_cp_0.velocity.Y - 3f; Dust expr_1349B_cp_0 = Main.dust[num273]; expr_1349B_cp_0.velocity.X = expr_1349B_cp_0.velocity.X * 2.5f; Main.dust[num273].scale = 0.8f; Main.dust[num273].alpha = 100; Main.dust[num273].noGravity = true; } Main.PlaySound(19, (int)this.position.X, (int)this.position.Y, 0); } } else { for (int num274 = 0; num274 < 20; num274++) { int num275 = 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_13599_cp_0 = Main.dust[num275]; expr_13599_cp_0.velocity.Y = expr_13599_cp_0.velocity.Y - 1.5f; Dust expr_135B9_cp_0 = Main.dust[num275]; expr_135B9_cp_0.velocity.X = expr_135B9_cp_0.velocity.X * 2.5f; Main.dust[num275].scale = 1.3f; Main.dust[num275].alpha = 100; Main.dust[num275].noGravity = true; } Main.PlaySound(19, (int)this.position.X, (int)this.position.Y, 1); } } this.wet = true; } } else { if (this.wet) { this.wet = false; if (this.jump > Player.jumpHeight / 5) { this.jump = Player.jumpHeight / 5; } if (this.wetCount == 0) { this.wetCount = 10; if (!this.lavaWet) { if (this.honeyWet) { for (int num276 = 0; num276 < 20; num276++) { int num277 = 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_13718_cp_0 = Main.dust[num277]; expr_13718_cp_0.velocity.Y = expr_13718_cp_0.velocity.Y - 1f; Dust expr_13738_cp_0 = Main.dust[num277]; expr_13738_cp_0.velocity.X = expr_13738_cp_0.velocity.X * 2.5f; Main.dust[num277].scale = 1.3f; Main.dust[num277].alpha = 100; Main.dust[num277].noGravity = true; } Main.PlaySound(19, (int)this.position.X, (int)this.position.Y, 1); } else { for (int num278 = 0; num278 < 50; num278++) { int num279 = Dust.NewDust(new Vector2(this.position.X - 6f, this.position.Y + (float)(this.height / 2)), this.width + 12, 24, Dust.dustWater(), 0f, 0f, 0, default(Color), 1f); Dust expr_13833_cp_0 = Main.dust[num279]; expr_13833_cp_0.velocity.Y = expr_13833_cp_0.velocity.Y - 4f; Dust expr_13853_cp_0 = Main.dust[num279]; expr_13853_cp_0.velocity.X = expr_13853_cp_0.velocity.X * 2.5f; Main.dust[num279].scale = 0.8f; Main.dust[num279].alpha = 100; Main.dust[num279].noGravity = true; } Main.PlaySound(19, (int)this.position.X, (int)this.position.Y, 0); } } else { for (int num280 = 0; num280 < 20; num280++) { int num281 = 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_13951_cp_0 = Main.dust[num281]; expr_13951_cp_0.velocity.Y = expr_13951_cp_0.velocity.Y - 1.5f; Dust expr_13971_cp_0 = Main.dust[num281]; expr_13971_cp_0.velocity.X = expr_13971_cp_0.velocity.X * 2.5f; Main.dust[num281].scale = 1.3f; Main.dust[num281].alpha = 100; Main.dust[num281].noGravity = true; } 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; } float num282 = 1f + Math.Abs(this.velocity.X) / 3f; if (this.gfxOffY > 0f) { this.gfxOffY -= num282 * this.stepSpeed; if (this.gfxOffY < 0f) { this.gfxOffY = 0f; } } else { if (this.gfxOffY < 0f) { this.gfxOffY += num282 * this.stepSpeed; if (this.gfxOffY > 0f) { this.gfxOffY = 0f; } } } if (this.gfxOffY > 16f) { this.gfxOffY = 16f; } if (this.gfxOffY < -16f) { this.gfxOffY = -16f; } if (Main.myPlayer == i && !this.iceSkate && this.velocity.Y > 7f) { Vector2 vector7 = this.position + this.velocity; int num283 = (int)(vector7.X / 16f); int num284 = (int)((vector7.X + (float)this.width) / 16f); int num285 = (int)((this.position.Y + (float)this.height + 1f) / 16f); for (int num286 = num283; num286 <= num284; num286++) { for (int num287 = num285; num287 <= num285 + 1; num287++) { if (Main.tile[num286, num287].nactive() && Main.tile[num286, num287].type == 162) { WorldGen.KillTile(num286, num287, false, false, false); if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 0, (float)num286, (float)num287, 0f, 0); } } } } } this.sloping = false; float y3 = this.velocity.Y; Vector4 vector8 = Collision.WalkDownSlope(this.position, this.velocity, this.width, this.height, num2); this.position.X = vector8.X; this.position.Y = vector8.Y; this.velocity.X = vector8.Z; this.velocity.Y = vector8.W; if (this.velocity.Y != y3) { this.sloping = true; } if (this.velocity.Y == num2) { Vector2 vector9 = this.position; vector9.X += this.velocity.X; bool flag48 = false; int num288 = (int)(vector9.X / 16f); int num289 = (int)((vector9.X + (float)this.width) / 16f); int num290 = (int)((this.position.Y + (float)this.height + 4f) / 16f); float num291 = (float)((num290 + 3) * 16); for (int num292 = num288; num292 <= num289; num292++) { for (int num293 = num290; num293 <= num290 + 1; num293++) { if (Main.tile[num292, num293] == null) { Main.tile[num292, num293] = new Tile(); } if (Main.tile[num292, num293].slope() != 0) { flag48 = true; } if (this.waterWalk2 || this.waterWalk) { if (Main.tile[num292, num293 - 1] == null) { Main.tile[num292, num293 - 1] = new Tile(); } if (Main.tile[num292, num293].liquid > 0 && Main.tile[num292, num293 - 1].liquid == 0) { int num294 = (int)(Main.tile[num292, num293].liquid / 32 * 2 + 2); int num295 = num293 * 16 + 16 - num294; Rectangle rectangle4 = new Rectangle(num292 * 16, num293 * 16 - 17, 16, 16); if (rectangle4.Intersects(new Rectangle((int)this.position.X, (int)this.position.Y, this.width, this.height)) && (float)num295 < num291) { num291 = (float)num295; } } } if (Main.tile[num292, num293 - 1] == null) { Main.tile[num292, num293 - 1] = new Tile(); } if (Main.tile[num292, num293].nactive() && (Main.tileSolid[(int)Main.tile[num292, num293].type] || Main.tileSolidTop[(int)Main.tile[num292, num293].type])) { int num296 = num293 * 16; if (Main.tile[num292, num293].halfBrick()) { num296 += 8; } Rectangle rectangle5 = new Rectangle(num292 * 16, num293 * 16 - 17, 16, 16); if (rectangle5.Intersects(new Rectangle((int)this.position.X, (int)this.position.Y, this.width, this.height)) && (float)num296 < num291) { num291 = (float)num296; } } } } float num297 = num291 - (this.position.Y + (float)this.height); if (num297 > 7f && num297 < 17f && !flag48) { this.stepSpeed = 1.5f; if (num297 > 9f) { this.stepSpeed = 2.5f; } this.gfxOffY += this.position.Y + (float)this.height - num291; this.position.Y = num291 - (float)this.height; } } if (this.gravDir == -1f) { if ((this.carpetFrame != -1 || this.velocity.Y <= num2) && !this.controlUp) { int num298 = 0; if (this.velocity.X < 0f) { num298 = -1; } if (this.velocity.X > 0f) { num298 = 1; } Vector2 vector10 = this.position; vector10.X += this.velocity.X; int num299 = (int)((vector10.X + (float)(this.width / 2) + (float)((this.width / 2 + 1) * num298)) / 16f); int num300 = (int)(((double)vector10.Y + 0.1) / 16.0); if (Main.tile[num299, num300] == null) { Main.tile[num299, num300] = new Tile(); } if (num300 - 1 > 0 && Main.tile[num299, num300 + 1] == null) { Main.tile[num299, num300 + 1] = new Tile(); } if (num300 - 2 > 0 && Main.tile[num299, num300 + 2] == null) { Main.tile[num299, num300 + 2] = new Tile(); } if (num300 - 3 > 0 && Main.tile[num299, num300 + 3] == null) { Main.tile[num299, num300 + 3] = new Tile(); } if (num300 - 4 > 0 && Main.tile[num299, num300 + 4] == null) { Main.tile[num299, num300 + 4] = new Tile(); } if (num300 - 3 > 0 && Main.tile[num299 - num298, num300 + 3] == null) { Main.tile[num299 - num298, num300 + 3] = new Tile(); } if ((float)(num299 * 16) < vector10.X + (float)this.width && (float)(num299 * 16 + 16) > vector10.X && ((Main.tile[num299, num300].nactive() && ((Main.tileSolid[(int)Main.tile[num299, num300].type] && !Main.tileSolidTop[(int)Main.tile[num299, num300].type]) || (this.controlUp && Main.tileSolidTop[(int)Main.tile[num299, num300].type] && Main.tile[num299, num300].frameY == 0 && (!Main.tileSolid[(int)Main.tile[num299, num300 + 1].type] || !Main.tile[num299, num300 + 1].nactive())))) || (Main.tile[num299, num300 + 1].halfBrick() && Main.tile[num299, num300 + 1].nactive())) && (!Main.tile[num299, num300 + 1].nactive() || !Main.tileSolid[(int)Main.tile[num299, num300 + 1].type] || Main.tileSolidTop[(int)Main.tile[num299, num300 + 1].type] || Main.tile[num299, num300 + 1].slope() != 0 || (Main.tile[num299, num300 + 1].halfBrick() && (!Main.tile[num299, num300 + 4].nactive() || !Main.tileSolid[(int)Main.tile[num299, num300 + 4].type] || Main.tileSolidTop[(int)Main.tile[num299, num300 + 4].type]))) && (!Main.tile[num299, num300 + 2].nactive() || !Main.tileSolid[(int)Main.tile[num299, num300 + 2].type] || Main.tileSolidTop[(int)Main.tile[num299, num300 + 2].type]) && (!Main.tile[num299, num300 + 3].nactive() || !Main.tileSolid[(int)Main.tile[num299, num300 + 3].type] || Main.tileSolidTop[(int)Main.tile[num299, num300 + 3].type]) && (!Main.tile[num299 - num298, num300 + 3].nactive() || !Main.tileSolid[(int)Main.tile[num299 - num298, num300 + 3].type] || Main.tileSolidTop[(int)Main.tile[num299 - num298, num300 + 3].type])) { float num301 = (float)(num300 * 16 + 16); if (num301 > vector10.Y) { float num302 = num301 - vector10.Y; if ((double)num302 <= 16.1) { this.gfxOffY -= num301 - this.position.Y; this.position.Y = num301; this.velocity.Y = 0f; if (num302 < 9f) { this.stepSpeed = 1f; } else { this.stepSpeed = 2f; } } } } } } else { if ((this.carpetFrame != -1 || this.velocity.Y >= num2) && !this.controlDown) { int num303 = 0; if (this.velocity.X < 0f) { num303 = -1; } if (this.velocity.X > 0f) { num303 = 1; } Vector2 vector11 = this.position; vector11.X += this.velocity.X; int num304 = (int)((vector11.X + (float)(this.width / 2) + (float)((this.width / 2 + 1) * num303)) / 16f); int num305 = (int)((vector11.Y + (float)this.height - 1f) / 16f); if (Main.tile[num304, num305] == null) { Main.tile[num304, num305] = new Tile(); } if (num305 - 1 > 0 && Main.tile[num304, num305 - 1] == null) { Main.tile[num304, num305 - 1] = new Tile(); } if (num305 - 2 > 0 && Main.tile[num304, num305 - 2] == null) { Main.tile[num304, num305 - 2] = new Tile(); } if (num305 - 3 > 0 && Main.tile[num304, num305 - 3] == null) { Main.tile[num304, num305 - 3] = new Tile(); } if (num305 - 4 > 0 && Main.tile[num304, num305 - 4] == null) { Main.tile[num304, num305 - 4] = new Tile(); } if (num305 - 3 > 0 && Main.tile[num304 - num303, num305 - 3] == null) { Main.tile[num304 - num303, num305 - 3] = new Tile(); } if ((float)(num304 * 16) < vector11.X + (float)this.width && (float)(num304 * 16 + 16) > vector11.X && ((Main.tile[num304, num305].nactive() && (Main.tile[num304, num305].slope() == 0 || (Main.tile[num304, num305].slope() == 1 && this.position.X + (float)(this.width / 2) < (float)(num304 * 16)) || (Main.tile[num304, num305].slope() == 2 && this.position.X + (float)(this.width / 2) > (float)(num304 * 16 + 16))) && (Main.tile[num304, num305 - 1].slope() == 0 || this.position.Y + (float)this.height > (float)(num305 * 16)) && ((Main.tileSolid[(int)Main.tile[num304, num305].type] && !Main.tileSolidTop[(int)Main.tile[num304, num305].type]) || (this.controlUp && Main.tileSolidTop[(int)Main.tile[num304, num305].type] && Main.tile[num304, num305].frameY == 0 && (!Main.tileSolid[(int)Main.tile[num304, num305 - 1].type] || !Main.tile[num304, num305 - 1].nactive())))) || (Main.tile[num304, num305 - 1].halfBrick() && Main.tile[num304, num305 - 1].nactive())) && (!Main.tile[num304, num305 - 1].nactive() || !Main.tileSolid[(int)Main.tile[num304, num305 - 1].type] || Main.tileSolidTop[(int)Main.tile[num304, num305 - 1].type] || (Main.tile[num304, num305 - 1].slope() == 1 && this.position.X + (float)(this.width / 2) > (float)(num304 * 16)) || (Main.tile[num304, num305 - 1].slope() == 2 && this.position.X + (float)(this.width / 2) < (float)(num304 * 16 + 16)) || (Main.tile[num304, num305 - 1].halfBrick() && (!Main.tile[num304, num305 - 4].nactive() || !Main.tileSolid[(int)Main.tile[num304, num305 - 4].type] || Main.tileSolidTop[(int)Main.tile[num304, num305 - 4].type]))) && (!Main.tile[num304, num305 - 2].nactive() || !Main.tileSolid[(int)Main.tile[num304, num305 - 2].type] || Main.tileSolidTop[(int)Main.tile[num304, num305 - 2].type]) && (!Main.tile[num304, num305 - 3].nactive() || !Main.tileSolid[(int)Main.tile[num304, num305 - 3].type] || Main.tileSolidTop[(int)Main.tile[num304, num305 - 3].type]) && (!Main.tile[num304 - num303, num305 - 3].nactive() || !Main.tileSolid[(int)Main.tile[num304 - num303, num305 - 3].type] || Main.tileSolidTop[(int)Main.tile[num304 - num303, num305 - 3].type])) { float num306 = (float)(num305 * 16); if (Main.tile[num304, num305].halfBrick()) { num306 += 8f; } if (Main.tile[num304, num305 - 1].halfBrick()) { num306 -= 8f; } if (num306 < vector11.Y + (float)this.height) { float num307 = vector11.Y + (float)this.height - num306; if ((double)num307 <= 16.1) { this.gfxOffY += this.position.Y + (float)this.height - num306; this.position.Y = num306 - (float)this.height; if (num307 < 9f) { this.stepSpeed = 1f; } else { this.stepSpeed = 2f; } } } } } } this.oldPosition = this.position; bool flag49 = false; if (this.velocity.Y > num2) { flag49 = true; } Vector2 vector12 = this.velocity; this.slideDir = 0; bool fall = false; bool fallThrough = this.controlDown; if (this.gravDir == -1f) { fall = true; fallThrough = true; } if (this.wings == 3 && this.controlUp && this.controlDown) { this.position += this.velocity; } else { if (this.tongued) { this.position += this.velocity; } else { if (this.honeyWet) { Vector2 vector13 = this.velocity; this.velocity = Collision.TileCollision(this.position, this.velocity, this.width, this.height, fallThrough, fall); Vector2 value3 = this.velocity * 0.25f; if (this.velocity.X != vector13.X) { value3.X = this.velocity.X; } if (this.velocity.Y != vector13.Y) { value3.Y = this.velocity.Y; } this.position += value3; } else { if (this.wet && !this.merman) { Vector2 vector14 = this.velocity; this.velocity = Collision.TileCollision(this.position, this.velocity, this.width, this.height, fallThrough, fall); Vector2 value4 = this.velocity * 0.5f; if (this.velocity.X != vector14.X) { value4.X = this.velocity.X; } if (this.velocity.Y != vector14.Y) { value4.Y = this.velocity.Y; } this.position += value4; } else { this.velocity = Collision.TileCollision(this.position, this.velocity, this.width, this.height, fallThrough, fall); if (Collision.up && this.gravDir == 1f) { this.jump = 0; } if (this.gravDir == -1f && this.velocity.Y >= 0f && (double)this.velocity.Y < 0.01) { this.velocity.Y = 0f; } if (this.waterWalk || this.waterWalk2) { Vector2 value5 = this.velocity; this.velocity = Collision.WaterCollision(this.position, this.velocity, this.width, this.height, this.controlDown, false, this.waterWalk); if (value5 != this.velocity) { this.fallStart = (int)(this.position.Y / 16f); } } this.position += this.velocity; } } } } if (this.wings != 3 || !this.controlUp || !this.controlDown) { Vector4 vector15 = Collision.SlopeCollision(this.position, this.velocity, this.width, this.height, num2); this.position.X = vector15.X; this.position.Y = vector15.Y; this.velocity.X = vector15.Z; this.velocity.Y = vector15.W; } if (vector12.X != this.velocity.X) { if (vector12.X < 0f) { this.slideDir = -1; } else { if (vector12.X > 0f) { this.slideDir = 1; } } } if (this.gravDir == 1f && Collision.up) { this.velocity.Y = 0.01f; if (!this.merman) { this.jump = 0; } } else { if (this.gravDir == -1f && Collision.down) { this.velocity.Y = -0.01f; if (!this.merman) { this.jump = 0; } } } if (this.gravDir == -1f && this.velocity.Y > -1E-05f && this.velocity.Y < 1E-05f) { this.velocity.Y = 0f; } if (this.velocity.Y == 0f && this.grappling[0] == -1) { int num308 = (int)((this.position.X + (float)(this.width / 2)) / 16f); int num309 = (int)((this.position.Y + (float)this.height) / 16f); int num310 = -1; if (Main.tile[num308 - 1, num309] == null) { Main.tile[num308 - 1, num309] = new Tile(); } if (Main.tile[num308 + 1, num309] == null) { Main.tile[num308 + 1, num309] = new Tile(); } if (Main.tile[num308, num309] == null) { Main.tile[num308, num309] = new Tile(); } if (Main.tile[num308, num309].nactive() && Main.tileSolid[(int)Main.tile[num308, num309].type]) { num310 = (int)Main.tile[num308, num309].type; } else { if (Main.tile[num308 - 1, num309].nactive() && Main.tileSolid[(int)Main.tile[num308 - 1, num309].type]) { num310 = (int)Main.tile[num308 - 1, num309].type; } else { if (Main.tile[num308 + 1, num309].nactive() && Main.tileSolid[(int)Main.tile[num308 + 1, num309].type]) { num310 = (int)Main.tile[num308 + 1, num309].type; } } } if (num310 > -1) { if (num310 == 229) { this.sticky = true; } else { this.sticky = false; } if (num310 == 161 || num310 == 162 || num310 == 163 || num310 == 164 || num310 == 200) { this.slippy = true; } else { this.slippy = false; } if (num310 == 197) { this.slippy2 = true; } else { this.slippy2 = false; } if (num310 == 198) { this.powerrun = true; } else { this.powerrun = false; } if (Main.tile[num308 - 1, num309].slope() != 0 || Main.tile[num308, num309].slope() != 0 || Main.tile[num308 + 1, num309].slope() != 0) { num310 = -1; } if (!this.wet && (num310 == 147 || num310 == 25 || num310 == 53 || num310 == 189 || num310 == 0 || num310 == 123 || num310 == 57 || num310 == 112 || num310 == 116 || num310 == 196 || num310 == 193 || num310 == 195 || num310 == 197 || num310 == 199 || num310 == 229)) { int num311 = 1; if (flag49) { num311 = 20; } for (int num312 = 0; num312 < num311; num312++) { bool flag50 = true; int num313 = 76; if (num310 == 53) { num313 = 32; } if (num310 == 189) { num313 = 16; } if (num310 == 0) { num313 = 0; } if (num310 == 123) { num313 = 53; } if (num310 == 57) { num313 = 36; } if (num310 == 112) { num313 = 14; } if (num310 == 116) { num313 = 51; } if (num310 == 196) { num313 = 108; } if (num310 == 193) { num313 = 4; } if (num310 == 195 || num310 == 199) { num313 = 5; } if (num310 == 197) { num313 = 4; } if (num310 == 229) { num313 = 153; } if (num310 == 25) { num313 = 37; } if (num313 == 32 && Main.rand.Next(2) == 0) { flag50 = false; } if (num313 == 14 && Main.rand.Next(2) == 0) { flag50 = false; } if (num313 == 51 && Main.rand.Next(2) == 0) { flag50 = false; } if (num313 == 36 && Main.rand.Next(2) == 0) { flag50 = false; } if (num313 == 0 && Main.rand.Next(3) != 0) { flag50 = false; } if (num313 == 53 && Main.rand.Next(3) != 0) { flag50 = false; } Color newColor = default(Color); if (num310 == 193) { newColor = new Color(30, 100, 255, 100); } if (num310 == 197) { newColor = new Color(97, 200, 255, 100); } if (!flag49) { float num314 = Math.Abs(this.velocity.X) / 3f; if ((float)Main.rand.Next(100) > num314 * 100f) { flag50 = false; } } if (flag50) { float num315 = this.velocity.X; if (num315 > 6f) { num315 = 6f; } if (num315 < -6f) { num315 = -6f; } if (this.velocity.X != 0f || flag49) { int num316 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + (float)this.height - 2f), this.width, 6, num313, 0f, 0f, 50, newColor, 1f); if (num313 == 76) { Main.dust[num316].scale += (float)Main.rand.Next(3) * 0.1f; Main.dust[num316].noLight = true; } if (num313 == 16 || num313 == 108 || num313 == 153) { Main.dust[num316].scale += (float)Main.rand.Next(6) * 0.1f; } if (num313 == 37) { Main.dust[num316].scale += 0.25f; Main.dust[num316].alpha = 50; } if (num313 == 5) { Main.dust[num316].scale += (float)Main.rand.Next(2, 8) * 0.1f; } Main.dust[num316].noGravity = true; if (num311 > 1) { Dust expr_15B1C_cp_0 = Main.dust[num316]; expr_15B1C_cp_0.velocity.X = expr_15B1C_cp_0.velocity.X * 1.2f; Dust expr_15B3C_cp_0 = Main.dust[num316]; expr_15B3C_cp_0.velocity.Y = expr_15B3C_cp_0.velocity.Y * 0.8f; Dust expr_15B5C_cp_0 = Main.dust[num316]; expr_15B5C_cp_0.velocity.Y = expr_15B5C_cp_0.velocity.Y - 1f; Main.dust[num316].velocity *= 0.8f; Main.dust[num316].scale += (float)Main.rand.Next(3) * 0.1f; Main.dust[num316].velocity.X = (Main.dust[num316].position.X - (this.position.X + (float)(this.width / 2))) * 0.2f; if (Main.dust[num316].velocity.Y > 0f) { Dust expr_15C22_cp_0 = Main.dust[num316]; expr_15C22_cp_0.velocity.Y = expr_15C22_cp_0.velocity.Y * -1f; } Dust expr_15C42_cp_0 = Main.dust[num316]; expr_15C42_cp_0.velocity.X = expr_15C42_cp_0.velocity.X + num315 * 0.3f; } else { Main.dust[num316].velocity *= 0.2f; } Dust expr_15C88_cp_0 = Main.dust[num316]; expr_15C88_cp_0.position.X = expr_15C88_cp_0.position.X - num315 * 1f; } } } } } } if (this.whoAmi == Main.myPlayer) { Collision.SwitchTiles(this.position, this.width, this.height, this.oldPosition, 1); } if (this.position.X < Main.leftWorld + 640f + 16f) { this.position.X = Main.leftWorld + 640f + 16f; this.velocity.X = 0f; } if (this.position.X + (float)this.width > Main.rightWorld - 640f - 32f) { this.position.X = Main.rightWorld - 640f - 32f - (float)this.width; this.velocity.X = 0f; } if (this.position.Y < Main.topWorld + 640f + 16f) { this.position.Y = Main.topWorld + 640f + 16f; if ((double)this.velocity.Y < 0.11) { this.velocity.Y = 0.11f; } this.gravDir = 1f; } if (this.position.Y > Main.bottomWorld - 640f - 32f - (float)this.height) { this.position.Y = Main.bottomWorld - 640f - 32f - (float)this.height; this.velocity.Y = 0f; } this.numMinions = 0; if (Main.ignoreErrors) { try { this.ItemCheck(i); goto IL_15E6C; } catch { goto IL_15E6C; } } this.ItemCheck(i); IL_15E6C: this.PlayerFrame(); if (this.statLife > this.statLifeMax) { this.statLife = this.statLifeMax; } this.grappling[0] = -1; this.grapCount = 0; } } } public bool SellItem(int price, int stack) { if (price <= 0) { return false; } Item[] array = new Item[58]; for (int i = 0; i < 58; i++) { array[i] = new Item(); array[i] = (Item)this.inventory[i].Clone(); } int j = price / 5; j *= stack; if (j < 1) { j = 1; } bool flag = false; while (j >= 1000000) { if (flag) { break; } int num = -1; for (int k = 53; k >= 0; k--) { if (num == -1 && (this.inventory[k].type == 0 || this.inventory[k].stack == 0)) { num = k; } while (this.inventory[k].type == 74 && this.inventory[k].stack < this.inventory[k].maxStack && j >= 1000000) { this.inventory[k].stack++; j -= 1000000; this.DoCoins(k); if (this.inventory[k].stack == 0 && num == -1) { num = k; } } } if (j >= 1000000) { if (num == -1) { flag = true; } else { this.inventory[num].SetDefaults(74, false); j -= 1000000; } } } while (j >= 10000) { if (flag) { break; } int num2 = -1; for (int l = 53; l >= 0; l--) { if (num2 == -1 && (this.inventory[l].type == 0 || this.inventory[l].stack == 0)) { num2 = l; } while (this.inventory[l].type == 73 && this.inventory[l].stack < this.inventory[l].maxStack && j >= 10000) { this.inventory[l].stack++; j -= 10000; this.DoCoins(l); if (this.inventory[l].stack == 0 && num2 == -1) { num2 = l; } } } if (j >= 10000) { if (num2 == -1) { flag = true; } else { this.inventory[num2].SetDefaults(73, false); j -= 10000; } } } while (j >= 100) { if (flag) { break; } int num3 = -1; for (int m = 53; m >= 0; m--) { if (num3 == -1 && (this.inventory[m].type == 0 || this.inventory[m].stack == 0)) { num3 = m; } while (this.inventory[m].type == 72 && this.inventory[m].stack < this.inventory[m].maxStack && j >= 100) { this.inventory[m].stack++; j -= 100; this.DoCoins(m); if (this.inventory[m].stack == 0 && num3 == -1) { num3 = m; } } } if (j >= 100) { if (num3 == -1) { flag = true; } else { this.inventory[num3].SetDefaults(72, false); j -= 100; } } } while (j >= 1 && !flag) { int num4 = -1; for (int n = 53; n >= 0; n--) { if (num4 == -1 && (this.inventory[n].type == 0 || this.inventory[n].stack == 0)) { num4 = n; } while (this.inventory[n].type == 71 && this.inventory[n].stack < this.inventory[n].maxStack && j >= 1) { this.inventory[n].stack++; j--; this.DoCoins(n); if (this.inventory[n].stack == 0 && num4 == -1) { num4 = n; } } } if (j >= 1) { if (num4 == -1) { flag = true; } else { this.inventory[num4].SetDefaults(71, false); j--; } } } if (flag) { for (int num5 = 0; num5 < 58; num5++) { this.inventory[num5] = (Item)array[num5].Clone(); } return false; } return true; } public bool BuyItem(int price) { if (price == 0) { return true; } int num = 0; Item[] array = new Item[54]; for (int i = 0; i < 54; i++) { array[i] = new Item(); array[i] = (Item)this.inventory[i].Clone(); if (this.inventory[i].type == 71) { num += this.inventory[i].stack; } if (this.inventory[i].type == 72) { num += this.inventory[i].stack * 100; } if (this.inventory[i].type == 73) { num += this.inventory[i].stack * 10000; } if (this.inventory[i].type == 74) { num += this.inventory[i].stack * 1000000; } } if (num >= price) { int j = price; while (j > 0) { if (j >= 1000000) { for (int k = 0; k < 54; k++) { if (this.inventory[k].type == 74) { while (this.inventory[k].stack > 0 && j >= 1000000) { j -= 1000000; this.inventory[k].stack--; if (this.inventory[k].stack == 0) { this.inventory[k].type = 0; } } } } } if (j >= 10000) { for (int l = 0; l < 54; l++) { if (this.inventory[l].type == 73) { while (this.inventory[l].stack > 0 && j >= 10000) { j -= 10000; this.inventory[l].stack--; if (this.inventory[l].stack == 0) { this.inventory[l].type = 0; } } } } } if (j >= 100) { for (int m = 0; m < 54; m++) { if (this.inventory[m].type == 72) { while (this.inventory[m].stack > 0 && j >= 100) { j -= 100; this.inventory[m].stack--; if (this.inventory[m].stack == 0) { this.inventory[m].type = 0; } } } } } if (j >= 1) { for (int n = 0; n < 54; n++) { if (this.inventory[n].type == 71) { while (this.inventory[n].stack > 0 && j >= 1) { j--; this.inventory[n].stack--; if (this.inventory[n].stack == 0) { this.inventory[n].type = 0; } } } } } if (j > 0) { int num2 = -1; for (int num3 = 53; num3 >= 0; num3--) { if (this.inventory[num3].type == 0 || this.inventory[num3].stack == 0) { num2 = num3; break; } } if (num2 < 0) { for (int num4 = 0; num4 < 54; num4++) { this.inventory[num4] = (Item)array[num4].Clone(); } return false; } bool flag = true; if (j >= 10000) { for (int num5 = 0; num5 < 58; num5++) { if (this.inventory[num5].type == 74 && this.inventory[num5].stack >= 1) { this.inventory[num5].stack--; if (this.inventory[num5].stack == 0) { this.inventory[num5].type = 0; } this.inventory[num2].SetDefaults(73, false); this.inventory[num2].stack = 100; flag = false; break; } } } else { if (j >= 100) { for (int num6 = 0; num6 < 54; num6++) { if (this.inventory[num6].type == 73 && this.inventory[num6].stack >= 1) { this.inventory[num6].stack--; if (this.inventory[num6].stack == 0) { this.inventory[num6].type = 0; } this.inventory[num2].SetDefaults(72, false); this.inventory[num2].stack = 100; flag = false; break; } } } else { if (j >= 1) { for (int num7 = 0; num7 < 54; num7++) { if (this.inventory[num7].type == 72 && this.inventory[num7].stack >= 1) { this.inventory[num7].stack--; if (this.inventory[num7].stack == 0) { this.inventory[num7].type = 0; } this.inventory[num2].SetDefaults(71, false); this.inventory[num2].stack = 100; flag = false; break; } } } } } if (flag) { if (j < 10000) { for (int num8 = 0; num8 < 54; num8++) { if (this.inventory[num8].type == 73 && this.inventory[num8].stack >= 1) { this.inventory[num8].stack--; if (this.inventory[num8].stack == 0) { this.inventory[num8].type = 0; } this.inventory[num2].SetDefaults(72, false); this.inventory[num2].stack = 100; flag = false; break; } } } if (flag && j < 1000000) { for (int num9 = 0; num9 < 54; num9++) { if (this.inventory[num9].type == 74 && this.inventory[num9].stack >= 1) { this.inventory[num9].stack--; if (this.inventory[num9].stack == 0) { this.inventory[num9].type = 0; } this.inventory[num2].SetDefaults(73, false); this.inventory[num2].stack = 100; break; } } } } } } return true; } return false; } public void AdjTiles() { int num = 4; int num2 = 3; for (int i = 0; i < 251; i++) { this.oldAdjTile[i] = this.adjTile[i]; this.adjTile[i] = false; } this.oldAdjWater = this.adjWater; this.adjWater = false; this.oldAdjHoney = this.adjHoney; this.adjHoney = false; int num3 = (int)((this.position.X + (float)(this.width / 2)) / 16f); int num4 = (int)((this.position.Y + (float)this.height) / 16f); for (int j = num3 - num; j <= num3 + num; j++) { for (int k = num4 - num2; k < num4 + num2; k++) { if (Main.tile[j, k].active()) { this.adjTile[(int)Main.tile[j, k].type] = true; if (Main.tile[j, k].type == 77) { this.adjTile[17] = true; } if (Main.tile[j, k].type == 133) { this.adjTile[17] = true; this.adjTile[77] = true; } if (Main.tile[j, k].type == 134) { this.adjTile[16] = true; } } if (Main.tile[j, k].liquid > 200 && Main.tile[j, k].liquidType() == 0) { this.adjWater = true; } if (Main.tile[j, k].liquid > 200 && Main.tile[j, k].liquidType() == 2) { this.adjHoney = true; } } } if (Main.playerInventory) { bool flag = false; for (int l = 0; l < 251; l++) { if (this.oldAdjTile[l] != this.adjTile[l]) { flag = true; break; } } if (this.adjWater != this.oldAdjWater) { flag = true; } if (this.adjHoney != this.oldAdjHoney) { flag = true; } if (flag) { Recipe.FindRecipes(); } } } public void PlayerFrame() { if (this.frozen) { return; } if (this.swimTime > 0) { this.swimTime--; if (!this.wet) { this.swimTime = 0; } } this.head = this.armor[0].headSlot; this.body = this.armor[1].bodySlot; this.legs = this.armor[2].legSlot; if (this.armor[8].headSlot >= 0) { this.head = this.armor[8].headSlot; } if (this.armor[9].bodySlot >= 0) { this.body = this.armor[9].bodySlot; } if (this.armor[10].legSlot >= 0) { this.legs = this.armor[10].legSlot; } if (Main.myPlayer == this.whoAmi) { bool flag = false; if (this.wings == 3 || (this.wings >= 16 && this.wings <= 19)) { flag = true; } else { if (this.head == 45 || (this.head >= 106 && this.head <= 110)) { flag = true; } else { if (this.body == 26 || (this.body >= 68 && this.body <= 74)) { flag = true; } else { if (this.legs == 25 || (this.legs >= 57 && this.legs <= 63)) { flag = true; } } } } if (flag) { this.velocity.X = this.velocity.X * 0.9f; if (this.velocity.Y < 0f) { this.velocity.Y = this.velocity.Y + 0.2f; } this.jump = 0; this.statDefense = -1000; this.AddBuff(23, 2, false); this.AddBuff(80, 2, false); this.AddBuff(67, 2, false); this.AddBuff(32, 2, false); this.AddBuff(31, 2, false); this.AddBuff(33, 2, false); } } if (this.wereWolf) { this.legs = 20; this.body = 21; this.head = 38; } if (this.merman) { this.head = 39; this.legs = 21; this.body = 22; } this.socialShadow = false; this.socialGhost = false; if (this.head == 101 && this.body == 66 && this.legs == 55) { this.socialGhost = true; } if (this.head == 99 && this.body == 65 && this.legs == 54) { this.turtleArmor = true; } if ((this.head == 75 || this.head == 7) && this.body == 7 && this.legs == 7) { this.boneArmor = true; } if (((this.body == 68 && this.legs == 57 && this.head == 106) || (this.body == 74 && this.legs == 63 && this.head == 106)) && Main.rand.Next(10) == 0) { int num = Dust.NewDust(new Vector2(this.position.X - this.velocity.X * 2f, this.position.Y - 2f - this.velocity.Y * 2f), this.width, this.height, 43, 0f, 0f, 100, new Color(255, 0, 255), 0.3f); Main.dust[num].fadeIn = 0.8f; Main.dust[num].noGravity = true; Main.dust[num].velocity *= 2f; } if (this.head == 5 && this.body == 5 && this.legs == 5) { this.socialShadow = true; } if (this.head == 5 && this.body == 5 && this.legs == 5 && Main.rand.Next(10) == 0) { Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 14, 0f, 0f, 200, default(Color), 1.2f); } if (this.head == 45 && this.body == 26 && this.legs == 25 && Main.rand.Next(12) == 0) { Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 186, 0f, 0f, 160, default(Color), 1.4f); } if (this.head == 76 && this.body == 49 && this.legs == 45) { this.socialShadow = true; } if (this.head == 74 && this.body == 48 && this.legs == 44) { this.socialShadow = true; } if (this.head == 74 && this.body == 48 && this.legs == 44 && Main.rand.Next(10) == 0) { Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 14, 0f, 0f, 200, default(Color), 1.2f); } if (this.head == 57 && this.body == 37 && this.legs == 35) { int maxValue = 10; if (Math.Abs(this.velocity.X) + Math.Abs(this.velocity.Y) > 1f) { maxValue = 2; } if (Main.rand.Next(maxValue) == 0) { int num2 = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 115, 0f, 0f, 140, default(Color), 0.75f); Main.dust[num2].noGravity = true; Main.dust[num2].fadeIn = 1.5f; Main.dust[num2].velocity *= 0.3f; Main.dust[num2].velocity += this.velocity * 0.2f; } } if (this.head == 6 && this.body == 6 && this.legs == 6 && Math.Abs(this.velocity.X) + Math.Abs(this.velocity.Y) > 1f && !this.rocketFrame) { for (int i = 0; i < 2; i++) { int num3 = Dust.NewDust(new Vector2(this.position.X - this.velocity.X * 2f, this.position.Y - 2f - this.velocity.Y * 2f), this.width, this.height, 6, 0f, 0f, 100, default(Color), 2f); Main.dust[num3].noGravity = true; Main.dust[num3].noLight = true; Dust expr_7B6_cp_0 = Main.dust[num3]; expr_7B6_cp_0.velocity.X = expr_7B6_cp_0.velocity.X - this.velocity.X * 0.5f; Dust expr_7E0_cp_0 = Main.dust[num3]; expr_7E0_cp_0.velocity.Y = expr_7E0_cp_0.velocity.Y - this.velocity.Y * 0.5f; } } if (this.head == 8 && this.body == 8 && this.legs == 8 && Math.Abs(this.velocity.X) + Math.Abs(this.velocity.Y) > 1f) { int num4 = Dust.NewDust(new Vector2(this.position.X - this.velocity.X * 2f, this.position.Y - 2f - this.velocity.Y * 2f), this.width, this.height, 40, 0f, 0f, 50, default(Color), 1.4f); Main.dust[num4].noGravity = true; Main.dust[num4].velocity.X = this.velocity.X * 0.25f; Main.dust[num4].velocity.Y = this.velocity.Y * 0.25f; } if (this.head == 9 && this.body == 9 && this.legs == 9 && Math.Abs(this.velocity.X) + Math.Abs(this.velocity.Y) > 1f && !this.rocketFrame) { for (int j = 0; j < 2; j++) { int num5 = Dust.NewDust(new Vector2(this.position.X - this.velocity.X * 2f, this.position.Y - 2f - this.velocity.Y * 2f), this.width, this.height, 6, 0f, 0f, 100, default(Color), 2f); Main.dust[num5].noGravity = true; Main.dust[num5].noLight = true; Dust expr_A25_cp_0 = Main.dust[num5]; expr_A25_cp_0.velocity.X = expr_A25_cp_0.velocity.X - this.velocity.X * 0.5f; Dust expr_A4F_cp_0 = Main.dust[num5]; expr_A4F_cp_0.velocity.Y = expr_A4F_cp_0.velocity.Y - this.velocity.Y * 0.5f; } } if (this.body == 18 && this.legs == 17 && (this.head == 32 || this.head == 33 || this.head == 34) && Main.rand.Next(10) == 0) { int num6 = Dust.NewDust(new Vector2(this.position.X - this.velocity.X * 2f, this.position.Y - 2f - this.velocity.Y * 2f), this.width, this.height, 43, 0f, 0f, 100, default(Color), 0.3f); Main.dust[num6].fadeIn = 0.8f; Main.dust[num6].velocity *= 0f; } if (this.body == 24 && this.legs == 23 && (this.head == 42 || this.head == 43 || this.head == 41) && this.velocity.X != 0f && this.velocity.Y != 0f && Main.rand.Next(10) == 0) { int num7 = Dust.NewDust(new Vector2(this.position.X - this.velocity.X * 2f, this.position.Y - 2f - this.velocity.Y * 2f), this.width, this.height, 43, 0f, 0f, 100, default(Color), 0.3f); Main.dust[num7].fadeIn = 0.8f; Main.dust[num7].velocity *= 0f; } if (this.body == 36 && this.head == 56 && this.velocity.X != 0f && this.velocity.Y == 0f) { for (int k = 0; k < 2; k++) { int num8 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + (float)this.height - 2f), this.width, 6, 106, 0f, 0f, 100, default(Color), 0.1f); Main.dust[num8].fadeIn = 1f; Main.dust[num8].noGravity = true; Main.dust[num8].velocity *= 0.2f; } } if (this.body == 27 && this.head == 46 && this.legs == 26) { this.frostArmor = true; if (this.velocity.X != 0f && this.velocity.Y == 0f && this.miscCounter % 2 == 0) { for (int l = 0; l < 2; l++) { int num9; if (l == 0) { num9 = Dust.NewDust(new Vector2(this.position.X, this.position.Y + (float)this.height + this.gfxOffY), this.width / 2, 6, 76, 0f, 0f, 0, default(Color), 1.35f); } else { num9 = Dust.NewDust(new Vector2(this.position.X + (float)(this.width / 2), this.position.Y + (float)this.height + this.gfxOffY), this.width / 2, 6, 76, 0f, 0f, 0, default(Color), 1.35f); } Main.dust[num9].scale *= 1f + (float)Main.rand.Next(20, 40) * 0.01f; Main.dust[num9].noGravity = true; Main.dust[num9].noLight = true; Main.dust[num9].velocity *= 0.001f; Dust expr_F0D_cp_0 = Main.dust[num9]; expr_F0D_cp_0.velocity.Y = expr_F0D_cp_0.velocity.Y - 0.003f; } } } this.bodyFrame.Width = 40; this.bodyFrame.Height = 56; this.legFrame.Width = 40; this.legFrame.Height = 56; this.bodyFrame.X = 0; this.legFrame.X = 0; if (this.itemAnimation > 0 && this.inventory[this.selectedItem].useStyle != 10) { if (this.inventory[this.selectedItem].useStyle == 1 || this.inventory[this.selectedItem].type == 0) { if ((double)this.itemAnimation < (double)this.itemAnimationMax * 0.333) { this.bodyFrame.Y = this.bodyFrame.Height * 3; } else { if ((double)this.itemAnimation < (double)this.itemAnimationMax * 0.666) { this.bodyFrame.Y = this.bodyFrame.Height * 2; } else { this.bodyFrame.Y = this.bodyFrame.Height; } } } else { if (this.inventory[this.selectedItem].useStyle == 2) { if ((double)this.itemAnimation > (double)this.itemAnimationMax * 0.5) { this.bodyFrame.Y = this.bodyFrame.Height * 3; } else { this.bodyFrame.Y = this.bodyFrame.Height * 2; } } else { if (this.inventory[this.selectedItem].useStyle == 3) { if ((double)this.itemAnimation > (double)this.itemAnimationMax * 0.666) { this.bodyFrame.Y = this.bodyFrame.Height * 3; } else { this.bodyFrame.Y = this.bodyFrame.Height * 3; } } else { if (this.inventory[this.selectedItem].useStyle == 4) { this.bodyFrame.Y = this.bodyFrame.Height * 2; } else { if (this.inventory[this.selectedItem].useStyle == 5) { if (this.inventory[this.selectedItem].type == 281 || this.inventory[this.selectedItem].type == 986) { this.bodyFrame.Y = this.bodyFrame.Height * 2; } else { float num10 = this.itemRotation * (float)this.direction; this.bodyFrame.Y = this.bodyFrame.Height * 3; if ((double)num10 < -0.75) { this.bodyFrame.Y = this.bodyFrame.Height * 2; if (this.gravDir == -1f) { this.bodyFrame.Y = this.bodyFrame.Height * 4; } } if ((double)num10 > 0.6) { this.bodyFrame.Y = this.bodyFrame.Height * 4; if (this.gravDir == -1f) { this.bodyFrame.Y = this.bodyFrame.Height * 2; } } } } } } } } } else { if (this.pulley) { if (this.pulleyDir == 2) { this.bodyFrame.Y = this.bodyFrame.Height; } else { this.bodyFrame.Y = this.bodyFrame.Height * 2; } } else { if (this.inventory[this.selectedItem].holdStyle == 1 && (!this.wet || !this.inventory[this.selectedItem].noWet)) { this.bodyFrame.Y = this.bodyFrame.Height * 3; } else { if (this.inventory[this.selectedItem].holdStyle == 2 && (!this.wet || !this.inventory[this.selectedItem].noWet)) { this.bodyFrame.Y = this.bodyFrame.Height * 2; } else { if (this.inventory[this.selectedItem].holdStyle == 3) { this.bodyFrame.Y = this.bodyFrame.Height * 3; } else { if (this.grappling[0] >= 0) { this.sandStorm = false; this.dJumpEffect = false; this.dJumpEffect2 = false; this.dJumpEffect3 = false; Vector2 vector = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f); float num11 = 0f; float num12 = 0f; for (int m = 0; m < this.grapCount; m++) { num11 += Main.projectile[this.grappling[m]].position.X + (float)(Main.projectile[this.grappling[m]].width / 2); num12 += Main.projectile[this.grappling[m]].position.Y + (float)(Main.projectile[this.grappling[m]].height / 2); } num11 /= (float)this.grapCount; num12 /= (float)this.grapCount; num11 -= vector.X; num12 -= vector.Y; if (num12 < 0f && Math.Abs(num12) > Math.Abs(num11)) { this.bodyFrame.Y = this.bodyFrame.Height * 2; if (this.gravDir == -1f) { this.bodyFrame.Y = this.bodyFrame.Height * 4; } } else { if (num12 > 0f && Math.Abs(num12) > Math.Abs(num11)) { this.bodyFrame.Y = this.bodyFrame.Height * 4; if (this.gravDir == -1f) { this.bodyFrame.Y = this.bodyFrame.Height * 2; } } else { this.bodyFrame.Y = this.bodyFrame.Height * 3; } } } else { if (this.swimTime > 0) { if (this.swimTime > 20) { this.bodyFrame.Y = 0; } else { if (this.swimTime > 10) { this.bodyFrame.Y = this.bodyFrame.Height * 5; } else { this.bodyFrame.Y = 0; } } } else { if (this.velocity.Y != 0f) { if (this.sliding) { this.bodyFrame.Y = this.bodyFrame.Height * 3; } else { if (this.sandStorm || this.carpetFrame >= 0) { this.bodyFrame.Y = this.bodyFrame.Height * 6; } else { if (this.wings > 0) { if (this.velocity.Y > 0f) { if (this.controlJump) { this.bodyFrame.Y = this.bodyFrame.Height * 6; } else { this.bodyFrame.Y = this.bodyFrame.Height * 5; } } else { this.bodyFrame.Y = this.bodyFrame.Height * 6; } } else { this.bodyFrame.Y = this.bodyFrame.Height * 5; } } } this.bodyFrameCounter = 0.0; } else { if (this.velocity.X != 0f) { this.bodyFrameCounter += (double)Math.Abs(this.velocity.X) * 1.5; this.bodyFrame.Y = this.legFrame.Y; } else { this.bodyFrameCounter = 0.0; this.bodyFrame.Y = 0; } } } } } } } } } if (this.swimTime > 0) { this.legFrameCounter += 2.0; while (this.legFrameCounter > 8.0) { this.legFrameCounter -= 8.0; this.legFrame.Y = this.legFrame.Y + this.legFrame.Height; } if (this.legFrame.Y < this.legFrame.Height * 7) { this.legFrame.Y = this.legFrame.Height * 19; } else { if (this.legFrame.Y > this.legFrame.Height * 19) { this.legFrame.Y = this.legFrame.Height * 7; } } } else { if (this.velocity.Y != 0f || this.grappling[0] > -1) { this.legFrameCounter = 0.0; this.legFrame.Y = this.legFrame.Height * 5; } else { if (this.velocity.X != 0f) { if ((this.slippy || this.slippy2) && !this.controlLeft && !this.controlRight) { this.legFrameCounter = 0.0; this.legFrame.Y = 0; } else { this.legFrameCounter += (double)Math.Abs(this.velocity.X) * 1.3; while (this.legFrameCounter > 8.0) { this.legFrameCounter -= 8.0; this.legFrame.Y = this.legFrame.Y + this.legFrame.Height; } if (this.legFrame.Y < this.legFrame.Height * 7) { this.legFrame.Y = this.legFrame.Height * 19; } else { if (this.legFrame.Y > this.legFrame.Height * 19) { this.legFrame.Y = this.legFrame.Height * 7; } } } } else { this.legFrameCounter = 0.0; this.legFrame.Y = 0; } } } if (this.carpetFrame >= 0) { this.legFrameCounter = 0.0; this.legFrame.Y = 0; } if (this.sandStorm) { if (this.miscCounter % 4 == 0 && this.itemAnimation == 0) { this.direction *= -1; } this.legFrameCounter = 0.0; this.legFrame.Y = 0; } } public void Teleport(Vector2 newPos, int Style = 0) { this.grappling[0] = -1; Main.TeleportEffect(this.getRect(), Style); this.position = newPos; if (this.whoAmi == Main.myPlayer) { Main.BlackFadeIn = 255; Lighting.BlackOut(); Main.screenLastPosition = Main.screenPosition; Main.screenPosition.X = this.position.X + (float)(this.width / 2) - (float)(Main.screenWidth / 2); Main.screenPosition.Y = this.position.Y + (float)(this.height / 2) - (float)(Main.screenHeight / 2); if (Main.mapTime < 5) { Main.mapTime = 5; } Main.quickBG = 10; Main.maxQ = true; Main.renderNow = true; } this.fallStart = (int)(this.position.Y / 16f); Main.TeleportEffect(this.getRect(), Style); this.teleportTime = 1f; this.teleportStyle = Style; } public void Spawn() { if (this.whoAmi == Main.myPlayer) { if (Main.mapTime < 5) { Main.mapTime = 5; } Main.quickBG = 10; this.FindSpawn(); if (!Player.CheckSpawn(this.SpawnX, this.SpawnY)) { this.SpawnX = -1; this.SpawnY = -1; } Main.maxQ = true; } if (Main.netMode == 1 && this.whoAmi == Main.myPlayer) { NetMessage.SendData(12, -1, -1, "", Main.myPlayer, 0f, 0f, 0f, 0); Main.gameMenu = false; } this.headPosition = default(Vector2); this.bodyPosition = default(Vector2); this.legPosition = default(Vector2); this.headRotation = 0f; this.bodyRotation = 0f; this.legRotation = 0f; if (this.statLife <= 0) { this.statLife = 100; this.breath = this.breathMax; if (this.spawnMax) { this.statLife = this.statLifeMax; this.statMana = this.statManaMax2; } } this.immune = true; this.dead = false; this.immuneTime = 0; this.active = true; if (this.SpawnX >= 0 && this.SpawnY >= 0) { this.position.X = (float)(this.SpawnX * 16 + 8 - this.width / 2); this.position.Y = (float)(this.SpawnY * 16 - this.height); } else { this.position.X = (float)(Main.spawnTileX * 16 + 8 - this.width / 2); this.position.Y = (float)(Main.spawnTileY * 16 - this.height); for (int i = Main.spawnTileX - 1; i < Main.spawnTileX + 2; i++) { for (int j = Main.spawnTileY - 3; j < Main.spawnTileY; j++) { if (Main.tileSolid[(int)Main.tile[i, j].type] && !Main.tileSolidTop[(int)Main.tile[i, j].type]) { WorldGen.KillTile(i, j, false, false, false); } if (Main.tile[i, j].liquid > 0) { Main.tile[i, j].lava(false); Main.tile[i, j].liquid = 0; WorldGen.SquareTileFrame(i, j, true); } } } } this.wet = false; this.wetCount = 0; this.lavaWet = false; this.fallStart = (int)(this.position.Y / 16f); this.velocity.X = 0f; this.velocity.Y = 0f; this.talkNPC = -1; if (this.pvpDeath) { this.pvpDeath = false; this.immuneTime = 300; this.statLife = this.statLifeMax; } else { this.immuneTime = 60; } if (this.whoAmi == Main.myPlayer) { Main.BlackFadeIn = 255; Main.renderNow = true; if (Main.netMode == 1) { Netplay.newRecent(); } Main.screenPosition.X = this.position.X + (float)(this.width / 2) - (float)(Main.screenWidth / 2); Main.screenPosition.Y = this.position.Y + (float)(this.height / 2) - (float)(Main.screenHeight / 2); } } public void ShadowDodge() { this.immune = true; this.immuneTime = 80; if (this.longInvince) { this.immuneTime += 40; } if (this.whoAmi == Main.myPlayer) { for (int i = 0; i < 9; i++) { if (this.buffTime[i] > 0 && this.buffType[i] == 59) { this.DelBuff(i); } } NetMessage.SendData(62, -1, -1, "", this.whoAmi, 2f, 0f, 0f, 0); } } public void NinjaDodge() { this.immune = true; this.immuneTime = 80; if (this.longInvince) { this.immuneTime += 40; } for (int i = 0; i < 100; i++) { int num = Dust.NewDust(new Vector2(this.position.X, this.position.Y), this.width, this.height, 31, 0f, 0f, 100, default(Color), 2f); Dust expr_82_cp_0 = Main.dust[num]; expr_82_cp_0.position.X = expr_82_cp_0.position.X + (float)Main.rand.Next(-20, 21); Dust expr_A9_cp_0 = Main.dust[num]; expr_A9_cp_0.position.Y = expr_A9_cp_0.position.Y + (float)Main.rand.Next(-20, 21); Main.dust[num].velocity *= 0.4f; Main.dust[num].scale *= 1f + (float)Main.rand.Next(40) * 0.01f; if (Main.rand.Next(2) == 0) { Main.dust[num].scale *= 1f + (float)Main.rand.Next(40) * 0.01f; Main.dust[num].noGravity = true; } } int num2 = Gore.NewGore(new Vector2(this.position.X + (float)(this.width / 2) - 24f, this.position.Y + (float)(this.height / 2) - 24f), default(Vector2), Main.rand.Next(61, 64), 1f); Main.gore[num2].scale = 1.5f; Main.gore[num2].velocity.X = (float)Main.rand.Next(-50, 51) * 0.01f; Main.gore[num2].velocity.Y = (float)Main.rand.Next(-50, 51) * 0.01f; Main.gore[num2].velocity *= 0.4f; num2 = Gore.NewGore(new Vector2(this.position.X + (float)(this.width / 2) - 24f, this.position.Y + (float)(this.height / 2) - 24f), default(Vector2), Main.rand.Next(61, 64), 1f); Main.gore[num2].scale = 1.5f; Main.gore[num2].velocity.X = 1.5f + (float)Main.rand.Next(-50, 51) * 0.01f; Main.gore[num2].velocity.Y = 1.5f + (float)Main.rand.Next(-50, 51) * 0.01f; Main.gore[num2].velocity *= 0.4f; num2 = Gore.NewGore(new Vector2(this.position.X + (float)(this.width / 2) - 24f, this.position.Y + (float)(this.height / 2) - 24f), default(Vector2), Main.rand.Next(61, 64), 1f); Main.gore[num2].scale = 1.5f; Main.gore[num2].velocity.X = -1.5f - (float)Main.rand.Next(-50, 51) * 0.01f; Main.gore[num2].velocity.Y = 1.5f + (float)Main.rand.Next(-50, 51) * 0.01f; Main.gore[num2].velocity *= 0.4f; num2 = Gore.NewGore(new Vector2(this.position.X + (float)(this.width / 2) - 24f, this.position.Y + (float)(this.height / 2) - 24f), default(Vector2), Main.rand.Next(61, 64), 1f); Main.gore[num2].scale = 1.5f; Main.gore[num2].velocity.X = 1.5f + (float)Main.rand.Next(-50, 51) * 0.01f; Main.gore[num2].velocity.Y = -1.5f - (float)Main.rand.Next(-50, 51) * 0.01f; Main.gore[num2].velocity *= 0.4f; num2 = Gore.NewGore(new Vector2(this.position.X + (float)(this.width / 2) - 24f, this.position.Y + (float)(this.height / 2) - 24f), default(Vector2), Main.rand.Next(61, 64), 1f); Main.gore[num2].scale = 1.5f; Main.gore[num2].velocity.X = -1.5f - (float)Main.rand.Next(-50, 51) * 0.01f; Main.gore[num2].velocity.Y = -1.5f - (float)Main.rand.Next(-50, 51) * 0.01f; Main.gore[num2].velocity *= 0.4f; if (this.whoAmi == Main.myPlayer) { NetMessage.SendData(62, -1, -1, "", this.whoAmi, 1f, 0f, 0f, 0); } } public double Hurt(int Damage, int hitDirection, bool pvp = false, bool quiet = false, string deathText = " was slain...", bool Crit = false) { if (this.immune) { return 0.0; } if (this.whoAmi == Main.myPlayer && this.blackBelt && Main.rand.Next(10) == 0) { this.NinjaDodge(); return 0.0; } if (this.whoAmi == Main.myPlayer && this.shadowDodge) { this.ShadowDodge(); return 0.0; } if (this.whoAmi == Main.myPlayer && this.panic) { this.AddBuff(63, 300, true); } int num = Damage; double num2 = Main.CalculateDamage(num, this.statDefense); if (Crit) { num *= 2; } if (num2 >= 1.0) { if (this.magicCuffs) { int num3 = num; this.statMana += num3; if (this.statMana > this.statManaMax2) { this.statMana = this.statManaMax2; } this.ManaEffect(num3); } if (this.paladinBuff) { int damage = (int)(num2 * 0.25); num2 = (double)((int)(num2 * 0.75)); if (this.whoAmi != Main.myPlayer && Main.player[Main.myPlayer].paladinGive) { int myPlayer = Main.myPlayer; if (Main.player[myPlayer].team == this.team && this.team != 0) { float num4 = this.position.X - Main.player[myPlayer].position.X; float num5 = this.position.Y - Main.player[myPlayer].position.Y; float num6 = (float)Math.Sqrt((double)(num4 * num4 + num5 * num5)); if (num6 < 800f) { Main.player[myPlayer].Hurt(damage, 0, false, false, "", false); } } } } if (Main.netMode == 1 && this.whoAmi == Main.myPlayer && !quiet) { int number = 0; if (Crit) { number = 1; } int num7 = 0; if (pvp) { num7 = 1; } NetMessage.SendData(13, -1, -1, "", this.whoAmi, 0f, 0f, 0f, 0); NetMessage.SendData(16, -1, -1, "", this.whoAmi, 0f, 0f, 0f, 0); NetMessage.SendData(26, -1, -1, "", this.whoAmi, (float)hitDirection, (float)Damage, (float)num7, number); } 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)num2), Crit, false); this.statLife -= (int)num2; this.immune = true; if (num2 == 1.0) { this.immuneTime = 20; if (this.longInvince) { this.immuneTime += 20; } } else { this.immuneTime = 40; if (this.longInvince) { this.immuneTime += 40; } } this.lifeRegenTime = 0; if (pvp) { this.immuneTime = 8; } if (this.whoAmi == Main.myPlayer) { if (this.starCloak) { for (int i = 0; i < 3; i++) { float x = this.position.X + (float)Main.rand.Next(-400, 400); float y = this.position.Y - (float)Main.rand.Next(500, 800); Vector2 vector = new Vector2(x, y); float num8 = this.position.X + (float)(this.width / 2) - vector.X; float num9 = this.position.Y + (float)(this.height / 2) - vector.Y; num8 += (float)Main.rand.Next(-100, 101); int num10 = 23; float num11 = (float)Math.Sqrt((double)(num8 * num8 + num9 * num9)); num11 = (float)num10 / num11; num8 *= num11; num9 *= num11; int num12 = Projectile.NewProjectile(x, y, num8, num9, 92, 30, 5f, this.whoAmi, 0f, 0f); Main.projectile[num12].ai[1] = this.position.Y; } } if (this.bee) { int num13 = 1; if (Main.rand.Next(3) == 0) { num13++; } if (Main.rand.Next(3) == 0) { num13++; } for (int j = 0; j < num13; j++) { float speedX = (float)Main.rand.Next(-35, 36) * 0.02f; float speedY = (float)Main.rand.Next(-35, 36) * 0.02f; Projectile.NewProjectile(this.position.X, this.position.Y, speedX, speedY, 181, 7, 0f, Main.myPlayer, 0f, 0f); } } } if (!this.noKnockback && hitDirection != 0) { this.velocity.X = 4.5f * (float)hitDirection; this.velocity.Y = -3.5f; } if (this.frostArmor) { Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, 27); } else { if (this.wereWolf) { Main.PlaySound(3, (int)this.position.X, (int)this.position.Y, 6); } else { if (this.boneArmor) { Main.PlaySound(3, (int)this.position.X, (int)this.position.Y, 2); } else { if (!this.male) { Main.PlaySound(20, (int)this.position.X, (int)this.position.Y, 1); } else { Main.PlaySound(1, (int)this.position.X, (int)this.position.Y, 1); } } } } if (this.statLife > 0) { int num14 = 0; while ((double)num14 < num2 / (double)this.statLifeMax * 100.0) { if (this.body == 27 && this.head == 46 && this.legs == 26) { Dust.NewDust(this.position, this.width, this.height, 135, (float)(2 * hitDirection), -2f, 0, default(Color), 1f); } else { if (this.boneArmor) { Dust.NewDust(this.position, this.width, this.height, 26, (float)(2 * hitDirection), -2f, 0, default(Color), 1f); } else { Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -2f, 0, default(Color), 1f); } } num14++; } } else { this.statLife = 0; if (this.whoAmi == Main.myPlayer) { this.KillMe(num2, hitDirection, pvp, deathText); } } } if (pvp) { num2 = Main.CalculateDamage(num, this.statDefense); } return num2; } public void KillMeForGood() { if (File.Exists(Main.playerPathName)) { File.Delete(Main.playerPathName); } if (File.Exists(Main.playerPathName + ".bak")) { File.Delete(Main.playerPathName + ".bak"); } if (File.Exists(Main.playerPathName + ".dat")) { File.Delete(Main.playerPathName + ".dat"); } Main.playerPathName = ""; } public void KillMe(double dmg, int hitDirection, bool pvp = false, string deathText = " was slain...") { if (this.dead) { return; } if (pvp) { this.pvpDeath = true; } if (this.difficulty == 0) { if (Main.netMode != 1) { float num = (float)Main.rand.Next(-35, 36) * 0.1f; while (num < 2f && num > -2f) { num += (float)Main.rand.Next(-30, 31) * 0.1f; } int num2 = Main.rand.Next(6); if (num2 == 0) { num2 = 43; } else { num2 = 200 + num2; } int num3 = Projectile.NewProjectile(this.position.X + (float)(this.width / 2), this.position.Y + (float)(this.head / 2), (float)Main.rand.Next(10, 30) * 0.1f * (float)hitDirection + num, (float)Main.rand.Next(-40, -20) * 0.1f, num2, 0, 0f, Main.myPlayer, 0f, 0f); Main.projectile[num3].miscText = this.name + deathText; } if (Main.myPlayer == this.whoAmi) { for (int i = 0; i < 59; i++) { if (this.inventory[i].stack > 0 && this.inventory[i].type >= 1522 && this.inventory[i].type <= 1527) { int num4 = Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, this.inventory[i].type, 1, false, 0, false); Main.item[num4].SetDefaults(this.inventory[i].name); Main.item[num4].Prefix((int)this.inventory[i].prefix); Main.item[num4].stack = this.inventory[i].stack; Main.item[num4].velocity.Y = (float)Main.rand.Next(-20, 1) * 0.2f; Main.item[num4].velocity.X = (float)Main.rand.Next(-20, 21) * 0.2f; Main.item[num4].noGrabDelay = 100; if (Main.netMode == 1) { NetMessage.SendData(21, -1, -1, "", num4, 0f, 0f, 0f, 0); } this.inventory[i].SetDefaults(0, false); } } Main.mapFullscreen = false; } } else { if (Main.netMode != 1) { float num5 = (float)Main.rand.Next(-35, 36) * 0.1f; while (num5 < 2f && num5 > -2f) { num5 += (float)Main.rand.Next(-30, 31) * 0.1f; } int num6 = Main.rand.Next(6); if (num6 == 0) { num6 = 43; } else { num6 = 200 + num6; } int num7 = Projectile.NewProjectile(this.position.X + (float)(this.width / 2), this.position.Y + (float)(this.head / 2), (float)Main.rand.Next(10, 30) * 0.1f * (float)hitDirection + num5, (float)Main.rand.Next(-40, -20) * 0.1f, num6, 0, 0f, Main.myPlayer, 0f, 0f); Main.projectile[num7].miscText = this.name + deathText; } if (Main.myPlayer == this.whoAmi) { if (Main.myPlayer == this.whoAmi) { Main.mapFullscreen = false; } Main.trashItem.SetDefaults(0, false); if (this.difficulty == 1) { this.DropItems(); } else { if (this.difficulty == 2) { this.DropItems(); this.KillMeForGood(); } } } } Main.PlaySound(5, (int)this.position.X, (int)this.position.Y, 1); this.headVelocity.Y = (float)Main.rand.Next(-40, -10) * 0.1f; this.bodyVelocity.Y = (float)Main.rand.Next(-40, -10) * 0.1f; this.legVelocity.Y = (float)Main.rand.Next(-40, -10) * 0.1f; this.headVelocity.X = (float)Main.rand.Next(-20, 21) * 0.1f + (float)(2 * hitDirection); this.bodyVelocity.X = (float)Main.rand.Next(-20, 21) * 0.1f + (float)(2 * hitDirection); this.legVelocity.X = (float)Main.rand.Next(-20, 21) * 0.1f + (float)(2 * hitDirection); for (int j = 0; j < 100; j++) { if (this.boneArmor) { Dust.NewDust(this.position, this.width, this.height, 26, (float)(2 * hitDirection), -2f, 0, default(Color), 1f); } else { Dust.NewDust(this.position, this.width, this.height, 5, (float)(2 * hitDirection), -2f, 0, default(Color), 1f); } } this.dead = true; this.respawnTimer = 600; this.immuneAlpha = 0; this.palladiumRegen = false; this.iceBarrier = false; this.crystalLeaf = false; if (Main.netMode == 2) { NetMessage.SendData(25, -1, -1, this.name + deathText, 255, 225f, 25f, 25f, 0); } else { if (Main.netMode == 0) { Main.NewText(this.name + deathText, 225, 25, 25, false); } } if (Main.netMode == 1 && this.whoAmi == Main.myPlayer) { int num8 = 0; if (pvp) { num8 = 1; } NetMessage.SendData(44, -1, -1, deathText, this.whoAmi, (float)hitDirection, (float)((int)dmg), (float)num8, 0); } if (!pvp && this.whoAmi == Main.myPlayer && this.difficulty == 0) { this.DropCoins(); } if (this.whoAmi == Main.myPlayer) { try { WorldGen.saveToonWhilePlaying(); } catch { } } } public bool ItemSpace(Item newItem) { if (newItem.type == 58) { return true; } if (newItem.type == 184) { return true; } int num = 50; if (newItem.type == 71 || newItem.type == 72 || newItem.type == 73 || newItem.type == 74) { num = 54; } for (int i = 0; i < num; i++) { if (this.inventory[i].type == 0) { return true; } } for (int j = 0; j < num; j++) { if (this.inventory[j].type > 0 && this.inventory[j].stack < this.inventory[j].maxStack && newItem.IsTheSameAs(this.inventory[j])) { return true; } } if (newItem.ammo > 0 && !newItem.notAmmo) { if (newItem.type != 75 && newItem.type != 169 && newItem.type != 23 && newItem.type != 408 && newItem.type != 370) { for (int k = 54; k < 58; k++) { if (this.inventory[k].type == 0) { return true; } } } for (int l = 54; l < 58; l++) { if (this.inventory[l].type > 0 && this.inventory[l].stack < this.inventory[l].maxStack && newItem.IsTheSameAs(this.inventory[l])) { return true; } } } return false; } public void DoCoins(int i) { if (this.inventory[i].stack == 100 && (this.inventory[i].type == 71 || this.inventory[i].type == 72 || this.inventory[i].type == 73)) { this.inventory[i].SetDefaults(this.inventory[i].type + 1, false); for (int j = 0; j < 54; j++) { if (this.inventory[j].IsTheSameAs(this.inventory[i]) && j != i && this.inventory[j].type == this.inventory[i].type && this.inventory[j].stack < this.inventory[j].maxStack) { this.inventory[j].stack++; this.inventory[i].SetDefaults(0, false); this.inventory[i].active = false; this.inventory[i].name = ""; this.inventory[i].type = 0; this.inventory[i].stack = 0; this.DoCoins(j); } } } } public Item FillAmmo(int plr, Item newItem) { for (int i = 54; i < 58; i++) { if (this.inventory[i].type > 0 && this.inventory[i].stack < this.inventory[i].maxStack && newItem.IsTheSameAs(this.inventory[i])) { Main.PlaySound(7, (int)this.position.X, (int)this.position.Y, 1); if (newItem.stack + this.inventory[i].stack <= this.inventory[i].maxStack) { this.inventory[i].stack += newItem.stack; ItemText.NewText(newItem, newItem.stack); this.DoCoins(i); if (plr == Main.myPlayer) { Recipe.FindRecipes(); } return new Item(); } newItem.stack -= this.inventory[i].maxStack - this.inventory[i].stack; ItemText.NewText(newItem, this.inventory[i].maxStack - this.inventory[i].stack); this.inventory[i].stack = this.inventory[i].maxStack; this.DoCoins(i); if (plr == Main.myPlayer) { Recipe.FindRecipes(); } } } if (newItem.type != 169 && newItem.type != 75 && newItem.type != 23 && newItem.type != 408 && newItem.type != 370 && !newItem.notAmmo) { for (int j = 54; j < 58; j++) { if (this.inventory[j].type == 0) { this.inventory[j] = newItem; ItemText.NewText(newItem, newItem.stack); this.DoCoins(j); Main.PlaySound(7, (int)this.position.X, (int)this.position.Y, 1); if (plr == Main.myPlayer) { Recipe.FindRecipes(); } return new Item(); } } } return newItem; } public Item GetItem(int plr, Item newItem) { Item item = newItem; int num = 50; if (newItem.noGrabDelay > 0) { return item; } int num2 = 0; if (newItem.type == 71 || newItem.type == 72 || newItem.type == 73 || newItem.type == 74) { num2 = -4; num = 54; } if (item.ammo > 0 && !item.notAmmo) { item = this.FillAmmo(plr, item); if (item.type == 0 || item.stack == 0) { return new Item(); } } for (int i = num2; i < 50; i++) { int num3 = i; if (num3 < 0) { num3 = 54 + i; } if (this.inventory[num3].type > 0 && this.inventory[num3].stack < this.inventory[num3].maxStack && item.IsTheSameAs(this.inventory[num3])) { Main.PlaySound(7, (int)this.position.X, (int)this.position.Y, 1); if (item.stack + this.inventory[num3].stack <= this.inventory[num3].maxStack) { this.inventory[num3].stack += item.stack; ItemText.NewText(newItem, item.stack); this.DoCoins(num3); if (plr == Main.myPlayer) { Recipe.FindRecipes(); } return new Item(); } item.stack -= this.inventory[num3].maxStack - this.inventory[num3].stack; ItemText.NewText(newItem, this.inventory[num3].maxStack - this.inventory[num3].stack); this.inventory[num3].stack = this.inventory[num3].maxStack; this.DoCoins(num3); if (plr == Main.myPlayer) { Recipe.FindRecipes(); } } } if (newItem.type != 71 && newItem.type != 72 && newItem.type != 73 && newItem.type != 74 && newItem.useStyle > 0) { for (int j = 0; j < 10; j++) { if (this.inventory[j].type == 0) { this.inventory[j] = item; ItemText.NewText(newItem, newItem.stack); this.DoCoins(j); Main.PlaySound(7, (int)this.position.X, (int)this.position.Y, 1); if (plr == Main.myPlayer) { Recipe.FindRecipes(); } return new Item(); } } } for (int k = num - 1; k >= 0; k--) { if (this.inventory[k].type == 0) { this.inventory[k] = item; ItemText.NewText(newItem, newItem.stack); this.DoCoins(k); Main.PlaySound(7, (int)this.position.X, (int)this.position.Y, 1); if (plr == Main.myPlayer) { Recipe.FindRecipes(); } return new Item(); } } return item; } public void PlaceThing() { if ((this.inventory[this.selectedItem].type == 1071 || this.inventory[this.selectedItem].type == 1543) && this.position.X / 16f - (float)Player.tileRangeX - (float)this.inventory[this.selectedItem].tileBoost - (float)this.blockRange <= (float)Player.tileTargetX && (this.position.X + (float)this.width) / 16f + (float)Player.tileRangeX + (float)this.inventory[this.selectedItem].tileBoost - 1f + (float)this.blockRange >= (float)Player.tileTargetX && this.position.Y / 16f - (float)Player.tileRangeY - (float)this.inventory[this.selectedItem].tileBoost - (float)this.blockRange <= (float)Player.tileTargetY && (this.position.Y + (float)this.height) / 16f + (float)Player.tileRangeY + (float)this.inventory[this.selectedItem].tileBoost - 2f + (float)this.blockRange >= (float)Player.tileTargetY) { int num = Player.tileTargetX; int num2 = Player.tileTargetY; if (Main.tile[num, num2] != null && Main.tile[num, num2].active()) { this.showItemIcon = true; if (this.itemTime == 0 && this.itemAnimation > 0 && this.controlUseItem) { int num3 = -1; int num4 = -1; for (int i = 0; i < 58; i++) { if (this.inventory[i].stack > 0 && this.inventory[i].paint > 0) { num3 = (int)this.inventory[i].paint; num4 = i; break; } } if (num3 > 0 && (int)Main.tile[num, num2].color() != num3 && WorldGen.paintTile(num, num2, (byte)num3, true)) { int num5 = num4; this.inventory[num5].stack--; if (this.inventory[num5].stack <= 0) { this.inventory[num5].SetDefaults(0, false); } this.itemTime = this.inventory[this.selectedItem].useTime; } } } } if ((this.inventory[this.selectedItem].type == 1072 || this.inventory[this.selectedItem].type == 1544) && this.position.X / 16f - (float)Player.tileRangeX - (float)this.inventory[this.selectedItem].tileBoost - (float)this.blockRange <= (float)Player.tileTargetX && (this.position.X + (float)this.width) / 16f + (float)Player.tileRangeX + (float)this.inventory[this.selectedItem].tileBoost - 1f + (float)this.blockRange >= (float)Player.tileTargetX && this.position.Y / 16f - (float)Player.tileRangeY - (float)this.inventory[this.selectedItem].tileBoost - (float)this.blockRange <= (float)Player.tileTargetY && (this.position.Y + (float)this.height) / 16f + (float)Player.tileRangeY + (float)this.inventory[this.selectedItem].tileBoost - 2f + (float)this.blockRange >= (float)Player.tileTargetY) { int num6 = Player.tileTargetX; int num7 = Player.tileTargetY; if (Main.tile[num6, num7] != null && Main.tile[num6, num7].wall > 0) { this.showItemIcon = true; if (this.itemTime == 0 && this.itemAnimation > 0 && this.controlUseItem) { int num8 = -1; int num9 = -1; for (int j = 0; j < 58; j++) { if (this.inventory[j].stack > 0 && this.inventory[j].paint > 0) { num8 = (int)this.inventory[j].paint; num9 = j; break; } } if (num8 > 0 && (int)Main.tile[num6, num7].wallColor() != num8 && WorldGen.paintWall(num6, num7, (byte)num8, true)) { int num10 = num9; this.inventory[num10].stack--; if (this.inventory[num10].stack <= 0) { this.inventory[num10].SetDefaults(0, false); } this.itemTime = this.inventory[this.selectedItem].useTime; } } } } if ((this.inventory[this.selectedItem].type == 1100 || this.inventory[this.selectedItem].type == 1545) && this.position.X / 16f - (float)Player.tileRangeX - (float)this.inventory[this.selectedItem].tileBoost - (float)this.blockRange <= (float)Player.tileTargetX && (this.position.X + (float)this.width) / 16f + (float)Player.tileRangeX + (float)this.inventory[this.selectedItem].tileBoost - 1f + (float)this.blockRange >= (float)Player.tileTargetX && this.position.Y / 16f - (float)Player.tileRangeY - (float)this.inventory[this.selectedItem].tileBoost - (float)this.blockRange <= (float)Player.tileTargetY && (this.position.Y + (float)this.height) / 16f + (float)Player.tileRangeY + (float)this.inventory[this.selectedItem].tileBoost - 2f + (float)this.blockRange >= (float)Player.tileTargetY) { int num11 = Player.tileTargetX; int num12 = Player.tileTargetY; if (Main.tile[num11, num12] != null && ((Main.tile[num11, num12].wallColor() > 0 && Main.tile[num11, num12].wall > 0) || (Main.tile[num11, num12].color() > 0 && Main.tile[num11, num12].active()))) { this.showItemIcon = true; if (this.itemTime == 0 && this.itemAnimation > 0 && this.controlUseItem) { if (Main.tile[num11, num12].color() > 0 && Main.tile[num11, num12].active() && WorldGen.paintTile(num11, num12, 0, true)) { this.itemTime = this.inventory[this.selectedItem].useTime; } else { if (Main.tile[num11, num12].wallColor() > 0 && Main.tile[num11, num12].wall > 0 && WorldGen.paintWall(num11, num12, 0, true)) { this.itemTime = this.inventory[this.selectedItem].useTime; } } } } } if ((this.inventory[this.selectedItem].type == 929 || this.inventory[this.selectedItem].type == 1338) && this.position.X / 16f - (float)Player.tileRangeX - (float)this.inventory[this.selectedItem].tileBoost - (float)this.blockRange <= (float)Player.tileTargetX && (this.position.X + (float)this.width) / 16f + (float)Player.tileRangeX + (float)this.inventory[this.selectedItem].tileBoost - 1f + (float)this.blockRange >= (float)Player.tileTargetX && this.position.Y / 16f - (float)Player.tileRangeY - (float)this.inventory[this.selectedItem].tileBoost - (float)this.blockRange <= (float)Player.tileTargetY && (this.position.Y + (float)this.height) / 16f + (float)Player.tileRangeY + (float)this.inventory[this.selectedItem].tileBoost - 2f + (float)this.blockRange >= (float)Player.tileTargetY) { int num13 = Player.tileTargetX; int num14 = Player.tileTargetY; if (Main.tile[num13, num14].active() && Main.tile[num13, num14].type == 209) { int num15 = 0; if (Main.tile[num13, num14].frameX < 72) { if (this.inventory[this.selectedItem].type == 929) { num15 = 1; } } else { if (Main.tile[num13, num14].frameX < 144 && this.inventory[this.selectedItem].type == 1338) { num15 = 2; } } if (num15 > 0) { this.showItemIcon = true; if (this.itemTime == 0 && this.itemAnimation > 0 && this.controlUseItem) { int k = (int)(Main.tile[num13, num14].frameX / 18); int num16 = 0; int num17 = 0; while (k >= 4) { num16++; k -= 4; } k = num13 - k; int l; for (l = (int)(Main.tile[num13, num14].frameY / 18); l >= 3; l -= 3) { num17++; } l = num14 - l; this.itemTime = this.inventory[this.selectedItem].useTime; float num18 = 14f; float num19 = 0f; float num20 = 0f; int type = 162; if (num15 == 2) { type = 281; } int damage = this.inventory[this.selectedItem].damage; int num21 = 8; if (num17 == 0) { num19 = 10f; num20 = 0f; } if (num17 == 1) { num19 = 7.5f; num20 = -2.5f; } if (num17 == 2) { num19 = 5f; num20 = -5f; } if (num17 == 3) { num19 = 2.75f; num20 = -6f; } if (num17 == 4) { num19 = 0f; num20 = -10f; } if (num17 == 5) { num19 = -2.75f; num20 = -6f; } if (num17 == 6) { num19 = -5f; num20 = -5f; } if (num17 == 7) { num19 = -7.5f; num20 = -2.5f; } if (num17 == 8) { num19 = -10f; num20 = 0f; } Vector2 vector = new Vector2((float)((k + 2) * 16), (float)((l + 2) * 16)); float num22 = num19; float num23 = num20; float num24 = (float)Math.Sqrt((double)(num22 * num22 + num23 * num23)); num24 = num18 / num24; num22 *= num24; num23 *= num24; Projectile.NewProjectile(vector.X, vector.Y, num22, num23, type, damage, (float)num21, Main.myPlayer, 0f, 0f); } } } } if ((this.inventory[this.selectedItem].type == 424 || this.inventory[this.selectedItem].type == 1103) && Main.tile[Player.tileTargetX, Player.tileTargetY].active() && Main.tile[Player.tileTargetX, Player.tileTargetY].type == 219) { if (this.position.X / 16f - (float)Player.tileRangeX - (float)this.inventory[this.selectedItem].tileBoost - (float)this.blockRange <= (float)Player.tileTargetX && (this.position.X + (float)this.width) / 16f + (float)Player.tileRangeX + (float)this.inventory[this.selectedItem].tileBoost - 1f + (float)this.blockRange >= (float)Player.tileTargetX && this.position.Y / 16f - (float)Player.tileRangeY - (float)this.inventory[this.selectedItem].tileBoost - (float)this.blockRange <= (float)Player.tileTargetY && (this.position.Y + (float)this.height) / 16f + (float)Player.tileRangeY + (float)this.inventory[this.selectedItem].tileBoost - 2f + (float)this.blockRange >= (float)Player.tileTargetY && this.itemTime == 0 && this.itemAnimation > 0 && this.controlUseItem) { this.itemTime = this.inventory[this.selectedItem].useTime; this.inventory[this.selectedItem].stack--; if (this.inventory[this.selectedItem].stack <= 0) { this.inventory[this.selectedItem].SetDefaults(0, false); } if (this.selectedItem == 48) { Main.mouseItem = this.inventory[this.selectedItem]; } Main.PlaySound(7, -1, -1, 1); int num25 = 1; int num26; if (Main.rand.Next(5000) == 0) { num26 = 1242; } else { if (Main.rand.Next(25) == 0) { num26 = Main.rand.Next(6); if (num26 == 0) { num26 = 181; } else { if (num26 == 1) { num26 = 180; } else { if (num26 == 2) { num26 = 177; } else { if (num26 == 3) { num26 = 179; } else { if (num26 == 4) { num26 = 178; } else { num26 = 182; } } } } } if (Main.rand.Next(20) == 0) { num25 += Main.rand.Next(0, 2); } if (Main.rand.Next(30) == 0) { num25 += Main.rand.Next(0, 3); } if (Main.rand.Next(40) == 0) { num25 += Main.rand.Next(0, 4); } if (Main.rand.Next(50) == 0) { num25 += Main.rand.Next(0, 5); } if (Main.rand.Next(60) == 0) { num25 += Main.rand.Next(0, 6); } } else { if (Main.rand.Next(50) == 0) { num26 = 999; if (Main.rand.Next(20) == 0) { num25 += Main.rand.Next(0, 2); } if (Main.rand.Next(30) == 0) { num25 += Main.rand.Next(0, 3); } if (Main.rand.Next(40) == 0) { num25 += Main.rand.Next(0, 4); } if (Main.rand.Next(50) == 0) { num25 += Main.rand.Next(0, 5); } if (Main.rand.Next(60) == 0) { num25 += Main.rand.Next(0, 6); } } else { if (Main.rand.Next(3) == 0) { if (Main.rand.Next(5000) == 0) { num26 = 74; if (Main.rand.Next(10) == 0) { num25 += Main.rand.Next(0, 3); } if (Main.rand.Next(10) == 0) { num25 += Main.rand.Next(0, 3); } if (Main.rand.Next(10) == 0) { num25 += Main.rand.Next(0, 3); } if (Main.rand.Next(10) == 0) { num25 += Main.rand.Next(0, 3); } if (Main.rand.Next(10) == 0) { num25 += Main.rand.Next(0, 3); } } else { if (Main.rand.Next(400) == 0) { num26 = 73; if (Main.rand.Next(5) == 0) { num25 += Main.rand.Next(1, 21); } if (Main.rand.Next(5) == 0) { num25 += Main.rand.Next(1, 21); } if (Main.rand.Next(5) == 0) { num25 += Main.rand.Next(1, 21); } if (Main.rand.Next(5) == 0) { num25 += Main.rand.Next(1, 21); } if (Main.rand.Next(5) == 0) { num25 += Main.rand.Next(1, 20); } } else { if (Main.rand.Next(30) == 0) { num26 = 72; if (Main.rand.Next(3) == 0) { num25 += Main.rand.Next(5, 26); } if (Main.rand.Next(3) == 0) { num25 += Main.rand.Next(5, 26); } if (Main.rand.Next(3) == 0) { num25 += Main.rand.Next(5, 26); } if (Main.rand.Next(3) == 0) { num25 += Main.rand.Next(5, 25); } } else { num26 = 71; if (Main.rand.Next(2) == 0) { num25 += Main.rand.Next(10, 26); } if (Main.rand.Next(2) == 0) { num25 += Main.rand.Next(10, 26); } if (Main.rand.Next(2) == 0) { num25 += Main.rand.Next(10, 26); } if (Main.rand.Next(2) == 0) { num25 += Main.rand.Next(10, 25); } } } } } else { num26 = Main.rand.Next(8); if (num26 == 0) { num26 = 12; } else { if (num26 == 1) { num26 = 11; } else { if (num26 == 2) { num26 = 14; } else { if (num26 == 3) { num26 = 13; } else { if (num26 == 4) { num26 = 699; } else { if (num26 == 5) { num26 = 700; } else { if (num26 == 6) { num26 = 701; } else { num26 = 702; } } } } } } } if (Main.rand.Next(20) == 0) { num25 += Main.rand.Next(0, 2); } if (Main.rand.Next(30) == 0) { num25 += Main.rand.Next(0, 3); } if (Main.rand.Next(40) == 0) { num25 += Main.rand.Next(0, 4); } if (Main.rand.Next(50) == 0) { num25 += Main.rand.Next(0, 5); } if (Main.rand.Next(60) == 0) { num25 += Main.rand.Next(0, 6); } } } } } if (num26 > 0) { int number = Item.NewItem((int)Main.screenPosition.X + Main.mouseX, (int)Main.screenPosition.Y + Main.mouseY, 1, 1, num26, num25, false, -1, false); if (Main.netMode == 1) { NetMessage.SendData(21, -1, -1, "", number, 1f, 0f, 0f, 0); } } } } else { if (this.inventory[this.selectedItem].createTile >= 0 && this.position.X / 16f - (float)Player.tileRangeX - (float)this.inventory[this.selectedItem].tileBoost - (float)this.blockRange <= (float)Player.tileTargetX && (this.position.X + (float)this.width) / 16f + (float)Player.tileRangeX + (float)this.inventory[this.selectedItem].tileBoost - 1f + (float)this.blockRange >= (float)Player.tileTargetX && this.position.Y / 16f - (float)Player.tileRangeY - (float)this.inventory[this.selectedItem].tileBoost - (float)this.blockRange <= (float)Player.tileTargetY && (this.position.Y + (float)this.height) / 16f + (float)Player.tileRangeY + (float)this.inventory[this.selectedItem].tileBoost - 2f + (float)this.blockRange >= (float)Player.tileTargetY) { this.showItemIcon = true; bool flag = false; if (Main.tile[Player.tileTargetX, Player.tileTargetY].liquid > 0 && Main.tile[Player.tileTargetX, Player.tileTargetY].lava()) { if (Main.tileSolid[this.inventory[this.selectedItem].createTile]) { flag = true; } else { if (Main.tileLavaDeath[this.inventory[this.selectedItem].createTile]) { flag = true; } } } bool flag2 = true; if (this.inventory[this.selectedItem].tileWand > 0) { int tileWand = this.inventory[this.selectedItem].tileWand; flag2 = false; for (int m = 0; m < 58; m++) { if (tileWand == this.inventory[m].type && this.inventory[m].stack > 0) { flag2 = true; break; } } } if (Main.tileRope[this.inventory[this.selectedItem].createTile] && flag2 && Main.tile[Player.tileTargetX, Player.tileTargetY].active() && Main.tileRope[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type]) { int num27 = Player.tileTargetY; int num28 = Player.tileTargetX; int createTile = this.inventory[this.selectedItem].createTile; while (Main.tile[num28, num27].active() && (int)Main.tile[num28, num27].type == createTile && num27 < Main.maxTilesX - 5) { num27++; if (Main.tile[num28, num27] == null) { flag2 = false; num27 = Player.tileTargetY; } } if (!Main.tile[num28, num27].active()) { Player.tileTargetY = num27; } } if (flag2 && ((!Main.tile[Player.tileTargetX, Player.tileTargetY].active() && !flag) || Main.tileCut[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type] || this.inventory[this.selectedItem].createTile == 23 || this.inventory[this.selectedItem].createTile == 2 || this.inventory[this.selectedItem].createTile == 109 || this.inventory[this.selectedItem].createTile == 60 || this.inventory[this.selectedItem].createTile == 70) && this.itemTime == 0 && this.itemAnimation > 0 && this.controlUseItem) { bool flag3 = false; if (this.inventory[this.selectedItem].createTile == 23 || this.inventory[this.selectedItem].createTile == 2 || this.inventory[this.selectedItem].createTile == 109) { if (Main.tile[Player.tileTargetX, Player.tileTargetY].nactive() && Main.tile[Player.tileTargetX, Player.tileTargetY].type == 0) { flag3 = true; } } else { if (this.inventory[this.selectedItem].createTile == 227) { flag3 = true; } else { if (this.inventory[this.selectedItem].createTile == 60 || this.inventory[this.selectedItem].createTile == 70) { if (Main.tile[Player.tileTargetX, Player.tileTargetY].nactive() && Main.tile[Player.tileTargetX, Player.tileTargetY].type == 59) { flag3 = true; } } else { if (this.inventory[this.selectedItem].createTile == 4 || this.inventory[this.selectedItem].createTile == 136) { if (Main.tile[Player.tileTargetX, Player.tileTargetY].wall > 0) { flag3 = true; } else { if (!WorldGen.SolidTileNotDoor(Player.tileTargetX, Player.tileTargetY + 1) && !WorldGen.SolidTileNotDoor(Player.tileTargetX - 1, Player.tileTargetY) && !WorldGen.SolidTileNotDoor(Player.tileTargetX + 1, Player.tileTargetY)) { if (!WorldGen.SolidTileNotDoor(Player.tileTargetX, Player.tileTargetY + 1) && (Main.tile[Player.tileTargetX, Player.tileTargetY + 1].halfBrick() || Main.tile[Player.tileTargetX, Player.tileTargetY + 1].slope() != 0)) { WorldGen.SlopeTile(Player.tileTargetX, Player.tileTargetY + 1, 0); if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 14, (float)Player.tileTargetX, (float)(Player.tileTargetY + 1), 0f, 0); } } else { if (!WorldGen.SolidTileNotDoor(Player.tileTargetX, Player.tileTargetY + 1) && !WorldGen.SolidTileNotDoor(Player.tileTargetX - 1, Player.tileTargetY) && (Main.tile[Player.tileTargetX - 1, Player.tileTargetY].halfBrick() || Main.tile[Player.tileTargetX - 1, Player.tileTargetY].slope() != 0)) { WorldGen.SlopeTile(Player.tileTargetX - 1, Player.tileTargetY, 0); if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 14, (float)(Player.tileTargetX - 1), (float)Player.tileTargetY, 0f, 0); } } else { if (!WorldGen.SolidTileNotDoor(Player.tileTargetX, Player.tileTargetY + 1) && !WorldGen.SolidTileNotDoor(Player.tileTargetX - 1, Player.tileTargetY) && !WorldGen.SolidTileNotDoor(Player.tileTargetX + 1, Player.tileTargetY) && (Main.tile[Player.tileTargetX + 1, Player.tileTargetY].halfBrick() || Main.tile[Player.tileTargetX + 1, Player.tileTargetY].slope() != 0)) { WorldGen.SlopeTile(Player.tileTargetX + 1, Player.tileTargetY, 0); if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 14, (float)(Player.tileTargetX + 1), (float)Player.tileTargetY, 0f, 0); } } } } } int num29 = (int)Main.tile[Player.tileTargetX, Player.tileTargetY + 1].type; if (Main.tile[Player.tileTargetX, Player.tileTargetY].halfBrick()) { num29 = -1; } int num30 = (int)Main.tile[Player.tileTargetX - 1, Player.tileTargetY].type; int num31 = (int)Main.tile[Player.tileTargetX + 1, Player.tileTargetY].type; int num32 = (int)Main.tile[Player.tileTargetX - 1, Player.tileTargetY - 1].type; int num33 = (int)Main.tile[Player.tileTargetX + 1, Player.tileTargetY - 1].type; int num34 = (int)Main.tile[Player.tileTargetX - 1, Player.tileTargetY - 1].type; int num35 = (int)Main.tile[Player.tileTargetX + 1, Player.tileTargetY + 1].type; if (!Main.tile[Player.tileTargetX, Player.tileTargetY + 1].nactive()) { num29 = -1; } if (!Main.tile[Player.tileTargetX - 1, Player.tileTargetY].nactive()) { num30 = -1; } if (!Main.tile[Player.tileTargetX + 1, Player.tileTargetY].nactive()) { num31 = -1; } if (!Main.tile[Player.tileTargetX - 1, Player.tileTargetY - 1].nactive()) { num32 = -1; } if (!Main.tile[Player.tileTargetX + 1, Player.tileTargetY - 1].nactive()) { num33 = -1; } if (!Main.tile[Player.tileTargetX - 1, Player.tileTargetY + 1].nactive()) { num34 = -1; } if (!Main.tile[Player.tileTargetX + 1, Player.tileTargetY + 1].nactive()) { num35 = -1; } if (num29 >= 0 && Main.tileSolid[num29] && !Main.tileNoAttach[num29]) { flag3 = true; } else { if ((num30 >= 0 && Main.tileSolid[num30] && !Main.tileNoAttach[num30]) || (num30 == 5 && num32 == 5 && num34 == 5) || num30 == 124) { flag3 = true; } else { if ((num31 >= 0 && Main.tileSolid[num31] && !Main.tileNoAttach[num31]) || (num31 == 5 && num33 == 5 && num35 == 5) || num31 == 124) { flag3 = true; } } } } } else { if (this.inventory[this.selectedItem].createTile == 78 || this.inventory[this.selectedItem].createTile == 98 || this.inventory[this.selectedItem].createTile == 100 || this.inventory[this.selectedItem].createTile == 173 || this.inventory[this.selectedItem].createTile == 174) { if (Main.tile[Player.tileTargetX, Player.tileTargetY + 1].nactive() && (Main.tileSolid[(int)Main.tile[Player.tileTargetX, Player.tileTargetY + 1].type] || Main.tileTable[(int)Main.tile[Player.tileTargetX, Player.tileTargetY + 1].type])) { flag3 = true; } } else { if (this.inventory[this.selectedItem].createTile == 13 || this.inventory[this.selectedItem].createTile == 29 || this.inventory[this.selectedItem].createTile == 33 || this.inventory[this.selectedItem].createTile == 49 || this.inventory[this.selectedItem].createTile == 50 || this.inventory[this.selectedItem].createTile == 103) { if (Main.tile[Player.tileTargetX, Player.tileTargetY + 1].nactive() && Main.tileTable[(int)Main.tile[Player.tileTargetX, Player.tileTargetY + 1].type]) { flag3 = true; } } else { if (this.inventory[this.selectedItem].createTile == 51) { if (Main.tile[Player.tileTargetX + 1, Player.tileTargetY].active() || Main.tile[Player.tileTargetX + 1, Player.tileTargetY].wall > 0 || Main.tile[Player.tileTargetX - 1, Player.tileTargetY].active() || Main.tile[Player.tileTargetX - 1, Player.tileTargetY].wall > 0 || Main.tile[Player.tileTargetX, Player.tileTargetY + 1].active() || Main.tile[Player.tileTargetX, Player.tileTargetY + 1].wall > 0 || Main.tile[Player.tileTargetX, Player.tileTargetY - 1].active() || Main.tile[Player.tileTargetX, Player.tileTargetY - 1].wall > 0) { flag3 = true; } } else { if ((Main.tile[Player.tileTargetX + 1, Player.tileTargetY].active() && (Main.tileSolid[(int)Main.tile[Player.tileTargetX + 1, Player.tileTargetY].type] || Main.tileRope[(int)Main.tile[Player.tileTargetX + 1, Player.tileTargetY].type])) || (Main.tile[Player.tileTargetX + 1, Player.tileTargetY].wall > 0 || (Main.tile[Player.tileTargetX - 1, Player.tileTargetY].active() && (Main.tileSolid[(int)Main.tile[Player.tileTargetX - 1, Player.tileTargetY].type] || Main.tileRope[(int)Main.tile[Player.tileTargetX - 1, Player.tileTargetY].type]))) || (Main.tile[Player.tileTargetX - 1, Player.tileTargetY].wall > 0 || (Main.tile[Player.tileTargetX, Player.tileTargetY + 1].active() && (Main.tileSolid[(int)Main.tile[Player.tileTargetX, Player.tileTargetY + 1].type] || Main.tile[Player.tileTargetX, Player.tileTargetY + 1].type == 124 || Main.tileRope[(int)Main.tile[Player.tileTargetX, Player.tileTargetY + 1].type]))) || (Main.tile[Player.tileTargetX, Player.tileTargetY + 1].wall > 0 || (Main.tile[Player.tileTargetX, Player.tileTargetY - 1].active() && (Main.tileSolid[(int)Main.tile[Player.tileTargetX, Player.tileTargetY - 1].type] || Main.tile[Player.tileTargetX, Player.tileTargetY - 1].type == 124 || Main.tileRope[(int)Main.tile[Player.tileTargetX, Player.tileTargetY - 1].type]))) || Main.tile[Player.tileTargetX, Player.tileTargetY - 1].wall > 0) { flag3 = true; } } } } } } } } if (Main.tileAlch[this.inventory[this.selectedItem].createTile]) { flag3 = true; } if (Main.tile[Player.tileTargetX, Player.tileTargetY].active() && Main.tileCut[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type]) { if ((int)Main.tile[Player.tileTargetX, Player.tileTargetY].type != this.inventory[this.selectedItem].createTile) { if (Main.tile[Player.tileTargetX, Player.tileTargetY + 1].type != 78) { WorldGen.KillTile(Player.tileTargetX, Player.tileTargetY, false, false, false); if (!Main.tile[Player.tileTargetX, Player.tileTargetY].active() && Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 4, (float)Player.tileTargetX, (float)Player.tileTargetY, 0f, 0); } } else { flag3 = false; } } else { flag3 = false; } } if (flag3) { int num36 = this.inventory[this.selectedItem].placeStyle; if (this.inventory[this.selectedItem].createTile == 212 && this.direction > 0) { num36 = 1; } if (this.inventory[this.selectedItem].createTile == 141) { num36 = Main.rand.Next(2); } if (this.inventory[this.selectedItem].createTile == 128) { if (this.direction < 0) { num36 = -1; } else { num36 = 1; } } if (this.inventory[this.selectedItem].createTile == 241 && this.inventory[this.selectedItem].placeStyle == 0) { num36 = Main.rand.Next(0, 9); } if (WorldGen.PlaceTile(Player.tileTargetX, Player.tileTargetY, this.inventory[this.selectedItem].createTile, false, false, this.whoAmi, num36)) { this.itemTime = this.inventory[this.selectedItem].useTime; if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 1, (float)Player.tileTargetX, (float)Player.tileTargetY, (float)this.inventory[this.selectedItem].createTile, num36); } if (this.inventory[this.selectedItem].createTile == 15) { if (this.direction == 1) { Tile expr_2584 = Main.tile[Player.tileTargetX, Player.tileTargetY]; expr_2584.frameX += 18; Tile expr_25A9 = Main.tile[Player.tileTargetX, Player.tileTargetY - 1]; expr_25A9.frameX += 18; } if (Main.netMode == 1) { NetMessage.SendTileSquare(-1, Player.tileTargetX - 1, Player.tileTargetY - 1, 3); } } else { if (this.inventory[this.selectedItem].createTile == 137) { if (this.direction == 1) { Tile expr_2613 = Main.tile[Player.tileTargetX, Player.tileTargetY]; expr_2613.frameX += 18; } if (Main.netMode == 1) { NetMessage.SendTileSquare(-1, Player.tileTargetX, Player.tileTargetY, 1); } } else { if ((this.inventory[this.selectedItem].createTile == 79 || this.inventory[this.selectedItem].createTile == 90) && Main.netMode == 1) { NetMessage.SendTileSquare(-1, Player.tileTargetX, Player.tileTargetY, 5); } } } if (Main.tileSolid[this.inventory[this.selectedItem].createTile]) { int num37 = Player.tileTargetX; int num38 = Player.tileTargetY + 1; if (Main.tile[num37, num38] != null && (Main.tile[num37, num38].slope() != 0 || Main.tile[num37, num38].halfBrick())) { WorldGen.SlopeTile(num37, num38, 0); if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 14, (float)num37, (float)num38, 0f, 0); } } } } } } } } if (this.inventory[this.selectedItem].createWall >= 0 && this.position.X / 16f - (float)Player.tileRangeX - (float)this.inventory[this.selectedItem].tileBoost <= (float)Player.tileTargetX && (this.position.X + (float)this.width) / 16f + (float)Player.tileRangeX + (float)this.inventory[this.selectedItem].tileBoost - 1f >= (float)Player.tileTargetX && this.position.Y / 16f - (float)Player.tileRangeY - (float)this.inventory[this.selectedItem].tileBoost <= (float)Player.tileTargetY && (this.position.Y + (float)this.height) / 16f + (float)Player.tileRangeY + (float)this.inventory[this.selectedItem].tileBoost - 2f >= (float)Player.tileTargetY) { this.showItemIcon = true; if (this.itemTime == 0 && this.itemAnimation > 0 && this.controlUseItem && (Main.tile[Player.tileTargetX + 1, Player.tileTargetY].active() || Main.tile[Player.tileTargetX + 1, Player.tileTargetY].wall > 0 || Main.tile[Player.tileTargetX - 1, Player.tileTargetY].active() || Main.tile[Player.tileTargetX - 1, Player.tileTargetY].wall > 0 || Main.tile[Player.tileTargetX, Player.tileTargetY + 1].active() || Main.tile[Player.tileTargetX, Player.tileTargetY + 1].wall > 0 || Main.tile[Player.tileTargetX, Player.tileTargetY - 1].active() || Main.tile[Player.tileTargetX, Player.tileTargetY - 1].wall > 0) && (int)Main.tile[Player.tileTargetX, Player.tileTargetY].wall != this.inventory[this.selectedItem].createWall) { WorldGen.PlaceWall(Player.tileTargetX, Player.tileTargetY, this.inventory[this.selectedItem].createWall, false); if ((int)Main.tile[Player.tileTargetX, Player.tileTargetY].wall == this.inventory[this.selectedItem].createWall) { this.itemTime = this.inventory[this.selectedItem].useTime; if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 3, (float)Player.tileTargetX, (float)Player.tileTargetY, (float)this.inventory[this.selectedItem].createWall, 0); } if (this.inventory[this.selectedItem].stack > 1) { int createWall = this.inventory[this.selectedItem].createWall; for (int n = 0; n < 4; n++) { int num39 = Player.tileTargetX; int num40 = Player.tileTargetY; if (n == 0) { num39--; } if (n == 1) { num39++; } if (n == 2) { num40--; } if (n == 3) { num40++; } if (Main.tile[num39, num40].wall == 0) { int num41 = 0; for (int num42 = 0; num42 < 4; num42++) { int num43 = num39; int num44 = num40; if (num42 == 0) { num43--; } if (num42 == 1) { num43++; } if (num42 == 2) { num44--; } if (num42 == 3) { num44++; } if ((int)Main.tile[num43, num44].wall == createWall) { num41++; } } if (num41 == 4) { WorldGen.PlaceWall(num39, num40, createWall, false); if ((int)Main.tile[num39, num40].wall == createWall) { this.inventory[this.selectedItem].stack--; if (this.inventory[this.selectedItem].stack == 0) { this.inventory[this.selectedItem].SetDefaults(0, false); } if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 3, (float)num39, (float)num40, (float)createWall, 0); } } } } } } } } } } public void ChangeDir(int dir) { if (!this.pulley || this.pulleyDir != 2) { this.direction = dir; return; } if (this.pulleyDir == 2 && dir == this.direction) { return; } int num = (int)(this.position.X + (float)(this.width / 2)) / 16; int num2 = num * 16 + 8 - this.width / 2; if (!Collision.SolidCollision(new Vector2((float)num2, this.position.Y), this.width, this.height)) { if (this.whoAmi == Main.myPlayer) { Main.cameraX = Main.cameraX + this.position.X - (float)num2; } this.pulleyDir = 1; this.position.X = (float)num2; this.direction = dir; } } 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 ItemCheck(int i) { if (this.frozen) { return; } bool flag = false; int num = this.inventory[this.selectedItem].damage; if (num > 0) { if (this.inventory[this.selectedItem].melee) { num = (int)((float)num * this.meleeDamage); } else { if (this.inventory[this.selectedItem].ranged) { num = (int)((float)num * this.rangedDamage); if (this.inventory[this.selectedItem].useAmmo == 1) { num = (int)((float)num * this.arrowDamage); } if (this.inventory[this.selectedItem].useAmmo == 14) { num = (int)((float)num * this.bulletDamage); } if (this.inventory[this.selectedItem].useAmmo == 771 || this.inventory[this.selectedItem].useAmmo == 246) { num = (int)((float)num * this.rocketDamage); } } else { if (this.inventory[this.selectedItem].magic) { num = (int)((float)num * this.magicDamage); } } } } if (this.inventory[this.selectedItem].autoReuse && !this.noItems) { this.releaseUseItem = true; if (this.itemAnimation == 1 && this.inventory[this.selectedItem].stack > 0) { if (this.inventory[this.selectedItem].shoot > 0 && this.whoAmi != Main.myPlayer && this.controlUseItem) { this.itemAnimation = 2; } else { this.itemAnimation = 0; } } } if (this.itemAnimation == 0 && this.reuseDelay > 0) { this.itemAnimation = this.reuseDelay; this.itemTime = this.reuseDelay; this.reuseDelay = 0; } if (this.controlUseItem && this.releaseUseItem && (this.inventory[this.selectedItem].headSlot > 0 || this.inventory[this.selectedItem].bodySlot > 0 || this.inventory[this.selectedItem].legSlot > 0)) { if (this.inventory[this.selectedItem].useStyle == 0) { this.releaseUseItem = false; } if (this.position.X / 16f - (float)Player.tileRangeX - (float)this.inventory[this.selectedItem].tileBoost <= (float)Player.tileTargetX && (this.position.X + (float)this.width) / 16f + (float)Player.tileRangeX + (float)this.inventory[this.selectedItem].tileBoost - 1f >= (float)Player.tileTargetX && this.position.Y / 16f - (float)Player.tileRangeY - (float)this.inventory[this.selectedItem].tileBoost <= (float)Player.tileTargetY && (this.position.Y + (float)this.height) / 16f + (float)Player.tileRangeY + (float)this.inventory[this.selectedItem].tileBoost - 2f >= (float)Player.tileTargetY) { int num2 = Player.tileTargetX; int num3 = Player.tileTargetY; if (Main.tile[num2, num3].active() && Main.tile[num2, num3].type == 128) { int num4 = (int)Main.tile[num2, num3].frameY; int j = 0; if (this.inventory[this.selectedItem].bodySlot >= 0) { j = 1; } if (this.inventory[this.selectedItem].legSlot >= 0) { j = 2; } num4 /= 18; while (j > num4) { num3++; num4 = (int)Main.tile[num2, num3].frameY; num4 /= 18; } while (j < num4) { num3--; num4 = (int)Main.tile[num2, num3].frameY; num4 /= 18; } int k; for (k = (int)Main.tile[num2, num3].frameX; k >= 100; k -= 100) { } if (k >= 36) { k -= 36; } num2 -= k / 18; int l = (int)Main.tile[num2, num3].frameX; WorldGen.KillTile(num2, num3, true, false, false); if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 0, (float)num2, (float)num3, 1f, 0); } while (l >= 100) { l -= 100; } if (num4 == 0 && this.inventory[this.selectedItem].headSlot >= 0) { Main.tile[num2, num3].frameX = (short)(l + this.inventory[this.selectedItem].headSlot * 100); if (Main.netMode == 1) { NetMessage.SendTileSquare(-1, num2, num3, 1); } this.inventory[this.selectedItem].SetDefaults(0, false); Main.mouseItem.SetDefaults(0, false); this.releaseUseItem = false; this.mouseInterface = true; } else { if (num4 == 1 && this.inventory[this.selectedItem].bodySlot >= 0) { Main.tile[num2, num3].frameX = (short)(l + this.inventory[this.selectedItem].bodySlot * 100); if (Main.netMode == 1) { NetMessage.SendTileSquare(-1, num2, num3, 1); } this.inventory[this.selectedItem].SetDefaults(0, false); Main.mouseItem.SetDefaults(0, false); this.releaseUseItem = false; this.mouseInterface = true; } else { if (num4 == 2 && this.inventory[this.selectedItem].legSlot >= 0) { Main.tile[num2, num3].frameX = (short)(l + this.inventory[this.selectedItem].legSlot * 100); if (Main.netMode == 1) { NetMessage.SendTileSquare(-1, num2, num3, 1); } this.inventory[this.selectedItem].SetDefaults(0, false); Main.mouseItem.SetDefaults(0, false); this.releaseUseItem = false; this.mouseInterface = true; } } } } } } if (this.controlUseItem && this.itemAnimation == 0 && this.releaseUseItem && this.inventory[this.selectedItem].useStyle > 0) { bool flag2 = true; if (this.inventory[this.selectedItem].shoot == 0) { this.itemRotation = 0f; } if (this.wet && (this.inventory[this.selectedItem].shoot == 85 || this.inventory[this.selectedItem].shoot == 15 || this.inventory[this.selectedItem].shoot == 34)) { flag2 = false; } if (this.whoAmi == Main.myPlayer && this.inventory[this.selectedItem].type == 603 && !Main.cEd) { flag2 = false; } if (this.inventory[this.selectedItem].type == 1071 || this.inventory[this.selectedItem].type == 1072) { bool flag3 = false; for (int m = 0; m < 58; m++) { if (this.inventory[m].paint > 0) { flag3 = true; break; } } if (!flag3) { flag2 = false; } } if (this.noItems) { flag2 = false; } if (this.inventory[this.selectedItem].tileWand > 0) { int tileWand = this.inventory[this.selectedItem].tileWand; flag2 = false; for (int n = 0; n < 58; n++) { if (tileWand == this.inventory[n].type && this.inventory[n].stack > 0) { flag2 = true; break; } } } if (this.inventory[this.selectedItem].shoot == 6 || this.inventory[this.selectedItem].shoot == 19 || this.inventory[this.selectedItem].shoot == 33 || this.inventory[this.selectedItem].shoot == 52 || this.inventory[this.selectedItem].shoot == 113 || this.inventory[this.selectedItem].shoot == 182) { for (int num5 = 0; num5 < 1000; num5++) { if (Main.projectile[num5].active && Main.projectile[num5].owner == Main.myPlayer && Main.projectile[num5].type == this.inventory[this.selectedItem].shoot) { flag2 = false; } } } if (this.inventory[this.selectedItem].shoot == 106) { int num6 = 0; for (int num7 = 0; num7 < 1000; num7++) { if (Main.projectile[num7].active && Main.projectile[num7].owner == Main.myPlayer && Main.projectile[num7].type == this.inventory[this.selectedItem].shoot) { num6++; } } if (num6 >= this.inventory[this.selectedItem].stack) { flag2 = false; } } if (this.inventory[this.selectedItem].shoot == 272) { int num8 = 0; for (int num9 = 0; num9 < 1000; num9++) { if (Main.projectile[num9].active && Main.projectile[num9].owner == Main.myPlayer && Main.projectile[num9].type == this.inventory[this.selectedItem].shoot) { num8++; } } if (num8 >= this.inventory[this.selectedItem].stack) { flag2 = false; } } if (this.inventory[this.selectedItem].shoot == 13 || this.inventory[this.selectedItem].shoot == 32 || (this.inventory[this.selectedItem].shoot >= 230 && this.inventory[this.selectedItem].shoot <= 235)) { for (int num10 = 0; num10 < 1000; num10++) { if (Main.projectile[num10].active && Main.projectile[num10].owner == Main.myPlayer && Main.projectile[num10].type == this.inventory[this.selectedItem].shoot && Main.projectile[num10].ai[0] != 2f) { flag2 = false; } } } if (this.inventory[this.selectedItem].potion && flag2) { if (this.potionDelay <= 0) { this.potionDelay = this.potionDelayTime; this.AddBuff(21, this.potionDelay, true); } else { flag2 = false; } } if (this.inventory[this.selectedItem].mana > 0 && this.silence) { flag2 = false; } if (this.inventory[this.selectedItem].mana > 0 && flag2) { if (this.inventory[this.selectedItem].type != 127 || !this.spaceGun) { if (this.statMana >= (int)((float)this.inventory[this.selectedItem].mana * this.manaCost)) { this.statMana -= (int)((float)this.inventory[this.selectedItem].mana * this.manaCost); } else { if (this.manaFlower) { this.QuickMana(); if (this.statMana >= (int)((float)this.inventory[this.selectedItem].mana * this.manaCost)) { this.statMana -= (int)((float)this.inventory[this.selectedItem].mana * this.manaCost); } else { flag2 = false; } } else { flag2 = false; } } } if (this.whoAmi == Main.myPlayer && this.inventory[this.selectedItem].buffType != 0 && flag2) { this.AddBuff(this.inventory[this.selectedItem].buffType, this.inventory[this.selectedItem].buffTime, true); } } if (this.whoAmi == Main.myPlayer && this.inventory[this.selectedItem].type == 603 && Main.cEd) { this.AddBuff(this.inventory[this.selectedItem].buffType, 3600, true); } if (this.whoAmi == Main.myPlayer && this.inventory[this.selectedItem].type == 669) { this.AddBuff(this.inventory[this.selectedItem].buffType, 3600, true); } if (this.whoAmi == Main.myPlayer && this.inventory[this.selectedItem].type == 115) { this.AddBuff(this.inventory[this.selectedItem].buffType, 3600, true); } if (this.whoAmi == Main.myPlayer && this.inventory[this.selectedItem].type == 425) { this.AddBuff(this.inventory[this.selectedItem].buffType, 3600, true); } if (this.whoAmi == Main.myPlayer && this.inventory[this.selectedItem].type == 753) { this.AddBuff(this.inventory[this.selectedItem].buffType, 3600, true); } if (this.whoAmi == Main.myPlayer && this.inventory[this.selectedItem].type == 994) { this.AddBuff(this.inventory[this.selectedItem].buffType, 3600, true); } if (this.whoAmi == Main.myPlayer && this.inventory[this.selectedItem].type == 1169) { this.AddBuff(this.inventory[this.selectedItem].buffType, 3600, true); } if (this.whoAmi == Main.myPlayer && this.inventory[this.selectedItem].type == 1170) { this.AddBuff(this.inventory[this.selectedItem].buffType, 3600, true); } if (this.whoAmi == Main.myPlayer && this.inventory[this.selectedItem].type == 1171) { this.AddBuff(this.inventory[this.selectedItem].buffType, 3600, true); } if (this.whoAmi == Main.myPlayer && this.inventory[this.selectedItem].type == 1172) { this.AddBuff(this.inventory[this.selectedItem].buffType, 3600, true); } if (this.whoAmi == Main.myPlayer && this.inventory[this.selectedItem].type == 1180) { this.AddBuff(this.inventory[this.selectedItem].buffType, 3600, true); } if (this.whoAmi == Main.myPlayer && this.inventory[this.selectedItem].type == 1181) { this.AddBuff(this.inventory[this.selectedItem].buffType, 3600, true); } if (this.whoAmi == Main.myPlayer && this.inventory[this.selectedItem].type == 1182) { this.AddBuff(this.inventory[this.selectedItem].buffType, 3600, true); } if (this.whoAmi == Main.myPlayer && this.inventory[this.selectedItem].type == 1183) { this.AddBuff(this.inventory[this.selectedItem].buffType, 3600, true); } if (this.whoAmi == Main.myPlayer && this.inventory[this.selectedItem].type == 1242) { this.AddBuff(this.inventory[this.selectedItem].buffType, 3600, true); } if (this.whoAmi == Main.myPlayer && this.inventory[this.selectedItem].type == 1157) { this.AddBuff(this.inventory[this.selectedItem].buffType, 3600, true); } if (this.whoAmi == Main.myPlayer && this.inventory[this.selectedItem].type == 1309) { this.AddBuff(this.inventory[this.selectedItem].buffType, 3600, true); } if (this.whoAmi == Main.myPlayer && this.inventory[this.selectedItem].type == 1311) { this.AddBuff(this.inventory[this.selectedItem].buffType, 3600, true); } if (this.whoAmi == Main.myPlayer && this.inventory[this.selectedItem].type == 1312) { this.AddBuff(this.inventory[this.selectedItem].buffType, 3600, true); } if (this.inventory[this.selectedItem].type == 43 && Main.dayTime) { flag2 = false; } if (this.inventory[this.selectedItem].type == 544 && Main.dayTime) { flag2 = false; } if (this.inventory[this.selectedItem].type == 556 && Main.dayTime) { flag2 = false; } if (this.inventory[this.selectedItem].type == 557 && Main.dayTime) { flag2 = false; } if (this.inventory[this.selectedItem].type == 70 && !this.zoneEvil) { flag2 = false; } if (this.inventory[this.selectedItem].type == 1133 && !this.zoneJungle) { flag2 = false; } if (this.inventory[this.selectedItem].shoot == 17 && flag2 && i == Main.myPlayer) { int num11 = (int)((float)Main.mouseX + Main.screenPosition.X) / 16; int num12 = (int)((float)Main.mouseY + Main.screenPosition.Y) / 16; if (Main.tile[num11, num12].active() && (Main.tile[num11, num12].type == 0 || Main.tile[num11, num12].type == 2 || Main.tile[num11, num12].type == 23)) { WorldGen.KillTile(num11, num12, false, false, true); if (!Main.tile[num11, num12].active()) { if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 4, (float)num11, (float)num12, 0f, 0); } } else { flag2 = false; } } else { flag2 = false; } } if (flag2 && this.inventory[this.selectedItem].useAmmo > 0) { flag2 = false; for (int num13 = 0; num13 < 58; num13++) { if (this.inventory[num13].ammo == this.inventory[this.selectedItem].useAmmo && this.inventory[num13].stack > 0) { flag2 = true; break; } } } if (flag2) { if (this.inventory[this.selectedItem].pick > 0 || this.inventory[this.selectedItem].axe > 0 || this.inventory[this.selectedItem].hammer > 0) { this.toolTime = 1; } if (this.grappling[0] > -1) { this.pulley = false; this.pulleyDir = 1; if (this.controlRight) { this.direction = 1; } else { if (this.controlLeft) { this.direction = -1; } } } this.channel = this.inventory[this.selectedItem].channel; this.attackCD = 0; if (this.inventory[this.selectedItem].melee) { this.itemAnimation = (int)((float)this.inventory[this.selectedItem].useAnimation * this.meleeSpeed); this.itemAnimationMax = (int)((float)this.inventory[this.selectedItem].useAnimation * this.meleeSpeed); } else { this.itemAnimation = this.inventory[this.selectedItem].useAnimation; this.itemAnimationMax = this.inventory[this.selectedItem].useAnimation; this.reuseDelay = this.inventory[this.selectedItem].reuseDelay; } if (this.inventory[this.selectedItem].useSound > 0) { Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, this.inventory[this.selectedItem].useSound); } } if (flag2 && (this.inventory[this.selectedItem].shoot == 18 || this.inventory[this.selectedItem].shoot == 72 || this.inventory[this.selectedItem].shoot == 86 || this.inventory[this.selectedItem].shoot == 86 || Main.projPet[this.inventory[this.selectedItem].shoot])) { if ((this.inventory[this.selectedItem].shoot >= 191 && this.inventory[this.selectedItem].shoot <= 194) || this.inventory[this.selectedItem].shoot == 266) { int num14 = 0; int num15 = -1; int num16 = -1; for (int num17 = 0; num17 < 1000; num17++) { if (Main.projectile[num17].active && Main.projectile[num17].owner == i && Main.projectile[num17].minion) { num14++; if (num15 == -1 || Main.projectile[num17].timeLeft < num15) { num16 = num17; num15 = Main.projectile[num17].timeLeft; } } } if (num14 >= this.maxMinions) { Main.projectile[num16].Kill(); } } else { for (int num18 = 0; num18 < 1000; num18++) { if (Main.projectile[num18].active && Main.projectile[num18].owner == i && Main.projectile[num18].type == this.inventory[this.selectedItem].shoot) { Main.projectile[num18].Kill(); } if (this.inventory[this.selectedItem].shoot == 72) { if (Main.projectile[num18].active && Main.projectile[num18].owner == i && Main.projectile[num18].type == 86) { Main.projectile[num18].Kill(); } if (Main.projectile[num18].active && Main.projectile[num18].owner == i && Main.projectile[num18].type == 87) { Main.projectile[num18].Kill(); } } } } } } if (!this.controlUseItem) { bool arg_176A_0 = this.channel; this.channel = false; } if (this.itemAnimation > 0) { if (this.inventory[this.selectedItem].melee) { this.itemAnimationMax = (int)((float)this.inventory[this.selectedItem].useAnimation * this.meleeSpeed); } else { this.itemAnimationMax = this.inventory[this.selectedItem].useAnimation; } if (this.inventory[this.selectedItem].mana > 0 && !flag && (this.inventory[this.selectedItem].type != 127 || !this.spaceGun)) { this.manaRegenDelay = (int)this.maxRegenDelay; } if (Main.dedServ) { this.itemHeight = this.inventory[this.selectedItem].height; this.itemWidth = this.inventory[this.selectedItem].width; } else { this.itemHeight = Main.itemTexture[this.inventory[this.selectedItem].type].Height; this.itemWidth = Main.itemTexture[this.inventory[this.selectedItem].type].Width; } this.itemAnimation--; if (!Main.dedServ) { if (this.inventory[this.selectedItem].useStyle == 1) { if ((double)this.itemAnimation < (double)this.itemAnimationMax * 0.333) { float num19 = 10f; if (Main.itemTexture[this.inventory[this.selectedItem].type].Width > 32) { num19 = 14f; } if (Main.itemTexture[this.inventory[this.selectedItem].type].Width >= 52) { num19 = 24f; } if (Main.itemTexture[this.inventory[this.selectedItem].type].Width >= 64) { num19 = 28f; } if (Main.itemTexture[this.inventory[this.selectedItem].type].Width >= 92) { num19 = 38f; } this.itemLocation.X = this.position.X + (float)this.width * 0.5f + ((float)Main.itemTexture[this.inventory[this.selectedItem].type].Width * 0.5f - num19) * (float)this.direction; this.itemLocation.Y = this.position.Y + 24f; } else { if ((double)this.itemAnimation < (double)this.itemAnimationMax * 0.666) { float num20 = 10f; if (Main.itemTexture[this.inventory[this.selectedItem].type].Width > 32) { num20 = 18f; } if (Main.itemTexture[this.inventory[this.selectedItem].type].Width >= 52) { num20 = 24f; } if (Main.itemTexture[this.inventory[this.selectedItem].type].Width >= 64) { num20 = 28f; } if (Main.itemTexture[this.inventory[this.selectedItem].type].Width >= 92) { num20 = 38f; } this.itemLocation.X = this.position.X + (float)this.width * 0.5f + ((float)Main.itemTexture[this.inventory[this.selectedItem].type].Width * 0.5f - num20) * (float)this.direction; num20 = 10f; if (Main.itemTexture[this.inventory[this.selectedItem].type].Height > 32) { num20 = 8f; } if (Main.itemTexture[this.inventory[this.selectedItem].type].Height >= 32) { num20 = 12f; } if (Main.itemTexture[this.inventory[this.selectedItem].type].Height > 64) { num20 = 14f; } this.itemLocation.Y = this.position.Y + num20; } else { float num21 = 6f; if (Main.itemTexture[this.inventory[this.selectedItem].type].Width > 32) { num21 = 14f; } if (Main.itemTexture[this.inventory[this.selectedItem].type].Width >= 52) { num21 = 24f; } if (Main.itemTexture[this.inventory[this.selectedItem].type].Width >= 64) { num21 = 28f; } if (Main.itemTexture[this.inventory[this.selectedItem].type].Width >= 92) { num21 = 38f; } this.itemLocation.X = this.position.X + (float)this.width * 0.5f - ((float)Main.itemTexture[this.inventory[this.selectedItem].type].Width * 0.5f - num21) * (float)this.direction; num21 = 10f; if (Main.itemTexture[this.inventory[this.selectedItem].type].Height > 32) { num21 = 10f; } if (Main.itemTexture[this.inventory[this.selectedItem].type].Height > 52) { num21 = 12f; } if (Main.itemTexture[this.inventory[this.selectedItem].type].Height > 64) { num21 = 14f; } this.itemLocation.Y = this.position.Y + num21; } } this.itemRotation = ((float)this.itemAnimation / (float)this.itemAnimationMax - 0.5f) * (float)(-(float)this.direction) * 3.5f - (float)this.direction * 0.3f; if (this.gravDir == -1f) { this.itemRotation = -this.itemRotation; this.itemLocation.Y = this.position.Y + (float)this.height + (this.position.Y - this.itemLocation.Y); } } else { if (this.inventory[this.selectedItem].useStyle == 2) { this.itemRotation = (float)this.itemAnimation / (float)this.itemAnimationMax * (float)this.direction * 2f + -1.4f * (float)this.direction; if ((double)this.itemAnimation < (double)this.itemAnimationMax * 0.5) { this.itemLocation.X = this.position.X + (float)this.width * 0.5f + ((float)Main.itemTexture[this.inventory[this.selectedItem].type].Width * 0.5f - 9f - this.itemRotation * 12f * (float)this.direction) * (float)this.direction; this.itemLocation.Y = this.position.Y + 38f + this.itemRotation * (float)this.direction * 4f; } else { this.itemLocation.X = this.position.X + (float)this.width * 0.5f + ((float)Main.itemTexture[this.inventory[this.selectedItem].type].Width * 0.5f - 9f - this.itemRotation * 16f * (float)this.direction) * (float)this.direction; this.itemLocation.Y = this.position.Y + 38f + this.itemRotation * (float)this.direction; } if (this.gravDir == -1f) { this.itemRotation = -this.itemRotation; this.itemLocation.Y = this.position.Y + (float)this.height + (this.position.Y - this.itemLocation.Y); } } else { if (this.inventory[this.selectedItem].useStyle == 3) { if ((double)this.itemAnimation > (double)this.itemAnimationMax * 0.666) { this.itemLocation.X = -1000f; this.itemLocation.Y = -1000f; this.itemRotation = -1.3f * (float)this.direction; } else { this.itemLocation.X = this.position.X + (float)this.width * 0.5f + ((float)Main.itemTexture[this.inventory[this.selectedItem].type].Width * 0.5f - 4f) * (float)this.direction; this.itemLocation.Y = this.position.Y + 24f; float num22 = (float)this.itemAnimation / (float)this.itemAnimationMax * (float)Main.itemTexture[this.inventory[this.selectedItem].type].Width * (float)this.direction * this.inventory[this.selectedItem].scale * 1.2f - (float)(10 * this.direction); if (num22 > -4f && this.direction == -1) { num22 = -8f; } if (num22 < 4f && this.direction == 1) { num22 = 8f; } this.itemLocation.X = this.itemLocation.X - num22; this.itemRotation = 0.8f * (float)this.direction; } if (this.gravDir == -1f) { this.itemRotation = -this.itemRotation; this.itemLocation.Y = this.position.Y + (float)this.height + (this.position.Y - this.itemLocation.Y); } } else { if (this.inventory[this.selectedItem].useStyle == 4) { this.itemRotation = 0f; this.itemLocation.X = this.position.X + (float)this.width * 0.5f + ((float)Main.itemTexture[this.inventory[this.selectedItem].type].Width * 0.5f - 9f - this.itemRotation * 14f * (float)this.direction - 4f) * (float)this.direction; this.itemLocation.Y = this.position.Y + (float)Main.itemTexture[this.inventory[this.selectedItem].type].Height * 0.5f + 4f; if (this.gravDir == -1f) { this.itemRotation = -this.itemRotation; this.itemLocation.Y = this.position.Y + (float)this.height + (this.position.Y - this.itemLocation.Y); } } else { if (this.inventory[this.selectedItem].useStyle == 5) { this.itemLocation.X = this.position.X + (float)this.width * 0.5f - (float)Main.itemTexture[this.inventory[this.selectedItem].type].Width * 0.5f - (float)(this.direction * 2); this.itemLocation.Y = this.position.Y + (float)this.height * 0.5f - (float)Main.itemTexture[this.inventory[this.selectedItem].type].Height * 0.5f; } } } } } } } else { if (this.inventory[this.selectedItem].holdStyle == 1 && !this.pulley) { if (Main.dedServ) { this.itemLocation.X = this.position.X + (float)this.width * 0.5f + 20f * (float)this.direction; } else { if (this.inventory[this.selectedItem].type == 930) { this.itemLocation.X = this.position.X + (float)(this.width / 2) * 0.5f - 12f - (float)(2 * this.direction); float num23 = this.position.X + (float)(this.width / 2) + (float)(38 * this.direction); if (this.direction == 1) { num23 -= 10f; } float num24 = this.position.Y + (float)(this.height / 2) - 4f * this.gravDir; if (this.gravDir == -1f) { num24 -= 8f; } int num25 = 0; for (int num26 = 54; num26 < 58; num26++) { if (this.inventory[num26].stack > 0 && this.inventory[num26].ammo == 931) { num25 = this.inventory[num26].type; break; } } if (num25 == 0) { for (int num27 = 0; num27 < 54; num27++) { if (this.inventory[num27].stack > 0 && this.inventory[num27].ammo == 931) { num25 = this.inventory[num27].type; break; } } } if (num25 == 931) { num25 = 127; } else { if (num25 == 1614) { num25 = 187; } } if (num25 > 0) { int num28 = Dust.NewDust(new Vector2(num23, num24 + this.gfxOffY), 6, 6, num25, 0f, 0f, 100, default(Color), 1.6f); Main.dust[num28].noGravity = true; Dust expr_25CD_cp_0 = Main.dust[num28]; expr_25CD_cp_0.velocity.Y = expr_25CD_cp_0.velocity.Y - 4f * this.gravDir; } } else { if (this.inventory[this.selectedItem].type == 968) { this.itemLocation.X = this.position.X + (float)this.width * 0.5f + (float)(8 * this.direction); if (this.whoAmi == Main.myPlayer) { int num29 = (int)(this.itemLocation.X + (float)Main.itemTexture[this.inventory[this.selectedItem].type].Width * 0.8f * (float)this.direction) / 16; int num30 = (int)(this.itemLocation.Y + (float)(Main.itemTexture[this.inventory[this.selectedItem].type].Height / 2)) / 16; if (Main.tile[num29, num30] == null) { Main.tile[num29, num30] = new Tile(); } if (Main.tile[num29, num30].active() && Main.tile[num29, num30].type == 215) { this.miscTimer++; if (Main.rand.Next(5) == 0) { this.miscTimer++; } if (this.miscTimer > 900) { this.miscTimer = 0; this.inventory[this.selectedItem].SetDefaults(969, false); if (this.selectedItem == 58) { Main.mouseItem.SetDefaults(969, false); } for (int num31 = 0; num31 < 58; num31++) { if (this.inventory[num31].type == this.inventory[this.selectedItem].type && num31 != this.selectedItem && this.inventory[num31].stack < this.inventory[num31].maxStack) { Main.PlaySound(7, -1, -1, 1); this.inventory[num31].stack++; this.inventory[this.selectedItem].SetDefaults(0, false); if (this.selectedItem == 58) { Main.mouseItem.SetDefaults(0, false); } } } } } else { this.miscTimer = 0; } } } else { if (this.inventory[this.selectedItem].type == 856) { this.itemLocation.X = this.position.X + (float)this.width * 0.5f + (float)(4 * this.direction); } else { this.itemLocation.X = this.position.X + (float)this.width * 0.5f + ((float)Main.itemTexture[this.inventory[this.selectedItem].type].Width * 0.5f + 2f) * (float)this.direction; if (this.inventory[this.selectedItem].type == 282 || this.inventory[this.selectedItem].type == 286) { this.itemLocation.X = this.itemLocation.X - (float)(this.direction * 2); this.itemLocation.Y = this.itemLocation.Y + 4f; } } } } } this.itemLocation.Y = this.position.Y + 24f; if (this.inventory[this.selectedItem].type == 856) { this.itemLocation.Y = this.position.Y + 34f; } if (this.inventory[this.selectedItem].type == 930) { this.itemLocation.Y = this.position.Y + 9f; } this.itemRotation = 0f; if (this.gravDir == -1f) { this.itemRotation = -this.itemRotation; this.itemLocation.Y = this.position.Y + (float)this.height + (this.position.Y - this.itemLocation.Y); if (this.inventory[this.selectedItem].type == 930) { this.itemLocation.Y = this.itemLocation.Y - 24f; } } } else { if (this.inventory[this.selectedItem].holdStyle == 2 && !this.pulley) { if (this.inventory[this.selectedItem].type == 946) { this.itemRotation = 0f; this.itemLocation.X = this.position.X + (float)this.width * 0.5f - (float)(16 * this.direction); this.itemLocation.Y = this.position.Y + 22f; this.fallStart = (int)(this.position.Y / 16f); if (this.gravDir == -1f) { this.itemRotation = -this.itemRotation; this.itemLocation.Y = this.position.Y + (float)this.height + (this.position.Y - this.itemLocation.Y); if (this.velocity.Y < -2f) { this.velocity.Y = -2f; } } else { if (this.velocity.Y > 2f) { this.velocity.Y = 2f; } } } else { this.itemLocation.X = this.position.X + (float)this.width * 0.5f + (float)(6 * this.direction); this.itemLocation.Y = this.position.Y + 16f; this.itemRotation = 0.79f * (float)(-(float)this.direction); if (this.gravDir == -1f) { this.itemRotation = -this.itemRotation; this.itemLocation.Y = this.position.Y + (float)this.height + (this.position.Y - this.itemLocation.Y); } } } else { if (this.inventory[this.selectedItem].holdStyle == 3 && !this.pulley && !Main.dedServ) { this.itemLocation.X = this.position.X + (float)this.width * 0.5f - (float)Main.itemTexture[this.inventory[this.selectedItem].type].Width * 0.5f - (float)(this.direction * 2); this.itemLocation.Y = this.position.Y + (float)this.height * 0.5f - (float)Main.itemTexture[this.inventory[this.selectedItem].type].Height * 0.5f; this.itemRotation = 0f; } } } } if ((((this.inventory[this.selectedItem].type == 974 || this.inventory[this.selectedItem].type == 8 || this.inventory[this.selectedItem].type == 1245 || (this.inventory[this.selectedItem].type >= 427 && this.inventory[this.selectedItem].type <= 433)) && !this.wet) || this.inventory[this.selectedItem].type == 523 || this.inventory[this.selectedItem].type == 1333) && !this.pulley) { float r = 1f; float g = 0.95f; float b = 0.8f; int num32 = 0; if (this.inventory[this.selectedItem].type == 523) { num32 = 8; } else { if (this.inventory[this.selectedItem].type == 974) { num32 = 9; } else { if (this.inventory[this.selectedItem].type == 1245) { num32 = 10; } else { if (this.inventory[this.selectedItem].type == 1333) { num32 = 11; } else { if (this.inventory[this.selectedItem].type >= 427) { num32 = this.inventory[this.selectedItem].type - 426; } } } } } if (num32 == 1) { r = 0f; g = 0.1f; b = 1.3f; } else { if (num32 == 2) { r = 1f; g = 0.1f; b = 0.1f; } else { if (num32 == 3) { r = 0f; g = 1f; b = 0.1f; } else { if (num32 == 4) { r = 0.9f; g = 0f; b = 0.9f; } else { if (num32 == 5) { r = 1.3f; g = 1.3f; b = 1.3f; } else { if (num32 == 6) { r = 0.9f; g = 0.9f; b = 0f; } else { if (num32 == 7) { r = 0.5f * Main.demonTorch + 1f * (1f - Main.demonTorch); g = 0.3f; b = 1f * Main.demonTorch + 0.5f * (1f - Main.demonTorch); } else { if (num32 == 8) { b = 0.7f; r = 0.85f; g = 1f; } else { if (num32 == 9) { b = 1f; r = 0.7f; g = 0.85f; } else { if (num32 == 10) { b = 0f; r = 1f; g = 0.5f; } else { if (num32 == 11) { b = 0.8f; r = 1.25f; g = 1.25f; } } } } } } } } } } } int num33 = num32; if (num33 == 0) { num33 = 6; } else { if (num33 == 8) { num33 = 75; } else { if (num33 == 9) { num33 = 135; } else { if (num33 == 10) { num33 = 158; } else { if (num33 == 11) { num33 = 169; } else { num33 = 58 + num33; } } } } } int maxValue = 30; if (this.itemAnimation > 0) { maxValue = 7; } if (this.direction == -1) { if (Main.rand.Next(maxValue) == 0) { int num34 = Dust.NewDust(new Vector2(this.itemLocation.X - 16f, this.itemLocation.Y - 14f * this.gravDir), 4, 4, num33, 0f, 0f, 100, default(Color), 1f); if (Main.rand.Next(3) != 0) { Main.dust[num34].noGravity = true; } Main.dust[num34].velocity *= 0.3f; Dust expr_314A_cp_0 = Main.dust[num34]; expr_314A_cp_0.velocity.Y = expr_314A_cp_0.velocity.Y - 1.5f; } Lighting.addLight((int)((this.itemLocation.X - 12f + this.velocity.X) / 16f), (int)((this.itemLocation.Y - 14f + this.velocity.Y) / 16f), r, g, b); } else { if (Main.rand.Next(maxValue) == 0) { int num35 = Dust.NewDust(new Vector2(this.itemLocation.X + 6f, this.itemLocation.Y - 14f * this.gravDir), 4, 4, num33, 0f, 0f, 100, default(Color), 1f); if (Main.rand.Next(3) != 0) { Main.dust[num35].noGravity = true; } Main.dust[num35].velocity *= 0.3f; Dust expr_325D_cp_0 = Main.dust[num35]; expr_325D_cp_0.velocity.Y = expr_325D_cp_0.velocity.Y - 1.5f; } Lighting.addLight((int)((this.itemLocation.X + 12f + this.velocity.X) / 16f), (int)((this.itemLocation.Y - 14f + this.velocity.Y) / 16f), r, g, b); } } if (this.inventory[this.selectedItem].type == 105 && !this.wet && !this.pulley) { int maxValue2 = 20; if (this.itemAnimation > 0) { maxValue2 = 7; } if (this.direction == -1) { if (Main.rand.Next(maxValue2) == 0) { int num36 = Dust.NewDust(new Vector2(this.itemLocation.X - 12f, this.itemLocation.Y - 20f * this.gravDir), 4, 4, 6, 0f, 0f, 100, default(Color), 1f); if (Main.rand.Next(3) != 0) { Main.dust[num36].noGravity = true; } Main.dust[num36].velocity *= 0.3f; Dust expr_33B5_cp_0 = Main.dust[num36]; expr_33B5_cp_0.velocity.Y = expr_33B5_cp_0.velocity.Y - 1.5f; } Lighting.addLight((int)((this.itemLocation.X - 16f + this.velocity.X) / 16f), (int)((this.itemLocation.Y - 14f) / 16f), 1f, 0.95f, 0.8f); } else { if (Main.rand.Next(maxValue2) == 0) { int num37 = Dust.NewDust(new Vector2(this.itemLocation.X + 4f, this.itemLocation.Y - 20f * this.gravDir), 4, 4, 6, 0f, 0f, 100, default(Color), 1f); if (Main.rand.Next(3) != 0) { Main.dust[num37].noGravity = true; } Main.dust[num37].velocity *= 0.3f; Dust expr_34C4_cp_0 = Main.dust[num37]; expr_34C4_cp_0.velocity.Y = expr_34C4_cp_0.velocity.Y - 1.5f; } Lighting.addLight((int)((this.itemLocation.X + 6f + this.velocity.X) / 16f), (int)((this.itemLocation.Y - 14f) / 16f), 1f, 0.95f, 0.8f); } } else { if (this.inventory[this.selectedItem].type == 148 && !this.wet) { int maxValue3 = 10; if (this.itemAnimation > 0) { maxValue3 = 7; } if (this.direction == -1) { if (Main.rand.Next(maxValue3) == 0) { int num38 = Dust.NewDust(new Vector2(this.itemLocation.X - 12f, this.itemLocation.Y - 20f * this.gravDir), 4, 4, 172, 0f, 0f, 100, default(Color), 1f); if (Main.rand.Next(3) != 0) { Main.dust[num38].noGravity = true; } Main.dust[num38].velocity *= 0.3f; Dust expr_361A_cp_0 = Main.dust[num38]; expr_361A_cp_0.velocity.Y = expr_361A_cp_0.velocity.Y - 1.5f; } Lighting.addLight((int)((this.itemLocation.X - 16f + this.velocity.X) / 16f), (int)((this.itemLocation.Y - 14f) / 16f), 0f, 0.5f, 1f); } else { if (Main.rand.Next(maxValue3) == 0) { int num39 = Dust.NewDust(new Vector2(this.itemLocation.X + 4f, this.itemLocation.Y - 20f * this.gravDir), 4, 4, 172, 0f, 0f, 100, default(Color), 1f); if (Main.rand.Next(3) != 0) { Main.dust[num39].noGravity = true; } Main.dust[num39].velocity *= 0.3f; Dust expr_372D_cp_0 = Main.dust[num39]; expr_372D_cp_0.velocity.Y = expr_372D_cp_0.velocity.Y - 1.5f; } Lighting.addLight((int)((this.itemLocation.X + 6f + this.velocity.X) / 16f), (int)((this.itemLocation.Y - 14f) / 16f), 0f, 0.5f, 1f); } } } if (this.inventory[this.selectedItem].type == 282 && !this.pulley) { if (this.direction == -1) { Lighting.addLight((int)((this.itemLocation.X - 16f + this.velocity.X) / 16f), (int)((this.itemLocation.Y - 14f) / 16f), 0.7f, 1f, 0.8f); } else { Lighting.addLight((int)((this.itemLocation.X + 6f + this.velocity.X) / 16f), (int)((this.itemLocation.Y - 14f) / 16f), 0.7f, 1f, 0.8f); } } if (this.inventory[this.selectedItem].type == 286 && !this.pulley) { if (this.direction == -1) { Lighting.addLight((int)((this.itemLocation.X - 16f + this.velocity.X) / 16f), (int)((this.itemLocation.Y - 14f) / 16f), 0.7f, 0.8f, 1f); } else { Lighting.addLight((int)((this.itemLocation.X + 6f + this.velocity.X) / 16f), (int)((this.itemLocation.Y - 14f) / 16f), 0.7f, 0.8f, 1f); } } if (this.controlUseItem) { this.releaseUseItem = false; } else { this.releaseUseItem = true; } if (this.itemTime > 0) { this.itemTime--; if (this.itemTime == 0 && this.whoAmi == Main.myPlayer) { int type = this.inventory[this.selectedItem].type; if (type == 65 || type == 676 || type == 723 || type == 724 || type == 757 || type == 674 || type == 675 || type == 989 || type == 1226 || type == 1227) { Main.PlaySound(25, -1, -1, 1); for (int num40 = 0; num40 < 5; num40++) { int num41 = Dust.NewDust(this.position, this.width, this.height, 45, 0f, 0f, 255, default(Color), (float)Main.rand.Next(20, 26) * 0.1f); Main.dust[num41].noLight = true; Main.dust[num41].noGravity = true; Main.dust[num41].velocity *= 0.5f; } } } } if (i == Main.myPlayer) { bool flag4 = true; int type2 = this.inventory[this.selectedItem].type; if ((type2 == 65 || type2 == 676 || type2 == 723 || type2 == 724 || type2 == 757 || type2 == 674 || type2 == 675 || type2 == 989 || type2 == 1226 || type2 == 1227) && this.itemAnimation != this.itemAnimationMax - 1) { flag4 = false; } if (this.inventory[this.selectedItem].shoot > 0 && this.itemAnimation > 0 && this.itemTime == 0 && flag4) { int num42 = this.inventory[this.selectedItem].shoot; float num43 = this.inventory[this.selectedItem].shootSpeed; if (this.inventory[this.selectedItem].melee && num42 != 25 && num42 != 26 && num42 != 35) { num43 /= this.meleeSpeed; } bool flag5 = false; int num44 = num; float num45 = this.inventory[this.selectedItem].knockBack; if (num42 == 13 || num42 == 32 || (num42 >= 230 && num42 <= 235)) { this.grappling[0] = -1; this.grapCount = 0; for (int num46 = 0; num46 < 1000; num46++) { if (Main.projectile[num46].active && Main.projectile[num46].owner == i) { if (Main.projectile[num46].type == 13) { Main.projectile[num46].Kill(); } if (Main.projectile[num46].type >= 230 && Main.projectile[num46].type <= 235) { Main.projectile[num46].Kill(); } } } } if (this.inventory[this.selectedItem].useAmmo > 0) { Item item = new Item(); bool flag6 = false; for (int num47 = 54; num47 < 58; num47++) { if (this.inventory[num47].ammo == this.inventory[this.selectedItem].useAmmo && this.inventory[num47].stack > 0) { item = this.inventory[num47]; flag5 = true; flag6 = true; break; } } if (!flag6) { for (int num48 = 0; num48 < 54; num48++) { if (this.inventory[num48].ammo == this.inventory[this.selectedItem].useAmmo && this.inventory[num48].stack > 0) { item = this.inventory[num48]; flag5 = true; break; } } } if (flag5) { if (this.inventory[this.selectedItem].useAmmo == 771) { num42 += item.shoot; } else { if (this.inventory[this.selectedItem].useAmmo == 780) { num42 += item.shoot; } else { if (item.shoot > 0) { num42 = item.shoot; } } } if (num42 == 42) { if (item.type == 370) { num42 = 65; num44 += 5; } else { if (item.type == 408) { num42 = 68; num44 += 5; } } } if (this.magicQuiver && this.inventory[this.selectedItem].useAmmo == 1) { num45 = (float)((int)((double)num45 * 1.1)); num43 *= 1.1f; num44 = (int)((double)num44 * 1.1); } num43 += item.shootSpeed; if (item.ranged) { if (item.damage > 0) { num44 += (int)((float)item.damage * this.rangedDamage); } } else { num44 += item.damage; } if (this.inventory[this.selectedItem].useAmmo == 1 && this.archery) { if (num43 < 20f) { num43 *= 1.2f; if (num43 > 20f) { num43 = 20f; } } num44 = (int)((double)((float)num44) * 1.2); } num45 += item.knockBack; bool flag7 = false; if (this.magicQuiver && this.inventory[this.selectedItem].useAmmo == 1 && Main.rand.Next(5) == 0) { flag7 = true; } if (this.inventory[this.selectedItem].type == 98 && Main.rand.Next(3) == 0) { flag7 = true; } if (this.inventory[this.selectedItem].type == 533 && Main.rand.Next(2) == 0) { flag7 = true; } if (this.inventory[this.selectedItem].type == 1553 && Main.rand.Next(2) == 0) { flag7 = true; } if (this.inventory[this.selectedItem].type == 434 && this.itemAnimation < this.inventory[this.selectedItem].useAnimation - 2) { flag7 = true; } if (this.ammoCost80 && Main.rand.Next(5) == 0) { flag7 = true; } if (this.ammoCost75 && Main.rand.Next(4) == 0) { flag7 = true; } if (num42 == 85 && this.itemAnimation < this.itemAnimationMax - 6) { flag7 = true; } if ((num42 == 145 || num42 == 146 || num42 == 147 || num42 == 148 || num42 == 149) && this.itemAnimation < this.itemAnimationMax - 5) { flag7 = true; } if (!flag7) { item.stack--; if (item.stack <= 0) { item.active = false; item.name = ""; item.type = 0; } } } } else { flag5 = true; } if (this.inventory[this.selectedItem].type == 1254 && num42 == 14) { num42 = 242; } if (this.inventory[this.selectedItem].type == 1255 && num42 == 14) { num42 = 242; } if (this.inventory[this.selectedItem].type == 1265 && num42 == 14) { num42 = 242; } if (num42 == 73) { for (int num49 = 0; num49 < 1000; num49++) { if (Main.projectile[num49].active && Main.projectile[num49].owner == i) { if (Main.projectile[num49].type == 73) { num42 = 74; } if (num42 == 74 && Main.projectile[num49].type == 74) { flag5 = false; } } } } if (flag5) { if (this.inventory[this.selectedItem].summon) { num45 += this.minionKB; num44 = (int)((float)num44 * this.minionDamage); } if (num42 == 228) { num45 = 0f; } if (this.inventory[this.selectedItem].mech && this.kbGlove) { num45 *= 1.7f; } if (this.inventory[this.selectedItem].ranged && this.armorSteath) { num45 *= 1f + (1f - this.stealth) * 0.5f; } if (num42 == 1 && this.inventory[this.selectedItem].type == 120) { num42 = 2; } if (this.inventory[this.selectedItem].type == 682) { num42 = 117; } if (this.inventory[this.selectedItem].type == 725) { num42 = 120; } this.itemTime = this.inventory[this.selectedItem].useTime; if ((float)Main.mouseX + Main.screenPosition.X > this.position.X + (float)this.width * 0.5f) { this.ChangeDir(1); } else { this.ChangeDir(-1); } Vector2 vector = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f); if (num42 == 9) { vector = new Vector2(this.position.X + (float)this.width * 0.5f + (float)(Main.rand.Next(201) * -(float)this.direction) + ((float)Main.mouseX + Main.screenPosition.X - this.position.X), this.position.Y + (float)this.height * 0.5f - 600f); num45 = 0f; num44 *= 2; } else { if (num42 == 51) { vector.Y -= 6f * this.gravDir; } } float num50 = (float)Main.mouseX + Main.screenPosition.X - vector.X; float num51 = (float)Main.mouseY + Main.screenPosition.Y - vector.Y; if (this.gravDir == -1f) { num51 = Main.screenPosition.Y + (float)Main.screenHeight - (float)Main.mouseY - vector.Y; } float num52 = (float)Math.Sqrt((double)(num50 * num50 + num51 * num51)); float num53 = num52; num52 = num43 / num52; num50 *= num52; num51 *= num52; if (this.inventory[this.selectedItem].type == 757) { num44 = (int)((float)num44 * 1.25f); } if (num42 == 250) { for (int num54 = 0; num54 < 1000; num54++) { if (Main.projectile[num54].active && Main.projectile[num54].owner == this.whoAmi && (Main.projectile[num54].type == 250 || Main.projectile[num54].type == 251)) { Main.projectile[num54].Kill(); } } } if (num42 == 12) { vector.X += num50 * 3f; vector.Y += num51 * 3f; } if (this.inventory[this.selectedItem].useStyle == 5) { this.itemRotation = (float)Math.Atan2((double)(num51 * (float)this.direction), (double)(num50 * (float)this.direction)); NetMessage.SendData(13, -1, -1, "", this.whoAmi, 0f, 0f, 0f, 0); NetMessage.SendData(41, -1, -1, "", this.whoAmi, 0f, 0f, 0f, 0); } if (num42 == 17) { vector.X = (float)Main.mouseX + Main.screenPosition.X; vector.Y = (float)Main.mouseY + Main.screenPosition.Y; } if (num42 == 76) { num42 += Main.rand.Next(3); num53 /= (float)(Main.screenHeight / 2); if (num53 > 1f) { num53 = 1f; } float num55 = num50 + (float)Main.rand.Next(-40, 41) * 0.01f; float num56 = num51 + (float)Main.rand.Next(-40, 41) * 0.01f; num55 *= num53 + 0.25f; num56 *= num53 + 0.25f; int num57 = Projectile.NewProjectile(vector.X, vector.Y, num55, num56, num42, num44, num45, i, 0f, 0f); Main.projectile[num57].ai[1] = 1f; num53 = num53 * 2f - 1f; if (num53 < -1f) { num53 = -1f; } if (num53 > 1f) { num53 = 1f; } Main.projectile[num57].ai[0] = num53; NetMessage.SendData(27, -1, -1, "", num57, 0f, 0f, 0f, 0); } else { if (this.inventory[this.selectedItem].type == 98 || this.inventory[this.selectedItem].type == 533) { float speedX = num50 + (float)Main.rand.Next(-40, 41) * 0.01f; float speedY = num51 + (float)Main.rand.Next(-40, 41) * 0.01f; Projectile.NewProjectile(vector.X, vector.Y, speedX, speedY, num42, num44, num45, i, 0f, 0f); } else { if (this.inventory[this.selectedItem].type == 1553) { float speedX2 = num50 + (float)Main.rand.Next(-40, 41) * 0.005f; float speedY2 = num51 + (float)Main.rand.Next(-40, 41) * 0.005f; Projectile.NewProjectile(vector.X, vector.Y, speedX2, speedY2, num42, num44, num45, i, 0f, 0f); } else { if (this.inventory[this.selectedItem].type == 518) { float num58 = num50; float num59 = num51; num58 += (float)Main.rand.Next(-40, 41) * 0.04f; num59 += (float)Main.rand.Next(-40, 41) * 0.04f; Projectile.NewProjectile(vector.X, vector.Y, num58, num59, num42, num44, num45, i, 0f, 0f); } else { if (this.inventory[this.selectedItem].type == 1265) { float num60 = num50; float num61 = num51; num60 += (float)Main.rand.Next(-30, 31) * 0.03f; num61 += (float)Main.rand.Next(-30, 31) * 0.03f; Projectile.NewProjectile(vector.X, vector.Y, num60, num61, num42, num44, num45, i, 0f, 0f); } else { if (this.inventory[this.selectedItem].type == 534) { for (int num62 = 0; num62 < 4; num62++) { float num63 = num50; float num64 = num51; num63 += (float)Main.rand.Next(-40, 41) * 0.05f; num64 += (float)Main.rand.Next(-40, 41) * 0.05f; Projectile.NewProjectile(vector.X, vector.Y, num63, num64, num42, num44, num45, i, 0f, 0f); } } else { if (this.inventory[this.selectedItem].type == 1308) { int num65 = 4; for (int num66 = 0; num66 < num65; num66++) { float num67 = num50; float num68 = num51; float num69 = 0.05f * (float)num66; num67 += (float)Main.rand.Next(-35, 36) * num69; num68 += (float)Main.rand.Next(-35, 36) * num69; num52 = (float)Math.Sqrt((double)(num67 * num67 + num68 * num68)); num52 = num43 / num52; num67 *= num52; num68 *= num52; float x = vector.X; float y = vector.Y; Projectile.NewProjectile(x, y, num67, num68, num42, num44, num45, i, 0f, 0f); } } else { if (this.inventory[this.selectedItem].type == 1258) { float num70 = num50; float num71 = num51; num70 += (float)Main.rand.Next(-40, 41) * 0.01f; num71 += (float)Main.rand.Next(-40, 41) * 0.01f; vector.X += (float)Main.rand.Next(-40, 41) * 0.05f; vector.Y += (float)Main.rand.Next(-45, 36) * 0.05f; Projectile.NewProjectile(vector.X, vector.Y, num70, num71, num42, num44, num45, i, 0f, 0f); } else { if (this.inventory[this.selectedItem].type == 964) { for (int num72 = 0; num72 < 3; num72++) { float num73 = num50; float num74 = num51; num73 += (float)Main.rand.Next(-35, 36) * 0.04f; num74 += (float)Main.rand.Next(-35, 36) * 0.04f; Projectile.NewProjectile(vector.X, vector.Y, num73, num74, num42, num44, num45, i, 0f, 0f); } } else { if (this.inventory[this.selectedItem].type == 1569) { int num75 = 4; if (Main.rand.Next(2) == 0) { num75++; } if (Main.rand.Next(4) == 0) { num75++; } if (Main.rand.Next(8) == 0) { num75++; } if (Main.rand.Next(16) == 0) { num75++; } for (int num76 = 0; num76 < num75; num76++) { float num77 = num50; float num78 = num51; float num79 = 0.05f * (float)num76; num77 += (float)Main.rand.Next(-35, 36) * num79; num78 += (float)Main.rand.Next(-35, 36) * num79; num52 = (float)Math.Sqrt((double)(num77 * num77 + num78 * num78)); num52 = num43 / num52; num77 *= num52; num78 *= num52; float x2 = vector.X; float y2 = vector.Y; Projectile.NewProjectile(x2, y2, num77, num78, num42, num44, num45, i, 0f, 0f); } } else { if (this.inventory[this.selectedItem].type == 1572) { for (int num80 = 0; num80 < 1000; num80++) { if (Main.projectile[num80].owner == this.whoAmi && Main.projectile[num80].type == 308) { Main.projectile[num80].Kill(); } } int num81 = (int)((float)Main.mouseX + Main.screenPosition.X) / 16; int num82 = (int)((float)Main.mouseY + Main.screenPosition.Y) / 16; while (num82 < Main.maxTilesY - 10 && Main.tile[num81, num82] != null && !WorldGen.SolidTile(num81, num82) && Main.tile[num81 - 1, num82] != null && !WorldGen.SolidTile(num81 - 1, num82) && Main.tile[num81 + 1, num82] != null && !WorldGen.SolidTile(num81 + 1, num82)) { num82++; } num82--; Projectile.NewProjectile((float)Main.mouseX + Main.screenPosition.X, (float)(num82 * 16 - 24), 0f, 15f, num42, num44, num45, i, 0f, 0f); } else { if (this.inventory[this.selectedItem].type == 1244 || this.inventory[this.selectedItem].type == 1256) { int num83 = Projectile.NewProjectile(vector.X, vector.Y, num50, num51, num42, num44, num45, i, 0f, 0f); Main.projectile[num83].ai[0] = (float)Main.mouseX + Main.screenPosition.X; Main.projectile[num83].ai[1] = (float)Main.mouseY + Main.screenPosition.Y; } else { if (this.inventory[this.selectedItem].type == 1229) { int num84 = Main.rand.Next(2, 4); if (Main.rand.Next(5) == 0) { num84++; } for (int num85 = 0; num85 < num84; num85++) { float num86 = num50; float num87 = num51; if (num85 > 0) { num86 += (float)Main.rand.Next(-35, 36) * 0.04f; num87 += (float)Main.rand.Next(-35, 36) * 0.04f; } if (num85 > 1) { num86 += (float)Main.rand.Next(-35, 36) * 0.04f; num87 += (float)Main.rand.Next(-35, 36) * 0.04f; } if (num85 > 2) { num86 += (float)Main.rand.Next(-35, 36) * 0.04f; num87 += (float)Main.rand.Next(-35, 36) * 0.04f; } int num88 = Projectile.NewProjectile(vector.X, vector.Y, num86, num87, num42, num44, num45, i, 0f, 0f); Main.projectile[num88].noDropItem = true; } } else { if (this.inventory[this.selectedItem].type == 1121 || this.inventory[this.selectedItem].type == 1155) { int num89; if (this.inventory[this.selectedItem].type == 1121) { num89 = Main.rand.Next(1, 4); if (Main.rand.Next(6) == 0) { num89++; } if (Main.rand.Next(6) == 0) { num89++; } } else { num89 = Main.rand.Next(2, 5); if (Main.rand.Next(5) == 0) { num89++; } if (Main.rand.Next(5) == 0) { num89++; } } for (int num90 = 0; num90 < num89; num90++) { float num91 = num50; float num92 = num51; num91 += (float)Main.rand.Next(-35, 36) * 0.02f; num92 += (float)Main.rand.Next(-35, 36) * 0.02f; Projectile.NewProjectile(vector.X, vector.Y, num91, num92, num42, num44, num45, i, 0f, 0f); } } else { if (this.inventory[this.selectedItem].type == 679) { for (int num93 = 0; num93 < 6; num93++) { float num94 = num50; float num95 = num51; num94 += (float)Main.rand.Next(-40, 41) * 0.05f; num95 += (float)Main.rand.Next(-40, 41) * 0.05f; Projectile.NewProjectile(vector.X, vector.Y, num94, num95, num42, num44, num45, i, 0f, 0f); } } else { if (this.inventory[this.selectedItem].type == 434) { float num96 = num50; float num97 = num51; if (this.itemAnimation < 5) { num96 += (float)Main.rand.Next(-40, 41) * 0.01f; num97 += (float)Main.rand.Next(-40, 41) * 0.01f; num96 *= 1.1f; num97 *= 1.1f; } else { if (this.itemAnimation < 10) { num96 += (float)Main.rand.Next(-20, 21) * 0.01f; num97 += (float)Main.rand.Next(-20, 21) * 0.01f; num96 *= 1.05f; num97 *= 1.05f; } } Projectile.NewProjectile(vector.X, vector.Y, num96, num97, num42, num44, num45, i, 0f, 0f); } else { if (this.inventory[this.selectedItem].type == 1157) { num42 = Main.rand.Next(191, 195); num50 = 0f; num51 = 0f; vector.X = (float)Main.mouseX + Main.screenPosition.X; vector.Y = (float)Main.mouseY + Main.screenPosition.Y; int num98 = Projectile.NewProjectile(vector.X, vector.Y, num50, num51, num42, num44, num45, i, 0f, 0f); Main.projectile[num98].localAI[0] = 30f; } else { if (this.inventory[this.selectedItem].type == 1309) { num50 = 0f; num51 = 0f; vector.X = (float)Main.mouseX + Main.screenPosition.X; vector.Y = (float)Main.mouseY + Main.screenPosition.Y; Projectile.NewProjectile(vector.X, vector.Y, num50, num51, num42, num44, num45, i, 0f, 0f); } else { if (this.inventory[this.selectedItem].shoot > 0 && (Main.projPet[this.inventory[this.selectedItem].shoot] || this.inventory[this.selectedItem].shoot == 72 || this.inventory[this.selectedItem].shoot == 18) && !this.inventory[this.selectedItem].summon) { for (int num99 = 0; num99 < 1000; num99++) { if (Main.projectile[num99].active && Main.projectile[num99].owner == this.whoAmi) { if (this.inventory[this.selectedItem].shoot == 72) { if (Main.projectile[num99].type == 72 || Main.projectile[num99].type == 86 || Main.projectile[num99].type == 87) { Main.projectile[num99].Kill(); } } else { if (this.inventory[this.selectedItem].shoot == Main.projectile[num99].type) { Main.projectile[num99].Kill(); } } } } if (num42 == 72) { int num100 = Main.rand.Next(3); if (num100 == 0) { num42 = 72; } else { if (num100 == 1) { num42 = 86; } else { if (num100 == 2) { num42 = 87; } } } } Projectile.NewProjectile(vector.X, vector.Y, num50, num51, num42, num44, num45, i, 0f, 0f); } else { int num101 = Projectile.NewProjectile(vector.X, vector.Y, num50, num51, num42, num44, num45, i, 0f, 0f); if (num42 == 80) { Main.projectile[num101].ai[0] = (float)Player.tileTargetX; Main.projectile[num101].ai[1] = (float)Player.tileTargetY; } } } } } } } } } } } } } } } } } } } } } else { if (this.inventory[this.selectedItem].useStyle == 5) { this.itemRotation = 0f; NetMessage.SendData(41, -1, -1, "", this.whoAmi, 0f, 0f, 0f, 0); } } } if (this.whoAmi == Main.myPlayer && (this.inventory[this.selectedItem].type == 509 || this.inventory[this.selectedItem].type == 510 || this.inventory[this.selectedItem].type == 849 || this.inventory[this.selectedItem].type == 850 || this.inventory[this.selectedItem].type == 851) && this.position.X / 16f - (float)Player.tileRangeX - (float)this.inventory[this.selectedItem].tileBoost - (float)this.blockRange <= (float)Player.tileTargetX && (this.position.X + (float)this.width) / 16f + (float)Player.tileRangeX + (float)this.inventory[this.selectedItem].tileBoost - 1f + (float)this.blockRange >= (float)Player.tileTargetX && this.position.Y / 16f - (float)Player.tileRangeY - (float)this.inventory[this.selectedItem].tileBoost - (float)this.blockRange <= (float)Player.tileTargetY && (this.position.Y + (float)this.height) / 16f + (float)Player.tileRangeY + (float)this.inventory[this.selectedItem].tileBoost - 2f + (float)this.blockRange >= (float)Player.tileTargetY) { this.showItemIcon = true; if (this.itemAnimation > 0 && this.itemTime == 0 && this.controlUseItem) { int i2 = Player.tileTargetX; int j2 = Player.tileTargetY; if (this.inventory[this.selectedItem].type == 509) { int num102 = -1; for (int num103 = 0; num103 < 58; num103++) { if (this.inventory[num103].stack > 0 && this.inventory[num103].type == 530) { num102 = num103; break; } } if (num102 >= 0 && WorldGen.PlaceWire(i2, j2)) { this.inventory[num102].stack--; if (this.inventory[num102].stack <= 0) { this.inventory[num102].SetDefaults(0, false); } this.itemTime = this.inventory[this.selectedItem].useTime; NetMessage.SendData(17, -1, -1, "", 5, (float)Player.tileTargetX, (float)Player.tileTargetY, 0f, 0); } } else { if (this.inventory[this.selectedItem].type == 850) { int num104 = -1; for (int num105 = 0; num105 < 58; num105++) { if (this.inventory[num105].stack > 0 && this.inventory[num105].type == 530) { num104 = num105; break; } } if (num104 >= 0 && WorldGen.PlaceWire2(i2, j2)) { this.inventory[num104].stack--; if (this.inventory[num104].stack <= 0) { this.inventory[num104].SetDefaults(0, false); } this.itemTime = this.inventory[this.selectedItem].useTime; NetMessage.SendData(17, -1, -1, "", 10, (float)Player.tileTargetX, (float)Player.tileTargetY, 0f, 0); } } } if (this.inventory[this.selectedItem].type == 851) { int num106 = -1; for (int num107 = 0; num107 < 58; num107++) { if (this.inventory[num107].stack > 0 && this.inventory[num107].type == 530) { num106 = num107; break; } } if (num106 >= 0 && WorldGen.PlaceWire3(i2, j2)) { this.inventory[num106].stack--; if (this.inventory[num106].stack <= 0) { this.inventory[num106].SetDefaults(0, false); } this.itemTime = this.inventory[this.selectedItem].useTime; NetMessage.SendData(17, -1, -1, "", 12, (float)Player.tileTargetX, (float)Player.tileTargetY, 0f, 0); } } else { if (this.inventory[this.selectedItem].type == 510) { if (WorldGen.KillActuator(i2, j2)) { this.itemTime = this.inventory[this.selectedItem].useTime; NetMessage.SendData(17, -1, -1, "", 9, (float)Player.tileTargetX, (float)Player.tileTargetY, 0f, 0); } else { if (WorldGen.KillWire3(i2, j2)) { this.itemTime = this.inventory[this.selectedItem].useTime; NetMessage.SendData(17, -1, -1, "", 13, (float)Player.tileTargetX, (float)Player.tileTargetY, 0f, 0); } else { if (WorldGen.KillWire2(i2, j2)) { this.itemTime = this.inventory[this.selectedItem].useTime; NetMessage.SendData(17, -1, -1, "", 11, (float)Player.tileTargetX, (float)Player.tileTargetY, 0f, 0); } else { if (WorldGen.KillWire(i2, j2)) { this.itemTime = this.inventory[this.selectedItem].useTime; NetMessage.SendData(17, -1, -1, "", 6, (float)Player.tileTargetX, (float)Player.tileTargetY, 0f, 0); } } } } } else { if (this.inventory[this.selectedItem].type == 849 && this.inventory[this.selectedItem].stack > 0 && WorldGen.PlaceActuator(i2, j2)) { this.itemTime = this.inventory[this.selectedItem].useTime; NetMessage.SendData(17, -1, -1, "", 8, (float)Player.tileTargetX, (float)Player.tileTargetY, 0f, 0); this.inventory[this.selectedItem].stack--; if (this.inventory[this.selectedItem].stack <= 0) { this.inventory[this.selectedItem].SetDefaults(0, false); } } } } } } if (this.itemAnimation > 0 && this.itemTime == 0 && (this.inventory[this.selectedItem].type == 507 || this.inventory[this.selectedItem].type == 508)) { this.itemTime = this.inventory[this.selectedItem].useTime; Vector2 vector2 = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f); float num108 = (float)Main.mouseX + Main.screenPosition.X - vector2.X; float num109 = (float)Main.mouseY + Main.screenPosition.Y - vector2.Y; float num110 = (float)Math.Sqrt((double)(num108 * num108 + num109 * num109)); num110 /= (float)(Main.screenHeight / 2); if (num110 > 1f) { num110 = 1f; } num110 = num110 * 2f - 1f; if (num110 < -1f) { num110 = -1f; } if (num110 > 1f) { num110 = 1f; } Main.harpNote = num110; int style = 26; if (this.inventory[this.selectedItem].type == 507) { style = 35; } Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, style); NetMessage.SendData(58, -1, -1, "", this.whoAmi, num110, 0f, 0f, 0); } if (((this.inventory[this.selectedItem].type >= 205 && this.inventory[this.selectedItem].type <= 207) || this.inventory[this.selectedItem].type == 1128) && this.position.X / 16f - (float)Player.tileRangeX - (float)this.inventory[this.selectedItem].tileBoost <= (float)Player.tileTargetX && (this.position.X + (float)this.width) / 16f + (float)Player.tileRangeX + (float)this.inventory[this.selectedItem].tileBoost - 1f >= (float)Player.tileTargetX && this.position.Y / 16f - (float)Player.tileRangeY - (float)this.inventory[this.selectedItem].tileBoost <= (float)Player.tileTargetY && (this.position.Y + (float)this.height) / 16f + (float)Player.tileRangeY + (float)this.inventory[this.selectedItem].tileBoost - 2f >= (float)Player.tileTargetY) { this.showItemIcon = true; if (this.itemTime == 0 && this.itemAnimation > 0 && this.controlUseItem) { if (this.inventory[this.selectedItem].type == 205) { int num111 = (int)Main.tile[Player.tileTargetX, Player.tileTargetY].liquidType(); int num112 = 0; for (int num113 = Player.tileTargetX - 1; num113 <= Player.tileTargetX + 1; num113++) { for (int num114 = Player.tileTargetY - 1; num114 <= Player.tileTargetY + 1; num114++) { if ((int)Main.tile[num113, num114].liquidType() == num111) { num112 += (int)Main.tile[num113, num114].liquid; } } } if (Main.tile[Player.tileTargetX, Player.tileTargetY].liquid > 0 && num112 > 100) { int liquidType = (int)Main.tile[Player.tileTargetX, Player.tileTargetY].liquidType(); if (!Main.tile[Player.tileTargetX, Player.tileTargetY].lava()) { if (Main.tile[Player.tileTargetX, Player.tileTargetY].honey()) { this.inventory[this.selectedItem].SetDefaults(1128, false); } else { this.inventory[this.selectedItem].SetDefaults(206, false); } } else { this.inventory[this.selectedItem].SetDefaults(207, false); } Main.PlaySound(19, (int)this.position.X, (int)this.position.Y, 1); this.itemTime = this.inventory[this.selectedItem].useTime; int num115 = (int)Main.tile[Player.tileTargetX, Player.tileTargetY].liquid; Main.tile[Player.tileTargetX, Player.tileTargetY].liquid = 0; Main.tile[Player.tileTargetX, Player.tileTargetY].lava(false); Main.tile[Player.tileTargetX, Player.tileTargetY].honey(false); WorldGen.SquareTileFrame(Player.tileTargetX, Player.tileTargetY, false); if (Main.netMode == 1) { NetMessage.sendWater(Player.tileTargetX, Player.tileTargetY); } else { Liquid.AddWater(Player.tileTargetX, Player.tileTargetY); } for (int num116 = Player.tileTargetX - 1; num116 <= Player.tileTargetX + 1; num116++) { for (int num117 = Player.tileTargetY - 1; num117 <= Player.tileTargetY + 1; num117++) { if (num115 < 256 && (int)Main.tile[num116, num117].liquidType() == num111) { int num118 = (int)Main.tile[num116, num117].liquid; if (num118 + num115 > 255) { num118 = 255 - num115; } num115 += num118; Tile expr_6287 = Main.tile[num116, num117]; expr_6287.liquid -= (byte)num118; Main.tile[num116, num117].liquidType(liquidType); if (Main.tile[num116, num117].liquid == 0) { Main.tile[num116, num117].lava(false); Main.tile[num116, num117].honey(false); } WorldGen.SquareTileFrame(num116, num117, false); if (Main.netMode == 1) { NetMessage.sendWater(num116, num117); } else { Liquid.AddWater(num116, num117); } } } } } } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].liquid < 200 && (!Main.tile[Player.tileTargetX, Player.tileTargetY].nactive() || !Main.tileSolid[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type] || Main.tileSolidTop[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type])) { if (this.inventory[this.selectedItem].type == 207) { if (Main.tile[Player.tileTargetX, Player.tileTargetY].liquid == 0 || Main.tile[Player.tileTargetX, Player.tileTargetY].liquidType() == 1) { Main.PlaySound(19, (int)this.position.X, (int)this.position.Y, 1); Main.tile[Player.tileTargetX, Player.tileTargetY].liquidType(1); Main.tile[Player.tileTargetX, Player.tileTargetY].liquid = 255; WorldGen.SquareTileFrame(Player.tileTargetX, Player.tileTargetY, true); this.inventory[this.selectedItem].SetDefaults(205, false); this.itemTime = this.inventory[this.selectedItem].useTime; if (Main.netMode == 1) { NetMessage.sendWater(Player.tileTargetX, Player.tileTargetY); } } } else { if (this.inventory[this.selectedItem].type == 206) { if (Main.tile[Player.tileTargetX, Player.tileTargetY].liquid == 0 || Main.tile[Player.tileTargetX, Player.tileTargetY].liquidType() == 0) { Main.PlaySound(19, (int)this.position.X, (int)this.position.Y, 1); Main.tile[Player.tileTargetX, Player.tileTargetY].liquidType(0); Main.tile[Player.tileTargetX, Player.tileTargetY].liquid = 255; WorldGen.SquareTileFrame(Player.tileTargetX, Player.tileTargetY, true); this.inventory[this.selectedItem].SetDefaults(205, false); this.itemTime = this.inventory[this.selectedItem].useTime; if (Main.netMode == 1) { NetMessage.sendWater(Player.tileTargetX, Player.tileTargetY); } } } else { if (this.inventory[this.selectedItem].type == 1128 && (Main.tile[Player.tileTargetX, Player.tileTargetY].liquid == 0 || Main.tile[Player.tileTargetX, Player.tileTargetY].liquidType() == 2)) { Main.PlaySound(19, (int)this.position.X, (int)this.position.Y, 1); Main.tile[Player.tileTargetX, Player.tileTargetY].liquidType(2); Main.tile[Player.tileTargetX, Player.tileTargetY].liquid = 255; WorldGen.SquareTileFrame(Player.tileTargetX, Player.tileTargetY, true); this.inventory[this.selectedItem].SetDefaults(205, false); this.itemTime = this.inventory[this.selectedItem].useTime; if (Main.netMode == 1) { NetMessage.sendWater(Player.tileTargetX, Player.tileTargetY); } } } } } } } } if (!this.channel) { this.toolTime = this.itemTime; } else { this.toolTime--; if (this.toolTime < 0) { if (this.inventory[this.selectedItem].pick > 0) { this.toolTime = this.inventory[this.selectedItem].useTime; } else { this.toolTime = (int)((float)this.inventory[this.selectedItem].useTime * this.pickSpeed); } } } if ((this.inventory[this.selectedItem].pick > 0 || this.inventory[this.selectedItem].axe > 0 || this.inventory[this.selectedItem].hammer > 0) && this.position.X / 16f - (float)Player.tileRangeX - (float)this.inventory[this.selectedItem].tileBoost <= (float)Player.tileTargetX && (this.position.X + (float)this.width) / 16f + (float)Player.tileRangeX + (float)this.inventory[this.selectedItem].tileBoost - 1f >= (float)Player.tileTargetX && this.position.Y / 16f - (float)Player.tileRangeY - (float)this.inventory[this.selectedItem].tileBoost <= (float)Player.tileTargetY && (this.position.Y + (float)this.height) / 16f + (float)Player.tileRangeY + (float)this.inventory[this.selectedItem].tileBoost - 2f >= (float)Player.tileTargetY) { bool flag8 = true; this.showItemIcon = true; if (this.toolTime == 0 && this.itemAnimation > 0 && this.controlUseItem && (!Main.tile[Player.tileTargetX, Player.tileTargetY].active() || (!Main.tileHammer[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type] && !Main.tileSolid[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type]))) { this.poundRelease = false; } if (Main.tile[Player.tileTargetX, Player.tileTargetY].active()) { if ((this.inventory[this.selectedItem].pick > 0 && !Main.tileAxe[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type] && !Main.tileHammer[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type]) || (this.inventory[this.selectedItem].axe > 0 && Main.tileAxe[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type]) || (this.inventory[this.selectedItem].hammer > 0 && Main.tileHammer[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type])) { flag8 = false; } if (this.toolTime == 0 && this.itemAnimation > 0 && this.controlUseItem) { if (this.hitTileX != Player.tileTargetX || this.hitTileY != Player.tileTargetY) { this.hitTile = 0; this.hitTileX = Player.tileTargetX; this.hitTileY = Player.tileTargetY; } if (Main.tileNoFail[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type]) { this.hitTile = 100; } if (Main.tileHammer[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type]) { flag8 = false; if (this.inventory[this.selectedItem].hammer > 0) { this.hitTile += this.inventory[this.selectedItem].hammer; if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 26 && (this.inventory[this.selectedItem].hammer < 80 || !Main.hardMode)) { this.hitTile = 0; this.Hurt(this.statLife / 2, -this.direction, false, false, Lang.deathMsg(-1, -1, -1, 4), false); } if (this.hitTile >= 100) { this.hitTile = 0; WorldGen.KillTile(Player.tileTargetX, Player.tileTargetY, false, false, false); if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 0, (float)Player.tileTargetX, (float)Player.tileTargetY, 0f, 0); } } else { WorldGen.KillTile(Player.tileTargetX, Player.tileTargetY, true, false, false); if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 0, (float)Player.tileTargetX, (float)Player.tileTargetY, 1f, 0); } } this.itemTime = this.inventory[this.selectedItem].useTime; } } else { if (Main.tileAxe[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type]) { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 80) { this.hitTile += this.inventory[this.selectedItem].axe * 3; } else { this.hitTile += this.inventory[this.selectedItem].axe; } if (this.inventory[this.selectedItem].axe > 0) { if (this.hitTile >= 100) { this.hitTile = 0; WorldGen.KillTile(Player.tileTargetX, Player.tileTargetY, false, false, false); if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 0, (float)Player.tileTargetX, (float)Player.tileTargetY, 0f, 0); } } else { WorldGen.KillTile(Player.tileTargetX, Player.tileTargetY, true, false, false); if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 0, (float)Player.tileTargetX, (float)Player.tileTargetY, 1f, 0); } } this.itemTime = this.inventory[this.selectedItem].useTime; } } else { if (this.inventory[this.selectedItem].pick > 0) { if (Main.tileDungeon[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type] || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 25 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 58 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 117 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 203) { this.hitTile += this.inventory[this.selectedItem].pick / 2; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 48 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 232) { this.hitTile += this.inventory[this.selectedItem].pick / 4; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 226) { this.hitTile += this.inventory[this.selectedItem].pick / 4; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 107 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 221) { this.hitTile += this.inventory[this.selectedItem].pick / 2; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 108 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 222) { this.hitTile += this.inventory[this.selectedItem].pick / 3; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 111 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 223) { this.hitTile += this.inventory[this.selectedItem].pick / 4; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 211) { this.hitTile += this.inventory[this.selectedItem].pick / 5; } else { this.hitTile += this.inventory[this.selectedItem].pick; } } } } } } } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 211 && this.inventory[this.selectedItem].pick < 200) { this.hitTile = 0; } if ((Main.tile[Player.tileTargetX, Player.tileTargetY].type == 25 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 203) && this.inventory[this.selectedItem].pick < 65) { this.hitTile = 0; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 117 && this.inventory[this.selectedItem].pick < 65) { this.hitTile = 0; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 37 && this.inventory[this.selectedItem].pick < 50) { this.hitTile = 0; } else { if ((Main.tile[Player.tileTargetX, Player.tileTargetY].type == 22 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 204) && (double)Player.tileTargetY > Main.worldSurface && this.inventory[this.selectedItem].pick < 55) { this.hitTile = 0; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 56 && this.inventory[this.selectedItem].pick < 65) { this.hitTile = 0; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 58 && this.inventory[this.selectedItem].pick < 65) { this.hitTile = 0; } else { if ((Main.tile[Player.tileTargetX, Player.tileTargetY].type == 226 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 237) && this.inventory[this.selectedItem].pick < 210) { this.hitTile = 0; } else { if (Main.tileDungeon[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type] && this.inventory[this.selectedItem].pick < 65) { if ((double)Player.tileTargetX < (double)Main.maxTilesX * 0.35 || (double)Player.tileTargetX > (double)Main.maxTilesX * 0.65) { this.hitTile = 0; } } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 107 && this.inventory[this.selectedItem].pick < 100) { this.hitTile = 0; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 108 && this.inventory[this.selectedItem].pick < 110) { this.hitTile = 0; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 111 && this.inventory[this.selectedItem].pick < 120) { this.hitTile = 0; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 221 && this.inventory[this.selectedItem].pick < 100) { this.hitTile = 0; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 222 && this.inventory[this.selectedItem].pick < 110) { this.hitTile = 0; } else { if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 223 && this.inventory[this.selectedItem].pick < 120) { this.hitTile = 0; } } } } } } } } } } } } } } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 147 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 0 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 40 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 53 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 57 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 59 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 123 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 224) { this.hitTile += this.inventory[this.selectedItem].pick; } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 165 || Main.tileRope[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type] || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 199 || Main.tileMoss[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type]) { this.hitTile = 100; } if (this.hitTile >= 100 && (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 2 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 23 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 60 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 70 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 109 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 71 || Main.tile[Player.tileTargetX, Player.tileTargetY].type == 199 || Main.tileMoss[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type])) { this.hitTile = 0; } if (Main.tile[Player.tileTargetX, Player.tileTargetY].type == 128) { if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX == 18 || Main.tile[Player.tileTargetX, Player.tileTargetY].frameX == 54) { Player.tileTargetX--; } if (Main.tile[Player.tileTargetX, Player.tileTargetY].frameX >= 100) { this.hitTile = 0; } } if (this.hitTile >= 100) { this.hitTile = 0; if (Main.netMode == 1 && Main.tile[Player.tileTargetX, Player.tileTargetY].type == 21) { WorldGen.KillTile(Player.tileTargetX, Player.tileTargetY, true, false, false); NetMessage.SendData(17, -1, -1, "", 0, (float)Player.tileTargetX, (float)Player.tileTargetY, 1f, 0); NetMessage.SendData(34, -1, -1, "", Player.tileTargetX, (float)Player.tileTargetY, 0f, 0f, 0); } else { WorldGen.KillTile(Player.tileTargetX, Player.tileTargetY, false, false, false); if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 0, (float)Player.tileTargetX, (float)Player.tileTargetY, 0f, 0); } } } else { WorldGen.KillTile(Player.tileTargetX, Player.tileTargetY, true, false, false); if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 0, (float)Player.tileTargetX, (float)Player.tileTargetY, 1f, 0); } } this.itemTime = (int)((float)this.inventory[this.selectedItem].useTime * this.pickSpeed); } } } if (this.inventory[this.selectedItem].hammer > 0 && Main.tile[Player.tileTargetX, Player.tileTargetY].active() && Main.tileSolid[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type] && Main.tile[Player.tileTargetX, Player.tileTargetY].type != 10 && this.poundRelease) { flag8 = false; this.itemTime = this.inventory[this.selectedItem].useTime; this.hitTile += (int)((double)this.inventory[this.selectedItem].hammer * 1.25); this.hitTile = 100; if (Main.tile[Player.tileTargetX, Player.tileTargetY - 1].active() && Main.tile[Player.tileTargetX, Player.tileTargetY - 1].type == 10) { this.hitTile = 0; } if (Main.tile[Player.tileTargetX, Player.tileTargetY + 1].active() && Main.tile[Player.tileTargetX, Player.tileTargetY + 1].type == 10) { this.hitTile = 0; } if (this.hitTile >= 100) { this.hitTile = 0; if (this.poundRelease) { int num119 = Player.tileTargetX; int num120 = Player.tileTargetY; if ((Main.tile[num119, num120].halfBrick() || Main.tile[num119, num120].slope() != 0) && !Main.tileSolidTop[(int)Main.tile[Player.tileTargetX, Player.tileTargetY].type]) { int num121 = 1; int slope = 2; if (WorldGen.SolidTile(num119 + 1, num120) && !WorldGen.SolidTile(num119 - 1, num120)) { num121 = 2; slope = 1; } if (Main.tile[num119, num120].slope() == 0) { WorldGen.SlopeTile(num119, num120, num121); } else { if ((int)Main.tile[num119, num120].slope() == num121) { WorldGen.SlopeTile(num119, num120, slope); } else { WorldGen.SlopeTile(num119, num120, 0); } } int num122 = (int)Main.tile[num119, num120].slope(); if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 14, (float)Player.tileTargetX, (float)Player.tileTargetY, (float)num122, 0); } } else { WorldGen.PoundTile(num119, num120); if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 7, (float)Player.tileTargetX, (float)Player.tileTargetY, 1f, 0); } } this.poundRelease = false; } } else { WorldGen.KillTile(Player.tileTargetX, Player.tileTargetY, true, true, false); Main.PlaySound(0, Player.tileTargetX * 16, Player.tileTargetY * 16, 1); } } else { this.poundRelease = false; } } } if (this.releaseUseItem) { this.poundRelease = true; } int num123 = Player.tileTargetX; int num124 = Player.tileTargetY; bool flag9 = true; if (Main.tile[num123, num124].wall > 0) { if (!Main.wallHouse[(int)Main.tile[num123, num124].wall]) { for (int num125 = num123 - 1; num125 < num123 + 2; num125++) { for (int num126 = num124 - 1; num126 < num124 + 2; num126++) { if (Main.tile[num125, num126].wall != Main.tile[num123, num124].wall) { flag9 = false; break; } } } } else { flag9 = false; } } if (flag9 && !Main.tile[num123, num124].active()) { int num127 = -1; if ((double)(((float)Main.mouseX + Main.screenPosition.X) / 16f) < Math.Round((double)(((float)Main.mouseX + Main.screenPosition.X) / 16f))) { num127 = 0; } int num128 = -1; if ((double)(((float)Main.mouseY + Main.screenPosition.Y) / 16f) < Math.Round((double)(((float)Main.mouseY + Main.screenPosition.Y) / 16f))) { num128 = 0; } for (int num129 = Player.tileTargetX + num127; num129 <= Player.tileTargetX + num127 + 1; num129++) { for (int num130 = Player.tileTargetY + num128; num130 <= Player.tileTargetY + num128 + 1; num130++) { if (flag9) { num123 = num129; num124 = num130; if (Main.tile[num123, num124].wall > 0) { if (!Main.wallHouse[(int)Main.tile[num123, num124].wall]) { for (int num131 = num123 - 1; num131 < num123 + 2; num131++) { for (int num132 = num124 - 1; num132 < num124 + 2; num132++) { if (Main.tile[num131, num132].wall != Main.tile[num123, num124].wall) { flag9 = false; break; } } } } else { flag9 = false; } } } } } } if (flag8 && Main.tile[num123, num124].wall > 0 && (!Main.tile[num123, num124].active() || num123 != Player.tileTargetX || num124 != Player.tileTargetY || (!Main.tileHammer[(int)Main.tile[num123, num124].type] && !this.poundRelease)) && this.toolTime == 0 && this.itemAnimation > 0 && this.controlUseItem && this.inventory[this.selectedItem].hammer > 0) { bool flag10 = true; if (!Main.wallHouse[(int)Main.tile[num123, num124].wall]) { flag10 = false; for (int num133 = num123 - 1; num133 < num123 + 2; num133++) { for (int num134 = num124 - 1; num134 < num124 + 2; num134++) { if (Main.tile[num133, num134].wall == 0 || Main.wallHouse[(int)Main.tile[num133, num134].wall]) { flag10 = true; break; } } } } if (flag10) { if (this.hitTileX != num123 || this.hitTileY != num124) { this.hitTile = 0; this.hitTileX = num123; this.hitTileY = num124; } this.hitTile += (int)((float)this.inventory[this.selectedItem].hammer * 1.5f); if (this.hitTile >= 100) { this.hitTile = 0; WorldGen.KillWall(num123, num124, false); if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 2, (float)num123, (float)num124, 0f, 0); } } else { WorldGen.KillWall(num123, num124, true); if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 2, (float)num123, (float)num124, 1f, 0); } } this.itemTime = this.inventory[this.selectedItem].useTime / 2; } } } if (Main.myPlayer == this.whoAmi && this.inventory[this.selectedItem].type == 1326 && this.itemAnimation > 0 && this.itemTime == 0) { this.itemTime = this.inventory[this.selectedItem].useTime; Vector2 newPos; newPos.X = (float)Main.mouseX + Main.screenPosition.X; newPos.Y = (float)Main.mouseY + Main.screenPosition.Y; newPos.X -= (float)(this.width / 2); newPos.Y -= (float)this.height; if (!Collision.SolidCollision(newPos, this.width, this.height)) { this.Teleport(newPos, 1); NetMessage.SendData(65, -1, -1, "", 0, (float)this.whoAmi, newPos.X, newPos.Y, 1); } } if (this.inventory[this.selectedItem].type == 29 && this.itemAnimation > 0 && this.statLifeMax < 400 && this.itemTime == 0) { this.itemTime = this.inventory[this.selectedItem].useTime; this.statLifeMax += 20; this.statLife += 20; if (Main.myPlayer == this.whoAmi) { this.HealEffect(20, true); } } if (this.inventory[this.selectedItem].type == 1291 && this.itemAnimation > 0 && this.statLifeMax >= 400 && this.statLifeMax < 500 && this.itemTime == 0) { this.itemTime = this.inventory[this.selectedItem].useTime; this.statLifeMax += 5; this.statLife += 5; if (Main.myPlayer == this.whoAmi) { this.HealEffect(5, true); } } if (this.inventory[this.selectedItem].type == 109 && this.itemAnimation > 0 && this.statManaMax < 200 && this.itemTime == 0) { this.itemTime = this.inventory[this.selectedItem].useTime; this.statManaMax += 20; this.statMana += 20; if (Main.myPlayer == this.whoAmi) { this.ManaEffect(20); } } this.PlaceThing(); } if (((this.inventory[this.selectedItem].damage >= 0 && this.inventory[this.selectedItem].type > 0 && !this.inventory[this.selectedItem].noMelee) || this.inventory[this.selectedItem].type == 1450) && this.itemAnimation > 0) { bool flag11 = false; Rectangle rectangle = new Rectangle((int)this.itemLocation.X, (int)this.itemLocation.Y, 32, 32); if (!Main.dedServ) { rectangle = new Rectangle((int)this.itemLocation.X, (int)this.itemLocation.Y, Main.itemTexture[this.inventory[this.selectedItem].type].Width, Main.itemTexture[this.inventory[this.selectedItem].type].Height); } rectangle.Width = (int)((float)rectangle.Width * this.inventory[this.selectedItem].scale); rectangle.Height = (int)((float)rectangle.Height * this.inventory[this.selectedItem].scale); if (this.direction == -1) { rectangle.X -= rectangle.Width; } if (this.gravDir == 1f) { rectangle.Y -= rectangle.Height; } if (this.inventory[this.selectedItem].useStyle == 1) { if ((double)this.itemAnimation < (double)this.itemAnimationMax * 0.333) { if (this.direction == -1) { rectangle.X -= (int)((double)rectangle.Width * 1.4 - (double)rectangle.Width); } rectangle.Width = (int)((double)rectangle.Width * 1.4); rectangle.Y += (int)((double)rectangle.Height * 0.5 * (double)this.gravDir); rectangle.Height = (int)((double)rectangle.Height * 1.1); } else { if ((double)this.itemAnimation >= (double)this.itemAnimationMax * 0.666) { if (this.direction == 1) { rectangle.X -= (int)((double)rectangle.Width * 1.2); } rectangle.Width *= 2; rectangle.Y -= (int)(((double)rectangle.Height * 1.4 - (double)rectangle.Height) * (double)this.gravDir); rectangle.Height = (int)((double)rectangle.Height * 1.4); } } } else { if (this.inventory[this.selectedItem].useStyle == 3) { if ((double)this.itemAnimation > (double)this.itemAnimationMax * 0.666) { flag11 = true; } else { if (this.direction == -1) { rectangle.X -= (int)((double)rectangle.Width * 1.4 - (double)rectangle.Width); } rectangle.Width = (int)((double)rectangle.Width * 1.4); rectangle.Y += (int)((double)rectangle.Height * 0.6); rectangle.Height = (int)((double)rectangle.Height * 0.6); } } } float arg_8661_0 = this.gravDir; if (this.inventory[this.selectedItem].type == 1450 && Main.rand.Next(3) == 0) { int num135 = -1; float x3 = (float)(rectangle.X + Main.rand.Next(rectangle.Width)); float y3 = (float)(rectangle.Y + Main.rand.Next(rectangle.Height)); if (Main.rand.Next(500) == 0) { num135 = Gore.NewGore(new Vector2(x3, y3), default(Vector2), 415, (float)Main.rand.Next(51, 101) * 0.01f); } else { if (Main.rand.Next(250) == 0) { num135 = Gore.NewGore(new Vector2(x3, y3), default(Vector2), 414, (float)Main.rand.Next(51, 101) * 0.01f); } else { if (Main.rand.Next(80) == 0) { num135 = Gore.NewGore(new Vector2(x3, y3), default(Vector2), 413, (float)Main.rand.Next(51, 101) * 0.01f); } else { if (Main.rand.Next(10) == 0) { num135 = Gore.NewGore(new Vector2(x3, y3), default(Vector2), 412, (float)Main.rand.Next(51, 101) * 0.01f); } else { if (Main.rand.Next(3) == 0) { num135 = Gore.NewGore(new Vector2(x3, y3), default(Vector2), 411, (float)Main.rand.Next(51, 101) * 0.01f); } } } } } if (num135 >= 0) { Gore expr_883B_cp_0 = Main.gore[num135]; expr_883B_cp_0.velocity.X = expr_883B_cp_0.velocity.X + (float)(this.direction * 2); Gore expr_885D_cp_0 = Main.gore[num135]; expr_885D_cp_0.velocity.Y = expr_885D_cp_0.velocity.Y * 0.3f; } } if (!flag11) { if (this.inventory[this.selectedItem].type == 989 && Main.rand.Next(5) == 0) { int num136 = Main.rand.Next(3); if (num136 == 0) { num136 = 15; } else { if (num136 == 1) { num136 = 57; } else { num136 = 58; } } int num137 = Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, num136, (float)(this.direction * 2), 0f, 150, default(Color), 1.3f); Main.dust[num137].velocity *= 0.2f; } if ((this.inventory[this.selectedItem].type == 44 || this.inventory[this.selectedItem].type == 45 || this.inventory[this.selectedItem].type == 46 || this.inventory[this.selectedItem].type == 103 || this.inventory[this.selectedItem].type == 104) && Main.rand.Next(15) == 0) { Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, 14, (float)(this.direction * 2), 0f, 150, default(Color), 1.3f); } if (this.inventory[this.selectedItem].type == 273 || this.inventory[this.selectedItem].type == 675) { if (Main.rand.Next(5) == 0) { Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, 14, (float)(this.direction * 2), 0f, 150, default(Color), 1.4f); } int num138 = Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, 27, this.velocity.X * 0.2f + (float)(this.direction * 3), this.velocity.Y * 0.2f, 100, default(Color), 1.2f); Main.dust[num138].noGravity = true; Dust expr_8B0E_cp_0 = Main.dust[num138]; expr_8B0E_cp_0.velocity.X = expr_8B0E_cp_0.velocity.X / 2f; Dust expr_8B2C_cp_0 = Main.dust[num138]; expr_8B2C_cp_0.velocity.Y = expr_8B2C_cp_0.velocity.Y / 2f; } if (this.inventory[this.selectedItem].type == 678) { int num139 = Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, 71, this.velocity.X * 0.2f + (float)(this.direction * 3), this.velocity.Y * 0.2f, 100, default(Color), 1.2f); Main.dust[num139].velocity *= 1.5f; Main.dust[num139].noGravity = true; } if (this.inventory[this.selectedItem].type == 723 && Main.rand.Next(2) == 0) { int num140 = Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, 64, 0f, 0f, 150, default(Color), 1.2f); Main.dust[num140].noGravity = true; } if (this.inventory[this.selectedItem].type == 65) { if (Main.rand.Next(5) == 0) { Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, 58, 0f, 0f, 150, default(Color), 1.2f); } if (Main.rand.Next(10) == 0) { Gore.NewGore(new Vector2((float)rectangle.X, (float)rectangle.Y), default(Vector2), Main.rand.Next(16, 18), 1f); } } if (this.inventory[this.selectedItem].type == 190 || this.inventory[this.selectedItem].type == 213) { int num141 = Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, 40, this.velocity.X * 0.2f + (float)(this.direction * 3), this.velocity.Y * 0.2f, 0, default(Color), 1.2f); Main.dust[num141].noGravity = true; } if (this.inventory[this.selectedItem].type == 121) { for (int num142 = 0; num142 < 2; num142++) { int num143 = Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, 6, this.velocity.X * 0.2f + (float)(this.direction * 3), this.velocity.Y * 0.2f, 100, default(Color), 2.5f); Main.dust[num143].noGravity = true; Dust expr_8E6C_cp_0 = Main.dust[num143]; expr_8E6C_cp_0.velocity.X = expr_8E6C_cp_0.velocity.X * 2f; Dust expr_8E8A_cp_0 = Main.dust[num143]; expr_8E8A_cp_0.velocity.Y = expr_8E8A_cp_0.velocity.Y * 2f; } } if (this.inventory[this.selectedItem].type == 122 || this.inventory[this.selectedItem].type == 217) { int num144 = Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, 6, this.velocity.X * 0.2f + (float)(this.direction * 3), this.velocity.Y * 0.2f, 100, default(Color), 1.9f); Main.dust[num144].noGravity = true; } if (this.inventory[this.selectedItem].type == 155) { int num145 = Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, 172, this.velocity.X * 0.2f + (float)(this.direction * 3), this.velocity.Y * 0.2f, 100, default(Color), 0.9f); Main.dust[num145].noGravity = true; Main.dust[num145].velocity *= 0.1f; } if ((this.inventory[this.selectedItem].type == 676 || this.inventory[this.selectedItem].type == 673) && Main.rand.Next(3) == 0) { int num146 = Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, 67, this.velocity.X * 0.2f + (float)(this.direction * 3), this.velocity.Y * 0.2f, 90, default(Color), 1.5f); Main.dust[num146].noGravity = true; Main.dust[num146].velocity *= 0.2f; } if (this.inventory[this.selectedItem].type == 724 && Main.rand.Next(5) == 0) { int num147 = Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, 67, this.velocity.X * 0.2f + (float)(this.direction * 3), this.velocity.Y * 0.2f, 90, default(Color), 1.5f); Main.dust[num147].noGravity = true; Main.dust[num147].velocity *= 0.2f; } if (this.inventory[this.selectedItem].type >= 795 && this.inventory[this.selectedItem].type <= 802 && Main.rand.Next(3) == 0) { int num148 = Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, 115, this.velocity.X * 0.2f + (float)(this.direction * 3), this.velocity.Y * 0.2f, 140, default(Color), 1.5f); Main.dust[num148].noGravity = true; Main.dust[num148].velocity *= 0.25f; } if (this.inventory[this.selectedItem].type == 367 || this.inventory[this.selectedItem].type == 368 || this.inventory[this.selectedItem].type == 674) { if (Main.rand.Next(3) == 0) { int num149 = Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, 57, this.velocity.X * 0.2f + (float)(this.direction * 3), this.velocity.Y * 0.2f, 100, default(Color), 1.1f); Main.dust[num149].noGravity = true; Dust expr_935E_cp_0 = Main.dust[num149]; expr_935E_cp_0.velocity.X = expr_935E_cp_0.velocity.X / 2f; Dust expr_937C_cp_0 = Main.dust[num149]; expr_937C_cp_0.velocity.Y = expr_937C_cp_0.velocity.Y / 2f; Dust expr_939A_cp_0 = Main.dust[num149]; expr_939A_cp_0.velocity.X = expr_939A_cp_0.velocity.X + (float)(this.direction * 2); } if (Main.rand.Next(4) == 0) { int num149 = Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, 43, 0f, 0f, 254, default(Color), 0.3f); Main.dust[num149].velocity *= 0f; } } if (this.inventory[this.selectedItem].type >= 198 && this.inventory[this.selectedItem].type <= 203) { float num150 = 0.5f; float num151 = 0.5f; float num152 = 0.5f; if (this.inventory[this.selectedItem].type == 198) { num150 *= 0.1f; num151 *= 0.5f; num152 *= 1.2f; } else { if (this.inventory[this.selectedItem].type == 199) { num150 *= 1f; num151 *= 0.2f; num152 *= 0.1f; } else { if (this.inventory[this.selectedItem].type == 200) { num150 *= 0.1f; num151 *= 1f; num152 *= 0.2f; } else { if (this.inventory[this.selectedItem].type == 201) { num150 *= 0.8f; num151 *= 0.1f; num152 *= 1f; } else { if (this.inventory[this.selectedItem].type == 202) { num150 *= 0.8f; num151 *= 0.9f; num152 *= 1f; } else { if (this.inventory[this.selectedItem].type == 203) { num150 *= 0.9f; num151 *= 0.9f; num152 *= 0.1f; } } } } } } Lighting.addLight((int)((this.itemLocation.X + 6f + this.velocity.X) / 16f), (int)((this.itemLocation.Y - 14f) / 16f), num150, num151, num152); } if (this.frostBurn && this.inventory[this.selectedItem].melee && !this.inventory[this.selectedItem].noMelee && !this.inventory[this.selectedItem].noUseGraphic && Main.rand.Next(2) == 0) { int num153 = Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, 135, this.velocity.X * 0.2f + (float)(this.direction * 3), this.velocity.Y * 0.2f, 100, default(Color), 2.5f); Main.dust[num153].noGravity = true; Main.dust[num153].velocity *= 0.7f; Dust expr_9718_cp_0 = Main.dust[num153]; expr_9718_cp_0.velocity.Y = expr_9718_cp_0.velocity.Y - 0.5f; } if (this.inventory[this.selectedItem].melee && !this.inventory[this.selectedItem].noMelee && !this.inventory[this.selectedItem].noUseGraphic && this.meleeEnchant > 0) { if (this.meleeEnchant == 1) { if (Main.rand.Next(3) == 0) { int num154 = Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, 171, 0f, 0f, 100, default(Color), 1f); Main.dust[num154].noGravity = true; Main.dust[num154].fadeIn = 1.5f; Main.dust[num154].velocity *= 0.25f; } } else { if (this.meleeEnchant == 2) { if (Main.rand.Next(2) == 0) { int num155 = Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, 75, this.velocity.X * 0.2f + (float)(this.direction * 3), this.velocity.Y * 0.2f, 100, default(Color), 2.5f); Main.dust[num155].noGravity = true; Main.dust[num155].velocity *= 0.7f; Dust expr_98DF_cp_0 = Main.dust[num155]; expr_98DF_cp_0.velocity.Y = expr_98DF_cp_0.velocity.Y - 0.5f; } } else { if (this.meleeEnchant == 3) { if (Main.rand.Next(2) == 0) { int num156 = Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, 6, this.velocity.X * 0.2f + (float)(this.direction * 3), this.velocity.Y * 0.2f, 100, default(Color), 2.5f); Main.dust[num156].noGravity = true; Main.dust[num156].velocity *= 0.7f; Dust expr_99B1_cp_0 = Main.dust[num156]; expr_99B1_cp_0.velocity.Y = expr_99B1_cp_0.velocity.Y - 0.5f; } } else { if (this.meleeEnchant == 4) { if (Main.rand.Next(2) == 0) { int num157 = Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, 57, this.velocity.X * 0.2f + (float)(this.direction * 3), this.velocity.Y * 0.2f, 100, default(Color), 1.1f); Main.dust[num157].noGravity = true; Dust expr_9A6A_cp_0 = Main.dust[num157]; expr_9A6A_cp_0.velocity.X = expr_9A6A_cp_0.velocity.X / 2f; Dust expr_9A88_cp_0 = Main.dust[num157]; expr_9A88_cp_0.velocity.Y = expr_9A88_cp_0.velocity.Y / 2f; } } else { if (this.meleeEnchant == 5) { if (Main.rand.Next(2) == 0) { int num158 = Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, 169, 0f, 0f, 100, default(Color), 1f); Dust expr_9B11_cp_0 = Main.dust[num158]; expr_9B11_cp_0.velocity.X = expr_9B11_cp_0.velocity.X + (float)this.direction; Dust expr_9B31_cp_0 = Main.dust[num158]; expr_9B31_cp_0.velocity.Y = expr_9B31_cp_0.velocity.Y + 0.2f; Main.dust[num158].noGravity = true; } } else { if (this.meleeEnchant == 6) { if (Main.rand.Next(2) == 0) { int num159 = Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, 135, 0f, 0f, 100, default(Color), 1f); Dust expr_9BC8_cp_0 = Main.dust[num159]; expr_9BC8_cp_0.velocity.X = expr_9BC8_cp_0.velocity.X + (float)this.direction; Dust expr_9BE8_cp_0 = Main.dust[num159]; expr_9BE8_cp_0.velocity.Y = expr_9BE8_cp_0.velocity.Y + 0.2f; Main.dust[num159].noGravity = true; } } else { if (this.meleeEnchant == 7) { if (Main.rand.Next(20) == 0) { int type3 = Main.rand.Next(139, 143); int num160 = Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, type3, this.velocity.X, this.velocity.Y, 0, default(Color), 1.2f); Dust expr_9C9E_cp_0 = Main.dust[num160]; expr_9C9E_cp_0.velocity.X = expr_9C9E_cp_0.velocity.X * (1f + (float)Main.rand.Next(-50, 51) * 0.01f); Dust expr_9CD2_cp_0 = Main.dust[num160]; expr_9CD2_cp_0.velocity.Y = expr_9CD2_cp_0.velocity.Y * (1f + (float)Main.rand.Next(-50, 51) * 0.01f); Dust expr_9D06_cp_0 = Main.dust[num160]; expr_9D06_cp_0.velocity.X = expr_9D06_cp_0.velocity.X + (float)Main.rand.Next(-50, 51) * 0.05f; Dust expr_9D34_cp_0 = Main.dust[num160]; expr_9D34_cp_0.velocity.Y = expr_9D34_cp_0.velocity.Y + (float)Main.rand.Next(-50, 51) * 0.05f; Main.dust[num160].scale *= 1f + (float)Main.rand.Next(-30, 31) * 0.01f; } if (Main.rand.Next(40) == 0) { int type4 = Main.rand.Next(276, 283); int num161 = Gore.NewGore(new Vector2((float)rectangle.X, (float)rectangle.Y), this.velocity, type4, 1f); Gore expr_9DE1_cp_0 = Main.gore[num161]; expr_9DE1_cp_0.velocity.X = expr_9DE1_cp_0.velocity.X * (1f + (float)Main.rand.Next(-50, 51) * 0.01f); Gore expr_9E15_cp_0 = Main.gore[num161]; expr_9E15_cp_0.velocity.Y = expr_9E15_cp_0.velocity.Y * (1f + (float)Main.rand.Next(-50, 51) * 0.01f); Main.gore[num161].scale *= 1f + (float)Main.rand.Next(-20, 21) * 0.01f; Gore expr_9E78_cp_0 = Main.gore[num161]; expr_9E78_cp_0.velocity.X = expr_9E78_cp_0.velocity.X + (float)Main.rand.Next(-50, 51) * 0.05f; Gore expr_9EA6_cp_0 = Main.gore[num161]; expr_9EA6_cp_0.velocity.Y = expr_9EA6_cp_0.velocity.Y + (float)Main.rand.Next(-50, 51) * 0.05f; } } else { if (this.meleeEnchant == 8 && Main.rand.Next(4) == 0) { int num162 = Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, 46, 0f, 0f, 100, default(Color), 1f); Main.dust[num162].noGravity = true; Main.dust[num162].fadeIn = 1.5f; Main.dust[num162].velocity *= 0.25f; } } } } } } } } } if (this.magmaStone) { int num163 = Dust.NewDust(new Vector2((float)rectangle.X, (float)rectangle.Y), rectangle.Width, rectangle.Height, 6, this.velocity.X * 0.2f + (float)(this.direction * 3), this.velocity.Y * 0.2f, 100, default(Color), 2.5f); Main.dust[num163].noGravity = true; Dust expr_9FFA_cp_0 = Main.dust[num163]; expr_9FFA_cp_0.velocity.X = expr_9FFA_cp_0.velocity.X * 2f; Dust expr_A018_cp_0 = Main.dust[num163]; expr_A018_cp_0.velocity.Y = expr_A018_cp_0.velocity.Y * 2f; } if (Main.myPlayer == i && this.inventory[this.selectedItem].type != 1450) { int num164 = (int)((float)this.inventory[this.selectedItem].damage * this.meleeDamage); float num165 = this.inventory[this.selectedItem].knockBack; if (this.kbGlove) { num165 *= 2f; } int num166 = rectangle.X / 16; int num167 = (rectangle.X + rectangle.Width) / 16 + 1; int num168 = rectangle.Y / 16; int num169 = (rectangle.Y + rectangle.Height) / 16 + 1; for (int num170 = num166; num170 < num167; num170++) { for (int num171 = num168; num171 < num169; num171++) { if (Main.tile[num170, num171] != null && Main.tileCut[(int)Main.tile[num170, num171].type] && Main.tile[num170, num171 + 1] != null && Main.tile[num170, num171 + 1].type != 78) { WorldGen.KillTile(num170, num171, false, false, false); if (Main.netMode == 1) { NetMessage.SendData(17, -1, -1, "", 0, (float)num170, (float)num171, 0f, 0); } } } } for (int num172 = 0; num172 < 200; num172++) { if (Main.npc[num172].active && Main.npc[num172].immune[i] == 0 && this.attackCD == 0 && !Main.npc[num172].dontTakeDamage && (!Main.npc[num172].friendly || (Main.npc[num172].type == 22 && this.killGuide) || (Main.npc[num172].type == 54 && this.killClothier))) { Rectangle value = new Rectangle((int)Main.npc[num172].position.X, (int)Main.npc[num172].position.Y, Main.npc[num172].width, Main.npc[num172].height); if (rectangle.Intersects(value) && (Main.npc[num172].noTileCollide || Collision.CanHit(this.position, this.width, this.height, Main.npc[num172].position, Main.npc[num172].width, Main.npc[num172].height))) { bool flag12 = false; if (Main.rand.Next(1, 101) <= this.meleeCrit) { flag12 = true; } int num173 = Main.DamageVar((float)num164); this.StatusNPC(this.inventory[this.selectedItem].type, num172); this.onHit(Main.npc[num172].center().X, Main.npc[num172].center().Y); Main.npc[num172].StrikeNPC(num173, num165, this.direction, flag12, false); if (this.meleeEnchant == 7) { Projectile.NewProjectile(Main.npc[num172].center().X, Main.npc[num172].center().Y, Main.npc[num172].velocity.X, Main.npc[num172].velocity.Y, 289, 0, 0f, this.whoAmi, 0f, 0f); } if (this.inventory[this.selectedItem].type == 1123) { int num174 = Main.rand.Next(1, 4); for (int num175 = 0; num175 < num174; num175++) { float num176 = (float)(this.direction * 2) + (float)Main.rand.Next(-35, 36) * 0.02f; float num177 = (float)Main.rand.Next(-35, 36) * 0.02f; num176 *= 0.2f; num177 *= 0.2f; Projectile.NewProjectile((float)(rectangle.X + rectangle.Width / 2), (float)(rectangle.Y + rectangle.Height / 2), num176, num177, 181, num173 / 3, 0f, i, 0f, 0f); } } if (Main.npc[num172].value > 0f && this.coins && Main.rand.Next(5) == 0) { int type5 = 71; if (Main.rand.Next(10) == 0) { type5 = 72; } if (Main.rand.Next(100) == 0) { type5 = 73; } int num178 = Item.NewItem((int)Main.npc[num172].position.X, (int)Main.npc[num172].position.Y, Main.npc[num172].width, Main.npc[num172].height, type5, 1, false, 0, false); Main.item[num178].stack = Main.rand.Next(1, 11); Main.item[num178].velocity.Y = (float)Main.rand.Next(-20, 1) * 0.2f; Main.item[num178].velocity.X = (float)Main.rand.Next(10, 31) * 0.2f * (float)this.direction; if (Main.netMode == 1) { NetMessage.SendData(21, -1, -1, "", num178, 0f, 0f, 0f, 0); } } if (Main.netMode != 0) { if (flag12) { NetMessage.SendData(28, -1, -1, "", num172, (float)num173, num165, (float)this.direction, 1); } else { NetMessage.SendData(28, -1, -1, "", num172, (float)num173, num165, (float)this.direction, 0); } } Main.npc[num172].immune[i] = this.itemAnimation; this.attackCD = (int)((double)this.itemAnimationMax * 0.33); } } } if (this.hostile) { for (int num179 = 0; num179 < 255; num179++) { if (num179 != i && Main.player[num179].active && Main.player[num179].hostile && !Main.player[num179].immune && !Main.player[num179].dead && (Main.player[i].team == 0 || Main.player[i].team != Main.player[num179].team)) { Rectangle value2 = new Rectangle((int)Main.player[num179].position.X, (int)Main.player[num179].position.Y, Main.player[num179].width, Main.player[num179].height); if (rectangle.Intersects(value2) && Collision.CanHit(this.position, this.width, this.height, Main.player[num179].position, Main.player[num179].width, Main.player[num179].height)) { bool flag13 = false; if (Main.rand.Next(1, 101) <= 10) { flag13 = true; } int num180 = Main.DamageVar((float)num164); this.StatusPvP(this.inventory[this.selectedItem].type, num179); this.onHit(Main.player[num179].center().X, Main.player[num179].center().Y); Main.player[num179].Hurt(num180, this.direction, true, false, "", flag13); if (this.meleeEnchant == 7) { Projectile.NewProjectile(Main.player[num179].center().X, Main.player[num179].center().Y, Main.player[num179].velocity.X, Main.player[num179].velocity.Y, 289, 0, 0f, this.whoAmi, 0f, 0f); } if (this.inventory[this.selectedItem].type == 1123) { int num181 = Main.rand.Next(1, 4); for (int num182 = 0; num182 < num181; num182++) { float num183 = (float)(this.direction * 2) + (float)Main.rand.Next(-35, 36) * 0.02f; float num184 = (float)Main.rand.Next(-35, 36) * 0.02f; num183 *= 0.2f; num184 *= 0.2f; Projectile.NewProjectile((float)(rectangle.X + rectangle.Width / 2), (float)(rectangle.Y + rectangle.Height / 2), num183, num184, 181, num180 / 3, 0f, i, 0f, 0f); } } if (Main.netMode != 0) { if (flag13) { NetMessage.SendData(26, -1, -1, Lang.deathMsg(this.whoAmi, -1, -1, -1), num179, (float)this.direction, (float)num180, 1f, 1); } else { NetMessage.SendData(26, -1, -1, Lang.deathMsg(this.whoAmi, -1, -1, -1), num179, (float)this.direction, (float)num180, 1f, 0); } } this.attackCD = (int)((double)this.itemAnimationMax * 0.33); } } } } if (this.inventory[this.selectedItem].type == 787 && (this.itemAnimation == (int)((double)this.itemAnimationMax * 0.1) || this.itemAnimation == (int)((double)this.itemAnimationMax * 0.3) || this.itemAnimation == (int)((double)this.itemAnimationMax * 0.5) || this.itemAnimation == (int)((double)this.itemAnimationMax * 0.7) || this.itemAnimation == (int)((double)this.itemAnimationMax * 0.9))) { float num185 = 0f; float num186 = 0f; float num187 = 0f; float num188 = 0f; if (this.itemAnimation == (int)((double)this.itemAnimationMax * 0.9)) { num185 = -7f; } if (this.itemAnimation == (int)((double)this.itemAnimationMax * 0.7)) { num185 = -6f; num186 = 2f; } if (this.itemAnimation == (int)((double)this.itemAnimationMax * 0.5)) { num185 = -4f; num186 = 4f; } if (this.itemAnimation == (int)((double)this.itemAnimationMax * 0.3)) { num185 = -2f; num186 = 6f; } if (this.itemAnimation == (int)((double)this.itemAnimationMax * 0.1)) { num186 = 7f; } if (this.itemAnimation == (int)((double)this.itemAnimationMax * 0.7)) { num188 = 26f; } if (this.itemAnimation == (int)((double)this.itemAnimationMax * 0.3)) { num188 -= 4f; num187 -= 20f; } if (this.itemAnimation == (int)((double)this.itemAnimationMax * 0.1)) { num187 += 6f; } if (this.direction == -1) { if (this.itemAnimation == (int)((double)this.itemAnimationMax * 0.9)) { num188 -= 8f; } if (this.itemAnimation == (int)((double)this.itemAnimationMax * 0.7)) { num188 -= 6f; } } num185 *= 1.5f; num186 *= 1.5f; num188 *= (float)this.direction; num187 *= this.gravDir; Projectile.NewProjectile((float)(rectangle.X + rectangle.Width / 2) + num188, (float)(rectangle.Y + rectangle.Height / 2) + num187, (float)this.direction * num186, num185 * this.gravDir, 131, num164 / 2, 0f, i, 0f, 0f); } } } } if (this.itemTime == 0 && this.itemAnimation > 0) { if (this.inventory[this.selectedItem].healLife > 0) { this.statLife += this.inventory[this.selectedItem].healLife; this.itemTime = this.inventory[this.selectedItem].useTime; if (Main.myPlayer == this.whoAmi) { this.HealEffect(this.inventory[this.selectedItem].healLife, true); } } if (this.inventory[this.selectedItem].healMana > 0) { this.statMana += this.inventory[this.selectedItem].healMana; this.itemTime = this.inventory[this.selectedItem].useTime; if (Main.myPlayer == this.whoAmi) { this.ManaEffect(this.inventory[this.selectedItem].healMana); } } if (this.inventory[this.selectedItem].buffType > 0) { if (this.whoAmi == Main.myPlayer) { this.AddBuff(this.inventory[this.selectedItem].buffType, this.inventory[this.selectedItem].buffTime, true); } this.itemTime = this.inventory[this.selectedItem].useTime; } } if (this.whoAmi == Main.myPlayer) { if (this.itemTime == 0 && this.itemAnimation > 0 && this.inventory[this.selectedItem].type == 361) { this.itemTime = this.inventory[this.selectedItem].useTime; Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0); if (Main.netMode != 1) { if (Main.invasionType == 0) { Main.invasionDelay = 0; Main.StartInvasion(1); } } else { NetMessage.SendData(61, -1, -1, "", this.whoAmi, -1f, 0f, 0f, 0); } } if (this.itemTime == 0 && this.itemAnimation > 0 && this.inventory[this.selectedItem].type == 602) { this.itemTime = this.inventory[this.selectedItem].useTime; Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0); if (Main.netMode != 1) { if (Main.invasionType == 0) { Main.invasionDelay = 0; Main.StartInvasion(2); } } else { NetMessage.SendData(61, -1, -1, "", this.whoAmi, -2f, 0f, 0f, 0); } } if (this.itemTime == 0 && this.itemAnimation > 0 && this.inventory[this.selectedItem].type == 1315) { this.itemTime = this.inventory[this.selectedItem].useTime; Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0); if (Main.netMode != 1) { if (Main.invasionType == 0) { Main.invasionDelay = 0; Main.StartInvasion(3); } } else { NetMessage.SendData(61, -1, -1, "", this.whoAmi, -3f, 0f, 0f, 0); } } if (this.itemTime == 0 && this.itemAnimation > 0 && (this.inventory[this.selectedItem].type == 43 || this.inventory[this.selectedItem].type == 70 || this.inventory[this.selectedItem].type == 544 || this.inventory[this.selectedItem].type == 556 || this.inventory[this.selectedItem].type == 557 || this.inventory[this.selectedItem].type == 560 || this.inventory[this.selectedItem].type == 1133 || this.inventory[this.selectedItem].type == 1331)) { bool flag14 = false; for (int num189 = 0; num189 < 200; num189++) { if (Main.npc[num189].active && ((this.inventory[this.selectedItem].type == 43 && Main.npc[num189].type == 4) || (this.inventory[this.selectedItem].type == 70 && Main.npc[num189].type == 13) || ((this.inventory[this.selectedItem].type == 560 & Main.npc[num189].type == 50) || (this.inventory[this.selectedItem].type == 544 && Main.npc[num189].type == 125)) || (this.inventory[this.selectedItem].type == 544 && Main.npc[num189].type == 126) || (this.inventory[this.selectedItem].type == 556 && Main.npc[num189].type == 134) || (this.inventory[this.selectedItem].type == 557 && Main.npc[num189].type == 128) || (this.inventory[this.selectedItem].type == 1133 && Main.npc[num189].type == 222) || (this.inventory[this.selectedItem].type == 1331 && Main.npc[num189].type == 266))) { flag14 = true; break; } } if (flag14) { this.itemTime = this.inventory[this.selectedItem].useTime; } else { if (this.inventory[this.selectedItem].type == 560) { this.itemTime = this.inventory[this.selectedItem].useTime; Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0); if (Main.netMode != 1) { NPC.SpawnOnPlayer(i, 50); } else { NetMessage.SendData(61, -1, -1, "", this.whoAmi, 50f, 0f, 0f, 0); } } else { if (this.inventory[this.selectedItem].type == 43) { if (!Main.dayTime) { this.itemTime = this.inventory[this.selectedItem].useTime; Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0); if (Main.netMode != 1) { NPC.SpawnOnPlayer(i, 4); } else { NetMessage.SendData(61, -1, -1, "", this.whoAmi, 4f, 0f, 0f, 0); } } } else { if (this.inventory[this.selectedItem].type == 70) { if (this.zoneEvil) { this.itemTime = this.inventory[this.selectedItem].useTime; Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0); if (Main.netMode != 1) { NPC.SpawnOnPlayer(i, 13); } else { NetMessage.SendData(61, -1, -1, "", this.whoAmi, 13f, 0f, 0f, 0); } } } else { if (this.inventory[this.selectedItem].type == 544) { if (!Main.dayTime) { this.itemTime = this.inventory[this.selectedItem].useTime; Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0); if (Main.netMode != 1) { NPC.SpawnOnPlayer(i, 125); NPC.SpawnOnPlayer(i, 126); } else { NetMessage.SendData(61, -1, -1, "", this.whoAmi, 125f, 0f, 0f, 0); NetMessage.SendData(61, -1, -1, "", this.whoAmi, 126f, 0f, 0f, 0); } } } else { if (this.inventory[this.selectedItem].type == 556) { if (!Main.dayTime) { this.itemTime = this.inventory[this.selectedItem].useTime; Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0); if (Main.netMode != 1) { NPC.SpawnOnPlayer(i, 134); } else { NetMessage.SendData(61, -1, -1, "", this.whoAmi, 134f, 0f, 0f, 0); } } } else { if (this.inventory[this.selectedItem].type == 557) { if (!Main.dayTime) { this.itemTime = this.inventory[this.selectedItem].useTime; Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0); if (Main.netMode != 1) { NPC.SpawnOnPlayer(i, 127); } else { NetMessage.SendData(61, -1, -1, "", this.whoAmi, 127f, 0f, 0f, 0); } } } else { if (this.inventory[this.selectedItem].type == 1133) { this.itemTime = this.inventory[this.selectedItem].useTime; Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0); if (Main.netMode != 1) { NPC.SpawnOnPlayer(i, 222); } else { NetMessage.SendData(61, -1, -1, "", this.whoAmi, 222f, 0f, 0f, 0); } } else { if (this.inventory[this.selectedItem].type == 1331 && this.zoneBlood) { this.itemTime = this.inventory[this.selectedItem].useTime; Main.PlaySound(15, (int)this.position.X, (int)this.position.Y, 0); if (Main.netMode != 1) { NPC.SpawnOnPlayer(i, 266); } else { NetMessage.SendData(61, -1, -1, "", this.whoAmi, 266f, 0f, 0f, 0); } } } } } } } } } } } } if (this.inventory[this.selectedItem].type == 50 && this.itemAnimation > 0) { if (Main.rand.Next(2) == 0) { Dust.NewDust(this.position, this.width, this.height, 15, 0f, 0f, 150, default(Color), 1.1f); } if (this.itemTime == 0) { this.itemTime = this.inventory[this.selectedItem].useTime; } else { if (this.itemTime == this.inventory[this.selectedItem].useTime / 2) { for (int num190 = 0; num190 < 70; num190++) { Dust.NewDust(this.position, this.width, this.height, 15, this.velocity.X * 0.5f, this.velocity.Y * 0.5f, 150, default(Color), 1.5f); } this.grappling[0] = -1; this.grapCount = 0; for (int num191 = 0; num191 < 1000; num191++) { if (Main.projectile[num191].active && Main.projectile[num191].owner == i && Main.projectile[num191].aiStyle == 7) { Main.projectile[num191].Kill(); } } this.Spawn(); for (int num192 = 0; num192 < 70; num192++) { Dust.NewDust(this.position, this.width, this.height, 15, 0f, 0f, 150, default(Color), 1.5f); } } } } if (i == Main.myPlayer) { if (this.itemTime == this.inventory[this.selectedItem].useTime && this.inventory[this.selectedItem].tileWand > 0) { int tileWand2 = this.inventory[this.selectedItem].tileWand; int num193 = 0; while (num193 < 58) { if (tileWand2 == this.inventory[num193].type && this.inventory[num193].stack > 0) { this.inventory[num193].stack--; if (this.inventory[num193].stack <= 0) { this.inventory[num193] = new Item(); break; } break; } else { num193++; } } } if (this.itemTime == this.inventory[this.selectedItem].useTime && this.inventory[this.selectedItem].consumable) { bool flag15 = true; if (this.inventory[this.selectedItem].ranged) { if (this.ammoCost80 && Main.rand.Next(5) == 0) { flag15 = false; } if (this.ammoCost75 && Main.rand.Next(4) == 0) { flag15 = false; } } if (flag15) { if (this.inventory[this.selectedItem].stack > 0) { this.inventory[this.selectedItem].stack--; } if (this.inventory[this.selectedItem].stack <= 0) { this.itemTime = this.itemAnimation; } } } if (this.inventory[this.selectedItem].stack <= 0 && this.itemAnimation == 0) { this.inventory[this.selectedItem] = new Item(); } if (this.selectedItem == 58) { if (this.itemAnimation == 0) { return; } Main.mouseItem = (Item)this.inventory[this.selectedItem].Clone(); } } } public Color GetImmuneAlpha(Color newColor) { float num = (float)(255 - this.immuneAlpha) / 255f; if (this.shadow > 0f) { num *= 1f - this.shadow; } if (this.immuneAlpha > 125) { return new Color(0, 0, 0, 0); } int r = (int)((float)newColor.R * num); int g = (int)((float)newColor.G * num); int b = (int)((float)newColor.B * num); int num2 = (int)((float)newColor.A * num); if (num2 < 0) { num2 = 0; } if (num2 > 255) { num2 = 255; } return new Color(r, g, b, num2); } public Color GetImmuneAlpha2(Color newColor) { float num = (float)(255 - this.immuneAlpha) / 255f; if (this.shadow > 0f) { num *= 1f - this.shadow; } int r = (int)((float)newColor.R * num); int g = (int)((float)newColor.G * num); int b = (int)((float)newColor.B * num); int num2 = (int)((float)newColor.A * num); if (num2 < 0) { num2 = 0; } if (num2 > 255) { num2 = 255; } return new Color(r, g, b, num2); } public Color GetDeathAlpha(Color newColor) { int r = (int)newColor.R + (int)((double)this.immuneAlpha * 0.9); int g = (int)newColor.G + (int)((double)this.immuneAlpha * 0.5); int b = (int)newColor.B + (int)((double)this.immuneAlpha * 0.5); int num = (int)newColor.A + (int)((double)this.immuneAlpha * 0.4); if (num < 0) { num = 0; } if (num > 255) { num = 255; } return new Color(r, g, b, num); } public void DropCoins() { for (int i = 0; i < 59; i++) { if (this.inventory[i].type >= 71 && this.inventory[i].type <= 74) { int num = Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, this.inventory[i].type, 1, false, 0, false); int num2 = this.inventory[i].stack / 2; num2 = this.inventory[i].stack - num2; this.inventory[i].stack -= num2; if (this.inventory[i].stack <= 0) { this.inventory[i] = new Item(); } Main.item[num].stack = num2; Main.item[num].velocity.Y = (float)Main.rand.Next(-20, 1) * 0.2f; Main.item[num].velocity.X = (float)Main.rand.Next(-20, 21) * 0.2f; Main.item[num].noGrabDelay = 100; if (Main.netMode == 1) { NetMessage.SendData(21, -1, -1, "", num, 0f, 0f, 0f, 0); } if (i == 58) { Main.mouseItem = (Item)this.inventory[i].Clone(); } } } } public void DropItems() { for (int i = 0; i < 59; i++) { if (this.inventory[i].stack > 0 && this.inventory[i].name != "Copper Pickaxe" && this.inventory[i].name != "Copper Axe" && this.inventory[i].name != "Copper Shortsword") { int num = Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, this.inventory[i].type, 1, false, 0, false); Main.item[num].SetDefaults(this.inventory[i].name); Main.item[num].Prefix((int)this.inventory[i].prefix); Main.item[num].stack = this.inventory[i].stack; Main.item[num].velocity.Y = (float)Main.rand.Next(-20, 1) * 0.2f; Main.item[num].velocity.X = (float)Main.rand.Next(-20, 21) * 0.2f; Main.item[num].noGrabDelay = 100; if (Main.netMode == 1) { NetMessage.SendData(21, -1, -1, "", num, 0f, 0f, 0f, 0); } } this.inventory[i] = new Item(); if (i < 11) { if (this.armor[i].stack > 0) { int num2 = Item.NewItem((int)this.position.X, (int)this.position.Y, this.width, this.height, this.armor[i].type, 1, false, 0, false); Main.item[num2].SetDefaults(this.armor[i].name); Main.item[num2].Prefix((int)this.armor[i].prefix); Main.item[num2].stack = this.armor[i].stack; Main.item[num2].velocity.Y = (float)Main.rand.Next(-20, 1) * 0.2f; Main.item[num2].velocity.X = (float)Main.rand.Next(-20, 21) * 0.2f; Main.item[num2].noGrabDelay = 100; if (Main.netMode == 1) { NetMessage.SendData(21, -1, -1, "", num2, 0f, 0f, 0f, 0); } } this.armor[i] = new Item(); } } this.inventory[0].SetDefaults("Copper Shortsword"); this.inventory[0].Prefix(-1); this.inventory[1].SetDefaults("Copper Pickaxe"); this.inventory[1].Prefix(-1); this.inventory[2].SetDefaults("Copper Axe"); this.inventory[2].Prefix(-1); Main.mouseItem = new Item(); } public object Clone() { return base.MemberwiseClone(); } public object clientClone() { Player player = new Player(); player.zoneEvil = this.zoneEvil; player.zoneMeteor = this.zoneMeteor; player.zoneDungeon = this.zoneDungeon; player.zoneJungle = this.zoneJungle; player.zoneHoly = this.zoneHoly; player.zoneSnow = this.zoneSnow; player.zoneBlood = this.zoneBlood; player.zoneCandle = this.zoneCandle; player.direction = this.direction; player.selectedItem = this.selectedItem; player.controlUp = this.controlUp; player.controlDown = this.controlDown; player.controlLeft = this.controlLeft; player.controlRight = this.controlRight; player.controlJump = this.controlJump; player.controlUseItem = this.controlUseItem; player.statLife = this.statLife; player.statLifeMax = this.statLifeMax; player.statMana = this.statMana; player.statManaMax = this.statManaMax; player.position.X = this.position.X; player.chest = this.chest; player.talkNPC = this.talkNPC; for (int i = 0; i < 59; i++) { player.inventory[i] = (Item)this.inventory[i].Clone(); if (i < 11) { player.armor[i] = (Item)this.armor[i].Clone(); } if (i < 3) { player.dye[i] = (Item)this.dye[i].Clone(); } } for (int j = 0; j < 10; j++) { player.buffType[j] = this.buffType[j]; player.buffTime[j] = this.buffTime[j]; } return player; } private static void EncryptFile(string inputFile, string outputFile) { string s = "h3y_gUyZ"; UnicodeEncoding unicodeEncoding = new UnicodeEncoding(); byte[] bytes = unicodeEncoding.GetBytes(s); FileStream fileStream = new FileStream(outputFile, FileMode.Create); RijndaelManaged rijndaelManaged = new RijndaelManaged(); CryptoStream cryptoStream = new CryptoStream(fileStream, rijndaelManaged.CreateEncryptor(bytes, bytes), CryptoStreamMode.Write); FileStream fileStream2 = new FileStream(inputFile, FileMode.Open); int num; while ((num = fileStream2.ReadByte()) != -1) { cryptoStream.WriteByte((byte)num); } fileStream2.Close(); cryptoStream.Close(); fileStream.Close(); } private static bool DecryptFile(string inputFile, string outputFile) { string s = "h3y_gUyZ"; UnicodeEncoding unicodeEncoding = new UnicodeEncoding(); byte[] bytes = unicodeEncoding.GetBytes(s); FileStream fileStream = new FileStream(inputFile, FileMode.Open); RijndaelManaged rijndaelManaged = new RijndaelManaged(); CryptoStream cryptoStream = new CryptoStream(fileStream, rijndaelManaged.CreateDecryptor(bytes, bytes), CryptoStreamMode.Read); FileStream fileStream2 = new FileStream(outputFile, FileMode.Create); try { int num; while ((num = cryptoStream.ReadByte()) != -1) { fileStream2.WriteByte((byte)num); } fileStream2.Close(); cryptoStream.Close(); fileStream.Close(); } catch { fileStream2.Close(); fileStream.Close(); File.Delete(outputFile); return true; } return false; } public static bool CheckSpawn(int x, int y) { if (x < 10 || x > Main.maxTilesX - 10 || y < 10 || y > Main.maxTilesX - 10) { return false; } if (Main.tile[x, y - 1] == null) { return false; } if (!Main.tile[x, y - 1].active() || Main.tile[x, y - 1].type != 79) { return false; } for (int i = x - 1; i <= x + 1; i++) { for (int j = y - 3; j < y; j++) { if (Main.tile[i, j] == null) { return false; } if (Main.tile[i, j].nactive() && Main.tileSolid[(int)Main.tile[i, j].type] && !Main.tileSolidTop[(int)Main.tile[i, j].type]) { Main.NewText("There is not enough space", 255, 240, 20, false); return false; } } } return WorldGen.StartRoomCheck(x, y - 1); } public void FindSpawn() { for (int i = 0; i < 200; i++) { if (this.spN[i] == null) { this.SpawnX = -1; this.SpawnY = -1; return; } if (this.spN[i] == Main.worldName && this.spI[i] == Main.worldID) { this.SpawnX = this.spX[i]; this.SpawnY = this.spY[i]; return; } } } public void ChangeSpawn(int x, int y) { int num = 0; while (num < 200 && this.spN[num] != null) { if (this.spN[num] == Main.worldName && this.spI[num] == Main.worldID) { for (int i = num; i > 0; i--) { this.spN[i] = this.spN[i - 1]; this.spI[i] = this.spI[i - 1]; this.spX[i] = this.spX[i - 1]; this.spY[i] = this.spY[i - 1]; } this.spN[0] = Main.worldName; this.spI[0] = Main.worldID; this.spX[0] = x; this.spY[0] = y; return; } num++; } for (int j = 199; j > 0; j--) { if (this.spN[j - 1] != null) { this.spN[j] = this.spN[j - 1]; this.spI[j] = this.spI[j - 1]; this.spX[j] = this.spX[j - 1]; this.spY[j] = this.spY[j - 1]; } } this.spN[0] = Main.worldName; this.spI[0] = Main.worldID; this.spX[0] = x; this.spY[0] = y; } public static void SavePlayer(Player newPlayer, string playerPath) { try { if (Main.mapEnabled) { Map.saveMap(); } } catch { } try { Directory.CreateDirectory(Main.PlayerPath); } catch { } if (Main.ServerSideCharacter) { return; } if (playerPath == null || playerPath == "") { return; } string destFileName = playerPath + ".bak"; if (File.Exists(playerPath)) { File.Copy(playerPath, destFileName, true); } string text = playerPath + ".dat"; using (FileStream fileStream = new FileStream(text, FileMode.Create)) { using (BinaryWriter binaryWriter = new BinaryWriter(fileStream)) { binaryWriter.Write(Main.curRelease); binaryWriter.Write(newPlayer.name); binaryWriter.Write(newPlayer.difficulty); binaryWriter.Write(newPlayer.hair); binaryWriter.Write(newPlayer.male); binaryWriter.Write(newPlayer.statLife); binaryWriter.Write(newPlayer.statLifeMax); binaryWriter.Write(newPlayer.statMana); binaryWriter.Write(newPlayer.statManaMax); binaryWriter.Write(newPlayer.hairColor.R); binaryWriter.Write(newPlayer.hairColor.G); binaryWriter.Write(newPlayer.hairColor.B); binaryWriter.Write(newPlayer.skinColor.R); binaryWriter.Write(newPlayer.skinColor.G); binaryWriter.Write(newPlayer.skinColor.B); binaryWriter.Write(newPlayer.eyeColor.R); binaryWriter.Write(newPlayer.eyeColor.G); binaryWriter.Write(newPlayer.eyeColor.B); binaryWriter.Write(newPlayer.shirtColor.R); binaryWriter.Write(newPlayer.shirtColor.G); binaryWriter.Write(newPlayer.shirtColor.B); binaryWriter.Write(newPlayer.underShirtColor.R); binaryWriter.Write(newPlayer.underShirtColor.G); binaryWriter.Write(newPlayer.underShirtColor.B); binaryWriter.Write(newPlayer.pantsColor.R); binaryWriter.Write(newPlayer.pantsColor.G); binaryWriter.Write(newPlayer.pantsColor.B); binaryWriter.Write(newPlayer.shoeColor.R); binaryWriter.Write(newPlayer.shoeColor.G); binaryWriter.Write(newPlayer.shoeColor.B); for (int i = 0; i < 11; i++) { if (newPlayer.armor[i].name == null) { newPlayer.armor[i].name = ""; } binaryWriter.Write(newPlayer.armor[i].netID); binaryWriter.Write(newPlayer.armor[i].prefix); } for (int j = 0; j < 3; j++) { binaryWriter.Write(newPlayer.dye[j].netID); binaryWriter.Write(newPlayer.dye[j].prefix); } for (int k = 0; k < 58; k++) { if (newPlayer.inventory[k].name == null) { newPlayer.inventory[k].name = ""; } binaryWriter.Write(newPlayer.inventory[k].netID); binaryWriter.Write(newPlayer.inventory[k].stack); binaryWriter.Write(newPlayer.inventory[k].prefix); } for (int l = 0; l < Chest.maxItems; l++) { if (newPlayer.bank[l].name == null) { newPlayer.bank[l].name = ""; } binaryWriter.Write(newPlayer.bank[l].netID); binaryWriter.Write(newPlayer.bank[l].stack); binaryWriter.Write(newPlayer.bank[l].prefix); } for (int m = 0; m < Chest.maxItems; m++) { if (newPlayer.bank2[m].name == null) { newPlayer.bank2[m].name = ""; } binaryWriter.Write(newPlayer.bank2[m].netID); binaryWriter.Write(newPlayer.bank2[m].stack); binaryWriter.Write(newPlayer.bank2[m].prefix); } for (int n = 0; n < 10; n++) { binaryWriter.Write(newPlayer.buffType[n]); binaryWriter.Write(newPlayer.buffTime[n]); } for (int num = 0; num < 200; num++) { if (newPlayer.spN[num] == null) { binaryWriter.Write(-1); break; } binaryWriter.Write(newPlayer.spX[num]); binaryWriter.Write(newPlayer.spY[num]); binaryWriter.Write(newPlayer.spI[num]); binaryWriter.Write(newPlayer.spN[num]); } binaryWriter.Write(newPlayer.hbLocked); binaryWriter.Close(); } } Player.EncryptFile(text, playerPath); File.Delete(text); } public static Player LoadPlayer(string playerPath) { bool flag = false; if (Main.rand == null) { Main.rand = new Random((int)DateTime.Now.Ticks); } Player player = new Player(); try { string text = playerPath + ".dat"; flag = Player.DecryptFile(playerPath, text); if (!flag) { using (FileStream fileStream = new FileStream(text, FileMode.Open)) { using (BinaryReader binaryReader = new BinaryReader(fileStream)) { int num = binaryReader.ReadInt32(); player.name = binaryReader.ReadString(); if (num >= 10) { if (num >= 17) { player.difficulty = binaryReader.ReadByte(); } else { bool flag2 = binaryReader.ReadBoolean(); if (flag2) { player.difficulty = 2; } } } player.hair = binaryReader.ReadInt32(); if (num <= 17) { if (player.hair == 5 || player.hair == 6 || player.hair == 9 || player.hair == 11) { player.male = false; } else { player.male = true; } } else { player.male = binaryReader.ReadBoolean(); } player.statLife = binaryReader.ReadInt32(); player.statLifeMax = binaryReader.ReadInt32(); if (player.statLifeMax > 500) { player.statLifeMax = 500; } if (player.statLife > player.statLifeMax) { player.statLife = player.statLifeMax; } player.statMana = binaryReader.ReadInt32(); player.statManaMax = binaryReader.ReadInt32(); if (player.statManaMax > 200) { player.statManaMax = 200; } if (player.statMana > 400) { player.statMana = 400; } player.hairColor.R = binaryReader.ReadByte(); player.hairColor.G = binaryReader.ReadByte(); player.hairColor.B = binaryReader.ReadByte(); player.skinColor.R = binaryReader.ReadByte(); player.skinColor.G = binaryReader.ReadByte(); player.skinColor.B = binaryReader.ReadByte(); player.eyeColor.R = binaryReader.ReadByte(); player.eyeColor.G = binaryReader.ReadByte(); player.eyeColor.B = binaryReader.ReadByte(); player.shirtColor.R = binaryReader.ReadByte(); player.shirtColor.G = binaryReader.ReadByte(); player.shirtColor.B = binaryReader.ReadByte(); player.underShirtColor.R = binaryReader.ReadByte(); player.underShirtColor.G = binaryReader.ReadByte(); player.underShirtColor.B = binaryReader.ReadByte(); player.pantsColor.R = binaryReader.ReadByte(); player.pantsColor.G = binaryReader.ReadByte(); player.pantsColor.B = binaryReader.ReadByte(); player.shoeColor.R = binaryReader.ReadByte(); player.shoeColor.G = binaryReader.ReadByte(); player.shoeColor.B = binaryReader.ReadByte(); Main.player[Main.myPlayer].shirtColor = player.shirtColor; Main.player[Main.myPlayer].pantsColor = player.pantsColor; Main.player[Main.myPlayer].hairColor = player.hairColor; if (num >= 38) { for (int i = 0; i < 11; i++) { player.armor[i].netDefaults(binaryReader.ReadInt32()); player.armor[i].Prefix((int)binaryReader.ReadByte()); } if (num >= 47) { for (int j = 0; j < 3; j++) { player.dye[j].netDefaults(binaryReader.ReadInt32()); player.dye[j].Prefix((int)binaryReader.ReadByte()); } } if (num >= 58) { for (int k = 0; k < 58; k++) { int num2 = binaryReader.ReadInt32(); if (num2 >= 1725) { player.inventory[k].netDefaults(0); } else { player.inventory[k].netDefaults(num2); player.inventory[k].stack = binaryReader.ReadInt32(); player.inventory[k].Prefix((int)binaryReader.ReadByte()); } } } else { for (int l = 0; l < 48; l++) { int num3 = binaryReader.ReadInt32(); if (num3 >= 1725) { player.inventory[l].netDefaults(0); } else { player.inventory[l].netDefaults(num3); player.inventory[l].stack = binaryReader.ReadInt32(); player.inventory[l].Prefix((int)binaryReader.ReadByte()); } } } if (num >= 58) { for (int m = 0; m < 40; m++) { player.bank[m].netDefaults(binaryReader.ReadInt32()); player.bank[m].stack = binaryReader.ReadInt32(); player.bank[m].Prefix((int)binaryReader.ReadByte()); } for (int n = 0; n < 40; n++) { player.bank2[n].netDefaults(binaryReader.ReadInt32()); player.bank2[n].stack = binaryReader.ReadInt32(); player.bank2[n].Prefix((int)binaryReader.ReadByte()); } } else { for (int num4 = 0; num4 < 20; num4++) { player.bank[num4].netDefaults(binaryReader.ReadInt32()); player.bank[num4].stack = binaryReader.ReadInt32(); player.bank[num4].Prefix((int)binaryReader.ReadByte()); } for (int num5 = 0; num5 < 20; num5++) { player.bank2[num5].netDefaults(binaryReader.ReadInt32()); player.bank2[num5].stack = binaryReader.ReadInt32(); player.bank2[num5].Prefix((int)binaryReader.ReadByte()); } } } else { for (int num6 = 0; num6 < 8; num6++) { player.armor[num6].SetDefaults(Item.VersionName(binaryReader.ReadString(), num)); if (num >= 36) { player.armor[num6].Prefix((int)binaryReader.ReadByte()); } } if (num >= 6) { for (int num7 = 8; num7 < 11; num7++) { player.armor[num7].SetDefaults(Item.VersionName(binaryReader.ReadString(), num)); if (num >= 36) { player.armor[num7].Prefix((int)binaryReader.ReadByte()); } } } for (int num8 = 0; num8 < 44; num8++) { player.inventory[num8].SetDefaults(Item.VersionName(binaryReader.ReadString(), num)); player.inventory[num8].stack = binaryReader.ReadInt32(); if (num >= 36) { player.inventory[num8].Prefix((int)binaryReader.ReadByte()); } } if (num >= 15) { for (int num9 = 44; num9 < 48; num9++) { player.inventory[num9].SetDefaults(Item.VersionName(binaryReader.ReadString(), num)); player.inventory[num9].stack = binaryReader.ReadInt32(); if (num >= 36) { player.inventory[num9].Prefix((int)binaryReader.ReadByte()); } } } for (int num10 = 0; num10 < 20; num10++) { player.bank[num10].SetDefaults(Item.VersionName(binaryReader.ReadString(), num)); player.bank[num10].stack = binaryReader.ReadInt32(); if (num >= 36) { player.bank[num10].Prefix((int)binaryReader.ReadByte()); } } if (num >= 20) { for (int num11 = 0; num11 < 20; num11++) { player.bank2[num11].SetDefaults(Item.VersionName(binaryReader.ReadString(), num)); player.bank2[num11].stack = binaryReader.ReadInt32(); if (num >= 36) { player.bank2[num11].Prefix((int)binaryReader.ReadByte()); } } } } if (num < 58) { for (int num12 = 40; num12 < 48; num12++) { player.inventory[num12 + 10] = (Item)player.inventory[num12].Clone(); player.inventory[num12].SetDefaults(0, false); } } if (num >= 11) { for (int num13 = 0; num13 < 10; num13++) { player.buffType[num13] = binaryReader.ReadInt32(); player.buffTime[num13] = binaryReader.ReadInt32(); } } for (int num14 = 0; num14 < 200; num14++) { int num15 = binaryReader.ReadInt32(); if (num15 == -1) { break; } player.spX[num14] = num15; player.spY[num14] = binaryReader.ReadInt32(); player.spI[num14] = binaryReader.ReadInt32(); player.spN[num14] = binaryReader.ReadString(); } if (num >= 16) { player.hbLocked = binaryReader.ReadBoolean(); } binaryReader.Close(); } } player.PlayerFrame(); File.Delete(text); Player result = player; return result; } } catch { flag = true; } if (flag) { try { string text2 = playerPath + ".bak"; Player result; if (File.Exists(text2)) { File.Delete(playerPath); File.Move(text2, playerPath); result = Player.LoadPlayer(playerPath); return result; } result = new Player(); return result; } catch { Player result = new Player(); return result; } } return new Player(); } public bool HasItem(int type) { for (int i = 0; i < 58; i++) { if (type == this.inventory[i].type && this.inventory[i].stack > 0) { return true; } } return false; } public void QuickGrapple() { if (this.noItems) { return; } int num = -1; for (int i = 0; i < 58; i++) { if (this.inventory[i].shoot == 13 || this.inventory[i].shoot == 32 || this.inventory[i].shoot == 73 || this.inventory[i].shoot == 165 || (this.inventory[i].shoot >= 230 && this.inventory[i].shoot <= 235) || this.inventory[i].shoot == 256) { num = i; break; } } if (num < 0) { return; } if (this.inventory[num].shoot == 73) { int num2 = 0; if (num >= 0) { for (int j = 0; j < 1000; j++) { if (Main.projectile[j].active && Main.projectile[j].owner == Main.myPlayer && (Main.projectile[j].type == 73 || Main.projectile[j].type == 74)) { num2++; } } } if (num2 > 1) { num = -1; } } else { if (this.inventory[num].shoot == 165) { int num3 = 0; if (num >= 0) { for (int k = 0; k < 1000; k++) { if (Main.projectile[k].active && Main.projectile[k].owner == Main.myPlayer && Main.projectile[k].type == 165) { num3++; } } } if (num3 > 8) { num = -1; } } else { if (num >= 0) { for (int l = 0; l < 1000; l++) { if (Main.projectile[l].active && Main.projectile[l].owner == Main.myPlayer && Main.projectile[l].type == this.inventory[num].shoot && Main.projectile[l].ai[0] != 2f) { num = -1; break; } } } } } if (num >= 0) { Main.PlaySound(2, (int)this.position.X, (int)this.position.Y, this.inventory[num].useSound); if (Main.netMode == 1 && this.whoAmi == Main.myPlayer) { NetMessage.SendData(51, -1, -1, "", this.whoAmi, 2f, 0f, 0f, 0); } int num4 = this.inventory[num].shoot; float shootSpeed = this.inventory[num].shootSpeed; int damage = this.inventory[num].damage; float knockBack = this.inventory[num].knockBack; if (num4 == 13 || num4 == 32 || (num4 >= 230 && num4 <= 235)) { this.grappling[0] = -1; this.grapCount = 0; for (int m = 0; m < 1000; m++) { if (Main.projectile[m].active && Main.projectile[m].owner == this.whoAmi) { if (Main.projectile[m].type == 13) { Main.projectile[m].Kill(); } if (Main.projectile[m].type >= 230 && Main.projectile[m].type <= 235) { Main.projectile[m].Kill(); } } } } if (num4 == 256) { int num5 = 0; int num6 = -1; int num7 = 100000; for (int n = 0; n < 1000; n++) { if (Main.projectile[n].active && Main.projectile[n].owner == this.whoAmi && Main.projectile[n].type == 256) { num5++; if (Main.projectile[n].timeLeft < num7) { num6 = n; num7 = Main.projectile[n].timeLeft; } } } if (num5 > 1) { Main.projectile[num6].Kill(); } } if (num4 == 73) { for (int num8 = 0; num8 < 1000; num8++) { if (Main.projectile[num8].active && Main.projectile[num8].owner == this.whoAmi && Main.projectile[num8].type == 73) { num4 = 74; } } } Vector2 vector = new Vector2(this.position.X + (float)this.width * 0.5f, this.position.Y + (float)this.height * 0.5f); float num9 = (float)Main.mouseX + Main.screenPosition.X - vector.X; float num10 = (float)Main.mouseY + Main.screenPosition.Y - vector.Y; if (this.gravDir == -1f) { num10 = Main.screenPosition.Y + (float)Main.screenHeight - (float)Main.mouseY - vector.Y; } float num11 = (float)Math.Sqrt((double)(num9 * num9 + num10 * num10)); num11 = shootSpeed / num11; num9 *= num11; num10 *= num11; Projectile.NewProjectile(vector.X, vector.Y, num9, num10, num4, damage, knockBack, this.whoAmi, 0f, 0f); } } public Player() { for (int i = 0; i < 59; i++) { if (i < 11) { this.armor[i] = new Item(); this.armor[i].name = ""; } this.inventory[i] = new Item(); this.inventory[i].name = ""; } for (int j = 0; j < Chest.maxItems; j++) { this.bank[j] = new Item(); this.bank[j].name = ""; this.bank2[j] = new Item(); this.bank2[j].name = ""; } for (int k = 0; k < 3; k++) { this.dye[k] = new Item(); } this.grappling[0] = -1; this.inventory[0].SetDefaults("Copper Shortsword"); this.inventory[1].SetDefaults("Copper Pickaxe"); this.inventory[2].SetDefaults("Copper Axe"); this.statManaMax = 20; if (Main.cEd) { this.inventory[3].SetDefaults(603, false); } for (int l = 0; l < 251; l++) { this.adjTile[l] = false; this.oldAdjTile[l] = false; } } } }