public MonsterPerson([NotNull] IMonsterScheme scheme) { Scheme = scheme ?? throw new ArgumentNullException(nameof(scheme)); Hp = scheme.Hp; TacticalActCarrier = new TacticalActCarrier { Acts = new ITacticalAct[] { new MonsterTacticalAct(scheme.PrimaryAct) } }; var defenses = scheme.Defense?.Defenses? .Select(x => new PersonDefenceItem(x.Type, x.Level)) .ToArray(); CombatStats = new CombatStats { DefenceStats = new PersonDefenceStats( defenses ?? new PersonDefenceItem[0], new PersonArmorItem[0]) }; Survival = new MonsterSurvivalData(scheme); Effects = new EffectCollection(); }
public IPerson Create(IMonsterScheme monsterScheme) { var monsterPerson = new MonsterPerson(monsterScheme); var Acts = new ITacticalAct[] { new MonsterTacticalAct(monsterScheme.PrimaryAct) }; var combaActModule = new MonsterCombatActModule(Acts); monsterPerson.AddModule(combaActModule); var defenses = monsterScheme.Defense?.Defenses? .Select(x => new PersonDefenceItem(x.Type, x.Level)) .ToArray(); var defenceStats = new PersonDefenceStats( defenses ?? Array.Empty <PersonDefenceItem>(), Array.Empty <PersonArmorItem>()); var combatStatsModule = new MonsterCombatStatsModule(defenceStats); monsterPerson.AddModule(combatStatsModule); var survivalModule = new MonsterSurvivalModule(monsterScheme); monsterPerson.AddModule(survivalModule); var diseaseModule = new MonsterDiseaseModule(); monsterPerson.AddModule(diseaseModule); return(monsterPerson); }
public MonsterSurvivalModule([NotNull] IMonsterScheme monsterScheme) : base(GetStats(monsterScheme)) { if (monsterScheme == null) { throw new ArgumentNullException(nameof(monsterScheme)); } }
private IActor CreateMonster(IActorManager actorManager, IMonsterScheme monsterScheme, IGraphNode startNode, IBotPlayer botPlayer) { var person = _monsterFactory.Create(monsterScheme); var actor = new Actor(person, botPlayer, startNode); actorManager.Add(actor); return(actor); }
private IActor CreateMonster(IMonsterScheme monsterScheme, IMapNode startNode, IBotPlayer botPlayer) { var person = new MonsterPerson(monsterScheme); var actor = new Actor(person, botPlayer, startNode); _actorManager.Add(actor); return(actor); }
private IActor CreateMonster(IActorManager actorManager, IMonsterScheme monsterScheme, IGraphNode startNode, IActorTaskSource <ISectorTaskSourceContext> actorTaskSource) { var person = _monsterFactory.Create(monsterScheme); var actor = new Actor(person, actorTaskSource, startNode); actorManager.Add(actor); return(actor); }
private IActor CreateMonsterActor([NotNull] IBotPlayer player, [NotNull] IMonsterScheme monsterScheme, [NotNull] IMapNode startNode) { var monsterPerson = new MonsterPerson(monsterScheme); var actor = new Actor(monsterPerson, player, startNode); return(actor); }
private IActor CreateMonsterActor([NotNull] IMonsterScheme monsterScheme, [NotNull] IGraphNode startNode) { var monsterFactory = ServiceProvider.GetRequiredService <IMonsterPersonFactory>(); var taskSource = ServiceProvider.GetRequiredService <MonsterBotActorTaskSource <ISectorTaskSourceContext> >(); var monsterPerson = monsterFactory.Create(monsterScheme); var actor = new Actor(monsterPerson, taskSource, startNode); return(actor); }
private IActor CreateMonsterActor([NotNull] IBotPlayer player, [NotNull] IMonsterScheme monsterScheme, [NotNull] IMapNode startNode) { var survivalRandomSource = Container.GetInstance <ISurvivalRandomSource>(); var monsterPerson = new MonsterPerson(monsterScheme); var actor = new Actor(monsterPerson, player, startNode); return(actor); }
public IPerson Create(IMonsterScheme monsterScheme) { var monsterPerson = new MonsterPerson(monsterScheme); if (MonsterIdentifierGenerator != null) { monsterPerson.Id = MonsterIdentifierGenerator.GetNewId(); } var movingModule = new MonsterMovingModule(monsterScheme); monsterPerson.AddModule(movingModule); if (monsterScheme?.PrimaryAct is null) { throw new InvalidOperationException(); } var Acts = new ITacticalAct[] { new MonsterTacticalAct(monsterScheme.PrimaryAct) }; var combaActModule = new MonsterCombatActModule(Acts); monsterPerson.AddModule(combaActModule); var defenses = monsterScheme.Defense?.Defenses? .Where(x => x != null) .Select(x => x !) .Select(x => new PersonDefenceItem(x.Type, x.Level)) .ToArray(); var defenceStats = new PersonDefenceStats( defenses ?? Array.Empty <PersonDefenceItem>(), Array.Empty <PersonArmorItem>()); var combatStatsModule = new MonsterCombatStatsModule(defenceStats); monsterPerson.AddModule(combatStatsModule); var survivalModule = new MonsterSurvivalModule(monsterScheme); monsterPerson.AddModule(survivalModule); var diseaseModule = new MonsterDiseaseModule(); monsterPerson.AddModule(diseaseModule); return(monsterPerson); }
private static SurvivalStat[] GetStats([NotNull] IMonsterScheme monsterScheme) { if (monsterScheme is null) { throw new ArgumentNullException(nameof(monsterScheme)); } return(new[] { new SurvivalStat(monsterScheme.Hp, 0, monsterScheme.Hp) { Type = SurvivalStatType.Health } }); }
public MonsterSurvivalData([NotNull] IMonsterScheme monsterScheme) { if (monsterScheme == null) { throw new ArgumentNullException(nameof(monsterScheme)); } Stats = new[] { new SurvivalStat(monsterScheme.Hp, 0, monsterScheme.Hp) { Type = SurvivalStatType.Health } }; }
private IDropTableScheme[] GetMonsterDropTables(IMonsterScheme monsterScheme) { if (monsterScheme.DropTableSids == null) { return(new IDropTableScheme[0]); } var dropTableCount = monsterScheme.DropTableSids.Length; var schemes = new IDropTableScheme[dropTableCount]; for (var i = 0; i < dropTableCount; i++) { var sid = monsterScheme.DropTableSids[i]; schemes[i] = _schemeService.GetScheme <IDropTableScheme>(sid); } return(schemes); }
private IDropTableScheme[] GetMonsterDropTables(IMonsterScheme monsterScheme) { if (monsterScheme.DropTableSids == null) { return(Array.Empty <IDropTableScheme>()); } var dropTableCount = monsterScheme.DropTableSids.Length; var schemes = new IDropTableScheme[dropTableCount]; for (var i = 0; i < dropTableCount; i++) { var sid = monsterScheme.DropTableSids[i]; if (sid is null) { throw new InvalidOperationException(); } schemes[i] = _schemeService.GetScheme <IDropTableScheme>(sid); } return(schemes); }
public MonsterPerson([NotNull] IMonsterScheme scheme) : base(Fractions.MonsterFraction) { Scheme = scheme ?? throw new ArgumentNullException(nameof(scheme)); }
public MonsterMovingModule(IMonsterScheme monsterScheme) { _monsterScheme = monsterScheme ?? throw new ArgumentNullException(nameof(monsterScheme)); }