コード例 #1
0
        public static Item GenerateSword(Mod mod, Vector2 position, SwordTheme theme, float dps, int enemyDef)
        {
            ProceduralSword sword = NewSword(mod, position, SwordHilt.RandomHilt(theme), SwordBlade.RandomBlade(theme), Main.rand.Next(5) < 3 ? SwordAccent.RandomAccent() : SwordAccent.None, dps, enemyDef);

            return(sword.item);
        }
コード例 #2
0
        public static ProceduralSword NewSword(Mod mod, Vector2 position, SwordHilt hilt, SwordBlade blade, SwordAccent accent, float dps, int enemyDef)
        {
            if (hilt == null)
            {
                kRPG.LogMessage("Ummm....  Why is the hilt null?");
            }
            if (blade == null)
            {
                kRPG.LogMessage("Ummm....  Why is the blade null?");
            }

            int             id    = Item.NewItem(position, mod.GetItem("ProceduralSword").item.type);
            ProceduralSword sword = (ProceduralSword)Main.item[id].modItem;

            sword.Hilt     = hilt;
            sword.Blade    = blade;
            sword.Accent   = accent;
            sword.Dps      = dps;
            sword.EnemyDef = enemyDef;
            sword.Initialize();

            SwordInitPacket.Write(id, blade.Type, hilt.Type, accent.Type, dps, enemyDef);

            return(sword);
        }
コード例 #3
0
        public static void Initialize()
        {
            Blades       = new Dictionary <int, SwordBlade>();
            BladeByTheme = new Dictionary <SwordTheme, List <SwordBlade> >();

            SlimeBlue        = new SwordBlade("BlueSlimeBlade", 1, 10, "Slime Sword", 28, 7f, 1.05f, -3, false, 0.05f, false);
            SlimeGreen       = new SwordBlade("GreenSlimeBlade", 1, 10, "Slime Sword", 30, 7f, 1.03f, -3, false, 0f, false);
            BrutishDagger    = new SwordBlade("BrutishDagger", 2, 9, "Dagger", 31, 6.5f, 1.05f);
            Chokuto          = new SwordBlade("Chokuto", 1, 14, "Chokuto", 22, 2f, 0.95f, 7, true);
            BroadswordSilver = new SwordBlade("SilverBroadsword", 1, 11, "Broadsword", 24, 5.5f);
            Scimitar         = new SwordBlade("Scimitar", 1, 12, "Scimitar", 27, 4f, 0.98f, 0, true);
            FieldGlaive      = new SwordBlade("FieldGlaive", 2, 17, "Glaive", 47, 7f, 0.9f, 0, false, 0.05f, false, true);
            StoneSword       = new SwordBlade("StoneSword", 2, 16, "Stone Sword", 34, 6f, 0.97f);
            CrescentSword    = new SwordBlade("CrescentSword", 1, 13, "Crescent Sword", 29, 3f, 1.05f, -2);
            FieldSword       = new SwordBlade("ClaymoreBlade", 2, 17, "Field Sword", 41, 4f, 0.9f, 2, true);
            EyeMallet        = new SwordBlade("EyeMallet", 2, 18, "Eye Mallet", 42, 6f, 0.9f, -1, false, 0f, false).SetEleDamage(new Dictionary <Element, float>
            {
                { Element.Fire, 0f }, { Element.Cold, 0f }, { Element.Lightning, 0f }, { Element.Shadow, 0.25f }
            });
            BroadswordVile = new SwordBlade("VileBroadsword", 1, 15, "Meatfang", 29, 4.5f).SetEleDamage(new Dictionary <Element, float>
            {
                { Element.Fire, 0f }, { Element.Cold, 0f }, { Element.Lightning, 0f }, { Element.Shadow, 0.15f }
            });
            SlumTwirl      = new SwordBlade("SlumTwirl", 2, 18, "Twirlsword", 32, 3f, 1f, -3);
            BroadswordBone = new SwordBlade("BoneBroadsword", 1, 15, "Bone Sword", 28, 4f, 0.95f, 0, true).SetEleDamage(new Dictionary <Element, float>
            {
                { Element.Fire, 0f }, { Element.Cold, 0.2f }, { Element.Lightning, 0f }, { Element.Shadow, 0.1f }
            });
            DemonEye = new SwordBlade("EyeSword", 1, 17, "Eyes on a Stick", 22, 4f).SetEleDamage(new Dictionary <Element, float>
            {
                { Element.Fire, 0f }, { Element.Cold, 0f }, { Element.Lightning, 0f }, { Element.Shadow, 0.2f }
            });
            WizardSword      = new SwordBlade("WizardSword", 2, 18, "Wizard Sword", 19, 1f, 1.15f, 0, true, 0f, true, true);
            RunicSwordViolet = new SwordBlade("VioletRunicSword", 2, 13, "Sword", 28, 5f, 1f, 0, false, 0.1f, true, true);
            RunicDaiKatana   = new SwordBlade("RunicDaiKatana", 2, 17, "Dai-Katana", 33, 4f, 0.95f, 5, true, 0f, true, true);
            BlazeSword       = new SwordBlade("BlazeSword", 4, 14, "Lantern", 26, 3f, 1.05f, 0, false, 0f, true, true, delegate(Rectangle rect, Player player)
            {
                if (Main.rand.Next(7) >= 2)
                {
                    return;
                }
                int dust = Dust.NewDust(new Vector2(rect.X, rect.Y), rect.Width, rect.Height, DustID.Fire, player.velocity.X * 0.2f + player.direction * 3f,
                                        player.velocity.Y * 0.2f, 63);
                Main.dust[dust].noGravity = true;
            }).SetEleDamage(new Dictionary <Element, float> {
                { Element.Fire, 0.4f }, { Element.Cold, 0f }, { Element.Lightning, 0f }, { Element.Shadow, 0.1f }
            });
            Executioner         = new SwordBlade("ExecutionerBlade", 2, 20, "Execution Sword", 33, 7f, 1f, 0, false, 0.2f, false);
            ObsidianBroadsword  = new SwordBlade("ObsidianGreatsword", 2, 15, "Obsidian Sword", 26, 5.5f, 1.1f, 1, false, 0.1f);
            ObsidianMaul        = new SwordBlade("ObsidianMaul", 2, 18, "Obsidian Maul", 44, 8.5f, 0.95f, 0, false, 0.15f, false);
            HellstoneBroadsword = new SwordBlade("HellstoneBroadsword", 2, 13, "Hellstone Broadsword", 23, 4.5f, 1.1f, 2, true, 0.1f);
            FieryBroadsword     = new SwordBlade("FieryBroadsword", 2, 15, "Fiery Field Sword", 29, 4f, 0.92f, 0, true, 0.1f, true, true,
                                                 delegate(Rectangle rect, Player player)
            {
                if (Main.rand.Next(2) != 0)
                {
                    return;
                }
                int dust = Dust.NewDust(new Vector2(rect.X, rect.Y), rect.Width, rect.Height, DustID.Fire, player.velocity.X * 0.2f + player.direction * 3f,
                                        player.velocity.Y * 0.2f, 63, new Color(), 2f);
                Main.dust[dust].noGravity = true;
            }).SetEleDamage(new Dictionary <Element, float> {
                { Element.Fire, 0.5f }, { Element.Cold, 0f }, { Element.Lightning, 0f }, { Element.Shadow, 0f }
            });
            FieryGreatsword = new SwordBlade("FieryGreatsword", 2, 16, "Fiery Greatsword", 36, 6f, 0.96f, 0, false, 0.2f, true, true,
                                             delegate(Rectangle rect, Player player)
            {
                if (Main.rand.Next(2) != 0)
                {
                    return;
                }
                int dust = Dust.NewDust(new Vector2(rect.X, rect.Y), rect.Width, rect.Height, DustID.Fire, player.velocity.X * 0.2f + player.direction * 3f,
                                        player.velocity.Y * 0.2f, 63, new Color(), 2f);
                Main.dust[dust].noGravity = true;
            }).SetEleDamage(new Dictionary <Element, float> {
                { Element.Fire, 0.5f }, { Element.Cold, 0f }, { Element.Lightning, 0f }, { Element.Shadow, 0f }
            });
            ClockSword   = new SwordBlade("ClockSword", 6, 25, "Chronosword", 19, 4f, 1f, 0, true);
            GrassBreaker = new SwordBlade("GrassBreaker", 3, 32, "Buster Claymore", 31, 7.5f).SetEleDamage(new Dictionary <Element, float>
            {
                { Element.Fire, 0f }, { Element.Cold, 0f }, { Element.Lightning, 0.2f }, { Element.Shadow, 0f }
            });
            LazerCutter = new SwordBlade("LazerCutter", 3, 33, "Laser Cutter", 40, 5f).SetEleDamage(new Dictionary <Element, float>
            {
                { Element.Fire, 0f }, { Element.Cold, 0f }, { Element.Lightning, 0.5f }, { Element.Shadow, 0f }
            });
            PhaseSword = new SwordBlade("PhaseSword", 2, 21, "Phase Sword", 25, 5f, 1.06f, 0, true, 0f, true, true).SetEleDamage(
                new Dictionary <Element, float> {
                { Element.Fire, 0f }, { Element.Cold, 0f }, { Element.Lightning, 0.4f }, { Element.Shadow, 0f }
            });
            Terra = new SwordBlade("ElementalNeedle", 2, 21, "Elemental Needle", 15, 5f, 1.1f);

            BladeByTheme = new Dictionary <SwordTheme, List <SwordBlade> >
            {
                {
                    SwordTheme.Generic, new List <SwordBlade>
                    {
                        BrutishDagger,
                        Chokuto,
                        BroadswordSilver,
                        CrescentSword,
                        FieldGlaive,
                        Scimitar,
                        StoneSword,
                        FieldSword
                    }
                },
                {
                    SwordTheme.Monstrous, new List <SwordBlade>
                    {
                        Chokuto,
                        BroadswordSilver,
                        EyeMallet,
                        BroadswordVile,
                        SlumTwirl,
                        BroadswordBone,
                        DemonEye
                    }
                },
                {
                    SwordTheme.Runic, new List <SwordBlade>
                    {
                        WizardSword,
                        RunicSwordViolet,
                        RunicDaiKatana,
                        FieldGlaive,
                        BlazeSword
                    }
                },
                {
                    SwordTheme.Hellish, new List <SwordBlade>
                    {
                        Executioner,
                        ObsidianBroadsword,
                        ObsidianMaul,
                        HellstoneBroadsword,
                        FieryBroadsword,
                        FieryGreatsword,
                        BroadswordBone
                    }
                },
                {
                    SwordTheme.Hardmode, new List <SwordBlade>
                    {
                        ClockSword,
                        GrassBreaker,
                        LazerCutter,
                        PhaseSword,
                        Executioner,
                        Terra
                    }
                }
            };
        }