protected override void PlayEffect() { GameObject effect = Instantiate <GameObject>(effectPrefab); effect.transform.position = target[0].transform.position; OneShotEffect skillEffect = effect.GetComponent <OneShotEffect>(); skillEffect.responseList = damageInfo.responseList; }
protected override void PlayEffect() { foreach (DamageResponse response in damageInfo.responseList) { GameObject effect = Instantiate <GameObject>(effectPrefab); effect.transform.position = response.target.transform.position; OneShotEffect skillEffect = effect.GetComponent <OneShotEffect>(); skillEffect.responseList.Add(response); } }
void Update() { if (target != null && !dying) { Vector3 targetPos = target.transform.position; if (!target.IsAlive()) { targetPos = previousTargetPos; } targetPos.y = 0.5f; var targetDir = (targetPos - transform.position).normalized; var targetDist = Vector3.Distance(transform.position, targetPos); if (targetDist < energyTypeConfig.Speed * Time.deltaTime) { transform.position = targetPos; } else { transform.position = transform.position + targetDir * energyTypeConfig.Speed * Time.deltaTime; } if (Vector3.Distance(transform.position, targetPos) < minDistance) { if (energyTypeConfig.ExplodeRange > 0) //projectile is aoe, find targets { doAoEDamage(); } else { target.TakeDamage(energyTypeConfig); } if (explosion != null) { try { OneShotEffect expl = ObjectPooler.GetPool(explosion).ActivateObject(transform.position).GetComponent <OneShotEffect>(); expl.Play(); } catch (Exception e) { Debug.Log("PASKA LÄSÄHTI!"); Debug.Log("Type: " + energyTypeConfig.Type); Debug.Log("Explosion: " + explosion); Debug.Log("Transform pos: " + transform.position); Pool debugPool = ObjectPooler.GetPool(explosion); Debug.Log("Pool: " + debugPool); GameObject debugObj = debugPool.ActivateObject(transform.position); Debug.Log("Test activating obj: " + debugObj); OneShotEffect effect = debugObj.GetComponent <OneShotEffect>(); Debug.Log("Test getting OneShotEffect component: " + effect); throw e; } } targetsHit.Add(target.gameObject); if (!TryBounce()) { Invoke("Die", 0.5f); StopEffects(); dying = true; } } previousTargetPos = targetPos; } }