public static BaseEventFactory GetInstance()
 {
     if (instance == null)
     {
         instance = new GrasslandsExplorationEventFactory();
     }
     return(instance);
 }
 public static BaseEventFactory GetInstance()
 {
     if (instance == null)
     {
         instance = new MountainExplorationEventFactory();
     }
     return(instance);
 }
 public static BaseEventFactory GetInstance()
 {
     if (instance == null)
     {
         instance = new JungleExplorationEventFactory();
     }
     return instance;
 }
    public void StartExploration(WorldState worldState, GameManager.ExploreRegion region)
    {
        Debug.Log("starting exploration");
        this.worldState = worldState;
        state           = State.Start;

        switch (region)
        {
        case GameManager.ExploreRegion.Grassland:
            regionFactory = GrasslandsExplorationEventFactory.GetInstance();
            break;

        case GameManager.ExploreRegion.Riverlands:
            regionFactory = RiverlandsExplorationEventFactory.GetInstance();
            break;

        case GameManager.ExploreRegion.Forest:
            regionFactory = ForestExplorationEventFactory.GetInstance();
            break;

        case GameManager.ExploreRegion.Jungle:
            regionFactory = JungleExplorationEventFactory.GetInstance();
            break;

        case GameManager.ExploreRegion.Savana:
            regionFactory = SavanaExplorationEventFactory.GetInstance();
            break;

        case GameManager.ExploreRegion.Mountain:
            regionFactory = MountainExplorationEventFactory.GetInstance();
            break;

        default:
            break;
        }
    }