カスタムスキル


「カスタム」のスキルに関する解説です。
確率発動タイプのカスタムスキルに関しては公式プラグインスクリプトという形で配布されており、その中で説明があるのですが、
持っているだけで発動するタイプのカスタムスキルの作り方はsingleton-skillcontrol.jsを見ておかないと把握が困難なので……
(もっとも、公式の解説は「実際にscriptフォルダの中を見て学べ!」という方針ではあるのだが)


確率発動タイプ

SkillControl.checkAndPushCustomSkillという関数を使います。
こちらは公式プラグインのcustom-skill.js参照した方が早いです。
pluginの作り方と合わせて見れば何をどうしているかは分かるはず。

こちらはあくまで戦闘時の処理で使うものなので、
戦闘外でもユニットステータスなどの表示で計算を行うユニットのステータス計算に関しては
下の「持っているだけで発動するタイプ」を使います。

持っているだけで発動するタイプ

SkillControl.getPossessionCustomSkillという関数を使います。
SkillControl.getPossessionCustomSkill(unit, keyword);
例えばSkillControl.getPossessionCustomSkill(unit, 'uhyo');という記述でif分の条件に使うと、
キーワードに「uhyo」が設定されているカスタムスキルをユニット所持している時だけ行う処理が作れます。

CompatibleCalculator.getPower = function(active, passive, weapon) {
	var compatible = this._getCompatible(active, passive, weapon);
	var pow = 0;
			
	if (compatible === null) {
		return 0;
	}
	
	if (SkillControl.getPossessionCustomSkill(active, 'uhyo')){
		pow += 3;
	}
	
	return compatible.getPower() + pow;
};

以上は「装備している武器の武器タイプの有効武器タイプ(三すくみ)に対する攻撃力補正」の処理ですが、
「uhyo」のカスタムスキルを所持しているユニットは
有効武器タイプに対しては攻撃力が+3されるようになります。
また、ここでのユニットは「active(攻撃側ユニット)」として扱われているので、
「unit」の部分を「active」に置き換えます。
「passive(防御側ユニット)」に置き換えた場合は、
攻撃を受ける側がカスタムスキルを持っているかどうかで判定します。

カスタムスキルのカスタムパラメータを使いたい場合は
SkillControl.getPossessionCustomSkill(unit, 'uhyo').custom.suuti
と書いても良いのですが、
var sukiru = SkillControl.getPossessionCustomSkill(unit, 'uhyo');
こうやって変数に入れた上で
sukiru.custom.suuti
のように書いた方が見やすいです。
if文に前者を突っ込んだ場合は非常に見づらくなると思います。






最終更新:2017年04月20日 03:39