//=============================================================================
// Yanfly Engine Plugins - Quest Journal System
// YEP_QuestJournal.js
//=============================================================================
var Imported = Imported || { } ;
Imported . YEP _QuestJournal = true ;
var Yanfly = Yanfly || { } ;
Yanfly . Quest = Yanfly . Quest || { } ;
Yanfly . Quest . version = 1.01 ;
//=============================================================================
/ * :
* @ plugindesc YEP任务日志系统 - 优
* @ author Yanfly Engine Plugins 汉化 : 硕明云书
*
* @ help
*
* 魔改作者 : 流逝的岁月
* 魔改版本 : v1 . 00
*
* 魔改内容 : v1 . 00 添加滑块滚动区域
*
* 注意 : 插件重写了 Window _QuestData . prototype . processTouch 这是极有可能造成不兼容的情况的 !
*
*
* === === === === === === === === === === === === === === === === === === === === === === === === === =
* 指令
* === === === === === === === === === === === === === === === === === === === === === === === === === =
* Quest Add x //接取任务 Quest Add x, x, x 任务多个
* Quest Journal Open //打开任务栏
* Quest Remove x //移除任务x
* Quest Set Completed x //完成任务x
* Quest Set Failed x //失败任务x
* Quest Set Available x //可进行任务x
* Quest x Show / Hide Objective y //显示/隐藏任务x的y目标
* Quest x Complete Objective y //完或任务x的y目标
* Quest x Fail Objective y //失败任务x的y目标
* Quest x Show / Hide Reward y //显示/隐藏任务x的y奖励
* Quest x Show Reward y //显示奖励
* Quest x Hide Reward y //隐藏奖励
* Quest x Change Description Entry To y //描述更改
* = -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -
* 插件命令 :
* = -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -= -
*
* Quest Journal Open
* - 打开没有选择任务的任务日志系统菜单 。
* Quest Journal Show
* Quest Journal Hide
* - 在主菜单中显示或隐藏任务日志选项 。
*
* Quest Journal Enable
* Quest Journal Disable
* - 在主菜单中启用或禁用任务日志选项 。
*
*
* Quest Add x
* - 用整数替换 “ x ” 。 将任务ID “ x ” 作为可用任务添加到任务
* 日志中 。
*
* Quest Add x to y
* - 将 “ x ” 和 “ y ” 替换为整数值 ,
* 确定您希望添加到任务日志中的任务ID范围 。
*
* Quest Add x , x , x
* - 用代表您希望添加到任务日志中的任务ID的整数值替
* 换 “ x ” 值 。
*
*
* Quest Remove x
* - 用整数替换 “ x ” 。 这将从任务日志中删除任务ID “ x ” 。
* ...
*
* Quest Remove x to y
* - 将 “ x ” 和 “ y ” 替换为整数值 , 以确定您希望从任务日志中大
* 量删除的任务ID范围 。
*
* Quest Remove x , x , x
* - 用代表您希望从任务日志中删除的任务ID的整数值替换 “ x ” 值 。
* ...
*
* -- -
*
* Quest Set Completed x
* Quest Set Failed x
* Quest Set Available x
*
* Quest Set Completed x to y
* Quest Set Failed x to y
* Quest Set Available x to y
* Quest Set Completed x , x , x
* Quest Set Failed x , x , x
* Quest Set Available x , x , x
*
* Quest x Change Description Entry To y
* - 将 “ x ” 替换为您要修改其描述的任务ID 。
* 用您希望将任务更改为的描述条目ID替换 “ y ” 。
* 这将使描述 , 当在游戏中查看任务日志时 ,
* 显示在任务 “ x ” 的插件参数中找到的描述条目ID “ y ” 。
* 这是用于你希望在任务中途更新描述文本的时候 。
* ...
*
* -- -
*
* Quest x Show Objective y
* Quest x Hide Objective y
* - 将 “ x ” 替换为您希望改变目标的任务ID 。
* 用您希望显示 / 隐藏的目标ID替换 “ y ” 。
* 任务可以同时显示多个目标 。
*
* Quest x Show Objective y to z
* Quest x Hide Objective y to z
* - 将 “ x ” 替换为您希望改变目标的任务ID 。
* 用您希望显示 / 隐藏的目标ID范围替换 “ y ” 和 “ z ” 。
* 任务可以同时显示多个目标 。
*
* Quest x Show Objective y , y , y
* Quest x Hide Objective y , y , y
* - 将 “ x ” 替换为您希望改变目标的任务ID 。
* 用代表您希望显示 / 隐藏的目标ID的整数值替换 “ y ” 值 。
* 任务可以同时显示多个目标 。
*
* Quest X Show All Objectives
* Quest X Hide All Objectives
* - 将 “ x ” 替换为您希望更改其目标的任务ID 。
* 这将显示 / 隐藏任务的所有目标 。
*
* Quest x Complete Objective y
* Quest x Fail Objective y
* Quest x Normalize Objective y
* - 将 “ x ” 替换为您希望改变目标的任务ID 。
* 将 “ y ” 替换为您希望更改其状态的目标ID 。
* 使用 'Complete' 将目标标记为已完成 。 使用 'Fail' 将目标标记为失败 。
* 使用 'Normalize' 会将目标的状态设置为
* “ 未完成 ” 或 “ 失败 ”
*
* Quest x Complete Objective y to z
* Quest x Fail Objective y to z
* Quest x Normalize Objective y to z
* - 将 “ x ” 替换为您希望改变目标的任务ID 。
* 将 “ y ” 和 “ z ” 替换为您希望更改其状态的目标ID范围 。
* 使用 'Complete' 将目标标记为已完成 。 使用 'Fail' 将目标标记为失败 。
* 使用 'Normalize' 会将目标的状态设置为
* “ 未完成 ” 或 “ 失败 ”
*
* Quest x Complete Objective y , y , y
* Quest x Fail Objective y , y , y
* Quest x Normalize Objective y , y , y
* - 将 “ x ” 替换为您希望改变目标的任务ID 。
* 用代表要更改状态的目标ID的整数值替换 “ y ” 值 。
* 使用 'Complete' 将目标标记为已完成 。 使用 'Fail' 将目标标记为失败 。
* 使用 'Normalize' 会将目标的状态设置为
* “ 未完成 ” 或 “ 失败 ”
* ( WO有 . BK )
*
* Quest x Complete All Objectives
* Quest x Fail All Objectives
* Quest x Normalize All Objectives
* - 将 “ x ” 替换为您希望更改其目标的任务ID 。
* 这将complete / fail / normalize任务的所有目标 。
*
* -- -
*
* Quest x Show Reward y
* Quest x Hide Reward y
* - 用你希望改变奖励的任务号替换 “ x ” 。
* 用您希望显示 / 隐藏的奖励ID替换 “ y ” 。
* 任务可以同时显示多个奖励 。
*
* Quest x Show Reward y to z
* Quest x Hide Reward y to z
* - 用你希望改变奖励的任务号替换 “ x ” 。
* 用您希望显示 / 隐藏的奖励ID范围替换 “ y ” 和 “ z ” 。
* 任务可以同时显示多个奖励 。
*
* Quest x Show Reward y , y , y
* Quest x Hide Reward y , y , y
* - 用你希望改变奖励的任务号替换 “ x ” 。
* 用代表您希望显示 / 隐藏的奖励ID的整数值替换 “ y ” 值 。
* 任务可以同时显示多个奖励 。
*
* Quest x Show All Rewards
* Quest x Hide All Rewards
* - 用你希望改变奖励的任务号替换 “ x ” 。
* 这将显示 / 隐藏任务的所有奖励 。
*
* Quest x Claim Reward y
* Quest x Deny Reward y
* Quest x Normalize Reward y
* - 用你希望改变奖励的任务号替换 “ x ” 。
* 将 “ y ” 替换为您希望更改其状态的奖励ID 。
* 使用 'Claim' 将奖励ID为要求 。 使用 'Deny' 将奖励标记为拒绝 。
* 使用 'Normalize' 会将奖励的状态设置为
* “ 未申请 ” 或 “ 已拒绝 ” 。
*
* Quest x Claim Reward y to z
* Quest x Deny Reward y to z
* Quest x Normalize Reward y to z
* - 用你希望改变奖励的任务号替换 “ x ” 。
* 将 “ y ” 和 “ z ” 替换为您希望更改其状态的奖励ID范围 。
* 使用 'Claim' 将奖励ID为要求 。 使用 'Deny' 将奖励标记为拒绝 。
* 使用 'Normalize' 会将奖励的状态设置为
* “ 未申请 ” 或 “ 已拒绝 ” 。
*
* Quest x Claim Reward y , y , y
* Quest x Deny Reward y , y , y
* Quest x Normalize Reward y , y , y
* - 用你希望改变奖励的任务号替换 “ x ” 。
* 将 “ y ” 值替换为代表您希望更改其状态的奖励ID的整数值 。
* 使用 'Claim' 将奖励ID为要求 。 使用 'Deny' 将奖励标记为拒绝 。
* 使用 'Normalize' 会将奖励的状态设置为
* “ 未申请 ” 或 “ 已拒绝 ” 。
*
* Quest x Claim All Rewards
* Quest x Deny All Rewards
* Quest x Normalize All Rewards
* - 用你希望改变奖励的任务号替换 “ x ” 。
* 这将claim / deny / normalize任务的所有奖励 。
*
* -- -
*
* Quest x Change Subtext Entry To y
* - 将 “ x ” 替换为您要修改其潜台词的任务ID 。
* 将 “ y ” 替换为您希望将任务更改为的子文本条目ID 。
* 这将使潜台词 , 当在游戏中查看任务日志时 ,
* 显示在任务 “ x ” 的插件参数中找到的潜台词条目ID “ y ” 。
* 这是用于你希望在任务中途更新潜台词的时候 。
*
* -- -
*
* === === === === === === === === === === === === === === === === === === === === === === === === === =
* 指令
* === === === === === === === === === === === === === === === === === === === === === === === === === =
*
* 插件参数 'Lunatic Mode' 是为熟悉JavaScript的用户设计的 。
* 这些参数允许你添加额外的代码行到他们各自的函数
* 中 , 只要各自的任务日志函数在游戏中出现 。 它们的定
* 时将发生在功能发生之后 , 并且仅当它成功地传递改变时 。
* ( ... )
*
* -- -
*
* Before Create Windows
* After Create Windows
* Close Quest Menu
*
* -- -
*
* Quest Add
* Quest Remove
* Quest Complete
* Quest Fail
* Quest Available
*
* -- -
*
* Change Description
*
* -- -
*
* Show Objective
* Hide Objective
* Complete Objective
* Fail Objective
* Normalize Objective
*
* -- -
*
* Show Reward
* Hide Reward
* Claim Reward
* Deny Reward
* Normalize Reward
*
* -- -
*
* Change Subtext
*
* -- -
*
* 有几个规则需要注意 。 每个插件函数的代码只有在满足
* 这些规则时才会运行 :
*
* 1. 代码将为每个任务或任务属性的改变而运行 。 这意味
* 着 , 如果你使用一个插件命令 ,
* 一次改变一组任务或任务属性 ,
* 代码将为每个任务或任务属性单独运行多次 。
*
* 2. 代码只有在任务或任务属性成功更改的情况下才会运行 。
* 例如 , 如果一个任务已经设置为 'Failed' ,
* 运行插件命令再次失败该任务将不会触发
* Lunatic Mode代码再次运行 。
*
* 3. 当任务第一次被添加时 , 任何默认属性都不会触发Lunatic Mode
* 例如 , 如果被添加的任务的目标1和2从一开始就已经可见 ,
* 那么 , Lunatic Mode代码将不会运行1和2
* ...
*
* 确保您理解这些规则 ,
* 这样您就知道是什么控制着自定义代码是否运行 。
* === === === === === === === === === === === === === === === === === === === === === === === === === =
* 脚本调用
* === === === === === === === === === === === === === === === === === === === === === === === === === =
*
* -- - 控制变量事件的脚本调用 -- -
*
*
* $gameSystem . totalQuestsAvailable ( )
* - 将变量值设置为可用任务数 。
*
* $gameSystem . totalQuestsCompleted ( )
* - 将变量值设置为已完成任务的数量 。
*
* $gameSystem . totalQuestsFailed ( )
* - 将变量值设置为失败任务数 。
*
* $gameSystem . totalQuestsKnown ( )
* - 将变量值设置为已知任务总数 。
*
* $gameSystem . totalQuestsInGame ( )
* - 将变量的值设置为游戏中任务的总数 。
*
* $gameSystem . totalQuestTypes ( category , type )
* - 将 'category' 替换为 'available' , 'completed' , 'failed' , 或
* 'all' 来指定类别 。 用任务类型替换 'type'
* ( ie . 'Main Quests' , 'Side Quests' , 'Character Quests' , etc ) .
* ( 主线任务 、 支线任务 、 角色任务等 ) 。 包括类别和类型周围的引号
* 例子 : $gameSystem . totalQuestTypes ( 'all' , 'Main Quests' )
*
* $gameSystem . getQuestDescriptionIndex ( questId )
* - 将 'questId' 替换为您正在寻找的任务的ID .
* 这将设置变量以显示当前正在使用的描述 。
* 例子 : $gameSystem . getQuestDescriptionIndex ( 50 )
*
* $gameSystem . totalVisibleQuestObjectives ( questId )
* - 将 'questId' 替换为您正在寻找的任务的ID 。
* 这将设置变量来显示当前所选任务中
* 有多少任务目标是可见的 。
* 例子 : $gameSystem . totalVisibleQuestObjectives ( 50 )
*
* $gameSystem . totalQuestObjectives ( questId )
* - 将 'questId' 替换为您正在寻找的任务的ID 。
* 这将设置变量来显示所选任务设置的任务目标总数 。
* ...
* 例子 : $gameSystem . totalQuestObjectives ( 50 )
*
* $gameSystem . totalVisibleQuestRewards ( questId )
* - 将 'questId' 替换为您正在寻找的任务的ID 。
* 这将设置变量来显示所选
* 任务当前可见的任务奖励数量 。
* 例子 : $gameSystem . totalVisibleQuestRewards ( 50 )
*
* $gameSystem . totalQuestRewards ( questId )
* - 将 'questId' 替换为您正在寻找的任务的ID 。
* 这将设置变量来显示所选
* 任务设置的任务奖励总数 。
* 例子 : $gameSystem . totalQuestRewards ( 50 )
*
* $gameSystem . getQuestSubtextIndex ( questId )
* - 将 'questId' 替换为您正在寻找的任务的ID 。
* 这将设置变量以显示当前正在使用的子文本 。
* 例子 : $gameSystem . getQuestSubtextIndex ( 50 )
*
*
* -- - 条件分支事件的脚本调用 -- -
*
*
* $gameSystem . isQuestObjectiveCompleted ( questId , objectiveId )
* - 将 'questId' 替换为您正在寻找的任务的ID 。
* 将 'objectiveId' 替换为您要检查的目标的ID 。
* 这将检查条件分支的脚本调用 ,
* 这将检查条件分支的脚本调用 , ( true ) 还是未完成 ( false ) .
* 例子 : $gameSystem . isQuestObjectiveCompleted ( 50 , 1 )
*
* $gameSystem . isQuestObjectiveFailed ( questId , objectiveId )
* - 将 'questId' 替换为您正在寻找的任务的ID 。
* 将 'objectiveId' 替换为您要检查的目标的ID 。
* 这将在条件分支的脚本调用中进行检查 ,
* 以查看目标的状态是失败 ( true ) 还是不失败 ( false ) .
* 例子 : $gameSystem . isQuestObjectiveFailed ( 50 , 1 )
*
* $gameSystem . isQuestObjectiveUncleared ( questId , objectiveId )
* - 将 'questId' 替换为您正在寻找的任务的ID 。
* 将 'objectiveId' 替换为您要检查的目标的ID 。
* 这将在条件分支的脚本调用中进行检查 ,
* 以查看目标的状态是既未完成也未失败 ( true ) 还是还是既未完成也未失败 ( false ) .
* 例子 : $gameSystem . isQuestObjectiveUncleared ( 50 , 1 )
*
* $gameSystem . isQuestRewardClaimed ( questId , rewardId )
* - 将 'questId' 替换为您正在寻找的任务的ID 。
* 用您要检查的奖励的ID替换 'rewardId'
* 这将在条件分支的脚本调用中进行检查 ,
* 以查看奖励的状态是声明的 ( true ) 还是未声明的 ( false ) .
* 例子 : $gameSystem . isQuestRewardClaimed ( 50 , 1 )
*
* $gameSystem . isQuestRewardDenied ( questId , rewardId )
* - 将 'questId' 替换为您正在寻找的任务的ID 。
* 用您要检查的奖励的ID替换 'rewardId'
* 这将在条件分支的脚本调用中进行检查 ,
* 以查看奖励的状态是拒绝 ( true ) 还是不拒绝 ( false ) .
* 例子 : $gameSystem . isQuestRewardDenied ( 50 , 1 )
*
* $gameSystem . isQuestRewardUnclaimed ( questId , rewardId )
* - 将 'questId' 替换为您正在寻找的任务的ID 。
* 用您要检查的奖励的ID替换 'rewardId'
* 这将在条件分支的脚本调用中进行检查 ,
* 以查看奖励的状态是既未声明也未拒绝 ( true ) 还是既未声明也未拒绝 ( false ) .
* 例子 : $gameSystem . isQuestRewardUnclaimed ( 50 , 1 )
* === === === === === === === === === === === === === === === === === === === === === === === === === =
* Changelog
* === === === === === === === === === === === === === === === === === === === === === === === === === =
*
* Version 1.01 :
* - Fixed some bugs regarding certain plugin commands not working properly .
*
* Version 1.00 :
* - Finished Plugin !
*
* === === === === === === === === === === === === === === === === === === === === === === === === === =
* End of Help
* === === === === === === === === === === === === === === === === === === === === === === === === === =
*
* @ param -- - 魔改 -- -
* @ default
*
* @ param BarWidth
* @ text 条组宽度
* @ parent -- - 魔改 -- -
* @ type number
* @ desc 这是添加到右侧滑块的宽度值 , 默认值28
* @ default 28
*
* @ param BarPadding
* @ text 条组空隙
* @ parent -- - 魔改 -- -
* @ type number
* @ desc 这是条组和文本预留的空隙 , 默认值为6
* @ default 6
*
* @ param BarBackColor
* @ text 底层条背景颜色
* @ parent -- - 魔改 -- -
* @ type text
* @ desc 支持 # 000000 ~ # ffffff 和 rgba ( 0 ~ 255 , 0 ~ 255 , 0 ~ 255 , 0 ~ 1 ) 两种颜色文本的格式
* @ default rgba ( 0 , 0 , 0 , 0.5 )
*
* @ param BarBlockColor
* @ text 滑动条颜色
* @ parent -- - 魔改 -- -
* @ type text
* @ desc 支持 # 000000 ~ # ffffff 和 rgba ( 0 ~ 255 , 0 ~ 255 , 0 ~ 255 , 0 ~ 1 ) 两种颜色文本的格式
* @ default rgba ( 160 , 160 , 160 , 0.8 )
*
* @ param BarTouchColor
* @ text 选中滑动条颜色
* @ parent -- - 魔改 -- -
* @ type text
* @ desc 支持 # 000000 ~ # ffffff 和 rgba ( 0 ~ 255 , 0 ~ 255 , 0 ~ 255 , 0 ~ 1 ) 两种颜色文本的格式
* @ default rgba ( 200 , 200 , 200 , 1 )
*
*
* @ param BarBlockDis
* @ text 滑动条间距
* @ parent -- - 魔改 -- -
* @ type number
* @ desc 这是滑动条和背景条之间的间距 , 默认值为2
* @ default 2
*
*
*
*
*
*
*
*
* @ param -- - Main Menu -- -
* @ text 主菜单
* @ default
*
* @ param Quest Command
* @ text 任务命令
* @ parent -- - Main Menu -- -
* @ desc 这是用于主菜单命令的文本
* @ default 任务
*
* @ param Show Command
* @ text 显示命令
* @ parent -- - Main Menu -- -
* @ type boolean
* @ on Show
* @ off Hide
* @ desc 默认在主菜单显示Quest命令 ?
* NO - false YES - true
* @ default true
*
* @ param Enable Command
* @ text 启用命令
* @ parent -- - Main Menu -- -
* @ type boolean
* @ on Enable
* @ off Disable
* @ desc 默认情况下 , 在主菜单中启用合成命令 ?
* NO - false YES - true
* @ default true
*
* @ param Auto Place Command
* @ text 自动放置命令
* @ parent -- - Main Menu -- -
* @ type boolean
* @ on YES
* @ off NO
* @ desc 允许这个插件决定菜单放置位置 ?
* NO - false YES - true
* @ default true
*
* @ param -- - Quest Menu -- -
* @ text 任务菜单
* @ default
*
* @ param Quest Category Window
* @ text 任务类别窗口
* @ parent -- - Quest Menu -- -
* @ type struct < CategoryWindow >
* @ desc 在这里调整任务类别窗口的属性
* @ default { "---Categories---" : "" , "Category Order" : "[\"available\",\"completed\",\"failed\",\"all\"]" , "Available Text" : "\\i[192]正进行任务 (%1)" , "Completed Text" : "\\i[191]已完成任务 (%1)" , "Failed Text" : "\\i[194]失败的任务 (%1)" , "All Text" : "\\i[189]所有的任务 (%1)" , "Cancel Text" : "\\i[161]取消" , "---Window Settings---" : "" , "X" : "0" , "Y" : "0" , "Width" : "Graphics.boxWidth / 3" , "Height" : "this.fittingHeight(this.numVisibleRows())" , "Rows" : "4" , "Columns" : "1" , "Line Height" : "36" , "Font Face" : "GameFont" , "Font Size" : "28" , "Standard Padding" : "18" , "Text Padding" : "6" , "Text Alignment" : "left" , "Standard Opacity" : "255" , "Back Opacity" : "192" , "Window Skin" : "Window" }
*
* @ param Quest List Window
* @ text 任务列表窗口
* @ parent -- - Quest Menu -- -
* @ type struct < ListWindow >
* @ desc 在这里调整任务列表窗口的属性 。
* @ default { "---Types---" : "" , "Show Types" : "true" , "Type Order" : "[\"\\\\c[6]主线任务\",\"\\\\c[4]支线任务\",\"\\\\c[3]特殊任务\",\"\\\\c[5]教程任务\"]" , "List Open Symbol" : "-" , "List Closed Symbol" : "+" , "Type Text Format" : "%1%2 (%3)" , "Quest Indent" : "0" , "Show Empty" : "false" , "Read Quest" : "\\i[121]查看任务" , "Cancel" : "\\i[16]退出" , "---Window Settings---" : "" , "X" : "0" , "Y" : "Graphics.boxHeight - height" , "Width" : "Graphics.boxWidth / 3" , "Height" : "Graphics.boxHeight - this.fittingHeight(4)" , "Line Height" : "36" , "Font Face" : "GameFont" , "Font Size" : "28" , "Standard Padding" : "18" , "Text Padding" : "6" , "Standard Opacity" : "255" , "Back Opacity" : "192" , "Type Alignment" : "left" , "Quest Alignment" : "left" , "Window Skin" : "Window" }
*
* @ param Quest Title Window
* @ text 任务标题窗口
* @ parent -- - Quest Menu -- -
* @ type struct < TitleWindow >
* @ desc 在这里调整任务标题窗口的属性 。
* @ default { "---Window Settings---" : "" , "No Quest Title" : "\\c[4]❀ 任务日志 ❀" , "X" : "Graphics.boxWidth - width" , "Y" : "0" , "Width" : "Graphics.boxWidth * 2 / 3" , "Height" : "this.fittingHeight(1)" , "Line Height" : "36" , "Font Face" : "GameFont" , "Font Size" : "28" , "Standard Padding" : "18" , "Text Padding" : "6" , "Text Alignment" : "center" , "Standard Opacity" : "255" , "Back Opacity" : "192" , "Window Skin" : "Window" }
*
* @ param Quest Data Window
* @ text 任务数据窗口
* @ parent -- - Quest Menu -- -
* @ type struct < DataWindow >
* @ desc 在这里调整任务数据窗口的属性 。
* @ default { "---Data Settings---" : "" , "No Data Text" : "\"欢迎来到 \\\\c[4]任务系统\\\\c[0].\\n\"" , "Quest Data Format" : "\"\\\\c[4]任务难度:\\\\c[0] %2\\n\\\\c[4]任务发布:\\\\c[0] %3\\n\\\\c[4]发布地点:\\\\c[0] %4\\n\\n\\\\c[4]任务描述:\\\\c[0]\\n%5\\n\\n\\\\c[4]任务目标:\\\\c[0]\\n%6\\n\\n\\\\c[4]任务奖励:\\\\c[0]\\n%7\\n\\n%8\"" , "Uncleared Objective" : "\\i[160]%1" , "Completed Objective" : "\\i[165]%1" , "Failed Objective" : "\\i[162]%1" , "Unclaimed Reward" : "\\i[160]%1" , "Claimed Reward" : "\\i[163]%1" , "Denied Reward" : "\\i[161]%1" , "Load Delay" : "30" , "---Window Settings---" : "" , "X" : "Graphics.boxWidth - width" , "Y" : "Graphics.boxHeight - height" , "Width" : "Graphics.boxWidth * 2 / 3" , "Height" : "Graphics.boxHeight - this.fittingHeight(1)" , "Line Height" : "36" , "Font Face" : "GameFont" , "Font Size" : "28" , "Standard Padding" : "18" , "Text Padding" : "6" , "Standard Opacity" : "255" , "Back Opacity" : "192" , "Window Skin" : "Window" , "Scroll Speed" : "4" }
*
* @ param Lunatic Mode
* @ text 疯狂模式
* @ parent -- - Quest Menu -- -
* @ type struct < LunaticMode >
* @ desc 为插件的每个主要功能添加自定义代码 。
* @ default { "---Quest Menu---" : "" , "Before Create Windows" : "\"// Variables\\n// background - background image used for the menu\\n// windowLayer - sprite layer that contains all windows\\n//\\n// background.bitmap = ImageManager.loadTitle1(\\\"Book\\\");\\n// this.fitScreen(background);\"" , "After Create Windows" : "\"// Variables\\n// background - background image used for the menu\\n// windowLayer - sprite layer that contains all windows\"" , "Close Quest Menu" : "\"// Variables\\n// background - background image used for the menu\\n// windowLayer - sprite layer that contains all windows\"" , "---Quest Status---" : "" , "Quest Add" : "\"// Variables:\\n// questId - ID of the quest being added\\n//\\n// console.log('Quest ' + questId + ' successfully added!')\"" , "Quest Remove" : "\"// Variables:\\n// questId - ID of the quest being removed\\n//\\n// console.log('Quest ' + questId + ' successfully removed!')\"" , "Quest Complete" : "\"// Variables:\\n// questId - ID of the quest set to completed\\n//\\n// console.log('Quest ' + questId + ' status changed to Completed!')\"" , "Quest Fail" : "\"// Variables:\\n// questId - ID of the quest set to failed\\n//\\n// console.log('Quest ' + questId + ' status changed to Failed!')\"" , "Quest Available" : "\"// Variables:\\n// questId - ID of the quest set to available\\n//\\n// console.log('Quest ' + questId + ' status changed to Available!')\"" , "---Description---" : "" , "Change Description" : "\"// Variables:\\n// questId - ID of the quest whose description is changed\\n// index - Description index being changed to\\n//\\n// console.log('Quest ' + questId + ' description index changed to ' + index)\"" , "---Objectives---" : "" , "Show Objective" : "\"// Variables:\\n// questId - ID of the quest whose objectives are altered\\n// objectiveId - ID of the objective being shown\\n//\\n// console.log('Quest ' + questId + ' objective ' + objectiveId + ' changed to shown!')\"" , "Hide Objective" : "\"// Variables:\\n// questId - ID of the quest whose objectives are altered\\n// objectiveId - ID of the objective being hidden\\n//\\n// console.log('Quest ' + questId + ' objective ' + objectiveId + ' changed to hidden!')\"" , "Complete Objective" : "\"// Variables:\\n// questId - ID of the quest whose objectives are altered\\n// objectiveId - ID of the objective being completed\\n//\\n// console.log('Quest ' + questId + ' objective ' + objectiveId + ' changed to completed!')\"" , "Fail Objective" : "\"// Variables:\\n// questId - ID of the quest whose objectives are altered\\n// objectiveId - ID of the objective having failed\\n//\\n// console.log('Quest ' + questId + ' objective ' + objectiveId + ' changed to failed!')\"" , "Normalize Objective" : "\"// Variables:\\n// questId - ID of the quest whose objectives are altered\\n// objectiveId - ID of the objective normalized\\n//\\n// console.log('Quest ' + questId + ' objective ' + objectiveId + ' changed to normal!')\"" , "---Rewards---" : "" , "Show Reward" : "\"// Variables:\\n// questId - ID of the quest whose rewards are altered\\n// rewardId - ID of the reward being shown\\n//\\n// console.log('Quest ' + questId + ' reward ' + rewardId + ' becomes shown!')\"" , "Hide Reward" : "\"// Variables:\\n// questId - ID of the quest whose rewards are altered\\n// rewardId - ID of the reward being hidden\\n//\\n// console.log('Quest ' + questId + ' reward ' + rewardId + ' becomes hidden!')\"" , "Claim Reward" : "\"// Variables:\\n// questId - ID of the quest whose rewards are altered\\n// rewardId - ID of the reward becoming claimed\\n//\\n// console.log('Quest ' + questId + ' reward ' + rewardId + ' is now claimed!')\"" , "Deny Reward" : "\"// Variables:\\n// questId - ID of the quest whose rewards are altered\\n// rewardId - ID of the reward becoming denied\\n//\\n// console.log('Quest ' + questId + ' reward ' + rewardId + ' is now denied!')\"" , "Normalize Reward" : "\" // Variables:\\n// questId - ID of the quest whose rewards are altered\\n// rewardId - ID of the reward normalized\\n//\\n// console.log('Quest ' + questId + ' reward ' + rewardId + ' is no
*
* @ param -- - Quest List -- -
* @ text 任务列表
* @ default
*
* @ param Quest 1
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc 修改此任务条目使用的数据 。
* 有关每个设置的更多信息 , 请参考帮助 。
* @ default
*
* @ param Quest 2
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc 修改此任务条目使用的数据 。
* 有关每个设置的更多信息 , 请参考帮助 。
* @ default
*
* @ param Quest 3
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc 修改此任务条目使用的数据 。
* 有关每个设置的更多信息 , 请参考帮助 。
* @ default
*
* @ param Quest 4
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc 修改此任务条目使用的数据 。
* 有关每个设置的更多信息 , 请参考帮助 。 ( 后面以此类推 )
* @ default
*
* @ param Quest 5
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 6
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 7
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 8
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 9
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 10
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 11
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 12
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 13
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 14
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 15
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 16
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 17
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 18
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 19
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 20
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 21
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 22
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 23
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 24
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 25
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 26
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 27
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 28
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 29
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 30
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 31
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 32
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 33
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 34
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 35
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 36
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 37
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 38
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 39
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 40
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 41
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 42
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 43
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 44
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 45
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 46
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 47
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 48
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 49
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 50
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 51
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 52
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 53
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 54
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 55
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 56
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 57
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 58
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 59
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 60
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 61
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 62
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 63
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 64
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 65
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 66
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 67
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 68
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 69
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 70
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 71
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 72
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 73
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 74
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 75
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 76
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 77
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 78
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 79
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 80
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 81
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 82
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 83
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 84
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 85
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 86
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 87
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 88
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 89
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 90
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 91
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 92
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 93
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 94
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 95
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 96
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 97
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 98
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 99
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
*
* @ param Quest 100
* @ parent -- - Quest List -- -
* @ type struct < Quest >
* @ desc Modify the data used by this quest entry .
* Refer to Help for more information about each setting .
* @ default
* /
//=============================================================================
/ * P l u g i n P a r a m e t e r S t r u c t u r e S e t t i n g s
*= === === === === === === === === === === === === === === === === === === === === === === === === === =
* /
/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* CategoryWindow Parameter Structure
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
* /
/ * ~ s t r u c t ~ C a t e g o r y W i n d o w :
* @ param -- - Categories -- -
* @ text -- - 类别 -- -
* @ default
*
* @ param Category Order
* @ text 类别的顺序
* @ parent -- - Categories -- -
* @ type string [ ]
* @ desc 任务类型类别的顺序列表 。
* Options : available , completed , failed , all , cancel
* @ default [ "available" , "completed" , "failed" , "all" ]
*
* @ param Available Text
* @ parent -- - Categories -- -
* @ desc 用于可用任务的文本 。
* Text codes allowed . % 1 - Quest Number
* @ default \ i [ 192 ] 进行中的任务 ( % 1 )
*
* @ param Completed Text
* @ parent -- - Categories -- -
* @ desc 用于已完成任务的文本 。
* Text codes allowed . % 1 - Quest Number
* @ default \ i [ 191 ] 已完成的任务 ( % 1 )
*
* @ param Failed Text
* @ parent -- - Categories -- -
* @ desc 用于失败任务的文本 。
* Text codes allowed . % 1 - Quest Number
* @ default \ i [ 194 ] 失败的任务 ( % 1 )
*
* @ param All Text
* @ parent -- - Categories -- -
* @ desc 用于所有任务的文本 。
* Text codes allowed . % 1 - Quest Number
* @ default \ i [ 189 ] 全部任务 ( % 1 )
*
* @ param Cancel Text
* @ parent -- - Categories -- -
* @ desc 用于关闭选项的文本 。
* Text codes allowed .
* @ default \ i [ 161 ] Close
*
* @ param -- - Window Settings -- -
* @ default
*
* @ param X
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 0
* @ option Graphics . boxWidth - width
* @ desc 窗口的X位置公式 。
* @ default 0
*
* @ param Y
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 0
* @ option Graphics . boxHeight - height
* @ desc 窗口Y位置的公式 。
* @ default 0
*
* @ param Width
* @ parent -- - Window Settings -- -
* @ type combo
* @ option Graphics . boxWidth
* @ option Graphics . boxWidth / 2
* @ option Graphics . boxWidth / 3
* @ option Graphics . boxWidth * 2 / 3
* @ option Graphics . boxWidth / 4
* @ option Graphics . boxWidth * 3 / 4
* @ option Graphics . boxWidth / 5
* @ option Graphics . boxWidth * 4 / 5
* @ desc 窗口宽度公式 。
* @ default Graphics . boxWidth / 3
*
* @ param Height
* @ parent -- - Window Settings -- -
* @ type combo
* @ option this . fittingHeight ( 1 )
* @ option this . fittingHeight ( 2 )
* @ option this . fittingHeight ( 3 )
* @ option this . fittingHeight ( 4 )
* @ option this . fittingHeight ( 5 )
* @ option this . fittingHeight ( this . numVisibleRows ( ) )
* @ desc 窗口高度公式 。
* @ default this . fittingHeight ( this . numVisibleRows ( ) )
*
* @ param Rows
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 1
* @ option 2
* @ option 3
* @ option 4
* @ desc 窗口行数的公式 。
* @ default 4
*
* @ param Columns
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 1
* @ option 2
* @ option 3
* @ option 4
* @ desc 窗口列数的公式 。
* @ default 1
*
* @ param Line Height
* @ parent -- - Window Settings -- -
* @ type number
* @ min 1
* @ desc 用于每个行条目的高度 .
* @ default 36
*
* @ param Font Face
* @ parent -- - Window Settings -- -
* @ type combo
* @ option GameFont
* @ option Arial
* @ option Courier New
* @ option SimHei
* @ option Heiti TC
* @ option Dotum
* @ option AppleGothic
* @ desc 游戏中使用的字体 。
* @ default GameFont
*
* @ param Font Size
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 20
* @ option 28
* @ option Window _Base . prototype . standardFontSize . call ( this ) ;
* @ desc 标准字体大小的公式 。
* @ default 28
*
* @ param Standard Padding
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 0
* @ option 10
* @ option 18
* @ option 24
* @ desc 窗口填充的公式 。
* @ default 18
*
* @ param Text Padding
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 0
* @ option 6
* @ option 12
* @ desc 显示文本前使用的填充公式 。
* @ default 6
*
* @ param Text Alignment
* @ parent -- - Window Settings -- -
* @ type combo
* @ option left
* @ option center
* @ option right
* @ desc 选择窗口文本的对齐方式 。
* left center right
* @ default left
*
* @ param Standard Opacity
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 0
* @ option 128
* @ option 192
* @ option 255
* @ desc 窗口使用的标准不透明度公式 。
* @ default 255
*
* @ param Back Opacity
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 0
* @ option 128
* @ option 192
* @ option 255
* @ desc 窗口使用的不透明度公式 。
* @ default 192
*
* @ param Window Skin
* @ parent -- - Window Settings -- -
* @ type file
* @ dir img / system /
* @ desc 使用了窗口皮肤 。
* @ default Window
*
* /
/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* ListWindow Parameter Structure
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
* /
/ * ~ s t r u c t ~ L i s t W i n d o w :
* @ param -- - Types -- -
* @ default
*
* @ param Show Types
* @ parent -- - Types -- -
* @ type boolean
* @ on Show
* @ off Hide
* @ desc 在任务列表中显示任务类型 ?
* @ default true
*
* @ param Type Order
* @ parent -- - Types -- -
* @ type string [ ]
* @ desc 任务列表类型的顺序列表 。
* Name these however you want . Text codes are allowed .
* @ default [ "\\c[6]Main Quests" , "\\c[4]Side Quests" , "\\c[3]Character Quests" , "\\c[5]Tutorial Quests" ]
*
* @ param List Open Symbol
* @ parent -- - Types -- -
* @ desc 显示类型是否打开的文本指示器 。
* 打开的任务类型将显示该任务类型中的所有任务 。
* @ default -
*
* @ param List Closed Symbol
* @ parent -- - Types -- -
* @ desc 显示类型是否关闭的文本指示器 。
* 封闭类型不会显示该任务类型中的所有任务 。
* @ default +
*
* @ param Type Text Format
* @ parent -- - Types -- -
* @ desc 用于显示任务类型的格式 。 允许文本代码 。
* % 1 - Open / Closed % 2 - Type Name % 3 - Quest Number
* @ default % 1 % 2 ( % 3 )
*
* @ param Quest Indent
* @ parent -- - Types -- -
* @ number
* @ number 0
* @ desc 任务缩进多少像素 ?
* @ default 0
*
* @ param Show Empty
* @ parent -- - Types -- -
* @ type boolean
* @ on Show
* @ off Hide
* @ desc 显示空的任务类型 ? 如果没有 ,
* 没有任何任务的类型将从列表中隐藏 。
* @ default false
*
* @ param Read Quest
* @ parent -- - Types -- -
* @ desc 'Read Quest' 选项使用的词汇 。
* 您可以使用文本代码 。
* @ default \ \ i [ 121 ] Read Quest
*
* @ param Cancel
* @ parent -- - Types -- -
* @ desc 用于 'Cancel' 选项的词汇 。
* @ default \ \ i [ 16 ] Cancel
*
* @ param -- - Window Settings -- -
* @ default
*
* @ param X
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 0
* @ option Graphics . boxWidth - width
* @ desc 窗口的X位置公式 .
* @ default 0
*
* @ param Y
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 0
* @ option Graphics . boxHeight - height
* @ desc Formula for the window ' s Y position .
* @ default Graphics . boxHeight - height
*
* @ param Width
* @ parent -- - Window Settings -- -
* @ type combo
* @ option Graphics . boxWidth
* @ option Graphics . boxWidth / 2
* @ option Graphics . boxWidth / 3
* @ option Graphics . boxWidth * 2 / 3
* @ option Graphics . boxWidth / 4
* @ option Graphics . boxWidth * 3 / 4
* @ option Graphics . boxWidth / 5
* @ option Graphics . boxWidth * 4 / 5
* @ desc 窗口宽度公式 。
* @ default Graphics . boxWidth / 3
*
* @ param Height
* @ parent -- - Window Settings -- -
* @ type combo
* @ option Graphics . boxHeight - this . fittingHeight ( 1 )
* @ option Graphics . boxHeight - this . fittingHeight ( 2 )
* @ option Graphics . boxHeight - this . fittingHeight ( 3 )
* @ option Graphics . boxHeight - this . fittingHeight ( 4 )
* @ option Graphics . boxHeight - this . fittingHeight ( 5 )
* @ desc 窗口高度公式 。
* @ default Graphics . boxHeight - this . fittingHeight ( 4 )
*
* @ param Line Height
* @ parent -- - Window Settings -- -
* @ type number
* @ min 1
* @ desc The height used for each line entry .
* @ default 36
*
* @ param Font Face
* @ parent -- - Window Settings -- -
* @ type combo
* @ option GameFont
* @ option Arial
* @ option Courier New
* @ option SimHei
* @ option Heiti TC
* @ option Dotum
* @ option AppleGothic
* @ desc 游戏中使用的字体 。
* @ default GameFont
*
* @ param Font Size
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 20
* @ option 28
* @ option Window _Base . prototype . standardFontSize . call ( this ) ;
* @ desc 标准字体大小的公式 。
* @ default 28
*
* @ param Standard Padding
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 0
* @ option 10
* @ option 18
* @ option 24
* @ desc 窗口填充的公式 。
* @ default 18
*
* @ param Text Padding
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 0
* @ option 6
* @ option 12
* @ desc 显示文本前使用的填充公式 。
* @ default 6
*
* @ param Standard Opacity
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 0
* @ option 128
* @ option 192
* @ option 255
* @ desc 窗口使用的标准不透明度公式 。
* @ default 255
*
* @ param Back Opacity
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 0
* @ option 128
* @ option 192
* @ option 255
* @ desc 窗口使用的不透明度公式 。
* @ default 192
*
* @ param Type Alignment
* @ parent -- - Window Settings -- -
* @ type combo
* @ option left
* @ option center
* @ option right
* @ desc 选择任务类型的对齐方式 。
* left center right
* @ default left
*
* @ param Quest Alignment
* @ parent -- - Window Settings -- -
* @ type combo
* @ option left
* @ option center
* @ option right
* @ desc 选择什么类型的路线用于任务本身 。
* left center right
* @ default left
*
* @ param Window Skin
* @ parent -- - Window Settings -- -
* @ type file
* @ dir img / system /
* @ desc 使用了窗口皮肤 。
* @ default Window
*
* /
/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* TitleWindow Parameter Structure
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
* /
/ * ~ s t r u c t ~ T i t l e W i n d o w :
* @ param -- - Window Settings -- -
* @ default
*
* @ param No Quest Title
* @ parent -- - Window Settings -- -
* @ desc 当没有选择任务时显示这个 。
* 允许文本代码 。
* @ default \ \ c [ 4 ] Quest Journal
*
* @ param X
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 0
* @ option Graphics . boxWidth - width
* @ desc 窗口的X位置公式 。
* @ default Graphics . boxWidth - width
*
* @ param Y
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 0
* @ option Graphics . boxHeight - height
* @ desc 窗口Y位置的公式 。
* @ default 0
*
* @ param Width
* @ parent -- - Window Settings -- -
* @ type combo
* @ option Graphics . boxWidth
* @ option Graphics . boxWidth / 2
* @ option Graphics . boxWidth / 3
* @ option Graphics . boxWidth * 2 / 3
* @ option Graphics . boxWidth / 4
* @ option Graphics . boxWidth * 3 / 4
* @ option Graphics . boxWidth / 5
* @ option Graphics . boxWidth * 4 / 5
* @ desc 窗口宽度公式 。
* @ default Graphics . boxWidth * 2 / 3
*
* @ param Height
* @ parent -- - Window Settings -- -
* @ type combo
* @ option this . fittingHeight ( 1 )
* @ option this . fittingHeight ( 2 )
* @ option this . fittingHeight ( 3 )
* @ option this . fittingHeight ( 4 )
* @ option this . fittingHeight ( 5 )
* @ desc 窗口高度公式 。
* @ default this . fittingHeight ( 1 )
*
* @ param Line Height
* @ parent -- - Window Settings -- -
* @ type number
* @ min 1
* @ desc 用于每个行条目的高度 。
* @ default 36
*
* @ param Font Face
* @ parent -- - Window Settings -- -
* @ type combo
* @ option GameFont
* @ option Arial
* @ option Courier New
* @ option SimHei
* @ option Heiti TC
* @ option Dotum
* @ option AppleGothic
* @ desc 游戏中使用的字体 。
* @ default GameFont
*
* @ param Font Size
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 20
* @ option 28
* @ option Window _Base . prototype . standardFontSize . call ( this ) ;
* @ desc 标准字体大小的公式 。
* @ default 28
*
* @ param Standard Padding
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 0
* @ option 10
* @ option 18
* @ option 24
* @ desc 窗口填充的公式 。
* @ default 18
*
* @ param Text Padding
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 0
* @ option 6
* @ option 12
* @ desc 显示文本前使用的填充公式 。
* @ default 6
*
* @ param Text Alignment
* @ parent -- - Window Settings -- -
* @ type combo
* @ option left
* @ option center
* @ option right
* @ desc 选择窗口文本的对齐方式 。
* left center right
* @ default center
*
* @ param Standard Opacity
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 0
* @ option 128
* @ option 192
* @ option 255
* @ desc 窗口使用的标准不透明度公式 。
* @ default 255
*
* @ param Back Opacity
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 0
* @ option 128
* @ option 192
* @ option 255
* @ desc 窗口使用的不透明度公式 。
* @ default 192
*
* @ param Window Skin
* @ parent -- - Window Settings -- -
* @ type file
* @ dir img / system /
* @ desc 使用了窗口皮肤 。
* @ default Window
*
* /
/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* DataWindow Parameter Structure
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
* /
/ * ~ s t r u c t ~ D a t a W i n d o w :
* @ param -- - Data Settings -- -
* @ text -- - 数据设置 -- -
* @ default
*
* @ param No Data Text
* @ text 没任务显示的文本
* @ parent -- - Data Settings -- -
* @ type note
* @ desc 没有任务数据时显示的文本 。
* @ default "欢迎您进入 \\c[4]任务系统\\c[0].\n\n暂时无任务可做! "
*
* @ param Quest Data Format
* @ parent -- - Data Settings -- -
* @ type note
* @ desc % 1 - Title , % 2 - Difficulty , % 3 - From , % 4 - Location
* % 5 - Desc , % 6 - 目标 , % 7 - 奖励 , % 8 - 潜台词
* @ default "\\{%1\\}\n\\c[4]Level:\\c[0] %2\n\\c[4]From:\\c[0] %3\n\\c[4]Location:\\c[0] %4\n\n\\c[4]Description:\\c[0]\n%5\n\n\\c[4]Objectives:\\c[0]\n%6\n\n\\c[4]Rewards:\\c[0]\n%7\n\n%8"
*
* @ param Uncleared Objective
* @ text 未明确的目标
* @ parent -- - Data Settings -- -
* @ desc 未清除任务目标的文本格式 。
* % 1 - 目标文本
* @ default \ i [ 160 ] % 1
*
* @ param Completed Objective
* @ parent -- - Data Settings -- -
* @ desc 已完成任务目标的文本格式 。
* % 1 - 目标文本
* @ default \ i [ 165 ] % 1
*
* @ param Failed Objective
* @ parent -- - Data Settings -- -
* @ desc 失败任务目标的文本格式 。
* % 1 - 目标文本
* @ default \ i [ 162 ] % 1
*
* @ param Unclaimed Reward
* @ parent -- - Data Settings -- -
* @ desc 无人领取任务奖励的文本格式 。
* % 1 - 奖励文本
* @ default \ i [ 160 ] % 1
*
* @ param Claimed Reward
* @ parent -- - Data Settings -- -
* @ desc 申请任务奖励的文本格式 。
* % 1 - 奖励文本
* @ default \ i [ 163 ] % 1
*
* @ param Denied Reward
* @ parent -- - Data Settings -- -
* @ desc 拒绝任务奖励的文本格式 。
* % 1 - 奖励文本
* @ default \ i [ 161 ] % 1
*
* @ param Load Delay
* @ parent -- - Data Settings -- -
* @ type number
* @ desc 帧中数据的加载时间延迟 。
* 这是为了防止引擎负担过重 。
* @ default 30
*
* @ param -- - Window Settings -- -
* @ default
*
* @ param X
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 0
* @ option Graphics . boxWidth - width
* @ desc 窗口的X位置公式 。
* @ default Graphics . boxWidth - width
*
* @ param Y
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 0
* @ option Graphics . boxHeight - height
* @ desc 窗口Y位置的公式 。
* @ default Graphics . boxHeight - height
*
* @ param Width
* @ parent -- - Window Settings -- -
* @ type combo
* @ option Graphics . boxWidth
* @ option Graphics . boxWidth / 2
* @ option Graphics . boxWidth / 3
* @ option Graphics . boxWidth * 2 / 3
* @ option Graphics . boxWidth / 4
* @ option Graphics . boxWidth * 3 / 4
* @ option Graphics . boxWidth / 5
* @ option Graphics . boxWidth * 4 / 5
* @ desc 窗口宽度公式 。
* @ default Graphics . boxWidth * 2 / 3
*
* @ param Height
* @ parent -- - Window Settings -- -
* @ type combo
* @ option Graphics . boxHeight - this . fittingHeight ( 1 )
* @ option Graphics . boxHeight - this . fittingHeight ( 2 )
* @ option Graphics . boxHeight - this . fittingHeight ( 3 )
* @ option Graphics . boxHeight - this . fittingHeight ( 4 )
* @ option Graphics . boxHeight - this . fittingHeight ( 5 )
* @ desc 窗口高度公式 。
* @ default Graphics . boxHeight - this . fittingHeight ( 1 )
*
* @ param Line Height
* @ parent -- - Window Settings -- -
* @ type number
* @ min 1
* @ desc 用于每个行条目的高度 。
* @ default 36
*
* @ param Font Face
* @ parent -- - Window Settings -- -
* @ type combo
* @ option GameFont
* @ option Arial
* @ option Courier New
* @ option SimHei
* @ option Heiti TC
* @ option Dotum
* @ option AppleGothic
* @ desc 游戏中使用的字体 。
* @ default GameFont
*
* @ param Font Size
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 20
* @ option 28
* @ option Window _Base . prototype . standardFontSize . call ( this ) ;
* @ desc 标准字体大小的公式 。
* @ default 28
*
* @ param Standard Padding
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 0
* @ option 10
* @ option 18
* @ option 24
* @ desc 窗口填充的公式 。
* @ default 18
*
* @ param Text Padding
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 0
* @ option 6
* @ option 12
* @ desc 显示文本前使用的填充公式 。
* @ default 6
*
* @ param Standard Opacity
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 0
* @ option 128
* @ option 192
* @ option 255
* @ desc 窗口使用的标准不透明度公式 。
* @ default 255
*
* @ param Back Opacity
* @ parent -- - Window Settings -- -
* @ type combo
* @ option 0
* @ option 128
* @ option 192
* @ option 255
* @ desc 窗口使用的不透明度公式 。
* @ default 192
*
* @ param Window Skin
* @ parent -- - Window Settings -- -
* @ type file
* @ dir img / system /
* @ desc 使用了窗口皮肤 。
* @ default Window
*
* @ param Scroll Speed
* @ parent -- - Window Settings -- -
* @ type number
* @ min 1
* @ desc 按下向上 / 向下键时窗口滚动的速度 。
* @ default 4
*
* /
/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* LunaticMode Parameter Structure
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
* /
/ * ~ s t r u c t ~ L u n a t i c M o d e :
* @ param -- - Quest Menu -- -
* @ default
*
* @ param Before Create Windows
* @ parent -- - Quest Menu -- -
* @ type note
* @ desc 这段代码将在为场景创建任何任务菜单之前运行 。
* ...
* @ default "// Variables\n// background - background image used for the menu\n// windowLayer - sprite layer that contains all windows\n//\n// background.bitmap = ImageManager.loadTitle1(\"Book\");\n// this.fitScreen(background);"
*
* @ param After Create Windows
* @ parent -- - Quest Menu -- -
* @ type note
* @ desc 这段代码将在为场景创建所有任务菜单后运行 。
* ...
* @ default "// Variables\n// background - background image used for the menu\n// windowLayer - sprite layer that contains all windows"
*
* @ param Close Quest Menu
* @ parent -- - Quest Menu -- -
* @ type note
* @ desc 这个代码将在任务菜单关闭时运行 。
* @ default "// Variables\n// background - background image used for the menu\n// windowLayer - sprite layer that contains all windows"
*
* @ param -- - Quest Status -- -
* @ default
*
* @ param Quest Add
* @ parent -- - Quest Status -- -
* @ type note
* @ desc 这段代码将在任务被成功添加到任务日志的任何时候运行 。
* ...
* @ default "// Variables:\n// questId - ID of the quest being added\n//\n// console.log('Quest ' + questId + ' successfully added!')"
*
* @ param Quest Remove
* @ parent -- - Quest Status -- -
* @ type note
* @ desc 这段代码将在任务成功从任务日志中移除时运行 。
* ...
* @ default "// Variables:\n// questId - ID of the quest being removed\n//\n// console.log('Quest ' + questId + ' successfully removed!')"
*
* @ param Quest Complete
* @ parent -- - Quest Status -- -
* @ type note
* @ desc 这段代码将在任务状态变为完成时运行 。
* ...
* @ default "// Variables:\n// questId - ID of the quest set to completed\n//\n// console.log('Quest ' + questId + ' status changed to Completed!')"
*
* @ param Quest Fail
* @ parent -- - Quest Status -- -
* @ type note
* @ desc 这段代码将在任务状态变为失败时运行 。
* ...
* @ default "// Variables:\n// questId - ID of the quest set to failed\n//\n// console.log('Quest ' + questId + ' status changed to Failed!')"
*
* @ param Quest Available
* @ parent -- - Quest Status -- -
* @ type note
* @ desc 这段代码将在任务状态变为可用时运行 。
* ...
* @ default "// Variables:\n// questId - ID of the quest set to available\n//\n// console.log('Quest ' + questId + ' status changed to Available!')"
*
* @ param -- - Description -- -
* @ default
*
* @ param Change Description
* @ parent -- - Description -- -
* @ type note
* @ desc 这段代码将在任务描述被修改成特定索引时运行 。
* ...
* @ default "// Variables:\n// questId - ID of the quest whose description is changed\n// index - Description index being changed to\n//\n// console.log('Quest ' + questId + ' description index changed to ' + index)"
*
* @ param -- - Objectives -- -
* @ default
*
* @ param Show Objective
* @ parent -- - Objectives -- -
* @ type note
* @ desc 这段代码将在任务目标显示出来的任何时候运行 。
* ...
* @ default "// Variables:\n// questId - ID of the quest whose objectives are altered\n// objectiveId - ID of the objective being shown\n//\n// console.log('Quest ' + questId + ' objective ' + objectiveId + ' changed to shown!')"
*
* @ param Hide Objective
* @ parent -- - Objectives -- -
* @ type note
* @ desc 这段代码会在任务目标隐藏的任何时候运行 。
* ...
* @ default "// Variables:\n// questId - ID of the quest whose objectives are altered\n// objectiveId - ID of the objective being hidden\n//\n// console.log('Quest ' + questId + ' objective ' + objectiveId + ' changed to hidden!')"
*
* @ param Complete Objective
* @ parent -- - Objectives -- -
* @ type note
* @ desc 这段代码将在任务目标完成时运行 。
* ...
* @ default "// Variables:\n// questId - ID of the quest whose objectives are altered\n// objectiveId - ID of the objective being completed\n//\n// console.log('Quest ' + questId + ' objective ' + objectiveId + ' changed to completed!')"
*
* @ param Fail Objective
* @ parent -- - Objectives -- -
* @ type note
* @ desc 这段代码将在任务目标失败的任何时候运行 。
* ...
* @ default "// Variables:\n// questId - ID of the quest whose objectives are altered\n// objectiveId - ID of the objective having failed\n//\n// console.log('Quest ' + questId + ' objective ' + objectiveId + ' changed to failed!')"
*
* @ param Normalize Objective
* @ parent -- - Objectives -- -
* @ type note
* @ desc 这段代码将在任务目标被规范化的任何时候运行 。
* ...
* @ default "// Variables:\n// questId - ID of the quest whose objectives are altered\n// objectiveId - ID of the objective normalized\n//\n// console.log('Quest ' + questId + ' objective ' + objectiveId + ' changed to normal!')"
*
* @ param -- - Rewards -- -
* @ default
*
* @ param Show Reward
* @ parent -- - Rewards -- -
* @ type note
* @ desc 这段代码将在任务奖励显示的任何时候运行 。
* ...
* @ default "// Variables:\n// questId - ID of the quest whose rewards are altered\n// rewardId - ID of the reward being shown\n//\n// console.log('Quest ' + questId + ' reward ' + rewardId + ' becomes shown!')"
*
* @ param Hide Reward
* @ parent -- - Rewards -- -
* @ type note
* @ desc 这段代码会在任务的奖励被隐藏时运行 。
* ...
* @ default "// Variables:\n// questId - ID of the quest whose rewards are altered\n// rewardId - ID of the reward being hidden\n//\n// console.log('Quest ' + questId + ' reward ' + rewardId + ' becomes hidden!')"
*
* @ param Claim Reward
* @ parent -- - Rewards -- -
* @ type note
* @ desc 这段代码将会在任务的任何时候运行 。
* ... .
* @ default "// Variables:\n// questId - ID of the quest whose rewards are altered\n// rewardId - ID of the reward becoming claimed\n//\n// console.log('Quest ' + questId + ' reward ' + rewardId + ' is now claimed!')"
*
* @ param Deny Reward
* @ parent -- - Rewards -- -
* @ type note
* @ desc 这段代码将在任务奖励被拒绝的任何时候运行 。
* ...
* @ default "// Variables:\n// questId - ID of the quest whose rewards are altered\n// rewardId - ID of the reward becoming denied\n//\n// console.log('Quest ' + questId + ' reward ' + rewardId + ' is now denied!')"
*
* @ param Normalize Reward
* @ parent -- - Rewards -- -
* @ type note
* @ desc 这段代码将在任务奖励正常化的任何时候运行 。
* ...
* @ default "// Variables:\n// questId - ID of the quest whose rewards are altered\n// rewardId - ID of the reward normalized\n//\n// console.log('Quest ' + questId + ' reward ' + rewardId + ' is normalized!')"
*
* @ param -- - Subtext -- -
* @ default
*
* @ param Change Subtext
* @ parent -- - Subtext -- -
* @ type note
* @ desc 这段代码将在任何时候任务的潜台词被改变为一个特定
* 的索引时运行 。
* @ default "// Variables:\n// questId - ID of the quest whose subtext is changed\n// index - Subtext index being changed to\n//\n// console.log('Quest ' + questId + ' subtext index changed to ' + index)"
*
* /
/ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* Quest Parameter Structure
* -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -
* /
/ * ~ s t r u c t ~ Q u e s t :
*
* @ param Title
* @ desc 任务的标题 。
* 允许文本代码 .
* @ default \ i [ 87 ] 任务名
*
* @ param Type
* @ parent Title
* @ type combo
* @ option 主线任务
* @ option 支线任务
* @ option 特殊任务
* @ option 教程任务
* @ desc 这是什么类型的任务 ?
* @ default 主线任务
*
* @ param Difficulty
* @ parent Title
* @ desc 这个任务的难度 。
* Text codes allowed .
* @ default 简单难度
*
* @ param From
* @ parent Title
* @ desc 插入发出这个任务的NPC的名字 。
* Text codes allowed .
* @ default 发布人名字
*
* @ param Location
* @ parent Title
* @ desc 插入发出此任务的NPC的位置 。
* Text codes allowed .
* @ default 发布位置
*
* @ param Description
* @ parent Title
* @ type note [ ]
* @ desc 请输入此任务的描述 。
* Text codes allowed .
* @ default [ "\"This is the \\\\c[4]default\\\\c[0] quest description.\"" , "\"This is the \\\\c[4]default\\\\c[0] quest description.\\n\\nYou can insert multiple description entries in case you\\never want to update the quest description midway while the\\nquest is in progress.\"" ]
*
* @ param Objectives List
* @ type note [ ]
* @ desc 这个任务要完成的目标 。
* Text codes allowed .
* @ default [ "\"\\\\c[4]First\\\\c[0] objective to be cleared.\"" , "\"\\\\c[4]Second\\\\c[0] objective, but it's hidden.\"" , "\"To make other objectives appear,\\nenable them through the \\\\c[4]'Visible\\nObjectives'\\\\c[0] plugin parameter or by\\nusing a plugin command to make\\nthem appear\"" ]
*
* @ param Visible Objectives
* @ parent Objectives List
* @ type number [ ]
* @ min 1
* @ desc 从一开始就显而易见的目标 。
* @ default [ "1" ]
*
* @ param Rewards List
* @ type note [ ]
* @ desc 这个任务的奖励列表 。
* Text codes allowed .
* @ default [ "\"\\\\i[176]Potion x5\"" , "\"\\\\i[178]Ether x3\"" , "\"To make other rewards appear,\\nenable them through the \\\\c[4]'Visible\\nRewards'\\\\c[0] plugin parameter or by\\nusing a plugin command to make\\nthem appear\"" ]
*
* @ param Visible Rewards
* @ parent Rewards List
* @ type number [ ]
* @ min 1
* @ desc 从一开始就显而易见的奖励 。
* @ default [ "1" ]
*
* @ param Subtext
* @ type note [ ]
* @ desc 潜台词与任务一起展示 。
* @ default [ "\"\"" , "\"This is a subtext. It is used as\\nextra text that you may want to\\nplace on your quest journal that\\ndiffers from the description.\"" ]
* /
//=============================================================================
if ( Utils . RPGMAKER _VERSION && Utils . RPGMAKER _VERSION >= "1.3.5" ) {
//=============================================================================
// Parameter Variables
//=============================================================================
var Zzy = Zzy || { } ;
Zzy . XTQJ = Zzy . XTQJ || { } ;
Yanfly . Parameters = PluginManager . parameters ( "YEP_QuestJournal" ) ;
Yanfly . Param = Yanfly . Param || { } ;
Zzy . XTQJ . BarWidth = parseInt ( Yanfly . Parameters [ 'BarWidth' ] || 28 ) ; //条组宽度
Zzy . XTQJ . BarPadding = parseInt ( Yanfly . Parameters [ 'BarPadding' ] || 6 ) ;
Zzy . XTQJ . BarBackColor = String ( Yanfly . Parameters [ 'BarBackColor' ] || 'rgba(0,0,0,0.5)' ) ; //底层颜色
Zzy . XTQJ . BarBlockColor = String ( Yanfly . Parameters [ 'BarBlockColor' ] || 'rgba(160,160,160,0.8)' ) ; //灰色条块
Zzy . XTQJ . BarTouchColor = String ( Yanfly . Parameters [ 'BarTouchColor' ] || 'rgba(200,200,200,1)' ) ; //点中颜色
Zzy . XTQJ . BarBlockDis = parseInt ( Yanfly . Parameters [ 'BarBlockDis' ] || 2 ) ; //灰色条块间距
Yanfly . Param . QuestCmdName = String ( Yanfly . Parameters [ "Quest Command" ] ) ;
Yanfly . Param . QuestCmdShow = eval ( Yanfly . Parameters [ "Show Command" ] ) ;
Yanfly . Param . QuestCmdEnable = eval ( Yanfly . Parameters [ "Enable Command" ] ) ;
Yanfly . Param . QuestCmdPlace = eval ( Yanfly . Parameters [ "Auto Place Command" ] ) ;
Yanfly . Param . QuestCategoryWindow = JSON . parse ( Yanfly . Parameters [ "Quest Category Window" ] ) ;
Yanfly . Param . QuestListWindow = JSON . parse ( Yanfly . Parameters [ "Quest List Window" ] ) ;
Yanfly . Param . QuestTitleWindow = JSON . parse ( Yanfly . Parameters [ "Quest Title Window" ] ) ;
Yanfly . Param . QuestDataWindow = JSON . parse ( Yanfly . Parameters [ "Quest Data Window" ] ) ;
Yanfly . Quest . LunaticMode = JSON . parse ( Yanfly . Parameters [ "Lunatic Mode" ] ) ;
//=============================================================================
// Window_Selectable
//=============================================================================
//---魔改--- v1.00 用于添加滚动条样式
Window _Selectable . prototype . IsZzyXTQJScrollBar = function ( )
{ return false ; }
Zzy . XTQJ . Window _Selectable _itemWidth = Window _Selectable . prototype . itemWidth ;
Window _Selectable . prototype . itemWidth = function ( )
{
var iw = Zzy . XTQJ . Window _Selectable _itemWidth . call ( this ) ;
if ( this . IsZzyXTQJScrollBar ( ) )
{
var mcs = this . maxCols ( ) ;
var dis = ( this . DefaultZzyXTQJBarWidth ( ) + this . DefaultZzyXTQJBarPadding ( ) * 2 ) / mcs ;
return iw - dis ;
}
else return iw ;
} ;
Window _Selectable . prototype . DefaultZzyXTQJBarWidth = function ( )
{ return Zzy . XTQJ . BarWidth ; }
Window _Selectable . prototype . DefaultZzyXTQJBarPadding = function ( )
{ return Zzy . XTQJ . BarPadding ; }
Window _Selectable . prototype . DefaultZzyXTQJBarBackColor = function ( )
{ return Zzy . XTQJ . BarBackColor ; }
Window _Selectable . prototype . DefaultZzyXTQJBarBlockColor = function ( )
{ return Zzy . XTQJ . BarBlockColor ; }
Window _Selectable . prototype . DefaultZzyXTQJBarTouchColor = function ( )
{ return Zzy . XTQJ . BarTouchColor ; }
Window _Selectable . prototype . DefaultZzyXTQJBarBlockDis = function ( )
{ return Zzy . XTQJ . BarBlockDis ; }
Zzy . XTQJ . Window _Selectable _refresh = Window _Selectable . prototype . refresh ;
Window _Selectable . prototype . refresh = function ( ) //刷新-可能需要重写
{
Zzy . XTQJ . Window _Selectable _refresh . call ( this ) ;
if ( this . IsZzyXTQJScrollBar ( ) ) this . DrawZzyXTQJBar ( ) ; //绘制条组
}
Window _Selectable . prototype . GetZzyXTQJBarRect = function ( ) //获取空间
{
// var width = this.contents.width;
// var height = this.contents.height;
var pad = this . standardPadding ( ) ;
var width = this . width - pad * 2 ;
var height = this . height - pad * 2 ;
var rt = new Rectangle ( width - this . DefaultZzyXTQJBarWidth ( ) ,
0 ,
this . DefaultZzyXTQJBarWidth ( ) ,
height ) ;
return rt ;
}
Window _Selectable . prototype . DrawZzyXTQJBar = function ( )
{
var barRt = this . GetZzyXTQJBarRect ( ) ;
//初始化申请位图
if ( ! this . _ZzyXTQJBarContnets )
{
var pad = this . standardPadding ( ) ;
this . _ZzyXTQJBarContnets = new Sprite ( ) ;
this . _ZzyXTQJBarContnets . bitmap = new Bitmap ( barRt . width , barRt . height ) ;
this . addChild ( this . _ZzyXTQJBarContnets ) ;
this . _ZzyXTQJBarContnets . x = barRt . x + pad ;
this . _ZzyXTQJBarContnets . y = barRt . y + pad ;
}
this . _ZzyXTQJBarContnets . bitmap . clear ( ) ;
this . DrawZzyXTQJBarBack ( barRt ) ; //绘制底层
this . DrawZzyXTQJBarBlock ( barRt ) ; //绘制条块
}
Window _Selectable . prototype . DrawZzyXTQJBarBack = function ( barRt )
{
var color = this . DefaultZzyXTQJBarBackColor ( ) ;
this . _ZzyXTQJBarContnets . bitmap . fillAll ( color ) ;
//this.contents.fillRect(barRt.x,barRt.y,barRt.width,barRt.height,color);
}
Window _Selectable . prototype . DrawZzyXTQJBarBlock = function ( barRt )
{
var color = this . _ZzyXTQJHit ? this . DefaultZzyXTQJBarTouchColor ( ) : this . DefaultZzyXTQJBarBlockColor ( ) ;
var rt = this . GetZzyXTQJBlockBarRect ( ) ;
var dis = Zzy . XTQJ . BarBlockDis ;
this . _ZzyXTQJBarContnets . bitmap . fillRect ( rt . x , rt . y , rt . width , rt . height , color ) ;
//this.contents.fillRect(rt.x,rt.y,rt.width,rt.height,color);
}
Window _Selectable . prototype . GetZzyXTQJBarRectArea = function ( ) //获取区域
{
var barRt = this . GetZzyXTQJBarRect ( ) ;
var dis = this . DefaultZzyXTQJBarBlockDis ( ) ;
var nbarRt = new Rectangle (
barRt . x + dis ,
barRt . y + dis ,
barRt . width - dis * 2 ,
barRt . height - dis * 2 ) ;
return nbarRt ;
}
Window _Selectable . prototype . GetZzyXTQJBlockBarRect = function ( )
{
//会计算当前滚动条的位置
var rate = this . GetZzyXTQJBarRate ( ) ;
var nbarRt = this . GetZzyXTQJBarRectArea ( ) ;
var dis = Zzy . XTQJ . BarBlockDis ;
var barHieght = nbarRt . height * rate ;
var rt = new Rectangle ( dis ,
dis ,
nbarRt . width ,
barHieght ) ;
var tp = this . topRow ( ) ; //对应位置
var mtp = this . maxTopRow ( ) ; //最大顶层
var trate = mtp ? tp / mtp : 0 ;
rt . y += ( nbarRt . height - rt . height ) * trate ;
return rt ;
}
Window _Selectable . prototype . GetZzyXTQJBarRate = function ( )
{
var mr = this . maxRows ( ) ;
var mpr = this . maxPageRows ( ) ;
var rate = mpr / mr ;
return Math . min ( 1 , rate ) ;
}
// 因refresh会重置,关闭这个刷新
Zzy . XTQJ . Window _Selectable _processTouch = Window _Selectable . prototype . processTouch ;
Window _Selectable . prototype . processTouch = function ( )
{
Zzy . XTQJ . Window _Selectable _processTouch . call ( this ) ;
//刷新关闭Touch
if ( ! this . _touching )
{
if ( this . _ZzyXTQJHit )
{
this . _ZzyXTQJHit = false ;
//this.refresh();
this . DrawZzyXTQJBar ( ) ;
}
}
} ;
Window _Selectable . prototype . IsHitZzyXTQJBar = function ( x , y ) //点中测试
{
var rt = this . GetZzyXTQJBlockBarRect ( ) ;
var padding = this . standardPadding ( ) ;
rt . x += padding ;
rt . y += padding ;
if ( x >= rt . x &&
x <= rt . width + rt . x &&
y >= rt . y &&
y <= rt . height + rt . y ) return true ;
return false ;
}
Zzy . XTQJ . Window _Selectable _update = Window _Selectable . prototype . update ;
Window _Selectable . prototype . update = function ( )
{
Zzy . XTQJ . Window _Selectable _update . call ( this ) ;
if ( this . IsZzyXTQJScrollBar ( ) ) this . UpdateZzyXTQJHit ( ) ;
}
Window _Selectable . prototype . UpdateZzyXTQJHit = function ( )
{
if ( ! this . _ZzyXTQJHit ) return ;
this . _ZzyXTQJHitEX = this . canvasToLocalX ( TouchInput . x ) ;
this . _ZzyXTQJHitEY = this . canvasToLocalY ( TouchInput . y ) ;
var cDis = this . _ZzyXTQJHitCY - this . _ZzyXTQJHitEY ;
if ( Math . abs ( cDis ) >= this . _ZzyXTQJPosInfo . dis / 2 )
{
this . _ZzyXTQJHitCY = this . _ZzyXTQJHitEY ;
if ( cDis < 0 ) this . scrollDown ( ) ;
else this . scrollUp ( ) ;
}
}
Window _Selectable . prototype . MakeZzyXTQJArea = function ( ) //制作翻页区域
{
var mtp = this . maxTopRow ( ) ; //最大顶层
var rt = this . GetZzyXTQJBarRectArea ( ) ;
var dis = rt . height / mtp ;
var posY = [ ] ;
for ( var i = 0 ; i < mtp ; i ++ )
{
posY [ i ] = dis / 2 + i * dis ;
}
this . _ZzyXTQJPosInfo = { } ;
this . _ZzyXTQJPosInfo . posYArr = posY ;
this . _ZzyXTQJPosInfo . dis = dis ;
}
Zzy . XTQJ . Window _Selectable _onTouch = Window _Selectable . prototype . onTouch ;
Window _Selectable . prototype . onTouch = function ( triggered )
{
if ( this . IsZzyXTQJScrollBar ( ) )
{
if ( triggered )
{
var x = this . canvasToLocalX ( TouchInput . x ) ;
var y = this . canvasToLocalY ( TouchInput . y ) ;
if ( this . IsHitZzyXTQJBar ( x , y ) )
{
if ( ! this . _ZzyXTQJHit )
{
this . _ZzyXTQJHit = true ; //点选中时
//this.refresh();//执行一次刷新
this . DrawZzyXTQJBar ( ) ;
}
this . _ZzyXTQJHit = true ; //点选中时
//配置点击X和点击Y
this . _ZzyXTQJHitSX = x ;
this . _ZzyXTQJHitSY = y ;
this . _ZzyXTQJHitEX = x ;
this . _ZzyXTQJHitEY = y ;
this . _ZzyXTQJHitCX = x ;
this . _ZzyXTQJHitCY = y ;
}
}
}
Zzy . XTQJ . Window _Selectable _onTouch . call ( this , triggered ) ;
} ;
Window _Selectable . prototype . RefreshZzyXTQJ = function ( )
{
if ( this . IsZzyXTQJScrollBar ( ) )
{
this . MakeZzyXTQJArea ( ) ; //计算Area区域
this . DrawZzyXTQJBar ( ) ; //绘制条组
}
}
//=============================================================================
// TouchInput
//=============================================================================
Yanfly . Quest . TouchInput _onMouseMove = TouchInput . _onMouseMove ;
TouchInput . _onMouseMove = function ( event ) {
Yanfly . Quest . TouchInput _onMouseMove . call ( this , event ) ;
this . _mouseOverX = Graphics . pageToCanvasX ( event . pageX ) ;
this . _mouseOverY = Graphics . pageToCanvasY ( event . pageY ) ;
} ;
//=============================================================================
// DataManager
//=============================================================================
var $dataQuests = [ null ] ;
Yanfly . Quest . totalCount = 0 ;
DataManager . questDatabaseAdd = function ( id , data ) {
if ( ! data ) return $dataQuests . push ( null ) ;
data = this . questDataFailsafe ( id , data ) ;
var visibleObjectives = JSON . parse ( data [ "Visible Objectives" ] ) ;
for ( var i = 0 ; i < visibleObjectives . length ; ++ i ) {
visibleObjectives [ i ] = parseInt ( visibleObjectives [ i ] ) ;
}
var visibleRewards = JSON . parse ( data [ "Visible Rewards" ] ) ;
for ( var i = 0 ; i < visibleRewards . length ; ++ i ) {
visibleRewards [ i ] = parseInt ( visibleRewards [ i ] ) ;
}
var description = JSON . parse ( data [ "Description" ] ) ;
description . unshift ( "" ) ;
var objectives = JSON . parse ( data [ "Objectives List" ] ) ;
objectives . unshift ( "" ) ;
var rewards = JSON . parse ( data [ "Rewards List" ] ) ;
rewards . unshift ( "" ) ;
var subtext = JSON . parse ( data [ "Subtext" ] ) ;
subtext . unshift ( "" ) ;
var type = data [ "Type" ] ;
type = type . replace ( /\\I\[(\d+)\]/gi , "" ) . trim ( ) ;
type = type . replace ( /\\C\[(\d+)\]/gi , "" ) . trim ( ) ;
var quest = {
name : data [ "Title" ] ,
id : id ,
type : type ,
difficulty : data [ "Difficulty" ] ,
from : data [ "From" ] ,
location : data [ "Location" ] ,
description : description ,
objectives : objectives ,
visibleObjectives : visibleObjectives ,
rewards : rewards ,
visibleRewards : visibleRewards ,
subtext : subtext ,
note : "" ,
} ;
$dataQuests [ id ] = quest ;
Yanfly . Quest . totalCount += 1 ;
} ;
DataManager . questDataFailsafe = function ( id , data ) {
if ( ! data [ "Title" ] ) data [ "Title" ] = "\\i[87]Unfinished Quest" ;
if ( ! data [ "Type" ] ) data [ "Type" ] = "Main Quests" ;
if ( ! data [ "Difficulty" ] ) data [ "Difficulty" ] = "Easy Peasy" ;
if ( ! data [ "From" ] ) data [ "From" ] = "NPC Name" ;
if ( ! data [ "Location" ] ) data [ "Location" ] = "Location Name" ;
if ( ! data [ "Description" ] ) data [ "Description" ] = '["\\"\\""]' ;
if ( data [ "Description" ] === "[]" ) data [ "Description" ] = '["\\"\\""]' ;
if ( ! data [ "Objectives List" ] ) data [ "Objectives List" ] = '["\\"\\""]' ;
if ( data [ "Objectives List" ] === "[]" ) data [ "Objectives List" ] = '["\\"\\""]' ;
if ( ! data [ "Visible Objectives" ] ) data [ "Visible Objectives" ] = '["1"]' ;
if ( ! data [ "Rewards List" ] ) data [ "Rewards List" ] = '["\\"\\""]' ;
if ( data [ "Rewards List" ] === "[]" ) data [ "Rewards List" ] = '["\\"\\""]' ;
if ( ! data [ "Visible Rewards" ] ) data [ "Visible Rewards" ] = '["1"]' ;
if ( ! data [ "Subtext" ] ) data [ "Subtext" ] = '["\\"\\""]' ;
if ( data [ "Subtext" ] === "[]" ) data [ "Subtext" ] = '["\\"\\""]' ;
return data ;
} ;
DataManager . questDatabaseCreate = function ( ) {
$dataQuests = [ null ] ;
for ( var i = 1 ; i <= 100 ; ++ i ) {
var questData = JSON . parse ( Yanfly . Parameters [ "Quest " + i ] || "null" ) ;
if ( ! questData ) continue ;
this . questDatabaseAdd ( i , questData ) ;
}
} ;
DataManager . questDatabaseCreate ( ) ;
//=============================================================================
// Game_Temp
//=============================================================================
Game _Temp . prototype . reservedQuestOpen = function ( questId ) {
this . _questOpen = questId ;
} ;
Game _Temp . prototype . getQuestOpen = function ( ) {
return this . _questOpen ;
} ;
Game _Temp . prototype . clearQuestOpen = function ( ) {
this . _questOpen = undefined ;
} ;
//=============================================================================
// Game_System
//=============================================================================
Yanfly . Quest . Game _System _initialize = Game _System . prototype . initialize ;
Game _System . prototype . initialize = function ( ) {
Yanfly . Quest . Game _System _initialize . call ( this ) ;
this . initQuestSettings ( ) ;
} ;
Game _System . prototype . initQuestSettings = function ( ) {
this . _showQuest = this . _showQuest || Yanfly . Param . QuestCmdShow ;
this . _enableQuest = this . _enableQuest || Yanfly . Param . QuestCmdEnable ;
this . _questsKnown = this . _questsKnown || [ ] ;
this . _questsCompleted = this . _questsCompleted || [ ] ;
this . _questsFailed = this . _questsFailed || [ ] ;
this . _questsDescription = this . _questsDescription || { } ;
this . _questsObjectives = this . _questsObjectives || { } ;
this . _questsObjectivesCompleted = this . _questsObjectivesCompleted || { } ;
this . _questsObjectivesFailed = this . _questsObjectivesFailed || { } ;
this . _questsRewards = this . _questsRewards || { } ;
this . _questsRewardsClaimed = this . _questsRewardsClaimed || { } ;
this . _questsRewardsDenied = this . _questsRewardsDenied || { } ;
this . _questsSubtext = this . _questsSubtext || { } ;
} ;
Game _System . prototype . isShowQuest = function ( ) {
this . initQuestSettings ( ) ;
return this . _showQuest ;
} ;
Game _System . prototype . setShowQuest = function ( value ) {
this . initQuestSettings ( ) ;
this . _showQuest = value ;
} ;
Game _System . prototype . isEnableQuest = function ( ) {
this . initQuestSettings ( ) ;
return this . _enableQuest ;
} ;
Game _System . prototype . setEnableQuest = function ( value ) {
this . initQuestSettings ( ) ;
this . _enableQuest = value ;
} ;
Game _System . prototype . getQuestsAvailable = function ( ) {
this . initQuestSettings ( ) ;
var result = [ ] ;
var length = this . _questsKnown . length ;
for ( var i = 0 ; i < length ; ++ i ) {
var questId = this . _questsKnown [ i ] ;
if ( this . _questsCompleted . contains ( questId ) ) continue ;
if ( this . _questsFailed . contains ( questId ) ) continue ;
result . push ( questId ) ;
}
return result ;
} ;
Game _System . prototype . getQuestsCompleted = function ( ) {
this . initQuestSettings ( ) ;
var result = [ ] ;
var length = this . _questsKnown . length ;
for ( var i = 0 ; i < length ; ++ i ) {
var questId = this . _questsKnown [ i ] ;
if ( this . _questsCompleted . contains ( questId ) ) result . push ( questId ) ;
}
return result ;
} ;
Game _System . prototype . getQuestsFailed = function ( ) {
this . initQuestSettings ( ) ;
var result = [ ] ;
var length = this . _questsKnown . length ;
for ( var i = 0 ; i < length ; ++ i ) {
var questId = this . _questsKnown [ i ] ;
if ( this . _questsFailed . contains ( questId ) ) result . push ( questId ) ;
}
return result ;
} ;
Game _System . prototype . getAllQuests = function ( ) {
this . initQuestSettings ( ) ;
return this . _questsKnown ;
} ;
Game _System . prototype . getTypeQuests = function ( category , type ) {
this . initQuestSettings ( ) ;
category = category || "all" ;
type = type || "" ;
var result = [ ] ;
if ( category === "available" ) {
var quests = this . getQuestsAvailable ( ) ;
} else if ( category === "completed" ) {
var quests = this . getQuestsCompleted ( ) ;
} else if ( category === "failed" ) {
var quests = this . getQuestsFailed ( ) ;
} else {
var quests = this . getAllQuests ( ) ;
}
var length = quests . length ;
for ( var i = 0 ; i < length ; ++ i ) {
var questId = quests [ i ] ;
var questData = $dataQuests [ questId ] ;
if ( ! questData ) continue ;
if ( questData . type === type ) result . push ( questId ) ;
}
return result ;
} ;
Game _System . prototype . getQuestDescriptionIndex = function ( questId ) {
this . initQuestSettings ( ) ;
return this . _questsDescription [ questId ] || 0 ;
} ;
Game _System . prototype . getQuestObjectives = function ( questId ) {
this . initQuestSettings ( ) ;
return this . _questsObjectives [ questId ] || [ "1" ] ;
} ;
Game _System . prototype . getQuestObjectiveStatus = function ( questId , objId ) {
this . initQuestSettings ( ) ;
this . _questsObjectivesCompleted [ questId ] = this . _questsObjectivesCompleted [ questId ] || [ ] ;
this . _questsObjectivesFailed [ questId ] = this . _questsObjectivesFailed [ questId ] || [ ] ;
if ( this . _questsObjectivesCompleted [ questId ] . contains ( objId ) ) {
return "Completed Objective" ;
} else if ( this . _questsObjectivesFailed [ questId ] . contains ( objId ) ) {
return "Failed Objective" ;
} else {
return "Uncleared Objective" ;
}
} ;
Game _System . prototype . getQuestRewards = function ( questId ) {
this . initQuestSettings ( ) ;
return this . _questsRewards [ questId ] || [ "1" ] ;
} ;
Game _System . prototype . getQuestRewardStatus = function ( questId , objId ) {
this . initQuestSettings ( ) ;
if ( this . _questsRewardsClaimed [ questId ] . contains ( objId ) ) {
return "Claimed Reward" ;
} else if ( this . _questsRewardsDenied [ questId ] . contains ( objId ) ) {
return "Denied Reward" ;
} else {
return "Unclaimed Reward" ;
}
} ;
Game _System . prototype . getQuestSubtextIndex = function ( questId ) {
this . initQuestSettings ( ) ;
return this . _questsSubtext [ questId ] || 0 ;
} ;
Game _System . prototype . questAdd = function ( questId ) {
this . initQuestSettings ( ) ;
if ( this . _questsKnown . contains ( questId ) ) return ;
var questData = $dataQuests [ questId ] ;
if ( ! questData ) return ;
this . _questsKnown . push ( questId ) ;
this . _questsKnown . sort ( function ( a , b ) {
return a - b ;
} ) ;
this . _questsDescription [ questId ] = 1 ;
this . _questsObjectives [ questId ] = [ ] ;
for ( var i = 0 ; i < questData [ "visibleObjectives" ] . length ; ++ i ) {
var value = questData [ "visibleObjectives" ] [ i ] ;
this . _questsObjectives [ questId ] . push ( value ) ;
}
this . _questsObjectivesCompleted [ questId ] = [ ] ;
this . _questsObjectivesFailed [ questId ] = [ ] ;
this . _questsRewards [ questId ] = [ ] ;
for ( var i = 0 ; i < questData [ "visibleRewards" ] . length ; ++ i ) {
var value = questData [ "visibleRewards" ] [ i ] ;
this . _questsRewards [ questId ] . push ( value ) ;
}
this . _questsRewardsClaimed [ questId ] = [ ] ;
this . _questsRewardsDenied [ questId ] = [ ] ;
this . _questsSubtext [ questId ] = 1 ;
this . questAddCustomEval ( questId ) ;
} ;
Yanfly . Quest . questAdd = JSON . parse ( Yanfly . Quest . LunaticMode [ "Quest Add" ] ) ;
Game _System . prototype . questAddCustomEval = function ( questId ) {
eval ( Yanfly . Quest . questAdd ) ;
} ;
Game _System . prototype . questAddRange = function ( range ) {
var length = range . length ;
for ( var i = 0 ; i < length ; ++ i ) {
var questId = range [ i ] ;
this . questAdd ( questId ) ;
}
} ;
Game _System . prototype . questRemove = function ( questId ) {
this . initQuestSettings ( ) ;
if ( ! this . _questsKnown . contains ( questId ) ) return ;
var index = this . _questsKnown . indexOf ( questId ) ;
this . _questsKnown . splice ( index , 1 ) ;
this . questRemoveCustomEval ( questId ) ;
} ;
Yanfly . Quest . questRemove = JSON . parse ( Yanfly . Quest . LunaticMode [ "Quest Remove" ] ) ;
Game _System . prototype . questRemoveCustomEval = function ( questId ) {
eval ( Yanfly . Quest . questRemove ) ;
} ;
Game _System . prototype . questRemoveRange = function ( range ) {
var length = range . length ;
for ( var i = 0 ; i < length ; ++ i ) {
var questId = range [ i ] ;
this . questRemove ( questId ) ;
}
} ;
Game _System . prototype . questSetCompleted = function ( questId ) {
this . initQuestSettings ( ) ;
var changed = false ;
if ( ! this . _questsKnown . contains ( questId ) ) this . questAdd ( questId ) ;
if ( ! this . _questsCompleted . contains ( questId ) ) {
changed = true ;
this . _questsCompleted . push ( questId ) ;
this . _questsCompleted . sort ( function ( a , b ) {
return a - b ;
} ) ;
}
if ( this . _questsFailed . contains ( questId ) ) {
var index = this . _questsFailed . indexOf ( questId ) ;
this . _questsFailed . splice ( index , 1 ) ;
this . _questsFailed . sort ( function ( a , b ) {
return a - b ;
} ) ;
}
if ( changed ) this . questSetCompletedEval ( questId ) ;
} ;
Yanfly . Quest . questSetCompleted = JSON . parse ( Yanfly . Quest . LunaticMode [ "Quest Complete" ] ) ;
Game _System . prototype . questSetCompletedEval = function ( questId ) {
eval ( Yanfly . Quest . questSetCompleted ) ;
} ;
Game _System . prototype . questSetCompletedRange = function ( range ) {
var length = range . length ;
for ( var i = 0 ; i < length ; ++ i ) {
var questId = range [ i ] ;
this . questSetCompleted ( questId ) ;
}
} ;
Game _System . prototype . questSetFailed = function ( questId ) {
this . initQuestSettings ( ) ;
var changed = false ;
if ( ! this . _questsKnown . contains ( questId ) ) this . questAdd ( questId ) ;
if ( ! this . _questsFailed . contains ( questId ) ) {
changed = true ;
this . _questsFailed . push ( questId ) ;
this . _questsFailed . sort ( function ( a , b ) {
return a - b ;
} ) ;
}
if ( this . _questsCompleted . contains ( questId ) ) {
var index = this . _questsCompleted . indexOf ( questId ) ;
this . _questsCompleted . splice ( index , 1 ) ;
this . _questsCompleted . sort ( function ( a , b ) {
return a - b ;
} ) ;
}
if ( changed ) this . questSetFailedEval ( questId ) ;
} ;
Yanfly . Quest . questSetFailed = JSON . parse ( Yanfly . Quest . LunaticMode [ "Quest Fail" ] ) ;
Game _System . prototype . questSetFailedEval = function ( questId ) {
eval ( Yanfly . Quest . questSetFailed ) ;
} ;
Game _System . prototype . questSetFailedRange = function ( range ) {
var length = range . length ;
for ( var i = 0 ; i < length ; ++ i ) {
var questId = range [ i ] ;
this . questSetFailed ( questId ) ;
}
} ;
Game _System . prototype . questSetAvailable = function ( questId ) {
this . initQuestSettings ( ) ;
var changed = false ;
if ( ! this . _questsKnown . contains ( questId ) ) this . questAdd ( questId ) ;
if ( this . _questsCompleted . contains ( questId ) ) {
changed = true ;
var index = this . _questsCompleted . indexOf ( questId ) ;
this . _questsCompleted . splice ( index , 1 ) ;
this . _questsCompleted . sort ( function ( a , b ) {
return a - b ;
} ) ;
}
if ( this . _questsFailed . contains ( questId ) ) {
changed = true ;
var index = this . _questsFailed . indexOf ( questId ) ;
this . _questsFailed . splice ( index , 1 ) ;
this . _questsFailed . sort ( function ( a , b ) {
return a - b ;
} ) ;
}
if ( changed ) this . questSetAvailableEval ( questId ) ;
} ;
Yanfly . Quest . questSetAvailable = JSON . parse ( Yanfly . Quest . LunaticMode [ "Quest Available" ] ) ;
Game _System . prototype . questSetAvailableEval = function ( questId ) {
eval ( Yanfly . Quest . questSetAvailable ) ;
} ;
Game _System . prototype . questSetAvailableRange = function ( range ) {
var length = range . length ;
for ( var i = 0 ; i < length ; ++ i ) {
var questId = range [ i ] ;
this . questSetAvailable ( questId ) ;
}
} ;
Game _System . prototype . questChangeDescriptionIndex = function ( questId , index ) {
this . initQuestSettings ( ) ;
this . _questsDescription [ questId ] = index ;
this . questChangeDescIndexEval ( questId , index ) ;
} ;
Yanfly . Quest . questChangeDescriptionIndex = JSON . parse ( Yanfly . Quest . LunaticMode [ "Change Description" ] ) ;
Game _System . prototype . questChangeDescIndexEval = function ( questId , index ) {
eval ( Yanfly . Quest . questChangeDescriptionIndex ) ;
} ;
Game _System . prototype . questObjectivesShow = function ( questId , objectiveId ) {
this . initQuestSettings ( ) ;
this . _questsObjectives [ questId ] = this . _questsObjectives [ questId ] || [ ] ;
if ( this . _questsObjectives [ questId ] . contains ( objectiveId ) ) return ;
this . _questsObjectives [ questId ] . push ( objectiveId ) ;
this . _questsObjectives [ questId ] . sort ( function ( a , b ) {
return a - b ;
} ) ;
this . questObjectivesShowEval ( questId , objectiveId ) ;
} ;
Yanfly . Quest . questObjectivesShow = JSON . parse ( Yanfly . Quest . LunaticMode [ "Show Objective" ] ) ;
Game _System . prototype . questObjectivesShowEval = function ( questId , obj ) {
var objectiveId = obj ;
eval ( Yanfly . Quest . questObjectivesShow ) ;
} ;
Game _System . prototype . questObjectivesShowRange = function ( questId , range ) {
var length = range . length ;
for ( var i = 0 ; i < length ; ++ i ) {
var objId = parseInt ( range [ i ] ) ;
this . questObjectivesShow ( questId , objId ) ;
}
} ;
Game _System . prototype . questObjectivesShowAll = function ( questId ) {
this . initQuestSettings ( ) ;
var questData = $dataQuests [ questId ] ;
if ( ! questData ) return ;
var length = questData . objectives . length ;
for ( var i = 1 ; i < length ; ++ i ) {
this . questObjectivesShow ( questId , i ) ;
}
} ;
Game _System . prototype . questObjectivesHide = function ( questId , objectiveId ) {
this . initQuestSettings ( ) ;
this . _questsObjectives [ questId ] = this . _questsObjectives [ questId ] || [ ] ;
if ( ! this . _questsObjectives [ questId ] . contains ( objectiveId ) ) return ;
var index = this . _questsObjectives [ questId ] . indexOf ( objectiveId ) ;
this . _questsObjectives [ questId ] . splice ( index , 1 ) ;
this . _questsObjectives [ questId ] . sort ( function ( a , b ) {
return a - b ;
} ) ;
this . questObjectivesHideEval ( questId , objectiveId ) ;
} ;
Yanfly . Quest . questObjectivesHide = JSON . parse ( Yanfly . Quest . LunaticMode [ "Hide Objective" ] ) ;
Game _System . prototype . questObjectivesHideEval = function ( questId , obj ) {
var objectiveId = obj ;
eval ( Yanfly . Quest . questObjectivesHide ) ;
} ;
Game _System . prototype . questObjectivesHideRange = function ( questId , range ) {
var length = range . length ;
for ( var i = 0 ; i < length ; ++ i ) {
var objId = parseInt ( range [ i ] ) ;
this . questObjectivesHide ( questId , objId ) ;
}
} ;
Game _System . prototype . questObjectivesHideAll = function ( questId ) {
this . initQuestSettings ( ) ;
var questData = $dataQuests [ questId ] ;
if ( ! questData ) return ;
var length = questData . objectives . length ;
for ( var i = 1 ; i < length ; ++ i ) {
this . questObjectivesHide ( questId , i ) ;
}
} ;
Game _System . prototype . questObjectivesNormal = function ( questId , objectiveId ) {
this . initQuestSettings ( ) ;
var changed = false ;
this . _questsObjectivesCompleted [ questId ] = this . _questsObjectivesCompleted [ questId ] || [ ] ;
if ( this . _questsObjectivesCompleted [ questId ] . contains ( objectiveId ) ) {
changed = true ;
var index = this . _questsObjectivesCompleted [ questId ] . indexOf ( objectiveId ) ;
this . _questsObjectivesCompleted [ questId ] . splice ( index , 1 ) ;
this . _questsObjectivesCompleted [ questId ] . sort ( function ( a , b ) {
return a - b ;
} ) ;
}
if ( this . _questsObjectivesFailed [ questId ] . contains ( objectiveId ) ) {
changed = true ;
var index = this . _questsObjectivesFailed [ questId ] . indexOf ( objectiveId ) ;
this . _questsObjectivesFailed [ questId ] . splice ( index , 1 ) ;
this . _questsObjectivesFailed [ questId ] . sort ( function ( a , b ) {
return a - b ;
} ) ;
}
this . questObjectivesNormalEval ( questId , objectiveId ) ;
} ;
Yanfly . Quest . questObjectivesNormal = JSON . parse ( Yanfly . Quest . LunaticMode [ "Normalize Objective" ] ) ;
Game _System . prototype . questObjectivesNormalEval = function ( questId , obj ) {
var objectiveId = obj ;
eval ( Yanfly . Quest . questObjectivesNormal ) ;
} ;
Game _System . prototype . questObjectivesNormalRange = function ( questId , range ) {
var length = range . length ;
for ( var i = 0 ; i < length ; ++ i ) {
var objId = parseInt ( range [ i ] ) ;
this . questObjectivesNormal ( questId , objId ) ;
}
} ;
Game _System . prototype . questObjectivesNormalAll = function ( questId ) {
this . initQuestSettings ( ) ;
var questData = $dataQuests [ questId ] ;
if ( ! questData ) return ;
var length = questData . objectives . length ;
for ( var i = 1 ; i < length ; ++ i ) {
this . questObjectivesNormal ( questId , i ) ;
}
} ;
Game _System . prototype . questObjectivesComplete = function ( questId , objectiveId ) {
this . initQuestSettings ( ) ;
var changed = false ;
this . _questsObjectivesCompleted [ questId ] = this . _questsObjectivesCompleted [ questId ] || [ ] ;
if ( ! this . _questsObjectivesCompleted [ questId ] . contains ( objectiveId ) ) {
changed = true ;
this . _questsObjectivesCompleted [ questId ] . push ( objectiveId ) ;
this . _questsObjectivesCompleted [ questId ] . sort ( function ( a , b ) {
return a - b ;
} ) ;
}
this . _questsObjectivesFailed [ questId ] = this . _questsObjectivesFailed [ questId ] || [ ] ;
if ( this . _questsObjectivesFailed [ questId ] . contains ( objectiveId ) ) {
var index = this . _questsObjectivesFailed [ questId ] . indexOf ( objectiveId ) ;
this . _questsObjectivesFailed [ questId ] . splice ( index , 1 ) ;
this . _questsObjectivesFailed [ questId ] . sort ( function ( a , b ) {
return a - b ;
} ) ;
}
this . questObjectivesCompleteEval ( questId , objectiveId ) ;
} ;
Yanfly . Quest . questObjectivesComplete = JSON . parse ( Yanfly . Quest . LunaticMode [ "Complete Objective" ] ) ;
Game _System . prototype . questObjectivesCompleteEval = function ( questId , obj ) {
var objectiveId = obj ;
eval ( Yanfly . Quest . questObjectivesComplete ) ;
} ;
Game _System . prototype . questObjectivesCompleteRange = function ( questId , range ) {
var length = range . length ;
for ( var i = 0 ; i < length ; ++ i ) {
var objId = parseInt ( range [ i ] ) ;
this . questObjectivesComplete ( questId , objId ) ;
}
} ;
Game _System . prototype . questObjectivesCompleteAll = function ( questId ) {
this . initQuestSettings ( ) ;
var questData = $dataQuests [ questId ] ;
if ( ! questData ) return ;
var length = questData . objectives . length ;
for ( var i = 1 ; i < length ; ++ i ) {
this . questObjectivesComplete ( questId , i ) ;
}
} ;
Game _System . prototype . questObjectivesFail = function ( questId , objectiveId ) {
this . initQuestSettings ( ) ;
var changed = false ;
this . _questsObjectivesFailed [ questId ] = this . _questsObjectivesFailed [ questId ] || [ ] ;
if ( ! this . _questsObjectivesFailed [ questId ] . contains ( objectiveId ) ) {
changed = true ;
this . _questsObjectivesFailed [ questId ] . push ( objectiveId ) ;
this . _questsObjectivesFailed [ questId ] . sort ( function ( a , b ) {
return a - b ;
} ) ;
}
this . _questsObjectivesCompleted [ questId ] = this . _questsObjectivesCompleted [ questId ] || [ ] ;
if ( this . _questsObjectivesCompleted [ questId ] . contains ( objectiveId ) ) {
var index = this . _questsObjectivesCompleted [ questId ] . indexOf ( objectiveId ) ;
this . _questsObjectivesCompleted [ questId ] . splice ( index , 1 ) ;
this . _questsObjectivesCompleted [ questId ] . sort ( function ( a , b ) {
return a - b ;
} ) ;
}
if ( changed ) this . questObjectivesFailEval ( questId , objectiveId ) ;
} ;
Yanfly . Quest . questObjectivesFail = JSON . parse ( Yanfly . Quest . LunaticMode [ "Fail Objective" ] ) ;
Game _System . prototype . questObjectivesFailEval = function ( questId , obj ) {
var objectiveId = obj ;
eval ( Yanfly . Quest . questObjectivesFail ) ;
} ;
Game _System . prototype . questObjectivesFailRange = function ( questId , range ) {
var length = range . length ;
for ( var i = 0 ; i < length ; ++ i ) {
var objId = parseInt ( range [ i ] ) ;
this . questObjectivesFail ( questId , objId ) ;
}
} ;
Game _System . prototype . questObjectivesFailAll = function ( questId ) {
this . initQuestSettings ( ) ;
var questData = $dataQuests [ questId ] ;
if ( ! questData ) return ;
var length = questData . objectives . length ;
for ( var i = 1 ; i < length ; ++ i ) {
this . questObjectivesFail ( questId , i ) ;
}
} ;
Game _System . prototype . questRewardsShow = function ( questId , rewardId ) {
this . initQuestSettings ( ) ;
this . _questsRewards [ questId ] = this . _questsRewards [ questId ] || [ ] ;
if ( this . _questsRewards [ questId ] . contains ( rewardId ) ) return ;
this . _questsRewards [ questId ] . push ( rewardId ) ;
this . _questsRewards [ questId ] . sort ( function ( a , b ) {
return a - b ;
} ) ;
this . questRewardsShowEval ( questId , rewardId ) ;
} ;
Yanfly . Quest . questRewardsShow = JSON . parse ( Yanfly . Quest . LunaticMode [ "Show Reward" ] ) ;
Game _System . prototype . questRewardsShowEval = function ( questId , rewardId ) {
eval ( Yanfly . Quest . questRewardsShow ) ;
} ;
Game _System . prototype . questRewardsShowRange = function ( questId , range ) {
var length = range . length ;
for ( var i = 0 ; i < length ; ++ i ) {
var rewardId = parseInt ( range [ i ] ) ;
this . questRewardsShow ( questId , rewardId ) ;
}
} ;
Game _System . prototype . questRewardsShowAll = function ( questId ) {
this . initQuestSettings ( ) ;
var questData = $dataQuests [ questId ] ;
if ( ! questData ) return ;
var length = questData . rewards . length ;
for ( var i = 1 ; i < length ; ++ i ) {
this . questRewardsShow ( questId , i ) ;
}
} ;
Game _System . prototype . questRewardsHide = function ( questId , rewardId ) {
this . initQuestSettings ( ) ;
this . _questsRewards [ questId ] = this . _questsRewards [ questId ] || [ ] ;
if ( ! this . _questsRewards [ questId ] . contains ( rewardId ) ) return ;
var index = this . _questsRewards [ questId ] . indexOf ( rewardId ) ;
this . _questsRewards [ questId ] . splice ( index , 1 ) ;
this . _questsRewards [ questId ] . sort ( function ( a , b ) {
return a - b ;
} ) ;
this . questRewardsHideEval ( questId , rewardId ) ;
} ;
Yanfly . Quest . questRewardsHide = JSON . parse ( Yanfly . Quest . LunaticMode [ "Hide Reward" ] ) ;
Game _System . prototype . questRewardsHideEval = function ( questId , rewardId ) {
eval ( Yanfly . Quest . questRewardsHide ) ;
} ;
Game _System . prototype . questRewardsHideRange = function ( questId , range ) {
var length = range . length ;
for ( var i = 0 ; i < length ; ++ i ) {
var rewardId = parseInt ( range [ i ] ) ;
this . questRewardsHide ( questId , rewardId ) ;
}
} ;
Game _System . prototype . questRewardsHideAll = function ( questId ) {
this . initQuestSettings ( ) ;
var questData = $dataQuests [ questId ] ;
if ( ! questData ) return ;
var length = questData . rewards . length ;
for ( var i = 1 ; i < length ; ++ i ) {
this . questRewardsHide ( questId , i ) ;
}
} ;
Game _System . prototype . questRewardsNormal = function ( questId , rewardId ) {
this . initQuestSettings ( ) ;
var changed = false ;
this . _questsRewardsClaimed [ questId ] = this . _questsRewardsClaimed [ questId ] || [ ] ;
if ( this . _questsRewardsClaimed [ questId ] . contains ( rewardId ) ) {
changed = true ;
var index = this . _questsRewardsClaimed [ questId ] . indexOf ( rewardId ) ;
this . _questsRewardsClaimed [ questId ] . splice ( index , 1 ) ;
this . _questsRewardsClaimed [ questId ] . sort ( function ( a , b ) {
return a - b ;
} ) ;
}
this . _questsRewardsDenied [ questId ] = this . _questsRewardsDenied [ questId ] || [ ] ;
if ( this . _questsRewardsDenied [ questId ] . contains ( rewardId ) ) {
changed = true ;
var index = this . _questsRewardsDenied [ questId ] . indexOf ( rewardId ) ;
this . _questsRewardsDenied [ questId ] . splice ( index , 1 ) ;
this . _questsRewardsDenied [ questId ] . sort ( function ( a , b ) {
return a - b ;
} ) ;
}
if ( changed ) this . questRewardsNormalEval ( questId , rewardId ) ;
} ;
Yanfly . Quest . questRewardsNormal = JSON . parse ( Yanfly . Quest . LunaticMode [ "Normalize Reward" ] ) ;
Game _System . prototype . questRewardsNormalEval = function ( questId , rewardId ) {
eval ( Yanfly . Quest . questRewardsNormal ) ;
} ;
Game _System . prototype . questRewardsNormalRange = function ( questId , range ) {
var length = range . length ;
for ( var i = 0 ; i < length ; ++ i ) {
var rewardId = parseInt ( range [ i ] ) ;
this . questRewardsNormal ( questId , rewardId ) ;
}
} ;
Game _System . prototype . questRewardsNormalAll = function ( questId ) {
this . initQuestSettings ( ) ;
var questData = $dataQuests [ questId ] ;
if ( ! questData ) return ;
var length = questData . rewards . length ;
for ( var i = 1 ; i < length ; ++ i ) {
this . questRewardsNormal ( questId , i ) ;
}
} ;
Game _System . prototype . questRewardsClaim = function ( questId , rewardId ) {
this . initQuestSettings ( ) ;
var changed = false ;
this . _questsRewardsClaimed [ questId ] = this . _questsRewardsClaimed [ questId ] || [ ] ;
if ( ! this . _questsRewardsClaimed [ questId ] . contains ( rewardId ) ) {
changed = true ;
this . _questsRewardsClaimed [ questId ] . push ( rewardId ) ;
this . _questsRewardsClaimed [ questId ] . sort ( function ( a , b ) {
return a - b ;
} ) ;
}
this . _questsRewardsDenied [ questId ] = this . _questsRewardsDenied [ questId ] || [ ] ;
if ( this . _questsRewardsDenied [ questId ] . contains ( rewardId ) ) {
var index = this . _questsRewardsDenied [ questId ] . indexOf ( rewardId ) ;
this . _questsRewardsDenied [ questId ] . splice ( index , 1 ) ;
this . _questsRewardsDenied [ questId ] . sort ( function ( a , b ) {
return a - b ;
} ) ;
}
if ( changed ) this . questRewardsClaimEval ( questId , rewardId ) ;
} ;
Yanfly . Quest . questRewardsClaim = JSON . parse ( Yanfly . Quest . LunaticMode [ "Claim Reward" ] ) ;
Game _System . prototype . questRewardsClaimEval = function ( questId , rewardId ) {
eval ( Yanfly . Quest . questRewardsClaim ) ;
} ;
Game _System . prototype . questRewardsClaimRange = function ( questId , range ) {
var length = range . length ;
for ( var i = 0 ; i < length ; ++ i ) {
var rewardId = parseInt ( range [ i ] ) ;
this . questRewardsClaim ( questId , rewardId ) ;
}
} ;
Game _System . prototype . questRewardsClaimAll = function ( questId ) {
this . initQuestSettings ( ) ;
var questData = $dataQuests [ questId ] ;
if ( ! questData ) return ;
var length = questData . rewards . length ;
for ( var i = 1 ; i < length ; ++ i ) {
this . questRewardsClaim ( questId , i ) ;
}
} ;
Game _System . prototype . questRewardsDeny = function ( questId , rewardId ) {
this . initQuestSettings ( ) ;
var changed = false ;
this . _questsRewardsDenied [ questId ] = this . _questsRewardsDenied [ questId ] || [ ] ;
if ( ! this . _questsRewardsDenied [ questId ] . contains ( rewardId ) ) {
changed = true ;
this . _questsRewardsDenied [ questId ] . push ( rewardId ) ;
this . _questsRewardsDenied [ questId ] . sort ( function ( a , b ) {
return a - b ;
} ) ;
}
this . _questsRewardsClaimed [ questId ] = this . _questsRewardsClaimed [ questId ] || [ ] ;
if ( this . _questsRewardsClaimed [ questId ] . contains ( rewardId ) ) {
var index = this . _questsRewardsClaimed [ questId ] . indexOf ( rewardId ) ;
this . _questsRewardsClaimed [ questId ] . splice ( index , 1 ) ;
this . _questsRewardsClaimed [ questId ] . sort ( function ( a , b ) {
return a - b ;
} ) ;
}
if ( changed ) this . questRewardsDenyEval ( questId , rewardId ) ;
} ;
Yanfly . Quest . questRewardsDeny = JSON . parse ( Yanfly . Quest . LunaticMode [ "Deny Reward" ] ) ;
Game _System . prototype . questRewardsDenyEval = function ( questId , rewardId ) {
eval ( Yanfly . Quest . questRewardsDeny ) ;
} ;
Game _System . prototype . questRewardsDenyRange = function ( questId , range ) {
var length = range . length ;
for ( var i = 0 ; i < length ; ++ i ) {
var rewardId = parseInt ( range [ i ] ) ;
this . questRewardsDeny ( questId , rewardId ) ;
}
} ;
Game _System . prototype . questRewardsDenyAll = function ( questId ) {
this . initQuestSettings ( ) ;
var questData = $dataQuests [ questId ] ;
if ( ! questData ) return ;
var length = questData . rewards . length ;
for ( var i = 1 ; i < length ; ++ i ) {
this . questRewardsDeny ( questId , i ) ;
}
} ;
Game _System . prototype . questChangeSubtextIndex = function ( questId , index ) {
this . initQuestSettings ( ) ;
this . _questsSubtext [ questId ] = index ;
this . questChangeSubtextIndexEval ( questId , index ) ;
} ;
Yanfly . Quest . questChangeSubtextIndexEval = JSON . parse ( Yanfly . Quest . LunaticMode [ "Change Subtext" ] ) ;
Game _System . prototype . questChangeSubtextIndexEval = function ( questId , index ) {
eval ( Yanfly . Quest . questChangeSubtextIndexEval ) ;
} ;
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Game_System Script Calls
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Game _System . prototype . totalQuestsAvailable = function ( ) {
return this . getQuestsAvailable ( ) . length ;
} ;
Game _System . prototype . totalQuestsCompleted = function ( ) {
return this . getQuestsCompleted ( ) . length ;
} ;
Game _System . prototype . totalQuestsFailed = function ( ) {
return this . getQuestsFailed ( ) . length ;
} ;
Game _System . prototype . totalQuestsKnown = function ( ) {
return this . getAllQuests ( ) . length ;
} ;
Game _System . prototype . totalQuestsInGame = function ( ) {
return Yanfly . Quest . totalCount ;
} ;
Game _System . prototype . totalQuestTypes = function ( category , type ) {
return this . getTypeQuests ( category , type ) . length ;
} ;
Game _System . prototype . totalVisibleQuestObjectives = function ( questId ) {
return this . getQuestObjectives ( questId ) . length ;
} ;
Game _System . prototype . totalQuestObjectives = function ( questId ) {
var questData = $dataQuests [ questId ] ;
if ( ! questData ) return 0 ;
return questData . objectives . length ;
} ;
Game _System . prototype . totalVisibleQuestRewards = function ( questId ) {
return this . getQuestRewards ( questId ) . length ;
} ;
Game _System . prototype . totalQuestRewards = function ( questId ) {
var questData = $dataQuests [ questId ] ;
if ( ! questData ) return 0 ;
return questData . rewards . length ;
} ;
Game _System . prototype . isQuestObjectiveCompleted = function ( questId , objId ) {
if ( this . _questsObjectivesCompleted [ questId ] ) {
return this . _questsObjectivesCompleted [ questId ] . contains ( objId ) ;
} else {
return false ;
}
} ;
Game _System . prototype . isQuestObjectiveFailed = function ( questId , objId ) {
if ( this . _questsObjectivesFailed [ questId ] ) {
return this . _questsObjectivesFailed [ questId ] . contains ( objId ) ;
} else {
return false ;
}
} ;
Game _System . prototype . isQuestObjectiveUncleared = function ( questId , objId ) {
if ( this . _questsKnown . contains ( questId ) ) {
return ! this . isQuestObjectiveCompleted ( questId , objId ) && ! this . isQuestObjectiveFailed ( questId , objId ) ;
} else {
return false ;
}
} ;
Game _System . prototype . isQuestRewardClaimed = function ( questId , objId ) {
if ( this . _questsRewardsClaimed [ questId ] ) {
return this . _questsRewardsClaimed [ questId ] . contains ( objId ) ;
} else {
return false ;
}
} ;
Game _System . prototype . isQuestRewardDenied = function ( questId , objId ) {
if ( this . _questsRewardsDenied [ questId ] ) {
return this . _questsRewardsDenied [ questId ] . contains ( objId ) ;
} else {
return false ;
}
} ;
Game _System . prototype . isQuestRewardUnclaimed = function ( questId , objId ) {
if ( this . _questsKnown . contains ( questId ) ) {
return ! this . isQuestRewardClaimed ( questId , objId ) && ! this . isQuestRewardDenied ( questId , objId ) ;
} else {
return false ;
}
} ;
//=============================================================================
// Game_Interpreter
//=============================================================================
Yanfly . Quest . Game _Interpreter _pluginCommand = Game _Interpreter . prototype . pluginCommand ;
Game _Interpreter . prototype . pluginCommand = function ( command , args ) {
Yanfly . Quest . Game _Interpreter _pluginCommand . call ( this , command , args ) ;
if ( command === "OpenQuestJournal" ) {
SceneManager . push ( Scene _Quest ) ;
} else if ( command === "Quest" ) {
this . processQuestPluginCommands ( this . argsToString ( args ) ) ;
}
} ;
Game _Interpreter . prototype . argsToString = function ( args ) {
var str = "" ;
var length = args . length ;
for ( var i = 0 ; i < length ; ++ i ) {
str += args [ i ] + " " ;
}
return str . trim ( ) ;
} ;
Game _Interpreter . prototype . parseNumericRange = function ( str ) {
if ( str . match ( /(\d+)[ ](?:THROUGH|to)[ ](\d+)/i ) ) {
var range = Yanfly . Util . getRange ( parseInt ( RegExp . $1 ) , parseInt ( RegExp . $2 ) ) ;
} else {
var range = str . split ( "," ) ;
var length = range . length ;
for ( var i = 0 ; i < length ; ++ i ) {
range [ i ] = parseInt ( range [ i ] ) ;
}
}
return range ;
} ;
Game _Interpreter . prototype . processQuestPluginCommands = function ( line ) {
if ( line . match ( /EVAL[ ](.*)/i ) ) {
eval ( RegExp . $1 ) ;
} else if ( line . match ( /JOURNAL OPEN TO[ ](\d+)/i ) ) {
var questId = parseInt ( RegExp . $1 ) ;
$gameSystem . questAdd ( questId ) ;
$gameTemp . reservedQuestOpen ( questId ) ;
SceneManager . push ( Scene _Quest ) ;
} else if ( line . match ( /JOURNAL OPEN/i ) ) {
SceneManager . push ( Scene _Quest ) ;
} else if ( line . match ( /JOURNAL SHOW/i ) ) {
$gameSystem . setShowQuest ( true ) ;
} else if ( line . match ( /JOURNAL HIDE/i ) ) {
$gameSystem . setShowQuest ( false ) ;
} else if ( line . match ( /JOURNAL ENABLE/i ) ) {
$gameSystem . setEnableQuest ( true ) ;
} else if ( line . match ( /JOURNAL DISABLE/i ) ) {
$gameSystem . setEnableQuest ( false ) ;
} else if ( line . match ( /SET COMPLETED[ ](.*)/i ) ) {
var range = this . parseNumericRange ( String ( RegExp . $1 ) ) ;
$gameSystem . questSetCompletedRange ( range ) ;
} else if ( line . match ( /SET FAILED[ ](.*)/i ) ) {
var range = this . parseNumericRange ( String ( RegExp . $1 ) ) ;
$gameSystem . questSetFailedRange ( range ) ;
} else if ( line . match ( /SET AVAILABLE[ ](.*)/i ) ) {
var range = this . parseNumericRange ( String ( RegExp . $1 ) ) ;
$gameSystem . questSetAvailableRange ( range ) ;
} else if ( line . match ( /(\d+)[ ]CHANGE DESCRIPTION ENTRY TO[ ](\d+)/i ) ) {
var questId = parseInt ( RegExp . $1 ) ;
var value = parseInt ( RegExp . $2 ) ;
$gameSystem . questChangeDescriptionIndex ( questId , value ) ;
} else if ( line . match ( /(\d+)[ ]SHOW OBJECTIVE[ ](.*)/i ) ) {
var questId = parseInt ( RegExp . $1 ) ;
var range = this . parseNumericRange ( String ( RegExp . $2 ) ) ;
$gameSystem . questObjectivesShowRange ( questId , range ) ;
} else if ( line . match ( /(\d+)[ ]SHOW ALL OBJECTIVE/i ) ) {
var questId = parseInt ( RegExp . $1 ) ;
$gameSystem . questObjectivesShowAll ( questId ) ;
} else if ( line . match ( /(\d+)[ ]HIDE OBJECTIVE[ ](.*)/i ) ) {
var questId = parseInt ( RegExp . $1 ) ;
var range = this . parseNumericRange ( String ( RegExp . $2 ) ) ;
$gameSystem . questObjectivesHideRange ( questId , range ) ;
} else if ( line . match ( /(\d+)[ ]HIDE ALL OBJECTIVE/i ) ) {
var questId = parseInt ( RegExp . $1 ) ;
$gameSystem . questObjectivesHideAll ( questId ) ;
} else if ( line . match ( /(\d+)[ ]NORMALIZE OBJECTIVE[ ](.*)/i ) ) {
var questId = parseInt ( RegExp . $1 ) ;
var range = this . parseNumericRange ( String ( RegExp . $2 ) ) ;
$gameSystem . questObjectivesNormalRange ( questId , range ) ;
} else if ( line . match ( /(\d+)[ ]NORMALIZE ALL OBJECTIVE/i ) ) {
var questId = parseInt ( RegExp . $1 ) ;
$gameSystem . questObjectivesNormalAll ( questId ) ;
} else if ( line . match ( /(\d+)[ ]COMPLETE OBJECTIVE[ ](.*)/i ) ) {
var questId = parseInt ( RegExp . $1 ) ;
var range = this . parseNumericRange ( String ( RegExp . $2 ) ) ;
$gameSystem . questObjectivesCompleteRange ( questId , range ) ;
} else if ( line . match ( /(\d+)[ ]COMPLETE ALL OBJECTIVE/i ) ) {
var questId = parseInt ( RegExp . $1 ) ;
$gameSystem . questObjectivesCompleteAll ( questId ) ;
} else if ( line . match ( /(\d+)[ ]FAIL OBJECTIVE[ ](.*)/i ) ) {
var questId = parseInt ( RegExp . $1 ) ;
var range = this . parseNumericRange ( String ( RegExp . $2 ) ) ;
$gameSystem . questObjectivesFailRange ( questId , range ) ;
} else if ( line . match ( /(\d+)[ ]FAIL ALL OBJECTIVE/i ) ) {
var questId = parseInt ( RegExp . $1 ) ;
$gameSystem . questObjectivesFailAll ( questId ) ;
} else if ( line . match ( /(\d+)[ ]SHOW REWARD[ ](.*)/i ) ) {
var questId = parseInt ( RegExp . $1 ) ;
var range = this . parseNumericRange ( String ( RegExp . $2 ) ) ;
$gameSystem . questRewardsShowRange ( questId , range ) ;
} else if ( line . match ( /(\d+)[ ]SHOW ALL REWARD/i ) ) {
var questId = parseInt ( RegExp . $1 ) ;
$gameSystem . questRewardsShowAll ( questId ) ;
} else if ( line . match ( /(\d+)[ ]HIDE REWARD[ ](.*)/i ) ) {
var questId = parseInt ( RegExp . $1 ) ;
var range = this . parseNumericRange ( String ( RegExp . $2 ) ) ;
$gameSystem . questRewardsHideRange ( questId , range ) ;
} else if ( line . match ( /(\d+)[ ]HIDE ALL REWARD/i ) ) {
var questId = parseInt ( RegExp . $1 ) ;
$gameSystem . questRewardsHideAll ( questId ) ;
} else if ( line . match ( /(\d+)[ ]NORMALIZE REWARD[ ](.*)/i ) ) {
var questId = parseInt ( RegExp . $1 ) ;
var range = this . parseNumericRange ( String ( RegExp . $2 ) ) ;
$gameSystem . questRewardsNormalRange ( questId , range ) ;
} else if ( line . match ( /(\d+)[ ]NORMALIZE ALL REWARD/i ) ) {
var questId = parseInt ( RegExp . $1 ) ;
$gameSystem . questRewardsNormalAll ( questId ) ;
} else if ( line . match ( /(\d+)[ ]CLAIM REWARD[ ](.*)/i ) ) {
var questId = parseInt ( RegExp . $1 ) ;
var range = this . parseNumericRange ( String ( RegExp . $2 ) ) ;
$gameSystem . questRewardsClaimRange ( questId , range ) ;
} else if ( line . match ( /(\d+)[ ]CLAIM ALL REWARD/i ) ) {
var questId = parseInt ( RegExp . $1 ) ;
$gameSystem . questRewardsClaimAll ( questId ) ;
} else if ( line . match ( /(\d+)[ ]DENY REWARD[ ](.*)/i ) ) {
var questId = parseInt ( RegExp . $1 ) ;
var range = this . parseNumericRange ( String ( RegExp . $2 ) ) ;
$gameSystem . questRewardsDenyRange ( questId , range ) ;
} else if ( line . match ( /(\d+)[ ]DENY ALL REWARD/i ) ) {
var questId = parseInt ( RegExp . $1 ) ;
$gameSystem . questRewardsDenyAll ( questId ) ;
} else if ( line . match ( /(\d+)[ ]CHANGE SUBTEXT ENTRY TO[ ](\d+)/i ) ) {
var questId = parseInt ( RegExp . $1 ) ;
var value = parseInt ( RegExp . $2 ) ;
$gameSystem . questChangeSubtextIndex ( questId , value ) ;
} else if ( line . match ( /ADD[ ](.*)/i ) ) {
var range = this . parseNumericRange ( String ( RegExp . $1 ) ) ;
$gameSystem . questAddRange ( range ) ;
} else if ( line . match ( /REMOVE[ ](.*)/i ) ) {
var range = this . parseNumericRange ( String ( RegExp . $1 ) ) ;
$gameSystem . questRemoveRange ( range ) ;
}
} ;
//=============================================================================
// Window_MenuCommand
//=============================================================================
Yanfly . Quest . Window _MenuCommand _addOriginalCommands = Window _MenuCommand . prototype . addOriginalCommands ;
Window _MenuCommand . prototype . addOriginalCommands = function ( ) {
Yanfly . Quest . Window _MenuCommand _addOriginalCommands . call ( this ) ;
this . addQuestCommand ( ) ;
} ;
Window _MenuCommand . prototype . addQuestCommand = function ( ) {
if ( ! Yanfly . Param . QuestCmdPlace ) return ;
if ( ! $gameSystem . isShowQuest ( ) ) return ;
if ( this . findSymbol ( "quest" ) > - 1 ) return ;
var text = Yanfly . Param . QuestCmdName ;
var enabled = $gameSystem . isEnableQuest ( ) ;
this . addCommand ( text , "quest" , enabled ) ;
} ;
//=============================================================================
// Window_QuestData
//=============================================================================
function Window _QuestData ( ) {
this . initialize . apply ( this , arguments ) ;
}
Window _QuestData . prototype = Object . create ( Window _Selectable . prototype ) ;
Window _QuestData . prototype . constructor = Window _QuestData ;
Window _QuestData . prototype . initialize = function ( ) {
var width = this . windowWidth ( ) ;
var height = this . windowHeight ( ) ;
var x = Math . round ( eval ( this . settings ( "X" ) ) ) ;
var y = Math . round ( eval ( this . settings ( "Y" ) ) ) ;
this . _allTextHeight = 0 ;
this . _countdown = 0 ;
this . _arrowBlinkTimer = 0 ;
Window _Selectable . prototype . initialize . call ( this , x , y , width , height ) ;
this . setQuestId ( 0 ) ;
this . opacity = Math . round ( eval ( this . settings ( "Standard Opacity" ) ) ) ;
} ;
Window _QuestData . prototype . settings = function ( key ) {
return Yanfly . Param . QuestDataWindow [ key ] ;
} ;
Window _QuestData . prototype . windowWidth = function ( ) {
if ( this . _windowWidth === undefined ) {
this . _windowWidth = Math . round ( eval ( this . settings ( "Width" ) ) ) ;
}
return this . _windowWidth ;
} ;
Window _QuestData . prototype . windowHeight = function ( ) {
if ( this . _windowHeight === undefined ) {
this . _windowHeight = Math . round ( eval ( this . settings ( "Height" ) ) ) ;
}
return this . _windowHeight ;
} ;
Window _QuestData . prototype . lineHeight = function ( ) {
if ( this . _windowLineHeight === undefined ) {
this . _windowLineHeight = parseInt ( this . settings ( "Line Height" ) ) ;
}
return this . _windowLineHeight ;
} ;
Window _QuestData . prototype . standardFontFace = function ( ) {
if ( this . _windowFontFace === undefined ) {
this . _windowFontFace = this . settings ( "Font Face" ) ;
}
return this . _windowFontFace ;
} ;
Window _QuestData . prototype . standardFontSize = function ( ) {
if ( this . _windowFontSize === undefined ) {
this . _windowFontSize = Math . round ( eval ( this . settings ( "Font Size" ) ) ) ;
}
return this . _windowFontSize ;
} ;
Window _QuestData . prototype . standardPadding = function ( ) {
if ( this . _windowStandardPadding === undefined ) {
this . _windowStandardPadding = Math . round ( eval ( this . settings ( "Standard Padding" ) ) ) ;
}
return this . _windowStandardPadding ;
} ;
Window _QuestData . prototype . textPadding = function ( ) {
if ( this . _windowTextPadding === undefined ) {
this . _windowTextPadding = Math . round ( eval ( this . settings ( "Text Padding" ) ) ) ;
}
return this . _windowTextPadding ;
} ;
Window _QuestData . prototype . standardBackOpacity = function ( ) {
if ( this . _windowBackOpacity === undefined ) {
this . _windowBackOpacity = Math . round ( eval ( this . settings ( "Back Opacity" ) ) ) ;
}
return this . _windowBackOpacity ;
} ;
Window _QuestData . prototype . loadWindowskin = function ( ) {
this . windowskin = ImageManager . loadSystem ( this . settings ( "Window Skin" ) ) ;
} ;
Window _QuestData . prototype . delayLoadFrames = function ( ) {
if ( this . _delayLoad === undefined ) {
this . _delayLoad = Math . round ( eval ( this . settings ( "Load Delay" ) ) ) ;
}
return this . _delayLoad ;
} ;
Window _QuestData . prototype . setQuestId = function ( id ) {
if ( this . _questId !== id ) {
this . _questId = id ;
this . _countdown = 30 ;
this . refresh ( ) ;
}
} ;
//---魔改--- v1.00 识别Window_QuestData
Window _QuestData . prototype . IsZzyXTQJScrollBar = function ( )
{ return true ; }
Window _QuestData . prototype . GetZzyXTQJBarRate = function ( )
{
var pad = this . standardPadding ( ) ;
//var mr = this.maxRows();
//var mpr = this.maxPageRows();
var mr = this . contents . height ;
var mpr = this . height - pad * 2 ;
var rate = mpr / mr ;
return Math . min ( 1 , rate ) ;
}
Window _QuestData . prototype . GetZzyXTQJBlockBarRect = function ( )
{
//会计算当前滚动条的位置
var rate = this . GetZzyXTQJBarRate ( ) ;
var nbarRt = this . GetZzyXTQJBarRectArea ( ) ;
var dis = Zzy . XTQJ . BarBlockDis ;
var barHieght = nbarRt . height * rate ;
var rt = new Rectangle ( dis ,
dis ,
nbarRt . width ,
barHieght ) ;
var tp = this . origin . y ;
var mtp = this . contentsHeight ( ) - this . height + this . standardPadding ( ) * 2 ;
var trate = mtp ? tp / mtp : 0 ;
rt . y += ( nbarRt . height - rt . height ) * trate ;
return rt ;
}
//滚动重写
Window _QuestData . prototype . UpdateZzyXTQJHit = function ( )
{
if ( ! this . _ZzyXTQJHit ) return ;
this . _ZzyXTQJHitEX = this . canvasToLocalX ( TouchInput . x ) ;
this . _ZzyXTQJHitEY = this . canvasToLocalY ( TouchInput . y ) ;
var cDis = this . _ZzyXTQJHitCY - this . _ZzyXTQJHitEY ;
var dis = this . scrollSpeed ( ) * 4 ;
if ( Math . abs ( cDis ) >= dis )
{
this . _ZzyXTQJHitCY = this . _ZzyXTQJHitEY ;
if ( cDis < 0 ) this . scrollOriginDown ( dis ) ;
else if ( cDis > 0 ) this . scrollOriginUp ( dis ) ;
this . DrawZzyXTQJBar ( ) ; //进行刷新
}
}
//执行点击选中位置
Window _QuestData . prototype . IsHitZzyXTQJBar = function ( x , y ) //点中测试
{
var pad = this . standardPadding ( ) ;
x -= this . _ZzyXTQJBarContnets . x - pad ;
y -= this . _ZzyXTQJBarContnets . y - pad ;
var rt = this . GetZzyXTQJBlockBarRect ( ) ;
var padding = this . standardPadding ( ) ;
rt . x += padding ;
rt . y += padding ;
if ( x >= rt . x &&
x <= rt . width + rt . x &&
y >= rt . y &&
y <= rt . height + rt . y ) return true ;
return false ;
}
Window _QuestData . prototype . refresh = function ( )
{
if ( this . _countdown > 0 ) return ;
this . contents . clear ( ) ;
this . _lastOriginY = - 200 ;
this . origin . y = 0 ;
this . _allTextHeight = 0 ;
if ( this . _questId > 0 ) {
this . drawQuestData ( ) ;
} else {
this . drawEmpty ( ) ;
}
//---魔改--- v1.00 绘制滚动条
this . RefreshZzyXTQJ ( ) ;
} ;
Window _QuestData . _questNoDataFmt = JSON . parse ( Yanfly . Param . QuestDataWindow [ "No Data Text" ] || "" ) ;
Window _QuestData . prototype . drawEmpty = function ( ) {
var fmt = Window _QuestData . _questNoDataFmt ;
var wordwrap = fmt . match ( /<(?:WordWrap)>/i ) ;
var text = fmt . format ( ) ;
var textState = { index : 0 } ;
textState . originalText = text ;
textState . text = this . convertEscapeCharacters ( text ) ;
this . resetFontSettings ( ) ;
this . _allTextHeight = this . calcTextHeight ( textState , true ) ;
this . _allTextHeight *= wordwrap ? 10 : 1 ;
this . createContents ( ) ;
this . drawQuestTextEx ( text , 0 , 0 ) ;
} ;
Window _QuestData . prototype . drawQuestData = function ( ) {
Window _QuestData . _questDataFmt = JSON . parse ( Yanfly . Param . QuestDataWindow [ "Quest Data Format" ] || "" ) ;
var questData = $dataQuests [ this . _questId ] ;
if ( ! questData ) return ;
var fmt = Window _QuestData . _questDataFmt ;
var wordwrap = fmt . match ( /<(?:WordWrap)>/i ) ;
var title = questData . name ;
title = title . replace ( /\\I\[(\d+)\]/gi , "" ) . trim ( ) ;
title = title . replace ( /\\C\[(\d+)\]/gi , "" ) . trim ( ) ;
var difficulty = questData . difficulty ;
var from = questData . from ;
var location = questData . location ;
var description = this . getQuestDescription ( ) ;
var objectives = this . getQuestObjectives ( wordwrap ) ;
var rewards = this . getQuestRewards ( wordwrap ) ;
var subtext = this . getQuestSubtext ( ) ;
var text = fmt . format ( title , difficulty , from , location , description , objectives , rewards , subtext ) ;
var textState = { index : 0 } ;
textState . originalText = text ;
textState . text = this . convertEscapeCharacters ( text ) ;
this . resetFontSettings ( ) ;
this . _allTextHeight = this . calcTextHeight ( textState , true ) ;
this . _allTextHeight *= wordwrap ? 10 : 1 ;
this . createContents ( ) ;
this . drawQuestTextEx ( text , 0 , 0 ) ;
} ;
Window _QuestData . prototype . drawQuestTextEx = function ( text , x , y ) {
if ( text ) {
var textState = { index : 0 , x : x , y : y , left : x } ;
textState . text = this . convertEscapeCharacters ( text ) ;
textState . height = this . calcTextHeight ( textState , false ) ;
this . resetFontSettings ( ) ;
while ( textState . index < textState . text . length ) {
this . processCharacter ( textState ) ;
}
this . _allTextHeight = textState . y - y + this . lineHeight ( ) ;
return textState . x - x ;
} else {
return 0 ;
}
} ;
Window _QuestData . prototype . getQuestDescription = function ( ) {
var questData = $dataQuests [ this . _questId ] ;
var index = $gameSystem . getQuestDescriptionIndex ( this . _questId ) ;
return JSON . parse ( questData . description [ index ] ) ;
} ;
Window _QuestData . prototype . getQuestObjectives = function ( wordwrap ) {
var questData = $dataQuests [ this . _questId ] ;
var lineData = questData . objectives ;
var visibleObjectives = $gameSystem . getQuestObjectives ( this . _questId ) ;
var length = visibleObjectives . length ;
var text = "" ;
for ( var i = 0 ; i < length ; ++ i ) {
if ( i > 0 ) text += wordwrap ? "<br>" : "\n" ;
var objectiveId = visibleObjectives [ i ] ;
var key = $gameSystem . getQuestObjectiveStatus ( this . _questId , objectiveId ) ;
var fmt = this . settings ( key ) ;
text += fmt . format ( JSON . parse ( lineData [ objectiveId ] ) ) ;
}
return text ;
} ;
Window _QuestData . prototype . getQuestRewards = function ( wordwrap ) {
var questData = $dataQuests [ this . _questId ] ;
var lineData = questData . rewards ;
var visibleRewards = $gameSystem . getQuestRewards ( this . _questId ) ;
var length = visibleRewards . length ;
var text = "" ;
for ( var i = 0 ; i < length ; ++ i ) {
if ( i > 0 ) text += wordwrap ? "<br>" : "\n" ;
var rewardId = visibleRewards [ i ] ;
var key = $gameSystem . getQuestRewardStatus ( this . _questId , rewardId ) ;
var fmt = this . settings ( key ) ;
text += fmt . format ( JSON . parse ( lineData [ rewardId ] ) ) ;
}
return text ;
} ;
Window _QuestData . prototype . getQuestSubtext = function ( ) {
var questData = $dataQuests [ this . _questId ] ;
var index = $gameSystem . getQuestSubtextIndex ( this . _questId ) ;
return JSON . parse ( questData . subtext [ index ] ) ;
} ;
Window _QuestData . prototype . select = function ( index ) { } ;
Window _QuestData . prototype . contentsHeight = function ( ) {
var standard = this . height - this . standardPadding ( ) * 2 ;
return Math . max ( standard , this . _allTextHeight ) ;
} ;
Window _QuestData . prototype . update = function ( ) {
Window _Selectable . prototype . update . call ( this ) ;
this . updateCountdown ( ) ;
if ( this . isOpenAndActive ( ) ) this . updateKeyScrolling ( ) ;
} ;
//asd
//---魔改--- v1.00 重写 processTouch 此处可能会造成不兼容的情况
Window _QuestData . prototype . processTouch = function ( )
{
Window _Selectable . prototype . processTouch . call ( this ) ;
//刷新关闭Touch
if ( ! this . _touching )
{
if ( this . _ZzyXTQJHit )
{
this . _ZzyXTQJHit = false ;
//this.refresh();
this . DrawZzyXTQJBar ( ) ;
}
}
} ;
Window _QuestData . prototype . updateCountdown = function ( ) {
if ( this . _countdown > 0 ) {
this . _countdown -= 1 ;
if ( this . _countdown <= 0 ) this . refresh ( ) ;
}
} ;
Window _QuestData . prototype . scrollSpeed = function ( ) {
if ( this . _scrollSpeed === undefined ) {
this . _scrollSpeed = Number ( this . settings ( "Scroll Speed" ) ) ;
}
return this . _scrollSpeed ;
} ;
Window _QuestData . prototype . scrollOriginDown = function ( speed ) {
var value = this . contentsHeight ( ) - this . height + this . standardPadding ( ) * 2 ;
this . origin . y = Math . min ( value , this . origin . y + speed ) ;
} ;
Window _QuestData . prototype . scrollOriginUp = function ( speed ) {
this . origin . y = Math . max ( 0 , this . origin . y - speed ) ;
} ;
Window _QuestData . prototype . updateKeyScrolling = function ( ) {
if ( Input . isPressed ( "up" ) ) {
this . scrollOriginUp ( this . scrollSpeed ( ) ) ;
} else if ( Input . isPressed ( "down" ) ) {
this . scrollOriginDown ( this . scrollSpeed ( ) ) ;
} else if ( Input . isPressed ( "pageup" ) ) {
this . scrollOriginUp ( this . scrollSpeed ( ) * 4 ) ;
} else if ( Input . isPressed ( "pagedown" ) ) {
this . scrollOriginDown ( this . scrollSpeed ( ) * 4 ) ;
}
} ;
Window _QuestData . prototype . updateArrows = function ( ) {
if ( this . _lastOriginY === this . origin . y ) return ;
this . showArrows ( ) ;
} ;
Window _QuestData . prototype . showArrows = function ( ) {
this . _lastOriginY = this . origin . y ;
this . upArrowVisible = this . origin . y !== 0 ;
this . downArrowVisible = this . origin . y !== this . contentsHeight ( ) - this . height + this . standardPadding ( ) * 2 ;
} ;
Window _QuestData . prototype . hideArrows = function ( ) {
this . upArrowVisible = false ;
this . downArrowVisible = false ;
} ;
Window _QuestData . prototype . isInsideFrame = function ( ) {
var x = this . canvasToLocalX ( TouchInput . _mouseOverX ) ;
var y = this . canvasToLocalY ( TouchInput . _mouseOverY ) ;
return x >= 0 && y >= 0 && x < this . width && y < this . height ;
} ;
Window _QuestData . prototype . processWheel = function ( ) {
if ( ! this . isInsideFrame ( ) ) return ;
var threshold = 20 ;
if ( TouchInput . wheelY >= threshold ) {
this . scrollOriginDown ( this . scrollSpeed ( ) * 4 ) ;
if ( this . _ZzyXTQJBarContnets )
{
this . DrawZzyXTQJBar ( ) ; //刷新
}
}
if ( TouchInput . wheelY <= - threshold ) {
this . scrollOriginUp ( this . scrollSpeed ( ) * 4 ) ;
if ( this . _ZzyXTQJBarContnets )
{
this . DrawZzyXTQJBar ( ) ; //刷新
}
}
} ;
//=============================================================================
// Window_QuestTitle
//=============================================================================
function Window _QuestTitle ( ) {
this . initialize . apply ( this , arguments ) ;
}
Window _QuestTitle . prototype = Object . create ( Window _Base . prototype ) ;
Window _QuestTitle . prototype . constructor = Window _QuestTitle ;
Window _QuestTitle . prototype . initialize = function ( ) {
var width = this . windowWidth ( ) ;
var height = this . windowHeight ( ) ;
var x = Math . round ( eval ( this . settings ( "X" ) ) ) ;
var y = Math . round ( eval ( this . settings ( "Y" ) ) ) ;
Window _Base . prototype . initialize . call ( this , x , y , width , height ) ;
this . setText ( this . settings ( "No Quest Title" ) ) ;
this . opacity = Math . round ( eval ( this . settings ( "Standard Opacity" ) ) ) ;
} ;
Window _QuestTitle . prototype . settings = function ( key ) {
return Yanfly . Param . QuestTitleWindow [ key ] ;
} ;
Window _QuestTitle . prototype . windowWidth = function ( ) {
if ( this . _windowWidth === undefined ) {
this . _windowWidth = Math . round ( eval ( this . settings ( "Width" ) ) ) ;
}
return this . _windowWidth ;
} ;
Window _QuestTitle . prototype . windowHeight = function ( ) {
if ( this . _windowHeight === undefined ) {
this . _windowHeight = Math . round ( eval ( this . settings ( "Height" ) ) ) ;
}
return this . _windowHeight ;
} ;
Window _QuestTitle . prototype . lineHeight = function ( ) {
if ( this . _windowLineHeight === undefined ) {
this . _windowLineHeight = parseInt ( this . settings ( "Line Height" ) ) ;
}
return this . _windowLineHeight ;
} ;
Window _QuestTitle . prototype . standardFontFace = function ( ) {
if ( this . _windowFontFace === undefined ) {
this . _windowFontFace = this . settings ( "Font Face" ) ;
}
return this . _windowFontFace ;
} ;
Window _QuestTitle . prototype . standardFontSize = function ( ) {
if ( this . _windowFontSize === undefined ) {
this . _windowFontSize = Math . round ( eval ( this . settings ( "Font Size" ) ) ) ;
}
return this . _windowFontSize ;
} ;
Window _QuestTitle . prototype . standardPadding = function ( ) {
if ( this . _windowStandardPadding === undefined ) {
this . _windowStandardPadding = Math . round ( eval ( this . settings ( "Standard Padding" ) ) ) ;
}
return this . _windowStandardPadding ;
} ;
Window _QuestTitle . prototype . textPadding = function ( ) {
if ( this . _windowTextPadding === undefined ) {
this . _windowTextPadding = Math . round ( eval ( this . settings ( "Text Padding" ) ) ) ;
}
return this . _windowTextPadding ;
} ;
Window _QuestTitle . prototype . itemTextAlign = function ( ) {
return this . settings ( "Text Alignment" ) ;
} ;
Window _QuestTitle . prototype . standardBackOpacity = function ( ) {
if ( this . _windowBackOpacity === undefined ) {
this . _windowBackOpacity = Math . round ( eval ( this . settings ( "Back Opacity" ) ) ) ;
}
return this . _windowBackOpacity ;
} ;
Window _QuestTitle . prototype . loadWindowskin = function ( ) {
this . windowskin = ImageManager . loadSystem ( this . settings ( "Window Skin" ) ) ;
} ;
Window _QuestTitle . prototype . setText = function ( text ) {
if ( this . _text !== text ) {
this . _text = text ;
this . refresh ( ) ;
}
} ;
Window _QuestTitle . prototype . refresh = function ( ) {
this . contents . clear ( ) ;
var align = this . settings ( "Text Alignment" ) ;
var wx = 0 ;
var ww = this . contents . width ;
if ( align === "left" ) {
wx = this . textPadding ( ) ;
} else if ( align === "center" ) {
wx += ( ww - this . textWidthEx ( this . _text ) ) / 2 ;
} else {
wx += ww - this . textWidthEx ( this . _text ) - this . textPadding ( ) ;
}
this . drawTextEx ( this . _text , wx , 0 ) ;
} ;
Window _QuestTitle . prototype . textWidthEx = function ( text ) {
return this . drawTextEx ( text , 0 , this . contents . height ) ;
} ;
//=============================================================================
// Window_QuestCategories
//=============================================================================
function Window _QuestCategories ( ) {
this . initialize . apply ( this , arguments ) ;
}
Window _QuestCategories . prototype = Object . create ( Window _Command . prototype ) ;
Window _QuestCategories . prototype . constructor = Window _QuestCategories ;
Window _QuestCategories . prototype . initialize = function ( ) {
var width = this . windowWidth ( ) ;
var height = this . windowHeight ( ) ;
var x = Math . round ( eval ( this . settings ( "X" ) ) ) ;
var y = Math . round ( eval ( this . settings ( "Y" ) ) ) ;
Window _Command . prototype . initialize . call ( this , x , y ) ;
this . opacity = Math . round ( eval ( this . settings ( "Standard Opacity" ) ) ) ;
} ;
Window _QuestCategories . prototype . settings = function ( key ) {
return Yanfly . Param . QuestCategoryWindow [ key ] ;
} ;
Window _QuestCategories . prototype . windowWidth = function ( ) {
if ( this . _windowWidth === undefined ) {
this . _windowWidth = Math . round ( eval ( this . settings ( "Width" ) ) ) ;
}
return this . _windowWidth ;
} ;
Window _QuestCategories . prototype . windowHeight = function ( ) {
if ( this . _windowHeight === undefined ) {
this . _windowHeight = Math . round ( eval ( this . settings ( "Height" ) ) ) ;
}
return this . _windowHeight ;
} ;
Window _QuestCategories . prototype . numVisibleRows = function ( ) {
if ( this . _windowRows === undefined ) {
this . _windowRows = Math . round ( eval ( this . settings ( "Rows" ) ) ) ;
}
return this . _windowRows ;
} ;
Window _QuestCategories . prototype . maxCols = function ( ) {
if ( this . _windowColumns === undefined ) {
this . _windowColumns = Math . round ( eval ( this . settings ( "Columns" ) ) ) ;
}
return this . _windowColumns ;
} ;
Window _QuestCategories . prototype . lineHeight = function ( ) {
if ( this . _windowLineHeight === undefined ) {
this . _windowLineHeight = parseInt ( this . settings ( "Line Height" ) ) ;
}
return this . _windowLineHeight ;
} ;
Window _QuestCategories . prototype . standardFontFace = function ( ) {
if ( this . _windowFontFace === undefined ) {
this . _windowFontFace = this . settings ( "Font Face" ) ;
}
return this . _windowFontFace ;
} ;
Window _QuestCategories . prototype . standardFontSize = function ( ) {
if ( this . _windowFontSize === undefined ) {
this . _windowFontSize = Math . round ( eval ( this . settings ( "Font Size" ) ) ) ;
}
return this . _windowFontSize ;
} ;
Window _QuestCategories . prototype . standardPadding = function ( ) {
if ( this . _windowStandardPadding === undefined ) {
this . _windowStandardPadding = Math . round ( eval ( this . settings ( "Standard Padding" ) ) ) ;
}
return this . _windowStandardPadding ;
} ;
Window _QuestCategories . prototype . textPadding = function ( ) {
if ( this . _windowTextPadding === undefined ) {
this . _windowTextPadding = Math . round ( eval ( this . settings ( "Text Padding" ) ) ) ;
}
return this . _windowTextPadding ;
} ;
Window _QuestCategories . prototype . itemTextAlign = function ( ) {
return this . settings ( "Text Alignment" ) ;
} ;
Window _QuestCategories . prototype . standardBackOpacity = function ( ) {
if ( this . _windowBackOpacity === undefined ) {
this . _windowBackOpacity = Math . round ( eval ( this . settings ( "Back Opacity" ) ) ) ;
}
return this . _windowBackOpacity ;
} ;
Window _QuestCategories . prototype . loadWindowskin = function ( ) {
this . windowskin = ImageManager . loadSystem ( this . settings ( "Window Skin" ) ) ;
} ;
Window _QuestCategories . prototype . makeCommandList = function ( ) {
var list = JSON . parse ( this . settings ( "Category Order" ) ) ;
var length = list . length ;
for ( var i = 0 ; i < length ; ++ i ) {
var listItem = list [ i ] ;
switch ( listItem ) {
case "available" :
var fmt = this . settings ( "Available Text" ) ;
var number = $gameSystem . totalQuestsAvailable ( ) ;
break ;
case "completed" :
var fmt = this . settings ( "Completed Text" ) ;
var number = $gameSystem . totalQuestsCompleted ( ) ;
break ;
case "failed" :
var fmt = this . settings ( "Failed Text" ) ;
var number = $gameSystem . totalQuestsFailed ( ) ;
break ;
case "all" :
var fmt = this . settings ( "All Text" ) ;
var number = $gameSystem . totalQuestsKnown ( ) ;
break ;
case "cancel" :
var text = this . settings ( "Cancel Text" ) ;
this . addCommand ( text , "cancel" ) ;
continue ;
break ;
}
number = Yanfly . Util . toGroup ( number ) ;
var text = fmt . format ( number ) ;
this . addCommand ( text , "category" , true , listItem ) ;
}
} ;
Window _QuestCategories . prototype . drawItem = function ( index ) {
var rect = this . itemRectForText ( index ) ;
var text = this . commandName ( index ) ;
var align = this . settings ( "Text Alignment" ) ;
var wx = 0 ;
var ww = rect . width ;
if ( align === "left" ) {
wx = rect . x ;
} else if ( align === "center" ) {
wx += ( ww - this . textWidthEx ( text ) ) / 2 ;
} else {
wx += ww - this . textWidthEx ( text ) - this . textPadding ( ) ;
}
this . drawTextEx ( text , wx , rect . y ) ;
} ;
Window _QuestCategories . prototype . textWidthEx = function ( text ) {
return this . drawTextEx ( text , 0 , this . contents . height ) ;
} ;
Window _QuestCategories . prototype . setListWindow = function ( win ) {
this . _listWindow = win ;
} ;
Window _QuestCategories . prototype . update = function ( ) {
Window _Command . prototype . update . call ( this ) ;
if ( this . _listWindow ) this . _listWindow . setCategoryType ( this . currentExt ( ) ) ;
} ;
Window _QuestCategories . prototype . isInsideFrame = function ( ) {
var x = this . canvasToLocalX ( TouchInput . _mouseOverX ) ;
var y = this . canvasToLocalY ( TouchInput . _mouseOverY ) ;
return x >= 0 && y >= 0 && x < this . width && y < this . height ;
} ;
Window _QuestCategories . prototype . processWheel = function ( ) {
if ( ! this . isInsideFrame ( ) ) return ;
var threshold = 20 ;
if ( TouchInput . wheelY >= threshold ) this . scrollDown ( ) ;
if ( TouchInput . wheelY <= - threshold ) this . scrollUp ( ) ;
} ;
//=============================================================================
// Window_QuestList
//=============================================================================
function Window _QuestList ( ) {
this . initialize . apply ( this , arguments ) ;
}
Window _QuestList . prototype = Object . create ( Window _Command . prototype ) ;
Window _QuestList . prototype . constructor = Window _QuestList ;
Window _QuestList . prototype . initialize = function ( cw , dw , tw ) {
this . _currentCategory = JSON . parse ( Yanfly . Param . QuestCategoryWindow [ "Category Order" ] ) [ 0 ] ;
this . _closedQuestTypes = [ ] ;
var width = this . windowWidth ( ) ;
var height = this . windowHeight ( ) ;
var x = Math . round ( eval ( this . settings ( "X" ) ) ) ;
var y = Math . round ( eval ( this . settings ( "Y" ) ) ) ;
this . _dataWindow = dw ;
this . _titleWindow = tw ;
this . _mode = "Quest" ;
Window _Command . prototype . initialize . call ( this , x , y ) ;
cw . setListWindow ( this ) ;
this . opacity = Math . round ( eval ( this . settings ( "Standard Opacity" ) ) ) ;
this . deselect ( ) ;
this . deactivate ( ) ;
} ;
Window _QuestList . prototype . settings = function ( key ) {
return Yanfly . Param . QuestListWindow [ key ] ;
} ;
Window _QuestList . prototype . windowWidth = function ( ) {
if ( this . _windowWidth === undefined ) {
this . _windowWidth = Math . round ( eval ( this . settings ( "Width" ) ) ) ;
}
return this . _windowWidth ;
} ;
Window _QuestList . prototype . windowHeight = function ( ) {
if ( this . _windowHeight === undefined ) {
this . _windowHeight = Math . round ( eval ( this . settings ( "Height" ) ) ) ;
}
return this . _windowHeight ;
} ;
Window _QuestList . prototype . maxCols = function ( ) {
return 1 ;
} ;
Window _QuestList . prototype . lineHeight = function ( ) {
if ( this . _windowLineHeight === undefined ) {
this . _windowLineHeight = parseInt ( this . settings ( "Line Height" ) ) ;
}
return this . _windowLineHeight ;
} ;
Window _QuestList . prototype . standardFontFace = function ( ) {
if ( this . _windowFontFace === undefined ) {
this . _windowFontFace = this . settings ( "Font Face" ) ;
}
return this . _windowFontFace ;
} ;
Window _QuestList . prototype . standardFontSize = function ( ) {
if ( this . _windowFontSize === undefined ) {
this . _windowFontSize = Math . round ( eval ( this . settings ( "Font Size" ) ) ) ;
}
return this . _windowFontSize ;
} ;
Window _QuestList . prototype . standardPadding = function ( ) {
if ( this . _windowStandardPadding === undefined ) {
this . _windowStandardPadding = Math . round ( eval ( this . settings ( "Standard Padding" ) ) ) ;
}
return this . _windowStandardPadding ;
} ;
Window _QuestList . prototype . textPadding = function ( ) {
if ( this . _windowTextPadding === undefined ) {
this . _windowTextPadding = Math . round ( eval ( this . settings ( "Text Padding" ) ) ) ;
}
return this . _windowTextPadding ;
} ;
Window _QuestList . prototype . standardBackOpacity = function ( ) {
if ( this . _windowBackOpacity === undefined ) {
this . _windowBackOpacity = Math . round ( eval ( this . settings ( "Back Opacity" ) ) ) ;
}
return this . _windowBackOpacity ;
} ;
Window _QuestList . prototype . loadWindowskin = function ( ) {
this . windowskin = ImageManager . loadSystem ( this . settings ( "Window Skin" ) ) ;
} ;
Window _QuestList . prototype . itemTextAlign = function ( ) {
return this . settings ( "Quest Alignment" ) ;
} ;
Window _QuestList . prototype . drawItem = function ( index ) {
var rect = this . itemRectForText ( index ) ;
var text = this . commandName ( index ) ;
var symbol = this . commandSymbol ( index ) ;
this . changePaintOpacity ( this . isCommandEnabled ( index ) ) ;
if ( symbol === "type" ) {
var align = this . settings ( "Type Alignment" ) ;
} else {
var align = this . settings ( "Quest Alignment" ) ;
var indent = parseInt ( this . settings ( "Quest Indent" ) ) ;
rect . x += indent ;
rect . width -= indent ;
}
var wx = 0 ;
var ww = rect . width ;
if ( align === "left" ) {
wx = rect . x ;
} else if ( align === "center" ) {
wx += ( ww - this . textWidthEx ( text ) ) / 2 ;
} else {
wx += ww - this . textWidthEx ( text ) - this . textPadding ( ) ;
}
this . drawTextEx ( text , wx , rect . y ) ;
} ;
Window _QuestList . prototype . textWidthEx = function ( text ) {
return this . drawTextEx ( text , 0 , this . contents . height ) ;
} ;
Window _QuestList . prototype . setCategoryType = function ( category ) {
if ( this . _currentCategory !== category ) {
this . _currentCategory = category ;
this . refresh ( ) ;
this . resetScroll ( ) ;
this . deselect ( ) ;
this . update ( ) ;
}
} ;
Window _QuestList . prototype . showType = function ( ) {
if ( this . _settingsShowType === undefined ) {
this . _settingsShowType = Math . round ( eval ( this . settings ( "Show Types" ) ) ) ;
}
return this . _settingsShowType ;
} ;
Window _QuestList . prototype . showEmptyTypes = function ( ) {
if ( this . _showEmpty === undefined ) {
this . _showEmpty = eval ( this . settings ( "Show Empty" ) ) ;
}
return this . _showEmpty ;
} ;
Window _QuestList . prototype . setMode = function ( mode ) {
if ( mode === "Extra" ) {
this . _prevTopRow = this . topRow ( ) ;
this . _prevIndex = this . index ( ) ;
this . _forcedExt = this . currentExt ( ) ;
this . setTopRow ( 0 ) ;
} else {
this . _forcedExt = undefined ;
}
this . _mode = mode ;
this . refresh ( ) ;
this . activate ( ) ;
if ( mode === "Extra" ) {
this . select ( 0 ) ;
} else {
this . select ( this . _prevIndex ) ;
this . setTopRow ( this . _prevTopRow ) ;
}
} ;
Window _QuestList . prototype . currentExt = function ( ) {
return this . _forcedExt || Window _Command . prototype . currentExt . call ( this ) ;
} ;
Window _QuestList . prototype . makeCommandList = function ( ) {
if ( this . _mode === "Quest" ) {
this . makeQuestList ( ) ;
} else {
this . makeExtraList ( ) ;
}
} ;
Window _QuestList . prototype . makeQuestList = function ( ) {
if ( this . showType ( ) ) {
var list = JSON . parse ( this . settings ( "Type Order" ) ) ;
var length = list . length ;
for ( var i = 0 ; i < length ; ++ i ) {
var listItem = list [ i ] ;
var fmt = this . settings ( "Type Text Format" ) ;
var type = listItem . replace ( /\\I\[(\d+)\]/gi , "" ) . trim ( ) ;
var type = listItem . replace ( /\\C\[(\d+)\]/gi , "" ) . trim ( ) ;
if ( this . _closedQuestTypes . contains ( type ) ) {
var closed = this . settings ( "List Closed Symbol" ) ;
} else {
var closed = this . settings ( "List Open Symbol" ) ;
}
var number = $gameSystem . getTypeQuests ( this . _currentCategory , type ) . length ;
if ( ! this . showEmptyTypes ( ) && number <= 0 ) continue ;
number = Yanfly . Util . toGroup ( number ) ;
var text = fmt . format ( closed , listItem , number ) ;
this . addCommand ( text , "type" , true , type ) ;
if ( ! this . _closedQuestTypes . contains ( type ) ) {
this . addQuestCommands ( this . _currentCategory , type ) ;
}
}
} else {
this . addQuestCommands ( this . _currentCategory ) ;
}
} ;
Window _QuestList . prototype . makeExtraList = function ( ) {
this . addReadQuestCommand ( ) ;
this . makeExtraListA ( ) ;
this . makeExtraListB ( ) ;
this . makeExtraListC ( ) ;
this . makeExtraListD ( ) ;
this . makeExtraListE ( ) ;
this . makeExtraListF ( ) ;
this . addCancelCommand ( ) ;
} ;
Window _QuestList . prototype . addReadQuestCommand = function ( ) {
var text = this . settings ( "Read Quest" ) || "\\i[121]Read Quest" ;
this . addCommand ( text , "readQuest" ) ;
} ;
Window _QuestList . prototype . addCancelCommand = function ( ) {
var text = this . settings ( "Cancel" ) || "\\i[16]Cancel" ;
this . addCommand ( text , "cancel" ) ;
} ;
Window _QuestList . prototype . makeExtraListA = function ( ) { } ;
Window _QuestList . prototype . makeExtraListB = function ( ) { } ;
Window _QuestList . prototype . makeExtraListC = function ( ) { } ;
Window _QuestList . prototype . makeExtraListD = function ( ) { } ;
Window _QuestList . prototype . makeExtraListE = function ( ) { } ;
Window _QuestList . prototype . makeExtraListF = function ( ) { } ;
Window _QuestList . prototype . addQuestCommands = function ( category , type ) {
category = category || this . _currentCategory ;
type = type || "" ;
var list = $gameSystem . getTypeQuests ( category , type ) ;
var length = list . length ;
for ( var i = 0 ; i < length ; ++ i ) {
var questId = list [ i ] ;
var questData = $dataQuests [ questId ] ;
if ( ! questData ) continue ;
var text = questData . name ;
this . addCommand ( text , "quest" , true , questId ) ;
}
} ;
Window _QuestList . prototype . update = function ( ) {
Window _Command . prototype . update . call ( this ) ;
if ( this . _dataWindow ) {
if ( this . currentSymbol ( ) === "quest" || this . _mode === "Extra" ) {
this . _dataWindow . setQuestId ( this . currentExt ( ) ) ;
} else {
this . _dataWindow . setQuestId ( 0 ) ;
}
}
if ( this . _titleWindow ) {
if ( this . currentSymbol ( ) === "quest" || this . _mode === "Extra" ) {
this . _titleWindow . setText ( $dataQuests [ this . currentExt ( ) ] . name ) ;
} else {
this . _titleWindow . setText ( this . _titleWindow . settings ( "No Quest Title" ) ) ;
}
}
} ;
Window _QuestList . prototype . typeToggle = function ( type ) {
if ( this . _closedQuestTypes . contains ( type ) ) {
var index = this . _closedQuestTypes . indexOf ( type ) ;
this . _closedQuestTypes . splice ( index , 1 ) ;
} else {
this . _closedQuestTypes . push ( type ) ;
}
this . refresh ( ) ;
} ;
Window _QuestList . prototype . getVisibleRows = function ( ) {
var value = this . height - this . standardPadding ( ) * 2 ;
value = Math . floor ( value / this . lineHeight ( ) ) ;
return value ;
} ;
Window _QuestList . prototype . isInsideFrame = function ( ) {
var x = this . canvasToLocalX ( TouchInput . _mouseOverX ) ;
var y = this . canvasToLocalY ( TouchInput . _mouseOverY ) ;
return x >= 0 && y >= 0 && x < this . width && y < this . height ;
} ;
Window _QuestList . prototype . processWheel = function ( ) {
if ( ! this . isInsideFrame ( ) ) return ;
var threshold = 20 ;
if ( TouchInput . wheelY >= threshold ) this . scrollDown ( ) ;
if ( TouchInput . wheelY <= - threshold ) this . scrollUp ( ) ;
} ;
//=============================================================================
// Scene_Menu
//=============================================================================
Yanfly . Quest . Scene _Menu _createCommandWindow = Scene _Menu . prototype . createCommandWindow ;
Scene _Menu . prototype . createCommandWindow = function ( ) {
Yanfly . Quest . Scene _Menu _createCommandWindow . call ( this ) ;
this . _commandWindow . setHandler ( "quest" , this . commandQuest . bind ( this ) ) ;
} ;
Scene _Menu . prototype . commandQuest = function ( ) {
SceneManager . push ( Scene _Quest ) ;
} ;
//=============================================================================
// Scene_Quest
//=============================================================================
function Scene _Quest ( ) {
this . initialize . apply ( this , arguments ) ;
}
Scene _Quest . prototype = Object . create ( Scene _MenuBase . prototype ) ;
Scene _Quest . prototype . constructor = Scene _Quest ;
Scene _Quest . prototype . initialize = function ( ) {
Scene _MenuBase . prototype . initialize . call ( this ) ;
} ;
Scene _Quest . prototype . create = function ( ) {
Scene _MenuBase . prototype . create . call ( this ) ;
this . runCustomCode ( Yanfly . Quest . createBefore ) ;
this . createDataWindow ( ) ;
this . createTitleWindow ( ) ;
this . createCategoryWindow ( ) ;
this . createListWindow ( ) ;
this . processQuestOpen ( ) ;
this . runCustomCode ( Yanfly . Quest . createAfter ) ;
} ;
Yanfly . Quest . createBefore = JSON . parse ( Yanfly . Quest . LunaticMode [ "Before Create Windows" ] ) ;
Yanfly . Quest . createAfter = JSON . parse ( Yanfly . Quest . LunaticMode [ "After Create Windows" ] ) ;
Yanfly . Quest . terminateMenu = JSON . parse ( Yanfly . Quest . LunaticMode [ "Close Quest Menu" ] ) ;
Scene _Quest . prototype . runCustomCode = function ( code ) {
var background = this . _backgroundSprite ;
var windowLayer = this . _windowLayer ;
eval ( code ) ;
} ;
Scene _Quest . prototype . createDataWindow = function ( ) {
this . _dataWindow = new Window _QuestData ( ) ;
this . _dataWindow . setHandler ( "cancel" , this . onDataCancel . bind ( this ) ) ;
this . addWindow ( this . _dataWindow ) ;
} ;
Scene _Quest . prototype . createTitleWindow = function ( ) {
this . _titleWindow = new Window _QuestTitle ( ) ;
this . addWindow ( this . _titleWindow ) ;
} ;
Scene _Quest . prototype . createCategoryWindow = function ( ) {
this . _categoryWindow = new Window _QuestCategories ( ) ;
this . _categoryWindow . setHandler ( "cancel" , this . onCategoryCancel . bind ( this ) ) ;
this . _categoryWindow . setHandler ( "category" , this . onCategoryOk . bind ( this ) ) ;
this . addWindow ( this . _categoryWindow ) ;
} ;
Scene _Quest . prototype . createListWindow = function ( ) {
this . _listWindow = new Window _QuestList ( this . _categoryWindow , this . _dataWindow , this . _titleWindow ) ;
this . _listWindow . setHandler ( "cancel" , this . onListCancel . bind ( this ) ) ;
this . _listWindow . setHandler ( "type" , this . onListTypeToggle . bind ( this ) ) ;
this . _listWindow . setHandler ( "quest" , this . onListQuest . bind ( this ) ) ;
this . _listWindow . setHandler ( "readQuest" , this . dataWindowActivate . bind ( this ) ) ;
this . addWindow ( this . _listWindow ) ;
} ;
Scene _Quest . prototype . onCategoryCancel = function ( ) {
this . runCustomCode ( Yanfly . Quest . terminateMenu ) ;
this . popScene ( ) ;
} ;
Scene _Quest . prototype . onCategoryOk = function ( ) {
this . _listWindow . activate ( ) ;
if ( this . _listWindow . index ( ) < 0 ) this . _listWindow . select ( 0 ) ;
} ;
Scene _Quest . prototype . isQuestExtraCommand = function ( ) {
return false ;
} ;
Scene _Quest . prototype . onListCancel = function ( ) {
if ( this . _listWindow . _mode === "Extra" ) {
this . _listWindow . setMode ( "Quest" ) ;
} else {
this . _categoryWindow . activate ( ) ;
}
} ;
Scene _Quest . prototype . onListTypeToggle = function ( ) {
this . _listWindow . activate ( ) ;
this . _listWindow . typeToggle ( this . _listWindow . currentExt ( ) ) ;
} ;
Scene _Quest . prototype . onListQuest = function ( ) {
if ( this . isQuestExtraCommand ( ) ) {
this . _listWindow . setMode ( "Extra" ) ;
} else {
this . dataWindowActivate ( ) ;
}
} ;
Scene _Quest . prototype . dataWindowActivate = function ( ) {
this . _dataWindow . activate ( ) ;
} ;
Scene _Quest . prototype . onDataCancel = function ( ) {
if ( this . _dataWindow . _mode === "Extra" ) {
this . _listWindow . setMode ( "Quest" ) ;
} else {
this . _dataWindow . deactivate ( ) ;
this . _listWindow . activate ( ) ;
}
} ;
Scene _Quest . prototype . processQuestOpen = function ( ) {
var questId = $gameTemp . getQuestOpen ( ) ;
if ( questId ) {
var categoryOrder = this . getQuestOpenCategories ( ) ;
var length = categoryOrder . length ;
for ( var i = 0 ; i < length ; ++ i ) {
var category = categoryOrder [ i ] ;
var index = this . _categoryWindow . findExt ( category ) ;
if ( index >= 0 ) break ;
}
this . _categoryWindow . selectExt ( index ) ;
this . onCategoryOk ( ) ;
this . _categoryWindow . deactivate ( ) ;
this . _listWindow . selectExt ( questId ) ;
this . onListQuest ( ) ;
this . _listWindow . deactivate ( ) ;
this . _listWindow . setTopRow ( this . _listWindow . findExt ( questId ) ) ;
var scrollTimes = Math . floor ( this . _listWindow . getVisibleRows ( ) / 2 ) ;
while ( scrollTimes -- ) {
this . _listWindow . scrollUp ( ) ;
}
this . _listWindow . ensureCursorVisible ( ) ;
this . _listWindow . updateCursor ( ) ;
}
$gameTemp . clearQuestOpen ( ) ;
} ;
Scene _Quest . prototype . getQuestOpenCategories = function ( ) {
return [ "available" , "completed" , "failed" , "all" ] ;
} ;
// Custom Code
Scene _Quest . prototype . centerSprite = function ( sprite ) {
sprite . x = Graphics . width / 2 ;
sprite . y = Graphics . height / 2 ;
sprite . anchor . x = 0.5 ;
sprite . anchor . y = 0.5 ;
} ;
Scene _Quest . prototype . fitScreen = function ( sprite ) {
if ( sprite . bitmap . width <= 0 || sprite . bitmap <= 0 ) {
return setTimeout ( this . fitScreen . bind ( this , sprite ) , 5 ) ;
}
var width = Graphics . boxWidth ;
var height = Graphics . boxHeight ;
var ratioX = width / sprite . bitmap . width ;
var ratioY = height / sprite . bitmap . height ;
if ( ratioX > 1.0 ) sprite . scale . x = ratioX ;
if ( ratioY > 1.0 ) sprite . scale . y = ratioY ;
this . centerSprite ( sprite ) ;
} ;
//=============================================================================
// Utilities
//=============================================================================
Yanfly . Util = Yanfly . Util || { } ;
if ( ! Yanfly . Util . toGroup ) {
Yanfly . Util . toGroup = function ( inVal ) {
return inVal ;
} ;
} // Yanfly.Util.toGroup
Yanfly . Util . getRange = function ( n , m ) {
var result = [ ] ;
for ( var i = n ; i <= m ; ++ i ) result . push ( i ) ;
return result ;
} ;
//=============================================================================
// End of Main Functions
//=============================================================================
} else {
var text = "" ;
text += "You are getting this error because you are trying to run " ;
text += "YEP_QuestJournal while your project files are lower than version " ;
text += "1.5.0.\n\nPlease visit this thread for instructions on how to update " ;
text += "your project files to 1.5.0 or higher: \n\n" ;
text += "https://forums.rpgmakerweb.com/index.php?threads/" ;
text += "rpg-maker-mv-1-5-0-update.79677/" ;
console . log ( text ) ;
require ( "nw.gui" ) . Window . get ( ) . showDevTools ( ) ;
} // (Utils.RPGMAKER_VERSION && Utils.RPGMAKER_VERSION >= '1.5.0')
//=============================================================================
// End of File
//=============================================================================