コード例 #1
0
        public override float UseTimeMultiplier(Item item, Player player)
        {
            ClickerAddonPlayer modPlayer = player.GetModPlayer <ClickerAddonPlayer>();

            if (ClickerCompat.IsClickerWeapon(item))
            {
                if (!player.GetModPlayer <ClickerAddonPlayer>().autoClicker)
                {
                    if (player.GetModPlayer <ClickerAddonPlayer>().silvaCapsuit)
                    {
                        item.autoReuse = true;
                        return(2f);
                    }
                    else
                    {
                        return(1f);
                    }
                }
                else
                {
                    item.autoReuse = true;
                    //return 10f;
                    return(player.GetModPlayer <ClickerAddonPlayer>().autoClickerMultiplier[1]);
                }
                //return modPlayer.autoClickerMultiplier[1];
            }
            else
            {
                return(1f);
            }
        }
コード例 #2
0
        public override void UpdateArmorSet(Player player)
        {
            player.setBonus = "5% increased clicker damage\nInferno effect when below 50% life\nYou have a 20% chance to emit a blazing explosion when you are hit\nClicker attacks summon damaging and healing flare orbs on hit";
            Mod calamity = ModLoader.GetMod("CalamityMod");
            ClickerAddonPlayer modPlayer = player.GetModPlayer <ClickerAddonPlayer>();

            CalamityCompat.CalamityArmorSetBonus(player, "ataxia");
            ClickerCompat.SetDamageAdd(player, 0.05f);
            modPlayer.ataxiaCapsuit = true;
        }
コード例 #3
0
        public override bool Shoot(Item item, Player player, ref Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack)
        {
            ClickerAddonPlayer clickerPlayer = player.GetModPlayer <ClickerAddonPlayer>();
            Mod calamity = ModLoader.GetMod("CalamityMod");

            if (ClickerCompat.IsClickerItem(item))
            {
                if (clickerPlayer.daedalusCapsuit && Main.rand.NextBool(5))
                {
                    for (int i = 0; i < 5; i++)
                    {
                        int     damageA = (int)(damage * 0.5f);
                        Vector2 vec1    = Main.MouseWorld;
                        Vector2 vec2    = new Vector2(Main.rand.NextFloat(-5f, 5f), Main.rand.NextFloat(-5f, 5f));
                        Projectile.NewProjectile(vec1, vec2, ProjectileID.CrystalShard, damageA, knockBack, player.whoAmI);
                    }
                }
                if (clickerPlayer.reaverCapsuit && Main.rand.NextBool(5))
                {
                    int damageA = (int)(damage * 0.1f);
                    for (int i = 0; i < 4; i++)
                    {
                        int     numA = 50;
                        Vector2 vec1 = new Vector2(Main.MouseWorld.X + Main.rand.Next(-numA, numA), Main.MouseWorld.Y + Main.rand.Next(-numA, numA));
                        Vector2 vec2 = new Vector2(0f, 0f);
                        if (Main.rand.NextBool(2))
                        {
                            Projectile.NewProjectile(vec1, vec2, ProjectileID.SporeTrap, damageA, knockBack, player.whoAmI);
                        }
                        else
                        {
                            Projectile.NewProjectile(vec1, vec2, ProjectileID.SporeTrap2, damageA, knockBack, player.whoAmI);
                        }
                    }
                }
                if (clickerPlayer.godSlayerCapsuit && Main.rand.NextBool(5))
                {
                    int damageA = (int)(damage * 0.15f);
                    for (int i = 0; i < 4; i++)
                    {
                        int     numA = 50;
                        Vector2 vec1 = new Vector2(Main.MouseWorld.X + Main.rand.Next(-numA, numA), Main.MouseWorld.Y + Main.rand.Next(-numA, numA));
                        Vector2 vec2 = new Vector2(0f, 0f);
                        Projectile.NewProjectile(vec1, vec2, calamity.ProjectileType("NebulaStar"), damageA, knockBack, player.whoAmI);
                    }
                }
                return(false);
            }
            return(base.Shoot(item, player, ref position, ref speedX, ref speedY, ref type, ref damage, ref knockBack));
        }
コード例 #4
0
        public override void UpdateAccessory(Player player, bool hideVisual)
        {
            ClickerAddonPlayer modPlayer = player.GetModPlayer <ClickerAddonPlayer>();

            /*if (!hideVisual)
             * {
             *      modPlayer.ZoneMiceMonolith = true;
             * }
             * else
             * {
             *      modPlayer.ZoneTowerMice = true;
             * }*/
            modPlayer.ZoneMiceMonolith = true;
        }
コード例 #5
0
        //private const int skillDelay = 0;
        public override float MeleeSpeedMultiplier(Item item, Player player)
        {
            ClickerAddonPlayer modPlayer = player.GetModPlayer <ClickerAddonPlayer>();

            if (ClickerCompat.IsClickerWeapon(item))
            {
                if (!modPlayer.autoClicker)
                {
                    if (modPlayer.silvaCapsuit)
                    {
                        item.autoReuse = true;
                        return(0.5f);
                    }
                    else
                    {
                        return(1f);
                    }
                }
                else
                {
                    item.autoReuse = true;
                    //return 0.1f;
                    return(modPlayer.autoClickerMultiplier[0]);
                }

                /*if(modPlayer.autoClicker || modPlayer.silvaCapsuit || player.HasBuff(ModLoader.GetMod("ClickerClass").BuffType("AutoClick")) || ClickerCompat.GetAccessory(player, "HandCream"))
                 * {
                 *      item.autoReuse = true;
                 * }
                 * else
                 * {
                 *      item.autoReuse = false;
                 * }
                 * return modPlayer.autoClickerMultiplier[0];*/
            }
            else
            {
                return(1f);
            }
        }
コード例 #6
0
        public override void ModifyHitNPC(Projectile projectile, NPC target, ref int damage, ref float knockback, ref bool crit, ref int hitDirection)
        {
            Player             player        = Main.LocalPlayer;
            ClickerAddonPlayer clickerPlayer = player.GetModPlayer <ClickerAddonPlayer>();

            if (ClickerCompat.IsClickerProj(projectile))
            {
                for (int u = 0; u < Main.maxNPCs; u++)
                {
                    /*NPC target = Main.npc[u];*/
                    if (target.CanBeChasedBy(projectile) && target.DistanceSQ(projectile.Center) < 100 * 10)
                    {
                        if (clickerPlayer.magmaChair)
                        {
                            target.AddBuff(BuffID.OnFire, 120, false);
                        }
                        if (clickerPlayer.frostCoolerArmor)
                        {
                            target.AddBuff(BuffID.Frostburn, 120, false);
                        }
                        //if (player.GetModPlayer<ClickerAddonPlayer>())
                    }
                }

                /*if (player.GetModPlayer<ClickerAddonPlayer>().magmaChair)
                 * {
                 *      for (int u = 0; u < Main.maxNPCs; u++)
                 *      {
                 *              if (target.CanBeChasedBy(projectile) && target.DistanceSQ(projectile.Center) < 100 * 10)
                 *              {
                 *                      target.AddBuff(BuffID.OnFire, 120, false);
                 *              }
                 *      }
                 * }*/
            }
        }
コード例 #7
0
        public override Color?GetAlpha(Color lightColor)
        {
            ClickerAddonPlayer player = Main.LocalPlayer.GetModPlayer <ClickerAddonPlayer>();

            return(new Color?(player.lunarColor));
        }
コード例 #8
0
        public override bool Shoot(Item item, Player player, ref Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack)
        {
            ClickerAddonPlayer clickerPlayer = player.GetModPlayer <ClickerAddonPlayer>();

            if (ClickerCompat.IsClickerWeapon(item))
            {
                Mod clickerClass = ModLoader.GetMod("ClickerClass");

                //ClickerPlayer clickerPlayer = player.GetModPlayer<ClickerPlayer>();
                //ClickerAddonPlayer modPlayer = player.GetModPlayer<ClickerAddonPlayer>();

                /*if (skillDelay > 0)
                 * {
                 *      skillDelay--;
                 * }*/
                if (player.altFunctionUse == 2)
                {
                    if (clickerPlayer.setAbilityDelayTimer == 0)
                    {
                        if (clickerPlayer.cloneMice)
                        {
                            bool canTeleport = false;
                            if (!ClickerCompat.HasClickEffect(player, "PhaseReach"))
                            {
                                if (Vector2.Distance(Main.MouseWorld, player.Center) < ClickerCompat.GetClickerRadius(player) * 100 && Collision.CanHitLine(new Vector2(player.Center.X, player.Center.Y - 12), 1, 1, Main.MouseWorld, 1, 1))
                                {
                                    canTeleport = true;
                                }
                            }
                            else
                            {
                                canTeleport = true;
                            }
                            if (canTeleport)
                            {
                                Main.PlaySound(SoundID.Item, (int)Main.MouseWorld.X, (int)Main.MouseWorld.Y, 115);
                                Main.SetCameraLerp(0.1f, 0);
                                player.Center = Main.MouseWorld;
                                NetMessage.SendData(MessageID.PlayerControls, number: player.whoAmI);
                                player.fallStart = (int)(player.position.Y / 16f);
                                clickerPlayer.setAbilityDelayTimer = 60;
                                //skillDelay = 60;
                            }
                        }

                        /*else if(player.GetModPlayer<ClickerAddonPlayer>().cloneMotherboard)
                         * {
                         *      //Main.PlaySound(SoundID.Camera, Main.MouseWorld.X, Main.MouseWorld.Y, 0);
                         *      clickerPlayer.SetMotherboardRelativePosition(Main.MouseWorld);
                         *      player.GetModPlayer<ClickerAddonPlayer>().setAbilityDelayTimer = 60;
                         * }*/
                    }
                }
                if (ClickerCompat.GetClickAmount(player) % 5 == 0 && clickerPlayer.clickerCobaltSet)
                {
                    Main.PlaySound(SoundID.Item, (int)Main.MouseWorld.X, (int)Main.MouseWorld.Y, 24);
                    player.AddBuff(clickerClass.BuffType("Haste"), 300, false);
                    for (int i = 0; i < 15; i++)
                    {
                        int num6 = Dust.NewDust(player.position, 20, 20, 56, 0f, 0f, 150, default(Color), 1.25f);
                        Main.dust[num6].noGravity = true;
                        Main.dust[num6].velocity *= 0.75f;
                        int  num7 = Main.rand.Next(-50, 51);
                        int  num8 = Main.rand.Next(-50, 51);
                        Dust dust = Main.dust[num6];
                        dust.position.X = dust.position.X + (float)num7;
                        Dust dust2 = Main.dust[num6];
                        dust2.position.Y           = dust2.position.Y + (float)num8;
                        Main.dust[num6].velocity.X = -(float)num7 * 0.075f;
                        Main.dust[num6].velocity.Y = -(float)num8 * 0.075f;
                    }
                }

                if (clickerPlayer.clonePrecursor)
                {
                    Projectile.NewProjectile(Main.MouseWorld.X, Main.MouseWorld.Y, 0f, 0f, clickerClass.ProjectileType("PrecursorPro"), (int)(damage * 0.25f), knockBack, player.whoAmI);
                }

                if (ClickerCompat.GetClickAmount(player) % 100 == 0 && clickerPlayer.cloneOverclock)
                {
                    Main.PlaySound(SoundID.Item, (int)Main.MouseWorld.X, (int)Main.MouseWorld.Y, 94);
                    player.AddBuff(clickerClass.BuffType("OverclockBuff"), 180, false);
                    for (int i = 0; i < 25; i++)
                    {
                        int num6 = Dust.NewDust(player.position, 20, 20, 90, 0f, 0f, 150, default(Color), 1.35f);
                        Main.dust[num6].noGravity = true;
                        Main.dust[num6].velocity *= 0.75f;
                        int  num7 = Main.rand.Next(-50, 51);
                        int  num8 = Main.rand.Next(-50, 51);
                        Dust dust = Main.dust[num6];
                        dust.position.X = dust.position.X + (float)num7;
                        Dust dust2 = Main.dust[num6];
                        dust2.position.Y           = dust2.position.Y + (float)num8;
                        Main.dust[num6].velocity.X = -(float)num7 * 0.075f;
                        Main.dust[num6].velocity.Y = -(float)num8 * 0.075f;
                    }
                }
                if (clickerPlayer.diceEffect && Main.rand.NextBool(10))
                {
                    Projectile.NewProjectile(Main.MouseWorld.X, Main.MouseWorld.Y, 0f, 0f, clickerClass.ProjectileType("ClickDamage"), damage, knockBack, player.whoAmI);
                }

                /*if(clickerPlayer.ataxiaCapsuit && Main.rand.NextBool(4))
                 * {
                 *      Mod calamity = ModLoader.GetMod("CalamityMod");
                 *      Vector2 vec1 = Main.MouseWorld;
                 *      int num1 = 50;
                 *      Vector2 vec2 = new Vector2(Main.rand.Next(-num1, num1), Main.rand.Next(-num1, num1));
                 *      Projectile.NewProjectile(vec1, vec2, calamity.ProjectileType("AtaxiaHealOrb"), damage, knockBack, player.whoAmI);
                 * }*/
                return(false);
            }
            return(base.Shoot(item, player, ref position, ref speedX, ref speedY, ref type, ref damage, ref knockBack));
        }
コード例 #9
0
    public static object Call(params object[] args)
    {
        Mod    clickerAddon = ModLoader.GetMod("ClickerAddon");
        string success      = "Success";

        try
        {
            string mes   = args[0] as string;
            int    index = 1;

            if (mes == "ClickerAddonStat")
            {
                var player = args[index + 0] as Player;
                var type   = args[index + 1] as string;
                if (type == null)
                {
                    throw new Exception($"Call Error: The statName argument for the attempted message, \"{mes}\" has returned null.");
                }
                if (player == null)
                {
                    throw new Exception($"Call Error: The player argument for the attempted message, \"{mes}\" has returned null.");
                }
                ClickerAddonPlayer modPlayer = player.GetModPlayer <ClickerAddonPlayer>();
                if (type == "SetArmorSet")
                {
                    var name = args[index + 2] as string;
                    if (name == null)
                    {
                        throw new Exception($"Call Error: The armorName argument for the attempted message, \"{mes}\" has returned null.");
                    }


                    if (ModLoader.GetMod("CalamityMod") != null)
                    {
                        if (name == "reaver" || name == "Reaver")
                        {
                            modPlayer.reaverCapsuit = true;
                        }
                        else if (name == "hydrothermic" || name == "Hydrothermic")
                        {
                            modPlayer.ataxiaCapsuit = true;
                        }
                        else if (name == "bloodflare" || name == "Bloodflare" || name == "BloodFlare")
                        {
                            modPlayer.bloodflareCapsuit = true;
                        }
                        else if (name == "godslayer" || name == "godSlayer" || name == "GodSlayer")
                        {
                            modPlayer.godSlayerCapsuit = true;
                        }
                        else if (name == "silva" || name == "Silva")
                        {
                            modPlayer.silvaCapsuit = true;
                        }
                    }
                    else
                    {
                        throw new Exception($"Call Error: Calamity Mod is not loaded ");
                    }
                }
                if (type == "SetAccessory")
                {
                    var name = args[index + 2] as string;
                    if (name == null)
                    {
                        throw new Exception($"Call Error: The accName argument for the attempted message, \"{mes}\" has returned null.");
                    }

                    if (name == "magmaChair")
                    {
                        modPlayer.magmaChair = true;
                    }
                    if (name == "bigRedButton")
                    {
                        modPlayer.bigRedButton = true;
                    }
                    if (name == "bandOfClicking")
                    {
                        modPlayer.bandOfClicking = true;
                    }
                    if (name == "dice")
                    {
                        modPlayer.diceEffect = true;
                    }
                }
                if (type == "SetOtherEffect")
                {
                    var name = args[index + 2] as string;
                    if (name == null)
                    {
                        throw new Exception($"Call Error: The otherEffectName argument for the attempted message, \"{mes}\" has returned null.");
                    }

                    if (name == "carbonatedPotion" || name == "CarbonatedPotion")
                    {
                        ClickerCompat.EnableClickEffect(player, "ClickerAddon:Carbonated");
                    }
                    if (name == "cheatautoclick" || name == "cheatAutoClick" || name == "CheatAutoClick")
                    {
                        modPlayer.autoClicker = true;
                    }
                    if (name == "cheatautoclick10x" || name == "cheatAutoClick10x" || name == "CheatAutoClick10x")
                    {
                        modPlayer.autoClicker           = true;
                        modPlayer.autoClickerMultiplier = new float[] { 0.1f, 10f };
                    }
                }
            }
        }
        catch (Exception e)
        {
            clickerAddon.Logger.Error($"Call Error: {e.StackTrace} {e.Message}");
        }
        return(null);
    }