using Decimation.Content.Items.Boss.Arachnus; using Decimation.Content.NPCs.Arachnus; using Decimation.Lib.Tiles; using Decimation.Lib.Util; using Microsoft.Xna.Framework; using Terraria; using Terraria.DataStructures; using Terraria.ID; using Terraria.ModLoader; using Terraria.ObjectData; namespace Decimation.Content.Tiles.ShrineoftheMoltenOne { class ShrineAltar : DecimationMultiTile { public override Color MapColor => new Color(33, 28, 25); public override int TileItem => ModContent.ItemType(); public override TileObjectData Style => TileObjectData.Style5x4; public override int? Height => 3; public override Point16 Origin => new Point16(2, 1); public override string Name => "Shrine Altar"; public override int DustType => DustID.LavaMoss; public override int? AnimationFrameCount => 6; public override int? AnimationFrameHeight => 54; public override bool HasLight => true; private readonly Vector3 _lightColor = LightingUtils.Rgb255ToRgb1(255, 155, 48); public override void ModifyLight(int i, int j, ref float r, ref float g, ref float b) { r = _lightColor.X; g = _lightColor.Y; b = _lightColor.Z; } public override bool NewRightClick(int i, int j) { Player player = Main.LocalPlayer; Item[] inventory = player.inventory; bool inventoryContainAmulet = false; for (int k = 0; k < inventory.Length; k++) if (inventory[k].type == ModContent.ItemType()) { inventoryContainAmulet = true; inventory[k].TurnToAir(); break; } if (inventoryContainAmulet) { if (Main.netMode == 1) { ModPacket packet = mod.GetPacket(); packet.Write((byte) DecimationModMessageType.SpawnBoss); packet.Write(ModContent.NPCType()); packet.Write(player.whoAmI); packet.Send(); } else if (Main.netMode == 0) { Main.PlaySound(15, (int) player.position.X, (int) player.position.Y, 0); NPC.SpawnOnPlayer(player.whoAmI, ModContent.NPCType()); } } return inventoryContainAmulet; } public override void MouseOver(int i, int j) { Player player = Main.LocalPlayer; player.noThrow = 2; player.showItemIcon = true; player.showItemIcon2 = ModContent.ItemType(); } public override bool CanKillTile(int i, int j, ref bool blockDamaged) { return DecimationWorld.downedArachnus; } } }