From b1bd89a68731a8c8beb2610d293d3d7d16dad442 Mon Sep 17 00:00:00 2001 From: Reinier Vens Date: Thu, 22 Apr 2021 02:53:06 +0100 Subject: [PATCH] Mini Galaxy Gen Added flags to game manager and player settings to check tutorial status Created alternate galaxy generation process for tutorial --- Assets/{ => Plugins}/Ink.meta | 0 Assets/{ => Plugins}/Ink/compiler.meta | 0 .../Ink/compiler/CharacterRange.cs | 0 .../Ink/compiler/CharacterRange.cs.meta | 0 .../Ink/compiler/CharacterSet.cs | 0 .../Ink/compiler/CharacterSet.cs.meta | 0 .../Ink/compiler/CommandLineInput.cs | 0 .../Ink/compiler/CommandLineInput.cs.meta | 0 Assets/{ => Plugins}/Ink/compiler/Compiler.cs | 0 .../Ink/compiler/Compiler.cs.meta | 0 .../{ => Plugins}/Ink/compiler/FileHandler.cs | 0 .../Ink/compiler/FileHandler.cs.meta | 0 .../{ => Plugins}/Ink/compiler/InkParser.meta | 0 .../compiler/InkParser/CommentEliminator.cs | 0 .../InkParser/CommentEliminator.cs.meta | 0 .../Ink/compiler/InkParser/InkParser.cs | 0 .../Ink/compiler/InkParser/InkParser.cs.meta | 0 .../InkParser/InkParser_AuthorWarning.cs | 0 .../InkParser/InkParser_AuthorWarning.cs.meta | 0 .../InkParser/InkParser_CharacterRanges.cs | 0 .../InkParser_CharacterRanges.cs.meta | 0 .../compiler/InkParser/InkParser_Choices.cs | 0 .../InkParser/InkParser_Choices.cs.meta | 0 .../InkParser/InkParser_CommandLineInput.cs | 0 .../InkParser_CommandLineInput.cs.meta | 0 .../InkParser/InkParser_Conditional.cs | 0 .../InkParser/InkParser_Conditional.cs.meta | 0 .../compiler/InkParser/InkParser_Content.cs | 0 .../InkParser/InkParser_Content.cs.meta | 0 .../compiler/InkParser/InkParser_Divert.cs | 0 .../InkParser/InkParser_Divert.cs.meta | 0 .../InkParser/InkParser_Expressions.cs | 0 .../InkParser/InkParser_Expressions.cs.meta | 0 .../compiler/InkParser/InkParser_Include.cs | 0 .../InkParser/InkParser_Include.cs.meta | 0 .../Ink/compiler/InkParser/InkParser_Knot.cs | 0 .../compiler/InkParser/InkParser_Knot.cs.meta | 0 .../Ink/compiler/InkParser/InkParser_Logic.cs | 0 .../InkParser/InkParser_Logic.cs.meta | 0 .../compiler/InkParser/InkParser_Sequences.cs | 0 .../InkParser/InkParser_Sequences.cs.meta | 0 .../InkParser/InkParser_Statements.cs | 0 .../InkParser/InkParser_Statements.cs.meta | 0 .../Ink/compiler/InkParser/InkParser_Tags.cs | 0 .../compiler/InkParser/InkParser_Tags.cs.meta | 0 .../InkParser/InkParser_Whitespace.cs | 0 .../InkParser/InkParser_Whitespace.cs.meta | 0 .../compiler/InkStringConversionExtensions.cs | 0 .../InkStringConversionExtensions.cs.meta | 0 .../Ink/compiler/ParsedHierarchy.meta | 0 .../compiler/ParsedHierarchy/AuthorWarning.cs | 0 .../ParsedHierarchy/AuthorWarning.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Choice.cs | 0 .../compiler/ParsedHierarchy/Choice.cs.meta | 0 .../compiler/ParsedHierarchy/Conditional.cs | 0 .../ParsedHierarchy/Conditional.cs.meta | 0 .../ConditionalSingleBranch.cs | 0 .../ConditionalSingleBranch.cs.meta | 0 .../ParsedHierarchy/ConstantDeclaration.cs | 0 .../ConstantDeclaration.cs.meta | 0 .../compiler/ParsedHierarchy/ContentList.cs | 0 .../ParsedHierarchy/ContentList.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Divert.cs | 0 .../compiler/ParsedHierarchy/Divert.cs.meta | 0 .../compiler/ParsedHierarchy/DivertTarget.cs | 0 .../ParsedHierarchy/DivertTarget.cs.meta | 0 .../compiler/ParsedHierarchy/Expression.cs | 0 .../ParsedHierarchy/Expression.cs.meta | 0 .../ParsedHierarchy/ExternalDeclaration.cs | 0 .../ExternalDeclaration.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/FlowBase.cs | 0 .../compiler/ParsedHierarchy/FlowBase.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/FlowLevel.cs | 0 .../ParsedHierarchy/FlowLevel.cs.meta | 0 .../compiler/ParsedHierarchy/FunctionCall.cs | 0 .../ParsedHierarchy/FunctionCall.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Gather.cs | 0 .../compiler/ParsedHierarchy/Gather.cs.meta | 0 .../compiler/ParsedHierarchy/INamedContent.cs | 0 .../ParsedHierarchy/INamedContent.cs.meta | 0 .../compiler/ParsedHierarchy/IWeavePoint.cs | 0 .../ParsedHierarchy/IWeavePoint.cs.meta | 0 .../compiler/ParsedHierarchy/Identifier.cs | 0 .../ParsedHierarchy/Identifier.cs.meta | 0 .../compiler/ParsedHierarchy/IncludedFile.cs | 0 .../ParsedHierarchy/IncludedFile.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Knot.cs | 0 .../Ink/compiler/ParsedHierarchy/Knot.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/List.cs | 0 .../Ink/compiler/ParsedHierarchy/List.cs.meta | 0 .../ParsedHierarchy/ListDefinition.cs | 0 .../ParsedHierarchy/ListDefinition.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Number.cs | 0 .../compiler/ParsedHierarchy/Number.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Object.cs | 0 .../compiler/ParsedHierarchy/Object.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Path.cs | 0 .../Ink/compiler/ParsedHierarchy/Path.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Return.cs | 0 .../compiler/ParsedHierarchy/Return.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Sequence.cs | 0 .../compiler/ParsedHierarchy/Sequence.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Stitch.cs | 0 .../compiler/ParsedHierarchy/Stitch.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Story.cs | 0 .../compiler/ParsedHierarchy/Story.cs.meta | 0 .../ParsedHierarchy/StringExpression.cs | 0 .../ParsedHierarchy/StringExpression.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Text.cs | 0 .../Ink/compiler/ParsedHierarchy/Text.cs.meta | 0 .../compiler/ParsedHierarchy/TunnelOnwards.cs | 0 .../ParsedHierarchy/TunnelOnwards.cs.meta | 0 .../ParsedHierarchy/VariableAssignment.cs | 0 .../VariableAssignment.cs.meta | 0 .../ParsedHierarchy/VariableReference.cs | 0 .../ParsedHierarchy/VariableReference.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Weave.cs | 0 .../compiler/ParsedHierarchy/Weave.cs.meta | 0 .../Ink/compiler/ParsedHierarchy/Wrap.cs | 0 .../Ink/compiler/ParsedHierarchy/Wrap.cs.meta | 0 .../{ => Plugins}/Ink/compiler/Plugins.meta | 0 .../Ink/compiler/Plugins/Plugin.cs | 0 .../Ink/compiler/Plugins/Plugin.cs.meta | 0 .../Ink/compiler/Plugins/PluginManager.cs | 0 .../compiler/Plugins/PluginManager.cs.meta | 0 Assets/{ => Plugins}/Ink/compiler/Stats.cs | 0 .../{ => Plugins}/Ink/compiler/Stats.cs.meta | 0 .../Ink/compiler/StringParser.meta | 0 .../Ink/compiler/StringParser/StringParser.cs | 0 .../StringParser/StringParser.cs.meta | 0 .../StringParser/StringParserState.cs | 0 .../StringParser/StringParserState.cs.meta | 0 .../Ink/compiler/ink_compiler.csproj | 0 .../Ink/compiler/ink_compiler.csproj.meta | 0 .../{ => Plugins}/Ink/ink-engine-runtime.meta | 0 .../Ink/ink-engine-runtime/CallStack.cs | 0 .../Ink/ink-engine-runtime/CallStack.cs.meta | 0 .../Ink/ink-engine-runtime/Choice.cs | 0 .../Ink/ink-engine-runtime/Choice.cs.meta | 0 .../Ink/ink-engine-runtime/ChoicePoint.cs | 0 .../ink-engine-runtime/ChoicePoint.cs.meta | 0 .../Ink/ink-engine-runtime/Container.cs | 0 .../Ink/ink-engine-runtime/Container.cs.meta | 0 .../Ink/ink-engine-runtime/ControlCommand.cs | 0 .../ink-engine-runtime/ControlCommand.cs.meta | 0 .../Ink/ink-engine-runtime/DebugMetadata.cs | 0 .../ink-engine-runtime/DebugMetadata.cs.meta | 0 .../Ink/ink-engine-runtime/Divert.cs | 0 .../Ink/ink-engine-runtime/Divert.cs.meta | 0 .../Ink/ink-engine-runtime/Error.cs | 0 .../Ink/ink-engine-runtime/Error.cs.meta | 0 .../Ink/ink-engine-runtime/Flow.cs | 0 .../Ink/ink-engine-runtime/Flow.cs.meta | 0 .../Ink/ink-engine-runtime/Glue.cs | 0 .../Ink/ink-engine-runtime/Glue.cs.meta | 0 .../Ink/ink-engine-runtime/INamedContent.cs | 0 .../ink-engine-runtime/INamedContent.cs.meta | 0 .../Ink/ink-engine-runtime/InkList.cs | 0 .../Ink/ink-engine-runtime/InkList.cs.meta | 0 .../ink-engine-runtime/JsonSerialisation.cs | 0 .../JsonSerialisation.cs.meta | 0 .../Ink/ink-engine-runtime/ListDefinition.cs | 0 .../ink-engine-runtime/ListDefinition.cs.meta | 0 .../ListDefinitionsOrigin.cs | 0 .../ListDefinitionsOrigin.cs.meta | 0 .../ink-engine-runtime/NativeFunctionCall.cs | 0 .../NativeFunctionCall.cs.meta | 0 .../Ink/ink-engine-runtime/Object.cs | 0 .../Ink/ink-engine-runtime/Object.cs.meta | 0 .../Ink/ink-engine-runtime/Path.cs | 0 .../Ink/ink-engine-runtime/Path.cs.meta | 0 .../Ink/ink-engine-runtime/Pointer.cs | 0 .../Ink/ink-engine-runtime/Pointer.cs.meta | 0 .../Ink/ink-engine-runtime/Profiler.cs | 0 .../Ink/ink-engine-runtime/Profiler.cs.meta | 0 .../Ink/ink-engine-runtime/PushPop.cs | 0 .../Ink/ink-engine-runtime/PushPop.cs.meta | 0 .../Ink/ink-engine-runtime/SearchResult.cs | 0 .../ink-engine-runtime/SearchResult.cs.meta | 0 .../Ink/ink-engine-runtime/SimpleJson.cs | 0 .../Ink/ink-engine-runtime/SimpleJson.cs.meta | 0 .../Ink/ink-engine-runtime/StatePatch.cs | 0 .../Ink/ink-engine-runtime/StatePatch.cs.meta | 0 .../Ink/ink-engine-runtime/Story.cs | 0 .../Ink/ink-engine-runtime/Story.cs.meta | 0 .../Ink/ink-engine-runtime/StoryException.cs | 0 .../ink-engine-runtime/StoryException.cs.meta | 0 .../Ink/ink-engine-runtime/StoryState.cs | 0 .../Ink/ink-engine-runtime/StoryState.cs.meta | 0 .../ink-engine-runtime/StringJoinExtension.cs | 0 .../StringJoinExtension.cs.meta | 0 .../Ink/ink-engine-runtime/Tag.cs | 0 .../Ink/ink-engine-runtime/Tag.cs.meta | 0 .../Ink/ink-engine-runtime/Value.cs | 0 .../Ink/ink-engine-runtime/Value.cs.meta | 0 .../ink-engine-runtime/VariableAssignment.cs | 0 .../VariableAssignment.cs.meta | 0 .../ink-engine-runtime/VariableReference.cs | 0 .../VariableReference.cs.meta | 0 .../Ink/ink-engine-runtime/VariablesState.cs | 0 .../ink-engine-runtime/VariablesState.cs.meta | 0 .../Ink/ink-engine-runtime/Void.cs | 0 .../Ink/ink-engine-runtime/Void.cs.meta | 0 .../ink-engine-runtime.csproj | 0 .../ink-engine-runtime.csproj.meta | 0 Assets/Resources/Settings.asset | 4 +- Assets/Scenes/Main Menu.unity | 12 +- Assets/Scripts/Gameplay/ActionGameManager.cs | 99 +++-- Assets/Scripts/Gameplay/GameSettings.cs | 4 + Assets/Scripts/ServerShared/Entity.cs | 2 +- Assets/Scripts/ServerShared/ItemData.cs | 2 +- .../Scripts/ServerShared/LoadoutGenerator.cs | 25 +- .../ServerShared/MarkovNameGenerator.cs | 2 +- Assets/Scripts/ServerShared/PlayerSettings.cs | 1 + .../Scripts/ServerShared/SampleElimination.cs | 3 +- Assets/Scripts/ServerShared/SavedGame.cs | 7 +- Assets/Scripts/ServerShared/Sector.cs | 389 ++++++++++++------ Assets/Scripts/ServerShared/Settings.cs | 38 +- Assets/Scripts/ServerShared/ZoneGenerator.cs | 8 +- Assets/Scripts/UI/MainMenu.cs | 51 ++- Assets/Scripts/UI/SectorMap.cs | 20 +- GameData/AetherDB.msgpack | 4 +- GameData/PlayerSettings.msgpack | 4 +- UserSettings/EditorUserSettings.asset | 2 +- 224 files changed, 446 insertions(+), 231 deletions(-) rename Assets/{ => Plugins}/Ink.meta (100%) rename Assets/{ => Plugins}/Ink/compiler.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/CharacterRange.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/CharacterRange.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/CharacterSet.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/CharacterSet.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/CommandLineInput.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/CommandLineInput.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/Compiler.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/Compiler.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/FileHandler.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/FileHandler.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/CommentEliminator.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/CommentEliminator.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_AuthorWarning.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_AuthorWarning.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_CharacterRanges.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_CharacterRanges.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Choices.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Choices.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_CommandLineInput.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_CommandLineInput.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Conditional.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Conditional.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Content.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Content.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Divert.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Divert.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Expressions.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Expressions.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Include.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Include.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Knot.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Knot.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Logic.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Logic.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Sequences.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Sequences.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Statements.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Statements.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Tags.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Tags.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Whitespace.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkParser/InkParser_Whitespace.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/InkStringConversionExtensions.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/InkStringConversionExtensions.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/AuthorWarning.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/AuthorWarning.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Choice.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Choice.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Conditional.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Conditional.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/ContentList.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/ContentList.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Divert.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Divert.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/DivertTarget.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/DivertTarget.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Expression.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Expression.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/FlowBase.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/FlowBase.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/FlowLevel.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/FlowLevel.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/FunctionCall.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/FunctionCall.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Gather.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Gather.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/INamedContent.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/INamedContent.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/IWeavePoint.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/IWeavePoint.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Identifier.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Identifier.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/IncludedFile.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/IncludedFile.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Knot.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Knot.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/List.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/List.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/ListDefinition.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/ListDefinition.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Number.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Number.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Object.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Object.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Path.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Path.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Return.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Return.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Sequence.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Sequence.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Stitch.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Stitch.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Story.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Story.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/StringExpression.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/StringExpression.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Text.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Text.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/VariableAssignment.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/VariableAssignment.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/VariableReference.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/VariableReference.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Weave.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Weave.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Wrap.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/ParsedHierarchy/Wrap.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/Plugins.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/Plugins/Plugin.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/Plugins/Plugin.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/Plugins/PluginManager.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/Plugins/PluginManager.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/Stats.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/Stats.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/StringParser.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/StringParser/StringParser.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/StringParser/StringParser.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/StringParser/StringParserState.cs (100%) rename Assets/{ => Plugins}/Ink/compiler/StringParser/StringParserState.cs.meta (100%) rename Assets/{ => Plugins}/Ink/compiler/ink_compiler.csproj (100%) rename Assets/{ => Plugins}/Ink/compiler/ink_compiler.csproj.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/CallStack.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/CallStack.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Choice.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Choice.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/ChoicePoint.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/ChoicePoint.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Container.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Container.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/ControlCommand.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/ControlCommand.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/DebugMetadata.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/DebugMetadata.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Divert.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Divert.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Error.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Error.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Flow.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Flow.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Glue.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Glue.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/INamedContent.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/INamedContent.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/InkList.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/InkList.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/JsonSerialisation.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/JsonSerialisation.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/ListDefinition.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/ListDefinition.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/NativeFunctionCall.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/NativeFunctionCall.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Object.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Object.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Path.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Path.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Pointer.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Pointer.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Profiler.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Profiler.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/PushPop.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/PushPop.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/SearchResult.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/SearchResult.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/SimpleJson.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/SimpleJson.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/StatePatch.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/StatePatch.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Story.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Story.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/StoryException.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/StoryException.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/StoryState.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/StoryState.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/StringJoinExtension.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/StringJoinExtension.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Tag.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Tag.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Value.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Value.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/VariableAssignment.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/VariableAssignment.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/VariableReference.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/VariableReference.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/VariablesState.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/VariablesState.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Void.cs (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/Void.cs.meta (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/ink-engine-runtime.csproj (100%) rename Assets/{ => Plugins}/Ink/ink-engine-runtime/ink-engine-runtime.csproj.meta (100%) diff --git a/Assets/Ink.meta b/Assets/Plugins/Ink.meta similarity index 100% rename from Assets/Ink.meta rename to Assets/Plugins/Ink.meta diff --git a/Assets/Ink/compiler.meta b/Assets/Plugins/Ink/compiler.meta similarity index 100% rename from Assets/Ink/compiler.meta rename to Assets/Plugins/Ink/compiler.meta diff --git a/Assets/Ink/compiler/CharacterRange.cs b/Assets/Plugins/Ink/compiler/CharacterRange.cs similarity index 100% rename from Assets/Ink/compiler/CharacterRange.cs rename to Assets/Plugins/Ink/compiler/CharacterRange.cs diff --git a/Assets/Ink/compiler/CharacterRange.cs.meta b/Assets/Plugins/Ink/compiler/CharacterRange.cs.meta similarity index 100% rename from Assets/Ink/compiler/CharacterRange.cs.meta rename to Assets/Plugins/Ink/compiler/CharacterRange.cs.meta diff --git a/Assets/Ink/compiler/CharacterSet.cs b/Assets/Plugins/Ink/compiler/CharacterSet.cs similarity index 100% rename from Assets/Ink/compiler/CharacterSet.cs rename to Assets/Plugins/Ink/compiler/CharacterSet.cs diff --git a/Assets/Ink/compiler/CharacterSet.cs.meta b/Assets/Plugins/Ink/compiler/CharacterSet.cs.meta similarity index 100% rename from Assets/Ink/compiler/CharacterSet.cs.meta rename to Assets/Plugins/Ink/compiler/CharacterSet.cs.meta diff --git a/Assets/Ink/compiler/CommandLineInput.cs b/Assets/Plugins/Ink/compiler/CommandLineInput.cs similarity index 100% rename from Assets/Ink/compiler/CommandLineInput.cs rename to Assets/Plugins/Ink/compiler/CommandLineInput.cs diff --git a/Assets/Ink/compiler/CommandLineInput.cs.meta b/Assets/Plugins/Ink/compiler/CommandLineInput.cs.meta similarity index 100% rename from Assets/Ink/compiler/CommandLineInput.cs.meta rename to Assets/Plugins/Ink/compiler/CommandLineInput.cs.meta diff --git a/Assets/Ink/compiler/Compiler.cs b/Assets/Plugins/Ink/compiler/Compiler.cs similarity index 100% rename from Assets/Ink/compiler/Compiler.cs rename to Assets/Plugins/Ink/compiler/Compiler.cs diff --git a/Assets/Ink/compiler/Compiler.cs.meta b/Assets/Plugins/Ink/compiler/Compiler.cs.meta similarity index 100% rename from Assets/Ink/compiler/Compiler.cs.meta rename to Assets/Plugins/Ink/compiler/Compiler.cs.meta diff --git a/Assets/Ink/compiler/FileHandler.cs b/Assets/Plugins/Ink/compiler/FileHandler.cs similarity index 100% rename from Assets/Ink/compiler/FileHandler.cs rename to Assets/Plugins/Ink/compiler/FileHandler.cs diff --git a/Assets/Ink/compiler/FileHandler.cs.meta b/Assets/Plugins/Ink/compiler/FileHandler.cs.meta similarity index 100% rename from Assets/Ink/compiler/FileHandler.cs.meta rename to Assets/Plugins/Ink/compiler/FileHandler.cs.meta diff --git a/Assets/Ink/compiler/InkParser.meta b/Assets/Plugins/Ink/compiler/InkParser.meta similarity index 100% rename from Assets/Ink/compiler/InkParser.meta rename to Assets/Plugins/Ink/compiler/InkParser.meta diff --git a/Assets/Ink/compiler/InkParser/CommentEliminator.cs b/Assets/Plugins/Ink/compiler/InkParser/CommentEliminator.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/CommentEliminator.cs rename to Assets/Plugins/Ink/compiler/InkParser/CommentEliminator.cs diff --git a/Assets/Ink/compiler/InkParser/CommentEliminator.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/CommentEliminator.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/CommentEliminator.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/CommentEliminator.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_AuthorWarning.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_AuthorWarning.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_AuthorWarning.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_AuthorWarning.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_AuthorWarning.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_AuthorWarning.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_AuthorWarning.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_AuthorWarning.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_CharacterRanges.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_CharacterRanges.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_CharacterRanges.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_CharacterRanges.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_CharacterRanges.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_CharacterRanges.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_CharacterRanges.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_CharacterRanges.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_Choices.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Choices.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Choices.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Choices.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_Choices.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Choices.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Choices.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Choices.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_CommandLineInput.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_CommandLineInput.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_CommandLineInput.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_CommandLineInput.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_CommandLineInput.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_CommandLineInput.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_CommandLineInput.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_CommandLineInput.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_Conditional.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Conditional.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Conditional.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Conditional.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_Conditional.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Conditional.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Conditional.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Conditional.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_Content.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Content.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Content.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Content.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_Content.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Content.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Content.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Content.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_Divert.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Divert.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Divert.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Divert.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_Divert.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Divert.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Divert.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Divert.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_Expressions.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Expressions.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Expressions.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Expressions.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_Expressions.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Expressions.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Expressions.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Expressions.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_Include.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Include.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Include.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Include.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_Include.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Include.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Include.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Include.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_Knot.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Knot.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Knot.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Knot.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_Knot.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Knot.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Knot.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Knot.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_Logic.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Logic.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Logic.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Logic.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_Logic.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Logic.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Logic.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Logic.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_Sequences.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Sequences.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Sequences.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Sequences.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_Sequences.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Sequences.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Sequences.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Sequences.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_Statements.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Statements.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Statements.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Statements.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_Statements.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Statements.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Statements.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Statements.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_Tags.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Tags.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Tags.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Tags.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_Tags.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Tags.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Tags.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Tags.cs.meta diff --git a/Assets/Ink/compiler/InkParser/InkParser_Whitespace.cs b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Whitespace.cs similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Whitespace.cs rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Whitespace.cs diff --git a/Assets/Ink/compiler/InkParser/InkParser_Whitespace.cs.meta b/Assets/Plugins/Ink/compiler/InkParser/InkParser_Whitespace.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkParser/InkParser_Whitespace.cs.meta rename to Assets/Plugins/Ink/compiler/InkParser/InkParser_Whitespace.cs.meta diff --git a/Assets/Ink/compiler/InkStringConversionExtensions.cs b/Assets/Plugins/Ink/compiler/InkStringConversionExtensions.cs similarity index 100% rename from Assets/Ink/compiler/InkStringConversionExtensions.cs rename to Assets/Plugins/Ink/compiler/InkStringConversionExtensions.cs diff --git a/Assets/Ink/compiler/InkStringConversionExtensions.cs.meta b/Assets/Plugins/Ink/compiler/InkStringConversionExtensions.cs.meta similarity index 100% rename from Assets/Ink/compiler/InkStringConversionExtensions.cs.meta rename to Assets/Plugins/Ink/compiler/InkStringConversionExtensions.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/AuthorWarning.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/AuthorWarning.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/AuthorWarning.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/AuthorWarning.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/AuthorWarning.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/AuthorWarning.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/AuthorWarning.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/AuthorWarning.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Choice.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Choice.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Choice.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Choice.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Choice.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Choice.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Choice.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Choice.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Conditional.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Conditional.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Conditional.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Conditional.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Conditional.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Conditional.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Conditional.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Conditional.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/ConditionalSingleBranch.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/ConstantDeclaration.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/ContentList.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/ContentList.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/ContentList.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/ContentList.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/ContentList.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/ContentList.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/ContentList.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/ContentList.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Divert.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Divert.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Divert.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Divert.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Divert.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Divert.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Divert.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Divert.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/DivertTarget.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/DivertTarget.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/DivertTarget.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/DivertTarget.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/DivertTarget.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/DivertTarget.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/DivertTarget.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/DivertTarget.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Expression.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Expression.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Expression.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Expression.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Expression.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Expression.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Expression.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Expression.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/ExternalDeclaration.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/FlowBase.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/FlowBase.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/FlowBase.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/FlowBase.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/FlowBase.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/FlowBase.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/FlowBase.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/FlowBase.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/FlowLevel.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/FlowLevel.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/FlowLevel.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/FlowLevel.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/FlowLevel.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/FlowLevel.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/FlowLevel.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/FlowLevel.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/FunctionCall.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/FunctionCall.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/FunctionCall.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/FunctionCall.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/FunctionCall.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/FunctionCall.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/FunctionCall.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/FunctionCall.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Gather.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Gather.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Gather.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Gather.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Gather.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Gather.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Gather.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Gather.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/INamedContent.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/INamedContent.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/INamedContent.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/INamedContent.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/INamedContent.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/INamedContent.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/INamedContent.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/INamedContent.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/IWeavePoint.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/IWeavePoint.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/IWeavePoint.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/IWeavePoint.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/IWeavePoint.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/IWeavePoint.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/IWeavePoint.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/IWeavePoint.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Identifier.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Identifier.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Identifier.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Identifier.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Identifier.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Identifier.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Identifier.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Identifier.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/IncludedFile.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/IncludedFile.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/IncludedFile.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/IncludedFile.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/IncludedFile.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/IncludedFile.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/IncludedFile.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/IncludedFile.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Knot.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Knot.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Knot.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Knot.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Knot.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Knot.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Knot.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Knot.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/List.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/List.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/List.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/List.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/List.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/List.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/List.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/List.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/ListDefinition.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/ListDefinition.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/ListDefinition.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/ListDefinition.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/ListDefinition.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/ListDefinition.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/ListDefinition.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/ListDefinition.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Number.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Number.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Number.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Number.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Number.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Number.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Number.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Number.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Object.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Object.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Object.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Object.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Object.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Object.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Object.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Object.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Path.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Path.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Path.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Path.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Path.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Path.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Path.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Path.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Return.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Return.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Return.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Return.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Return.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Return.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Return.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Return.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Sequence.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Sequence.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Sequence.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Sequence.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Sequence.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Sequence.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Sequence.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Sequence.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Stitch.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Stitch.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Stitch.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Stitch.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Stitch.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Stitch.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Stitch.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Stitch.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Story.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Story.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Story.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Story.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Story.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Story.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Story.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Story.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/StringExpression.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/StringExpression.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/StringExpression.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/StringExpression.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/StringExpression.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/StringExpression.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/StringExpression.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/StringExpression.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Text.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Text.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Text.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Text.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Text.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Text.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Text.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Text.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/TunnelOnwards.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/VariableAssignment.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/VariableAssignment.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/VariableAssignment.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/VariableAssignment.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/VariableAssignment.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/VariableAssignment.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/VariableAssignment.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/VariableAssignment.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/VariableReference.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/VariableReference.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/VariableReference.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/VariableReference.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/VariableReference.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/VariableReference.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/VariableReference.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/VariableReference.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Weave.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Weave.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Weave.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Weave.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Weave.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Weave.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Weave.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Weave.cs.meta diff --git a/Assets/Ink/compiler/ParsedHierarchy/Wrap.cs b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Wrap.cs similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Wrap.cs rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Wrap.cs diff --git a/Assets/Ink/compiler/ParsedHierarchy/Wrap.cs.meta b/Assets/Plugins/Ink/compiler/ParsedHierarchy/Wrap.cs.meta similarity index 100% rename from Assets/Ink/compiler/ParsedHierarchy/Wrap.cs.meta rename to Assets/Plugins/Ink/compiler/ParsedHierarchy/Wrap.cs.meta diff --git a/Assets/Ink/compiler/Plugins.meta b/Assets/Plugins/Ink/compiler/Plugins.meta similarity index 100% rename from Assets/Ink/compiler/Plugins.meta rename to Assets/Plugins/Ink/compiler/Plugins.meta diff --git a/Assets/Ink/compiler/Plugins/Plugin.cs b/Assets/Plugins/Ink/compiler/Plugins/Plugin.cs similarity index 100% rename from Assets/Ink/compiler/Plugins/Plugin.cs rename to Assets/Plugins/Ink/compiler/Plugins/Plugin.cs diff --git a/Assets/Ink/compiler/Plugins/Plugin.cs.meta b/Assets/Plugins/Ink/compiler/Plugins/Plugin.cs.meta similarity index 100% rename from Assets/Ink/compiler/Plugins/Plugin.cs.meta rename to Assets/Plugins/Ink/compiler/Plugins/Plugin.cs.meta diff --git a/Assets/Ink/compiler/Plugins/PluginManager.cs b/Assets/Plugins/Ink/compiler/Plugins/PluginManager.cs similarity index 100% rename from Assets/Ink/compiler/Plugins/PluginManager.cs rename to Assets/Plugins/Ink/compiler/Plugins/PluginManager.cs diff --git a/Assets/Ink/compiler/Plugins/PluginManager.cs.meta b/Assets/Plugins/Ink/compiler/Plugins/PluginManager.cs.meta similarity index 100% rename from Assets/Ink/compiler/Plugins/PluginManager.cs.meta rename to Assets/Plugins/Ink/compiler/Plugins/PluginManager.cs.meta diff --git a/Assets/Ink/compiler/Stats.cs b/Assets/Plugins/Ink/compiler/Stats.cs similarity index 100% rename from Assets/Ink/compiler/Stats.cs rename to Assets/Plugins/Ink/compiler/Stats.cs diff --git a/Assets/Ink/compiler/Stats.cs.meta b/Assets/Plugins/Ink/compiler/Stats.cs.meta similarity index 100% rename from Assets/Ink/compiler/Stats.cs.meta rename to Assets/Plugins/Ink/compiler/Stats.cs.meta diff --git a/Assets/Ink/compiler/StringParser.meta b/Assets/Plugins/Ink/compiler/StringParser.meta similarity index 100% rename from Assets/Ink/compiler/StringParser.meta rename to Assets/Plugins/Ink/compiler/StringParser.meta diff --git a/Assets/Ink/compiler/StringParser/StringParser.cs b/Assets/Plugins/Ink/compiler/StringParser/StringParser.cs similarity index 100% rename from Assets/Ink/compiler/StringParser/StringParser.cs rename to Assets/Plugins/Ink/compiler/StringParser/StringParser.cs diff --git a/Assets/Ink/compiler/StringParser/StringParser.cs.meta b/Assets/Plugins/Ink/compiler/StringParser/StringParser.cs.meta similarity index 100% rename from Assets/Ink/compiler/StringParser/StringParser.cs.meta rename to Assets/Plugins/Ink/compiler/StringParser/StringParser.cs.meta diff --git a/Assets/Ink/compiler/StringParser/StringParserState.cs b/Assets/Plugins/Ink/compiler/StringParser/StringParserState.cs similarity index 100% rename from Assets/Ink/compiler/StringParser/StringParserState.cs rename to Assets/Plugins/Ink/compiler/StringParser/StringParserState.cs diff --git a/Assets/Ink/compiler/StringParser/StringParserState.cs.meta b/Assets/Plugins/Ink/compiler/StringParser/StringParserState.cs.meta similarity index 100% rename from Assets/Ink/compiler/StringParser/StringParserState.cs.meta rename to Assets/Plugins/Ink/compiler/StringParser/StringParserState.cs.meta diff --git a/Assets/Ink/compiler/ink_compiler.csproj b/Assets/Plugins/Ink/compiler/ink_compiler.csproj similarity index 100% rename from Assets/Ink/compiler/ink_compiler.csproj rename to Assets/Plugins/Ink/compiler/ink_compiler.csproj diff --git a/Assets/Ink/compiler/ink_compiler.csproj.meta b/Assets/Plugins/Ink/compiler/ink_compiler.csproj.meta similarity index 100% rename from Assets/Ink/compiler/ink_compiler.csproj.meta rename to Assets/Plugins/Ink/compiler/ink_compiler.csproj.meta diff --git a/Assets/Ink/ink-engine-runtime.meta b/Assets/Plugins/Ink/ink-engine-runtime.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime.meta rename to Assets/Plugins/Ink/ink-engine-runtime.meta diff --git a/Assets/Ink/ink-engine-runtime/CallStack.cs b/Assets/Plugins/Ink/ink-engine-runtime/CallStack.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/CallStack.cs rename to Assets/Plugins/Ink/ink-engine-runtime/CallStack.cs diff --git a/Assets/Ink/ink-engine-runtime/CallStack.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/CallStack.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/CallStack.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/CallStack.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Choice.cs b/Assets/Plugins/Ink/ink-engine-runtime/Choice.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Choice.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Choice.cs diff --git a/Assets/Ink/ink-engine-runtime/Choice.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Choice.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Choice.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Choice.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/ChoicePoint.cs b/Assets/Plugins/Ink/ink-engine-runtime/ChoicePoint.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/ChoicePoint.cs rename to Assets/Plugins/Ink/ink-engine-runtime/ChoicePoint.cs diff --git a/Assets/Ink/ink-engine-runtime/ChoicePoint.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/ChoicePoint.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/ChoicePoint.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/ChoicePoint.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Container.cs b/Assets/Plugins/Ink/ink-engine-runtime/Container.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Container.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Container.cs diff --git a/Assets/Ink/ink-engine-runtime/Container.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Container.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Container.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Container.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/ControlCommand.cs b/Assets/Plugins/Ink/ink-engine-runtime/ControlCommand.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/ControlCommand.cs rename to Assets/Plugins/Ink/ink-engine-runtime/ControlCommand.cs diff --git a/Assets/Ink/ink-engine-runtime/ControlCommand.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/ControlCommand.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/ControlCommand.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/ControlCommand.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/DebugMetadata.cs b/Assets/Plugins/Ink/ink-engine-runtime/DebugMetadata.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/DebugMetadata.cs rename to Assets/Plugins/Ink/ink-engine-runtime/DebugMetadata.cs diff --git a/Assets/Ink/ink-engine-runtime/DebugMetadata.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/DebugMetadata.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/DebugMetadata.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/DebugMetadata.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Divert.cs b/Assets/Plugins/Ink/ink-engine-runtime/Divert.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Divert.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Divert.cs diff --git a/Assets/Ink/ink-engine-runtime/Divert.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Divert.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Divert.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Divert.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Error.cs b/Assets/Plugins/Ink/ink-engine-runtime/Error.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Error.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Error.cs diff --git a/Assets/Ink/ink-engine-runtime/Error.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Error.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Error.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Error.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Flow.cs b/Assets/Plugins/Ink/ink-engine-runtime/Flow.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Flow.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Flow.cs diff --git a/Assets/Ink/ink-engine-runtime/Flow.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Flow.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Flow.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Flow.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Glue.cs b/Assets/Plugins/Ink/ink-engine-runtime/Glue.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Glue.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Glue.cs diff --git a/Assets/Ink/ink-engine-runtime/Glue.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Glue.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Glue.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Glue.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/INamedContent.cs b/Assets/Plugins/Ink/ink-engine-runtime/INamedContent.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/INamedContent.cs rename to Assets/Plugins/Ink/ink-engine-runtime/INamedContent.cs diff --git a/Assets/Ink/ink-engine-runtime/INamedContent.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/INamedContent.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/INamedContent.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/INamedContent.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/InkList.cs b/Assets/Plugins/Ink/ink-engine-runtime/InkList.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/InkList.cs rename to Assets/Plugins/Ink/ink-engine-runtime/InkList.cs diff --git a/Assets/Ink/ink-engine-runtime/InkList.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/InkList.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/InkList.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/InkList.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/JsonSerialisation.cs b/Assets/Plugins/Ink/ink-engine-runtime/JsonSerialisation.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/JsonSerialisation.cs rename to Assets/Plugins/Ink/ink-engine-runtime/JsonSerialisation.cs diff --git a/Assets/Ink/ink-engine-runtime/JsonSerialisation.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/JsonSerialisation.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/JsonSerialisation.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/JsonSerialisation.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/ListDefinition.cs b/Assets/Plugins/Ink/ink-engine-runtime/ListDefinition.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/ListDefinition.cs rename to Assets/Plugins/Ink/ink-engine-runtime/ListDefinition.cs diff --git a/Assets/Ink/ink-engine-runtime/ListDefinition.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/ListDefinition.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/ListDefinition.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/ListDefinition.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs b/Assets/Plugins/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs rename to Assets/Plugins/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs diff --git a/Assets/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/ListDefinitionsOrigin.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/NativeFunctionCall.cs b/Assets/Plugins/Ink/ink-engine-runtime/NativeFunctionCall.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/NativeFunctionCall.cs rename to Assets/Plugins/Ink/ink-engine-runtime/NativeFunctionCall.cs diff --git a/Assets/Ink/ink-engine-runtime/NativeFunctionCall.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/NativeFunctionCall.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/NativeFunctionCall.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/NativeFunctionCall.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Object.cs b/Assets/Plugins/Ink/ink-engine-runtime/Object.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Object.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Object.cs diff --git a/Assets/Ink/ink-engine-runtime/Object.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Object.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Object.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Object.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Path.cs b/Assets/Plugins/Ink/ink-engine-runtime/Path.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Path.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Path.cs diff --git a/Assets/Ink/ink-engine-runtime/Path.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Path.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Path.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Path.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Pointer.cs b/Assets/Plugins/Ink/ink-engine-runtime/Pointer.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Pointer.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Pointer.cs diff --git a/Assets/Ink/ink-engine-runtime/Pointer.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Pointer.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Pointer.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Pointer.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Profiler.cs b/Assets/Plugins/Ink/ink-engine-runtime/Profiler.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Profiler.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Profiler.cs diff --git a/Assets/Ink/ink-engine-runtime/Profiler.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Profiler.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Profiler.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Profiler.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/PushPop.cs b/Assets/Plugins/Ink/ink-engine-runtime/PushPop.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/PushPop.cs rename to Assets/Plugins/Ink/ink-engine-runtime/PushPop.cs diff --git a/Assets/Ink/ink-engine-runtime/PushPop.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/PushPop.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/PushPop.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/PushPop.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/SearchResult.cs b/Assets/Plugins/Ink/ink-engine-runtime/SearchResult.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/SearchResult.cs rename to Assets/Plugins/Ink/ink-engine-runtime/SearchResult.cs diff --git a/Assets/Ink/ink-engine-runtime/SearchResult.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/SearchResult.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/SearchResult.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/SearchResult.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/SimpleJson.cs b/Assets/Plugins/Ink/ink-engine-runtime/SimpleJson.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/SimpleJson.cs rename to Assets/Plugins/Ink/ink-engine-runtime/SimpleJson.cs diff --git a/Assets/Ink/ink-engine-runtime/SimpleJson.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/SimpleJson.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/SimpleJson.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/SimpleJson.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/StatePatch.cs b/Assets/Plugins/Ink/ink-engine-runtime/StatePatch.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/StatePatch.cs rename to Assets/Plugins/Ink/ink-engine-runtime/StatePatch.cs diff --git a/Assets/Ink/ink-engine-runtime/StatePatch.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/StatePatch.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/StatePatch.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/StatePatch.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Story.cs b/Assets/Plugins/Ink/ink-engine-runtime/Story.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Story.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Story.cs diff --git a/Assets/Ink/ink-engine-runtime/Story.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Story.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Story.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Story.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/StoryException.cs b/Assets/Plugins/Ink/ink-engine-runtime/StoryException.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/StoryException.cs rename to Assets/Plugins/Ink/ink-engine-runtime/StoryException.cs diff --git a/Assets/Ink/ink-engine-runtime/StoryException.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/StoryException.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/StoryException.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/StoryException.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/StoryState.cs b/Assets/Plugins/Ink/ink-engine-runtime/StoryState.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/StoryState.cs rename to Assets/Plugins/Ink/ink-engine-runtime/StoryState.cs diff --git a/Assets/Ink/ink-engine-runtime/StoryState.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/StoryState.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/StoryState.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/StoryState.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/StringJoinExtension.cs b/Assets/Plugins/Ink/ink-engine-runtime/StringJoinExtension.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/StringJoinExtension.cs rename to Assets/Plugins/Ink/ink-engine-runtime/StringJoinExtension.cs diff --git a/Assets/Ink/ink-engine-runtime/StringJoinExtension.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/StringJoinExtension.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/StringJoinExtension.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/StringJoinExtension.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Tag.cs b/Assets/Plugins/Ink/ink-engine-runtime/Tag.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Tag.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Tag.cs diff --git a/Assets/Ink/ink-engine-runtime/Tag.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Tag.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Tag.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Tag.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Value.cs b/Assets/Plugins/Ink/ink-engine-runtime/Value.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Value.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Value.cs diff --git a/Assets/Ink/ink-engine-runtime/Value.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Value.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Value.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Value.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/VariableAssignment.cs b/Assets/Plugins/Ink/ink-engine-runtime/VariableAssignment.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/VariableAssignment.cs rename to Assets/Plugins/Ink/ink-engine-runtime/VariableAssignment.cs diff --git a/Assets/Ink/ink-engine-runtime/VariableAssignment.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/VariableAssignment.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/VariableAssignment.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/VariableAssignment.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/VariableReference.cs b/Assets/Plugins/Ink/ink-engine-runtime/VariableReference.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/VariableReference.cs rename to Assets/Plugins/Ink/ink-engine-runtime/VariableReference.cs diff --git a/Assets/Ink/ink-engine-runtime/VariableReference.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/VariableReference.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/VariableReference.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/VariableReference.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/VariablesState.cs b/Assets/Plugins/Ink/ink-engine-runtime/VariablesState.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/VariablesState.cs rename to Assets/Plugins/Ink/ink-engine-runtime/VariablesState.cs diff --git a/Assets/Ink/ink-engine-runtime/VariablesState.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/VariablesState.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/VariablesState.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/VariablesState.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/Void.cs b/Assets/Plugins/Ink/ink-engine-runtime/Void.cs similarity index 100% rename from Assets/Ink/ink-engine-runtime/Void.cs rename to Assets/Plugins/Ink/ink-engine-runtime/Void.cs diff --git a/Assets/Ink/ink-engine-runtime/Void.cs.meta b/Assets/Plugins/Ink/ink-engine-runtime/Void.cs.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/Void.cs.meta rename to Assets/Plugins/Ink/ink-engine-runtime/Void.cs.meta diff --git a/Assets/Ink/ink-engine-runtime/ink-engine-runtime.csproj b/Assets/Plugins/Ink/ink-engine-runtime/ink-engine-runtime.csproj similarity index 100% rename from Assets/Ink/ink-engine-runtime/ink-engine-runtime.csproj rename to Assets/Plugins/Ink/ink-engine-runtime/ink-engine-runtime.csproj diff --git a/Assets/Ink/ink-engine-runtime/ink-engine-runtime.csproj.meta b/Assets/Plugins/Ink/ink-engine-runtime/ink-engine-runtime.csproj.meta similarity index 100% rename from Assets/Ink/ink-engine-runtime/ink-engine-runtime.csproj.meta rename to Assets/Plugins/Ink/ink-engine-runtime/ink-engine-runtime.csproj.meta diff --git a/Assets/Resources/Settings.asset b/Assets/Resources/Settings.asset index 72963dd53..2f2c337aa 100644 --- a/Assets/Resources/Settings.asset +++ b/Assets/Resources/Settings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:641b4c172ddb913405777b54a4c27f5376f697ea6a5c4de1b3b23186379dab8d -size 11840 +oid sha256:9ca555be1e87cac142652f528372ac38243ecc0266fd94879a3b9b1a5a0b9644 +size 12324 diff --git a/Assets/Scenes/Main Menu.unity b/Assets/Scenes/Main Menu.unity index d908871f0..ac4177db3 100644 --- a/Assets/Scenes/Main Menu.unity +++ b/Assets/Scenes/Main Menu.unity @@ -802,8 +802,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 741153267} - m_LocalRotation: {x: 0.0155069195, y: 0.9502416, z: -0.30741316, w: 0.047933277} - m_LocalPosition: {x: -117.52002, y: -77.087425, z: 149.09026} + m_LocalRotation: {x: 0.015506903, y: 0.9502416, z: -0.30741313, w: 0.047933225} + m_LocalPosition: {x: -117.51999, y: -77.08743, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - {fileID: 412917866} @@ -1234,8 +1234,8 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 965376321} - m_LocalRotation: {x: 0.0155069195, y: 0.9502416, z: -0.30741316, w: 0.047933277} - m_LocalPosition: {x: -117.52002, y: -77.087425, z: 149.09026} + m_LocalRotation: {x: 0.015506903, y: 0.9502416, z: -0.30741313, w: 0.047933225} + m_LocalPosition: {x: -117.51999, y: -77.08743, z: 149.09026} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} @@ -2321,7 +2321,7 @@ PrefabInstance: - target: {fileID: 3664209305474245377, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchoredPosition.x - value: 60.98 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3664209305474245377, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} @@ -2346,7 +2346,7 @@ PrefabInstance: - target: {fileID: 3664209306888449100, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} propertyPath: m_AnchoredPosition.x - value: 55.675 + value: 0 objectReference: {fileID: 0} - target: {fileID: 3664209306888449100, guid: 3d8d9cbf10b12214e98891c1f03c1e99, type: 3} diff --git a/Assets/Scripts/Gameplay/ActionGameManager.cs b/Assets/Scripts/Gameplay/ActionGameManager.cs index 771f2c677..83fd149fa 100644 --- a/Assets/Scripts/Gameplay/ActionGameManager.cs +++ b/Assets/Scripts/Gameplay/ActionGameManager.cs @@ -65,6 +65,7 @@ public class ActionGameManager : MonoBehaviour } public static Sector CurrentSector; + public static bool IsTutorial; public GameSettings Settings; //public string StarterShipTemplate = "Longinus"; @@ -186,6 +187,10 @@ public class ActionGameManager : MonoBehaviour public void SaveState() { PlayerSettings.SavedRun = CurrentSector == null ? null : new SavedGame(CurrentSector, Zone, DockedEntity ?? CurrentEntity); + if(PlayerSettings.SavedRun != null) + { + PlayerSettings.SavedRun.IsTutorial = IsTutorial; + } SavePlayerSettings(); } @@ -457,12 +462,16 @@ public class ActionGameManager : MonoBehaviour { var nearestFaction = CurrentSector.Factions.MinBy(f => CurrentSector.HomeZones[f].Distance[Zone.SectorZone]); - var loadoutGenerator = new LoadoutGenerator( + var loadoutGenerator = IsTutorial ? new LoadoutGenerator( ref ItemManager.Random, ItemManager, CurrentSector, Zone.SectorZone, nearestFaction, + .5f) : new LoadoutGenerator( + ref ItemManager.Random, + ItemManager, + nearestFaction, .5f); var turret = EntitySerializer.Unpack(ItemManager, Zone, loadoutGenerator.GenerateTurretLoadout(), true); @@ -473,47 +482,47 @@ public class ActionGameManager : MonoBehaviour turret.Activate(); }); - ConsoleController.AddCommand("pingscene", - _ => - { - var startTime = Time.time; - Observable.EveryUpdate().TakeWhile(_ => Time.time - startTime < 5).Subscribe( - _ => Debug.Log($"{(int) (Time.time - startTime)}"), - () => - { - var nearestFaction = CurrentSector.Factions.MinBy(f => CurrentSector.HomeZones[f].Distance[Zone.SectorZone]); - var nearestFactionHomeZone = CurrentSector.HomeZones[nearestFaction]; - var factionPresence = nearestFaction.InfluenceDistance - nearestFactionHomeZone.Distance[Zone.SectorZone] + 1; - - var loadoutGenerator = new LoadoutGenerator( - ref ItemManager.Random, - ItemManager, - CurrentSector, - Zone.SectorZone, - nearestFaction, - .5f); - - for (int i = 0; i < 8; i++) - { - var ship = EntitySerializer.Unpack(ItemManager, Zone, loadoutGenerator.GenerateShipLoadout(), true); - ship.Position.xz = _currentEntity.Position.xz + - ItemManager.Random.NextFloat2Direction() * ItemManager.Random.NextFloat(50, 500); - ship.Zone = Zone; - Zone.Entities.Add(ship); - ship.Activate(); - } - - for (int i = 0; i < 8; i++) - { - var turret = EntitySerializer.Unpack(ItemManager, Zone, loadoutGenerator.GenerateTurretLoadout(), true); - turret.Position.xz = _currentEntity.Position.xz + - ItemManager.Random.NextFloat2Direction() * ItemManager.Random.NextFloat(50, 500); - turret.Zone = Zone; - Zone.Entities.Add(turret); - turret.Activate(); - } - }); - }); + // ConsoleController.AddCommand("pingscene", + // _ => + // { + // var startTime = Time.time; + // Observable.EveryUpdate().TakeWhile(_ => Time.time - startTime < 5).Subscribe( + // _ => Debug.Log($"{(int) (Time.time - startTime)}"), + // () => + // { + // var nearestFaction = CurrentSector.Factions.MinBy(f => CurrentSector.HomeZones[f].Distance[Zone.SectorZone]); + // var nearestFactionHomeZone = CurrentSector.HomeZones[nearestFaction]; + // var factionPresence = nearestFaction.InfluenceDistance - nearestFactionHomeZone.Distance[Zone.SectorZone] + 1; + // + // var loadoutGenerator = new LoadoutGenerator( + // ref ItemManager.Random, + // ItemManager, + // CurrentSector, + // Zone.SectorZone, + // nearestFaction, + // .5f); + // + // for (int i = 0; i < 8; i++) + // { + // var ship = EntitySerializer.Unpack(ItemManager, Zone, loadoutGenerator.GenerateShipLoadout(), true); + // ship.Position.xz = _currentEntity.Position.xz + + // ItemManager.Random.NextFloat2Direction() * ItemManager.Random.NextFloat(50, 500); + // ship.Zone = Zone; + // Zone.Entities.Add(ship); + // ship.Activate(); + // } + // + // for (int i = 0; i < 8; i++) + // { + // var turret = EntitySerializer.Unpack(ItemManager, Zone, loadoutGenerator.GenerateTurretLoadout(), true); + // turret.Position.xz = _currentEntity.Position.xz + + // ItemManager.Random.NextFloat2Direction() * ItemManager.Random.NextFloat(50, 500); + // turret.Zone = Zone; + // Zone.Entities.Add(turret); + // turret.Activate(); + // } + // }); + // }); } public void BeginDrag(DragObject dragObject) @@ -584,7 +593,8 @@ public class ActionGameManager : MonoBehaviour ItemManager, Settings.ZoneSettings, CurrentSector, - sectorZone + sectorZone, + IsTutorial ); sectorZone.Contents = new Zone(ItemManager, Settings.PlanetSettings, sectorZone.PackedContents, sectorZone); } @@ -682,7 +692,8 @@ public class ActionGameManager : MonoBehaviour { SectorMap.QueueZoneReveal(CurrentSector.Entrance.AdjacentZones.Prepend(CurrentSector.Entrance)); PopulateLevel(CurrentSector.Entrance); - var loadoutGenerator = new LoadoutGenerator(ref ItemManager.Random, ItemManager, CurrentSector, Zone.SectorZone, null, 2); + var loadoutGenerator = IsTutorial ? new LoadoutGenerator(ref ItemManager.Random, ItemManager, null, 2) : + new LoadoutGenerator(ref ItemManager.Random, ItemManager, CurrentSector, Zone.SectorZone, null, 2); var ship = EntitySerializer.Unpack( ItemManager, Zone, diff --git a/Assets/Scripts/Gameplay/GameSettings.cs b/Assets/Scripts/Gameplay/GameSettings.cs index 7b2520200..fcc0a63c0 100644 --- a/Assets/Scripts/Gameplay/GameSettings.cs +++ b/Assets/Scripts/Gameplay/GameSettings.cs @@ -25,6 +25,10 @@ public class GameSettings : ScriptableObject public int AsteroidMeshCount = 5; public float MinimapAsteroidSize = 3; public float PlanetRotationSpeed = 1; + public NameGeneratorSettings NameGeneratorSettings; + public TutorialGenerationSettings TutorialGenerationSettings; + public SectorBackgroundSettings TutorialBackgroundSettings; + public SectorBackgroundSettings SectorBackgroundSettings; public SectorGenerationSettings SectorGenerationSettings; public BodySettingsCollection[] BodySettingsCollections; public PlanetSettings PlanetSettings; diff --git a/Assets/Scripts/ServerShared/Entity.cs b/Assets/Scripts/ServerShared/Entity.cs index d1f44d509..f881a47f5 100644 --- a/Assets/Scripts/ServerShared/Entity.cs +++ b/Assets/Scripts/ServerShared/Entity.cs @@ -1141,7 +1141,7 @@ public class EquippedItem ThermalPerformance = Data.Performance(temp); DurabilityPerformance = EquippableItem.Durability / Data.Durability; var performanceThreshold = Entity.Settings.ShutdownPerformance; - Wear = (1 - pow(Data.Performance(temp), + Wear = (1 - pow(ThermalPerformance, (1 - pow(EquippableItem.Quality, ItemManager.GameplaySettings.QualityWearExponent)) * ItemManager.GameplaySettings.ThermalWearExponent) ) * Data.Durability / Data.ThermalResilience; diff --git a/Assets/Scripts/ServerShared/ItemData.cs b/Assets/Scripts/ServerShared/ItemData.cs index 102a5d0ef..a803c7762 100644 --- a/Assets/Scripts/ServerShared/ItemData.cs +++ b/Assets/Scripts/ServerShared/ItemData.cs @@ -387,7 +387,7 @@ public abstract class EquippableItemData : CraftedItemData public float Performance(float temperature) { - return saturate(HeatPerformanceCurve.Evaluate(unlerp(MinimumTemperature, MaximumTemperature, temperature))); + return saturate(HeatPerformanceCurve?.Evaluate(unlerp(MinimumTemperature, MaximumTemperature, temperature))??1); } } diff --git a/Assets/Scripts/ServerShared/LoadoutGenerator.cs b/Assets/Scripts/ServerShared/LoadoutGenerator.cs index e0999e55f..b92b7af48 100644 --- a/Assets/Scripts/ServerShared/LoadoutGenerator.cs +++ b/Assets/Scripts/ServerShared/LoadoutGenerator.cs @@ -29,6 +29,18 @@ public class LoadoutGenerator Faction = faction; PriceExponent = priceExponent; } + + public LoadoutGenerator( + ref Random random, + ItemManager itemManager, + Faction faction, + float priceExponent) + { + Random = random; + ItemManager = itemManager; + Faction = faction; + PriceExponent = priceExponent; + } public EntityPack GenerateShipLoadout(Predicate hullFilter = null) { @@ -89,12 +101,14 @@ public class LoadoutGenerator .Where(item => item.Price > 0 && (hullFilter?.Invoke(item) ?? true) && - item.HullType == type && + item.HullType == type && + item.Manufacturer != Guid.Empty && + (Sector?.ContainsFaction(item.Manufacturer) ?? true) && (Faction == null || item.Manufacturer == Faction.ID || Faction.Allegiance.ContainsKey(item.Manufacturer))) .WeightedRandomElements(ref Random, item => (Faction == null || item.Manufacturer == Faction.ID ? 1 : Faction.Allegiance[item.Manufacturer]) / // Prioritize items from allied manufacturers - Zone.Distance[Sector.HomeZones[ItemManager.ItemData.Get(item.Manufacturer)]] / // Penalize distance to manufacturer headquarters + (Zone?.Distance[Sector.HomeZones[ItemManager.ItemData.Get(item.Manufacturer)]] ?? 1) / // Penalize distance to manufacturer headquarters pow(item.Price, PriceExponent), // Penalize item price to a controllable degree 1 ).FirstOrDefault(); @@ -104,14 +118,15 @@ public class LoadoutGenerator { return ItemManager.ItemData.GetAll() .Where(item => - item.Price > 0 && - Sector.ContainsFaction(item.Manufacturer) && + item.Price > 0 && + item.Manufacturer != Guid.Empty && + (Sector?.ContainsFaction(item.Manufacturer) ?? true) && (Faction == null || Faction.Allegiance.ContainsKey(item.Manufacturer)) && (filter?.Invoke(item) ?? true)) .WeightedRandomElements(ref Random, item => (Faction == null || item.Manufacturer == Faction.ID ? 1 : Faction.Allegiance[item.Manufacturer]) * // Prioritize items from allied manufacturers pow(item.Shape.Coordinates.Length, sizeExponent) / // Prioritize larger items - Zone.Distance[Sector.HomeZones[ItemManager.ItemData.Get(item.Manufacturer)]] / // Penalize distance to manufacturer headquarters + (Zone?.Distance[Sector.HomeZones[ItemManager.ItemData.Get(item.Manufacturer)]] ?? 1) / // Penalize distance to manufacturer headquarters pow(item.Price, PriceExponent), // Penalize item price to a controllable degree count ); diff --git a/Assets/Scripts/ServerShared/MarkovNameGenerator.cs b/Assets/Scripts/ServerShared/MarkovNameGenerator.cs index 19deb426a..5a770c7bf 100644 --- a/Assets/Scripts/ServerShared/MarkovNameGenerator.cs +++ b/Assets/Scripts/ServerShared/MarkovNameGenerator.cs @@ -20,7 +20,7 @@ public class MarkovNameGenerator private int _maxLength; private Random _random; - public MarkovNameGenerator(ref Random random, IEnumerable sampleNames, SectorGenerationSettings settings) + public MarkovNameGenerator(ref Random random, IEnumerable sampleNames, NameGeneratorSettings settings) { var names = new HashSet(); foreach (var line in sampleNames) diff --git a/Assets/Scripts/ServerShared/PlayerSettings.cs b/Assets/Scripts/ServerShared/PlayerSettings.cs index b5d224e0a..6d7dbca85 100644 --- a/Assets/Scripts/ServerShared/PlayerSettings.cs +++ b/Assets/Scripts/ServerShared/PlayerSettings.cs @@ -9,6 +9,7 @@ public class PlayerSettings [Key(1)] public SavedGame SavedRun; [Key(2)] public TemperatureUnit TemperatureUnit = TemperatureUnit.Celsius; [Key(3)] public int SignificantDigits = 3; + [Key(4)] public bool TutorialPassed; public string FormatTemperature(float t) { diff --git a/Assets/Scripts/ServerShared/SampleElimination.cs b/Assets/Scripts/ServerShared/SampleElimination.cs index 00eadff71..4827bd248 100644 --- a/Assets/Scripts/ServerShared/SampleElimination.cs +++ b/Assets/Scripts/ServerShared/SampleElimination.cs @@ -87,11 +87,10 @@ public static class WeightedSampleElimination }, densityFunc, d_max); } - public static float2[] GeneratePoints(int count, Func density = null, Func envelope = null, Action progressCallback = null, uint seed = 1337) + public static float2[] GeneratePoints(int count, ref Random random, Func density = null, Func envelope = null, Action progressCallback = null) { if (density == null) density = v => .5f; if (envelope == null) envelope = v => 1; - var random = new Random(seed); var inputSamples = new float2[count * 8]; var sample = 0; var accumulator = 0f; diff --git a/Assets/Scripts/ServerShared/SavedGame.cs b/Assets/Scripts/ServerShared/SavedGame.cs index e0caea6b0..6abe22637 100644 --- a/Assets/Scripts/ServerShared/SavedGame.cs +++ b/Assets/Scripts/ServerShared/SavedGame.cs @@ -33,20 +33,23 @@ public class SavedGame public int CurrentZoneEntity; [Key(8)] - public SectorGenerationSettings Settings; + public SectorBackgroundSettings Background; [Key(9)] public int[] DiscoveredZones; [Key(10)] public SavedActionBarBinding[] ActionBarBindings; + + [Key(11)] + public bool IsTutorial; public SavedGame() { } public SavedGame(Sector sector, Zone currentZone, Entity currentEntity) { DiscoveredZones = sector.DiscoveredZones.Select(dz => Array.IndexOf(sector.Zones, dz)).ToArray(); - Settings = sector.Settings; + Background = sector.Background; Factions = sector.HomeZones.Keys.Select(f => f.ID).ToArray(); HomeZones = sector.HomeZones.ToDictionary( diff --git a/Assets/Scripts/ServerShared/Sector.cs b/Assets/Scripts/ServerShared/Sector.cs index e7df8ec1a..6be6e5a7b 100644 --- a/Assets/Scripts/ServerShared/Sector.cs +++ b/Assets/Scripts/ServerShared/Sector.cs @@ -17,7 +17,8 @@ public class Sector public Dictionary BossZones = new Dictionary(); public HashSet DiscoveredZones = new HashSet(); - public SectorGenerationSettings Settings { get; } + public SectorBackgroundSettings Background { get; } + public NameGeneratorSettings NameGeneratorSettings { get; } public Faction[] Factions { get; } public SectorZone[] Zones { get; } public SectorZone Entrance { get; } @@ -31,13 +32,15 @@ public class Sector { get { - return _exitPath ??= FindPath(Entrance, Exit); + if(Entrance!=null && Exit != null) + return _exitPath ??= FindPath(Entrance, Exit); + return null; } } public Sector(CultCache cultCache, SavedGame savedGame) { - Settings = savedGame.Settings; + Background = savedGame.Background; Factions = savedGame.Factions.Select(cultCache.Get).ToArray(); Zones = savedGame.Zones.Select(zone => { @@ -70,43 +73,265 @@ public class Sector CalculateDistanceMatrix(); } - public Sector(SectorGenerationSettings settings, CultCache cultCache, uint seed = 0, Action progressCallback = null, float minLineSeparation = .01f) + public Sector( + SectorGenerationSettings settings, + SectorBackgroundSettings background, + NameGeneratorSettings nameGeneratorSettings, + CultCache cache, + Action progressCallback = null, + uint seed = 0) { - Settings = settings; - var megas = cultCache.GetAll(); + Background = background; + var factions = cache.GetAll(); var random = new Random(seed == 0 ? (uint) (DateTime.Now.Ticks % uint.MaxValue) : seed); - Factions = megas.OrderBy(x => random.NextFloat()).Take(settings.MegaCount).ToArray(); + Factions = factions.OrderBy(x => random.NextFloat()).Take(settings.MegaCount).ToArray(); - var outputSamples = WeightedSampleElimination.GeneratePoints(settings.ZoneCount, - settings.CloudDensity, + Zones = GenerateZones(settings.ZoneCount, ref random, progressCallback); + + GenerateLinks(settings.LinkDensity, progressCallback); + + CalculateDistanceMatrix(progressCallback); + + // Exit is the most isolated zone (highest total distance to all other zones) + Exit = Zones.MaxBy(z => z.Isolation); + + // Entrance is the zone furthest from the exit + Entrance = Zones.MaxBy(z => Exit.Distance[z]); + + DiscoveredZones.Add(Entrance); + foreach(var z in Entrance.AdjacentZones) DiscoveredZones.Add(z); + + PlaceFactionsMain(settings.BossCount, progressCallback); + + CalculateFactionInfluence(progressCallback); + + GenerateNames(cache, nameGeneratorSettings, ref random, progressCallback); + + progressCallback?.Invoke("Done!"); + if(progressCallback!=null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao + } + + public Sector( + TutorialGenerationSettings settings, + SectorBackgroundSettings background, + NameGeneratorSettings nameGeneratorSettings, + CultCache cache, + Action progressCallback = null, + uint seed = 0) + { + Background = background; + var allFactions = cache.GetAll(); + var random = new Random(seed == 0 ? (uint) (DateTime.Now.Ticks % uint.MaxValue) : seed); + + var factions = new List(); + + var protagonistFaction = allFactions.First(f => f.Name.StartsWith(settings.ProtagonistFaction, StringComparison.InvariantCultureIgnoreCase)); + factions.Add(protagonistFaction); + + var antagonistFaction = allFactions.First(f => f.Name.StartsWith(settings.AntagonistFaction, StringComparison.InvariantCultureIgnoreCase)); + factions.Add(antagonistFaction); + + var bufferFaction = allFactions.First(f => f.Name.StartsWith(settings.BufferFaction, StringComparison.InvariantCultureIgnoreCase)); + factions.Add(bufferFaction); + + var questFaction = allFactions.First(f => f.Name.StartsWith(settings.QuestFaction, StringComparison.InvariantCultureIgnoreCase)); + factions.Add(questFaction); + + var neutralFactions = settings.NeutralFactions + .Select(s => allFactions.First(f => f.Name.StartsWith(s, StringComparison.InvariantCultureIgnoreCase))) + .ToArray(); + factions.AddRange(neutralFactions); + + Factions = factions.ToArray(); + foreach (var faction in Factions) faction.InfluenceDistance = (faction.InfluenceDistance + 1) / 2; + + Zones = GenerateZones(settings.ZoneCount, ref random, progressCallback); + + GenerateLinks(settings.LinkDensity, progressCallback); + + CalculateDistanceMatrix(progressCallback); + + HomeZones[protagonistFaction] = Zones + .MaxBy(z => ConnectedRegion(z, protagonistFaction.InfluenceDistance).Count); + + HomeZones[antagonistFaction] = Zones + .MaxBy(z => ConnectedRegion(z, antagonistFaction.InfluenceDistance).Count * z.Distance[HomeZones[protagonistFaction]]); + + HomeZones[protagonistFaction] = Zones + .MaxBy(z => ConnectedRegion(z, protagonistFaction.InfluenceDistance).Count * sqrt(z.Distance[HomeZones[antagonistFaction]])); + + // var antagonistRegion = ConnectedRegion(HomeZones[antagonistFaction], antagonistFaction.InfluenceDistance); + // var protagonistRegion = ConnectedRegion(HomeZones[protagonistFaction], protagonistFaction.InfluenceDistance); + + // Place the buffer faction in a zone where it has equal distance to the pro/antagonist HQs and where it can control the most territory + var bufferDistance = Zones.Min(z => abs(z.Distance[HomeZones[antagonistFaction]] - z.Distance[HomeZones[protagonistFaction]])); + var potentialBufferZones = Zones + .Where(z => abs(z.Distance[HomeZones[antagonistFaction]] - z.Distance[HomeZones[protagonistFaction]]) == bufferDistance); + HomeZones[bufferFaction] = potentialBufferZones.MaxBy(z => ConnectedRegion(z, bufferFaction.InfluenceDistance).Count); + + // Place neutral headquarters away from existing factions while also maximizing territory + foreach (var faction in neutralFactions) + { + HomeZones[faction] = Zones.MaxBy(z => + ConnectedRegion(z, faction.InfluenceDistance).Count * + HomeZones.Values.Aggregate(1f, (i, os) => i * sqrt(os.Distance[z]))); + } + + CalculateFactionInfluence(progressCallback); + + var potentialQuestZones = Zones + .Where(z => z.Factions.Contains(antagonistFaction) && z.Factions.Contains(bufferFaction)); + HomeZones[questFaction] = potentialQuestZones + .MaxBy(z=>z.Distance[HomeZones[antagonistFaction]] * ConnectedRegion(z, questFaction.InfluenceDistance).Count); + + CalculateFactionInfluence(progressCallback); + + Entrance = ConnectedRegion(HomeZones[protagonistFaction], 2) + .MaxBy(z => z.Distance[HomeZones[antagonistFaction]]); + + DiscoveredZones.Add(Entrance); + foreach(var z in Entrance.AdjacentZones) DiscoveredZones.Add(z); + + CalculateFactionInfluence(progressCallback); + + GenerateNames(cache, nameGeneratorSettings, ref random, progressCallback); + + progressCallback?.Invoke("Done!"); + if(progressCallback!=null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao + } + + private SectorZone[] GenerateZones(int zoneCount, ref Random random, Action progressCallback = null) + { + var outputSamples = WeightedSampleElimination.GeneratePoints(zoneCount, + ref random, + Background.CloudDensity, v => (.2f - lengthsq(v - float2(.5f))) * 4, progressCallback); - Zones = outputSamples.Select(v => new SectorZone {Position = v}).ToArray(); + return outputSamples.Select(v => new SectorZone {Position = v}).ToArray(); + } - #region Link Placement - - progressCallback?.Invoke("Triangulating Zone Positions"); + private void PlaceFactionsMain(int bossCount, Action progressCallback = null) + { + progressCallback?.Invoke("Finding Chokepoints"); if(progressCallback!=null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao + // Find all zones on the exit path where removing that zone would disconnect the entrance from the exit + // Disregard "corridor" zones with only two adjacent zones + var chokePoints = ExitPath + .Where(z => z.AdjacentZones.Count > 2 && !ConnectedRegion(Entrance, z).Contains(Exit)); + + progressCallback?.Invoke("Placing Factions"); + if (progressCallback != null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao + + // Choose some megas to have bosses placed based on whether a boss hull is assigned + var bossMegas = Factions + .Where(m => m.BossHull != Guid.Empty) + .Take(bossCount) + .ToArray(); + + // Place boss zones along the critical path as far apart from each other as possible + foreach (var mega in bossMegas) + { + BossZones[mega] = chokePoints.MaxBy(z => + Exit.Distance[z] * Entrance.Distance[z] * + BossZones.Values.Aggregate(1, (i, os) => i * os.Distance[z])); + } + + // Place boss mega headquarters such that their sphere of influence encompasses their boss zone + // While occupying as much territory as possible + foreach (var mega in bossMegas) + { + HomeZones[mega] = ConnectedRegion(BossZones[mega], mega.InfluenceDistance) + .MaxBy(z => + ConnectedRegion(z, mega.InfluenceDistance).Count * + HomeZones.Values.Aggregate(1f, (i, os) => i * sqrt(os.Distance[z]))); + } + + // Place remaining headquarters away from existing megas while also maximizing territory + foreach (var mega in Factions.Where(m => !bossMegas.Contains(m))) + { + HomeZones[mega] = Zones.MaxBy(z => + pow(ConnectedRegion(z, mega.InfluenceDistance).Count, HomeZones.Count) * + Exit.Distance[z] * Entrance.Distance[z] * + HomeZones.Values.Aggregate(1f, (i, os) => i * sqrt(os.Distance[z])) * + BossZones.Values.Aggregate(1f, (i, os) => i * sqrt(os.Distance[z]))); + } + } + + private void CalculateFactionInfluence(Action progressCallback = null) + { + progressCallback?.Invoke("Calculating Faction Influence"); + if (progressCallback != null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao + + // Assign faction presence + foreach (var zone in Zones) + { + // Factions are present in all zones within their sphere of influence + zone.Factions = Factions + .Where(f => HomeZones.ContainsKey(f)) + .Where(f => zone.Distance[HomeZones[f]] <= f.InfluenceDistance) + .ToArray(); + + // Owner of a zone is the faction with the nearest headquarters + var nearestFaction = Factions + .Where(f => HomeZones.ContainsKey(f)) + .MinBy(f => (float)zone.Distance[HomeZones[f]]); + if (zone.Distance[HomeZones[nearestFaction]] <= nearestFaction.InfluenceDistance) + zone.Owner = nearestFaction; + } + } + + private void GenerateNames(CultCache cache, + NameGeneratorSettings nameGeneratorSettings, + ref Random random, + Action progressCallback = null) + { + for (var i = 0; i < Factions.Length; i++) + { + progressCallback?.Invoke($"Feeding Markov Chains: {i + 1} / {Factions.Length}"); + //if(progressCallback!=null) Thread.Sleep(250); // Inserting Delay to make it seem like it's doing more work lmao + var faction = Factions[i]; + _nameGenerators[faction] = new MarkovNameGenerator(ref random, cache.Get(faction.GeonameFile).Names, nameGeneratorSettings); + } + + // Generate zone name using the owner's name generator, otherwise assign catalogue ID + foreach (var zone in Zones) + { + if (zone.Owner != null) + { + zone.Name = _nameGenerators[zone.Owner].NextName.Trim(); + } + else + { + zone.Name = $"EAC-{random.NextInt(9999).ToString()}"; + } + } + } + + private void GenerateLinks(float linkDensity, Action progressCallback = null) + { + progressCallback?.Invoke("Triangulating Zone Positions"); + if (progressCallback != null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao + // Create a delaunay triangulation to connect adjacent sectors var triangulation = DelaunayTriangulation, Cell2> .Create(Zones.Select(z => new Vertex2(z.Position, z)).ToList(), 1e-7f); var links = new HashSet<(SectorZone, SectorZone)>(); - foreach(var cell in triangulation.Cells) + foreach (var cell in triangulation.Cells) { - if(!links.Contains((cell.Vertices[0].StoredObject, cell.Vertices[1].StoredObject)) && - !links.Contains((cell.Vertices[1].StoredObject, cell.Vertices[0].StoredObject))) + if (!links.Contains((cell.Vertices[0].StoredObject, cell.Vertices[1].StoredObject)) && + !links.Contains((cell.Vertices[1].StoredObject, cell.Vertices[0].StoredObject))) links.Add((cell.Vertices[0].StoredObject, cell.Vertices[1].StoredObject)); - if(!links.Contains((cell.Vertices[1].StoredObject, cell.Vertices[2].StoredObject)) && - !links.Contains((cell.Vertices[2].StoredObject, cell.Vertices[1].StoredObject))) + if (!links.Contains((cell.Vertices[1].StoredObject, cell.Vertices[2].StoredObject)) && + !links.Contains((cell.Vertices[2].StoredObject, cell.Vertices[1].StoredObject))) links.Add((cell.Vertices[1].StoredObject, cell.Vertices[2].StoredObject)); - if(!links.Contains((cell.Vertices[0].StoredObject, cell.Vertices[2].StoredObject)) && - !links.Contains((cell.Vertices[2].StoredObject, cell.Vertices[0].StoredObject))) + if (!links.Contains((cell.Vertices[0].StoredObject, cell.Vertices[2].StoredObject)) && + !links.Contains((cell.Vertices[2].StoredObject, cell.Vertices[0].StoredObject))) links.Add((cell.Vertices[0].StoredObject, cell.Vertices[2].StoredObject)); } progressCallback?.Invoke("Eliminating Zone Links"); - if(progressCallback!=null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao + if (progressCallback != null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao // foreach (var link in links.ToArray()) // { // foreach (var zone in Zones) @@ -125,17 +350,17 @@ public class Sector float LinkWeight((SectorZone, SectorZone) link) { - return 1 / saturate(settings.CloudDensity((link.Item1.Position + link.Item2.Position) / 2)) * + return 1 / saturate(Background.CloudDensity((link.Item1.Position + link.Item2.Position) / 2)) * lengthsq(link.Item1.Position - link.Item2.Position) * (link.Item1.AdjacentZones.Count - 1) * (link.Item2.AdjacentZones.Count - 1); } - + var heap = new MaxHeap<(SectorZone, SectorZone)>(links.Count); - foreach(var link in links) heap.PushObj(link, LinkWeight(link)); - while (heap.Count > settings.LinkDensity * links.Count) + foreach (var link in links) heap.PushObj(link, LinkWeight(link)); + while (heap.Count > linkDensity * links.Count) { var link = heap.PopObj(); - if(ConnectedRegion(link.Item1, link.Item1, link.Item2).Contains(link.Item2)) + if (ConnectedRegion(link.Item1, link.Item1, link.Item2).Contains(link.Item2)) { link.Item1.AdjacentZones.Remove(link.Item2); link.Item2.AdjacentZones.Remove(link.Item1); @@ -152,108 +377,18 @@ public class Sector } } } + } - #endregion - + // Cache distance matrix and calculate isolation for every zone (used extensively for placing stuff) + private void CalculateDistanceMatrix(Action progressCallback = null) + { progressCallback?.Invoke("Calculating Distance Matrix"); if(progressCallback!=null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao - CalculateDistanceMatrix(); - - progressCallback?.Invoke("Finding Chokepoints"); - if(progressCallback!=null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao - - // Exit is the most isolated zone (highest total distance to all other zones) - Exit = Zones.MaxBy(z => z.Isolation); - - // Entrance is the zone furthest from the exit - Entrance = Zones.MaxBy(z => Exit.Distance[z]); - - DiscoveredZones.Add(Entrance); - foreach(var z in Entrance.AdjacentZones) DiscoveredZones.Add(z); - - // Find all zones on the exit path where removing that zone would disconnect the entrance from the exit - // Disregard "corridor" zones with only two adjacent zones - var chokePoints = ExitPath - .Where(z => z.AdjacentZones.Count > 2 && !ConnectedRegion(Entrance, z).Contains(Exit)); - - progressCallback?.Invoke("Placing Factions"); - if(progressCallback!=null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao - - // Choose some megas to have bosses placed based on whether a boss hull is assigned - var bossMegas = Factions - .Where(m => m.BossHull != Guid.Empty) - .Take(settings.BossCount) - .ToArray(); - - // Place boss zones along the critical path as far apart from each other as possible - foreach (var mega in bossMegas) - { - BossZones[mega] = chokePoints.MaxBy(z => - Exit.Distance[z] * Entrance.Distance[z] * - BossZones.Values.Aggregate(1, (i, os) => i * os.Distance[z])); - } - - // Place boss mega headquarters such that their sphere of influence encompasses their boss zone - // While occupying as much territory as possible - foreach (var mega in bossMegas) - { - HomeZones[mega] = ConnectedRegion(BossZones[mega], mega.InfluenceDistance) - .MaxBy(z => - ConnectedRegion(z, mega.InfluenceDistance).Count * - HomeZones.Values.Aggregate(1f, (i, os) => i * sqrt(os.Distance[z]))); - } - - // Place remaining headquarters away from existing megas while also maximizing territory - foreach (var mega in Factions.Where(m=>!bossMegas.Contains(m))) - { - HomeZones[mega] = Zones.MaxBy(z => - pow(ConnectedRegion(z, mega.InfluenceDistance).Count, HomeZones.Count) * - Exit.Distance[z] * Entrance.Distance[z] * - HomeZones.Values.Aggregate(1f, (i, os) => i * sqrt(os.Distance[z])) * - BossZones.Values.Aggregate(1f, (i, os) => i * sqrt(os.Distance[z]))); - } - - progressCallback?.Invoke("Calculating Faction Influence"); - if(progressCallback!=null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao - - // Assign faction presence foreach (var zone in Zones) { - // Factions are present in all zones within their sphere of influence - zone.Factions = Factions - .Where(m => zone.Distance[HomeZones[m]] <= m.InfluenceDistance) - .ToArray(); - - // Owner of a zone is the faction with the nearest headquarters - var nearestFaction = Factions.MinBy(m => zone.Distance[HomeZones[m]]); - if (zone.Distance[HomeZones[nearestFaction]] <= nearestFaction.InfluenceDistance) - zone.Owner = nearestFaction; + zone.Distance = ConnectedRegionDistance(zone); + zone.Isolation = zone.Distance.Sum(x => x.Value); } - - for (var i = 0; i < Factions.Length; i++) - { - progressCallback?.Invoke($"Feeding Markov Chains: {i+1} / {Factions.Length}"); - //if(progressCallback!=null) Thread.Sleep(250); // Inserting Delay to make it seem like it's doing more work lmao - var faction = Factions[i]; - _nameGenerators[faction] = new MarkovNameGenerator(ref random, cultCache.Get(faction.GeonameFile).Names, settings); - } - - // Generate zone name using the owner's name generator, otherwise assign catalogue ID - foreach (var zone in Zones) - { - if (zone.Owner != null) - { - zone.Name = _nameGenerators[zone.Owner].NextName.Trim(); - } - else - { - zone.Name = $"EAC-{random.NextInt(9999).ToString()}"; - } - } - - - progressCallback?.Invoke("Done!"); - if(progressCallback!=null) Thread.Sleep(500); // Inserting Delay to make it seem like it's doing more work lmao } public bool ContainsFaction(Guid factionID) @@ -262,16 +397,6 @@ public class Sector return _containedFactions.Contains(factionID); } - // Cache distance matrix and calculate isolation for every zone (used extensively for placing stuff) - private void CalculateDistanceMatrix() - { - foreach (var zone in Zones) - { - zone.Distance = ConnectedRegionDistance(zone); - zone.Isolation = zone.Distance.Sum(x => x.Value); - } - } - class DijkstraVertex { public float Cost; diff --git a/Assets/Scripts/ServerShared/Settings.cs b/Assets/Scripts/ServerShared/Settings.cs index 0ebe881b8..599e4732d 100644 --- a/Assets/Scripts/ServerShared/Settings.cs +++ b/Assets/Scripts/ServerShared/Settings.cs @@ -44,23 +44,24 @@ public class GalaxyShapeSettings } [Serializable, MessagePackObject(keyAsPropertyName:true), JsonObject] -public class SectorGenerationSettings +public class NameGeneratorSettings { - public float LinkDensity = .5f; - public int ZoneCount = 128; public int NameGeneratorMinLength = 5; public int NameGeneratorMaxLength = 10; public int NameGeneratorOrder = 4; - public int MegaCount; - public int BossCount; - public float NoisePosition; - public float CloudExponent; - public float CloudAmplitude; +} + +[Serializable, MessagePackObject(keyAsPropertyName:true), JsonObject] +public class SectorBackgroundSettings +{ public float NoiseAmplitude; public float NoiseOffset; public float NoiseGain; public float NoiseLacunarity; public float NoiseFrequency; + public float NoisePosition; + public float CloudExponent; + public float CloudAmplitude; public float fBm(float2 p, int octaves) { @@ -84,6 +85,27 @@ public class SectorGenerationSettings } } +[Serializable, MessagePackObject(keyAsPropertyName:true), JsonObject] +public class SectorGenerationSettings +{ + public float LinkDensity = .5f; + public int ZoneCount = 128; + public int MegaCount; + public int BossCount; +} + +[Serializable, MessagePackObject(keyAsPropertyName:true), JsonObject] +public class TutorialGenerationSettings +{ + public string ProtagonistFaction; + public string AntagonistFaction; + public string BufferFaction; + public string[] NeutralFactions; + public string QuestFaction; + public float LinkDensity = .5f; + public int ZoneCount = 32; +} + [Serializable, MessagePackObject(keyAsPropertyName:true), JsonObject] public class ZoneGenerationSettings { diff --git a/Assets/Scripts/ServerShared/ZoneGenerator.cs b/Assets/Scripts/ServerShared/ZoneGenerator.cs index f31151ef2..09f072f82 100644 --- a/Assets/Scripts/ServerShared/ZoneGenerator.cs +++ b/Assets/Scripts/ServerShared/ZoneGenerator.cs @@ -39,13 +39,14 @@ public static class ZoneGenerator ItemManager itemManager, ZoneGenerationSettings zoneSettings, Sector sector, - SectorZone sectorZone) + SectorZone sectorZone, + bool isTutorial = false) { var pack = new ZonePack(); var random = new Random(unchecked((uint) sectorZone.Name.GetHashCode()) ^ hash(sectorZone.Position)); - var density = saturate(sector.Settings.CloudDensity(sectorZone.Position)); + var density = saturate(sector.Background.CloudDensity(sectorZone.Position)); pack.Radius = zoneSettings.ZoneRadius.Evaluate(density); pack.Mass = zoneSettings.ZoneMass.Evaluate(density); var targetSubzoneCount = zoneSettings.SubZoneCount.Evaluate(density); @@ -225,7 +226,8 @@ public static class ZoneGenerator var nearestFactionHomeZone = sector.HomeZones[nearestFaction]; var factionPresence = nearestFaction.InfluenceDistance - nearestFactionHomeZone.Distance[sectorZone] + 1; - var loadoutGenerator = new LoadoutGenerator(ref random, itemManager, sector, sectorZone, nearestFaction, .5f); + var loadoutGenerator = isTutorial ? new LoadoutGenerator(ref random, itemManager, nearestFaction, .5f) : + new LoadoutGenerator(ref random, itemManager, sector, sectorZone, nearestFaction, .5f); for (int i = 0; i < factionPresence; i++) { pack.Entities.Add(loadoutGenerator.GenerateShipLoadout()); diff --git a/Assets/Scripts/UI/MainMenu.cs b/Assets/Scripts/UI/MainMenu.cs index 07e804c7c..a92ac816a 100644 --- a/Assets/Scripts/UI/MainMenu.cs +++ b/Assets/Scripts/UI/MainMenu.cs @@ -10,6 +10,7 @@ using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.UI; using static Unity.Mathematics.math; +using float2 = Unity.Mathematics.float2; using Random = UnityEngine.Random; public class MainMenu : MonoBehaviour @@ -96,7 +97,9 @@ public class MainMenu : MonoBehaviour _nextMenu.panel.AddButton("Continue", () => { - ActionGameManager.CurrentSector = new Sector(ActionGameManager.CultCache, ActionGameManager.PlayerSettings.SavedRun); + ActionGameManager.CurrentSector = new Sector( + ActionGameManager.CultCache, + ActionGameManager.PlayerSettings.SavedRun); SceneManager.LoadScene("ARPG"); }); else @@ -114,15 +117,45 @@ public class MainMenu : MonoBehaviour Dialog.Title.text = "Generating Galaxy"; Dialog.AddProperty(() => generatorState); Dialog.Show(); - Settings.SectorGenerationSettings.NoisePosition = Random.value * 100; - - var task = Task.Run(() => new Sector(Settings.SectorGenerationSettings, ActionGameManager.CultCache, 0, setState)); - task.ContinueWith(task => Observable.NextFrame().Subscribe(_ => + + if (ActionGameManager.PlayerSettings.TutorialPassed) { - ActionGameManager.PlayerSettings.SavedRun = null; - ActionGameManager.CurrentSector = task.Result; - SceneManager.LoadScene("ARPG"); - })); + Settings.SectorBackgroundSettings.NoisePosition = Random.value * 1000; + ActionGameManager.IsTutorial = false; + var task = Task.Run(() => new Sector( + Settings.SectorGenerationSettings, + Settings.SectorBackgroundSettings, + Settings.NameGeneratorSettings, + ActionGameManager.CultCache, + setState)); + task.ContinueWith(task => Observable.NextFrame().Subscribe(_ => + { + ActionGameManager.PlayerSettings.SavedRun = null; + ActionGameManager.CurrentSector = task.Result; + SceneManager.LoadScene("ARPG"); + })); + } + else + { + do + { + Settings.TutorialBackgroundSettings.NoisePosition = Random.value * 1000; + } while (Settings.TutorialBackgroundSettings.CloudDensity(float2(0.5f)) < .5f); + + ActionGameManager.IsTutorial = true; + var task = Task.Run(() => new Sector( + Settings.TutorialGenerationSettings, + Settings.TutorialBackgroundSettings, + Settings.NameGeneratorSettings, + ActionGameManager.CultCache, + setState)); + task.ContinueWith(task => Observable.NextFrame().Subscribe(_ => + { + ActionGameManager.PlayerSettings.SavedRun = null; + ActionGameManager.CurrentSector = task.Result; + SceneManager.LoadScene("ARPG"); + })); + } }); _nextMenu.panel.AddButton("Settings", () => diff --git a/Assets/Scripts/UI/SectorMap.cs b/Assets/Scripts/UI/SectorMap.cs index b759995c0..aab3325c3 100644 --- a/Assets/Scripts/UI/SectorMap.cs +++ b/Assets/Scripts/UI/SectorMap.cs @@ -116,7 +116,7 @@ public class SectorMap : MonoBehaviour zoneInstance.Secondary.gameObject.SetActive(false); } - var isOnCriticalPath = ActionGameManager.CurrentSector.ExitPath.Contains(zone); + var isOnCriticalPath = ActionGameManager.CurrentSector.ExitPath?.Contains(zone) ?? false; foreach (var adjacentZone in zone.AdjacentZones) { // If the adjacent zone is in the set already revealed, then show the link @@ -125,7 +125,7 @@ public class SectorMap : MonoBehaviour _revealedLinks.Contains((adjacentZone, zone)))) { var link = LinkPrototype.Instantiate(); - var critical = isOnCriticalPath && ActionGameManager.CurrentSector.ExitPath.Contains(adjacentZone); + var critical = isOnCriticalPath && (ActionGameManager.CurrentSector.ExitPath?.Contains(adjacentZone) ?? false); linksToReveal.Add((zone.Position, adjacentZone.Position, link, critical)); if (zone.Owner != null && zone.Owner == adjacentZone.Owner) link.GetComponent().sharedMaterial = _factionMaterials[zone.Owner].linkMaterial; @@ -297,14 +297,14 @@ public class SectorMap : MonoBehaviour legendElement.Label.text = mega.ShortName; } - SectorRenderer.material.SetFloat("CloudAmplitude", ActionGameManager.CurrentSector.Settings.CloudAmplitude); - SectorRenderer.material.SetFloat("CloudExponent", ActionGameManager.CurrentSector.Settings.CloudExponent); - SectorRenderer.material.SetFloat("NoisePosition", ActionGameManager.CurrentSector.Settings.NoisePosition); - SectorRenderer.material.SetFloat("NoiseAmplitude", ActionGameManager.CurrentSector.Settings.NoiseAmplitude); - SectorRenderer.material.SetFloat("NoiseOffset", ActionGameManager.CurrentSector.Settings.NoiseOffset); - SectorRenderer.material.SetFloat("NoiseGain", ActionGameManager.CurrentSector.Settings.NoiseGain); - SectorRenderer.material.SetFloat("NoiseLacunarity", ActionGameManager.CurrentSector.Settings.NoiseLacunarity); - SectorRenderer.material.SetFloat("NoiseFrequency", ActionGameManager.CurrentSector.Settings.NoiseFrequency); + SectorRenderer.material.SetFloat("CloudAmplitude", ActionGameManager.CurrentSector.Background.CloudAmplitude); + SectorRenderer.material.SetFloat("CloudExponent", ActionGameManager.CurrentSector.Background.CloudExponent); + SectorRenderer.material.SetFloat("NoisePosition", ActionGameManager.CurrentSector.Background.NoisePosition); + SectorRenderer.material.SetFloat("NoiseAmplitude", ActionGameManager.CurrentSector.Background.NoiseAmplitude); + SectorRenderer.material.SetFloat("NoiseOffset", ActionGameManager.CurrentSector.Background.NoiseOffset); + SectorRenderer.material.SetFloat("NoiseGain", ActionGameManager.CurrentSector.Background.NoiseGain); + SectorRenderer.material.SetFloat("NoiseLacunarity", ActionGameManager.CurrentSector.Background.NoiseLacunarity); + SectorRenderer.material.SetFloat("NoiseFrequency", ActionGameManager.CurrentSector.Background.NoiseFrequency); } private void RenderInfluence() diff --git a/GameData/AetherDB.msgpack b/GameData/AetherDB.msgpack index ed9524939..1827679ae 100644 --- a/GameData/AetherDB.msgpack +++ b/GameData/AetherDB.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:38a1e181ae301b90f0af33b0f91fd79d8c8d4e16cc93f2e85656dee0ad043c86 -size 75924 +oid sha256:a6914c61357f731f1c81c28bd92e7a43d3b78e445c57d88f69ead90d5054e6b0 +size 75930 diff --git a/GameData/PlayerSettings.msgpack b/GameData/PlayerSettings.msgpack index 5c15013a1..03aa055b1 100644 --- a/GameData/PlayerSettings.msgpack +++ b/GameData/PlayerSettings.msgpack @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b9ec5cef84e135dc355753ec7e782a6867dec6728e12c463e559a8bbb0a63770 -size 26003 +oid sha256:d134380dcd8d8329cdcd6c28f340b9d8678c900ecab893bf10fac3bbe704aa7a +size 18910 diff --git a/UserSettings/EditorUserSettings.asset b/UserSettings/EditorUserSettings.asset index 29995cccf..bc307be86 100644 --- a/UserSettings/EditorUserSettings.asset +++ b/UserSettings/EditorUserSettings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ddf9f0c22847dc8893a39a7d9afc9b90b2fa13176fb5c4da0a1d8f16a85ee649 +oid sha256:caf20eb516bc53f1774f3a147124ab3b7e9869c889cf6083eba3f4507444845a size 1699