void GetVictims() { // Debug.Log("Getting victims\n"); if (monsters == null) { monsters = Peripheral.Instance.targets; } List <HitMe> targets = new List <HitMe>(); for (int i = 0; i < monsters.max_count; i++) { HitMe enemy = monsters.array[i]; if (enemy == null || enemy.amDying() || !enemy.gameObject.activeSelf) { continue; } if (Vector2.Distance(enemy.transform.position, this.transform.position) < radius) { targets.Add(enemy); } } if (targets.Count == 0) { return; } StatSum type = null; type = arrow.myFirearm.toy.rune.GetStats(false); type.factor = 0.9f; StatSum explode_statsum = type.getSubStatSum(EffectType.Explode_Force); for (int i = 0; i < targets.Count; i++) { arrow.myFirearm.addXp(targets[i].HurtMe(explode_statsum, null, EffectType.Null), true); float mass = targets[i].my_rigidbody.mass; //Vector3 dir3 = targets[i].transform.position - from; Vector3 dir3 = this.transform.position - from; Vector2 dir = Vector3.Normalize(new Vector2(dir3.x, dir3.y)); //float dist = Vector2.Distance(targets[i].transform.position, from); float adjust = targets[i].my_ai.speed; targets[i].my_rigidbody.AddForce(adjust * strength * dir * mass, ForceMode2D.Impulse); } }