How to Challenge NPC’s to a Card Game

In this tutorial, I will discuss how to allow players to interact with NPC’s using different approaches and how to customize how the NPC responds depending on which approach was used. I will use a “card game challenge” where the NPC will mention that she’s a pretty strong card player and has been looking for a suitable opponent and then offer to play a game with you.

Background

The story takes place in a world where a card game is extremely popular. In addition to the usual adventures that you go on, you also have the opportunity to participate in card battles and competitions that are held throughout the world as you progress through the game. You may be able to challenge NPC’s that you meet to a game, and the winner gets to take one of the loser’s cards as a reward.

In a particular city, you find yourself doing some work with the leader of the local guild. She offers guidance and sends you on important quests, such as the one shown below

However, she’s also an avid card player and is always looking for a challenge. Having won a number of tournaments in the past, she has collected a large number of rare cards that would be a great asset to your own card deck if you manage to defeat her.

When you approach her about the card game, she talks about her own skills

And then proceeds to offer you a match

Implementing the Event

If you choose to offer this type of mini-game where the player can challenge different NPC’s, as a game developer, you have to make a lot of decisions how to implement this for players.

You have several different ways to approach this depending on how you want to do it.

Using an Item

Suppose you wanted to trigger a card challenge by using an item. Maybe the item is a deck of cards.

One way to do this is assign a common event to the item that will

Turn on a switch

Check for any events in front of you that can be triggered

In order to perform an action trigger check using a common event, several approaches are available there as well. I will use the Scripted Action Trigger script to accomplish this. You might choose to just use an autorun event and check the player’s position.

With the script applied, the common event itself is straightforward: turn on the appropriate switch, then check for events. We assign the common event to the item we want to use.

The event will be set up so that if the switch is ON, it will run the card challenge commands. Otherwise, it will run the normal commands. We can use a two-page event for this: one of the pages is conditioned to activate only when the switch is ON. Because the purpose of the switch is simply to force the event to run a different page, the page should also remember to turn it off after it’s done with it.

Now you will be able to interact with the event normally using a button press, as well as an item.
You can see a demonstration of the results in this video:

Using a button

The above solution works, but it assumes that the player must open their inventory and then select a particular item. You may decide that it would be better to simply assign different interactions to different buttons.

There are many ways to accomplish this. First, you can use Event Trigger Labels, allowing you to have an event respond to action triggers differently depending on which button was pressed.

As you can see, when the C button is pressed, it will execute the “talking” sequence of events. When the X button is pressed, it will execute the card challenge sequence of events.

Alternatively, if you decide to use scripted action triggers, you may choose to bind a common event to one of your keys so that when you press the key, it will be the same as performing an action trigger except using a different key.

Summary

Just as there are many different choices that you have to make as a game developer, there are also many different ways to implement them given the various functionality available in RPG Maker. Some options may be easier to do, others might be more manageable. You should experiment with each approach to see which one you like best and which one is suitable for your needs.

Spread the Word

If you liked the post and feel that others could benefit from it, consider tweeting it or sharing it on whichever social media channels that you use. You can also follow @HimeWorks on Twitter or like my Facebook page to get the latest updates or suggest topics that you would like to read about.

To create code blocks or other preformatted text, indent by four spaces:

This will be displayed in a monospaced font. The first four
spaces will be stripped off, but all other whitespace
will be preserved.
Markdown is turned off in code blocks:
[This is not a link](http://example.com)