Implement Interactionstructure
All checks were successful
E2E Testing / test (push) Successful in 1m32s
All checks were successful
E2E Testing / test (push) Successful in 1m32s
This commit is contained in:
parent
49e12d7046
commit
bcd06d894f
@ -1,12 +1,14 @@
|
|||||||
import {ScriptAccount} from "../../scriptAccounts/ScriptAccount";
|
import {ScriptAccount} from "../../scriptAccounts/ScriptAccount";
|
||||||
import {ScriptAccountCondition} from "../conditions/ScriptAccountCondition";
|
import {Action} from "../../interactions/actions/Action";
|
||||||
|
import {CharacterDependency} from "../../interactions/CharacterDependency";
|
||||||
|
|
||||||
export class ScriptAccountAction {
|
export class ScriptAccountAction extends Action{
|
||||||
scriptAccount: ScriptAccount
|
scriptAccount: ScriptAccount
|
||||||
changingValue: number = 0;
|
changingValue: number = 0;
|
||||||
|
|
||||||
|
|
||||||
constructor(scriptAccount: ScriptAccount, changingValue: number) {
|
constructor(scriptAccount: ScriptAccount, changingValue: number) {
|
||||||
|
super(CharacterDependency.NONE);
|
||||||
this.scriptAccount = scriptAccount;
|
this.scriptAccount = scriptAccount;
|
||||||
this.changingValue = changingValue;
|
this.changingValue = changingValue;
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,15 @@
|
|||||||
import {ScriptAccount} from "../../scriptAccounts/ScriptAccount";
|
import {ScriptAccount} from "../../scriptAccounts/ScriptAccount";
|
||||||
export class ScriptAccountCondition {
|
import {Condition} from "../../interactions/condition/Condition";
|
||||||
|
import {CharacterDependency} from "../../interactions/CharacterDependency";
|
||||||
|
|
||||||
|
export class ScriptAccountCondition extends Condition{
|
||||||
scriptAccount: ScriptAccount
|
scriptAccount: ScriptAccount
|
||||||
minValue: number
|
minValue: number
|
||||||
maxValue: number
|
maxValue: number
|
||||||
|
|
||||||
|
|
||||||
private constructor(scriptAccount: ScriptAccount, minValue: number, maxValue: number) {
|
private constructor(scriptAccount: ScriptAccount, minValue: number, maxValue: number) {
|
||||||
|
super(CharacterDependency.NONE);
|
||||||
this.scriptAccount = scriptAccount;
|
this.scriptAccount = scriptAccount;
|
||||||
this.minValue = minValue;
|
this.minValue = minValue;
|
||||||
this.maxValue = maxValue;
|
this.maxValue = maxValue;
|
||||||
|
@ -0,0 +1,18 @@
|
|||||||
|
import {Character} from "../characters/Character";
|
||||||
|
import {Condition} from "./condition/Condition";
|
||||||
|
|
||||||
|
export abstract class AbstractInteraction {
|
||||||
|
sourceCharacter: Character
|
||||||
|
targetCharacter: Character
|
||||||
|
|
||||||
|
conditions: Condition[] = []
|
||||||
|
|
||||||
|
interactionLabel: string
|
||||||
|
|
||||||
|
|
||||||
|
constructor(sourceCharacter: Character, targetCharacter: Character, interactionLabel: string) {
|
||||||
|
this.sourceCharacter = sourceCharacter;
|
||||||
|
this.targetCharacter = targetCharacter;
|
||||||
|
this.interactionLabel = interactionLabel;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,5 @@
|
|||||||
|
export enum CharacterDependency {
|
||||||
|
SRC,
|
||||||
|
TARGET,
|
||||||
|
NONE
|
||||||
|
}
|
14
src/app/project/game-model/interactions/Interaction.ts
Normal file
14
src/app/project/game-model/interactions/Interaction.ts
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
import {Character} from "../characters/Character";
|
||||||
|
import {Condition} from "./condition/Condition";
|
||||||
|
import {Action} from "./actions/Action";
|
||||||
|
import {AbstractInteraction} from "./AbstractInteraction";
|
||||||
|
|
||||||
|
export class Interaction extends AbstractInteraction{
|
||||||
|
|
||||||
|
actions: Action[] = []
|
||||||
|
|
||||||
|
|
||||||
|
constructor(sourceCharacter: Character, targetCharacter: Character, interactionLabel: string) {
|
||||||
|
super(sourceCharacter, targetCharacter, interactionLabel);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
import {Interaction} from "./Interaction";
|
||||||
|
import {AbstractInteraction} from "./AbstractInteraction";
|
||||||
|
import {Character} from "../characters/Character";
|
||||||
|
|
||||||
|
export class InteractionSequences extends AbstractInteraction {
|
||||||
|
|
||||||
|
interactions: Interaction[] = []
|
||||||
|
|
||||||
|
|
||||||
|
constructor(sourceCharacter: Character, targetCharacter: Character, interactionLabel: string) {
|
||||||
|
super(sourceCharacter, targetCharacter, interactionLabel);
|
||||||
|
}
|
||||||
|
}
|
11
src/app/project/game-model/interactions/actions/Action.ts
Normal file
11
src/app/project/game-model/interactions/actions/Action.ts
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import {CharacterDependency} from "../CharacterDependency";
|
||||||
|
|
||||||
|
export abstract class Action {
|
||||||
|
|
||||||
|
characterDependency: CharacterDependency
|
||||||
|
|
||||||
|
|
||||||
|
constructor(characterDependency: CharacterDependency) {
|
||||||
|
this.characterDependency = characterDependency;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
import {Action} from "./Action";
|
||||||
|
import {Item} from "../../inventory/Item";
|
||||||
|
import {CharacterDependency} from "../CharacterDependency";
|
||||||
|
|
||||||
|
export class InventoryItemAction extends Action {
|
||||||
|
|
||||||
|
item: Item
|
||||||
|
valueChange: number
|
||||||
|
|
||||||
|
constructor(characterDependency: CharacterDependency, item: Item, valueChange: number) {
|
||||||
|
super(characterDependency);
|
||||||
|
this.item = item;
|
||||||
|
this.valueChange = valueChange;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
import {CharacterDependency} from "../CharacterDependency";
|
||||||
|
|
||||||
|
export abstract class Condition {
|
||||||
|
characterDependency: CharacterDependency
|
||||||
|
|
||||||
|
|
||||||
|
constructor(characterDependency: CharacterDependency) {
|
||||||
|
this.characterDependency = characterDependency;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
import {Gamesystem} from "../../gamesystems/Gamesystem";
|
||||||
|
import {State} from "../../gamesystems/states/State";
|
||||||
|
|
||||||
|
export class GamesystemCondition {
|
||||||
|
targetGamesystem: Gamesystem<any, any>
|
||||||
|
requieredState: State<any>;
|
||||||
|
|
||||||
|
|
||||||
|
constructor(targetGamesystem: Gamesystem<any, any>, requieredState: State<any>) {
|
||||||
|
this.targetGamesystem = targetGamesystem;
|
||||||
|
this.requieredState = requieredState;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
import {Condition} from "./Condition";
|
||||||
|
import {Character} from "../../characters/Character";
|
||||||
|
import {CharacterDependency} from "../CharacterDependency";
|
||||||
|
|
||||||
|
export abstract class InventoryCondition extends Condition {
|
||||||
|
|
||||||
|
minValue: number
|
||||||
|
maxValue: number
|
||||||
|
|
||||||
|
constructor(characterDependency: CharacterDependency, minValue: number, maxValue: number) {
|
||||||
|
super(characterDependency);
|
||||||
|
this.minValue = minValue;
|
||||||
|
this.maxValue = maxValue;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
import {InventoryCondition} from "./InventoryCondition";
|
||||||
|
import {Item} from "../../inventory/Item";
|
||||||
|
import {CharacterDependency} from "../CharacterDependency";
|
||||||
|
|
||||||
|
export class InventoryItemCondition extends InventoryCondition {
|
||||||
|
|
||||||
|
item: Item
|
||||||
|
|
||||||
|
constructor(characterDependency: CharacterDependency, minValue: number, maxValue: number, item: Item) {
|
||||||
|
super(characterDependency, minValue, maxValue);
|
||||||
|
this.item = item;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
import {InventoryCondition} from "./InventoryCondition";
|
||||||
|
import {ItemGroup} from "../../inventory/ItemGroup";
|
||||||
|
import {CharacterDependency} from "../CharacterDependency";
|
||||||
|
|
||||||
|
export class InventoryItemgroupCondition extends InventoryCondition {
|
||||||
|
itemgroup: ItemGroup
|
||||||
|
|
||||||
|
|
||||||
|
constructor(characterDependency: CharacterDependency, minValue: number, maxValue: number, itemgroup: ItemGroup) {
|
||||||
|
super(characterDependency, minValue, maxValue);
|
||||||
|
this.itemgroup = itemgroup;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user