Bladeren bron

added selection and the first data for subclasses

Warafear 1 jaar geleden
bovenliggende
commit
fe5da1bc44

+ 2 - 2
src/app/journal/journal-character/journal-character.component.html

@@ -43,8 +43,8 @@
         </ng-template>
       </ng-container>
       <ng-container ngbNavItem="subclass">
-        @if (data.level >= 3 || data.class === "Cleric") {
-          <button ngbNavLink>Unterklasse</button>
+        @if (showSubclass) {
+          <button ngbNavLink>{{ subclassLabel }}</button>
           <ng-template ngbNavContent>
             <subclass></subclass>
           </ng-template>

+ 24 - 2
src/app/journal/journal-character/journal-character.component.ts

@@ -1,5 +1,6 @@
 import { Component } from '@angular/core';
 import { DataService } from 'src/services/data/data.service';
+import { ClassService } from 'src/services/class/class.service';
 
 @Component({
   selector: 'app-journal-character',
@@ -8,17 +9,38 @@ import { DataService } from 'src/services/data/data.service';
 })
 export class JournalCharacterComponent {
   public activeTab: string = 'general';
-
+  public showSubclass: boolean = false;
   public data: any = {};
   public name = sessionStorage.getItem('characterName');
+  public subclassLabel: string = '';
 
-  public constructor(public dataAccessor: DataService) {}
+  public constructor(
+    public dataAccessor: DataService,
+    private classAccessor: ClassService,
+  ) {}
 
   ngOnInit(): void {
     this.data = this.dataAccessor.characterData;
+    this.subclassLabel = this.classAccessor.getClassDetails(
+      this.data.class,
+    ).subclassLabel;
+    this.isLevelSufficientForSubclass();
+  }
+
+  /**
+   * Calculates if the level is sufficient for showing the subclass tab.
+   * @returns boolean Returns true if the level is sufficient for the subclass.
+   */
+  private isLevelSufficientForSubclass(): void {
+    var className = this.data.class;
+    var level = this.data.level;
+    var necessaryLevelForSubclass =
+      this.classAccessor.getClassDetails(className).subclassLevel;
+    this.showSubclass = level >= necessaryLevelForSubclass;
   }
 
   public updateData(): void {
+    this.isLevelSufficientForSubclass();
     this.dataAccessor.characterData = this.data;
   }
 }

+ 42 - 14
src/app/journal/journal-character/subclass/subclass.component.html

@@ -1,18 +1,46 @@
 <div class="subclass-container">
-  <div class="title">{{ subclass.title }}</div>
+  @if (!subclass) {
+    <div class="title">Noch keine Unterklasse gewählt</div>
+    <div class="description">
+      <p>
+        Hier kannst du deine Unterklasse wählen. Die Unterklasse ist eine
+        spezielle Spezialisierung deiner Klasse. Sie gibt dir zusätzliche
+        Fähigkeiten und Eigenschaften.
+      </p>
+      <p>
+        <mat-form-field appearance="outline">
+          <mat-label>Unterklasse</mat-label>
+          <mat-select
+            (selectionChange)="updateData()"
+            [(ngModel)]="data.subclass"
+            name="species"
+          >
+            @for (subclass of availableSubclasses; track subclass) {
+              <mat-option [value]="subclass">{{ subclass }}</mat-option>
+            }
+          </mat-select>
+        </mat-form-field>
+      </p>
+    </div>
+  } @else {
+    <div class="title">{{ subclass.title }}</div>
 
-  <markdown [data]="subclass.description"></markdown>
+    <div [innerHTML]="subclass.description"></div>
 
-  <div class="features">
-    @for (feature of subclass.features; track feature) {
-      <div class="feature">
-        <div class="feature-name">{{ feature.name }}</div>
-        <div class="feature-level">{{ feature.level }}</div>
-        <markdown
-          class="feature-description"
-          [data]="feature.description"
-        ></markdown>
-      </div>
-    }
-  </div>
+    <div class="features">
+      @for (feature of subclass.features; track feature) {
+        <div class="feature">
+          <hr />
+          <div class="feature-name">{{ feature.name }}</div>
+          <div class="feature-level">{{ feature.level }}</div>
+          <icon-button
+            [icon]="'add'"
+            class="feature-button"
+            (click)="addFeature(feature)"
+          ></icon-button>
+          <div [innerHTML]="feature.description"></div>
+        </div>
+      }
+    </div>
+  }
 </div>

+ 10 - 7
src/app/journal/journal-character/subclass/subclass.component.scss

@@ -21,28 +21,31 @@
   margin: 0 0 2rem 0;
 }
 
-.description {
-}
-
 .feature {
-  margin-top: 2rem;
+  margin-top: 1.5rem;
   position: relative;
 }
-
 .feature-name {
   font-size: 1.5rem;
   font-weight: 600;
   margin-bottom: 1rem;
+  margin-left: 1rem;
 }
 
 .feature-level {
   position: absolute;
-  left: -1.75rem;
-  top: 0;
+  left: -1.5rem;
+  top: 1rem;
   font-size: 1.5rem;
   font-weight: 600;
 }
 
+.feature-button {
+  position: absolute;
+  right: 0;
+  top: 1.5rem;
+}
+
 .feature-description {
   margin-top: 1rem;
 }

+ 99 - 97
src/app/journal/journal-character/subclass/subclass.component.ts

@@ -1,5 +1,11 @@
 import { Component } from '@angular/core';
 import { SubclassService } from 'src/services/subclass/subclass.service';
+import { DataService } from 'src/services/data/data.service';
+import { ModalService } from 'src/services/modal/modal.service';
+import { Ability } from 'src/interfaces/ability';
+import { Trait } from 'src/interfaces/traits';
+import { AbilityModalComponent } from '../../journal-stats/ability-panel/ability-table/ability-modal/ability-modal.component';
+import { TraitModalComponent } from '../../journal-stats/ability-panel/trait-table/trait-modal/trait-modal.component';
 
 @Component({
   selector: 'subclass',
@@ -7,109 +13,105 @@ import { SubclassService } from 'src/services/subclass/subclass.service';
   styleUrl: './subclass.component.scss',
 })
 export class SubclassComponent {
-  public subClassName: string = 'EchoKnight';
+  public subclassName: string = 'EchoKnight';
   public subclass: any;
+  private className: string = '';
+  public availableSubclasses: string[] = [];
+  public data: any;
 
-  public constructor(private SubclassService: SubclassService) {
-    this.subclass = this.SubclassService.getSubclassDetails(this.subClassName);
+  public constructor(
+    private SubclassService: SubclassService,
+    private dataAccessor: DataService,
+    private modalAccessor: ModalService,
+  ) {
+    this.data = this.dataAccessor.characterData;
+    this.className = this.data.class;
+    this.loadSubclassData();
   }
 
-  //   {
-  //   title: 'Echo Knight',
-  //   description: `
-  //    A mysterious and feared frontline warrior of the Kryn Dynasty, the Echo Knight has mastered the art of using dunamis to summon the fading shades of unrealized timelines to aid them in battle. Surrounded by echoes of their own might, they charge into the fray as a cycling swarm of shadows and strikes.
-  //   `,
-  //   features: [
-  //     {
-  //       name: 'Manifest Echo',
-  //       level: 3,
-  //       description: `
-  //         At 3rd level, you can use a bonus action to magically manifest an echo of yourself in an unoccupied space you can see within 15 feet of you. This echo is a magical, translucent, gray image of you that lasts until it is destroyed, until you dismiss it as a bonus action, until you manifest another echo, or until you're incapacitated.
-
-  //         Your echo has AC 14 + your proficiency bonus, 1 hit point, and immunity to all conditions. If it has to make a saving throw, it uses your saving throw bonus for the roll. It is the same size as you, and it occupies its space. On your turn, you can mentally command the echo to move up to 30 feet in any direction (no action required). If your echo is ever more than 30 feet from you at the end of your turn, it is destroyed.
-
-  //         - As a bonus action, you can teleport, magically swapping places with your echo at a cost of 15 feet of your movement, regardless of the distance between the two of you.
-  //         - When you take the Attack action on your turn, any attack you make with that action can originate from your space or the echo's space. You make this choice for each attack.
-  //         - When a creature that you can see within 5 feet of your echo moves at least 5 feet away from it, you can use your reaction to make an opportunity attack against that creature as if you were in the echo's space.
-  //       `,
-  //     },
-  //     {
-  //       name: 'Unleash Incarnation',
-  //       level: 3,
-  //       description: `
-  //         At 3rd level, you can heighten your echo's fury. Whenever you take the Attack action, you can make one additional melee attack from the echo's position.
-
-  //         You can use this feature a number of times equal to your Constitution modifier (a minimum of once). You regain all expended uses when you finish a long rest.
-  //       `,
-  //     },
-  //     {
-  //       name: 'Echo Avatar',
-  //       level: 7,
-  //       description: `
-  //         Starting at 7th level, you can temporarily transfer your consciousness to your echo. As an action, you can see through your echo's eyes and hear through its ears. During this time, you are deafened and blinded. You can sustain this effect for up to 10 minutes, and you can end it at any time (requires no action). While your echo is being used in this way, it can be up to 1,000 feet away from you without being destroyed.
-  //       `,
-  //     },
-  //     {
-  //       name: 'Shadow Martyr',
-  //       level: 10,
-  //       description: `
-  //         Starting at 10th level, you can make your echo throw itself in front of an attack directed at another creature that you can see. Before the attack roll is made, you can use your reaction to teleport the echo to an unoccupied space within 5 feet of the targeted creature. The attack roll that triggered the reaction is instead made against your echo.
-
-  //         Once you use this feature, you can't use it again until you finish a short or long rest.
-  //       `,
-  //     },
-  //     {
-  //       name: 'Reclaim Potential',
-  //       level: 15,
-  //       description: `
-  //         By 15th level, you've learned to absorb the fleeting magic of your echo. When an echo of yours is destroyed by taking damage, you can gain a number of temporary hit points equal to 2d6 + your Constitution modifier, provided you don't already have temporary hit points.
-
-  //         You can use this feature a number of times equal to your Constitution modifier (a minimum of once). You regain all expended uses when you finish a long rest.
-  //       `,
-  //     },
-  //     {
-  //       name: 'Legion of One',
-  //       level: 15,
-  //       description: `
-  //         At 18th level, you can use a bonus action to create two echos with your Manifest Echo feature, and these echoes can co-exist. If you try to create a third echo, the previous two echoes are destroyed. Anything you can do from one echo's position can be done from the other's instead.
+  private loadSubclassData(): void {
+    this.subclassName = this.data.subclass;
+    if (this.subclassName) {
+      this.subclass = this.SubclassService.getSubclassDetails(
+        this.subclassName,
+      );
+    }
+    this.availableSubclasses = this.SubclassService.getAvailableSubclassNames(
+      this.className,
+    );
+  }
 
-  //         In addition, when you roll initiative and have no uses of your Unleash Incarnation feature left, you regain one use of that feature.
-  //       `,
-  //     },
-  //   ],
-  // };
+  /**
+   * Updates the character data in the data service and implicitly in the database.
+   */
+  updateData(): void {
+    this.dataAccessor.characterData = this.data;
+    this.loadSubclassData();
+  }
 
-  //   {
-  //   title: 'Peace Domain',
-  //   description: `
-  //     The balm of peace thrives at the heart of healthy communities, between friendly nations, and in the souls of the kindhearted. The gods of peace inspire people of all sorts to resolve conflict and to stand up against those forces that try to prevent peace from flourishing. See the Peace Deities table for a list of some of the gods associated with this domain.
+  public addFeature(feature: any) {
+    if ('ability' in feature) {
+      this.addAbility(feature);
+    } else {
+      this.addTrait(feature);
+    }
+  }
 
-  //     Clerics of the Peace Domain preside over the signing of treaties, and they are often asked to arbitrate in disputes. These clerics' blessings draw people together and help them shoulder one another's burdens, and the clerics' magic aids those who are driven to fight for the way of peace.
-  //   `,
-  //   features: [
-  //     {
-  //       name: 'Implement of Peace',
-  //       level: 1,
-  //       description: `
-  //         When you choose this domain at 1st level, you gain proficiency in the Insight, Performance, or Persuasion skill (your choice).
-  //       `,
-  //     },
-  //     {
-  //       name: 'Emboldening Bond',
-  //       level: 1,
-  //       description: `
-  //         Starting at 1st level, you can forge an empowering bond among people who are at peace with one another. As an action, you choose a number of willing creatures within 30 feet of you (this can include yourself) equal to your proficiency bonus. You create a magical bond among them for 10 minutes or until you use this feature again. While any bonded creature is within 30 feet of another, the creature can roll a d4 and add the number rolled to an attack roll, an ability check, or a saving throw it makes. Each creature can add the d4 no more than once per turn.
+  private addAbility(feature: any) {
+    let index = feature.name.indexOf('Optional');
+    if (index > -1) {
+      feature.name = feature.name.slice(index, 8);
+    }
+    let ability: Ability = {
+      name: feature.name,
+      shortDescription: '',
+      longDescription: feature.description,
+      cost: '',
+      charges: 0,
+      currentlyUsedCharges: 0,
+    };
+    this.modalAccessor.openModal(AbilityModalComponent, {
+      ability: ability,
+      isUpdate: true,
+      isAddedFromCharacter: true,
+    });
+    const resultSubscription = this.modalAccessor.result$.subscribe(
+      (result) => {
+        if (result.state === 'update' || result.state === 'add') {
+          let ability = this.dataAccessor.abilities;
+          ability.push(result.data);
+          this.dataAccessor.abilities = ability;
+        }
+        resultSubscription.unsubscribe();
+      },
+    );
+  }
 
-  //         You can use this feature a number of times equal to your proficiency bonus, and you regain all expended uses when you finish a long rest.
-  //       `,
-  //     },
-  //     {
-  //       name: 'Channel Divinity: Balm of Peace',
-  //       level: 2,
-  //       description: `
-  //         Starting at 2nd level, you can use your Channel Divinity to make your very presence a soothing balm. As an action, you can move up to your speed, without provoking opportunity attacks, and when you move within 5 feet of any other creature during this action, you can restore a number of hit points to that creature equal to 2d6 + your Wisdom modifier (minimum of 1 hit point). A creature can receive this healing only once whenever you take this action.
-  //       `,
-  //     },
-  //   ],
-  // };
+  private addTrait(feature: any) {
+    let index = feature.name.indexOf('Optional');
+    if (index > -1) {
+      feature.name = feature.name.slice(index, 8);
+    }
+    let trait: Trait = {
+      name: feature.name,
+      shortDescription: '',
+      longDescription: feature.description,
+      origin: 'Class',
+    };
+    this.modalAccessor.openModal(TraitModalComponent, {
+      trait: trait,
+      isUpdate: true,
+      isAddedFromCharacter: true,
+    });
+    const resultSubscription = this.modalAccessor.result$.subscribe(
+      (result) => {
+        if (result.state === 'update' || result.state === 'add') {
+          let traits = this.dataAccessor.traits;
+          traits.push(result.data);
+          this.dataAccessor.traits = traits;
+        }
+        resultSubscription.unsubscribe();
+      },
+    );
+  }
 }

+ 7 - 0
src/interfaces/class-data.ts

@@ -0,0 +1,7 @@
+export interface ClassData {
+  title: string;
+  subclassLevel: number;
+  subclassLabel: string;
+  description: string;
+  features: any[];
+}

+ 5 - 0
src/interfaces/subclass-data.ts

@@ -0,0 +1,5 @@
+export interface SubclassData {
+  title: string;
+  description: string;
+  features: any[];
+}

+ 942 - 18
src/services/class/class.service.ts

@@ -1,4 +1,5 @@
 import { Injectable } from '@angular/core';
+import { ClassData } from 'src/interfaces/class-data';
 
 @Injectable({
   providedIn: 'root',
@@ -8,16 +9,22 @@ export class ClassService {
 
   // FUNCTIONS
 
-  public getClassDetails(className: string): any {
+  public getClassDetails(className: string): ClassData {
     switch (className) {
-      case 'Fighter':
-        return this.fighter;
+      case 'Bard':
+        return this.bard;
       case 'Barbarian':
         return this.barbarian;
       case 'Cleric':
         return this.cleric;
+      case 'Druid':
+        return this.druid;
+      case 'Fighter':
+        return this.fighter;
       case 'Monk':
         return this.monk;
+      case 'Paladin':
+        return this.paladin;
       case 'Ranger':
         return this.ranger;
       case 'Rogue':
@@ -28,8 +35,6 @@ export class ClassService {
         return this.warlock;
       case 'Wizard':
         return this.wizard;
-      case 'Paladin':
-        return this.paladin;
       default:
         return this.notImplementedYet;
     }
@@ -37,8 +42,10 @@ export class ClassService {
 
   // CLASS DETAILS
 
-  public monk: any = {
+  public monk: ClassData = {
     title: 'Mönch',
+    subclassLevel: 3,
+    subclassLabel: 'Kloster',
     description: `
       <p>Monks are united in their ability to magically harness the energy that flows in their bodies. Whether channeled as a striking display of combat prowess or a subtler focus of defensive ability and speed, this energy infuses all that a monk does.</p>
       <h4>Class Features</h4>
@@ -268,8 +275,10 @@ export class ClassService {
     ],
   };
 
-  public fighter: any = {
+  public fighter: ClassData = {
     title: 'Kämpfer',
+    subclassLevel: 3,
+    subclassLabel: 'Archetyp',
     description: `
     <p>Fighters share an unparalleled mastery with weapons and armor, and a thorough knowledge of the skills of combat. They are well acquainted with death, both meting it out and staring it defiantly in the face.</p>
     <h4>Class Features</h4>
@@ -448,8 +457,10 @@ export class ClassService {
     ],
   };
 
-  public barbarian: any = {
+  public barbarian: ClassData = {
     title: 'Barbar',
+    subclassLevel: 3,
+    subclassLabel: 'Pfad',
     description: `
     <p>Barbarians are savage warriors who deal with their opponents through a combination of sheer brute force and terrifying rage. Their strength and ferocity make them well suited for melee combat. Barbarians are also able to wreak havoc on their enemies using unorthodox methods, such as throwing improvised weapons or even their own bodies.</p>
     <h4>Class Features</h4>
@@ -597,8 +608,10 @@ export class ClassService {
     ],
   };
 
-  public ranger: any = {
+  public ranger: ClassData = {
     title: 'Waldläufer',
+    subclassLevel: 3,
+    subclassLabel: 'Konklave',
     description: `
     <p>Rangers are skilled stalkers and hunters who make their home in the woods. Their martial skill is nearly the equal of the fighter, but they lack the latter's dedication to the craft of fighting. Instead, the ranger focuses his skills and training on a specific enemy—a type of creature he bears a vengeful grudge against and hunts above all others.</p>
     <h4>Class Features</h4>
@@ -836,8 +849,10 @@ export class ClassService {
     ],
   };
 
-  public cleric: any = {
+  public cleric: ClassData = {
     title: 'Cleric',
+    subclassLevel: 1,
+    subclassLabel: 'Domäne',
     description: `
     <p>Clerics are intermediaries between the mortal world and the distant planes of the gods. As varied as the gods they serve, clerics strive to embody the handiwork of their deities. No ordinary priest, a cleric is imbued with divine magic.</p>
     <h4>Class Features</h4>
@@ -977,8 +992,10 @@ export class ClassService {
     ],
   };
 
-  public paladin: any = {
+  public paladin: ClassData = {
     title: 'Paladin',
+    subclassLevel: 1,
+    subclassLabel: 'Schwur',
     description: `
     <p>Paladins are the ultimate champions of good, using their holy magic to protect the innocent and spread justice. They are often found in the thick of battle, smiting evil and saving the lives of their allies.</p>
     <h4>Class Features</h4>
@@ -1202,8 +1219,10 @@ export class ClassService {
     ],
   };
 
-  public wizard: any = {
+  public wizard: ClassData = {
     title: 'Wizard',
+    subclassLevel: 2,
+    subclassLabel: 'Tradition',
     description: `
     Wizards are supreme magic-users, defined and united as a class by the spells they cast. Drawing on the subtle weave of magic that permeates the cosmos, wizards cast spells of explosive fire, arcing lightning, subtle deception, brute-force mind control, and much more.
     <h4>Class Features</h4>
@@ -1337,15 +1356,920 @@ export class ClassService {
     ],
   };
 
-  public warlock: any = {};
-
-  public bard: any = {};
+  public warlock: ClassData = {
+    title: 'Hexenmeister',
+    subclassLevel: 1,
+    subclassLabel: 'Pakt',
+    description: `
+    <p>Warlocks are seekers of the knowledge that lies hidden in the fabric of the multiverse. Through pacts made with mysterious beings of supernatural power, warlocks unlock magical effects both subtle and spectacular. Drawing on the ancient knowledge of beings such as fey nobles, demons, devils, hags, and alien entities of the Far Realm, warlocks piece together arcane secrets to bolster their own power.</p>
+    <h4>Class Features</h4>
+    <p>As a warlock, you gain the following class features.</p>
+    <h4> Hit Points</h4>
+    <b>Hit Dice:</b> 1d8 per warlock level <br>
+    <b>Hit Points at 1st Level:</b> 8 + your Constitution modifier <br>
+    <b>Hit Points at Higher Levels:</b> 1d8 (or 5) + your Constitution modifier per warlock level after 1st <br>
+    <h4> Proficiencies</h4>
+    <b>Armor:</b> Light armor <br>
+    <b>Weapons:</b> Simple weapons <br>
+    <b>Tools:</b> None <br>
+    <b>Saving Throws:</b> Wisdom, Charisma <br>
+    <b>Skills:</b> Choose two skills from Arcana, Deception, History, Intimidation, Investigation, Nature, and Religion <br>
+    <h4> Equipment</h4>
+    <ul>
+    <li> (a) a light crossbow and 20 bolts or (b) any simple weapon </li>
+    <li> (a) a component pouch or (b) an arcane focus </li>
+    <li> (a) a scholar's pack or (b) a dungeoneer's pack </li>
+    <li> Leather armor, any simple weapon, and two daggers </li>
+    </ul>
+    `,
+    features: [
+      {
+        name: 'Otherworldly Patron',
+        level: 1,
+        description: `
+        <p>At 1st level, you have struck a bargain with an otherworldly being of your choice, such as The Fiend, which is detailed at the end of the class description. Your choice grants you features at 1st level and again at 6th, 10th, and 14th level.</p>
+        `,
+      },
+      {
+        name: 'Pact Magic',
+        level: 1,
+        description: `
+        <p>Your arcane research and the magic bestowed on you by your patron have given you facility with spells.</p>
+        <h5 id="toc6"><span>Cantrips</span></h5>
+        <p>You know two cantrips of your choice from the <a href="http://dnd5e.wikidot.com/spells:warlock">warlock spell list</a>. You learn additional warlock cantrips of your choice at higher levels, as shown in the Cantrips Known column of the Warlock table.</p>
+        <h5 id="toc7"><span>Spell Slots</span></h5>
+        <p>The Warlock table shows how many spell slots you have to cast your warlock spells of 1st through 5th level. The table also shows what the level of those slots is; all of your spell slots are the same level. To cast one of your warlock spells of 1st level or higher, you must expend a spell slot. You regain all expended spell slots when you finish a short or long rest.</p>
+        <p>For example, when you are 5th level, you have two 3rd-level spell slots. To cast the 1st-level spell <em><a href="/spell:witch-bolt">witch bolt</a></em>, you must spend one of those slots, and you cast it as a 3rd-level spell.</p>
+        <h5 id="toc8"><span>Spells Known of 1st Level and Higher</span></h5>
+        <p>At 1st level, you know two 1st-level spells of your choice from the <a href="http://dnd5e.wikidot.com/spells:warlock">warlock spell list</a>.</p>
+        <p>The Spells Known column of the Warlock table shows when you learn more warlock spells of your choice of 1st level or higher. A spell you choose must be of a level no higher than what's shown in the table's Slot Level column for your level. When you reach 6th level, for example, you learn a new warlock spell, which can be 1st, 2nd, or 3rd level.</p>
+        <p>Additionally, when you gain a level in this class, you can choose one of the warlock spells you know and replace it with another spell from the warlock spell list, which also must be of a level for which you have spell slots.</p>
+        <h5 id="toc9"><span>Spellcasting Ability</span></h5>
+        <p>Charisma is your spellcasting ability for your warlock spells, so you use your Charisma whenever a spell refers to your spellcasting ability. In addition, you use your Charisma modifier when setting the saving throw DC for a warlock spell you cast and when making an attack roll with one.</p>
+        <p><strong>Spell save DC</strong> = 8 + your proficiency bonus + your Charisma modifier</p>
+        <p><strong>Spell attack modifier</strong> = your proficiency bonus + your Charisma modifier</p>
+        <h5 id="toc10"><span>Spellcasting Focus</span></h5>
+        <p>You can use an arcane focus as a spellcasting focus for your warlock spells.</p>
+        `,
+      },
+      {
+        name: 'Eldritch Invocations',
+        level: 2,
+        description: `
+        <p>In your study of occult lore, you have unearthed <a href="/warlock:eldritch-invocations">Eldritch Invocations</a>, fragments of forbidden knowledge that imbue you with an abiding magical ability.</p>
+        <p>At 2nd level, you gain two eldritch invocations of your choice. When you gain certain warlock levels, you gain additional invocations of your choice, as shown in the Invocations Known column of the Warlock table. A level prerequisite refers to your level in this class.</p>
+        <p>Additionally, when you gain a level in this class, you can choose one of the invocations you know and replace it with another invocation that you could learn at that level.</p>
+        `,
+      },
+      {
+        name: 'Pact Boon',
+        level: 3,
+        description: `
+        <p>At 3rd level, your otherworldly patron bestows a gift upon you for your loyal service. You gain one of the following features of your choice.</p>
+        <ul>
+        <li><strong>Pact of the Blade</strong>
+        <ul>
+        <li>You can use your action to create a pact <a href="http://dnd5e.wikidot.com/weapons">weapon</a> in your empty hand. You can choose the form that this melee weapon takes each time you create it. You are proficient with it while you wield it. This weapon counts as magical for the purpose of overcoming resistance and immunity to nonmagical attacks and damage.</li>
+        <li>Your pact weapon disappears if it is more than 5 feet away from you for 1 minute or more. It also disappears if you use this feature again, if you dismiss the weapon (no action required), or if you die.</li>
+        <li>You can transform one magic weapon into your pact weapon by performing a special ritual while you hold the weapon. You perform the ritual over the course of 1 hour, which can be done during a short rest.</li>
+        <li>You can then dismiss the weapon, shunting it into an extradimensional space, and it appears whenever you create your pact weapon thereafter. You can't affect an artifact or a sentient weapon in this way. The weapon ceases being your pact weapon if you die, if you perform the 1-hour ritual on a different weapon, or if you use a 1-hour ritual to break your bond to it. The weapon appears at your feet if it is in the extradimensional space when the bond breaks.</li>
+        </ul>
+        </li>
+        </ul>
+        <ul>
+        <li><strong>Pact of the Chain</strong>
+        <ul>
+        <li>You learn the <em><a href="/spell:find-familiar">find familiar</a></em> spell and can cast it as a ritual. The spell doesn't count against your number of spells known.</li>
+        <li>When you cast the spell, you can choose one of the normal forms for your familiar or one of the following special forms: imp, pseudodragon, quasit, or sprite.</li>
+        <li>Additionally, when you take the Attack action, you can forgo one of your own attacks to allow your familiar to make one attack with its reaction.</li>
+        </ul>
+        </li>
+        </ul>
+        <ul>
+        <li><strong>Pact of the Tome</strong>
+        <ul>
+        <li>Your patron gives you a grimoire called a Book of Shadows. When you gain this feature, choose three cantrips from any class's spell list (the three needn't be from the same list). While the book is on your person, you can cast those cantrips at will. They don't count against your number of cantrips known. If they don't appear on the warlock spell list, they are nonetheless warlock spells for you.</li>
+        <li>If you lose your Book of Shadows, you can perform a 1-hour ceremony to receive a replacement from your patron. This ceremony can be performed during a short or long rest, and it destroys the previous book. The book turns to ash when you die.</li>
+        </ul>
+        </li>
+        </ul>
+        <ul>
+        <li><strong>Pact of the Talisman</strong>
+        <ul>
+        <li>Your patron gives you an amulet, a talisman that can aid the wearer when the need is great. When the wearer fails an ability check, they can add a d4 to the roll, potentially turning the roll into a success. This benefit can be used a number of times equal to your proficiency bonus, and all expended uses are restored when you finish a long rest.</li>
+        <li>If you lose the talisman, you can perform a 1-hour ceremony to receive a replacement from your patron. This ceremony can be performed during a short or long rest, and it destroys the previous amulet. The talisman turns to ash when you die.</li>
+        </ul>
+        </li>
+        </ul>
+        <ul>
+        <li><strong>Pact of the Star Chain (UA)</strong>
+        <ul>
+        <li><em><strong>Prerequisite: Seeker Patron</strong></em></li>
+        <li>The Seeker grants you a chain forged from starlight, decorated with seven gleaming motes of brightness. While the chain is on your person, you know the <em><a href="/spell:augury">augury</a></em> spell and can cast it as a ritual. The spell doesn't count against your number of spells known.</li>
+        <li>Additionally, you can invoke the Seeker's power to gain advantage on an Intelligence check while you carry this item. Once you use this ability, you cannot use it again until you complete a short or long rest.</li>
+        <li>If you lose your Star Chain, you can perform a 1-hour ceremony to receive a replacement from the Seeker. The ceremony can be performed during a short or long rest, and it destroys the previous chain. The chain disappears in a flash of light when you die.</li>
+        <li>The exact form of this item might be different depending on your patron. The Star Chain is inspired by the Greyhawk deity Celestian.</li>
+        </ul>
+        </li>
+        </ul>
+        `,
+      },
+      {
+        name: 'Ability Score Improvement',
+        level: 4,
+        description: `
+        <p>When you reach 4th level, and again at 8th, 12th, 16th, and 19th level, you can increase one ability score of your choice by 2, or you can increase two ability scores of your choice by 1. As normal, you can't increase an ability score above 20 using this feature.</p>
+        `,
+      },
+      {
+        name: 'Eldritch Versatility (Optional)',
+        level: 4,
+        description: `
+        <p>Whenever you reach a level in this class that grants the Ability Score Improvement feature, you can do one of the following, representing a change of focus in your occult studies:</p>
+        <ul>
+        <li>Replace one cantrip you learned from this class's Pact Magic feature with another cantrip from the warlock spell list.</li>
+        </ul>
+        <ul>
+        <li>Replace the option you chose for the Pact Boon feature with one of that feature's other options.</li>
+        </ul>
+        <ul>
+        <li>If you're 12th level or higher, replace one spell from your Mystic Arcanum feature with another warlock spell of the same level.</li>
+        </ul>
+        <p>If this change makes you ineligible for any of your Eldritch Invocations, you must also replace them now, choosing invocations for which you qualify.</p>
+        `,
+      },
+      {
+        name: 'Ability Score Improvement',
+        level: 8,
+        description: `
+        <p>When you reach 8th level, and again 12th, 16th, and 19th level, you can increase one ability score of your choice by 2, or you can increase two ability scores of your choice by 1. As normal, you can't increase an ability score above 20 using this feature.</p>
+        `,
+      },
+      {
+        name: 'Mystic Arcanum',
+        level: 11,
+        description: `
+        <p>At 11th level, your patron bestows upon you a magical secret called an arcanum. Choose one 6th-level spell from the warlock spell list as this arcanum.</p>
+        <p>You can cast your arcanum spell once without expending a spell slot. You must finish a long rest before you can do so again.</p>
+        <p>At higher levels, you gain more warlock spells of your choice that can be cast in this way: one 7th-level spell at 13th level, one 8th-level spell at 15th level, and one 9th-level spell at 17th level. You regain all uses of your Mystic Arcanum when you finish a long rest.</p>
+        `,
+      },
+      {
+        name: 'Ability Score Improvement',
+        level: 12,
+        description: `
+        <p>When you reach 12th level, and again at 16th, and 19th level, you can increase one ability score of your choice by 2, or you can increase two ability scores of your choice by 1. As normal, you can't increase an ability score above 20 using this feature.</p>
+        `,
+      },
+      {
+        name: 'Ability Score Improvement',
+        level: 16,
+        description: `
+        <p>When you reach 16th level, and again at 19th level, you can increase one ability score of your choice by 2, or you can increase two ability scores of your choice by 1. As normal, you can't increase an ability score above 20 using this feature.</p>
+        `,
+      },
+      {
+        name: 'Ability Score Improvement',
+        level: 19,
+        description: `
+        <p>When you reach 19th level you can increase one ability score of your choice by 2, or you can increase two ability scores of your choice by 1. As normal, you can't increase an ability score above 20 using this feature.</p>
+        `,
+      },
+      {
+        name: 'Eldritch Master',
+        level: 20,
+        description: `
+        <p>At 20th level, you can draw on your inner reserve of mystical power while entreating your patron to regain expended spell slots. You can spend 1 minute entreating your patron for aid to regain all your expended spell slots from your Pact Magic feature. Once you regain spell slots with this feature, you must finish a long rest before you can do so again.</p>
+        `,
+      },
+    ],
+  };
 
-  public sorcerer: any = {};
+  public bard: ClassData = {
+    title: 'Barde',
+    subclassLevel: 3,
+    subclassLabel: 'Kolleg',
+    description: `
+    <p>Entertainers and leaders, bards use their artistic talents to induce magical effects. They can soothe the wounded, inspire the weary, and turn the tide of battle with a well-chosen word.</p>
+    <h4>Class Features</h4>
+    <p>As a bard, you gain the following class features.</p>
+    <h4> Hit Points</h4>
+    <b>Hit Dice:</b> 1d8 per bard level <br>
+    <b>Hit Points at 1st Level:</b> 8 + your Constitution modifier <br>
+    <b>Hit Points at Higher Levels:</b> 1d8 (or 5) + your Constitution modifier per bard level after 1st <br>
+    <h4> Proficiencies</h4>
+    <b>Armor:</b> Light armor <br>
+    <b>Weapons:</b> Simple weapons, hand crossbows, longswords, rapiers, shortswords <br>
+    <b>Tools:</b> Three musical instruments of your choice <br>
+    <b>Saving Throws:</b> Dexterity, Charisma <br>
+    <b>Skills:</b> Choose any three <br>
+    <h4> Equipment</h4>
+    <ul>
+    <li> (a) a rapier, (b) a longsword, or (c) any simple weapon </li>
+    <li> (a) a diplomat's pack or (b) an entertainer's pack </li>
+    <li> (a) a lute or (b) any other musical instrument </li>
+    <li> Leather armor and a dagger </li>
+    </ul>
+    `,
+    features: [
+      {
+        name: 'Spellcasting',
+        level: 1,
+        description: `
+        <p>You have learned to untangle and reshape the fabric of reality in harmony with your wishes and music. Your spells are part of your vast repertoire, magic that you can tune to different situations.</p>
+        <h5 id="toc5"><span>Cantrips</span></h5>
+        <p>You know two cantrips of your choice from the <a href="http://dnd5e.wikidot.com/spells:bard">bard spell list</a>. You learn additional bard cantrips of your choice at higher levels, as shown in the Cantrips Known column of the Bard table.</p>
+        <h5 id="toc6"><span>Spell Slots</span></h5>
+        <p>The Bard table shows how many spell slots you have to cast your bard spells of 1st level and higher. To cast one of these spells, you must expend a slot of the spell's level or higher. You regain all expended spell slots when you finish a long rest. For example, if you know the 1st-level spell <a href="http://dnd5e.wikidot.com/spell:cure-wounds">Cure Wounds</a> and have a 1st-level and a 2nd-level spell slot available, you can cast <a href="http://dnd5e.wikidot.com/spell:cure-wounds">Cure Wounds</a> using either slot.</p>
+        <h5 id="toc7"><span>Spells Known of 1st Level and Higher</span></h5>
+        <p>You know four 1st-level spells of your choice from the <a href="http://dnd5e.wikidot.com/spells:bard">bard spell list</a>.</p>
+        <p>The Spells Known column of the Bard table shows when you learn more bard spells of your choice. Each of these spells must be of a level for which you have spell slots, as shown on the table. For instance, when you reach 3rd level in this class, you can learn one new spell of 1st or 2nd level.</p>
+        <p>Additionally, when you gain a level in this class, you can choose one of the bard spells you know and replace it with another spell from the bard spell list, which also must be of a level for which you have spell slots.</p>
+        <h5 id="toc8"><span>Spellcasting Ability</span></h5>
+        <p>Charisma is your spellcasting ability for your bard spells. Your magic comes from the heart and soul you pour into the performance of your music or oration. You use your Charisma whenever a spell refers to your spellcasting ability. In addition, you use your Charisma modifier when setting the saving throw DC for a bard spell you cast and when making an attack roll with one.</p>
+        <p><strong>Spell save DC</strong> = 8 + your proficiency bonus + your Charisma modifier</p>
+        <p><strong>Spell attack modifier</strong> = your proficiency bonus + your Charisma modifier</p>
+        <h5 id="toc9"><span>Ritual Casting</span></h5>
+        <p>You can cast any bard spell you know as a ritual if that spell has the ritual tag.</p>
+        <h5 id="toc10"><span>Spellcasting Focus</span></h5>
+        <p>You can use a musical instrument (found in chapter 5) as a spellcasting focus for your bard spells.</p>
+        `,
+      },
+      {
+        name: 'Bardic Inspiration',
+        level: 1,
+        description: `
+        <p>You can inspire others through stirring words or music. To do so, you use a bonus action on your turn to choose one creature other than yourself within 60 feet of you who can hear you. That creature gains one Bardic Inspiration die, a d6.</p>
+        <p>Once within the next 10 minutes, the creature can roll the die and add the number rolled to one ability check, attack roll, or saving throw it makes. The creature can wait until after it rolls the d20 before deciding to use the Bardic Inspiration die, but must decide before the DM says whether the roll succeeds or fails. Once the Bardic Inspiration die is rolled, it is lost. A creature can have only one Bardic Inspiration die at a time.</p>
+        <p>You can use this feature a number of times equal to your Charisma modifier (a minimum of once). You regain any expended uses when you finish a long rest.</p>
+        <p>Your Bardic Inspiration die changes when you reach certain levels in this class. The die becomes a d8 at 5th level, a d10 at 10th level, and a d12 at 15th level.</p>
+        `,
+      },
+      {
+        name: 'Jack of All Trades',
+        level: 2,
+        description: `
+        <p>Starting at 2nd level, you can add half your proficiency bonus, rounded down, to any ability check you make that doesn't already include your proficiency bonus.</p>
+        `,
+      },
+      {
+        name: 'Song of Rest',
+        level: 2,
+        description: `
+        <p>Beginning at 2nd level, you can use soothing music or oration to help revitalize your wounded allies during a short rest. If you or any friendly creatures who can hear your performance regain hit points at the end of the short rest by spending one or more Hit Dice, each of those creatures regains an extra 1d6 hit points.</p>
+        <p>The extra Hit Points increase when you reach certain levels in this class: to 1d8 at 9th level, to 1d10 at 13th level, and to 1d12 at 17th level.</p>
+        `,
+      },
+      {
+        name: 'Magical Inspiration (Optional)',
 
-  public druid: any = {};
+        level: 2,
+        description: `
+        <p>At 2nd level, if a creature has a Bardic Inspiration die from you and casts a spell that restores hit points or deals damage, the creature can roll that die and choose a target affected by the spell. Add the number rolled as a bonus to the hit points regained or the damage dealt. The Bardic Inspiration die is then lost.</p>
+        `,
+      },
+      {
+        name: 'Bard College',
+        level: 3,
+        description: `
+        <p>At 3rd level, you delve into the advanced techniques of a bard college of your choice. Your choice grants you features at 3rd level and again at 6th and 14th level.</p>
+        `,
+      },
+      {
+        name: 'Expertise',
+        level: 3,
+        description: `
+        <p>At 3rd level, choose two of your skill proficiencies. Your proficiency bonus is doubled for any ability check you make that uses either of the chosen proficiencies.</p>
+        <p>At 10th level, you can choose another two skill proficiencies to gain this benefit.</p>
+        `,
+      },
+      {
+        name: 'Ability Score Improvement',
+        level: 4,
+        description: `
+        <p>When you reach 4th level, and again at 8th, 12th, 16th, and 19th level, you can increase one ability score of your choice by 2, or you can increase two ability scores of your choice by 1. As normal, you can't increase an ability score above 20 using this feature.</p>
+        `,
+      },
+      {
+        name: 'Bardic Versatility (Optional)',
+        level: 4,
+        description: `
+        <p>Whenever you reach a level in this class that grants the Ability Score Improvement feature, you can do one of the following, representing a change in focus as you use your skills and magic:</p>
+        <ul>
+        <li>Replace one of the skills you chose for the Expertise feature with one of your other skill proficiencies that isn't benefiting from Expertise.</li>
+        </ul>
+        <ul>
+        <li>Replace one cantrip you learned from this class's Spellcasting feature with another cantrip from the <a href="http://dnd5e.wikidot.com/spells:bard">bard spell list</a>.</li>
+        </ul>
+        `,
+      },
+      {
+        name: 'Font of Inspiration',
+        level: 5,
+        description: `
+        <p>Beginning when you reach 5th level, you regain all of your expended uses of Bardic Inspiration when you finish a short or long rest.</p>
+        `,
+      },
+      {
+        name: 'Countercharm',
+        level: 6,
+        description: `
+        <p>At 6th level, you gain the ability to use musical notes or words of power to disrupt mind-influencing effects. As an action, you can start a performance that lasts until the end of your next turn. During that time, you and any friendly creatures within 30 feet of you have advantage on saving throws against being frightened or charmed. A creature must be able to hear you to gain this benefit. The performance ends early if you are incapacitated or silenced or if you voluntarily end it (no action required).</p>
+        `,
+      },
+      {
+        name: 'Ability Score Improvement',
+        level: 8,
+        description: `
+        <p>When you reach 8th level, and again at 12th, 16th, and 19th level, you can increase one ability score of your choice by 2, or you can increase two ability scores of your choice by 1. As normal, you can't increase an ability score above 20 using this feature.</p>
+        `,
+      },
+      {
+        name: 'Magical Secrets',
+        level: 10,
+        description: `
+        <p>By 10th level, you have plundered magical knowledge from a wide spectrum of disciplines. Choose two spells from any classes, including this one. A spell you choose must be of a level you can cast, as shown on the Bard table, or a cantrip.</p>
+        <p>The chosen spells count as bard spells for you and are included in the number in the Spells Known column of the Bard table.</p>
+        <p>You learn two additional spells from any classes at 14th level and again at 18th level.</p>
+        `,
+      },
+      {
+        name: 'Superior Inspiration',
+        level: 20,
+        description: `
+        <p>At 20th level, when you roll initiative and have no uses of Bardic Inspiration left, you regain one use.</p>
+        `,
+      },
+    ],
+  };
 
-  public rogue: any = {};
+  public sorcerer: ClassData = {
+    title: 'Zauberer',
+    subclassLevel: 1,
+    subclassLabel: 'Herkunft',
+    description: `
+    <p>Sorcerers carry a magical birthright conferred upon them by an exotic bloodline, some otherworldly influence, or exposure to unknown cosmic forces. No one chooses sorcery; the power chooses the sorcerer.</p>
+    <h4>Class Features</h4>
+    <p>As a sorcerer, you gain the following class features.</p>
+    <h4> Hit Points</h4>
+    <b>Hit Dice:</b> 1d6 per sorcerer level <br>
+    <b>Hit Points at 1st Level:</b> 6 + your Constitution modifier <br>
+    <b>Hit Points at Higher Levels:</b> 1d6 (or 4) + your Constitution modifier per sorcerer level after 1st <br>
+    <h4> Proficiencies</h4>
+    <b>Armor:</b> None <br>
+    <b>Weapons:</b> Daggers, darts, slings, quarterstaffs, light crossbows <br>
+    <b>Tools:</b> None <br>
+    <b>Saving Throws:</b> Constitution, Charisma <br>
+    <b>Skills:</b> Choose two from Arcana, Deception, Insight, Intimidation, Persuasion, and Religion <br>
+    <h4> Equipment</h4>
+    <ul>
+    <li> (a) a light crossbow and 20 bolts or (b) any simple weapon </li>
+    <li> (a) a component pouch or (b) an arcane focus </li>
+    <li> (a) a dungeoneer's pack or (b) an explorer's pack </li>
+    <li> Two daggers </li>
+    </ul>
+    `,
+    features: [
+      {
+        name: 'Spellcasting',
+        level: 1,
+        description: `
+        <p>An event in your past, or in the life of a parent or ancestor, left an indelible mark on you, infusing you with arcane magic. This font of magic, whatever its origin, fuels your spells.</p>
+        <h5 id="toc5"><span>Cantrips</span></h5>
+        <p>At 1st level, you know four cantrips of your choice from the <a href="http://dnd5e.wikidot.com/spells:sorcerer">sorcerer spell list</a>. You learn additional sorcerer cantrips of your choice at higher levels, as shown in the Cantrips Known column of the Sorcerer table.</p>
+        <h5 id="toc6"><span>Spell Slots</span></h5>
+        <p>The Sorcerer table shows how many spell slots you have to cast your sorcerer spells of 1st level and higher. To cast one of these sorcerer spells, you must expend a slot of the spell's level or higher. You regain all expended spell slots when you finish a long rest.</p>
+        <p>For example, if you know the 1st-level spell <em><a href="/spell:burning-hands">burning hands</a></em> and have a 1st-level and a 2nd-level spell slot available, you can cast <em><a href="/spell:burning-hands">burning hands</a></em> using either slot.</p>
+        <h5 id="toc7"><span>Spells Known of 1st Level and Higher</span></h5>
+        <p>You know two 1st-level spells of your choice from the <a href="http://dnd5e.wikidot.com/spells:sorcerer">sorcerer spell list</a>.</p>
+        <p>The Spells Known column of the Sorcerer table shows when you learn more sorcerer spells of your choice. Each of these spells must be of a level for which you have spell slots. For instance, when you reach 3rd level in this class, you can learn one new spell of 1st or 2nd level.</p>
+        <p>Additionally, when you gain a level in this class, you can choose one of the sorcerer spells you know and replace it with another spell from the sorcerer spell list, which also must be of a level for which you have spell slots.</p>
+        <h5 id="toc8"><span>Spellcasting Ability</span></h5>
+        <p>Charisma is your spellcasting ability for your sorcerer spells, since the power of your magic relies on your ability to project your will into the world. You use your Charisma whenever a spell refers to your spellcasting ability. In addition, you use your Charisma modifier when setting the saving throw DC for a sorcerer spell you cast and when making an attack roll with one.</p>
+        <p><strong>Spell save DC</strong> = 8 + your proficiency bonus + your Charisma modifier</p>
+        <p><strong>Spell attack modifier</strong> = your proficiency bonus + your Charisma modifier</p>
+        <h5 id="toc9"><span>Spellcasting Focus</span></h5>
+        <p>You can use an arcane focus as a spellcasting focus for your sorcerer spells.</p>
+        `,
+      },
+      {
+        name: 'Sorcerous Origin',
+        level: 1,
+        description: `
+        <p>Choose a sorcerous origin, which describes the source of your innate magical power. Your choice grants you features when you choose it at 1st level and again at 6th, 14th, and 18th level.</p>
+        `,
+      },
+      {
+        name: 'Font of Magic',
+        level: 2,
+        description: `
+      <p>At 2nd level, you tap into a deep wellspring of magic within yourself. This wellspring is represented by sorcery points, which allow you to create a variety of magical effects.</p>
+      <ul>
+      <li><strong>Sorcery Points.</strong> You have 2 sorcery points, and you gain more as you reach higher levels, as shown in the Sorcery Points column of the Sorcerer table. You can never have more sorcery points than shown on the table for your level. You regain all spent sorcery points when you finish a long rest.</li>
+      </ul>
+      <ul>
+      <li><strong>Flexible Casting.</strong> You can use your sorcery points to gain additional spell slots, or sacrifice spell slots to gain additional sorcery points. You learn other ways to use your sorcery points as you reach higher levels.
+      <ul>
+      <li><strong><em>Creating Spell Slots.</em></strong> You can transform unexpended sorcery points into one spell slot as a bonus action on your turn. The Creating Spell Slots table shows the cost of creating a spell slot of a given level. You can create spell slots no higher in level than 5th. Any spell slot you create with this feature vanishes when you finish a long rest.</li>
+      <li><strong><em>Converting a Spell Slot to Sorcery Points.</em></strong> As a bonus action on your turn, you can expend one spell slot and gain a number of sorcery points equal to the slot's level.</li>
+      </ul>
+      </li>
+      </ul>
+      <table class="wiki-content-table">
+      <tr>
+      <th colspan="2">Creating Spell Slots</th>
+      </tr>
+      <tr>
+      <th>Spell Slot Level</th>
+      <th>Sorcery Point Cost</th>
+      </tr>
+      <tr>
+      <td>1st</td>
+      <td>2</td>
+      </tr>
+      <tr>
+      <td>2nd</td>
+      <td>3</td>
+      </tr>
+      <tr>
+      <td>3rd</td>
+      <td>5</td>
+      </tr>
+      <tr>
+      <td>4th</td>
+      <td>6</td>
+      </tr>
+      <tr>
+      <td>5th</td>
+      <td>7</td>
+      </tr>
+      </table>`,
+      },
+      {
+        name: 'Metamagic',
+        level: 3,
+        description: `
+        At 3rd level, you gain the ability to twist your spells to suit your needs. You gain two of the following Metamagic options of your choice. You gain another one at 10th and 17th level.</p>
+        <p>You can use only one Metamagic option on a spell when you cast it, unless otherwise noted.</p>
+        <ul>
+        <li><strong>Careful Spell.</strong> When you cast a spell that forces other creatures to make a saving throw, you can protect some of those creatures from the spell's full force. To do so, you spend 1 sorcery point and choose a number of those creatures up to your Charisma modifier (minimum of one creature). A chosen creature automatically succeeds on its saving throw against the spell.</li>
+        </ul>
+        <ul>
+        <li><strong>Distant Spell.</strong> When you cast a spell that has a range of 5 feet or greater, you can spend 1 sorcery point to double the range of the spell.
+        <ul>
+        <li>When you cast a spell that has a range of touch, you can spend 1 sorcery point to make the range of the spell 30 feet.</li>
+        </ul>
+        </li>
+        </ul>
+        <ul>
+        <li><strong>Empowered Spell.</strong> When you roll damage for a spell, you can spend 1 sorcery point to reroll a number of the damage dice up to your Charisma modifier (minimum of one). You must use the new rolls.
+        <ul>
+        <li>You can use Empowered Spell even if you have already used a different Metamagic option during the casting of the spell.</li>
+        </ul>
+        </li>
+        </ul>
+        <ul>
+        <li><strong>Extended Spell.</strong> When you cast a spell that has a duration of 1 minute or longer, you can spend 1 sorcery point to double its duration, to a maximum duration of 24 hours.</li>
+        </ul>
+        <ul>
+        <li><strong>Heightened Spell.</strong> When you cast a spell that forces a creature to make a saving throw to resist its effects, you can spend 3 sorcery points to give one target of the spell disadvantage on its first saving throw made against the spell.</li>
+        </ul>
+        <ul>
+        <li><strong>Quickened Spell.</strong> When you cast a spell that has a casting time of 1 action, you can spend 2 sorcery points to change the casting time to 1 bonus action for this casting.</li>
+        </ul>
+        <ul>
+        <li><strong>Seeking Spell.</strong> If you make an attack roll for a spell and miss, you can spend 2 sorcerer points to reroll the d20, and you must use the new roll.
+        <ul>
+        <li>You can use Seeking Spell even if you have already used a different Metamagic option during the casting of the spell.</li>
+        </ul>
+        </li>
+        </ul>
+        <ul>
+        <li><strong>Seeking Spell (UA).</strong> When you cast a spell that requires you to make a spell attack roll or that forces a target to make a Dexterity saving throw, you can spend 1 sorcery point to ignore the effects of half- and three-quarters cover against targets of the spell.</li>
+        </ul>
+        <ul>
+        <li><strong>Subtle Spell.</strong> When you cast a spell, you can spend 1 sorcery point to cast it without any somatic or verbal components.</li>
+        </ul>
+        <ul>
+        <li><strong>Transmuted Spell.</strong> When you cast a spell that deals a type of damage from the following list, you can spend 1 sorcery point to change that damage type to one of the other listed types: acid, cold, fire, lightning, poison, thunder.</li>
+        </ul>
+        <ul>
+        <li><strong>Twinned Spell.</strong> When you cast a spell that targets only one creature and doesn't have a range of self, you can spend a number of sorcery points equal to the spell's level to target a second creature in range with the same spell (1 sorcery point if the spell is a cantrip). To be eligible, a spell must be incapable of targeting more than one creature at the spell's current level. For example, <em><a href="/spell:magic-missile">magic missile</a></em> and <em><a href="/spell:scorching-ray">scorching ray</a></em> aren't eligible, but <em><a href="/spell:ray-of-frost">ray of frost</a></em> and <em><a href="/spell:chromatic-orb">chromatic orb</a></em> are.</li>
+        </ul>`,
+      },
+      {
+        name: 'Ability Score Improvement',
+        level: 4,
+        description: `
+        At 4th level, and again at 8th, 12th, 16th, and 19th level, you can increase one ability score of your choice by 2, or you can increase two ability scores of your choice by 1. As normal, you can't increase an ability score above 20 using this feature.</p>
+        `,
+      },
+      {
+        name: 'Sorcerous Versatility (Optional)',
+        level: 4,
+        description: `
+        At 4th level, you can replace one of the options you chose for the Metamagic feature with a different Metamagic option available to you.</p>
+        <p>Additionally, you can replace one cantrip you learned from this class's spellcasting feature with another cantrip from the sorcerer spell list.</p>
+        `,
+      },
+      {
+        name: 'Magical Guidance (Optional)',
+        level: 5,
+        description: `
+        At 5th level, you can tap into your inner wellspring of magic to try and conjure success from failure. When you make an ability check that fails, you can spend 1 sorcery point to reroll the d20, and you must use the new roll, potentially turning the failure into a success.</p>
+        `,
+      },
+      {
+        name: 'Ability Score Improvement',
+        level: 8,
+        description: `
+        At 8th level, and again at 12th, 16th, and 19th level, you can increase one ability score of your choice by 2, or you can increase two ability scores of your choice by 1. As normal, you can't increase an ability score above 20 using this feature.</p>
+        `,
+      },
+      {
+        name: 'Ability Score Improvement',
+        level: 12,
+        description: `
+        At 12th level, and again at 16th, and 19th level, you can increase one ability score of your choice by 2, or you can increase two ability scores of your choice by 1. As normal, you can't increase an ability score above 20 using this feature.</p>
+        `,
+      },
+      {
+        name: 'Ability Score Improvement',
+
+        level: 16,
+        description: `
+        At 16th level, and again at 19th level, you can increase one ability score of your choice by 2, or you can increase two ability scores of your choice by 1. As normal, you can't increase an ability score above 20 using this feature.</p>
+        `,
+      },
+      {
+        name: 'Ability Score Improvement',
+
+        level: 19,
+        description: `
+        At 19th level you can increase one ability score of your choice by 2, or you can increase two ability scores of your choice by 1. As normal, you can't increase an ability score above 20 using this feature.</p>
+        `,
+      },
+      {
+        name: 'Sorcerous Restoration',
+        level: 20,
+        description: `
+        At 20th level, you regain 4 expended sorcery points whenever you finish a short rest.</p>
+        `,
+      },
+    ],
+  };
+
+  public druid: ClassData = {
+    title: 'Druide',
+    subclassLevel: 2,
+    subclassLabel: 'Zirkel',
+    description: `
+    <p>Druids revere nature above all, gaining their spells and other magical powers either from the force of nature itself or from a nature deity. Many druids pursue a mystic spirituality of transcendent union with nature rather than devotion to a divine entity, while others serve gods of wild nature, animals, or elemental forces. The ancient druidic traditions are sometimes called the Old Faith, in contrast to the worship of gods in temples and shrines.</p>
+    <h4>Class Features</h4>
+    <p>As a druid, you gain the following class features.</p>
+    <h4> Hit Points</h4>
+    <b>Hit Dice:</b> 1d8 per druid level <br>
+    <b>Hit Points at 1st Level:</b> 8 + your Constitution modifier <br>
+    <b>Hit Points at Higher Levels:</b> 1d8 (or 5) + your Constitution modifier per druid level after 1st <br>
+    <h4> Proficiencies</h4>
+    <b>Armor:</b> Light armor, medium armor, shields (druids will not wear armor or use shields made of metal) <br>
+    <b>Weapons:</b> Clubs, daggers, darts, javelins, maces, quarterstaffs, scimitars, sickles, slings, spears <br>
+    <b>Tools:</b> Herbalism kit <br>
+    <b>Saving Throws:</b> Intelligence, Wisdom <br>
+    <b>Skills:</b> Choose two from Arcana, Animal Handling, Insight, Medicine, Nature, Perception, Religion, and Survival <br>
+    <h4> Equipment</h4>
+    <ul>
+    <li> (a) a wooden shield or (b) any simple weapon </li>
+    <li> (a) a scimitar or (b) any simple melee weapon </li>
+    <li> Leather armor, an explorer's pack, and a druidic focus </li>
+    </ul>
+    `,
+    features: [
+      {
+        name: 'Druidic',
+        level: 1,
+        description: `
+        <p>You know Druidic, the secret language of druids. You can speak the language and use it to leave hidden messages. You and others who know this language automatically spot such a message. Others spot the message's presence with a successful DC 15 Wisdom (Perception) check but can't decipher it without magic.</p>
+        `,
+      },
+      {
+        name: 'Spellcasting',
+        level: 1,
+        description: `
+        <p<p>Drawing on the divine essence of nature itself, you can cast spells to shape that essence to your will.</p>
+        <h5 id="toc6"><span>Cantrips</span></h5>
+        <p>At 1st level, you know two cantrips of your choice from the <a href="http://dnd5e.wikidot.com/spells:druid">druid spell list</a>. You learn additional druid cantrips of your choice at higher levels, as shown in the Cantrips Known column of the Druid table.</p>
+        <h5 id="toc7"><span>Preparing and Casting Spells</span></h5>
+        <p>The Druid table shows how many spell slots you have to cast your druid spells of 1st level and higher. To cast one of these druid spells, you must expend a slot of the spell's level or higher. You regain all expended spell slots when you finish a long rest.</p>
+        <p>You prepare the list of druid spells that are available for you to cast, choosing from the druid spell list. When you do so, choose a number of druid spells equal to your Wisdom modifier + your Druid level (minimum of one spell). The spells must be of a level for which you have spell slots.</p>
+        <p>For example, if you are a 3rd-level druid, you have four 1st-level and two 2nd-level spell slots. With a Wisdom of 16, your list of prepared spells can include six spells of 1st or 2nd level, in any combination. If you prepare the 1st-level spell <a href="http://dnd5e.wikidot.com/spell:cure-wounds">Cure Wounds</a>, you can cast it using a 1st-level or 2nd-level slot. Casting the spell doesn't remove it from your list of prepared spells.<br />
+        You can also change your list of prepared spells when you finish a long rest. Preparing a new list of druid spells requires time spent in prayer and meditation: at least 1 minute per spell level for each spell on your list.</p>
+        <h5 id="toc8"><span>Spellcasting Ability</span></h5>
+        <p>Wisdom is your spellcasting ability for your druid spells, since your magic draws upon your devotion and attunement to nature. You use your Wisdom whenever a spell refers to your spellcasting ability. In addition, you use your Wisdom modifier when setting the saving throw DC for a druid spell you cast and when making an attack roll with one.</p>
+        <p><strong>Spell save DC</strong> = 8 + your proficiency bonus + your Wisdom modifier</p>
+        <p><strong>Spell attack modifier</strong> = your proficiency bonus + your Wisdom modifier</p>
+        <h5 id="toc9"><span>Ritual Casting</span></h5>
+        <p>You can cast a druid spell as a ritual if that spell has the ritual tag and you have the spell prepared.</p>
+        <h5 id="toc10"><span>Spellcasting Focus</span></h5>
+        <p>You can use a druidic focus as a spellcasting focus for your druid spells.</p>
+        `,
+      },
+      {
+        name: 'Wild Shape',
+        level: 2,
+        description: `
+        <p>Starting at 2nd level, you can use your action to magically assume the shape of a beast that you have seen before. You can use this feature twice. You regain expended uses when you finish a short or long rest.</p>
+        <p>Your druid level determines the beasts you can transform into, as shown in the Beast Shapes table. At 2nd level, for example, you can transform into any beast that has a challenge rating of 1/4 or lower that doesn't have a flying or swimming speed.</p>
+        <table class="wiki-content-table">
+        <tr>
+        <th colspan="4">Beast Shapes</th>
+        </tr>
+        <tr>
+        <th>Level</th>
+        <th>Max. CR</th>
+        <th>Limitations</th>
+        <th>Example</th>
+        </tr>
+        <tr>
+        <td>2nd</td>
+        <td>1/4</td>
+        <td>No flying or swimming speed</td>
+        <td>Wolf</td>
+        </tr>
+        <tr>
+        <td>4th</td>
+        <td>1/2</td>
+        <td>No flying speed</td>
+        <td>Crocodile</td>
+        </tr>
+        <tr>
+        <td>8th</td>
+        <td>1</td>
+        <td></td>
+        <td>Giant eagle</td>
+        </tr>
+        </table>
+        <p>You can stay in a beast shape for a number of hours equal to half your druid level (rounded down). You then revert to your normal form unless you expend another use of this feature. You can revert to your normal form earlier by using a bonus action on your turn. You automatically revert if you fall unconscious, drop to 0 hit points, or die.</p>
+        <p>While you are transformed, the following rules apply:</p>
+        <ul>
+        <li>Your game statistics are replaced by the statistics of the beast, but you retain your alignment, personality, and Intelligence, Wisdom, and Charisma scores. You also retain all of your skill and saving throw proficiencies, in addition to gaining those of the creature. If the creature has the same proficiency as you and the bonus in its stat block is higher than yours, use the creature's bonus instead of yours. If the creature has any legendary or lair actions, you can't use them.</li>
+        </ul>
+        <ul>
+        <li>When you transform, you assume the beast's hit points and Hit Dice. When you revert to your normal form, you return to the number of hit points you had before you transformed. However, if you revert as a result of dropping to 0 hit points, any excess damage carries over to your normal form, For example, if you take 10 damage in animal form and have only 1 hit point left, you revert and take 9 damage. As long as the excess damage doesn't reduce your normal form to 0 hit points, you aren't knocked unconscious.</li>
+        </ul>
+        <ul>
+        <li>You can't cast spells, and your ability to speak or take any action that requires hands is limited to the capabilities of your beast form. Transforming doesn't break your concentration on a spell you've already cast, however, or prevent you from taking actions that are part of a spell, such as <a href="http://dnd5e.wikidot.com/spell:call-lightning">Call Lightning</a>, that you've already cast.</li>
+        </ul>
+        <ul>
+        <li>You retain the benefit of any features from your class, race, or other source and can use them if the new form is physically capable of doing so. However, you can't use any of your special senses, such as darkvision, unless your new form also has that sense.</li>
+        </ul>
+        <ul>
+        <li>You choose whether your equipment falls to the ground in your space, merges into your new form, or is worn by it. Worn equipment functions as normal, but the DM decides whether it is practical for the new form to wear a piece of equipment, based on the creature's shape and size. Your equipment doesn't change size or shape to match the new form, and any equipment that the new form can't wear must either fall to the ground or merge with it. Equipment that merges with the form has no effect until you leave the form.</li>
+        </ul>`,
+      },
+      {
+        name: 'Druid Circle',
+        level: 2,
+        description: `
+        <p>At 2nd level, you choose to identify with a circle of druids. Your choice grants you features at 2nd level and again at 6th, 10th, and 14th level.</p>
+        `,
+      },
+      {
+        name: 'Wild Companion (Optional)',
+        level: 2,
+        description: `
+        <p>At 2nd level, you gain the ability to summon a spirit that assumes an animal form: as an action, you can expend a use of your Wild Shape feature to cast the <a href="http://dnd5e.wikidot.com/spell:find-familiar">Find Familiar</a> spell, without material components.</p>
+        <p>When you cast the spell in this way, the familiar is a fey instead of a beast, and the familiar disappears after a number of hours equal to half your druid level.</p>
+        `,
+      },
+      {
+        name: 'Ability Score Improvement',
+        level: 4,
+        description: `
+        <p>When you reach 4th level, and again at 8th, 12th, 16th, and 19th level, you can increase one ability score of your choice by 2, or you can increase two ability scores of your choice by 1. As normal, you can't increase an ability score above 20 using this feature.</p>
+        `,
+      },
+      {
+        name: 'Cantrip Versatility (Optional)',
+        level: 4,
+        description: `
+        <p>Whenever you reach a level in this class that grants the Ability Score Improvement feature, you can replace one cantrip you learned from this class's Spellcasting feature with another cantrip from the druid spell list.</p>
+        `,
+      },
+      {
+        name: 'Ability Score Improvement',
+        level: 8,
+        description: `
+        <p>When you reach 8th level, and again at 12th, 16th, and 19th level, you can increase one ability score of your choice by 2, or you can increase two ability scores of your choice by 1. As normal, you can't increase an ability score above 20 using this feature.</p>
+        `,
+      },
+      {
+        name: 'Ability Score Improvement',
+        level: 12,
+        description: `
+        <p>When you reach 12th level, and again at 16th, and 19th level, you can increase one ability score of your choice by 2, or you can increase two ability scores of your choice by 1. As normal, you can't increase an ability score above 20 using this feature.</p>
+        `,
+      },
+      {
+        name: 'Ability Score Improvement',
+        level: 16,
+        description: `
+        <p>When you reach 16th level, and again at 19th level, you can increase one ability score of your choice by 2, or you can increase two ability scores of your choice by 1. As normal, you can't increase an ability score above 20 using this feature.</p>
+        `,
+      },
+      {
+        name: 'Timeless Body',
+        level: 18,
+        description: `
+        <p>Starting at 18th level, the primal magic that you wield causes you to age more slowly. For every 10 years that pass, your body ages only 1 year.</p>
+        `,
+      },
+      {
+        name: 'Beast Spells',
+        level: 18,
+        description: `
+        <p>Beginning at 18th level, you can cast many of your druid spells in any shape you assume using Wild Shape. You can perform the somatic and verbal components of a druid spell while in a beast shape, but you aren't able to provide material components.</p>
+        `,
+      },
+      {
+        name: 'Ability Score Improvement',
+        level: 19,
+        description: `
+        <p>At 19th level you can increase one ability score of your choice by 2, or you can increase two ability scores of your choice by 1. As normal, you can't increase an ability score above 20 using this feature.</p>
+        `,
+      },
+      {
+        name: 'Archdruid',
+        level: 20,
+        description: `
+        <p>At 20th level, you can use your Wild Shape an unlimited number of times.</p>
+        <p>Additionally, you can ignore the verbal and somatic components of your druid spells, as well as any material components that lack a cost and aren't consumed by a spell. You gain this benefit in both your normal shape and your beast shape from Wild Shape.</p>
+        `,
+      },
+    ],
+  };
+
+  public rogue: ClassData = {
+    title: 'Schurke',
+    subclassLevel: 3,
+    subclassLabel: 'Archetyp',
+    description: `
+    <p>Rogues rely on skill, stealth, and their foes' vulnerabilities to get the upper hand in any situation. They have a knack for finding the solution to just about any problem, demonstrating a resourcefulness and versatility that is the cornerstone of any successful adventuring party.</p>
+    <h4>Class Features</h4>
+    <p>As a rogue, you gain the following class features.</p>
+    <h4> Hit Points</h4>
+    <b>Hit Dice:</b> 1d8 per rogue level <br>
+    <b>Hit Points at 1st Level:</b> 8 + your Constitution modifier <br>
+    <b>Hit Points at Higher Levels:</b> 1d8 (or 5) + your Constitution modifier per rogue level after 1st <br>
+    <h4> Proficiencies</h4>
+    <b>Armor:</b> Light armor <br>
+    <b>Weapons:</b> Simple weapons, hand crossbows, longswords, rapiers, shortswords <br>
+    <b>Tools:</b> Thieves' tools <br>
+    <b>Saving Throws:</b> Dexterity, Intelligence <br>
+    <b>Skills:</b> Choose four from Acrobatics, Athletics, Deception, Insight, Intimidation, Investigation, Perception, Performance, Persuasion, Sleight of Hand, and Stealth <br>
+    <h4> Equipment</h4>
+    <ul>
+    <li> (a) a rapier or (b) a shortsword </li>
+
+    <li> (a) a shortbow and quiver of 20 arrows or (b) a shortsword </li>
+    <li> (a) a burglar's pack, (b) a dungeoneer's pack, or (c) an explorer's pack </li>
+    <li> Leather armor, two daggers, and thieves' tools </li>
+    </ul>
+    `,
+    features: [
+      {
+        name: 'Expertise',
+        level: 1,
+        description: `
+        <p>At 1st level, choose two of your skill proficiencies, or one of your skill proficiencies and your proficiency with thieves' tools. Your proficiency bonus is doubled for any ability check you make that uses either of the chosen proficiencies.</p>
+        <p>At 6th level, you can choose two more of your proficiencies (in skills or with thieves' tools) to gain this benefit.</p>
+        `,
+      },
+      {
+        name: 'Sneak Attack',
+        level: 1,
+        description: `
+        <p>Beginning at 1st level, you know how to strike subtly and exploit a foe's distraction. Once per turn, you can deal an extra 1d6 damage to one creature you hit with an attack if you have advantage on the attack roll. The attack must use a finesse or a ranged weapon.</p>
+        <p>You don't need advantage on the attack roll if another enemy of the target is within 5 feet of it, that enemy isn't incapacitated, and you don't have disadvantage on the attack roll.</p>
+        <p>The amount of the extra damage increases as you gain levels in this class, as shown in the Sneak Attack column of the Rogue table.</p>
+        `,
+      },
+      {
+        name: "Thieves' Cant",
+        level: 1,
+        description: `
+        <p>During your rogue training you learned thieves' cant, a secret mix of dialect, jargon, and code that allows you to hide messages in seemingly normal conversation. Only another creature that knows thieves' cant understands such messages. It takes four times longer to convey such a message than it does to speak the same idea plainly.</p>
+        <p>In addition, you understand a set of secret signs and symbols used to convey short, simple messages, such as whether an area is dangerous or the territory of a thieves' guild, whether loot is nearby, or whether the people in an area are easy marks or will provide a safe house for thieves on the run.</p>
+        `,
+      },
+      {
+        name: 'Cunning Action',
+        level: 2,
+        description: `
+        <p>Starting at 2nd level, your quick thinking and agility allow you to move and act quickly. You can take a bonus action on each of your turns in combat. This action can be used only to take the Dash, Disengage, or Hide action.</p>
+        `,
+      },
+      {
+        name: 'Roguish Archetype',
+        level: 3,
+        description: `
+        <p>At 3rd level, you choose an archetype that you emulate in the exercise of your rogue abilities. Your archetype choice grants you features at 3rd level and then again at 9th, 13th, and 17th level.</p>
+        `,
+      },
+      {
+        name: 'Steady Aim (Optional)',
+        level: 3,
+        description: `
+        <p>At 3rd level, as a bonus action, you give yourself advantage on your next attack roll on the current turn. You can use this bonus action only if you haven't moved during this turn, and after you use the bonus action, your speed is 0 until the end of the current turn.</p>
+        `,
+      },
+      {
+        name: 'Ability Score Improvement',
+        level: 4,
+        description: `
+        <p>When you reach 4th level, and again at 8th, 10th, 12th, 16th, and 19th level, you can increase one ability score of your choice by 2, or you can increase two ability scores of your choice by 1. As normal, you can't increase an ability score above 20 using this feature.</p>
+        `,
+      },
+      {
+        name: 'Uncanny Dodge',
+        level: 5,
+        description: `
+        <p>Starting at 5th level, when an attacker that you can see hits you with an attack, you can use your reaction to halve the attack's damage against you.</p>
+        `,
+      },
+      {
+        name: 'Evasion',
+        level: 7,
+        description: `
+        <p>Beginning at 7th level, you can nimbly dodge out of the way of certain area effects, such as a red dragon's fiery breath or an <a href="http://dnd5e.wikidot.com/spell:ice-storm">Ice Storm</a> spell. When you are subjected to an effect that allows you to make a Dexterity saving throw to take only half damage, you instead take no damage if you succeed on the saving throw, and only half damage if you fail.</p>
+        `,
+      },
+      {
+        name: 'Ability Score Improvement',
+        level: 8,
+        description: `
+        <p>When you reach 8th level, and again at 10th, 12th, 16th, and 19th level, you can increase one ability score of your choice by 2, or you can increase two ability scores of your choice by 1. As normal, you can't increase an ability score above 20 using this feature.</p>
+        `,
+      },
+      {
+        name: 'Reliable Talent',
+        level: 11,
+        description: `
+        <p>By 11th level, you have refined your chosen skills until they approach perfection. Whenever you make an ability check that lets you add your proficiency bonus, you can treat a d20 roll of 9 or lower as a 10.</p>
+        `,
+      },
+      {
+        name: 'Ability Score Improvement',
+        level: 12,
+        description: `
+        <p>When you reach 12th level, and again at 16th, and 19th level, you can increase one ability score of your choice by 2, or you can increase two ability scores of your choice by 1. As normal, you can't increase an ability score above 20 using this feature.</p>
+        `,
+      },
+      {
+        name: 'Blindsense',
+        level: 14,
+        description: `
+        <p>Starting at 14th level, if you are able to hear, you are aware of the location of any hidden or invisible creature within 10 feet of you.</p>
+        `,
+      },
+      {
+        name: 'Slippery Mind',
+        level: 15,
+        description: `
+        <p>By 15th level, you have acquired greater mental strength. You gain proficiency in Wisdom saving throws.</p>
+        `,
+      },
+      {
+        name: 'Ability Score Improvement',
+        level: 16,
+        description: `
+        <p>When you reach 16th level, and again at 19th level, you can increase one ability score of your choice by 2, or you can increase two ability scores of your choice by 1. As normal, you can't increase an ability score above 20 using this feature.</p>
+        `,
+      },
+      {
+        name: 'Elusive',
+        level: 18,
+        description: `
+        <p>Beginning at 18th level, you are so evasive that attackers rarely gain the upper hand against you. No attack roll has advantage against you while you aren't incapacitated.</p>
+        `,
+      },
+      {
+        name: 'Ability Score Improvement',
+        level: 19,
+        description: `
+        <p>At 19th level you can increase one ability score of your choice by 2, or you can increase two ability scores of your choice by 1. As normal, you can't increase an ability score above 20 using this feature.</p>
+        `,
+      },
+      {
+        name: 'Stroke of Luck',
+        level: 20,
+        description: `
+        <p>At 20th level, you have an uncanny knack for succeeding when you need to. If your attack misses a target within range, you can turn the miss into a hit. Alternatively, if you fail an ability check, you can treat the d20 roll as a 20.</p>
+        <p>Once you use this feature, you can't use it again until you finish a short or long rest.</p>
+        `,
+      },
+    ],
+  };
 
   private notImplementedYet: any = {
     title: 'Not implemented yet',

+ 460 - 26
src/services/subclass/subclass.service.ts

@@ -1,4 +1,5 @@
 import { Injectable } from '@angular/core';
+import { SubclassData } from 'src/interfaces/subclass-data';
 
 @Injectable({
   providedIn: 'root',
@@ -10,17 +11,58 @@ export class SubclassService {
         return this.echoKnight;
       case 'PeaceDomain':
         return this.peaceDomain;
+      case 'Vengance':
+        return this.vengeance;
+      case 'WayOfShadows':
+        return this.wayOfShadows;
+      case 'BeastMaster':
+        return this.beastMaster;
       default:
-        return null;
+        return this.notImplementedYet;
     }
   }
 
-  private peaceDomain: any = {
+  public getAvailableSubclassNames(className: string): string[] {
+    switch (className) {
+      case 'Barbarian':
+        return [];
+      case 'Bard':
+        return [];
+      case 'Cleric':
+        return ['PeaceDomain'];
+      case 'Druid':
+        return [];
+      case 'Fighter':
+        return ['EchoKnight'];
+      case 'Monk':
+        return ['WayOfShadows'];
+      case 'Paladin':
+        return ['Vengance'];
+      case 'Ranger':
+        return ['BeastMaster'];
+      case 'Rogue':
+        return [];
+      case 'Sorcerer':
+        return [];
+      case 'Warlock':
+        return [];
+      case 'Wizard':
+        return [];
+      default:
+        return [];
+    }
+  }
+
+  // BARBARIAN
+
+  // BARD
+
+  // CLERIC
+  private peaceDomain: SubclassData = {
     title: 'Peace Domain',
     description: `
-      The balm of peace thrives at the heart of healthy communities, between friendly nations, and in the souls of the kindhearted. The gods of peace inspire people of all sorts to resolve conflict and to stand up against those forces that try to prevent peace from flourishing. See the Peace Deities table for a list of some of the gods associated with this domain.
-
-      Clerics of the Peace Domain preside over the signing of treaties, and they are often asked to arbitrate in disputes. These clerics' blessings draw people together and help them shoulder one another's burdens, and the clerics' magic aids those who are driven to fight for the way of peace.
+      <p>The balm of peace thrives at the heart of healthy communities, between friendly nations, and in the souls of the kindhearted. The gods of peace inspire people of all sorts to resolve conflict and to stand up against those forces that try to prevent peace from flourishing. See the Peace Deities table for a list of some of the gods associated with this domain.</p>
+      <p>Clerics of the Peace Domain preside over the signing of treaties, and they are often asked to arbitrate in disputes. These clerics' blessings draw people together and help them shoulder one another's burdens, and the clerics' magic aids those who are driven to fight for the way of peace.</p>
     `,
     features: [
       {
@@ -38,6 +80,7 @@ export class SubclassService {
 
           You can use this feature a number of times equal to your proficiency bonus, and you regain all expended uses when you finish a long rest.
         `,
+        ability: '',
       },
       {
         name: 'Channel Divinity: Balm of Peace',
@@ -45,71 +88,462 @@ export class SubclassService {
         description: `
           Starting at 2nd level, you can use your Channel Divinity to make your very presence a soothing balm. As an action, you can move up to your speed, without provoking opportunity attacks, and when you move within 5 feet of any other creature during this action, you can restore a number of hit points to that creature equal to 2d6 + your Wisdom modifier (minimum of 1 hit point). A creature can receive this healing only once whenever you take this action.
         `,
+        ability: '',
+      },
+      {
+        name: 'Protective Bond',
+        level: 6,
+        description: `
+          Beginning at 6th level, the bond you forge between people helps them protect each other. When a creature affected by your Emboldening Bond feature is about to take damage, a second bonded creature within 30 feet of the first can use its reaction to teleport to an unoccupied space within 5 feet of the first creature. The second creature then takes all the damage instead.
+        `,
+        ability: '',
+      },
+      {
+        name: 'Potent Spellcasting',
+        level: 8,
+        description: `
+          At 8th level, you add your Wisdom modifier to the damage you deal with any cleric cantrip.
+        `,
+      },
+      {
+        name: 'Expansive Bond',
+        level: 17,
+        description: `
+          At 17th level, the benefits of your Emboldening Bond and Protective Bond features now work when the creatures are within 60 feet of each other. Moreover, when a creature uses Protective Bond to take someone else's damage, the creature has resistance to that damage.
+        `,
       },
     ],
   };
-  private echoKnight: any = {
+
+  // DRUID
+
+  // FIGHTER
+  private echoKnight: SubclassData = {
     title: 'Echo Knight',
     description: `
-     A mysterious and feared frontline warrior of the Kryn Dynasty, the Echo Knight has mastered the art of using dunamis to summon the fading shades of unrealized timelines to aid them in battle. Surrounded by echoes of their own might, they charge into the fray as a cycling swarm of shadows and strikes.
+    <p>A mysterious and feared frontline warrior of the Kryn Dynasty, the Echo Knight has mastered the art of using dunamis to summon the fading shades of unrealized timelines to aid them in battle. Surrounded by echoes of their own might, they charge into the fray as a cycling swarm of shadows and strikes.</p>
     `,
     features: [
       {
         name: 'Manifest Echo',
         level: 3,
         description: `
-          At 3rd level, you can use a bonus action to magically manifest an echo of yourself in an unoccupied space you can see within 15 feet of you. This echo is a magical, translucent, gray image of you that lasts until it is destroyed, until you dismiss it as a bonus action, until you manifest another echo, or until you're incapacitated.
-
-          Your echo has AC 14 + your proficiency bonus, 1 hit point, and immunity to all conditions. If it has to make a saving throw, it uses your saving throw bonus for the roll. It is the same size as you, and it occupies its space. On your turn, you can mentally command the echo to move up to 30 feet in any direction (no action required). If your echo is ever more than 30 feet from you at the end of your turn, it is destroyed.
-
-          - As a bonus action, you can teleport, magically swapping places with your echo at a cost of 15 feet of your movement, regardless of the distance between the two of you.
-          - When you take the Attack action on your turn, any attack you make with that action can originate from your space or the echo's space. You make this choice for each attack.
-          - When a creature that you can see within 5 feet of your echo moves at least 5 feet away from it, you can use your reaction to make an opportunity attack against that creature as if you were in the echo's space.
+          <p>At 3rd level, you can use a bonus action to magically manifest an echo of yourself in an unoccupied space you can see within 15 feet of you. This echo is a magical, translucent, gray image of you that lasts until it is destroyed, until you dismiss it as a bonus action, until you manifest another echo, or until you're incapacitated.</p>
+          <p>Your echo has AC 14 + your proficiency bonus, 1 hit point, and immunity to all conditions. If it has to make a saving throw, it uses your saving throw bonus for the roll. It is the same size as you, and it occupies its space. On your turn, you can mentally command the echo to move up to 30 feet in any direction (no action required). If your echo is ever more than 30 feet from you at the end of your turn, it is destroyed.</p>
+          <ul>
+          <li>As a bonus action, you can teleport, magically swapping places with your echo at a cost of 15 feet of your movement, regardless of the distance between the two of you.</li>
+          </ul>
+          <ul>
+          <li>When you take the Attack action on your turn, any attack you make with that action can originate from your space or the echo's space. You make this choice for each attack.</li>
+          </ul>
+          <ul>
+          <li>When a creature that you can see within 5 feet of your echo moves at least 5 feet away from it, you can use your reaction to make an opportunity attack against that creature as if you were in the echo's space.</li>
+          </ul>
         `,
+        ability: '',
       },
       {
         name: 'Unleash Incarnation',
         level: 3,
         description: `
-          At 3rd level, you can heighten your echo's fury. Whenever you take the Attack action, you can make one additional melee attack from the echo's position.
-
-          You can use this feature a number of times equal to your Constitution modifier (a minimum of once). You regain all expended uses when you finish a long rest.
+          <p>At 3rd level, you can heighten your echo's fury. Whenever you take the Attack action, you can make one additional melee attack from the echo's position.</p>
+          <p>You can use this feature a number of times equal to your Constitution modifier (a minimum of once). You regain all expended uses when you finish a long rest.</p>
         `,
+        ability: '',
       },
       {
         name: 'Echo Avatar',
         level: 7,
         description: `
-          Starting at 7th level, you can temporarily transfer your consciousness to your echo. As an action, you can see through your echo's eyes and hear through its ears. During this time, you are deafened and blinded. You can sustain this effect for up to 10 minutes, and you can end it at any time (requires no action). While your echo is being used in this way, it can be up to 1,000 feet away from you without being destroyed.
+          <p>At 3rd level, you can heighten your echo's fury. Whenever you take the Attack action, you can make one additional melee attack from the echo's position.</p>
+          <p>You can use this feature a number of times equal to your Constitution modifier (a minimum of once). You regain all expended uses when you finish a long rest.</p>
         `,
+        ability: '',
       },
       {
         name: 'Shadow Martyr',
         level: 10,
         description: `
-          Starting at 10th level, you can make your echo throw itself in front of an attack directed at another creature that you can see. Before the attack roll is made, you can use your reaction to teleport the echo to an unoccupied space within 5 feet of the targeted creature. The attack roll that triggered the reaction is instead made against your echo.
-
-          Once you use this feature, you can't use it again until you finish a short or long rest.
+          <p>Starting at 10th level, you can make your echo throw itself in front of an attack directed at another creature that you can see. Before the attack roll is made, you can use your reaction to teleport the echo to an unoccupied space within 5 feet of the targeted creature. The attack roll that triggered the reaction is instead made against your echo.</p>
+          <p>Once you use this feature, you can't use it again until you finish a short or long rest.</p>
         `,
+        ability: '',
       },
       {
         name: 'Reclaim Potential',
         level: 15,
         description: `
-          By 15th level, you've learned to absorb the fleeting magic of your echo. When an echo of yours is destroyed by taking damage, you can gain a number of temporary hit points equal to 2d6 + your Constitution modifier, provided you don't already have temporary hit points.
-
-          You can use this feature a number of times equal to your Constitution modifier (a minimum of once). You regain all expended uses when you finish a long rest.
+          <p>By 15th level, you've learned to absorb the fleeting magic of your echo. When an echo of yours is destroyed by taking damage, you can gain a number of temporary hit points equal to 2d6 + your Constitution modifier, provided you don't already have temporary hit points.</p>
+          <p>You can use this feature a number of times equal to your Constitution modifier (a minimum of once). You regain all expended uses when you finish a long rest.</p>
         `,
+        ability: '',
       },
       {
         name: 'Legion of One',
         level: 15,
         description: `
-          At 18th level, you can use a bonus action to create two echos with your Manifest Echo feature, and these echoes can co-exist. If you try to create a third echo, the previous two echoes are destroyed. Anything you can do from one echo's position can be done from the other's instead.
+          <p>At 18th level, you can use a bonus action to create two echos with your Manifest Echo feature, and these echoes can co-exist. If you try to create a third echo, the previous two echoes are destroyed. Anything you can do from one echo's position can be done from the other's instead.</p>
+          <p>In addition, when you roll initiative and have no uses of your Unleash Incarnation feature left, you regain one use of that feature.</p>
+        `,
+        ability: '',
+      },
+    ],
+  };
+
+  // MONK
+
+  private wayOfShadows: SubclassData = {
+    title: 'Way of Shadows',
+    description: `
+      <p>Monks of the Way of Shadow follow a tradition that values stealth and subterfuge. These monks might be called ninjas or shadowdancers, and they serve as spies and assassins. Sometimes the members of a ninja monastery are family members, forming a clan sworn to secrecy about their arts and missions. Other monasteries are more like thieves' guilds, hiring out their services to nobles, rich merchants, or anyone else who can pay their fees. Regardless of their methods, the heads of these monasteries expect the unquestioning obedience of their students.</p>
+    `,
+    features: [
+      {
+        name: 'Shadow Arts',
+        level: 3,
+        description: `
+          <p>Starting when you choose this tradition at 3rd level, you can use your ki to duplicate the effects of certain spells. As an action, you can spend 2 ki points to cast darkness, darkvision, pass without trace, or silence, without providing material components. Additionally, you gain the minor illusion cantrip if you don't already know it.</p>
+        `,
+        ability: '',
+      },
+      {
+        name: 'Shadow Step',
+        level: 6,
+        description: `
+          <p>At 6th level, you gain the ability to step from one shadow into another. When you are in dim light or darkness, as a bonus action you can teleport up to 60 feet to an unoccupied space you can see that is also in dim light or darkness. You then have advantage on the first melee attack you make before the end of the turn.</p>
+        `,
+        ability: '',
+      },
+      {
+        name: 'Cloak of Shadows',
+        level: 11,
+        description: `
+          <p>By 11th level, you have learned to become one with the shadows. When you are in an area of dim light or darkness, you can use your action to become invisible. You remain invisible until you make an attack, cast a spell, or are in an area of bright light.</p>
+        `,
+        ability: '',
+      },
+      {
+        name: 'Opportunist',
+        level: 17,
+        description: `
+          <p>At 17th level, you can exploit a creature's momentary distraction when it is hit by an attack. Whenever a creature within 5 feet of you is hit by an attack made by a creature other than you, you can use your reaction to make a melee attack against that creature.</p>
+        `,
+        ability: '',
+      },
+    ],
+  };
+
+  // PALADIN
+
+  private vengeance: SubclassData = {
+    title: 'SChwur der Vergeltung',
+    description: `
+      <p>The Oath of Vengeance is a solemn commitment to punish those who have committed a grievous sin. When evil forces slaughter helpless villagers, when an entire people turns against the will of the gods, when a thieves' guild grows too violent and powerful, when a dragon rampages through the countryside—at times like these, paladins arise and swear an Oath of Vengeance to set right that which has gone wrong. To these paladins—sometimes called avengers or dark knights—their own purity is not as important as delivering justice.</p>
+    `,
+    features: [
+      {
+        name: 'Tenets of Vengeance',
+        level: 3,
+        description: `
+          <p>The tenets of the Oath of Vengeance vary by paladin, but all the tenets revolve around punishing wrongdoers by any means necessary. Paladins who uphold these tenets are willing to sacrifice even their own righteousness to mete out justice upon those who do evil, so the paladins are often neutral or lawful neutral in alignment. The core principles of the tenets are brutally simple.</p>
+          <p><strong><em>Fight the Greater Evil.</em></strong> Faced with a choice of fighting my sworn foes or combating a lesser evil, I choose the greater evil.</p>
+          <p><strong><em>No Mercy for the Wicked.</em></strong> Ordinary foes might win my mercy, but my sworn enemies do not.</p>
+          <p><strong><em>By Any Means Necessary.</em></strong> My qualms can't get in the way of exterminating my foes.</p>
+          <p><strong><em>Restitution.</em></strong> If my foes wreak ruin on the world, it is because I failed to stop them. I must help those harmed by their misdeeds.</p>
+          <h3 id="toc1"><span>Oath Spells</span></h3>
+          <p>You gain oath spells at the paladin levels listed.</p>
+        `,
+      },
+      {
+        name: 'Channel Divinity: Abjure Enemy',
+        level: 3,
+        description: `
+          <p>When you take this oath at 3rd level, you gain the following two Channel Divinity options.</p>
+          <ul>
+          <li><strong><em>Abjure Enemy.</em></strong> As an action, you present your holy symbol and speak a prayer of denunciation, using your Channel Divinity. Choose one creature within 60 feet of you that you can see. That creature must make a Wisdom saving throw, unless it is immune to being frightened. Fiends and undead have disadvantage on this saving throw.<br />
+          <br />
+          On a failed save, the creature is frightened for 1 minute or until it takes any damage. While frightened, the creature's speed is 0, and it can't benefit from any bonus to its speed.<br />
+          <br />
+          On a successful save, the creature's speed is halved for 1 minute or until the creature takes any damage.</li>
+          </ul>
+          <ul>
+          <li><strong><em>Vow of Enmity.</em></strong> As a bonus action, you can utter a vow of enmity against a creature you can see within 10 feet of you, using your Channel Divinity. You gain advantage on attack rolls against the creature for 1 minute or until it drops to 0 hit points or falls unconscious.</li>
+          </ul>
+          `,
+      },
+      {
+        name: 'Relentless Avenger',
+        level: 7,
+        description: `
+          <p>By 7th level, your supernatural focus helps you close off a foe's retreat. When you hit a creature with an opportunity attack, you can move up to half your speed immediately after the attack and as part of the same reaction. This movement doesn't provoke opportunity attacks.</p>
+        `,
+      },
+      {
+        name: 'Soul of Vengeance',
+        level: 15,
+        description: `
+          <p>Starting at 15th level, the authority with which you speak your Vow of Enmity gives you greater power over your foe. When a creature under the effect of your Vow of Enmity makes an attack, you can use your reaction to make a melee weapon attack against that creature if it is within range.</p>
+        `,
+        ability: '',
+      },
+      {
+        name: 'Avenging Angel',
+        level: 20,
+        description: `
+          <p>At 20th level, you can assume the form of an angelic avenger. Using your action, you undergo a transformation. For 1 hour, you gain the following benefits:</p>
+          <ul>
+          <li>Wings sprout from your back and grant you a flying speed of 60 feet.</li>
+          </ul>
+          <ul>
+          <li>You emanate an aura of menace in a 30-foot radius. The first time any enemy creature enters the aura or starts its turn there during a battle, the creature must succeed on a Wisdom saving throw or become frightened of you for 1 minute or until it takes any damage. Attack rolls against the frightened creature have advantage.</li>
+          </ul>
+          <p>Once you use this feature, you can't use it again until you finish a long rest.</p>
+          `,
+        ability: '',
+      },
+    ],
+  };
+
+  // RANGER
 
-          In addition, when you roll initiative and have no uses of your Unleash Incarnation feature left, you regain one use of that feature.
+  private beastMaster: SubclassData = {
+    title: 'Beast Master',
+    description: `
+      <p>Rangers of the Beast Master archetype embrace the freedom of the wild, and they are driven by a bond with an animal companion who is as much a part of the ranger's life as the ranger is to the beast. Beast masters are skilled in survival, tracking, and hunting, and they are often found in the wild frontiers, plying their trade as guides, hunters, and scouts.</p>
+    `,
+    features: [
+      {
+        name: "Ranger's Companion",
+        level: 3,
+        description: `
+          <p>At 3rd level, you gain a beast companion that accompanies you on your adventures and is trained to fight alongside you. Choose a beast that is no larger than Medium and that has a challenge rating of 1/4 or lower (Player's Handbook Appendix D presents statistics for the hawk, mastiff, and panther as examples). Add your proficiency bonus to the beast’s AC, attack rolls, and damage rolls, as well as to any saving throws and skills it is proficient in. Its hit point maximum equals its normal maximum or four times your ranger level, whichever is higher. Like any creature, the beast can spend Hit Dice during a short rest.</p>
+          <p>The beast obeys your commands as best as it can. It takes its turn on your initiative. On your turn, you can verbally command the beast where to move (no action required by you). You can use your action to verbally command it to take the Attack, Dash, Disengage, or Help action. If you don’t issue a command, the beast takes the Dodge action. Once you have the Extra Attack feature, you can make one weapon attack yourself when you command the beast to take the Attack action. While traveling through your favored terrain with only the beast, you can move stealthily at a normal pace.</p>
+          <p>If you are incapacitated or absent, the beast acts on its own, focusing on protecting you and itself. The beast never requires your command to use its reaction, such as when making an opportunity attack.</p>
+          <p>If the beast dies, you can obtain another one by spending 8 hours magically bonding with another beast that isn’t hostile to you, either the same type of beast as before or a different one.</p>
+        `,
+        ability: '',
+      },
+      {
+        mname: 'Primal Companion (Optional)',
+        level: 3,
+        description: `
+          <p>This 3rd-level feature replaces the Ranger's Companion feature.</p>
+          <p>You magically summon a primal beast, which draws strength from your bond with nature. The beast is friendly to you and your companions and obeys your commands. Choose its stat block-Beast of the Land, Beast of the Sea, or Beast of the Sky-which uses your proficiency bonus (PB) in several places. You also determine the kind of animal the beast is, choosing a kind appropriate for the stat block. Whatever kind you choose, the beast bears primal markings, indicating its mystical origin.</p>
+          <p>In combat, the beast acts during your turn. It can move and use its reaction on its own, but the only action it takes is the Dodge action, unless you take a bonus action on your turn to command it to take another action. That action can be one in its stat block or some other action. You can also sacrifice one of your attacks when you take the Attack action to command the beast to take the Attack action. If<br />
+          you are incapacitated, the beast can take any action of its choice, not just Dodge.</p>
+          <p>If the beast has died within the last hour, you can use your action to touch it and expend a spell slot of 1st level or higher. The beast returns to life after 1 minute with all its hit points restored. When you finish a long rest, you can summon a different primal beast. The new beast appears in an unoccupied space within 5 feet of you, and you choose its stat block and appearance. If you already have a beast from this feature, it vanishes when the new beast appears. The beast also vanishes if you die.</p>
+          <table class="wiki-content-table">
+          <tr>
+          <th colspan="6">Beast of the Land</th>
+          </tr>
+          <tr>
+          <td colspan="6"><em>Medium beast</em></td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Armor Class:</strong> 13 + PB (natural armor)</td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Hit Points:</strong> 5 + five times your ranger level (the beast has a number of Hit Dice [d8s] equal to your ranger level)</td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Speed:</strong> 40 ft., climb 40ft.</td>
+          </tr>
+          <tr>
+          <th>STR</th>
+          <th>DEX</th>
+          <th>CON</th>
+          <th>INT</th>
+          <th>WIS</th>
+          <th>CHA</th>
+          </tr>
+          <tr>
+          <td>14 (+2)</td>
+          <td>14 (+2)</td>
+          <td>15 (+2)</td>
+          <td>8 (−1)</td>
+          <td>14 (+2)</td>
+          <td>11 (+0)</td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Senses:</strong> darkvision 60 ft., passive Perception 12</td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Languages:</strong> understands the languages you speak</td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Challenge:</strong> &#8212;</td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Proficiency Bonus (PB):</strong> equals your bonus</td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Charge:</strong> If the beast moves at least 20 feet straight toward a target and then hits it with a maul attack on the same turn, the target takes an extra 1d6 slashing damage. If the target is a creature, it must succeed on a Strength saving throw against your spell save DC or be knocked prone.</td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Primal Bond:</strong> You can add your proficiency bonus to any ability check or saving throw that the beast makes.</td>
+          </tr>
+          <tr>
+          <th colspan="6">Actions</th>
+          </tr>
+          <tr>
+          <td colspan="6"><strong><em>Maul.</em></strong> <em>Melee Weapon Attack:</em> your spell attack modifier to hit, reach 5 ft., one target. <em>Hit:</em> 1d8 + 2 + PB slashing damage.</td>
+          </tr>
+          </table>
+          <table class="wiki-content-table">
+          <tr>
+          <th colspan="6">Beast of the Sea</th>
+          </tr>
+          <tr>
+          <td colspan="6"><em>Medium beast</em></td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Armor Class:</strong> 13 + PB (natural armor)</td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Hit Points:</strong> 5 + five times your ranger level (the beast has a number of Hit Dice [d8s] equal to your ranger level)</td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Speed:</strong> 5 ft., swim 60ft.</td>
+          </tr>
+          <tr>
+          <th>STR</th>
+          <th>DEX</th>
+          <th>CON</th>
+          <th>INT</th>
+          <th>WIS</th>
+          <th>CHA</th>
+          </tr>
+          <tr>
+          <td>14 (+2)</td>
+          <td>14 (+2)</td>
+          <td>15 (+2)</td>
+          <td>8 (−1)</td>
+          <td>14 (+2)</td>
+          <td>11 (+0)</td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Senses:</strong> darkvision 60 ft., passive Perception 12</td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Languages:</strong> understands the languages you speak</td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Challenge:</strong> &#8212;</td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Proficiency Bonus (PB):</strong> equals your bonus</td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Amphibious:</strong> The beast can breathe both air and water.</td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Primal Bond:</strong> You can add your proficiency bonus to any ability check or saving throw that the beast makes.</td>
+          </tr>
+          <tr>
+          <th colspan="6">Actions</th>
+          </tr>
+          <tr>
+          <td colspan="6"><strong><em>Binding Strike.</em></strong> <em>Melee Weapon Attack:</em> your spell attack modifier to hit, reach 5 ft., one target. <em>Hit:</em> 1d6 + 2 + PB piercing or bludgeoning damage (your choice), and the target is grappled (escape DC equals your spell save DC). Until this grapple ends, the beast can't use this attack on another target.</td>
+          </tr>
+          </table>
+          <table class="wiki-content-table">
+          <tr>
+          <th colspan="6">Beast of the Sky</th>
+          </tr>
+          <tr>
+          <td colspan="6"><em>Small beast</em></td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Armor Class:</strong> 13 + PB (natural armor)</td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Hit Points:</strong> 4 + four times your ranger level (the beast has a number of Hit Dice [d6s] equal to your ranger level)</td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Speed:</strong> 10 ft., fly 60ft.</td>
+          </tr>
+          <tr>
+          <th>STR</th>
+          <th>DEX</th>
+          <th>CON</th>
+          <th>INT</th>
+          <th>WIS</th>
+          <th>CHA</th>
+          </tr>
+          <tr>
+          <td>6 (-2)</td>
+          <td>16 (+3)</td>
+          <td>13 (+1)</td>
+          <td>8 (−1)</td>
+          <td>14 (+2)</td>
+          <td>11 (+0)</td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Senses:</strong> darkvision 60 ft., passive Perception 12</td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Languages:</strong> understands the languages you speak</td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Challenge:</strong> &#8212;</td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Proficiency Bonus (PB):</strong> equals your bonus</td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Flyby:</strong> The beast doesn't provoke opportunity attacks when it flies out of an enemy's reach.</td>
+          </tr>
+          <tr>
+          <td colspan="6"><strong>Primal Bond:</strong> You can add your proficiency bonus to any ability check or saving throw that the beast makes.</td>
+          </tr>
+          <tr>
+          <th colspan="6">Actions</th>
+          </tr>
+          <tr>
+          <td colspan="6"><strong><em>Shred.</em></strong> <em>Melee Weapon Attack:</em> your spell attack modifier to hit, reach 5 ft., one target. <em>Hit:</em> 1d4 + 3 + PB slashing damage.</td>
+          </tr>
+          </table>
+       `,
+        ability: '',
+      },
+      {
+        name: 'Exceptional Training',
+        level: 7,
+        description: `
+          <p>Beginning at 7th level, on any of your turns when your beast companion doesn't attack, you can use a bonus action to command the beast to take the Dash, Disengage, Dodge, or Help action on its turn.</p>
+        `,
+        ability: '',
+      },
+      {
+        name: 'Bestial Fury',
+        level: 11,
+        description: `
+          <p>Starting at 11th level, your beast companion's attacks are magical. Also, when you command the beast to take the Attack action, the beast can make two attacks, or it can take the Multiattack action if it has that action.</p>
+        `,
+      },
+      {
+        name: 'Share Spells',
+        level: 15,
+        description: `
+          <p>Beginning at 15th level, when you cast a spell targeting yourself, you can also affect your beast companion with the spell if the beast is within 30 feet of you.</p>       
         `,
       },
     ],
   };
+
+  // ROGUE
+
+  // SORCERER
+
+  // WARLOCK
+
+  // WIZARD
+
+  private notImplementedYet: any = {
+    title: 'Not implemented yet',
+    description: `
+    This class is not implemented yet, please check back later.
+    `,
+    features: [],
+  };
 }