public void Craftsman_Build_Armor() { DateTime start = DateTime.Now; IResult result = craftsman.Build(npc.Object, pc.Object, AvalableItemPosition.Feet, 1, "keyword", "sentenceDescription", "shortDescription", "lookDescription", "examineDescription"); Assert.IsFalse(result.AllowAnotherCommand); Assert.AreEqual("", result.ResultMessage); Assert.AreEqual(1, craftsmanObjects.Count); ICraftsmanObject craftsmanObject = craftsmanObjects[0]; IArmor item = craftsmanObject.Item as IArmor; Assert.IsNotNull(item); Assert.AreEqual(AvalableItemPosition.Feet, item.ItemPosition); Assert.AreEqual(1, item.Level); Assert.AreEqual(1, item.KeyWords.Count); Assert.AreEqual("keyword", item.KeyWords[0]); Assert.AreEqual("sentenceDescription", item.SentenceDescription); Assert.AreEqual("shortDescription", item.ShortDescription); Assert.AreEqual("lookDescription", item.LookDescription); Assert.AreEqual("examineDescription", item.ExamineDescription); Assert.AreEqual(1, craftsmanObject.CraftsmanId.Zone); Assert.AreEqual(2, craftsmanObject.CraftsmanId.Id); DateTime end = DateTime.Now; Assert.IsTrue(start.AddMinutes(1) <= craftsmanObject.Completion); Assert.IsTrue(end.AddMinutes(1) >= craftsmanObject.Completion); }
public void Craftsman_Build_Held() { DateTime start = DateTime.Now; IResult result = craftsman.Build(npc.Object, pc.Object, AvalableItemPosition.Held, 1, "keyword", "sentenceDescription", "shortDescription", "longDescription", "examineDescription"); Assert.IsTrue(result.ResultSuccess); Assert.AreEqual("", result.ResultMessage); Assert.AreEqual(1, craftsmanObjects.Count); ICraftsmanObject craftsmanObject = craftsmanObjects[0]; IEquipment item = craftsmanObject.Item as IEquipment; Assert.IsNotNull(item); Assert.AreEqual(AvalableItemPosition.Held, item.ItemPosition); Assert.AreEqual(1, item.Level); Assert.AreEqual(1, item.KeyWords.Count); Assert.AreEqual("keyword", item.KeyWords[0]); Assert.AreEqual("sentenceDescription", item.SentenceDescription); Assert.AreEqual("shortDescription", item.ShortDescription); Assert.AreEqual("longDescription", item.LongDescription); Assert.AreEqual("examineDescription", item.ExamineDescription); Assert.AreEqual(1, craftsmanObject.CraftsmanId.Zone); Assert.AreEqual(2, craftsmanObject.CraftsmanId.Id); DateTime end = DateTime.Now; Assert.IsTrue(start.AddMinutes(1) <= craftsmanObject.Completion); Assert.IsTrue(end.AddMinutes(1) >= craftsmanObject.Completion); }
public IResult PerformCommand(IMobileObject performer, ICommand command) { IPlayerCharacter pc = performer as IPlayerCharacter; if (pc == null) { return(new Result(false, "Only player characters can receive.")); } Tuple <INonPlayerCharacter, ICraftsman> foundCraftsman = null; foreach (INonPlayerCharacter npc in performer.Room.NonPlayerCharacters) { foreach (IPersonality personality in npc.Personalities) { ICraftsman craftsman = personality as ICraftsman; if (craftsman != null) { foundCraftsman = new Tuple <INonPlayerCharacter, ICraftsman>(npc, craftsman); break; } } if (foundCraftsman != null) { break; } } if (foundCraftsman == null) { return(new Result(false, "No craftsman found at this location.")); } bool foundItem = false; for (int i = pc.CraftsmanObjects.Count - 1; i >= 0; i--) { ICraftsmanObject craftsmanObject = pc.CraftsmanObjects[i]; if (craftsmanObject.CraftsmanId.Zone == foundCraftsman.Item1.Zone && craftsmanObject.CraftsmanId.Id == foundCraftsman.Item1.Id && craftsmanObject.Completion < DateTime.Now) { pc.Items.Add(craftsmanObject.Item); pc.CraftsmanObjects.RemoveAt(i); foundCraftsman.Item1.EnqueueCommand($"Tell {pc.KeyWords[0]} As promised, here is your {craftsmanObject.Item.KeyWords[0]}."); foundItem = true; } } if (foundItem) { return(new Result(true, "")); } else { foundCraftsman.Item1.EnqueueCommand($"Tell {pc.KeyWords[0]} Sorry I don't have anything for you to pick up at this time."); return(new Result(false, "")); } }
public void Craftsman_Build_Weapon() { DateTime start = DateTime.Now; IResult result = craftsman.Build(npc.Object, pc.Object, AvalableItemPosition.Wield, 1, "keyword", "sentenceDescription", "shortDescription", "lookDescription", "examineDescription", DamageType.Pierce); Assert.IsFalse(result.AllowAnotherCommand); Assert.AreEqual("", result.ResultMessage); Assert.AreEqual(1, craftsmanObjects.Count); ICraftsmanObject craftsmanObject = craftsmanObjects[0]; IWeapon item = craftsmanObject.Item as IWeapon; Assert.IsNotNull(item); Assert.AreEqual(AvalableItemPosition.Wield, item.ItemPosition); Assert.AreEqual(1, item.Level); Assert.AreEqual(1, item.KeyWords.Count); Assert.AreEqual("keyword", item.KeyWords[0]); Assert.AreEqual("sentenceDescription", item.SentenceDescription); Assert.AreEqual("shortDescription", item.ShortDescription); Assert.AreEqual("lookDescription", item.LookDescription); Assert.AreEqual("examineDescription", item.ExamineDescription); Assert.AreEqual(1, craftsmanObject.CraftsmanId.Zone); Assert.AreEqual(2, craftsmanObject.CraftsmanId.Id); DateTime end = DateTime.Now; Assert.IsTrue(start.AddMinutes(1) <= craftsmanObject.Completion); Assert.IsTrue(end.AddMinutes(1) >= craftsmanObject.Completion); IDamage damage = new Objects.Damage.Damage(GlobalReference.GlobalValues.DefaultValues.DiceForWeaponLevel(item.Level)); Assert.AreEqual(1, item.DamageList.Count); IDamage itemDamge = item.DamageList[0]; Assert.AreEqual(damage.BonusDamageStat, itemDamge.BonusDamageStat); Assert.AreEqual(damage.BonusDefenseStat, itemDamge.BonusDefenseStat); Assert.AreEqual(damage.Dice.Die, itemDamge.Dice.Die); Assert.AreEqual(damage.Dice.Sides, itemDamge.Dice.Sides); Assert.AreEqual(DamageType.Pierce, itemDamge.Type); }