Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*:
- //==============================================================================
- // ■ Emoji Engine MV - Origin "AI Core"
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- @plugindesc Dev Script who permit to have interactive basic AI for your scene.
- id: EMMV::AI_Core
- @author Nio Kasgami.
- @Data : 2015/10/05
- @Version : 1.0.0
- @Require : NA
- //==============================================================================
- //==============================================================================
- // History
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- // 2015/10/05 - Begin of the conversion Ruby -> JS {Beta}.
- //==============================================================================
- //==============================================================================
- // Introduction
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- //
- //==============================================================================
- //==============================================================================
- // Plugin Parameter
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- // this section handle the plugin parameter. Please do not edit unless you
- // want to add extra plugin command.
- //------------------------------------------------------------------------------
- * @param tests
- * @desc test
- * @default it's work
- //==============================================================================
- //==============================================================================
- // ■ Help File
- // =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- // This section serve for input the help file in the engine don't touch this
- // unless you want to input more information
- //------------------------------------------------------------------------------
- * @help
- * Due the nature of this plugin and the tons of arguments in the call,
- * this plugin do not use plugin command and only script calls.
- *
- * ==========================================================================
- * ■ Script Call
- * ==========================================================================
- * this.setup_AIShop(aiID,EnableHaggle); :
- * due is nature MV AI shop have to be setup before you call shop process.
- *
- * this.scene_ai(scene,aiID); : Permit to call your scene with a specific
- * AI personality. Only works on scene who got programmed for.
- * --------------------------------------------------------------------------
- *
- * ==========================================================================
- * ■ Internal Method call
- * ==========================================================================
- * /varname/ = $gamePersonalities.get_personality(ai_id); :
- * Permit to set the ai_id and to get the method in your scene.
- * /varname/.interaction('interaction_type'); : call the interaction method
- * for permit a AI to react.
- * /varname/.curtain_interaction(curtaintype); : call the method for the AI
- * to quit or enter.
- *
- * this.changeExpression(expres); : change the AI expression.
- * this.callDialogue(text); : make the AI speaking.
- * this.callVoice(file,volume,pitch,pan) : call a SE for the AI.
- * this.callEffect(effectype,time,speed); : call a effect on the AI.
- * -------------------------------------------------------------------------
- *
- * ==========================================================================
- * ■ JSON Structure {AI_Personality}
- * ==========================================================================
- * the structure for setup AI_Personality is setup in the datafile. it's
- * name "AI.JSON" can be opened via a normal text editor so accessible for
- * the user to edit. The structure make them possible to have unlimited
- * personality and dialogue.
- * here a example of a JSON structure.
- * {
- * "1" :{
- * "Bitmap" : "",
- * "Greeting" : "Hellow!"
- * },
- *
- * "2" :{
- * "Greeting" : "hi..."
- * }
- * }
- * So in simple you input a id and after a content inside of it.
- * They don't have restriction of wich content you want in it you can remove
- * or add some like you want.
- * the only "mandatory" content you have to add are :
- * -"Bitmap" : "content"
- * -"x" : value
- * -"y" : value
- * If you don't add them this will throw a error.
- * for get the the JSON material create a new one in the method by using.
- * this.varname = this._personality."thenameofthecontent".
- *
- */
- //==============================================================================
- // ■ Emoji_Engine
- //------------------------------------------------------------------------------
- // the class who handle all the base of my plugins. Can be access via $emoji.
- //==============================================================================
- (function(){
- //----------------------------------------------------------------------------
- // ○ alias function: get_pluginname
- //----------------------------------------------------------------------------
- var ai_name = Emoji_Engine.prototype.get_pluginname;
- Emoji_Engine.prototype.get_pluginname = function() {
- ai_name.call(this);
- this.aiParams = this.set_PluginID('EEMV::AICore');
- };
- //----------------------------------------------------------------------------
- // ● alias function: get_params
- //----------------------------------------------------------------------------
- var ai_parameters = Emoji_Engine.prototype.get_params;
- Emoji_Engine.prototype.get_params = function() {
- ai_parameters.call(this);
- // Get Emoji System parameters
- this.enableShopAI = this.setBoolean(this.aiParams,'Enable Shop AI');
- this.aiFolder = this.setString(this.aiParams,'AI folder');
- this.allowhaggle = this.setBoolean(this.aiParams,'Enable Shop Haggle');
- this.allowMood = this.setBoolean(this.aiParams, 'Enable AI Mood');
- };
- })();
- //===============================================================================
- // => END : Emoji_Engine
- //===============================================================================
- //==============================================================================
- // ■ Game_AI
- //------------------------------------------------------------------------------
- // This class handles ai actions. It used within the Game_Personalities class
- // ($game_personalities).
- //==============================================================================
- function Game_AI() { this.initialize.apply(this,arguments); }
- Game_AI.prototype.constructor = Game_AI;
- //==============================================================================
- // ■ Game_AI {Core}
- //------------------------------------------------------------------------------
- // This section is the place where I initialize everything's and permit to
- // retrieve the whole AI_Personality[id] informations. It's also inits the
- // firts actions made by the system.
- // {exclude sprite configurations}
- //==============================================================================
- //----------------------------------------------------------------------------
- // ○ new function: initialize
- //----------------------------------------------------------------------------
- Game_AI.prototype.initialize = function(ai_id) {
- this._id = ai_id;
- this._personality = $dataAI[this._id];
- this.retrieveData();
- this.checkMessageType();
- this.createContents
- // this.curtain_interactions("entering");
- };
- Game_AI.prototype.retrieveData = function() {
- this.greeting = this._personality.Greeting;
- this.byeBye = this._personality.Farewell;
- };
- //----------------------------------------------------------------------------
- // ○ new function: checkMessageType
- //----------------------------------------------------------------------------
- // * Method who permit to setup the Message system for the AI. Without that,
- // * the AI would not being able to speak to you.
- // * Nothing stop you from inputing more disponible message system to the AI.
- // * As long the method is acessible via a global this should works.
- // * They have 3 default method in this method :
- // * 'MV-default' : It's take the default Game_Message.
- // * 'Emoji-Dialogue' : Special system made for work's exclusively with
- // * this system.
- // * 'YourOwnSystem' : can be rename it's your own message system.
- // * Please notice when you use your own personnal message system it's have
- // * to use either .add or you have to build your own method call.
- //
- Game_AI.prototype.checkMessageType = function() {
- switch($emoji.messageType){
- // if no case are meet throw a error.
- default :
- throw new Error("Out of range error : Undefined messageType");
- break;
- // Use MV default Message System.
- case 'MV-default' :
- this.messageSystem = $gameMessage;
- break;
- // Use EEM::EmojiDialogue.
- case 'Emoji-Dialogue' :
- this.messageSystem = $gameDialogue;
- break;
- // Use User system.
- case 'YouOwnSystem' :
- this.messageSystem = undefined;
- break;
- }
- };
- //----------------------------------------------------------------------------
- // ○ new function: update
- //----------------------------------------------------------------------------
- Game_AI.prototype.update = function() {
- this.update_sprite();
- if(this.update_flag){
- update_effect();
- }
- };
- //===============================================================================
- // => END : Game_AI {Core}
- //===============================================================================
- //==============================================================================
- // ■ Game_AI {Core::interactions}
- //------------------------------------------------------------------------------
- // Cette section sert pour la configuration qui dicte comment votre IA reagit
- // a vos actions. Il est generalement dicter par
- // $game_personalities[ai_id].interaction_type = :key
- // et activer par
- // $game_personalities[ai_id].interaction
- //==============================================================================
- //----------------------------------------------------------------------------
- // ○ new function: interaction
- //----------------------------------------------------------------------------
- // * this method is the core of everything's it's where all action are made.
- // * in the Game_AI. Let's say it's like the "brain" of your AI. It's
- // * check wich reaction to do depending of the call you do.
- // * can be call exterior : /varname/.interaction(interactionType);
- //
- Game_AI.prototype.interaction = function(interactionType) {
- switch (interactionType) {
- default :
- throw new Error("Out of Range Error: undefined interactionType");
- break;
- case 'buy' :
- this.buy();
- break;
- }
- };
- //----------------------------------------------------------------------------
- // ○ new function: buy {sample function}
- //----------------------------------------------------------------------------
- // * Sample method for show how you guys can use this system. It's a messy
- // * method but it's permit to take in consideration a all the instance of
- // * message system.
- // *
- Game_AI.prototype.buy = function() {
- var n = this._id.toString();
- // if voice are enabledc call the SE.
- if ($emoji.enableVoice){
- this.callVoice("Buy_" + n,100,100,0);
- }
- this.changeExpression(1);
- // if using the default message system.
- if (this.messageSystem instanceof Game_Message){
- this.callDialogue(this.Buy);
- // if using EEMV::Dialogue
- } else if (this.messageSystem instanceof Game_Dialogue){
- this.callDialogueEX(this.Buy,0,null,null);
- // if using custom (can be change if using other method)
- } else {
- this.callDialogue(this.Buy);
- }
- };
- //----------------------------------------------------------------------------
- // ○ new function: curtain_interactions
- //----------------------------------------------------------------------------
- // * It's the Entering reaction of the game it's can be call when you start
- // * Your Scene.
- Game_AI.prototype.curtain_interactions = function(curtainType) {
- switch(curtainType){
- default :
- throw new Error("Out of Range Error: Undefined curtainType");
- break;
- case "entering" :
- this.entering_interaction();
- break;
- case "quitting" :
- this.quitting_interaction();
- break;
- }
- };
- //----------------------------------------------------------------------------
- // ○ new function: entering_interaction
- //----------------------------------------------------------------------------
- Game_AI.prototype.entering_interaction = function() {
- // this.call_effect("inhori_slide",2,100);
- // this.change_expression(1);
- this.call_dialogue(this.greeting);
- };
- //----------------------------------------------------------------------------
- // ○ new function: quitting_interaction
- //----------------------------------------------------------------------------
- Game_AI.prototype.quitting_interaction = function() {
- this.change_expression(2);
- this.dialogue_system.add(this.byebye);
- this.call_effect("outhori_slie",2,100);
- };
- //===============================================================================
- // => END : Game_AI {Core::Interactions}
- //===============================================================================
- //==============================================================================
- // ■ Game_AI {Sprite}
- //------------------------------------------------------------------------------
- // This section serve for Sprite initialization and configuration purpose
- //==============================================================================
- //----------------------------------------------------------------------------
- // ○ new function: createContents
- //----------------------------------------------------------------------------
- // * Main function for create the Sprite Content. No need to touch this.
- //
- Game_AI.prototype.createContents = function() {
- // if picture is not ready the system is loading them.
- while(ImageManager.isReady() != true){
- this.loadAI();
- }
- this.aiGraphics = null;
- this.createSprite();
- };
- //----------------------------------------------------------------------------
- // ○ new function: loadAI
- //----------------------------------------------------------------------------
- Game_AI.prototype.loadAI = function() {
- this.aiGraphics = ImageManager.loadAI(this.spriteName() + "_" + this.spriteIndex());
- };
- //----------------------------------------------------------------------------
- // ○ new function: create_sprite
- //----------------------------------------------------------------------------
- Game_AI.prototype.createSprite = function() {
- this.aiSprite = new Sprite();
- this.aiSprite.x = this._personality.xOffset;
- this.aiSprite.y = this._personality.yOffset;
- this.aiSprite.opacity = 0;
- this.aiSprite.setOrigin(0.5,1);
- this.aiSprite.visible = false;
- SceneManager._scene.addChild(this.aiSprite);
- };
- //----------------------------------------------------------------------------
- // ○ new function: change_expression
- //----------------------------------------------------------------------------
- // * Change the expression of the AI. It's autorefresh the expression after
- // * the message is cleared. For this reason you may input this call before
- // * the message or this will not update properly. Use the call internally.
- // * this.changeExpression(value);
- //
- Game_AI.prototype.changeExpression = function(expression) {
- this._index = expression;
- };
- //----------------------------------------------------------------------------
- // ○ new function: terminate_sprite {obsolete Method}
- //----------------------------------------------------------------------------
- Game_AI.prototype.terminateSprite = function() {};
- //----------------------------------------------------------------------------
- // ○ new function: update
- //----------------------------------------------------------------------------
- Game_AI.prototype.update_sprite = function() {
- this.updateSpriteBitmap();
- this.refreshExpression();
- if(this.isActive()) {this.updateSpriteEffect();}
- };
- //----------------------------------------------------------------------------
- // ○ new function: update_sprite_location
- //----------------------------------------------------------------------------
- Game_AI.prototype.updateSpriteBitmap = function() {
- var n = this._index.toString();
- this.sprite.bitmap = ImageManager.ai_bust(this.ai_sprite + n);
- };
- //----------------------------------------------------------------------------
- // ○ new function: refreshExpression
- //----------------------------------------------------------------------------
- Game_AI.prototype.refreshExpression = function() {
- if($game_message.isbusy != true) {
- this.change_expression(0);
- }
- };
- //===============================================================================
- // => END : Game_AI {Sprite}
- //===============================================================================
- //==============================================================================
- // ■ Game_AI {Sprite::Effects}
- //------------------------------------------------------------------------------
- // This section serve for handles sprites effects
- //==============================================================================
- //----------------------------------------------------------------------------
- // ○ new function: callEffect
- //----------------------------------------------------------------------------
- // * Internal function to the Game_AI who permit to do effects to the sprite.
- // * Nothing stop you from creating new but here the default one.
- // * "horizontal" : slide the sprite to the horizontal.
- // * "vertical" : slide the sprite to the vertical.
- // * "fadein" : fadein the sprite.
- // * "fadeout" : fadeout the sprite.
- //
- Game_AI.prototype.callEffect = function(effectType,speed,time) {
- switch(effectType.toLowerCase()){
- // else if code are not defined throw a error,
- default:
- throw new Error("Out of range error: undefined effectType.");
- break;
- // do a horizontal slide.
- case "horizontal":
- this.setEffectFlag(true);
- this.setupEffect(effectType,speed,time);
- break;
- // do a vertical slide.
- case "vertical":
- this.setEffectFlag(true);
- this.setupEffect(effectType,speed,time);
- break;
- // do a fadein.
- case "fadein":
- this.setEffectFlag(true);
- this.setupEffect(effectType,speed,time);
- break;
- // do a fadeout.
- case "fadeout":
- this.setEffectFlag(true);
- this.setupEffect(effectType,speed,time);
- break;
- }
- };
- //----------------------------------------------------------------------------
- // ○ new function: setEffectFlag
- //----------------------------------------------------------------------------
- Game_AI.prototype.setEffectFlag = function(booleans) {
- this.effectFlag = booleans;
- };
- //----------------------------------------------------------------------------
- // ○ new function: setupEffect
- //----------------------------------------------------------------------------
- Game_AI.prototype.setupEffect = function(effectType,speed,time) {
- this._effect = effectType;
- this._speed = speed;
- this._time = time;
- };
- //----------------------------------------------------------------------------
- // ○ new function: effects
- //----------------------------------------------------------------------------
- Game_AI.prototype.effects = function() {
- return this._effect;
- };
- //----------------------------------------------------------------------------
- // ○ new function: speedValue
- //----------------------------------------------------------------------------
- Game_AI.prototype.speedValue = function() {
- return this._speed;
- };
- //----------------------------------------------------------------------------
- // ○ new function: timeValue
- //----------------------------------------------------------------------------
- Game_AI.prototype.timeValue = function() {
- return this._time;
- };
- //----------------------------------------------------------------------------
- // ○ new function: updateSpriteEffect
- //----------------------------------------------------------------------------
- Game_AI.prototype.updateSpriteEffect = function() {
- switch(this.effects()){
- case 'horizontal' :
- this.executeSlideHorizontaly(this.speedValue(),this.timeValue());
- break;
- case 'vertical' :
- this.executeSlideVerticaly(this.speedValue(),this.timeValue());
- break;
- case 'fadein' :
- this.executeFadeIn(this.speedValue(),this.timeValue());
- break;
- case 'fadeout' :
- this.executeFadeOut(this.speedValue(),this.timeValue());
- break;
- }
- };
- //----------------------------------------------------------------------------
- // ○ new function: executeSlideHorizontaly
- //----------------------------------------------------------------------------
- Game_AI.prototype.executeSlideHorizontaly = function(a,b) {};
- //----------------------------------------------------------------------------
- // ○ new function: executeSlideVertical
- //----------------------------------------------------------------------------
- Game_AI.prototype.executeSlideVertical = function(a,b) {};
- //----------------------------------------------------------------------------
- // ○ new function: executeFadeIn
- //----------------------------------------------------------------------------
- Game_AI.prototype.executeFadeIn = function(a,b) {};
- //----------------------------------------------------------------------------
- // ○ new function: executeFadeOut
- //----------------------------------------------------------------------------
- Game_AI.prototype.executeFadeOut = function(a,b) {};
- //===============================================================================
- // => END : Game_AI {Sprite::Effects}
- //===============================================================================
- //==============================================================================
- // ■ Game_AI {dialogue}
- //------------------------------------------------------------------------------
- // This section serve for AI Voice SE purpose
- // use call_voice("filename",volume,pitch)this.call_dialogue("text");
- //==============================================================================
- //----------------------------------------------------------------------------
- // ○ new function: call_dialogue
- //----------------------------------------------------------------------------
- // * Default Method who permit to add text to the system. Work's with the
- // * default message system or any message system who use "add" for their
- // * text. use this.callDialogue(text); for add text.
- //
- Game_AI.prototype.callDialogue = function(text) {
- this.messageSystem.add(text);
- };
- //----------------------------------------------------------------------------
- // ○ new function: callDialogueEX
- //----------------------------------------------------------------------------
- // * Unique Message call it's only work's with EMMV::Dialogue plugin.
- // * it's permit to call text, a background and set the positiono of the
- // * message. It's not work with Yanfly message system and I don't intend
- // * to make it compatible.
- //
- Game_AI.prototype.callDialogueEx = function(text,backgroundType,x,y) {
- switch (backgroundType){
- default :
- throw new Error("Out of range error : undefined backgroundType.");
- break;
- case 'normal' :
- $gameDialogue.backType = 0;
- break;
- case 'surprise' :
- $gameDialogue.backType = 1;
- break;
- case 'none' :
- $gameDialogue.backType = 4;
- break;
- }
- $gameDialogue.setOffSet(x,y);
- $gameDialogue.add(text);
- };
- //===============================================================================
- // => END : Game_AI {dialogue}
- //===============================================================================
- //==============================================================================
- // ■ Game_AI {Voice}
- //------------------------------------------------------------------------------
- // This section serve for AI Text dialogue purpose.
- // Use the call this.call_voice("filename",volume,pitch);
- //==============================================================================
- //----------------------------------------------------------------------------
- // ○ new function: callVoice
- //----------------------------------------------------------------------------
- Game_AI.prototype.callVoice = function(voiceIndex,volume,pitch,pan) {
- var pathoFile = $emoji.voiceFolder + "/";
- AudioManager.playSe(pathoFile + voiceIndex,volume,pitch,pan);
- };
- //===============================================================================
- // => END : Game_AI {Voice}
- //===============================================================================
- //===============================================================================
- // => END : Game_AI
- //===============================================================================
- //==============================================================================
- // ■ Game_Personalities
- //------------------------------------------------------------------------------
- // This class handles Personality_id. It's a wrapper for the built-in class
- // "Array." The instance of this class is referenced by $game_Personalities.
- //==============================================================================
- function Game_Personalities() { this.initialize.apply(this,arguments);}
- //----------------------------------------------------------------------------
- // ○ new function: initialize
- //----------------------------------------------------------------------------
- Game_Personalities.prototype.initialize = function() {
- this._personality = this._personality || [];
- };
- //----------------------------------------------------------------------------
- // ○ new function: get_personality
- //----------------------------------------------------------------------------
- Game_Personalities.prototype.get_personality = function(ai_id) {
- this._personality[ai_id] = this._personality[ai_id] || new Game_AI(ai_id);
- return this._personality[ai_id]
- };
- //===============================================================================
- // => END : Game_Personalities
- //===============================================================================
- //==============================================================================
- // ■ Game_Interpreter
- //------------------------------------------------------------------------------
- // An interpreter for executing event commands. This class is used within the
- // Game_Map, Game_Troop, and Game_Event classes. This snipset add executing
- // for Game_Personalities and Game_AI classes event processing.
- //==============================================================================
- //----------------------------------------------------------------------------
- // ● alias function: clear
- //----------------------------------------------------------------------------
- var emoji_clear = Game_Interpreter.prototype.clear;
- Game_Interpreter.prototype.clear = function() {
- emoji_clear.call(this);
- this._shop_ai_id = 0;
- this._enable_haggle = false;
- };
- //----------------------------------------------------------------------------
- // ○ new function: setup_shop_ai
- //----------------------------------------------------------------------------
- Game_Interpreter.prototype.setup_shop_ai = function(a,b){
- this._shop_ai_id = a;
- this._enable_haggle = b;
- };
- //----------------------------------------------------------------------------
- // ○ new function: scene_ai
- //----------------------------------------------------------------------------
- Game_Interpreter.prototype.scene_ai = function(scene_s,ai_type) {
- SceneManager.push(scene_s);
- SceneManager.prepareNextScene(ai_type);
- };
- //----------------------------------------------------------------------------
- // ● overwrite / alias function: command_302
- //----------------------------------------------------------------------------
- var emoji_command302 = Game_Interpreter.prototype.command302;
- Game_Interpreter.prototype.command302 = function() {
- if(!$emoji.enable_aishop) {
- emoji_command302.call(this);
- }
- else{
- if (!$gameParty.inBattle()) {
- var goods = [this._params];
- while (this.nextEventCode() === 605) {
- this._index++;
- goods.push(this.currentCommand().parameters)
- }
- SceneManager.push(Scene_Shop);
- SceneManager.prepareNextScene(goods, this._params[4], this._shop_ai_id,this._enable_haggle)
- }
- return true
- }
- };
- //===============================================================================
- // => END : Game_interpreter
- //===============================================================================
- //==============================================================================
- // ■ DataManager
- //------------------------------------------------------------------------------
- //==============================================================================
- //----------------------------------------------------------------------------
- // ★ new global variables : $dataAI, $game_personalities
- //----------------------------------------------------------------------------
- var $dataAI = null;
- var $gamePersonalities = null;
- //----------------------------------------------------------------------------
- // ◇ Push new data : _databaseFile[array]
- //----------------------------------------------------------------------------
- DataManager._databaseFiles.push({name: '$dataAI',src: 'AI.json'});
- //----------------------------------------------------------------------------
- // ● alias function: createGameObjects
- //----------------------------------------------------------------------------
- var emoji_personalities = DataManager.createGameObjects;
- DataManager.createGameObjects = function() {
- emoji_personalities.call(this);
- $gamePersonalities = new Game_Personalities();
- };
- //===============================================================================
- // => END : DataManager
- //===============================================================================
- //==============================================================================
- // ■ ImageManager
- //------------------------------------------------------------------------------
- //==============================================================================
- //----------------------------------------------------------------------------
- // ○ new function: loadAI
- //----------------------------------------------------------------------------
- ImageManager.loadAI = function(filename) {
- var folder_path = $emoji.ai_folder
- return this.loadBitmap('img/' + folder_path, filename, 0, true);
- };
- //===============================================================================
- // => END : ImageManager
- //===============================================================================
- // TEMPORARY
- function Game_Dialogue() {this.initialize.apply(this,arguments);}
- Game_Dialogue.prototype.constructor = Game_Dialogue;
- Game_Dialogue.prototype.initialize = function() {
- this.clear();
- };
- Game_Dialogue.prototype.clear = function() {
- this._texts = []; // text in array's (rows).
- this._choices = []; // choice in array's.
- this._backName = "";
- this._choiceBackName = "";
- this._backType = 0;
- this._choiceBackType = 0;
- this._backOffsetX = 0;
- this._backOffsetY = 0;
- this._choiceBackOffSetX = 0;
- this._choiceBackOffSetY = 0;
- };
- Game_Dialogue.prototype.choice = function() {
- return this._choices;
- };
- Game_Dialogue.prototype.backName = function() {
- return this._backName
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement