示例#1
0
        public static Item GenerateStaff(Mod mod, Vector2 position, StaffTheme theme, float dps, int enemyDef)
        {
            ProceduralStaff staff = DropStaff(mod, position, Staff.RandomStaff(theme), StaffGem.RandomGem(theme),
                                              Main.rand.Next(3) < 2 ? StaffOrnament.RandomOrnament(theme) : StaffOrnament.None, dps, enemyDef);

            return(staff.item);
        }
示例#2
0
        public static ProceduralStaff DropStaff(Mod mod, Vector2 position, Staff staffStaff, StaffGem staffGem, StaffOrnament staffOrnament, float dps,
                                                int enemyDef)
        {
            int             id    = Item.NewItem(position, mod.GetItem("ProceduralStaff").item.type);
            ProceduralStaff staff = (ProceduralStaff)Main.item[id].modItem;

            staff.Staff    = staffStaff;
            staff.Gem      = staffGem;
            staff.Ornament = staffOrnament;
            staff.Dps      = dps;
            staff.EnemyDef = enemyDef;
            staff.Initialize();
            StaffInitPacket.Write(id, staffStaff.Type, staffGem.Type, staffOrnament.Type, dps, enemyDef);
            return(staff);
        }
示例#3
0
        public override ModItem Clone(Item tItem)
        {
            ProceduralStaff copy = (ProceduralStaff)base.Clone(tItem);

            copy.Staff     = Staff;
            copy.Gem       = Gem;
            copy.Ornament  = Ornament;
            copy.Dps       = Dps;
            copy.EnemyDef  = EnemyDef;
            copy.EleDamage = new Dictionary <Element, float>();
            foreach (Element element in Enum.GetValues(typeof(Element)))
            {
                copy.EleDamage[element] = EleDamage[element];
            }
            copy.item.SetNameOverride(tItem.Name);
            return(copy);
        }