using Decimation.Content.Buffs.Buffs; using Decimation.Content.Buffs.Debuffs; using Decimation.Lib.Tiles; using Decimation.Lib.Util; using Microsoft.Xna.Framework; using Terraria; using Terraria.ID; using Terraria.ModLoader; using Terraria.DataStructures; namespace Decimation.Content.Tiles.ShrineoftheMoltenOne { class RedHotSpike : DecimationFramedTile { public override Color MapColor => new Color(196, 35, 0); public override int TileItem => ModContent.ItemType(); public override int DustType => DustID.Stone; public override bool MergeDirt => true; public override bool HasLight => true; private readonly Vector3 _lightColor = LightingUtils.Rgb255ToRgb1(255, 155, 48); protected override void InitFramedTile() { TileID.Sets.DrawsWalls[Type] = true; TileID.Sets.NotReallySolid[Type] = true; } 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 Dangersense(int i, int j, Player player) => true; public override void NearbyEffects(int i, int j, bool closer) { Player player = Main.LocalPlayer; float playerX = player.position.X; float playerY = player.position.Y; if (playerX / 16 - i <= 2 && playerX / 16 - i >= -2 && playerY / 16 - j <= 2 && playerY / 16 - j >= -4.3f) player.AddBuff(ModContent.BuffType(), 300); if (playerX / 16 - i <= 1 && playerX / 16 - i >= -1.25f && playerY / 16 - j <= 1.1f && playerY / 16 - j >= -3.3f) player.Hurt(PlayerDeathReason.LegacyDefault(), 100, 0); } public override bool CanKillTile(int i, int j, ref bool blockDamaged) { return DecimationWorld.downedArachnus; } } }