Skip to content

Commit

Permalink
[CODE] Refactor SuccessTest implementations to use generic types for … (
Browse files Browse the repository at this point in the history
#1130)

[CODE] Refactor SuccessTest implementations to use generic types for TestData
Fixes #995
  • Loading branch information
taMiF committed Jan 27, 2024
1 parent 8cef3a2 commit 538b777
Show file tree
Hide file tree
Showing 18 changed files with 18 additions and 36 deletions.
3 changes: 1 addition & 2 deletions src/module/tests/CombatSpellDefenseTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@ export interface CombatSpellDefenseTestData extends DefenseTestData {
against: SpellCastingTestData
}

export class CombatSpellDefenseTest extends DefenseTest {
override data: CombatSpellDefenseTestData
export class CombatSpellDefenseTest extends DefenseTest<CombatSpellDefenseTestData> {
override against: SpellCastingTest

/**
Expand Down
3 changes: 1 addition & 2 deletions src/module/tests/CompileSpriteTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,7 @@ interface CompileSpriteTestData extends SuccessTestData {
* This test is designed to work together with the compilation item type as it's
* defined within
*/
export class CompileSpriteTest extends SuccessTest {
override data: CompileSpriteTestData
export class CompileSpriteTest extends SuccessTest<CompileSpriteTestData> {

override _prepareData(data: any, options: TestOptions) {
data = super._prepareData(data, options);
Expand Down
3 changes: 1 addition & 2 deletions src/module/tests/ComplexFormTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@ export interface ComplexFormTestData extends SuccessTestData {
/**
* Handles threading complex forms as described on SR5#251.
*/
export class ComplexFormTest extends SuccessTest {
override data: ComplexFormTestData
export class ComplexFormTest extends SuccessTest<ComplexFormTestData> {

override _prepareData(data, options): any {
data = super._prepareData(data, options);
Expand Down
3 changes: 1 addition & 2 deletions src/module/tests/DefenseTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@ export interface DefenseTestData extends OpposedTestData {
*
* Handle general damage data as well as general defense rules.
*/
export class DefenseTest extends OpposedTest {
override data: DefenseTestData
export class DefenseTest<T extends DefenseTestData = DefenseTestData> extends OpposedTest<T> {

override _prepareData(data, options?) {
data = super._prepareData(data, options);
Expand Down
3 changes: 1 addition & 2 deletions src/module/tests/DrainTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@ export interface DrainTestData extends SuccessTestData {
* Drain defines it's incoming drain and modifies it to it's modified drain,
* both of which the user can apply.
*/
export class DrainTest extends SuccessTest {
override data: DrainTestData
export class DrainTest extends SuccessTest<DrainTestData> {

override _prepareData(data, options): any {
data = super._prepareData(data, options);
Expand Down
3 changes: 1 addition & 2 deletions src/module/tests/FadeTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,7 @@ export interface FadeTestData extends SuccessTestData {
against: ComplexFormTestData
}

export class FadeTest extends SuccessTest {
override data: FadeTestData
export class FadeTest extends SuccessTest<FadeTestData> {
against: ComplexFormTest

override _prepareData(data, options): any {
Expand Down
3 changes: 1 addition & 2 deletions src/module/tests/MeleeAttackTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@ export interface MeleeAttackData extends SuccessTestData {
reach: number
}

export class MeleeAttackTest extends SuccessTest {
override data: MeleeAttackData;
export class MeleeAttackTest extends SuccessTest<MeleeAttackData> {

override _prepareData(data, options): any {
data = super._prepareData(data, options);
Expand Down
3 changes: 1 addition & 2 deletions src/module/tests/OpposedCompileSpriteTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@ interface OpposedCompileSpriteTestData extends OpposedTestData {
*
* The technomancer is the active actor and the sprite the opposed actor.
*/
export class OpposedCompileSpriteTest extends OpposedTest {
override data: OpposedCompileSpriteTestData
export class OpposedCompileSpriteTest extends OpposedTest<OpposedCompileSpriteTestData> {
public override against: CompileSpriteTest

constructor(data, documents?: TestDocuments, options?: TestOptions) {
Expand Down
3 changes: 1 addition & 2 deletions src/module/tests/OpposedRitualTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@ interface OpposedRitualTestData extends OpposedTestData {
*
* The summoner is the active actor and the spirit is the opposed actor.
*/
export class OpposedRitualTest extends OpposedTest {
override data: OpposedRitualTestData
export class OpposedRitualTest extends OpposedTest<OpposedRitualTestData> {
public override against: RitualSpellcastingTest

constructor(data, documents?: TestDocuments, options?: TestOptions) {
Expand Down
3 changes: 1 addition & 2 deletions src/module/tests/OpposedSummonSpiritTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,7 @@ interface OpposedSummonSpiritTestData extends OpposedTestData {
*
* The summoner is the active actor and the spirit is the opposed actor.
*/
export class OpposedSummonSpiritTest extends OpposedTest {
override data: OpposedSummonSpiritTestData
export class OpposedSummonSpiritTest extends OpposedTest<OpposedSummonSpiritTestData> {
public override against: SummonSpiritTest

constructor(data, documents?: TestDocuments, options?: TestOptions) {
Expand Down
3 changes: 1 addition & 2 deletions src/module/tests/OpposedTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@ export interface OpposedTestData extends
/**
* An opposed test results from a normal success test as an opposed action.
*/
export class OpposedTest extends SuccessTest {
public override data: OpposedTestData;
export class OpposedTest<T extends OpposedTestData = OpposedTestData> extends SuccessTest<T> {
public against: SuccessTest;

constructor(data, documents?: TestDocuments, options?: TestOptions) {
Expand Down
3 changes: 1 addition & 2 deletions src/module/tests/PhysicalDefenseTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,7 @@ export type PhysicalDefenseNoDamageCondition = {
label: Translation,
}

export class PhysicalDefenseTest extends DefenseTest {
public override data: PhysicalDefenseTestData;
export class PhysicalDefenseTest<T extends PhysicalDefenseTestData = PhysicalDefenseTestData> extends DefenseTest<T> {

override _prepareData(data, options?): any {
data = super._prepareData(data, options);
Expand Down
3 changes: 1 addition & 2 deletions src/module/tests/PhysicalResistTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,7 @@ export type PhysicalResistSuccessCondition = {
*
* Physical resist specifically handles physical damage dealt by ranged, melee and physical spell attacks.
*/
export class PhysicalResistTest extends SuccessTest {
override data: PhysicalResistTestData
export class PhysicalResistTest extends SuccessTest<PhysicalResistTestData> {

override _prepareData(data: PhysicalResistTestData, options): any {
data = super._prepareData(data, options);
Expand Down
3 changes: 1 addition & 2 deletions src/module/tests/RitualSpellcastingTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@ interface RitualSpellcastingTestData extends SuccessTestData {
*
* Ritual Spellcasting uses the default Success Test, Opposed Test and Followup Flow.
*/
export class RitualSpellcastingTest extends SuccessTest {
override data: RitualSpellcastingTestData
export class RitualSpellcastingTest extends SuccessTest<RitualSpellcastingTestData> {

override _prepareData(data: any, options: any) {
data = super._prepareData(data, options);
Expand Down
3 changes: 1 addition & 2 deletions src/module/tests/SkillTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,7 @@ export interface SkillTestData extends SuccessTestData {
*
* Rule wise a skill test doesn't alter a default success test.
*/
export class SkillTest extends SuccessTest {
override data: SkillTestData
export class SkillTest extends SuccessTest<SkillTestData> {
// temporary selection information.
lastUsedAttribute: string;
lastUsedLimit: string;
Expand Down
3 changes: 1 addition & 2 deletions src/module/tests/SpellCastingTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@ export interface SpellCastingTestData extends SuccessTestData {
* Spellcasting tests as described on SR5#281 in the spellcasting chapter.
*
*/
export class SpellCastingTest extends SuccessTest {
override data: SpellCastingTestData
export class SpellCastingTest extends SuccessTest<SpellCastingTestData> {

override _prepareData(data, options): any {
data = super._prepareData(data, options);
Expand Down
3 changes: 1 addition & 2 deletions src/module/tests/SummonSpiritTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,7 @@ interface SummonSpiritTestData extends SuccessTestData {
*
* Summoning uses the default Success Test, Opposed Test and Followup Flow.
*/
export class SummonSpiritTest extends SuccessTest {
override data: SummonSpiritTestData
export class SummonSpiritTest extends SuccessTest<SummonSpiritTestData> {

override _prepareData(data: any, options: any) {
data = super._prepareData(data, options);
Expand Down
3 changes: 1 addition & 2 deletions src/module/tests/SuppressionDefenseTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ import { PhysicalDefenseTest, PhysicalDefenseTestData } from "./PhysicalDefenseT
import MinimalActionData = Shadowrun.MinimalActionData;


export class SuppressionDefenseTest extends PhysicalDefenseTest {
public override data: PhysicalDefenseTestData;
export class SuppressionDefenseTest extends PhysicalDefenseTest<PhysicalDefenseTestData> {

static override _getDefaultTestAction(): Partial<MinimalActionData> {
return {
Expand Down

0 comments on commit 538b777

Please sign in to comment.