Example #1
0
        public TimeChangeRemoval ChangeTime(ChangeTimeDto changeTimeDto)
        {
            TimeChangeRemoval actionsToRemove = Round.ChangeTime(new ChangeCharacterTimeDto
            {
                TimeUnit  = changeTimeDto.TimeLimitUnit,
                Bonus     = _bonusDto,
                TargetHit = changeTimeDto.HitTarget
            });

            return(actionsToRemove);
        }
        private void ChangeTimeCleanDb(TimeChangeRemoval actionsToRemove)
        {
            if (actionsToRemove == null)
            {
                return;
            }
            if (actionsToRemove.DeaktivatedAbilities != null)
            {
                var rabIds  = actionsToRemove.DeaktivatedAbilities.Select(x => x.ID).ToList();
                var tlupIds =
                    actionsToRemove.DeaktivatedAbilities.Select(x => x.ActiveTime.Select(y => y.ID))
                    .SelectMany(x => x)
                    .ToList();

                foreach (var id in tlupIds)
                {
                    Context.Delete <TimeLimitUnitParsed>(id);
                }
                foreach (var id in rabIds)
                {
                    Context.Delete <RoundActivateAbilities>(id);
                }
            }
            if (actionsToRemove.UsedActions != null)
            {
                var rabIds = actionsToRemove.UsedActions.Select(x => x.ID).ToList();
                foreach (var id in rabIds)
                {
                    Context.Delete <RoundActionTaken>(id);
                }
            }
            if (actionsToRemove.DeaktivatedConditions != null)
            {
                var rabIds = actionsToRemove.DeaktivatedConditions.Select(x => x.ID).ToList();
                foreach (var id in rabIds)
                {
                    Context.Delete <RoundActivateConditions>(id);
                }
            }
            if (actionsToRemove.DamagesToRemove != null)
            {
                foreach (var dmg in actionsToRemove.DamagesToRemove)
                {
                    Context.Delete <DamageTaken>(dmg.ID);
                }
            }

            //TODO: heal skal ikke tage sig af at slette dmg historik. Det skal køres af changetime. PT virker heal fra crystal ikke til fuld health.
        }