mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Compare commits
4 Commits
test/1.2
...
test/1.2.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8c8fc7cc26 | ||
|
|
17211e1597 | ||
|
|
f76c8a80b5 | ||
|
|
7a6ca986db |
@@ -1,3 +1,10 @@
|
||||
# Retribution v1.2.1 (hotfix)
|
||||
|
||||
## Fixes
|
||||
* **[Flight Plans]** SEAD Sweep not being auto-planned
|
||||
* **[Modding]** Python-4 no longer overwrites AIM-9X
|
||||
* **[Modding]** Restore original amount of pylons to F-16C when "ejecting" sufa mod
|
||||
|
||||
# Retribution v1.2.0
|
||||
|
||||
## Features/Improvements
|
||||
|
||||
@@ -2,10 +2,10 @@ from __future__ import annotations
|
||||
|
||||
import itertools
|
||||
import operator
|
||||
import random
|
||||
from abc import abstractmethod
|
||||
from dataclasses import dataclass, field
|
||||
from enum import IntEnum, auto, unique
|
||||
import random
|
||||
from typing import Generic, Iterator, Optional, TYPE_CHECKING, TypeVar, Union
|
||||
|
||||
from game.ato.flighttype import FlightType
|
||||
@@ -112,6 +112,7 @@ class PackagePlanningTask(TheaterCommanderTask, Generic[MissionTargetT]):
|
||||
def propose_common_escorts(self) -> None:
|
||||
self.propose_flight(FlightType.SEAD_ESCORT, 2, EscortType.Sead)
|
||||
self.propose_flight(FlightType.ESCORT, 2, EscortType.AirToAir)
|
||||
self.propose_flight(FlightType.SEAD_SWEEP, 2, EscortType.Sead)
|
||||
|
||||
def iter_iads_ranges(
|
||||
self, state: TheaterState, range_type: RangeType
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
from random import randint
|
||||
|
||||
from game.ato.flighttype import FlightType
|
||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||
@@ -33,3 +32,4 @@ class PlanCas(PackagePlanningTask[FrontLine]):
|
||||
size = self.get_flight_size()
|
||||
self.propose_flight(FlightType.CAS, size)
|
||||
self.propose_flight(FlightType.TARCAP, 2)
|
||||
self.propose_flight(FlightType.SEAD_SWEEP, 2)
|
||||
|
||||
@@ -3,7 +3,6 @@ from __future__ import annotations
|
||||
from dataclasses import dataclass
|
||||
|
||||
from game.ato.flighttype import FlightType
|
||||
from game.commander.missionproposals import EscortType
|
||||
from game.commander.tasks.packageplanningtask import PackagePlanningTask
|
||||
from game.commander.theaterstate import TheaterState
|
||||
from game.theater.theatergroundobject import IadsGroundObject
|
||||
@@ -42,7 +41,6 @@ class PlanDead(PackagePlanningTask[IadsGroundObject]):
|
||||
# needs a decent refactor to the escort planning to do so.
|
||||
if self.target.has_live_radar_sam:
|
||||
self.propose_flight(FlightType.SEAD, 2)
|
||||
self.propose_flight(FlightType.SEAD_ESCORT, 2, EscortType.Sead)
|
||||
self.propose_flight(FlightType.ESCORT, 2, EscortType.AirToAir)
|
||||
self.propose_common_escorts()
|
||||
if self.target.control_point.coalition.game.settings.autoplan_tankers_for_dead:
|
||||
self.propose_flight(FlightType.REFUELING, 1)
|
||||
|
||||
@@ -1,15 +1,9 @@
|
||||
from dcs.planes import F_15ESE
|
||||
|
||||
from pydcs_extensions.pylon_injector import inject_pylon, eject_pylon
|
||||
from pydcs_extensions.weapon_injector import inject_weapons
|
||||
|
||||
|
||||
class WeaponsF15I:
|
||||
Python_4_ = {
|
||||
"clsid": "{5CE2FF2A-645A-4197-B48D-8720AC69394F}",
|
||||
"name": "Python-4 ",
|
||||
"weight": 103.6,
|
||||
}
|
||||
F_15I_Ra_am_Dome = {
|
||||
"clsid": "{IDF_MODS_PROJECT_F-15I_Raam_Dome}",
|
||||
"name": "F-15I Ra'am Dome",
|
||||
@@ -20,26 +14,6 @@ class WeaponsF15I:
|
||||
inject_weapons(WeaponsF15I)
|
||||
|
||||
|
||||
class F15IPylon1:
|
||||
Python_4_ = (1, WeaponsF15I.Python_4_)
|
||||
# ERRR {Python-4 Training}
|
||||
|
||||
|
||||
class F15IPylon3:
|
||||
Python_4_ = (3, WeaponsF15I.Python_4_)
|
||||
# ERRR {Python-4 Training}
|
||||
|
||||
|
||||
class F15IPylon13:
|
||||
Python_4_ = (13, WeaponsF15I.Python_4_)
|
||||
# ERRR {Python-4 Training}
|
||||
|
||||
|
||||
class F15IPylon15:
|
||||
Python_4_ = (15, WeaponsF15I.Python_4_)
|
||||
# ERRR {Python-4 Training}
|
||||
|
||||
|
||||
class Pylon16:
|
||||
F_15I_Ra_am_Dome = (16, WeaponsF15I.F_15I_Ra_am_Dome)
|
||||
|
||||
@@ -47,25 +21,11 @@ class Pylon16:
|
||||
def inject_F15I() -> None:
|
||||
F_15ESE.pylons = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}
|
||||
|
||||
# Injects modified weapons from the IDF Mods Project F-16I Sufa
|
||||
# into pydcs databases via introspection.
|
||||
inject_pylon(F_15ESE.Pylon1, F15IPylon1)
|
||||
inject_pylon(F_15ESE.Pylon3, F15IPylon3)
|
||||
inject_pylon(F_15ESE.Pylon13, F15IPylon13)
|
||||
inject_pylon(F_15ESE.Pylon15, F15IPylon15)
|
||||
|
||||
F_15ESE.Pylon16 = Pylon16
|
||||
|
||||
|
||||
def eject_F15I() -> None:
|
||||
F_15ESE.pylons = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
|
||||
|
||||
# Injects modified weapons from the IDF Mods Project F-16I Sufa
|
||||
# into pydcs databases via introspection.
|
||||
eject_pylon(F_15ESE.Pylon1, F15IPylon1)
|
||||
eject_pylon(F_15ESE.Pylon3, F15IPylon3)
|
||||
eject_pylon(F_15ESE.Pylon13, F15IPylon13)
|
||||
eject_pylon(F_15ESE.Pylon15, F15IPylon15)
|
||||
|
||||
if hasattr(F_15ESE, "Pylon16"):
|
||||
delattr(F_15ESE, "Pylon16")
|
||||
|
||||
@@ -392,7 +392,7 @@ def inject_F16I() -> None:
|
||||
|
||||
|
||||
def eject_F16I() -> None:
|
||||
F_16C_50.pylons = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}
|
||||
F_16C_50.pylons = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}
|
||||
|
||||
# Injects modified weapons from the IDF Mods Project F-16I Sufa
|
||||
# into pydcs databases via introspection.
|
||||
|
||||
Reference in New Issue
Block a user