public override void UpdateArmorSet(Player player)
        {
            player.setBonus = "Increases minion damage by 25%\n" +
                              "Increases squire travel range by 5 blocks\n" +
                              "Increases squire travel speed by 25%";
            player.minionDamageMult += 0.25f;
            SquireModPlayer squirePlayer = player.GetModPlayer <SquireModPlayer>();

            squirePlayer.squireRangeFlatBonus             += 60f;
            squirePlayer.squireTravelSpeedMultiplier      += 0.25f;
            squirePlayer.hardmodeOreSquireArmorSetEquipped = true;
            // insert whatever variable needs to be activated so the player's minions will release homing fungi spores similar to the fungi bulb, but just recolored to look like a mushroom.
        }
예제 #2
0
        public override void UpdateArmorSet(Player player)
        {
            player.setBonus = "Become immune after striking an enemy\n" +
                              "Increases minion damage by 10%\n" +
                              "Increases squire travel range by 5 blocks\n" +
                              "Increases squire travel speed by 20%";
            player.minionDamageMult += 0.10f;
            player.onHitDodge        = true;      // titanium armor effect
            SquireModPlayer squirePlayer = player.GetModPlayer <SquireModPlayer>();

            squirePlayer.squireRangeFlatBonus             += 80f;
            squirePlayer.squireTravelSpeedMultiplier      += 0.20f;
            squirePlayer.hardmodeOreSquireArmorSetEquipped = true;
            // insert whatever variable needs to be activated so the player's minions will release homing fungi spores similar to the fungi bulb, but just recolored to look like a mushroom.
        }
예제 #3
0
        public override Vector2 IdleBehavior()
        {
            int             angleFrame  = animationFrame % AnimationFrames;
            float           angle       = 2 * (float)(Math.PI * angleFrame) / AnimationFrames;
            float           radius      = 36;
            Vector2         angleVector = radius * new Vector2((float)Math.Cos(angle), (float)Math.Sin(angle));
            SquireModPlayer modPlayer   = player.GetModPlayer <SquireModPlayer>();

            if (modPlayer.HasSquire())
            {
                projectile.spriteDirection = modPlayer.GetSquire().spriteDirection;
            }
            // offset downward vertically a bit
            // the scale messes with the positioning in some way
            return(base.IdleBehavior() + angleVector + new Vector2(0, 8));
        }
예제 #4
0
        public override void ModifyHitNPC(Projectile projectile, NPC target, ref int damage, ref float knockback, ref bool crit, ref int hitDirection)
        {
            if (!DoesSummonDamage(projectile))
            {
                return;
            }
            Player player = Main.player[projectile.owner];
            MinionSpawningItemPlayer modPlayer    = player.GetModPlayer <MinionSpawningItemPlayer>();
            SquireModPlayer          squirePlayer = player.GetModPlayer <SquireModPlayer>();
            // require multiple minion types for any bonus
            float damageMult = 1;

            if (modPlayer.minionVarietyBonusCount > 1)
            {
                damageMult += modPlayer.minionVarietyBonusCount * modPlayer.minionVarietyDamageBonus;
            }
            if (squirePlayer.GetSquire() != default)
            {
                damageMult -= ServerConfig.Instance.MinionDamageSquireNerf / 100f;
            }
            damage = (int)(damage * damageMult);
        }
예제 #5
0
 protected override bool IsEquipped(SquireModPlayer player)
 {
     return(player.royalArmorSetEquipped);
 }
예제 #6
0
 protected override bool IsEquipped(SquireModPlayer player)
 {
     return(player.squireTechnoSkullAccessory);
 }
예제 #7
0
 protected override bool IsEquipped(SquireModPlayer player) => player.HasSquire() &&
 player.GetSquire().type == ProjectileType <TitaniumSquireMinion>();