Exemple #1
0
        private void SetTheCurrentMonsterForTheCurrentLocation(Location location, TTS tts)
        {
            // Populate the current monster with this location's monster (or null, if there is no monster here)
            CurrentMonster = location.NewInstanceOfMonsterLivingHere();

            if (CurrentMonster != null)
            {
                RaiseMessage("Tu vês " + CheckMonsterGender(CurrentMonster.Name, 1) + " " + CurrentMonster.Name + ".");
                if (text != "")
                {
                    tts.Speak(text + " e vês " + CheckMonsterGender(CurrentMonster.Name, 1) + " " + CurrentMonster.Name + ".");
                    text = "";
                }
                else
                {
                    tts.Speak("Tu vês " + CheckMonsterGender(CurrentMonster.Name, 1) + " " + CurrentMonster.Name + ".");
                }
            }
            else
            {
                if (text != "")
                {
                    tts.Speak(text);
                    text = "";
                }
            }
        }
Exemple #2
0
        private void GivePlayerQuestRewards(Quest quest, TTS tts)
        {
            RaiseMessage("");
            RaiseMessage("Completaste a missão '" + quest.Name + "'!");
            RaiseMessage("Recompensa: ");
            RaiseMessage(quest.RewardExperiencePoints + " pontos de experiência.");
            RaiseMessage(quest.RewardGold + " moedas de ouro");
            RaiseMessage(quest.RewardItem.Name, true);

            AddExperiencePoints(quest.RewardExperiencePoints);
            Gold += quest.RewardGold;

            RemoveQuestCompletionItems(quest);
            AddItemToInventory(quest.RewardItem);

            MarkPlayerQuestCompleted(quest);
            if (quest.RewardItem == null)
            {
                tts.Speak(text + " e completáste a missão '" + quest.Name + "'!" + "\n" + " Gánháste " + quest.RewardExperiencePoints + " pontos de experiência, " + quest.RewardGold + " moedas de ouro.");
            }
            else
            {
                tts.Speak(text + " e completáste a missão '" + quest.Name + "'!" + "\n" + " Gánháste " + quest.RewardExperiencePoints + " pontos de experiência, " + quest.RewardGold + " moedas de ouro e o item: " + quest.RewardItem.Name + ".");
            }
            text = "";
        }
Exemple #3
0
        public void UseWeapon(Weapon weapon, TTS tts)
        {
            int damage = RandomNumberGenerator.NumberBetween(weapon.MinimumDamage, weapon.MaximumDamage);

            if (damage == 0)
            {
                text = "Falháste o ataque. ";
                RaiseMessage("Falhaste o ataque.");

                // Place AttackMiss sound
                PlayAudio("AttackMiss", DisableAudio);
            }
            else
            {
                CurrentMonster.CurrentHitPoints -= damage;
                RaiseMessage("Acertaste! Tiraste " + damage + " pontos de vida. ");
                text = "Acertáste! Tiráste " + damage + " pontos de vida. ";
                if (damage == 1)
                {
                    text = "Acertáste! Tiráste " + damage + " ponto de vida. ";
                }

                // Place SwordHit or ClubHit sound

                if (CurrentWeapon.ID == World.ITEM_ID_RUSTY_SWORD)
                {
                    PlayAudio("SwordHit", DisableAudio);
                }
                else if (CurrentWeapon.ID == World.ITEM_ID_CLUB)
                {
                    PlayAudio("ClubHit", DisableAudio);
                }
            }

            if (CurrentMonster.IsDead)
            {
                RaiseMessage("");
                RaiseMessage("Mataste o monstro!");

                // Place MonsterPain sound based on weapon used
                if (CurrentWeapon.ID == World.ITEM_ID_RUSTY_SWORD)
                {
                    PlayAudio("MonsterPainSword", DisableAudio);
                }
                else if (CurrentWeapon.ID == World.ITEM_ID_CLUB)
                {
                    PlayAudio("MonsterPainClub", DisableAudio);
                }

                LootTheCurrentMonster(tts);

                // "Move" to the current location, to refresh the current monster
                MoveTo(CurrentLocation, tts);
            }
            else
            {
                LetTheMonsterAttack(tts);
            }
        }
Exemple #4
0
 public void MoveWest(TTS tts)
 {
     if (CurrentLocation.LocationToWest != null)
     {
         text = "Foste para Oeste.";
         MoveTo(CurrentLocation.LocationToWest, tts);
     }
     else
     {
         tts.Speak("Não podes ir mais para Oeste.");
     }
 }
Exemple #5
0
 public void MoveSouth(TTS tts)
 {
     if (CurrentLocation.LocationToSouth != null)
     {
         text = "Foste para Sul.";
         MoveTo(CurrentLocation.LocationToSouth, tts);
     }
     else
     {
         tts.Speak("Não podes ir mais para Sul.");
     }
 }
Exemple #6
0
        public void UsePotion(HealingPotion potion, TTS tts)
        {
            RaiseMessage("Tu bebes a " + potion.Name + ".");
            text = "Bebeste a poção";


            HealPlayer(potion.AmountToHeal);

            RemoveItemFromInventory(potion);

            // The player used their turn to drink the potion, so let the monster attack now
            LetTheMonsterAttack(tts);
        }
Exemple #7
0
        private void LootTheCurrentMonster(TTS tts)
        {
            RaiseMessage("");
            RaiseMessage("Recebeste " + CurrentMonster.RewardExperiencePoints + " pontos de experiência.");

            RaiseMessage("Recebeste " + CurrentMonster.RewardGold + " moedas de ouro.");
            text = "Matáste o monstro! Recebeste " + CurrentMonster.RewardGold + " moedas de ouro " + "e " + CurrentMonster.RewardExperiencePoints + " pontos de experiência";
            AddExperiencePoints(CurrentMonster.RewardExperiencePoints);
            Gold += CurrentMonster.RewardGold;

            // Give monster's loot items to the player
            foreach (InventoryItem inventoryItem in CurrentMonster.LootItems)
            {
                AddItemToInventory(inventoryItem.Details);

                RaiseMessage(string.Format("Saqueaste: {0} {1}", inventoryItem.Quantity, inventoryItem.Description));
            }

            RaiseMessage("");
        }
Exemple #8
0
        private void GiveQuestToPlayer(Quest quest, TTS tts)
        {
            RaiseMessage("Tens uma missão nova: " + quest.Name + ".");
            RaiseMessage(quest.Description);
            RaiseMessage("Para completá-la, volta com:");
            string items = "";

            foreach (QuestCompletionItem qci in quest.QuestCompletionItems)
            {
                items += string.Format("{0} {1}", qci.Quantity,
                                       qci.Quantity == 1 ? qci.Details.Name : qci.Details.NamePlural);
                items += ",";
                RaiseMessage(string.Format("{0} {1}", qci.Quantity,
                                           qci.Quantity == 1 ? qci.Details.Name : qci.Details.NamePlural));
            }

            RaiseMessage("");

            Quests.Add(new PlayerQuest(quest));
            tts.Speak(text + " e tens uma missão nova: " + quest.Name + "." + " Para completá-la, volta com: " + items);
            text = "";
        }
Exemple #9
0
        public void MoveTo(Location location, TTS tts)
        {
            if (PlayerDoesNotHaveTheRequiredItemToEnter(location))
            {
                RaiseMessage("Tens de obter " + location.ItemRequiredToEnter.Name + " primeiro para entrar neste local.");
                text = "Tens de obter " + location.ItemRequiredToEnter.Name + " primeiro para entrar neste local.";
                tts.Speak(text);
                text = "";
                return;
            }
            // The player can enter this location
            CurrentLocation = location;

            if (!LocationsVisited.Contains(CurrentLocation.ID))
            {
                LocationsVisited.Add(CurrentLocation.ID);
            }

            CompletelyHeal();

            if (location.HasAQuest)
            {
                if (PlayerDoesNotHaveThisQuest(location.QuestAvailableHere))
                {
                    GiveQuestToPlayer(location.QuestAvailableHere, tts);
                }
                else
                {
                    if (PlayerHasNotCompleted(location.QuestAvailableHere) &&
                        PlayerHasAllQuestCompletionItemsFor(location.QuestAvailableHere))
                    {
                        GivePlayerQuestRewards(location.QuestAvailableHere, tts);
                    }
                }
            }
            SetTheCurrentMonsterForTheCurrentLocation(location, tts);
        }
Exemple #10
0
        private void LetTheMonsterAttack(TTS tts)
        {
            int damageToPlayer = RandomNumberGenerator.NumberBetween(0, CurrentMonster.MaximumDamage);

            RaiseMessage(CheckMonsterGender(CurrentMonster.Name, 0).ToUpper() + " " + CurrentMonster.Name + " tirou-te " + damageToPlayer + " pontos de vida.");
            CurrentHitPoints -= damageToPlayer;

            if (IsDead)
            {
                text = CheckMonsterGender(CurrentMonster.Name, 0).ToUpper() + " " + CurrentMonster.Name + " tirou-te " + damageToPlayer + " pontos de vida." + "E por isso Morrêste!";
                RaiseMessage(CheckMonsterGender(CurrentMonster.Name, 0).ToUpper() + " " + CurrentMonster.Name + " matou-te.");

                // Place PlayerPain sound here
                PlayAudio("PlayerPain", DisableAudio);
                tts.Speak(text);
                text = "";
                MoveHome(tts);
            }
            else
            {
                tts.Speak(text + CheckMonsterGender(CurrentMonster.Name, 0).ToUpper() + " " + CurrentMonster.Name + " tirou-te " + damageToPlayer + " pontos de vida.");
                text = "";
            }
        }
Exemple #11
0
 private void MoveHome(TTS tts)
 {
     MoveTo(World.LocationByID(World.LOCATION_ID_HOME), tts);
 }