2022-03-07 19:34:51 -08:00

35 lines
962 B
Python

from __future__ import annotations
import logging
from collections.abc import Iterator
from datetime import timedelta
from typing import TYPE_CHECKING
from .frozencombat import FrozenCombat
from .. import GameUpdateEvents
if TYPE_CHECKING:
from game.ato import Flight
from ..simulationresults import SimulationResults
class AtIp(FrozenCombat):
def __init__(self, freeze_duration: timedelta, flight: Flight) -> None:
super().__init__(freeze_duration)
self.flight = flight
def because(self) -> str:
return f"{self.flight} is at its IP"
def describe(self) -> str:
return f"at IP"
def iter_flights(self) -> Iterator[Flight]:
yield self.flight
def resolve(self, results: SimulationResults, events: GameUpdateEvents) -> None:
logging.debug(
f"{self.flight} attack on {self.flight.package.target} auto-resolved with "
"mission failure but no losses"
)