public override bool Shoot(Player player, ref Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack) { ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); if (player.altFunctionUse == 2) { modPlayer.WindGauntletCD = 60; } else { player.immuneTime += 1; } if (player.itemAnimation == 1) { player.immuneTime += 45; } player.velocity.X += speedX / 10; player.velocity.Y += speedY / 10; player.immuneTime += 1; player.immune = true; if (player.altFunctionUse != 2) { int dust3 = Dust.NewDust((player.itemLocation - player.position).RotatedBy(player.itemRotation) + player.position, 0, 0, 87, 0f, 0f, 25, Color.Goldenrod, 1.5f); Main.dust[dust3].noGravity = true; Main.dust[dust3].velocity = new Vector2(0, 0); } return(false); }
public override bool CanUseItem(Player player) { ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); if (player.altFunctionUse == 2) //2 is right click { player.MinionNPCTargetAim(); item.useTime = 28; item.useAnimation = 28; item.damage = 400; item.mana = 0; if (Main.npc.IndexInRange(player.MinionAttackTargetNPC)) { item.mana = 45; Main.PlaySound(2, player.Center, 20); player.Teleport(Main.npc[player.MinionAttackTargetNPC].position + new Vector2(Main.npc[player.MinionAttackTargetNPC].direction * (Main.npc[player.MinionAttackTargetNPC].width), 0), 1); } //item.summon = true; //item.shoot = 327; } else { item.useTime = 7; item.useAnimation = 7; item.damage = 100; item.mana = 0; //item.summon = false; //item.shoot = ProjectileType("FireWhip"); } return(base.CanUseItem(player)); }
public override void AI() { Player player = Main.player[projectile.owner]; ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); int hooksOut = 0; for (int l = 0; l < 1000; l++) { if (Main.projectile[l].active && Main.projectile[l].owner == Main.myPlayer && Main.projectile[l].type == projectile.type) { if (hooksOut > 0) { Vector2 trgtvel = player.position - projectile.position; trgtvel.Normalize(); Main.npc[(int)projectile.ai[1]].velocity += 30 * trgtvel; Main.projectile[l].Kill(); projectile.Kill(); } hooksOut++; } } if (projectile.damage == 0 && projectile.ai[1] != 0) { projectile.position = Main.npc[(int)projectile.ai[0]].Center; } if (projectile.damage == 0 && projectile.ai[1] != 0 && !Main.npc[(int)projectile.ai[0]].active) { projectile.Kill(); } }
public override void AI() //this make that the projectile will face the corect way { // | Player player = Main.player[projectile.owner]; ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); modPlayer.IceShield = true; Vector2 mousePos = Main.MouseWorld; Vector2 unit = (player.Center - mousePos); unit.Normalize(); unit *= -10; projectile.position = player.position /*- (new Vector2(35,0))*/ + new Vector2(50).RotatedBy((float)Math.Atan2((player.Center - mousePos).Y, (player.Center - mousePos).X) + 1.557f); projectile.rotation = (float)Math.Atan2((player.Center - mousePos).Y, (player.Center - mousePos).X) + 1.8157f; for (int i = 0; i < Main.projectile.Length; i++) { if (projectile.Hitbox.Intersects(Main.projectile[i].Hitbox) && Main.projectile[i].type != ProjectileType <IceShield>()) { projectile.damage += (int)(Main.projectile[i].damage * 0.1f); //Main.projectile[i].velocity.; } } if (modPlayer.channelsword > 0) { projectile.timeLeft = 3600; } if (modPlayer.channelsword == 0) { //projectile.timeLeft = Math.Min(3,projectile.timeLeft); projectile.Kill(); } }
public override void HoldItem(Player player) { ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); item.autoReuse = false; modPlayer.reloadablegun = 2; reloading = Math.Max(reloading, 0); if (modPlayer.reloadgun && reloading <= 10 /* && reloading > 0*/) { altfire = -3; } if (modPlayer.reloadgun || RoundsLeft <= 0) { if (/*RoundsLeft != RoundsMax && */ reloading == 0) { reloading = 1; } modPlayer.reloadgun = false; } if (player.altFunctionUse == 2) //2 is right click { item.useTime = 5; item.useAnimation = (5 * RoundsMax /*RoundsLeft*/) + 4; item.damage = 40; } else { item.useTime = 10; item.useAnimation = 10; item.damage = 75; } }
public override bool Shoot(Player player, ref Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack) { if (player.altFunctionUse != 2) { int numberProjectiles = 3 + Main.rand.Next(2); //This defines how many projectiles to shot. 4 + Main.rand.Next(2)= 4 or 5 shots for (int i = 0; i < numberProjectiles; i++) { Vector2 perturbedSpeed = new Vector2(speedX, speedY).RotatedByRandom(MathHelper.ToRadians(30)); // This defines the projectiles random spread . 30 degree spread. int a = Projectile.NewProjectile(position.X, position.Y, perturbedSpeed.X, perturbedSpeed.Y, type, damage, knockBack, player.whoAmI); Main.projectile[a].magic = true; Main.projectile[a].friendly = true; Main.projectile[a].hostile = false; Main.projectile[a].timeLeft = 60; Main.projectile[a].penetrate = -1; } return(false); } else { ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); if (!modPlayer.IceShield && modPlayer.channelice == 0) { Projectile.NewProjectile(position.X, position.Y, speedX, speedY, type, damage, knockBack, player.whoAmI); } modPlayer.channelice = 3; return(false); } }
public override bool CanUseItem(Player player) { ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); //item.shoot = bullets[0].id; item.shootSpeed = 12.5f + (bullets[0].speed * (item.shootSpeed / 12)); if (RoundsLeft == 0) { player.itemAnimation = 0; return(false); } if (player.altFunctionUse == 2) //2 is right click { item.useTime = 5; item.useAnimation = (5 * RoundsMax /*RoundsLeft*/) + 4; item.damage = 40; altfire = 1; } else { item.useTime = 7; item.useAnimation = 7; item.damage = 85; altfire = -1; } if (reloading > 0 && RoundsLeft > 5) { reloading = 0; } item.autoReuse = false; return(base.CanUseItem(player)); }
public override void AI() //this make that the projectile will face the corect way { // | Player player = Main.player[projectile.owner]; ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); modPlayer.FlameShield = true; Vector2 mousePos = Main.MouseWorld; Vector2 unit = (player.Center - mousePos); unit.Normalize(); unit *= -2; if (projectile.penetrate < maxCharge && player.channel && projectile.timeLeft == 15) { projectile.penetrate++; projectile.timeLeft = 60; } projectile.light = projectile.penetrate * (1 / 3); if (player.channel && projectile.timeLeft >= 14) { projectile.position = player.Center + unit; projectile.rotation = (float)Math.Atan2((player.Center - mousePos).Y, (player.Center - mousePos).X) + 101.57f; } if (!player.channel && projectile.timeLeft == 12) { projectile.timeLeft = Math.Min(projectile.timeLeft, 15); projectile.velocity = unit * 3; projectile.damage *= 3; } }
public override void AI() //this make that the projectile will face the corect way { // | Player player = Main.player[projectile.owner]; ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); Vector2 mousePos = Main.MouseWorld; projectile.rotation = (float)Math.Atan2((double)projectile.velocity.Y, (double)projectile.velocity.X) + 1.57f; Vector2 unit = (mousePos - player.Center); unit.Normalize(); if (_charge < maxCharge && modPlayer.channellightning >= 1 && modPlayer.channellightningid == projectile.whoAmI) { _charge++; projectile.damage++; } if (!(modPlayer.channellightning >= 1 && modPlayer.channellightningid == projectile.whoAmI)) { if (projectile.hide) { Main.PlaySound(42, projectile.position, 186); } projectile.hide = false; projectile.tileCollide = true; } }
public override bool PreKill(int timeLeft) { Player player = Main.player[projectile.owner]; ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); return(!(modPlayer.channellightning >= 1 && modPlayer.channellightningid == projectile.whoAmI)); }
public override void ModifyTooltips(List <TooltipLine> tooltips) { Player player = Main.player[item.owner]; ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); for (int i = 0; i < tooltips.Count; i++) { if (tooltips[i].text.Contains("DisplayConsumed")) { TooltipLine tip; tip = new TooltipLine(mod, "DisplayConsumed", "Minion slot boost:" + 90 * modPlayer.consumedgravityglobes); tip.overrideColor = new Color(255, 32, 174, 200); tooltips.RemoveAt(i); tooltips.Insert(i, tip); } if (tooltips[i].text == "Chaos") { TooltipLine tip; tip = new TooltipLine(mod, "Chaos", "Chaos"); tip.overrideColor = new Color(255, 32, 174, 200); tooltips.RemoveAt(i); tooltips.Insert(i, tip); } } }
public override bool CanUseItem(Player player) { ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); if (player.altFunctionUse == 2) //2 is right click { item.useTime = 7; item.useAnimation = 7 * RoundsMax; } else { item.useTime = 10; item.useAnimation = 10; } if (reloading > 0 && RoundsLeft != 0) { reloading = 0; } if (RoundsLeft <= 0) { return(false); } item.autoReuse = false; return(base.CanUseItem(player)); }
public override bool Shoot(Player player, ref Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack) { ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); modPlayer.pullhook = 3; return(true); }
public override void Update(Player player, ref int buffIndex) { ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); player.noKnockback = false; player.autoJump = false; player.dashDelay = 10; }
public override void HoldItem(Player player) { ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); int dust3 = Dust.NewDust(player.Center - new Vector2(((2 - player.direction) * 2) + (player.direction == 1?0:0.85f), 13), 0, 0, 182, 0f, 0f, 25, Color.Orange, (modPlayer.FireWings || charge >= 30)?0.65f:0.55f); Main.dust[dust3].noGravity = true; Main.dust[dust3].velocity *= (modPlayer.FireWings || charge >= 30)?0.23f:0.07f; }
public override void RightClick(Player player) { ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); //item.toolTip = modPlayer.pullhook + ""; modPlayer.pullhook = 5; base.RightClick(player); }
public override bool CanUseItem(Player player) { ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); //item.toolTip = modPlayer.pullhook + ""; modPlayer.pullhook = 5; Main.NewText("!"); return(base.CanUseItem(player)); }
public override bool Shoot(Player player, ref Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack) { ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); //item.toolTip = modPlayer.pullhook + ""; modPlayer.pullhook = 5; Main.NewText("."); return(false); }
public int projectileid(Player player, int id = -1) { ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); if (id != -1) { modPlayer.channellightningid = id; } return(modPlayer.channellightningid); }
public override bool UseItem(Player player) { ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); modPlayer.consumedgravityglobes++; if (modPlayer.consumedgravityglobes > 1) { Main.NewText("Stop it, get some help"); } return(true); }
/*public override void AddRecipes() //How to craft this item * { * ModRecipe recipe = new ModRecipe(mod); * recipe.AddIngredient(null, "ChaosMaterial", 20); //you need 20 Wind * recipe.AddTile(TileID.SkyMill); //at work bench * recipe.SetResult(this); * recipe.AddRecipe(); * }*/ public override void UpdateAccessory(Player player, bool hideVisual) { //player.HeldItem.crit = Math.Min(player.HeldItem.crit*2, 500000); ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); modPlayer.multiplyCrit += 1.0f; if (item.prefix == 68) { modPlayer.multiplyCrit += 0.5f; } }
public override bool Shoot(Player player, ref Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack) { ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); Vector2 offset = new Vector2(speedX, speedY); offset.Normalize(); Dust.NewDust(position + offset, 1, 1, 134, 0, 0, 0, Color.White, 0.3f); if (player.altFunctionUse == 2) { int numberProjectiles = 5; //This defines how many projectiles to shot. 4 + Main.rand.Next(2)= 4 or 5 shots for (int i = 0; i < numberProjectiles; i++) { Vector2 perturbedSpeed = new Vector2(speedX, speedY).RotatedByRandom(MathHelper.ToRadians(1)); // This defines the projectiles random spread . 30 degree spread. int a = Projectile.NewProjectile(position.X, position.Y, perturbedSpeed.X, perturbedSpeed.Y, ProjectileType <CrystalShot>(), damage, knockBack, player.whoAmI); Main.projectile[a].ai[0] = 0.25f; if (item.prefix == 57) { Main.projectile[a].ai[0] = 0.4f; } if (item.prefix == 57 && Main.expertMode) { Main.projectile[a].ai[0] = 0.8f; } } modPlayer.chaoschaingunspool = Math.Min(modPlayer.chaoschaingunspool + 0.85f, 9); //Main.PlaySound(42, (int)player.position.X, (int)player.position.Y, 165); Main.PlaySound(2, (int)player.position.X, (int)player.position.Y, 91); player.HealEffect((int)modPlayer.chaoschaingunspool); return(false); } else { Vector2 perturbedSpeed = new Vector2(speedX, speedY).RotatedByRandom(MathHelper.ToRadians(((int)modPlayer.chaoschaingunspool * 1.5f))); // This defines the projectiles random spread . 30 degree spread. player.itemRotation = (float)Math.Atan2(-perturbedSpeed.X, perturbedSpeed.Y); player.itemRotation = (player.itemRotation + (float)Math.Atan2(perturbedSpeed.X, -perturbedSpeed.Y)) / 2; if (modPlayer.chaoschaingunspool == 0.0f) { damage *= 10; } int a = Projectile.NewProjectile(position.X, position.Y, perturbedSpeed.X, perturbedSpeed.Y, 89, damage, knockBack, player.whoAmI); int b = Projectile.NewProjectile(position.X, position.Y, perturbedSpeed.X * 3, perturbedSpeed.Y * 3, 94, damage, knockBack, player.whoAmI); if (modPlayer.chaoschaingunspool == 0.0f) { Main.projectile[a].extraUpdates = 5; Main.projectile[b].extraUpdates = 3; } modPlayer.chaoschaingunspool = Math.Min(modPlayer.chaoschaingunspool + 2.0f, 9); player.HealEffect((int)modPlayer.chaoschaingunspool); return(false); } }
/*public override void AddRecipes() //How to craft this item * { * ModRecipe recipe = new ModRecipe(mod); * recipe.AddIngredient(null, "ChaosMaterial", 20); //you need 20 Wind * recipe.AddTile(TileID.SkyMill); //at work bench * recipe.SetResult(this); * recipe.AddRecipe(); * }*/ public override void UpdateAccessory(Player player, bool hideVisual) { ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); player.maxMinions += 9 + (90 * modPlayer.consumedgravityglobes); if (player.HeldItem.summon) { player.HeldItem.autoReuse = true; player.HeldItem.useTime = 6; player.HeldItem.useAnimation = 6; player.HeldItem.mana = 1; } }
public override void UpdateAccessory(Player player, bool hideVisual) { ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); player.canRocket = true; player.rocketBoots = 2; player.rocketTimeMax = 5; player.maxRunSpeed += 10; player.accRunSpeed += 4f; if (player.controlJump && catches > 0 && player.velocity.Y != 0) { if (/*player.statMana >= manacost*/ player.CheckMana((int)((manacost * player.manaCost) * ((player.rocketTime < player.rocketTimeMax && catchtime <= 0)?1:0.1f)), true) && player.rocketTime < player.rocketTimeMax) { player.rocketTime++; //player.statMana -= (int)(manacost*player.manaCost); //player.manaRegenDelay = 30; if (player.statMana < (manacost * player.manaCost) && catchtime <= 0) { catches--; player.ManaEffect(catches); catchtime = 5; if (catches == 0) { player.rocketTime = 0; } } if (player.statMana >= (manacost * player.manaCost) && catchtime > 0) { catchtime = 0; } if (catchtime > 0) { catchtime--; } } } if (player.velocity.Y == 0 && catches != maxcatches) { catches = maxcatches; player.ManaEffect(catches); } if (player.velocity.Y > 50) { player.armorEffectDrawOutlinesForbidden = true; } if (!player.noFallDmg && Main.rand.Next(fallchance) >= 10 - (int)(player.velocity.Y / 5)) { player.noFallDmg = true; } }
public override void AI() //this make that the projectile will face the corect way { // | Player player = Main.player[projectile.owner]; ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); modPlayer.IceShield = true; Vector2 mousePos = Main.MouseWorld; Vector2 unit = (player.Center - mousePos); unit.Normalize(); unit *= -10; projectile.Center = player.Center /*- (new Vector2(35,0))*/ + new Vector2(20).RotatedBy((float)Math.Atan2((player.Center - mousePos).Y, (player.Center - mousePos).X) + 2.557f); projectile.rotation = (float)Math.Atan2((player.Center - mousePos).Y, (player.Center - mousePos).X) + 3.1157f; for (int i = 0; i < Main.projectile.Length; i++) { if (projectile.Hitbox.Intersects(Main.projectile[i].Hitbox) && Main.projectile[i].type != projectile.type && Main.projectile[i].damage > 0) { projectile.ai[0] += Main.projectile[i].damage * 0.75f; Main.projectile[i].Kill(); } } if (modPlayer.channelice > 0) { projectile.timeLeft = 3600; } if (modPlayer.channelice == 0) { Vector2 tempzerovector = new Vector2(0, 0); Projectile.NewProjectile(projectile.position, tempzerovector, 624, (int)((projectile.damage + projectile.ai[0]) / 3), projectile.knockBack * 3, projectile.owner); int numberProjectiles = 3 + Main.rand.Next(2); //This defines how many projectiles to shot. 4 + Main.rand.Next(2)= 4 or 5 shots for (int i = 0; i < numberProjectiles; i++) { Vector2 perturbedSpeed = new Vector2((player.Center - mousePos).X, (player.Center - mousePos).Y); perturbedSpeed.Normalize(); perturbedSpeed *= -3; perturbedSpeed = perturbedSpeed.RotatedByRandom(MathHelper.ToRadians(30)); // This defines the projectiles random spread . 30 degree spread. int a = Projectile.NewProjectile(projectile.Center.X, projectile.Center.Y, perturbedSpeed.X, perturbedSpeed.Y, 177, projectile.damage + (int)projectile.ai[0], projectile.knockBack + (int)projectile.ai[0], player.whoAmI); Main.projectile[a].magic = true; Main.projectile[a].friendly = true; Main.projectile[a].hostile = false; Main.projectile[a].timeLeft = 30 + (int)(projectile.ai[0] / 3); Main.projectile[a].penetrate = -1; } //projectile.timeLeft = Math.Min(3,projectile.timeLeft); projectile.Kill(); } }
public override void ModifyHitNPC(NPC target, ref int damage, ref float knockback, ref bool crit, ref int hitDirection) { Player player = Main.player[projectile.owner]; ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); damage = (int)(damage * mult); if (modPlayer.channellightning >= 1 && modPlayer.channellightningid == projectile.whoAmI) { target.position = projectile.position + projectile.velocity; target.velocity = lerp(projectile.velocity / 2, target.velocity, 1 - constrain(target.knockBackResist * 1.25f, 0.1f, 1f)); damage = (int)(damage / 10); knockback = 0; if (mult < 10) { mult += 0.165f; } } }
public override void HoldStyle(Player player) { ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); if ((!(player.velocity.Y > 0)) || player.sliding) { int dust3 = Dust.NewDust((player.direction == 1?player.Left:player.Right) - new Vector2(4, -4), 0, 0, 92, 0f, 0f, 25, Color.Goldenrod, 1.5f); Main.dust[dust3].noGravity = true; Main.dust[dust3].velocity = new Vector2(0, 0); } else { int dust3 = Dust.NewDust((player.direction == 1?player.TopLeft:player.TopRight) - new Vector2(4, -4), 0, 0, 92, 0f, 0f, 25, Color.Goldenrod, 1.5f); Main.dust[dust3].noGravity = true; Main.dust[dust3].velocity = new Vector2(0, 0); } //item.toolTip = modPlayer.stone + ""; }
public override bool CanUseItem(Player player) { ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); if (player.altFunctionUse == 2) //2 is right click { item.useTime = 2; item.useAnimation = 14; item.shoot = ProjectileType <FireBall>(); } else { item.useTime = 1; item.useAnimation = 5; item.shoot = ProjectileType <FireWhip>(); } return(base.CanUseItem(player) && !modPlayer.FlameShield); }
public override bool Shoot(Player player, ref Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack) { if (player.altFunctionUse == 2) { Vector2 mousePos = Main.MouseWorld; Vector2 unit = (player.Center - mousePos); Vector2 speed = new Vector2(speedX, speedY); double angle = ( ( ( player.itemAnimation - 7f ) / 14) * ( 1 / ( unit.Length() / 400 ) ) ); speed = speed.RotatedBy(angle); int a = Projectile.NewProjectile(position.X, position.Y, speed.X, speed.Y, type, damage, knockBack, player.whoAmI, (float)angle, 30); Main.projectile[a].magic = true; Main.projectile[a].friendly = true; Main.projectile[a].hostile = false; Main.projectile[a].penetrate = -1; Main.projectile[a].usesLocalNPCImmunity = true; unit.Normalize(); //unit *= 0.66f; player.velocity = player.velocity.Length() >= 12?new Vector2(player.velocity.Length(), 0).RotatedBy(MathHelper.Lerp(player.velocity.ToRotation(), unit.ToRotation(), 0.75f)):player.velocity + unit; return(false); } else { ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); damage = (int)(damage * 2.5f); if (player.controlUseItem) { player.itemAnimation = item.useAnimation - 1; modPlayer.channelsword = 5; } return(!modPlayer.FireWhip); } }
public override void UpdateAccessory(Player player, bool hideVisual) { ElementalPlayer modPlayer = player.GetModPlayer <ElementalPlayer>(); modPlayer.reflect = true; player.thrownVelocity += 5f; player.thrownVelocity *= 20.1f; player.suffocateDelay = 10; player.meleeSpeed += 20f; player.meleeSpeed *= 2f; if (player.HeldItem.thrown) { player.HeldItem.shootSpeed = 25f; /*if (!player.HeldItem.name.Contains(" of wind")) { * player.HeldItem.name = player.HeldItem.name + " of wind"; * }*/ } }