public LineHitbox createLineHB(float range, Vector2 aimPoint, Vector2 offset, float damage, float stun, float hitboxDuration, Vector2 knockback, bool followObj = true, ElementType element = ElementType.PHYSICAL) { if (m_physics != null) { aimPoint = m_physics.OrientVectorToDirection(aimPoint); offset = m_physics.OrientVectorToDirection(offset); } Vector3 newPos = new Vector3(transform.position.x + offset.x, transform.position.y + offset.y, 0); GameObject go = Instantiate(HitboxList.Instance.HitboxLine, newPos, Quaternion.identity) as GameObject; LineHitbox line = go.GetComponent <LineHitbox> (); line.setRange(range); line.Damage = damage; line.setAimPoint(aimPoint); line.Duration = hitboxDuration; if (m_physics != null) { line.Knockback = m_physics.OrientVectorToDirection(knockback); } line.IsFixedKnockback = true; line.Creator = gameObject; line.Faction = Faction; line.AddElement(element); line.Stun = stun; line.Init(); ExecuteEvents.Execute <ICustomMessageTarget> (gameObject, null, (x, y) => x.OnHitboxCreate(line)); return(line); }
public void getReflected(Vector2 hitPoint) { float offsetX = Random.Range(-15, 15) / 100f; float offsetY = Random.Range(-15, 15) / 100f; Vector2 realD = new Vector2(-aimPoint.x + offsetX, -aimPoint.y + offsetY); Vector2 realKB = new Vector2(-Knockback.x, Knockback.y); realD = Vector2.ClampMagnitude(realD, 1.0f); Vector3 newPos = new Vector3(hitPoint.x - aimPoint.x, hitPoint.y - aimPoint.y, 0); GameObject go = Instantiate(gameObject, newPos, Quaternion.identity) as GameObject; LineHitbox line = go.GetComponent <LineHitbox> (); line.setRange(range); line.Damage = Damage; line.setAimPoint(realD); line.Duration = Duration; line.Knockback = realKB; line.IsFixedKnockback = true; //line.Faction = //line.setFaction (faction); line.Creator = gameObject; //line.reflect = hitboxReflect; line.Stun = Stun; //line.mAttr = mAttrs; }