Online Function With Room Codes
This commit is contained in:
+7
-2
@@ -8,7 +8,7 @@
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="HighlightingSettingsPerFile">
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Scripts/Camera/Camera.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Scripts/Client.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Scripts/Fields/EventField.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Scripts/Fields/Field.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Scripts/Fields/GetCoinsField.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
@@ -17,6 +17,7 @@
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Scripts/Fields/LuckField.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Scripts/Fields/UnluckyField.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Scripts/Fields/VSField.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Scripts/Players/PlayablePlayer.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
<setting file="file://$PROJECT_DIR$/Assets/Scripts/Players/Player.cs" root0="FORCE_HIGHLIGHTING" />
|
||||
</component>
|
||||
<component name="MarkdownSettingsMigration">
|
||||
@@ -45,7 +46,7 @@
|
||||
}</component>
|
||||
<component name="RunManager" selected="Attach to Unity Editor.Attach to Unity Editor">
|
||||
<configuration name="Standalone Player" type="RunUnityExe" factoryName="Unity Executable">
|
||||
<option name="EXE_PATH" value="$USER_HOME$/OneDrive/Desktop/FlufflPartyTestBuild\FlufflParty.exe" />
|
||||
<option name="EXE_PATH" value="$USER_HOME$/OneDrive/Desktop/FlufflPartyBuild\FlufflParty.exe" />
|
||||
<option name="PROGRAM_PARAMETERS" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="C:\Users\braus\OneDrive\Desktop\FlufflPartyTestBuild" />
|
||||
<option name="PASS_PARENT_ENVS" value="1" />
|
||||
@@ -101,6 +102,10 @@
|
||||
<workItem from="1674498669951" duration="9033000" />
|
||||
<workItem from="1674576693743" duration="7773000" />
|
||||
<workItem from="1674595294063" duration="192000" />
|
||||
<workItem from="1674673452934" duration="3050000" />
|
||||
<workItem from="1674687637475" duration="660000" />
|
||||
<workItem from="1674838735946" duration="520000" />
|
||||
<workItem from="1674839572534" duration="20251000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 3.0 MiB |
@@ -0,0 +1,147 @@
|
||||
fileFormatVersion: 2
|
||||
guid: af5b87e28fb80214ba094061ae4502aa
|
||||
TextureImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 12
|
||||
mipmaps:
|
||||
mipMapMode: 0
|
||||
enableMipMap: 1
|
||||
sRGBTexture: 1
|
||||
linearTexture: 0
|
||||
fadeOut: 0
|
||||
borderMipMap: 0
|
||||
mipMapsPreserveCoverage: 0
|
||||
alphaTestReferenceValue: 0.5
|
||||
mipMapFadeDistanceStart: 1
|
||||
mipMapFadeDistanceEnd: 3
|
||||
bumpmap:
|
||||
convertToNormalMap: 0
|
||||
externalNormalMap: 0
|
||||
heightScale: 0.25
|
||||
normalMapFilter: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMasterTextureLimit: 0
|
||||
grayScaleToAlpha: 0
|
||||
generateCubemap: 6
|
||||
cubemapConvolution: 0
|
||||
seamlessCubemap: 0
|
||||
textureFormat: 1
|
||||
maxTextureSize: 2048
|
||||
textureSettings:
|
||||
serializedVersion: 2
|
||||
filterMode: 1
|
||||
aniso: 1
|
||||
mipBias: 0
|
||||
wrapU: 0
|
||||
wrapV: 0
|
||||
wrapW: 0
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 1
|
||||
spriteExtrude: 1
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
flipbookRows: 1
|
||||
flipbookColumns: 1
|
||||
maxTextureSizeSet: 0
|
||||
compressionQualitySet: 0
|
||||
textureFormatSet: 0
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 3
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Server
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 3
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites: []
|
||||
outline: []
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
nameFileIdTable: {}
|
||||
spritePackingTag:
|
||||
pSDRemoveMatte: 0
|
||||
pSDShowRemoveMatteOption: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: cee4fb3a7beae5249b207eafcb7e0bff
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,21 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 1432c14cba9ac6148875816671032465
|
||||
TrueTypeFontImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 4
|
||||
fontSize: 16
|
||||
forceTextureCase: -2
|
||||
characterSpacing: 0
|
||||
characterPadding: 1
|
||||
includeFontData: 1
|
||||
fontNames:
|
||||
- Motley Forces
|
||||
fallbackFontReferences: []
|
||||
customCharacters:
|
||||
fontRenderingMode: 0
|
||||
ascentCalculationMode: 1
|
||||
useLegacyBoundsCalculation: 0
|
||||
shouldRoundAdvanceValue: 1
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,99 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!1 &711685448941949428
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 711685448941949416}
|
||||
- component: {fileID: 711685448941949431}
|
||||
- component: {fileID: 711685448941949430}
|
||||
- component: {fileID: 711685448941949429}
|
||||
m_Layer: 0
|
||||
m_Name: Player
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &711685448941949416
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 711685448941949428}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 93.3, y: 1.71, z: 128.16}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 0
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!33 &711685448941949431
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 711685448941949428}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!23 &711685448941949430
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 711685448941949428}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!65 &711685448941949429
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 711685448941949428}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 1, y: 1, z: 1}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 9cb6f2379e137224e8f4450eae3198dc
|
||||
PrefabImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,64 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!850595691 &4890085278179872738
|
||||
LightingSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: New Lighting Settings
|
||||
serializedVersion: 4
|
||||
m_GIWorkflowMode: 1
|
||||
m_EnableBakedLightmaps: 1
|
||||
m_EnableRealtimeLightmaps: 0
|
||||
m_RealtimeEnvironmentLighting: 1
|
||||
m_BounceScale: 1
|
||||
m_AlbedoBoost: 1
|
||||
m_IndirectOutputScale: 1
|
||||
m_UsingShadowmask: 1
|
||||
m_BakeBackend: 1
|
||||
m_LightmapMaxSize: 1024
|
||||
m_BakeResolution: 40
|
||||
m_Padding: 2
|
||||
m_LightmapCompression: 3
|
||||
m_AO: 0
|
||||
m_AOMaxDistance: 1
|
||||
m_CompAOExponent: 1
|
||||
m_CompAOExponentDirect: 0
|
||||
m_ExtractAO: 0
|
||||
m_MixedBakeMode: 2
|
||||
m_LightmapsBakeMode: 1
|
||||
m_FilterMode: 1
|
||||
m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_ExportTrainingData: 0
|
||||
m_TrainingDataDestination: TrainingData
|
||||
m_RealtimeResolution: 2
|
||||
m_ForceWhiteAlbedo: 0
|
||||
m_ForceUpdates: 0
|
||||
m_FinalGather: 0
|
||||
m_FinalGatherRayCount: 256
|
||||
m_FinalGatherFiltering: 1
|
||||
m_PVRCulling: 1
|
||||
m_PVRSampling: 1
|
||||
m_PVRDirectSampleCount: 32
|
||||
m_PVRSampleCount: 512
|
||||
m_PVREnvironmentSampleCount: 256
|
||||
m_PVREnvironmentReferencePointCount: 2048
|
||||
m_LightProbeSampleCountMultiplier: 4
|
||||
m_PVRBounces: 2
|
||||
m_PVRMinBounces: 1
|
||||
m_PVREnvironmentMIS: 1
|
||||
m_PVRFilteringMode: 1
|
||||
m_PVRDenoiserTypeDirect: 1
|
||||
m_PVRDenoiserTypeIndirect: 1
|
||||
m_PVRDenoiserTypeAO: 1
|
||||
m_PVRFilterTypeDirect: 0
|
||||
m_PVRFilterTypeIndirect: 0
|
||||
m_PVRFilterTypeAO: 0
|
||||
m_PVRFilteringGaussRadiusDirect: 1
|
||||
m_PVRFilteringGaussRadiusIndirect: 5
|
||||
m_PVRFilteringGaussRadiusAO: 2
|
||||
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
|
||||
m_PVRFilteringAtrousPositionSigmaIndirect: 2
|
||||
m_PVRFilteringAtrousPositionSigmaAO: 1
|
||||
m_PVRTiledBaking: 0
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 560fdca36749b9f47a392bdddbaceec2
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 4890085278179872738
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c169a244ad039ce4ab72b1ee3383a41c
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -98,7 +98,7 @@ LightmapSettings:
|
||||
m_TrainingDataDestination: TrainingData
|
||||
m_LightProbeSampleCountMultiplier: 4
|
||||
m_LightingDataAsset: {fileID: 0}
|
||||
m_LightingSettings: {fileID: 4890085278179872738, guid: 73100c072b51c9e4b876978bf39c7cb2, type: 2}
|
||||
m_LightingSettings: {fileID: 4890085278179872738, guid: 560fdca36749b9f47a392bdddbaceec2, type: 2}
|
||||
--- !u!196 &4
|
||||
NavMeshSettings:
|
||||
serializedVersion: 2
|
||||
@@ -406,6 +406,7 @@ GameObject:
|
||||
- component: {fileID: 47812147}
|
||||
- component: {fileID: 47812146}
|
||||
- component: {fileID: 47812145}
|
||||
- component: {fileID: 47812148}
|
||||
m_Layer: 0
|
||||
m_Name: EventSystem
|
||||
m_TagString: Untagged
|
||||
@@ -461,8 +462,24 @@ Transform:
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 14
|
||||
m_RootOrder: 13
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &47812148
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 47812144}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 812fca21913ccbd42a3f716f9c3b7727, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
playerPrefab: {fileID: 711685448941949428, guid: 9cb6f2379e137224e8f4450eae3198dc, type: 3}
|
||||
dice: {fileID: 2005766824}
|
||||
nextField: {fileID: 1406090859}
|
||||
cam: {fileID: 1328561024}
|
||||
--- !u!1001 &55786170
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -2690,7 +2707,7 @@ RectTransform:
|
||||
m_Children:
|
||||
- {fileID: 1416818652}
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 13
|
||||
m_RootOrder: 12
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0, y: 0}
|
||||
m_AnchorMax: {x: 0, y: 0}
|
||||
@@ -5461,7 +5478,7 @@ Light:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_RenderingLayerMask: 1
|
||||
m_Lightmapping: 1
|
||||
m_Lightmapping: 4
|
||||
m_LightShadowCasterMode: 0
|
||||
m_AreaSize: {x: 1, y: 1}
|
||||
m_BounceIntensity: 1
|
||||
@@ -9524,7 +9541,7 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: f02425538b327cc47a5d70da69804669, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
followUp: {fileID: 1704083916}
|
||||
followUp: {fileID: 0}
|
||||
--- !u!114 &1328561029
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -9830,7 +9847,7 @@ Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 1585359140388994828, guid: 5f6fe4eec1bc656458eebd9867f08b47, type: 3}
|
||||
m_PrefabInstance: {fileID: 1406090857}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!114 &1406090860 stripped
|
||||
--- !u!114 &1406090859 stripped
|
||||
MonoBehaviour:
|
||||
m_CorrespondingSourceObject: {fileID: -5742674990914652290, guid: 5f6fe4eec1bc656458eebd9867f08b47, type: 3}
|
||||
m_PrefabInstance: {fileID: 1406090857}
|
||||
@@ -12831,119 +12848,6 @@ Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 6264285776840265041, guid: 8a4c1f56cdf3b264b9f27207969fdf01, type: 3}
|
||||
m_PrefabInstance: {fileID: 1683787995}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
--- !u!1 &1704083916
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1704083920}
|
||||
- component: {fileID: 1704083919}
|
||||
- component: {fileID: 1704083918}
|
||||
- component: {fileID: 1704083917}
|
||||
- component: {fileID: 1704083921}
|
||||
m_Layer: 0
|
||||
m_Name: Player
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!65 &1704083917
|
||||
BoxCollider:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1704083916}
|
||||
m_Material: {fileID: 0}
|
||||
m_IsTrigger: 0
|
||||
m_Enabled: 1
|
||||
serializedVersion: 2
|
||||
m_Size: {x: 1, y: 1, z: 1}
|
||||
m_Center: {x: 0, y: 0, z: 0}
|
||||
--- !u!23 &1704083918
|
||||
MeshRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1704083916}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 1
|
||||
m_ReceiveShadows: 1
|
||||
m_DynamicOccludee: 1
|
||||
m_StaticShadowCaster: 0
|
||||
m_MotionVectors: 1
|
||||
m_LightProbeUsage: 1
|
||||
m_ReflectionProbeUsage: 1
|
||||
m_RayTracingMode: 2
|
||||
m_RayTraceProcedural: 0
|
||||
m_RenderingLayerMask: 1
|
||||
m_RendererPriority: 0
|
||||
m_Materials:
|
||||
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
|
||||
m_StaticBatchInfo:
|
||||
firstSubMesh: 0
|
||||
subMeshCount: 0
|
||||
m_StaticBatchRoot: {fileID: 0}
|
||||
m_ProbeAnchor: {fileID: 0}
|
||||
m_LightProbeVolumeOverride: {fileID: 0}
|
||||
m_ScaleInLightmap: 1
|
||||
m_ReceiveGI: 1
|
||||
m_PreserveUVs: 0
|
||||
m_IgnoreNormalsForChartDetection: 0
|
||||
m_ImportantGI: 0
|
||||
m_StitchLightmapSeams: 1
|
||||
m_SelectedEditorRenderState: 3
|
||||
m_MinimumChartSize: 4
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingOrder: 0
|
||||
m_AdditionalVertexStreams: {fileID: 0}
|
||||
--- !u!33 &1704083919
|
||||
MeshFilter:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1704083916}
|
||||
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
|
||||
--- !u!4 &1704083920
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1704083916}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_LocalPosition: {x: 93.3, y: 1.71, z: 128.16}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 11
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!114 &1704083921
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 1704083916}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0c5b74f4bdf875641a8d9ac432a5166f, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
nextField: {fileID: 1406090860}
|
||||
dice: {fileID: 2005766824}
|
||||
fpsText: {fileID: 1416818653}
|
||||
--- !u!1001 &1704281756
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -13635,7 +13539,7 @@ Transform:
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children: []
|
||||
m_Father: {fileID: 0}
|
||||
m_RootOrder: 12
|
||||
m_RootOrder: 11
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!1001 &1812332222
|
||||
PrefabInstance:
|
||||
@@ -15021,6 +14925,10 @@ PrefabInstance:
|
||||
propertyPath: m_Name
|
||||
value: Dice
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 315064472590105111, guid: 06e960ba226dd6e4c972ec724166cc0d, type: 3}
|
||||
propertyPath: m_IsActive
|
||||
value: 1
|
||||
objectReference: {fileID: 0}
|
||||
- target: {fileID: 315064472590105111, guid: 06e960ba226dd6e4c972ec724166cc0d, type: 3}
|
||||
propertyPath: m_StaticEditorFlags
|
||||
value: 0
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class Camera : MonoBehaviour
|
||||
{
|
||||
//TODO: Replace with Follow Function later (player camera should follow)
|
||||
[SerializeField] private GameObject followUp;
|
||||
private Vector3 offset;
|
||||
private Vector3 velocity = Vector3.zero;
|
||||
|
||||
//TODO: Replace with Follow Function later (player camera should follow)
|
||||
private void Start()
|
||||
{
|
||||
offset = followUp.transform.position - transform.position;
|
||||
}
|
||||
|
||||
private void FixedUpdate()
|
||||
{
|
||||
transform.position = Vector3.SmoothDamp(transform.position, followUp.transform.position - offset, ref velocity, 0.2f);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,145 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using UnityEngine;
|
||||
|
||||
public class Client : MonoBehaviour
|
||||
{
|
||||
private TcpClient client;
|
||||
private Stream stream;
|
||||
[SerializeField] private GameObject playerPrefab;
|
||||
private Player[] players = new Player[4];
|
||||
private Queue<Job> jobs = new Queue<Job>();
|
||||
[SerializeField] private GameObject dice;
|
||||
[SerializeField] private Field nextField;
|
||||
[SerializeField] private GameObject cam;
|
||||
|
||||
|
||||
private void Start()
|
||||
{
|
||||
client = new TcpClient("185.245.96.48", 8051);
|
||||
stream = client.GetStream();
|
||||
|
||||
stream.Write(new byte[] { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, 0, 10);
|
||||
|
||||
|
||||
string roomCode = PlayerPrefs.GetString("roomcode");
|
||||
stream.Write(Encoding.ASCII.GetBytes(roomCode));
|
||||
|
||||
new Thread(Read).Start();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (jobs.Count > 0)
|
||||
{
|
||||
Job job = jobs.Dequeue();
|
||||
|
||||
switch (job.data[0])
|
||||
{
|
||||
//-----Create A new player-----
|
||||
case 1:
|
||||
//player is playable
|
||||
if (job.data[1] == 1)
|
||||
{
|
||||
GameObject player = Instantiate(playerPrefab);
|
||||
|
||||
player.transform.position = new Vector3(job.data[2], job.data[3] + 0.5f, job.data[4]);
|
||||
|
||||
PlayablePlayer script = player.AddComponent<PlayablePlayer>();
|
||||
players[job.data[5]] = script;
|
||||
script.client = this;
|
||||
script.nextField = nextField;
|
||||
script.dice = dice;
|
||||
script.Init();
|
||||
}
|
||||
//player is not playable
|
||||
else
|
||||
{
|
||||
GameObject player = Instantiate(playerPrefab);
|
||||
|
||||
player.transform.position = new Vector3(job.data[2], job.data[3] + 0.5f, job.data[4]);
|
||||
|
||||
NoPlayablePlayer script = player.AddComponent<NoPlayablePlayer>();
|
||||
players[job.data[5]] = script;
|
||||
script.nextField = nextField;
|
||||
script.dice = dice;
|
||||
script.Init();
|
||||
}
|
||||
break;
|
||||
//---------------------------------------------------------
|
||||
//-----Activate a Player
|
||||
case 2:
|
||||
Activate(job.data[1]);
|
||||
break;
|
||||
//Jemand hat gewürfelt
|
||||
case 3:
|
||||
((NoPlayablePlayer)players[job.data[1]]).Wurfeln(job.data[2]);
|
||||
break;
|
||||
//Jemand hat den Pfeil geklickt
|
||||
case 4:
|
||||
((NoPlayablePlayer)players[job.data[1]]).ArrowSelect(job.data[2]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void Activate(int player)
|
||||
{
|
||||
for (int i = 0; i < players.Length; i++)
|
||||
{
|
||||
if (players[i] != null)
|
||||
{
|
||||
if (i == player)
|
||||
{
|
||||
players[i].Activate();
|
||||
}
|
||||
else
|
||||
{
|
||||
players[i].DeActivate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
cam.transform.parent = players[player].transform;
|
||||
cam.transform.localPosition = new Vector3(-3, 8, 7);
|
||||
}
|
||||
|
||||
|
||||
private void Read()
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
byte[] read = new byte[10];
|
||||
|
||||
stream.Read(read, 0, 10);
|
||||
|
||||
jobs.Enqueue(new Job(read));
|
||||
}
|
||||
}
|
||||
|
||||
//0 3 wurfeln
|
||||
//1 x, x = zahl
|
||||
public void SendWurfeln(int zahl)
|
||||
{
|
||||
|
||||
stream.Write(new byte[]{3, (byte)zahl, 0, 0, 0, 0, 0, 0, 0, 0});
|
||||
}
|
||||
|
||||
//0 4 arrow selected
|
||||
//1 x, x = arrow idx
|
||||
public void SendArrowSelected(int idx)
|
||||
{
|
||||
stream.Write(new byte[]{4, (byte)idx, 0, 0, 0, 0, 0, 0, 0, 0});
|
||||
}
|
||||
|
||||
//0 5
|
||||
public void SendFinished()
|
||||
{
|
||||
stream.Write(new byte[]{5, 0, 0, 0, 0, 0, 0, 0, 0, 0});
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f02425538b327cc47a5d70da69804669
|
||||
guid: 812fca21913ccbd42a3f716f9c3b7727
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
@@ -0,0 +1,13 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class Job
|
||||
{
|
||||
public byte[] data;
|
||||
|
||||
public Job(byte[] data)
|
||||
{
|
||||
this.data = data;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: e64a1673d23a4304fa81de76a9941bb3
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,126 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class NoPlayablePlayer : Player
|
||||
{
|
||||
public Field nextField;
|
||||
private Field currentField;
|
||||
public GameObject dice;
|
||||
private Dice diceScript;
|
||||
private Vector3 moveTo = Vector3.zero;
|
||||
private Vector3 lastPos = Vector3.zero;
|
||||
private float speed = 5;
|
||||
private float interPol = 0;
|
||||
private int wurfelZahl = 0;
|
||||
|
||||
private bool wait = false;
|
||||
private bool lastActivated = false;
|
||||
|
||||
private float timeSinceWurfeln = 0;
|
||||
|
||||
private Vector3 useLess = new Vector3();
|
||||
|
||||
public void Init()
|
||||
{
|
||||
activated = false;
|
||||
diceScript = dice.GetComponent<Dice>();
|
||||
}
|
||||
|
||||
public void Wurfeln(int wurfelZahl)
|
||||
{
|
||||
this.wurfelZahl = wurfelZahl;
|
||||
//nächstes Feld anvisieren
|
||||
TargetNextField();
|
||||
|
||||
//stop the dice
|
||||
diceScript.StopRandom(wurfelZahl);
|
||||
|
||||
//delay for walk start
|
||||
timeSinceWurfeln = Time.time;
|
||||
}
|
||||
|
||||
public void ArrowSelect(int idx)
|
||||
{
|
||||
foreach (Arrow a in nextField.DirectionalArrow)
|
||||
{
|
||||
a.Deactivate();
|
||||
}
|
||||
|
||||
nextField = nextField.Target[idx];
|
||||
moveTo = nextField.transform.position;
|
||||
wait = false;
|
||||
}
|
||||
|
||||
|
||||
private void FixedUpdate()
|
||||
{
|
||||
if (activated)
|
||||
{
|
||||
if (!wait)
|
||||
{
|
||||
//Laufe zum nöchsten Feld, falls noch Züge übrig sind
|
||||
if (interPol < 1 && wurfelZahl > 0)
|
||||
{
|
||||
//delay
|
||||
if (Time.time - timeSinceWurfeln > 1)
|
||||
{
|
||||
InterPolerate();
|
||||
}
|
||||
}
|
||||
//Würfelzahl um 1 verringern falls noch züge übrig sind
|
||||
else if (wurfelZahl > 0)
|
||||
{
|
||||
wurfelZahl--;
|
||||
|
||||
//Visiere das nächste Feld an falls noch ein Zug übrig ist (Player steht gerade auf einem Feld oder läuft darüber)
|
||||
if (wurfelZahl > 0)
|
||||
{
|
||||
TargetNextField();
|
||||
}
|
||||
}
|
||||
//Der Spieler steht gerade
|
||||
else
|
||||
{
|
||||
//start the dice
|
||||
dice.transform.position = Vector3.SmoothDamp(dice.transform.position,
|
||||
transform.position + Vector3.up * 2, ref useLess, 0.2f);
|
||||
diceScript.StartRandom();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (Arrow a in nextField.DirectionalArrow)
|
||||
{
|
||||
a.Activate();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Das nächste Feld aufgrund des aktuellen Feldes anvisieren
|
||||
private void TargetNextField()
|
||||
{
|
||||
interPol = 0;
|
||||
lastPos = transform.position;
|
||||
currentField = nextField;
|
||||
if (nextField.Target.Length == 1)
|
||||
{
|
||||
nextField = nextField.Target[0];
|
||||
moveTo = nextField.transform.position;
|
||||
}
|
||||
else
|
||||
{
|
||||
wait = true;
|
||||
}
|
||||
}
|
||||
|
||||
//Bewegt den Player von einem Punkt(lastPos) zu einem anderen Punkt(moveTo) mit konstanter Geschwindigkeit
|
||||
private void InterPolerate()
|
||||
{
|
||||
Vector3 nextPoint = Vector3.Lerp(lastPos, moveTo, interPol);
|
||||
transform.position = new Vector3(nextPoint.x, transform.position.y, nextPoint.z);
|
||||
interPol += (Time.deltaTime * speed) / Mathf.Abs(Vector3.Distance(moveTo, lastPos));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 68609d4bfa4ff26459dc9a4f510bf86d
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,161 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class PlayablePlayer : Player
|
||||
{
|
||||
public Field nextField;
|
||||
private Field currentField;
|
||||
public GameObject dice;
|
||||
private Dice diceScript;
|
||||
private Vector3 moveTo = Vector3.zero;
|
||||
private Vector3 lastPos = Vector3.zero;
|
||||
private float speed = 5;
|
||||
private float interPol = 0;
|
||||
private int wurfelZahl = 0;
|
||||
|
||||
private bool wait = false;
|
||||
|
||||
|
||||
private float timeSinceWurfeln = 0;
|
||||
|
||||
private Vector3 useLess = new Vector3();
|
||||
|
||||
public Client client;
|
||||
|
||||
public void Init()
|
||||
{
|
||||
activated = false;
|
||||
QualitySettings.vSyncCount = 0;
|
||||
Application.targetFrameRate = 59;
|
||||
diceScript = dice.GetComponent<Dice>();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if (activated)
|
||||
{
|
||||
//Generiere Würfelzahl von 1-6 wenn gerade gewürfelt werden darf
|
||||
if ((Input.GetMouseButtonDown(0)) && wurfelZahl == 0 && !wurfelt)
|
||||
{
|
||||
wurfelt = true;
|
||||
wurfelZahl = Random.Range(1, 7);
|
||||
|
||||
client.SendWurfeln(wurfelZahl);
|
||||
|
||||
//nächstes Feld anvisieren
|
||||
TargetNextField();
|
||||
|
||||
//stop the dice
|
||||
diceScript.StopRandom(wurfelZahl);
|
||||
|
||||
//delay for walk start
|
||||
timeSinceWurfeln = Time.time;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void FixedUpdate()
|
||||
{
|
||||
if (activated)
|
||||
{
|
||||
if (!wait)
|
||||
{
|
||||
//Laufe zum nöchsten Feld, falls noch Züge übrig sind
|
||||
if (interPol < 1 && wurfelZahl > 0)
|
||||
{
|
||||
//delay
|
||||
if (Time.time - timeSinceWurfeln > 1)
|
||||
{
|
||||
InterPolerate();
|
||||
}
|
||||
}
|
||||
//Würfelzahl um 1 verringern falls noch züge übrig sind
|
||||
else if (wurfelZahl > 0)
|
||||
{
|
||||
wurfelZahl--;
|
||||
|
||||
//Visiere das nächste Feld an falls noch ein Zug übrig ist (Player steht gerade auf einem Feld oder läuft darüber)
|
||||
if (wurfelZahl > 0)
|
||||
{
|
||||
TargetNextField();
|
||||
}
|
||||
}
|
||||
//Der Spieler steht gerade
|
||||
else
|
||||
{
|
||||
//start the dice
|
||||
dice.transform.position = Vector3.SmoothDamp(dice.transform.position,
|
||||
transform.position + Vector3.up * 2, ref useLess, 0.2f);
|
||||
diceScript.StartRandom();
|
||||
|
||||
//TODO: temp spieler finsihed erst, wenn field action ausgeführt wurde
|
||||
if (wurfelt)
|
||||
{
|
||||
client.SendFinished();
|
||||
activated = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (Arrow a in nextField.DirectionalArrow)
|
||||
{
|
||||
a.Activate();
|
||||
}
|
||||
|
||||
if (nextField.DirectionalArrow[0].IsClicked())
|
||||
{
|
||||
client.SendArrowSelected(0);
|
||||
|
||||
foreach (Arrow a in nextField.DirectionalArrow)
|
||||
{
|
||||
a.Deactivate();
|
||||
}
|
||||
|
||||
nextField = nextField = nextField.Target[0];
|
||||
moveTo = nextField.transform.position;
|
||||
wait = false;
|
||||
}
|
||||
else if (nextField.DirectionalArrow[1].IsClicked())
|
||||
{
|
||||
client.SendArrowSelected(1);
|
||||
foreach (Arrow a in nextField.DirectionalArrow)
|
||||
{
|
||||
a.Deactivate();
|
||||
}
|
||||
|
||||
nextField = nextField = nextField.Target[1];
|
||||
moveTo = nextField.transform.position;
|
||||
wait = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Das nächste Feld aufgrund des aktuellen Feldes anvisieren
|
||||
private void TargetNextField()
|
||||
{
|
||||
interPol = 0;
|
||||
lastPos = transform.position;
|
||||
currentField = nextField;
|
||||
if (nextField.Target.Length == 1)
|
||||
{
|
||||
nextField = nextField.Target[0];
|
||||
moveTo = nextField.transform.position;
|
||||
}
|
||||
else
|
||||
{
|
||||
wait = true;
|
||||
}
|
||||
}
|
||||
|
||||
//Bewegt den Player von einem Punkt(lastPos) zu einem anderen Punkt(moveTo) mit konstanter Geschwindigkeit
|
||||
private void InterPolerate()
|
||||
{
|
||||
Vector3 nextPoint = Vector3.Lerp(lastPos, moveTo, interPol);
|
||||
transform.position = new Vector3(nextPoint.x, transform.position.y, nextPoint.z);
|
||||
interPol += (Time.deltaTime * speed) / Mathf.Abs(Vector3.Distance(moveTo, lastPos));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ec20d73d6ef92f6469fe8f5daf50c15c
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -1,159 +1,17 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using Random = UnityEngine.Random;
|
||||
|
||||
public class Player : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private Field nextField;
|
||||
private Field currentField;
|
||||
[SerializeField] private GameObject dice;
|
||||
private Dice diceScript;
|
||||
private Vector3 moveTo = Vector3.zero;
|
||||
private Vector3 lastPos = Vector3.zero;
|
||||
private float speed = 5;
|
||||
private float interPol = 0;
|
||||
private int wurfelZahl = 0;
|
||||
|
||||
private bool activated = true;
|
||||
private bool wait = false;
|
||||
private bool lastActivated = false;
|
||||
|
||||
private float timeSinceWurfeln = 0;
|
||||
|
||||
//TESTTTTT
|
||||
[SerializeField] private TMP_Text fpsText;
|
||||
|
||||
private Vector3 useLess = new Vector3();
|
||||
|
||||
private void Start()
|
||||
{
|
||||
QualitySettings.vSyncCount = 0;
|
||||
Application.targetFrameRate = 9999;
|
||||
diceScript = dice.GetComponent<Dice>();
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
fpsText.text = ((int)Time.frameCount / (int)Time.time) + " fps";
|
||||
|
||||
if(activated)
|
||||
{
|
||||
//Generiere Würfelzahl von 1-6 wenn gerade gewürfelt werden darf
|
||||
if ((Input.GetMouseButtonDown(0)) && wurfelZahl == 0)
|
||||
{
|
||||
wurfelZahl = Random.Range(1, 7);
|
||||
//nächstes Feld anvisieren
|
||||
TargetNextField();
|
||||
|
||||
//stop the dice
|
||||
diceScript.StopRandom(wurfelZahl);
|
||||
|
||||
//delay for walk start
|
||||
timeSinceWurfeln = Time.time;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void FixedUpdate()
|
||||
{
|
||||
if (activated)
|
||||
{
|
||||
if (!wait)
|
||||
{
|
||||
//Laufe zum nöchsten Feld, falls noch Züge übrig sind
|
||||
if (interPol < 1 && wurfelZahl > 0)
|
||||
{
|
||||
|
||||
//delay
|
||||
if(Time.time - timeSinceWurfeln > 1)
|
||||
{
|
||||
InterPolerate();
|
||||
}
|
||||
}
|
||||
//Würfelzahl um 1 verringern falls noch züge übrig sind
|
||||
else if (wurfelZahl > 0 )
|
||||
{
|
||||
wurfelZahl--;
|
||||
|
||||
//Visiere das nächste Feld an falls noch ein Zug übrig ist (Player steht gerade auf einem Feld oder läuft darüber)
|
||||
if (wurfelZahl > 0)
|
||||
{
|
||||
TargetNextField();
|
||||
}
|
||||
}
|
||||
//Der Spieler steht gerade
|
||||
else
|
||||
{
|
||||
//start the dice
|
||||
dice.transform.position = Vector3.SmoothDamp(dice.transform.position,
|
||||
transform.position + Vector3.up * 2, ref useLess, 0.2f);
|
||||
diceScript.StartRandom();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach(Arrow a in nextField.DirectionalArrow)
|
||||
{
|
||||
a.Activate();
|
||||
}
|
||||
|
||||
if (nextField.DirectionalArrow[0].IsClicked())
|
||||
{
|
||||
foreach(Arrow a in nextField.DirectionalArrow)
|
||||
{
|
||||
a.Deactivate();
|
||||
}
|
||||
nextField = nextField = nextField.Target[0];
|
||||
moveTo = nextField.transform.position;
|
||||
wait = false;
|
||||
}
|
||||
else if (nextField.DirectionalArrow[1].IsClicked())
|
||||
{
|
||||
foreach(Arrow a in nextField.DirectionalArrow)
|
||||
{
|
||||
a.Deactivate();
|
||||
}
|
||||
nextField = nextField = nextField.Target[1];
|
||||
moveTo = nextField.transform.position;
|
||||
wait = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Das nächste Feld aufgrund des aktuellen Feldes anvisieren
|
||||
private void TargetNextField()
|
||||
{
|
||||
interPol = 0;
|
||||
lastPos = transform.position;
|
||||
currentField = nextField;
|
||||
if(nextField.Target.Length == 1)
|
||||
{
|
||||
nextField = nextField.Target[0];
|
||||
moveTo = nextField.transform.position;
|
||||
}
|
||||
else
|
||||
{
|
||||
wait = true;
|
||||
}
|
||||
}
|
||||
|
||||
//Bewegt den Player von einem Punkt(lastPos) zu einem anderen Punkt(moveTo) mit konstanter Geschwindigkeit
|
||||
private void InterPolerate()
|
||||
{
|
||||
Vector3 nextPoint = Vector3.Lerp(lastPos, moveTo, interPol);
|
||||
transform.position = new Vector3(nextPoint.x, transform.position.y, nextPoint.z);
|
||||
interPol += (Time.deltaTime * speed) / Mathf.Abs(Vector3.Distance(moveTo, lastPos));
|
||||
}
|
||||
public bool activated = false;
|
||||
protected bool wurfelt = false;
|
||||
|
||||
//Aktiviert den Player
|
||||
public void Activate()
|
||||
{
|
||||
activated = true;
|
||||
wurfelt = false;
|
||||
}
|
||||
|
||||
//Deaktiviert den Player
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c996b0ab459030a4e9d75049c0105263
|
||||
folderAsset: yes
|
||||
DefaultImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -0,0 +1,65 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Net.Sockets;
|
||||
using System.Text;
|
||||
using TMPro;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
public class StartHandler : MonoBehaviour
|
||||
{
|
||||
private TcpClient client;
|
||||
[SerializeField] private GameObject layout1;
|
||||
[SerializeField] private GameObject layout2;
|
||||
[SerializeField] private TMP_Text roomCodeEnter;
|
||||
|
||||
private void Start()
|
||||
{
|
||||
client = new TcpClient("185.245.96.48", 8051);
|
||||
|
||||
layout1.SetActive(true);
|
||||
layout2.SetActive(false);
|
||||
}
|
||||
|
||||
public void ButtonNewRoom()
|
||||
{
|
||||
Stream stream = client.GetStream();
|
||||
byte[] readMessage = new byte[10];
|
||||
|
||||
//Send message new room
|
||||
stream.Write(new byte[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0});
|
||||
|
||||
layout1.SetActive(false);
|
||||
layout2.SetActive(true);
|
||||
|
||||
//wait for room code
|
||||
int i = stream.Read(readMessage, 0, 10);
|
||||
|
||||
Debug.Log(i);
|
||||
|
||||
string code = Encoding.ASCII.GetString(readMessage);
|
||||
|
||||
PlayerPrefs.SetString("roomcode", code);
|
||||
PlayerPrefs.Save();
|
||||
|
||||
GUIUtility.systemCopyBuffer = code;
|
||||
layout2.GetComponentInChildren<TMP_Text>().text = "Your room code is: \n" + code + "\n copied to clipboard!";
|
||||
}
|
||||
|
||||
public void ButtonJoin()
|
||||
{
|
||||
string code = roomCodeEnter.text;
|
||||
PlayerPrefs.SetString("roomcode", code);
|
||||
PlayerPrefs.Save();
|
||||
|
||||
SceneManager.LoadScene(1, LoadSceneMode.Single);
|
||||
client.Close();
|
||||
}
|
||||
|
||||
public void ButtonJoin2()
|
||||
{
|
||||
SceneManager.LoadScene(1, LoadSceneMode.Single);
|
||||
client.Close();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c98cb2b6987650844a331238afcbf2f7
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
+17
-6
@@ -2,14 +2,15 @@
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2180264
|
||||
Material:
|
||||
serializedVersion: 6
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: LiberationSans SDF Material
|
||||
m_Shader: {fileID: 4800000, guid: fe393ace9b354375a9cb14cdbbc28be4, type: 3}
|
||||
m_ShaderKeywords:
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 1
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
@@ -67,6 +68,7 @@ Material:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _Ambient: 0.5
|
||||
- _Bevel: 0.5
|
||||
@@ -107,9 +109,9 @@ Material:
|
||||
- _Parallax: 0.02
|
||||
- _PerspectiveFilter: 0.875
|
||||
- _Reflectivity: 10
|
||||
- _ScaleRatioA: 0.90909094
|
||||
- _ScaleRatioA: 0.9
|
||||
- _ScaleRatioB: 0.73125
|
||||
- _ScaleRatioC: 0.7386364
|
||||
- _ScaleRatioC: 0.73125
|
||||
- _ScaleX: 1
|
||||
- _ScaleY: 1
|
||||
- _ShaderFlags: 0
|
||||
@@ -148,6 +150,7 @@ Material:
|
||||
- _ReflectOutlineColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecularColor: {r: 1, g: 1, b: 1, a: 1}
|
||||
- _UnderlayColor: {r: 0, g: 0, b: 0, a: 0.5}
|
||||
m_BuildTextureStacks: []
|
||||
--- !u!114 &11400000
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
@@ -165,15 +168,16 @@ MonoBehaviour:
|
||||
materialHashCode: 462855346
|
||||
m_Version: 1.1.0
|
||||
m_SourceFontFileGUID: e3265ab4bf004d28a9537516768c1c75
|
||||
m_SourceFontFile_EditorRef: {fileID: 12800000, guid: e3265ab4bf004d28a9537516768c1c75,
|
||||
type: 3}
|
||||
m_SourceFontFile_EditorRef: {fileID: 12800000, guid: e3265ab4bf004d28a9537516768c1c75, type: 3}
|
||||
m_SourceFontFile: {fileID: 12800000, guid: e3265ab4bf004d28a9537516768c1c75, type: 3}
|
||||
m_AtlasPopulationMode: 1
|
||||
m_FaceInfo:
|
||||
m_FaceIndex: 0
|
||||
m_FamilyName: Liberation Sans
|
||||
m_StyleName: Regular
|
||||
m_PointSize: 86
|
||||
m_Scale: 1
|
||||
m_UnitsPerEM: 0
|
||||
m_LineHeight: 98.8916
|
||||
m_AscentLine: 77.853516
|
||||
m_CapLine: 59
|
||||
@@ -313,15 +317,20 @@ Texture2D:
|
||||
Hash: 00000000000000000000000000000000
|
||||
m_ForcedFallbackFormat: 4
|
||||
m_DownscaleFallback: 0
|
||||
m_IsAlphaChannelOptional: 0
|
||||
serializedVersion: 2
|
||||
m_Width: 0
|
||||
m_Height: 0
|
||||
m_CompleteImageSize: 0
|
||||
m_MipsStripped: 0
|
||||
m_TextureFormat: 1
|
||||
m_MipCount: 1
|
||||
m_IsReadable: 1
|
||||
m_IsPreProcessed: 0
|
||||
m_IgnoreMasterTextureLimit: 0
|
||||
m_StreamingMipmaps: 0
|
||||
m_StreamingMipmapsPriority: 0
|
||||
m_VTOnly: 0
|
||||
m_AlphaIsTransparency: 0
|
||||
m_ImageCount: 1
|
||||
m_TextureDimension: 2
|
||||
@@ -335,9 +344,11 @@ Texture2D:
|
||||
m_WrapW: 0
|
||||
m_LightmapFormat: 0
|
||||
m_ColorSpace: 0
|
||||
m_PlatformBlob:
|
||||
image data: 0
|
||||
_typelessdata:
|
||||
m_StreamData:
|
||||
serializedVersion: 2
|
||||
offset: 0
|
||||
size: 0
|
||||
path:
|
||||
|
||||
+269
-5
File diff suppressed because one or more lines are too long
@@ -5,6 +5,9 @@ EditorBuildSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 2
|
||||
m_Scenes:
|
||||
- enabled: 1
|
||||
path: Assets/Scenes/Start.unity
|
||||
guid: c169a244ad039ce4ab72b1ee3383a41c
|
||||
- enabled: 1
|
||||
path: Assets/Scenes/WesternMap.unity
|
||||
guid: 9fc0d4010bbf28b4594072e72b8655ab
|
||||
|
||||
@@ -42,8 +42,8 @@ PlayerSettings:
|
||||
m_SplashScreenLogos: []
|
||||
m_VirtualRealitySplashScreen: {fileID: 0}
|
||||
m_HolographicTrackingLossScreen: {fileID: 0}
|
||||
defaultScreenWidth: 1920
|
||||
defaultScreenHeight: 1080
|
||||
defaultScreenWidth: 800
|
||||
defaultScreenHeight: 600
|
||||
defaultScreenWidthWeb: 960
|
||||
defaultScreenHeightWeb: 600
|
||||
m_StereoRenderingPath: 0
|
||||
@@ -99,7 +99,7 @@ PlayerSettings:
|
||||
xboxEnableFitness: 0
|
||||
visibleInBackground: 1
|
||||
allowFullscreenSwitch: 1
|
||||
fullscreenMode: 1
|
||||
fullscreenMode: 3
|
||||
xboxSpeechDB: 0
|
||||
xboxEnableHeadOrientation: 0
|
||||
xboxEnableGuest: 0
|
||||
@@ -734,7 +734,7 @@ PlayerSettings:
|
||||
allowUnsafeCode: 0
|
||||
useDeterministicCompilation: 1
|
||||
enableRoslynAnalyzers: 1
|
||||
selectedPlatform: 2
|
||||
selectedPlatform: 0
|
||||
additionalIl2CppArgs:
|
||||
scriptingRuntimeVersion: 1
|
||||
gcIncremental: 1
|
||||
|
||||
@@ -231,7 +231,7 @@ QualitySettings:
|
||||
PSP2: 2
|
||||
Server: 0
|
||||
Stadia: 5
|
||||
Standalone: 5
|
||||
Standalone: 2
|
||||
WebGL: 3
|
||||
Windows Store Apps: 5
|
||||
XboxOne: 5
|
||||
|
||||
@@ -11,6 +11,9 @@ EditorUserSettings:
|
||||
RecentlyUsedSceneGuid-1:
|
||||
value: 5a5757560101590a5d0c0e24427b5d44434e4c7a7b7a23677f2b4565b7b5353a
|
||||
flags: 0
|
||||
RecentlyUsedSceneGuid-2:
|
||||
value: 0000025f04075d0f0c0a5c7149205a4417154f782e7923357e7a4560e3b4653b
|
||||
flags: 0
|
||||
UnityRemoteDevice:
|
||||
value: 225f4d46245b0d4902070862342649191512
|
||||
flags: 0
|
||||
|
||||
@@ -19,7 +19,7 @@ MonoBehaviour:
|
||||
width: 1920
|
||||
height: 1117
|
||||
m_ShowMode: 4
|
||||
m_Title: Hierarchy
|
||||
m_Title: Console
|
||||
m_RootView: {fileID: 6}
|
||||
m_MinSize: {x: 875, y: 300}
|
||||
m_MaxSize: {x: 10000, y: 10000}
|
||||
@@ -48,7 +48,7 @@ MonoBehaviour:
|
||||
m_MinSize: {x: 300, y: 200}
|
||||
m_MaxSize: {x: 24288, y: 16192}
|
||||
vertical: 0
|
||||
controlID: 104
|
||||
controlID: 58
|
||||
--- !u!114 &3
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 52
|
||||
@@ -64,15 +64,15 @@ MonoBehaviour:
|
||||
m_Children: []
|
||||
m_Position:
|
||||
serializedVersion: 2
|
||||
x: 1391
|
||||
x: 1447
|
||||
y: 0
|
||||
width: 529
|
||||
width: 473
|
||||
height: 1067
|
||||
m_MinSize: {x: 276, y: 71}
|
||||
m_MaxSize: {x: 4001, y: 4021}
|
||||
m_ActualView: {fileID: 15}
|
||||
m_ActualView: {fileID: 16}
|
||||
m_Panes:
|
||||
- {fileID: 15}
|
||||
- {fileID: 16}
|
||||
m_Selected: 0
|
||||
m_LastSelected: 0
|
||||
--- !u!114 &4
|
||||
@@ -92,13 +92,13 @@ MonoBehaviour:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 329
|
||||
width: 343
|
||||
height: 686
|
||||
m_MinSize: {x: 201, y: 221}
|
||||
m_MaxSize: {x: 4001, y: 4021}
|
||||
m_ActualView: {fileID: 16}
|
||||
m_ActualView: {fileID: 17}
|
||||
m_Panes:
|
||||
- {fileID: 16}
|
||||
- {fileID: 17}
|
||||
m_Selected: 0
|
||||
m_LastSelected: 0
|
||||
--- !u!114 &5
|
||||
@@ -111,23 +111,23 @@ MonoBehaviour:
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 1
|
||||
m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_Name: ProjectBrowser
|
||||
m_Name: ConsoleWindow
|
||||
m_EditorClassIdentifier:
|
||||
m_Children: []
|
||||
m_Position:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 686
|
||||
width: 1391
|
||||
width: 1447
|
||||
height: 381
|
||||
m_MinSize: {x: 231, y: 271}
|
||||
m_MaxSize: {x: 10001, y: 10021}
|
||||
m_ActualView: {fileID: 14}
|
||||
m_MinSize: {x: 101, y: 121}
|
||||
m_MaxSize: {x: 4001, y: 4021}
|
||||
m_ActualView: {fileID: 18}
|
||||
m_Panes:
|
||||
- {fileID: 14}
|
||||
- {fileID: 17}
|
||||
m_Selected: 0
|
||||
m_LastSelected: 1
|
||||
- {fileID: 15}
|
||||
- {fileID: 18}
|
||||
m_Selected: 1
|
||||
m_LastSelected: 0
|
||||
--- !u!114 &6
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 52
|
||||
@@ -218,12 +218,12 @@ MonoBehaviour:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1391
|
||||
width: 1447
|
||||
height: 1067
|
||||
m_MinSize: {x: 200, y: 200}
|
||||
m_MaxSize: {x: 16192, y: 16192}
|
||||
vertical: 1
|
||||
controlID: 105
|
||||
controlID: 59
|
||||
--- !u!114 &10
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 52
|
||||
@@ -243,12 +243,12 @@ MonoBehaviour:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 1391
|
||||
width: 1447
|
||||
height: 686
|
||||
m_MinSize: {x: 200, y: 100}
|
||||
m_MaxSize: {x: 16192, y: 8096}
|
||||
vertical: 0
|
||||
controlID: 106
|
||||
controlID: 50
|
||||
--- !u!114 &11
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 52
|
||||
@@ -259,25 +259,119 @@ MonoBehaviour:
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 1
|
||||
m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_Name: SimulatorWindow
|
||||
m_Name: GameView
|
||||
m_EditorClassIdentifier:
|
||||
m_Children: []
|
||||
m_Position:
|
||||
serializedVersion: 2
|
||||
x: 329
|
||||
x: 343
|
||||
y: 0
|
||||
width: 1062
|
||||
width: 1104
|
||||
height: 686
|
||||
m_MinSize: {x: 202, y: 221}
|
||||
m_MinSize: {x: 102, y: 121}
|
||||
m_MaxSize: {x: 4002, y: 4021}
|
||||
m_ActualView: {fileID: 18}
|
||||
m_ActualView: {fileID: 12}
|
||||
m_Panes:
|
||||
- {fileID: 14}
|
||||
- {fileID: 13}
|
||||
- {fileID: 12}
|
||||
- {fileID: 18}
|
||||
m_Selected: 2
|
||||
m_LastSelected: 0
|
||||
--- !u!114 &12
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 52
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 12015, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_MinSize: {x: 100, y: 100}
|
||||
m_MaxSize: {x: 4000, y: 4000}
|
||||
m_TitleContent:
|
||||
m_Text: Game
|
||||
m_Image: {fileID: -6423792434712278376, guid: 0000000000000000d000000000000000, type: 0}
|
||||
m_Tooltip:
|
||||
m_Pos:
|
||||
serializedVersion: 2
|
||||
x: 343
|
||||
y: 73
|
||||
width: 1102
|
||||
height: 665
|
||||
m_ViewDataDictionary: {fileID: 0}
|
||||
m_OverlayCanvas:
|
||||
m_LastAppliedPresetName: Default
|
||||
m_SaveData: []
|
||||
m_SerializedViewNames:
|
||||
- UnityEditor.DeviceSimulation.SimulatorWindow
|
||||
m_SerializedViewValues:
|
||||
- F:\Projects\Unity\flufflparty\FlufflParty\Library\PlayModeViewStates\46d6f1c4f31f58e4cacd8a58295190c9
|
||||
m_PlayModeViewName: GameView
|
||||
m_ShowGizmos: 0
|
||||
m_TargetDisplay: 0
|
||||
m_ClearColor: {r: 0, g: 0, b: 0, a: 0}
|
||||
m_TargetSize: {x: 1102, y: 644}
|
||||
m_TextureFilterMode: 0
|
||||
m_TextureHideFlags: 61
|
||||
m_RenderIMGUI: 1
|
||||
m_EnterPlayModeBehavior: 2
|
||||
m_UseMipMap: 0
|
||||
m_VSyncEnabled: 0
|
||||
m_Gizmos: 0
|
||||
m_Stats: 0
|
||||
m_SelectedSizes: 00000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||
m_ZoomArea:
|
||||
m_HRangeLocked: 0
|
||||
m_VRangeLocked: 0
|
||||
hZoomLockedByDefault: 0
|
||||
vZoomLockedByDefault: 0
|
||||
m_HBaseRangeMin: -551
|
||||
m_HBaseRangeMax: 551
|
||||
m_VBaseRangeMin: -322
|
||||
m_VBaseRangeMax: 322
|
||||
m_HAllowExceedBaseRangeMin: 1
|
||||
m_HAllowExceedBaseRangeMax: 1
|
||||
m_VAllowExceedBaseRangeMin: 1
|
||||
m_VAllowExceedBaseRangeMax: 1
|
||||
m_ScaleWithWindow: 0
|
||||
m_HSlider: 0
|
||||
m_VSlider: 0
|
||||
m_IgnoreScrollWheelUntilClicked: 0
|
||||
m_EnableMouseInput: 1
|
||||
m_EnableSliderZoomHorizontal: 0
|
||||
m_EnableSliderZoomVertical: 0
|
||||
m_UniformScale: 1
|
||||
m_UpDirection: 1
|
||||
m_DrawArea:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 21
|
||||
width: 1102
|
||||
height: 644
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Translation: {x: 551, y: 322}
|
||||
m_MarginLeft: 0
|
||||
m_MarginRight: 0
|
||||
m_MarginTop: 0
|
||||
m_MarginBottom: 0
|
||||
m_LastShownAreaInsideMargins:
|
||||
serializedVersion: 2
|
||||
x: -551
|
||||
y: -322
|
||||
width: 1102
|
||||
height: 644
|
||||
m_MinimalGUI: 1
|
||||
m_defaultScale: 1
|
||||
m_LastWindowPixelSize: {x: 1102, y: 665}
|
||||
m_ClearInEditMode: 1
|
||||
m_NoCameraWarning: 1
|
||||
m_LowResolutionForAspectRatios: 01000000000000000000
|
||||
m_XRRenderMode: 0
|
||||
m_RenderTexture: {fileID: 0}
|
||||
--- !u!114 &13
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 52
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
@@ -358,7 +452,7 @@ MonoBehaviour:
|
||||
m_CurrentEditor: 0
|
||||
m_LayerEditor:
|
||||
m_SelectedLayerIndex: 0
|
||||
--- !u!114 &13
|
||||
--- !u!114 &14
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 52
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
@@ -378,9 +472,9 @@ MonoBehaviour:
|
||||
m_Tooltip:
|
||||
m_Pos:
|
||||
serializedVersion: 2
|
||||
x: 329
|
||||
x: 343
|
||||
y: 73
|
||||
width: 1060
|
||||
width: 1102
|
||||
height: 665
|
||||
m_ViewDataDictionary: {fileID: 0}
|
||||
m_OverlayCanvas:
|
||||
@@ -578,14 +672,14 @@ MonoBehaviour:
|
||||
m_OverrideSceneCullingMask: 6917529027641081856
|
||||
m_SceneIsLit: 1
|
||||
m_SceneLighting: 1
|
||||
m_2DMode: 0
|
||||
m_2DMode: 1
|
||||
m_isRotationLocked: 0
|
||||
m_PlayAudio: 0
|
||||
m_AudioPlay: 0
|
||||
m_Position:
|
||||
m_Target: {x: 93.51797, y: 7.8785253, z: 114.22435}
|
||||
m_Target: {x: 549.13434, y: 382.2807, z: 0.39464524}
|
||||
speed: 2
|
||||
m_Value: {x: 93.51797, y: 7.8785253, z: 114.22435}
|
||||
m_Value: {x: 549.13434, y: 382.2807, z: 0.39464524}
|
||||
m_RenderMode: 0
|
||||
m_CameraMode:
|
||||
drawMode: 0
|
||||
@@ -632,17 +726,17 @@ MonoBehaviour:
|
||||
m_GridAxis: 1
|
||||
m_gridOpacity: 0.5
|
||||
m_Rotation:
|
||||
m_Target: {x: 0.36609727, y: 0.2688171, z: -0.114193745, w: 0.88427716}
|
||||
m_Target: {x: 0, y: 0, z: 0, w: 1}
|
||||
speed: 2
|
||||
m_Value: {x: 0.36405128, y: 0.26234403, z: -0.11058539, w: 0.88679934}
|
||||
m_Value: {x: 0, y: 0, z: 0, w: 1}
|
||||
m_Size:
|
||||
m_Target: 0.8660254
|
||||
m_Target: 441.54617
|
||||
speed: 2
|
||||
m_Value: 0.8660254
|
||||
m_Value: 441.54617
|
||||
m_Ortho:
|
||||
m_Target: 0
|
||||
m_Target: 1
|
||||
speed: 2
|
||||
m_Value: 0
|
||||
m_Value: 1
|
||||
m_CameraSettings:
|
||||
m_Speed: 1.005
|
||||
m_SpeedNormalized: 0.5
|
||||
@@ -656,14 +750,14 @@ MonoBehaviour:
|
||||
m_FarClip: 10000
|
||||
m_DynamicClip: 1
|
||||
m_OcclusionCulling: 0
|
||||
m_LastSceneViewRotation: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_LastSceneViewRotation: {x: -0.13503443, y: -0.86239696, z: 0.32290962, w: -0.36766163}
|
||||
m_LastSceneViewOrtho: 0
|
||||
m_ReplacementShader: {fileID: 0}
|
||||
m_ReplacementString:
|
||||
m_SceneVisActive: 1
|
||||
m_LastLockedObject: {fileID: 0}
|
||||
m_ViewIsLockedToObject: 0
|
||||
--- !u!114 &14
|
||||
--- !u!114 &15
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 52
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
@@ -685,7 +779,7 @@ MonoBehaviour:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 759
|
||||
width: 1390
|
||||
width: 1446
|
||||
height: 360
|
||||
m_ViewDataDictionary: {fileID: 0}
|
||||
m_OverlayCanvas:
|
||||
@@ -704,22 +798,22 @@ MonoBehaviour:
|
||||
m_SkipHidden: 0
|
||||
m_SearchArea: 1
|
||||
m_Folders:
|
||||
- Assets/Prefabs
|
||||
- Assets/Scripts/Start
|
||||
m_Globs: []
|
||||
m_OriginalText:
|
||||
m_ViewMode: 1
|
||||
m_StartGridSize: 64
|
||||
m_LastFolders:
|
||||
- Assets/Prefabs
|
||||
- Assets/Scripts/Start
|
||||
m_LastFoldersGridSize: -1
|
||||
m_LastProjectPath: F:\Projects\Unity\flufflparty\FlufflParty
|
||||
m_LockTracker:
|
||||
m_IsLocked: 0
|
||||
m_FolderTreeState:
|
||||
scrollPos: {x: 0, y: 0}
|
||||
m_SelectedIDs: ba630000
|
||||
m_LastClickedID: 25530
|
||||
m_ExpandedIDs: 0000000076630000786300007a63000000ca9a3b
|
||||
m_SelectedIDs: dc630000
|
||||
m_LastClickedID: 25564
|
||||
m_ExpandedIDs: 000000001c6300001e6300002063000000ca9a3b
|
||||
m_RenameOverlay:
|
||||
m_UserAcceptedRename: 0
|
||||
m_Name:
|
||||
@@ -747,7 +841,7 @@ MonoBehaviour:
|
||||
scrollPos: {x: 0, y: 0}
|
||||
m_SelectedIDs:
|
||||
m_LastClickedID: 0
|
||||
m_ExpandedIDs: 0000000076630000786300007a630000
|
||||
m_ExpandedIDs: 000000001c6300001e63000020630000
|
||||
m_RenameOverlay:
|
||||
m_UserAcceptedRename: 0
|
||||
m_Name:
|
||||
@@ -774,7 +868,7 @@ MonoBehaviour:
|
||||
m_ListAreaState:
|
||||
m_SelectedInstanceIDs:
|
||||
m_LastClickedInstanceID: 0
|
||||
m_HadKeyboardFocusLastEvent: 0
|
||||
m_HadKeyboardFocusLastEvent: 1
|
||||
m_ExpandedInstanceIDs: c6230000906400007e6d0000
|
||||
m_RenameOverlay:
|
||||
m_UserAcceptedRename: 0
|
||||
@@ -803,7 +897,7 @@ MonoBehaviour:
|
||||
m_GridSize: 64
|
||||
m_SkipHiddenPackages: 0
|
||||
m_DirectoriesAreaWidth: 207
|
||||
--- !u!114 &15
|
||||
--- !u!114 &16
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 52
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
@@ -823,9 +917,9 @@ MonoBehaviour:
|
||||
m_Tooltip:
|
||||
m_Pos:
|
||||
serializedVersion: 2
|
||||
x: 1391
|
||||
x: 1447
|
||||
y: 73
|
||||
width: 528
|
||||
width: 472
|
||||
height: 1046
|
||||
m_ViewDataDictionary: {fileID: 0}
|
||||
m_OverlayCanvas:
|
||||
@@ -844,7 +938,7 @@ MonoBehaviour:
|
||||
m_LockTracker:
|
||||
m_IsLocked: 0
|
||||
m_PreviewWindow: {fileID: 0}
|
||||
--- !u!114 &16
|
||||
--- !u!114 &17
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 52
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
@@ -866,7 +960,7 @@ MonoBehaviour:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 73
|
||||
width: 328
|
||||
width: 342
|
||||
height: 665
|
||||
m_ViewDataDictionary: {fileID: 0}
|
||||
m_OverlayCanvas:
|
||||
@@ -877,7 +971,7 @@ MonoBehaviour:
|
||||
scrollPos: {x: 0, y: 0}
|
||||
m_SelectedIDs:
|
||||
m_LastClickedID: 0
|
||||
m_ExpandedIDs: 4ae9ffffa8e9ffff58f0ffff8cfaffff
|
||||
m_ExpandedIDs: 48f0ffff30f3ffff04fbffff
|
||||
m_RenameOverlay:
|
||||
m_UserAcceptedRename: 0
|
||||
m_Name:
|
||||
@@ -901,7 +995,7 @@ MonoBehaviour:
|
||||
m_IsLocked: 0
|
||||
m_CurrentSortingName: TransformSorting
|
||||
m_WindowGUID: 4c969a2b90040154d917609493e03593
|
||||
--- !u!114 &17
|
||||
--- !u!114 &18
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 52
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
@@ -923,68 +1017,9 @@ MonoBehaviour:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 759
|
||||
width: 1390
|
||||
width: 1446
|
||||
height: 360
|
||||
m_ViewDataDictionary: {fileID: 0}
|
||||
m_OverlayCanvas:
|
||||
m_LastAppliedPresetName: Default
|
||||
m_SaveData: []
|
||||
--- !u!114 &18
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 52
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 0}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 13974, guid: 0000000000000000e000000000000000, type: 0}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
m_MinSize: {x: 200, y: 200}
|
||||
m_MaxSize: {x: 4000, y: 4000}
|
||||
m_TitleContent:
|
||||
m_Text: Simulator
|
||||
m_Image: {fileID: 8720083202187608617, guid: 0000000000000000d000000000000000, type: 0}
|
||||
m_Tooltip:
|
||||
m_Pos:
|
||||
serializedVersion: 2
|
||||
x: 329
|
||||
y: 73
|
||||
width: 1060
|
||||
height: 665
|
||||
m_ViewDataDictionary: {fileID: 0}
|
||||
m_OverlayCanvas:
|
||||
m_LastAppliedPresetName: Default
|
||||
m_SaveData: []
|
||||
m_SerializedViewNames:
|
||||
- UnityEditor.GameView
|
||||
m_SerializedViewValues:
|
||||
- F:\Projects\Unity\flufflparty\FlufflParty\Library\PlayModeViewStates\18cef090df7291d48b9686d7bd1f782d
|
||||
m_PlayModeViewName: Device Simulator
|
||||
m_ShowGizmos: 0
|
||||
m_TargetDisplay: 0
|
||||
m_ClearColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
m_TargetSize: {x: 2532, y: 1170}
|
||||
m_TextureFilterMode: 0
|
||||
m_TextureHideFlags: 61
|
||||
m_RenderIMGUI: 1
|
||||
m_EnterPlayModeBehavior: 0
|
||||
m_UseMipMap: 0
|
||||
m_SimulatorState:
|
||||
controlPanelVisible: 0
|
||||
controlPanelWidth: 0
|
||||
controlPanelFoldoutKeys:
|
||||
- UnityEditor.DeviceSimulation.ApplicationSettingsPlugin
|
||||
controlPanelFoldoutValues: 00
|
||||
pluginNames:
|
||||
- UnityEditor.DeviceSimulation.ApplicationSettingsPlugin
|
||||
pluginStates:
|
||||
- '{}'
|
||||
scale: 40
|
||||
fitToScreenEnabled: 1
|
||||
rotationDegree: 270
|
||||
highlightSafeAreaEnabled: 0
|
||||
friendlyName: Apple iPhone 13 Pro
|
||||
networkReachability: 1
|
||||
systemLanguage: 10
|
||||
|
||||
Generated
+8
@@ -0,0 +1,8 @@
|
||||
<component name="ArtifactManager">
|
||||
<artifact type="jar" name="Server:jar">
|
||||
<output-path>$PROJECT_DIR$/out/artifacts/Server_jar</output-path>
|
||||
<root id="archive" name="Server.jar">
|
||||
<element id="module-output" name="Server" />
|
||||
</root>
|
||||
</artifact>
|
||||
</component>
|
||||
Generated
+6
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="corretto-1.8" project-jdk-type="JavaSDK">
|
||||
<output url="file://$PROJECT_DIR$/out" />
|
||||
</component>
|
||||
</project>
|
||||
Generated
+8
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/Server.iml" filepath="$PROJECT_DIR$/Server.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
||||
Generated
+6
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
Generated
+81
@@ -0,0 +1,81 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ArtifactsWorkspaceSettings">
|
||||
<artifacts-to-build>
|
||||
<artifact name="Server:jar" />
|
||||
</artifacts-to-build>
|
||||
</component>
|
||||
<component name="AutoImportSettings">
|
||||
<option name="autoReloadType" value="SELECTIVE" />
|
||||
</component>
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="6d89163f-4054-4765-8ee3-ac6da16b6997" name="Changes" comment="" />
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="FileTemplateManagerImpl">
|
||||
<option name="RECENT_TEMPLATES">
|
||||
<list>
|
||||
<option value="Class" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="Git.Settings">
|
||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." />
|
||||
</component>
|
||||
<component name="MarkdownSettingsMigration">
|
||||
<option name="stateVersion" value="1" />
|
||||
</component>
|
||||
<component name="ProjectId" id="2KuyzwPxozzNerRoAmXTliGxiKN" />
|
||||
<component name="ProjectViewState">
|
||||
<option name="hideEmptyMiddlePackages" value="true" />
|
||||
<option name="showLibraryContents" value="true" />
|
||||
</component>
|
||||
<component name="PropertiesComponent"><![CDATA[{
|
||||
"keyToString": {
|
||||
"RunOnceActivity.OpenProjectViewOnStart": "true",
|
||||
"RunOnceActivity.ShowReadmeOnStart": "true",
|
||||
"WebServerToolWindowFactoryState": "false",
|
||||
"node.js.detected.package.eslint": "true",
|
||||
"node.js.detected.package.tslint": "true",
|
||||
"node.js.selected.package.eslint": "(autodetect)",
|
||||
"node.js.selected.package.tslint": "(autodetect)",
|
||||
"project.structure.last.edited": "Artifacts",
|
||||
"project.structure.proportion": "0.0",
|
||||
"project.structure.side.proportion": "0.2",
|
||||
"vue.rearranger.settings.migration": "true"
|
||||
}
|
||||
}]]></component>
|
||||
<component name="RunManager">
|
||||
<configuration name="Main" type="Application" factoryName="Application" temporary="true" nameIsGenerated="true">
|
||||
<option name="MAIN_CLASS_NAME" value="Main" />
|
||||
<module name="Server" />
|
||||
<method v="2">
|
||||
<option name="Make" enabled="true" />
|
||||
</method>
|
||||
</configuration>
|
||||
<recent_temporary>
|
||||
<list>
|
||||
<item itemvalue="Application.Main" />
|
||||
</list>
|
||||
</recent_temporary>
|
||||
</component>
|
||||
<component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="application-level" UseSingleDictionary="true" transferred="true" />
|
||||
<component name="TaskManager">
|
||||
<task active="true" id="Default" summary="Default task">
|
||||
<changelist id="6d89163f-4054-4765-8ee3-ac6da16b6997" name="Changes" comment="" />
|
||||
<created>1674839030210</created>
|
||||
<option name="number" value="Default" />
|
||||
<option name="presentableId" value="Default" />
|
||||
<updated>1674839030210</updated>
|
||||
<workItem from="1674839031467" duration="221000" />
|
||||
<workItem from="1674839402490" duration="19826000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TypeScriptGeneratedFilesManager">
|
||||
<option name="version" value="3" />
|
||||
</component>
|
||||
</project>
|
||||
@@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,3 @@
|
||||
Manifest-Version: 1.0
|
||||
Main-Class: Main
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,18 @@
|
||||
import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.net.Socket;
|
||||
|
||||
public class Client
|
||||
{
|
||||
public DataOutputStream output;
|
||||
public DataInputStream input;
|
||||
public Socket socket;
|
||||
|
||||
|
||||
public Client(DataOutputStream output, DataInputStream input, Socket socket)
|
||||
{
|
||||
this.output = output;
|
||||
this.input = input;
|
||||
this.socket = socket;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
Manifest-Version: 1.0
|
||||
Main-Class: Main
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
public class Main
|
||||
{
|
||||
public static void main(String[] args)
|
||||
{
|
||||
new Server().start();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,187 @@
|
||||
import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.net.ServerSocket;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class Room
|
||||
{
|
||||
// 1: 95.82, 0.5, 126.47
|
||||
// 2: 92.06, 0.36, 125.46
|
||||
// 3: 95.82, 0.5, 128.47
|
||||
// 4: 92.06, 0.36, 127.46
|
||||
|
||||
private Client[] players = new Client[2];
|
||||
private Vector3[] startPositions;
|
||||
private String roomCode;
|
||||
private Server server;
|
||||
|
||||
private List<Thread> threads = new ArrayList<>();
|
||||
|
||||
private int playerCount = 0;
|
||||
|
||||
private int currentPlayer = 0;
|
||||
|
||||
public Room(String roomCode, Server server)
|
||||
{
|
||||
this.roomCode = roomCode;
|
||||
startPositions = new Vector3[4];
|
||||
|
||||
startPositions[0] = new Vector3(96, 1, 126);
|
||||
startPositions[1] = new Vector3(92, 1, 126);
|
||||
startPositions[2] = new Vector3(96, 1, 128);
|
||||
startPositions[3] = new Vector3(92, 1, 128);
|
||||
|
||||
this.server = server;
|
||||
}
|
||||
|
||||
public void addClient(Client client)
|
||||
{
|
||||
for (int i = 0; i < players.length; i++)
|
||||
{
|
||||
if (players[i] == null)
|
||||
{
|
||||
players[i] = client;
|
||||
playerCount++;
|
||||
|
||||
System.out.println("Client joined room " + roomCode + " successfully as player " + i);
|
||||
|
||||
Thread t = new Thread(new Runnable()
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
int player = playerCount - 1;
|
||||
|
||||
DataInputStream input = null;
|
||||
try
|
||||
{
|
||||
input = new DataInputStream(players[player].socket.getInputStream());
|
||||
} catch (IOException e)
|
||||
{
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
while (true)
|
||||
{
|
||||
try
|
||||
{
|
||||
byte[] readData = new byte[10];
|
||||
|
||||
input.read(readData);
|
||||
|
||||
switch (readData[0])
|
||||
{
|
||||
|
||||
//spieler hat gewürfelt
|
||||
//1 x, x = zahl
|
||||
case 3:
|
||||
for (int i = 0; i < players.length; i++)
|
||||
{
|
||||
if (i != player)
|
||||
{
|
||||
players[i].output.write(new byte[]{3, (byte) player, readData[1], 0, 0, 0, 0, 0, 0, 0});
|
||||
}
|
||||
}
|
||||
break;
|
||||
//pfeil wurde ausgewählt
|
||||
//1 x, x = idx
|
||||
case 4:
|
||||
for (int i = 0; i < players.length; i++)
|
||||
{
|
||||
if (i != player)
|
||||
{
|
||||
players[i].output.write(new byte[]{4, (byte) player, readData[1], 0, 0, 0, 0, 0, 0, 0});
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
//Spieler ist fertig mit seinem Zug
|
||||
//1 x, x = next player
|
||||
case 5:
|
||||
currentPlayer++;
|
||||
if (currentPlayer >= players.length)
|
||||
{
|
||||
currentPlayer = 0;
|
||||
}
|
||||
for (int i = 0; i < players.length; i++)
|
||||
{
|
||||
players[i].output.write(new byte[]{2, (byte) currentPlayer, 0, 0, 0, 0, 0, 0, 0, 0});
|
||||
}
|
||||
break;
|
||||
case 0:
|
||||
server.deleteRoom(roomCode);
|
||||
for(int i = 0; i < threads.size(); i++)
|
||||
{
|
||||
threads.get(i).stop();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
} catch (IOException e)
|
||||
{
|
||||
for(int i = 0; i < threads.size(); i++)
|
||||
{
|
||||
threads.get(i).stop();
|
||||
}
|
||||
server.deleteRoom(roomCode);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
t.start();
|
||||
threads.add(t);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//Make clients add all players to the world
|
||||
if (playerCount == players.length)
|
||||
{
|
||||
for (int j = 0; j < players.length; j++)
|
||||
{
|
||||
for (int k = 0; k < players.length; k++)
|
||||
{
|
||||
//0 1 create new player
|
||||
//1 0 no playable player
|
||||
//1 1 playable character
|
||||
//2-3-4 default pos
|
||||
//5 player index
|
||||
if (j == k)
|
||||
{
|
||||
try
|
||||
{
|
||||
players[j].output.write(new byte[]{1, 1, (byte) startPositions[k].x, (byte) startPositions[k].y, (byte) startPositions[k].z, (byte) k, 0, 0, 0, 0});
|
||||
} catch (IOException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
} else
|
||||
{
|
||||
try
|
||||
{
|
||||
players[j].output.write(new byte[]{1, 0, (byte) startPositions[k].x, (byte) startPositions[k].y, (byte) startPositions[k].z, (byte) k, 0, 0, 0, 0});
|
||||
} catch (IOException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//0 2, activate a player
|
||||
//1 x, x = idx
|
||||
try
|
||||
{
|
||||
for (Client c : players)
|
||||
{
|
||||
c.output.write(new byte[]{2, 0, 0, 0, 0, 0, 0, 0, 0, 0});
|
||||
}
|
||||
} catch (IOException e)
|
||||
{
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
import java.io.DataInputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.net.ServerSocket;
|
||||
import java.net.Socket;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.HashMap;
|
||||
|
||||
public class Server
|
||||
{
|
||||
private ServerSocket serverSocket;
|
||||
private HashMap<String, Room> rooms = new HashMap<>();
|
||||
|
||||
private final Server server = this;
|
||||
|
||||
public void deleteRoom(String code)
|
||||
{
|
||||
rooms.remove(code);
|
||||
System.out.println("Room " + code + " successfully deleted");
|
||||
}
|
||||
|
||||
public void start()
|
||||
{
|
||||
try
|
||||
{
|
||||
serverSocket = new ServerSocket(8051);
|
||||
|
||||
System.out.println("Server started! IP 185.245.96.48 PORT 8051");
|
||||
|
||||
while(true)
|
||||
{
|
||||
Socket tempClient = serverSocket.accept();
|
||||
|
||||
System.out.println("Client with IP " + tempClient.getInetAddress().getHostName() + " connected!");
|
||||
|
||||
new Thread(new Runnable()
|
||||
{
|
||||
@Override
|
||||
public void run()
|
||||
{
|
||||
Socket client = tempClient;
|
||||
|
||||
try
|
||||
{
|
||||
DataInputStream input = new DataInputStream(client.getInputStream());
|
||||
DataOutputStream output = new DataOutputStream(client.getOutputStream());
|
||||
byte[] readData = new byte[10];
|
||||
|
||||
input.read(readData);
|
||||
|
||||
switch(readData[0])
|
||||
{
|
||||
case 0:
|
||||
byte[] code = generateRoomCode();
|
||||
output.write(code);
|
||||
|
||||
Room room = new Room(new String(code, StandardCharsets.US_ASCII), server);
|
||||
rooms.put(new String(code, StandardCharsets.US_ASCII), room);
|
||||
|
||||
System.out.println("Room " + new String(code, StandardCharsets.US_ASCII) + " successfully created!");
|
||||
break;
|
||||
case 1:
|
||||
|
||||
input.read(readData);
|
||||
|
||||
String roomCode = new String(readData, StandardCharsets.US_ASCII);
|
||||
Client client1 = new Client(output, input, client);
|
||||
|
||||
rooms.get(roomCode).addClient(client1);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
} catch (Exception e){
|
||||
|
||||
}
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
}
|
||||
catch(Exception e){e.printStackTrace();}
|
||||
}
|
||||
|
||||
private byte[] generateRoomCode()
|
||||
{
|
||||
byte[] code = new byte[10];
|
||||
|
||||
for(int i = 0; i < code.length; i++)
|
||||
{
|
||||
if(i < code.length / 2)
|
||||
{
|
||||
code[i] = (byte)(Math.random() * 8 + 49);
|
||||
}
|
||||
else
|
||||
{
|
||||
code[i] = (byte)(Math.random() * 25 + 97);
|
||||
}
|
||||
}
|
||||
|
||||
return code;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
public class Vector3
|
||||
{
|
||||
public float x, y, z;
|
||||
|
||||
public Vector3(float x, float y, float z)
|
||||
{
|
||||
this.x = x;
|
||||
this.y = y;
|
||||
this.z = z;
|
||||
}
|
||||
|
||||
public static Vector3 zero()
|
||||
{
|
||||
return new Vector3(0, 0, 0);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user