public override int ChoosePrefix(Terraria.Utilities.UnifiedRandom rand)
        {
            var prefixChooser = new WeightedRandom <int>();

            prefixChooser.Add(mod.PrefixType("RustyPrefix"), 2);
            prefixChooser.Add(mod.PrefixType("ChippedPrefix"), 3);
            prefixChooser.Add(mod.PrefixType("LeadenPrefix"), 2);
            prefixChooser.Add(mod.PrefixType("HonedPrefix"), 2);
            prefixChooser.Add(mod.PrefixType("GamblersPrefix"), 2);
            prefixChooser.Add(mod.PrefixType("LightweightPrefix"), 3);
            prefixChooser.Add(mod.PrefixType("WellForgedPrefix"), 2);
            prefixChooser.Add(mod.PrefixType("MasterworkPrefix"), 1);
            prefixChooser.Add(mod.PrefixType("HollowPrefix"), 1);
            prefixChooser.Add(mod.PrefixType("BentPrefix"), 1);
            if (item.damage > 10)
            {
                prefixChooser.Add(mod.PrefixType("SharpPrefix"), 3); // 3 times as likely
            }
            int choice = prefixChooser;

            if ((item.damage > 0) && item.maxStack == 1)
            {
                return(choice);
            }
            return(-1);
        }
Beispiel #2
0
        public override int ChoosePrefix(Terraria.Utilities.UnifiedRandom rand)
        {
            var prefixChooser = new WeightedRandom <int>();

            prefixChooser.Add(mod.PrefixType("BalancedPrefix"), 3); // 3 times as likely
            prefixChooser.Add(mod.PrefixType("CondensedPrefix"), 3);
            prefixChooser.Add(mod.PrefixType("MystifyingPrefix"), 3);
            prefixChooser.Add(mod.PrefixType("UnstablePrefix"), 3);
            prefixChooser.Add(mod.PrefixType("FlawedPrefix"), 3);
            prefixChooser.Add(mod.PrefixType("BoostedPrefix"), 3);
            prefixChooser.Add(mod.PrefixType("NegatedPrefix"), 3);
            prefixChooser.Add(mod.PrefixType("OutrageousPrefix"), 3);
            prefixChooser.Add(mod.PrefixType("PoweredPrefix"), 2);
            prefixChooser.Add(mod.PrefixType("FlashyPrefix"), 2);
            prefixChooser.Add(mod.PrefixType("InfusedPrefix"), 2);
            prefixChooser.Add(mod.PrefixType("DistractingPrefix"), 2);
            prefixChooser.Add(mod.PrefixType("DestructivePrefix"), 2);
            prefixChooser.Add(mod.PrefixType("MasteredPrefix"), 1);
            prefixChooser.Add(mod.PrefixType("TranscendedPrefix"), 1);
            int choice = prefixChooser;

            if ((item.damage > 0) && item.maxStack == 1)
            {
                return(choice);
            }
            return(-1);
        }
Beispiel #3
0
 public WeightedRandom(UnifiedRandom random, params Tuple <T, double>[] theElements)
 {
     this.random = random;
     elements    = theElements.ToList();
 }
Beispiel #4
0
 public WeightedRandom(int seed, params Tuple <T, double>[] theElements)
 {
     random   = new UnifiedRandom(seed);
     elements = theElements.ToList();
 }
Beispiel #5
0
 public WeightedRandom(UnifiedRandom random)
 {
     this.random = random;
 }
Beispiel #6
0
 public WeightedRandom(int seed)
 {
     random = new UnifiedRandom(seed);
 }
Beispiel #7
0
 public WeightedRandom()
 {
     random = new UnifiedRandom();
 }
Beispiel #8
0
 public WeightedRandom(UnifiedRandom random, params Tuple <T, double>[] theElements)
 {
     this.random   = random;
     this.elements = ((IEnumerable <Tuple <T, double> >)theElements).ToList <Tuple <T, double> >();
 }
Beispiel #9
0
 public WeightedRandom(int seed, params Tuple <T, double>[] theElements)
 {
     this.random   = new UnifiedRandom(seed);
     this.elements = ((IEnumerable <Tuple <T, double> >)theElements).ToList <Tuple <T, double> >();
 }
Beispiel #10
0
 public WeightedRandom()
 {
     this.random = new UnifiedRandom();
 }