Esempio n. 1
0
 internal void PlayStormySeas(UserInterface ui)
 {
     EventDetail draculaEventCard = Dracula.WillPlayDevilishPower(this, ui);
     bool eventIsCancelled = false;
     if (draculaEventCard != null)
     {
         switch (draculaEventCard.name)
         {
             case "DevilishPower":
                 ui.TellUser("Dracula played Devilish power to cancel this event");
                 DiscardEventFromDracula("Devilish Power");
                 int hunterPlayingGoodluck = ui.AskWhichHunterIsUsingGoodLuckToCancelEvent();
                 if (hunterPlayingGoodluck > -1)
                 {
                     DiscardEventFromHunterAtIndex("Good Luck", hunterPlayingGoodluck, ui);
                 }
                 else
                 {
                     eventIsCancelled = true;
                 }
                 break;
         }
     }
     if (!eventIsCancelled)
     {
         LocationDetail locationToStorm;
         do
         {
             locationToStorm = GetLocationFromName(ui.GetNameOfLocationWhereStormySeasIsBeingPlayed());
             ui.TellUser(locationToStorm.Name);
         } while (locationToStorm.Name == "Unknown location" || locationToStorm.Name == "Multiple locations" || locationToStorm.Type != LocationType.Sea);
         Logger.WriteToDebugLog("Stormy Seas was played in " + locationToStorm.Name);
         Logger.WriteToGameLog("Stormy Seas was played in " + locationToStorm.Name);
         locationToStorm.TurnsUntilStormSubsides = 2;
         if (locationToStorm == Dracula.CurrentLocation)
         {
             locationToStorm.IsRevealed = true;
             ui.TellUser("That is where Dracula was");
             LocationDetail locationToMoveTo = Dracula.DecideWhichPortToGoToAfterStormySeas(this, locationToStorm);
             Dracula.MoveByRoadOrSea(this, locationToMoveTo, ui);
             draculaEventCard = Dracula.WillPlaySensationalistPress(this, 0);
             bool revealing = true;
             if (draculaEventCard != null)
             {
                 switch (draculaEventCard.name)
                 {
                     case "Sensationalist Press":
                         ui.TellUser("Dracula played Sensationalist Press to cancel revealing the port he went to");
                         DiscardEventFromDracula("Sensationalist Press");
                         int hunterPlayingGoodluck = ui.AskWhichHunterIsUsingGoodLuckToCancelEvent();
                         if (hunterPlayingGoodluck > -1)
                         {
                             DiscardEventFromHunterAtIndex("Good Luck", hunterPlayingGoodluck, ui);
                         }
                         else
                         {
                             revealing = false;
                         }
                         break;
                 }
             }
             if (revealing)
             {
                 Dracula.LocationTrail[0].IsRevealed = true;
             }
             Dracula.HandleDroppedOffLocations(this, ui);
             Dracula.MatureEncounters(this, ui);
         }
     }
 }