sing System;
using System.Collections.Generic;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
namespace ExampleMod.Items {
public class PoisonGasp : ModItem
{
public override bool Autoload(ref string name, ref string texture, IList<EquipType> equips)
{
equips.Add(EquipType.Wings);
return true;
}
public override void SetDefaults()
{
item.name = "Poison Gasp";
item.width = 24;
item.height = 28;
item.toolTip = "A breath from the void";
item.value = 10000;
item.rare = 8;
item.accessory = true;
item.defense = 8;
item.lifeRegen = 19;
item.expert = true;
}
public virtual void WingUpdate(Player player, bool inUse)
{
// ErrorLogger.Log("WingUpdate");
if (inUse || player.jump > 0)
{
player.rocketDelay2--;
if (player.rocketDelay2 <= 0)
{
Main.PlaySound(2, Style: mod.GetSoundSlot(SoundType.Item, "Sounds/Item/BoosterSound"));
//Main.PlaySound(2, (int)player.position.X, (int)player.position.Y, 13);
player.rocketDelay2 = 10;
}
int num84 = 2;
if (player.controlUp)
{
num84 = 4;
}
num84 = 1;
for (int num85 = 0; num85 < num84; num85++)
{
// int type = 6;
if (player.head == 41)
{
int arg_5D0E_0 = player.body;
}
float scale = 1.75f;
int alpha = 100;
float x3 = player.position.X + (float)(player.width / 2) + 16f;
if (player.direction > 0)
{
x3 = player.position.X + (float)(player.width / 2) - 26f;
}
float num86 = player.position.Y + (float)player.height - 18f;
if (num85 == 1 || num85 == 3)
{
x3 = player.position.X + (float)(player.width / 2) + 8f;
if (player.direction > 0)
{
x3 = player.position.X + (float)(player.width / 2) - 20f;
}
num86 += 6f;
}
if (num85 > 1)
{
num86 += player.velocity.Y;
}
int dust = ModDust.NewDust(new Vector2(x3, num86), 8, 8, mod, "DarkMatter");
Main.dust[dust].scale = 2;
// Main.dust[dust].position = position - Main.dust[dust].scale * new Vector2(4, 4);
// int num87 = Dust.NewDust(new Vector2(x3, num86), 8, 8, type, 0f, 0f, alpha, default(Color), scale);
Dust expr_5E21_cp_0 = Main.dust[dust];
expr_5E21_cp_0.velocity.X = expr_5E21_cp_0.velocity.X * 0.1f;
Main.dust[dust].velocity.Y = Main.dust[dust].velocity.Y * 1f + 2f * player.gravDir - player.velocity.Y * 0.3f;
Main.dust[dust].noGravity = true;
// Main.dust[num87].shader = GameShaders.Armor.GetSecondaryShader(player.cWings, this);
if (num84 == 4)
{
Dust expr_5EB9_cp_0 = Main.dust[dust];
expr_5EB9_cp_0.velocity.Y = expr_5EB9_cp_0.velocity.Y + 6f;
}
}
player.wingFrameCounter++;
if (player.wingFrameCounter > 4)
{
player.wingFrame++;
player.wingFrameCounter = 0;
if (player.wingFrame >= 3)
{
player.wingFrame = 0;
}
}
}
else if (!player.controlJump || player.velocity.Y == 0f)
{
player.wingFrame = 3;
}
}
public override void UpdateAccessory(Player player)
{
Dust.NewDust(player.Center, 0, 0, mod, "DarkMatter", (Main.rand.NextFloat() - .5f) * 1f, (Main.rand.NextFloat() - .5f) * 1f);
{
player.wingTimeMax = 280;
}
}
public override void VerticalWingSpeeds(ref float ascentWhenFalling, ref float ascentWhenRising,
ref float maxCanAscendMultiplier, ref float maxAscentMultiplier, ref float constantAscend)
{
ascentWhenFalling = 0.85f;
ascentWhenRising = 0.65f;
maxCanAscendMultiplier = 2f;
maxAscentMultiplier = 2f;
constantAscend = 1.5f;
}
public override void AddRecipes()
{
ModRecipe recipe = new ModRecipe(mod);
recipe.AddIngredient(null, "DarkMatter", 60);
recipe.AddTile(null, "ExampleWorkbench");
recipe.SetResult(this);
recipe.AddRecipe();
}
}}