Decimation_Mod/Content/Items/Armors/ScarabArmor/ScarabHelmet.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

136 lines
5.3 KiB
C#

using System.Collections.Generic;
using Decimation.Content.Buffs.Buffs;
using Decimation.Content.Items.Misc.Souls;
using Decimation.Content.Tiles;
using Decimation.Lib.Items;
using Decimation.Lib.Util;
using Microsoft.Xna.Framework;
using Terraria;
using Terraria.Graphics.Shaders;
using Terraria.ID;
using Terraria.ModLoader;
namespace Decimation.Content.Items.Armors.ScarabArmor
{
[AutoloadEquip(EquipType.Head)]
internal class ScarabHelmet : DecimationItem
{
protected override string ItemName => "Solar Scarab Helmet";
protected override string ItemTooltip => "25 % increased melee critical hit chances" +
"\nEnemis are more likely to target you";
protected override void Init()
{
item.width = 26;
item.height = 26;
item.rare = Rarity.Red.GetRarityValue();
this.item.maxStack = 1;
this.item.defense = 30;
}
public override void UpdateEquip(Player player)
{
player.meleeCrit += 25;
player.aggro += 250;
Lighting.AddLight((int) (player.position.X + player.width / 2f) / 16,
(int) (player.position.Y + player.height / 2f) / 16, 1.05f, 0.95f, 0.55f);
}
public override bool IsArmorSet(Item head, Item body, Item legs)
{
if (head.type == item.type && body.type == ModContent.ItemType<ScarabBody>() &&
legs.type == ModContent.ItemType<ScarabLeggings>())
return true;
return false;
}
public override void UpdateArmorSet(Player player)
{
DecimationPlayer modPlayer = player.GetModPlayer<DecimationPlayer>();
player.AddBuff(ModContent.BuffType<ScarabEndurance>(), 1);
player.arrowDamage *= 1.05f;
player.bulletDamage *= 1.05f;
player.magicDamage *= 1.05f;
player.meleeDamage *= 1.05f;
player.minionDamage *= 1.05f;
player.rangedDamage *= 1.05f;
player.rocketDamage *= 1.05f;
player.thrownDamage *= 1.05f;
player.buffImmune[BuffID.OnFire] = true;
player.buffImmune[BuffID.CursedInferno] = true;
player.lavaImmune = true;
player.setSolar = true;
player.setBonus =
"Summons scarabs to protect you, add 5% damages to each attacks, gives immunity to On Fire!, Cursed Inferno and Lava.";
modPlayer.solarCounter++;
int num11 = 240;
if (modPlayer.solarCounter >= num11)
{
if (player.solarShields > 0 && player.solarShields < 3)
for (int num12 = 0; num12 < 22; num12++)
if (player.buffType[num12] >= 170 && player.buffType[num12] <= 171)
player.DelBuff(num12);
if (player.solarShields < 3)
{
player.AddBuff(170 + player.solarShields, 5, false);
for (int num13 = 0; num13 < 16; num13++)
{
Dust dust = Main.dust[
Dust.NewDust(player.position, player.width, player.height, 6, 0f, 0f, 100)];
dust.noGravity = true;
dust.scale = 1.7f;
dust.fadeIn = 0.5f;
Dust dust2 = dust;
dust2.velocity *= 5f;
dust.shader = GameShaders.Armor.GetSecondaryShader(player.ArmorSetDye(), player);
}
modPlayer.solarCounter = 0;
}
else
{
modPlayer.solarCounter = num11;
}
}
for (int num14 = player.solarShields; num14 < 3; num14++) player.solarShieldPos[num14] = Vector2.Zero;
for (int num15 = 0; num15 < player.solarShields; num15++)
{
player.solarShieldPos[num15] += player.solarShieldVel[num15];
Vector2 value = (player.miscCounter / 100f * 6.28318548f + num15 * (6.28318548f / player.solarShields))
.ToRotationVector2() * 6f;
value.X = player.direction * 20;
player.solarShieldVel[num15] = (value - player.solarShieldPos[num15]) * 0.2f;
}
if (player.dashDelay >= 0)
{
player.solarDashing = false;
player.solarDashConsumedFlare = false;
}
bool flag = player.solarDashing && player.dashDelay < 0;
if ((player.solarShields > 0) | flag) player.dash = 3;
}
protected override List<ModRecipe> GetAdditionalRecipes()
{
ModRecipe recipe = GetNewModRecipe(this, 1, new List<int> {ModContent.TileType<TitanForge>()});
recipe.AddIngredient(ItemID.SolarFlareHelmet);
recipe.AddIngredient(ItemID.BeetleHelmet);
recipe.AddIngredient(ItemID.LunarOre, 15);
recipe.AddIngredient(ItemID.SoulofMight, 5);
recipe.AddIngredient(ItemID.SoulofFright, 5);
recipe.AddIngredient(ModContent.ItemType<SoulofSpite>(), 5);
recipe.AddIngredient(ItemID.LavaBucket);
return new List<ModRecipe> {recipe};
}
}
}