/// <summary> /// Initializes a new instance of the <see cref="ElevatedOperationContext"/> class. /// </summary> /// <param name="logger">A reference to the logger in use.</param> /// <param name="applicationContext">A reference to the application context.</param> /// <param name="mapDescriptor">A reference to the map descriptor in use.</param> /// <param name="map">A reference to the map.</param> /// <param name="creatureManager">A reference to the creature manager in use.</param> /// <param name="itemFactory">A reference to the item factory in use.</param> /// <param name="creatureFactory">A reference to the creature factory in use.</param> /// <param name="containerManager">A reference to the container manager in use.</param> /// <param name="gameOperationsApi">A reference to the game operations api.</param> /// <param name="combatOperationsApi">A reference to the combat operations api.</param> /// <param name="pathFinderAlgo">A reference to the path finding algorithm in use.</param> /// <param name="predefinedItemSet">A reference to the predefined item set declared.</param> /// <param name="scheduler">A reference to the scheduler instance.</param> public ElevatedOperationContext( ILogger logger, IApplicationContext applicationContext, IMapDescriptor mapDescriptor, IMap map, ICreatureManager creatureManager, IItemFactory itemFactory, ICreatureFactory creatureFactory, IContainerManager containerManager, IGameOperationsApi gameOperationsApi, ICombatOperationsApi combatOperationsApi, IPathFinder pathFinderAlgo, IPredefinedItemSet predefinedItemSet, IScheduler scheduler) : base( logger, mapDescriptor, map, creatureManager, itemFactory, creatureFactory, containerManager, gameOperationsApi, combatOperationsApi, pathFinderAlgo, predefinedItemSet, scheduler) { applicationContext.ThrowIfNull(nameof(applicationContext)); this.ApplicationContext = applicationContext; }
/// <summary> /// Initializes a new instance of the <see cref="OperationContext"/> class. /// </summary> /// <param name="logger">A reference to the logger in use.</param> /// <param name="mapDescriptor">A reference to the map descriptor in use.</param> /// <param name="map">A reference to the map in use.</param> /// <param name="creatureFinder">A reference to the creature finder in use.</param> /// <param name="itemFactory">A reference to the item factory in use.</param> /// <param name="creatureFactory">A reference to the creature factory in use.</param> /// <param name="containerManager">A reference to the container manager in use.</param> /// <param name="gameOperationsApi">A reference to the game operations api.</param> /// <param name="combatOperationsApi">A reference to the combat operations api.</param> /// <param name="pathFinderAlgo">A reference to the path finding algorithm in use.</param> /// <param name="predefinedItemSet">A reference to the predefined item set declared.</param> /// <param name="scheduler">A reference to the scheduler instance.</param> public OperationContext( ILogger logger, IMapDescriptor mapDescriptor, IMap map, ICreatureFinder creatureFinder, IItemFactory itemFactory, ICreatureFactory creatureFactory, IContainerManager containerManager, IGameOperationsApi gameOperationsApi, ICombatOperationsApi combatOperationsApi, IPathFinder pathFinderAlgo, IPredefinedItemSet predefinedItemSet, IScheduler scheduler) : base(logger, () => scheduler.CurrentTime) { mapDescriptor.ThrowIfNull(nameof(mapDescriptor)); map.ThrowIfNull(nameof(map)); creatureFinder.ThrowIfNull(nameof(creatureFinder)); itemFactory.ThrowIfNull(nameof(itemFactory)); creatureFactory.ThrowIfNull(nameof(creatureFactory)); containerManager.ThrowIfNull(nameof(containerManager)); gameOperationsApi.ThrowIfNull(nameof(gameOperationsApi)); combatOperationsApi.ThrowIfNull(nameof(combatOperationsApi)); pathFinderAlgo.ThrowIfNull(nameof(pathFinderAlgo)); predefinedItemSet.ThrowIfNull(nameof(predefinedItemSet)); scheduler.ThrowIfNull(nameof(scheduler)); this.MapDescriptor = mapDescriptor; this.Map = map; this.CreatureFinder = creatureFinder; this.ItemFactory = itemFactory; this.CreatureFactory = creatureFactory; this.ContainerManager = containerManager; this.GameApi = gameOperationsApi; this.CombatApi = combatOperationsApi; this.PathFinder = pathFinderAlgo; this.PredefinedItemSet = predefinedItemSet; this.Scheduler = scheduler; }