public static void Create(Vector3 spawnPosition, Enemy enemy, int damageAmount) { Transform arrowTransform = Instantiate(GameAssets.i.pfProjectileArrow, spawnPosition, Quaternion.identity); ProjectileArrow projectileArrow = arrowTransform.GetComponent <ProjectileArrow>(); projectileArrow.Setup(enemy, damageAmount); }
public override void Fire(float attackPower) { GameObject projectileGO = (GameObject)Instantiate(projectilePrefab, transform.position, transform.rotation); ProjectileArrow p = projectileGO.GetComponent <ProjectileArrow>(); p.SetHitInfo(DetermineHitStrength(attackPower)); p.SetMissileInfo(attackPower, minMissileSpeed, maxMissileSpeed, minRange, maxRange); int upgradeLevel = GetUpgradeLevel(); p.canPierce = (upgradeLevel > 1); p.canSlow = (upgradeLevel > 2); p.canCrit = (upgradeLevel > 3); owner.StopAttack(); }
private void Update() { if (Input.GetMouseButtonDown(0)) { //CMDebug.TextPopupMouse("Click!"); //ProjectileArrow.Create(projectileShootFromPosition, UtilsClass.GetMouseWorldPosition()); } shootTimer -= Time.deltaTime; if (shootTimer <= 0f) { shootTimer = shootTimerMax; Enemy enemy = GetClosestEnemy(); if (enemy != null) { // Enemy in range! ProjectileArrow.Create(projectileShootFromPosition, enemy, Random.Range(damageAmount - 5, damageAmount + 5)); } } }