/// <summary> /// Execute a bolt attack /// </summary> /// <param name="originator"> /// The CombatantManager of the player or enemy initiating the attack /// </param> /// <param name="position"> /// The position from which the attack originates /// </param> /// <param name="angle"> /// The counterclockwise angle from the Vector (1,0) along which the bolt will travel /// </param> /// <param name="damage"> /// The damage the bolt will do on impact /// </param> public BoltManager(CombatantManager originator, Vector2 position, float angle, float damage) { Originator = originator; Damage = damage; Bolt = GameObject.Instantiate(Prefabs.BOLT_PREFAB, position, Quaternion.Euler(0, 0, angle)); Bolt.GetComponent <BoltMonoBehaviour>().AssignManager(this); base.InitExpirationListeners(); }
public void ResolveCollision(CombatantManager other) { if (other.Team != Originator.Team) { Vector2 knockback = other.GetPosition() - Originator.GetPosition(); knockback = knockback.normalized * 5; int exp = other.RecieveHit(this, Damage, knockback); Originator.RecieveExp(exp); } }
public StompManager(CombatantManager originator, Vector2 position, float damage) { Originator = originator; Damage = damage; GameObject stomp = GameObject.Instantiate(Prefabs.STOMP_PREFAB, position, Quaternion.identity); stomp.GetComponent <StompMonoBehaviour>().AssignManager(this); base.InitExpirationListeners(); }
public SlashManager(CombatantManager originator, Vector2 position, float angle, float aoe, float damage) { Originator = originator; Damage = damage; GameObject slash = GameObject.Instantiate(Prefabs.SLASH_PREFAB, position, Quaternion.Euler(0, 0, angle)); slash.transform.localScale = new Vector3(aoe, aoe, 1); slash.GetComponent <SlashMonoBehaviour>().AssignManager(this); base.InitExpirationListeners(); }
/// <summary> /// Administer damage and experience as the result of a collision with this attack /// </summary> /// <param name="other"> /// The CombatantManager of the enemy or player recieving the attack /// </param> public void ResolveCollision(CombatantManager other) { if (other.Team != Originator.Team) { Vector2 knockback = other.GetPosition() - Originator.GetPosition(); knockback = knockback.normalized * 0.5f; int exp = other.RecieveHit(this, Damage, knockback); Originator.RecieveExp(exp); Expire(); GameObject.Destroy(Bolt.gameObject); } }
public DashManager(CombatantManager originator, Vector2 position, Vector2 destination, float damage) { Originator = originator; Damage = damage; Position = position; DashVector = destination - position; float dashAngle = Vector2.SignedAngle(Vector2.right, DashVector); GameObject dash = GameObject.Instantiate(Prefabs.DASH_PREFAB, position, Quaternion.Euler(0, 0, dashAngle)); dash.transform.localScale = new Vector3(DashVector.magnitude, 0.5f, 1); dash.GetComponent <DashMonoBehaviour>().AssignManager(this); base.InitExpirationListeners(); }
public void ResolveCollision(CombatantManager other) { if (other.Team != Originator.Team) { Vector2 DashNormal = Helpers.ClockwiseNormalVector(DashVector).normalized * 2; Vector2 enemyVector = other.GetPosition() - Position; float angle = Vector2.SignedAngle(DashVector, enemyVector); if (angle > 0) { DashNormal *= -1; } int exp = other.RecieveHit(this, Damage, DashNormal); Originator.RecieveExp(exp); } }