diff --git a/src/engine/core/managers/interaction/SimulationBoardManager.ts b/src/engine/core/managers/interaction/SimulationBoardManager.ts index 7b7e029f1..3eba141ae 100644 --- a/src/engine/core/managers/interaction/SimulationBoardManager.ts +++ b/src/engine/core/managers/interaction/SimulationBoardManager.ts @@ -8,10 +8,10 @@ import { SmartTerrain } from "@/engine/core/objects/server/smart_terrain/SmartTe import { SquadReachTargetAction } from "@/engine/core/objects/server/squad/action"; import { Squad } from "@/engine/core/objects/server/squad/Squad"; import { TSimulationObject } from "@/engine/core/objects/server/types"; -import { evaluateSimulationPriority } from "@/engine/core/utils/alife"; import { abort } from "@/engine/core/utils/assertion"; import { parseStringsList } from "@/engine/core/utils/ini"; import { LuaLogger } from "@/engine/core/utils/logging"; +import { evaluateSimulationPriority } from "@/engine/core/utils/object/object_alife"; import { changeTeamSquadGroup } from "@/engine/core/utils/object/object_set"; import { setSquadRelationToActor } from "@/engine/core/utils/relation"; import { TCommunity } from "@/engine/lib/constants/communities"; diff --git a/src/engine/core/managers/interaction/tasks/TaskObject.ts b/src/engine/core/managers/interaction/tasks/TaskObject.ts index e3085d256..1cffa5c3e 100644 --- a/src/engine/core/managers/interaction/tasks/TaskObject.ts +++ b/src/engine/core/managers/interaction/tasks/TaskObject.ts @@ -23,7 +23,7 @@ import { TConditionList, } from "@/engine/core/utils/ini"; import { LuaLogger } from "@/engine/core/utils/logging"; -import { giveMoneyToActor, transferItemsToActor } from "@/engine/core/utils/task_reward"; +import { giveMoneyToActor, transferItemsToActor } from "@/engine/core/utils/object/object_task_reward"; import { levels, TLevel } from "@/engine/lib/constants/levels"; import { storyNames } from "@/engine/lib/constants/story_names"; import { NIL } from "@/engine/lib/constants/words"; diff --git a/src/engine/core/managers/interface/StatisticsManager.ts b/src/engine/core/managers/interface/StatisticsManager.ts index 7f241c79e..d3a1adfac 100644 --- a/src/engine/core/managers/interface/StatisticsManager.ts +++ b/src/engine/core/managers/interface/StatisticsManager.ts @@ -3,8 +3,8 @@ import { alife, clsid } from "xray16"; import { getPortableStoreValue, registry, setPortableStoreValue } from "@/engine/core/database"; import { AbstractCoreManager } from "@/engine/core/managers/base/AbstractCoreManager"; import { abort } from "@/engine/core/utils/assertion"; -import { isStalker } from "@/engine/core/utils/check/is"; import { LuaLogger } from "@/engine/core/utils/logging"; +import { isStalker } from "@/engine/core/utils/object"; import { getTableSize } from "@/engine/core/utils/table"; import { TInventoryItem } from "@/engine/lib/constants/items"; import { TArtefact } from "@/engine/lib/constants/items/artefacts"; diff --git a/src/engine/core/managers/interface/notifications/NotificationManager.ts b/src/engine/core/managers/interface/notifications/NotificationManager.ts index 49a829fe6..08a60fca1 100644 --- a/src/engine/core/managers/interface/notifications/NotificationManager.ts +++ b/src/engine/core/managers/interface/notifications/NotificationManager.ts @@ -28,9 +28,8 @@ import { import { GlobalSoundManager } from "@/engine/core/managers/sounds/GlobalSoundManager"; import { Stalker } from "@/engine/core/objects"; import { abort, assert } from "@/engine/core/utils/assertion"; -import { isStalkerClassId } from "@/engine/core/utils/check/is"; import { LuaLogger } from "@/engine/core/utils/logging"; -import { isObjectWounded } from "@/engine/core/utils/object"; +import { isObjectWounded, isStalkerClassId } from "@/engine/core/utils/object"; import { getInventoryNameForItemSection } from "@/engine/core/utils/object/object_spawn"; import { captions, TCaption } from "@/engine/lib/constants/captions/captions"; import { scriptSounds } from "@/engine/lib/constants/sound/script_sounds"; diff --git a/src/engine/core/managers/world/DropManager.ts b/src/engine/core/managers/world/DropManager.ts index cb51520a6..92a75cc0c 100644 --- a/src/engine/core/managers/world/DropManager.ts +++ b/src/engine/core/managers/world/DropManager.ts @@ -4,12 +4,19 @@ import { DEATH_GENERIC_LTX, IRegistryObjectState, registry } from "@/engine/core import { AbstractCoreManager } from "@/engine/core/managers/base/AbstractCoreManager"; import { Stalker } from "@/engine/core/objects/server/creature/Stalker"; import { abort } from "@/engine/core/utils/assertion"; -import { isExcludedFromLootDropItem } from "@/engine/core/utils/check/check"; -import { isAmmoItem, isArtefact, isGrenade, isLootableItem, isWeapon } from "@/engine/core/utils/check/is"; import { parseNumbersList, parseStringsList } from "@/engine/core/utils/ini"; import { LuaLogger } from "@/engine/core/utils/logging"; -import { getCharacterCommunity, setItemCondition } from "@/engine/core/utils/object"; -import { spawnItemsForObject } from "@/engine/core/utils/object/object_spawn"; +import { + getCharacterCommunity, + isAmmoItem, + isArtefact, + isExcludedFromLootDropItem, + isGrenade, + isLootableItem, + isWeapon, + setItemCondition, + spawnItemsForObject, +} from "@/engine/core/utils/object"; import { logicsConfig } from "@/engine/lib/configs/LogicsConfig"; import { communities, TCommunity } from "@/engine/lib/constants/communities"; import { TInventoryItem } from "@/engine/lib/constants/items"; diff --git a/src/engine/core/managers/world/PsyAntennaManager.ts b/src/engine/core/managers/world/PsyAntennaManager.ts index 075876284..f901bf738 100644 --- a/src/engine/core/managers/world/PsyAntennaManager.ts +++ b/src/engine/core/managers/world/PsyAntennaManager.ts @@ -7,7 +7,7 @@ import { AbstractCoreManager } from "@/engine/core/managers/base/AbstractCoreMan import { EGameEvent, EventsManager } from "@/engine/core/managers/events"; import { PhantomManager } from "@/engine/core/managers/world/PhantomManager"; import { abort } from "@/engine/core/utils/assertion"; -import { isLevelChanging } from "@/engine/core/utils/check/check"; +import { isGameLevelChanging } from "@/engine/core/utils/game"; import { clampNumber } from "@/engine/core/utils/number"; import { createEmptyVector, createVector, vectorRotateY } from "@/engine/core/utils/vector"; import { sounds } from "@/engine/lib/constants/sound/sounds"; @@ -67,7 +67,7 @@ export class PsyAntennaManager extends AbstractCoreManager { const manager: Optional = getWeakManagerInstance(PsyAntennaManager); - if (manager && !isLevelChanging()) { + if (manager && !isGameLevelChanging()) { packet.w_bool(true); manager.save(packet); diff --git a/src/engine/core/managers/world/ReleaseBodyManager.ts b/src/engine/core/managers/world/ReleaseBodyManager.ts index 763f5ae12..fdfed040d 100644 --- a/src/engine/core/managers/world/ReleaseBodyManager.ts +++ b/src/engine/core/managers/world/ReleaseBodyManager.ts @@ -13,9 +13,9 @@ import { } from "@/engine/core/database"; import { AbstractCoreManager } from "@/engine/core/managers/base/AbstractCoreManager"; import { abort } from "@/engine/core/utils/assertion"; -import { isMonster, isStalker } from "@/engine/core/utils/check/is"; import { readIniString } from "@/engine/core/utils/ini"; import { LuaLogger } from "@/engine/core/utils/logging"; +import { isMonster, isStalker } from "@/engine/core/utils/object"; import { roots } from "@/engine/lib/constants/roots"; import { ClientObject, diff --git a/src/engine/core/managers/world/SurgeManager.ts b/src/engine/core/managers/world/SurgeManager.ts index a4337b50e..094ee0cfa 100644 --- a/src/engine/core/managers/world/SurgeManager.ts +++ b/src/engine/core/managers/world/SurgeManager.ts @@ -19,15 +19,20 @@ import { GlobalSoundManager } from "@/engine/core/managers/sounds/GlobalSoundMan import { WeatherManager } from "@/engine/core/managers/world/WeatherManager"; import { AnomalyZoneBinder, SmartTerrain } from "@/engine/core/objects"; import { Squad } from "@/engine/core/objects/server/squad/Squad"; -import { isBlackScreen, isImmuneToSurge, isSurgeEnabledOnLevel } from "@/engine/core/utils/check/check"; -import { isArtefact, isStoryObject } from "@/engine/core/utils/check/is"; +import { isBlackScreen } from "@/engine/core/utils/game"; import { executeConsoleCommand, getConsoleFloatCommand } from "@/engine/core/utils/game/game_console"; import { createAutoSave } from "@/engine/core/utils/game/game_save"; import { readTimeFromPacket, writeTimeToPacket } from "@/engine/core/utils/game/game_time"; import { parseConditionsList, pickSectionFromCondList, TConditionList } from "@/engine/core/utils/ini"; import { LuaLogger } from "@/engine/core/utils/logging"; +import { + isArtefact, + isImmuneToSurge, + isObjectOnLevel, + isStoryObject, + isSurgeEnabledOnLevel, +} from "@/engine/core/utils/object"; import { disableInfo, giveInfo, hasAlifeInfo } from "@/engine/core/utils/object/object_info_portion"; -import { isObjectOnLevel } from "@/engine/core/utils/object/object_location"; import { createVector } from "@/engine/core/utils/vector"; import { surgeConfig } from "@/engine/lib/configs/SurgeConfig"; import { animations } from "@/engine/lib/constants/animation/animations"; diff --git a/src/engine/core/objects/binders/creature/ActorBinder.ts b/src/engine/core/objects/binders/creature/ActorBinder.ts index 29b3d9401..441891f4f 100644 --- a/src/engine/core/objects/binders/creature/ActorBinder.ts +++ b/src/engine/core/objects/binders/creature/ActorBinder.ts @@ -18,8 +18,8 @@ import { EGameEvent } from "@/engine/core/managers/events/types"; import { Actor } from "@/engine/core/objects/server/creature/Actor"; import { ISchemeDeimosState } from "@/engine/core/schemes/sr_deimos"; import { SchemeDeimos } from "@/engine/core/schemes/sr_deimos/SchemeDeimos"; -import { setStableAlifeObjectsUpdate, setUnlimitedAlifeObjectsUpdate } from "@/engine/core/utils/alife"; import { LuaLogger } from "@/engine/core/utils/logging"; +import { setStableAlifeObjectsUpdate, setUnlimitedAlifeObjectsUpdate } from "@/engine/core/utils/object/object_alife"; import { logicsConfig } from "@/engine/lib/configs/LogicsConfig"; import { ClientObject, diff --git a/src/engine/core/objects/server/smart_terrain/SmartTerrain.ts b/src/engine/core/objects/server/smart_terrain/SmartTerrain.ts index 23c37df3e..54770b0e8 100644 --- a/src/engine/core/objects/server/smart_terrain/SmartTerrain.ts +++ b/src/engine/core/objects/server/smart_terrain/SmartTerrain.ts @@ -55,7 +55,6 @@ import { TSimulationObject, } from "@/engine/core/objects/server/types"; import { abort, assert, assertDefined } from "@/engine/core/utils/assertion"; -import { isMonster, isStalker } from "@/engine/core/utils/check/is"; import { readTimeFromPacket, writeTimeToPacket } from "@/engine/core/utils/game/game_time"; import { getSchemeFromSection, @@ -69,7 +68,7 @@ import { TConditionList, } from "@/engine/core/utils/ini"; import { LuaLogger } from "@/engine/core/utils/logging"; -import { areObjectsOnSameLevel } from "@/engine/core/utils/object"; +import { areObjectsOnSameLevel, isMonster, isStalker } from "@/engine/core/utils/object"; import { ERelation } from "@/engine/core/utils/relation"; import { activateSchemeBySection, diff --git a/src/engine/core/objects/server/smart_terrain/SmartTerrainControl.ts b/src/engine/core/objects/server/smart_terrain/SmartTerrainControl.ts index 1755e71ab..3a9f3cc50 100644 --- a/src/engine/core/objects/server/smart_terrain/SmartTerrainControl.ts +++ b/src/engine/core/objects/server/smart_terrain/SmartTerrainControl.ts @@ -1,15 +1,14 @@ import { game } from "xray16"; -import { closeLoadMarker, closeSaveMarker, openSaveMarker, registry } from "@/engine/core/database"; -import { openLoadMarker } from "@/engine/core/database/save_markers"; +import { closeLoadMarker, closeSaveMarker, openLoadMarker, openSaveMarker, registry } from "@/engine/core/database"; import { SimulationBoardManager } from "@/engine/core/managers/interaction/SimulationBoardManager"; import { GlobalSoundManager } from "@/engine/core/managers/sounds/GlobalSoundManager"; import { SmartTerrain } from "@/engine/core/objects/server/smart_terrain/SmartTerrain"; import { ESmartTerrainStatus } from "@/engine/core/objects/server/smart_terrain/types"; -import { isWeapon } from "@/engine/core/utils/check/is"; import { readTimeFromPacket, writeTimeToPacket } from "@/engine/core/utils/game/game_time"; import { parseConditionsList, pickSectionFromCondList, readIniString, TConditionList } from "@/engine/core/utils/ini"; import { LuaLogger } from "@/engine/core/utils/logging"; +import { isWeapon } from "@/engine/core/utils/object"; import { ERelation, updateSquadIdRelationToActor } from "@/engine/core/utils/relation"; import { logicsConfig } from "@/engine/lib/configs/LogicsConfig"; import { diff --git a/src/engine/core/objects/server/squad/Squad.ts b/src/engine/core/objects/server/squad/Squad.ts index 91f97030a..c1936029f 100644 --- a/src/engine/core/objects/server/squad/Squad.ts +++ b/src/engine/core/objects/server/squad/Squad.ts @@ -12,6 +12,7 @@ import { import { closeLoadMarker, closeSaveMarker, + openLoadMarker, openSaveMarker, registerObjectStoryLinks, registry, @@ -21,7 +22,6 @@ import { SQUAD_BEHAVIOURS_LTX, SYSTEM_INI, } from "@/engine/core/database"; -import { openLoadMarker } from "@/engine/core/database/save_markers"; import { registerSimulationObject, unregisterSimulationObject, @@ -42,7 +42,6 @@ import { } from "@/engine/core/objects/server/types"; import { StoryManager } from "@/engine/core/objects/sounds/stories"; import { abort, assertDefined } from "@/engine/core/utils/assertion"; -import { isSquadMonsterCommunity } from "@/engine/core/utils/check/is"; import { parseConditionsList, parseStringsList, @@ -54,8 +53,7 @@ import { TConditionList, } from "@/engine/core/utils/ini"; import { LuaLogger } from "@/engine/core/utils/logging"; -import { areObjectsOnSameLevel } from "@/engine/core/utils/object"; -import { hasAlifeInfo } from "@/engine/core/utils/object/object_info_portion"; +import { areObjectsOnSameLevel, hasAlifeInfo, isSquadMonsterCommunity } from "@/engine/core/utils/object"; import { areCommunitiesEnemies, ERelation, diff --git a/src/engine/core/objects/state/state/ActionStateEnd.ts b/src/engine/core/objects/state/state/ActionStateEnd.ts index ed5a6814a..37e876927 100644 --- a/src/engine/core/objects/state/state/ActionStateEnd.ts +++ b/src/engine/core/objects/state/state/ActionStateEnd.ts @@ -4,8 +4,8 @@ import { EWeaponAnimation } from "@/engine/core/objects/state"; import { StalkerStateManager } from "@/engine/core/objects/state/StalkerStateManager"; import { getObjectIdleState, getStateQueueParams } from "@/engine/core/objects/state/weapon/StateManagerWeapon"; import { states } from "@/engine/core/objects/state_lib/state_lib"; -import { isStalker, isWeapon } from "@/engine/core/utils/check/is"; import { LuaLogger } from "@/engine/core/utils/logging"; +import { isStalker, isWeapon } from "@/engine/core/utils/object"; import { ClientObject, EClientObjectRelation, Optional, TDuration, TRate, TTimestamp } from "@/engine/lib/types"; const logger: LuaLogger = new LuaLogger($filename); diff --git a/src/engine/core/objects/state/weapon/ActionWeaponDrop.ts b/src/engine/core/objects/state/weapon/ActionWeaponDrop.ts index 9a3e1fc74..25392eb0c 100644 --- a/src/engine/core/objects/state/weapon/ActionWeaponDrop.ts +++ b/src/engine/core/objects/state/weapon/ActionWeaponDrop.ts @@ -2,9 +2,8 @@ import { action_base, LuabindClass, object } from "xray16"; import { StalkerStateManager } from "@/engine/core/objects/state/StalkerStateManager"; import { getObjectAnimationWeapon } from "@/engine/core/objects/state/weapon/StateManagerWeapon"; -import { isStrappableWeapon } from "@/engine/core/utils/check/is"; import { LuaLogger } from "@/engine/core/utils/logging"; -import { setItemCondition } from "@/engine/core/utils/object"; +import { isStrappableWeapon, setItemCondition } from "@/engine/core/utils/object"; import { logicsConfig } from "@/engine/lib/configs/LogicsConfig"; import { ClientObject, Optional } from "@/engine/lib/types"; diff --git a/src/engine/core/objects/state/weapon/ActionWeaponStrap.ts b/src/engine/core/objects/state/weapon/ActionWeaponStrap.ts index 8dd1f08d0..1a5e985a5 100644 --- a/src/engine/core/objects/state/weapon/ActionWeaponStrap.ts +++ b/src/engine/core/objects/state/weapon/ActionWeaponStrap.ts @@ -2,8 +2,8 @@ import { action_base, LuabindClass, object } from "xray16"; import { StalkerStateManager } from "@/engine/core/objects/state/StalkerStateManager"; import { getObjectAnimationWeapon } from "@/engine/core/objects/state/weapon/StateManagerWeapon"; -import { isStrappableWeapon } from "@/engine/core/utils/check/is"; import { LuaLogger } from "@/engine/core/utils/logging"; +import { isStrappableWeapon } from "@/engine/core/utils/object"; import { ClientObject, Optional } from "@/engine/lib/types"; const logger: LuaLogger = new LuaLogger($filename); diff --git a/src/engine/core/objects/state/weapon/EvaluatorWeapon.ts b/src/engine/core/objects/state/weapon/EvaluatorWeapon.ts index 940c7d0db..ef469358b 100644 --- a/src/engine/core/objects/state/weapon/EvaluatorWeapon.ts +++ b/src/engine/core/objects/state/weapon/EvaluatorWeapon.ts @@ -3,8 +3,8 @@ import { LuabindClass, property_evaluator } from "xray16"; import { EWeaponAnimation } from "@/engine/core/objects/state"; import { StalkerStateManager } from "@/engine/core/objects/state/StalkerStateManager"; import { states } from "@/engine/core/objects/state_lib/state_lib"; -import { isStrappableWeapon, isWeapon } from "@/engine/core/utils/check/is"; import { LuaLogger } from "@/engine/core/utils/logging"; +import { isStrappableWeapon, isWeapon } from "@/engine/core/utils/object"; import { ClientObject, Optional } from "@/engine/lib/types"; const logger: LuaLogger = new LuaLogger($filename); diff --git a/src/engine/core/objects/state/weapon/EvaluatorWeaponStrappedNow.ts b/src/engine/core/objects/state/weapon/EvaluatorWeaponStrappedNow.ts index df7a3d416..b5b8cda88 100644 --- a/src/engine/core/objects/state/weapon/EvaluatorWeaponStrappedNow.ts +++ b/src/engine/core/objects/state/weapon/EvaluatorWeaponStrappedNow.ts @@ -1,8 +1,8 @@ import { LuabindClass, property_evaluator } from "xray16"; import { StalkerStateManager } from "@/engine/core/objects/state/StalkerStateManager"; -import { isStrappableWeapon, isWeapon } from "@/engine/core/utils/check/is"; import { LuaLogger } from "@/engine/core/utils/logging"; +import { isStrappableWeapon, isWeapon } from "@/engine/core/utils/object"; import { ClientObject, Optional } from "@/engine/lib/types"; const logger: LuaLogger = new LuaLogger($filename); diff --git a/src/engine/core/schemes/animpoint/evaluators/EvaluatorNeedAnimpoint.ts b/src/engine/core/schemes/animpoint/evaluators/EvaluatorNeedAnimpoint.ts index 124197216..6452f200f 100644 --- a/src/engine/core/schemes/animpoint/evaluators/EvaluatorNeedAnimpoint.ts +++ b/src/engine/core/schemes/animpoint/evaluators/EvaluatorNeedAnimpoint.ts @@ -1,8 +1,8 @@ import { LuabindClass, property_evaluator } from "xray16"; import { ISchemeAnimpointState } from "@/engine/core/schemes/animpoint/ISchemeAnimpointState"; -import { isActiveSection } from "@/engine/core/utils/check/is"; import { LuaLogger } from "@/engine/core/utils/logging"; +import { isActiveSection } from "@/engine/core/utils/object"; const logger: LuaLogger = new LuaLogger($filename); diff --git a/src/engine/core/schemes/base/evaluators/EvaluatorEnd.ts b/src/engine/core/schemes/base/evaluators/EvaluatorEnd.ts index 1afac4da4..ded061504 100644 --- a/src/engine/core/schemes/base/evaluators/EvaluatorEnd.ts +++ b/src/engine/core/schemes/base/evaluators/EvaluatorEnd.ts @@ -1,8 +1,8 @@ import { LuabindClass, property_evaluator } from "xray16"; import { IBaseSchemeState } from "@/engine/core/schemes/base"; -import { isActiveSection } from "@/engine/core/utils/check/is"; import { LuaLogger } from "@/engine/core/utils/logging"; +import { isActiveSection } from "@/engine/core/utils/object"; const logger: LuaLogger = new LuaLogger($filename); diff --git a/src/engine/core/schemes/camper/evaluators/EvaluatorCloseCombat.ts b/src/engine/core/schemes/camper/evaluators/EvaluatorCloseCombat.ts index f48e45580..51ce0ad09 100644 --- a/src/engine/core/schemes/camper/evaluators/EvaluatorCloseCombat.ts +++ b/src/engine/core/schemes/camper/evaluators/EvaluatorCloseCombat.ts @@ -1,9 +1,9 @@ import { LuabindClass, property_evaluator, stalker_ids, time_global } from "xray16"; -import { EEvaluatorId } from "@/engine/core/schemes"; +import { EEvaluatorId } from "@/engine/core/schemes/base"; import { ISchemeCamperState } from "@/engine/core/schemes/camper/ISchemeCamperState"; -import { isActiveSection } from "@/engine/core/utils/check/is"; import { LuaLogger } from "@/engine/core/utils/logging"; +import { isActiveSection } from "@/engine/core/utils/object"; import { ActionPlanner, Optional } from "@/engine/lib/types"; const logger: LuaLogger = new LuaLogger($filename); @@ -17,9 +17,6 @@ export class EvaluatorCloseCombat extends property_evaluator { public actionPlanner: Optional = null; public isCloseCombat: boolean = false; - /** - * todo: Description. - */ public constructor(state: ISchemeCamperState) { super(null, EvaluatorCloseCombat.__name); this.state = state; diff --git a/src/engine/core/schemes/companion/evaluators/EvaluatorNeedCompanion.ts b/src/engine/core/schemes/companion/evaluators/EvaluatorNeedCompanion.ts index ba130cb31..a82ed7a8e 100644 --- a/src/engine/core/schemes/companion/evaluators/EvaluatorNeedCompanion.ts +++ b/src/engine/core/schemes/companion/evaluators/EvaluatorNeedCompanion.ts @@ -1,8 +1,8 @@ import { LuabindClass, property_evaluator } from "xray16"; import { ISchemeCompanionState } from "@/engine/core/schemes/companion"; -import { isActiveSection } from "@/engine/core/utils/check/is"; import { LuaLogger } from "@/engine/core/utils/logging"; +import { isActiveSection } from "@/engine/core/utils/object"; const logger: LuaLogger = new LuaLogger($filename); diff --git a/src/engine/core/schemes/corpse_detection/SchemeCorpseDetection.ts b/src/engine/core/schemes/corpse_detection/SchemeCorpseDetection.ts index 309b16fa8..d2bb6b9fa 100644 --- a/src/engine/core/schemes/corpse_detection/SchemeCorpseDetection.ts +++ b/src/engine/core/schemes/corpse_detection/SchemeCorpseDetection.ts @@ -6,9 +6,9 @@ import { AbstractScheme, EActionId, EEvaluatorId } from "@/engine/core/schemes"; import { ActionSearchCorpse } from "@/engine/core/schemes/corpse_detection/actions"; import { EvaluatorCorpseDetect } from "@/engine/core/schemes/corpse_detection/evaluators"; import { ISchemeCorpseDetectionState } from "@/engine/core/schemes/corpse_detection/ISchemeCorpseDetectionState"; -import { isLootableItem } from "@/engine/core/utils/check/is"; -import { readIniBoolean } from "@/engine/core/utils/ini/ini_read"; +import { readIniBoolean } from "@/engine/core/utils/ini"; import { LuaLogger } from "@/engine/core/utils/logging"; +import { isLootableItem } from "@/engine/core/utils/object"; import { ActionPlanner, ClientObject, IniFile, Optional, TNumberId } from "@/engine/lib/types"; import { EScheme, ESchemeType, TSection } from "@/engine/lib/types/scheme"; diff --git a/src/engine/core/schemes/corpse_detection/evaluators/EvaluatorCorpseDetect.ts b/src/engine/core/schemes/corpse_detection/evaluators/EvaluatorCorpseDetect.ts index 1644af12d..b73c46485 100644 --- a/src/engine/core/schemes/corpse_detection/evaluators/EvaluatorCorpseDetect.ts +++ b/src/engine/core/schemes/corpse_detection/evaluators/EvaluatorCorpseDetect.ts @@ -3,8 +3,7 @@ import { level, LuabindClass, property_evaluator } from "xray16"; import { IRegistryObjectState, registry } from "@/engine/core/database"; import { IReleaseDescriptor, ReleaseBodyManager } from "@/engine/core/managers/world/ReleaseBodyManager"; import { ISchemeCorpseDetectionState } from "@/engine/core/schemes/corpse_detection"; -import { isLootableItem } from "@/engine/core/utils/check/is"; -import { isObjectWounded } from "@/engine/core/utils/object"; +import { isLootableItem, isObjectWounded } from "@/engine/core/utils/object"; import { communities } from "@/engine/lib/constants/communities"; import { ClientObject, Optional, TDistance, TNumberId, Vector } from "@/engine/lib/types"; diff --git a/src/engine/core/schemes/heli_move/HeliCombat.ts b/src/engine/core/schemes/heli_move/HeliCombat.ts index 5fb1f6fc2..77b7b32a2 100644 --- a/src/engine/core/schemes/heli_move/HeliCombat.ts +++ b/src/engine/core/schemes/heli_move/HeliCombat.ts @@ -5,12 +5,12 @@ import { closeSaveMarker, getIdBySid, IRegistryObjectState, + openLoadMarker, openSaveMarker, registry, } from "@/engine/core/database"; -import { openLoadMarker } from "@/engine/core/database/save_markers"; import { getHeliHealth } from "@/engine/core/schemes/heli_move/heli_utils"; -import { isLevelChanging } from "@/engine/core/utils/check/check"; +import { isGameLevelChanging } from "@/engine/core/utils/game"; import { parseConditionsList, pickSectionFromCondList, @@ -224,7 +224,7 @@ export class HeliCombat { public save(packet: NetPacket): void { openSaveMarker(packet, HeliCombat.name); - if (isLevelChanging()) { + if (isGameLevelChanging()) { packet.w_bool(false); closeSaveMarker(packet, HeliCombat.name); diff --git a/src/engine/core/schemes/meet/MeetManager.ts b/src/engine/core/schemes/meet/MeetManager.ts index d1fbaeb57..921523b2e 100644 --- a/src/engine/core/schemes/meet/MeetManager.ts +++ b/src/engine/core/schemes/meet/MeetManager.ts @@ -6,7 +6,7 @@ import { EStalkerState } from "@/engine/core/objects/state"; import { AbstractSchemeManager } from "@/engine/core/schemes"; import { SchemeAbuse } from "@/engine/core/schemes/abuse"; import { ISchemeMeetState } from "@/engine/core/schemes/meet/ISchemeMeetState"; -import { isBlackScreen } from "@/engine/core/utils/check/check"; +import { isBlackScreen } from "@/engine/core/utils/game"; import { pickSectionFromCondList } from "@/engine/core/utils/ini"; import { LuaLogger } from "@/engine/core/utils/logging"; import { isObjectInCombat, isObjectWounded } from "@/engine/core/utils/object"; diff --git a/src/engine/core/schemes/patrol/evaluators/EvaluatorPatrolEnd.ts b/src/engine/core/schemes/patrol/evaluators/EvaluatorPatrolEnd.ts index fe76485c9..a70c67a39 100644 --- a/src/engine/core/schemes/patrol/evaluators/EvaluatorPatrolEnd.ts +++ b/src/engine/core/schemes/patrol/evaluators/EvaluatorPatrolEnd.ts @@ -1,8 +1,8 @@ import { LuabindClass, property_evaluator } from "xray16"; import { ISchemePatrolState } from "@/engine/core/schemes/patrol"; -import { isActiveSection } from "@/engine/core/utils/check/is"; import { LuaLogger } from "@/engine/core/utils/logging"; +import { isActiveSection } from "@/engine/core/utils/object"; const logger: LuaLogger = new LuaLogger($filename); diff --git a/src/engine/core/schemes/ph_button/PhysicalButtonManager.ts b/src/engine/core/schemes/ph_button/PhysicalButtonManager.ts index 738fe8a77..6bd8a245d 100644 --- a/src/engine/core/schemes/ph_button/PhysicalButtonManager.ts +++ b/src/engine/core/schemes/ph_button/PhysicalButtonManager.ts @@ -3,9 +3,9 @@ import { time_global } from "xray16"; import { registry } from "@/engine/core/database"; import { AbstractSchemeManager } from "@/engine/core/schemes"; import { ISchemePhysicalButtonState } from "@/engine/core/schemes/ph_button/ISchemePhysicalButtonState"; -import { isActiveSection } from "@/engine/core/utils/check/is"; -import { pickSectionFromCondList } from "@/engine/core/utils/ini/ini_config"; +import { pickSectionFromCondList } from "@/engine/core/utils/ini"; import { LuaLogger } from "@/engine/core/utils/logging"; +import { isActiveSection } from "@/engine/core/utils/object"; import { switchObjectSchemeToSection, trySwitchToAnotherSection } from "@/engine/core/utils/scheme/scheme_switch"; import { ClientObject, Optional, TIndex, TRate, TTimestamp, Vector } from "@/engine/lib/types"; diff --git a/src/engine/core/schemes/ph_minigun/MinigunManager.ts b/src/engine/core/schemes/ph_minigun/MinigunManager.ts index ddc57b13d..61aacb524 100644 --- a/src/engine/core/schemes/ph_minigun/MinigunManager.ts +++ b/src/engine/core/schemes/ph_minigun/MinigunManager.ts @@ -4,9 +4,8 @@ import { getObjectByStoryId, registry } from "@/engine/core/database"; import { AbstractSchemeManager } from "@/engine/core/schemes/base"; import { ISchemeMinigunState } from "@/engine/core/schemes/ph_minigun/ISchemeMinigunState"; import { abort } from "@/engine/core/utils/assertion"; -import { isActiveSection } from "@/engine/core/utils/check/is"; import { pickSectionFromCondList, TConditionList } from "@/engine/core/utils/ini"; -import { isObjectWounded } from "@/engine/core/utils/object"; +import { isActiveSection, isObjectWounded } from "@/engine/core/utils/object"; import { isMonsterScriptCaptured, scriptReleaseMonster, diff --git a/src/engine/core/schemes/remark/evaluators/EvaluatorNeedRemark.ts b/src/engine/core/schemes/remark/evaluators/EvaluatorNeedRemark.ts index 70b7b5c4d..ef91f491a 100644 --- a/src/engine/core/schemes/remark/evaluators/EvaluatorNeedRemark.ts +++ b/src/engine/core/schemes/remark/evaluators/EvaluatorNeedRemark.ts @@ -1,8 +1,8 @@ import { LuabindClass, property_evaluator } from "xray16"; import { ISchemeRemarkState } from "@/engine/core/schemes/remark"; -import { isActiveSection } from "@/engine/core/utils/check/is"; import { LuaLogger } from "@/engine/core/utils/logging"; +import { isActiveSection } from "@/engine/core/utils/object"; const logger: LuaLogger = new LuaLogger($filename); diff --git a/src/engine/core/schemes/smartcover/evaluators/EvaluatorNeedSmartCover.ts b/src/engine/core/schemes/smartcover/evaluators/EvaluatorNeedSmartCover.ts index d93fa6b1c..b9f67eb73 100644 --- a/src/engine/core/schemes/smartcover/evaluators/EvaluatorNeedSmartCover.ts +++ b/src/engine/core/schemes/smartcover/evaluators/EvaluatorNeedSmartCover.ts @@ -1,8 +1,8 @@ import { LuabindClass, property_evaluator } from "xray16"; import { ISchemeSmartCoverState } from "@/engine/core/schemes/smartcover"; -import { isActiveSection } from "@/engine/core/utils/check/is"; import { LuaLogger } from "@/engine/core/utils/logging"; +import { isActiveSection } from "@/engine/core/utils/object"; const logger: LuaLogger = new LuaLogger($filename); @@ -13,9 +13,6 @@ const logger: LuaLogger = new LuaLogger($filename); export class EvaluatorNeedSmartCover extends property_evaluator { public readonly state: ISchemeSmartCoverState; - /** - * todo: Description. - */ public constructor(state: ISchemeSmartCoverState) { super(null, EvaluatorNeedSmartCover.__name); this.state = state; diff --git a/src/engine/core/schemes/smartcover/evaluators/EvaluatorUseSmartCoverInCombat.ts b/src/engine/core/schemes/smartcover/evaluators/EvaluatorUseSmartCoverInCombat.ts index 2106a6031..a187c6f6b 100644 --- a/src/engine/core/schemes/smartcover/evaluators/EvaluatorUseSmartCoverInCombat.ts +++ b/src/engine/core/schemes/smartcover/evaluators/EvaluatorUseSmartCoverInCombat.ts @@ -1,8 +1,8 @@ import { LuabindClass, property_evaluator } from "xray16"; import { ISchemeSmartCoverState } from "@/engine/core/schemes/smartcover"; -import { isActiveSection } from "@/engine/core/utils/check/is"; import { LuaLogger } from "@/engine/core/utils/logging"; +import { isActiveSection } from "@/engine/core/utils/object"; const logger: LuaLogger = new LuaLogger($filename); @@ -13,9 +13,6 @@ const logger: LuaLogger = new LuaLogger($filename); export class EvaluatorUseSmartCoverInCombat extends property_evaluator { public readonly state: ISchemeSmartCoverState; - /** - * todo: Description. - */ public constructor(state: ISchemeSmartCoverState) { super(null, EvaluatorUseSmartCoverInCombat.__name); this.state = state; diff --git a/src/engine/core/schemes/sr_light/SchemeLight.ts b/src/engine/core/schemes/sr_light/SchemeLight.ts index ad4fc5f87..e3ecf9978 100644 --- a/src/engine/core/schemes/sr_light/SchemeLight.ts +++ b/src/engine/core/schemes/sr_light/SchemeLight.ts @@ -4,10 +4,9 @@ import { registry } from "@/engine/core/database"; import { AbstractScheme } from "@/engine/core/schemes/base/AbstractScheme"; import { ISchemeLightState } from "@/engine/core/schemes/sr_light/ISchemeLightState"; import { LightManager } from "@/engine/core/schemes/sr_light/LightManager"; -import { isUndergroundLevel } from "@/engine/core/utils/check/is"; -import { getConfigSwitchConditions } from "@/engine/core/utils/ini/ini_config"; -import { readIniBoolean } from "@/engine/core/utils/ini/ini_read"; +import { getConfigSwitchConditions, readIniBoolean } from "@/engine/core/utils/ini"; import { LuaLogger } from "@/engine/core/utils/logging"; +import { isUndergroundLevel } from "@/engine/core/utils/object"; import { resetTable } from "@/engine/core/utils/table"; import { misc } from "@/engine/lib/constants/items/misc"; import { ClientObject, EScheme, ESchemeType, IniFile, Optional, TSection } from "@/engine/lib/types"; diff --git a/src/engine/core/ui/debug/sections/DebugItemsSection.ts b/src/engine/core/ui/debug/sections/DebugItemsSection.ts index a0262c059..062fe8ea9 100644 --- a/src/engine/core/ui/debug/sections/DebugItemsSection.ts +++ b/src/engine/core/ui/debug/sections/DebugItemsSection.ts @@ -3,16 +3,16 @@ import { CUI3tButton, CUIComboBox, CUIListBox, CUIWindow, LuabindClass, ui_event import { registry } from "@/engine/core/database"; import { AbstractDebugSection } from "@/engine/core/ui/debug/sections/AbstractDebugSection"; import { DebugItemListEntry } from "@/engine/core/ui/debug/sections/DebugItemListEntry"; -import { isAmmoSection, isGameStarted } from "@/engine/core/utils/check/is"; -import { LuaLogger } from "@/engine/core/utils/logging"; -import { getInventoryNameForItemSection, spawnItemsForObject } from "@/engine/core/utils/object/object_spawn"; +import { isGameStarted } from "@/engine/core/utils/game"; import { getAmmoSections, getArtefactsSections, getHelmetsSections, getOutfitSections, getWeaponSections, -} from "@/engine/core/utils/sections"; +} from "@/engine/core/utils/ini"; +import { LuaLogger } from "@/engine/core/utils/logging"; +import { getInventoryNameForItemSection, isAmmoSection, spawnItemsForObject } from "@/engine/core/utils/object"; import { resolveXmlFile } from "@/engine/core/utils/ui"; import { TInventoryItem } from "@/engine/lib/constants/items"; import { drugs } from "@/engine/lib/constants/items/drugs"; diff --git a/src/engine/core/ui/debug/sections/DebugObjectSection.ts b/src/engine/core/ui/debug/sections/DebugObjectSection.ts index 750df77bf..19b68e460 100644 --- a/src/engine/core/ui/debug/sections/DebugObjectSection.ts +++ b/src/engine/core/ui/debug/sections/DebugObjectSection.ts @@ -4,7 +4,7 @@ import { registry } from "@/engine/core/database"; import { DebugManager } from "@/engine/core/managers/debug/DebugManager"; import { Squad } from "@/engine/core/objects"; import { AbstractDebugSection } from "@/engine/core/ui/debug/sections/AbstractDebugSection"; -import { isGameStarted } from "@/engine/core/utils/check"; +import { isGameStarted } from "@/engine/core/utils/game"; import { LuaLogger } from "@/engine/core/utils/logging"; import { getObjectSquad } from "@/engine/core/utils/object"; import { getNearestClientObject } from "@/engine/core/utils/object/object_find"; diff --git a/src/engine/core/ui/debug/sections/DebugSpawnSection.ts b/src/engine/core/ui/debug/sections/DebugSpawnSection.ts index d716cb929..ce1765957 100644 --- a/src/engine/core/ui/debug/sections/DebugSpawnSection.ts +++ b/src/engine/core/ui/debug/sections/DebugSpawnSection.ts @@ -3,15 +3,15 @@ import { CUI3tButton, CUIComboBox, CUIListBox, CUIWindow, LuabindClass, ui_event import { Squad } from "@/engine/core/objects"; import { AbstractDebugSection } from "@/engine/core/ui/debug/sections/AbstractDebugSection"; import { DebugItemListEntry } from "@/engine/core/ui/debug/sections/DebugItemListEntry"; -import { isGameStarted } from "@/engine/core/utils/check"; +import { isGameStarted } from "@/engine/core/utils/game"; +import { getSimulationGroupSections, getStalkerSections } from "@/engine/core/utils/ini"; import { LuaLogger } from "@/engine/core/utils/logging"; -import { getNearestServerObject } from "@/engine/core/utils/object/object_find"; +import { getNearestServerObject } from "@/engine/core/utils/object"; import { getInventoryNameForItemSection, spawnCreatureNearActor, spawnSquadInSmart, } from "@/engine/core/utils/object/object_spawn"; -import { getSimulationGroupSections, getStalkerSections } from "@/engine/core/utils/sections"; import { resolveXmlFile } from "@/engine/core/utils/ui"; import { TInventoryItem } from "@/engine/lib/constants/items"; import { LuaArray, Optional, ServerObject, TPath, TSection, Vector2D } from "@/engine/lib/types"; diff --git a/src/engine/core/ui/debug/sections/DebugTeleportSection.ts b/src/engine/core/ui/debug/sections/DebugTeleportSection.ts index 80832472f..4d05db729 100644 --- a/src/engine/core/ui/debug/sections/DebugTeleportSection.ts +++ b/src/engine/core/ui/debug/sections/DebugTeleportSection.ts @@ -5,8 +5,7 @@ import { EGameEvent, EventsManager } from "@/engine/core/managers"; import { SmartTerrain } from "@/engine/core/objects"; import { AbstractDebugSection } from "@/engine/core/ui/debug/sections/AbstractDebugSection"; import { DebugTeleportListEntry } from "@/engine/core/ui/debug/sections/DebugTeleportListEntry"; -import { isGameStarted } from "@/engine/core/utils/check"; -import { executeConsoleCommand } from "@/engine/core/utils/game"; +import { executeConsoleCommand, isGameStarted } from "@/engine/core/utils/game"; import { LuaLogger } from "@/engine/core/utils/logging"; import { getServerObjects, isGameVertexFromLevel } from "@/engine/core/utils/object"; import { resolveXmlFile } from "@/engine/core/utils/ui"; diff --git a/src/engine/core/ui/debug/sections/DebugWeatherSection.ts b/src/engine/core/ui/debug/sections/DebugWeatherSection.ts index 9ff33c698..11df49eac 100644 --- a/src/engine/core/ui/debug/sections/DebugWeatherSection.ts +++ b/src/engine/core/ui/debug/sections/DebugWeatherSection.ts @@ -2,7 +2,7 @@ import { CUI3tButton, CUIComboBox, CUIStatic, LuabindClass, ui_events } from "xr import { IWeatherState, WeatherManager } from "@/engine/core/managers/world/WeatherManager"; import { AbstractDebugSection } from "@/engine/core/ui/debug/sections/AbstractDebugSection"; -import { isGameStarted } from "@/engine/core/utils/check"; +import { isGameStarted } from "@/engine/core/utils/game"; import { LuaLogger } from "@/engine/core/utils/logging"; import { resolveXmlFile } from "@/engine/core/utils/ui"; import { NIL } from "@/engine/lib/constants/words"; diff --git a/src/engine/core/utils/check/check.ts b/src/engine/core/utils/check/check.ts deleted file mode 100644 index f7b82b68b..000000000 --- a/src/engine/core/utils/check/check.ts +++ /dev/null @@ -1,105 +0,0 @@ -import { alife, device, game_graph } from "xray16"; - -import { getObjectIdByStoryId, getServerObjectByStoryId, registry } from "@/engine/core/database"; -import type { Squad } from "@/engine/core/objects/server/squad/Squad"; -import { isStalker } from "@/engine/core/utils/check/is"; -import { surgeConfig } from "@/engine/lib/configs/SurgeConfig"; -import { lootableTableExclude, TLootableExcludeItem } from "@/engine/lib/constants/items/lootable_table"; -import { TLevel } from "@/engine/lib/constants/levels"; -import { AlifeSimulator, ClientObject, Optional, ServerHumanObject, TNumberId, TStringId } from "@/engine/lib/types"; - -/** - * Check whether story object exists. - * - * @param storyId - story ID to check existing - * @returns whether story object exists - */ -export function isStoryObjectExisting(storyId: TStringId): boolean { - return getServerObjectByStoryId(storyId) !== null; -} - -/** - * Is provided target stalker and alive. - * - * @param targetObject - client/server object or story ID to check - * @returns whether target stalker object is alive - */ -export function isStalkerAlive(targetObject: ClientObject | ServerHumanObject | TStringId): boolean { - let targetId: Optional = null; - - if (type(targetObject) === "string") { - targetId = getObjectIdByStoryId(targetObject as TStringId); - } else if (type((targetObject as ServerHumanObject).id) === "number") { - targetId = (targetObject as ServerHumanObject).id; - } else { - targetId = (targetObject as ClientObject).id(); - } - - if (targetId === null) { - return false; - } else { - const object: Optional = alife().object(targetId); - - return object !== null && isStalker(object) && object.alive(); - } -} - -/** - * @returns whether provided community squad is immune to surge. - */ -export function isImmuneToSurge(object: Squad): boolean { - return surgeConfig.IMMUNE_SQUDS[object.faction] === true; -} - -/** - * @returns whether surge can be started on provided level. - */ -export function isSurgeEnabledOnLevel(levelName: TLevel): boolean { - return surgeConfig.SURGE_DISABLED_LEVELS[levelName] !== true; -} - -/** - * @returns whether object is excluded from loot drop. - */ -export function isExcludedFromLootDropItem(object: ClientObject): boolean { - return lootableTableExclude[object.section()] !== null; -} - -/** - * @returns whether current game level is changing. - */ -export function isLevelChanging(): boolean { - const simulator: Optional = alife(); - - return simulator === null - ? false - : game_graph().vertex(simulator.actor().m_game_vertex_id).level_id() !== simulator.level_id(); -} - -/** - * @returns whether actor is alive. - */ -export function isActorAlive(): boolean { - return registry.actor?.alive() === true; -} - -/** - * @returns whether actor see the object. - */ -export function isSeenByActor(object: ClientObject): boolean { - return registry.actor.see(object); -} - -/** - * @returns whether currently black screen is visible and rendering is paused. - */ -export function isBlackScreen(): boolean { - return device().precache_frame > 1; -} - -/** - * @returns whether currently sound is playing. - */ -export function isPlayingSound(object: ClientObject): boolean { - return registry.sounds.generic.has(object.id()); -} diff --git a/src/engine/core/utils/check/index.ts b/src/engine/core/utils/check/index.ts deleted file mode 100644 index c5148aa40..000000000 --- a/src/engine/core/utils/check/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "@/engine/core/utils/check/is"; -export * from "@/engine/core/utils/check/check"; diff --git a/src/engine/core/utils/check/is.ts b/src/engine/core/utils/check/is.ts deleted file mode 100644 index 4b7dd9e78..000000000 --- a/src/engine/core/utils/check/is.ts +++ /dev/null @@ -1,167 +0,0 @@ -import { alife, clsid, IsGameTypeSingle, system_ini } from "xray16"; - -import { getStoryIdByObjectId, registry } from "@/engine/core/database"; -import { assertDefined } from "@/engine/core/utils/assertion"; -import { squadMonsters } from "@/engine/lib/constants/behaviours"; -import { artefactClassIds, monsterClassIds, stalkerClassIds, weaponClassIds } from "@/engine/lib/constants/class_ids"; -import { TCommunity } from "@/engine/lib/constants/communities"; -import { ammo, TAmmoItem } from "@/engine/lib/constants/items/ammo"; -import { lootableTable, TLootableItem } from "@/engine/lib/constants/items/lootable_table"; -import { levels, TLevel } from "@/engine/lib/constants/levels"; -import { - AnyGameObject, - ClientObject, - Maybe, - Optional, - ServerArtefactItemObject, - ServerHumanObject, - ServerMonsterAbstractObject, - ServerObject, - TClassId, - TNumberId, - TSection, -} from "@/engine/lib/types"; - -/** - * Check whether game started. - * - * @returns whether game is started and simulator is initialized - */ -export function isGameStarted(): boolean { - return alife() !== null; -} - -/** - * todo - */ -export function isSinglePlayerGame(): boolean { - if (alife === null || alife() !== null) { - return true; - } else if (IsGameTypeSingle === null || IsGameTypeSingle()) { - return true; - } - - return false; -} - -/** - * Check whether object is injured. - * - * @param object - target client object to check - * @returns whether object is injured/bleeding/contaminated - */ -export function isObjectInjured(object: ClientObject): boolean { - return object.health < 1 || object.radiation > 0 || object.bleeding > 0; -} - -/** - * todo; - */ -export function isMonster(object: AnyGameObject): object is ServerMonsterAbstractObject { - return monsterClassIds[object.clsid()] === true; -} - -/** - * todo; - */ -export function isSquadMonsterCommunity(community: TCommunity): boolean { - return squadMonsters[community] === true; -} - -/** - * todo; - */ -export function isStalker(object: AnyGameObject): object is ServerHumanObject { - return stalkerClassIds[object.clsid()] === true; -} - -/** - * todo; - */ -export function isStalkerClassId(classId: TNumberId): boolean { - return classId === clsid.stalker || classId === clsid.script_stalker; -} - -/** - * todo; - */ -export function isWeapon(object: Optional): boolean { - if (object === null) { - return false; - } - - return weaponClassIds[object.clsid()] === true; -} - -/** - * todo; - */ -export function isGrenade(object: Optional): boolean { - if (object === null) { - return false; - } - - const id: TClassId = object.clsid(); - - return id === clsid.wpn_grenade_rgd5_s || id === clsid.wpn_grenade_f1_s; -} - -/** - * Is provided object artefact. - */ -export function isArtefact(object: AnyGameObject): object is ServerArtefactItemObject { - return artefactClassIds[object.clsid()] === true; -} - -/** - * todo; - */ -export function isStrappableWeapon(object: Optional): object is ClientObject { - return object === null ? false : system_ini().line_exist(object.section(), "strap_bone0"); -} - -/** - * @returns whether level is fully indoor. - */ -export function isUndergroundLevel(level: TLevel): boolean { - return level === levels.jupiter_underground || level === levels.labx8; -} - -/** - * @returns whether provided object has linked story id. - */ -export function isStoryObject(object: ServerObject): boolean { - return getStoryIdByObjectId(object.id) !== null; -} - -/** - * @returns whether object can be looted by stalkers from corpses. - */ -export function isLootableItem(object: ClientObject): boolean { - return object.section() in lootableTable; -} - -/** - * @returns whether object is ammo-defined section item. - */ -export function isAmmoItem(object: ClientObject): boolean { - return object.section() in ammo; -} - -/** - * @returns whether section is ammo-defined. - */ -export function isAmmoSection(section: TSection): section is TAmmoItem { - return section in ammo; -} - -/** - * @param object - object to check - * @param section - logic section to check - * @returns whether object logics active section is same as provided - */ -export function isActiveSection(object: ClientObject, section: Maybe): boolean { - assertDefined(section, "'isActiveSection' error for '%s', no section defined: '%s'.", object.name(), section); - - return section === registry.objects.get(object.id()).activeSection; -} diff --git a/src/engine/core/utils/game/game_check.test.ts b/src/engine/core/utils/game/game_check.test.ts new file mode 100644 index 000000000..882a6b998 --- /dev/null +++ b/src/engine/core/utils/game/game_check.test.ts @@ -0,0 +1,16 @@ +import { describe, expect, it } from "@jest/globals"; +import { alife } from "xray16"; + +import { isGameStarted } from "@/engine/core/utils/game/game_check"; +import { replaceFunctionMock } from "@/fixtures/utils"; +import { mockAlifeSimulator } from "@/fixtures/xray"; + +describe("game_check utils", () => { + it("'isGameStarted' should check alife", () => { + replaceFunctionMock(alife, () => null); + expect(isGameStarted()).toBe(false); + + replaceFunctionMock(alife, mockAlifeSimulator); + expect(isGameStarted()).toBe(true); + }); +}); diff --git a/src/engine/core/utils/game/game_check.ts b/src/engine/core/utils/game/game_check.ts new file mode 100644 index 000000000..2ebe510b4 --- /dev/null +++ b/src/engine/core/utils/game/game_check.ts @@ -0,0 +1,43 @@ +import { alife, device, game_graph, IsGameTypeSingle } from "xray16"; + +import { AlifeSimulator, Optional } from "@/engine/lib/types"; + +/** + * Check whether game started. + * + * @returns whether game is started and simulator is initialized + */ +export function isGameStarted(): boolean { + return alife() !== null; +} + +/** + * todo + */ +export function isSinglePlayerGame(): boolean { + if (alife === null || alife() !== null) { + return true; + } else if (IsGameTypeSingle === null || IsGameTypeSingle()) { + return true; + } + + return false; +} + +/** + * @returns whether currently black screen is visible and rendering is paused. + */ +export function isBlackScreen(): boolean { + return device().precache_frame > 1; +} + +/** + * @returns whether current game level is changing. + */ +export function isGameLevelChanging(): boolean { + const simulator: Optional = alife(); + + return simulator === null + ? false + : game_graph().vertex(simulator.actor().m_game_vertex_id).level_id() !== simulator.level_id(); +} diff --git a/src/engine/core/utils/game/index.ts b/src/engine/core/utils/game/index.ts index 1f59c26af..8db357851 100644 --- a/src/engine/core/utils/game/index.ts +++ b/src/engine/core/utils/game/index.ts @@ -1,3 +1,4 @@ export * from "@/engine/core/utils/game/game_console"; export * from "@/engine/core/utils/game/game_save"; export * from "@/engine/core/utils/game/game_time"; +export * from "@/engine/core/utils/game/game_check"; diff --git a/src/engine/core/utils/ini/index.ts b/src/engine/core/utils/ini/index.ts index a58b874e4..8d8dedf16 100644 --- a/src/engine/core/utils/ini/index.ts +++ b/src/engine/core/utils/ini/index.ts @@ -2,3 +2,4 @@ export * from "@/engine/core/utils/ini/ini_config"; export * from "@/engine/core/utils/ini/ini_parse"; export * from "@/engine/core/utils/ini/ini_read"; export * from "@/engine/core/utils/ini/ini_types"; +export * from "@/engine/core/utils/ini/ini_sections"; diff --git a/src/engine/core/utils/sections.ts b/src/engine/core/utils/ini/ini_sections.ts similarity index 100% rename from src/engine/core/utils/sections.ts rename to src/engine/core/utils/ini/ini_sections.ts diff --git a/src/engine/core/utils/object/index.ts b/src/engine/core/utils/object/index.ts index 17cae2c38..246cff638 100644 --- a/src/engine/core/utils/object/index.ts +++ b/src/engine/core/utils/object/index.ts @@ -1,3 +1,4 @@ +export * from "@/engine/core/utils/object/object_alife"; export * from "@/engine/core/utils/object/object_action"; export * from "@/engine/core/utils/object/object_anomaly"; export * from "@/engine/core/utils/object/object_check"; @@ -10,3 +11,4 @@ export * from "@/engine/core/utils/object/object_state"; export * from "@/engine/core/utils/object/object_info_portion"; export * from "@/engine/core/utils/object/object_spawn"; export * from "@/engine/core/utils/object/object_find"; +export * from "@/engine/core/utils/object/object_task_reward"; diff --git a/src/engine/core/utils/alife.test.ts b/src/engine/core/utils/object/object_alife.test.ts similarity index 86% rename from src/engine/core/utils/alife.test.ts rename to src/engine/core/utils/object/object_alife.test.ts index b547adc5d..dbafcb173 100644 --- a/src/engine/core/utils/alife.test.ts +++ b/src/engine/core/utils/object/object_alife.test.ts @@ -1,8 +1,10 @@ import { describe, expect, it } from "@jest/globals"; -import { evaluateSimulationPriority, evaluateSimulationPriorityByDistance } from "@/engine/core/utils/alife"; +import { + evaluateSimulationPriority, + evaluateSimulationPriorityByDistance, +} from "@/engine/core/utils/object/object_alife"; import { mockLuaTable } from "@/fixtures/lua/mocks/LuaTable.mock"; -import { MockCVertex } from "@/fixtures/xray/mocks/CVertex.mock"; import { mockServerAlifeObject } from "@/fixtures/xray/mocks/objects/server/cse_alife_object.mock"; import { mockSquad } from "@/fixtures/xray/mocks/objects/server/Squad.mock"; import { MockVector } from "@/fixtures/xray/mocks/vector.mock"; @@ -21,7 +23,6 @@ describe("'alife' utils", () => { it("'evaluateSimulationPriority' utils should correctly evaluate priority", () => { MockVector.DEFAULT_DISTANCE = 20; - MockCVertex.DEFAULT_LEVEL_ID = 5; expect(evaluateSimulationPriority(mockSquad(), mockSquad())).toBe(13.65); diff --git a/src/engine/core/utils/alife.ts b/src/engine/core/utils/object/object_alife.ts similarity index 100% rename from src/engine/core/utils/alife.ts rename to src/engine/core/utils/object/object_alife.ts diff --git a/src/engine/core/utils/check/is.test.ts b/src/engine/core/utils/object/object_check.test.ts similarity index 81% rename from src/engine/core/utils/check/is.test.ts rename to src/engine/core/utils/object/object_check.test.ts index 5590dc817..0c5a566b9 100644 --- a/src/engine/core/utils/check/is.test.ts +++ b/src/engine/core/utils/object/object_check.test.ts @@ -1,20 +1,11 @@ import { describe, expect, it } from "@jest/globals"; -import { alife, TXR_class_id } from "xray16"; +import { TXR_class_id } from "xray16"; -import { isGameStarted, isObjectInjured, isWeapon } from "@/engine/core/utils/check/is"; +import { isObjectInjured, isWeapon } from "@/engine/core/utils/object/object_check"; import { classIds } from "@/engine/lib/constants/class_ids"; -import { replaceFunctionMock } from "@/fixtures/utils"; -import { mockAlifeSimulator, mockClientGameObject } from "@/fixtures/xray"; - -describe("'is' utils", () => { - it("'isGameStarted' should check alife", () => { - replaceFunctionMock(alife, () => null); - expect(isGameStarted()).toBe(false); - - replaceFunctionMock(alife, mockAlifeSimulator); - expect(isGameStarted()).toBe(true); - }); +import { mockClientGameObject } from "@/fixtures/xray"; +describe("'alife' utils", () => { it("'isObjectInjured' should correctly check objects", () => { expect(isObjectInjured(mockClientGameObject())).toBe(false); expect(isObjectInjured(mockClientGameObject({ radiation: -1, health: 100, bleeding: -1 }))).toBe(false); diff --git a/src/engine/core/utils/object/object_check.ts b/src/engine/core/utils/object/object_check.ts index 387f731be..9e0c23731 100644 --- a/src/engine/core/utils/object/object_check.ts +++ b/src/engine/core/utils/object/object_check.ts @@ -1,25 +1,43 @@ -import { level, stalker_ids } from "xray16"; +import { alife, clsid, level, stalker_ids, system_ini } from "xray16"; -import { IRegistryObjectState, registry } from "@/engine/core/database"; +import { + getObjectIdByStoryId, + getServerObjectByStoryId, + getStoryIdByObjectId, + IRegistryObjectState, + registry, +} from "@/engine/core/database"; +import { Squad } from "@/engine/core/objects"; +import { assertDefined } from "@/engine/core/utils/assertion"; import { parseConditionsList, pickSectionFromCondList, readIniString } from "@/engine/core/utils/ini"; +import { surgeConfig } from "@/engine/lib/configs/SurgeConfig"; +import { squadMonsters } from "@/engine/lib/constants/behaviours"; +import { artefactClassIds, monsterClassIds, stalkerClassIds, weaponClassIds } from "@/engine/lib/constants/class_ids"; +import { TCommunity } from "@/engine/lib/constants/communities"; +import { ammo, TAmmoItem } from "@/engine/lib/constants/items/ammo"; +import { + lootableTable, + lootableTableExclude, + TLootableExcludeItem, + TLootableItem, +} from "@/engine/lib/constants/items/lootable_table"; +import { levels, TLevel } from "@/engine/lib/constants/levels"; import { TRUE } from "@/engine/lib/constants/words"; -import { ActionPlanner, ClientObject, Optional, TNumberId } from "@/engine/lib/types"; - -/** - * Check whether provided object ID is online. - * - * @param objectId - object identifier - */ -export function isObjectOnline(objectId: TNumberId): boolean { - return level.object_by_id(objectId) !== null; -} - -/** - * todo: description - */ -export function isActorSeenByObject(object: ClientObject): boolean { - return object.alive() && object.see(registry.actor); -} +import { + ActionPlanner, + AnyGameObject, + ClientObject, + Maybe, + Optional, + ServerArtefactItemObject, + ServerHumanObject, + ServerMonsterAbstractObject, + ServerObject, + TClassId, + TNumberId, + TSection, + TStringId, +} from "@/engine/lib/types"; /** * todo; @@ -58,3 +76,212 @@ export function isObjectInCombat(object: ClientObject): boolean { currentActionId === stalker_ids.action_combat_planner || currentActionId === stalker_ids.action_post_combat_wait ); } + +/** + * Is provided target stalker and alive. + * + * @param targetObject - client/server object or story ID to check + * @returns whether target stalker object is alive + */ +export function isStalkerAlive(targetObject: ClientObject | ServerHumanObject | TStringId): boolean { + let targetId: Optional = null; + + if (type(targetObject) === "string") { + targetId = getObjectIdByStoryId(targetObject as TStringId); + } else if (type((targetObject as ServerHumanObject).id) === "number") { + targetId = (targetObject as ServerHumanObject).id; + } else { + targetId = (targetObject as ClientObject).id(); + } + + if (targetId === null) { + return false; + } else { + const object: Optional = alife().object(targetId); + + return object !== null && isStalker(object) && object.alive(); + } +} + +/** + * Check whether provided object ID is online. + * + * @param objectId - object identifier + */ +export function isObjectOnline(objectId: TNumberId): boolean { + return level.object_by_id(objectId) !== null; +} + +/** + * todo: description + */ +export function isActorSeenByObject(object: ClientObject): boolean { + return object.alive() && object.see(registry.actor); +} + +/** + * todo: description + */ +export function isObjectSeenByActor(object: ClientObject): boolean { + return registry.actor.alive() && registry.actor.see(object); +} + +/** + * Check whether object is injured. + * + * @param object - target client object to check + * @returns whether object is injured/bleeding/contaminated + */ +export function isObjectInjured(object: ClientObject): boolean { + return object.health < 1 || object.radiation > 0 || object.bleeding > 0; +} + +/** + * todo; + */ +export function isMonster(object: AnyGameObject): object is ServerMonsterAbstractObject { + return monsterClassIds[object.clsid()] === true; +} + +/** + * todo; + */ +export function isSquadMonsterCommunity(community: TCommunity): boolean { + return squadMonsters[community] === true; +} + +/** + * todo; + */ +export function isStalker(object: AnyGameObject): object is ServerHumanObject { + return stalkerClassIds[object.clsid()] === true; +} + +/** + * todo; + */ +export function isStalkerClassId(classId: TNumberId): boolean { + return classId === clsid.stalker || classId === clsid.script_stalker; +} + +/** + * todo; + */ +export function isWeapon(object: Optional): boolean { + if (object === null) { + return false; + } + + return weaponClassIds[object.clsid()] === true; +} + +/** + * todo; + */ +export function isGrenade(object: Optional): boolean { + if (object === null) { + return false; + } + + const id: TClassId = object.clsid(); + + return id === clsid.wpn_grenade_rgd5_s || id === clsid.wpn_grenade_f1_s; +} + +/** + * Is provided object artefact. + */ +export function isArtefact(object: AnyGameObject): object is ServerArtefactItemObject { + return artefactClassIds[object.clsid()] === true; +} + +/** + * todo; + */ +export function isStrappableWeapon(object: Optional): object is ClientObject { + return object === null ? false : system_ini().line_exist(object.section(), "strap_bone0"); +} + +/** + * @returns whether level is fully indoor. + */ +export function isUndergroundLevel(level: TLevel): boolean { + return level === levels.jupiter_underground || level === levels.labx8; +} + +/** + * @returns whether provided object has linked story id. + */ +export function isStoryObject(object: ServerObject): boolean { + return getStoryIdByObjectId(object.id) !== null; +} + +/** + * @returns whether object can be looted by stalkers from corpses. + */ +export function isLootableItem(object: ClientObject): boolean { + return object.section() in lootableTable; +} + +/** + * @returns whether object is ammo-defined section item. + */ +export function isAmmoItem(object: ClientObject): boolean { + return object.section() in ammo; +} + +/** + * @returns whether section is ammo-defined. + */ +export function isAmmoSection(section: TSection): section is TAmmoItem { + return section in ammo; +} + +/** + * Check whether story object exists. + * + * @param storyId - story ID to check existing + * @returns whether story object exists + */ +export function isStoryObjectExisting(storyId: TStringId): boolean { + return getServerObjectByStoryId(storyId) !== null; +} + +/** + * @returns whether provided community squad is immune to surge. + */ +export function isImmuneToSurge(object: Squad): boolean { + return surgeConfig.IMMUNE_SQUDS[object.faction] === true; +} + +/** + * @returns whether surge can be started on provided level. + */ +export function isSurgeEnabledOnLevel(levelName: TLevel): boolean { + return surgeConfig.SURGE_DISABLED_LEVELS[levelName] !== true; +} + +/** + * @returns whether object is excluded from loot drop. + */ +export function isExcludedFromLootDropItem(object: ClientObject): boolean { + return lootableTableExclude[object.section()] !== null; +} + +/** + * @returns whether currently sound is playing. + */ +export function isPlayingSound(object: ClientObject): boolean { + return registry.sounds.generic.has(object.id()); +} + +/** + * @param object - object to check + * @param section - logic section to check + * @returns whether object logics active section is same as provided + */ +export function isActiveSection(object: ClientObject, section: Maybe): boolean { + assertDefined(section, "'isActiveSection' error for '%s', no section defined: '%s'.", object.name(), section); + + return section === registry.objects.get(object.id()).activeSection; +} diff --git a/src/engine/core/utils/object/object_get.ts b/src/engine/core/utils/object/object_get.ts index 167a0a097..94b11b59b 100644 --- a/src/engine/core/utils/object/object_get.ts +++ b/src/engine/core/utils/object/object_get.ts @@ -2,7 +2,7 @@ import { alife } from "xray16"; import { SmartTerrain, Squad } from "@/engine/core/objects"; import { assertDefined } from "@/engine/core/utils/assertion"; -import { isStalker } from "@/engine/core/utils/check"; +import { isStalker } from "@/engine/core/utils/object/object_check"; import { communities, TCommunity } from "@/engine/lib/constants/communities"; import { MAX_U16 } from "@/engine/lib/constants/memory"; import { diff --git a/src/engine/core/utils/object/object_spawn.ts b/src/engine/core/utils/object/object_spawn.ts index a2be0b083..2ce5da65a 100644 --- a/src/engine/core/utils/object/object_spawn.ts +++ b/src/engine/core/utils/object/object_spawn.ts @@ -4,8 +4,8 @@ import { registry, SYSTEM_INI } from "@/engine/core/database"; import { SimulationBoardManager } from "@/engine/core/managers/interaction/SimulationBoardManager"; import { SmartTerrain, Squad } from "@/engine/core/objects"; import { assertDefined } from "@/engine/core/utils/assertion"; -import { isAmmoSection, isStalker } from "@/engine/core/utils/check/is"; import { LuaLogger } from "@/engine/core/utils/logging"; +import { isAmmoSection, isStalker } from "@/engine/core/utils/object/object_check"; import { getObjectPositioning } from "@/engine/core/utils/object/object_get"; import { createEmptyVector } from "@/engine/core/utils/vector"; import { TCaption } from "@/engine/lib/constants/captions"; diff --git a/src/engine/core/utils/task_reward.test.ts b/src/engine/core/utils/object/object_task_reward.test.ts similarity index 99% rename from src/engine/core/utils/task_reward.test.ts rename to src/engine/core/utils/object/object_task_reward.test.ts index 802f2784d..10f23d49f 100644 --- a/src/engine/core/utils/task_reward.test.ts +++ b/src/engine/core/utils/object/object_task_reward.test.ts @@ -1,5 +1,4 @@ import { afterEach, beforeEach, describe, expect, it, jest } from "@jest/globals"; -import { alife } from "xray16"; import { disposeManager, registerActor, registry } from "@/engine/core/database"; import { EGameEvent, EventsManager } from "@/engine/core/managers"; @@ -24,13 +23,14 @@ import { transferItemsFromActor, transferItemsToActor, transferMoneyFromActor, -} from "@/engine/core/utils/task_reward"; +} from "@/engine/core/utils/object/object_task_reward"; import { ammo } from "@/engine/lib/constants/items/ammo"; import { medkits } from "@/engine/lib/constants/items/drugs"; import { weapons } from "@/engine/lib/constants/items/weapons"; import { AnyObject, ClientObject, TSection } from "@/engine/lib/types"; import { MockLuaTable } from "@/fixtures/lua/mocks/LuaTable.mock"; import { MockAlifeSimulator, mockClientGameObject, mockServerAlifeItem, mockServerAlifeObject } from "@/fixtures/xray"; +import { alife } from "@/typedefs/xray16"; describe("'task_reward' utils", () => { const createObjectWithItems = () => diff --git a/src/engine/core/utils/task_reward.ts b/src/engine/core/utils/object/object_task_reward.ts similarity index 100% rename from src/engine/core/utils/task_reward.ts rename to src/engine/core/utils/object/object_task_reward.ts diff --git a/src/engine/scripts/bind.ts b/src/engine/scripts/bind.ts index a0c56015d..8d0953511 100644 --- a/src/engine/scripts/bind.ts +++ b/src/engine/scripts/bind.ts @@ -23,7 +23,7 @@ import { } from "@/engine/core/objects/binders"; import { abort } from "@/engine/core/utils/assertion"; import { extern } from "@/engine/core/utils/binding"; -import { isGameStarted } from "@/engine/core/utils/check"; +import { isGameStarted } from "@/engine/core/utils/game"; import { LuaLogger } from "@/engine/core/utils/logging"; import { ClientObject, IniFile, Optional } from "@/engine/lib/types"; diff --git a/src/engine/scripts/declarations/conditions/actor.ts b/src/engine/scripts/declarations/conditions/actor.ts index 979feb6c2..9d1dab4f2 100644 --- a/src/engine/scripts/declarations/conditions/actor.ts +++ b/src/engine/scripts/declarations/conditions/actor.ts @@ -7,10 +7,8 @@ import { ISchemeDeathState } from "@/engine/core/schemes/death"; import { ISchemeHitState } from "@/engine/core/schemes/hit"; import { abort, assertDefined } from "@/engine/core/utils/assertion"; import { extern } from "@/engine/core/utils/binding"; -import { isActorAlive } from "@/engine/core/utils/check/check"; -import { isWeapon } from "@/engine/core/utils/check/is"; import { LuaLogger } from "@/engine/core/utils/logging"; -import { isObjectInZone } from "@/engine/core/utils/object/object_location"; +import { isObjectInZone, isWeapon } from "@/engine/core/utils/object"; import { npcInActorFrustum } from "@/engine/core/utils/vector"; import { ACTOR_ID } from "@/engine/lib/constants/ids"; import { AnyArgs, ClientObject, EScheme, LuaArray, Optional, TCount, TDistance, TSection } from "@/engine/lib/types"; @@ -50,7 +48,7 @@ extern("xr_conditions.is_enemy_actor", (object: ClientObject): boolean => { * todo; */ extern("xr_conditions.actor_alive", (): boolean => { - return isActorAlive(); + return registry.actor.alive(); }); /** diff --git a/src/engine/scripts/declarations/conditions/game.ts b/src/engine/scripts/declarations/conditions/game.ts index a7db14db4..838950e83 100644 --- a/src/engine/scripts/declarations/conditions/game.ts +++ b/src/engine/scripts/declarations/conditions/game.ts @@ -2,7 +2,7 @@ import { game } from "xray16"; import { getPortableStoreValue, IRegistryObjectState, registry } from "@/engine/core/database"; import { extern } from "@/engine/core/utils/binding"; -import { isBlackScreen } from "@/engine/core/utils/check/check"; +import { isBlackScreen } from "@/engine/core/utils/game"; import { LuaLogger } from "@/engine/core/utils/logging"; import { ClientObject, Optional, TName } from "@/engine/lib/types"; diff --git a/src/engine/scripts/declarations/conditions/object.ts b/src/engine/scripts/declarations/conditions/object.ts index 63b265b12..86f8cb141 100644 --- a/src/engine/scripts/declarations/conditions/object.ts +++ b/src/engine/scripts/declarations/conditions/object.ts @@ -18,16 +18,20 @@ import { ISchemeHitState } from "@/engine/core/schemes/hit"; import { SchemeDeimos } from "@/engine/core/schemes/sr_deimos"; import { abort } from "@/engine/core/utils/assertion"; import { extern } from "@/engine/core/utils/binding"; -import { isPlayingSound, isStoryObjectExisting } from "@/engine/core/utils/check/check"; -import { isMonster, isStalker } from "@/engine/core/utils/check/is"; import { LuaLogger } from "@/engine/core/utils/logging"; -import { getObjectSmartTerrain, getObjectSquad, isObjectWounded } from "@/engine/core/utils/object"; -import { hasAlifeInfo } from "@/engine/core/utils/object/object_info_portion"; import { + getObjectSmartTerrain, + getObjectSquad, + hasAlifeInfo, isDistanceBetweenObjectsGreaterOrEqual, isDistanceBetweenObjectsLessOrEqual, + isMonster, isObjectInZone, -} from "@/engine/core/utils/object/object_location"; + isObjectWounded, + isPlayingSound, + isStalker, + isStoryObjectExisting, +} from "@/engine/core/utils/object"; import { captions, TCaption } from "@/engine/lib/constants/captions"; import { infoPortions } from "@/engine/lib/constants/info_portions"; import { FALSE } from "@/engine/lib/constants/words"; diff --git a/src/engine/scripts/declarations/dialogs/dialog_manager.ts b/src/engine/scripts/declarations/dialogs/dialog_manager.ts index 546566624..e28d49ba8 100644 --- a/src/engine/scripts/declarations/dialogs/dialog_manager.ts +++ b/src/engine/scripts/declarations/dialogs/dialog_manager.ts @@ -11,7 +11,7 @@ import { SmartTerrain } from "@/engine/core/objects"; import { extern } from "@/engine/core/utils/binding"; import { LuaLogger } from "@/engine/core/utils/logging"; import { getCharacterCommunity, getObjectSmartTerrain } from "@/engine/core/utils/object"; -import { getNpcSpeaker } from "@/engine/core/utils/task_reward"; +import { getNpcSpeaker } from "@/engine/core/utils/object/object_task_reward"; import { captions } from "@/engine/lib/constants/captions/captions"; import { communities, TCommunity } from "@/engine/lib/constants/communities"; import { TRUE } from "@/engine/lib/constants/words"; diff --git a/src/engine/scripts/declarations/dialogs/dialogs.ts b/src/engine/scripts/declarations/dialogs/dialogs.ts index dbf3e6fb9..71fe8ca35 100644 --- a/src/engine/scripts/declarations/dialogs/dialogs.ts +++ b/src/engine/scripts/declarations/dialogs/dialogs.ts @@ -11,21 +11,24 @@ import { SchemeMeet } from "@/engine/core/schemes/meet/SchemeMeet"; import { ISchemeWoundedState } from "@/engine/core/schemes/wounded"; import { SchemeWounded } from "@/engine/core/schemes/wounded/SchemeWounded"; import { extern } from "@/engine/core/utils/binding"; -import { isObjectInjured } from "@/engine/core/utils/check"; -import { isStalkerAlive } from "@/engine/core/utils/check/check"; -import { createAutoSave } from "@/engine/core/utils/game/game_save"; +import { createAutoSave } from "@/engine/core/utils/game"; import { LuaLogger } from "@/engine/core/utils/logging"; -import { getCharacterCommunity, isObjectInSmartTerrain, isObjectWounded } from "@/engine/core/utils/object"; -import { giveInfo, hasAlifeInfo } from "@/engine/core/utils/object/object_info_portion"; import { actorHasMedKit, getActorAvailableMedKit, + getCharacterCommunity, getNpcSpeaker, + giveInfo, + hasAlifeInfo, + isObjectInjured, + isObjectInSmartTerrain, + isObjectWounded, + isStalkerAlive, transferItemsFromActor, -} from "@/engine/core/utils/task_reward"; +} from "@/engine/core/utils/object"; import { captions } from "@/engine/lib/constants/captions/captions"; import { communities } from "@/engine/lib/constants/communities"; -import { infoPortions } from "@/engine/lib/constants/info_portions/info_portions"; +import { infoPortions } from "@/engine/lib/constants/info_portions"; import { drugs, TMedkit } from "@/engine/lib/constants/items/drugs"; import { pistols, TPistol } from "@/engine/lib/constants/items/weapons"; import { levels } from "@/engine/lib/constants/levels"; diff --git a/src/engine/scripts/declarations/dialogs/dialogs_jupiter.ts b/src/engine/scripts/declarations/dialogs/dialogs_jupiter.ts index 21b296658..c0f3b468c 100644 --- a/src/engine/scripts/declarations/dialogs/dialogs_jupiter.ts +++ b/src/engine/scripts/declarations/dialogs/dialogs_jupiter.ts @@ -9,7 +9,6 @@ import { AnomalyZoneBinder } from "@/engine/core/objects/binders/zones/AnomalyZo import { extern, getExtern } from "@/engine/core/utils/binding"; import { LuaLogger } from "@/engine/core/utils/logging"; import { disableInfo, giveInfo, hasAlifeInfo } from "@/engine/core/utils/object/object_info_portion"; -import { getObjectsRelationSafe, isActorEnemyWithFaction } from "@/engine/core/utils/relation"; import { getNpcSpeaker, giveItemsToActor, @@ -18,7 +17,8 @@ import { transferItemsFromActor, transferItemsToActor, transferMoneyFromActor, -} from "@/engine/core/utils/task_reward"; +} from "@/engine/core/utils/object/object_task_reward"; +import { getObjectsRelationSafe, isActorEnemyWithFaction } from "@/engine/core/utils/relation"; import { communities } from "@/engine/lib/constants/communities"; import { infoPortions, TInfoPortion } from "@/engine/lib/constants/info_portions/info_portions"; import { ammo } from "@/engine/lib/constants/items/ammo"; diff --git a/src/engine/scripts/declarations/dialogs/dialogs_pripyat.ts b/src/engine/scripts/declarations/dialogs/dialogs_pripyat.ts index 64d93c301..1978aefe1 100644 --- a/src/engine/scripts/declarations/dialogs/dialogs_pripyat.ts +++ b/src/engine/scripts/declarations/dialogs/dialogs_pripyat.ts @@ -8,7 +8,7 @@ import { transferItemsFromActor, transferItemsToActor, transferMoneyFromActor, -} from "@/engine/core/utils/task_reward"; +} from "@/engine/core/utils/object/object_task_reward"; import { infoPortions, TInfoPortion } from "@/engine/lib/constants/info_portions/info_portions"; import { TInventoryItem } from "@/engine/lib/constants/items"; import { ammo, TAmmoItem } from "@/engine/lib/constants/items/ammo"; diff --git a/src/engine/scripts/declarations/dialogs/dialogs_zaton.ts b/src/engine/scripts/declarations/dialogs/dialogs_zaton.ts index f98f74091..cb3d848b3 100644 --- a/src/engine/scripts/declarations/dialogs/dialogs_zaton.ts +++ b/src/engine/scripts/declarations/dialogs/dialogs_zaton.ts @@ -7,23 +7,25 @@ import { getPortableStoreValue, setPortableStoreValue } from "@/engine/core/data import { ENotificationDirection, NotificationManager } from "@/engine/core/managers/interface/notifications"; import { TreasureManager } from "@/engine/core/managers/world/TreasureManager"; import { extern, getExtern } from "@/engine/core/utils/binding"; -import { isStoryObjectExisting } from "@/engine/core/utils/check/check"; import { LuaLogger } from "@/engine/core/utils/logging"; -import { disableInfo, giveInfo, hasAlifeInfo } from "@/engine/core/utils/object/object_info_portion"; import { actorHasAtLeastOneItem, actorHasItem, + disableInfo, getNpcSpeaker, + giveInfo, giveItemsToActor, giveMoneyToActor, + hasAlifeInfo, isObjectName, + isStoryObjectExisting, npcHasItem, transferItemsFromActor, transferItemsToActor, transferMoneyFromActor, -} from "@/engine/core/utils/task_reward"; +} from "@/engine/core/utils/object"; import { captions } from "@/engine/lib/constants/captions/captions"; -import { infoPortions, TInfoPortion } from "@/engine/lib/constants/info_portions/info_portions"; +import { infoPortions, TInfoPortion } from "@/engine/lib/constants/info_portions"; import { TInventoryItem } from "@/engine/lib/constants/items"; import { ammo } from "@/engine/lib/constants/items/ammo"; import { artefacts, TArtefact } from "@/engine/lib/constants/items/artefacts"; diff --git a/src/engine/scripts/declarations/effects/actor.ts b/src/engine/scripts/declarations/effects/actor.ts index b00cea1ae..00f8af8b6 100644 --- a/src/engine/scripts/declarations/effects/actor.ts +++ b/src/engine/scripts/declarations/effects/actor.ts @@ -21,7 +21,7 @@ import { abort, assert, assertDefined } from "@/engine/core/utils/assertion"; import { extern } from "@/engine/core/utils/binding"; import { LuaLogger } from "@/engine/core/utils/logging"; import { isObjectInZone } from "@/engine/core/utils/object"; -import { giveItemsToActor } from "@/engine/core/utils/task_reward"; +import { giveItemsToActor } from "@/engine/core/utils/object/object_task_reward"; import { animations } from "@/engine/lib/constants/animation/animations"; import { detectors, TDetector } from "@/engine/lib/constants/items/detectors"; import { helmets } from "@/engine/lib/constants/items/helmets"; diff --git a/src/engine/scripts/declarations/effects/quests.ts b/src/engine/scripts/declarations/effects/quests.ts index 6dc9b76d7..e0c9bfdf3 100644 --- a/src/engine/scripts/declarations/effects/quests.ts +++ b/src/engine/scripts/declarations/effects/quests.ts @@ -16,7 +16,7 @@ import { createAutoSave } from "@/engine/core/utils/game/game_save"; import { isObjectInZone } from "@/engine/core/utils/object"; import { disableInfo, giveInfo, hasAlifeInfo } from "@/engine/core/utils/object/object_info_portion"; import { spawnObject, spawnObjectInObject, spawnSquadInSmart } from "@/engine/core/utils/object/object_spawn"; -import { giveItemsToActor, takeItemFromActor } from "@/engine/core/utils/task_reward"; +import { giveItemsToActor, takeItemFromActor } from "@/engine/core/utils/object/object_task_reward"; import { copyVector, createEmptyVector, createVector } from "@/engine/core/utils/vector"; import { captions } from "@/engine/lib/constants/captions/captions"; import { infoPortions, TInfoPortion } from "@/engine/lib/constants/info_portions"; diff --git a/src/engine/scripts/declarations/effects/world.ts b/src/engine/scripts/declarations/effects/world.ts index 670d59c7b..5594327f6 100644 --- a/src/engine/scripts/declarations/effects/world.ts +++ b/src/engine/scripts/declarations/effects/world.ts @@ -8,9 +8,8 @@ import { WeatherManager } from "@/engine/core/managers/world/WeatherManager"; import { AnomalyZoneBinder, SmartTerrain } from "@/engine/core/objects"; import { abort } from "@/engine/core/utils/assertion"; import { extern } from "@/engine/core/utils/binding"; -import { isStalker } from "@/engine/core/utils/check/is"; import { LuaLogger } from "@/engine/core/utils/logging"; -import { spawnItemsForObject } from "@/engine/core/utils/object/object_spawn"; +import { isStalker, spawnItemsForObject } from "@/engine/core/utils/object"; import { createVector } from "@/engine/core/utils/vector"; import { TCommunity } from "@/engine/lib/constants/communities"; import { questItems } from "@/engine/lib/constants/items/quest_items";