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; }
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); } }
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); } }