public void CheckCondition(GameObject outerObject)
        {
            int        arrCount = MainLoop.GameObjectsArray.Count;
            GameObject obj;
            int        i = 0;

            while (true && MainLoop.GameObjectsArray.Count != 0)
            {
                if (arrCount == i)
                {
                    break;
                }
                obj = MainLoop.GameObjectsArray[i];

                BaseEntity targetEntity = obj.Entity;
                if (obj.Entity == outerObject.Entity)
                {
                    i++;
                    continue;
                }

                // Console.WriteLine($"Starting to check... {FirstModelObject}, {targetEntity.GetType()}");
                if (!ModelObject.Equals(targetEntity.GetType()))
                {
                    i++;
                    continue;
                }
                // Console.WriteLine("Type Success");
                var distanse = Math.Sqrt(Math.Pow(Math.Abs(outerObject.Entity.XCoordinate - targetEntity.XCoordinate), 2) +
                                         Math.Pow(Math.Abs(outerObject.Entity.YCoordinate - targetEntity.YCoordinate), 2));
                //Console.WriteLine($"Distance: {distanse}");
                if (distanse - (outerObject.Entity.Radius + targetEntity.Radius) / 2 > 0)
                {
                    i++;
                    continue;
                }
                switch (Condition)
                {
                case DeadByConditionType.DEAD_BY_COLLISION:
                {
                    outerObject.Entity.InvokeDeath();
                    targetEntity.InvokeDeath();
                    break;
                }

                case DeadByConditionType.IMMORTAL_DEAD_BY_COLLISION:
                {
                    targetEntity.InvokeDeath();
                    break;
                }
                }
                i++;
            }
        }