private void Update_Physics_Projectiles_Hit_Host(Projectiles_Type p, NetNavi_Type navi) { if (p.Owner != "Host") { Point point = new Point((int)p.Location.X, (int)p.Location.Y); if (navi.Navi_Location().Contains(point)) { if (p.Speed.X < 0) { navi.Speed.X -= 15; } else { navi.Speed.X += 15; } Projectile_List.Remove(p); } } }
private void Update_Physics_Projectiles_Hit_Client(Projectiles_Type p, KeyValuePair <string, NetNavi_Type> navi) { if (p.Owner != navi.Key) { Point point = new Point((int)p.Location.X, (int)p.Location.Y); if (navi.Value.Navi_Location().Contains(point)) { if (p.Speed.X < 0) { navi.Value.Speed.X -= 15; } else { navi.Value.Speed.X += 15; } Projectile_List.Remove(p); } } }
private void Update_Physics_Projectiles() { Projectiles_Type[] p = new Projectiles_Type[Projectile_List.Count]; Projectile_List.CopyTo(p); foreach (Navi_Main.Projectiles_Type item in p) { item.Location.X += item.Speed.X; item.Location.Y += item.Speed.Y; foreach (KeyValuePair <string, NetNavi_Type> navi in Client_Navi) { Update_Physics_Projectiles_Hit_Client(item, navi); } Update_Physics_Projectiles_Hit_Host(item, Host_Navi); item.Life -= 1; if (item.Life <= 0) { Projectile_List.Remove(item); } } }