コード例 #1
0
        public async Task ResetSkillCountAsync()
        {
            _skillUseService.Reset();
            CurrentSkillCollection.Clear();
            SkillUseCollection.Clear();

            await UpdateSkillTextAsync();
        }
コード例 #2
0
        private async void _skillUseService_SkillCountIncremented(object sender, SkillUsedEventArgs e)
        {
            AddSkillIfNotExists(e.UsedSkill);

            var skillCount = CurrentSkillCollection.FirstOrDefault(x => x.SkillName == e.UsedSkill.Name);

            if (skillCount != null)
            {
                skillCount.Increment();

                await UpdateSkillTextAsync();
            }

            SkillUseCollection.Add(new SkillUseEntity()
            {
                UseDate        = DateTime.Now,
                SkillName      = e.UsedSkill.Name,
                SkillShortName = e.UsedSkill.ShortName,
            });
        }
コード例 #3
0
        private bool AddSkillIfNotExists(Skill s)
        {
            if (CurrentSkillCollection.Any(x => x.SkillName == s.Name))
            {
                return(false);
            }

            if (!s.IsEmpty())
            {
                WorkName.Value = s.WorkName;
            }

            CurrentSkillCollection.Add(new SkillCountDetailEntity()
            {
                SkillName      = s.Name,
                SkillShortName = s.ShortName,
                WorkName       = s.WorkName,
            });

            return(true);
        }
コード例 #4
0
        private async Task SaveSkillCountAsync()
        {
            if (!CurrentSkillCollection.Any())
            {
                return;
            }

            var entity = new SkillCountEntity()
            {
                RecordDate       = DateTime.Now,
                MapName          = MapName.Value,
                WorkName         = WorkName.Value,
                Details          = CurrentSkillCollection.ToList(),
                SkillUseHitories = SkillUseCollection.ToList()
            };

            await _skillCountRepository.SaveAsync(entity);

            // 履歴に追加
            SkillCountHistories.AddOnScheduler(entity);

            // スキル使用履歴を
            SkillUseCollection.Clear();
        }
コード例 #5
0
        private async void _skillUseService_SkillsUpdated(object sender, SkillsUpdatedEventArgs e)
        {
            var skills        = e.Skills;
            var requireUpdate = false;

            if (skills != null && skills.Where(x => !x.IsEmpty()).Any())
            {
                // 職が変更されていればスキル一覧をクリア
                if (skills.Where(x => !x.IsEmpty()).FirstOrDefault().WorkName != WorkName.Value)
                {
                    CurrentSkillCollection.Clear();
                }

                foreach (var s in skills.Where(x => !x.IsEmpty()))
                {
                    requireUpdate = AddSkillIfNotExists(s);
                }
            }

            if (requireUpdate)
            {
                await UpdateSkillTextAsync();
            }
        }