mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
22 lines
670 B
Python
22 lines
670 B
Python
from __future__ import annotations
|
|
|
|
import random
|
|
from typing import Union, TYPE_CHECKING, Tuple
|
|
|
|
from game.theater.interfaces.CTLD import CTLD
|
|
|
|
if TYPE_CHECKING:
|
|
from dcs import Point
|
|
|
|
from game.theater import ControlPoint
|
|
|
|
|
|
def generate_random_ctld_point(cp: Union[ControlPoint, CTLD]) -> Point:
|
|
if isinstance(cp, CTLD) and cp.ctld_zones:
|
|
zone: Tuple[Point, float] = random.choice(cp.ctld_zones)
|
|
pos, radius = zone
|
|
return pos.random_point_within(radius)
|
|
elif isinstance(cp, CTLD) and isinstance(cp, ControlPoint):
|
|
return cp.position.random_point_within(2000, 200)
|
|
raise RuntimeError("Could not generate CTLD point")
|