public DistanceAttackCompetence(IDistanceAttackTemplate templateUse, IUnit caster) : base(templateUse, caster) { //Template & caster can be null on construction of the competence factory if (templateUse == null && caster == null) { return; } template = templateUse; _mainCam = Camera.main; _projectilePool = templateUse.projectilePool; }
internal void Init(Vector3 target, IUnit caster, IDistanceAttackTemplate competenceTemplate) { _target = target; _caster = caster; _competenceTemplate = competenceTemplate; _pool = competenceTemplate.projectilePool; transform.position = new Vector3( _caster.unitTransform.position.x, 0.5f, _caster.unitTransform.position.z) + _caster.unitTransform.forward * _launchDist; StartCoroutine(MoveTowardTarget()); }