Decimation_Mod/Content/NPCs/DuneWyrm/AncientTombCrawler/AncientTombCrawlerFriendly.cs
FyloZ 884e67c5e2 Updated some potions's sprite.
Changed buy price to sell price.
2020-07-09 18:03:44 -04:00

157 lines
4.6 KiB
C#

using System.IO;
using Decimation.Lib.NPCs;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
namespace Decimation.Content.NPCs.DuneWyrm.AncientTombCrawler
{
public class AncientTombCrawlerFriendlyHead : AncientTombCrawlerFriendly
{
public override string Texture => "Decimation/Content/NPCs/DuneWyrm/AncientTombCrawler/AncientTombCrawlerHead";
public override void SetDefaults()
{
npc.damage = 50;
npc.defense = 5;
npc.width = 38;
npc.height = 38;
npc.value = Item.sellPrice(gold: 3);
npc.npcSlots = 1f;
npc.aiStyle = -1;
npc.dontTakeDamage = true;
}
public override void Init()
{
base.Init();
head = true;
}
public override bool PreDraw(SpriteBatch spriteBatch, Color drawColor)
{
Draw("Content/NPCs/DuneWyrm/AncientTombCrawler/AncientTombCrawlerHead", spriteBatch, drawColor);
return false;
}
}
public class AncientTombCrawlerFriendlyBody : AncientTombCrawlerFriendly
{
public override string Texture => "Decimation/Content/NPCs/DuneWyrm/AncientTombCrawler/AncientTombCrawlerBody";
public override void SetDefaults()
{
npc.width = 24;
npc.height = 24;
npc.damage = 35;
npc.defense = 2;
npc.lifeMax = 1;
npc.dontCountMe = true;
}
public override bool PreDraw(SpriteBatch spriteBatch, Color drawColor)
{
Draw("Content/NPCs/DuneWyrm/AncientTombCrawler/AncientTombCrawlerBody", spriteBatch, drawColor);
return false;
}
}
public class AncientTombCrawlerFriendlyTail : AncientTombCrawlerFriendly
{
public override string Texture => "Decimation/Content/NPCs/DuneWyrm/AncientTombCrawler/AncientTombCrawlerTail";
public override void SetDefaults()
{
npc.width = 20;
npc.height = 20;
npc.damage = 35;
npc.defense = 2;
npc.lifeMax = 1;
npc.dontCountMe = true;
}
public override void Init()
{
base.Init();
tail = true;
}
public override bool PreDraw(SpriteBatch spriteBatch, Color drawColor)
{
Draw("Content/NPCs/DuneWyrm/AncientTombCrawler/AncientTombCrawlerTail", spriteBatch, drawColor);
return false;
}
}
public abstract class AncientTombCrawlerFriendly : Worm
{
protected const float BaseSpeed = 10f;
public override void SetStaticDefaults()
{
DisplayName.SetDefault("Friendly Ancient Tomb Crawler");
}
public override void Init()
{
minLength = 8;
maxLength = 8;
tailType = ModContent.NPCType<AncientTombCrawlerTail>();
bodyType = ModContent.NPCType<AncientTombCrawlerBody>();
headType = ModContent.NPCType<AncientTombCrawlerHead>();
speed = BaseSpeed;
turnSpeed = 0.045f;
npc.scale = 1.5f;
npc.lavaImmune = true;
npc.noGravity = true;
npc.noTileCollide = true;
npc.behindTiles = true;
npc.knockBackResist = 0f;
npc.netAlways = true;
npc.DeathSound = SoundID.NPCDeath18;
npc.HitSound = SoundID.NPCHit1;
undergroundSound = mod.GetLegacySoundSlot(SoundType.Custom, "Sounds/Custom/Earthquake");
}
public override bool PreAI()
{
return false;
}
protected override void SendSoundPacket()
{
// GetPacket(AncientTombCrawlerMessageType.UndergroundSound).Send();
}
private ModPacket GetPacket(AncientTombCrawlerMessageType type)
{
ModPacket packet = mod.GetPacket();
// packet.Write((byte) DecimationModMessageType.AncientTombCrawler);
// packet.Write(npc.whoAmI);
// packet.Write((byte) type);
return packet;
}
public void HandlePacket(BinaryReader reader)
{
// AncientTombCrawlerMessageType type = (AncientTombCrawlerMessageType) reader.ReadByte();
// switch (type)
// {
// case AncientTombCrawlerMessageType.UndergroundSound:
// Main.PlaySound(undergroundSound, npc.Center);
// break;
// }
}
public override bool ShouldRun()
{
return false;
}
}
}