public async Task HandleAsync_GivenNullResponseFromJikan_ShouldNotThrowAndCallJikan() { // Given const int malId = 1; var dbContext = InMemoryDbProvider.GetDbContext(); var jikanServiceBuilder = new JikanServiceBuilder().WithCharacterReturned(null); var character = new CharacterBuilder() .WithMalId(malId) .Build(); await dbContext.AddAsync(character); await dbContext.SaveChangesAsync(); var handler = CreateHandler(dbContext, jikanServiceBuilder.Build()); var command = new UpdateCharacterMessage { Id = Guid.NewGuid(), MalId = malId }; // When var action = handler.Awaiting(x => x.HandleAsync(command)); // Then using (new AssertionScope()) { await action.Should().NotThrowAsync(); jikanServiceBuilder.JikanClient.Verify(x => x.GetCharacterAsync(malId), Times.Once); } }
public async Task HandleAsync_GivenExceptionFromJikan_ShouldThrowAndCallJikan() { // Given const int malId = 1; var dbContext = InMemoryDbProvider.GetDbContext(); var jikanServiceBuilder = new JikanServiceBuilder().WithGetCharacterThrowing(); var anime = new CharacterBuilder() .WithMalId(malId) .Build(); await dbContext.AddAsync(anime); await dbContext.SaveChangesAsync(); var handler = CreateHandler(dbContext, jikanServiceBuilder.Build()); var command = new UpdateCharacterMessage { Id = Guid.NewGuid(), MalId = malId }; // When var action = handler.Awaiting(x => x.HandleAsync(command)); // Then using (new AssertionScope()) { await action.Should().ThrowExactlyAsync <JikanRequestException>(); jikanServiceBuilder.JikanClient.Verify(x => x.GetCharacterAsync(malId), Times.Once); } }
public Character construct() { builder = characterInfo.GetClassBuilder(); return(builder.SetName(characterInfo.GetName()) .SetRace(characterInfo.GetRace()) .Build()); }
public void TestBasicFight() { var attackerCharacter = new CharacterBuilder() .Attributes(new AttributesBuilder() .Health(15) .Skill(12) .Defense(2) .Special(0) .Speed(13) .Strength(7) .Build()) .Weapons("Shortsword") .Build(); var defenderCharacter = new CharacterBuilder() .Attributes(new AttributesBuilder() .Health(15) .Skill(12) .Defense(2) .Special(0) .Speed(13) .Strength(3) .Build()) .Weapons("Shortsword") .Build(); var attacker = new BaseCombatant(attackerCharacter, ArmyType.Friendly); var defender = new BaseCombatant(defenderCharacter, ArmyType.Friendly); attacker.Position = new Vector2(0, 1); defender.Position = new Vector2(0, 0); var map = new Map(); map.AddCombatant(attacker); map.AddCombatant(defender); var skillDatabase = new SkillDatabase(map); var forecaster = new FightForecaster(map, skillDatabase); var forecast = forecaster.Forecast(attacker, defender, SkillType.Melee); var finalizer = new FightFinalizer(skillDatabase); var final = finalizer.Finalize(forecast, new ConstantRandomizer(100)); var initialPhase = final.InitialPhase; Assert.NotNull(initialPhase); var initialDamage = initialPhase.Effects.GetDefenderDamage(); Assert.AreEqual(5, initialDamage); var counterPhase = final.CounterPhase; Assert.NotNull(counterPhase); var counterDamage = counterPhase.Effects.GetDefenderDamage(); Assert.AreEqual(1, counterDamage); }
void test() { CharacterBuilder builder = new CharacterBuilder(); builder.Create("name1").HP(100).MP(100); Character myCharacter = builder.Value(); }
public static void Start() { Player player = CharacterBuilder.BuildCharacter(); LineHelpers.StoryPrint("As you enter the town you a man comes up to you and asks if you are the hero they hired. You tell them no but ask what the issue is. He tells you of creatures leaving a cave to the west and a bounty of 10000 gold on a Troll Warlord in the cave.", player); Town.Enter(player); }
static void Main(string[] args) { try { //на английской версии винды выводит ? вместо кирилицы //смена кодировки фиксит проблему Console.OutputEncoding = Encoding.UTF8; CharacterBuilder characterBuilder = new CharacterBuilder(25, new Operations()); InputHelper inputHelper = new InputHelper(); Console.WriteLine("Добро пожаловать в меню выбора создания персонажа!"); Console.WriteLine("У вас есть 25 очков, которые вы можете распределить по умениям"); Console.WriteLine("Нажмите любую клавишу чтобы продолжить..."); Console.ReadKey(); while (characterBuilder.AvailablePoints > 0) { try { Console.Clear(); Console.WriteLine(characterBuilder.ToString()); Console.WriteLine("Какую характеристику вы хотите изменить?"); AbilityType abilityType = inputHelper.GetAbilityType(); Console.WriteLine(@"Что вы хотите сделать? +\-"); OperationType operationType = inputHelper.GetOperationType(); Console.WriteLine(@"Колличество поинтов которые следует {0}", operationType == OperationType.Add ? "прибавить" : "отнять"); int operandPoints = inputHelper.GetPositiveNumberWithLimit(characterBuilder.AvailablePoints); characterBuilder.SpendPonts(operandPoints, operationType, abilityType); } catch (Exception e) { Console.WriteLine($"Ошибка при распределении очков: {e.Message}"); } } Console.WriteLine("Вы распределили все очки. Введите возраст персонажа:"); Character character = characterBuilder.Build(inputHelper.GetPositiveNumber()); Console.Clear(); Console.WriteLine(character.ToString()); } catch (Exception e) { Console.WriteLine($"Произошла ошибка: {e.Message}"); } Console.ReadKey(); }
private void SpawnCustomChatacters() { CharacterBuilder builer = new CharacterBuilder(this); if (_ff9.fldMapNo == 102) { builer.Spawn(new MyCharacter()); } }
public void ConstructCharacter(CharacterBuilder builder) { builder.BuildArms(); builder.BuildBody(); builder.BuildHead(); builder.BuildLegs(); builder.BuildHair(); builder.BuildBreasts(); }
void EnterName(string name) { var player = new CharacterBuilder() .Name.Is(name) .Attributes.StrenghtIs(6) .Attributes.MaxHealthIs(10); var career = new Career(player); GameManager.Career = career; GameManager.EnterState(new Town(GameManager)); }
public Career(Character player = null) { if (player == null) { player = new CharacterBuilder() .Name.IsRandom() .Attributes.StrenghtIs(6) .MaxHealthIs(10); } Player = player; }
protected override IEnumerator CharacterBuilder_BuildCharacter() { yield return(new WaitForSeconds(0f)); var isNetworked = false; #if !(UNITY_4_6 || UNITY_5_0) isNetworked = m_IsNetworked; #endif spawnedGameObject.AddComponent <AnimatorMonitor>(); CharacterBuilder.BuildHumanoidCharacter(spawnedGameObject, m_AIAgent, isNetworked, m_MovementType, m_AnimatorController, m_MaxFrictionMaterial, m_FrictionlessMaterial); }
public TradeEngine(MapService mapService, string dataPath) { MapService = mapService; var file = new FileInfo(Path.Combine(dataPath, DataFileName)); var converter = new XmlSerializer(typeof(TradeGoods)); using (var stream = file.OpenRead()) m_TradeGoods = ((TradeGoods)converter.Deserialize(stream)).TradeGood.ToImmutableList(); m_LegalTradeGoods = m_TradeGoods.Where(g => g.Legal).ToImmutableList(); m_CharacterBuilder = new CharacterBuilder(dataPath); }
public async Task Get_characters_query_handler_should_return_list_of_episodes() { // Arrange var characters = new CharacterBuilder().Generate(10).SaveChanges(_testFixture.Context).Build(); var queryHandler = new GetCharactersQueryHandler(_testFixture.Context, _testFixture.Mapper); // Act var response = await queryHandler.Handle(new GetCharactersQuery(), CancellationToken.None); // Assert response.ShouldBeOfType(typeof(List <GetCharacterViewModel>)); response.Count.ShouldBe(characters.Count); }
public static void Main(string[] args) { MoveBuilder mbuilder = new MoveBuilder("res/Moves/"); CharacterBuilder cbuilder = new CharacterBuilder("res/Characters/"); cbuilder.MoveBuilder = mbuilder; Character[] pside = new Character[] { cbuilder.buildFromXml("milly.xml", new PlayerMoveProvider()) }; Character[] eside = new Character[] { cbuilder.buildFromXml("gerard.xml", new PlayerMoveProvider()) }; TurnProvider turnProvider = new TraditionalTurnProvider(); Battle b = new Battle(pside, eside, turnProvider); b.start(); }
public async Task Get_episodes_query_handler_should_return_last_page() { // Arrange var lastCharacter = new CharacterBuilder().Generate(20).SaveChanges(_testFixture.Context).Build().Last(); var queryHandler = new GetCharactersQueryHandler(_testFixture.Context, _testFixture.Mapper); // Act var response = await queryHandler.Handle(new GetCharactersQuery { PageNumber = 17, PageSize = 4 }, CancellationToken.None); // Assert response.ShouldBeOfType(typeof(List <GetCharacterViewModel>)); response.Last().Name.ShouldBe(lastCharacter.Name); }
public async Task HandleAsync_GivenManyNicknames_ShouldUpdateWithJoinedString() { // Given const int malId = 1; var nicknames = new List <string> { "Nickname 1", "Nickname 2", "Nickname 3" }; var returnedCharacter = new Character { Nicknames = nicknames }; var jikanServiceBuilder = new JikanServiceBuilder().WithCharacterReturned(returnedCharacter); var dbContext = InMemoryDbProvider.GetDbContext(); var character = new CharacterBuilder() .WithMalId(malId) .WithName("PreUpdateName") .WithAbout("PreUpdateAbout") .WithKanjiName("PreUpdateJapanese") .WithImageUrl("PreUpdateImageUrl") .WithPopularity(0) .Build(); await dbContext.AddAsync(character); await dbContext.SaveChangesAsync(); var handler = CreateHandler(dbContext, jikanServiceBuilder.Build()); var command = new UpdateCharacterMessage { Id = Guid.NewGuid(), MalId = malId }; // When await handler.HandleAsync(command); // Then var updatedCharacter = await dbContext.AnimeCharacters.FirstAsync(x => x.MalId == malId); using (new AssertionScope()) { updatedCharacter.Nicknames.Should().Be("Nickname 1;Nickname 2;Nickname 3"); jikanServiceBuilder.JikanClient.Verify(x => x.GetCharacter(malId), Times.Once); } }
public void TakeDamage() { var barrelCharacter = new CharacterBuilder() .Attributes(new AttributesBuilder() .Health(50) .Defense(0) .Build()) .Build(); var fuckingBarrel = new BaseCombatant(barrelCharacter, ArmyType.Other); var damage = new Damage(100); damage.Apply(fuckingBarrel); Assert.AreEqual(0, fuckingBarrel.Health); Assert.IsFalse(fuckingBarrel.IsAlive); }
/// <summary> /// Monster or 'enemy' entity for the game. /// </summary> /// <param name="game">Current game instance.</param> public Monster(Game game) : base(game) { //Initial values Texture = Game.Content.Load <Texture2D>("Player/blob_Characters"); SetAnimationAtlas(CharacterBuilder.BuildCharacter("Blue")); SpriteTitle.Text = "Evil Librarian"; SpriteTitle.RenderColor = Color.OrangeRed; LeftCollided += CollidedWithLeft; RightCollided += CollidedWithRight; Speed = 4; JumpHeight = 6; }
public static Character ValidateCharacter(dynamic data) { //TODO: validate and serialize data Character character = CharacterBuilder.Init() .WithName(JsonConvert.SerializeObject(data.name)) .WithStatus(JsonConvert.SerializeObject(data.status)) .SpeciesOf(JsonConvert.SerializeObject(data.species)) .OfGender(JsonConvert.SerializeObject(data.gender)) .From(JsonConvert.SerializeObject(data.origin)) .LastSeenAt(JsonConvert.SerializeObject(data.lastSeenAt)) .PlayedIn((ushort)data.episodes.Length) .Build(); return(character); }
/// <summary> /// Player object controlled by game user. /// </summary> /// <param name="game">Current game instance.</param> public Player(Game game) : base(game) { //Initial values Texture = Game.Content.Load <Texture2D>("Player/blob_Characters"); SetAnimationAtlas(CharacterBuilder.BuildCharacter("Yellow")); SpriteTitle.Text = "Tosker"; SpriteTitle.RenderColor = Color.Green; IsStatic = false; Width = 64; Height = 64; Speed = 6; JumpHeight = 8; //Delegate game object collison events BottomCollided += Landed; }
public void ToCharacterTableEntry_GivenEmptyCharacter_ShouldReturnEmptyCharacterTableEntryDto() { // Given var character = new CharacterBuilder().Build(); // When var dto = character.ToCharacterTableEntry(); // Then using (new AssertionScope()) { dto.Should().NotBeNull(); dto.ImageUrl.Should().BeEmpty(); dto.Name.Should().BeEmpty(); dto.Url.Should().NotBeEmpty(); dto.MalId.Should().Be(default);
public async Task Delete_character_command_handler_should_pass() { // Arrange var character = new CharacterBuilder().Generate().SaveChanges(_testFixture.Context).Build().First(); var command = new DeleteCharacterCommand { Id = character.Id }; var commandHandler = new DeleteCharacterCommandHandler(_testFixture.Context); // Act var response = await commandHandler.Handle(command, CancellationToken.None); // Assert response.ShouldBe(Unit.Value); character.IsActive.ShouldBe(false); }
public void TestAttackerKillsOnDouble() { var attackerCharacter = new CharacterBuilder() .Attributes(new AttributesBuilder() .Health(15) .Skill(12) .Defense(2) .Special(0) .Speed(33) .Strength(10) .Build()) .Weapons("Shortsword") .Build(); var defenderCharacter = new CharacterBuilder() .Attributes(new AttributesBuilder() .Health(15) .Skill(12) .Defense(0) .Special(0) .Speed(13) .Strength(7) .Build()) .Stats(new StatsBuilder() .ParryChance(0) .Build()) .Weapons("Shortsword") .Build(); var attacker = new BaseCombatant(attackerCharacter, ArmyType.Friendly); var defender = new BaseCombatant(defenderCharacter, ArmyType.Friendly); attacker.Position = new Vector2(0, 0); defender.Position = new Vector2(0, 1); var map = new Map(); var skillDatabase = new SkillDatabase(map); var forecaster = new FightForecaster(map, skillDatabase); var forecast = forecaster.Forecast(attacker, defender, SkillType.Melee); var finalizer = new FightFinalizer(skillDatabase); var final = finalizer.Finalize(forecast, new ConstantRandomizer(100)); Assert.NotNull(final.InitialPhase); Assert.NotNull(final.CounterPhase); Assert.NotNull(final.DoubleAttackPhase); Assert.Null(final.FlankerPhase); }
public async Task Delete_character_command_handler_should_throw_not_found_exception() { // Arrange var character = new CharacterBuilder().Generate().SaveChanges(_testFixture.Context).Build().First(); var command = new DeleteCharacterCommand { Id = character.Id + 1 }; var commandHandler = new DeleteCharacterCommandHandler(_testFixture.Context); // Act async Task Act() => await commandHandler.Handle(command, CancellationToken.None); var ex = await Record.ExceptionAsync(Act); // Assert ex.ShouldBeOfType <NotFoundException>(); }
public async Task CountAsync_GivenSingleCharacter_ShouldReturnOne() { // Given var dbContext = InMemoryDbProvider.GetDbContext(); var repository = new CharacterRepository(dbContext); var character = new CharacterBuilder().WithName("Naruto").Build(); await dbContext.AnimeCharacters.AddAsync(character); await dbContext.SaveChangesAsync(); // When var result = await repository.GetCountAsync(); // Then result.Should().Be(1); }
public async Task GetAsync_GivenExistingCharacterWithId_ShouldReturnResult() { // Given var dbContext = InMemoryDbProvider.GetDbContext(); var repository = new CharacterRepository(dbContext); var character = new CharacterBuilder().WithMalId(1).Build(); await dbContext.AnimeCharacters.AddAsync(character); await dbContext.SaveChangesAsync(); // When var result = await repository.GetAsync(1); // Then result.Should().NotBeNull(); }
protected TradeEngine(MapService mapService, string dataPath, INameService nameService) { MapService = mapService; m_NameService = nameService; var file = new FileInfo(Path.Combine(dataPath, DataFileName)); var converter = new XmlSerializer(typeof(TradeGoods)); using (var stream = file.OpenRead()) TradeGoods = ((TradeGoods)converter.Deserialize(stream)).TradeGood.ToImmutableList(); LegalTradeGoods = TradeGoods.Where(g => g.Legal).ToImmutableList(); m_CharacterBuilder = new CharacterBuilder(dataPath); var personalityFile = new FileInfo(Path.Combine(dataPath, "personality.txt")); m_Personalities = File.ReadAllLines(personalityFile.FullName).Where(x => !string.IsNullOrEmpty(x)).Distinct().ToImmutableArray(); }
public async Task Get_character_query_handler_should_throw_not_found_exception() { // Arrange var character = new CharacterBuilder().Generate().Build().First(); var query = new GetCharacterQuery { Id = character.Id + 1 }; var queryHandler = new GetCharacterQueryHandler(_testFixture.Context, _testFixture.Mapper); // Act async Task Act() => await queryHandler.Handle(query, CancellationToken.None); var ex = await Record.ExceptionAsync(Act); // Assert ex.ShouldBeOfType <NotFoundException>(); }
public async Task Create_character_command_validator_should_return_unique_name_validation_error() { // Arrange var episode = new EpisodeBuilder().Generate().SaveChanges(_testFixture.Context).Build().First(); var character = new CharacterBuilder().Generate().SaveChanges(_testFixture.Context).Build().First(); var command = new CreateCharacterCommand { EpisodesIds = new[] { episode.Id }, Name = character.Name, FriendsIds = new int[] { } }; var validator = new CreateCharacterCommandValidator(_testFixture.Context); // Act var validationResult = await validator.ValidateAsync(command); // Assert validationResult.Errors.Count.ShouldBe(1); validationResult.Errors.First().ErrorCode.ShouldBe("PredicateValidator"); validationResult.Errors.First().ErrorMessage.ShouldBe("The character name has to be unique"); }
public void SetUp() { builder = new CharacterBuilder(); }
/// <summary> /// 登場人物Viewを初期化する /// </summary> /// <param name="view">View</param> public void Initialize(CharacterBuilder view) { _view = view; _searchWord = ""; _view.SearchWordBox.Text = ""; GetFilteredCollection(); _view.BindData(this); if (CharacterModelCollection.Count() >= 1) { SelectingIndex = -1; SelectingIndex = 0; } else { SelectingIndex = -1; } }