public PackRager(Classes.Barbarian barbarian)
        {
            Name = "Pack Rager";
            ArchetypeAbilities = new List <ArchetypeAbility>();

            var levels = new[] { 2, 6, 10, 14, 18 };

            ArchetypeAbilities.AddRange(barbarian.ClassAbilities
                                        .Where(a => a.Name.Contains("Rage Power") && levels.Contains(a.Level))
                                        .Select(a => new ArchetypeAbility
            {
                Name              = "Bonus Teamwork Feat",
                Level             = a.Level,
                ReplacedAbilities = new List <ClassAbility> {
                    a
                }
            }));

            ArchetypeAbilities.AddRange(barbarian.ClassAbilities
                                        .Where(a => a.Name.Contains("Damage Reduction"))
                                        .Select(a => new ArchetypeAbility
            {
                Name              = a.Name.Replace("Damage Reduction", "Raging Tactician").Replace("/-", ""),
                Level             = a.Level,
                ReplacedAbilities = new List <ClassAbility> {
                    a
                }
            }));
        }
Example #2
0
        public InvulnerableRager(Classes.Barbarian barbarian)
        {
            Name = "Invulnerable Rager";
            ArchetypeAbilities = new List <ArchetypeAbility>
            {
                new ArchetypeAbility
                {
                    Name              = "Invulnerability",
                    Level             = 2,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.UncannyDodge, barbarian.ImprovedUncannyDodge, barbarian.DamageReduction1, barbarian.DamageReduction2, barbarian.DamageReduction3, barbarian.DamageReduction4, barbarian.DamageReduction5
                    }
                },
                new ArchetypeAbility
                {
                    Name              = "Extreme Endurance (endure elements)",
                    Level             = 3,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.TrapSense1
                    }
                }
            };

            ArchetypeAbilities.AddRange(barbarian.ClassAbilities
                                        .Where(a => a.Name.Contains("Trap Sense") && a.Level > 3)
                                        .Select(a => new ArchetypeAbility
            {
                Name              = $"Extreme Endurance +{(a.Level - 3) / 3}",
                Level             = a.Level,
                ReplacedAbilities = new List <ClassAbility> {
                    a
                }
            }));
        }
Example #3
0
 public NumerianLiberator(Classes.Barbarian barbarian)
 {
     Name = "Numerian Liberator";
     ArchetypeAbilities = new List <ArchetypeAbility>
     {
         new ArchetypeAbility
         {
             Name              = "Hard Hitter",
             Level             = 2,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.UncannyDodge
             }
         },
         new ArchetypeAbility
         {
             Name              = "Disruptor",
             Level             = 5,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.ImprovedUncannyDodge
             }
         },
         new ArchetypeAbility
         {
             Name              = "Hide from Constructs",
             Level             = 14,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.IndomitableWill
             }
         }
     };
 }
 public TruePrimitive(Classes.Barbarian barbarian)
 {
     Name = "True Primitive";
     ArchetypeAbilities = new List <ArchetypeAbility>
     {
         new ArchetypeAbility
         {
             Name  = "Illiteracy",
             Level = 1,
         },
         new ArchetypeAbility
         {
             Name              = "Favored Terrain",
             Level             = 1,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.FastMovement
             },
         },
         new ArchetypeAbility
         {
             Name              = "Trophy Fetish",
             Level             = 3,
             ReplacedAbilities = new List <ClassAbility>(barbarian.ClassAbilities.Where(a => a.Name.Contains("Trap Sense"))),
         }
     };
 }
 public HatefulRager(Classes.Barbarian barbarian)
 {
     Name = "Hateful Rager";
     ArchetypeAbilities = new List <ArchetypeAbility>
     {
         new ArchetypeAbility
         {
             Name  = "Reduced Rage",
             Level = 2,
         },
         new ArchetypeAbility
         {
             Name              = "Favored Enemy 1",
             Level             = 2,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.RagePower2
             }
         },
         new ArchetypeAbility
         {
             Name              = "Favored Enemy 2",
             Level             = 8,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.RagePower8
             }
         },
         new ArchetypeAbility
         {
             Name              = "Favored Enemy 3",
             Level             = 14,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.RagePower14
             }
         },
         new ArchetypeAbility
         {
             Name              = "Favored Enemy 4",
             Level             = 20,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.RagePower20
             }
         },
         new ArchetypeAbility
         {
             Name              = "Feed the Rage",
             Level             = 5,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.ImprovedUncannyDodge
             }
         },
         new ArchetypeAbility
         {
             Name              = "Amplified by Hate",
             Level             = 9,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.TrapSense3
             }
         }
     };
 }
Example #6
0
 public WildRager(Classes.Barbarian barbarian)
 {
     Name = "Wild Rager";
     ArchetypeAbilities = new List <ArchetypeAbility>
     {
         new ArchetypeAbility
         {
             Name              = "Uncontrolled Rage",
             Level             = 1,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.Rage
             },
         },
         new ArchetypeAbility
         {
             Name              = "Wild Fighting",
             Level             = 2,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.UncannyDodge
             },
         },
         new ArchetypeAbility
         {
             Name              = "Rage Conversion",
             Level             = 5,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.ImprovedUncannyDodge
             },
         }
     };
 }
        public BrutalPugilist(Classes.Barbarian barbarian)
        {
            Name = "Brutal Pugilist";
            ArchetypeAbilities = new List <ArchetypeAbility>
            {
                new ArchetypeAbility
                {
                    Name              = "Savage Grapple",
                    Level             = 2,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.UncannyDodge
                    }
                },
                new ArchetypeAbility
                {
                    Name              = "Improved Savage Grapple",
                    Level             = 5,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.ImprovedUncannyDodge
                    }
                }
            };

            ArchetypeAbilities.AddRange(barbarian.ClassAbilities
                                        .Where(a => a.Name.Contains("Trap Sense"))
                                        .Select(a => new ArchetypeAbility
            {
                Name              = a.Name.Replace("Trap Sense +", "Pit Fighter "),
                Level             = a.Level,
                ReplacedAbilities = new List <ClassAbility> {
                    a
                }
            }));
        }
Example #8
0
        public SavageBarbarian(Classes.Barbarian barbarian)
        {
            Name = "Savage Barbarian";
            ArchetypeAbilities = new List <ArchetypeAbility>();

            ArchetypeAbilities.AddRange(barbarian.ClassAbilities
                                        .Where(a => a.Name.Contains("Trap Sense"))
                                        .Select(a => new ArchetypeAbility
            {
                Name              = a.Name.Replace("Trap Sense", "Naked Courage"),
                Level             = a.Level,
                ReplacedAbilities = new List <ClassAbility> {
                    a
                }
            }));
            ArchetypeAbilities.AddRange(barbarian.ClassAbilities
                                        .Where(a => a.Name.Contains("Damage Reduction"))
                                        .Select(a => new ArchetypeAbility
            {
                Name              = a.Name.Replace("Damage Reduction", "Natural Toughness +").Replace("/-", ""),
                Level             = a.Level,
                ReplacedAbilities = new List <ClassAbility> {
                    a
                }
            }));
        }
Example #9
0
        public Superstitious(Classes.Barbarian barbarian)
        {
            Name = "Superstitious";
            ArchetypeAbilities = new List <ArchetypeAbility>
            {
                new ArchetypeAbility
                {
                    Name              = "Keen Senses (low-light vision)",
                    Level             = 7,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.DamageReduction1
                    },
                },
                new ArchetypeAbility
                {
                    Name              = "Keen Senses (darkvision)",
                    Level             = 10,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.DamageReduction2
                    },
                },
                new ArchetypeAbility
                {
                    Name              = "Keen Senses (scent)",
                    Level             = 13,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.DamageReduction3
                    },
                },
                new ArchetypeAbility
                {
                    Name              = "Keen Senses (blindsense)",
                    Level             = 16,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.DamageReduction4
                    },
                },
                new ArchetypeAbility
                {
                    Name              = "Keen Senses (blindsight)",
                    Level             = 19,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.DamageReduction5
                    },
                }
            };

            ArchetypeAbilities.AddRange(barbarian.ClassAbilities
                                        .Where(a => a.Name.Contains("Trap Sense"))
                                        .Select(a => new ArchetypeAbility
            {
                Name              = a.Name.Replace("Trap Sense", "Sixth Sense"),
                Level             = a.Level,
                ReplacedAbilities = new List <ClassAbility> {
                    a
                },
            }));
        }
Example #10
0
        public Wildborn(Classes.Barbarian barbarian)
        {
            Name = "Wildborn";
            ArchetypeAbilities = new List <ArchetypeAbility>
            {
                new ArchetypeAbility
                {
                    Name  = "Illiteracy",
                    Level = 1,
                },
                new ArchetypeAbility
                {
                    Name  = "Inexhaustible",
                    Level = 7,
                }
            };

            ArchetypeAbilities.AddRange(barbarian.ClassAbilities
                                        .Where(a => a.Name.Contains("Trap Sense"))
                                        .Select(a => new ArchetypeAbility
            {
                Name              = a.Name.Replace("Trap Sense", "Live Off the Land"),
                Level             = a.Level,
                ReplacedAbilities = new List <ClassAbility> {
                    a
                },
            }));

            var levels = new[] { 4, 10, 16 };

            ArchetypeAbilities.AddRange(barbarian.ClassAbilities
                                        .Where(a => a.Name.Contains("Rage Power") && levels.Contains(a.Level))
                                        .Select(a => new ArchetypeAbility
            {
                Name              = "Rage Power / Bonus Feat",
                Level             = a.Level,
                ReplacedAbilities = new List <ClassAbility> {
                    a
                },
            }));

            ArchetypeAbilities.AddRange(barbarian.ClassAbilities
                                        .Where(a => a.Name.Contains("Damage Reduction"))
                                        .Select(a => new ArchetypeAbility
            {
                Name              = a.Name,
                Level             = a.Level,
                ReplacedAbilities = new List <ClassAbility> {
                    a
                },
            }));
        }
Example #11
0
        public DrunkenRager(Classes.Barbarian barbarian)
        {
            Name = "Drunken Rager";
            ArchetypeAbilities = new List <ArchetypeAbility>
            {
                new ArchetypeAbility
                {
                    Name              = "Drunken Rage",
                    Level             = 1,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.FastMovement
                    }
                },
                new ArchetypeAbility
                {
                    Name              = "Staggering Evasion",
                    Level             = 2,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.UncannyDodge
                    }
                },
                new ArchetypeAbility
                {
                    Name              = "Improved Staggering Evasion",
                    Level             = 5,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.ImprovedUncannyDodge
                    }
                },
                new ArchetypeAbility
                {
                    Name              = "Drunken Swing",
                    Level             = 12,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.RagePower12
                    }
                }
            };

            ArchetypeAbilities.AddRange(barbarian.ClassAbilities
                                        .Where(a => a.Name.Contains("Trap Sense"))
                                        .Select(a => new ArchetypeAbility
            {
                Name              = a.Name.Replace("Trap Sense", "Tolerance"),
                Level             = a.Level,
                ReplacedAbilities = new List <ClassAbility> {
                    a
                }
            }));
        }
        public TitanMauler(Classes.Barbarian barbarian)
        {
            Name = "Titan Mauler";
            ArchetypeAbilities = new List <ArchetypeAbility>
            {
                new ArchetypeAbility
                {
                    Name              = "Big Game Hunter",
                    Level             = 1,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.FastMovement
                    },
                },
                new ArchetypeAbility
                {
                    Name              = "Jotungrip",
                    Level             = 2,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.UncannyDodge
                    },
                },
                new ArchetypeAbility
                {
                    Name              = "Evade Reach",
                    Level             = 5,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.ImprovedUncannyDodge
                    },
                },
                new ArchetypeAbility
                {
                    Name              = "Titanic Rage",
                    Level             = 14,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.IndomitableWill
                    },
                }
            };

            ArchetypeAbilities.AddRange(barbarian.ClassAbilities
                                        .Where(a => a.Name.Contains("Trap Sense"))
                                        .Select(a => new ArchetypeAbility
            {
                Name              = a.Name.Replace("Trap Sense", "Massive Weapons"),
                Level             = a.Level,
                ReplacedAbilities = new List <ClassAbility> {
                    a
                },
            }));
        }
Example #13
0
 public Hurler(Classes.Barbarian barbarian)
 {
     Name = "Hurler";
     ArchetypeAbilities = new List <ArchetypeAbility>
     {
         new ArchetypeAbility
         {
             Name              = "Skilled Thrower",
             Level             = 1,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.FastMovement
             }
         }
     };
 }
Example #14
0
 public DrunkenBrute(Classes.Barbarian barbarian)
 {
     Name = "Drunken Brute";
     ArchetypeAbilities = new List <ArchetypeAbility>
     {
         new ArchetypeAbility
         {
             Name              = "Raging Drunk",
             Level             = 1,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.FastMovement
             }
         }
     };
 }
 public ElementalKin(Classes.Barbarian barbarian)
 {
     Name = "Elemental Kin";
     ArchetypeAbilities = new List <ArchetypeAbility>();
     ArchetypeAbilities.AddRange(barbarian.ClassAbilities
                                 .Where(a => a.Name.Contains("Trap Sense"))
                                 .Select(a => new ArchetypeAbility
     {
         Name              = a.Name.Replace("Trap Sense", "Elemental Fury"),
         Level             = a.Level,
         ReplacedAbilities = new List <ClassAbility> {
             a
         }
     }));
 }
 public Flesheater(Classes.Barbarian barbarian)
 {
     Name = "Flesheater";
     ArchetypeAbilities = new List <ArchetypeAbility>
     {
         new ArchetypeAbility
         {
             Name              = "Rage",
             Level             = 1,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.Rage
             }
         },
         new ArchetypeAbility
         {
             Name              = "One Flesh",
             Level             = 2,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.UncannyDodge, barbarian.ImprovedUncannyDodge, barbarian.RagePower2, barbarian.RagePower8
             }
         },
         new ArchetypeAbility
         {
             Name              = "Unbound Rage",
             Level             = 11,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.GreaterRage
             }
         },
         new ArchetypeAbility
         {
             Name              = "Feast",
             Level             = 14,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.RagePower14
             }
         },
         new ArchetypeAbility
         {
             Name              = "Unbound Form",
             Level             = 20,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.MightyRage
             }
         }
     };
 }
 public ShoantiBurnRider(Classes.Barbarian barbarian)
 {
     Name = "Shoanti Burn Rider";
     ArchetypeAbilities = new List <ArchetypeAbility>
     {
         new ArchetypeAbility
         {
             Name              = "Flame Runner",
             Level             = 1,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.FastMovement
             },
         },
         new ArchetypeAbility
         {
             Name              = "Cinder Sight",
             Level             = 2,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.UncannyDodge
             },
         },
         new ArchetypeAbility
         {
             Name              = "Cinder Dance",
             Level             = 3,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.TrapSense1, barbarian.TrapSense2, barbarian.TrapSense3, barbarian.TrapSense4, barbarian.TrapSense5, barbarian.TrapSense6
             },
         },
         new ArchetypeAbility
         {
             Name              = "Mount",
             Level             = 4,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.RagePower4, barbarian.RagePower8, barbarian.RagePower12, barbarian.RagePower16
             },
         },
         new ArchetypeAbility
         {
             Name              = "Give Me Fire",
             Level             = 5,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.ImprovedUncannyDodge
             },
         }
     };
 }
 public DeepwaterRager(Classes.Barbarian barbarian)
 {
     Name = "Deepwater Rager";
     ArchetypeAbilities = new List <ArchetypeAbility>
     {
         new ArchetypeAbility
         {
             Name              = "Strong Lungs",
             Level             = 1,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.FastMovement
             }
         },
         new ArchetypeAbility
         {
             Name              = "Spiraling Charge",
             Level             = 2,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.UncannyDodge
             }
         },
         new ArchetypeAbility
         {
             Name              = "Disorienting Grapple",
             Level             = 5,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.ImprovedUncannyDodge
             }
         },
         new ArchetypeAbility
         {
             Name              = "Crushing Grapple",
             Level             = 14,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.IndomitableWill
             }
         },
         new ArchetypeAbility
         {
             Name              = "Full Lungs",
             Level             = 17,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.TirelessRage
             }
         }
     };
 }
        public UntamedRager(Classes.Barbarian barbarian)
        {
            Name = "Untamed Rager";
            ArchetypeAbilities = new List <ArchetypeAbility>
            {
                new ArchetypeAbility
                {
                    Name              = "Despicable Tactics",
                    Level             = 2,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.UncannyDodge
                    },
                },
                new ArchetypeAbility
                {
                    Name              = "Deplorable Tactics",
                    Level             = 5,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.ImprovedUncannyDodge
                    },
                }
            };

            ArchetypeAbilities.AddRange(barbarian.ClassAbilities
                                        .Where(a => a.Name.Contains("Trap Sense"))
                                        .Select(a => new ArchetypeAbility
            {
                Name              = a.Name.Replace("Trap Sense", "Feral Appearance"),
                Level             = a.Level,
                ReplacedAbilities = new List <ClassAbility> {
                    a
                },
            }));

            ArchetypeAbilities.AddRange(barbarian.ClassAbilities
                                        .Where(a => a.Name.Contains("Damage Reduction"))
                                        .Select(a => new ArchetypeAbility
            {
                Name              = a.Name.Replace("Damage Reduction", "Dishonorable +").Replace("/-", ""),
                Level             = a.Level,
                ReplacedAbilities = new List <ClassAbility> {
                    a
                },
            }));
        }
Example #20
0
        public JungleRager(Classes.Barbarian barbarian)
        {
            Name = "Jungle Rager";
            ArchetypeAbilities = new List <ArchetypeAbility>
            {
                new ArchetypeAbility
                {
                    Name              = "Home Ground Advantage",
                    Level             = 2,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.UncannyDodge
                    }
                },
                new ArchetypeAbility
                {
                    Name              = "Home Ground Supremacy",
                    Level             = 5,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.ImprovedUncannyDodge
                    }
                }
            };

            ArchetypeAbilities.AddRange(barbarian.ClassAbilities
                                        .Where(a => a.Name.Contains("Trap Sense"))
                                        .Select(a => new ArchetypeAbility
            {
                Name              = a.Name.Replace("Trap Sense", "Jungle Endurance"),
                Level             = a.Level,
                ReplacedAbilities = new List <ClassAbility> {
                    a
                }
            }));

            ArchetypeAbilities.AddRange(barbarian.ClassAbilities
                                        .Where(a => a.Name.Contains("Damage Reduction"))
                                        .Select(a => new ArchetypeAbility
            {
                Name              = a.Name,
                Level             = a.Level + 1,
                ReplacedAbilities = new List <ClassAbility> {
                    a
                }
            }));
        }
Example #21
0
        public GiantStalker(Classes.Barbarian barbarian)
        {
            Name = "Giant Stalker";
            ArchetypeAbilities = new List <ArchetypeAbility>
            {
                new ArchetypeAbility
                {
                    Name  = "Harangue Giant",
                    Level = 1,
                },
                new ArchetypeAbility
                {
                    Name              = "Rage",
                    Level             = 1,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.Rage
                    }
                },
                new ArchetypeAbility
                {
                    Name              = "Smell Giants",
                    Level             = 2,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.UncannyDodge
                    }
                },
                new ArchetypeAbility
                {
                    Name  = "Giant Stalker Rage Powers",
                    Level = 2,
                }
            };

            ArchetypeAbilities.AddRange(barbarian.ClassAbilities
                                        .Where(a => a.Name.Contains("Trap Sense"))
                                        .Select(a => new ArchetypeAbility
            {
                Name              = a.Name.Replace("Trap Sense", "Giant Baiter"),
                Level             = a.Level,
                ReplacedAbilities = new List <ClassAbility> {
                    a
                }
            }));
        }
        public ArmoredHulk(Classes.Barbarian barbarian)
        {
            Name = "Armored Hulk";
            ArchetypeAbilities = new List <ArchetypeAbility>
            {
                new ArchetypeAbility
                {
                    Name              = "Indomitable Stance",
                    Level             = 1,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.FastMovement
                    }
                },
                new ArchetypeAbility
                {
                    Name              = "Armored Swiftness",
                    Level             = 2,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.UncannyDodge
                    }
                },
                new ArchetypeAbility
                {
                    Name              = "Improved Armored Swiftness",
                    Level             = 5,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.ImprovedUncannyDodge
                    }
                }
            };

            ArchetypeAbilities.AddRange(barbarian.ClassAbilities
                                        .Where(a => a.Name.Contains("Trap Sense"))
                                        .Select(a => new ArchetypeAbility
            {
                Name              = a.Name.Replace("Trap Sense", "Resilience of Steel"),
                Level             = a.Level,
                ReplacedAbilities = new List <ClassAbility> {
                    a
                }
            }));
        }
        public BrutishSwamper(Classes.Barbarian barbarian)
        {
            Name = "Brutish Swamper";
            ArchetypeAbilities = new List <ArchetypeAbility>
            {
                new ArchetypeAbility
                {
                    Name              = "Marsh March",
                    Level             = 1,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.FastMovement
                    }
                },
                new ArchetypeAbility
                {
                    Name              = "Home",
                    Level             = 2,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.UncannyDodge, barbarian.ImprovedUncannyDodge
                    }
                },
                new ArchetypeAbility
                {
                    Name              = "Wrastlin'",
                    Level             = 6,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.RagePower6
                    }
                }
            };

            ArchetypeAbilities.AddRange(barbarian.ClassAbilities
                                        .Where(a => a.Name.Contains("Trap Sense"))
                                        .Select(a => new ArchetypeAbility
            {
                Name              = $"Stubborn -{a.Level / 3 * 2}",
                Level             = a.Level,
                ReplacedAbilities = new List <ClassAbility> {
                    a
                }
            }));
        }
        public ScarredRager(Classes.Barbarian barbarian)
        {
            Name = "Scarred Rager";
            ArchetypeAbilities = new List <ArchetypeAbility>
            {
                new ArchetypeAbility
                {
                    Name              = "Terrifying Visage",
                    Level             = 1,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.FastMovement
                    }
                },
                new ArchetypeAbility
                {
                    Name              = "Tolerance",
                    Level             = 2,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.UncannyDodge
                    }
                },
                new ArchetypeAbility
                {
                    Name              = "Improved Tolerance",
                    Level             = 5,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.ImprovedUncannyDodge
                    }
                }
            };

            ArchetypeAbilities.AddRange(barbarian.ClassAbilities
                                        .Where(a => a.Name.Contains("Trap Sense"))
                                        .Select(a => new ArchetypeAbility
            {
                Name              = a.Name.Replace("Trap Sense", "Scarification"),
                Level             = a.Level,
                ReplacedAbilities = new List <ClassAbility> {
                    a
                }
            }));
        }
Example #25
0
        public SeaReaver(Classes.Barbarian barbarian)
        {
            Name = "Sea Reaver";
            ArchetypeAbilities = new List <ArchetypeAbility>
            {
                new ArchetypeAbility
                {
                    Name              = "Marine Terror",
                    Level             = 1,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.FastMovement
                    }
                },
                new ArchetypeAbility
                {
                    Name              = "Eyes of the Storm",
                    Level             = 2,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.UncannyDodge
                    },
                },
                new ArchetypeAbility
                {
                    Name              = "Sure-Footed",
                    Level             = 5,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.ImprovedUncannyDodge
                    },
                },
            };

            ArchetypeAbilities.AddRange(barbarian.ClassAbilities
                                        .Where(a => a.Name.Contains("Trap Sense"))
                                        .Select(a => new ArchetypeAbility
            {
                Name              = a.Name.Replace("Trap Sense", "Savage Sailor"),
                Level             = a.Level,
                ReplacedAbilities = new List <ClassAbility> {
                    a
                },
            }));
        }
        public FearsomeDefender(Classes.Barbarian barbarian)
        {
            Name = "Fearsome Defender";
            ArchetypeAbilities = new List <ArchetypeAbility>
            {
                new ArchetypeAbility
                {
                    Name              = "Intractable",
                    Level             = 1,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.FastMovement
                    }
                },
                new ArchetypeAbility
                {
                    Name              = "Off the Leash",
                    Level             = 2,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.UncannyDodge
                    }
                },
                new ArchetypeAbility
                {
                    Name              = "Bloodlust",
                    Level             = 5,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.ImprovedUncannyDodge
                    }
                }
            };

            ArchetypeAbilities.AddRange(barbarian.ClassAbilities
                                        .Where(a => a.Name.Contains("Trap Sense"))
                                        .Select(a => new ArchetypeAbility
            {
                Name              = a.Name.Replace("Trap Sense", "Silent Threat"),
                Level             = a.Level,
                ReplacedAbilities = new List <ClassAbility> {
                    a
                }
            }));
        }
Example #27
0
        public Sharptooth(Classes.Barbarian barbarian)
        {
            Name = "Sharptooth";
            ArchetypeAbilities = new List <ArchetypeAbility>
            {
                new ArchetypeAbility
                {
                    Name              = "Swim Like a Fish",
                    Level             = 1,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.FastMovement
                    },
                },
                new ArchetypeAbility
                {
                    Name              = "Scent of Blood",
                    Level             = 2,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.UncannyDodge, barbarian.ImprovedUncannyDodge
                    },
                },
                new ArchetypeAbility
                {
                    Name              = "Blood in the Water",
                    Level             = 6,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.RagePower6, barbarian.RagePower12
                    },
                }
            };

            ArchetypeAbilities.AddRange(barbarian.ClassAbilities
                                        .Where(a => a.Name.Contains("Trap Sense"))
                                        .Select(a => new ArchetypeAbility
            {
                Name              = a.Name.Replace("Trap Sense", "Ocean Breath"),
                Level             = a.Level,
                ReplacedAbilities = new List <ClassAbility> {
                    a
                },
            }));
        }
Example #28
0
        public GeminateInvoker(Classes.Barbarian barbarian)
        {
            Name = "Geminate Invoker";
            ArchetypeAbilities = new List <ArchetypeAbility>
            {
                new ArchetypeAbility
                {
                    Name   = "Contemplative",
                    Level  = 1,
                    Add    = () => barbarian.Alignment = "Any Neutral",
                    Remove = () => barbarian.Alignment = "Any Nonlawful",
                },
                new ArchetypeAbility
                {
                    Name              = "Trance",
                    Level             = 1,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.Rage
                    }
                },
                new ArchetypeAbility
                {
                    Name              = "Spirit Conduit",
                    Level             = 4,
                    ReplacedAbilities = new List <ClassAbility> {
                        barbarian.RagePower4, barbarian.RagePower8, barbarian.RagePower12
                    }
                }
            };

            ArchetypeAbilities.AddRange(barbarian.ClassAbilities
                                        .Where(a => a.Name.Contains("Trap Sense"))
                                        .Select(a => new ArchetypeAbility
            {
                Name              = $"Haunt Channeler {a.Level / 3}d6",
                Level             = a.Level,
                ReplacedAbilities = new List <ClassAbility> {
                    a
                }
            }));
        }
 public Mooncursed(Classes.Barbarian barbarian)
 {
     Name = "Mooncursed";
     ArchetypeAbilities = new List <ArchetypeAbility>
     {
         new ArchetypeAbility
         {
             Name              = "Shifting Rage",
             Level             = 1,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.Rage
             }
         },
         new ArchetypeAbility
         {
             Name              = "Hybrid Rage",
             Level             = 5,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.ImprovedUncannyDodge
             }
         },
         new ArchetypeAbility
         {
             Name              = "Greater Shifting Rage",
             Level             = 11,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.GreaterRage
             }
         },
         new ArchetypeAbility
         {
             Name              = "Mighty Shifting Rage",
             Level             = 20,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.MightyRage
             }
         }
     };
 }
Example #30
0
 public Dreadnought(Classes.Barbarian barbarian)
 {
     Name = "Dreadnought";
     ArchetypeAbilities = new List <ArchetypeAbility>
     {
         new ArchetypeAbility
         {
             Name              = "Dead Calm",
             Level             = 1,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.Rage
             }
         },
         new ArchetypeAbility
         {
             Name              = "Stead Gait",
             Level             = 1,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.FastMovement
             }
         },
         new ArchetypeAbility
         {
             Name              = "Fearless Killer",
             Level             = 14,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.IndomitableWill
             }
         },
         new ArchetypeAbility
         {
             Name              = "Instant Dispassion",
             Level             = 17,
             ReplacedAbilities = new List <ClassAbility> {
                 barbarian.TirelessRage
             }
         }
     };
 }