├── .gitmodules ├── CODEOWNERS ├── docs ├── articles │ ├── introduction.md │ ├── getting-started.md │ ├── currencies │ │ └── toc.yml │ ├── system │ │ ├── avatar │ │ │ └── toc.yml │ │ └── toc.yml │ └── toc.yml ├── index.md ├── filter.yml ├── api │ └── .gitignore ├── toc.yml ├── contributing │ ├── documentation │ │ ├── toc.yml │ │ └── structure.md │ └── toc.yml └── .gitignore ├── integrations ├── python │ ├── .python-version │ ├── src │ │ └── lib9c │ │ │ └── __init__.py │ ├── .gitignore │ ├── requirements.lock │ ├── requirements-dev.lock │ └── README.md └── javascript │ ├── @planetarium │ ├── .gitignore │ ├── 9c-headless-provider │ │ ├── tests │ │ │ └── .gitkeep │ │ ├── .gitignore │ │ ├── vite.config.ts │ │ ├── tsup.config.ts │ │ ├── graphql │ │ │ └── headless │ │ │ │ ├── codegen.yml │ │ │ │ └── api.graphql │ │ ├── jsr.json │ │ └── biome.json │ ├── .npmrc │ ├── lib9c │ │ ├── docs │ │ │ ├── .gitignore │ │ │ └── ko │ │ │ │ └── index.md │ │ ├── vite.config.ts │ │ ├── tsup.config.ts │ │ ├── jsr.json │ │ ├── tests │ │ │ └── actions │ │ │ │ ├── make_guild.test.ts │ │ │ │ └── stake.test.ts │ │ ├── cli │ │ │ └── main.ts │ │ └── src │ │ │ └── models │ │ │ └── networks.ts │ ├── pnpm-workspace.yaml │ ├── .editorconfig │ └── package.json │ └── .vscode │ └── settings.json ├── .Lib9c.Miner.Tests └── Usings.cs ├── .Lib9c.Benchmarks └── .gitignore ├── .vscode └── settings.json ├── .Lib9c.ActionEvaluatorCommonComponents.Tests └── Usings.cs ├── Lib9c ├── TableCSV │ ├── GrandFinaleScheduleSheet.csv │ ├── BuffLinkSheet.csv │ ├── CreateAvatarItemSheet.csv │ ├── CreateAvatarFavSheet.csv │ ├── CrystalFluctuationSheet.csv │ ├── EventDungeonSheet.csv.meta │ ├── EventScheduleSheet.csv.meta │ ├── ClaimableGiftsSheet.csv.meta │ ├── CrystalHammerPointSheet.csv.meta │ ├── CrystalRandomBuffSheet.csv.meta │ ├── EventDungeonStageSheet.csv.meta │ ├── CrystalStageBuffGachaSheet.csv.meta │ ├── EventDungeonStageWaveSheet.csv.meta │ ├── EventConsumableItemRecipeSheet.csv.meta │ ├── StakeActionPointCoefficientSheet.csv.meta │ ├── ItemGradeQuestSheet.csv │ ├── SwapRateSheet.csv │ ├── MonsterQuestSheet.csv │ ├── AdventureBossSheet.csv │ ├── MonsterCollectionSheet.csv │ ├── CrystalMonsterCollectionMultiplierSheet.csv │ ├── InfiniteTowerConditionSheet.csv │ ├── RuneLevelBonusSheet.csv │ ├── ItemTypeCollectQuestSheet.csv │ ├── StakeRegularFixedRewardSheet_V1.csv │ ├── UnlockCombinationSlotCostSheet.csv │ ├── InfiniteTowerScheduleSheet.csv │ ├── GoldQuestSheet.csv │ ├── StakeActionPointCoefficientSheet.csv │ ├── PetSheet.csv.meta │ ├── ArenaSheet.csv.meta │ ├── BuffLinkSheet.csv.meta │ ├── BuffSheet.csv.meta │ ├── PetCostSheet.csv.meta │ ├── RuneCostSheet.csv.meta │ ├── RuneListSheet.csv.meta │ ├── RuneSheet.csv.meta │ ├── SkillSheet.csv.meta │ ├── StageSheet.csv.meta │ ├── StakePolicySheet.csv │ ├── StatBuffSheet.csv.meta │ ├── SummonSheet.csv.meta │ ├── SwapRateSheet.csv.meta │ ├── WorldSheet.csv.meta │ ├── ActionBuffSheet.csv.meta │ ├── AdventureBossSheet.csv.meta │ ├── BuffLimitSheet.csv.meta │ ├── CharacterSheet.csv.meta │ ├── CollectQuestSheet.csv.meta │ ├── CollectionSheet.csv.meta │ ├── CostumeItemSheet.csv.meta │ ├── CostumeStatSheet.csv.meta │ ├── CostumeSummonSheet.csv.meta │ ├── CustomEquipmentCraftRecipeSheet.csv │ ├── EnemySkillSheet.csv.meta │ ├── EquipmentItemSheet.csv.meta │ ├── GameConfigSheet.csv.meta │ ├── GeneralQuestSheet.csv.meta │ ├── GoldQuestSheet.csv.meta │ ├── MaterialItemSheet.csv.meta │ ├── MimisbrunnrSheet.csv.meta │ ├── MonsterQuestSheet.csv.meta │ ├── PatrolRewardSheet.csv.meta │ ├── PetOptionSheet.csv.meta │ ├── QuestRewardSheet.csv.meta │ ├── RedeemRewardSheet.csv.meta │ ├── RuneOptionSheet.csv.meta │ ├── RuneSummonSheet.csv.meta │ ├── RuneWeightSheet.csv.meta │ ├── SkillBuffSheet.csv.meta │ ├── StageDialogSheet.csv.meta │ ├── StageWaveSheet.csv.meta │ ├── StakePolicySheet.csv.meta │ ├── SynthesizeSheet.csv.meta │ ├── TradeQuestSheet.csv.meta │ ├── WorldBossListSheet.csv.meta │ ├── WorldQuestSheet.csv.meta │ ├── WorldUnlockSheet.csv.meta │ ├── AdventureBossFloorSheet.csv.meta │ ├── CharacterLevelSheet.csv.meta │ ├── CombinationQuestSheet.csv.meta │ ├── ConsumableItemSheet.csv.meta │ ├── CreateAvatarFavSheet.csv.meta │ ├── CreateAvatarItemSheet.csv.meta │ ├── CrystalFluctuationSheet.csv.meta │ ├── EnhancementCostSheet.csv.meta │ ├── EnhancementCostSheetV2.csv.meta │ ├── EnhancementCostSheetV3.csv.meta │ ├── EquipmentSummonSheet.csv.meta │ ├── InfiniteTowerFloorSheet.csv.meta │ ├── ItemConfigForGradeSheet.csv.meta │ ├── ItemGradeQuestSheet.csv.meta │ ├── ItemRequirementSheet.csv.meta │ ├── MonsterCollectionSheet.csv.meta │ ├── QuestItemRewardSheet.csv.meta │ ├── RedeemCodeListSheet.csv.meta │ ├── RuneLevelBonusSheet.csv.meta │ ├── SkillActionBuffSheet.csv.meta │ ├── StakeRegularFixedRewardSheet.csv │ ├── StakeRegularFixedRewardSheet_V2.csv │ ├── StakeRegularRewardSheet.csv.meta │ ├── SweepRequiredCPSheet.csv.meta │ ├── SynthesizeWeightSheet.csv.meta │ ├── WeeklyArenaRewardSheet.csv.meta │ ├── WorldBossCharacterSheet.csv.meta │ ├── WorldBossGlobalHpSheet.csv.meta │ ├── AdventureBossFloorPointSheet.csv.meta │ ├── AdventureBossFloorWaveSheet.csv.meta │ ├── ConsumableItemRecipeSheet.csv.meta │ ├── CrystalMaterialCostSheet.csv.meta │ ├── EquipmentItemOptionSheet.csv.meta │ ├── EquipmentItemRecipeSheet.csv.meta │ ├── EquipmentItemSetEffectSheet.csv.meta │ ├── EquipmentItemSubRecipeSheet.csv.meta │ ├── EventMaterialItemRecipeSheet.csv.meta │ ├── GrandFinaleParticipantsSheet.csv.meta │ ├── GrandFinaleScheduleSheet.csv.meta │ ├── InfiniteTowerConditionSheet.csv.meta │ ├── InfiniteTowerFloorWaveSheet.csv.meta │ ├── InfiniteTowerScheduleSheet.csv.meta │ ├── ItemEnhancementQuestSheet.csv.meta │ ├── ItemTypeCollectQuestSheet.csv.meta │ ├── LoadIntoMyGaragesCostSheet.csv.meta │ ├── MonsterCollectionRewardSheet.csv.meta │ ├── StakeAchievementRewardSheet.csv.meta │ ├── StakeRegularFixedRewardSheet.csv.meta │ ├── StakeRegularRewardSheet_V1.csv.meta │ ├── StakeRegularRewardSheet_V10.csv.meta │ ├── StakeRegularRewardSheet_V2.csv.meta │ ├── StakeRegularRewardSheet_V3.csv.meta │ ├── StakeRegularRewardSheet_V4.csv.meta │ ├── StakeRegularRewardSheet_V5.csv.meta │ ├── StakeRegularRewardSheet_V6.csv.meta │ ├── StakeRegularRewardSheet_V7.csv.meta │ ├── StakeRegularRewardSheet_V8.csv.meta │ ├── StakeRegularRewardSheet_V9.csv.meta │ ├── TradeQuestSheet.csv │ ├── WorldBossActionPatternSheet.csv.meta │ ├── WorldBossBattleRewardSheet.csv.meta │ ├── WorldBossKillRewardSheet.csv.meta │ ├── WorldBossRankRewardSheet.csv.meta │ ├── WorldBossRankingRewardSheet.csv.meta │ ├── AdventureBossNcgRewardRatioSheet.csv.meta │ ├── AdventureBossUnlockFloorCostSheet.csv.meta │ ├── AdventureBossWantedRewardSheet.csv.meta │ ├── CombinationEquipmentQuestSheet.csv.meta │ ├── CrystalEquipmentGrindingSheet.csv.meta │ ├── CustomEquipmentCraftIconSheet.csv.meta │ ├── CustomEquipmentCraftOptionSheet.csv.meta │ ├── CustomEquipmentCraftRecipeSheet.csv.meta │ ├── CustomEquipmentCraftRecipeSkillSheet.csv.meta │ ├── EquipmentItemSubRecipeSheetV2.csv.meta │ ├── StakeRegularFixedRewardSheet_V1.csv.meta │ ├── StakeRegularFixedRewardSheet_V2.csv.meta │ ├── StakeRegularFixedRewardSheet_V3.csv.meta │ ├── UnlockCombinationSlotCostSheet.csv.meta │ ├── WorldBossContributionRewardSheet.csv.meta │ ├── AdventureBossContributionRewardSheet.csv.meta │ ├── AdventureBossFloorFirstRewardSheet.csv.meta │ ├── CustomEquipmentCraftRelationshipSheet.csv.meta │ ├── CrystalMonsterCollectionMultiplierSheet.csv.meta │ ├── StakeRegularFixedRewardSheet_V3.csv │ ├── GrandFinaleParticipantsSheet.csv │ ├── AdventureBossContributionRewardSheet.csv │ ├── WorldUnlockSheet.csv │ ├── ItemEnhancementQuestSheet.csv │ ├── StakeRegularRewardSheet_V1.csv │ ├── ItemConfigForGradeSheet.csv │ ├── WorldSheet.csv │ ├── AdventureBossNcgRewardRatioSheet.csv │ ├── MonsterCollectionRewardSheet.csv │ ├── ClaimableGiftsSheet.csv │ ├── SkillActionBuffSheet.csv │ ├── AdventureBossUnlockFloorCostSheet.csv │ ├── BuffLimitSheet.csv │ ├── WorldBossRankRewardSheet.csv │ ├── CollectQuestSheet.csv │ ├── WorldBossBattleRewardSheet.csv │ ├── WorldBossKillRewardSheet.csv │ ├── PatrolRewardSheet.csv │ ├── EventDungeonSheet.csv │ ├── StakeRegularRewardSheet_V2.csv │ ├── StakeAchievementRewardSheet.csv │ ├── SynthesizeSheet.csv │ ├── MimisbrunnrSheet.csv │ └── WorldBossActionPatternSheet.csv ├── AssemblyInfo.cs ├── Model │ ├── Item │ │ ├── LockType.cs │ │ ├── ITradableFungibleItem.cs │ │ ├── ILock.cs │ │ ├── IEquippableItem.cs │ │ ├── IItem.cs │ │ ├── ITradableItem.cs │ │ ├── INonFungibleItem.cs │ │ └── IFungibleItem.cs │ ├── EnumType │ │ ├── TradeType.cs │ │ ├── RuneType.cs │ │ ├── StatReferenceType.cs │ │ ├── ArenaType.cs │ │ ├── CraftType.cs │ │ ├── RuneSlotType.cs │ │ ├── RuneUsePlace.cs │ │ └── Grade.cs │ ├── Collection │ │ ├── MaterialType.cs │ │ ├── ICollectionMaterial.cs │ │ └── CollectionFactory.cs │ ├── State │ │ ├── IState.cs │ │ ├── ShopStateAlreadyContainsException.cs │ │ └── FailedToUnregisterInShopStateException.cs │ ├── Character │ │ └── SizeType.cs │ ├── Market │ │ └── ProductType.cs │ ├── Skill │ │ ├── SkillType.cs │ │ ├── SkillCustomField.cs │ │ ├── ActionBuffType.cs │ │ └── UnexpectedOperationException.cs │ ├── Garages │ │ ├── IGarage.cs │ │ └── IFungibleItemGarage.cs │ ├── Quest │ │ └── QuestEventType.cs │ ├── Pet │ │ └── PetOptionType.cs │ └── BattleStatus │ │ ├── Dead.cs │ │ ├── EventBase.cs │ │ ├── RemoveBuffs.cs │ │ ├── Arena │ │ ├── ArenaDead.cs │ │ ├── ArenaSpawnCharacter.cs │ │ ├── ArenaEventBase.cs │ │ └── ArenaRemoveBuffs.cs │ │ ├── SpawnPlayer.cs │ │ ├── SpawnEnemyPlayer.cs │ │ └── GetExp.cs ├── TableData │ ├── Summon │ │ ├── RuneSummonSheet.cs │ │ ├── CostumeSummonSheet.cs │ │ └── EquipmentSummonSheet.cs │ ├── ISheet.cs │ ├── IStakeRewardRow.cs │ ├── IStakeRewardSheet.cs │ ├── IWorldBossRewardSheet.cs │ ├── IWorldBossRewardRow.cs │ ├── Quest │ │ └── WorldQuestSheet.cs │ └── Event │ │ ├── EventDungeonSheet.cs │ │ ├── EventDungeonStageSheet.cs │ │ └── EventConsumableItemRecipeSheet.cs ├── Action │ ├── IClaimStakeReward.cs │ ├── ClaimStakeReward2.cs │ ├── ClaimStakeReward8.cs │ ├── Arena │ │ └── ArenaProvider.cs │ ├── Guild │ │ └── GuildConfig.cs │ ├── IClaimItems.cs │ ├── ITransferAsset.cs │ ├── ITransferAssets.cs │ ├── IPurchaseInfo.cs │ ├── IBuy5.cs │ ├── NotEnoughStarException.cs │ ├── PetIsLockedException.cs │ ├── NotEnoughMedalException.cs │ ├── InvalidLevelException.cs │ ├── PlayCountIsZeroException.cs │ ├── InvalidPriceException.cs │ ├── AvatarIndexOutOfRangeException.cs │ ├── NotEnoughHammerPointException.cs │ ├── DuplicateCostumeException.cs │ ├── DuplicateOrderIdException.cs │ ├── InvalidCurrencyException.cs │ ├── InvalidItemTypeException.cs │ ├── InvalidMaterialException.cs │ ├── InvalidShopItemException.cs │ ├── InvalidTradableItemException.cs │ ├── ProductNotFoundException.cs │ ├── ArenaNotEndedException.cs │ ├── CostumeSlotUnlockException.cs │ ├── DuplicateMaterialException.cs │ ├── ItemDoesNotExistException.cs │ ├── NotEnoughActionPointException.cs │ ├── NotEnoughMaterialException.cs │ ├── DuplicateEquipmentException.cs │ ├── InvalidNamePatternException.cs │ ├── NotEnoughCombatPointException.cs │ ├── AlreadyReceivedException.cs │ ├── InvalidProductTypeException.cs │ ├── AlreadyActivatedException.cs │ ├── ConsumableSlotUnlockException.cs │ ├── IBuy0.cs │ ├── InvalidTradableIdException.cs │ ├── MemoLengthOverflowException.cs │ ├── OrderIdDoesNotExistException.cs │ ├── AlreadyContractedException.cs │ ├── AvatarIndexAlreadyUsedException.cs │ ├── EquipmentLevelExceededException.cs │ ├── AppraiseBlockNotReachedException.cs │ ├── CombinationSlotResultNullException.cs │ ├── InvalidStageException.cs │ ├── MonsterCollectionExpiredException.cs │ ├── ActivationException.cs │ ├── InvalidMonsterCollectionRoundException.cs │ ├── InvalidTransferCurrencyException.cs │ ├── ValidatorSetOperatorType.cs │ ├── InvalidWorldException.cs │ ├── ShopErrorType.cs │ ├── InvalidClaimException.cs │ ├── InvalidElementalException.cs │ ├── InvalidEquipmentException.cs │ ├── InvalidRecipeIdException.cs │ ├── ActionObsoletedException.cs │ ├── InvalidRepeatPlayException.cs │ ├── AgentStateNotContainsAvatarAddressException.cs │ ├── AlreadyClaimedGiftsException.cs │ ├── Exceptions │ │ ├── CustomEquipmentCraft │ │ │ └── NotEnoughRelationshipException.cs │ │ └── DuplicatedCraftSlotIndexException.cs │ ├── ShopItemExpiredException.cs │ ├── ActionUnavailableException.cs │ ├── InvalidItemCountException.cs │ ├── EquipmentSlotUnlockException.cs │ ├── InvalidAddressException.cs │ ├── NotEnoughRankException.cs │ ├── ActionPointExceededException.cs │ └── AlreadyWorldUnlockedException.cs ├── Delegation │ └── UnbondingType.cs ├── Extensions │ ├── IntegerExtensions.cs │ ├── ActionContextExtensions.cs │ ├── AgentAddressExtensions.cs │ └── RandomExtensions.cs ├── Planet.cs ├── MeadConfig.cs ├── Exceptions │ ├── InvalidStateTypeException.cs │ └── AlreadyFoughtAvatarException.cs ├── Battle │ ├── IStageSimulator.cs │ └── ISimulator.cs └── Arena │ └── IArenaSimulator.cs ├── global.json ├── .Lib9c.Tools ├── activated-accounts-example.json ├── admin-state-config-example.json └── authorized-miner-state-config-example.json ├── .github ├── dependabot.yml ├── bin │ ├── github-release.sh │ └── constants.sh └── workflows │ └── release.yaml ├── Lib9c.Abstractions ├── IMigrationLegacyShopV1.cs ├── IMonsterCollectV2.cs ├── IMigrationActivatedAccountsStateV1.cs ├── IRenewAdminStateV1.cs ├── IStakeV1.cs ├── IAddRedeemCodeV1.cs ├── IMonsterCollectV1.cs ├── ICancelMonsterCollectV1.cs ├── IDailyRewardV1.cs ├── ISecureMiningReward.cs ├── IClaimRaidRewardV1.cs ├── IClaimStakeRewardV1.cs ├── IChargeActionPointV1.cs ├── IClaimWordBossKillRewardV1.cs ├── ICreatePendingActivationV1.cs ├── IMigrateMonsterCollectionV1.cs ├── IClaimMonsterCollectionRewardV2.cs ├── IRedeemCodeV1.cs ├── IAddActivatedAccountV1.cs ├── IActivateAccount.cs ├── IUnlockRuneSlotV1.cs ├── IHackAndSlashRandomBuffV1.cs ├── IMigrationAvatarStateV1.cs ├── IAuraSummonV1.cs ├── IClaimMonsterCollectionRewardV1.cs ├── IRapidCombinationV1.cs ├── IRuneEnhancementV1.cs ├── IRuneSummonV1.cs ├── ISellCancellationV1.cs ├── ICreatePendingActivationsV1.cs ├── ICombinationConsumableV1.cs ├── IUnlockWorldV1.cs ├── IBuyV2.cs ├── IUnlockEquipmentRecipeV1.cs ├── ICreateAvatarV2.cs ├── ISellCancellationV2.cs ├── IHackAndSlashSweepV1.cs ├── IRapidCombinationV2.cs ├── IBuyMultipleV1.cs ├── ICombinationEquipmentV1.cs ├── IUpdateSellV2.cs ├── IItemEnhancementV2.cs ├── IBuyV1.cs ├── ISellCancellationV3.cs ├── IPrepareRewardAssetsV1.cs ├── IEventConsumableItemCraftsV1.cs ├── IGrindingV1.cs ├── ICombinationEquipmentV2.cs ├── IItemEnhancementV3.cs ├── IItemEnhancementV4.cs ├── ITransferAssetV1.cs ├── ICreateAvatarV1.cs ├── IItemEnhancementV1.cs ├── ISellV1.cs ├── ICombinationEquipmentV3.cs ├── ITransferAssetsV1.cs ├── IEventMaterialItemCraftsV1.cs ├── IRaidV1.cs ├── IItemEnhancementV5.cs ├── ISellV2.cs ├── ICombinationEquipmentV4.cs ├── IBattleGrandFinaleV1.cs ├── IHackAndSlashV6.cs ├── IUpdateSellV1.cs ├── IHackAndSlashV5.cs ├── IRankingBattleV1.cs ├── IHackAndSlashSweepV2.cs ├── IHackAndSlashV7.cs ├── IRaidV2.cs ├── IMimisbrunnrBattleV4.cs ├── IHackAndSlashV3.cs ├── IMimisbrunnrBattleV2.cs ├── IRankingBattleV2.cs ├── IJoinArenaV1.cs ├── IHackAndSlashV8.cs ├── IHackAndSlashV4.cs ├── IHackAndSlashV1.cs ├── IHackAndSlashV2.cs ├── IMimisbrunnrBattleV3.cs ├── IDeliverToOthersGaragesV1.cs ├── IMimisbrunnrBattleV1.cs ├── IEventDungeonBattleV1.cs └── IHackAndSlashSweepV3.cs ├── Lib9c.DevExtensions ├── Model │ ├── BaseTestbedModel.cs │ └── TestbedWeeklyArena.cs └── Action │ └── Interface │ ├── IFaucetCurrency.cs │ └── IFaucetRune.cs ├── Lib9c.Policy ├── AssemblyInfo.cs ├── AccessControlService │ └── IAccessControlService.cs └── Lib9c.Policy.csproj ├── .config └── dotnet-tools.json ├── .Lib9c.Plugin.Shared ├── IPluginActionEvaluator.cs └── Lib9c.Plugin.Shared.csproj ├── Lib9c.Proposer └── ActionTypeLoaderContext.cs ├── .Lib9c.ActionEvaluatorCommonComponents └── Random.cs ├── .gitignore ├── .Lib9c.Tests ├── Action │ ├── DamageHelperTest.cs │ ├── CreateTestbedTest.cs │ ├── ValidatorDelegation │ │ └── ConstantTest.cs │ └── RuneSlotInfoTest.cs ├── Util │ └── AddressUtil.cs ├── Delegation │ └── DummyDelegator.cs ├── Model │ ├── Guild │ │ ├── GuildApplicationTest.Snapshot.verified.txt │ │ └── GuildParticipantTest.Snapshot.verified.txt │ └── MonsterCollectSheetTest.cs └── TableData │ └── RuneWeightSheetTest.cs ├── Lib9c.Utils └── Lib9c.Utils.csproj ├── Lib9c.Renderers └── Lib9c.Renderers.csproj └── _typos.toml /.gitmodules: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /CODEOWNERS: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/articles/introduction.md: -------------------------------------------------------------------------------- 1 | # Introduction -------------------------------------------------------------------------------- /integrations/python/.python-version: -------------------------------------------------------------------------------- 1 | 3.12.7 2 | -------------------------------------------------------------------------------- /.Lib9c.Miner.Tests/Usings.cs: -------------------------------------------------------------------------------- 1 | global using Xunit; 2 | -------------------------------------------------------------------------------- /docs/articles/getting-started.md: -------------------------------------------------------------------------------- 1 | # Getting Started -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | [!include[README](../README.md)] 2 | -------------------------------------------------------------------------------- /.Lib9c.Benchmarks/.gitignore: -------------------------------------------------------------------------------- 1 | BenchmarkDotNet.Artifacts/ 2 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "editor.rulers": [80, 100], 3 | } -------------------------------------------------------------------------------- /docs/articles/currencies/toc.yml: -------------------------------------------------------------------------------- 1 | - name: Mead 2 | href: mead.md 3 | -------------------------------------------------------------------------------- /integrations/javascript/@planetarium/.gitignore: -------------------------------------------------------------------------------- 1 | dist 2 | node_modules 3 | -------------------------------------------------------------------------------- /integrations/javascript/@planetarium/9c-headless-provider/tests/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.Lib9c.ActionEvaluatorCommonComponents.Tests/Usings.cs: -------------------------------------------------------------------------------- 1 | global using Xunit; 2 | -------------------------------------------------------------------------------- /integrations/javascript/@planetarium/.npmrc: -------------------------------------------------------------------------------- 1 | @jsr:registry=https://npm.jsr.io 2 | -------------------------------------------------------------------------------- /integrations/javascript/@planetarium/lib9c/docs/.gitignore: -------------------------------------------------------------------------------- 1 | .vitepress/cache 2 | -------------------------------------------------------------------------------- /integrations/javascript/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "deno.enable": true 3 | } 4 | -------------------------------------------------------------------------------- /integrations/javascript/@planetarium/9c-headless-provider/.gitignore: -------------------------------------------------------------------------------- 1 | src/generated 2 | -------------------------------------------------------------------------------- /docs/filter.yml: -------------------------------------------------------------------------------- 1 | apiRules: 2 | - exclude: 3 | uidRegex: ^BTAI$ 4 | type: Namespace 5 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/GrandFinaleScheduleSheet.csv: -------------------------------------------------------------------------------- 1 | id,start_block_index,end_block_index 2 | 1,1,10 3 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/BuffLinkSheet.csv: -------------------------------------------------------------------------------- 1 | buff1_id,buff2_id 2 | 708000,709000 3 | 708001,709001 4 | 708002,709002 -------------------------------------------------------------------------------- /docs/api/.gitignore: -------------------------------------------------------------------------------- 1 | ############### 2 | # temp file # 3 | ############### 4 | *.yml 5 | .manifest 6 | -------------------------------------------------------------------------------- /integrations/python/src/lib9c/__init__.py: -------------------------------------------------------------------------------- 1 | def hello() -> str: 2 | return "Hello from lib9c!" 3 | -------------------------------------------------------------------------------- /global.json: -------------------------------------------------------------------------------- 1 | { 2 | "sdk": { 3 | "version": "6.0.400", 4 | "rollForward": "major" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/CreateAvatarItemSheet.csv: -------------------------------------------------------------------------------- 1 | ItemId,Count 2 | 10110000,1 3 | 10210000,1 4 | 303000,2 5 | 10610000,1 -------------------------------------------------------------------------------- /Lib9c/TableCSV/CreateAvatarFavSheet.csv: -------------------------------------------------------------------------------- 1 | currency,quantity,target 2 | CRYSTAL,200000,Agent 3 | RUNE_ADVENTURER,1,Avatar -------------------------------------------------------------------------------- /integrations/javascript/@planetarium/pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - 'lib9c' 3 | - '9c-headless-provider' 4 | -------------------------------------------------------------------------------- /Lib9c/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.CompilerServices; 2 | 3 | [assembly: InternalsVisibleTo("Lib9c.Tests")] 4 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/CrystalFluctuationSheet.csv: -------------------------------------------------------------------------------- 1 | id,type,block_interval,minimum_rate,maximum_rate 2 | 1,Combination,14400,10,1000 -------------------------------------------------------------------------------- /Lib9c/TableCSV/EventDungeonSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d0cc887f4f4742ef99acc87eae4ea677 3 | timeCreated: 1656977839 -------------------------------------------------------------------------------- /Lib9c/TableCSV/EventScheduleSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c68023b5e8eb422b8f21a77271d49714 3 | timeCreated: 1657783009 -------------------------------------------------------------------------------- /.Lib9c.Tools/activated-accounts-example.json: -------------------------------------------------------------------------------- 1 | { 2 | "accounts": [ 3 | "ba59F3b054EA42230b624e6c3D890e09287522A7" 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/ClaimableGiftsSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7d9d5820f221437094f1f72a78d12790 3 | timeCreated: 1730298359 -------------------------------------------------------------------------------- /Lib9c/TableCSV/CrystalHammerPointSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1b09e0d2ca0749e883762dc2425f5375 3 | timeCreated: 1659601101 -------------------------------------------------------------------------------- /Lib9c/TableCSV/CrystalRandomBuffSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 50feb824ab6246ba9dc354055a02093a 3 | timeCreated: 1652953053 -------------------------------------------------------------------------------- /Lib9c/TableCSV/EventDungeonStageSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 55293d8703d041508c0fc9e3264b89b5 3 | timeCreated: 1656979404 -------------------------------------------------------------------------------- /Lib9c/Model/Item/LockType.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.Model.Item 2 | { 3 | public enum LockType 4 | { 5 | Order 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/CrystalStageBuffGachaSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a1ad7eed030a439fa28012cc342b1afb 3 | timeCreated: 1652944649 -------------------------------------------------------------------------------- /Lib9c/TableCSV/EventDungeonStageWaveSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 90dd211776a246e3b535b6d43c5bd606 3 | timeCreated: 1656979403 -------------------------------------------------------------------------------- /docs/toc.yml: -------------------------------------------------------------------------------- 1 | - name: Docs 2 | href: articles/ 3 | - name: API 4 | href: api/ 5 | - name: Contributing 6 | href: contributing/ 7 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/EventConsumableItemRecipeSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4493d8f3ccc54a0e849b2b7b527b5a28 3 | timeCreated: 1658634076 -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakeActionPointCoefficientSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5685abfd2d904b64805c00180eca951f 3 | timeCreated: 1661752290 -------------------------------------------------------------------------------- /.Lib9c.Tools/admin-state-config-example.json: -------------------------------------------------------------------------------- 1 | { 2 | "adminAddress": "F9A15F870701268Bd7bBeA6502eB15F4997f32f9", 3 | "validUntil": 1500000 4 | } 5 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "nuget" 4 | directory: "/" 5 | schedule: 6 | interval: "daily" 7 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IMigrationLegacyShopV1.cs: -------------------------------------------------------------------------------- 1 | namespace Lib9c.Abstractions 2 | { 3 | public interface IMigrationLegacyShopV1 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/ItemGradeQuestSheet.csv: -------------------------------------------------------------------------------- 1 | id,goal,quest_reward_id,grade 2 | 800000,6,12,1 3 | 800001,6,12,2 4 | 800002,6,19,3 5 | 800003,6,15,4 6 | 800004,6,16,5 -------------------------------------------------------------------------------- /Lib9c/TableCSV/SwapRateSheet.csv: -------------------------------------------------------------------------------- 1 | currency_from,currency_to,rate 2 | NCG;2;0x47D082a115c63E7b58B1532d20E631538eaFADde;false;null,MEAD;18;null;true;null,1/1 3 | -------------------------------------------------------------------------------- /docs/contributing/documentation/toc.yml: -------------------------------------------------------------------------------- 1 | items: 2 | - name: Structure 3 | href: structure.md 4 | - name: Deployment 5 | href: deployment.md 6 | -------------------------------------------------------------------------------- /integrations/javascript/@planetarium/.editorconfig: -------------------------------------------------------------------------------- 1 | [*] 2 | indent_style = space 3 | indent_size = 2 4 | end_of_line = lf 5 | insert_final_newline = true 6 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/MonsterQuestSheet.csv: -------------------------------------------------------------------------------- 1 | id,goal,quest_reward_id,monster_id 2 | 500001,1,17,201005 3 | 500002,1,21,202007 4 | 500003,1,15,203007 5 | 500004,1,16,205007 -------------------------------------------------------------------------------- /integrations/javascript/@planetarium/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "workspaces": [ 4 | "lib9c", 5 | "9c-headless-provider" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /Lib9c.DevExtensions/Model/BaseTestbedModel.cs: -------------------------------------------------------------------------------- 1 | namespace Lib9c.DevExtensions.Model 2 | { 3 | public abstract class BaseTestbedModel 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Lib9c/Model/EnumType/TradeType.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.Model.EnumType 2 | { 3 | public enum TradeType 4 | { 5 | Buy, 6 | Sell 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/AdventureBossSheet.csv: -------------------------------------------------------------------------------- 1 | id,boss_id,_boss_name,explore_ap,sweep_ap 2 | 1,211000,수르트,2,1 3 | 2,211001,라우페이,2,1 4 | 3,211002,요르문간드,2,1 5 | 4,211003,헤라,2,1 -------------------------------------------------------------------------------- /Lib9c/TableCSV/MonsterCollectionSheet.csv: -------------------------------------------------------------------------------- 1 | level,required_gold,reward_id 2 | 1,500,1 3 | 2,1800,2 4 | 3,7200,3 5 | 4,54000,4 6 | 5,270000,5 7 | 6,480000,6 8 | 7,1500000,7 -------------------------------------------------------------------------------- /Lib9c/TableCSV/CrystalMonsterCollectionMultiplierSheet.csv: -------------------------------------------------------------------------------- 1 | level,multiplier 2 | 0,0 3 | 1,0 4 | 2,50 5 | 3,100 6 | 4,200 7 | 5,300 8 | 6,300 9 | 7,300 10 | 8,300 -------------------------------------------------------------------------------- /Lib9c/TableCSV/InfiniteTowerConditionSheet.csv: -------------------------------------------------------------------------------- 1 | Id,StatType,TargetType,OperationType,Value 2 | 1,2,1,0,50 3 | 2,3,1,0,30 4 | 3,6,1,0,25 5 | 4,1,1,0,100 6 | 5,2,1,0,75 7 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/RuneLevelBonusSheet.csv: -------------------------------------------------------------------------------- 1 | id,rune_level,bonus 2 | 1,1,30000 3 | 2,2034,46 4 | 3,4068,34 5 | 4,8137,21 6 | 5,16275,16 7 | 6,32550,9 8 | 7,65100,5 9 | 8,130200,5 -------------------------------------------------------------------------------- /Lib9c/TableData/Summon/RuneSummonSheet.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.TableData.Summon 2 | { 3 | public class RuneSummonSheet : SummonSheet 4 | { 5 | 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /integrations/python/.gitignore: -------------------------------------------------------------------------------- 1 | # lib9c generated files 2 | __pycache__/ 3 | *.py[oc] 4 | build/ 5 | dist/ 6 | wheels/ 7 | *.egg-info 8 | 9 | # venv 10 | .venv 11 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IMonsterCollectV2.cs: -------------------------------------------------------------------------------- 1 | namespace Lib9c.Abstractions 2 | { 3 | public interface IMonsterCollectV2 4 | { 5 | int Level { get; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Lib9c/Model/EnumType/RuneType.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.Model.EnumType 2 | { 3 | public enum RuneType 4 | { 5 | Stat = 1, 6 | Skill = 2, 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Lib9c/TableData/Summon/CostumeSummonSheet.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.TableData.Summon 2 | { 3 | public class CostumeSummonSheet : SummonSheet 4 | { 5 | 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /docs/contributing/toc.yml: -------------------------------------------------------------------------------- 1 | # See https://dotnet.github.io/docfx/docs/table-of-contents.html 2 | - name: Documentation 3 | href: documentation/toc.yml 4 | expanded: true 5 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IMigrationActivatedAccountsStateV1.cs: -------------------------------------------------------------------------------- 1 | namespace Lib9c.Abstractions 2 | { 3 | public interface IMigrationActivatedAccountsStateV1 4 | { 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Lib9c.Policy/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Runtime.CompilerServices; 2 | 3 | [assembly: InternalsVisibleTo("Lib9c.Tests")] 4 | [assembly: InternalsVisibleTo("Lib9c.Benchmarks")] 5 | -------------------------------------------------------------------------------- /Lib9c/Action/IClaimStakeReward.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Action; 2 | 3 | namespace Nekoyume.Action 4 | { 5 | public interface IClaimStakeReward : IAction 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/ItemTypeCollectQuestSheet.csv: -------------------------------------------------------------------------------- 1 | id,goal,quest_reward_id,item_type 2 | 900000,5,3,Material 3 | 900001,10,19,Material 4 | 900002,20,19,Material 5 | 900003,30,19,Material -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakeRegularFixedRewardSheet_V1.csv: -------------------------------------------------------------------------------- 1 | level,required_gold,item_id,count 2 | 1,50,500000,1 3 | 2,500,500000,2 4 | 3,5000,500000,2 5 | 4,50000,500000,2 6 | 5,500000,500000,2 -------------------------------------------------------------------------------- /Lib9c/TableData/ISheet.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.TableData 2 | { 3 | public interface ISheet 4 | { 5 | void Set(string csv, bool isReversed = false); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Lib9c/TableData/Summon/EquipmentSummonSheet.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.TableData.Summon 2 | { 3 | public class EquipmentSummonSheet : SummonSheet 4 | { 5 | 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/UnlockCombinationSlotCostSheet.csv: -------------------------------------------------------------------------------- 1 | slot_id,crystal_price,golden_dust_price,ruby_dust_price,ncg_price 2 | 4,20000000,0,0,0 3 | 5,0,1000,0,0 4 | 6,0,0,500,0 5 | 7,0,0,0,200 -------------------------------------------------------------------------------- /docs/.gitignore: -------------------------------------------------------------------------------- 1 | ############### 2 | # folder # 3 | ############### 4 | /**/DROP/ 5 | /**/TEMP/ 6 | /**/packages/ 7 | /**/bin/ 8 | /**/obj/ 9 | _site 10 | _DocfxTemplate 11 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IRenewAdminStateV1.cs: -------------------------------------------------------------------------------- 1 | namespace Lib9c.Abstractions 2 | { 3 | public interface IRenewAdminStateV1 4 | { 5 | long NewValidUntil { get; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Lib9c/Model/Collection/MaterialType.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.Model.Collection 2 | { 3 | public enum MaterialType 4 | { 5 | Fungible, 6 | NonFungible 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Lib9c/Model/EnumType/StatReferenceType.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.Model.EnumType 2 | { 3 | public enum StatReferenceType 4 | { 5 | Caster, 6 | Target, 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /.Lib9c.Tools/authorized-miner-state-config-example.json: -------------------------------------------------------------------------------- 1 | { 2 | "validUntil": 1500000, 3 | "interval": 50, 4 | "miners": [ 5 | "ba59F3b054EA42230b624e6c3D890e09287522A7" 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /Lib9c/Action/ClaimStakeReward2.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.Action 2 | { 3 | public static class ClaimStakeReward2 4 | { 5 | public const long ObsoletedIndex = 5_549_200L; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Lib9c/Model/State/IState.cs: -------------------------------------------------------------------------------- 1 | using Bencodex.Types; 2 | 3 | namespace Nekoyume.Model.State 4 | { 5 | public interface IState 6 | { 7 | IValue Serialize(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/InfiniteTowerScheduleSheet.csv: -------------------------------------------------------------------------------- 1 | Id,InfiniteTowerId,StartBlockIndex,EndBlockIndex,DailyFreeTickets,MaxTickets,ResetIntervalBlocks,FloorBegin,FloorEnd 2 | 1,1,0,1000000,3,10,10800,1,100 3 | -------------------------------------------------------------------------------- /integrations/javascript/@planetarium/lib9c/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "vitest/config"; 2 | 3 | export default defineConfig({ 4 | test: { 5 | cache: false, 6 | }, 7 | }); 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/GoldQuestSheet.csv: -------------------------------------------------------------------------------- 1 | id,goal,quest_reward_id,type 2 | 1000000,100,12,Buy 3 | 1000001,1000,21,Buy 4 | 1000003,10000,15,Buy 5 | 1000004,100,19,Sell 6 | 1000005,1000,21,Sell 7 | 1000006,10000,15,Sell -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakeActionPointCoefficientSheet.csv: -------------------------------------------------------------------------------- 1 | level,required_gold,coefficient 2 | 1,50,100 3 | 2,500,100 4 | 3,5000,80 5 | 4,50000,80 6 | 5,500000,60 7 | 6,1000000,60 8 | 7,5000000,60 9 | 8,10000000,60 -------------------------------------------------------------------------------- /Lib9c.Abstractions/IStakeV1.cs: -------------------------------------------------------------------------------- 1 | using System.Numerics; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface IStakeV1 6 | { 7 | BigInteger Amount { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Lib9c/Model/EnumType/ArenaType.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.Model.EnumType 2 | { 3 | public enum ArenaType 4 | { 5 | OffSeason, 6 | Season, 7 | Championship, 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Lib9c/TableData/IStakeRewardRow.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.TableData 2 | { 3 | public interface IStakeRewardRow 4 | { 5 | long RequiredGold { get; } 6 | int Level { get; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Lib9c/Delegation/UnbondingType.cs: -------------------------------------------------------------------------------- 1 | #nullable enable 2 | namespace Nekoyume.Delegation 3 | { 4 | public enum UnbondingType 5 | { 6 | UnbondLockIn, 7 | RebondGrace, 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/PetSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 68f52175ea201734f9c9961b9310789c 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /integrations/javascript/@planetarium/9c-headless-provider/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "vitest/config"; 2 | 3 | export default defineConfig({ 4 | test: { 5 | cache: false, 6 | }, 7 | }); 8 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IAddRedeemCodeV1.cs: -------------------------------------------------------------------------------- 1 | #nullable enable 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface IAddRedeemCodeV1 6 | { 7 | string RedeemCsv { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IMonsterCollectV1.cs: -------------------------------------------------------------------------------- 1 | namespace Lib9c.Abstractions 2 | { 3 | public interface IMonsterCollectV1 4 | { 5 | int Level { get; } 6 | int CollectionRound { get; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Lib9c/Model/Character/SizeType.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.Model.Character 2 | { 3 | public enum SizeType 4 | { 5 | XS, 6 | S, 7 | M, 8 | L, 9 | XL 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Lib9c/Model/EnumType/CraftType.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.Model.EnumType 2 | { 3 | public enum CraftType 4 | { 5 | Normal = 0, 6 | Premium = 1, 7 | Mimisbrunnr = 2 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Lib9c/Model/Item/ITradableFungibleItem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Nekoyume.Model.Item 4 | { 5 | public interface ITradableFungibleItem : ITradableItem, IFungibleItem, ICloneable 6 | { 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Lib9c/Model/Market/ProductType.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.Model.Market 2 | { 3 | public enum ProductType 4 | { 5 | Fungible, 6 | FungibleAssetValue, 7 | NonFungible, 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/ArenaSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d976e6f264d5cc14b924245f5f0c7408 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/BuffLinkSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a1abf52f76a93b24693af8d35cc686a9 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/BuffSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 582fa4ea50bc77345b7beab3f8fc3263 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/PetCostSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d7c5529019c0c4141b3a1f38119d3d7b 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/RuneCostSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7537d4c366a919b419a9dd88c74d4664 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/RuneListSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b7f969492957e1e4daf3e59795e1b90f 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/RuneSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6aef9a3db0b6f4640a7fc139cfad27f1 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/SkillSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e7a9b2baff829974b9a01a15357b0742 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StageSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b21c944cdb1602f4e85bcc84227291a9 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakePolicySheet.csv: -------------------------------------------------------------------------------- 1 | attr_name,value 2 | StakeRegularFixedRewardSheet,StakeRegularFixedRewardSheet_V3 3 | StakeRegularRewardSheet,StakeRegularRewardSheet_V10 4 | RewardInterval,75600 5 | LockupInterval,75600 -------------------------------------------------------------------------------- /Lib9c/TableCSV/StatBuffSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 079770e835832c747958077e8badef9e 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/SummonSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9649cafeff91b8a4d86a63c6ed34d971 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/SwapRateSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 979139e8f08163d4d814797b8108a9e2 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/WorldSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 973104b380321784ba4bc1aaa9b7693c 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /integrations/javascript/@planetarium/lib9c/tsup.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'tsup'; 2 | 3 | export default defineConfig({ 4 | entry: ['src/index.ts'], 5 | format: ['cjs', 'esm'], 6 | dts: true, 7 | }); 8 | -------------------------------------------------------------------------------- /.config/dotnet-tools.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "isRoot": true, 4 | "tools": { 5 | "docfx": { 6 | "version": "2.77.0", 7 | "commands": [ 8 | "docfx" 9 | ] 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /Lib9c.Abstractions/ICancelMonsterCollectV1.cs: -------------------------------------------------------------------------------- 1 | namespace Lib9c.Abstractions 2 | { 3 | public interface ICancelMonsterCollectV1 4 | { 5 | int CollectRound { get; } 6 | int Level { get; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IDailyRewardV1.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface IDailyRewardV1 6 | { 7 | Address AvatarAddress { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Lib9c/Action/ClaimStakeReward8.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.Action 2 | { 3 | public class ClaimStakeReward8 4 | { 5 | public const long ObsoleteBlockIndex = ActionObsoleteConfig.V200080ObsoleteIndex; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/ActionBuffSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 896cab44f60e5f14ba3cc9bb7f93d2eb 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/AdventureBossSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3b7dde9f2a626c84bb1ec7430b5e370f 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/BuffLimitSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9fc1acd3cc4b356409506a3c3f0ad3de 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/CharacterSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8e97d1ce105d7cd428a4da01a9bc0e37 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/CollectQuestSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2437fa14bc67a53429adbe4348b9b1be 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/CollectionSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e458af4b236c44b48b0d7a0f20f0acfb 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/CostumeItemSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8b717c872f6692941824026dd229faee 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/CostumeStatSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d48dd3d1808dd7049bdae87f328c488e 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/CostumeSummonSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a0c79adeb7373ff409d9c242058bc49a 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/CustomEquipmentCraftRecipeSheet.csv: -------------------------------------------------------------------------------- 1 | id,item_sub_type,scroll_amount,circle_amount,required_block 2 | 1,Weapon,10,10,5400 3 | 2,Armor,10,10,5400 4 | 3,Belt,10,10,5400 5 | 4,Necklace,10,10,5400 6 | 5,Ring,10,10,5400 -------------------------------------------------------------------------------- /Lib9c/TableCSV/EnemySkillSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8b75d533bb48dc944824f76091ed4a6c 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/EquipmentItemSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 557bc8df65f98cd49a0a76ff97e44756 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/GameConfigSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0484a4790bb977242867f3a5698e3be6 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/GeneralQuestSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f7306fd6d90cb454ea11acfa8473cba7 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/GoldQuestSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c000d1177a4459742974f49d0c8a3d5e 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/MaterialItemSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0c448daa08c2e9e4fa220cbcbf36e4e2 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/MimisbrunnrSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0166ef501be705c42959971e49ef746f 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/MonsterQuestSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1253f4ea1499ca549a4f4d8ab786f316 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/PatrolRewardSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 92ae4e6336725f74a8475d848cd18510 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/PetOptionSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6b78e16492abe3347b25e88fa81fa154 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/QuestRewardSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e99ef7e97addc784ba01deccd1472b8d 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/RedeemRewardSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6d2187c1d67666145a347c53577d3bf9 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/RuneOptionSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 97388aefbad46d9449236d3d393051b6 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/RuneSummonSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2220121acc8b1b042a295cd80498d4c5 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/RuneWeightSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7d2deb08cdf0a2b4dac681e6259a897a 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/SkillBuffSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0ec6b419c4657c64a93356246a44cb4b 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StageDialogSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1d4b4b78205e2c441aab7f90ceed1789 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StageWaveSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9e1e8ffcd83cc2e40ac4636bd6d2026e 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakePolicySheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3c37fc454282945a29b1043c125b372f 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/SynthesizeSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a3472acbc77af934cb1101ebbda88920 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/TradeQuestSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 280616bef68ed80419941120efddb8c2 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/WorldBossListSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b233f5b1c11a3384ea18367ac4615aa0 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/WorldQuestSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5f5ef6b31fe92ea418fdf8ea379164c0 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/WorldUnlockSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bded529e14fde864d90bfa031348653d 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/ISecureMiningReward.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface ISecureMiningReward 6 | { 7 | Address Recipient { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Lib9c/Model/Skill/SkillType.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.Model.Skill 2 | { 3 | public enum SkillType 4 | { 5 | Attack = 0, 6 | Heal = 1, 7 | Buff = 2, 8 | Debuff = 3, 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/AdventureBossFloorSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 323cd1a609d3d4040b961249a1d8d857 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/CharacterLevelSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 042c171840e3e4f469152c3d352b7304 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/CombinationQuestSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 03bd52331f6b101458465dd59c444f27 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/ConsumableItemSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 26559b34dbf6e7e4a8fea110bc10fc70 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/CreateAvatarFavSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b5ba7b860081cd142918a383e35eb462 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/CreateAvatarItemSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 457d4121459c2574cb7463ca5aba357e 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/CrystalFluctuationSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 776afafa857ea734c980f8f089adb60d 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/EnhancementCostSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4bb950ca7db69474bab82b5896fbf85a 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/EnhancementCostSheetV2.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 17307ff60e2ce6f45a184b3f232402e7 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/EnhancementCostSheetV3.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 86d2bd2ee3e5821478259fdbdfd7960b 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/EquipmentSummonSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5f1e552f528b9ed49ab84ad479232a53 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/InfiniteTowerFloorSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 514de5365a1ea407d99caf0a1ebb27e9 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/ItemConfigForGradeSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 23624012ca1179940aab463c47ba6cbc 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/ItemGradeQuestSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 12b34d6d3e6a3794781bc5e49fc35d7c 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/ItemRequirementSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d174e272fb0273744a5f41e5390c57b3 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/MonsterCollectionSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 928c1192ac7b0d64cb2e206d8808791c 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/QuestItemRewardSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fba23ba1be98f7649940e9e34b9052ec 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/RedeemCodeListSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 580b62777ec8eeb48b576e52399d6081 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/RuneLevelBonusSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2ca8fe034755c65468bfe34e31410fea 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/SkillActionBuffSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0f51e94087f2bb24f8d352fdc495c280 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakeRegularFixedRewardSheet.csv: -------------------------------------------------------------------------------- 1 | level,required_gold,item_id,count 2 | 1,50,500000,1 3 | 2,500,500000,2 4 | 3,5000,500000,2 5 | 4,50000,500000,2 6 | 5,500000,500000,2 7 | 6,5000000,500000,2 8 | 7,10000000,500000,2 9 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakeRegularFixedRewardSheet_V2.csv: -------------------------------------------------------------------------------- 1 | level,required_gold,item_id,count 2 | 1,50,500000,1 3 | 2,500,500000,2 4 | 3,5000,500000,2 5 | 4,50000,500000,2 6 | 5,500000,500000,2 7 | 6,5000000,500000,2 8 | 7,10000000,500000,2 -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakeRegularRewardSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 24598104e1b9e714baf11590b6894fe6 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/SweepRequiredCPSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a62db52dad82d1947b4b721e35bb5072 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/SynthesizeWeightSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0dc2fc75a89523244b155d1e5130ce7c 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/WeeklyArenaRewardSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 106909cf311cc544f86c8b9bea0e2032 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/WorldBossCharacterSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 067c3b3e0182a7e45a494db8c0cbfc3e 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/WorldBossGlobalHpSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ec8a893cb4dcfc4bba388fa87ff3ae6 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IClaimRaidRewardV1.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface IClaimRaidRewardV1 6 | { 7 | Address AvatarAddress { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IClaimStakeRewardV1.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface IClaimStakeRewardV1 6 | { 7 | Address AvatarAddress { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Lib9c/Action/Arena/ArenaProvider.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.Action.Arena 2 | { 3 | /// 4 | /// Temp 5 | /// 6 | public enum ArenaProvider 7 | { 8 | PLANETARIUM, 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Lib9c/Model/Item/ILock.cs: -------------------------------------------------------------------------------- 1 | using Bencodex.Types; 2 | 3 | namespace Nekoyume.Model.Item 4 | { 5 | public interface ILock 6 | { 7 | LockType Type { get; } 8 | 9 | IValue Serialize(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/AdventureBossFloorPointSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3c8fc835464029f45a13e770f50ef8af 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/AdventureBossFloorWaveSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e35a0d3674dd460479b3cf2544c601cf 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/ConsumableItemRecipeSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 663316ecd1c4fa5488c655fedeb00c96 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/CrystalMaterialCostSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ccb4a562c51d9bf4fb3270e3be404409 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/EquipmentItemOptionSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 48de20a2e7648e647b4fd23b59a62939 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/EquipmentItemRecipeSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 07e904fe2c7d43545ad6c209d6036e7c 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/EquipmentItemSetEffectSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6ef1a3380cd77574eb8f6baca96bd70c 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/EquipmentItemSubRecipeSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 927a25fc9dfb94c43bd38c33c74bd8a1 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/EventMaterialItemRecipeSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 549d4f0a707fe6d40b077067a4c57cbe 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/GrandFinaleParticipantsSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1220af6c76c71d74c899ca1ee158feec 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/GrandFinaleScheduleSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dd16ef96bbabcca4195ad0ab84df7e68 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/InfiniteTowerConditionSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dc2458862bd7a47ebbc6414d5ac2fc97 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/InfiniteTowerFloorWaveSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 854027687acd94353a85ea8a84969623 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/InfiniteTowerScheduleSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a1bdc36189e374af9a42657c86eeea53 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/ItemEnhancementQuestSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: acc7c63d90079c4428dab9f8c5b22a8d 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/ItemTypeCollectQuestSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 669f344b9619e2c449847bca9425bd78 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/LoadIntoMyGaragesCostSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 419156b97eb224023967dc1eda68e11d 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/MonsterCollectionRewardSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fa00325fe31c4a144a064276e79dcb57 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakeAchievementRewardSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c7cb2191632666b4c8552838694a5503 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakeRegularFixedRewardSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dc254e038a843344ba450d4e5d3b503b 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakeRegularRewardSheet_V1.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8a090fd12b3254f71bbd23c7de9a9f06 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakeRegularRewardSheet_V10.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 609cf2423fc0e4af9a7dc27acbf85583 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakeRegularRewardSheet_V2.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 440c9dbb9ee5e4ada8bf6333d68c450f 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakeRegularRewardSheet_V3.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5d22627f4077c42948bf7cd952231b53 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakeRegularRewardSheet_V4.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ac7b5817a284948d095a8b8e312a247a 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakeRegularRewardSheet_V5.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3200739cb51ec41fa81a2127d1b87568 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakeRegularRewardSheet_V6.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0b966984ecb29471d80098ee72059431 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakeRegularRewardSheet_V7.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d48fcf7b630e82e429da8a22ec6f7480 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakeRegularRewardSheet_V8.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b4c8d3ca3aea5804e87dfec810e671b3 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakeRegularRewardSheet_V9.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 503661fbe6bc85049a9816a1c21c29a8 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/TradeQuestSheet.csv: -------------------------------------------------------------------------------- 1 | id,goal,quest_reward_id,type 2 | 400001,1,14,Sell 3 | 400002,10,14,Sell 4 | 400003,50,15,Sell 5 | 400004,100,16,Sell 6 | 400005,1,13,Buy 7 | 400006,10,13,Buy 8 | 400007,50,15,Buy 9 | 400008,100,16,Buy -------------------------------------------------------------------------------- /Lib9c/TableCSV/WorldBossActionPatternSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c1dbed7522a5bdf44b68d7a7bbca8d0f 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/WorldBossBattleRewardSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c50307af48f19e941be6ee1cfabf7db2 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/WorldBossKillRewardSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9701135a944f78e4fb66c7bb971a12d3 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/WorldBossRankRewardSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c1e61363839c7bf46a92262012ca5d54 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/WorldBossRankingRewardSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5ea7a2d9511d70747921be953145e8c7 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /integrations/javascript/@planetarium/9c-headless-provider/tsup.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'tsup'; 2 | 3 | export default defineConfig({ 4 | entry: ['src/index.ts'], 5 | format: ['cjs', 'esm'], 6 | dts: true, 7 | }); 8 | -------------------------------------------------------------------------------- /.Lib9c.Plugin.Shared/IPluginActionEvaluator.cs: -------------------------------------------------------------------------------- 1 | namespace Lib9c.Plugin.Shared 2 | { 3 | public interface IPluginActionEvaluator 4 | { 5 | byte[][] Evaluate(byte[] blockBytes, byte[]? baseStateRootHashBytes); 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IChargeActionPointV1.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface IChargeActionPointV1 6 | { 7 | Address AvatarAddress { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/AdventureBossNcgRewardRatioSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fbda4995c76ee6549b70e27d319129f6 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/AdventureBossUnlockFloorCostSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: df5e39656e82c8942bd8e233c3f0383f 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/AdventureBossWantedRewardSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9d948a32961fe4945b09e994af08c6fd 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/CombinationEquipmentQuestSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 911513cbe54f5714ba7a8b0567ad2131 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/CrystalEquipmentGrindingSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e9dff4304b213d14da1ca638be0d77d7 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/CustomEquipmentCraftIconSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 12de7b52a0acd5d48bdeea8ce1ad2bda 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/CustomEquipmentCraftOptionSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: af8ada4923c970748935dd62ec37398c 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/CustomEquipmentCraftRecipeSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 909af8af60c5f0f42ac2e8de0e3d2fbc 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/CustomEquipmentCraftRecipeSkillSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0b63e62b043a469c8c79803e2f18b6f0 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/EquipmentItemSubRecipeSheetV2.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1ea848d94e25e094683627460c75ac6c 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakeRegularFixedRewardSheet_V1.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 894e39fedde484dbd83c8329532e3c5c 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakeRegularFixedRewardSheet_V2.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5afe58c7ef3cc4bbd9481c4426d1dc50 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakeRegularFixedRewardSheet_V3.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 708f7a00c376d48baa0b3121ff4f4321 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/UnlockCombinationSlotCostSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0e761695313cf9449aa2ec0fb44c61ef 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/WorldBossContributionRewardSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bb0e2fd7f8578fa45aacede37d16a5fa 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/Extensions/IntegerExtensions.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.Extensions 2 | { 3 | public static class IntegerExtensions 4 | { 5 | public static decimal NormalizeFromTenThousandths(this int value) => value * 0.0001m; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Lib9c/Model/EnumType/RuneSlotType.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.Model.EnumType 2 | { 3 | public enum RuneSlotType 4 | { 5 | Default = 1, 6 | Ncg = 2, 7 | Stake = 3, 8 | Crystal = 4, 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Lib9c/Model/Item/IEquippableItem.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.Model.Item 2 | { 3 | public interface IEquippableItem: IItem 4 | { 5 | bool Equipped { get; } 6 | void Equip(); 7 | void Unequip(); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/AdventureBossContributionRewardSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d6aaee8128796794d807009e5be23146 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/AdventureBossFloorFirstRewardSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e4d44b3fb8544aa44be2826c0da7f255 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/CustomEquipmentCraftRelationshipSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 563f17d3a80ee4d41beab2642809622b 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IClaimWordBossKillRewardV1.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface IClaimWordBossKillRewardV1 6 | { 7 | Address AvatarAddress { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/ICreatePendingActivationV1.cs: -------------------------------------------------------------------------------- 1 | using Bencodex.Types; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface ICreatePendingActivationV1 6 | { 7 | IValue PendingActivation { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IMigrateMonsterCollectionV1.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface IMigrateMonsterCollectionV1 6 | { 7 | Address AvatarAddress { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/CrystalMonsterCollectionMultiplierSheet.csv.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bcad073a3c5e22d4da3bf5835c17be00 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakeRegularFixedRewardSheet_V3.csv: -------------------------------------------------------------------------------- 1 | level,required_gold,item_id,count 2 | 1,50,500000,1 3 | 2,500,500000,2 4 | 3,5000,500000,2 5 | 4,50000,500000,2 6 | 5,500000,500000,2 7 | 6,1000000,500000,2 8 | 7,5000000,500000,2 9 | 8,10000000,500000,2 -------------------------------------------------------------------------------- /Lib9c/Model/Skill/SkillCustomField.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace Nekoyume.Model.Skill 3 | { 4 | public struct SkillCustomField 5 | { 6 | public int BuffDuration { get; set; } 7 | public long BuffValue { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /docs/articles/system/avatar/toc.yml: -------------------------------------------------------------------------------- 1 | items: 2 | - name: Avatar 3 | href: avatar.md 4 | - name: Inventory 5 | href: inventory.md 6 | - name: QuestList 7 | href: quest-list.md 8 | - name: WorldInformation 9 | href: world-information.md 10 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IClaimMonsterCollectionRewardV2.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface IClaimMonsterCollectionRewardV2 6 | { 7 | Address AvatarAddress { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IRedeemCodeV1.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface IRedeemCodeV1 6 | { 7 | string Code { get; } 8 | Address AvatarAddress { get; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IAddActivatedAccountV1.cs: -------------------------------------------------------------------------------- 1 | #nullable enable 2 | 3 | using Libplanet.Crypto; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IAddActivatedAccountV1 8 | { 9 | Address Address { get; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Lib9c/Model/Item/IItem.cs: -------------------------------------------------------------------------------- 1 | using Nekoyume.Model.State; 2 | 3 | namespace Nekoyume.Model.Item 4 | { 5 | public interface IItem: IState 6 | { 7 | ItemType ItemType { get; } 8 | 9 | ItemSubType ItemSubType { get; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/GrandFinaleParticipantsSheet.csv: -------------------------------------------------------------------------------- 1 | id,avatar_address 2 | 1,0xCF0C9e8885C6dF0fD468917302B646Ce098A6C84 3 | 1,0xd09536b122CCd262B6DFCD0b8D4AECf73a3669Cd 4 | 1,0x216696296B69a5402Aa7F3a3f05A6C31E44C90B9 5 | 1,0x9DD5334c26Fb04B6aDe7CD1047a3A39460B005e1 6 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IActivateAccount.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface IActivateAccount 6 | { 7 | Address PendingAddress { get; } 8 | byte[] Signature { get; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IUnlockRuneSlotV1.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface IUnlockRuneSlotV1 6 | { 7 | Address AvatarAddress { get; } 8 | int SlotIndex { get; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Lib9c.DevExtensions/Model/TestbedWeeklyArena.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Lib9c.DevExtensions.Model 4 | { 5 | [Serializable] 6 | public class TestbedWeeklyArena : BaseTestbedModel 7 | { 8 | public Avatar[] Avatars; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Lib9c/Model/Item/ITradableItem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Nekoyume.Model.Item 4 | { 5 | public interface ITradableItem: IItem 6 | { 7 | Guid TradableId { get; } 8 | 9 | long RequiredBlockIndex { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Lib9c/TableData/IStakeRewardSheet.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Nekoyume.TableData 4 | { 5 | public interface IStakeRewardSheet : ISheet 6 | { 7 | IReadOnlyList OrderedRows { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Lib9c/Model/Item/INonFungibleItem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Nekoyume.Model.Item 4 | { 5 | public interface INonFungibleItem: IItem 6 | { 7 | Guid NonFungibleId { get; } 8 | long RequiredBlockIndex { get; set; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Lib9c/Planet.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume 2 | { 3 | public enum Planet : byte 4 | { 5 | Odin, 6 | Heimdall, 7 | Idun, 8 | Thor, 9 | OdinInternal, 10 | HeimdallInternal, 11 | ThorInternal, 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/AdventureBossContributionRewardSheet.csv: -------------------------------------------------------------------------------- 1 | id,adventure_boss_id,reward_1_type,reward_1_id,reward_1_ratio,reward_2_type,reward_2_id,reward_2_ratio 2 | 1,1,Material,600201,100,,, 3 | 2,2,Material,600202,100,,, 4 | 3,3,Rune,10036,100,,, 5 | 4,4,Material,600203,100,,, -------------------------------------------------------------------------------- /Lib9c/Model/Item/IFungibleItem.cs: -------------------------------------------------------------------------------- 1 | using System.Security.Cryptography; 2 | using Libplanet.Common; 3 | 4 | namespace Nekoyume.Model.Item 5 | { 6 | public interface IFungibleItem: IItem 7 | { 8 | HashDigest FungibleId { get; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Lib9c/TableData/IWorldBossRewardSheet.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Nekoyume.TableData 4 | { 5 | public interface IWorldBossRewardSheet : ISheet 6 | { 7 | IReadOnlyList OrderedRows { get; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/WorldUnlockSheet.csv: -------------------------------------------------------------------------------- 1 | id,world_id,stage_id,world_id_to_unlock,required_crystal 2 | 1,1,50,2,500 3 | 2,2,100,3,2500 4 | 3,3,150,4,50000 5 | 4,2,100,10001,0 6 | 5,4,200,5,100000 7 | 6,5,250,6,1000000 8 | 7,6,300,7,1000000 9 | 8,7,350,8,10000000 10 | 9,8,430,9,10000000 -------------------------------------------------------------------------------- /Lib9c.Abstractions/IHackAndSlashRandomBuffV1.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface IHackAndSlashRandomBuffV1 6 | { 7 | Address AvatarAddress { get; } 8 | bool AdvancedGacha { get; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IMigrationAvatarStateV1.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Bencodex.Types; 3 | 4 | namespace Lib9c.Abstractions 5 | { 6 | public interface IMigrationAvatarStateV1 7 | { 8 | IEnumerable AvatarStates { get; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/ItemEnhancementQuestSheet.csv: -------------------------------------------------------------------------------- 1 | id,goal,quest_reward_id,grade,count 2 | 600001,3,11,1,1 3 | 600002,3,17,1,6 4 | 600003,6,17,2,1 5 | 600004,6,21,2,6 6 | 600005,9,21,3,1 7 | 600006,9,15,3,6 8 | 600007,9,16,4,1 9 | 600008,9,16,4,6 10 | 600009,9,16,5,1 11 | 600010,9,16,5,6 -------------------------------------------------------------------------------- /Lib9c/Model/Garages/IGarage.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.Model.Garages 2 | { 3 | public interface IGarage where T1 : IGarage 4 | { 5 | void Load(T2 amount); 6 | void Deliver(T1 to, T2 amount); 7 | void Unload(T2 amount); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IAuraSummonV1.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface IAuraSummonV1 6 | { 7 | Address AvatarAddress { get; } 8 | int GroupId { get; } 9 | 10 | int SummonCount { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IClaimMonsterCollectionRewardV1.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface IClaimMonsterCollectionRewardV1 6 | { 7 | Address AvatarAddress { get; } 8 | int CollectionRound { get; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IRapidCombinationV1.cs: -------------------------------------------------------------------------------- 1 | #nullable enable 2 | 3 | using Libplanet.Crypto; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IRapidCombinationV1 8 | { 9 | Address AvatarAddress { get; } 10 | int SlotIndex { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IRuneEnhancementV1.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface IRuneEnhancementV1 6 | { 7 | Address AvatarAddress { get; } 8 | int RuneId { get; } 9 | int TryCount { get; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IRuneSummonV1.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface IRuneSummonV1 6 | { 7 | Address AvatarAddress { get; } 8 | int GroupId { get; } 9 | 10 | int SummonCount { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/ISellCancellationV1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Libplanet.Crypto; 3 | 4 | namespace Lib9c.Abstractions 5 | { 6 | public interface ISellCancellationV1 7 | { 8 | Guid ProductId { get; } 9 | Address SellerAvatarAddress { get; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Lib9c/Model/Quest/QuestEventType.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.Model.Quest 2 | { 3 | public enum QuestEventType 4 | { 5 | Create, 6 | Enhancement, 7 | Level, 8 | Die, 9 | Complete, 10 | Equipment, 11 | Consumable, 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakeRegularRewardSheet_V1.csv: -------------------------------------------------------------------------------- 1 | level,required_gold,item_id,rate 2 | 1,50,400000,10 3 | 1,50,500000,800 4 | 2,500,400000,8 5 | 2,500,500000,800 6 | 3,5000,400000,5 7 | 3,5000,500000,800 8 | 4,50000,400000,5 9 | 4,50000,500000,800 10 | 5,500000,400000,5 11 | 5,500000,500000,800 -------------------------------------------------------------------------------- /docs/contributing/documentation/structure.md: -------------------------------------------------------------------------------- 1 | # Structure 2 | 3 | Lib9c document has following structures: 4 | 5 | ``` 6 | api/ <-- Auto-generated .NET APIs 7 | articles/ <-- Documents about Lib9c behavior 8 | contributing/ <-- Documents for Lib9c contributors 9 | ``` 10 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/ICreatePendingActivationsV1.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Bencodex.Types; 3 | 4 | namespace Lib9c.Abstractions 5 | { 6 | public interface ICreatePendingActivationsV1 7 | { 8 | IEnumerable PendingActivations { get; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Lib9c.Policy/AccessControlService/IAccessControlService.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | using Libplanet.Crypto; 3 | 4 | namespace Nekoyume.Blockchain 5 | { 6 | public interface IAccessControlService 7 | { 8 | public Task GetTxQuotaAsync(Address address); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Lib9c/MeadConfig.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Nekoyume 4 | { 5 | public static class MeadConfig 6 | { 7 | // mead patron address 8 | public static readonly Address PatronAddress = new Address("0xc64c7cBf29BF062acC26024D5b9D1648E8f8D2e1"); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Lib9c/Model/Garages/IFungibleItemGarage.cs: -------------------------------------------------------------------------------- 1 | using Nekoyume.Model.Item; 2 | 3 | namespace Nekoyume.Model.Garages 4 | { 5 | public interface IFungibleItemGarage : IGarage 6 | { 7 | IFungibleItem Item { get; } 8 | int Count { get; } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Lib9c/Model/Skill/ActionBuffType.cs: -------------------------------------------------------------------------------- 1 | 2 | namespace Nekoyume.Model.Skill 3 | { 4 | public enum ActionBuffType 5 | { 6 | Bleed, 7 | Stun, 8 | Vampiric, 9 | Focus, 10 | Dispel, // Erase/defence debuffs on me 11 | IceShield, 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/ItemConfigForGradeSheet.csv: -------------------------------------------------------------------------------- 1 | id,monster_parts_count_for_combination,monster_parts_count_for_combination_with_ncg,random_buff_skill_min_count_for_combination,random_buff_skill_max_count_for_combination,enhancement_limit 2 | 1,1,0,0,0,1 3 | 2,1,1,0,0,2 4 | 3,2,1,0,0,3 5 | 4,2,1,0,0,3 6 | 5,3,1,0,0,4 -------------------------------------------------------------------------------- /Lib9c/TableCSV/WorldSheet.csv: -------------------------------------------------------------------------------- 1 | id,name,stage_begin,stage_end 2 | 1,Yggdrasil,1,50 3 | 2,Alfheim,51,100 4 | 3,Svartalfheim,101,150 5 | 4,Asgard,151,200 6 | 10001,Mimisbrunnr,10000001,10000020 7 | 5,Muspelheim,201,250 8 | 6,Jotunheim,251,300 9 | 7,Niflheim,301,350 10 | 8,Hel,351,400 11 | 9,Vanaheim,401,450 -------------------------------------------------------------------------------- /Lib9c.Abstractions/ICombinationConsumableV1.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface ICombinationConsumableV1 6 | { 7 | Address AvatarAddress { get; } 8 | int RecipeId { get; } 9 | int SlotIndex { get; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IUnlockWorldV1.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Libplanet.Crypto; 3 | 4 | namespace Lib9c.Abstractions 5 | { 6 | public interface IUnlockWorldV1 7 | { 8 | IEnumerable WorldIds { get; } 9 | Address AvatarAddress { get; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Lib9c/TableData/IWorldBossRewardRow.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.TableData 2 | { 3 | public interface IWorldBossRewardRow 4 | { 5 | int BossId { get; } 6 | int Rank { get; } 7 | int Rune { get; } 8 | int Crystal { get; } 9 | int Circle { get; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Lib9c/Model/Skill/UnexpectedOperationException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Nekoyume.Model.Skill 4 | { 5 | public class UnexpectedOperationException : Exception 6 | { 7 | public UnexpectedOperationException(string message) : base(message) 8 | { 9 | } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/AdventureBossNcgRewardRatioSheet.csv: -------------------------------------------------------------------------------- 1 | item_id,_item_name,ratio 2 | 600201,Golden Dust,0.25 3 | 600202,Ruby Dust,1 4 | 600203,Emerald Dust,2 5 | 600301,Normal Hammer,0.001 6 | 600302,Rare Hammer,0.01 7 | 600303,Epic Hammer,0.1 8 | 600304,Unique Hammer,1 9 | 600305,Legendary Hammer,2 10 | 600306,Sacred Hammer,5 -------------------------------------------------------------------------------- /Lib9c.Abstractions/IBuyV2.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Bencodex.Types; 3 | using Libplanet.Crypto; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IBuyV2 8 | { 9 | Address BuyerAvatarAddress { get; } 10 | IEnumerable PurchaseInfos { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IUnlockEquipmentRecipeV1.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Libplanet.Crypto; 3 | 4 | namespace Lib9c.Abstractions 5 | { 6 | public interface IUnlockEquipmentRecipeV1 7 | { 8 | IEnumerable RecipeIds { get; } 9 | Address AvatarAddress { get; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/MonsterCollectionRewardSheet.csv: -------------------------------------------------------------------------------- 1 | collection_level,item_id,quantity 2 | 1,400000,80 3 | 1,500000,1 4 | 2,400000,265 5 | 2,500000,2 6 | 3,400000,1265 7 | 3,500000,5 8 | 4,400000,8465 9 | 4,500000,31 10 | 5,400000,45965 11 | 5,500000,161 12 | 6,400000,120965 13 | 6,500000,361 14 | 7,400000,350965 15 | 7,500000,1121 -------------------------------------------------------------------------------- /Lib9c.Abstractions/ICreateAvatarV2.cs: -------------------------------------------------------------------------------- 1 | namespace Lib9c.Abstractions 2 | { 3 | public interface ICreateAvatarV2 4 | { 5 | int Index { get; } 6 | int Hair { get; } 7 | int Lens { get; } 8 | int Ear { get; } 9 | int Tail { get; } 10 | string Name { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/ISellCancellationV2.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Libplanet.Crypto; 3 | 4 | namespace Lib9c.Abstractions 5 | { 6 | public interface ISellCancellationV2 7 | { 8 | Guid ProductId { get; } 9 | Address SellerAvatarAddress { get; } 10 | string ItemSubType { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Lib9c/Action/Guild/GuildConfig.cs: -------------------------------------------------------------------------------- 1 | using Nekoyume.TypedAddress; 2 | 3 | namespace Nekoyume.Action.Guild 4 | { 5 | public static class GuildConfig 6 | { 7 | public static readonly AgentAddress PlanetariumGuildOwner = 8 | new AgentAddress("0x7ac50B13A7AA08DeeF21532a526EBbabBA6d3e6A"); 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/ClaimableGiftsSheet.csv: -------------------------------------------------------------------------------- 1 | id,started_block_index,ended_block_index,item_1_id,item_1_quantity,item_1_tradable,item_2_id,item_2_quantity,item_2_tradable,item_3_id,item_3_quantity,item_3_tradable,item_4_id,item_4_quantity,item_4_tradable,item_5_id,item_5_quantity,item_5_tradable 2 | 1,12576745,12868845,40100042,1,TRUE,,,,,,,,,,,, -------------------------------------------------------------------------------- /Lib9c/TableCSV/SkillActionBuffSheet.csv: -------------------------------------------------------------------------------- 1 | skill_id,buff_id 2 | 500003,500001 3 | 500004,500002 4 | 500005,500003 5 | 600001,600001 6 | 700004,704000 7 | 700005,704001 8 | 700006,705000 9 | 700007,706000 10 | 700009,707000 11 | 700011,707001 12 | 700012,708000 13 | 700013,708001 14 | 700014,708002 15 | 800001,706001 16 | 800012,707002 -------------------------------------------------------------------------------- /Lib9c.Abstractions/IHackAndSlashSweepV1.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface IHackAndSlashSweepV1 6 | { 7 | Address AvatarAddress { get; } 8 | int ApStoneCount { get; } 9 | int WorldId { get; } 10 | int StageId { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Lib9c/Exceptions/InvalidStateTypeException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Lib9c.Exceptions 4 | { 5 | [Serializable] 6 | public class InvalidStateTypeException : Exception 7 | { 8 | public InvalidStateTypeException(string message) 9 | : base(message) 10 | { 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Lib9c/Model/EnumType/RuneUsePlace.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.Model.EnumType 2 | { 3 | public enum RuneUsePlace 4 | { 5 | Adventure = 1, 6 | Arena = 2, 7 | AdventureAndArena = 3, 8 | Raid = 4, 9 | RaidAndAdventure = 5, 10 | RaidAndArena = 6, 11 | All = 7, 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IRapidCombinationV2.cs: -------------------------------------------------------------------------------- 1 | #nullable enable 2 | 3 | using System.Collections.Generic; 4 | using Libplanet.Crypto; 5 | 6 | namespace Lib9c.Abstractions 7 | { 8 | public interface IRapidCombinationV2 9 | { 10 | Address AvatarAddress { get; } 11 | List SlotIndexList { get; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Lib9c/Battle/IStageSimulator.cs: -------------------------------------------------------------------------------- 1 | using Nekoyume.Model; 2 | using Nekoyume.TableData; 3 | 4 | namespace Nekoyume.Battle 5 | { 6 | public interface IStageSimulator : ISimulator 7 | { 8 | int StageId { get; } 9 | EnemySkillSheet EnemySkillSheet { get; } 10 | CollectionMap ItemMap { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /integrations/python/requirements.lock: -------------------------------------------------------------------------------- 1 | # generated by rye 2 | # use `rye lock` or `rye sync` to update this lockfile 3 | # 4 | # last locked with the following flags: 5 | # pre: false 6 | # features: [] 7 | # all-features: false 8 | # with-sources: false 9 | # generate-hashes: false 10 | # universal: false 11 | 12 | -e file:. 13 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IBuyMultipleV1.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Bencodex.Types; 3 | using Libplanet.Crypto; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IBuyMultipleV1 8 | { 9 | Address BuyerAvatarAddress { get; } 10 | IEnumerable PurchaseInfos { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/ICombinationEquipmentV1.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface ICombinationEquipmentV1 6 | { 7 | Address AvatarAddress { get; } 8 | int RecipeId { get; } 9 | int SlotIndex { get; } 10 | int? SubRecipeId { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IUpdateSellV2.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Bencodex.Types; 3 | using Libplanet.Crypto; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IUpdateSellV2 8 | { 9 | Address SellerAvatarAddress { get; } 10 | IEnumerable UpdateSellInfos { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Lib9c.DevExtensions/Action/Interface/IFaucetCurrency.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Lib9c.DevExtensions.Action.Interface 4 | { 5 | public interface IFaucetCurrency 6 | { 7 | Address AgentAddress { get; set; } 8 | int FaucetNcg { get; set; } 9 | int FaucetCrystal { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /docs/articles/toc.yml: -------------------------------------------------------------------------------- 1 | # See https://dotnet.github.io/docfx/docs/table-of-contents.html 2 | - name: Introduction 3 | href: introduction.md 4 | - name: Getting Started 5 | href: getting-started.md 6 | - name: Currencies 7 | href: currencies/toc.yml 8 | expanded: true 9 | - name: System 10 | href: system/toc.yml 11 | expanded: true 12 | -------------------------------------------------------------------------------- /integrations/python/requirements-dev.lock: -------------------------------------------------------------------------------- 1 | # generated by rye 2 | # use `rye lock` or `rye sync` to update this lockfile 3 | # 4 | # last locked with the following flags: 5 | # pre: false 6 | # features: [] 7 | # all-features: false 8 | # with-sources: false 9 | # generate-hashes: false 10 | # universal: false 11 | 12 | -e file:. 13 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IItemEnhancementV2.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Libplanet.Crypto; 3 | 4 | namespace Lib9c.Abstractions 5 | { 6 | public interface IItemEnhancementV2 7 | { 8 | Guid ItemId { get; } 9 | Guid MaterialId { get; } 10 | Address AvatarAddress { get; } 11 | int SlotIndex { get; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IBuyV1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Libplanet.Crypto; 3 | 4 | namespace Lib9c.Abstractions 5 | { 6 | public interface IBuyV1 7 | { 8 | Address BuyerAvatarAddress { get; } 9 | Address SellerAgentAddress { get; } 10 | Address SellerAvatarAddress { get; } 11 | Guid ProductId { get; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Lib9c/Action/IClaimItems.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Libplanet.Crypto; 3 | using Libplanet.Types.Assets; 4 | 5 | namespace Nekoyume.Action 6 | { 7 | public interface IClaimItems 8 | { 9 | public IReadOnlyList<(Address address, IReadOnlyList fungibleAssetValues)> ClaimData { get; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/ISellCancellationV3.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Libplanet.Crypto; 3 | 4 | namespace Lib9c.Abstractions 5 | { 6 | public interface ISellCancellationV3 7 | { 8 | Guid OrderId { get; } 9 | Guid TradableId { get; } 10 | Address SellerAvatarAddress { get; } 11 | string ItemSubType { get; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Lib9c/Model/Collection/ICollectionMaterial.cs: -------------------------------------------------------------------------------- 1 | using Bencodex; 2 | using Bencodex.Types; 3 | 4 | namespace Nekoyume.Model.Collection 5 | { 6 | public interface ICollectionMaterial: IBencodable 7 | { 8 | public MaterialType Type { get; } 9 | public int ItemId { get; set; } 10 | public int ItemCount { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IPrepareRewardAssetsV1.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Libplanet.Crypto; 3 | using Libplanet.Types.Assets; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IPrepareRewardAssetsV1 8 | { 9 | Address RewardPoolAddress { get; } 10 | IEnumerable Assets { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Lib9c/Model/Pet/PetOptionType.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.Model.Pet 2 | { 3 | public enum PetOptionType 4 | { 5 | ReduceRequiredBlock, 6 | ReduceRequiredBlockByFixedValue, 7 | AdditionalOptionRate, 8 | AdditionalOptionRateByFixedValue, 9 | IncreaseBlockPerHourglass, 10 | DiscountMaterialCostCrystal 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /integrations/javascript/@planetarium/9c-headless-provider/graphql/headless/codegen.yml: -------------------------------------------------------------------------------- 1 | overwrite: true 2 | schema: ./graphql/headless/schema.graphql 3 | documents: ./graphql/headless/api.graphql 4 | generates: 5 | src/generated/headless/graphql-request.ts: 6 | plugins: 7 | - typescript 8 | - typescript-operations 9 | - typescript-graphql-request 10 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IEventConsumableItemCraftsV1.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface IEventConsumableItemCraftsV1 6 | { 7 | Address AvatarAddress { get; } 8 | int EventScheduleId { get; } 9 | int EventConsumableItemRecipeId { get; } 10 | int SlotIndex { get; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Lib9c.Proposer/ActionTypeLoaderContext.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Action; 2 | 3 | namespace Nekoyume.Blockchain 4 | { 5 | public class ActionTypeLoaderContext : IActionTypeLoaderContext 6 | { 7 | public ActionTypeLoaderContext(long index) 8 | { 9 | Index = index; 10 | } 11 | 12 | public long Index { get; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IGrindingV1.cs: -------------------------------------------------------------------------------- 1 | #nullable enable 2 | 3 | using System; 4 | using System.Collections.Generic; 5 | using Libplanet.Crypto; 6 | 7 | namespace Lib9c.Abstractions 8 | { 9 | public interface IGrindingV1 10 | { 11 | Address AvatarAddress { get; } 12 | List EquipmentsIds { get; } 13 | bool ChargeAp { get; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Lib9c/Action/ITransferAsset.cs: -------------------------------------------------------------------------------- 1 | #nullable enable 2 | using Libplanet.Crypto; 3 | using Libplanet.Types.Assets; 4 | 5 | namespace Nekoyume.Action 6 | { 7 | public interface ITransferAsset 8 | { 9 | Address Sender { get; } 10 | Address Recipient { get; } 11 | FungibleAssetValue Amount { get; } 12 | string? Memo { get; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/AdventureBossUnlockFloorCostSheet.csv: -------------------------------------------------------------------------------- 1 | floor_id,golden_dust_price,ncg_price 2 | 6,100,10 3 | 11,200,20 4 | 16,300,30 5 | 21,200,20 6 | 26,100,10 7 | 36,100,10 8 | 41,200,20 9 | 46,300,30 10 | 51,200,20 11 | 56,100,10 12 | 66,100,10 13 | 71,200,20 14 | 76,300,30 15 | 81,200,20 16 | 86,100,10 17 | 96,100,10 18 | 101,200,20 19 | 106,300,30 20 | 111,200,20 21 | 116,100,10 -------------------------------------------------------------------------------- /Lib9c/TableCSV/BuffLimitSheet.csv: -------------------------------------------------------------------------------- 1 | group_id,modify_type1,percentage 2 | 206000,Percentage,-20 3 | 709000,Percentage,-50 4 | 206003,Percentage,-20 5 | 206009,Percentage,-20 6 | 702001,Add,30 7 | 108000,Add,200000 8 | 108001,Add,200000 9 | 202004,Percentage,-85 10 | 102000,Add,15000000 11 | 202000,Add,-15000000 12 | 106000,Add,15000000 13 | 105000,Add,15000000 14 | 205000,Add,-15000000 -------------------------------------------------------------------------------- /Lib9c/TableCSV/WorldBossRankRewardSheet.csv: -------------------------------------------------------------------------------- 1 | id,boss_id,rank,rune,crystal,circle 2 | 1,900001,1,75,180000,5 3 | 2,900001,2,150,450000,15 4 | 3,900001,3,300,800000,80 5 | 4,900001,4,450,1250000,400 6 | 5,900001,5,750,1800000,500 7 | 6,900002,1,75,180000,5 8 | 7,900002,2,150,450000,15 9 | 8,900002,3,300,800000,80 10 | 9,900002,4,450,1250000,400 11 | 10,900002,5,750,1800000,500 12 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/ICombinationEquipmentV2.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface ICombinationEquipmentV2 6 | { 7 | Address AvatarAddress { get; } 8 | int RecipeId { get; } 9 | int SlotIndex { get; } 10 | int? SubRecipeId { get; } 11 | bool PayByCrystal { get; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IItemEnhancementV3.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Libplanet.Crypto; 3 | 4 | namespace Lib9c.Abstractions 5 | { 6 | public interface IItemEnhancementV3 7 | { 8 | Guid ItemId { get; } 9 | Guid MaterialId { get; } 10 | Address AvatarAddress { get; } 11 | int SlotIndex { get; } 12 | int? PetId { get; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Lib9c/Model/EnumType/Grade.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.Model.EnumType 2 | { 3 | /// 4 | /// Enumeration of item grades. 5 | /// 6 | public enum Grade 7 | { 8 | Normal = 1, 9 | Rare = 2, 10 | Epic = 3, 11 | Unique = 4, 12 | Legendary = 5, 13 | Divinity = 6, 14 | Mythic = 7, 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/CollectQuestSheet.csv: -------------------------------------------------------------------------------- 1 | id,goal,quest_reward_id,item_id 2 | 200001,1,22,201000 3 | 200002,1,21,201001 4 | 200003,1,3,201002 5 | 200004,1,12,201003 6 | 200005,1,20,201004 7 | 200006,1,3,201005 8 | 200007,1,12,201006 9 | 200008,1,19,201007 10 | 200009,1,6,201008 11 | 200010,1,26,201009 12 | 200011,1,7,201010 13 | 200012,1,6,201011 14 | 200013,1,27,201012 15 | 200014,1,7,201013 -------------------------------------------------------------------------------- /.Lib9c.Plugin.Shared/Lib9c.Plugin.Shared.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net6.0 5 | enable 6 | enable 7 | .bin 8 | .obj 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Lib9c.DevExtensions/Action/Interface/IFaucetRune.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Libplanet.Crypto; 3 | using Nekoyume.Model.Faucet; 4 | 5 | namespace Lib9c.DevExtensions.Action.Interface 6 | { 7 | public interface IFaucetRune 8 | { 9 | Address AvatarAddress { get; set; } 10 | List FaucetRuneInfos { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/WorldBossBattleRewardSheet.csv: -------------------------------------------------------------------------------- 1 | id,boss_id,rank,rune_min,rune_max,crystal,circle 2 | 1,900001,0,2,3,0,0 3 | 2,900001,1,4,6,0,0 4 | 3,900001,2,8,12,0,0 5 | 4,900001,3,12,16,0,0 6 | 5,900001,4,15,20,0,0 7 | 6,900001,5,18,25,0,0 8 | 7,900002,0,2,3,0,0 9 | 8,900002,1,4,6,0,0 10 | 9,900002,2,8,12,0,0 11 | 10,900002,3,12,16,0,0 12 | 11,900002,4,15,20,0,0 13 | 12,900002,5,18,25,0,0 -------------------------------------------------------------------------------- /Lib9c.Abstractions/IItemEnhancementV4.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Libplanet.Crypto; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IItemEnhancementV4 8 | { 9 | Guid ItemId { get; } 10 | List MaterialIds { get; } 11 | Address AvatarAddress { get; } 12 | int SlotIndex { get; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/ITransferAssetV1.cs: -------------------------------------------------------------------------------- 1 | #nullable enable 2 | using Libplanet.Crypto; 3 | using Libplanet.Types.Assets; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface ITransferAssetV1 8 | { 9 | Address Sender { get; } 10 | Address Recipient { get; } 11 | FungibleAssetValue Amount { get; } 12 | string? Memo { get; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /integrations/javascript/@planetarium/9c-headless-provider/graphql/headless/api.graphql: -------------------------------------------------------------------------------- 1 | mutation StageTransaction($tx: String!) { 2 | stageTransaction(payload: $tx) 3 | } 4 | 5 | query GetNextNonce($address: Address!) { 6 | nextTxNonce(address: $address) 7 | } 8 | 9 | query GetGenesisHash { 10 | nodeStatus { 11 | genesis { 12 | hash 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /.Lib9c.ActionEvaluatorCommonComponents/Random.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Action; 2 | 3 | namespace Lib9c.ActionEvaluatorCommonComponents 4 | { 5 | public class Random : System.Random, IRandom 6 | { 7 | public Random(int seed) 8 | : base(seed) 9 | { 10 | Seed = seed; 11 | } 12 | 13 | public int Seed { get; private set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Lib9c/Extensions/ActionContextExtensions.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Action; 2 | using Nekoyume.TypedAddress; 3 | 4 | namespace Nekoyume.Extensions 5 | { 6 | public static class ActionContextExtensions 7 | { 8 | public static AgentAddress GetAgentAddress(this IActionContext context) 9 | { 10 | return new AgentAddress(context.Signer); 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Common IntelliJ Platform excludes 2 | **/.idea/ 3 | 4 | # Unity generated metadata files 5 | *.meta 6 | ![Ll]ib9c/[Tt]ableCSV/**/*.meta 7 | 8 | *.suo 9 | *.user 10 | *.asmdef 11 | .vs/ 12 | [Bb]in/ 13 | [Oo]bj/ 14 | .[Bb]in/ 15 | .[Oo]bj/ 16 | [Pp]ackages/ 17 | 18 | Thumbs.db 19 | Desktop.ini 20 | .DS_Store 21 | 22 | # For action 23 | !.github/bin/ 24 | 25 | **/.vscode/ 26 | .cursor/ 27 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/ICreateAvatarV1.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface ICreateAvatarV1 6 | { 7 | Address AvatarAddress { get; } 8 | int Index { get; } 9 | int Hair { get; } 10 | int Lens { get; } 11 | int Ear { get; } 12 | int Tail { get; } 13 | string Name { get; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IItemEnhancementV1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Libplanet.Crypto; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IItemEnhancementV1 8 | { 9 | Guid ItemId { get; } 10 | IEnumerable MaterialIds { get; } 11 | Address AvatarAddress { get; } 12 | int SlotIndex { get; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/ISellV1.cs: -------------------------------------------------------------------------------- 1 | #nullable enable 2 | using System; 3 | using Libplanet.Crypto; 4 | using Libplanet.Types.Assets; 5 | 6 | namespace Lib9c.Abstractions 7 | { 8 | public interface ISellV1 9 | { 10 | Address SellerAvatarAddress { get; } 11 | Guid ItemId { get; } 12 | FungibleAssetValue Price { get; } 13 | string? ItemSubType => null; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /integrations/javascript/@planetarium/lib9c/jsr.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://jsr.io/schema/config-file.v1.json", 3 | "name": "@planetarium/lib9c", 4 | "version": "0.5.1", 5 | "exports": "./src/index.ts", 6 | "publish": { 7 | "include": [ 8 | "LICENSE", 9 | "src/**/*.ts", 10 | "README.md", 11 | "CONTRIBUTING.md", 12 | "jsr.json" 13 | ] 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /docs/articles/system/toc.yml: -------------------------------------------------------------------------------- 1 | items: 2 | - name: Agent 3 | href: agent.md 4 | - name: Avatar 5 | href: avatar/toc.yml 6 | - name: Adventure 7 | href: adventure.md 8 | - name: Arena 9 | href: arena.md 10 | - name: Account 11 | href: account.md 12 | - name: Infinite Tower Sheets 13 | href: infinite-tower-sheets.md 14 | - name: Infinite Tower Sheets (한글) 15 | href: infinite-tower-sheets-ko.md 16 | -------------------------------------------------------------------------------- /Lib9c/Action/ITransferAssets.cs: -------------------------------------------------------------------------------- 1 | #nullable enable 2 | using System.Collections.Generic; 3 | using Libplanet.Crypto; 4 | using Libplanet.Types.Assets; 5 | 6 | namespace Nekoyume.Action 7 | { 8 | public interface ITransferAssets 9 | { 10 | Address Sender { get; } 11 | List<(Address recipient, FungibleAssetValue amount)> Recipients { get; } 12 | string? Memo { get; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Lib9c/Exceptions/AlreadyFoughtAvatarException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Nekoyume.Exceptions 4 | { 5 | [Serializable] 6 | public class AlreadyFoughtAvatarException : Exception 7 | { 8 | public AlreadyFoughtAvatarException() 9 | { 10 | } 11 | 12 | public AlreadyFoughtAvatarException(string message) : base(message) 13 | { 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/ICombinationEquipmentV3.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface ICombinationEquipmentV3 6 | { 7 | Address AvatarAddress { get; } 8 | int RecipeId { get; } 9 | int SlotIndex { get; } 10 | int? SubRecipeId { get; } 11 | bool PayByCrystal { get; } 12 | bool UseHammerPoint { get; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/ITransferAssetsV1.cs: -------------------------------------------------------------------------------- 1 | #nullable enable 2 | using System.Collections.Generic; 3 | using Libplanet.Crypto; 4 | using Libplanet.Types.Assets; 5 | 6 | namespace Lib9c.Abstractions 7 | { 8 | public interface ITransferAssetsV1 9 | { 10 | Address Sender { get; } 11 | List<(Address recipient, FungibleAssetValue amount)> Recipients { get; } 12 | string? Memo { get; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /integrations/javascript/@planetarium/lib9c/tests/actions/make_guild.test.ts: -------------------------------------------------------------------------------- 1 | import { describe } from "vitest"; 2 | import { MakeGuild } from "../../src/index.js"; 3 | import { runTests } from "./common.js"; 4 | import { validatorAddress } from "./fixtures.js"; 5 | 6 | describe("MakeGuild", () => { 7 | runTests("valid case", [ 8 | new MakeGuild({ 9 | validatorAddress: validatorAddress, 10 | }), 11 | ]); 12 | }); 13 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IEventMaterialItemCraftsV1.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Libplanet.Crypto; 3 | 4 | namespace Lib9c.Abstractions 5 | { 6 | public interface IEventMaterialItemCraftsV1 7 | { 8 | Address AvatarAddress { get; } 9 | int EventScheduleId { get; } 10 | int EventMaterialItemRecipeId { get; } 11 | IReadOnlyDictionary MaterialsToUse { get; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/WorldBossKillRewardSheet.csv: -------------------------------------------------------------------------------- 1 | id,boss_id,rank,rune_min,rune_max,crystal,circle 2 | 1,900001,0,1,2,4000,0 3 | 2,900001,1,4,7,32000,0 4 | 3,900001,2,7,12,40000,0 5 | 4,900001,3,11,17,48000,0 6 | 5,900001,4,14,22,60000,0 7 | 6,900001,5,18,28,120000,0 8 | 7,900002,0,1,2,4000,0 9 | 8,900002,1,4,7,32000,0 10 | 9,900002,2,7,12,40000,0 11 | 10,900002,3,11,17,48000,0 12 | 11,900002,4,14,22,60000,0 13 | 12,900002,5,18,28,120000,0 14 | -------------------------------------------------------------------------------- /Lib9c/TableData/Quest/WorldQuestSheet.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Nekoyume.TableData 4 | { 5 | [Serializable] 6 | public class WorldQuestSheet : Sheet 7 | { 8 | [Serializable] 9 | public class Row : QuestSheet.Row 10 | { 11 | } 12 | 13 | public WorldQuestSheet() : base(nameof(WorldQuestSheet)) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IRaidV1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Libplanet.Crypto; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IRaidV1 8 | { 9 | Address AvatarAddress { get; } 10 | IEnumerable EquipmentIds { get; } 11 | IEnumerable CostumeIds { get; } 12 | IEnumerable FoodIds { get; } 13 | bool PayNcg { get; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IItemEnhancementV5.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Libplanet.Crypto; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IItemEnhancementV5 8 | { 9 | Guid ItemId { get; } 10 | List MaterialIds { get; } 11 | Address AvatarAddress { get; } 12 | int SlotIndex { get; } 13 | Dictionary Hammers { get; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Lib9c/Extensions/AgentAddressExtensions.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | using Nekoyume.Action; 3 | using Nekoyume.TypedAddress; 4 | 5 | namespace Nekoyume.Extensions 6 | { 7 | public static class AgentAddressExtensions 8 | { 9 | public static PledgeAddress GetPledgeAddress(this AgentAddress address) 10 | { 11 | return new PledgeAddress(((Address)address).GetPledgeAddress()); 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Lib9c/TableData/Event/EventDungeonSheet.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Nekoyume.TableData.Event 4 | { 5 | [Serializable] 6 | public class EventDungeonSheet : Sheet 7 | { 8 | [Serializable] 9 | public class Row : WorldSheet.Row 10 | { 11 | } 12 | 13 | public EventDungeonSheet() : base(nameof(EventDungeonSheet)) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /.github/bin/github-release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # Invoke github-release . 3 | set -e 4 | 5 | if [[ ! -f /tmp/github-release ]]; then 6 | wget -O /tmp/github-release.bz2 \ 7 | https://github.com/github-release/github-release/releases/download/v0.10.0/linux-amd64-github-release.bz2 8 | bzip2 -d /tmp/github-release.bz2 9 | chmod +x /tmp/github-release 10 | fi 11 | 12 | /tmp/github-release "$@" 13 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/ISellV2.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Libplanet.Crypto; 3 | using Libplanet.Types.Assets; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface ISellV2 8 | { 9 | Address SellerAvatarAddress { get; } 10 | Guid TradableId { get; } 11 | int Count { get; } 12 | FungibleAssetValue Price { get; } 13 | string ItemSubType { get; } 14 | Guid? OrderId => null; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Lib9c/Extensions/RandomExtensions.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Action; 2 | using Libplanet.Crypto; 3 | 4 | namespace Nekoyume.Extensions 5 | { 6 | public static class RandomExtensions 7 | { 8 | public static Address GenerateAddress(this IRandom random) 9 | { 10 | var buffer = new byte[Address.Size]; 11 | random.NextBytes(buffer); 12 | 13 | return new Address(buffer); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/ICombinationEquipmentV4.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | 3 | namespace Lib9c.Abstractions 4 | { 5 | public interface ICombinationEquipmentV4 6 | { 7 | Address AvatarAddress { get; } 8 | int RecipeId { get; } 9 | int SlotIndex { get; } 10 | int? SubRecipeId { get; } 11 | bool PayByCrystal { get; } 12 | bool UseHammerPoint { get; } 13 | int? PetId { get; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /integrations/javascript/@planetarium/9c-headless-provider/jsr.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://jsr.io/schema/config-file.v1.json", 3 | "name": "@planetarium/9c-headless-provider", 4 | "version": "0.1.0", 5 | "exports": "./src/index.ts", 6 | "publish": { 7 | "include": [ 8 | "LICENSE", 9 | "src/**/*.ts", 10 | "README.md", 11 | "jsr.json" 12 | ], 13 | "exclude": [ 14 | "!src/generated" 15 | ] 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/PatrolRewardSheet.csv: -------------------------------------------------------------------------------- 1 | id,start,end,interval,min_level,max_level,reward1_count,reward1_item_id,reward1_ticker,reward2_count,reward2_item_id,reward2_ticker,reward3_count,reward3_item_id,reward3_ticker,reward4_count,reward4_item_id,reward4_ticker 2 | 1,13212674,13569074,10,1,200,1000,600202,,1000,600203,,,,,,, 3 | 2,13212674,13569074,10,201,350,1000,600202,,1000,600203,,100000,,CRYSTAL,,, 4 | 3,13212674,13569074,10,351,,1000,600202,,1000,600203,,200000,,CRYSTAL,,, -------------------------------------------------------------------------------- /Lib9c.Abstractions/IBattleGrandFinaleV1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Libplanet.Crypto; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IBattleGrandFinaleV1 8 | { 9 | Address MyAvatarAddress { get; } 10 | Address EnemyAvatarAddress { get; } 11 | int GrandFinaleId { get; } 12 | IEnumerable Costumes { get; } 13 | IEnumerable Equipments { get; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Lib9c/Action/IPurchaseInfo.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Libplanet.Crypto; 3 | using Libplanet.Types.Assets; 4 | using Nekoyume.Model.Item; 5 | 6 | namespace Nekoyume.Action 7 | { 8 | public interface IPurchaseInfo 9 | { 10 | Guid? OrderId { get; } 11 | Address SellerAgentAddress { get; } 12 | Address SellerAvatarAddress { get; } 13 | FungibleAssetValue Price { get; } 14 | ItemSubType ItemSubType { get; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Lib9c/Model/BattleStatus/Dead.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | 4 | namespace Nekoyume.Model.BattleStatus 5 | { 6 | [Serializable] 7 | public class Dead : EventBase 8 | { 9 | public Dead(CharacterBase character) : base(character) 10 | { 11 | } 12 | 13 | public override IEnumerator CoExecute(IStage stage) 14 | { 15 | yield return stage.CoDead(Character); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/EventDungeonSheet.csv: -------------------------------------------------------------------------------- 1 | id,name,stage_begin,stage_end 2 | 10010001,Monster Island,10010001,10010020 3 | 10030001,World Horizon,10030001,10030020 4 | 10090001,Treasure Valley,10090001,10090020 5 | 10100001,Moca Planet,10100001,10100020 6 | 10110001,Citrus Carnival,10110001,10110020 7 | 10120001,1st Anniversary,10120001,10120020 8 | 10130001,Ragnarok Fields,10130001,10130020 9 | 10140001,Dust Valut,10140001,10140020 10 | 10150001,Ruby Dust Valut,10150001,10150020 -------------------------------------------------------------------------------- /Lib9c/TableData/Event/EventDungeonStageSheet.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Nekoyume.TableData.Event 4 | { 5 | [Serializable] 6 | public class EventDungeonStageSheet : Sheet 7 | { 8 | [Serializable] 9 | public class Row : StageSheet.Row 10 | { 11 | } 12 | 13 | public EventDungeonStageSheet() : base(nameof(EventDungeonStageSheet)) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Action/IBuy5.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Libplanet.Action; 3 | using Libplanet.Crypto; 4 | 5 | namespace Nekoyume.Action 6 | { 7 | /// 8 | /// Common interface used after . 9 | /// 10 | /// 11 | public interface IBuy5 : IAction 12 | { 13 | Address buyerAvatarAddress { get; } 14 | IEnumerable purchaseInfos { get; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Lib9c/Action/NotEnoughStarException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | public class NotEnoughStarException : Exception 7 | { 8 | public NotEnoughStarException(string s) : base(s) 9 | { 10 | } 11 | 12 | protected NotEnoughStarException(SerializationInfo info, StreamingContext context) : 13 | base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Action/PetIsLockedException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class PetIsLockedException : Exception 8 | { 9 | public PetIsLockedException(string msg) : base(msg) 10 | { 11 | } 12 | 13 | public PetIsLockedException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Model/BattleStatus/EventBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | 4 | namespace Nekoyume.Model.BattleStatus 5 | { 6 | [Serializable] 7 | public abstract class EventBase 8 | { 9 | public readonly CharacterBase Character; 10 | 11 | protected EventBase(CharacterBase character) 12 | { 13 | Character = character; 14 | } 15 | 16 | public abstract IEnumerator CoExecute(IStage stage); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakeRegularRewardSheet_V2.csv: -------------------------------------------------------------------------------- 1 | level,required_gold,item_id,rate,type 2 | 1,50,400000,10,Item 3 | 1,50,500000,800,Item 4 | 1,50,20001,6000,Rune 5 | 2,500,400000,8,Item 6 | 2,500,500000,800,Item 7 | 2,500,20001,6000,Rune 8 | 3,5000,400000,5,Item 9 | 3,5000,500000,800,Item 10 | 3,5000,20001,6000,Rune 11 | 4,50000,400000,5,Item 12 | 4,50000,500000,800,Item 13 | 4,50000,20001,6000,Rune 14 | 5,500000,400000,5,Item 15 | 5,500000,500000,800,Item 16 | 5,500000,20001,6000,Rune -------------------------------------------------------------------------------- /Lib9c.Abstractions/IHackAndSlashV6.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Libplanet.Crypto; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IHackAndSlashV6 8 | { 9 | IEnumerable Costumes { get; } 10 | IEnumerable Equipments { get; } 11 | IEnumerable Foods { get; } 12 | int WorldId { get; } 13 | int StageId { get; } 14 | Address AvatarAddress { get; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /.github/workflows/release.yaml: -------------------------------------------------------------------------------- 1 | name: release 2 | 3 | on: 4 | push: 5 | tags: 6 | - v* 7 | 8 | jobs: 9 | release: 10 | name: release 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v4 14 | - uses: actions/setup-dotnet@v4 15 | with: 16 | dotnet-version: 6.0.x 17 | - run: .github/bin/dist-pack.sh 18 | - run: .github/bin/dist-github-release.sh 19 | env: 20 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 21 | -------------------------------------------------------------------------------- /Lib9c/Action/NotEnoughMedalException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class NotEnoughMedalException : Exception 8 | { 9 | public NotEnoughMedalException(string msg) : base(msg) 10 | { 11 | } 12 | 13 | public NotEnoughMedalException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Action/InvalidLevelException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class InvalidLevelException : InvalidOperationException 8 | { 9 | public InvalidLevelException(string s) : base(s) 10 | { 11 | } 12 | 13 | protected InvalidLevelException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Action/PlayCountIsZeroException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class PlayCountIsZeroException : Exception 8 | { 9 | public PlayCountIsZeroException(string msg) : base(msg) 10 | { 11 | } 12 | 13 | public PlayCountIsZeroException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Model/BattleStatus/RemoveBuffs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | 4 | namespace Nekoyume.Model.BattleStatus 5 | { 6 | [Serializable] 7 | public class RemoveBuffs : EventBase 8 | { 9 | public RemoveBuffs(CharacterBase character) : base(character) 10 | { 11 | } 12 | 13 | public override IEnumerator CoExecute(IStage stage) 14 | { 15 | yield return stage.CoRemoveBuffs(Character); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c.Policy/Lib9c.Policy.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net6.0 5 | disable 6 | enable 7 | .bin 8 | .obj 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /Lib9c/Action/InvalidPriceException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class InvalidPriceException : ArgumentOutOfRangeException 8 | { 9 | public InvalidPriceException(string msg) : base(msg) 10 | { 11 | } 12 | 13 | protected InvalidPriceException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Model/BattleStatus/Arena/ArenaDead.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | 4 | namespace Nekoyume.Model.BattleStatus.Arena 5 | { 6 | [Serializable] 7 | public class ArenaDead : ArenaEventBase 8 | { 9 | public ArenaDead(ArenaCharacter character) : base(character) 10 | { 11 | } 12 | 13 | public override IEnumerator CoExecute(IArena arena) 14 | { 15 | yield return arena.CoDead(Character); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c/Model/BattleStatus/Arena/ArenaSpawnCharacter.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | 3 | namespace Nekoyume.Model.BattleStatus.Arena 4 | { 5 | public class ArenaSpawnCharacter : ArenaEventBase 6 | { 7 | public ArenaSpawnCharacter(ArenaCharacter character) : base(character) 8 | { 9 | } 10 | 11 | public override IEnumerator CoExecute(IArena arena) 12 | { 13 | yield return arena.CoSpawnCharacter(Character); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IUpdateSellV1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Libplanet.Crypto; 3 | using Libplanet.Types.Assets; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IUpdateSellV1 8 | { 9 | Guid OrderId { get; } 10 | Guid UpdateSellOrderId { get; } 11 | Guid TradableId { get; } 12 | Address SellerAvatarAddress { get; } 13 | string ItemSubType { get; } 14 | FungibleAssetValue Price { get; } 15 | int Count { get; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Action/AvatarIndexOutOfRangeException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | public class AvatarIndexOutOfRangeException : Exception 7 | { 8 | public AvatarIndexOutOfRangeException(string message) : base(message) 9 | { 10 | } 11 | 12 | protected AvatarIndexOutOfRangeException(SerializationInfo info, StreamingContext context) : base(info, context) 13 | { 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Lib9c/Action/NotEnoughHammerPointException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | public class NotEnoughHammerPointException : Exception 7 | { 8 | public NotEnoughHammerPointException(string s) : base(s) 9 | { 10 | } 11 | 12 | protected NotEnoughHammerPointException(SerializationInfo info, StreamingContext context) : 13 | base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Model/BattleStatus/SpawnPlayer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | 4 | namespace Nekoyume.Model.BattleStatus 5 | { 6 | [Serializable] 7 | public class SpawnPlayer : EventBase 8 | { 9 | public override IEnumerator CoExecute(IStage stage) 10 | { 11 | yield return stage.CoSpawnPlayer((Player)Character); 12 | } 13 | 14 | public SpawnPlayer(CharacterBase character) : base(character) 15 | { 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c/Action/DuplicateCostumeException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class DuplicateCostumeException: InvalidOperationException 8 | { 9 | public DuplicateCostumeException(string s) : base(s) 10 | { 11 | } 12 | 13 | protected DuplicateCostumeException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Action/DuplicateOrderIdException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class DuplicateOrderIdException : InvalidOperationException 8 | { 9 | public DuplicateOrderIdException(string s) : base(s) 10 | { 11 | } 12 | 13 | protected DuplicateOrderIdException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Action/InvalidCurrencyException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class InvalidCurrencyException : InvalidOperationException 8 | { 9 | public InvalidCurrencyException(string msg) : base(msg) 10 | { 11 | } 12 | 13 | protected InvalidCurrencyException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Action/InvalidItemTypeException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class InvalidItemTypeException : InvalidOperationException 8 | { 9 | public InvalidItemTypeException(string msg) : base(msg) 10 | { 11 | } 12 | 13 | protected InvalidItemTypeException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Action/InvalidMaterialException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class InvalidMaterialException : InvalidOperationException 8 | { 9 | public InvalidMaterialException(string s) : base(s) 10 | { 11 | } 12 | 13 | protected InvalidMaterialException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Action/InvalidShopItemException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class InvalidShopItemException : InvalidOperationException 8 | { 9 | public InvalidShopItemException(string s) : base(s) 10 | { 11 | } 12 | 13 | protected InvalidShopItemException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Action/InvalidTradableItemException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | public class InvalidTradableItemException : InvalidOperationException 7 | { 8 | public InvalidTradableItemException(string message) : base(message) 9 | { 10 | } 11 | 12 | protected InvalidTradableItemException(SerializationInfo info, StreamingContext context) : base(info, context) 13 | { 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Lib9c/Action/ProductNotFoundException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class ProductNotFoundException : InvalidOperationException 8 | { 9 | public ProductNotFoundException(string msg) : base(msg) 10 | { 11 | } 12 | 13 | public ProductNotFoundException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Model/BattleStatus/Arena/ArenaEventBase.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | 4 | namespace Nekoyume.Model.BattleStatus.Arena 5 | { 6 | [Serializable] 7 | public abstract class ArenaEventBase 8 | { 9 | public readonly ArenaCharacter Character; 10 | 11 | protected ArenaEventBase(ArenaCharacter character) 12 | { 13 | Character = character; 14 | } 15 | 16 | public abstract IEnumerator CoExecute(IArena arena); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/StakeAchievementRewardSheet.csv: -------------------------------------------------------------------------------- 1 | level,required_gold,required_block_index,item_id,quantity 2 | 0,10,50400,400000,0 3 | 0,10,50400,500000,0 4 | 0,10,151200,400000,0 5 | 0,10,151200,500000,0 6 | 0,10,302400,400000,0 7 | 0,10,302400,500000,0 8 | 0,10,604800,400000,0 9 | 0,10,604800,500000,0 10 | 1,100,50400,400000,0 11 | 1,100,50400,500000,0 12 | 1,100,151200,400000,0 13 | 1,100,151200,500000,0 14 | 1,100,302400,400000,0 15 | 1,100,302400,500000,0 16 | 1,100,604800,400000,0 17 | 1,100,604800,500000,0 -------------------------------------------------------------------------------- /.Lib9c.Tests/Action/DamageHelperTest.cs: -------------------------------------------------------------------------------- 1 | namespace Lib9c.Tests.Action 2 | { 3 | using Xunit; 4 | 5 | public class DamageHelperTest 6 | { 7 | [Theory] 8 | [InlineData(long.MaxValue, 0.19)] 9 | [InlineData(4000L, 0.6)] 10 | [InlineData(long.MinValue, 0)] 11 | public void GetDamageReductionRate(long drr, decimal expected) 12 | { 13 | Assert.Equal(expected, Nekoyume.Battle.DamageHelper.GetDamageReductionRate(drr)); 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Lib9c/Action/ArenaNotEndedException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class ArenaNotEndedException : InvalidOperationException 8 | { 9 | public ArenaNotEndedException(string s) : base(s) 10 | { 11 | } 12 | 13 | protected ArenaNotEndedException(SerializationInfo info, StreamingContext context) 14 | : base(info, context) 15 | { 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c/Action/CostumeSlotUnlockException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class CostumeSlotUnlockException : InvalidOperationException 8 | { 9 | public CostumeSlotUnlockException(string s) : base(s) 10 | { 11 | } 12 | 13 | protected CostumeSlotUnlockException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Action/DuplicateMaterialException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class DuplicateMaterialException : InvalidOperationException 8 | { 9 | public DuplicateMaterialException(string s) : base(s) 10 | { 11 | } 12 | 13 | protected DuplicateMaterialException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Action/ItemDoesNotExistException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class ItemDoesNotExistException : InvalidOperationException 8 | { 9 | public ItemDoesNotExistException(string msg) : base(msg) 10 | { 11 | } 12 | 13 | public ItemDoesNotExistException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Action/NotEnoughActionPointException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class NotEnoughActionPointException : Exception 8 | { 9 | public NotEnoughActionPointException(string msg) : base(msg) 10 | { 11 | } 12 | 13 | public NotEnoughActionPointException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Action/NotEnoughMaterialException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class NotEnoughMaterialException : InvalidOperationException 8 | { 9 | public NotEnoughMaterialException(string s) : base(s) 10 | { 11 | } 12 | 13 | protected NotEnoughMaterialException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /integrations/javascript/@planetarium/9c-headless-provider/biome.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "./node_modules/@biomejs/biome/configuration_schema.json", 3 | "linter": { 4 | "enabled": true, 5 | "rules": { 6 | "style": { 7 | "useNodejsImportProtocol": "off" 8 | } 9 | } 10 | }, 11 | "formatter": { 12 | "enabled": true, 13 | "indentStyle": "space", 14 | "indentWidth": 2 15 | }, 16 | "files": { 17 | "ignore": [ 18 | "src/generated" 19 | ] 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /integrations/javascript/@planetarium/lib9c/tests/actions/stake.test.ts: -------------------------------------------------------------------------------- 1 | import { describe } from "vitest"; 2 | import { Stake } from "../../src/index.js"; 3 | import { runTests } from "./common.js"; 4 | import { avatarAddress } from "./fixtures.js"; 5 | 6 | describe("Stake", () => { 7 | runTests("valid case", [ 8 | new Stake({ 9 | amount: 1n, 10 | avatarAddress: avatarAddress, 11 | }), 12 | new Stake({ 13 | amount: 1n, 14 | avatarAddress: null, 15 | }), 16 | ]); 17 | }); 18 | -------------------------------------------------------------------------------- /.Lib9c.Tests/Action/CreateTestbedTest.cs: -------------------------------------------------------------------------------- 1 | namespace Lib9c.Tests.Action 2 | { 3 | using System.Linq; 4 | using Lib9c.Tests.TestHelper; 5 | using Xunit; 6 | 7 | public class CreateTestbedTest 8 | { 9 | [Fact] 10 | public void Execute() 11 | { 12 | var result = BlockChainHelper.MakeInitialState(); 13 | var testbed = result.GetTestbed(); 14 | Assert.Equal(testbed.Orders.Count(), testbed.result.ItemInfos.Count); 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /.Lib9c.Tests/Action/ValidatorDelegation/ConstantTest.cs: -------------------------------------------------------------------------------- 1 | #nullable enable 2 | namespace Lib9c.Tests.Action.ValidatorDelegation; 3 | 4 | using Nekoyume.ValidatorDelegation; 5 | using Xunit; 6 | 7 | public class ConstantTest 8 | { 9 | [Fact(Skip = "Allow after positive unbonding period")] 10 | public void StaticPropertyTest() 11 | { 12 | Assert.True(ValidatorDelegatee.MaxCommissionPercentage < int.MaxValue); 13 | Assert.True(ValidatorDelegatee.MaxCommissionPercentage >= 0); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IHackAndSlashV5.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Libplanet.Crypto; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IHackAndSlashV5 8 | { 9 | IEnumerable Costumes { get; } 10 | IEnumerable Equipments { get; } 11 | IEnumerable Foods { get; } 12 | int WorldId { get; } 13 | int StageId { get; } 14 | int PlayCount { get; } 15 | Address AvatarAddress { get; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IRankingBattleV1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Libplanet.Crypto; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IRankingBattleV1 8 | { 9 | Address AvatarAddress { get; } 10 | Address EnemyAddress { get; } 11 | Address WeeklyArenaAddress { get; } 12 | IEnumerable CostumeIds { get; } 13 | IEnumerable EquipmentIds { get; } 14 | IEnumerable ConsumableIds { get; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Lib9c/Action/DuplicateEquipmentException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class DuplicateEquipmentException: InvalidOperationException 8 | { 9 | public DuplicateEquipmentException(string s) : base(s) 10 | { 11 | } 12 | 13 | protected DuplicateEquipmentException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Action/InvalidNamePatternException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class InvalidNamePatternException : InvalidOperationException 8 | { 9 | public InvalidNamePatternException(string s) : base(s) 10 | { 11 | } 12 | 13 | protected InvalidNamePatternException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Action/NotEnoughCombatPointException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | public class NotEnoughCombatPointException : InvalidOperationException 7 | { 8 | public NotEnoughCombatPointException(string s) : base(s) 9 | { 10 | } 11 | 12 | protected NotEnoughCombatPointException(SerializationInfo info, StreamingContext context) : 13 | base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /.Lib9c.Tests/Util/AddressUtil.cs: -------------------------------------------------------------------------------- 1 | namespace Lib9c.Tests.Util 2 | { 3 | using Libplanet.Crypto; 4 | using Nekoyume.TypedAddress; 5 | 6 | public static class AddressUtil 7 | { 8 | public static AgentAddress CreateAgentAddress() 9 | { 10 | return new AgentAddress(new PrivateKey().Address); 11 | } 12 | 13 | public static GuildAddress CreateGuildAddress() 14 | { 15 | return new GuildAddress(new PrivateKey().Address); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IHackAndSlashSweepV2.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Libplanet.Crypto; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IHackAndSlashSweepV2 8 | { 9 | IEnumerable Costumes { get; } 10 | IEnumerable Equipments { get; } 11 | Address AvatarAddress { get; } 12 | int ApStoneCount { get; } 13 | int ActionPoint { get; } 14 | int WorldId { get; } 15 | int StageId { get; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IHackAndSlashV7.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Libplanet.Crypto; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IHackAndSlashV7 8 | { 9 | IEnumerable Costumes { get; } 10 | IEnumerable Equipments { get; } 11 | IEnumerable Foods { get; } 12 | int WorldId { get; } 13 | int StageId { get; } 14 | int? StageBuffId { get; } 15 | Address AvatarAddress { get; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IRaidV2.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Bencodex.Types; 4 | using Libplanet.Crypto; 5 | 6 | namespace Lib9c.Abstractions 7 | { 8 | public interface IRaidV2 9 | { 10 | Address AvatarAddress { get; } 11 | IEnumerable EquipmentIds { get; } 12 | IEnumerable CostumeIds { get; } 13 | IEnumerable FoodIds { get; } 14 | IEnumerable RuneSlotInfos { get; } 15 | bool PayNcg { get; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Action/AlreadyReceivedException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class AlreadyReceivedException : InvalidOperationException 8 | { 9 | public AlreadyReceivedException(string s) : base(s) 10 | { 11 | } 12 | 13 | protected AlreadyReceivedException(SerializationInfo info, StreamingContext context) 14 | : base(info, context) 15 | { 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c/Action/InvalidProductTypeException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class InvalidProductTypeException : InvalidOperationException 8 | { 9 | public InvalidProductTypeException(string msg) : base(msg) 10 | { 11 | } 12 | 13 | protected InvalidProductTypeException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/SynthesizeSheet.csv: -------------------------------------------------------------------------------- 1 | grade_id,item_sub_type,required_count,succeed_rate 2 | _value of successful_rate is between 0 and 10000,,, 3 | 1,Aura,15,10000 4 | 2,Aura,15,10000 5 | 3,Aura,15,10000 6 | 3,Grimoire,10,10000 7 | 3,FullCostume,20,10000 8 | 4,Aura,15,10000 9 | 4,Grimoire,15,10000 10 | 4,FullCostume,20,10000 11 | 5,Aura,16,10000 12 | 5,Grimoire,16,10000 13 | 5,FullCostume,20,10000 14 | 6,Aura,12,10000 15 | 6,Grimoire,12,10000 16 | 6,FullCostume,15,10000 17 | 7,Aura,1,0 18 | 7,Grimoire,1,0 19 | 7,FullCostume,1,0 -------------------------------------------------------------------------------- /.github/bin/constants.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # https://docs.microsoft.com/en-us/dotnet/core/rid-catalog 4 | rids=(linux-x64 osx-x64 osx-arm64 win-x64) 5 | 6 | # Publish a package only if the repository is upstream (planetarium/lib9c) 7 | # and the branch is for releases (main or *-maintenance or 9c-*). 8 | # shellcheck disable=SC2235 9 | if [ "$GITHUB_REPOSITORY" = "planetarium/lib9c" ] && [[ \ 10 | "$GITHUB_REF" = refs/tags/* || \ 11 | "$GITHUB_REF" = refs/heads/main 12 | ]]; then 13 | publish_package=true 14 | fi 15 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IMimisbrunnrBattleV4.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Libplanet.Crypto; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IMimisbrunnrBattleV4 8 | { 9 | IEnumerable Costumes { get; } 10 | IEnumerable Equipments { get; } 11 | IEnumerable Foods { get; } 12 | int WorldId { get; } 13 | int StageId { get; } 14 | int PlayCount { get; } 15 | Address AvatarAddress { get; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Action/AlreadyActivatedException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class AlreadyActivatedException : InvalidOperationException 8 | { 9 | public AlreadyActivatedException(string s) : base(s) 10 | { 11 | } 12 | 13 | protected AlreadyActivatedException(SerializationInfo info, StreamingContext context) 14 | : base(info, context) 15 | { 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c/Action/ConsumableSlotUnlockException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class ConsumableSlotUnlockException : InvalidOperationException 8 | { 9 | public ConsumableSlotUnlockException(string s) : base(s) 10 | { 11 | } 12 | 13 | protected ConsumableSlotUnlockException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Action/IBuy0.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Libplanet.Action; 3 | using Libplanet.Crypto; 4 | 5 | namespace Nekoyume.Action 6 | { 7 | /// 8 | /// Common interface used before . 9 | /// 10 | /// 11 | public interface IBuy0 : IAction 12 | { 13 | Address buyerAvatarAddress { get; } 14 | Address sellerAgentAddress { get; } 15 | Address sellerAvatarAddress { get; } 16 | Guid productId { get; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c/Action/InvalidTradableIdException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class InvalidTradableIdException : InvalidOperationException 8 | { 9 | protected InvalidTradableIdException(SerializationInfo info, StreamingContext context) : base(info, context) 10 | { 11 | } 12 | 13 | public InvalidTradableIdException(string message) : base(message) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Action/MemoLengthOverflowException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class MemoLengthOverflowException : InvalidOperationException 8 | { 9 | public MemoLengthOverflowException(string message) : base(message) 10 | { 11 | } 12 | 13 | protected MemoLengthOverflowException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Action/OrderIdDoesNotExistException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class OrderIdDoesNotExistException : InvalidOperationException 8 | { 9 | public OrderIdDoesNotExistException(string msg) : base(msg) 10 | { 11 | } 12 | 13 | protected OrderIdDoesNotExistException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Model/BattleStatus/Arena/ArenaRemoveBuffs.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | 4 | namespace Nekoyume.Model.BattleStatus.Arena 5 | { 6 | [Serializable] 7 | public class ArenaRemoveBuffs : ArenaEventBase 8 | { 9 | public ArenaRemoveBuffs(ArenaCharacter character) : base(character) 10 | { 11 | } 12 | 13 | public override IEnumerator CoExecute(IArena arena) 14 | { 15 | yield return arena.CoRemoveBuffs(Character); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c/Model/BattleStatus/SpawnEnemyPlayer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | 4 | namespace Nekoyume.Model.BattleStatus 5 | { 6 | [Serializable] 7 | public class SpawnEnemyPlayer : EventBase 8 | { 9 | public SpawnEnemyPlayer(CharacterBase character) : base(character) 10 | { 11 | } 12 | 13 | public override IEnumerator CoExecute(IStage stage) 14 | { 15 | yield return stage.CoSpawnEnemyPlayer((EnemyPlayer)Character); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /integrations/python/README.md: -------------------------------------------------------------------------------- 1 | ## Description: 2 | This is a Python library designed for managing integrations and dependencies within the /integrations/python directory. The library follows PEP 621 standards for configuration and uses rye as the dependency manager and build tool. 3 | 4 | ## Installation: 5 | Install dependencies with rye 6 | ``` 7 | rye sync 8 | ``` 9 | 10 | ## Project Setup 11 | This project is configured with a pyproject.toml file following PEP 621 standards, which defines dependencies and project metadata. 12 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IHackAndSlashV3.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Libplanet.Crypto; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IHackAndSlashV3 8 | { 9 | IEnumerable Costumes { get; } 10 | IEnumerable Equipments { get; } 11 | IEnumerable Foods { get; } 12 | int WorldId { get; } 13 | int StageId { get; } 14 | Address AvatarAddress { get; } 15 | Address RankingMapAddress { get; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Action/AlreadyContractedException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class AlreadyContractedException : InvalidOperationException 8 | { 9 | public AlreadyContractedException(string s) : base(s) 10 | { 11 | } 12 | 13 | protected AlreadyContractedException(SerializationInfo info, StreamingContext context) 14 | : base(info, context) 15 | { 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c/Action/AvatarIndexAlreadyUsedException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class AvatarIndexAlreadyUsedException : InvalidOperationException 8 | { 9 | public AvatarIndexAlreadyUsedException(string s) : base(s) 10 | { 11 | } 12 | 13 | protected AvatarIndexAlreadyUsedException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Action/EquipmentLevelExceededException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class EquipmentLevelExceededException : InvalidOperationException 8 | { 9 | public EquipmentLevelExceededException(string s) : base(s) 10 | { 11 | } 12 | 13 | protected EquipmentLevelExceededException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Arena/IArenaSimulator.cs: -------------------------------------------------------------------------------- 1 | 2 | using Libplanet.Action; 3 | using Nekoyume.Model.BattleStatus.Arena; 4 | using Nekoyume.TableData; 5 | 6 | namespace Nekoyume.Arena 7 | { 8 | public interface IArenaSimulator 9 | { 10 | public ArenaLog Log { get; } 11 | public IRandom Random { get; } 12 | public int Turn { get; } 13 | public long ShatterStrikeMaxDamage { get; } 14 | public BuffLimitSheet BuffLimitSheet { get; } 15 | BuffLinkSheet BuffLinkSheet { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /integrations/javascript/@planetarium/lib9c/cli/main.ts: -------------------------------------------------------------------------------- 1 | import { NCG, TransferAsset, fav } from "../src/index.js"; 2 | import { Address } from "@planetarium/account"; 3 | import { Buffer } from "buffer"; 4 | 5 | const action = new TransferAsset({ 6 | sender: Address.fromHex("0x2cBaDf26574756119cF705289C33710F27443767"), 7 | recipient: Address.fromHex("0x2cBaDf26574756119cF705289C33710F27443767"), 8 | amount: fav(NCG, 2), 9 | }); 10 | 11 | const bytes = action.serialize(); 12 | console.log(Buffer.from(bytes).toString("hex")); 13 | -------------------------------------------------------------------------------- /integrations/javascript/@planetarium/lib9c/docs/ko/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | # https://vitepress.dev/reference/default-theme-home-page 3 | layout: home 4 | 5 | hero: 6 | name: "@planetarium/lib9c" 7 | text: "나인크로니클 써드파티 앱을 위한 라이브러리" 8 | tagline: 나인크로니클 액션을 보다 쉽게 만드세요 9 | actions: 10 | - theme: brand 11 | text: 문서 12 | link: /ko/docs/index.md 13 | 14 | features: 15 | - title: 타입스크립트 16 | details: 나인크로니클 프로토콜의 여러 액션들을 타입과 함께 지원합니다. 17 | - title: 유틸리티 18 | details: 트랜잭션을 보다 쉽게 만들기 위한 유틸리티를 제공합니다. 19 | --- 20 | -------------------------------------------------------------------------------- /.Lib9c.Tests/Delegation/DummyDelegator.cs: -------------------------------------------------------------------------------- 1 | using Libplanet.Crypto; 2 | using Nekoyume.Delegation; 3 | 4 | public sealed class DummyDelegator : Delegator 5 | { 6 | public DummyDelegator(Address address, DummyRepository repository) 7 | : base(address, repository) 8 | { 9 | } 10 | 11 | public DummyDelegator(Address address, Address accountAddress, DummyRepository repo) 12 | : base(address, accountAddress, address, address, repo) 13 | { 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IMimisbrunnrBattleV2.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Libplanet.Crypto; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IMimisbrunnrBattleV2 8 | { 9 | IEnumerable Costumes { get; } 10 | IEnumerable Equipments { get; } 11 | IEnumerable Foods { get; } 12 | int WorldId { get; } 13 | int StageId { get; } 14 | Address AvatarAddress { get; } 15 | Address RankingMapAddress { get; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IRankingBattleV2.cs: -------------------------------------------------------------------------------- 1 | #nullable enable 2 | 3 | using System; 4 | using System.Collections.Generic; 5 | using Libplanet.Crypto; 6 | 7 | namespace Lib9c.Action 8 | { 9 | public interface IRankingBattleV2 10 | { 11 | Address AvatarAddress { get; } 12 | Address EnemyAddress { get; } 13 | Address WeeklyArenaAddress { get; } 14 | IEnumerable CostumeIds { get; } 15 | IEnumerable EquipmentIds { get; } 16 | IEnumerable? ConsumableIds => null; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /.Lib9c.Tests/Model/Guild/GuildApplicationTest.Snapshot.verified.txt: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | EncodingLength: 21, 4 | Kind: Text, 5 | Value: guild_application 6 | }, 7 | { 8 | EncodingLength: 3, 9 | Kind: Integer, 10 | Value: 1 11 | }, 12 | [ 13 | 217, 14 | 40, 15 | 174, 16 | 135, 17 | 49, 18 | 29, 19 | 234, 20 | 212, 21 | 144, 22 | 201, 23 | 134, 24 | 194, 25 | 76, 26 | 194, 27 | 60, 28 | 55, 29 | 239, 30 | 248, 31 | 146, 32 | 242 33 | ] 34 | ] 35 | -------------------------------------------------------------------------------- /.Lib9c.Tests/Model/Guild/GuildParticipantTest.Snapshot.verified.txt: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | EncodingLength: 21, 4 | Kind: Text, 5 | Value: guild_participant 6 | }, 7 | { 8 | EncodingLength: 3, 9 | Kind: Integer, 10 | Value: 2 11 | }, 12 | [ 13 | 217, 14 | 40, 15 | 174, 16 | 135, 17 | 49, 18 | 29, 19 | 234, 20 | 212, 21 | 144, 22 | 201, 23 | 134, 24 | 194, 25 | 76, 26 | 194, 27 | 60, 28 | 55, 29 | 239, 30 | 248, 31 | 146, 32 | 242 33 | ] 34 | ] 35 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IJoinArenaV1.cs: -------------------------------------------------------------------------------- 1 | #nullable enable 2 | 3 | using System; 4 | using System.Collections.Generic; 5 | using Bencodex.Types; 6 | using Libplanet.Crypto; 7 | 8 | namespace Lib9c.Abstractions 9 | { 10 | public interface IJoinArenaV1 11 | { 12 | Address AvatarAddress { get; } 13 | int ChampionshipId { get; } 14 | int Round { get; } 15 | IEnumerable Costumes { get; } 16 | IEnumerable Equipments { get; } 17 | IEnumerable? RuneSlotInfos => null; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Lib9c.Utils/Lib9c.Utils.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net6.0 5 | disable 6 | enable 7 | .bin 8 | .obj 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Lib9c/Action/AppraiseBlockNotReachedException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class AppraiseBlockNotReachedException : Exception 8 | { 9 | public AppraiseBlockNotReachedException(string message) : base(message) 10 | { 11 | } 12 | 13 | protected AppraiseBlockNotReachedException(SerializationInfo info, StreamingContext context) 14 | : base(info, context) 15 | { 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c/Model/BattleStatus/GetExp.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | 4 | namespace Nekoyume.Model.BattleStatus 5 | { 6 | [Serializable] 7 | public class GetExp : EventBase 8 | { 9 | public long Exp { get; } 10 | 11 | public GetExp(CharacterBase character, long exp) : base(character) 12 | { 13 | Exp = exp; 14 | } 15 | 16 | public override IEnumerator CoExecute(IStage stage) 17 | { 18 | yield return stage.CoGetExp(Exp); 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Lib9c/TableData/Event/EventConsumableItemRecipeSheet.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | 3 | namespace Nekoyume.TableData.Event 4 | { 5 | [Serializable] 6 | public class EventConsumableItemRecipeSheet 7 | : Sheet 8 | { 9 | [Serializable] 10 | public class Row : ConsumableItemRecipeSheet.Row 11 | { 12 | } 13 | 14 | public EventConsumableItemRecipeSheet() 15 | : base(nameof(EventConsumableItemRecipeSheet)) 16 | { 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /integrations/javascript/@planetarium/lib9c/src/models/networks.ts: -------------------------------------------------------------------------------- 1 | import { Buffer } from "buffer"; 2 | 3 | /** 4 | * The genesis hash of the Odin network. 5 | */ 6 | export const ODIN_GENESIS_HASH: Uint8Array = Buffer.from( 7 | "4582250d0da33b06779a8475d283d5dd210c683b9b999d74d03fac4f58fa6bce", 8 | "hex", 9 | ); 10 | 11 | /** 12 | * The genesis hash of the Heimdall network. 13 | */ 14 | export const HEIMDALL_GENESIS_HASH: Uint8Array = Buffer.from( 15 | "729fa26958648a35b53e8e3905d11ec53b1b4929bf5f499884aed7df616f5913", 16 | "hex", 17 | ); 18 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IHackAndSlashV8.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Libplanet.Crypto; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IHackAndSlashV8 8 | { 9 | IEnumerable Costumes { get; } 10 | IEnumerable Equipments { get; } 11 | IEnumerable Foods { get; } 12 | int WorldId { get; } 13 | int StageId { get; } 14 | int? StageBuffId { get; } 15 | int PlayCount { get; } 16 | Address AvatarAddress { get; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c/Action/CombinationSlotResultNullException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class CombinationSlotResultNullException : Exception 8 | { 9 | public CombinationSlotResultNullException(string message) : base (message) 10 | { 11 | } 12 | 13 | public CombinationSlotResultNullException(SerializationInfo info, StreamingContext context) 14 | : base(info, context) 15 | { 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c/Action/InvalidStageException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class InvalidStageException : Exception 8 | { 9 | public InvalidStageException() 10 | { 11 | } 12 | 13 | public InvalidStageException(string msg) : base(msg) 14 | { 15 | } 16 | 17 | protected InvalidStageException(SerializationInfo info, StreamingContext context) : base(info, context) 18 | { 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Lib9c/Action/MonsterCollectionExpiredException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class MonsterCollectionExpiredException : InvalidOperationException 8 | { 9 | public MonsterCollectionExpiredException(string msg) : base(msg) 10 | { 11 | } 12 | 13 | protected MonsterCollectionExpiredException(SerializationInfo info, StreamingContext context) 14 | : base(info, context) 15 | { 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/MimisbrunnrSheet.csv: -------------------------------------------------------------------------------- 1 | id,elemental_type_1,elemental_type_2,elemental_type_3,elemental_type_4,elemental_type_5 2 | 10000001,Fire,,,, 3 | 10000002,Fire,,,, 4 | 10000003,Fire,,,, 5 | 10000004,Fire,,,, 6 | 10000005,Fire,,,, 7 | 10000006,Fire,,,, 8 | 10000007,Fire,,,, 9 | 10000008,Fire,,,, 10 | 10000009,Fire,,,, 11 | 10000010,Fire,,,, 12 | 10000011,Fire,,,, 13 | 10000012,Fire,,,, 14 | 10000013,Fire,,,, 15 | 10000014,Fire,,,, 16 | 10000015,Fire,,,, 17 | 10000016,Fire,,,, 18 | 10000017,Fire,,,, 19 | 10000018,Fire,,,, 20 | 10000019,Fire,,,, 21 | 10000020,Fire,,,, -------------------------------------------------------------------------------- /Lib9c.Abstractions/IHackAndSlashV4.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Libplanet.Crypto; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IHackAndSlashV4 8 | { 9 | IEnumerable Costumes { get; } 10 | IEnumerable Equipments { get; } 11 | IEnumerable Foods { get; } 12 | int WorldId { get; } 13 | int StageId { get; } 14 | int PlayCount { get; } 15 | Address AvatarAddress { get; } 16 | Address RankingMapAddress { get; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c/Action/ActivationException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | public abstract class ActivationException : Exception 7 | { 8 | protected ActivationException() 9 | { 10 | } 11 | 12 | protected ActivationException(string message) : base(message) 13 | { 14 | } 15 | 16 | protected ActivationException(SerializationInfo info, StreamingContext context) 17 | : base(info, context) 18 | { 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Lib9c/Action/InvalidMonsterCollectionRoundException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class InvalidMonsterCollectionRoundException : InvalidOperationException 8 | { 9 | public InvalidMonsterCollectionRoundException(string msg) : base(msg) 10 | { 11 | } 12 | 13 | protected InvalidMonsterCollectionRoundException(SerializationInfo info, StreamingContext context) : base(info, context) 14 | { 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Lib9c/Action/InvalidTransferCurrencyException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class InvalidTransferCurrencyException : InvalidOperationException 8 | { 9 | protected InvalidTransferCurrencyException(SerializationInfo info, StreamingContext context) 10 | : base(info, context) 11 | { 12 | } 13 | 14 | public InvalidTransferCurrencyException(string message) : base(message) 15 | { 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c/Action/ValidatorSetOperatorType.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.Action 2 | { 3 | public enum ValidatorSetOperatorType 4 | { 5 | /// 6 | /// Append the validator. no-op if validator public key already exists. 7 | /// 8 | Append, 9 | 10 | /// 11 | /// Set validator's power to 0. 12 | /// 13 | Remove, 14 | 15 | /// 16 | /// Update validator. if not exists, append it. 17 | /// 18 | Update, 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Lib9c/Action/InvalidWorldException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class InvalidWorldException: Exception 8 | { 9 | public InvalidWorldException() 10 | { 11 | } 12 | 13 | public InvalidWorldException(string msg) : base(msg) 14 | { 15 | } 16 | 17 | protected InvalidWorldException(SerializationInfo info, StreamingContext context) : base(info, context) 18 | { 19 | } 20 | 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Lib9c/Action/ShopErrorType.cs: -------------------------------------------------------------------------------- 1 | namespace Nekoyume.Action 2 | { 3 | public enum ShopErrorType 4 | { 5 | ERROR_CODE_FAILED_LOADING_STATE = 1, 6 | ERROR_CODE_ITEM_DOES_NOT_EXIST = 2, 7 | ERROR_CODE_SHOPITEM_EXPIRED = 3, 8 | ERROR_CODE_INSUFFICIENT_BALANCE = 4, 9 | ERROR_CODE_INVALID_ADDRESS = 5, 10 | ERROR_CODE_INVALID_PRICE = 6, 11 | ERROR_CODE_INVALID_ORDERID = 7, 12 | ERROR_CODE_INVALID_TRADABLEID = 8, 13 | ERROR_CODE_INVALID_ITEMTYPE = 9, 14 | ERROR_CODE_DUPLICATE_SELL = 10 15 | } 16 | } -------------------------------------------------------------------------------- /Lib9c.Abstractions/IHackAndSlashV1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Libplanet.Crypto; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IHackAndSlashV1 8 | { 9 | IEnumerable Costumes { get; } 10 | IEnumerable Equipments { get; } 11 | IEnumerable Foods { get; } 12 | int WorldId { get; } 13 | int StageId { get; } 14 | Address AvatarAddress { get; } 15 | Address WeeklyArenaAddress { get; } 16 | Address RankingMapAddress { get; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IHackAndSlashV2.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Libplanet.Crypto; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IHackAndSlashV2 8 | { 9 | IEnumerable Costumes { get; } 10 | IEnumerable Equipments { get; } 11 | IEnumerable Foods { get; } 12 | int WorldId { get; } 13 | int StageId { get; } 14 | Address AvatarAddress { get; } 15 | Address WeeklyArenaAddress { get; } 16 | Address RankingMapAddress { get; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IMimisbrunnrBattleV3.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Libplanet.Crypto; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IMimisbrunnrBattleV3 8 | { 9 | IEnumerable Costumes { get; } 10 | IEnumerable Equipments { get; } 11 | IEnumerable Foods { get; } 12 | int WorldId { get; } 13 | int StageId { get; } 14 | int PlayCount { get; } 15 | Address AvatarAddress { get; } 16 | Address RankingMapAddress { get; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c.Renderers/Lib9c.Renderers.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net6.0 5 | disable 6 | enable 7 | .bin 8 | .obj 9 | $(Lib9cVersion) 10 | Lib9c 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Lib9c/Action/InvalidClaimException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class InvalidClaimException : InvalidOperationException 8 | { 9 | public InvalidClaimException() 10 | { 11 | } 12 | 13 | public InvalidClaimException(string msg) : base(msg) 14 | { 15 | } 16 | 17 | protected InvalidClaimException(SerializationInfo info, StreamingContext context) : base(info, context) 18 | { 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Lib9c/Model/Collection/CollectionFactory.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Bencodex.Types; 3 | 4 | namespace Nekoyume.Model.Collection 5 | { 6 | public static class CollectionFactory 7 | { 8 | public static ICollectionMaterial DeserializeMaterial(List serialized) 9 | { 10 | if ((Integer)serialized[0] == (int)MaterialType.Fungible) 11 | { 12 | return new FungibleCollectionMaterial(serialized); 13 | } 14 | 15 | return new NonFungibleCollectionMaterial(serialized); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c/Action/InvalidElementalException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class InvalidElementalException : Exception 8 | { 9 | public InvalidElementalException() 10 | { 11 | } 12 | 13 | public InvalidElementalException(string message) : base(message) 14 | { 15 | } 16 | 17 | protected InvalidElementalException(SerializationInfo info, StreamingContext context) : base(info, context) 18 | { 19 | } 20 | } 21 | } -------------------------------------------------------------------------------- /Lib9c/Action/InvalidEquipmentException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class InvalidEquipmentException : Exception 8 | { 9 | public InvalidEquipmentException() 10 | { 11 | } 12 | 13 | public InvalidEquipmentException(string msg) : base(msg) 14 | { 15 | } 16 | 17 | protected InvalidEquipmentException(SerializationInfo info, StreamingContext context) : base(info, context) 18 | { 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Lib9c/Action/InvalidRecipeIdException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class InvalidRecipeIdException: Exception 8 | { 9 | public InvalidRecipeIdException() 10 | { 11 | } 12 | 13 | public InvalidRecipeIdException(string msg) : base(msg) 14 | { 15 | } 16 | 17 | protected InvalidRecipeIdException(SerializationInfo info, StreamingContext context) : base(info, context) 18 | { 19 | } 20 | 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Lib9c/Model/State/ShopStateAlreadyContainsException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Model.State 5 | { 6 | [Serializable] 7 | public class ShopStateAlreadyContainsException : Exception 8 | { 9 | public ShopStateAlreadyContainsException(string message) : base(message) 10 | { 11 | } 12 | 13 | protected ShopStateAlreadyContainsException( 14 | SerializationInfo info, 15 | StreamingContext context) : base(info, context) 16 | { 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Lib9c/TableCSV/WorldBossActionPatternSheet.csv: -------------------------------------------------------------------------------- 1 | boss_id,wave,skill_ids 2 | 900001,1,"500003,100000,100000,100000" 3 | 900001,2,"500003,100000,100000,100003,100000" 4 | 900001,3,"500003,100003,100000,500001,100000" 5 | 900001,4,"500004,100003,100000,500001,100000,500002" 6 | 900001,5,"500005,100003,100000,500001,100000,500002" 7 | 900002,1,"500014,100000,100000,100000,100000" 8 | 900002,2,"500014,100000,100000,100003,100000" 9 | 900002,3,"500014,500013,100000,500011,100000" 10 | 900002,4,"500015,500013,100000,500011,100000,500012" 11 | 900002,5,"500016,500013,100000,500011,100000,500012" -------------------------------------------------------------------------------- /_typos.toml: -------------------------------------------------------------------------------- 1 | [default] 2 | extend-ignore-re = [ 3 | "\\\"([a-zA-Z0-9][a-zA-Z0-9])+\\\"", # for hexadecimal string values. 4 | "2nd" 5 | ] 6 | 7 | [default.extend-identifiers] 8 | fo = "fo" # FungibleOrder 9 | 10 | [default.extend-words] 11 | ba = "ba" # byte array 12 | oce = "oce" # OperationCanceledException 13 | ist = "ist" # ItemSubType 14 | Equipments = "Equipments" # FIXME: Equipment is noncount word but our team doesn't have the policy about it. 15 | Hel = "Hel" # Stage prefix of world 8 16 | 17 | [files] 18 | extend-exclude = [ 19 | ".Libplanet/*" 20 | ] 21 | -------------------------------------------------------------------------------- /.Lib9c.Tests/TableData/RuneWeightSheetTest.cs: -------------------------------------------------------------------------------- 1 | namespace Lib9c.Tests.TableData 2 | { 3 | using System.Linq; 4 | using Xunit; 5 | 6 | public class RuneWeightSheetTest 7 | { 8 | [Fact] 9 | public void Set() 10 | { 11 | var tableSheet = new TableSheets(TableSheetsImporter.ImportSheets()); 12 | var sheet = tableSheet.RuneWeightSheet; 13 | foreach (var row in sheet.Values) 14 | { 15 | Assert.Equal(100m, row.RuneInfos.Sum(i => i.Weight)); 16 | } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IDeliverToOthersGaragesV1.cs: -------------------------------------------------------------------------------- 1 | using System.Linq; 2 | using System.Security.Cryptography; 3 | using Libplanet.Common; 4 | using Libplanet.Crypto; 5 | using Libplanet.Types.Assets; 6 | 7 | namespace Lib9c.Abstractions 8 | { 9 | public interface IDeliverToOthersGaragesV1 10 | { 11 | Address RecipientAgentAddr { get; } 12 | IOrderedEnumerable? FungibleAssetValues { get; } 13 | IOrderedEnumerable<(HashDigest fungibleId, int count)>? FungibleIdAndCounts { get; } 14 | string? Memo { get; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IMimisbrunnrBattleV1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Libplanet.Crypto; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IMimisbrunnrBattleV1 8 | { 9 | IEnumerable Costumes { get; } 10 | IEnumerable Equipments { get; } 11 | IEnumerable Foods { get; } 12 | int WorldId { get; } 13 | int StageId { get; } 14 | Address AvatarAddress { get; } 15 | Address WeeklyArenaAddress { get; } 16 | Address RankingMapAddress { get; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c/Action/ActionObsoletedException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class ActionObsoletedException : InvalidOperationException 8 | { 9 | public ActionObsoletedException() 10 | { 11 | } 12 | 13 | public ActionObsoletedException(string s) : base(s) 14 | { 15 | } 16 | 17 | protected ActionObsoletedException(SerializationInfo info, StreamingContext context) : base(info, context) 18 | { 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Lib9c/Action/InvalidRepeatPlayException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class InvalidRepeatPlayException : Exception 8 | { 9 | public InvalidRepeatPlayException() 10 | { 11 | } 12 | 13 | public InvalidRepeatPlayException(string msg) : base(msg) 14 | { 15 | } 16 | 17 | protected InvalidRepeatPlayException(SerializationInfo info, StreamingContext context) : base(info, context) 18 | { 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Lib9c/Action/AgentStateNotContainsAvatarAddressException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class AgentStateNotContainsAvatarAddressException : Exception 8 | { 9 | public AgentStateNotContainsAvatarAddressException(string message) : base(message) 10 | { 11 | } 12 | 13 | public AgentStateNotContainsAvatarAddressException(SerializationInfo info, StreamingContext context) 14 | : base(info, context) 15 | { 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c/Action/AlreadyClaimedGiftsException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class AlreadyClaimedGiftsException : Exception 8 | { 9 | public AlreadyClaimedGiftsException() 10 | { 11 | } 12 | 13 | public AlreadyClaimedGiftsException(string msg) : base(msg) 14 | { 15 | } 16 | 17 | public AlreadyClaimedGiftsException(SerializationInfo info, StreamingContext context) : base(info, context) 18 | { 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Lib9c/Action/Exceptions/CustomEquipmentCraft/NotEnoughRelationshipException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action.Exceptions.CustomEquipmentCraft 5 | { 6 | [Serializable] 7 | public class NotEnoughRelationshipException : Exception 8 | { 9 | public NotEnoughRelationshipException(string s) : base(s) 10 | { 11 | } 12 | 13 | protected NotEnoughRelationshipException(SerializationInfo info, StreamingContext context) 14 | : base(info, context) 15 | { 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c/Action/Exceptions/DuplicatedCraftSlotIndexException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action.Exceptions 5 | { 6 | [Serializable] 7 | public class DuplicatedCraftSlotIndexException : Exception 8 | { 9 | public DuplicatedCraftSlotIndexException(string message) : base(message) 10 | { 11 | } 12 | 13 | protected DuplicatedCraftSlotIndexException( 14 | SerializationInfo info, StreamingContext context 15 | ) : base(info, context) 16 | { 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Lib9c/Action/ShopItemExpiredException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class ShopItemExpiredException : Exception 8 | { 9 | public ShopItemExpiredException() 10 | { 11 | } 12 | 13 | public ShopItemExpiredException(string msg) : base(msg) 14 | { 15 | } 16 | 17 | protected ShopItemExpiredException(SerializationInfo info, StreamingContext context) 18 | : base(info, context) 19 | { 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Lib9c/Battle/ISimulator.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using Nekoyume.Model; 3 | using Nekoyume.Model.BattleStatus; 4 | using Nekoyume.Model.Item; 5 | using Priority_Queue; 6 | 7 | namespace Nekoyume.Battle 8 | { 9 | public interface ISimulator 10 | { 11 | Player Player { get; } 12 | BattleLog Log { get; } 13 | SimplePriorityQueue Characters { get; } 14 | IEnumerable Reward { get; } 15 | int WaveNumber { get; } 16 | int WaveTurn { get; } 17 | bool LogEvent { get; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /.Lib9c.Tests/Model/MonsterCollectSheetTest.cs: -------------------------------------------------------------------------------- 1 | namespace Lib9c.Tests.Model 2 | { 3 | using Nekoyume.TableData; 4 | using Xunit; 5 | 6 | public class MonsterCollectSheetTest 7 | { 8 | [Fact] 9 | public void Set() 10 | { 11 | var sheet = new MonsterCollectionSheet(); 12 | sheet.Set("level,required_gold,reward_id\n1,500,1"); 13 | var row = sheet[1]; 14 | Assert.Equal(1, row.Level); 15 | Assert.Equal(500, row.RequiredGold); 16 | Assert.Equal(1, row.RewardId); 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Lib9c/Action/ActionUnavailableException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class ActionUnavailableException : InvalidOperationException 8 | { 9 | public ActionUnavailableException() 10 | { 11 | } 12 | 13 | public ActionUnavailableException(string s) : base(s) 14 | { 15 | } 16 | 17 | protected ActionUnavailableException(SerializationInfo info, StreamingContext context) : base(info, context) 18 | { 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Lib9c/Action/InvalidItemCountException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class InvalidItemCountException : ArgumentOutOfRangeException 8 | { 9 | public InvalidItemCountException() 10 | { 11 | } 12 | 13 | public InvalidItemCountException(string msg) : base(msg) 14 | { 15 | } 16 | 17 | protected InvalidItemCountException(SerializationInfo info, StreamingContext context) : base(info, context) 18 | { 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /.Lib9c.Tests/Action/RuneSlotInfoTest.cs: -------------------------------------------------------------------------------- 1 | namespace Lib9c.Tests.Action 2 | { 3 | using Bencodex.Types; 4 | using Nekoyume.Action; 5 | using Xunit; 6 | 7 | public class RuneSlotInfoTest 8 | { 9 | [Fact] 10 | public void Serialize() 11 | { 12 | var info = new RuneSlotInfo(1, 1); 13 | var serialized = info.Serialize(); 14 | var deserialized = new RuneSlotInfo((List)serialized); 15 | 16 | Assert.Equal(1, deserialized.RuneId); 17 | Assert.Equal(1, deserialized.SlotIndex); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IEventDungeonBattleV1.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Libplanet.Crypto; 4 | 5 | namespace Lib9c.Abstractions 6 | { 7 | public interface IEventDungeonBattleV1 8 | { 9 | Address AvatarAddress { get; } 10 | int EventScheduleId { get; } 11 | int EventDungeonId { get; } 12 | int EventDungeonStageId { get; } 13 | IEnumerable Equipments { get; } 14 | IEnumerable Costumes { get; } 15 | IEnumerable Foods { get; } 16 | bool BuyTicketIfNeeded { get; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Lib9c/Action/EquipmentSlotUnlockException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class EquipmentSlotUnlockException : Exception 8 | { 9 | public EquipmentSlotUnlockException() 10 | { 11 | } 12 | 13 | public EquipmentSlotUnlockException(string msg) : base(msg) 14 | { 15 | } 16 | 17 | protected EquipmentSlotUnlockException(SerializationInfo info, StreamingContext context) : base(info, context) 18 | { 19 | } 20 | 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Lib9c/Action/InvalidAddressException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class InvalidAddressException : InvalidOperationException 8 | { 9 | public InvalidAddressException() 10 | { 11 | } 12 | 13 | public InvalidAddressException(string msg) : base(msg) 14 | { 15 | } 16 | 17 | protected InvalidAddressException(SerializationInfo info, StreamingContext context) 18 | : base(info, context) 19 | { 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Lib9c/Action/NotEnoughRankException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class NotEnoughRankException : InvalidOperationException 8 | { 9 | public NotEnoughRankException() 10 | { 11 | } 12 | 13 | public NotEnoughRankException(string message) : base(message) 14 | { 15 | } 16 | 17 | public NotEnoughRankException(SerializationInfo info, StreamingContext context) : 18 | base(info, context) 19 | { 20 | } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Lib9c/Model/State/FailedToUnregisterInShopStateException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Model.State 5 | { 6 | [Serializable] 7 | public class FailedToUnregisterInShopStateException : Exception 8 | { 9 | public FailedToUnregisterInShopStateException(string message) : base(message) 10 | { 11 | } 12 | 13 | protected FailedToUnregisterInShopStateException( 14 | SerializationInfo info, 15 | StreamingContext context) : base(info, context) 16 | { 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Lib9c.Abstractions/IHackAndSlashSweepV3.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using Bencodex.Types; 4 | using Libplanet.Crypto; 5 | 6 | namespace Lib9c.Abstractions 7 | { 8 | public interface IHackAndSlashSweepV3 9 | { 10 | IEnumerable Costumes { get; } 11 | IEnumerable Equipments { get; } 12 | IEnumerable RuneSlotInfos { get; } 13 | Address AvatarAddress { get; } 14 | int ApStoneCount { get; } 15 | int ActionPoint { get; } 16 | int WorldId { get; } 17 | int StageId { get; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Lib9c/Action/ActionPointExceededException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class ActionPointExceededException : InvalidOperationException 8 | { 9 | public ActionPointExceededException() 10 | { 11 | } 12 | 13 | public ActionPointExceededException(string s) : base(s) 14 | { 15 | } 16 | 17 | protected ActionPointExceededException(SerializationInfo info, StreamingContext context) : base(info, context) 18 | { 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Lib9c/Action/AlreadyWorldUnlockedException.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Runtime.Serialization; 3 | 4 | namespace Nekoyume.Action 5 | { 6 | [Serializable] 7 | public class AlreadyWorldUnlockedException: Exception 8 | { 9 | public AlreadyWorldUnlockedException() 10 | { 11 | } 12 | 13 | public AlreadyWorldUnlockedException(string msg) : base(msg) 14 | { 15 | } 16 | 17 | protected AlreadyWorldUnlockedException(SerializationInfo info, StreamingContext context) : base(info, context) 18 | { 19 | } 20 | 21 | } 22 | } 23 | --------------------------------------------------------------------------------