├── .yarnrc.yml ├── src ├── templates │ ├── plugin.ejs │ ├── config.ejs │ └── configTs.ejs ├── common │ ├── pluginName.d.ts │ ├── mapMetaData.d.ts │ ├── data │ │ ├── hasTraits.js │ │ ├── isActor.js │ │ ├── isClass.js │ │ ├── isEnemy.js │ │ ├── isState.js │ │ ├── isActor.ts │ │ ├── isState.ts │ │ ├── isClass.ts │ │ ├── isEnemy.ts │ │ ├── hasTraits.ts │ │ └── isSameKindItem.ts │ ├── pluginParameters.d.ts │ ├── orderIdSort.d.ts │ ├── pluginParametersOf.js │ ├── pluginParametersOf.d.ts │ ├── scene │ │ ├── battleInputtingWindow.d.ts │ │ ├── battleCancelButtonToEdge.d.ts │ │ ├── battleCancelButtonToEdgeInterface.d.ts │ │ ├── battleInputtingWindowInterface.d.ts │ │ ├── bookLayoutMixIn.d.ts │ │ ├── battleCancelButtonToEdge.js │ │ └── battleInputtingWindow.js │ ├── manager │ │ ├── ColorManagerMixIn.d.ts │ │ ├── DataManagerMixIn.d.ts │ │ ├── ColorManagerMixIn.js │ │ ├── ColorManagerMixIn.ts │ │ └── DataManagerMixIn.ts │ ├── pluginName.js │ ├── targetPluginName.js │ ├── mapMetaData.js │ ├── pluginParameters.js │ ├── window │ │ ├── obtainEscapeParamText.d.ts │ │ ├── labelAndValueTextsWindow.d.ts │ │ ├── withDetailWindow.d.ts │ │ ├── obtainEscapeParamText.ts │ │ ├── detailWindow.d.ts │ │ └── labelAndValueTextsWindow.ts │ ├── object │ │ ├── labelAndValueText.d.ts │ │ ├── paramSymbol.ts │ │ ├── sparamSymbol.ts │ │ ├── xparamSymbol.ts │ │ ├── itemEffect.d.ts │ │ ├── labelAndValueText.js │ │ └── itemEffect.js │ ├── testPluginParameters.js │ ├── orderIdSort.js │ ├── sprite │ │ └── toggleButton.d.ts │ ├── zipArray.ts │ ├── kindFromData.js │ └── registerTestCase.js ├── codes │ ├── CGGallery │ │ └── CGGallery.d.ts │ ├── AlwaysActive │ │ ├── AlwaysActive.d.ts │ │ ├── DarkPlasma_AlwaysActive.ts │ │ └── config.yml │ ├── BuffRate │ │ ├── BuffRate.d.ts │ │ └── DarkPlasma_BuffRate.ts │ ├── RandomGainItem │ │ └── RandomGainItem.d.ts │ ├── MaxSavefiles │ │ ├── plugin │ │ │ ├── MaxSavefiles.d.ts │ │ │ └── DarkPlasma_MaxSavefiles.ts │ │ └── config │ │ │ └── config.ts │ ├── MultiElementRate │ │ ├── MultiElementRate.d.ts │ │ ├── DarkPlasma_MultiElementRate.ts │ │ └── config.yml │ ├── CertainHitAction │ │ ├── CertainHitAction.d.ts │ │ ├── config.yml │ │ └── DarkPlasma_CertainHitAction.ts │ ├── DisableRegenerateOnMap │ │ ├── DisableRegenerateOnMap.d.ts │ │ ├── DarkPlasma_DisableRegenerateOnMap.ts │ │ └── config.yml │ ├── VariableCommonEvent │ │ └── plugin │ │ │ ├── VariableCommonEvent.d.ts │ │ │ └── DarkPlasma_VariableCommonEvent.ts │ ├── UnusableItemWithMapEvent │ │ ├── UnusableItemWithMapEvent.d.ts │ │ ├── DarkPlasma_UnusableItemWithMapEvent.ts │ │ └── config.yml │ ├── ManualText │ │ ├── ManualTextExport.d.ts │ │ └── ManualText.d.ts │ ├── UpdateStateBuffTurnsOnlyInBattle │ │ ├── UpdateStateBuffTurnsOnlyInBattle.d.ts │ │ ├── config.yml │ │ └── DarkPlasma_UpdateStateBuffTurnsOnlyInBattle.ts │ ├── DisableUpdateStateBuffTurnOnMap │ │ ├── plugin │ │ │ ├── DisableUpdateStateBuffTurnOnMap.d.ts │ │ │ └── DarkPlasma_DisableUpdateStateBuffTurnOnMap.ts │ │ └── config │ │ │ └── config.ts │ ├── Formation │ │ └── FormationExport.d.ts │ ├── HorizontalScrollWindow │ │ ├── HorizontalScrollWindowExport.d.ts │ │ ├── HorizontalScrollWindow.d.ts │ │ └── config.yml │ ├── FormationInMenu │ │ ├── DarkPlasma_FormationInMenu.js │ │ └── config.yml │ ├── SetColorByCode │ │ ├── SetColorByCode.d.ts │ │ ├── config.yml │ │ └── DarkPlasma_SetColorByCode.ts │ ├── CustomKeyHandler │ │ ├── CustomKeyHandlerExport.d.ts │ │ └── CustomKeyHandler.d.ts │ ├── EnemyLevel │ │ ├── EnemyLevel.d.ts │ │ ├── DarkPlasma_EnemyLevel.ts │ │ └── config.yml │ ├── RandomSkill │ │ ├── RandomSkill.d.ts │ │ └── config.yml │ ├── RemoveStateByMp │ │ ├── RemoveStateByMp.d.ts │ │ ├── config.yml │ │ └── DarkPlasma_RemoveStateByMp.ts │ ├── AutoHighlight │ │ └── plugin │ │ │ └── AutoHighlight.d.ts │ ├── ClearEquip │ │ └── ClearEquip.d.ts │ ├── MultiElementAction │ │ ├── MultiElementAction.d.ts │ │ └── DarkPlasma_MultiElementAction.ts │ ├── ChangePartyLeader │ │ ├── ChangePartyLeader.d.ts │ │ ├── DarkPlasma_ChangePartyLeader.ts │ │ └── config.yml │ ├── StateWithDeath │ │ ├── StateWithDeath.d.ts │ │ ├── config.yml │ │ └── DarkPlasma_StateWithDeath.ts │ ├── ActionDebuffSuccessRate │ │ ├── ActionDebuffSuccessRate.d.ts │ │ ├── config.yml │ │ └── DarkPlasma_ActionDebuffSuccessRate.ts │ ├── DualWieldRepeats │ │ ├── plugin │ │ │ ├── DualWieldRepeats.d.ts │ │ │ └── DarkPlasma_DualWieldRepeats.ts │ │ └── config │ │ │ └── config.ts │ ├── ExpRateTraitForEnemy │ │ ├── plugin │ │ │ ├── ExpRateTraitForEnemy.d.ts │ │ │ └── DarkPlasma_ExpRateTraitForEnemy.ts │ │ └── config │ │ │ └── config.ts │ ├── StateAliasBySide │ │ ├── StateAliasBySide.d.ts │ │ └── DarkPlasma_StateAliasBySide.ts │ ├── MinimumDamageValue │ │ ├── MinimumDamageValue.d.ts │ │ └── DarkPlasma_MinimumDamageValue.ts │ ├── CommonEventByDiscardItem │ │ └── plugin │ │ │ ├── CommonEventByDiscardItem.d.ts │ │ │ └── DarkPlasma_CommonEventByDiscardItem.ts │ ├── NoseForTreasure │ │ └── NoseForTreasure.d.ts │ ├── SelfDestructingEffect │ │ ├── plugin │ │ │ └── SelfDestructingEffect.d.ts │ │ └── config │ │ │ └── config.ts │ ├── AreaEvent │ │ └── AreaEvent.d.ts │ ├── ControlAutoplay │ │ ├── ControlAutoplay.d.ts │ │ ├── config.yml │ │ └── DarkPlasma_ControlAutoplay.ts │ ├── RegenerateByValueTraitCustomSample │ │ ├── RegenerateByValueTraitCustomSample.d.ts │ │ ├── DarkPlasma_RegenerateByValueTraitCustomSample.ts │ │ └── config.yml │ ├── DashSpeed │ │ └── DashSpeed.d.ts │ ├── DisplayHpMpDamage │ │ └── DisplayHpMpDamage.d.ts │ ├── SkillWithTraits │ │ ├── SkillWithTraits.d.ts │ │ └── config.yml │ ├── ClassSkillMeta │ │ ├── ClassSkillMeta.d.ts │ │ ├── DarkPlasma_ClassSkillMeta.ts │ │ └── config.yml │ ├── ForceActionWithId │ │ └── ForceActionWithId.d.ts │ ├── ParameterText │ │ └── ParameterText.d.ts │ ├── ActorCommandTrait │ │ └── ActorCommandTrait.d.ts │ ├── LoseAllItems │ │ └── plugin │ │ │ └── LoseAllItems.d.ts │ ├── PassageByRegion │ │ └── PassageByRegion.d.ts │ ├── FillGradientCircle │ │ ├── plugin │ │ │ ├── FillGradientCircle.d.ts │ │ │ └── DarkPlasma_FillGradientCircle.ts │ │ └── config │ │ │ └── config.ts │ ├── SellingPriceRate │ │ ├── DarkPlasma_SellingPriceRate.js │ │ └── config.yml │ ├── SwapParamState │ │ ├── SwapParamState.d.ts │ │ └── config.yml │ ├── ItemWithPartyTraits │ │ ├── ItemWithPartyTraits.d.ts │ │ └── config.yml │ ├── PriorityStateGroup │ │ └── plugin │ │ │ └── PriorityStateGroup.d.ts │ ├── SealItemCommand │ │ ├── SealItemCommand.d.ts │ │ └── config.yml │ ├── AlwaysCritical │ │ ├── DarkPlasma_AlwaysCritical.js │ │ └── config.yml │ ├── InputSequentialCommand │ │ └── plugin │ │ │ └── InputSequentialCommand.d.ts │ ├── SurpriseControlWithEventBattle │ │ ├── SurpriseControlWithEventBattle.d.ts │ │ └── config.yml │ ├── TpDamageEffect │ │ ├── plugin │ │ │ └── TpDamageEffect.d.ts │ │ └── config │ │ │ └── config.ts │ ├── AdditionalAttackedAnimationTrait │ │ └── plugin │ │ │ └── AdditionalAttackedAnimationTrait.d.ts │ ├── TweetScreenshot │ │ └── plugin │ │ │ └── TweetScreenshot.d.ts │ ├── PositionDamageRate │ │ └── PositionDamageRate.d.ts │ ├── LevelXState │ │ └── LevelXState.d.ts │ ├── LimitSParam │ │ └── plugin │ │ │ └── LimitSParam.d.ts │ ├── WaitForCloseChoiceList │ │ ├── DarkPlasma_WaitForCloseChoiceList.js │ │ └── config.yml │ ├── MapNameOnSave │ │ ├── MapNameOnSave.d.ts │ │ ├── DarkPlasma_MapNameOnSave.ts │ │ └── config.yml │ ├── ContinuousSkillCooldown │ │ ├── ContinuousSkillCooldown.d.ts │ │ └── config.yml │ ├── MasterVolume │ │ └── MasterVolume.d.ts │ ├── SkillCostExtensionTraits │ │ ├── DarkPlasma_SkillCostExtensionTraits.js │ │ └── config.yml │ ├── TitleCommand │ │ └── TitleCommand.d.ts │ ├── MoveToPoint │ │ └── plugin │ │ │ └── MoveToPoint.d.ts │ ├── IsInLights │ │ └── plugin │ │ │ └── IsInLights.d.ts │ ├── DualWieldDamageRateTrait │ │ └── plugin │ │ │ └── DualWieldDamageRateTrait.d.ts │ ├── AllocateUniqueEffectCode │ │ └── AllocateUniqueEffectCode.d.ts │ ├── HealOnBattleStartTrait │ │ ├── plugin │ │ │ └── HealOnBattleStartTrait.d.ts │ │ └── config │ │ │ └── config.ts │ ├── LazyExtractData │ │ ├── plugin │ │ │ ├── LazyExtractData.d.ts │ │ │ └── DarkPlasma_LazyExtractData.ts │ │ └── config │ │ │ └── config.ts │ ├── RemoveStateGroupEffect │ │ └── plugin │ │ │ └── RemoveStateGroupEffect.d.ts │ ├── StateGroup │ │ └── StateGroup.d.ts │ ├── DisplayDatabaseDetailWindow │ │ ├── plugin │ │ │ ├── DisplayDatabaseDetailWindow.d.ts │ │ │ └── DarkPlasma_DisplayDatabaseDetailWindow.ts │ │ └── config │ │ │ └── config.ts │ ├── MultiplyXParamTrait │ │ └── plugin │ │ │ └── MultiplyXParamTrait.d.ts │ ├── ConsumeItemImmediately │ │ ├── ConsumeItemImmediately.d.ts │ │ └── config.yml │ ├── FixParameterTrait │ │ └── FixParameterTrait.d.ts │ ├── TpCostRateSParam │ │ └── plugin │ │ │ └── TpCostRateSParam.d.ts │ ├── DiscardItemCommand │ │ └── plugin │ │ │ └── DiscardItemCommand.d.ts │ ├── OrderEquip │ │ └── OrderEquip.d.ts │ ├── FixEscapeRatio │ │ ├── DarkPlasma_FixEscapeRatio.js │ │ └── config.yml │ ├── AutoStoreItemToStorage │ │ ├── AutoStoreItemToStorage.d.ts │ │ └── config.yml │ ├── CriticalDamageRateTrait │ │ └── plugin │ │ │ └── CriticalDamageRateTrait.d.ts │ ├── FreezePlayer │ │ ├── DarkPlasma_FreezePlayer.js │ │ └── config.yml │ ├── EquipItemInMenuItem │ │ ├── plugin │ │ │ └── EquipItemInMenuItem.d.ts │ │ └── config │ │ │ └── config.ts │ ├── SystemTypeIcon │ │ └── plugin │ │ │ ├── SystemTypeIcon.d.ts │ │ │ └── DarkPlasma_SystemTypeIcon.ts │ ├── NameWindow │ │ └── NameWindow.d.ts │ ├── TextShadow │ │ └── TextShadow.d.ts │ ├── CommonDropItemSet │ │ └── CommonDropItemSet.d.ts │ ├── AdjustEnemyPosition │ │ ├── DarkPlasma_AdjustEnemyPosition.js │ │ └── config.yml │ ├── AdditionalAttackAnimation │ │ └── AdditionalAttackAnimation.d.ts │ ├── SealItem │ │ └── SealItem.d.ts │ ├── AddSParamTrait │ │ └── plugin │ │ │ └── AddSParamTrait.d.ts │ ├── ErasePictures │ │ ├── DarkPlasma_ErasePictures.js │ │ └── config.yml │ ├── Rosedale_CAP_8DirBugFix │ │ ├── Rosedale_CAP_8DirBugFix.d.ts │ │ └── config.yml │ ├── MaxItemCount │ │ └── MaxItemCount.d.ts │ ├── SaveEventLocations │ │ ├── SaveEventLocations.d.ts │ │ └── config.yml │ ├── SkillWeaponTypeTrait │ │ └── plugin │ │ │ └── SkillWeaponTypeTrait.d.ts │ ├── TinyMedal │ │ └── plugin │ │ │ └── TinyMedal.d.ts │ ├── ArcGaugeSample │ │ ├── plugin │ │ │ └── ArcGaugeSample.d.ts │ │ └── config │ │ │ └── config.ts │ ├── StrikeWithBackOfSword │ │ ├── config.yml │ │ └── DarkPlasma_StrikeWithBackOfSword.js │ ├── FixEquip │ │ └── DarkPlasma_FixEquip.js │ ├── NoStateBuffMap │ │ └── config.yml │ ├── VisibleBattleLogWindow │ │ ├── config.yml │ │ └── DarkPlasma_VisibleBattleLogWindow.js │ ├── FilterEquip_RecentlyGained │ │ └── FilterEquip_RecentlyGained.d.ts │ ├── StateGroup2 │ │ └── plugin │ │ │ └── StateGroup2.d.ts │ ├── SurpriseControl │ │ └── SurpriseControl.d.ts │ ├── SkillCostExtensionView │ │ └── SkillCostExtensionView.d.ts │ ├── StateRateAlias │ │ ├── config.yml │ │ └── DarkPlasma_StateRateAlias.js │ ├── RegenerateByValueTrait │ │ └── RegenerateByValueTrait.d.ts │ ├── HighlightNewSkill │ │ ├── HighlightNewSkill.d.ts │ │ └── config.yml │ ├── AnimeLight │ │ └── AnimeLight.d.ts │ ├── ExpandCharacterPattern │ │ └── ExpandCharacterPattern.d.ts │ ├── SurpriseControlWithSymbolEncounter │ │ └── SurpriseControlWithSymbolEncounter.d.ts │ ├── ChangeImageWithPattern │ │ └── plugin │ │ │ └── ChangeImageWithPattern.d.ts │ ├── SharedSwitchVariable │ │ └── SharedSwitchVariable.d.ts │ ├── FixChoiceListPosition │ │ └── plugin │ │ │ └── FixChoiceListPosition.d.ts │ ├── MaskPicture │ │ └── plugin │ │ │ └── MaskPicture.d.ts │ ├── AllocateUniqueSpecialFlagId │ │ └── plugin │ │ │ ├── DarkPlasma_AllocateUniqueSpecialFlagId.ts │ │ │ └── AllocateUniqueSpecialFlagId.d.ts │ ├── OrderShopGoods │ │ └── plugin │ │ │ └── OrderShopGoods.d.ts │ ├── ChangeScreenshotSetting │ │ └── plugin │ │ │ └── ChangeScreenshotSetting.d.ts │ ├── EscapePenalty │ │ ├── DarkPlasma_EscapePenalty.js │ │ └── config.yml │ ├── WishListForFusionItem │ │ └── plugin │ │ │ └── WishListForFusionItem.d.ts │ ├── AllocateUniqueTraitId │ │ └── AllocateUniqueTraitId.d.ts │ ├── DevidePartyScene │ │ └── plugin │ │ │ └── DevidePartyScene.d.ts │ ├── TriggerTouchWithThrough │ │ └── config.yml │ ├── ElementDamageBonusTrait │ │ └── plugin │ │ │ └── ElementDamageBonusTrait.d.ts │ ├── IndividualItemCommand │ │ ├── config │ │ │ └── config.ts │ │ └── plugin │ │ │ └── IndividualItemCommand.d.ts │ ├── SaveEquipSet │ │ └── SaveEquipSet.d.ts │ ├── ItemDetail │ │ └── ItemDetail.d.ts │ ├── ForceFormation │ │ └── ForceFormation.d.ts │ ├── AllocateUniqueTraitDataId │ │ └── plugin │ │ │ └── AllocateUniqueTraitDataId.d.ts │ ├── RemoveBuffAtBattleEnd │ │ └── config.yml │ ├── ChangeBattlebackInBattle │ │ └── config.yml │ ├── UsableCountInBattle │ │ ├── config │ │ │ └── config.ts │ │ └── plugin │ │ │ └── UsableCountInBattle.d.ts │ ├── FallImages │ │ └── plugin │ │ │ └── FallImages.d.ts │ ├── OrderIdAlias │ │ └── OrderIdAlias.d.ts │ ├── RemoveStateBuffByEscapeAction │ │ └── config.yml │ ├── DisableShowFastMessage │ │ └── config.yml │ ├── SeverImmortality │ │ └── config.yml │ ├── RandomTroop │ │ └── RandomTroop.d.ts │ ├── EvacuateAllItems │ │ └── plugin │ │ │ └── EvacuateAllItems.d.ts │ ├── ExpandTargetScopeButton │ │ └── ExpandTargetScopeButton.d.ts │ ├── EnemyBookInBattle │ │ └── EnemyBookInBattle.d.ts │ ├── EquipDetail │ │ └── plugin │ │ │ └── EquipDetail.d.ts │ ├── BlastScope │ │ └── plugin │ │ │ └── BlastScope.d.ts │ ├── CachePartyAbilityTraits │ │ └── plugin │ │ │ └── CachePartyAbilityTraits.d.ts │ ├── Scene_MessageMixIn │ │ └── config.yml │ ├── NPCKeepOutRegion │ │ └── DarkPlasma_NPCKeepOutRegion.js │ ├── SkillDetail │ │ └── SkillDetail.d.ts │ ├── HighlightNewItem │ │ └── HighlightNewItem.d.ts │ └── SelectActorCharacterWindow │ │ └── plugin │ │ └── SelectActorCharacterWindow.d.ts └── typings │ ├── package.json │ └── rmmz.d.ts ├── scripts ├── generateConfig │ ├── index.js │ └── command.js ├── generateDirectory │ ├── index.js │ ├── generateDirectory.js │ └── command.js ├── copyToProject │ └── config_sample.yml ├── generateFromConfig │ ├── parameterSymbolType.js │ └── generateVersion.js ├── generateFromTypeScript │ ├── parameterSymbolType.ts │ ├── tsconfig.json │ ├── package.json │ └── generateVersion.ts ├── generateTemplate │ ├── generate.mjs │ ├── generateDirectory.ts │ └── index.ts ├── buildDispatcher │ └── package.json ├── publish.js └── buildConfigDeclaration.mjs ├── tsconfig_template.json ├── .gitmodules ├── .prettierrc ├── .gitignore ├── tsconfig-for-plugin.json ├── modules └── config │ ├── tsconfig.json │ ├── package.json │ └── struct │ ├── Rectangle.ts │ ├── Se.ts │ └── Bgm.ts └── .eslintrc.json /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | nodeLinker: node-modules 2 | -------------------------------------------------------------------------------- /src/templates/plugin.ejs: -------------------------------------------------------------------------------- 1 | <%- header %> 2 | <%- code %> 3 | -------------------------------------------------------------------------------- /scripts/generateConfig/index.js: -------------------------------------------------------------------------------- 1 | require('./command.js'); 2 | -------------------------------------------------------------------------------- /scripts/generateDirectory/index.js: -------------------------------------------------------------------------------- 1 | require('./command.js'); 2 | -------------------------------------------------------------------------------- /src/common/pluginName.d.ts: -------------------------------------------------------------------------------- 1 | export const pluginName: string; 2 | -------------------------------------------------------------------------------- /src/codes/CGGallery/CGGallery.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /tsconfig_template.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../../tsconfig-for-plugin" 3 | } 4 | -------------------------------------------------------------------------------- /src/codes/AlwaysActive/AlwaysActive.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/codes/BuffRate/BuffRate.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | -------------------------------------------------------------------------------- /src/codes/RandomGainItem/RandomGainItem.d.ts: -------------------------------------------------------------------------------- 1 | /// -------------------------------------------------------------------------------- /src/common/mapMetaData.d.ts: -------------------------------------------------------------------------------- 1 | export function isMapMetaDataAvailable(): $dataMap is MZ.Map; 2 | -------------------------------------------------------------------------------- /src/codes/MaxSavefiles/plugin/MaxSavefiles.d.ts: -------------------------------------------------------------------------------- 1 | /// -------------------------------------------------------------------------------- /src/codes/MultiElementRate/MultiElementRate.d.ts: -------------------------------------------------------------------------------- 1 | /// -------------------------------------------------------------------------------- /src/codes/CertainHitAction/CertainHitAction.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/common/data/hasTraits.js: -------------------------------------------------------------------------------- 1 | export function hasTraits(data) { 2 | return "traits" in data; 3 | } 4 | -------------------------------------------------------------------------------- /src/common/pluginParameters.d.ts: -------------------------------------------------------------------------------- 1 | export const pluginParameters: { 2 | [name: string]: string 3 | }; 4 | -------------------------------------------------------------------------------- /src/codes/DisableRegenerateOnMap/DisableRegenerateOnMap.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/codes/VariableCommonEvent/plugin/VariableCommonEvent.d.ts: -------------------------------------------------------------------------------- 1 | /// -------------------------------------------------------------------------------- /src/codes/UnusableItemWithMapEvent/UnusableItemWithMapEvent.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /src/common/orderIdSort.d.ts: -------------------------------------------------------------------------------- 1 | export function orderIdSort(a: OrderIdHolder | null, b: OrderIdHolder | null): number; 2 | -------------------------------------------------------------------------------- /src/codes/ManualText/ManualTextExport.d.ts: -------------------------------------------------------------------------------- 1 | declare function Window_ManualTextMixIn(windowClass: Window_Base): void; 2 | -------------------------------------------------------------------------------- /src/codes/UpdateStateBuffTurnsOnlyInBattle/UpdateStateBuffTurnsOnlyInBattle.d.ts: -------------------------------------------------------------------------------- 1 | /// -------------------------------------------------------------------------------- /src/common/data/isActor.js: -------------------------------------------------------------------------------- 1 | export function isActor(data) { 2 | return $dataActors && $dataActors.includes(data); 3 | } 4 | -------------------------------------------------------------------------------- /src/common/data/isClass.js: -------------------------------------------------------------------------------- 1 | export function isClass(data) { 2 | return $dataClasses && $dataClasses.includes(data); 3 | } 4 | -------------------------------------------------------------------------------- /src/common/data/isEnemy.js: -------------------------------------------------------------------------------- 1 | export function isEnemy(data) { 2 | return $dataEnemies && $dataEnemies.includes(data); 3 | } 4 | -------------------------------------------------------------------------------- /src/common/data/isState.js: -------------------------------------------------------------------------------- 1 | export function isState(data) { 2 | return $dataStates && $dataStates.includes(data); 3 | } 4 | -------------------------------------------------------------------------------- /src/common/pluginParametersOf.js: -------------------------------------------------------------------------------- 1 | export const pluginParametersOf = ((pluginName) => PluginManager.parameters(pluginName)); 2 | -------------------------------------------------------------------------------- /src/common/pluginParametersOf.d.ts: -------------------------------------------------------------------------------- 1 | export function pluginParametersOf(pluginName: string): { 2 | [name: string]: string 3 | }; 4 | -------------------------------------------------------------------------------- /src/common/scene/battleInputtingWindow.d.ts: -------------------------------------------------------------------------------- 1 | export function Scene_Battle_InputtingWindowMixIn(sceneBattle: Scene_Battle): void; 2 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "src/typings/rmmz-types"] 2 | path = src/typings/rmmz-types 3 | url = git@github.com:elleonard/rmmz-types.git 4 | -------------------------------------------------------------------------------- /src/codes/DisableUpdateStateBuffTurnOnMap/plugin/DisableUpdateStateBuffTurnOnMap.d.ts: -------------------------------------------------------------------------------- 1 | /// -------------------------------------------------------------------------------- /src/common/scene/battleCancelButtonToEdge.d.ts: -------------------------------------------------------------------------------- 1 | export function Scene_Battle_MoveCancelButtonMixIn(sceneBattle: Scene_Battle): void; 2 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "printWidth": 120, 3 | "tabWidth": 2, 4 | "singleQuote": true, 5 | "arrowParens": "always", 6 | "semi": true 7 | } 8 | -------------------------------------------------------------------------------- /scripts/copyToProject/config_sample.yml: -------------------------------------------------------------------------------- 1 | projectDirs: 2 | - D:\game\rmmz\PlasmaProjects\PluginTest1 3 | - D:\game\rmmz\PlasmaProjects\PluginTest2 -------------------------------------------------------------------------------- /src/codes/Formation/FormationExport.d.ts: -------------------------------------------------------------------------------- 1 | declare function Scene_FormationMixIn(sceneClass: typeof Scene_Base): typeof Scene_FormationMixInClass; 2 | -------------------------------------------------------------------------------- /src/codes/HorizontalScrollWindow/HorizontalScrollWindowExport.d.ts: -------------------------------------------------------------------------------- 1 | declare function Window_HorizontalScrollMixIn(windowClass: Window_Selectable): void; 2 | -------------------------------------------------------------------------------- /src/common/manager/ColorManagerMixIn.d.ts: -------------------------------------------------------------------------------- 1 | declare namespace ColorManager { 2 | function convertColorParameter(colorParameter: number|string): string; 3 | } -------------------------------------------------------------------------------- /src/common/pluginName.js: -------------------------------------------------------------------------------- 1 | export const pluginName = document.currentScript.src.replace(/^.*\/(.*).js$/, function () { 2 | return arguments[1]; 3 | }); 4 | -------------------------------------------------------------------------------- /src/codes/FormationInMenu/DarkPlasma_FormationInMenu.js: -------------------------------------------------------------------------------- 1 | Scene_Menu.prototype.commandFormation = function () { 2 | SceneManager.push(Scene_Formation); 3 | }; 4 | -------------------------------------------------------------------------------- /src/codes/SetColorByCode/SetColorByCode.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /src/common/scene/battleCancelButtonToEdgeInterface.d.ts: -------------------------------------------------------------------------------- 1 | declare interface Scene_Battle { 2 | moveCancelButtonToEdge(): void; 3 | returnCancelButton(): void; 4 | } 5 | -------------------------------------------------------------------------------- /src/common/targetPluginName.js: -------------------------------------------------------------------------------- 1 | export const targetPluginName = document.currentScript.src.replace(/^.*\/(.*)_Test.js$/, function () { 2 | return arguments[1]; 3 | }); 4 | -------------------------------------------------------------------------------- /src/codes/AlwaysActive/DarkPlasma_AlwaysActive.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | SceneManager.isGameActive = function () { 4 | return true; 5 | }; 6 | -------------------------------------------------------------------------------- /src/codes/CustomKeyHandler/CustomKeyHandlerExport.d.ts: -------------------------------------------------------------------------------- 1 | declare function Window_CustomKeyHandlerMixIn(key: string, windowClass: Window_Selectable, handlerName?: string): void; 2 | -------------------------------------------------------------------------------- /src/codes/EnemyLevel/EnemyLevel.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Enemy { 4 | _level: number; 5 | level: number; 6 | } 7 | -------------------------------------------------------------------------------- /src/codes/RandomSkill/RandomSkill.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /src/common/data/isActor.ts: -------------------------------------------------------------------------------- 1 | export function isActor(data: DataManager.NoteHolder): data is MZ.Actor { 2 | return $dataActors && $dataActors.includes(data as MZ.Actor); 3 | } 4 | -------------------------------------------------------------------------------- /src/common/data/isState.ts: -------------------------------------------------------------------------------- 1 | export function isState(data: DataManager.NoteHolder): data is MZ.State { 2 | return $dataStates && $dataStates.includes(data as MZ.State); 3 | } 4 | -------------------------------------------------------------------------------- /src/codes/RemoveStateByMp/RemoveStateByMp.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Battler { 4 | removeStatesByMp(): void; 5 | } 6 | -------------------------------------------------------------------------------- /src/common/data/isClass.ts: -------------------------------------------------------------------------------- 1 | export function isClass(data: DataManager.NoteHolder): data is MZ.Class { 2 | return $dataClasses && $dataClasses.includes(data as MZ.Class); 3 | } 4 | -------------------------------------------------------------------------------- /src/common/data/isEnemy.ts: -------------------------------------------------------------------------------- 1 | export function isEnemy(data: DataManager.NoteHolder): data is MZ.Enemy { 2 | return $dataEnemies && $dataEnemies.includes(data as MZ.Enemy); 3 | } 4 | -------------------------------------------------------------------------------- /src/common/mapMetaData.js: -------------------------------------------------------------------------------- 1 | /** 2 | * マップのメタデータを取得できるか 3 | * @return {boolean} 4 | */ 5 | export function isMapMetaDataAvailable() { 6 | return $dataMap && $dataMap.meta; 7 | } 8 | -------------------------------------------------------------------------------- /src/codes/AutoHighlight/plugin/AutoHighlight.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Window_Base { 4 | isHighlightWindow(): boolean; 5 | } 6 | -------------------------------------------------------------------------------- /src/codes/ClearEquip/ClearEquip.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Actor { 4 | clearEquipByEquipTypes(equipTypes: number[]): void; 5 | } 6 | -------------------------------------------------------------------------------- /src/codes/HorizontalScrollWindow/HorizontalScrollWindow.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Window_Selectable { 4 | _leftIndex: number; 5 | } 6 | -------------------------------------------------------------------------------- /src/codes/MultiElementAction/MultiElementAction.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Action { 4 | actionAttackElements(): number[]; 5 | } 6 | -------------------------------------------------------------------------------- /src/codes/ChangePartyLeader/ChangePartyLeader.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Interpreter { 4 | _leaderActorIdBeforeChange: number; 5 | } 6 | -------------------------------------------------------------------------------- /src/codes/StateWithDeath/StateWithDeath.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_BattlerBase { 4 | continueStateIdsAfterDeath(): number[]; 5 | } 6 | -------------------------------------------------------------------------------- /src/codes/ActionDebuffSuccessRate/ActionDebuffSuccessRate.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Action { 4 | baseDebuffSuccessRate(): number; 5 | } 6 | -------------------------------------------------------------------------------- /src/codes/DualWieldRepeats/plugin/DualWieldRepeats.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Action { 4 | isDualWieldRepeats(): boolean; 5 | } 6 | -------------------------------------------------------------------------------- /src/codes/ExpRateTraitForEnemy/plugin/ExpRateTraitForEnemy.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /src/codes/StateAliasBySide/StateAliasBySide.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Battler { 4 | aliasedStateIdBySide(stateId: number): number; 5 | } 6 | -------------------------------------------------------------------------------- /src/common/data/hasTraits.ts: -------------------------------------------------------------------------------- 1 | export function hasTraits(data: DataManager.NoteHolder): data is MZ.Actor | MZ.Class | MZ.Weapon | MZ.Armor | MZ.State | MZ.Enemy { 2 | return "traits" in data; 3 | } 4 | -------------------------------------------------------------------------------- /src/codes/MinimumDamageValue/MinimumDamageValue.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Action { 4 | minimumDamageValue(target: Game_battler): number; 5 | } 6 | -------------------------------------------------------------------------------- /src/codes/CommonEventByDiscardItem/plugin/CommonEventByDiscardItem.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /src/codes/NoseForTreasure/NoseForTreasure.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Event { 4 | selfSwitchKey(selfSwitch: string): [number, number, string]; 5 | } 6 | -------------------------------------------------------------------------------- /src/codes/SelfDestructingEffect/plugin/SelfDestructingEffect.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /src/common/pluginParameters.js: -------------------------------------------------------------------------------- 1 | import { pluginName } from './pluginName'; 2 | import { pluginParametersOf } from './pluginParametersOf'; 3 | 4 | export const pluginParameters = pluginParametersOf(pluginName); 5 | -------------------------------------------------------------------------------- /scripts/generateFromConfig/parameterSymbolType.js: -------------------------------------------------------------------------------- 1 | export const SYMBOL_TYPE = { 2 | PLUGIN_PARAMETERS: 'pluginParameters', 3 | PLUGIN_PARAMETERS_OF: 'pluginParametersOf(pluginName)', 4 | ARGS: 'args', 5 | }; 6 | -------------------------------------------------------------------------------- /src/common/window/obtainEscapeParamText.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Window_Base { 4 | obtainEscapeParamText(textState: Window_Base.TextState): string[]; 5 | } 6 | -------------------------------------------------------------------------------- /scripts/generateFromTypeScript/parameterSymbolType.ts: -------------------------------------------------------------------------------- 1 | export const SYMBOL_TYPE = { 2 | PLUGIN_PARAMETERS: 'pluginParameters', 3 | PLUGIN_PARAMETERS_OF: 'pluginParametersOf(pluginName)', 4 | ARGS: 'args', 5 | }; 6 | -------------------------------------------------------------------------------- /src/codes/AreaEvent/AreaEvent.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Event { 4 | _area: Game_EventArea; 5 | 6 | isAreaEvent(): boolean; 7 | setupArea(): void; 8 | } 9 | -------------------------------------------------------------------------------- /src/codes/ControlAutoplay/ControlAutoplay.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Map { 4 | isAutoplayBgmEnabled(): boolean; 5 | isAutoplayBgsEnabled(): boolean; 6 | } 7 | -------------------------------------------------------------------------------- /src/codes/RegenerateByValueTraitCustomSample/RegenerateByValueTraitCustomSample.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | -------------------------------------------------------------------------------- /src/common/object/labelAndValueText.d.ts: -------------------------------------------------------------------------------- 1 | export declare class LabelAndValueText { 2 | constructor(label: string, valueText?: string); 3 | public readonly label: string; 4 | public readonly valueText: string; 5 | } 6 | -------------------------------------------------------------------------------- /scripts/generateTemplate/generate.mjs: -------------------------------------------------------------------------------- 1 | const pluginName = argv._[0]; 2 | const exclude = argv._.length > 0 && argv._.includes('e'); 3 | await $`yarn tsx ./scripts/generateTemplate/index.ts ${pluginName} ${exclude ? "e" : ""}` 4 | -------------------------------------------------------------------------------- /src/codes/DashSpeed/DashSpeed.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Player { 4 | _dashSpeed: number; 5 | 6 | dashSpeed(): number; 7 | setDashSpeed(dashSpeed: number): void; 8 | } 9 | -------------------------------------------------------------------------------- /src/codes/DisplayHpMpDamage/DisplayHpMpDamage.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Sprite_Damage { 4 | _delay: number; 5 | setupMpChangeWithHp(target: Game_Battler): void; 6 | 7 | } 8 | -------------------------------------------------------------------------------- /src/codes/SkillWithTraits/SkillWithTraits.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Actor { 4 | skillsWithTrait(): MZ.Skill[]; 5 | traitObjectsBySkill(): DataManager.TraitObject[]; 6 | } 7 | -------------------------------------------------------------------------------- /src/codes/ClassSkillMeta/ClassSkillMeta.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare namespace MZ { 4 | namespace Class { 5 | interface Learning { 6 | meta: Metadata; 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/common/scene/battleInputtingWindowInterface.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Scene_Battle { 4 | inputtingWindow(): Window_Selectable; 5 | inputWindows(): Window_Selectable[]; 6 | } 7 | -------------------------------------------------------------------------------- /src/codes/ForceActionWithId/ForceActionWithId.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Interpreter { 4 | iterateBattlerCallback(skillId: number, targetIndex: number, battler: Game_Battler): void; 5 | } 6 | -------------------------------------------------------------------------------- /src/codes/ParameterText/ParameterText.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare namespace TextManager { 4 | export function xparam(paramId: number): string; 5 | export function sparam(paramId: number): string; 6 | } 7 | -------------------------------------------------------------------------------- /src/codes/ActorCommandTrait/ActorCommandTrait.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | declare interface Scene_Battle { 5 | commandUseSkill(): void; 6 | } 7 | -------------------------------------------------------------------------------- /src/codes/LoseAllItems/plugin/LoseAllItems.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | type ItemCategory = "item"|"weapon"|"armor"|"keyItem"; 4 | 5 | declare interface Game_Party { 6 | loseAllItems(category: ItemCategory): void; 7 | } 8 | -------------------------------------------------------------------------------- /src/codes/PassageByRegion/PassageByRegion.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Map { 4 | isPassableRegion(x: number, y: number): boolean; 5 | isImpassableRegion(x: number, y: number, d: number): boolean; 6 | } 7 | -------------------------------------------------------------------------------- /src/codes/FillGradientCircle/plugin/FillGradientCircle.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Bitmap { 4 | fillGradientCircle(centerX: number, centerY: number, radius: number, insideColor: string, outsideColor: string): void; 5 | } 6 | -------------------------------------------------------------------------------- /src/codes/SellingPriceRate/DarkPlasma_SellingPriceRate.js: -------------------------------------------------------------------------------- 1 | import { settings } from './_build/DarkPlasma_SellingPriceRate_parameters'; 2 | 3 | Scene_Shop.prototype.sellingPrice = function () { 4 | return Math.floor(this._item.price / (100 / settings.sellingPriceRate)); 5 | }; 6 | -------------------------------------------------------------------------------- /src/codes/SwapParamState/SwapParamState.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_BattlerBase { 4 | isSwapParamStateAffected(paramId): boolean; 5 | paramAlias(paramId): number; 6 | swapParamState(paramId): MZ.State|undefined; 7 | } 8 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | _dist/ 2 | node_modules/ 3 | **/_build/* 4 | .yarn/ 5 | 6 | DarkPlasma_*.js 7 | 8 | src/common/**/*.js 9 | src/excludes/ 10 | src/excludeCommon/ 11 | src/.gitignore 12 | release/ 13 | stage/ 14 | 15 | scripts/copyToProject/config.yml 16 | rmmz/*.js 17 | yarn-error.log 18 | -------------------------------------------------------------------------------- /src/codes/ItemWithPartyTraits/ItemWithPartyTraits.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Party { 4 | itemsWithPartyTrait(): MZ.Item[]; 5 | } 6 | 7 | declare interface Game_Actor { 8 | traitObjectsByItem(): {traits: MZ.Trait[]}[]; 9 | } 10 | -------------------------------------------------------------------------------- /src/codes/PriorityStateGroup/plugin/PriorityStateGroup.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Battler { 4 | lowerOrEqualPriorityStateIds(stateId: number): number[]; 5 | isHigherOrEqualPriorityStateAffected(stateId: number): boolean; 6 | } 7 | -------------------------------------------------------------------------------- /src/codes/SealItemCommand/SealItemCommand.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Map { 4 | isItemCommandEnabled(): boolean; 5 | } 6 | 7 | declare interface Window_Command { 8 | itemCommand(): Window_Command.Command | undefined; 9 | } 10 | -------------------------------------------------------------------------------- /src/common/testPluginParameters.js: -------------------------------------------------------------------------------- 1 | import { pluginName } from './pluginName'; 2 | import { targetPluginName } from './targetPluginName'; 3 | 4 | export const pluginParameters = PluginManager.parameters(targetPluginName); 5 | export const testPluginParameters = PluginManager.parameters(pluginName); 6 | -------------------------------------------------------------------------------- /scripts/generateFromConfig/generateVersion.js: -------------------------------------------------------------------------------- 1 | export function generateVersion(config) { 2 | return `export const versionOf${config.name} = '${config.histories[0].version}'`; 3 | } 4 | 5 | export function generateVersionType(config) { 6 | return `export const versionOf${config.name}: string;`; 7 | } 8 | -------------------------------------------------------------------------------- /src/codes/AlwaysCritical/DarkPlasma_AlwaysCritical.js: -------------------------------------------------------------------------------- 1 | const _Game_Action_itemCri = Game_Action.prototype.itemCri; 2 | Game_Action.prototype.itemCri = function (target) { 3 | if (this.item().meta.alwaysCritical) { 4 | return 1; 5 | } 6 | return _Game_Action_itemCri.call(this, target); 7 | }; 8 | -------------------------------------------------------------------------------- /src/codes/InputSequentialCommand/plugin/InputSequentialCommand.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare namespace Input { 4 | var _commandBuffer: string[]; 5 | 6 | function clearBuffer(): void; 7 | function isSequentialInputted(command: string[]): boolean; 8 | } 9 | -------------------------------------------------------------------------------- /src/codes/SurpriseControlWithEventBattle/SurpriseControlWithEventBattle.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface BattleManager { 4 | _isEventBattle: boolean; 5 | 6 | setIsEventBattle(isEventBattle: boolean): void; 7 | mustDoOnEncounter(): boolean; 8 | } 9 | -------------------------------------------------------------------------------- /src/common/manager/DataManagerMixIn.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare namespace DataManager { 4 | function kindOf(data: MZ.Item|MZ.Weapon|MZ.Armor): number|undefined; 5 | function dataObject(kind: number, dataId: number): MZ.Item|MZ.Weapon|MZ.Armor|null; 6 | } 7 | -------------------------------------------------------------------------------- /src/codes/DisableRegenerateOnMap/DarkPlasma_DisableRegenerateOnMap.ts: -------------------------------------------------------------------------------- 1 | const _Game_Actor_regenerateAll = Game_Actor.prototype.regenerateAll; 2 | Game_Actor.prototype.regenerateAll = function () { 3 | if (!$gameParty.inBattle()) { 4 | return; 5 | } 6 | _Game_Actor_regenerateAll.call(this); 7 | }; 8 | -------------------------------------------------------------------------------- /src/codes/TpDamageEffect/plugin/TpDamageEffect.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | declare interface Game_Action { 5 | calcTpDamage(target: Game_Battler, effect: MZ.Effect): number; 6 | } 7 | -------------------------------------------------------------------------------- /src/common/object/paramSymbol.ts: -------------------------------------------------------------------------------- 1 | export const paramSymbol = ["mhp", "mmp", "atk", "def", "mat", "mdf", "agi", "luk"] as const; 2 | export type ParamSymbol = (typeof paramSymbol)[number]; 3 | export function symbolToParamId(symbol: ParamSymbol): number { 4 | return paramSymbol.indexOf(symbol); 5 | } 6 | -------------------------------------------------------------------------------- /src/typings/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rpgmakermz_typescript_dts", 3 | "version": "1.0.0", 4 | "description": "RPGツクールMZに標準搭載されているJavaScriptを、TypeScriptで扱うための型定義ファイルです。", 5 | "main": "index.js", 6 | "types": "rmmz/rmmz.d.ts", 7 | "author": "DarkPlasma", 8 | "license": "MIT" 9 | } 10 | -------------------------------------------------------------------------------- /src/codes/AdditionalAttackedAnimationTrait/plugin/AdditionalAttackedAnimationTrait.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | declare interface Game_Battler { 5 | additionalAttackedAnimationIds(): number[]; 6 | } 7 | -------------------------------------------------------------------------------- /src/common/object/sparamSymbol.ts: -------------------------------------------------------------------------------- 1 | export const sparamSymbol = ["tgr", "grd", "rec", "pha", "mcr", "tcr", "mdr", "fdr", "exr"] as const; 2 | export type SParamSymbol = (typeof sparamSymbol)[number]; 3 | export function symbolToSParamId(symbol: SParamSymbol): number { 4 | return sparamSymbol.indexOf(symbol); 5 | } 6 | -------------------------------------------------------------------------------- /src/common/orderIdSort.js: -------------------------------------------------------------------------------- 1 | export function orderIdSort(a, b) { 2 | if (a === null && b === null) { 3 | // 両方nullなら順不同 4 | return 0; 5 | } else if (a === null) { 6 | return 1; 7 | } else if (b === null) { 8 | return -1; 9 | } 10 | return (a.orderId || a.id) - (b.orderId || b.id); 11 | } 12 | -------------------------------------------------------------------------------- /scripts/generateConfig/command.js: -------------------------------------------------------------------------------- 1 | const { generateConfig } = require('./generateConfig'); 2 | 3 | (async () => { 4 | try { 5 | await generateConfig(process.argv[2]); 6 | } catch (e) { 7 | console.error(`[ERROR] ${process.argv[2]}`); 8 | console.error(e); 9 | console.error(''); 10 | } 11 | })(); 12 | -------------------------------------------------------------------------------- /src/codes/TweetScreenshot/plugin/TweetScreenshot.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface SceneManager { 4 | tweetScreenshot(): void; 5 | tweetImage(image: Bitmap): void; 6 | notifyTweetScreenshotError(error: Error): void; 7 | 8 | snapForScreenshot(): Bitmap; 9 | } 10 | -------------------------------------------------------------------------------- /src/common/object/xparamSymbol.ts: -------------------------------------------------------------------------------- 1 | export const xparamSymbol = ['hit', 'eva', 'cri', 'cev', 'mev', 'mrf', 'cnt', 'hrg', 'mrg', 'trg'] as const; 2 | export type XParamSymbol = (typeof xparamSymbol)[number]; 3 | export function symbolToXParamId(symbol: XParamSymbol): number { 4 | return xparamSymbol.indexOf(symbol); 5 | } 6 | -------------------------------------------------------------------------------- /src/codes/PositionDamageRate/PositionDamageRate.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_BattlerBase { 4 | physicalDamageRateByPosition(): number; 5 | magicalDamageRateByPosition(): number; 6 | } 7 | 8 | declare interface Game_Actor { 9 | originalIndex(): number; 10 | } 11 | -------------------------------------------------------------------------------- /src/codes/LevelXState/LevelXState.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | declare interface Game_Battler { 5 | /** 6 | * Game_Enemyは本来レベルを持たないが、 7 | * プラグインによってレベルを持たせることは可能 8 | */ 9 | level?: number; 10 | } 11 | -------------------------------------------------------------------------------- /src/codes/LimitSParam/plugin/LimitSParam.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_BattlerBase { 4 | sparamLimitSetting(paramId: number): { 5 | enableUpperLimit: boolean; 6 | upperLimit: number; 7 | enableLowerLimit: boolean; 8 | lowerLimit: number; 9 | }; 10 | } -------------------------------------------------------------------------------- /tsconfig-for-plugin.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2021", 4 | "lib": ["ES2021"], 5 | "module": "ESNext", 6 | "esModuleInterop": true, 7 | "forceConsistentCasingInFileNames": true, 8 | "strict": true, 9 | "strictPropertyInitialization": false, 10 | "skipLibCheck": true 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /src/codes/WaitForCloseChoiceList/DarkPlasma_WaitForCloseChoiceList.js: -------------------------------------------------------------------------------- 1 | const _Window_Message_isClosing = Window_Message.prototype.isClosing; 2 | Window_Message.prototype.isClosing = function () { 3 | if (this._choiceListWindow && this._choiceListWindow.isClosing()) { 4 | return true; 5 | } 6 | return _Window_Message_isClosing.call(this); 7 | }; 8 | -------------------------------------------------------------------------------- /src/common/data/isSameKindItem.ts: -------------------------------------------------------------------------------- 1 | export function isSameKindItem(data1: MZ.Item|MZ.Weapon|MZ.Armor, data2: MZ.Item|MZ.Weapon|MZ.Armor): boolean { 2 | return DataManager.isItem(data1) && DataManager.isItem(data2) 3 | || DataManager.isWeapon(data1) && DataManager.isWeapon(data2) 4 | || DataManager.isArmor(data1) && DataManager.isArmor(data2); 5 | } 6 | -------------------------------------------------------------------------------- /src/codes/MapNameOnSave/MapNameOnSave.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare namespace DataManager { 4 | interface SaveFileInfo { 5 | mapName: string; 6 | } 7 | } 8 | 9 | declare interface Window_SavefileList { 10 | drawMapName(info: DataManager.SaveFileInfo, x: number, y: number, width: number): void; 11 | } 12 | -------------------------------------------------------------------------------- /src/codes/ContinuousSkillCooldown/ContinuousSkillCooldown.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | declare class SkillCooldownManager { 5 | } 6 | 7 | declare interface Game_Battler { 8 | _skillCooldowns: Game_SkillCooldown[]; 9 | updateSkillCooldown(): void; 10 | } 11 | -------------------------------------------------------------------------------- /src/codes/MasterVolume/MasterVolume.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare namespace ConfigManager { 4 | var masterVolume: number; 5 | 6 | interface Config { 7 | masterVolume: number; 8 | } 9 | } 10 | 11 | declare namespace AudioManager { 12 | var _masterVolume: number; 13 | var masterVolume: number; 14 | } 15 | -------------------------------------------------------------------------------- /src/codes/SkillCostExtensionTraits/DarkPlasma_SkillCostExtensionTraits.js: -------------------------------------------------------------------------------- 1 | Game_BattlerBase.prototype.hpCostRate = function () { 2 | return this.traitObjects() 3 | .reduce((result, object) => result.concat(object.meta.hpCostRate), []) 4 | .filter((hpCostRate) => !!hpCostRate) 5 | .reduce((result, hpCostRate) => result * Number(hpCostRate), 1); 6 | }; 7 | -------------------------------------------------------------------------------- /src/codes/TitleCommand/TitleCommand.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Scene_Title { 4 | commandSceneChange(): void; 5 | commandShutdown(): void; 6 | } 7 | 8 | declare interface Window_TitleCommand { 9 | addCommandAt(index: number, name: string, symbol: string, enabled?: boolean, ext?: any): void; 10 | } 11 | -------------------------------------------------------------------------------- /src/codes/MoveToPoint/plugin/MoveToPoint.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Character { 4 | moveRouteListTo(x: number, y: number): MZ.MoveCommand[]; 5 | } 6 | 7 | declare interface Game_Interpreter { 8 | moveCharacterTo(characterId: number, x: number, y: number, skip: boolean, wait: boolean): void; 9 | } 10 | -------------------------------------------------------------------------------- /src/common/manager/ColorManagerMixIn.js: -------------------------------------------------------------------------------- 1 | /// 2 | export function ColorManagerMixIn(colorManager) { 3 | colorManager.convertColorParameter = function (colorParameter) { 4 | return typeof colorParameter === "string" 5 | ? colorParameter 6 | : this.textColor(colorParameter); 7 | }; 8 | } 9 | -------------------------------------------------------------------------------- /src/codes/IsInLights/plugin/IsInLights.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | declare interface Game_Map { 5 | crowFlyDistance(x1, x2, y1, y2): number; 6 | } 7 | 8 | declare interface Game_CharacterBase { 9 | isInLights(): boolean; 10 | lightCovers(x, y): boolean; 11 | } 12 | -------------------------------------------------------------------------------- /src/common/manager/ColorManagerMixIn.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | export function ColorManagerMixIn(colorManager: typeof ColorManager) { 4 | colorManager.convertColorParameter = function (colorParameter: number|string) { 5 | return typeof colorParameter === "string" 6 | ? colorParameter 7 | : this.textColor(colorParameter); 8 | }; 9 | } -------------------------------------------------------------------------------- /modules/config/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2021", 4 | "lib": ["ES2021"], 5 | "module": "Node16", 6 | "moduleResolution": "NodeNext", 7 | "esModuleInterop": true, 8 | "forceConsistentCasingInFileNames": true, 9 | "strict": true, 10 | "strictPropertyInitialization": false, 11 | "skipLibCheck": true 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/codes/DualWieldDamageRateTrait/plugin/DualWieldDamageRateTrait.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | 5 | declare interface Game_BattlerBase { 6 | dualWieldRepeatsDamageRate(): number; 7 | } 8 | -------------------------------------------------------------------------------- /src/common/object/itemEffect.d.ts: -------------------------------------------------------------------------------- 1 | export declare class ItemEffect { 2 | _code: number; 3 | _dataId: number; 4 | _value1: number; 5 | _value2: number; 6 | 7 | constructor(code: number, dataId?: number, value1?: number, value2?: number); 8 | 9 | readonly code: number; 10 | readonly dataId: number; 11 | readonly value1: number; 12 | readonly value2: number; 13 | } 14 | -------------------------------------------------------------------------------- /src/common/sprite/toggleButton.d.ts: -------------------------------------------------------------------------------- 1 | export class Sprite_ToggleButton extends Sprite_Clickable { 2 | initialize(toggleHandler: () => void): void; 3 | scaleXY(): number; 4 | positionX(): number; 5 | positionY(): number; 6 | onImageName(): string; 7 | offImageName(): string; 8 | loadButtonImage(): void; 9 | onClick(): void; 10 | setImage(on: boolean): void; 11 | } 12 | -------------------------------------------------------------------------------- /src/codes/AllocateUniqueEffectCode/AllocateUniqueEffectCode.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare var uniqueEffectCodeCache: UniqueEffectCodeCache; 4 | 5 | declare interface UniqueEffectCodeCache { 6 | allocate(pluginName: string, localId: number): UniqueEffectCode; 7 | } 8 | 9 | declare interface UniqueEffectCode { 10 | readonly code: number; 11 | } 12 | -------------------------------------------------------------------------------- /scripts/generateFromTypeScript/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es2021", 4 | "lib": ["ES2021"], 5 | "module": "ES2022", 6 | "moduleResolution": "Bundler", 7 | "esModuleInterop": true, 8 | "forceConsistentCasingInFileNames": true, 9 | "strict": true, 10 | "strictPropertyInitialization": false, 11 | "skipLibCheck": true 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/codes/HealOnBattleStartTrait/plugin/HealOnBattleStartTrait.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | declare interface Game_Battler { 5 | healOnBattleStart(): void; 6 | healHpOnBattleStart(): void; 7 | healMpOnBattleStart(): void; 8 | healTpOnBattleStart(): void; 9 | } 10 | -------------------------------------------------------------------------------- /src/codes/LazyExtractData/plugin/LazyExtractData.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare namespace DataManager { 4 | var _lazyExtractData: DataManager.NoteHolder[]; 5 | 6 | function lazyExtractData(): void; 7 | function pushLazyExtractData(data: DataManager.NoteHolder): void; 8 | function lazyExtractMetadata(data: DataManager.NoteHolder): void; 9 | } 10 | -------------------------------------------------------------------------------- /scripts/buildDispatcher/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "build", 3 | "version": "0.0.1", 4 | "type": "module", 5 | "private": true, 6 | "main": "index.ts", 7 | "scripts": { 8 | "build": "run-s clean build:*", 9 | "build:ts": "tsc", 10 | "watch": "tsc -w", 11 | "test": "vitest run", 12 | "update-snapshot": "vitest run --update", 13 | "clean": "rimraf ./lib" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/codes/RemoveStateGroupEffect/plugin/RemoveStateGroupEffect.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | 5 | declare interface Game_Action { 6 | itemEffectRemoveStateGroup(target: Game_Battler, effect: MZ.Effect): void; 7 | } 8 | -------------------------------------------------------------------------------- /modules/config/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "darkplasma-plugin-config", 3 | "version": "0.0.1", 4 | "type": "module", 5 | "private": true, 6 | "main": "index.ts", 7 | "scripts": { 8 | "build": "run-s clean build:*", 9 | "build:ts": "tsc", 10 | "watch": "tsc -w", 11 | "test": "vitest run", 12 | "update-snapshot": "vitest run --update", 13 | "clean": "rimraf ./lib" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/codes/ClassSkillMeta/DarkPlasma_ClassSkillMeta.ts: -------------------------------------------------------------------------------- 1 | const _DataManager_onLoad = DataManager.onLoad; 2 | DataManager.onLoad = function (object) { 3 | _DataManager_onLoad.call(this, object); 4 | if (object === $dataClasses) { 5 | object 6 | .filter((clazz: MZ.Class) => clazz) 7 | .forEach((clazz: MZ.Class) => { 8 | this.extractArrayMetadata(clazz.learnings); 9 | }); 10 | } 11 | }; 12 | -------------------------------------------------------------------------------- /src/codes/StateGroup/StateGroup.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | type StateGroupSetting = { name: string; states: number[] }; 5 | 6 | declare interface Game_Battler { 7 | lowerOrEqualPriorityStateIds(stateId: number): number[]; 8 | isHigherOrEqualPriorityStateAffected(stateId: number): boolean; 9 | } 10 | -------------------------------------------------------------------------------- /src/codes/DisplayDatabaseDetailWindow/plugin/DisplayDatabaseDetailWindow.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | /// 5 | /// 6 | 7 | -------------------------------------------------------------------------------- /src/codes/MultiplyXParamTrait/plugin/MultiplyXParamTrait.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | declare namespace DataManager { 5 | function parseMultiplyXParamTrait(meta: string): MZ.Trait; 6 | } 7 | 8 | declare interface Game_BattlerBase { 9 | xparamRate(paramId: number): number; 10 | } 11 | -------------------------------------------------------------------------------- /src/codes/ConsumeItemImmediately/ConsumeItemImmediately.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface BattleManager { 4 | _reservedItems: MZ.Item[]; 5 | 6 | reserveItem(item: MZ.Item): void; 7 | cancelItem(): void; 8 | reservedItemCount(item: MZ.Item): number; 9 | } 10 | 11 | declare interface Game_Party { 12 | numItemsForDisplay(item: MZ.Item|MZ.Weapon|MZ.Armor): number; 13 | } 14 | -------------------------------------------------------------------------------- /src/codes/FixParameterTrait/FixParameterTrait.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | declare interface Game_BattlerBase { 5 | isParamFixed(paramId: number): boolean; 6 | fixedParameter(paramId: number): number; 7 | 8 | isXParamFixed(paramId: number): boolean; 9 | fixedXParameter(paramId: number): number; 10 | } 11 | -------------------------------------------------------------------------------- /src/codes/MaxSavefiles/plugin/DarkPlasma_MaxSavefiles.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | import { settings } from '../config/_build/DarkPlasma_MaxSavefiles_parameters'; 4 | 5 | function DataManager_MaxSavefilesMixIn(dataManager: typeof DataManager) { 6 | dataManager.maxSavefiles = function () { 7 | return settings.maxSavefiles; 8 | }; 9 | } 10 | 11 | DataManager_MaxSavefilesMixIn(DataManager); 12 | -------------------------------------------------------------------------------- /src/common/zipArray.ts: -------------------------------------------------------------------------------- 1 | export const zipArray = ( 2 | ...args: [...T] 3 | ): { [P in keyof T]: T[P][number] }[] => { 4 | if (!args.length) return []; 5 | const minLen = args.reduce((a, c) => (a.length < c.length ? a : c)).length; 6 | let result = []; 7 | for (let i = 0; i < minLen; i++) { 8 | result.push(args.map((arg) => arg[i])); 9 | } 10 | return result as any[]; 11 | }; 12 | -------------------------------------------------------------------------------- /scripts/generateFromTypeScript/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "generate-from-typescript", 3 | "version": "0.0.1", 4 | "type": "module", 5 | "private": true, 6 | "main": "index.ts", 7 | "scripts": { 8 | "build": "run-s clean build:*", 9 | "build:ts": "tsc", 10 | "watch": "tsc -w", 11 | "test": "vitest run", 12 | "update-snapshot": "vitest run --update", 13 | "clean": "rimraf ./lib" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/codes/TpCostRateSParam/plugin/TpCostRateSParam.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | /// 5 | 6 | declare interface Game_BattlerBase { 7 | tpCostRate(): number; 8 | } 9 | -------------------------------------------------------------------------------- /src/codes/DiscardItemCommand/plugin/DiscardItemCommand.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | declare interface Game_Party { 5 | canDiscard(item: MZ.Item|MZ.Weapon|MZ.Armor|null): boolean; 6 | } 7 | 8 | declare interface Scene_Item { 9 | discardItem(): void; 10 | } 11 | 12 | declare class Window_ItemCommand {} 13 | -------------------------------------------------------------------------------- /src/common/window/labelAndValueTextsWindow.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | import { LabelAndValueText } from "../object/labelAndValueText.js"; 4 | 5 | export declare class Window_LabelAndValueTexts extends Window_Base { 6 | initialize(rect: Rectangle): void; 7 | drawPercent(): void; 8 | valueWidth(): number; 9 | labelAndValueTexts(): LabelAndValueText[]; 10 | refresh(): void; 11 | } 12 | -------------------------------------------------------------------------------- /src/codes/OrderEquip/OrderEquip.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | declare interface Window_Selectable { 5 | sortWeapons(weapons: MZ.Weapon[]): MZ.Weapon[]; 6 | sortArmors(armors: MZ.Armor[]): MZ.Armor[]; 7 | } 8 | 9 | declare interface Window_ItemList { 10 | sortEquips(): void; 11 | isWeaponList(): boolean; 12 | isArmorList(): boolean; 13 | } 14 | -------------------------------------------------------------------------------- /scripts/generateFromTypeScript/generateVersion.ts: -------------------------------------------------------------------------------- 1 | import { PluginConfigSchema } from "../../modules/config/configSchema"; 2 | 3 | export function generateVersion(config: PluginConfigSchema) { 4 | return `export const versionOf${config.name} = '${config.histories.find(history => history.version)?.version}'` 5 | } 6 | 7 | export function generateVersionType(config: PluginConfigSchema) { 8 | return `export const versionOf${config.name}: string;`; 9 | } 10 | -------------------------------------------------------------------------------- /src/codes/FixEscapeRatio/DarkPlasma_FixEscapeRatio.js: -------------------------------------------------------------------------------- 1 | import { settings } from './_build/DarkPlasma_FixEscapeRatio_parameters'; 2 | 3 | BattleManager.makeEscapeRatio = function () { 4 | this._escapeRatio = settings.ratio / 100; 5 | }; 6 | 7 | const _onEscapeFailure = BattleManager.onEscapeFailure; 8 | BattleManager.onEscapeFailure = function () { 9 | _onEscapeFailure.call(this); 10 | this._escapeRatio = settings.ratio / 100; // 逃走失敗時の増加分を無視する 11 | }; 12 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["prettier"], 3 | "rules": { 4 | "no-var": "error", 5 | "no-mixed-spaces-and-tabs": "error", 6 | "no-trailing-spaces": "error", 7 | "space-infix-ops": "error", 8 | "dot-notation": "error", 9 | "eqeqeq": "error", 10 | "arrow-spacing": "error", 11 | "no-console": "error" 12 | }, 13 | "parserOptions": { 14 | "sourceType": "module" 15 | }, 16 | "env": { 17 | "es6": true 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /modules/config/struct/Rectangle.ts: -------------------------------------------------------------------------------- 1 | import { createNumberParam, createStruct, } from '../../../modules/config/createParameter.js'; 2 | 3 | export const structRectangle = createStruct("Rectangle", [ 4 | createNumberParam("x", { 5 | text: "X座標", 6 | }), 7 | createNumberParam("y", { 8 | text: "Y座標", 9 | }), 10 | createNumberParam("width", { 11 | text: "幅", 12 | }), 13 | createNumberParam("height", { 14 | text: "高さ", 15 | }), 16 | ]); 17 | 18 | -------------------------------------------------------------------------------- /scripts/generateDirectory/generateDirectory.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | 3 | const { generateConfig } = require('../generateConfig/generateConfig'); 4 | 5 | async function generateDirectory(destDir) { 6 | fs.mkdir(destDir, { recursive: true }, (err) => { 7 | if (err) { 8 | throw err; 9 | } 10 | console.log(`Directory created.: ${destDir}`); 11 | generateConfig(destDir); 12 | }); 13 | } 14 | 15 | module.exports = { 16 | generateDirectory, 17 | }; 18 | -------------------------------------------------------------------------------- /src/templates/config.ejs: -------------------------------------------------------------------------------- 1 | <%- pluginName %>: 2 | name: <%- pluginName %> 3 | year: <%- year %> 4 | license: <%- license %> 5 | histories: 6 | - date: <%- year %>/ 7 | version: 1.0.0 8 | description: '' 9 | 10 | locates: 11 | - ja 12 | plugindesc: 13 | ja: '' 14 | parameters: [] 15 | commands: [] 16 | structures: 17 | dependencies: 18 | base: [] 19 | orderAfter: [] 20 | orderBefore: [] 21 | help: 22 | ja: | 23 | プラグイン説明 24 | -------------------------------------------------------------------------------- /src/codes/AutoStoreItemToStorage/AutoStoreItemToStorage.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | declare interface Game_Temp { 5 | _isAutoStoreItemEnabled: boolean; 6 | isAutoStoreItemEnabled(): boolean; 7 | enableAutoStoreItem(): void; 8 | disableAutoStoreItem(): void; 9 | } 10 | 11 | declare interface Game_Party { 12 | autoStoreAmount(item: MZ.Item|MZ.Weapon|MZ.Armor, amount: number): number; 13 | } 14 | -------------------------------------------------------------------------------- /src/codes/CriticalDamageRateTrait/plugin/CriticalDamageRateTrait.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | 5 | declare interface Game_BattlerBase { 6 | criticalDamageRate(): number; 7 | defaultCriticalDamageRate(): number; 8 | } 9 | 10 | declare namespace Game_BattlerBase { 11 | var TRAIT_CRITICAL_DAMAGE_RATE: number; 12 | } 13 | -------------------------------------------------------------------------------- /src/codes/FreezePlayer/DarkPlasma_FreezePlayer.js: -------------------------------------------------------------------------------- 1 | import { settings } from './_build/DarkPlasma_FreezePlayer_parameters'; 2 | 3 | /** 4 | * @param {Game_Player.prototype} gamePlayer 5 | */ 6 | function Game_Player_FreezeMixIn(gamePlayer) { 7 | const _canMove = gamePlayer.canMove; 8 | gamePlayer.canMove = function () { 9 | return _canMove.call(this) && (!settings.switchId || !$gameSwitches.value(settings.switchId)); 10 | }; 11 | } 12 | 13 | Game_Player_FreezeMixIn(Game_Player.prototype); 14 | -------------------------------------------------------------------------------- /src/codes/EquipItemInMenuItem/plugin/EquipItemInMenuItem.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | declare interface Scene_Item { 5 | determineEquip(): void; 6 | equipItem(): void; 7 | } 8 | 9 | declare interface Window_MenuActor { 10 | _equip: MZ.Weapon|MZ.Armor|undefined; 11 | 12 | selectForEquip(equip: MZ.Weapon|MZ.Armor): void; 13 | } 14 | 15 | declare class Window_ItemCommand {} 16 | -------------------------------------------------------------------------------- /src/codes/SystemTypeIcon/plugin/SystemTypeIcon.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | type ParamName = 'mhp'|'mmp'|'atk'|'def'|'mat'|'mdf'|'agi'|'luk'; 4 | 5 | declare interface Game_System { 6 | elementIconIndex(elementId: number): number; 7 | largeDebuffStatusIconIndex(paramName: ParamName): number; 8 | smallDebuffStatusIconIndex(paramName: ParamName): number; 9 | weaponTypeIconIndex(weaponTypeId: number): number; 10 | armorTypeIconIndex(armorTypeId: number): number; 11 | } 12 | -------------------------------------------------------------------------------- /src/common/object/labelAndValueText.js: -------------------------------------------------------------------------------- 1 | export class LabelAndValueText { 2 | /** 3 | * @param {string} label 4 | * @param {?string} valueText 5 | */ 6 | constructor(label, valueText) { 7 | this._label = label; 8 | this._valueText = valueText; 9 | } 10 | 11 | /** 12 | * @return {string} 13 | */ 14 | get label() { 15 | return this._label; 16 | } 17 | 18 | /** 19 | * @return {string} 20 | */ 21 | get valueText() { 22 | return this._valueText || ''; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /src/common/window/withDetailWindow.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | 5 | declare interface Window_Selectable { 6 | _detailWindow?: Window_DetailText; 7 | 8 | setDetailWindow(detailWindow: Window_DetailText): void; 9 | } 10 | 11 | declare function Window_WithDetailWindowMixIn(openDetailKey: string, windowClass: Window_Selectable): void; 12 | -------------------------------------------------------------------------------- /src/codes/NameWindow/NameWindow.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare namespace ColorManager { 4 | function colorByName(name: string): string | number; 5 | function coloredName(name: string): string; 6 | } 7 | 8 | declare interface Game_Actors { 9 | byName(name: string): Game_Actor | null; 10 | } 11 | 12 | declare interface Window_Message { 13 | convertNameWindow(text: string): string; 14 | findNameWindowTextInfo(text: string): { name: string; eraseTarget: RegExp | string } | null; 15 | } 16 | -------------------------------------------------------------------------------- /src/common/kindFromData.js: -------------------------------------------------------------------------------- 1 | const KIND = { 2 | NONE: 0, 3 | ITEM: 1, 4 | WEAPON: 2, 5 | ARMOR: 3, 6 | }; 7 | 8 | /** 9 | * アイテムデータから種別定数を返す 10 | * @param {MZ.Item | MZ.Weapon | MZ.Armor} data 11 | * @return {number} 12 | */ 13 | export function kindFromData(data) { 14 | if (DataManager.isItem(data)) { 15 | return KIND.ITEM; 16 | } else if (DataManager.isWeapon(data)) { 17 | return KIND.WEAPON; 18 | } else if (DataManager.isArmor(data)) { 19 | return KIND.ARMOR; 20 | } 21 | return KIND.NONE; 22 | } 23 | -------------------------------------------------------------------------------- /src/common/scene/bookLayoutMixIn.d.ts: -------------------------------------------------------------------------------- 1 | type Constructor = new (...args: any[]) => T; 2 | 3 | export declare class Scene_BookLayoutMixInClass extends Scene_MenuBase { 4 | percentWindowRect(): Rectangle; 5 | percentWindowHeight(): number; 6 | indexWindowRect(): Rectangle; 7 | indexWindowWidth(): number; 8 | indexWindowHeight(): number; 9 | mainWindowRect(): Rectangle; 10 | } 11 | 12 | export declare function Scene_BookLayoutMixIn(SceneClass: TScene): typeof Scene_BookLayoutMixInClass; 13 | -------------------------------------------------------------------------------- /src/codes/CustomKeyHandler/CustomKeyHandler.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface CustomKeyMethod { 4 | _isTriggered: () => boolean; 5 | _process: (self: Window_Selectable) => void; 6 | _isEnabled: (self: Window_Selectable) => boolean; 7 | } 8 | 9 | declare interface Window_Selectable { 10 | customKeyMethods: CustomKeyMethod[]; 11 | isCustomKeyEnabled(key: string): boolean; 12 | playCustomKeySound(key: string): void; 13 | customKeySound(key: string): MZ.AudioFile|undefined; 14 | } 15 | -------------------------------------------------------------------------------- /src/codes/TextShadow/TextShadow.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | type TextShadow = { 4 | blur: number; 5 | color: string; 6 | offsetX: number; 7 | offsetY: number; 8 | }; 9 | 10 | declare interface Bitmap { 11 | shadow: TextShadow|undefined; 12 | 13 | setTextShadow(shadow: TextShadow|undefined): void; 14 | } 15 | 16 | declare interface Window_Base { 17 | processShadowChange(shadowId: number): void; 18 | changeTextShadow(shadow: TextShadow|undefined): void; 19 | resetTextShadow(): void; 20 | } 21 | -------------------------------------------------------------------------------- /src/codes/CommonDropItemSet/CommonDropItemSet.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | type DropItemSet = { 4 | dropRate: number; 5 | items: number[]; 6 | weapons: number[]; 7 | armors: number[]; 8 | } 9 | 10 | declare interface Game_Troop { 11 | isCommonItemDropSetEnabled(): boolean; 12 | makeCommonDropItems(): (MZ.Item | MZ.Weapon | MZ.Armor | null)[]; 13 | } 14 | 15 | declare interface Game_Enemy { 16 | isCommonItemDropSetEnabled(): boolean; 17 | makeCommonDropItems(): (MZ.Item | MZ.Weapon | MZ.Armor | null)[]; 18 | } 19 | -------------------------------------------------------------------------------- /src/codes/UnusableItemWithMapEvent/DarkPlasma_UnusableItemWithMapEvent.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @param {Game_BattlerBase.prototype} gameBattlerBase 3 | */ 4 | function Game_BattlerBase_UnusableItemWithMapEvntMixIn(gameBattlerBase: Game_BattlerBase) { 5 | const _isOccasionOk = gameBattlerBase.isOccasionOk; 6 | gameBattlerBase.isOccasionOk = function (item) { 7 | return _isOccasionOk.call(this, item) && (!item.meta.unusableWithMapEvent || !$gameMap.isEventRunning()); 8 | }; 9 | } 10 | 11 | Game_BattlerBase_UnusableItemWithMapEvntMixIn(Game_BattlerBase.prototype); 12 | -------------------------------------------------------------------------------- /src/codes/AdjustEnemyPosition/DarkPlasma_AdjustEnemyPosition.js: -------------------------------------------------------------------------------- 1 | const DEFAULT_WIDTH = 816 - 4 * 2; 2 | const DEFAULT_HEIGHT = 624 - 4 * 2; 3 | 4 | const _Game_Enemy_screenX = Game_Enemy.prototype.screenX; 5 | Game_Enemy.prototype.screenX = function () { 6 | return Math.floor((_Game_Enemy_screenX.call(this) / DEFAULT_WIDTH) * Graphics.boxWidth); 7 | }; 8 | 9 | const _Game_Enemy_screenY = Game_Enemy.prototype.screenY; 10 | Game_Enemy.prototype.screenY = function () { 11 | return Math.floor((_Game_Enemy_screenY.call(this) / DEFAULT_HEIGHT) * Graphics.boxHeight); 12 | }; 13 | -------------------------------------------------------------------------------- /src/codes/AdditionalAttackAnimation/AdditionalAttackAnimation.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | type AdditionalAnimation = { 4 | animation: number; 5 | onlyForSomeEnemies: boolean; 6 | enemies: number[]; 7 | onlyForSomeStates: boolean; 8 | states: number[]; 9 | }; 10 | 11 | declare interface Game_Battler { 12 | isAdditionalAnimationTarget(additionalAnimation: AdditionalAnimation): boolean; 13 | } 14 | 15 | declare interface Window_BattleLog { 16 | showAdditionalAnimation(subject: Game_Battler, targets: Game_Battler[]): void; 17 | } 18 | -------------------------------------------------------------------------------- /src/common/window/obtainEscapeParamText.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | export function Window_ObtainEscapeParamTextMixIn(windowClass: Window_Base) { 4 | /** 5 | * [YYY]のYYYを取り出し、カンマ区切りで配列化して返す 6 | */ 7 | windowClass.obtainEscapeParamText = function(textState: Window_Base.TextState): string[] { 8 | const arr = /^\[(.+?)\]/.exec(textState.text.slice(textState.index)); 9 | if (arr) { 10 | textState.index += arr[0].length; 11 | return arr[1].split(','); 12 | } else { 13 | return []; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /src/codes/SealItem/SealItem.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | declare namespace DataManager { 5 | function sealItems(object: DataManager.NoteHolder): number[]; 6 | function isHealItem(item: MZ.Item): boolean; 7 | function isResurrectionItem(item: MZ.Item): boolean; 8 | } 9 | 10 | declare interface Game_Map { 11 | isItemSealed(item: MZ.Item): boolean; 12 | isAllItemSealed(): boolean; 13 | } 14 | 15 | declare interface Game_Actor { 16 | isItemSealed(item: MZ.Item): boolean; 17 | } -------------------------------------------------------------------------------- /src/codes/AddSParamTrait/plugin/AddSParamTrait.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | declare namespace DataManager { 5 | function parseAddSParamTraits(meta: string): MZ.Trait[]; 6 | function parseAddSParamTrait(line: string): MZ.Trait; 7 | function sparamKeyToSParamId(key: string): number; 8 | function sparamIdToAddSparamDataId(paramId: number): number; 9 | } 10 | 11 | declare interface Game_BattlerBase { 12 | sparamPlus(paramId: number): number; 13 | } 14 | -------------------------------------------------------------------------------- /src/codes/SurpriseControlWithEventBattle/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_SurpriseControlWithEventBattle: 2 | name: DarkPlasma_SurpriseControlWithEventBattle 3 | year: 2023 4 | license: MIT 5 | histories: 6 | - date: 2023/05/06 7 | version: 1.0.0 8 | description: '公開' 9 | 10 | locates: 11 | - ja 12 | plugindesc: 13 | ja: 'イベントコマンド「戦闘の処理」で先制攻撃/不意打ちの判定を行う' 14 | parameters: [] 15 | commands: [] 16 | structures: 17 | dependencies: 18 | base: [] 19 | orderAfter: [] 20 | orderBefore: [] 21 | help: 22 | ja: | 23 | イベントコマンド「戦闘の処理」でも先制攻撃/不意打ちの判定を行います。 24 | -------------------------------------------------------------------------------- /src/codes/ErasePictures/DarkPlasma_ErasePictures.js: -------------------------------------------------------------------------------- 1 | import { pluginName } from '../../common/pluginName'; 2 | import { command_erasePictures, parseArgs_erasePictures } from './_build/DarkPlasma_ErasePictures_commands'; 3 | 4 | PluginManager.registerCommand(pluginName, command_erasePictures, function (args) { 5 | const parsedArgs = parseArgs_erasePictures(args); 6 | $gameScreen.erasePictures(parsedArgs.start, parsedArgs.end); 7 | }); 8 | 9 | Game_Screen.prototype.erasePictures = function (start, end) { 10 | this._pictures.fill(null, this.realPictureId(start), this.realPictureId(end) + 1); 11 | }; 12 | -------------------------------------------------------------------------------- /scripts/generateTemplate/generateDirectory.ts: -------------------------------------------------------------------------------- 1 | import fs from 'fs'; 2 | 3 | import { generateConfig } from './generateConfig.js'; 4 | 5 | export async function generateDirectory(destDir: string) { 6 | fs.mkdir(`${destDir}/config`, { recursive: true }, (err) => { 7 | if (err) { 8 | throw err; 9 | } 10 | console.log(`Directory created.: ${destDir}/config`); 11 | fs.mkdir(`${destDir}/plugin`, (err) => { 12 | if (err) { 13 | throw err; 14 | } 15 | console.log(`Directory created.: ${destDir}/plugin`); 16 | generateConfig(destDir); 17 | }); 18 | }); 19 | } 20 | -------------------------------------------------------------------------------- /src/codes/Rosedale_CAP_8DirBugFix/Rosedale_CAP_8DirBugFix.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare namespace DataManager { 4 | function characterNameToActor(characterName: string): MZ.Actor|undefined; 5 | 6 | interface SaveFileInfo { 7 | partyMembers?: number[]; 8 | } 9 | } 10 | 11 | declare interface Game_Actor { 12 | maxCharacterPattern(): number; 13 | defaultCharacterPattern(): number; 14 | characterPatternYCount(): number; 15 | } 16 | 17 | declare interface Window_Base { 18 | drawActorCharacterWith8Dir(actor: Game_Actor, x: number, y: number): void; 19 | } 20 | -------------------------------------------------------------------------------- /src/codes/MaxItemCount/MaxItemCount.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Party { 4 | _defaultMaxItemCount: number; 5 | _maxItemCount: { 6 | [key: string]: number 7 | }; 8 | 9 | changeDefaultMaxItemCount(count: number): void; 10 | changeMaxItemCount(item: MZ.Item|MZ.Weapon|MZ.Armor, count: number): void; 11 | changedMaxItemCount(item: MZ.Item|MZ.Weapon|MZ.Armor): number|null; 12 | itemMaxCountKey(item: MZ.Item|MZ.Weapon|MZ.Armor): string|null; 13 | maxOfMaxItemCount(): number; 14 | setItemCountToMax(item: MZ.Item|MZ.Weapon|MZ.Armor): void; 15 | 16 | } 17 | -------------------------------------------------------------------------------- /src/codes/SaveEventLocations/SaveEventLocations.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Map { 4 | mustSaveEventLocations(): boolean; 5 | } 6 | 7 | declare interface Game_Event { 8 | mustSaveLocation(): boolean; 9 | mustRestoreLocation(): boolean; 10 | restoreLocation(): void; 11 | } 12 | 13 | declare interface Game_System { 14 | _eventLocations: Game_EventLocations; 15 | 16 | storeEventLocation(mapId: number, eventId: number, x: number, y: number, direction: number): void; 17 | fetchSavedEventLocation(mapId: number, eventId: number): Game_EventLocation|undefined; 18 | } 19 | -------------------------------------------------------------------------------- /src/codes/SkillWeaponTypeTrait/plugin/SkillWeaponTypeTrait.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | 5 | declare namespace DataManager { 6 | function extractSkillWeaponTypeMeta(data: MZ.Actor | MZ.Class | MZ.Weapon | MZ.Armor | MZ.State | MZ.Enemy): void; 7 | } 8 | 9 | declare interface Game_Actor { 10 | skillWeaponTypeIds(): number[]; 11 | } 12 | 13 | declare interface Scene_Boot { 14 | extractSkillWeaponTypeMeta(): void; 15 | } 16 | -------------------------------------------------------------------------------- /src/codes/AutoStoreItemToStorage/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_AutoStoreItemToStorage: 2 | name: DarkPlasma_AutoStoreItemToStorage 3 | year: 2023 4 | license: MIT 5 | histories: 6 | - date: 2023/04/16 7 | version: 1.0.0 8 | description: '公開' 9 | 10 | locates: 11 | - ja 12 | plugindesc: 13 | ja: '溢れたアイテムを自動で倉庫に送る' 14 | parameters: [] 15 | commands: [] 16 | structures: 17 | dependencies: 18 | base: 19 | - name: DarkPlasma_ItemStorage 20 | version: 1.3.1 21 | orderAfter: [] 22 | orderBefore: [] 23 | help: 24 | ja: | 25 | 入手するアイテムのうち、 26 | 所持限界を超える数を自動で倉庫に送ります。 27 | -------------------------------------------------------------------------------- /src/codes/TinyMedal/plugin/TinyMedal.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_System { 4 | _medalRewardsCompletion: {[key: string]: boolean}; 5 | 6 | initializeMedalRewardsCompletion(): void; 7 | completeMedalReward(rewardKey: string): void; 8 | isMedalRewardCompleted(rewardKey: string): boolean; 9 | processTinyMedal(): void; 10 | } 11 | 12 | declare interface Game_Party { 13 | numMedalItems(): number; 14 | hasMedalItem(): boolean; 15 | loseAllMedalItem(): void; 16 | } 17 | 18 | declare interface Game_Interpreter { 19 | processReservedRewardMessages(): void; 20 | } 21 | -------------------------------------------------------------------------------- /modules/config/struct/Se.ts: -------------------------------------------------------------------------------- 1 | import { createFileParam, createNumberParam, createStruct } from "../createParameter.js"; 2 | 3 | export const structSe = createStruct("Se", [ 4 | createFileParam("name", { 5 | text: "SEファイル", 6 | dir: "audio/se", 7 | }), 8 | createNumberParam("volume", { 9 | text: "音量", 10 | default: 90, 11 | max: 100, 12 | min: 0, 13 | }), 14 | createNumberParam("pitch", { 15 | text: "ピッチ", 16 | default: 100, 17 | max: 150, 18 | min: 50, 19 | }), 20 | createNumberParam("pan", { 21 | text: "位相", 22 | max: 100, 23 | min: -100, 24 | }), 25 | ]); -------------------------------------------------------------------------------- /src/codes/ArcGaugeSample/plugin/ArcGaugeSample.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Bitmap { 4 | fillArc( 5 | x: number, 6 | y: number, 7 | radius: number, 8 | width: number, 9 | startAngle: number, 10 | endAngle: number, 11 | color: string, 12 | counterClockwise?: boolean 13 | ): void; 14 | gradientFillArc( 15 | x: number, 16 | y: number, 17 | radius: number, 18 | width: number, 19 | startAngle: number, 20 | endAngle: number, 21 | color1: string, 22 | color2: string, 23 | counterClockwise?: boolean 24 | ): void; 25 | } 26 | -------------------------------------------------------------------------------- /src/codes/FixEscapeRatio/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_FixEscapeRatio: 2 | name: DarkPlasma_FixEscapeRatio 3 | year: 2022 4 | license: MIT 5 | histories: 6 | - date: 2022/05/29 7 | version: 1.0.0 8 | description: '公開' 9 | 10 | locates: 11 | - ja 12 | plugindesc: 13 | ja: '逃走確率を固定値にする' 14 | parameters: 15 | - param: ratio 16 | text: 17 | ja: 逃走確率(%) 18 | type: number 19 | default: 50 20 | max: 100 21 | commands: [] 22 | structures: 23 | dependencies: 24 | base: [] 25 | orderAfter: [] 26 | orderBefore: [] 27 | help: 28 | ja: | 29 | 逃走確率を固定値に設定します。 30 | -------------------------------------------------------------------------------- /src/codes/StrikeWithBackOfSword/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_StrikeWithBackOfSword: 2 | name: DarkPlasma_StrikeWithBackOfSword 3 | year: 2022 4 | license: MIT 5 | histories: 6 | - date: 2022/07/31 7 | version: 1.0.0 8 | description: '公開' 9 | 10 | locates: 11 | - ja 12 | plugindesc: 13 | ja: 'トドメを刺せないスキル・アイテム' 14 | parameters: [] 15 | commands: [] 16 | structures: 17 | dependencies: 18 | base: [] 19 | orderAfter: [] 20 | orderBefore: [] 21 | help: 22 | ja: | 23 | メモ欄に以下のように記述したスキルでは 24 | 相手のHP以上のダメージを与えられません。 25 | (必ず、HP1以上残ります) 26 | 27 | 28 | -------------------------------------------------------------------------------- /modules/config/struct/Bgm.ts: -------------------------------------------------------------------------------- 1 | import { createFileParam, createNumberParam, createStruct } from "../createParameter.js"; 2 | 3 | export const structBgm = createStruct("Bgm", [ 4 | createFileParam("name", { 5 | text: "BGMファイル", 6 | dir: "audio/bgm", 7 | }), 8 | createNumberParam("volume", { 9 | text: "音量", 10 | default: 90, 11 | max: 100, 12 | min: 0, 13 | }), 14 | createNumberParam("pitch", { 15 | text: "ピッチ", 16 | default: 100, 17 | max: 150, 18 | min: 50, 19 | }), 20 | createNumberParam("pan", { 21 | text: "位相", 22 | max: 100, 23 | min: -100, 24 | }), 25 | ]); -------------------------------------------------------------------------------- /scripts/generateDirectory/command.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | 3 | const { generateDirectory } = require('./generateDirectory'); 4 | 5 | const codeType = (() => { 6 | switch (process.argv[3]) { 7 | case 'e': 8 | return 'excludes'; 9 | default: 10 | return 'codes'; 11 | } 12 | })(); 13 | const directoryPath = path.resolve(__dirname, '..', '..', 'src', codeType, process.argv[2]); 14 | 15 | (async () => { 16 | try { 17 | await generateDirectory(directoryPath); 18 | } catch (e) { 19 | console.error(`[ERROR] ${directoryPath}`); 20 | console.error(e); 21 | console.error(''); 22 | } 23 | })(); 24 | -------------------------------------------------------------------------------- /src/codes/FixEquip/DarkPlasma_FixEquip.js: -------------------------------------------------------------------------------- 1 | import { settings } from './_build/DarkPlasma_FixEquip_parameters'; 2 | 3 | const _Game_Actor_isEquipChangeOk = Game_Actor.prototype.isEquipChangeOk; 4 | Game_Actor.prototype.isEquipChangeOk = function (slotId) { 5 | return _Game_Actor_isEquipChangeOk.call(this, slotId) && !this.isEquipTypeFixed(this.equipSlots()[slotId]); 6 | }; 7 | 8 | Game_Actor.prototype.isEquipTypeFixed = function (etypeId) { 9 | return settings.fixEquips 10 | .filter((fixEquip) => fixEquip.switchId > 0 && $gameSwitches.value(fixEquip.switchId)) 11 | .some((fixEquip) => fixEquip.equipTypes.includes(etypeId)); 12 | }; 13 | -------------------------------------------------------------------------------- /src/codes/NoStateBuffMap/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_NoStateBuffMap: 2 | name: DarkPlasma_NoStateBuffMap 3 | year: 2022 4 | license: MIT 5 | histories: 6 | - date: 2022/08/06 7 | version: 1.0.0 8 | description: '公開' 9 | 10 | locates: 11 | - ja 12 | plugindesc: 13 | ja: '戦闘不能以外のステート・バフにかからないマップ' 14 | parameters: [] 15 | commands: [] 16 | structures: 17 | dependencies: 18 | base: [] 19 | orderAfter: [] 20 | orderBefore: [] 21 | help: 22 | ja: | 23 | メモ欄に と書かれたマップでは 24 | 戦闘不能以外のステート・バフにかかりません。 25 | 26 | すでにステートやバフがかかった状態でそのマップに侵入した場合、 27 | ステートやバフが解除されます。 28 | -------------------------------------------------------------------------------- /src/codes/VisibleBattleLogWindow/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_VisibleBattleLogWindow: 2 | name: DarkPlasma_VisibleBattleLogWindow 3 | year: 2020 4 | license: MIT 5 | histories: 6 | - date: '2021/07/05' 7 | version: '1.0.2' 8 | description: 'MZ 1.3.2に対応' 9 | - date: '2021/06/22' 10 | version: '1.0.1' 11 | description: 'サブフォルダからの読み込みに対応' 12 | - date: '2020/09/18' 13 | version: '1.0.0' 14 | description: '公開' 15 | 16 | locates: 17 | - ja 18 | plugindesc: 19 | ja: 'バトルログウィンドウに縁をつける' 20 | parameters: [] 21 | commands: [] 22 | structures: 23 | help: 24 | ja: | 25 | バトルログウィンドウに縁をつけます。 26 | -------------------------------------------------------------------------------- /src/common/window/detailWindow.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Window_DetailText extends Window_Scrollable { 4 | _text: string; 5 | 6 | initialize(rect: Rectangle): void; 7 | setItem(item: DataManager.NoteHolder|null): void; 8 | setText(text: string): void; 9 | detailText(item: DataManager.NoteHolder|null): string; 10 | mustTrimText(): boolean; 11 | drawDetail(detail: string): void; 12 | baseLineY(): number; 13 | heightAdjustment(): number; 14 | refresh(): void; 15 | processCursorMove(): void; 16 | isCursorMovable(): boolean; 17 | cursorDown(): void; 18 | cursorUp(): void; 19 | } 20 | -------------------------------------------------------------------------------- /src/templates/configTs.ejs: -------------------------------------------------------------------------------- 1 | import { ConfigDefinitionBuilder } from '<%- pathToConfigBuilder %>'; 2 | import { PluginHistorySchema } from '<%- pathToConfigSchema %>'; 3 | import {} from '<%- pathToCreateParameter %>'; 4 | import { dedent } from '@qnighy/dedent'; 5 | 6 | const histories: PluginHistorySchema[] = [ 7 | { 8 | date: "<%- year %>/", 9 | version: "1.0.0", 10 | description: "", 11 | } 12 | ]; 13 | 14 | export const config = new ConfigDefinitionBuilder( 15 | "<%- pluginName %>", 16 | <%- year %>, 17 | "" 18 | ) 19 | .withHistories(histories) 20 | .withLicense("<%- license %>") 21 | .withHelp(dedent``) 22 | .build(); 23 | -------------------------------------------------------------------------------- /src/codes/AlwaysActive/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_AlwaysActive: 2 | name: DarkPlasma_AlwaysActive 3 | year: 2021 4 | license: MIT 5 | histories: 6 | - date: 2023/02/23 7 | version: 1.0.1 8 | description: 'TypeScript移行' 9 | - description: 'デフォルト言語を設定' 10 | - date: 2021/12/11 11 | version: 1.0.0 12 | description: '公開' 13 | 14 | locates: 15 | - ja 16 | plugindesc: 17 | ja: 'ウィンドウが非アクティブの時にもゲームを止めなくする' 18 | parameters: [] 19 | commands: [] 20 | structures: 21 | dependencies: 22 | base: [] 23 | orderAfter: [] 24 | orderBefore: [] 25 | help: 26 | ja: | 27 | ウィンドウが非アクティブの場合にもゲームを止めません。 28 | -------------------------------------------------------------------------------- /src/codes/FreezePlayer/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_FreezePlayer: 2 | name: DarkPlasma_FreezePlayer 3 | year: 2022 4 | license: MIT 5 | histories: 6 | - date: 2022/04/10 7 | version: 1.0.0 8 | description: '公開' 9 | 10 | locates: 11 | - ja 12 | plugindesc: 13 | ja: 'プレイヤーの移動を禁止する' 14 | parameters: 15 | - param: switchId 16 | text: 17 | ja: スイッチ 18 | desc: 19 | ja: このスイッチがONの間、プレイヤーは移動できません。 20 | type: switch 21 | commands: [] 22 | structures: 23 | dependencies: 24 | base: [] 25 | orderAfter: [] 26 | orderBefore: [] 27 | help: 28 | ja: | 29 | スイッチがONの間、プレイヤーの移動を禁止します。 30 | -------------------------------------------------------------------------------- /src/codes/FilterEquip_RecentlyGained/FilterEquip_RecentlyGained.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | 5 | declare interface Game_Party { 6 | _gainWeaponHistory: number[]; 7 | _gainArmorHistory: number[]; 8 | 9 | pushGainWeaponHistory(weapon: MZ.Weapon): void; 10 | pushGainArmorHistory(armor: MZ.Armor): void; 11 | gainWeaponHistory(): number[]; 12 | gainArmorHistory(): number[]; 13 | isRecentlyGained(item: MZ.Item|MZ.Weapon|MZ.Armor): boolean; 14 | } 15 | 16 | declare class EquipFilterBuilder {} 17 | -------------------------------------------------------------------------------- /src/codes/AlwaysCritical/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_AlwaysCritical: 2 | name: DarkPlasma_AlwaysCritical 3 | year: 2020 4 | license: MIT 5 | histories: 6 | - date: '2021/07/05' 7 | version: '1.0.2' 8 | description: 'MZ 1.3.2に対応' 9 | - date: '2021/06/22' 10 | version: '1.0.1' 11 | description: 'サブフォルダからの読み込みに対応' 12 | - date: '2020/09/10' 13 | version: '1.0.0' 14 | description: '公開' 15 | 16 | locates: 17 | - ja 18 | plugindesc: 19 | ja: '常時クリティカルが出るスキル' 20 | parameters: [] 21 | commands: [] 22 | structures: 23 | help: 24 | ja: | 25 | スキルのメモ欄にと書くと、 26 | そのスキルが常にクリティカルヒットします。 27 | -------------------------------------------------------------------------------- /src/codes/StateGroup2/plugin/StateGroup2.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | type Data_StateGroup = { 4 | id: number; 5 | name: string; 6 | stateIds: number[]; 7 | }; 8 | 9 | declare namespace DataManager { 10 | function registerStateToGroup(stateId: number, groupName: string): void; 11 | function allocateStateGroup(groupName: string): Data_StateGroup; 12 | function stateGroupByName(groupName: string): Data_StateGroup|undefined; 13 | function stateGroup(groupId: number): Data_StateGroup|undefined; 14 | } 15 | 16 | declare interface Game_BattlerBase { 17 | isStateGroupAffected(groupId: number): boolean; 18 | } 19 | -------------------------------------------------------------------------------- /src/codes/SurpriseControl/SurpriseControl.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface BattleManager { 4 | forcePreemptive(): boolean; 5 | noPreemptive(): boolean; 6 | forceSurprise(): boolean; 7 | noSurprise(): boolean; 8 | } 9 | 10 | declare interface Game_Troop { 11 | hasForcePreemptiveFlag(): boolean; 12 | hasNoPreemptiveFlag(): boolean; 13 | hasForceSurpriseFlag(): boolean; 14 | hasNoSurpriseFlag(): boolean; 15 | } 16 | 17 | declare interface Game_Enemy { 18 | hasForcePreemptiveFlag(): boolean; 19 | hasNoPreemptiveFlag(): boolean; 20 | hasForceSurpriseFlag(): boolean; 21 | hasNoSurpriseFlag(): boolean; 22 | } 23 | -------------------------------------------------------------------------------- /src/codes/SkillCostExtensionView/SkillCostExtensionView.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | declare namespace ColorManager { 5 | function hpCostColor(): string; 6 | function itemCostColor(): string; 7 | function goldCostColor(): string; 8 | function variableCostColor(): string; 9 | function additionalCostColor(colorSetting: string|number): string; 10 | } 11 | 12 | declare interface Window_SkillList { 13 | drawItemCost(skill: MZ.Skill, x: number, y: number, width: number): void; 14 | drawVariableCost(skill: MZ.Skill, x: number, y: number, width: number): void; 15 | } 16 | -------------------------------------------------------------------------------- /src/codes/EnemyLevel/DarkPlasma_EnemyLevel.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | import { settings } from "./_build/DarkPlasma_EnemyLevel_parameters"; 4 | 5 | function Game_Enemy_LevelMixIn(gameEnemy: Game_Enemy) { 6 | Object.defineProperty(gameEnemy, "level", { 7 | get: function () { 8 | return this._level; 9 | }, 10 | configurable: true, 11 | }); 12 | 13 | const _setup = gameEnemy.setup; 14 | gameEnemy.setup = function (enemyId, x, y) { 15 | this._level = Number($dataEnemies[enemyId].meta.level || settings.defaultLevel); 16 | _setup.call(this, enemyId, x, y); 17 | }; 18 | } 19 | 20 | Game_Enemy_LevelMixIn(Game_Enemy.prototype); 21 | -------------------------------------------------------------------------------- /src/codes/StateRateAlias/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_StateRateAlias: 2 | name: DarkPlasma_StateRateAlias 3 | year: 2021 4 | license: MIT 5 | histories: 6 | - date: '2021/11/17' 7 | version: '1.0.0' 8 | description: '公開' 9 | 10 | locates: 11 | - ja 12 | plugindesc: 13 | ja: '別ステートの有効度及び無効フラグを参照するステート' 14 | parameters: [] 15 | commands: [] 16 | structures: 17 | dependencies: 18 | base: [] 19 | orderAfter: [] 20 | orderBefore: [] 21 | help: 22 | ja: | 23 | 異なるステートの有効度及び無効フラグを参照するステートを作成できます。 24 | メモ欄に stateRateAlias タグを記述してください。 25 | 26 | 記述例: 27 | 28 | ステートID4のステートの有効度及び無効フラグを参照します。 29 | -------------------------------------------------------------------------------- /src/codes/HorizontalScrollWindow/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_HorizontalScrollWindow: 2 | name: DarkPlasma_HorizontalScrollWindow 3 | year: 2022 4 | license: MIT 5 | histories: 6 | - date: 2022/11/15 7 | version: 1.0.0 8 | description: '公開' 9 | 10 | locates: 11 | - ja 12 | plugindesc: 13 | ja: '横方向にスクロールするウィンドウ' 14 | parameters: [] 15 | commands: [] 16 | structures: 17 | dependencies: 18 | base: [] 19 | orderAfter: [] 20 | orderBefore: [] 21 | help: 22 | ja: | 23 | 本プラグインはプラグイン開発者向けです。 24 | 25 | 以下のように記述することで、対象の選択ウィンドウの 26 | スクロール方向を縦から横に変更します。 27 | Window_HorizontalScrollMixIn(windowClass: Window_Selectable); 28 | -------------------------------------------------------------------------------- /src/codes/StrikeWithBackOfSword/DarkPlasma_StrikeWithBackOfSword.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @param {Game_Action.prototype} gameAction 3 | */ 4 | function Game_Action_StrikeWithBackOfSwordMixIn(gameAction) { 5 | gameAction.isStrikeWithBackOfSword = function () { 6 | return this.item().meta.strikeWithBackOfSword; 7 | }; 8 | 9 | const _executeHpDamage = gameAction.executeHpDamage; 10 | gameAction.executeHpDamage = function (target, value) { 11 | if (this.isStrikeWithBackOfSword()) { 12 | value = Math.min(target.hp - 1, value); 13 | } 14 | _executeHpDamage.call(this, target, value); 15 | }; 16 | } 17 | 18 | Game_Action_StrikeWithBackOfSwordMixIn(Game_Action.prototype); 19 | -------------------------------------------------------------------------------- /src/codes/DisplayDatabaseDetailWindow/plugin/DarkPlasma_DisplayDatabaseDetailWindow.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | import { Window_DetailText } from '../../../common/window/detailWindow'; 4 | import { Window_WithDetailWindowMixIn } from '../../../common/window/withDetailWindow'; 5 | 6 | type _Window_DetailText = typeof Window_DetailText; 7 | declare global { 8 | var Window_DetailText: _Window_DetailText; 9 | function Window_WithDetailWindowMixIn(openDetailKey: string, windowClass: Window_Selectable): void; 10 | } 11 | 12 | globalThis.Window_DetailText = Window_DetailText; 13 | globalThis.Window_WithDetailWindowMixIn = Window_WithDetailWindowMixIn; 14 | -------------------------------------------------------------------------------- /src/codes/DualWieldRepeats/plugin/DarkPlasma_DualWieldRepeats.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | function Game_Action_DualWieldAttackTimesMixIn(gameAction: Game_Action) { 4 | gameAction.isDualWieldRepeats = function () { 5 | return !!this.item()?.meta.dualWieldRepeats; 6 | }; 7 | 8 | const _numRepeats = gameAction.numRepeats; 9 | gameAction.numRepeats = function () { 10 | const repeats = _numRepeats.call(this); 11 | if (this.subject().isDualWield() && this.isDualWieldRepeats()) { 12 | return repeats + 1; 13 | } 14 | return repeats; 15 | }; 16 | } 17 | 18 | Game_Action_DualWieldAttackTimesMixIn(Game_Action.prototype); 19 | -------------------------------------------------------------------------------- /src/codes/UpdateStateBuffTurnsOnlyInBattle/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_UpdateStateBuffTurnsOnlyInBattle: 2 | name: DarkPlasma_UpdateStateBuffTurnsOnlyInBattle 3 | year: 2022 4 | license: MIT 5 | histories: 6 | - date: 2022/12/10 7 | version: 1.0.0 8 | description: '公開' 9 | 10 | locates: 11 | - ja 12 | plugindesc: 13 | ja: 'ステート・強化・弱体のターン経過を戦闘中のみ行う' 14 | parameters: [] 15 | commands: [] 16 | structures: 17 | dependencies: 18 | base: [] 19 | orderAfter: [] 20 | orderBefore: [] 21 | help: 22 | ja: | 23 | RPGツクールのデフォルトでは、戦闘におけるターン終了時以外に 24 | マップ上で20歩歩いた場合にも 25 | ステート・強化・弱体のターン経過処理が行われます。 26 | 本プラグインではそのターン経過処理を戦闘中以外スキップします。 27 | -------------------------------------------------------------------------------- /src/codes/RegenerateByValueTrait/RegenerateByValueTrait.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | declare namespace DataManager { 5 | function extractRegenerationValueTrait(data: MZ.Actor | MZ.Class | MZ.Weapon | MZ.Armor | MZ.State | MZ.Enemy): void; 6 | function hpRegenerationValueTraitId(): number; 7 | function mpRegenerationValueTraitId(): number; 8 | } 9 | 10 | declare interface Game_Battler { 11 | totalHpRegenerationValue(): number; 12 | hpRegenerationValue(customId: number): number; 13 | totalMpRegenerationValue(): number; 14 | mpRegenerationValue(customId: number): number; 15 | } 16 | -------------------------------------------------------------------------------- /src/codes/HighlightNewSkill/HighlightNewSkill.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Actor { 4 | _newSkillIds: number[]; 5 | 6 | newSkillIds(): number[]; 7 | addNewSkill(skillId: number): void; 8 | isNewSkill(skill: MZ.Skill): boolean; 9 | touchSkill(skill: MZ.Skill): void; 10 | } 11 | 12 | declare interface Window_SkillList { 13 | _touchRequestedSkill: {skill: MZ.Skill, actor: Game_Actor}|null; 14 | 15 | requestTouch(skill: MZ.Skill|null): void; 16 | processTouchRequest(): void; 17 | isNewSkill(skill: DataManager.DrawableItem|null): skill is MZ.Skill; 18 | drawNewItemName(skill: MZ.Skill, x: number, y: number, width: number): void; 19 | } 20 | -------------------------------------------------------------------------------- /src/codes/AnimeLight/AnimeLight.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Temp { 4 | _requestedAnimeLightCharacters: Game_CharacterBase[]; 5 | 6 | requestedAnimeLightCharacter(): Game_CharacterBase|undefined; 7 | requestAnimeLight(character: Game_CharacterBase): void; 8 | } 9 | 10 | declare interface Game_CharacterBase { 11 | animeLightSetting(): Data_AnimeLight|null; 12 | } 13 | 14 | declare interface Game_Event { 15 | hasAnimeLight(): boolean; 16 | isMarkedAsAnimeLight(): boolean; 17 | } 18 | 19 | declare interface Spriteset_Map { 20 | _animeLightSprites: Sprite_AnimeLight[]; 21 | 22 | initAnimeLights(): void; 23 | updateAnimeLight(): void; 24 | } 25 | -------------------------------------------------------------------------------- /src/codes/FormationInMenu/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_FormationInMenu: 2 | name: DarkPlasma_FormationInMenu 3 | year: 2020 4 | license: MIT 5 | histories: 6 | - date: '2021/07/05' 7 | version: '1.0.2' 8 | description: 'MZ 1.3.2に対応' 9 | - date: '2021/06/22' 10 | version: '1.0.1' 11 | description: 'サブフォルダからの読み込みに対応' 12 | - date: '2020/09/23' 13 | version: '1.0.0' 14 | description: '公開' 15 | 16 | locates: 17 | - ja 18 | plugindesc: 19 | ja: 'メニューの並び替えを専用シーンに変える' 20 | parameters: [] 21 | commands: [] 22 | structures: 23 | dependencies: 24 | base: DarkPlasma_Formation 25 | help: 26 | ja: | 27 | メニューの並び替えを DarkPlasma_Formation の専用並び替えシーンにすり替えます。 28 | -------------------------------------------------------------------------------- /src/codes/UnusableItemWithMapEvent/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_UnusableItemWithMapEvent: 2 | name: DarkPlasma_UnusableItemWithMapEvent 3 | year: 2022 4 | license: MIT 5 | histories: 6 | - date: 2024/03/17 7 | version: 1.0.1 8 | description: 'TypeScript移行' 9 | - date: 2022/06/02 10 | version: 1.0.0 11 | description: '公開' 12 | 13 | locates: 14 | - ja 15 | plugindesc: 16 | ja: 'マップイベント実行中は使用できないアイテム' 17 | parameters: [] 18 | commands: [] 19 | structures: 20 | dependencies: 21 | base: [] 22 | orderAfter: [] 23 | orderBefore: [] 24 | help: 25 | ja: | 26 | メモ欄に以下のように記述したアイテム・スキルは 27 | マップイベントの実行中には使用できなくなります。 28 | 29 | 30 | -------------------------------------------------------------------------------- /src/codes/ExpandCharacterPattern/ExpandCharacterPattern.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_CharacterBase { 4 | isPatternExpanded(): boolean; 5 | defaultPattern(): number; 6 | } 7 | 8 | declare interface Game_Event { 9 | _isPatternExpanded: boolean; 10 | _maxPattern: number; 11 | _defaultPattern: number; 12 | } 13 | 14 | declare interface Game_Actor { 15 | isCharacterPatternExpanded(): boolean; 16 | maxCharacterPattern(): number; 17 | defaultCharacterPattern(): number; 18 | 19 | characterPatternYCount(): number; 20 | } 21 | 22 | declare interface Window_Base { 23 | drawActorCharacterWithExpandedPattern(actor: Game_Actor, x: number, y: number): void; 24 | } 25 | -------------------------------------------------------------------------------- /src/codes/SurpriseControlWithSymbolEncounter/SurpriseControlWithSymbolEncounter.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Temp { 4 | _encounterSituation: number; 5 | _isSymbolEncounter: boolean; 6 | 7 | encounterSituation(): number; 8 | setEncounterSituation(situation: number): void; 9 | isSymbolEncounter(): boolean; 10 | setIsSymbolEncounter(isSymbolEncounter: boolean): void; 11 | } 12 | 13 | declare interface Game_Event { 14 | isAheadOfPlayer(): boolean; 15 | isSymbolEnemy(): boolean; 16 | 17 | setupEncounterSituation(): void; 18 | } 19 | 20 | declare interface Game_Party { 21 | preemptiveRateByBackAttack(): number; 22 | surpriseRateByBackAttacked(): number; 23 | } 24 | -------------------------------------------------------------------------------- /src/codes/AdjustEnemyPosition/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_AdjustEnemyPosition: 2 | name: DarkPlasma_AdjustEnemyPosition 3 | year: 2020 4 | license: MIT 5 | histories: 6 | - date: '2021/07/05' 7 | version: '1.0.2' 8 | description: 'MZ 1.3.2に対応' 9 | - date: '2021/06/22' 10 | version: '1.0.1' 11 | description: 'サブフォルダからの読み込みに対応' 12 | - date: '2020/11/13' 13 | version: '1.0.0' 14 | description: '公開' 15 | 16 | locates: 17 | - ja 18 | plugindesc: 19 | ja: '敵の座標をUIエリアサイズに合わせて移動する' 20 | parameters: [] 21 | commands: [] 22 | structures: 23 | help: 24 | ja: | 25 | 敵の配置をUIエリアサイズに合わせて移動します。 26 | 27 | MZ 1.3.0より、公式にこの機能が取り込まれました。 28 | 本プラグインはそれより前のバージョンでのみ有効です。 29 | -------------------------------------------------------------------------------- /src/codes/RemoveStateByMp/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_RemoveStateByMp: 2 | name: DarkPlasma_RemoveStateByMp 3 | year: 2023 4 | license: MIT 5 | histories: 6 | - date: 2024/11/24 7 | version: 1.0.1 8 | description: 'スキル使用によるMP消費時にステートが解除されない不具合を修正' 9 | - date: 2023/06/22 10 | version: 1.0.0 11 | description: '公開' 12 | 13 | locates: 14 | - ja 15 | plugindesc: 16 | ja: 'MPが一定値以下になった際に解除するステート' 17 | parameters: [] 18 | commands: [] 19 | structures: 20 | dependencies: 21 | base: [] 22 | orderAfter: [] 23 | orderBefore: [] 24 | help: 25 | ja: | 26 | ステートのメモ欄に以下のように記述すると 27 | 対象ステートはMPが一定値以下になった場合に解除されます。 28 | 29 | 30 | MPが0以下になったら解除 31 | -------------------------------------------------------------------------------- /scripts/generateTemplate/index.ts: -------------------------------------------------------------------------------- 1 | import path from 'path'; 2 | import { fileURLToPath } from 'url'; 3 | 4 | import { generateDirectory } from './generateDirectory.js'; 5 | 6 | const __dirname = path.dirname(fileURLToPath(import.meta.url)); 7 | 8 | const codeType = (() => { 9 | switch (process.argv[3]) { 10 | case 'e': 11 | return 'excludes'; 12 | default: 13 | return 'codes'; 14 | } 15 | })(); 16 | const directoryPath = path.resolve(__dirname, '..', '..', 'src', codeType, process.argv[2]); 17 | 18 | (async () => { 19 | try { 20 | await generateDirectory(directoryPath); 21 | } catch (e) { 22 | console.error(`[ERROR] ${directoryPath}`); 23 | console.error(e); 24 | console.error(''); 25 | } 26 | })(); 27 | -------------------------------------------------------------------------------- /src/codes/ChangeImageWithPattern/plugin/ChangeImageWithPattern.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | type ChangeImageWith = { 4 | direction: number; 5 | pattern: number; 6 | fixPattern: boolean; 7 | }; 8 | 9 | declare interface Game_Character { 10 | _changeImageWith: ChangeImageWith|undefined; 11 | _isPatternFixed: boolean; 12 | 13 | setChangeImageWith(changeImageWith: ChangeImageWith): void; 14 | setChangeImageWithDirection(direction: number): void; 15 | setChangeImageWithPattern(pattern: number): void; 16 | setChangeImageWithFixPattern(fixPattern: boolean): void; 17 | 18 | changeImageWith(): ChangeImageWith; 19 | 20 | isPatternFixed(): boolean; 21 | fixPattern(): void; 22 | unfixPattern(): void; 23 | } -------------------------------------------------------------------------------- /src/codes/VariableCommonEvent/plugin/DarkPlasma_VariableCommonEvent.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | import { pluginName } from '../../../common/pluginName'; 4 | import { command_variableCommonEvent, parseArgs_variableCommonEvent } from '../config/_build/DarkPlasma_VariableCommonEvent_commands'; 5 | 6 | PluginManager.registerCommand(pluginName, command_variableCommonEvent, function (this: Game_Interpreter, args) { 7 | const parsedArgs = parseArgs_variableCommonEvent(args); 8 | const commonEvent = $dataCommonEvents[$gameVariables.value(parsedArgs.variableId)]; 9 | if (commonEvent) { 10 | const eventId = this.isOnCurrentMap() ? this._eventId : 0; 11 | this.setupChild(commonEvent.list, eventId); 12 | } 13 | }); 14 | -------------------------------------------------------------------------------- /src/codes/UpdateStateBuffTurnsOnlyInBattle/DarkPlasma_UpdateStateBuffTurnsOnlyInBattle.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | function Game_Battler_UpdateStateBuffTurnsOnlyInBattleMixIn(gameBattler: Game_Battler) { 4 | const _updateStateTurns = gameBattler.updateStateTurns; 5 | gameBattler.updateStateTurns = function () { 6 | if ($gameParty.inBattle()) { 7 | _updateStateTurns.call(this); 8 | } 9 | }; 10 | 11 | const _updateBuffTurns = gameBattler.updateBuffTurns; 12 | gameBattler.updateBuffTurns = function () { 13 | if ($gameParty.inBattle()) { 14 | _updateBuffTurns.call(this); 15 | } 16 | }; 17 | } 18 | 19 | Game_Battler_UpdateStateBuffTurnsOnlyInBattleMixIn(Game_Battler.prototype); 20 | -------------------------------------------------------------------------------- /src/common/scene/battleCancelButtonToEdge.js: -------------------------------------------------------------------------------- 1 | /** 2 | * タッチUIのキャンセルボタンを右上端へ移動したり戻したりする 3 | * @param {Scene_Battle.prototype} sceneBattle 4 | */ 5 | export function Scene_Battle_MoveCancelButtonMixIn(sceneBattle) { 6 | if (!sceneBattle.moveCancelButtonToEdge) { 7 | sceneBattle.moveCancelButtonToEdge = function () { 8 | if (this._cancelButton) { 9 | this._cancelButton.y = Math.floor((this.buttonAreaHeight() - 48) / 2); 10 | } 11 | }; 12 | } 13 | if (!sceneBattle.returnCancelButton) { 14 | sceneBattle.returnCancelButton = function () { 15 | if (this._cancelButton) { 16 | this._cancelButton.y = this.buttonY(); 17 | } 18 | }; 19 | } 20 | } 21 | 22 | Scene_Battle_MoveCancelButtonMixIn(Scene_Battle.prototype); 23 | -------------------------------------------------------------------------------- /src/codes/ArcGaugeSample/config/config.ts: -------------------------------------------------------------------------------- 1 | import { ConfigDefinitionBuilder } from '../../../../modules/config/configDefinitionBuilder.js'; 2 | import { PluginHistorySchema } from '../../../../modules/config/configSchema.js'; 3 | import {} from '../../../../modules/config/createParameter.js'; 4 | import { dedent } from '@qnighy/dedent'; 5 | 6 | const histories: PluginHistorySchema[] = [ 7 | { 8 | date: "2024/08/04", 9 | version: "1.0.0", 10 | description: "公開", 11 | } 12 | ]; 13 | 14 | export const config = new ConfigDefinitionBuilder( 15 | "ArcGaugeSample", 16 | 2024, 17 | "円弧状のゲージサンプル実装" 18 | ) 19 | .withHistories(histories) 20 | .withLicense("MIT") 21 | .withHelp(dedent`円弧状のゲージを扱うサンプル実装です。 22 | ステータス画面のゲージを円弧状に変えます。`) 23 | .build(); 24 | -------------------------------------------------------------------------------- /src/codes/SharedSwitchVariable/SharedSwitchVariable.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | type SharedSwitch = { 4 | id: number; 5 | value: boolean; 6 | }; 7 | 8 | type SharedVariable = { 9 | id: number; 10 | value: number; 11 | }; 12 | 13 | type SharedSwitchesAndVariables = { 14 | switches: SharedSwitch[]; 15 | variables: SharedVariable[]; 16 | }; 17 | 18 | declare namespace DataManager { 19 | var _isSharedInfoLoaded: boolean; 20 | 21 | function saveSharedInfo(): void; 22 | function loadSharedInfo(): void; 23 | function isSharedInfoLoaded(): boolean; 24 | function makeSharedInfo(): SharedSwitchesAndVariables; 25 | function sharedSaveSwitches(): SharedSwitch[]; 26 | function sharedSaveVariables(): SharedVariable[]; 27 | } 28 | -------------------------------------------------------------------------------- /src/codes/FixChoiceListPosition/plugin/FixChoiceListPosition.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_System { 4 | _choiceListPosition: { 5 | isXFixed: boolean; 6 | isYFixed: boolean; 7 | xPositionType: number; 8 | yPositionType: number; 9 | x: number|undefined; 10 | y: number|undefined; 11 | }; 12 | 13 | fixChoiceListPosition(xPositionType: number, yPositionType: number, x?: number, y?: number): void; 14 | unfixChoiceListPosition(): void; 15 | 16 | isChoiceListPositionFixed(): { 17 | x: boolean; 18 | y: boolean; 19 | } 20 | choiceListPositionType(): { 21 | x: number; 22 | y: number; 23 | }; 24 | choiceListPosition(): { 25 | x?: number; 26 | y?: number; 27 | }; 28 | } 29 | -------------------------------------------------------------------------------- /src/codes/MapNameOnSave/DarkPlasma_MapNameOnSave.ts: -------------------------------------------------------------------------------- 1 | const _DataManager_makeSavefileInfo = DataManager.makeSavefileInfo; 2 | DataManager.makeSavefileInfo = function () { 3 | const info = _DataManager_makeSavefileInfo.call(this); 4 | info.mapName = $gameMap.displayName(); 5 | return info; 6 | }; 7 | 8 | const _Window_SavefileList_drawContents = Window_SavefileList.prototype.drawContents; 9 | Window_SavefileList.prototype.drawContents = function (info, rect) { 10 | _Window_SavefileList_drawContents.call(this, info, rect); 11 | this.drawMapName(info, rect.x, rect.y, rect.width); 12 | }; 13 | 14 | Window_SavefileList.prototype.drawMapName = function (info, x, y, width) { 15 | if (info.mapName) { 16 | this.drawText(info.mapName, x, y, width, 'right'); 17 | } 18 | }; 19 | -------------------------------------------------------------------------------- /src/codes/MaskPicture/plugin/MaskPicture.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Picture { 4 | _maskPictureId?: number; 5 | 6 | mask(maskPictureId: number): void; 7 | unmask(): void; 8 | maskPictureId(): number|undefined; 9 | } 10 | 11 | declare interface Spriteset_Base { 12 | _spritePictures: Sprite_Picture[]; 13 | 14 | updateMask(): void; 15 | mustUpdateMask(spritePicture: Sprite_Picture): boolean; 16 | spritePicture(pictureId?: number): Sprite_Picture|null; 17 | } 18 | 19 | declare interface Sprite_Picture { 20 | setMask(sprite: T|null): void; 21 | isMaskedWith(sprite: T|null): boolean; 22 | mustUpdateMask(): boolean; 23 | pictureId(): number; 24 | } 25 | -------------------------------------------------------------------------------- /src/codes/StateRateAlias/DarkPlasma_StateRateAlias.js: -------------------------------------------------------------------------------- 1 | const _Game_BattlerBase_stateRate = Game_BattlerBase.prototype.stateRate; 2 | Game_BattlerBase.prototype.stateRate = function (stateId) { 3 | return _Game_BattlerBase_stateRate.call(this, rateAliasedStateId(stateId)); 4 | }; 5 | 6 | const _Game_BattlerBase_isStateResist = Game_BattlerBase.prototype.isStateResist; 7 | Game_BattlerBase.prototype.isStateResist = function (stateId) { 8 | return _Game_BattlerBase_isStateResist.call(this, rateAliasedStateId(stateId)); 9 | }; 10 | 11 | /** 12 | * @param {number} stateId 13 | * @return {number} 14 | */ 15 | function rateAliasedStateId(stateId) { 16 | const state = $dataStates[stateId]; 17 | return state.meta.stateRateAlias ? Number(state.meta.stateRateAlias) : stateId; 18 | } 19 | -------------------------------------------------------------------------------- /src/codes/AllocateUniqueSpecialFlagId/plugin/DarkPlasma_AllocateUniqueSpecialFlagId.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | class UniqueSpecialFlagIdCache { 4 | 5 | constructor() { 6 | } 7 | 8 | allocate(pluginName: string, localId: number, name: string): UniqueTraitDataId { 9 | return uniqueTraitDataIdCache.allocate(pluginName, Game_BattlerBase.TRAIT_SPECIAL_FLAG, localId, name); 10 | } 11 | 12 | key(pluginName: string, localId: number): string { 13 | return `${pluginName}_${localId}`; 14 | } 15 | 16 | nameById(id: number): string|undefined { 17 | return uniqueTraitDataIdCache.nameByIds(Game_BattlerBase.TRAIT_SPECIAL_FLAG, id); 18 | } 19 | } 20 | 21 | globalThis.uniqueSpecialFlagIdCache = new UniqueSpecialFlagIdCache(); 22 | -------------------------------------------------------------------------------- /src/codes/MapNameOnSave/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_MapNameOnSave: 2 | name: DarkPlasma_MapNameOnSave 3 | year: 2021 4 | license: MIT 5 | histories: 6 | - date: 2024/03/17 7 | version: 1.0.3 8 | description: 'TypeScript移行' 9 | - date: 2021/07/05 10 | version: 1.0.2 11 | description: 'MZ 1.3.2に対応' 12 | - date: 2021/06/22 13 | version: 1.0.1 14 | description: 'サブフォルダからの読み込みに対応' 15 | - date: 2021/03/13 16 | version: 1.0.0 17 | description: '公開' 18 | 19 | locates: 20 | - ja 21 | plugindesc: 22 | ja: 'セーブ・ロード画面にマップ名を表示する' 23 | parameters: [] 24 | commands: [] 25 | structures: 26 | dependencies: 27 | base: 28 | orderAfter: 29 | orderBefore: 30 | help: 31 | ja: | 32 | セーブ・ロード画面にマップ名を表示します。 33 | -------------------------------------------------------------------------------- /src/codes/MultiElementRate/DarkPlasma_MultiElementRate.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | import { settings } from "./_build/DarkPlasma_MultiElementRate_parameters"; 4 | 5 | function Game_Action_MultiElementRateMixIn(gameAction: Game_Action) { 6 | const _elementsMaxRate = gameAction.elementsMaxRate; 7 | gameAction.elementsMaxRate = function (target, elements) { 8 | if (elements.length > 0) { 9 | return [...new Set(elements)].reduce((result, elementId) => { 10 | return settings.addition ? result + target.elementRate(elementId) : result * target.elementRate(elementId); 11 | }, 1); 12 | } 13 | return _elementsMaxRate.call(this, target, elements); 14 | }; 15 | } 16 | 17 | Game_Action_MultiElementRateMixIn(Game_Action.prototype); 18 | -------------------------------------------------------------------------------- /src/codes/OrderShopGoods/plugin/OrderShopGoods.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | 5 | type ZippedGoods = [MZ.Item | MZ.Weapon | MZ.Armor, number, ...any]; 6 | 7 | declare interface Window_ShopBuy { 8 | sortGoods(zippedGoods: ZippedGoods[]): void; 9 | compareGoods(a: ZippedGoods, b: ZippedGoods): number; 10 | compareGoodsSub(a: [T, number], b: [T, number], keys: string[]): number; 11 | 12 | goodsSortKeyMap(item: T, price: number, key: string): number; 13 | 14 | zipGoods(): ZippedGoods[]; 15 | } 16 | 17 | declare class Window_FusionShopBuy { 18 | 19 | } 20 | -------------------------------------------------------------------------------- /src/codes/EnemyLevel/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_EnemyLevel: 2 | name: DarkPlasma_EnemyLevel 3 | year: 2023 4 | license: MIT 5 | histories: 6 | - date: 2023/09/16 7 | version: 1.0.0 8 | description: '公開' 9 | 10 | locates: 11 | - ja 12 | plugindesc: 13 | ja: '敵キャラにレベルを設定する' 14 | parameters: 15 | - param: defaultLevel 16 | text: 17 | ja: デフォルトレベル 18 | type: number 19 | default: 1 20 | commands: [] 21 | structures: 22 | dependencies: 23 | base: [] 24 | orderAfter: [] 25 | orderBefore: [] 26 | help: 27 | ja: | 28 | 敵キャラにレベルを設定できるようになります。 29 | 30 | 敵キャラのメモ欄に以下のように記述すると、 31 | その敵キャラのレベルは1になります。 32 | 33 | 34 | スキルのダメージ計算などに b.level と書けば、 35 | 対象のレベルに応じた計算式を作ることができます。 36 | -------------------------------------------------------------------------------- /src/codes/DisableUpdateStateBuffTurnOnMap/config/config.ts: -------------------------------------------------------------------------------- 1 | import { ConfigDefinitionBuilder } from '../../../../modules/config/configDefinitionBuilder.js'; 2 | import { PluginHistorySchema } from '../../../../modules/config/configSchema.js'; 3 | import {} from '../../../../modules/config/createParameter.js'; 4 | import { dedent } from '@qnighy/dedent'; 5 | 6 | const histories: PluginHistorySchema[] = [ 7 | { 8 | date: "2025/04/18", 9 | version: "1.0.0", 10 | description: "公開", 11 | } 12 | ]; 13 | 14 | export const config = new ConfigDefinitionBuilder( 15 | "DisableUpdateStateBuffTurnOnMap", 16 | 2025, 17 | "マップ上でのステート・強化・弱体のターン数経過を無効にする" 18 | ) 19 | .withHistories(histories) 20 | .withLicense("MIT") 21 | .withHelp(dedent`マップ上でステート・強化・弱体のターンが経過しないようにします。`) 22 | .build(); 23 | -------------------------------------------------------------------------------- /src/codes/ActionDebuffSuccessRate/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_ActionDebuffSuccessRate: 2 | name: DarkPlasma_ActionDebuffSuccessRate 3 | year: 2022 4 | license: MIT 5 | histories: 6 | - date: 2024/03/17 7 | version: 1.0.1 8 | description: 'TypeScript移行' 9 | - date: 2022/06/12 10 | version: 1.0.0 11 | description: '公開' 12 | 13 | locates: 14 | - ja 15 | plugindesc: 16 | ja: 'スキル・アイテムに弱体成功率を設定する' 17 | parameters: [] 18 | commands: [] 19 | structures: 20 | dependencies: 21 | base: [] 22 | orderAfter: [] 23 | orderBefore: [] 24 | help: 25 | ja: | 26 | スキル・アイテムのメモ欄に以下のように記述すると 27 | その行動による弱体付与の基本成功率がx%になります。(未設定の場合100) 28 | 29 | 30 | 最終的な付与成功率は、以下の通りになります。 31 | 基本成功率 x 対象の弱体有効度 x 対象との運差による補正 32 | -------------------------------------------------------------------------------- /src/codes/ChangeScreenshotSetting/plugin/ChangeScreenshotSetting.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare namespace Bitmap { 4 | function snapRectangle(stage: Stage, rect: Rectangle): Bitmap; 5 | } 6 | 7 | declare interface SceneManager { 8 | snapForScreenshot(): Bitmap; 9 | } 10 | 11 | declare interface Game_ScreenshotSetting { 12 | _x: number; 13 | _y: number; 14 | _width: number; 15 | _height: number; 16 | 17 | setRectangle(rect: Rectangle): void; 18 | rectangle(): Rectangle|undefined; 19 | } 20 | 21 | declare interface Game_System { 22 | _screenshotSetting: Game_ScreenshotSetting; 23 | 24 | screenshotSetting(): Game_ScreenshotSetting; 25 | setScreenshotRectangle(rect: Rectangle): void; 26 | screenshotRectangle(): Rectangle|undefined; 27 | } 28 | -------------------------------------------------------------------------------- /src/codes/SetColorByCode/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_SetColorByCode: 2 | name: DarkPlasma_SetColorByCode 3 | year: 2023 4 | license: MIT 5 | histories: 6 | - date: 2023/09/21 7 | version: 1.0.2 8 | description: 'TextLogと併用するとエラーになる不具合を修正' 9 | - date: 2023/06/29 10 | version: 1.0.1 11 | description: '色変更以外の制御文字を握り潰してしまう不具合を修正' 12 | - date: 2023/06/02 13 | version: 1.0.0 14 | description: '公開' 15 | 16 | locates: 17 | - ja 18 | plugindesc: 19 | ja: '制御文字による色指定を#から始まるカラーコードで行う' 20 | parameters: [] 21 | commands: [] 22 | structures: 23 | dependencies: 24 | base: [] 25 | orderAfter: [] 26 | orderBefore: [] 27 | help: 28 | ja: | 29 | 制御文字\Cによる色指定を、#から始まるカラーコードで行えるようにします。 30 | 31 | 例: \C[#adff2f] 32 | 黄緑色になります。 33 | -------------------------------------------------------------------------------- /src/common/scene/battleInputtingWindow.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @param {Scene_Battle.prototype} sceneBattle 3 | */ 4 | export function Scene_Battle_InputtingWindowMixIn(sceneBattle) { 5 | const _inputtingWindow = sceneBattle.inputtingWindow; 6 | if (!_inputtingWindow) { 7 | sceneBattle.inputtingWindow = function () { 8 | return this.inputWindows().find((inputWindow) => inputWindow.active); 9 | }; 10 | } 11 | 12 | const _inputWindows = sceneBattle.inputWindows; 13 | if (!_inputWindows) { 14 | sceneBattle.inputWindows = function () { 15 | return [ 16 | this._partyCommandWindow, 17 | this._actorCommandWindow, 18 | this._skillWindow, 19 | this._itemWindow, 20 | this._actorWindow, 21 | this._enemyWindow, 22 | ]; 23 | }; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /src/codes/AllocateUniqueSpecialFlagId/plugin/AllocateUniqueSpecialFlagId.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | 5 | declare let uniqueSpecialFlagId: number; 6 | declare var uniqueSpecialFlagIdCache: UniqueSpecialFlagIdCache; 7 | 8 | declare interface UniqueSpecialFlagId { 9 | _id: number; 10 | _name: string; 11 | 12 | readonly id: number; 13 | readonly name: string; 14 | } 15 | 16 | declare interface UniqueSpecialFlagIdCache { 17 | allocate(pluginName: string, localId: number, name: string): UniqueSpecialFlagId; 18 | key(pluginName: string, localId: number): string; 19 | nameById(id: number): string|undefined; 20 | } 21 | -------------------------------------------------------------------------------- /src/codes/DisableRegenerateOnMap/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_DisableRegenerateOnMap: 2 | name: DarkPlasma_DisableRegenerateOnMap 3 | year: 2020 4 | license: MIT 5 | histories: 6 | - date: 2024/03/17 7 | version: 1.0.3 8 | description: 'TypeScript移行' 9 | - date: 2021/07/05 10 | version: 1.0.2 11 | description: 'MZ 1.3.2に対応' 12 | - date: 2021/06/22 13 | version: 1.0.1 14 | description: 'サブフォルダからの読み込みに対応' 15 | - date: 2020/10/23 16 | version: 1.0.0 17 | description: '公開' 18 | 19 | locates: 20 | - ja 21 | plugindesc: 22 | ja: 'マップ上でのHP/MP/TP再生処理を無効にする' 23 | parameters: [] 24 | commands: [] 25 | structures: 26 | help: 27 | ja: | 28 | マップ上におけるHP/MP/TP再生の処理を無効にします。 29 | 30 | 自動回復系やスリップダメージの特徴を 31 | 戦闘時のみ有効にしたい場合に利用してください。 32 | -------------------------------------------------------------------------------- /src/codes/DisableUpdateStateBuffTurnOnMap/plugin/DarkPlasma_DisableUpdateStateBuffTurnOnMap.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | const AUTO_REMOVAL_TIMING_TURNEND = 2; 4 | 5 | function Game_BattlerBase_DisableUpdateTurnOnMapMixIn(gameBattlerBase: Game_BattlerBase) { 6 | const _updateStateTurns = gameBattlerBase.updateStateTurns; 7 | gameBattlerBase.updateStateTurns = function () { 8 | if ($gameParty.inBattle()) { 9 | _updateStateTurns.call(this); 10 | } 11 | }; 12 | 13 | const _updateBuffTurns = gameBattlerBase.updateBuffTurns; 14 | gameBattlerBase.updateBuffTurns = function () { 15 | if ($gameParty.inBattle()) { 16 | _updateBuffTurns.call(this); 17 | } 18 | }; 19 | } 20 | 21 | Game_BattlerBase_DisableUpdateTurnOnMapMixIn(Game_BattlerBase.prototype); 22 | -------------------------------------------------------------------------------- /src/codes/EscapePenalty/DarkPlasma_EscapePenalty.js: -------------------------------------------------------------------------------- 1 | import { settings } from './_build/DarkPlasma_EscapePenalty_parameters'; 2 | 3 | const _BattleManager_processEscape = BattleManager.processEscape; 4 | BattleManager.processEscape = function () { 5 | const success = _BattleManager_processEscape.call(this); 6 | if (success) { 7 | $gameParty.loseGoldByEscape(); 8 | } 9 | return success; 10 | }; 11 | 12 | Game_Party.prototype.loseGoldByEscape = function () { 13 | const lost = Math.floor((settings.loseGoldRate * this.gold()) / 100); 14 | if (lost > 0) { 15 | this.loseGold(lost); 16 | const message = settings.loseGoldMessage 17 | .replace('{gold}', `${lost}`) 18 | .replace('{unit}', `${TextManager.currencyUnit}`); 19 | $gameMessage.newPage(); 20 | $gameMessage.add(message); 21 | } 22 | }; 23 | -------------------------------------------------------------------------------- /src/codes/FillGradientCircle/config/config.ts: -------------------------------------------------------------------------------- 1 | import { ConfigDefinitionBuilder } from '../../../../modules/config/configDefinitionBuilder.js'; 2 | import { PluginHistorySchema } from '../../../../modules/config/configSchema.js'; 3 | import {} from '../../../../modules/config/createParameter.js'; 4 | import { dedent } from '@qnighy/dedent'; 5 | 6 | const histories: PluginHistorySchema[] = [ 7 | { 8 | date: "2025/11/02", 9 | version: "1.0.0", 10 | description: "最初のバージョン", 11 | } 12 | ]; 13 | 14 | export const config = new ConfigDefinitionBuilder( 15 | "FillGradientCircle", 16 | 2025, 17 | "円形グラデーション描画機能" 18 | ) 19 | .withHistories(histories) 20 | .withLicense("MIT") 21 | .withHelp(dedent`円形グラーデション描画機能のインターフェースを提供します。 22 | 23 | 本プラグインは単体では機能しません。 24 | 拡張プラグインと合わせて利用してください。`) 25 | .build(); 26 | -------------------------------------------------------------------------------- /src/codes/WishListForFusionItem/plugin/WishListForFusionItem.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | /// 5 | /// 6 | 7 | declare class Game_WishListItem { 8 | constructor(result: ItemWeaponArmorId, materials: Game_WishListItemMaterial[]); 9 | } 10 | 11 | declare interface Scene_FusionItem { 12 | registerWishListItem(): void; 13 | } 14 | 15 | declare class Scene_FusionItem { 16 | 17 | } 18 | 19 | declare interface Window_FusionShopBuy { 20 | currentItemForWishList(): Game_WishListItem; 21 | } 22 | 23 | declare class Window_FusionShopBuy {} 24 | -------------------------------------------------------------------------------- /src/codes/BuffRate/DarkPlasma_BuffRate.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | import { settings } from './_build/DarkPlasma_BuffRate_parameters'; 4 | 5 | const paramNames = ["maxHp", "maxMp", "attack", "defense", "magicAttack", "magicDefense", "agility", "luck"] as const; 6 | const buffRates = paramNames 7 | .map((paramName) => [0, settings[paramName].buffRate1, settings[paramName].buffRate2]); 8 | const debuffRates = paramNames 9 | .map((paramName) => [0, -1.0 * settings[paramName].debuffRate1, -1.0 * settings[paramName].debuffRate2]); 10 | 11 | Game_BattlerBase.prototype.paramBuffRate = function (paramId) { 12 | const buffRate = 13 | this._buffs[paramId] > 0 14 | ? buffRates[paramId][this._buffs[paramId]] 15 | : debuffRates[paramId][-1.0 * this._buffs[paramId]]; 16 | return buffRate / 100 + 1.0; 17 | }; 18 | -------------------------------------------------------------------------------- /src/codes/ClassSkillMeta/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_ClassSkillMeta: 2 | name: DarkPlasma_ClassSkillMeta 3 | year: 2021 4 | license: MIT 5 | histories: 6 | - date: 2024/03/17 7 | version: 1.0.1 8 | description: 'TypeScript移行' 9 | - date: 2021/10/10 10 | version: 1.0.0 11 | description: '公開' 12 | 13 | locates: 14 | - ja 15 | plugindesc: 16 | ja: '職業の習得スキルのメモ欄にメタデータを登録する' 17 | parameters: [] 18 | commands: [] 19 | structures: 20 | dependencies: 21 | base: [] 22 | orderAfter: [] 23 | orderBefore: [] 24 | help: 25 | ja: | 26 | 職業の習得するスキル一覧のメモ欄に、 27 | 他の各種データ同様にメタデータを登録できるようにします。 28 | 29 | 例えば、習得するスキルのメモ欄に と記述すると 30 | $dataClasses[クラスID].learnings[習得スキルindex].meta.a に 31 | "AAA" が設定されます。 32 | booleanに関しても、その他各種データのメタデータ同様の仕様で設定されます。 33 | -------------------------------------------------------------------------------- /src/codes/ConsumeItemImmediately/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_ConsumeItemImmediately: 2 | name: DarkPlasma_ConsumeItemImmediately 3 | year: 2020 4 | license: MIT 5 | histories: 6 | - date: 2024/03/17 7 | version: 1.0.4 8 | description: 'TypeScript移行' 9 | - date: 2021/07/05 10 | version: 1.0.3 11 | description: 'MZ 1.3.2に対応' 12 | - date: 2021/06/22 13 | version: 1.0.2 14 | description: 'サブフォルダからの読み込みに対応' 15 | - date: 2020/12/14 16 | version: 1.0.1 17 | description: 'jsdocの型修正' 18 | - date: 2020/09/11 19 | version: 1.0.0 20 | description: 'MZ版公開' 21 | 22 | locates: 23 | - ja 24 | plugindesc: 25 | ja: '戦闘でアイテムを選択した際、即座に消費する' 26 | parameters: [] 27 | commands: [] 28 | structures: 29 | help: 30 | ja: | 31 | 戦闘でアイテムを選択した際、即座に消費しているように見せます。 32 | -------------------------------------------------------------------------------- /src/codes/AllocateUniqueTraitId/AllocateUniqueTraitId.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | declare let uniqueTraitId: number; 3 | declare var uniqueTraitIdCache: UniqueTraitIdCache; 4 | 5 | declare class UniqueTraitId { 6 | _id: number; 7 | _name: string; 8 | 9 | id: number; 10 | name: string; 11 | } 12 | 13 | declare class UniqueTraitIdCache { 14 | _cache: { 15 | [key: string]: UniqueTraitId; 16 | }; 17 | _cacheById: { 18 | [id: number]: UniqueTraitId; 19 | }; 20 | 21 | allocate(pluginName: string, localId: number, name: string): UniqueTraitId; 22 | key(pluginName: string, localId: number): string; 23 | traitIdOf(pluginName: string, localId: number): number|undefined; 24 | nameOf(pluginName: string, localId: number): string|undefined; 25 | nameByTraitId(id: number): string|undefined; 26 | } 27 | -------------------------------------------------------------------------------- /src/codes/LazyExtractData/config/config.ts: -------------------------------------------------------------------------------- 1 | import { ConfigDefinitionBuilder } from '../../../../modules/config/configDefinitionBuilder.js'; 2 | import { PluginHistorySchema } from '../../../../modules/config/configSchema.js'; 3 | import {} from '../../../../modules/config/createParameter.js'; 4 | import { dedent } from '@qnighy/dedent'; 5 | 6 | const histories: PluginHistorySchema[] = [ 7 | { 8 | date: "2025/08/25", 9 | version: "1.0.0", 10 | description: "最初のバージョン", 11 | } 12 | ]; 13 | 14 | export const config = new ConfigDefinitionBuilder( 15 | "LazyExtractData", 16 | 2025, 17 | "データベース遅延読み込みパート" 18 | ) 19 | .withHistories(histories) 20 | .withLicense("MIT") 21 | .withHelp(dedent`データベースの構造に依存するようなmetaタグなどを 22 | 遅延して展開するためのプラグインです。 23 | 24 | 本プラグインは単体では動作しません。 25 | 拡張プラグインと一緒に利用してください。`) 26 | .build(); 27 | -------------------------------------------------------------------------------- /src/codes/StateAliasBySide/DarkPlasma_StateAliasBySide.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | /** 4 | * @param {Game_Battler.prototype} gameBattler 5 | */ 6 | function Game_Battler_StateAliasBySideMixIn(gameBattler: Game_Battler) { 7 | const _addState = gameBattler.addState; 8 | gameBattler.addState = function (stateId) { 9 | _addState.call(this, this.aliasedStateIdBySide(stateId)); 10 | }; 11 | 12 | gameBattler.aliasedStateIdBySide = function (stateId) { 13 | if (!this.isStateAddable(stateId)) { 14 | return stateId; 15 | } 16 | if (this.isActor()) { 17 | return Number($dataStates[stateId].meta.stateAliasActor || stateId); 18 | } 19 | return Number($dataStates[stateId].meta.stateAliasEnemy || stateId); 20 | }; 21 | } 22 | 23 | Game_Battler_StateAliasBySideMixIn(Game_Battler.prototype); 24 | -------------------------------------------------------------------------------- /src/typings/rmmz.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | /// 5 | /// 6 | /// 7 | 8 | /// 9 | /// 10 | /// 11 | /// 12 | /// 13 | /// 14 | /// 15 | -------------------------------------------------------------------------------- /src/codes/DevidePartyScene/plugin/DevidePartyScene.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | 5 | type DevidePartyInfo = { 6 | count: number; 7 | locations: Game_DevidedPartyPosition[]; 8 | }; 9 | 10 | declare interface Game_Temp { 11 | _devidePartyInfo: DevidePartyInfo|undefined; 12 | 13 | setDevidePartyInfo(count: number, locations: Game_DevidedPartyPosition[]): void; 14 | devidePartyInfo(): DevidePartyInfo|undefined; 15 | devidePartyCount(): number; 16 | devidePartyLocation(index: number): Game_DevidedPartyPosition; 17 | } 18 | 19 | declare class Game_DevidedParty {} 20 | 21 | declare class Window_SelectActorCharacter extends Window_StatusBase {} 22 | -------------------------------------------------------------------------------- /src/codes/TriggerTouchWithThrough/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_TriggerTouchWithThrough: 2 | name: DarkPlasma_TriggerTouchWithThrough 3 | year: 2022 4 | license: MIT 5 | histories: 6 | - date: 2022/06/18 7 | version: 1.0.1 8 | description: 'MITライセンスとして公開' 9 | - date: 2022/02/19 10 | version: 1.0.0 11 | description: '初版' 12 | 13 | locates: 14 | - ja 15 | plugindesc: 16 | ja: 'すり抜けでもイベントからの接触が有効なイベント' 17 | parameters: [] 18 | commands: [] 19 | structures: 20 | dependencies: 21 | base: [] 22 | orderAfter: [] 23 | orderBefore: [] 24 | help: 25 | ja: | 26 | すり抜けをONにしてもイベントからの接触を有効にできる 27 | イベント用メタタグを提供します。 28 | 29 | すり抜けONでもイベントからの接触を有効にしたいイベントの 30 | メモ欄に下記のように記述してください。 31 | 32 | 33 | 対象のイベントはプレイヤーのみすり抜けられなくなり、 34 | イベントからの接触トリガーが有効になります。 35 | -------------------------------------------------------------------------------- /src/common/object/itemEffect.js: -------------------------------------------------------------------------------- 1 | export class ItemEffect { 2 | /** 3 | * @param {number} code 4 | * @param {?number} dataId 5 | * @param {?number} value1 6 | * @param {?number} value2 7 | */ 8 | constructor(code, dataId, value1, value2) { 9 | this._code = code; 10 | this._dataId = dataId || 0; 11 | this._value1 = value1 || 0; 12 | this._value2 = value2 || 0; 13 | } 14 | 15 | /** 16 | * @return {number} 17 | */ 18 | get code() { 19 | return this._code; 20 | } 21 | 22 | /** 23 | * @return {number} 24 | */ 25 | get dataId() { 26 | return this._dataId; 27 | } 28 | 29 | /** 30 | * @return {number} 31 | */ 32 | get value1() { 33 | return this._value1; 34 | } 35 | 36 | /** 37 | * @return {number} 38 | */ 39 | get value2() { 40 | return this._value2; 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src/codes/DualWieldRepeats/config/config.ts: -------------------------------------------------------------------------------- 1 | import { ConfigDefinitionBuilder } from '../../../../modules/config/configDefinitionBuilder.js'; 2 | import { PluginHistorySchema } from '../../../../modules/config/configSchema.js'; 3 | import {} from '../../../../modules/config/createParameter.js'; 4 | import { dedent } from '@qnighy/dedent'; 5 | 6 | const histories: PluginHistorySchema[] = [ 7 | { 8 | date: "2025/09/13", 9 | version: "1.0.0", 10 | description: "最初のバージョン", 11 | } 12 | ]; 13 | 14 | export const config = new ConfigDefinitionBuilder( 15 | "DualWieldRepeats", 16 | 2025, 17 | "二刀流時に特定の行動の連続回数を増やす" 18 | ) 19 | .withHistories(histories) 20 | .withLicense("MIT") 21 | .withHelp(dedent`スキル・アイテムに指定のメモタグを記述すると、 22 | 対象を二刀流連撃行動に設定します。 23 | 二刀流連撃行動は、二刀流のバトラーが使用すると連続回数が1増えます。 24 | 25 | `) 26 | .build(); 27 | -------------------------------------------------------------------------------- /src/codes/ElementDamageBonusTrait/plugin/ElementDamageBonusTrait.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | 5 | declare namespace DataManager { 6 | var _reservedExtractingElementDamageBonusTraitsNoteHolders: (MZ.Actor | MZ.Class | MZ.Weapon | MZ.Armor | MZ.State | MZ.Enemy)[]; 7 | function extractElementDamageBonusTraits(): void; 8 | function extractElementDamageBonusTraitsSub(meta: string): MZ.Trait[]; 9 | } 10 | 11 | declare interface Game_BattlerBase { 12 | elementAttackDamageBonus(elementId: number): number; 13 | elementAttackDamageRate(elementId: number): number; 14 | } 15 | 16 | declare interface Game_Action { 17 | elementDamageBonus(elements: number[]): number; 18 | } 19 | -------------------------------------------------------------------------------- /src/codes/StateWithDeath/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_StateWithDeath: 2 | name: DarkPlasma_StateWithDeath 3 | year: 2022 4 | license: MIT 5 | histories: 6 | - date: 2023/11/18 7 | version: 1.1.0 8 | description: 'TypeScript移行' 9 | - description: '戦闘不能後も継続するステート一覧を取得するインターフェース追加' 10 | - date: 2022/05/29 11 | version: 1.0.1 12 | description: '戦闘時にエラーになる不具合を修正' 13 | - version: 1.0.0 14 | description: '公開' 15 | 16 | locates: 17 | - ja 18 | plugindesc: 19 | ja: '戦闘不能になっても消えないステート' 20 | parameters: 21 | - param: statesWithDeath 22 | text: 23 | ja: 消えないステート 24 | type: state[] 25 | default: [] 26 | commands: [] 27 | structures: 28 | dependencies: 29 | base: [] 30 | orderAfter: [] 31 | orderBefore: [] 32 | help: 33 | ja: | 34 | 指定したステートは戦闘不能になっても解除されません。 35 | -------------------------------------------------------------------------------- /src/codes/SwapParamState/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_SwapParamState: 2 | name: DarkPlasma_SwapParamState 3 | year: 2023 4 | license: MIT 5 | histories: 6 | - date: 2023/08/12 7 | version: 1.0.0 8 | description: '公開' 9 | 10 | locates: 11 | - ja 12 | plugindesc: 13 | ja: 'パラメータを入れ替えるステート' 14 | parameters: [] 15 | commands: [] 16 | structures: 17 | dependencies: 18 | base: [] 19 | orderAfter: [] 20 | orderBefore: [] 21 | help: 22 | ja: | 23 | パラメータを入れ替えるステートを実現します。 24 | 25 | ステートのメモ欄に 26 | 27 | と入力すると、そのステートにかかっている間 28 | 攻撃力と魔法力を入れ替えます。 29 | 30 | ステート名: 31 | mhp: 最大HP 32 | mmp: 最大MP 33 | atk: 攻撃力 34 | def: 防御力 35 | mat: 魔法力 36 | mdf: 魔法防御 37 | agi: 敏捷 38 | luk: 運 39 | 40 | 同じパラメータを入れ替えるステートは重複できません。 41 | -------------------------------------------------------------------------------- /src/codes/WaitForCloseChoiceList/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_WaitForCloseChoiceList: 2 | name: DarkPlasma_WaitForCloseChioceList 3 | year: 2020 4 | license: MIT 5 | histories: 6 | - date: '2021/07/05' 7 | version: '1.0.3' 8 | description: 'MZ 1.3.2に対応' 9 | - date: '2021/06/22' 10 | version: '1.0.2' 11 | description: 'サブフォルダからの読み込みに対応' 12 | - date: '2020/09/08' 13 | version: '1.0.1' 14 | description: 'rollup構成へ移行' 15 | - date: '2020/08/25' 16 | version: '1.0.0' 17 | description: '公開' 18 | 19 | locates: 20 | - ja 21 | plugindesc: 22 | ja: 'シーンチェンジの際に選択肢ウィンドウが閉じるのを待つ' 23 | parameters: [] 24 | help: 25 | ja: | 26 | RPGツクールMZでは選択肢ウィンドウの選択肢が多数ある場合、 27 | 新しいシーンのウィンドウの背後に選択肢ウィンドウの残骸が残ります。 28 | 29 | 本プラグインではシーンチェンジの際に選択肢ウィンドウが閉じきる前に 30 | 別シーンのウィンドウが開いてしまうのを防ぎます。 31 | -------------------------------------------------------------------------------- /src/codes/IndividualItemCommand/config/config.ts: -------------------------------------------------------------------------------- 1 | import { ConfigDefinitionBuilder } from '../../../../modules/config/configDefinitionBuilder.js'; 2 | import {} from '../../../../modules/config/createParameter.js'; 3 | import { dedent } from '@qnighy/dedent'; 4 | 5 | const histories = [ 6 | { 7 | date: "2024/01/21", 8 | version: "1.1.1", 9 | description: "個別コマンドウィンドウの高さ調整", 10 | }, 11 | { 12 | version: "1.1.0", 13 | description: "個別コマンドウィンドウのインターフェース公開", 14 | }, 15 | { 16 | version: "1.0.0", 17 | description: "公開", 18 | } 19 | ]; 20 | 21 | export const config = new ConfigDefinitionBuilder( 22 | "IndividualItemCommand", 23 | 2024, 24 | "アイテムシーン アイテムに個別でコマンドを表示する" 25 | ) 26 | .withHistories(histories) 27 | .withLicense("MIT") 28 | .withHelp(dedent`アイテムシーンでアイテムにカーソルを合わせて決定を押した際、 29 | 個別でコマンドを表示します。`) 30 | .build(); 31 | -------------------------------------------------------------------------------- /src/codes/VisibleBattleLogWindow/DarkPlasma_VisibleBattleLogWindow.js: -------------------------------------------------------------------------------- 1 | Scene_Battle.prototype.updateLogWindowHeight = function () { 2 | this._logWindow.height = this.calcWindowHeight(this._logWindow.textLineCount(), false); 3 | }; 4 | 5 | Scene_Battle.prototype.updateLogWindowVisibility = function () { 6 | this.updateLogWindowHeight(); 7 | this._logWindow.visible = this._logWindow.hasText(); 8 | }; 9 | 10 | const _Window_BattleLog_initialize = Window_BattleLog.prototype.initialize; 11 | Window_BattleLog.prototype.initialize = function (rect) { 12 | _Window_BattleLog_initialize.call(this, rect); 13 | this.opacity = 255; 14 | this.hide(); 15 | }; 16 | 17 | Window_BattleLog.prototype.textLineCount = function () { 18 | return this._lines.length; 19 | }; 20 | 21 | Window_BattleLog.prototype.hasText = function () { 22 | return this._lines.length > 0; 23 | }; 24 | -------------------------------------------------------------------------------- /src/codes/MinimumDamageValue/DarkPlasma_MinimumDamageValue.ts: -------------------------------------------------------------------------------- 1 | import { settings } from './_build/DarkPlasma_MinimumDamageValue_parameters'; 2 | 3 | const _GameAction_makeDamageValue = Game_Action.prototype.makeDamageValue; 4 | Game_Action.prototype.makeDamageValue = function (target, critical) { 5 | return _GameAction_makeDamageValue.call(this, target, critical) + this.minimumDamageValue(target); 6 | }; 7 | 8 | Game_Action.prototype.minimumDamageValue = function (target) { 9 | let value = 0; 10 | if (settings.ignoreIfRateLEZero && this.calcElementRate(target) <= 0) { 11 | return 0; 12 | } 13 | if (this.isPhysical()) { 14 | value = settings.minimumPhysicalDamage; 15 | } 16 | if (this.isMagical()) { 17 | value = settings.minimumMagicalDamage; 18 | } 19 | return settings.randomMinimumDamage ? Math.floor(Math.random() * (value + 1)) : value; 20 | }; 21 | -------------------------------------------------------------------------------- /src/codes/ActionDebuffSuccessRate/DarkPlasma_ActionDebuffSuccessRate.ts: -------------------------------------------------------------------------------- 1 | /** 2 | * @param {Game_Action.prototype} gameAction 3 | */ 4 | function Game_Action_DebuffSuccessRateMixIn(gameAction: Game_Action) { 5 | gameAction.baseDebuffSuccessRate = function () { 6 | return Number(this.item()?.meta.debuffSuccessRate || 100) / 100; 7 | }; 8 | 9 | /** 10 | * 弱体の付与。成功率計算を変更するため上書き 11 | * @param {Game_BattlerBase} target 12 | * @param {MZ.Effect} effect 13 | */ 14 | gameAction.itemEffectAddDebuff = function (target, effect) { 15 | let chance = this.baseDebuffSuccessRate() * target.debuffRate(effect.dataId) * this.lukEffectRate(target); 16 | if (Math.random() < chance) { 17 | target.addDebuff(effect.dataId, effect.value1); 18 | this.makeSuccess(target); 19 | } 20 | }; 21 | } 22 | 23 | Game_Action_DebuffSuccessRateMixIn(Game_Action.prototype); 24 | -------------------------------------------------------------------------------- /src/codes/SaveEquipSet/SaveEquipSet.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_EquipSlot { 4 | _slotId: number; 5 | _item?: MZ.Weapon|MZ.Armor; 6 | _itemId: number|null; 7 | _kind: number|null; 8 | 9 | readonly slotId: number; 10 | readonly item: MZ.Weapon|MZ.Armor|null; 11 | 12 | initIdAndKind(item: MZ.Weapon|MZ.Armor): void; 13 | } 14 | 15 | declare interface Game_Actor { 16 | _equipSet?: Game_EquipSlot[]; 17 | _equipSets: Game_EquipSlot[][]; 18 | 19 | canEquipByLoad(equipSlot: Game_EquipSlot): boolean; 20 | equipSets(): Game_EquipSlot[][]; 21 | equipSetAt(index: number): Game_EquipSlot[]; 22 | saveEquipSet(): void; 23 | saveEquipSetAt(index: number): void; 24 | loadEquipSet(): void; 25 | loadEquipSetAt(index: number): void; 26 | clearEquipSets(): void; 27 | deleteEquipSetAt(index: number): void; 28 | } 29 | -------------------------------------------------------------------------------- /src/codes/ItemDetail/ItemDetail.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | /// 5 | 6 | declare interface Scene_Item { 7 | _detailWindowLayer: WindowLayer; 8 | _detailWindow: Window_ItemDetail; 9 | 10 | createDetailWindow(): void; 11 | detailWindowRect(): Rectangle; 12 | toggleDetailWindow(): void; 13 | } 14 | 15 | declare interface Window_ItemList { 16 | _detailWindow?: Window_ItemDetail; 17 | 18 | setDetailWindow(detailWindow: Window_ItemDetail): void; 19 | } 20 | 21 | declare class Window_DetailText extends Window_Scrollable { 22 | 23 | } 24 | 25 | declare interface Window_ItemDetail extends Window_DetailText { 26 | } 27 | -------------------------------------------------------------------------------- /src/codes/EquipItemInMenuItem/config/config.ts: -------------------------------------------------------------------------------- 1 | import { ConfigDefinitionBuilder } from '../../../../modules/config/configDefinitionBuilder.js'; 2 | import {} from '../../../../modules/config/createParameter.js'; 3 | import { dedent } from '@qnighy/dedent'; 4 | 5 | const histories = [ 6 | { 7 | date: "2024/01/22", 8 | version: "1.0.0", 9 | description: "公開", 10 | } 11 | ]; 12 | 13 | export const config = new ConfigDefinitionBuilder( 14 | "EquipItemInMenuItem", 15 | 2024, 16 | "アイテムシーン アイテム一覧から装備するコマンド" 17 | ) 18 | .withHistories(histories) 19 | .withLicense("MIT") 20 | .withBaseDependency({ 21 | name: "DarkPlasma_IndividualItemCommand", 22 | version: "1.1.0", 23 | }) 24 | .withOrderAfterDependency({ 25 | name: "DarkPlasma_IndividualItemCommand", 26 | }) 27 | .withHelp(dedent`アイテムシーンでアイテムにカーソルを合わせて決定を押した際、 28 | 装備コマンドを表示します。`) 29 | .build(); 30 | -------------------------------------------------------------------------------- /src/codes/ErasePictures/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_ErasePictures: 2 | name: DarkPlasma_ErasePictures 3 | year: 2022 4 | license: MIT 5 | histories: 6 | - date: 2022/07/03 7 | version: 1.0.0 8 | description: '公開' 9 | 10 | locates: 11 | - ja 12 | plugindesc: 13 | ja: '複数のピクチャを消去する' 14 | parameters: [] 15 | commands: 16 | - command: erasePictures 17 | text: 18 | ja: 指定範囲のピクチャを消去する 19 | args: 20 | - arg: start 21 | text: 22 | ja: 開始ID 23 | type: number 24 | default: 1 25 | min: 1 26 | - arg: end 27 | text: 28 | ja: 終了ID 29 | type: number 30 | default: 100 31 | structures: 32 | dependencies: 33 | base: [] 34 | orderAfter: [] 35 | orderBefore: [] 36 | help: 37 | ja: | 38 | 指定したIDの範囲のピクチャを消去するプラグインコマンドを提供します。 39 | -------------------------------------------------------------------------------- /src/codes/ForceFormation/ForceFormation.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare namespace BattleManager { 4 | declare interface LogWindow { 5 | displayForceChangedFormation(): void; 6 | } 7 | } 8 | 9 | declare interface BattleManager { 10 | forceFormation(): void; 11 | } 12 | 13 | declare interface Game_Party { 14 | _forceFormationChanged: boolean; 15 | 16 | forwardMembersAreAllDead(): boolean; 17 | isForceFormationEnabled(): boolean; 18 | forceFormation(): void; 19 | forceFormationChanged(): boolean; 20 | resetForceFormationChanged(): void; 21 | } 22 | 23 | declare interface Game_Actor { 24 | isForceFormationEnabled(): boolean; 25 | } 26 | 27 | declare interface Game_Map { 28 | isForceFormationEnabled(): boolean; 29 | } 30 | 31 | declare interface Window_BattleLog { 32 | displayForceChangedFormation(): void; 33 | } 34 | -------------------------------------------------------------------------------- /src/codes/AllocateUniqueTraitDataId/plugin/AllocateUniqueTraitDataId.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | declare var uniqueTraitDataIdCache: UniqueTraitDataIdCache; 5 | 6 | declare interface UniqueTraitDataIdCache { 7 | _cache: { 8 | [key: string]: UniqueTraitDataId; 9 | }; 10 | 11 | allocate(pluginName: string, traitId: number, localId: number, name: string | (() => string)): UniqueTraitDataId; 12 | key(pluginName: string, traitId: number, localId: number): string; 13 | nameByIds(traitId: number, dataId: number): string|undefined; 14 | } 15 | 16 | declare interface UniqueTraitDataId { 17 | _id: number; 18 | _name: string; 19 | 20 | readonly id: number; 21 | readonly name: string; 22 | } 23 | 24 | declare interface Scene_Boot { 25 | evaluateUniqueTraitDataNames(): void; 26 | } 27 | -------------------------------------------------------------------------------- /src/codes/ControlAutoplay/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_ControlAutoplay: 2 | name: DarkPlasma_ControlAutoplay 3 | year: 2023 4 | license: MIT 5 | histories: 6 | - date: 2023/03/19 7 | version: 1.0.0 8 | description: '公開' 9 | 10 | locates: 11 | - ja 12 | plugindesc: 13 | ja: 'マップのBGM/BGSの自動演奏を制御する' 14 | parameters: 15 | - param: disableAutoplayBgmSwitch 16 | text: 17 | ja: BGM自動演奏無効スイッチ 18 | type: switch 19 | default: 0 20 | - param: disableAutoplayBgsSwitch 21 | text: 22 | ja: BGS自動演奏無効スイッチ 23 | type: switch 24 | default: 0 25 | commands: [] 26 | structures: 27 | dependencies: 28 | base: [] 29 | orderAfter: [] 30 | orderBefore: [] 31 | help: 32 | ja: | 33 | マップに設定したBGM/BGSの自動再生を 34 | 設定したスイッチがONの間だけ無効にします。 35 | 36 | 設定したスイッチがONの間に対象マップに移動しても 37 | BGM/BGSの自動演奏は開始されません。 38 | -------------------------------------------------------------------------------- /src/codes/SellingPriceRate/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_SellingPriceRate: 2 | name: DarkPlasma_SellingPriceRate 3 | year: 2021 4 | license: MIT 5 | histories: 6 | - date: '2021/07/05' 7 | version: '1.0.2' 8 | description: 'MZ 1.3.2に対応' 9 | - date: '2021/06/22' 10 | version: '1.0.1' 11 | description: 'サブフォルダからの読み込みに対応' 12 | - date: '2021/05/16' 13 | version: '1.0.0' 14 | description: '公開' 15 | 16 | locates: 17 | - ja 18 | plugindesc: 19 | ja: 'アイテム売却額倍率を設定する' 20 | parameters: 21 | - param: sellingPriceRate 22 | text: 23 | ja: 売却額倍率(%) 24 | desc: 25 | ja: アイテム売却時の倍率を%で設定します。 26 | type: number 27 | default: 50 28 | min: 1 29 | commands: [] 30 | structures: 31 | dependencies: 32 | base: 33 | orderAfter: 34 | orderBefore: 35 | help: 36 | ja: | 37 | アイテム売却時の倍率を設定します。 38 | -------------------------------------------------------------------------------- /src/codes/RemoveBuffAtBattleEnd/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_RemoveBuffAtBattleEnd: 2 | name: DarkPlasma_RemoveBuffAtBattleEnd 3 | year: 2022 4 | license: MIT 5 | histories: 6 | - date: 2022/08/13 7 | version: 1.0.0 8 | description: '公開' 9 | 10 | locates: 11 | - ja 12 | plugindesc: 13 | ja: '戦闘終了時に強化・弱体を解除するかどうか' 14 | parameters: 15 | - param: removeBuffAtBattleEnd 16 | text: 17 | ja: 戦闘終了で強化・弱体を解除 18 | desc: 19 | ja: 戦闘終了時、逃走したバトラー含む全バトラーの強化・弱体を解除します。 20 | type: boolean 21 | default: true 22 | commands: [] 23 | structures: 24 | dependencies: 25 | base: [] 26 | orderAfter: [] 27 | orderBefore: [] 28 | help: 29 | ja: | 30 | 戦闘終了時に全バトラーの強化・弱体を解除するかどうかを設定します。 31 | 32 | MZデフォルトの仕様では、行動による逃走で戦闘を離脱したアクターの強化・弱体は 33 | 戦闘終了時に解除されません。 34 | 本プラグインでは、逃走したバトラーを含めて全バトラーの強化・弱体を 35 | 解除するか否かを設定します。 36 | -------------------------------------------------------------------------------- /src/codes/RemoveStateByMp/DarkPlasma_RemoveStateByMp.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | function Game_Battler_RemoveStateByMpMixIn(gameBattler: Game_Battler) { 4 | gameBattler.removeStatesByMp = function () { 5 | this.states() 6 | .filter(state => state.meta.removeByMpLTE && Number(state.meta.removeByMpLTE) >= this.mp) 7 | .forEach(state => this.removeState(state.id)); 8 | }; 9 | 10 | /** 11 | * gainMp, setMp経由の場合はrefreshを呼ぶ 12 | */ 13 | const _refresh = gameBattler.refresh; 14 | gameBattler.refresh = function () { 15 | _refresh.call(this); 16 | this.removeStatesByMp(); 17 | }; 18 | 19 | const _paySkillCost = gameBattler.paySkillCost; 20 | gameBattler.paySkillCost = function (skill) { 21 | _paySkillCost.call(this, skill); 22 | this.removeStatesByMp(); 23 | }; 24 | } 25 | 26 | Game_Battler_RemoveStateByMpMixIn(Game_Battler.prototype); 27 | -------------------------------------------------------------------------------- /src/codes/SetColorByCode/DarkPlasma_SetColorByCode.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | import { Window_ObtainEscapeParamTextMixIn } from '../../common/window/obtainEscapeParamText'; 4 | 5 | Window_ObtainEscapeParamTextMixIn(Window_Base.prototype); 6 | 7 | function Window_SetColorByCodeMixIn(windowClass: Window_Base) { 8 | const _processEscapeCharacter = windowClass.processEscapeCharacter; 9 | windowClass.processEscapeCharacter = function (code, textState) { 10 | if (code === "C") { 11 | const color = this.obtainEscapeParamText(textState)[0]; 12 | if (color.startsWith("#")) { 13 | this.changeTextColor(color); 14 | } else { 15 | this.processColorChange(Number(color)); 16 | } 17 | } else { 18 | _processEscapeCharacter.call(this, code, textState); 19 | } 20 | }; 21 | } 22 | 23 | Window_SetColorByCodeMixIn(Window_Base.prototype); 24 | -------------------------------------------------------------------------------- /src/codes/ChangeBattlebackInBattle/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_ChangeBattlebackInBattle: 2 | name: DarkPlasma_ChangeBattlebackInBattle 3 | year: 2021 4 | license: MIT 5 | histories: 6 | - date: '2021/09/11' 7 | version: '1.0.0' 8 | description: '公開' 9 | 10 | locates: 11 | - ja 12 | plugindesc: 13 | ja: '戦闘中に戦闘背景を変更する' 14 | parameters: [] 15 | commands: 16 | - command: changeBattleback 17 | text: 18 | ja: 戦闘背景を変更する 19 | args: 20 | - arg: back1 21 | text: 22 | ja: 背景1 23 | type: file 24 | dir: img/battlebacks1/ 25 | - arg: back2 26 | text: 27 | ja: 背景2 28 | type: file 29 | dir: img/battlebacks2/ 30 | structures: 31 | dependencies: 32 | base: [] 33 | orderAfter: [] 34 | orderBefore: [] 35 | help: 36 | ja: | 37 | 戦闘中に戦闘背景を変更するプラグインコマンドを提供します。 38 | -------------------------------------------------------------------------------- /src/codes/RandomSkill/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_RandomSkill: 2 | name: DarkPlasma_RandomSkill 3 | year: 2023 4 | license: MIT 5 | histories: 6 | - date: 2023/11/25 7 | version: 1.0.0 8 | description: '公開' 9 | 10 | locates: 11 | - ja 12 | plugindesc: 13 | ja: '指定したスキルのうちどれかひとつを発動する使用効果' 14 | parameters: [] 15 | commands: [] 16 | structures: 17 | dependencies: 18 | base: 19 | - name: DarkPlasma_AllocateUniqueEffectCode 20 | version: 1.0.1 21 | orderAfter: 22 | - name: DarkPlasma_AllocateUniqueEffectCode 23 | orderBefore: [] 24 | help: 25 | ja: | 26 | 使用するとランダムで指定したスキルのうち 27 | どれか一つを発動する使用効果を実現します。 28 | 29 | スキルまたはアイテムのメモ欄に以下のように記述すると 30 | 2/3でスキルID5、1/3でスキルID6が発動します。 31 | 32 | 36 | 37 | この使用効果を持つスキル・アイテムの対象は 38 | 使用者に設定してください。 39 | -------------------------------------------------------------------------------- /src/codes/CertainHitAction/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_CertainHitAction: 2 | name: DarkPlasma_CertainHitAction 3 | year: 2023 4 | license: MIT 5 | histories: 6 | - date: 2023/08/12 7 | version: 1.0.0 8 | description: '公開' 9 | 10 | locates: 11 | - ja 12 | plugindesc: 13 | ja: 'スキルやアイテムを必中・反撃無視・反射無視にする' 14 | parameters: [] 15 | commands: [] 16 | structures: 17 | dependencies: 18 | base: [] 19 | orderAfter: [] 20 | orderBefore: [] 21 | help: 22 | ja: | 23 | スキルやアイテムのメモ欄に指定のタグを記述することで 24 | 対象に必中特性、反撃無視特性、反射無視特性を付与します。 25 | 26 | 必中特性: 27 | 命中率による命中判定の成功率を100%にします。 28 | 回避率・魔法回避率による回避判定の成功率を0%にします。 29 | 命中タイプ:必中と異なり、物理ダメージ率や魔法ダメージ率の影響は残る他 30 | ステートの付与の成功率も通常通りの計算となります。 31 | 32 | 反撃無視特性: 33 | そのスキルに対する反撃率による反撃判定の成功率を0%にします。 34 | 35 | 反射無視特性: 36 | そのスキルに対する魔法反射率による反射判定の成功率を0%にします。 37 | -------------------------------------------------------------------------------- /src/common/manager/DataManagerMixIn.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | const KIND = { 4 | ITEM: 1, 5 | WEAPON: 2, 6 | ARMOR: 3, 7 | }; 8 | 9 | export function DataManagerMixIn(dataManager: typeof DataManager) { 10 | dataManager.kindOf = function (data) { 11 | if (DataManager.isItem(data)) { 12 | return KIND.ITEM; 13 | } else if (DataManager.isWeapon(data)) { 14 | return KIND.WEAPON; 15 | } else if (DataManager.isArmor(data)) { 16 | return KIND.ARMOR; 17 | } else { 18 | return undefined; 19 | } 20 | }; 21 | 22 | dataManager.dataObject = function (kind, dataId) { 23 | switch (kind) { 24 | case KIND.ITEM: 25 | return $dataItems[dataId]; 26 | case KIND.WEAPON: 27 | return $dataWeapons[dataId]; 28 | case KIND.ARMOR: 29 | return $dataArmors[dataId]; 30 | default: 31 | return null; 32 | } 33 | }; 34 | } 35 | -------------------------------------------------------------------------------- /src/codes/UsableCountInBattle/config/config.ts: -------------------------------------------------------------------------------- 1 | import { ConfigDefinitionBuilder } from '../../../../modules/config/configDefinitionBuilder.js'; 2 | import { PluginHistorySchema } from '../../../../modules/config/configSchema.js'; 3 | import {} from '../../../../modules/config/createParameter.js'; 4 | import { dedent } from '@qnighy/dedent'; 5 | 6 | const histories: PluginHistorySchema[] = [ 7 | { 8 | date: "2025/09/17", 9 | version: "1.0.0", 10 | description: "最初のバージョン", 11 | } 12 | ]; 13 | 14 | export const config = new ConfigDefinitionBuilder( 15 | "UsableCountInBattle", 16 | 2025, 17 | "戦闘中一定回数のみ使えるスキル/アイテム" 18 | ) 19 | .withHistories(histories) 20 | .withLicense("MIT") 21 | .withHelp(dedent`戦闘中に一定回数のみ使えるスキル/アイテムを実現します。 22 | 23 | 24 | とメモ欄に記述すると、そのスキルやアイテムは 25 | 戦闘中に1回までしか使えなくなります。 26 | 27 | 28 | のように、回数を変数で指定できます。`) 29 | .build(); 30 | -------------------------------------------------------------------------------- /src/codes/SkillCostExtensionTraits/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_SkillCostExtensionTraits: 2 | name: DarkPlasma_SkillCostExtensionTraits 3 | year: 2021 4 | license: MIT 5 | histories: 6 | - date: '2021/07/05' 7 | version: '1.0.2' 8 | description: 'MZ 1.3.2に対応' 9 | - date: '2021/06/22' 10 | version: '1.0.1' 11 | description: 'サブフォルダからの読み込みに対応' 12 | - date: '2021/01/11' 13 | version: '1.0.0' 14 | description: '公開' 15 | 16 | locates: 17 | - ja 18 | plugindesc: 19 | ja: 'スキルコスト拡張プラグインに関する特徴設定' 20 | parameters: [] 21 | commands: [] 22 | structures: 23 | dependencies: 24 | base: DarkPlasma_SkillCostExtension 25 | orderAfter: DarkPlasma_SkillCostExtension 26 | orderBefore: 27 | help: 28 | ja: | 29 | スキルコスト拡張プラグインに関する特徴設定を追加します。 30 | 31 | アクター、職業、装備のメモ欄に下記の記法で設定を追加します。 32 | 33 | 34 | HP消費率 35 | スキルで消費するHP量に割合をかけます。デフォルトはn=1です。 36 | -------------------------------------------------------------------------------- /src/codes/FallImages/plugin/FallImages.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | type Game_FallImagesStartOption = "override"; 4 | 5 | type FallImageStatusSaveObject = { 6 | startRequested: boolean; 7 | requestedImageId: number; 8 | stopRequested: boolean; 9 | fadeOutRequested: boolean; 10 | isFalling: boolean; 11 | startOptions?: Game_FallImagesStartOption[]; 12 | }; 13 | 14 | declare interface Game_System { 15 | _fallImageStatus: FallImageStatusSaveObject; 16 | } 17 | 18 | declare interface Game_Map { 19 | _autoFallingImage: boolean; 20 | 21 | autoFallImageId(): number|undefined; 22 | } 23 | 24 | declare interface Spriteset_Map { 25 | _fallImageSprites: Sprite_Falling[]; 26 | 27 | createFallImage(): void; 28 | needCreateFallImage(): boolean; 29 | updateFallImage(): void; 30 | destroyFallImages(): void; 31 | } 32 | 33 | declare interface Sprite_Falling extends Sprite { 34 | setup(): void; 35 | } 36 | -------------------------------------------------------------------------------- /src/codes/ItemWithPartyTraits/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_ItemWithPartyTraits: 2 | name: DarkPlasma_ItemWithPartyTraits 3 | year: 2023 4 | license: MIT 5 | histories: 6 | - date: 2023/12/01 7 | version: 1.0.0 8 | description: '公開' 9 | 10 | locates: 11 | - ja 12 | plugindesc: 13 | ja: '持っているだけでパーティ全員に特徴を持たせるアイテム' 14 | parameters: [] 15 | commands: [] 16 | structures: 17 | dependencies: 18 | base: [] 19 | orderAfter: [] 20 | orderBefore: [] 21 | help: 22 | ja: | 23 | 所持しているだけでパーティメンバー全員が特徴を得るアイテムを実現します。 24 | 複数個所持していても特徴は重複しません。 25 | 26 | アイテムのメモ欄に以下のように記述してください。 27 | 28 | アクターID1と同じ特徴を得ます。 29 | 30 | 31 | 職業ID1と同じ特徴を得ます。 32 | 33 | 34 | 武器ID1と同じ特徴を得ます。 35 | 36 | 37 | 防具ID1と同じ特徴を得ます。 38 | 39 | 40 | ステートID1と同じ特徴を得ます。 41 | -------------------------------------------------------------------------------- /src/codes/OrderIdAlias/OrderIdAlias.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare namespace MZ { 4 | interface Actor { 5 | orderId: number; 6 | } 7 | 8 | interface Class { 9 | orderId: number; 10 | } 11 | 12 | interface Enemy { 13 | orderId: number; 14 | } 15 | 16 | interface Troop { 17 | orderId: number; 18 | } 19 | 20 | interface Item { 21 | orderId: number; 22 | } 23 | 24 | interface Weapon { 25 | orderId: number; 26 | } 27 | 28 | interface Armor { 29 | orderId: number; 30 | } 31 | 32 | interface Skill { 33 | orderId: number; 34 | } 35 | 36 | interface State { 37 | orderId: number; 38 | } 39 | 40 | interface Map { 41 | orderId: number; 42 | } 43 | 44 | interface Event { 45 | orderId: number; 46 | } 47 | } 48 | 49 | type OrderIdHolder = MZ.Actor | MZ.Class | MZ.Enemy | MZ.Item | MZ.Weapon | MZ.Armor | MZ.Skill | MZ.State | MZ.Event; 50 | -------------------------------------------------------------------------------- /src/codes/RemoveStateBuffByEscapeAction/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_RemoveStateBuffByEscapeAction: 2 | name: DarkPlasma_RemoveStateBuffByEscapeAction 3 | year: 2022 4 | license: MIT 5 | histories: 6 | - date: 2022/08/13 7 | version: 1.0.0 8 | description: '公開' 9 | 10 | locates: 11 | - ja 12 | plugindesc: 13 | ja: '逃走行動によってステート・強化・弱体解除' 14 | parameters: 15 | - param: removeBuffByEscapeAction 16 | text: 17 | ja: 逃走行動で強化・弱体を解除 18 | desc: 19 | ja: 逃走行動したバトラーの強化・弱体をその場で解除します。 20 | type: boolean 21 | default: false 22 | commands: [] 23 | structures: 24 | dependencies: 25 | base: [] 26 | orderAfter: [] 27 | orderBefore: [] 28 | help: 29 | ja: | 30 | 特殊効果 逃げるの効果を持つ行動によって逃走した際、 31 | ステートや強化・弱体を解除するかどうかを設定します。 32 | 33 | メモ欄に と記述した場合、 34 | 対象のステートは逃走行動によって解除されません。 35 | 36 | 逃走行動によってステートが解除される際、解除用メッセージを表示しません。 37 | -------------------------------------------------------------------------------- /src/codes/SaveEventLocations/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_SaveEventLocations: 2 | name: DarkPlasma_SaveEventLocations 3 | year: 2023 4 | license: MIT 5 | histories: 6 | - date: 2023/04/13 7 | version: 1.0.0 8 | description: '公開' 9 | 10 | locates: 11 | - ja 12 | plugindesc: 13 | ja: 'マップ上のイベント位置と向きを記録する' 14 | parameters: [] 15 | commands: [] 16 | structures: 17 | dependencies: 18 | base: [] 19 | orderAfter: [] 20 | orderBefore: [] 21 | help: 22 | ja: | 23 | RPGツクールMZでは、マップのロード時に 24 | イベントの位置と向きを初期化します。 25 | 本プラグインはマップ上のイベント位置と向きを記録し、 26 | 再びそのマップをロードした際に、その情報を元に 27 | イベントの位置と向きを復元します。 28 | 29 | マップのメモ欄に以下のように記述すると 30 | そのマップのイベントすべての位置と向きを記録します。 31 | 32 | 33 | イベントのメモ欄に以下のように記述すると 34 | そのイベントの位置と向きを記録します。 35 | 36 | 37 | 記録した位置と向きはセーブデータに含まれます。 38 | 記録するイベントの数が多いほど、 39 | セーブデータの容量も大きくなります。 40 | -------------------------------------------------------------------------------- /src/codes/DisableShowFastMessage/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_DisableShowFastMessage: 2 | name: DarkPlasma_DisableShowFastMessage 3 | year: 2020 4 | license: MIT 5 | histories: 6 | - date: '2021/07/05' 7 | version: '1.0.3' 8 | description: 'MZ 1.3.2に対応' 9 | - date: '2021/06/22' 10 | version: '1.0.2' 11 | description: 'サブフォルダからの読み込みに対応' 12 | - date: '2020/10/10' 13 | version: '1.0.1' 14 | description: 'リファクタ' 15 | - date: '2020/09/26' 16 | version: '1.0.0' 17 | description: '公開' 18 | 19 | locates: 20 | - ja 21 | plugindesc: 22 | ja: 'メッセージの高速表示を禁止する' 23 | parameters: [] 24 | commands: 25 | - command: Enable showFastMessage 26 | text: 27 | ja: メッセージ高速表示許可 28 | args: [] 29 | - command: Disable showFastMessage 30 | text: 31 | ja: メッセージ高速表示禁止 32 | args: [] 33 | structures: 34 | help: 35 | ja: | 36 | プラグインコマンドにより、メッセージの高速表示を禁止したり許可したりします。 37 | -------------------------------------------------------------------------------- /src/codes/DisplayDatabaseDetailWindow/config/config.ts: -------------------------------------------------------------------------------- 1 | import { ConfigDefinitionBuilder } from '../../../../modules/config/configDefinitionBuilder.js'; 2 | import { PluginHistorySchema } from '../../../../modules/config/configSchema.js'; 3 | import {} from '../../../../modules/config/createParameter.js'; 4 | import { dedent } from '@qnighy/dedent'; 5 | 6 | const histories: PluginHistorySchema[] = [ 7 | { 8 | date: "2024/04/26", 9 | version: "1.0.1", 10 | description: "詳細説明の前後にある空白を無視する", 11 | }, 12 | { 13 | date: "2024/04/20", 14 | version: "1.0.0", 15 | description: "公開", 16 | } 17 | ]; 18 | 19 | export const config = new ConfigDefinitionBuilder( 20 | "DisplayDatabaseDetailWindow", 21 | 2024, 22 | "データベース項目の詳細説明を表示するウィンドウ基底" 23 | ) 24 | .withHistories(histories) 25 | .withLicense("MIT") 26 | .withHelp(dedent`ウィンドウにデータベース項目の 27 | 詳細説明を表示するための基底を提供します。 28 | 29 | 本プラグインは単体では動作しません。 30 | 拡張プラグインとともに利用してください。`) 31 | .build(); 32 | -------------------------------------------------------------------------------- /src/codes/SeverImmortality/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_SeverImmortality: 2 | name: DarkPlasma_SeverImmortality 3 | year: 2021 4 | license: MIT 5 | histories: 6 | - date: '2021/07/05' 7 | version: '1.0.2' 8 | description: 'MZ 1.3.2に対応' 9 | - date: '2021/06/22' 10 | version: '1.0.1' 11 | description: 'サブフォルダからの読み込みに対応' 12 | - date: '2021/04/16' 13 | version: '1.0.0' 14 | description: '公開' 15 | 16 | locates: 17 | - ja 18 | plugindesc: 19 | ja: '倒した相手を復活不可にする行動' 20 | parameters: [] 21 | commands: [] 22 | structures: 23 | dependencies: 24 | base: 25 | orderAfter: 26 | orderBefore: 27 | help: 28 | ja: | 29 | 下記のメモタグが設定されたスキルやアイテムで敵を倒すと、対象が復活不能になります。 30 | 31 | 32 | 33 | 復活とは、戦闘不能状態に陥った敵が下記いずれかの要因で戦闘に復帰することです。 34 | - HP回復スキルで回復する 35 | - 戦闘不能ステートを解除する行動でステートを解除する 36 | - イベントコマンド 敵キャラの全回復 で回復する 37 | - イベントコマンド 敵キャラのステート変更 で戦闘不能ステートを解除する 38 | -------------------------------------------------------------------------------- /src/codes/StateWithDeath/DarkPlasma_StateWithDeath.ts: -------------------------------------------------------------------------------- 1 | import { settings } from './_build/DarkPlasma_StateWithDeath_parameters'; 2 | 3 | /** 4 | * @param {Game_BattlerBase.prototype} gameBattlerBase 5 | */ 6 | function Game_BattlerBase_StateWithDeathMixIn(gameBattlerBase: Game_BattlerBase) { 7 | const _die = gameBattlerBase.die; 8 | gameBattlerBase.die = function () { 9 | const continueStates = this.continueStateIdsAfterDeath(); 10 | const continueStateTurns: {[stateId: number]: number} = {}; 11 | continueStates.forEach((stateId) => (continueStateTurns[stateId] = this._stateTurns[stateId])); 12 | _die.call(this); 13 | this._states = continueStates; 14 | this._stateTurns = continueStateTurns; 15 | }; 16 | 17 | gameBattlerBase.continueStateIdsAfterDeath = function () { 18 | return this._states.filter((stateId) => settings.statesWithDeath.includes(stateId)); 19 | }; 20 | } 21 | 22 | Game_BattlerBase_StateWithDeathMixIn(Game_BattlerBase.prototype); 23 | -------------------------------------------------------------------------------- /src/codes/RandomTroop/RandomTroop.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare namespace MZ { 4 | interface Enemy { 5 | typeTags: string[]; 6 | } 7 | } 8 | 9 | declare namespace DataManager { 10 | function enemiesWithTag(tag: string): MZ.Enemy[]; 11 | } 12 | 13 | declare interface Game_Troop { 14 | _isRandomTroop: boolean|undefined; 15 | 16 | processRandomTroop(): void; 17 | randomTroopCommand(): MZ.EventCommand|undefined; 18 | isRandomTroop(): boolean; 19 | } 20 | 21 | declare interface Game_Enemy { 22 | setScreenPosition(x: number, y: number): void; 23 | } 24 | 25 | declare interface Spriteset_Battle { 26 | repositionEnemies(): void; 27 | repositionEnemiesForFrontView(): void; 28 | repositionEnemiesForSideView(): void; 29 | } 30 | 31 | declare interface Sprite_Enemy { 32 | shiftXLeft(shiftX: number): void; 33 | feedbackPositionToEnemy(): void; 34 | repositionForSideView(lineCount: number, positionCellIndex: number): void; 35 | } 36 | -------------------------------------------------------------------------------- /src/codes/SealItemCommand/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_SealItemCommand: 2 | name: DarkPlasma_SealItemCommand 3 | year: 2021 4 | license: MIT 5 | histories: 6 | - date: 2023/02/19 7 | version: 1.0.4 8 | description: 'TypeScript移行' 9 | - description: 'デフォルト言語を設定' 10 | - date: 2022/03/31 11 | version: 1.0.3 12 | description: 'TemplateEvent.jsと併用すると戦闘テストできない不具合を修正' 13 | - date: 2021/07/05 14 | version: 1.0.2 15 | description: 'MZ 1.3.2に対応' 16 | - date: 2021/06/22 17 | version: 1.0.1 18 | description: 'サブフォルダからの読み込みに対応' 19 | - date: 2021/05/14 20 | version: 1.0.0 21 | description: '公開' 22 | 23 | locates: 24 | - ja 25 | plugindesc: 26 | ja: 'アイテムコマンドを封印する' 27 | parameters: [] 28 | commands: [] 29 | structures: 30 | dependencies: 31 | base: 32 | orderAfter: 33 | orderBefore: 34 | help: 35 | ja: | 36 | メモ欄にと入力したマップにおいて、 37 | アイテムコマンドを戦闘/メニュー共に使用不可にします。 38 | -------------------------------------------------------------------------------- /src/codes/UsableCountInBattle/plugin/UsableCountInBattle.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | type UsableCountInBattle = { 4 | type: "number" | "variable"; 5 | value: number; 6 | usableCount: () => number; 7 | }; 8 | 9 | declare namespace MZ { 10 | interface Item { 11 | usableCountInBattle?: UsableCountInBattle; 12 | } 13 | 14 | interface Skill { 15 | usableCountInBattle?: UsableCountInBattle; 16 | } 17 | } 18 | 19 | declare interface BattleManager { 20 | _itemUseCountTable: {[key: string]: number}; 21 | incrementUseCount(item: MZ.Item | MZ.Key): void; 22 | isUsableCountOk(item: MZ.Item | MZ.Skill): boolean; 23 | useCountKey(item: MZ.Item | MZ.Skill): string; 24 | useCount(item: MZ.Item | MZ.Skill): number; 25 | } 26 | 27 | declare namespace DataManager { 28 | function extractUsableCountInBattle(data: MZ.Item|MZ.Skill): UsableCountInBattle; 29 | } 30 | 31 | declare interface Game_BattlerBase { 32 | } 33 | -------------------------------------------------------------------------------- /src/codes/EvacuateAllItems/plugin/EvacuateAllItems.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | type ItemCategory = "item"|"weapon"|"armor"|"keyItem"; 4 | 5 | declare interface Game_Party { 6 | _evacuatedInventory: Game_EvacuatedInventory; 7 | 8 | evacuatedInventory(): Game_EvacuatedInventory; 9 | evacuateAllItems(category: ItemCategory): void; 10 | evacuateItem(item: MZ.Item|MZ.Weapon|MZ.Armor, amount: number): void; 11 | regainEvacuatedItems(): void; 12 | } 13 | 14 | declare interface Game_EvacuatedInventory { 15 | _items: { 16 | [id: number]: number; 17 | }; 18 | _weapons: { 19 | [id: number]: number; 20 | }; 21 | _armors: { 22 | [id: number]: number; 23 | }; 24 | 25 | initialize(): void; 26 | itemContainer(item: MZ.Item|MZ.Weapon|MZ.Armor): { 27 | [id: number]: number; 28 | }; 29 | pushItem(item: MZ.Item|MZ.Weapon|MZ.Armor, amount: number): void; 30 | popAllItems(): {item: MZ.Item|MZ.Weapon|MZ.Armor, amount: number}[]; 31 | } 32 | -------------------------------------------------------------------------------- /src/codes/ExpandTargetScopeButton/ExpandTargetScopeButton.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | 5 | declare interface Window_BattleActor { 6 | _expandScopeButton: Sprite_ExpandTargetScopeButton; 7 | 8 | expandScopeButton(): Sprite_ExpandTargetScopeButton; 9 | showExpandScopeButton(): void; 10 | hideExpandScopeButton(): void; 11 | } 12 | 13 | declare interface Window_BattleEnemy { 14 | _expandScopeButton: Sprite_ExpandTargetScopeButton; 15 | 16 | expandScopeButton(): Sprite_ExpandTargetScopeButton; 17 | showExpandScopeButton(): void; 18 | hideExpandScopeButton(): void; 19 | } 20 | 21 | declare interface Window_MenuActor { 22 | _expandScopeButton: Sprite_ExpandTargetScopeButton; 23 | 24 | expandScopeButton(): Sprite_ExpandTargetScopeButton; 25 | showExpandScopeButton(): void; 26 | hideExpandScopeButton(): void; 27 | } 28 | -------------------------------------------------------------------------------- /src/codes/FillGradientCircle/plugin/DarkPlasma_FillGradientCircle.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | function Bitmap_FillGradientCircleMixIn(bitmap: Bitmap) { 4 | bitmap.fillGradientCircle = function ( 5 | this: Bitmap, 6 | centerX: number, 7 | centerY: number, 8 | radius: number, 9 | insideColor: string, 10 | outsideColor: string 11 | ) { 12 | const context = this._context; 13 | const gradient = context.createRadialGradient(centerX, centerY, 0, centerX, centerY, radius); 14 | gradient.addColorStop(0, insideColor); 15 | gradient.addColorStop(1, outsideColor); 16 | context.save(); 17 | context.globalCompositeOperation = 'lighter'; 18 | context.fillStyle = gradient; 19 | context.beginPath(); 20 | context.arc(centerX, centerY, radius, 0, 2 * Math.PI); 21 | context.fill(); 22 | context.restore(); 23 | this._baseTexture.update(); 24 | }; 25 | } 26 | 27 | Bitmap_FillGradientCircleMixIn(Bitmap.prototype); 28 | -------------------------------------------------------------------------------- /src/codes/SkillWithTraits/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_SkillWithTraits: 2 | name: DarkPlasma_SkillWithTraits 3 | year: 2023 4 | license: MIT 5 | histories: 6 | - date: 2023/10/23 7 | version: 1.1.0 8 | description: '特徴付きスキル一覧を取得するインターフェース公開' 9 | - date: 2023/10/14 10 | version: 1.0.0 11 | description: '公開' 12 | 13 | locates: 14 | - ja 15 | plugindesc: 16 | ja: '特徴付きスキル' 17 | parameters: [] 18 | commands: [] 19 | structures: 20 | dependencies: 21 | base: [] 22 | orderAfter: [] 23 | orderBefore: [] 24 | help: 25 | ja: | 26 | 習得しているだけで特徴が得られるスキルを実現します。 27 | 特徴によって追加されたスキルには効果がありません。 28 | 29 | スキルのメモ欄に以下のように記述してください。 30 | 31 | アクターID1と同じ特徴を得ます。 32 | 33 | 34 | 職業ID1と同じ特徴を得ます。 35 | 36 | 37 | 武器ID1と同じ特徴を得ます。 38 | 39 | 40 | 防具ID1と同じ特徴を得ます。 41 | 42 | 43 | ステートID1と同じ特徴を得ます。 44 | -------------------------------------------------------------------------------- /src/codes/ChangePartyLeader/DarkPlasma_ChangePartyLeader.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | import { pluginName } from '../../common/pluginName'; 4 | import { command_changeLeader, command_resetLeader, parseArgs_changeLeader } from './_build/DarkPlasma_ChangePartyLeader_commands'; 5 | 6 | PluginManager.registerCommand(pluginName, command_changeLeader, function(this: Game_Interpreter, args) { 7 | const parsedArgs = parseArgs_changeLeader(args); 8 | const actor = $gameActors.actor(parsedArgs.actorId); 9 | if (!actor || actor.index() === 0) { 10 | return; 11 | } 12 | this._leaderActorIdBeforeChange = $gameParty.leader().actorId(); 13 | $gameParty.swapOrder(0, actor.index()); 14 | }); 15 | 16 | PluginManager.registerCommand(pluginName, command_resetLeader, function(this: Game_Interpreter) { 17 | const actor = $gameActors.actor(this._leaderActorIdBeforeChange || 0); 18 | if (actor && actor.index() > 0) { 19 | $gameParty.swapOrder(0, actor.index()); 20 | } 21 | }); 22 | -------------------------------------------------------------------------------- /src/common/window/labelAndValueTextsWindow.ts: -------------------------------------------------------------------------------- 1 | import { LabelAndValueText } from '../object/labelAndValueText'; 2 | 3 | export class Window_LabelAndValueTexts extends Window_Base { 4 | initialize(rect: Rectangle) { 5 | super.initialize(rect); 6 | this.refresh(); 7 | } 8 | 9 | drawPercent() { 10 | const width = this.contentsWidth(); 11 | const valueWidth = this.valueWidth(); 12 | this.labelAndValueTexts().forEach((labelAndValueText, index) => { 13 | this.drawText(labelAndValueText.label, 0, this.lineHeight() * index, width - valueWidth); 14 | this.drawText(labelAndValueText.valueText, 0, this.lineHeight() * index, width, 'right'); 15 | }); 16 | } 17 | 18 | valueWidth() { 19 | return this.textWidth('100.0%'); 20 | } 21 | 22 | /** 23 | * @return {LabelAndValueText[]} 24 | */ 25 | labelAndValueTexts(): LabelAndValueText[] { 26 | return []; 27 | } 28 | 29 | refresh() { 30 | this.contents.clear(); 31 | this.drawPercent(); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/codes/EnemyBookInBattle/EnemyBookInBattle.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | /// 5 | /// 6 | 7 | declare class EnemyBookWindows { 8 | constructor( 9 | cancelHandler: () => void, 10 | parentLayer: WindowLayer, 11 | percentWindowRect: Rectangle, 12 | indexWindowRect: Rectangle, 13 | statusWindowRect: Rectangle, 14 | isInBattle: boolean 15 | ); 16 | 17 | close(): void; 18 | open(): void; 19 | isActive(): boolean; 20 | } 21 | 22 | declare class Scene_EnemyBook { 23 | 24 | } 25 | 26 | declare class Window_EnemyBookIndex { 27 | _battlerEnemyIndexes: number[]; 28 | battlerEnemyIsInBook(): boolean; 29 | selectNextBattlerEnemy(): void; 30 | selectPreviousBattlerEnemy(): void; 31 | } 32 | -------------------------------------------------------------------------------- /src/codes/MaxSavefiles/config/config.ts: -------------------------------------------------------------------------------- 1 | import { ConfigDefinitionBuilder } from '../../../../modules/config/configDefinitionBuilder.js'; 2 | import { PluginHistorySchema, PluginParameterSchema } from '../../../../modules/config/configSchema.js'; 3 | import { createNumberParam } from '../../../../modules/config/createParameter.js'; 4 | import { dedent } from '@qnighy/dedent'; 5 | 6 | const histories: PluginHistorySchema[] = [ 7 | { 8 | date: "2024/07/27", 9 | version: "1.0.0", 10 | description: "公開", 11 | } 12 | ]; 13 | 14 | const parameters: PluginParameterSchema[] = [ 15 | createNumberParam("maxSavefiles", { 16 | text: "セーブファイル数", 17 | description: "セーブファイルを作れる最大数を設定します。", 18 | default: 20, 19 | }), 20 | ]; 21 | 22 | export const config = new ConfigDefinitionBuilder( 23 | "MaxSavefiles", 24 | 2024, 25 | "セーブファイルの最大数を変更する" 26 | ) 27 | .withHistories(histories) 28 | .withLicense("MIT") 29 | .withParameters(parameters) 30 | .withHelp(dedent`セーブファイルを作れる最大数を変更します。`) 31 | .build(); 32 | -------------------------------------------------------------------------------- /src/codes/RegenerateByValueTraitCustomSample/DarkPlasma_RegenerateByValueTraitCustomSample.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | import { settings } from "./_build/DarkPlasma_RegenerateByValueTraitCustomSample_parameters"; 4 | 5 | const CUSTOM_ID = 1; 6 | 7 | function Game_Battler_RegenerateByValueCustomMixIn(gameBattler: Game_Battler) { 8 | const _hpRegenerationValue = gameBattler.hpRegenerationValue; 9 | gameBattler.hpRegenerationValue = function (customId) { 10 | /** 11 | * カスタムID1のHP回復値特徴をかき集め、変数の数値分だけ回復するようにする 12 | * 単純に変数の値に、カスタムID1のHP回復値特徴の数をかけても良いが、複雑な計算式の場合に応用が効きやすい実装とする 13 | */ 14 | if (customId === CUSTOM_ID) { 15 | return this.traitsWithId(DataManager.hpRegenerationValueTraitId(), customId) 16 | .reduce((result, _) => result + $gameVariables.value(settings.variableId), 0); 17 | } 18 | return _hpRegenerationValue.call(this, customId); 19 | }; 20 | } 21 | 22 | Game_Battler_RegenerateByValueCustomMixIn(Game_Battler.prototype); 23 | -------------------------------------------------------------------------------- /src/codes/LazyExtractData/plugin/DarkPlasma_LazyExtractData.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | function DataManager_LazyExtractDataMixIn(dataManager: typeof DataManager) { 4 | dataManager.lazyExtractData = function () { 5 | this._lazyExtractData.forEach(data => this.lazyExtractMetadata(data)); 6 | }; 7 | 8 | dataManager.pushLazyExtractData = function (data) { 9 | if (!this._lazyExtractData) { 10 | this._lazyExtractData = []; 11 | } 12 | this._lazyExtractData.push(data); 13 | }; 14 | 15 | dataManager.lazyExtractMetadata = function (data) {}; 16 | } 17 | 18 | DataManager_LazyExtractDataMixIn(DataManager); 19 | 20 | function Scene_Boot_LazyExtractDataMixIn(sceneBoot: Scene_Boot) { 21 | const _onDatabaseLoaded = sceneBoot.onDatabaseLoaded; 22 | sceneBoot.onDatabaseLoaded = function () { 23 | _onDatabaseLoaded.call(this); 24 | DataManager.lazyExtractData(); 25 | }; 26 | } 27 | 28 | Scene_Boot_LazyExtractDataMixIn(Scene_Boot.prototype); 29 | -------------------------------------------------------------------------------- /src/codes/RegenerateByValueTraitCustomSample/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_RegenerateByValueTraitCustomSample: 2 | name: DarkPlasma_RegenerateByValueTraitCustomSample 3 | year: 2023 4 | license: MIT 5 | histories: 6 | - date: 2023/06/16 7 | version: 1.0.0 8 | description: '公開' 9 | 10 | locates: 11 | - ja 12 | plugindesc: 13 | ja: 'HP再生値 MP再生値特徴のカスタムIDサンプル' 14 | parameters: 15 | - param: variableId 16 | text: 17 | ja: 変数 18 | type: variable 19 | commands: [] 20 | structures: 21 | dependencies: 22 | base: 23 | - name: DarkPlasma_RegenerateByValueTrait 24 | version: 1.0.0 25 | orderAfter: 26 | - name: DarkPlasma_RegenerateByValueTrait 27 | orderBefore: [] 28 | help: 29 | ja: | 30 | DarkPlasma_RegenerateByValueTrait で定義するカスタムIDの実装サンプルです。 31 | HP再生値のカスタムID:1について、パラメータで指定した変数の値分回復します。 32 | 33 | サンプルのための特徴は以下のように定義します。 34 | (この0は任意の数値で構いません。無視されます) 35 | 36 | -------------------------------------------------------------------------------- /src/common/registerTestCase.js: -------------------------------------------------------------------------------- 1 | import { targetPluginName } from './targetPluginName'; 2 | 3 | /** 4 | * テストケースを登録する 5 | * @param {string} targetPluginVersion 対象プラグインのバージョン 6 | * @param {string} testCaseName テストケース名 7 | * @param {boolean} isAuto 自動かどうか 8 | */ 9 | export function registerTestCase(targetPluginVersion, testCaseName, isAuto) { 10 | $testTargetPlugins.addTestCase(targetPluginName, targetPluginVersion, testCaseName, isAuto); 11 | } 12 | 13 | /** 14 | * 自動テストケースを登録する 15 | * @param {string} targetPluginVersion 対象プラグインのバージョン 16 | * @param {string[]} testCaseNames テストケース名一覧 17 | */ 18 | export function registerAutoTestCases(targetPluginVersion, testCaseNames) { 19 | testCaseNames.forEach((testCaseName) => { 20 | registerTestCase(targetPluginVersion, testCaseName, true); 21 | }); 22 | } 23 | 24 | export function registerManualTestCases(targetPluginVersion, testCaseNames) { 25 | testCaseNames.forEach((testCaseName) => { 26 | registerTestCase(targetPluginVersion, testCaseName, false); 27 | }); 28 | } 29 | -------------------------------------------------------------------------------- /scripts/publish.js: -------------------------------------------------------------------------------- 1 | import fs from 'fs'; 2 | import path from 'path'; 3 | import { globSync } from 'glob'; 4 | import { fileURLToPath } from 'url'; 5 | 6 | const __dirname = path.dirname(fileURLToPath(import.meta.url)); 7 | const targetDir = process.argv[process.argv.length - 1]; 8 | if (!targetDir) process.exit(1); 9 | if (!fs.statSync(targetDir).isDirectory()) { 10 | console.error(`${targetDir} is not directory`); 11 | process.exit(1); 12 | } 13 | 14 | globSync(path.join(__dirname, '..', '_dist', 'codes', '*.js')).forEach((file) => { 15 | const name = path.basename(file); 16 | 17 | console.log(`${file} to ${targetDir}`); 18 | 19 | fs.copyFileSync(file, path.join(targetDir, name)); 20 | }); 21 | 22 | /** 23 | * ちょっと雑な対応だが、消したいファイルをここに書いてコミットすると消せる 24 | */ 25 | const removeFiles = []; 26 | removeFiles.forEach(file => { 27 | fs.unlink(path.join(targetDir, file), err => { 28 | if (err) { 29 | console.log(`${file} not found.`); 30 | } else { 31 | console.log(`delete ${file}.`); 32 | } 33 | }); 34 | }); 35 | -------------------------------------------------------------------------------- /src/codes/EquipDetail/plugin/EquipDetail.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | /// 5 | 6 | declare interface Scene_Equip { 7 | _detailWindowLayer: WindowLayer; 8 | _detailWindow: Window_DetailText; 9 | 10 | createDetailWindow(): void; 11 | detailWindowRect(): Rectangle; 12 | toggleDetailWindow(activeWindow: Window_EquipSlot|Window_EquipItem): void; 13 | } 14 | 15 | declare interface Window_EquipSlot { 16 | _detailWindow?: Window_DetailText; 17 | 18 | setDetailWindow(detailWindow: Window_DetailText): void; 19 | } 20 | 21 | declare interface Window_EquipItem { 22 | _detailWindow?: Window_DetailText; 23 | 24 | setDetailWindow(detailWindow: Window_DetailText): void; 25 | } 26 | 27 | declare class Window_DetailText extends Window_Scrollable { 28 | 29 | } 30 | -------------------------------------------------------------------------------- /src/codes/SystemTypeIcon/plugin/DarkPlasma_SystemTypeIcon.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | import { settings } from "../config/_build/DarkPlasma_SystemTypeIcon_parameters"; 4 | 5 | function Game_System_SystemTypeIconMixIn(gameSystem: Game_System) { 6 | gameSystem.elementIconIndex = function (elementId) { 7 | return settings.elementIcons[elementId] || 0; 8 | }; 9 | 10 | gameSystem.largeDebuffStatusIconIndex = function (paramName) { 11 | return settings.debuffStatusIcons[paramName]?.large || 0; 12 | }; 13 | 14 | gameSystem.smallDebuffStatusIconIndex = function (paramName) { 15 | return settings.debuffStatusIcons[paramName]?.small || 0; 16 | }; 17 | 18 | gameSystem.weaponTypeIconIndex = function (weaponTypeId) { 19 | return settings.weaponTypeIcons[weaponTypeId] || 0; 20 | }; 21 | 22 | gameSystem.armorTypeIconIndex = function (armorTypeId) { 23 | return settings.armorTypeIcons[armorTypeId] || 0; 24 | }; 25 | } 26 | 27 | Game_System_SystemTypeIconMixIn(Game_System.prototype); 28 | -------------------------------------------------------------------------------- /src/codes/TpDamageEffect/config/config.ts: -------------------------------------------------------------------------------- 1 | import { ConfigDefinitionBuilder } from '../../../../modules/config/configDefinitionBuilder.js'; 2 | import { PluginHistorySchema } from '../../../../modules/config/configSchema.js'; 3 | import {} from '../../../../modules/config/createParameter.js'; 4 | import { dedent } from '@qnighy/dedent'; 5 | 6 | const histories: PluginHistorySchema[] = [ 7 | { 8 | date: "2024/10/06", 9 | version: "1.0.0", 10 | description: "公開", 11 | } 12 | ]; 13 | 14 | export const config = new ConfigDefinitionBuilder( 15 | "TpDamageEffect", 16 | 2024, 17 | "TPにダメージを与える使用効果" 18 | ) 19 | .withHistories(histories) 20 | .withLicense("MIT") 21 | .withBaseDependency({ 22 | name: "DarkPlasma_AllocateUniqueEffectCode", 23 | version: "1.0.1", 24 | order: "after", 25 | }) 26 | .withHelp(dedent`TPにダメージを与える使用効果を追加します。 27 | 28 | スキルやアイテムのメモ欄に以下のように記述すると、 29 | TPに10のダメージを与える使用効果を設定できます。 30 | 31 | 32 | 固定値以外のダメージを与える効果にしたい場合は、 33 | 拡張プラグインを作成してください。`) 34 | .build(); 35 | -------------------------------------------------------------------------------- /src/codes/Rosedale_CAP_8DirBugFix/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_Rosedale_CAP_8DirBugFix: 2 | name: DarkPlasma_Rosedale_CAP_8DirBugFix 3 | year: 2023 4 | license: MIT 5 | histories: 6 | - date: 2023/07/16 7 | version: 1.1.0 8 | description: 'デフォルト歩行グラパターンのインターフェース追加' 9 | - version: 1.0.0 10 | description: '公開' 11 | 12 | locates: 13 | - ja 14 | plugindesc: 15 | ja: 'Rosedale_CollisionAlteringPluginの8方向歩行グラの不具合修正パッチ' 16 | parameters: [] 17 | commands: [] 18 | structures: 19 | dependencies: 20 | base: 21 | - name: Rosedale_CollisionAlteringPlugin 22 | version: 1.1.0 23 | orderAfter: [] 24 | orderBefore: 25 | - name: DarkPlasma_ExpandCharacterPattern 26 | help: 27 | ja: | 28 | 公式DLC Rosedale_CollisionAlteringPlugin の以下の不具合を修正します。 29 | 30 | 8方向歩行グラフィックを用いるとセーブ画面などで 31 | キャラクター正常に表示されない。 32 | 33 | 本プラグインは公式DLCプラグインのバグ修正パッチプラグインです。 34 | 公式DLC本体に修正が入り次第、本プラグインの公開を終了します。 35 | 36 | 本プラグインはグローバルセーブデータ以下の情報を追加します。 37 | - 各セーブデータのパーティメンバーのアクターID 38 | -------------------------------------------------------------------------------- /src/codes/CommonEventByDiscardItem/plugin/DarkPlasma_CommonEventByDiscardItem.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | import { settings } from '../config/_build/DarkPlasma_CommonEventByDiscardItem_parameters'; 4 | 5 | function Scene_Item_CommonEventByDiscardItemMixIn(sceneItem: Scene_Item) { 6 | const _discardItem = sceneItem.discardItem; 7 | sceneItem.discardItem = function () { 8 | const item = this.item() as MZ.Item|MZ.Weapon|MZ.Armor; 9 | $gameVariables.setValue(settings.discardItemVariable, item.id); 10 | _discardItem.call(this); 11 | if (DataManager.isItem(item)) { 12 | $gameTemp.reserveCommonEvent(settings.itemDiscardCommonEvent); 13 | } else if (DataManager.isWeapon(item)) { 14 | $gameTemp.reserveCommonEvent(settings.weaponDiscardCommonEvent); 15 | } else if (DataManager.isArmor(item)) { 16 | $gameTemp.reserveCommonEvent(settings.armorDiscardCommonEvent); 17 | } 18 | this.checkCommonEvent(); 19 | }; 20 | } 21 | 22 | Scene_Item_CommonEventByDiscardItemMixIn(Scene_Item.prototype); 23 | -------------------------------------------------------------------------------- /src/codes/MultiElementAction/DarkPlasma_MultiElementAction.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | function Game_Action_MultiElementActionMixIn(gameAction: Game_Action) { 4 | gameAction.calcElementRate = function (target) { 5 | return this.elementsMaxRate(target,this.actionAttackElements()); 6 | }; 7 | 8 | gameAction.actionAttackElements = function () { 9 | const additionalElementIds = String(this.item()!.meta.additionalElements || "") 10 | .split(',') 11 | .map(elementName => $dataSystem.elements.indexOf(elementName)); 12 | if (additionalElementIds.some(elementId => elementId < 0) || this.item()!.damage.elementId < 0) { 13 | return [...new Set(this.subject().attackElements() 14 | .concat( 15 | [this.item()!.damage.elementId], 16 | additionalElementIds 17 | ).filter(elementId => elementId >= 0))]; 18 | } 19 | return [...new Set(additionalElementIds.concat([this.item()!.damage.elementId]))]; 20 | }; 21 | } 22 | 23 | Game_Action_MultiElementActionMixIn(Game_Action.prototype); 24 | -------------------------------------------------------------------------------- /src/codes/BlastScope/plugin/BlastScope.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Temp { 4 | _actionSubTargets: Map; 5 | _actionId: number; 6 | 7 | allocateActionId(): number; 8 | markAsSubTarget(action: Game_Action, target: Game_Battler): void; 9 | isBattlerSubTargetOf(action: Game_Action, target: Game_Battler): boolean; 10 | clearSubTargetOf(action: Game_Action|null): void; 11 | } 12 | 13 | declare interface Game_Unit { 14 | smoothAliveNextTarget(baseTargetIndex: number, targetIndex: number): Game_Battler|undefined; 15 | smoothDeadNextTarget(baseTargetIndex: number, targetIndex: number): Game_Battler|undefined; 16 | } 17 | 18 | declare interface Game_Action { 19 | _actionId: number; 20 | 21 | actionId(): number; 22 | isBlastScope(): boolean; 23 | makeSubTargets(mainTarget: Game_Battler, findSubTargetFunction: (targetIndex: number) => Game_Battler|undefined): Game_Battler[]; 24 | markAsSubTarget(target: Game_Battler): void; 25 | applySubTargetDamageRate(value: number): number; 26 | } 27 | -------------------------------------------------------------------------------- /src/codes/EscapePenalty/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_EscapePenalty: 2 | name: DarkPlasma_EscapePenalty 3 | year: 2020 4 | license: MIT 5 | histories: 6 | - date: '2021/07/05' 7 | version: '2.0.2' 8 | description: 'MZ 1.3.2に対応' 9 | - date: '2021/06/22' 10 | version: '2.0.1' 11 | description: 'サブフォルダからの読み込みに対応' 12 | - date: '2020/09/08' 13 | version: '2.0.0' 14 | description: 'パラメータ名を変更' 15 | - date: '2020/08/27' 16 | version: '1.0.0' 17 | description: 'MZ版公開' 18 | 19 | locates: 20 | - ja 21 | plugindesc: 22 | ja: '逃走にペナルティを与える' 23 | parameters: 24 | - param: loseGoldRate 25 | text: 落とすお金割合(%) 26 | desc: 逃走成功時に落とすお金(所持金に対する割合%) 27 | type: number 28 | default: 1 29 | - param: loseGoldMessage 30 | text: 31 | ja: 落としたメッセージ 32 | desc: 33 | ja: お金を落とした際のメッセージ。{gold}は落としたお金の量、{unit}はお金の単位に変換される。 34 | type: string 35 | default: '{gold}{unit}落としてしまった!' 36 | commands: [] 37 | structures: 38 | help: 39 | ja: | 40 | 逃走成功時にペナルティを与えます。 41 | -------------------------------------------------------------------------------- /src/codes/HighlightNewSkill/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_HighlightNewSkill: 2 | name: DarkPlasma_HighlightNewSkill 3 | year: 2022 4 | license: MIT 5 | histories: 6 | - date: 2022/10/30 7 | version: 1.1.0 8 | description: 'カーソル合わせた後、1操作待って強調解除するよう変更' 9 | - version: 1.0.0 10 | description: '公開' 11 | 12 | locates: 13 | - ja 14 | plugindesc: 15 | ja: '新しく習得したスキルを強調表示する' 16 | parameters: 17 | - param: newSkillColor 18 | text: 19 | ja: スキル色 20 | desc: 21 | ja: 新しく習得したスキルの色番号を指定します。 22 | type: number 23 | default: 2 24 | - param: highlightFirstSkills 25 | text: 26 | ja: 初期スキル強調 27 | desc: 28 | ja: 初期スキルをゲーム開始時に新規習得スキルとして強調するかどうか。 29 | type: boolean 30 | default: true 31 | commands: [] 32 | structures: 33 | dependencies: 34 | base: [] 35 | orderAfter: [] 36 | orderBefore: [] 37 | help: 38 | ja: | 39 | スキル一覧で、新しく習得したスキルを強調表示します。 40 | 強調表示は一度カーソルを合わせると元の色に戻ります。 41 | 42 | 本プラグインはセーブデータに以下を追加します。 43 | - アクターごとの新規習得スキルID一覧 44 | -------------------------------------------------------------------------------- /src/codes/IndividualItemCommand/plugin/IndividualItemCommand.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Scene_Item { 4 | _itemCommandWindowLayer: WindowLayer; 5 | _itemCommandWindow: Window_ItemCommand; 6 | 7 | createItemCommandWindow(): void; 8 | itemCommandWindowRect(): Rectangle; 9 | adjustItemCommandWindowPosition(): void; 10 | 11 | itemCommandWindowX(): number; 12 | itemCommandWindowY(): number; 13 | itemCommandWindowWidth(): number; 14 | itemCommandWindowHeight(): number; 15 | 16 | onItemCommandCancel(): void; 17 | } 18 | 19 | declare interface Window_ItemList { 20 | _itemCommandWindow: Window_ItemCommand; 21 | 22 | setItemCommandWindow(itemCommandWindow: Window_ItemCommand): void; 23 | } 24 | 25 | declare interface Window_ItemCommand extends Window_Command { 26 | _item: MZ.Item|MZ.Weapon|MZ.Armor|null; 27 | setItem(item: MZ.Item|MZ.Weapon|MZ.Armor|null): void; 28 | commandsForItem(item: MZ.Item|MZ.Weapon|MZ.Armor|null): Window_Command.Command[]; 29 | maxWidth(): number; 30 | commandsHeight(): number; 31 | } 32 | -------------------------------------------------------------------------------- /src/codes/ExpRateTraitForEnemy/config/config.ts: -------------------------------------------------------------------------------- 1 | import { ConfigDefinitionBuilder } from '../../../../modules/config/configDefinitionBuilder.js'; 2 | import { PluginHistorySchema } from '../../../../modules/config/configSchema.js'; 3 | import {} from '../../../../modules/config/createParameter.js'; 4 | import { dedent } from '@qnighy/dedent'; 5 | 6 | const histories: PluginHistorySchema[] = [ 7 | { 8 | date: "2024/12/29", 9 | version: "1.0.0", 10 | description: "公開", 11 | } 12 | ]; 13 | 14 | export const config = new ConfigDefinitionBuilder( 15 | "ExpRateTraitForEnemy", 16 | 2024, 17 | "敵キャラ用 経験値倍率特徴" 18 | ) 19 | .withHistories(histories) 20 | .withLicense("MIT") 21 | .withBaseDependency({ 22 | name: "DarkPlasma_AllocateUniqueTraitId", 23 | version: "1.0.2", 24 | }) 25 | .withHelp(dedent`敵キャラ用の経験値倍率特徴を設定します。 26 | 27 | この特徴を持つ敵キャラは倒された場合に 28 | 自身の経験値を倍率にしたがって変動させます。 29 | 30 | 31 | 例えば、こう記述すると経験値が1.5倍になります。 32 | 33 | 戦闘不能になっても解除されないステートにこの特徴を追加して、 34 | 付加されている間に倒すと経験値が増加するステートを作成できます。`) 35 | .build(); 36 | -------------------------------------------------------------------------------- /src/codes/SelfDestructingEffect/config/config.ts: -------------------------------------------------------------------------------- 1 | import { ConfigDefinitionBuilder } from '../../../../modules/config/configDefinitionBuilder.js'; 2 | import { PluginHistorySchema } from '../../../../modules/config/configSchema.js'; 3 | import {} from '../../../../modules/config/createParameter.js'; 4 | import { dedent } from '@qnighy/dedent'; 5 | 6 | const histories: PluginHistorySchema[] = [ 7 | { 8 | date: "2024/10/06", 9 | version: "1.0.1", 10 | description: "依存関係を明記", 11 | }, 12 | { 13 | date: "2024/09/27", 14 | version: "1.0.0", 15 | description: "公開", 16 | } 17 | ]; 18 | 19 | export const config = new ConfigDefinitionBuilder( 20 | "SelfDestructingEffect", 21 | 2024, 22 | "使用効果 自滅" 23 | ) 24 | .withHistories(histories) 25 | .withLicense("MIT") 26 | .withBaseDependency({ 27 | name: "DarkPlasma_AllocateUniqueEffectCode", 28 | version: "1.0.1", 29 | order: "after", 30 | }) 31 | .withHelp(dedent`使用効果 自滅を実装します。 32 | この使用効果をスキルやアイテムに設定すると、使用者を戦闘不能にします。 33 | 34 | 以下のメモタグで設定することができます。 35 | `) 36 | .build(); 37 | -------------------------------------------------------------------------------- /scripts/buildConfigDeclaration.mjs: -------------------------------------------------------------------------------- 1 | const codePath = path.resolve(__dirname, '..', 'src', 'codes').replaceAll('\\', '/'); 2 | const targets = await glob([`${codePath}/`]); 3 | 4 | /** 5 | * ひとまず、全ビルドはcodesのみ対象とする 6 | */ 7 | const buildTargets = [...new Set(targets 8 | .filter(path => /src\/codes\/.+\/config\.yml$/.test(path)) 9 | .map(path => /src\/codes\/(.+)\/config\.yml$/.exec(path)[1]))]; 10 | 11 | const globPaths = await Promise.all(buildTargets 12 | .filter(target => fs.existsSync(`${codePath}/${target}/DarkPlasma_${target}.ts`)) 13 | .map(target => { 14 | const targetPath = `${codePath}/${target}`; 15 | return [ 16 | glob(`${targetPath}/_build/*_commands.js`), 17 | glob(`${targetPath}/_build/*_parameters.js`), 18 | glob(`${targetPath}/_build/*_parametersOf.js`), 19 | ]; 20 | }).flat()); 21 | 22 | await Promise 23 | .all(globPaths.map(globPath => { 24 | /** 25 | * zxは:を含む文字列を展開する際に $'文字列' としてくるため、 26 | * 配列で渡して結合する 27 | */ 28 | return $([`yarn tsc --declaration --allowJs --emitDeclarationOnly`, ` ${globPath[0]}`], ''); 29 | })); 30 | -------------------------------------------------------------------------------- /src/codes/MultiElementRate/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_MultiElementRate: 2 | name: DarkPlasma_MultiElementRate 3 | year: 2023 4 | license: MIT 5 | histories: 6 | - date: 2023/04/06 7 | version: 1.0.1 8 | description: '同一属性が重複して計算される不具合を修正' 9 | - date: 2023/03/29 10 | version: 1.0.0 11 | description: '公開' 12 | 13 | locates: 14 | - ja 15 | plugindesc: 16 | ja: '攻撃属性すべてを計算に用いる' 17 | parameters: 18 | - param: addition 19 | text: 20 | ja: 加算するか 21 | desc: 22 | ja: 計算時に全属性の有効度を加算するかどうか。OFFの場合は乗算する 23 | type: boolean 24 | default: false 25 | commands: [] 26 | structures: 27 | dependencies: 28 | base: [] 29 | orderAfter: [] 30 | orderBefore: [] 31 | help: 32 | ja: | 33 | 攻撃に付与されている属性が複数ある場合、 34 | その攻撃の属性すべてをダメージ計算に使用します。 35 | 36 | 城さんと加算で計算方法が異なります。 37 | 例えば、火+光属性の攻撃を、火有効度200% 光有効度150%の敵に使用すると 38 | 以下のようになります。 39 | 乗算の場合: 2 x 1.5 = 300% 40 | 加算の場合: 2 + 1.5 = 350% 41 | 42 | 加算の場合、火有効度100%かつ光有効度100%の敵に火+光属性攻撃を行うと 43 | 1 + 1 = 200%となってしまうことに注意してください。 44 | -------------------------------------------------------------------------------- /src/codes/ManualText/ManualText.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Window_Base { 4 | _manualOffsetY: number; 5 | _manualCols: number; 6 | _manualRows: number; 7 | _manualWidth: number; 8 | _manualPadding: number; 9 | _manualTexts: string[]; 10 | _manualFontSize: number; 11 | _isManualVisible: boolean; 12 | 13 | drawManual(): void; 14 | manualX(index: number): number; 15 | manualY(index: number): number; 16 | manualCols(): number; 17 | manualWidth(): number; 18 | 19 | setManualOffsetY(offset: number): void; 20 | manualOffsetY(): number; 21 | manualLineHeight(): number; 22 | setManualPadding(padding: number): void; 23 | manualPadding(): number; 24 | setManualCols(cols: number): void; 25 | setManualWidth(width: number): void; 26 | 27 | initManualTexts(): void; 28 | addManualText(text: string): void; 29 | manualTexts(): string[]; 30 | 31 | setManualFontSize(fontSize: number): void; 32 | manualFontSize(): number; 33 | isManualVisible(): boolean; 34 | setIsManualVisible(visible: boolean): void; 35 | 36 | refresh(): void; 37 | } 38 | -------------------------------------------------------------------------------- /src/codes/ChangePartyLeader/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_ChangePartyLeader: 2 | name: DarkPlasma_ChangePartyLeader 3 | year: 2022 4 | license: MIT 5 | histories: 6 | - date: 2022/11/06 7 | version: 1.0.0 8 | description: '公開' 9 | 10 | locates: 11 | - ja 12 | plugindesc: 13 | ja: 'パーティの先頭(リーダー)を変更する' 14 | parameters: [] 15 | commands: 16 | - command: changeLeader 17 | text: 18 | ja: リーダーを変更する 19 | desc: 20 | ja: パーティリーダーを指定したアクターに変更します。(元のリーダーと隊列を入れ替えます) 21 | args: 22 | - arg: actorId 23 | text: 24 | ja: アクター 25 | type: actor 26 | - command: resetLeader 27 | text: 28 | ja: リーダーを元に戻す 29 | desc: 30 | ja: リーダーを変更プラグインコマンド実行直前の状態に戻します。 31 | structures: 32 | dependencies: 33 | base: [] 34 | orderAfter: [] 35 | orderBefore: [] 36 | help: 37 | ja: | 38 | 先頭のパーティメンバーを、現在パーティメンバーにいるアクターに 39 | 入れ替えるプラグインコマンドを提供します。 40 | 41 | セーブデータに以下のデータを追加します。 42 | - プラグインコマンドでリーダーを変更する直前のリーダー 43 | 44 | 尚、指定したアクターや元のリーダーがパーティメンバーにいない場合、 45 | プラグインコマンドは何もしません。 46 | -------------------------------------------------------------------------------- /src/codes/CachePartyAbilityTraits/plugin/CachePartyAbilityTraits.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | type PartyAbilityTraitType = "paramPlus"|"paramRate"|"xparamPlus"|"xparamRate"|"sparamPlus"|"sparamRate"; 5 | type PartyAbilityTraitId = [PartyAbilityTraitType, number]; 6 | 7 | declare interface Game_Temp { 8 | _partyAbilityTraitsCache: Map; 9 | 10 | partyAbilityTraitsCacheKey(type: PartyAbilityTraitType, paramId: number): string; 11 | cachePartyAbilityTraits(type: PartyAbilityTraitType, paramId: number, value: number): void; 12 | cachedPartyAbilityTrait(type: PartyAbilityTraitType, paramId: number): number|undefined; 13 | clearPartyAbilityTraitsCache(): void; 14 | } 15 | 16 | declare interface Game_Party { 17 | _ignorePartyAbilityCache: boolean|undefined; 18 | 19 | setIgnorePartyAbilityCache(): void; 20 | } 21 | 22 | declare interface Game_Actors { 23 | setEquipsClearCacheMixIn(): void; 24 | } 25 | 26 | declare interface Game_Actor { 27 | setEquipsClearCacheMixIn(): void; 28 | } 29 | -------------------------------------------------------------------------------- /src/codes/ExpRateTraitForEnemy/plugin/DarkPlasma_ExpRateTraitForEnemy.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | import { pluginName } from '../../../common/pluginName'; 4 | 5 | const expRateTrait = uniqueTraitIdCache.allocate(pluginName, 1, "経験値倍率"); 6 | 7 | function DataManager_ExpRateTraitMixIn(dataManager: typeof DataManager) { 8 | const _extractMetadata = dataManager.extractMetadata; 9 | dataManager.extractMetadata = function (data) { 10 | _extractMetadata.call(this, data); 11 | if ("traits" in data) { 12 | if (data.meta.expRateForEnemy) { 13 | data.traits.push({ 14 | code: expRateTrait.id, 15 | dataId: 0, 16 | value: Number(data.meta.expRateForEnemy) / 100, 17 | }); 18 | } 19 | } 20 | }; 21 | } 22 | 23 | DataManager_ExpRateTraitMixIn(DataManager); 24 | 25 | function Game_Enemy_ExpRateTraitMixIn(gameEnemy: Game_Enemy) { 26 | const _exp = gameEnemy.exp; 27 | gameEnemy.exp = function () { 28 | return _exp.call(this) * this.traitsPi(expRateTrait.id, 0); 29 | }; 30 | } 31 | 32 | Game_Enemy_ExpRateTraitMixIn(Game_Enemy.prototype); 33 | -------------------------------------------------------------------------------- /src/codes/HealOnBattleStartTrait/config/config.ts: -------------------------------------------------------------------------------- 1 | import { ConfigDefinitionBuilder } from '../../../../modules/config/configDefinitionBuilder.js'; 2 | import { PluginHistorySchema } from '../../../../modules/config/configSchema.js'; 3 | import {} from '../../../../modules/config/createParameter.js'; 4 | import { dedent } from '@qnighy/dedent'; 5 | 6 | const histories: PluginHistorySchema[] = [ 7 | { 8 | date: "2025/07/26", 9 | version: "1.0.0", 10 | description: "最初のバージョン", 11 | } 12 | ]; 13 | 14 | export const config = new ConfigDefinitionBuilder( 15 | "HealOnBattleStartTrait", 16 | 2025, 17 | "戦闘開始時に回復する特徴" 18 | ) 19 | .withHistories(histories) 20 | .withLicense("MIT") 21 | .withBaseDependency({ 22 | name: "DarkPlasma_AllocateUniqueTraitId", 23 | version: "1.0.2", 24 | order: 'after', 25 | }) 26 | .withHelp(dedent`戦闘開始時に回復する特徴を設定できます。 27 | 28 | 29 | 戦闘開始時にHPをx%回復する 30 | 31 | 32 | 戦闘開始時にMPをx%回復する 33 | 34 | 35 | 戦闘開始時にTPをx%回復する 36 | 37 | これらの特徴を複数所持する場合、効果値は加算されます。`) 38 | .build(); 39 | -------------------------------------------------------------------------------- /src/codes/Scene_MessageMixIn/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_Scene_MessageMixIn: 2 | name: DarkPlasma_Scene_MessageMixIn 3 | year: 2023 4 | license: MIT 5 | histories: 6 | - date: 2025/02/23 7 | version: 1.0.3 8 | description: 'ショップシーンに表示するとお金ウィンドウが複製されて位置がズレる不具合を修正' 9 | - date: 2023/09/21 10 | version: 1.0.2 11 | description: 'TextLogと併用するとログウィンドウを閉じることができない不具合を修正' 12 | - date: 2023/01/18 13 | version: 1.0.1 14 | description: 'すでにお金ウィンドウがあるシーンにはお金ウィンドウを再定義しない' 15 | - description: '指定シーンを開こうとするとエラーが起きる不具合を修正' 16 | - date: 2023/01/13 17 | version: 1.0.0 18 | description: '公開' 19 | 20 | locates: 21 | - ja 22 | plugindesc: 23 | ja: '指定のシーンにメッセージウィンドウを表示させる' 24 | parameters: 25 | - param: scenes 26 | text: 27 | ja: シーン 28 | type: string[] 29 | default: [] 30 | commands: [] 31 | structures: 32 | dependencies: 33 | base: [] 34 | orderAfter: [] 35 | orderBefore: [] 36 | help: 37 | ja: | 38 | パラメータで指定したシーンにメッセージウィンドウを表示できるようになります。 39 | 40 | $gameMessage.add などでメッセージを追加した際に、 41 | そのシーンでもメッセージを表示します。 42 | -------------------------------------------------------------------------------- /src/codes/ContinuousSkillCooldown/config.yml: -------------------------------------------------------------------------------- 1 | DarkPlasma_ContinuousSkillCooldown: 2 | name: DarkPlasma_ContinuousSkillCooldown 3 | year: 2022 4 | license: MIT 5 | histories: 6 | - date: 2022/11/23 7 | version: 1.0.2 8 | description: '戦闘終了時に2ターン経過することがある不具合を修正' 9 | - date: 2022/11/22 10 | version: 1.0.1 11 | description: '戦闘終了時に1ターン経過した扱いとする' 12 | - version: 1.0.0 13 | description: '公開' 14 | 15 | locates: 16 | - ja 17 | plugindesc: 18 | ja: 'スキルクールタイムを戦闘後も継続する' 19 | parameters: 20 | - param: decreaseCooldownTurnOnMap 21 | text: 22 | ja: マップ上でクールダウン 23 | desc: 24 | ja: ONの場合、マップ上でターン経過した場合にクールタイムのターンカウントを進めます。 25 | type: boolean 26 | default: true 27 | commands: [] 28 | structures: 29 | dependencies: 30 | base: 31 | - name: DarkPlasma_SkillCooldown 32 | version: 2.3.1 33 | orderAfter: 34 | - name: DarkPlasma_SkillCooldown 35 | orderBefore: [] 36 | help: 37 | ja: | 38 | DarkPlasma_SkillCooldownによるスキルのクールタイムを 39 | 戦闘後も継続させます。 40 | 41 | セーブデータに以下の情報を追加します。 42 | - 各アクターのスキルクールタイム情報 43 | -------------------------------------------------------------------------------- /src/codes/NPCKeepOutRegion/DarkPlasma_NPCKeepOutRegion.js: -------------------------------------------------------------------------------- 1 | import { settings } from './_build/DarkPlasma_NPCKeepOutRegion_parameters'; 2 | 3 | Game_Map.prototype.isEventKeepOutRegion = function (x, y) { 4 | return settings.regions.includes(this.regionId(x, y)); 5 | }; 6 | 7 | /** 8 | * @param {Game_Event.prototype} gameEvent 9 | */ 10 | function Game_Event_KeepOutRegionMixIn(gameEvent) { 11 | const _isMapPassable = gameEvent.isMapPassable; 12 | gameEvent.isMapPassable = function (x, y, d) { 13 | const x2 = $gameMap.roundXWithDirection(x, d); 14 | const y2 = $gameMap.roundYWithDirection(y, d); 15 | if (!this.ignoreKeepOut() && $gameMap.isEventKeepOutRegion(x2, y2)) { 16 | return false; 17 | } 18 | return _isMapPassable.call(this, x, y, d); 19 | }; 20 | 21 | gameEvent.ignoreKeepOut = function () { 22 | if (!this.event()) { 23 | return false; 24 | } 25 | const selfSwitchCh = this.event().meta.ignoreKeepOut; 26 | return selfSwitchCh === true || $gameSelfSwitches.value([this._mapId, this._eventId, selfSwitchCh]); 27 | }; 28 | } 29 | 30 | Game_Event_KeepOutRegionMixIn(Game_Event.prototype); 31 | -------------------------------------------------------------------------------- /src/codes/CertainHitAction/DarkPlasma_CertainHitAction.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | function Game_Action_CertainHitMixIn(gameAction: Game_Action) { 4 | const _itemHit = gameAction.itemHit; 5 | gameAction.itemHit = function (target) { 6 | if (this.item()?.meta.certainHit) { 7 | return 1; 8 | } 9 | return _itemHit.call(this, target); 10 | }; 11 | 12 | const _itemEva = gameAction.itemEva; 13 | gameAction.itemEva = function(target) { 14 | if (this.item()?.meta.certainHit) { 15 | return 0; 16 | } 17 | return _itemEva.call(this, target); 18 | }; 19 | 20 | const _itemCnt = gameAction.itemCnt; 21 | gameAction.itemCnt = function (target) { 22 | if (this.item()?.meta.ignoreCounter) { 23 | return 0; 24 | } 25 | return _itemCnt.call(this, target); 26 | }; 27 | 28 | const _itemMrf = gameAction.itemMrf; 29 | gameAction.itemMrf = function (target) { 30 | if (this.item()?.meta.ignoreReflection) { 31 | return 0; 32 | } 33 | return _itemMrf.call(this, target); 34 | }; 35 | } 36 | 37 | Game_Action_CertainHitMixIn(Game_Action.prototype); 38 | 39 | -------------------------------------------------------------------------------- /src/codes/SkillDetail/SkillDetail.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | /// 4 | /// 5 | /// 6 | 7 | declare namespace MZ { 8 | interface Skill { 9 | detail: string|undefined; 10 | } 11 | } 12 | 13 | declare interface Scene_Skill { 14 | _detailWindow: Window_SkillDetail 15 | _detailWindowLayer: WindowLayer; 16 | 17 | createDetailWindow(): void; 18 | detailWindowRect(): Rectangle; 19 | toggleDetailWindow(): void; 20 | } 21 | 22 | declare interface Scene_Battle { 23 | _skillDetailWindow: Window_SkillDetail; 24 | _skillDetailWindowLayer: WindowLayer; 25 | 26 | createSkillDetailWindow(): void; 27 | skillDetailWindowRect(): Rectangle; 28 | toggleSkillDetailWindow(): void; 29 | } 30 | 31 | declare class Window_DetailText extends Window_Scrollable { 32 | } 33 | 34 | declare interface Window_SkillDetail extends Window_DetailText { 35 | } 36 | -------------------------------------------------------------------------------- /src/codes/ControlAutoplay/DarkPlasma_ControlAutoplay.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | import { settings } from "./_build/DarkPlasma_ControlAutoplay_parameters"; 4 | 5 | function Game_Map_ControlAutoPlayMixIn(gameMap: Game_Map) { 6 | /** 7 | * コードをシンプルにするために上書き 8 | */ 9 | gameMap.autoplay = function () { 10 | if (this.isAutoplayBgmEnabled()) { 11 | if ($gamePlayer.isInVehicle()) { 12 | $gameSystem.saveWalkingBgm2(); 13 | } else { 14 | AudioManager.playBgm($dataMap!.bgm); 15 | } 16 | } 17 | if (this.isAutoplayBgsEnabled()) { 18 | AudioManager.playBgs($dataMap!.bgs); 19 | } 20 | }; 21 | 22 | gameMap.isAutoplayBgmEnabled = function () { 23 | return !!$dataMap?.autoplayBgm && 24 | (!settings.disableAutoplayBgmSwitch || !$gameSwitches.value(settings.disableAutoplayBgmSwitch)); 25 | }; 26 | 27 | gameMap.isAutoplayBgsEnabled = function () { 28 | return !!$dataMap?.autoplayBgs && 29 | (!settings.disableAutoplayBgsSwitch || !$gameSwitches.value(settings.disableAutoplayBgsSwitch)); 30 | }; 31 | } 32 | 33 | Game_Map_ControlAutoPlayMixIn(Game_Map.prototype); 34 | -------------------------------------------------------------------------------- /src/codes/HighlightNewItem/HighlightNewItem.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | declare interface Game_Party { 4 | _newItemIds: number[]; 5 | _newWeaponIds: number[]; 6 | _newArmorIds: number[]; 7 | 8 | initializeNewItems(): void; 9 | touchItem(item: MZ.Item|MZ.Weapon|MZ.Armor): void; 10 | addNewItems(item: MZ.Item|MZ.Weapon|MZ.Armor): void; 11 | hasItemAsNew(item: MZ.Item|MZ.Weapon|MZ.Armor): boolean; 12 | newItemIds(): number[]; 13 | newWeaponIds(): number[]; 14 | newArmorIds(): number[]; 15 | } 16 | 17 | declare interface Window_ItemList { 18 | _isSortedByNewItem: boolean; 19 | _newItemsForSort: MZ.Item[]; 20 | _newWeaponsForSort: MZ.Weapon[]; 21 | _newArmorsForSort: MZ.Armor[]; 22 | _touchRequestedItem: MZ.Item|MZ.Weapon|MZ.Armor|null; 23 | 24 | requestTouch(item: MZ.Item|MZ.Weapon|MZ.Armor|null): void; 25 | processTouchRequest(): void; 26 | 27 | drawNewItemName(item: MZ.Item|MZ.Weapon|MZ.Armor, x: number, y: number, width: number): void; 28 | isNewItem(item: DataManager.DrawableItem|null): item is MZ.Item|MZ.Weapon|MZ.Armor; 29 | isNewItemForSort(item: MZ.Item|MZ.Weapon|MZ.Armor): boolean; 30 | } 31 | -------------------------------------------------------------------------------- /src/codes/SelectActorCharacterWindow/plugin/SelectActorCharacterWindow.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | /// 3 | 4 | declare interface Scene_Base { 5 | characterSize(): { 6 | width: number; 7 | height: number; 8 | }; 9 | defaultCharacterSize(): { 10 | width: number; 11 | height: number; 12 | }; 13 | useTallCharacter(): boolean; 14 | } 15 | 16 | declare interface Window_SelectActorCharacter extends Window_StatusBase { 17 | setActivateByHover(func: () => void): void; 18 | setPendingIndex(pendingIndex?: number): void; 19 | currentActor(): Game_Actor | undefined; 20 | pendingActor(): Game_Actor | undefined; 21 | actor(index: number): Game_Actor | undefined; 22 | members(): (Game_Actor|undefined)[]; 23 | pendingIndex(): number; 24 | spacing(): number; 25 | characterSize(): { 26 | width: number; 27 | height: number; 28 | }; 29 | defaultCharacterSize(): { 30 | width: number; 31 | height: number; 32 | }; 33 | useTallCharacter(): boolean; 34 | } 35 | 36 | function Scene_SelectActorCharacterMixIn(sceneClass: Scene_Base): void; 37 | --------------------------------------------------------------------------------