private void ProcessAttackBySpecifiedWeapons(IJob job, List <IJob> modifiedJobs, AttackActorJobData jobData) { Debug.Assert(jobData.WeaponTags.Any(), "Должно быть указано не менее одного тега."); if (jobData.WeaponTags is null) { return; } if (!jobData.WeaponTags.Any()) { return; } var weaponHasAllTags = true; foreach (var tag in jobData.WeaponTags) { Debug.Assert(!string.IsNullOrWhiteSpace(tag), "Теги не могут быть пустыми."); if (string.IsNullOrWhiteSpace(tag)) { continue; } var weaponHasTag = WeaponHasTag(tag, _tacticalAct); if (!weaponHasTag) { weaponHasAllTags = false; break; } } if (weaponHasAllTags) { AddProgress(job, modifiedJobs); } }
private void ProcessAttackToSpecifiedMonster(IJob job, List <IJob> modifiedJobs, AttackActorJobData jobData) { Debug.Assert(jobData.WeaponTags.Any(), "Должно быть указано не менее одного тега."); if (!jobData.MonsterTags.Any()) { return; } var monsterHasAllTags = true; foreach (var tag in jobData.WeaponTags) { Debug.Assert(!string.IsNullOrWhiteSpace(tag), "Теги не могут быть пустыми."); if (string.IsNullOrWhiteSpace(tag)) { continue; } var actorHasTag = ActorHasTag(tag, _targetActor); if (!actorHasTag) { monsterHasAllTags = false; break; } } if (monsterHasAllTags) { AddProgress(job, modifiedJobs); } }