mirror of
https://github.com/dcs-retribution/dcs-retribution.git
synced 2025-11-10 15:41:24 +00:00
Move unit purchase off find_unittype.
This commit is contained in:
parent
ea15421308
commit
27b5f24a0f
@ -1332,7 +1332,7 @@ def upgrade_to_supercarrier(unit, name: str):
|
|||||||
|
|
||||||
|
|
||||||
def find_unittype(for_task: Type[MainTask], country_name: str) -> List[Type[UnitType]]:
|
def find_unittype(for_task: Type[MainTask], country_name: str) -> List[Type[UnitType]]:
|
||||||
return [x for x in UNIT_BY_TASK[for_task] if x in FACTIONS[country_name].units]
|
return [x for x in UNIT_BY_TASK[for_task] if x in FACTIONS[country_name].all_units]
|
||||||
|
|
||||||
|
|
||||||
MANPADS: List[Type[VehicleType]] = [
|
MANPADS: List[Type[VehicleType]] = [
|
||||||
|
|||||||
@ -3,7 +3,7 @@ from game.data.groundunitclass import GroundUnitClass
|
|||||||
|
|
||||||
import logging
|
import logging
|
||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field
|
||||||
from typing import Optional, Dict, Type, List, Any, cast
|
from typing import Optional, Dict, Type, List, Any, cast, Iterator
|
||||||
|
|
||||||
import dcs
|
import dcs
|
||||||
from dcs.countries import country_dict
|
from dcs.countries import country_dict
|
||||||
@ -240,7 +240,7 @@ class Faction:
|
|||||||
return faction
|
return faction
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def units(self) -> List[Type[UnitType]]:
|
def all_units(self) -> List[Type[UnitType]]:
|
||||||
return (
|
return (
|
||||||
self.infantry_units
|
self.infantry_units
|
||||||
+ self.aircrafts
|
+ self.aircrafts
|
||||||
@ -251,6 +251,12 @@ class Faction:
|
|||||||
+ self.logistics_units
|
+ self.logistics_units
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def ground_units(self) -> Iterator[Type[VehicleType]]:
|
||||||
|
yield from self.artillery_units
|
||||||
|
yield from self.frontline_units
|
||||||
|
yield from self.logistics_units
|
||||||
|
|
||||||
|
|
||||||
def unit_loader(unit: str, class_repository: List[Any]) -> Optional[Type[UnitType]]:
|
def unit_loader(unit: str, class_repository: List[Any]) -> Optional[Type[UnitType]]:
|
||||||
"""
|
"""
|
||||||
|
|||||||
@ -166,9 +166,7 @@ class ScrollingUnitTransferGrid(QFrame):
|
|||||||
scroll_content = QWidget()
|
scroll_content = QWidget()
|
||||||
task_box_layout = QGridLayout()
|
task_box_layout = QGridLayout()
|
||||||
|
|
||||||
unit_types = set(
|
unit_types = set(self.game_model.game.faction_for(player=True).ground_units)
|
||||||
db.find_unittype(PinpointStrike, self.game_model.game.player_name)
|
|
||||||
)
|
|
||||||
sorted_units = sorted(
|
sorted_units = sorted(
|
||||||
{u for u in unit_types if self.cp.base.total_units_of_type(u)},
|
{u for u in unit_types if self.cp.base.total_units_of_type(u)},
|
||||||
key=lambda u: db.unit_get_expanded_info(
|
key=lambda u: db.unit_get_expanded_info(
|
||||||
|
|||||||
@ -7,10 +7,8 @@ from PySide2.QtWidgets import (
|
|||||||
QScrollArea,
|
QScrollArea,
|
||||||
QVBoxLayout,
|
QVBoxLayout,
|
||||||
QWidget,
|
QWidget,
|
||||||
QMessageBox,
|
|
||||||
)
|
)
|
||||||
from dcs.task import PinpointStrike
|
from dcs.unittype import UnitType
|
||||||
from dcs.unittype import FlyingType, UnitType
|
|
||||||
|
|
||||||
from game import db
|
from game import db
|
||||||
from game.theater import ControlPoint
|
from game.theater import ControlPoint
|
||||||
@ -32,31 +30,24 @@ class QArmorRecruitmentMenu(QFrame, QRecruitBehaviour):
|
|||||||
def init_ui(self):
|
def init_ui(self):
|
||||||
main_layout = QVBoxLayout()
|
main_layout = QVBoxLayout()
|
||||||
|
|
||||||
units = {
|
|
||||||
PinpointStrike: db.find_unittype(
|
|
||||||
PinpointStrike, self.game_model.game.player_name
|
|
||||||
),
|
|
||||||
}
|
|
||||||
|
|
||||||
scroll_content = QWidget()
|
scroll_content = QWidget()
|
||||||
task_box_layout = QGridLayout()
|
task_box_layout = QGridLayout()
|
||||||
scroll_content.setLayout(task_box_layout)
|
scroll_content.setLayout(task_box_layout)
|
||||||
row = 0
|
row = 0
|
||||||
|
|
||||||
for task_type in units.keys():
|
unit_types = list(
|
||||||
units_column = list(set(units[task_type]))
|
set(self.game_model.game.faction_for(player=True).ground_units)
|
||||||
if len(units_column) == 0:
|
)
|
||||||
continue
|
unit_types.sort(
|
||||||
units_column.sort(
|
key=lambda u: db.unit_get_expanded_info(
|
||||||
key=lambda u: db.unit_get_expanded_info(
|
self.game_model.game.player_country, u, "name"
|
||||||
self.game_model.game.player_country, u, "name"
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
for unit_type in units_column:
|
)
|
||||||
row = self.add_purchase_row(unit_type, task_box_layout, row)
|
for unit_type in unit_types:
|
||||||
stretch = QVBoxLayout()
|
row = self.add_purchase_row(unit_type, task_box_layout, row)
|
||||||
stretch.addStretch()
|
stretch = QVBoxLayout()
|
||||||
task_box_layout.addLayout(stretch, row, 0)
|
stretch.addStretch()
|
||||||
|
task_box_layout.addLayout(stretch, row, 0)
|
||||||
|
|
||||||
scroll_content.setLayout(task_box_layout)
|
scroll_content.setLayout(task_box_layout)
|
||||||
scroll = QScrollArea()
|
scroll = QScrollArea()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user