Esempio n. 1
0
        /// <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();
        }
Esempio n. 2
0
 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);
     }
 }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
        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();
        }
Esempio n. 5
0
 /// <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);
     }
 }
Esempio n. 6
0
        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();
        }
Esempio n. 7
0
        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);
            }
        }