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