private void UpdateMetabodiesByXCoord() { var all_metabodies = BodypartInfo.GetAllMetabodies(); all_metabodies.Sort( delegate(List <GameObject> l1, List <GameObject> l2) { return(l1[0].transform.position.x.CompareTo(l2[0].transform.position.x)); } ); MetabodiesByXCoord = all_metabodies; }
//COLLISION FUNCTIONS ############################### //Lose Health functions (collision detection) private void OnCollisionEnter2D(Collision2D collision) { BodypartInfo bpi = collision.gameObject.GetComponent <BodypartInfo>(); if (bpi != null) { if (charInfo.SetBodyPart(bpi.thisBodyPart, true)) { Destroy(bpi.gameObject); } } if (collision.gameObject.CompareTag("Damage")) { charInfo.LoseRandomBodyPart(); } }
private void CreateOrMergeMetabodies(BodypartInfo part1, BodypartInfo part2) { var metabody = part1.MetaBody; var old_metabody = part2.MetaBody; if (metabody == old_metabody) { return; } foreach (var part in old_metabody) { var bpi = part.GetComponent <BodypartInfo>(); bpi.MetaBody = metabody; metabody.Add(part); } part2.MetaBody = metabody; old_metabody.Clear(); }