private Fight SetupNewFight(out CharacterTracker charTracker) { var charResolver = new CharacterResolver(); charTracker = new CharacterTracker(YouAre, charResolver); return(new Fight(YouAre, charResolver)); }
public void AddPCGetPC() { var k = new Character("Khadaji"); var cr = new CharacterResolver(); cr.SetPlayer(k); Assert.AreEqual(CharacterResolver.Type.Player, cr.WhichType(k)); Assert.AreEqual(CharacterResolver.Type.Player, cr.WhichType("Khadaji")); }
public void PlayerStickyResistsOverrideToMercenary() { var cr = new CharacterResolver(); cr.SetPlayer("Bob", true); cr.SetMercenary("Bob"); Assert.AreEqual(CharacterResolver.Type.Player, cr.WhichType("Bob")); }
public void PlayerNonStickyGetsChangedToMercenary() { var cr = new CharacterResolver(); cr.SetPlayer("Bob"); cr.SetMercenary("Bob"); Assert.AreEqual(CharacterResolver.Type.Mercenary, cr.WhichType("Bob")); }
public void PlayerNotOverwrittenByMercenary() { var cr = new CharacterResolver(); cr.SetPlayer("Bob"); cr.SetMercenary("Bob", overwrite: false); Assert.AreEqual(CharacterResolver.Type.Player, cr.WhichType("Bob")); }
public void WillNotChoseNonOwnedSkill() { CharacterBehavior characterBehavior = CreateTestsBehavior(new BehaviorSkill[] { new BehaviorSkill("Heal"), new BehaviorSkill("Damage") }); GameState state = CreateTestState(new Skill[] { Factory.DamageSkill }); TargettedSkill targettedSkill = characterBehavior.Act(state, CharacterResolver.Create(state.Party[0], state)); Assert.Equal("Damage", targettedSkill.Skill.CosmeticName); }
public void MercenaryOverridesPlayer() { var cr = new CharacterResolver(); cr.SetPlayer("Bob"); cr.SetMercenary("Bob"); Assert.AreEqual(CharacterResolver.Type.Mercenary, cr.WhichType("Bob")); }
public void PetOverridesPlayer() { var cr = new CharacterResolver(); cr.SetPlayer("Bob"); cr.SetPet("Bob"); Assert.AreEqual(CharacterResolver.Type.Pet, cr.WhichType("Bob")); }
public void AddNameToMultipleListsGetBackWhichShouldNotBeAllowed() { var cr = new CharacterResolver(); cr.SetMercenary("Bob"); cr.SetNonPlayer("Bob"); // Should this fail? Exception or silent? I prefer no exception Assert.AreEqual(CharacterResolver.Type.Mercenary, cr.WhichType("Bob")); }
public void WillChooseReasonableDamageTarget() { CharacterBehavior characterBehavior = CreateTestsBehavior(new BehaviorSkill[] { new BehaviorSkill("Damage") }); GameState state = CreateMultiTargetTestState(new Skill[] { Factory.DamageSkill }); TargettedSkill targettedSkill = characterBehavior.Act(state, CharacterResolver.Create(state.Party[0], state)); Assert.Equal("Damage", targettedSkill.Skill.CosmeticName); Assert.Equal(state.Party[0].ID, targettedSkill.TargetInfo.InvokerID); Assert.Equal(state.Enemies[1].ID, targettedSkill.TargetInfo.TargetID); }
public void AcceptsSkillWithCosmeticName() { CharacterBehavior characterBehavior = CreateTestsBehavior(new BehaviorSkill[] { new BehaviorSkill("Damage") }); GameState state = CreateMultiTargetTestState(new Skill[] { new Skill(IDs.Next(), "Scratch", "Damage", Factory.DamageAction, true, 0, 0) }); TargettedSkill targettedSkill = characterBehavior.Act(state, CharacterResolver.Create(state.Party[0], state)); Assert.Equal("Scratch", targettedSkill.Skill.CosmeticName); Assert.Equal("Damage", targettedSkill.Skill.SkillName); Assert.Equal(state.Party[0].ID, targettedSkill.TargetInfo.InvokerID); Assert.Equal(state.Enemies[1].ID, targettedSkill.TargetInfo.TargetID); }
public string Beautify(string input, Language from, Language to) { var output = new StringBuilder(); var characterResolver = new CharacterResolver(from, to); foreach (var character in input) { var beautyCharacter = characterResolver.Resolve(character); output.Append(beautyCharacter); } return(output.ToString()); }
public void WillOverrideWhenCondition() { CharacterBehavior characterBehavior = CreateTestsBehavior(new BehaviorSkill[] { new BehaviorSkill("Damage"), new BehaviorSkill("Heal", GameCondition.PartyHealthLow) }); GameState state = CreateTestState(new Skill[] { Factory.DamageSkill, Factory.HealSkill }); state = state.UpdateCharacter(state.Party[0].WithHealth(new Health(1, 10))); TargettedSkill targettedSkill = characterBehavior.Act(state, CharacterResolver.Create(state.Party[0], state)); Assert.Equal("Heal", targettedSkill.Skill.CosmeticName); Assert.Equal(state.Party[0].ID, targettedSkill.TargetInfo.InvokerID); Assert.Equal(state.Party[0].ID, targettedSkill.TargetInfo.TargetID); }
public void AddVarietyOfNamesGetThemBackCorrectly() { var cr = new CharacterResolver(); cr.SetPlayer("Khadaji"); cr.SetMercenary("Movanna"); cr.SetPet("Khadaji`s pet"); cr.SetPet("Jabantik"); cr.SetNonPlayer("Gomphus"); Assert.AreEqual(CharacterResolver.Type.Player, cr.WhichType("Khadaji")); Assert.AreEqual(CharacterResolver.Type.Mercenary, cr.WhichType("Movanna")); Assert.AreEqual(CharacterResolver.Type.Pet, cr.WhichType("Khadaji`s pet")); Assert.AreEqual(CharacterResolver.Type.Pet, cr.WhichType("Jabantik")); Assert.AreEqual(CharacterResolver.Type.NonPlayerCharacter, cr.WhichType("Gomphus")); }
public void WillChooseFirstAvailableSkill() { CharacterBehavior characterBehavior = CreateTestsBehavior(new BehaviorSkill [] { new BehaviorSkill("Damage"), new BehaviorSkill("Heal") }); GameState state = CreateTestState(new Skill [] { Factory.DamageSkill, Factory.HealSkill }); TargettedSkill targettedSkill = characterBehavior.Act(state, CharacterResolver.Create(state.Party[0], state)); Assert.Equal("Damage", targettedSkill.Skill.CosmeticName); Assert.Equal(state.Party[0].ID, targettedSkill.TargetInfo.InvokerID); Assert.Equal(state.Enemies[0].ID, targettedSkill.TargetInfo.TargetID); state = state.UpdateCharacter(state.Party[0].WithUpdatedSkill(state.Party[0].Skills[0].WithAvailable(false))); targettedSkill = characterBehavior.Act(state, CharacterResolver.Create(state.Party[0], state)); Assert.Equal("Heal", targettedSkill.Skill.CosmeticName); Assert.Equal(state.Party[0].ID, targettedSkill.TargetInfo.InvokerID); Assert.Equal(state.Party[0].ID, targettedSkill.TargetInfo.TargetID); }
public void UnknownCharacterAtStartWhenAllIsEmpty() { var cr = new CharacterResolver(); Assert.AreEqual(CharacterResolver.Type.Unknown, cr.WhichType(new Character("Khadaji"))); }
private CharacterTracker SetupNewTracker(out CharacterResolver charResolver) { charResolver = new CharacterResolver(); charResolver.SetPlayer(YouAre.Name); // This is normally done at the start of a Battle return(new CharacterTracker(YouAre, charResolver)); }
public Skirmish(YouResolver youAre, CharacterResolver charResolver) { YouAre = youAre; CharResolver = charResolver; }
public Fight(YouResolver youAre, CharacterResolver charResolver) { YouAre = youAre; CharResolver = charResolver; }