Add abilities support

This commit is contained in:
Anibus
2026-01-11 21:27:49 +03:00
parent 318b5c47e9
commit e0fe94b8ca
23 changed files with 645 additions and 54 deletions
+56
View File
@@ -0,0 +1,56 @@
import {IModifier} from "./IModifier";
import {IRequirement} from "./IRequirement";
import {IArmorType} from "./IArmorType";
import {IAffectedData} from "./IAffectedData";
export interface IAbilityShort {
id: number;
name: string;
fileName: string;
icon: string;
activationType: string;
}
export interface IAbilityFill {
id?: number;
activationType: string;
modId?: number;
filename?: string;
name?: string;
description?: string;
costRequisition?: number;
costPower?: number;
costFaith?: number;
costSouls?: number;
icon?: string;
uiIndexHint: number;
hotkey?: string;
childAbility?: IAbilityFill;
initialDelayTime?: number;
range?: number;
rechargeTime?: number;
rechargeTimerGlobal?: boolean;
refreshTime?: number;
durationTime?: number;
spawnedEntityName?: string;
radius?: number;
minDamage?: number;
minDamageValue?: number;
maxDamage?: number;
moraleDamage?: number;
throwForceMin?: number;
throwForceMax?: number;
activation?: string;
areaEffect?: string;
areaFilter?: string;
modifiers: IModifier[];
requirements?: IRequirement;
affectedData: IAffectedData,
targetFilter: IArmorType[];
piercings: IAbilityPiercing[];
}
export interface IAbilityPiercing {
armorType: IArmorType
piercingValue: number
}
+4 -1
View File
@@ -4,9 +4,9 @@ import {WeaponHardpoint} from "./IUnit";
import {IUnitShort} from "./IUnitShort";
import {IModifier} from "./IModifier";
import {IRequirement} from "./IRequirement";
import {IResearch} from "./IResearch";
import {IResearchShort} from "./IResearchShort";
import {IAffectedData} from "./IAffectedData";
import {IAbilityShort} from "./IAbility";
export interface IBuilding {
id: number
@@ -36,11 +36,13 @@ export interface IBuilding {
modifiers: IModifier[]
affectedData: IAffectedData,
weapons: WeaponHardpoint[]
abilities: IAbilityShort[]
addons: IBuildingAddon[]
researches: IResearchShort[]
units: IUnitShort[]
affectedResearches: IResearchShort[],
requirements: IRequirement,
hotkey: string
}
export interface IBuildingAddon {
@@ -58,6 +60,7 @@ export interface IBuildingAddon {
addonModifiers: IModifier[];
addonRequirement: IRequirement;
icon?: string;
hotkey?: string;
}
export interface IBuildingAddonShort {
+4
View File
@@ -5,4 +5,8 @@ export interface IModifier {
usageType: string;
target: string;
value: number;
maxLifeTime: number;
applicationType: string;
probabilityOfApplying: number;
exclusive: boolean;
}
+1
View File
@@ -18,4 +18,5 @@ export interface IResearch {
affectedData: IAffectedData
requirements: IRequirement
modifiers: IModifier[]
hotkey?: string
}
+15
View File
@@ -2,6 +2,9 @@ import {Irace} from "./Irace";
import {IArmorType} from "./IArmorType";
import {IResearchShort} from "./IResearchShort";
import {IRequirement} from "./IRequirement";
import {IModifier} from "./IModifier";
import {IAffectedData} from "./IAffectedData";
import {IAbilityShort} from "./IAbility";
export interface IUnitResponse {
race: string
@@ -57,7 +60,11 @@ export interface IUnit {
haveReinforceMenu: boolean,
sergeants: ISergeant[]
weapons: WeaponHardpoint[]
modifiers: IModifier[]
abilities: IAbilityShort[]
affectedData: IAffectedData,
affectedResearches: IResearchShort[],
hotkey?: string,
}
export interface ISergeant {
@@ -79,15 +86,21 @@ export interface ISergeant {
health: number
armour?: number
healthRegeneration: number
morale: number
moraleDeathPenalty: number
moraleIncomeMax: number
moraleRate: number
mass: number
upTime: number
sightRadius: number
detectRadius: number
icon: string
modifiers: IModifier[]
requirements: IRequirement,
weapons: WeaponHardpoint[]
abilities: IAbilityShort[]
affectedResearches: IResearchShort[],
hotkey?: string,
}
@@ -133,8 +146,10 @@ export interface IWeapon {
icon: string
modId: number
requirements: IRequirement
modifiers: IModifier[]
weaponArmorPiercing: IWeaponPiercing[]
affectedResearches: IResearchShort[],
hotkey?: string,
}
export interface IWeaponPiercing {