magical-girls-runa-and-nanami/js/plugins/SkillTreeConfig.js
2026-03-04 23:34:02 -06:00

397 lines
16 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*:
@target MV MZ
@plugindesc スキルツリーコンフィグ
@author うなぎおおとろ
@url https://raw.githubusercontent.com/unagiootoro/RPGMZ/master/SkillTreeConfig.js
@help
[概要]
スキルツリーを導入するプラグインです。
SPを使ってスキルを習得するスキルツリーを作成することができます。
[使用方法]
■ スキルツリーの設定
スキルツリーの設定は、「SkillTreeConfig.js」ファイルを編集することで行います。
基本的な設定としては、アクターごとにスキルツリーのタイプ(剣スキルや魔法スキルなど)を設定し、
そしてタイプごとにスキルツリーを構築します。
スキルツリーの構築は、スキルの派生設定(ファイアⅠを取得したらファイアⅡが取得可能になるなど)によって行います。
■ SPの入手設定
スキルの習得には、SPが必要となります。
SPの入手方法としては
・戦闘終了による獲得
・レベルアップによるSP獲得
の二通りの設定を行うことができます。
・戦闘終了時に得られるSPの設定方法
敵キャラのメモ欄に
<battleEndGainSp: SP>
の形式で記載します。
・レベルアップによるSP獲得方法の設定
コンフィグの「levelUpGainSp」によって設定を行います。
■ イベントでSPを獲得する方法
スクリプトで
skt_gainSp(アクターID, 獲得するSP値)
と記載することで、該当のアクターが指定したSPを獲得することができます。
例えば、アクターIDが1のアクターが5SPを獲得する場合、
skt_gainSp(1, 5);
と記載します。
■ スキルリセット
スクリプトで
skt_skillReset(アクターID);
と記載することで、一度習得したスキルをリセットすることができます。
例えば、アクターIDが1のアクターのスキルリセットを行う場合、
skt_skillReset(1);
と記載します。
■ スキルツリータイプの有効/無効
スクリプトで
skt_enableType(アクターID, "タイプ名");
と記載することで、タイプを有効にします。
無効にする場合は、
skt_disableType(アクターID, "タイプ名")
と記載します。
無効にしたタイプは、スキルツリーのタイプ一覧には表示されません。
■ タイプの引継ぎ
特定の条件を満たすとスキルツリーに新たなスキルが追加されるようにしたい場合、「タイプの引継ぎ」を使用します。
例えば、タイプ「下位魔法」を「上位魔法」に変更したい場合、あらかじめ両方のタイプをコンフィグに登録した上で、
「上位魔法」は無効化しておきます。そして、タイプの引継ぎ機能を用いて、「下位魔法」を「上位魔法」に引き継がせます。
タイプの引継ぎを行う場合、スクリプトで
skt_migrationType(アクターID, "引継ぎ元タイプ名", "引継ぎ先タイプ名", リセット有無);
と記載します。リセット有無については、引継ぎ後、引継ぎ元のタイプのスキルツリーをリセットする場合、trueを、
リセットしない場合、falseを指定します。
例えば、アクターIDが1のアクターが、タイプ「下位魔法」を「上位魔法」に引き継がせ、さらにスキルリセットを行う場合、
skt_migrationType(アクターID, "下位魔法", "上位魔法", true);
と記載します。
■ マップからスキルツリーを読み込む
マップからスキルツリーの各スキルの配置座標を読み込むことで、ある程度自由なレイアウトのスキルツリーを
作成することができます。この機能によって設定可能なのはスキルの座標のみであり、スキル間の線はプラグイン側で描画します。
・スキル座標の設定
マップ上のイベントにて、設定を行います。
例えば、"ファイア"というスキルがある場合、スキルを配置したい座標に空のイベントを作成し、
イベントのメモ欄に
ファイア
と記載します。すると、"ファイア"とメモ欄に記載したイベントのXY座標がスキルのXY座標として使用されます。
・マップの読み込み
まずイベントコマンドで、スキルツリー読み込み対象のマップに「場所移動」します。
そして、スクリプト
skt_loadMap(スキルツリーの対象アクターID, スキルツリーの対象タイプ名)
を実行します。
例えば、アクターID1のアクターで、タイプ"攻撃魔法"のスキルツリーを読み込む場合、
skt_loadMap(1, "攻撃魔法");
と記載します。
*/
const loadSkillTreeConfig = () => {
return {
// =============================================================
// ●Configuration starts here.
// =============================================================
// Configure skill tree types.
// skillTreeTypes: [ ]の中にアクターの数だけタイプ設定を追加します。
// タイプ設定は、次の形式で設定します。
// { actorId: アクターのID, types: [タイプ情報1, タイプ情報2, ...] }
// タイプ情報は、次の形式で設定します。
// [タイプ種別, タイプ名, タイプの説明, タイプ有効/無効]
// タイプ種別...スキルの派生設定でタイプを識別するためのユニークな識別子を設定します。
// タイプ名...タイプ一覧のウィンドウに表示するタイプ名を設定します。
// タイプの説明...タイプ一覧のウィンドウに表示するタイプの説明を設定します。
// タイプ有効/無効...タイプを有効にする場合は、trueを、無効にする場合は、falseを指定します。
// この項目については、省略可能です。省略した場合、trueが指定されます。
skillTreeTypes: [
{
actorId: 1,
types: [
["Attack Magic", "Attack Magic", "Acquire attack magic."],
["Support Magic", "Support Magic", "Acquire support magic."],
["Sea God's Blessing", "Sea God's Blessing", "Acquire Sea God's Blessings."],
]
},
],
// 各スキルの情報を登録します。
// skillTreeInfo: [ ]の中に登録するスキル数分のスキル情報の登録を行います。
// スキル情報の登録は次の形式で行います。
// [スキル名, スキルID, 必要SP, アイコン情報]
// スキル名...スキルツリーの派生設定でスキルを一意に識別するための識別子
// 識別子なので、実際のスキル名と一致していなくても問題はありません。
// スキルID...データベース上で該当するスキルのID
// 必要SP...スキルの習得に必要なSP
// アイコン情報については、アイコンを使用するか、任意の画像を使用するかに応じて次の形式で登録します。
// アイコンを使用する場合 ["icon", iconIndex]
// iconIndex...使用するアイコンのインデックス
// iconIndexは省略可能です。省略した場合、スキルに設定されているアイコンが使用されます。
// 画像を使用する場合 ["img", fileName]
// fileName...画像のファイル名。画像は、「img/pictures」フォルダにインポートしてください。
// なお、アイコン情報については省略可能です。省略した場合、["icon"]が適用されます。
skillTreeInfo: [
// Attack Magic
["Ice Buckshot α", 302, 1, ["icon"]],
["Ice Buckshot β", 303, 18, ["icon"]],
["Ice Buckshot γ", 304, 24, ["icon"]],
["Ice Buckshot Ω", 305, 38, ["icon"]],
["Icicle Drop α", 306, 14, ["icon"]],
["Icicle Drop β", 307, 22, ["icon"]],
["Icicle Drop γ", 308, 30, ["icon"]],
["Icicle Drop Ω", 309, 42, ["icon"]],
["Water Bullet α", 311, 1, ["icon"]],
["Water Bullet β", 312, 18, ["icon"]],
["Water Bullet γ", 313, 24, ["icon"]],
["Water Bullet Ω", 314, 38, ["icon"]],
["Aqua Cutter α", 315, 14, ["icon"]],
["Aqua Cutter β", 316, 22, ["icon"]],
["Aqua Cutter γ", 317, 30, ["icon"]],
["Aqua Cutter Ω", 318, 42, ["icon"]],
["Aqua Jet α", 320, 12, ["icon"]],
["Aqua Jet β", 321, 22, ["icon"]],
["Aqua Break α", 323, 18, ["icon"]],
["Aqua Break β", 324, 32, ["icon"]],
["Absolute Zero", 326, 38, ["icon"]],
["Hydro Blast", 327, 38, ["icon"]],
// Support Magic
["Attack Boost α", 351, 14, ["icon"]],
["Attack Boost Ω", 352, 26, ["icon"]],
["Guard Boost α", 354, 14, ["icon"]],
["Guard Boost Ω", 355, 26, ["icon"]],
["Quick Boost α", 357, 14, ["icon"]],
["Quick Boost Ω", 358, 26, ["icon"]],
["All-Rounder α", 360, 24, ["icon"]],
["All-Rounder Ω", 361, 32, ["icon"]],
["Heal α", 342, 0, ["icon"]],
["Heal β", 343, 16, ["icon"]],
["Heal γ", 344, 26, ["icon"]],
["Heal Ω", 345, 42, ["icon"]],
["Heal", 347, 8, ["icon"]],
["Water's Protection", 349, 22, ["icon"]],
["Sedation Magic", 337, 8, ["icon"]],
["Costume Restoration Magic", 370, 8, ["icon"]],
// Sea God's Blessings
["Attack Enhancement ", 382, 12, ["icon"]],
["Attack Enhancement Ⅱ", 383, 24, ["icon"]],
["Attack Enhancement Ⅲ", 384, 36, ["icon"]],
["Defense Enhancement ", 387, 12, ["icon"]],
["Defense Enhancement Ⅱ", 388, 24, ["icon"]],
["Defense Enhancement Ⅲ", 389, 36, ["icon"]],
["Magic Attack Enhancement ", 392, 12, ["icon"]],
["Magic Attack Enhancement Ⅱ", 393, 24, ["icon"]],
["Magic Attack Enhancement Ⅲ", 394, 36, ["icon"]],
["Magic Defense Enhancement ", 397, 12, ["icon"]],
["Magic Defense Enhancement Ⅱ", 398, 24, ["icon"]],
["Magic Defense Enhancement Ⅲ", 399, 36, ["icon"]],
["Agility Enhancement ", 402, 12, ["icon"]],
["Agility Enhancement Ⅱ", 403, 24, ["icon"]],
["Agility Enhancement Ⅲ", 404, 36, ["icon"]],
["Max HP Enhancement ", 407, 12, ["icon"]],
["Max HP Enhancement Ⅱ", 408, 24, ["icon"]],
["Max HP Enhancement Ⅲ", 409, 36, ["icon"]],
["Max MP Enhancement ", 412, 16, ["icon"]],
["Max MP Enhancement Ⅱ", 413, 32, ["icon"]],
["Max MP Enhancement Ⅲ", 414, 48, ["icon"]],
["HP Auto-Recovery ", 417, 18, ["icon"]],
["HP Auto-Recovery Ⅱ", 418, 36, ["icon"]],
["HP Auto-Recovery Ⅲ", 419, 48, ["icon"]],
["MP Auto-Recovery ", 421, 18, ["icon"]],
["MP Auto-Recovery Ⅱ", 422, 32, ["icon"]],
["MP Auto-Recovery Ⅲ", 423, 48, ["icon"]],
],
// スキルツリーの派生設定を行います。
// skillTreeDerivative: { }の中にタイプ数分のスキルツリーの登録を行います。
// スキルツリーの派生設定は次のように行います。
// "タイプ名": [ [スキル1, [派生先スキル1, 派生先スキル2, ...]], [スキル2, [派生先スキル3, 派生先スキル4, ...] ]
// ※派生先スキルが存在しない終端スキルの場合、派生先スキルは省略可能です。
//
// 例えば、"様子を見る"と"連続攻撃"を取得すると、"2回攻撃"が取得できるようにするには、次の設定を行います。
// ["様子を見る", ["2回攻撃"]],
// ["連続攻撃", ["2回攻撃"]],
// ["2回攻撃"],
//
// また、"ヒール"を取得すると、"ファイア"と"スパーク"が取得できるようにするには、次の設定を行います。
// ["ヒール", ["ファイア"]],
// ["ヒール", ["スパーク"]],
// ["ファイア"],
// ["スパーク"],
skillTreeDerivative: {
"Attack Magic": [
["Ice Buckshot β", ["Ice Buckshot γ"]],
["Ice Buckshot γ"],
    ["Icicle Drop α", ["Icicle Drop β"]],
["Icicle Drop β", ["Icicle Drop γ"]],
["Icicle Drop γ"],
["Water Bullet β", ["Water Bullet γ"]],
["Water Bullet γ"],
["Aqua Cutter α", ["Aqua Cutter β"]],
["Aqua Cutter β", ["Aqua Cutter γ"]],
["Aqua Cutter γ"],
["Aqua Jet α", ["Aqua Jet β"]],
["Aqua Jet β"],
["Aqua Break α", ["Aqua Break β"]],
["Aqua Break β"],
["Icicle Drop γ", ["Absolute Zero"]],
["Ice Buckshot γ", ["Absolute Zero"]],
["Absolute Zero"],
["Aqua Cutter γ", ["Hydro Blast"]],
["Water Bullet γ", ["Hydro Blast"]],
["Hydro Blast"],
],
"Support Magic": [
["Heal β", ["Heal γ"]],
["Heal γ", ["Heal Ω"]],
["Heal Ω"],
["Heal"],
["Heal β", ["Water's Protection"]],
["Heal", ["Water's Protection"]],
["Water's Protection"],
["Sedation Magic"],
["Costume Restoration Magic"],
["Attack Boost α", ["Attack Boost Ω"]],
["Attack Boost Ω"],
["Guard Boost α", ["Guard Boost Ω"]],
["Guard Boost Ω"],
["Quick Boost α", ["Quick Boost Ω"]],
["Quick Boost Ω"],
["Attack Boost Ω", ["All-Rounder α"]],
["Guard Boost Ω", ["All-Rounder α"]],
["Quick Boost Ω", ["All-Rounder α"]],
["All-Rounder α"],
["All-Rounder α", ["All-Rounder Ω"]],
["All-Rounder Ω"],
],
"Sea God's Blessing": [
["Attack Enhancement ", ["Attack Enhancement Ⅱ"]],
["Attack Enhancement Ⅱ", ["Attack Enhancement Ⅲ"]],
["Attack Enhancement Ⅲ"],
["Defense Enhancement ", ["Defense Enhancement Ⅱ"]],
["Defense Enhancement Ⅱ", ["Defense Enhancement Ⅲ"]],
["Defense Enhancement Ⅲ"],
["Magic Attack Enhancement ", ["Magic Attack Enhancement Ⅱ"]],
["Magic Attack Enhancement Ⅱ", ["Magic Attack Enhancement Ⅲ"]],
["Magic Attack Enhancement Ⅲ"],
["Magic Defense Enhancement ", ["Magic Defense Enhancement Ⅱ"]],
["Magic Defense Enhancement Ⅱ", ["Magic Defense Enhancement Ⅲ"]],
["Magic Defense Enhancement Ⅲ"],
["Max HP Enhancement ", ["Max HP Enhancement Ⅱ"]],
["Max HP Enhancement Ⅱ", ["Max HP Enhancement Ⅲ"]],
["Max HP Enhancement Ⅲ"],
["Max MP Enhancement ", ["Max MP Enhancement Ⅱ"]],
["Max MP Enhancement Ⅱ", ["Max MP Enhancement Ⅲ"]],
["Max MP Enhancement Ⅲ"],
["Max HP Enhancement Ⅱ", ["HP Auto-Recovery "]],
["HP Auto-Recovery ", ["HP Auto-Recovery Ⅱ"]],
["HP Auto-Recovery Ⅱ", ["HP Auto-Recovery Ⅲ"]],
["HP Auto-Recovery Ⅲ"],
["Max MP Enhancement Ⅱ", ["MP Auto-Recovery "]],
["MP Auto-Recovery ", ["MP Auto-Recovery Ⅱ"]],
["MP Auto-Recovery Ⅱ", ["MP Auto-Recovery Ⅲ"]],
["MP Auto-Recovery Ⅲ"],
],
},
// レベルアップによってSPを獲得する場合、レベルごとに得られるSP値を以下の形式で設定します。
// classId: 職業ID, default: デフォルト値, レベル: SP値, レベル: SP値, ...
// 下記の設定例では、レベル2では3SP取得、レベル3では4SP取得、それ以外のレベルでは5SPを獲得します。
levelUpGainSp: [
{
classId: 1,
default: 5,
2: 2,
3: 3,
4: 4,
5: 5,
6: 1,
7: 2,
8: 3,
9: 4,
10: 5,
11: 6,
12: 7,
13: 8,
14: 9,
15: 10,
},
]
// =============================================================
// ●Configuration ends here.
// =============================================================
};
};