/// <summary> /// コンストラクタ /// <para>ユニット名の解析に失敗すると、ユニットにKMCustomUnit1c1dを使用します。</para> /// </summary> public SelectorOfFeatureGenerator(string unitName) : base() { UnitMember unit = UnitMember.KMCustomUnit1c1d; if (unitName == UnitMember.KMCustomUnit1c1d.ToString()) { unit = UnitMember.KMCustomUnit1c1d; } if (unitName == UnitMember.KMCustomUnit2c1d.ToString()) { unit = UnitMember.KMCustomUnit2c1d; } if (unitName == UnitMember.KMCustomUnit2c1dver2.ToString()) { unit = UnitMember.KMCustomUnit2c1dver2; } if (unitName == UnitMember.KMCustomUnit3c1d.ToString()) { unit = UnitMember.KMCustomUnit3c1d; } this.id = unit; this.Log = false; this.ReadAmount = (int)Signal.FrequencyAnalysis.FFTpoint.size1024; this.MatchOnlyAtDiscrimination = false; return; }
public async Task ChangeUnitLeaderAsync( [FromRoute] uint id, [FromBody] UnitMember newLeader) { if (newLeader == null) { ErrorCode.LackOfParameterError.Throw(); } using (var repo = MainRepository.WithReadAndWrite()) { var member = await repo.Unit.GetByMemberIdAsync(this.AuthData.CharacterId); var oldUnit = member.Unit.Data; if (member.Unit.HasData && member.Member.HasData) { var unitMember = member.Member.Data; if (unitMember.Post != UnitMemberPostType.Leader) { ErrorCode.NotPermissionError.Throw(); } if (oldUnit.Id != id) { ErrorCode.NotPermissionError.Throw(); } } else { ErrorCode.UnitNotFoundError.Throw(); } var members = await repo.Unit.GetMembersAsync(id); var targetMember = members.FirstOrDefault(m => m.CharacterId == newLeader.CharacterId); if (targetMember == null) { ErrorCode.InvalidOperationError.Throw(); } if (targetMember.Post == UnitMemberPostType.Leader) { ErrorCode.MeaninglessOperationError.Throw(); } var targetChara = await repo.Character.GetByIdAsync(targetMember.CharacterId); if (!targetChara.HasData) { ErrorCode.CharacterNotFoundError.Throw(); } if (targetChara.Data.AiType != CharacterAiType.Human) { ErrorCode.InvalidOperationError.Throw(); } targetMember.Post = UnitMemberPostType.Leader; member.Member.Data.Post = UnitMemberPostType.Normal; await repo.SaveChangesAsync(); } }
public static async Task EntryAsync(MainRepository repo, uint unitId, uint charaId) { var member = new UnitMember { CharacterId = charaId, Post = UnitMemberPostType.Normal, UnitId = unitId, }; await repo.Unit.SetMemberAsync(member); }
public static async Task CreateAndSaveAsync(MainRepository repo, Unit unit, uint leaderId) { await repo.Unit.AddAsync(unit); await repo.SaveChangesAsync(); var member = new UnitMember { CharacterId = leaderId, Post = UnitMemberPostType.Leader, UnitId = unit.Id, }; await repo.Unit.SetMemberAsync(member); await repo.SaveChangesAsync(); }
public void GetUnits() { var client = new Client("knoema.com"); var unitsList = client.GetUnits().GetAwaiter().GetResult(); Assert.IsFalse(unitsList.Count() == 0); var unit = new UnitMember { Key = 1000230, Name = "Percent of potential GDP" }; Assert.AreEqual("Unit(s)", unitsList.ElementAt(0).Name); var memberKey = unitsList.FirstOrDefault(m => m.Name == unit.Name).Key; Assert.AreEqual(unit.Key, memberKey); }
/// <summary> /// コンストラクタ /// <para>ユニット名の解析に失敗すると、ユニットにKMCustomUnit1c1dを使用します。</para> /// </summary> public SelectorOfFeatureGenerator(string unitName) : base() { UnitMember unit = UnitMember.KMCustomUnit1c1d; if (unitName == UnitMember.KMCustomUnit1c1d.ToString()) unit = UnitMember.KMCustomUnit1c1d; if (unitName == UnitMember.KMCustomUnit2c1d.ToString()) unit = UnitMember.KMCustomUnit2c1d; if (unitName == UnitMember.KMCustomUnit2c1dver2.ToString()) unit = UnitMember.KMCustomUnit2c1dver2; if (unitName == UnitMember.KMCustomUnit3c1d.ToString()) unit = UnitMember.KMCustomUnit3c1d; this.id = unit; this.Log = false; this.ReadAmount = (int)Signal.FrequencyAnalysis.FFTpoint.size1024; this.MatchOnlyAtDiscrimination = false; return; }
public override async Task ExecuteAsync(MainRepository repo, Character character, IEnumerable <CharacterCommandParameter> options, CommandSystemData game) { var idParam = options.FirstOrDefault(p => p.Type == 1); var unitIdParam = options.FirstOrDefault(p => p.Type == 2); if (idParam == null || unitIdParam == null) { await game.CharacterLogAsync($"政務官を配属または転属しようとしましたが、コマンドパラメータが足りません。<emerge>管理者に連絡してください</emerge>"); return; } var id = (uint)idParam.NumberValue; var unitId = (uint)unitIdParam.NumberValue; var secretaryOptional = await repo.Character.GetByIdAsync(id); if (!secretaryOptional.HasData || secretaryOptional.Data.HasRemoved) { await game.CharacterLogAsync($"政務官を配属または転属しようとしましたが、指定した政務官は存在しないか、すでに削除されています"); return; } if (secretaryOptional.Data.CountryId != character.CountryId) { await game.CharacterLogAsync($"政務官を配属または転属しようとしましたが、指定された政務官はあなたの国のものではありません"); return; } if (!secretaryOptional.Data.AiType.IsSecretary()) { await game.CharacterLogAsync($"政務官を配属または転属しようとしましたが、指定された武将は政務官ではありません"); return; } if (secretaryOptional.Data.AiType == CharacterAiType.SecretaryUnitLeader) { await game.CharacterLogAsync($"政務官を配属または転属しようとしましたが、部隊長は部隊を変更できません"); return; } var countryOptional = await repo.Country.GetByIdAsync(character.CountryId); if (!countryOptional.HasData) { await game.CharacterLogAsync($"政務官を配属または転属しようとしましたが、あなたの国はすでに滅亡しているか無所属です"); return; } var country = countryOptional.Data; var unitOptional = await repo.Unit.GetByIdAsync(unitId); if (!unitOptional.HasData) { await game.CharacterLogAsync($"政務官を配属または転属しようとしましたが、指定された部隊は存在しません"); return; } var unit = unitOptional.Data; if (unit.CountryId != country.Id) { await game.CharacterLogAsync($"政務官を配属または転属しようとしましたが、指定された部隊はあなたの国のものではありません"); return; } var unitMember = new UnitMember { CharacterId = id, UnitId = unitId, Post = secretaryOptional.Data.AiType == CharacterAiType.SecretaryUnitGather ? UnitMemberPostType.Helper : UnitMemberPostType.Normal, }; await repo.Unit.SetMemberAsync(unitMember); character.Contribution += 30; character.AddLeadershipEx(50); character.SkillPoint++; await game.CharacterLogAsync($"政務官 <character>{secretaryOptional.Data.Name}</character> を部隊 {unit.Name} に配属しました"); }