่ชๅฎไนไธ้ฟ โ
่ชๅฎไนไธ้ฟ็ฑปๅฟ ้กปไป Feat ๆดพ็ใ
cs
internal class FeatMyExample: Featๅบ็จไบไปถ โ
็ฑไบ Elin ๅฐๆๆไธ้ฟๆๆ้ฝๅๅจ Feat.Apply ่ฟไธชๆนๆณไธญ๏ผCWL ๆไพไบไธไธชไบไปถ _OnApply๏ผ้่ฟๅจไฝ ็ไธ้ฟ็ฑปไธญๅฎไนไธไธชๅฏ้็ไบไปถๅค็ _OnApply ไปฅไพฟๅบ็จไฝ ่ชๅทฑ็ไธ้ฟๆๆ๏ผ
cs
internal class FeatMyExample : Feat
{
internal void _OnApply(int add, ElementContainer eleOwner, bool hint)
{
if (hint) {
hints.Add("This is a custom feat"); // ๅฏ้
} else {
// ไฟฎๆนๅฑๆงใ่ฎพ็ฝฎๆฝๅใๅบ็จๆๆ็ญ
// ๅชๆๅจไธๆฏ hint ๆจกๅผๆถๆๆง่ก่ฟไบ
eleOwner.ModBase(SKILL.life, add * 15);
eleOwner.ModPotential(SKILL.DEX, add * 2);
// ๅ
ถไปๅ
ๅฎน
}
}
}่ฟๅนถไธ่ฆๆฑๅผ็จ CustomWhateverLoader.dllใ
ๅพๆ โ
่ชๅฎไนไธ้ฟ่ฟๅฏไปฅๆฅๆ่ชๅฎไนๅพๆ ๏ผๆจ็ๅพๆ ้่ฆๆพ็ฝฎๅจ Texture ๆไปถๅคนไธญ๏ผไฝฟ็จไธ alias ็ธๅ็ๆไปถๅ๏ผไพๅฆ featMyExample.pngใ็ถๅ้ๅ GetIcon ๆนๆณ๏ผๅฐๅพๆ ้ๅฎๅๅฐ่ฏฅๅพๆ ๏ผ
cs
internal class FeatMyExample : Feat
{
public override Sprite GetIcon(string suffix = "")
{
return SpriteSheet.Get(source.alias);
}
}ๅฆๆ็บน็ๅคงๅฐไธๆฏ32x32๏ผCWLไผๅฐๅ ถ่ฐๆดไธบ32x32ใ
่ชๅจ่ทๅ โ
ไฝฟ็จๆ ็ญพ addEleOnLoad๏ผ็ฉๅฎถๅจๅ ่ฝฝๆถๅฐ่ชๅจ่ทๅพ่ฟไธชไธ้ฟใ
