Decimation_Mod/Content/Projectiles/DecimationProjectile.cs
FyloZ ec4585bed5 - Changed Bloodshot Eye's music to Boss 1 Orchestra ( https://www.youtube.com/watch?time_continue=120&v=r-9nKGc85FQ )
- Added support for animated projectiles
- Refactoring
- Removed useless fields
- Fixed swords not dealing damages
- Added Hour Hand (from Evie's PR)
2020-03-21 00:11:07 -04:00

57 lines
1.9 KiB
C#

using Decimation.Lib.Items;
using Terraria;
using Terraria.ModLoader;
namespace Decimation.Content.Projectiles
{
public abstract class DecimationProjectile : ModProjectile
{
protected virtual int Damages { get; set; } = 0;
protected virtual DecimationWeapon.DamageType DamageType { get; set; } = DecimationWeapon.DamageType.Melee;
protected virtual int AnimationFrames { get; } = -1;
protected abstract void Init();
// public override void SetStaticDefaults()
// {
// if (AnimationFrames >= 0) Main.projFrames[projectile.type] = AnimationFrames;
// }
public sealed override void SetDefaults()
{
this.projectile.aiStyle = 1;
this.projectile.height = 16;
this.projectile.width = 16;
this.projectile.hostile = false;
this.projectile.friendly = !this.projectile.hostile;
this.projectile.ignoreWater = false;
this.projectile.light = 0f;
this.projectile.penetrate = 0;
this.projectile.tileCollide = true;
this.projectile.timeLeft = 180;
Init();
this.projectile.damage = Damages;
switch (DamageType)
{
case DecimationWeapon.DamageType.Melee:
this.projectile.melee = true;
break;
case DecimationWeapon.DamageType.Magic:
this.projectile.magic = true;
break;
case DecimationWeapon.DamageType.Ranged:
this.projectile.ranged = true;
break;
case DecimationWeapon.DamageType.Throw:
this.projectile.thrown = true;
break;
default:
this.projectile.melee = true;
break;
}
}
}
}