示例#1
0
        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);
        }
示例#2
0
        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);
            }
        }
示例#5
0
 private static void Player_KeyDoubleTap(On.Terraria.Player.orig_KeyDoubleTap orig, Player self, int keyDir)
 {
     orig(self, keyDir);
     self.GetModPlayer <StarlightPlayer>().DoubleTapEffects(keyDir);
 }
示例#6
0
 private static void Player_KeyDoubleTap(On.Terraria.Player.orig_KeyDoubleTap orig, Player self, int keyDir)
 {
     orig(self, keyDir);
     self.GetSpiritPlayer().DoubleTapEffects(keyDir);
 }