Пример #1
0
    private void applyDeltas()
    {
        List <GODeltaTuple> temp = new List <GODeltaTuple>();

        for (int i = 0; i < aplyingTo.Count; i++)
        {
            Vector2 newDir = aplyingTo[i].obj.transform.position
                             - this.transform.position;
            newDir.Normalize();
            if (aplyingTo[i].obj.tag == "Player")
            {
                PlayerBase player = aplyingTo[i].obj.GetComponent <PlayerBase>();
                player.playerForces.addToDelta(aplyingTo[i].lastDelta * -1);
                player.playerForces.addToDelta(newDir * m_fieldStrength * player.m_PlayerPolarity);
                GODeltaTuple updatedDelta = aplyingTo[i];
                updatedDelta.lastDelta = newDir * m_fieldStrength * player.m_PlayerPolarity;
                temp.Add(updatedDelta);
            }
            if (aplyingTo[i].obj.tag == "Enemy")
            {
                EnemyBase player = aplyingTo[i].obj.GetComponent <EnemyBase>();
                player.playerForces.addToDelta(aplyingTo[i].lastDelta * -1);
                player.playerForces.addToDelta(newDir * m_fieldStrength * player.m_PlayerPolarity);
                GODeltaTuple updatedDelta = aplyingTo[i];
                updatedDelta.lastDelta = newDir * m_fieldStrength * player.m_PlayerPolarity;
                temp.Add(updatedDelta);
            }
        }
        aplyingTo = temp;
    }
Пример #2
0
 void OnTriggerEnter2D(Collider2D other)
 {
     if (other.gameObject.tag == "Player")
     {
         Vector2 newDir = other.transform.position
                          - this.transform.position;
         newDir.Normalize();
         PlayerBase player = other.GetComponent <PlayerBase>();
         player.playerForces.addToDelta(newDir * m_fieldStrength * player.m_PlayerPolarity);
         GODeltaTuple tuple = new GODeltaTuple();
         tuple.obj       = other.gameObject;
         tuple.lastDelta = newDir * m_fieldStrength * player.m_PlayerPolarity;
         aplyingTo.Add(tuple);
     }
     else if (other.gameObject.tag == "Enemy")
     {
         Vector2 newDir = other.transform.position
                          - this.transform.position;
         newDir.Normalize();
         EnemyBase player = other.GetComponent <EnemyBase>();
         player.playerForces.addToDelta(newDir * m_fieldStrength * player.m_PlayerPolarity);
         GODeltaTuple tuple = new GODeltaTuple();
         tuple.obj       = other.gameObject;
         tuple.lastDelta = newDir * m_fieldStrength * player.m_PlayerPolarity;
         aplyingTo.Add(tuple);
     }
 }
Пример #3
0
    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.gameObject.tag == "Player")
        {
            if (other.GetComponent <PlayerBase>().m_PlayerPolarity *m_fieldStrength > 0)
            {
                GameObject.Find("LevelManager").GetComponent <LevelManager>().playPull(); // SFX
            }
            else
            {
                GameObject.Find("LevelManager").GetComponent <LevelManager>().playPush(); // SFX
            }

            Vector2 addVel = this.transform.up * m_fieldStrength
                             * other.GetComponent <PlayerBase>().m_PlayerPolarity;
            other.GetComponent <PlayerBase>().playerForces.addToDelta(addVel);
            GODeltaTuple tup = new GODeltaTuple();
            tup.obj       = other.gameObject;
            tup.lastDelta = addVel;
            aplyingTo.Add(tup);
        }
        if (other.gameObject.tag == "Enemy")
        {
            Vector2 addVel = this.transform.up * m_fieldStrength
                             * other.GetComponent <EnemyBase>().m_PlayerPolarity;
            other.GetComponent <EnemyBase>().playerForces.addToDelta(addVel);
            GODeltaTuple tup = new GODeltaTuple();
            tup.obj       = other.gameObject;
            tup.lastDelta = addVel;
            aplyingTo.Add(tup);
        }
    }