플레이어의 Skill의 Rune을 적용하여 스킬이 변형되도록 기능을 구현하였다.
그 중 Skill의 속성을 변경하는 것은 아래와 같이 구현하였다.
public class FireRune : Rune
{
public override void Apply(Skill skill)
{
skill.MiddleSet(() =>
{
if (skill.skillAction.elemental == ElementalType.Fire) return; // 이미 같은 속성의 경우 return
skill.skillAction.elemental = ElementalType.Fire;
skill.pool.GetComponent<SpriteRenderer>().sprite = skill.fire;
if (skill.devidePool != null)
{
skill.skillActionDevide.elemental = ElementalType.Fire;
skill.devidePool.GetComponent<SpriteRenderer>().sprite = skill.fire;
}
});
}
}
Rune을 상속받아 Apply를 구현하고 Skill의 해당 Action을 추가한다.
해당 스킬의 속성 타입과 임시적으로 sprite를 변경하도록 구현하였으며,
복제된 스킬의 Pool까지 변경하도록 하였다.