Exemplo n.º 1
0
        public override GlobalItem Clone(Item item, Item itemClone)
        {
            CRGlobalItem myClone = (CRGlobalItem)base.Clone(item, itemClone);

            myClone.reforges            = new List <int>(reforges);
            myClone.orphanedModPrefixes = new Dictionary <string, List <string> >(orphanedModPrefixes);

            return(myClone);
        }
Exemplo n.º 2
0
        public static void RevertReforge(ref Item item)
        {
            revertingReforge = true;

            CRGlobalItem global       = item.GetGlobalItem <CRGlobalItem>();
            int          revertPrefix = global.RevertPrefix;

            int oldPrefix = global.reforges.Last();

            //Below code mostly copied from how tml handles reforging

            bool favorited = item.favorited;
            int  stack     = item.stack;
            Item r         = new Item();

            r.netDefaults(item.netID);
            //TODO: method only used here, probably a poor implementation - noted by CB
            r = r.CloneWithModdedDataFrom(item);

            if (revertPrefix > 0)
            {
                r.Prefix(revertPrefix);
            }

            item = r.Clone();

            //Get new global from item
            global = item.GetGlobalItem <CRGlobalItem>();

            //Required for the ItemText to display properly
            item.Center    = Main.LocalPlayer.Center;
            item.favorited = favorited;
            item.stack     = stack;
            ItemText.NewText(item, item.stack, noStack: true);

            Main.PlaySound(SoundID.Tink);

            if (global.reforges.Count > 1)
            {
                //Move last element to the start
                global.reforges.RemoveAt(global.reforges.Count - 1);
                global.reforges.Insert(0, oldPrefix);
            }
        }