#!/usr/bin/env python3

import pygame
from pygame.draw import *

pygame.init()
FPS = 30
# Устанавливаем размер окна как на референсе
screen = pygame.display.set_mode((800, 400))

def draw_scenery(screen):
    # --- Небо (Теплые цвета, как на референсе) ---
    # Мы используем несколько перекрывающихся прямоугольников с альфа-смешиванием (прозрачностью)
    # для достижения мягкого градиентного эффекта.

    # Создаем поверхность для неба с поддержкой прозрачности
    sky_surface = pygame.Surface((800, 400), pygame.SRCALPHA)

    # 1. Основной, самый светлый оранжевый/желтый фон
    sky_base_color = (255, 220, 180)
    rect(sky_surface, sky_base_color, (0, 0, 800, 400))

    # 2. Мягкая розовая полоса
    pink_band_color = (255, 190, 210, 80) # Добавлено альфа-значение 80 для прозрачности
    rect(sky_surface, pink_band_color, (0, 100, 800, 100))

    # 3. Мягкая оранжевая полоса
    orange_band_color = (255, 170, 110, 60) # Усиленная прозрачность
    rect(sky_surface, orange_band_color, (0, 200, 800, 100))

    # Отрисовываем небо на основном экране
    screen.blit(sky_surface, (0, 0))

    # --- Солнце (Ярко-желтый круг, как на референсе) ---
    sun_color = (255, 240, 0)
    # Смещаем немного вправо для композиции
    sun_center = (450, 110)
    sun_radius = 50
    circle(screen, sun_color, sun_center, sun_radius)

    # --- Дальний хребет (Светло-оранжевый, СЛОЖНАЯ ФОРМА) ---
    # В этом массиве точек добавлено много промежуточных значений x и y,
    # чтобы создать зубчатый, ломаный силуэт, как на твоем референсе.
    distant_ridge_points = [
        (-10, 210), (50, 180), (120, 220), (180, 150),
        (250, 200), (320, 160), (380, 200), (450, 140),
        (520, 180), (600, 90), (680, 170), (750, 130),
        (810, 160),
        (810, 250), # Правый нижний угол
        (-10, 250)  # Левый нижний угол
    ]
    distant_ridge_color = (255, 150, 50)
    polygon(screen, distant_ridge_color, distant_ridge_points)

    # --- Средний хребет (Темно-красный/коричневый, СЛОЖНАЯ ФОРМА) ---
    # Этот хребет имеет свои уникальные зубцы и выемки,
    # отличные от первого, чтобы добавить глубины.
    middle_ridge_points = [
        (-10, 240), (70, 200), (140, 240), (200, 180),
        (280, 240), (350, 200), (420, 240), (480, 170),
        (560, 220), (630, 160), (700, 210), (760, 180),
        (810, 210),
        (810, 350), # Правый нижний угол
        (-10, 350)  # Левый нижний угол
    ]
    middle_ridge_color = (170, 70, 60)
    polygon(screen, middle_ridge_color, middle_ridge_points)

    # --- Поверхность воды (Как на референсе) ---
    water_color = (190, 160, 170)
    water_rect = (0, 340, 800, 60)
    rect(screen, water_color, water_rect)

    # --- Передний план (Темные силуэты, УГЛОВАТАЯ ФОРМА) ---
    # Мы используем сложные полигоны, чтобы они выглядели как обрывистые скалы,
    # а не просто блоки.
    foreground_color = (50, 20, 50) # Очень темно-фиолетовый/черный

    # Левый силуэт
    left_foreground_points = [(-10, 260), (120, 310), (120, 410), (-10, 410)]
    polygon(screen, foreground_color, left_foreground_points)

    # Правый силуэт
    right_foreground_points = [(810, 270), (700, 340), (700, 410), (810, 410)]
    polygon(screen, foreground_color, right_foreground_points)

    # --- Птицы (Как на референсе) ---
    def draw_bird(screen, color, center, scale=1.0):
        # Аппроксимация формы "V" двумя слегка изогнутыми линиями
        x, y = center
        width = 15 * scale
        height = 8 * scale
        # Левое крыло
        arc(screen, color, (x - width, y - height / 2, width * 2, height), 3.14159/4, 3.14159 * 0.9, 2)
        # Правое крыло
        arc(screen, color, (x - width / 2, y - height / 2, width * 2, height), 3.14159 * 0.1, 3.14159 * 0.75, 2)

    bird_color = (80, 50, 40) # Темно-коричневый

    # Птицы в небе (разного размера для перспективы)
    draw_bird(screen, bird_color, (380, 180), 1.2)
    draw_bird(screen, bird_color, (450, 190), 1.0)
    draw_bird(screen, bird_color, (480, 210), 0.9)
    draw_bird(screen, bird_color, (400, 230), 1.1)

    # Птицы в воде (отражения, более размытые и тусклые)
    water_bird_color = (100, 80, 70)
    draw_bird(screen, water_bird_color, (600, 340), 1.0)
    draw_bird(screen, water_bird_color, (670, 380), 0.8)
    draw_bird(screen, water_bird_color, (750, 370), 0.9)

# Вызов функции отрисовки
draw_scenery(screen)

pygame.display.update()
clock = pygame.time.Clock()
finished = False

while not finished:
    clock.tick(FPS)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            finished = True

pygame.quit()
