public static Bot SpawnBot( BotType botType, BotFaction faction = BotFaction.None, IPlayer player = null, PlayerTeam team = BotTeam, bool ignoreFullSpawner = false, bool triggerOnSpawn = true) { if (player == null) { player = SpawnPlayer(ignoreFullSpawner); } if (player == null) { return(null); } player.SetTeam(team); var bot = BotFactory.Create(player, botType, faction); var info = bot.Info; var weaponSet = WeaponSet.Empty; if (RandomHelper.Percentage(info.EquipWeaponChance)) { weaponSet = RandomHelper.GetItem(GetWeapons(botType)); } BotHelper.Equip(player, weaponSet); var profile = RandomHelper.GetItem(GetProfiles(botType)); player.SetProfile(profile); if (player.Name == "COM") { player.SetBotName(profile.Name); } var behaviorSet = GetBehaviorSet(info.AIType); behaviorSet.SearchItems = info.SearchItems; behaviorSet.SearchItemRange = info.SearchRange; bot.SetBotBehaviorSet(behaviorSet, true); player.SetModifiers(info.Modifiers); player.SetBotBehaviorActive(true); m_bots[player.UniqueID] = bot; // This may be updated if using setplayer command if (triggerOnSpawn) { TriggerOnSpawn(bot); } return(bot); }
public Round( int number, IBotFactory botFactory, ISettings settings, ITurnFactory turnFactory, IBattlefieldFactory battlefieldFactory) { Number = number; BotFactory = botFactory ?? throw new ArgumentNullException(nameof(botFactory)); Settings = settings ?? throw new ArgumentNullException(nameof(settings)); TurnFactory = turnFactory ?? throw new ArgumentNullException(nameof(turnFactory)); BattlefieldFactory = battlefieldFactory ?? throw new ArgumentNullException(nameof(battlefieldFactory)); Battlefield = BattlefieldFactory.Create(); Bots = BotFactory.Create(Battlefield); Battlefield.SetRandomly(Bots); }
public DialogFlowResponse Post(int eventId, [FromBody] DialogFlowRequest request) { var bot = BotFactory.Create(eventId); return(bot.GetResponse(request)); }