public override void Update(Player player, ref int buffIndex)
        {
            TerramonPlayer modPlayer = player.GetModPlayer <TerramonPlayer>();

            if (string.IsNullOrEmpty(modPlayer.ActivePetName))
            {
                player.DelBuff(buffIndex);
                return;
            }

            ProjectileName = modPlayer.ActivePetName;

            player.buffTime[buffIndex] = 40000;

            modPlayer.ActivatePet(ProjectileName);

            var petProjectileNotSpawned = !(player.ownedProjectileCounts[mod.ProjectileType(ProjectileName)] > 0);

            if (petProjectileNotSpawned && player.whoAmI == Main.myPlayer)
            {
                if (player.direction == 1) // direction right
                {
                    modPlayer.ActivePetId = Projectile.NewProjectile(player.position.X + 50,
                                                                     player.position.Y - 8, 0f, 0f, mod.ProjectileType(ProjectileName), 0, 0f,
                                                                     player.whoAmI, 0f, 0f);
                }
                else // direction left
                {
                    modPlayer.ActivePetId = Projectile.NewProjectile(player.position.X - 50,
                                                                     player.position.Y - 8, 0f, 0f, mod.ProjectileType(ProjectileName), 0, 0f,
                                                                     player.whoAmI, 0f, 0f);
                }
            }
        }
Exemplo n.º 2
0
        public override void Update(Player player, ref int buffIndex)
        {
            TerramonPlayer modPlayer = player.GetModPlayer <TerramonPlayer>();

            if (string.IsNullOrEmpty(modPlayer.ActivePetName))
            {
                player.DelBuff(buffIndex);
                return;
            }

            //if (oldName != modPlayer.ActivePetName)
            //{
            ProjectileName = modPlayer.ActivePetName;
            //    oldName = ProjectileName;

            //}

            player.buffTime[buffIndex] = 40000;

            modPlayer.ActivatePet(ProjectileName);

            var petProjectileNotSpawned = !(player.ownedProjectileCounts[mod.ProjectileType(ProjectileName)] > 0);

            if (petProjectileNotSpawned && player.whoAmI == Main.myPlayer)
            {
                modPlayer.ActivePetId = Projectile.NewProjectile(player.position.X + player.width / 2,
                                                                 player.position.Y + player.height / 2, 0f, 0f, mod.ProjectileType(ProjectileName), 0, 0f,
                                                                 player.whoAmI, 0f, 0f);
            }
        }