Ejemplo n.º 1
0
 public DatabaseEventRecordingProvider(IServiceProvider serviceProvider,
                                       GameTilesRepo gameTilesRepo, GameObjectsStepStateRepo gameObjectsStepStateRepo)
 {
     _serviceProvider          = serviceProvider;
     _gameTilesRepo            = gameTilesRepo;
     _gameObjectsStepStateRepo = gameObjectsStepStateRepo;
 }
 public override void Save(IEvent eventObj)
 {
     if (eventObj is GameObjectsCreationEvent ev)
     {
         var stepId = DatabaseEventRecordingProvider.StepId;
         var items  = new List <GameObjectsStepState>();
         foreach (var gameObject in ev.GameObjects)
         {
             var objects = new List <GameObject> {
                 gameObject
             };
             var dataHolder = new GameObjectsStepState
             {
                 GameObjectId = gameObject.Id,
                 StepId       = stepId,
                 TypeName     = gameObject.GetType().Name,
                 X            = gameObject.Coordinates.X,
                 Y            = gameObject.Coordinates.Y,
                 Hp           = gameObject.Hp,
                 StatusId     = (int)gameObject.Status,
             };
             if (objects.OfType <IGrowable>().Any())
             {
                 var growable = objects.OfType <IGrowable>().Single();
                 dataHolder.CurrentAge = growable.CurrentAge;
             }
             if (objects.OfType <IGender>().Any())
             {
                 var genderObj = objects.OfType <IGender>().Single();
                 dataHolder.GenderTypeId         = (int)genderObj.GenderType;
                 dataHolder.CurrentPregnancyTime = genderObj.CurrentPregnancyTime;
                 dataHolder.IsPregnant           = genderObj.IsPregnant;
             }
             items.Add(dataHolder);
         }
         GameObjectsStepStateRepo.Create(items);
     }
     else
     {
         throw new InvalidDataException($"{eventObj} is invalid event");
     }
 }
Ejemplo n.º 3
0
 public GettingPregnantSaver(LifeGameDBContext context, StepsRepo stepsRepo, EventsRepo eventsRepo,
                             GameObjectsStepStateRepo gameObjectsStepStateRepo) : base(context, stepsRepo, eventsRepo, gameObjectsStepStateRepo)
 {
 }
Ejemplo n.º 4
0
 public ReproductionSaver(LifeGameDBContext context, StepsRepo stepsRepo, EventsRepo eventsRepo,
                          GameObjectsStepStateRepo gameObjectsStepStateRepo) : base(context, stepsRepo, eventsRepo, gameObjectsStepStateRepo)
 {
 }
Ejemplo n.º 5
0
 public GivingBirthSaver(LifeGameDBContext context, StepsRepo stepsRepo, EventsRepo eventsRepo,
                         GameObjectsStepStateRepo gameObjectsStepStateRepo) : base(context, stepsRepo, eventsRepo, gameObjectsStepStateRepo)
 {
 }
Ejemplo n.º 6
0
 public PregnancyProgressionSaver(LifeGameDBContext context, StepsRepo stepsRepo, EventsRepo eventsRepo,
                                  GameObjectsStepStateRepo gameObjectsStepStateRepo) : base(context, stepsRepo, eventsRepo, gameObjectsStepStateRepo)
 {
 }
Ejemplo n.º 7
0
 protected ActionEventSaver(LifeGameDBContext context, StepsRepo stepsRepo, EventsRepo eventsRepo,
                            GameObjectsStepStateRepo gameObjectsStepStateRepo) : base(context, stepsRepo)
 {
     EventsRepo = eventsRepo;
     GameObjectsStepStateRepo = gameObjectsStepStateRepo;
 }