private void ActivateSpear(On.Terraria.Player.orig_KeyDoubleTap orig, Player player, int keyDir) { if (keyDir == 0 && IsArmorSet(player)) { var helm = player.armor[0].modItem as MoonstoneHead; if (helm.spearOn) { helm.spearOn = false; dummySpear.TurnToAir(); } else if (helm.moonCharge > 180 && Datsuzei.activationTimer == 0 && !Main.projectile.Any(n => n.active && n.type == ProjectileType <DatsuzeiProjectile>() && n.owner == player.whoAmI)) { dummySpear.SetDefaults(ItemType <Datsuzei>()); helm.spearOn = true; MoonstoneArmorPacket packet = new MoonstoneArmorPacket(player.whoAmI, helm.moonCharge, helm.spearOn); packet.Send(-1, player.whoAmI, false); int i = Projectile.NewProjectile(player.Center, Vector2.Zero, ProjectileType <DatsuzeiProjectile>(), 1, 0, player.whoAmI, -1, 160); Main.projectile[i].timeLeft = 160; } } orig(player, keyDir); }
private void HauntItem(On.Terraria.Player.orig_KeyDoubleTap orig, Player player, int keyDir) { if (keyDir == 0 && player.armor[0].type == ItemType <PoltergeistHead>()) { var item = player.HeldItem; var helm = player.armor[0].modItem as PoltergeistHead; if (item.IsAir) //clear from empty hand { helm.minions.Clear(); orig(player, keyDir); return; } if (helm.minions.Any(n => (n.modProjectile as PoltergeistMinion).item.type == item.type)) //removal { helm.minions.RemoveAll(n => (n.modProjectile as PoltergeistMinion).item.type == item.type); orig(player, keyDir); return; } if (item.magic && item.mana > 0 && !item.channel && item.shoot > 0 && helm.GetManaRestrict(item) <= player.statManaMax2) //addition { int i = Projectile.NewProjectile(player.Center, Vector2.Zero, ProjectileType <PoltergeistMinion>(), 0, 0, player.whoAmI); var proj = Main.projectile[i]; (proj.modProjectile as PoltergeistMinion).item = item.Clone(); helm.minions.Add(proj); helm.sleepTimer = 1200; } } orig(player, keyDir); }
private void LoadShots(On.Terraria.Player.orig_KeyDoubleTap orig, Player player, int keyDir) { if (keyDir == 0 && player.armor[0].type == ItemType <VitricHead>()) { var helm = player.armor[0].modItem as VitricHead; helm.loaded = true; } orig(player, keyDir); }
private static void CloakHooker(On.Terraria.Player.orig_KeyDoubleTap orig, Terraria.Player self, int keyDir) { orig.Invoke(self, keyDir); // call the original method, then run my code if (self.HasBuff(Terraria.ID.BuffID.ChaosState)) { return; } if (!self.GetModPlayer <CloakModPlayer>().hasCloak) { return; } if (keyDir == 3) // checking if double tap is left { TryDash(ref self, Direction.Left); } if (keyDir == 2) // checking if double tap is right { TryDash(ref self, Direction.Right); } }
private static void Player_KeyDoubleTap(On.Terraria.Player.orig_KeyDoubleTap orig, Player self, int keyDir) { orig(self, keyDir); self.GetModPlayer <StarlightPlayer>().DoubleTapEffects(keyDir); }
private static void Player_KeyDoubleTap(On.Terraria.Player.orig_KeyDoubleTap orig, Player self, int keyDir) { orig(self, keyDir); self.GetSpiritPlayer().DoubleTapEffects(keyDir); }