예제 #1
0
        //Cloning is CRUCIAL in making this mod work; if there is no cloning, all of the guns will have the same exact prefix/parts. No good.
        public override ModItem Clone(Item item)
        {
            TLWeapon wepClone = (TLWeapon)base.Clone(item);

            if (!wepClone.availablePrefixes.elements.Any())
            {
                wepClone.GetAvailablePrefixes();
            }
            if (!wepClone.availableElements.elements.Any())
            {
                wepClone.GetAvailableElements();
            }
            wepClone.additionalShots = 0;
            wepClone.fixedSpread     = 0f;
            if (wepClone.itemPrefix == TLPrefixList.Default)
            {
                wepClone.itemPrefix = availablePrefixes.Get();
                wepClone.item.SetNameOverride(GetAdjustedName());
            }
            if (wepClone.itemSuffix == TLSuffixList.Default)
            {
                wepClone.itemSuffix = TLSuffixList.GetRandomSuffix();
                wepClone.item.SetNameOverride(GetAdjustedName());
            }
            if (wepClone.itemElement == ElementType.Default)
            {
                wepClone.itemElement = availableElements.Get();
            }
            wepClone.AutoDefaults();
            wepClone.SetDefaults();
            return(wepClone);
        }
예제 #2
0
        //Don't want Vanilla Prefixes, will have Prefixes of our own that are more like Borderlands' Prefixes
        public override bool?PrefixChance(int pre, UnifiedRandom rand)
        {
            if (pre == -1)
            {
                GetAvailablePrefixes();
                if (itemPrefix == TLPrefixList.Default)
                {
                    itemPrefix = availablePrefixes.Get();
                    item.SetNameOverride(GetAdjustedName());
                }
                if (itemSuffix == TLSuffixList.Default)
                {
                    itemSuffix = TLSuffixList.GetRandomSuffix();
                    item.SetNameOverride(GetAdjustedName());
                }
                GetAvailableElements();
                if (itemElement == ElementType.Default)
                {
                    itemElement = availableElements.Get();
                }
                return(false);
            }

            else if (pre == -3)
            {
                return(false);
            }

            return(null);
        }
예제 #3
0
 public override void NetRecieve(BinaryReader reader)
 {
     itemPrefix  = TLPrefixList.GetInstanceWithID(reader.ReadInt32());
     itemElement = (ElementType)reader.ReadInt32();
     itemSuffix  = TLSuffixList.GetInstanceWithID(reader.ReadInt32());
 }
예제 #4
0
 public override void Load(TagCompound tag)
 {
     itemPrefix  = TLPrefixList.GetInstanceWithID(tag.GetInt("WeaponPrefix"));
     itemElement = (ElementType)tag.GetInt("WeaponElement");
     itemSuffix  = TLSuffixList.GetInstanceWithID(tag.GetInt("WeaponSuffix"));
 }