Global update

- add requirements for units, sergeants, buildings and weapons
- add uiIndexHint for units, buildings, researches and addons
- add addon affects
- improve campaign entities clear
- add dds converter definitive edition
- add all files lowercase function before mod parse
- add addon modifiers info
- add advanced build menu grid
- add title according building/unit/mod/race
This commit is contained in:
Anibus
2025-10-11 01:34:18 +03:00
parent 851bb71601
commit f0fde93d7b
20 changed files with 216 additions and 224 deletions
+10
View File
@@ -0,0 +1,10 @@
import {IModifier} from "./IModifier";
import {IRequirement} from "./IRequirement";
import {IAffectedEntity, ISergeantUnitShortDto, IWeaponUnitShortDto} from "./IAffectedEntity";
export interface IAffectedData {
affectedUnits: IAffectedEntity[]
affectedSergeants: ISergeantUnitShortDto[]
affectedBuildings: IAffectedEntity[]
affectedWeapons: IWeaponUnitShortDto[]
}
+3
View File
@@ -6,6 +6,7 @@ import {IModifier} from "./IModifier";
import {IRequirement} from "./IRequirement";
import {IResearch} from "./IResearch";
import {IResearchShort} from "./IResearchShort";
import {IAffectedData} from "./IAffectedData";
export interface IBuilding {
id: number
@@ -37,6 +38,7 @@ export interface IBuilding {
researches: IResearch[]
units: IUnitShort[]
affectedResearches: IResearchShort[],
requirements: IRequirement,
}
export interface IBuildingAddon {
@@ -50,6 +52,7 @@ export interface IBuildingAddon {
addonCostFaith: number;
addonCostSouls: number;
addonCostTime: number;
affectedData: IAffectedData;
addonModifiers: IModifier[];
addonRequirement: IRequirement;
icon?: string;
+3 -1
View File
@@ -4,6 +4,7 @@ import {IUnitShort} from "./IUnitShort";
export interface IRaceBuildings {
race: Irace
buildings: IBuildingShort[]
buildingsAdvanced: IBuildingShort[]
}
export interface IBuildingShort {
@@ -12,5 +13,6 @@ export interface IBuildingShort {
id: number
units: IUnitShort[]
canDetect: boolean
armorTypeName: string
armorTypeName: string,
uiIndexHint: number,
}
+9
View File
@@ -10,4 +10,13 @@ export interface IRequirement {
replaceWhenDone: Boolean;
requireAddon: IBuildingAddonShort;
requiredTotalPop?: number;
limitSquad?:number;
limitTech?:number;
limitByBuilding ?: IRequirementLimitByBuildingDto;
requiredOwnership: string[];
}
export interface IRequirementLimitByBuildingDto{
building: IBuildingShort;
limit: number;
}
+2 -5
View File
@@ -1,6 +1,6 @@
import {IModifier} from "./IModifier";
import {IRequirement} from "./IRequirement";
import {IAffectedEntity, ISergeantUnitShortDto, IWeaponUnitShortDto} from "./IAffectedEntity";
import {IAffectedData} from "./IAffectedData";
export interface IResearch {
id: number
@@ -15,10 +15,7 @@ export interface IResearch {
costTime: number
icon: string
modId: number
affectedUnits: IAffectedEntity[]
affectedSergeants: ISergeantUnitShortDto[]
affectedBuildings: IAffectedEntity[]
affectedWeapons: IWeaponUnitShortDto[]
affectedData: IAffectedData
requirements: IRequirement
modifiers: IModifier[]
}
+6 -1
View File
@@ -1,6 +1,7 @@
import {Irace} from "./Irace";
import {IArmorType} from "./IArmorType";
import {IResearchShort} from "./IResearchShort";
import {IRequirement} from "./IRequirement";
export interface IUnitResponse {
race: string
@@ -52,6 +53,8 @@ export interface IUnit {
requisitionIncome?: number
icon: string
modId: number
requirements: IRequirement
haveReinforceMenu: boolean,
sergeants: ISergeant[]
weapons: WeaponHardpoint[]
affectedResearches: IResearchShort[],
@@ -82,6 +85,7 @@ export interface ISergeant {
sightRadius: number
detectRadius: number
icon: string
requirements: IRequirement,
weapons: WeaponHardpoint[]
affectedResearches: IResearchShort[],
}
@@ -117,9 +121,10 @@ export interface IWeapon {
isMeleeWeapon: boolean
canAttackAir: boolean
canAttackGround: boolean
haveEquipButton: boolean
showInReinforce: boolean
icon: string
modId: number
requirements: IRequirement
weaponArmorPiercing: IWeaponPiercing[]
affectedResearches: IResearchShort[],
}