Scavenger Hunt List Bools Question

hey hey hey.
I have an interesting problem I’m kinda struggling with a little:
I’m working on a scavenger hunt scenario where the user can say something like:
“We are looking for a rubber spider”

What happens is a bool called: lookingForRubberSpider = false
Gets changed to true

Simple enough for that.
On the flip side if you say:
“Looks like we have found the rubber spider”

Then the lookingForRubberSpider bool gets changed back to false.

This is ideal and it works great… but what I’m wondering is is there an alternate way for a scenario like this:

Lets say you have found the rubber spider and for some reason you were to say:
“We are looking for a rubber spider”
To somehow treat the situation as Well we found it once, why are we looking for it again??

Not sure if I made sense there?

My first initial thought was to perhaps set up a secondary bool called: SpiderFound

And perhaps have that bool referenced in order to be able to return with something like:
“we already found a rubber spider, why are you looking for it again”

But if I do that I’m wondering how best to set the SpiderFound bool back to false…???

Maybe when the scavenger hunt is over perhaps with a statement like:

“That was a fun scavenger Hunt” SpiderFound = false

Any thoughts on ways to approach something like this?

One idea is to use a few enums to take care of this.

public enum QuestState
{
     not_started,
     started,
     complete
}

public enum Quest
{
     find_spider,
     find_letter_opener,
     find_wine_bottle,
     find_dirty_sock,
     ... etc....
     total
}

// elsewhere...
public QuestState[] Quests;
// elsewhere...
Quests = new QuestState[Quests.total]();

Then you could just use the Quest enum to index into the QuestState array and change the value to whatever state you needed for each individual quest.

Disclaimer:
This is completely untested and barely thought through. It spans several files and I’m not even sure it will work, but it is an idea.

Ah, you’ll have to forgive my ignorance with these, I’ve never used them before… I think if I’m understanding it right, I would set up my enum like this:

    private enum RubberSpiderQuest
    {
    not_started
    started
    complet
    }
private RubberSpiderQuest myRubberSpiderQuest;

And then for checking that state I would use:

if (myRubberSpiderQuest == RubberSpiderQuest.complete)
{
Debug.Log("You Already Found The Rubber Spider");
}

And then to set the state I would use:

RubberSpiderQuest = complete;

Does that seem correct? Anyone?
May just require some experimentation I guess. :confused: