Tap troupe final tweaks and additions, the game can be marked as done now!!!!!!!!!!!!!! (#296)

* TWEAKS AND ZOOM OUT!

* Forgor these

* Another thing

* tink sfx improvement
This commit is contained in:
Rapandrasmus 2023-02-20 06:49:54 +01:00 committed by GitHub
parent a2f2324373
commit 1d32d17c4a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
26 changed files with 3835 additions and 80 deletions

File diff suppressed because it is too large Load diff

Binary file not shown.

View file

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 98723b9e007546449886de6586a50a54
guid: e7f94b6ae081ab74090fd02ffc8c192c
AudioImporter:
externalObjects: {}
serializedVersion: 6

Binary file not shown.

View file

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 68266249306abda4a8816d55c718f8cd
guid: 0775398c063dc2c4da547abe3e7a1df7
AudioImporter:
externalObjects: {}
serializedVersion: 6

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b33d029aebfb07544b9b0356311bde84
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,53 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: NoZoomOut
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings: []
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 1
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4129be460a192c145930d7b54bd97af9
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View file

@ -362,6 +362,9 @@ AnimatorStateMachine:
- serializedVersion: 1
m_State: {fileID: -2480812715153685359}
m_Position: {x: 700, y: 930, z: 0}
- serializedVersion: 1
m_State: {fileID: 8964967141881234713}
m_Position: {x: 735, y: 995, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
@ -476,3 +479,29 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &8964967141881234713
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: FeetFadeOut
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: b33d029aebfb07544b9b0356311bde84, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:

View file

@ -0,0 +1,393 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: ZoomOut
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: {x: 1.596803, y: 3.477627, z: -326.0552}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.16666667
value: {x: 1.5968034, y: -19.1, z: -326.05524}
inSlope: {x: 0.000002861023, y: -135.46576, z: -0.00018310547}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path: UnderForegroundElementsHolder
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: {x: -2.873769, y: -1.2993346, z: -20.09578}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 0.16666667
value: {x: -2.873769, y: 23.7, z: -20.095783}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path: ForegroundElements
m_ScaleCurves: []
m_FloatCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: Infinity
outSlope: Infinity
tangentMode: 101
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_IsActive
path: ZoomoutTroupe
classID: 1
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.05
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: ForegroundElements/Black (1)
classID: 212
script: {fileID: 0}
m_PPtrCurves: []
m_SampleRate: 60
m_WrapMode: 0
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 3021865910
attribute: 1
script: {fileID: 0}
typeID: 4
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 3209082246
attribute: 1
script: {fileID: 0}
typeID: 4
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 3381294250
attribute: 2086281974
script: {fileID: 0}
typeID: 1
customType: 0
isPPtrCurve: 0
- serializedVersion: 2
path: 2770075048
attribute: 304273561
script: {fileID: 0}
typeID: 212
customType: 0
isPPtrCurve: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.16666667
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 0
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: Infinity
outSlope: Infinity
tangentMode: 101
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_IsActive
path: ZoomoutTroupe
classID: 1
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1.596803
inSlope: 0
outSlope: 0
tangentMode: 5
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.16666667
value: 1.5968034
inSlope: 0.000002861023
outSlope: 0
tangentMode: 5
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalPosition.x
path: UnderForegroundElementsHolder
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 3.477627
inSlope: 0
outSlope: 0
tangentMode: 5
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.16666667
value: -19.1
inSlope: -135.46576
outSlope: 0
tangentMode: 5
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalPosition.y
path: UnderForegroundElementsHolder
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: -326.0552
inSlope: 0
outSlope: 0
tangentMode: 5
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.16666667
value: -326.05524
inSlope: -0.00018310547
outSlope: 0
tangentMode: 5
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalPosition.z
path: UnderForegroundElementsHolder
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: -2.873769
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.16666667
value: -2.873769
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalPosition.x
path: ForegroundElements
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: -1.2993346
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.16666667
value: 23.7
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalPosition.y
path: ForegroundElements
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: -20.09578
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.16666667
value: -20.095783
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalPosition.z
path: ForegroundElements
classID: 4
script: {fileID: 0}
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 0.05
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_Color.a
path: ForegroundElements/Black (1)
classID: 212
script: {fileID: 0}
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6db974be9394bc74782dae7dba125a4e
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,101 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1107 &-2792416922990604776
AnimatorStateMachine:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Base Layer
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: 3148933584591412433}
m_Position: {x: 200, y: 0, z: 0}
- serializedVersion: 1
m_State: {fileID: -1361143207643143400}
m_Position: {x: 235, y: 65, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
m_StateMachineTransitions: {}
m_StateMachineBehaviours: []
m_AnyStatePosition: {x: 50, y: 20, z: 0}
m_EntryPosition: {x: 50, y: 120, z: 0}
m_ExitPosition: {x: 800, y: 120, z: 0}
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
m_DefaultState: {fileID: 3148933584591412433}
--- !u!1102 &-1361143207643143400
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: ZoomOut
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: 6db974be9394bc74782dae7dba125a4e, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: tapTroupe
serializedVersion: 5
m_AnimatorParameters: []
m_AnimatorLayers:
- serializedVersion: 5
m_Name: Base Layer
m_StateMachine: {fileID: -2792416922990604776}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 0
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1102 &3148933584591412433
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: NoZoomOut
m_Speed: 1
m_CycleOffset: 0
m_Transitions: []
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
m_WriteDefaultValues: 1
m_Mirror: 0
m_SpeedParameterActive: 0
m_MirrorParameterActive: 0
m_CycleOffsetParameterActive: 0
m_TimeParameterActive: 0
m_Motion: {fileID: 7400000, guid: 4129be460a192c145930d7b54bd97af9, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:

View file

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 13dc7879564063748be25ece5a75cef2
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 9100000
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

View file

@ -0,0 +1,180 @@
fileFormatVersion: 2
guid: 3ab97342cd4cf984f987c68315c21373
TextureImporter:
internalIDToNameTable:
- first:
213: -5753686504155282097
second: UpperBody
- first:
213: -1616693824020735853
second: Legs
- first:
213: -2519559232292076784
second: Feet
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
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
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
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: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 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
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: UpperBody
rect:
serializedVersion: 2
x: 0
y: 1785
width: 1288
height: 2115
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: f458ddadb9cc620b0800000000000000
internalID: -5753686504155282097
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Legs
rect:
serializedVersion: 2
x: 1742
y: 0
width: 588
height: 3900
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 3981dac58895099e0800000000000000
internalID: -1616693824020735853
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: Feet
rect:
serializedVersion: 2
x: 0
y: 0
width: 1288
height: 1719
alignment: 0
pivot: {x: 0, y: 0}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: 0
bones: []
spriteID: 013cca83a3ab80dd0800000000000000
internalID: -2519559232292076784
vertices: []
indices:
edges: []
weights: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

View file

@ -31,7 +31,7 @@ namespace HeavenStudio.Games.Loaders
parameters = new List<Param>()
{
new Param("okay", true, "Okay Voice Line", "Whether or not the tappers should say -Okay!- after successfully tapping."),
new Param("okayType", TapTroupe.OkayType.Random, "Okay Type", "Which version of the okay voice line should the tappers say?"),
new Param("okayType", TapTroupe.OkayType.OkayA, "Okay Type", "Which version of the okay voice line should the tappers say?"),
new Param("animType", TapTroupe.OkayAnimType.Normal, "Okay Animation", "Which animations should be played when the tapper say OK?"),
new Param("popperBeats", new EntityTypes.Float(0f, 80f, 2f), "Popper Beats", "How many beats until the popper will pop?"),
new Param("randomVoiceLine", true, "Extra Random Voice Line", "Whether there should be randomly said woos or laughs after the tappers say OK!")
@ -40,7 +40,8 @@ namespace HeavenStudio.Games.Loaders
new GameAction("bop", "Bop")
{
function = delegate {TapTroupe.instance.Bop(); },
defaultLength = 1f
defaultLength = 1f,
},
new GameAction("spotlights", "Toggle Spotlights")
{
@ -50,11 +51,21 @@ namespace HeavenStudio.Games.Loaders
{
new Param("toggle", true, "Darkness On", "Whether or not it should be dark."),
new Param("player", true, "Player Spotlight", "Whether or not the player spotlight should be turned on or off."),
new Param("middleLeft", false, "Middleleft Tapper Spotlight", "Whether or not the middleleft tapper spotlight should be turned on or off."),
new Param("middleRight", false, "Middleright Tapper Spotlight", "Whether or not the middleright tapper spotlight should be turned on or off."),
new Param("middleLeft", false, "Middleleft Tapper Spotlight", "Whether or not the middleleft tapper spotlight should be turned on or off."),
new Param("leftMost", false, "Leftmost Tapper Spotlight", "Whether or not the leftmost tapper spotlight should be turned on or off."),
}
},
new GameAction("zoomOut", "Special Zoom Out")
{
function = delegate { TapTroupe.instance.ToggleZoomOut(); },
defaultLength = 4f,
resizable = true,
parameters = new List<Param>()
{
new Param("ease", EasingFunction.Ease.EaseOutQuad, "Camera Ease", "What ease should the camera use?"),
},
},
new GameAction("tutorialMissFace", "Toggle Tutorial Miss Face")
{
function = delegate { var e = eventCaller.currentEntity; TapTroupe.instance.ToggleMissFace(e["toggle"]); },
@ -84,11 +95,21 @@ namespace HeavenStudio.Games
[SerializeField] GameObject spotlightMiddleRight;
[SerializeField] GameObject spotlightLeftMost;
[SerializeField] GameObject darkness;
private Animator zoomOutAnim;
[Header("Properties")]
private float currentZoomCamBeat;
private float currentZoomCamLength;
private EasingFunction.Ease lastEase;
private int currentZoomIndex;
private List<DynamicBeatmap.DynamicEntity> allCameraEvents = new List<DynamicBeatmap.DynamicEntity>();
private bool keepZoomOut;
private static List<QueuedSteps> queuedSteps = new List<QueuedSteps>();
private static List<QueuedTaps> queuedTaps = new List<QueuedTaps>();
public static bool prepareTap;
private bool tapping;
private bool stepping;
private bool shouldSwitchStep;
private bool shouldDoSecondBam;
private bool missedTaps;
@ -136,9 +157,28 @@ namespace HeavenStudio.Games
prepareTap = false;
}
public override void OnTimeChange()
{
UpdateCameraZoom();
}
void Awake()
{
instance = this;
zoomOutAnim = GetComponent<Animator>();
var camEvents = EventCaller.GetAllInGameManagerList("tapTroupe", new string[] { "zoomOut" });
List<DynamicBeatmap.DynamicEntity> tempEvents = new List<DynamicBeatmap.DynamicEntity>();
for (int i = 0; i < camEvents.Count; i++)
{
if (camEvents[i].beat + camEvents[i].beat >= Conductor.instance.songPositionInBeats)
{
tempEvents.Add(camEvents[i]);
}
}
allCameraEvents = tempEvents;
UpdateCameraZoom();
}
void Update()
@ -169,7 +209,7 @@ namespace HeavenStudio.Games
}
if (PlayerInput.Pressed() && !IsExpectingInputNow(InputType.STANDARD_DOWN))
{
if (canSpit && !useTutorialMissFace) Jukebox.PlayOneShotGame("tapTroupe/spit");
if (canSpit && !useTutorialMissFace) Jukebox.PlayOneShotGame("tapTroupe/spit", -1, 1, 0.5f);
Jukebox.PlayOneShotGame("tapTroupe/miss");
TapTroupe.instance.ScoreMiss(0.5f);
foreach (var corner in npcCorners)
@ -197,6 +237,75 @@ namespace HeavenStudio.Games
canSpit = false;
}
}
if (allCameraEvents.Count > 0)
{
if (currentZoomIndex < allCameraEvents.Count && currentZoomIndex >= 0)
{
if (Conductor.instance.songPositionInBeats >= allCameraEvents[currentZoomIndex].beat)
{
UpdateCameraZoom();
currentZoomIndex++;
}
}
float normalizedBeat = Conductor.instance.GetPositionFromBeat(currentZoomCamBeat, currentZoomCamLength);
float normalizedAnimBeat = normalizedBeat * 4;
if (normalizedBeat >= 0)
{
if (!keepZoomOut)
{
GameCamera.additionalPosition = new Vector3(0, 0, 0);
zoomOutAnim.Play("NoZoomOut", 0, 0);
}
else
{
EasingFunction.Function func = EasingFunction.GetEasingFunction(lastEase);
if (normalizedBeat > 1)
GameCamera.additionalPosition = new Vector3(0, 30, -100);
else
{
float newPosY = func(0, 30, normalizedBeat);
float newPosZ = func(0, -100, normalizedBeat);
GameCamera.additionalPosition = new Vector3(0, newPosY, newPosZ);
}
if (normalizedAnimBeat > 1)
{
zoomOutAnim.DoNormalizedAnimation("ZoomOut", 1f);
playerTapper.FadeOut(1f);
foreach (var tapper in npcTappers)
{
tapper.FadeOut(1f);
}
}
else
{
zoomOutAnim.DoNormalizedAnimation("ZoomOut", normalizedAnimBeat);
playerTapper.FadeOut(normalizedAnimBeat);
foreach (var tapper in npcTappers)
{
tapper.FadeOut(normalizedAnimBeat);
}
}
}
}
}
}
void UpdateCameraZoom()
{
if (currentZoomIndex < allCameraEvents.Count && currentZoomIndex >= 0)
{
currentZoomCamLength = allCameraEvents[currentZoomIndex].length;
currentZoomCamBeat = allCameraEvents[currentZoomIndex].beat;
lastEase = (EasingFunction.Ease)allCameraEvents[currentZoomIndex]["ease"];
}
}
public void ToggleZoomOut()
{
keepZoomOut = true;
}
public static void PreStepping(float beat, float length, bool startTap)
@ -222,6 +331,7 @@ namespace HeavenStudio.Games
new BeatAction.Action(beat + i, delegate
{
TapTroupe.instance.NPCStep();
Jukebox.PlayOneShotGame("tapTroupe/other1", -1, 1, 0.75f);
})
});
}
@ -234,7 +344,8 @@ namespace HeavenStudio.Games
TapTroupe.instance.playerTapper.Step(false, false);
TapTroupe.instance.playerCorner.Bop();
}),
new BeatAction.Action(beat, delegate { if (startTap) Jukebox.PlayOneShotGame("tapTroupe/startTap"); })
new BeatAction.Action(beat, delegate { if (startTap) Jukebox.PlayOneShotGame("tapTroupe/startTap"); stepping = true; }),
new BeatAction.Action(beat + length + 1, delegate { stepping = false; }),
});
}
@ -274,10 +385,12 @@ namespace HeavenStudio.Games
for (float i = 0; i < actualLength; i += 0.75f)
{
string soundToPlay = "bamvoice1";
string otherSoundToPlay = "other3";
float beatToSpawn = beat + i + 0.5f;
if (i + 0.75f >= actualLength)
{
soundToPlay = "startTap";
otherSoundToPlay = "other2";
beatToSpawn = Mathf.Ceil(beat + i);
finalBeatToSpawn = beatToSpawn;
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
@ -352,18 +465,22 @@ namespace HeavenStudio.Games
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(beatToSpawn - 0.3f, delegate { currentTapAnim = TapTroupeTapper.TapAnim.Bam; shouldSwitchStep = true; }),
new BeatAction.Action(beatToSpawn, delegate { NPCTap(TapTroupeTapper.TapAnim.Bam); })
new BeatAction.Action(beatToSpawn, delegate { NPCTap(TapTroupeTapper.TapAnim.Bam); }),
new BeatAction.Action(beatToSpawn + 0.1f, delegate { if (playerTapper.transform.localScale.x != npcTappers[0].transform.localScale.x) playerTapper.dontSwitchNextStep = true; })
});
}
}
soundsToPlay.Add(new MultiSound.Sound($"tapTroupe/{soundToPlay}", beatToSpawn));
soundsToPlay.Add(new MultiSound.Sound($"tapTroupe/{otherSoundToPlay}", beatToSpawn));
shouldDoSecondBam = secondBam;
secondBam = !secondBam;
ScheduleInput(beatToSpawn - 1, 1f, InputType.STANDARD_DOWN, JustTap, MissTap, Nothing);
}
int actualOkayType = okayType;
if (actualOkayType == (int)OkayType.Random) actualOkayType = UnityEngine.Random.Range(0, 3);
int randomO = UnityEngine.Random.Range(0, 3);
string okayVoiceLine = "A";
string okayOneVoiceLine = "A";
switch (actualOkayType)
{
case (int)OkayType.OkayA:
@ -379,8 +496,32 @@ namespace HeavenStudio.Games
okayVoiceLine = "A";
break;
}
switch (randomO)
{
case (int)OkayType.OkayA:
okayOneVoiceLine = "A";
break;
case (int)OkayType.OkayB:
okayOneVoiceLine = "B";
break;
case (int)OkayType.OkayC:
okayOneVoiceLine = "C";
break;
default:
okayOneVoiceLine = "A";
break;
}
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(beat - 1f, delegate
{
if (!stepping)
{
NPCStep(false);
playerTapper.Step(false);
playerCorner.Bop();
}
}),
new BeatAction.Action(beat, delegate { tapping = true; missedTaps = false; }),
new BeatAction.Action(finalBeatToSpawn, delegate
{
@ -397,17 +538,17 @@ namespace HeavenStudio.Games
}
MultiSound.Play(new MultiSound.Sound[]
{
new MultiSound.Sound($"tapTroupe/okay{okayVoiceLine}1", finalBeatToSpawn + 0.5f),
new MultiSound.Sound($"tapTroupe/okay{okayVoiceLine}2", finalBeatToSpawn + 1f),
new MultiSound.Sound($"tapTroupe/okay{okayOneVoiceLine}1", finalBeatToSpawn + 0.5f),
new MultiSound.Sound($"tapTroupe/okay{okayVoiceLine}2", finalBeatToSpawn + 1f, 1f, 0.75f),
}, forcePlay: true);
}),
new BeatAction.Action(finalBeatToSpawn + 1f, delegate
{
if (randomVoiceLine && UnityEngine.Random.Range(1, 50) == 1)
if (!missedTaps && okay && randomVoiceLine && UnityEngine.Random.Range(1, 50) == 1)
{
Jukebox.PlayOneShotGame("tapTroupe/woo");
}
else if (randomVoiceLine && UnityEngine.Random.Range(1, 50) == 1)
else if (!missedTaps && okay && randomVoiceLine && UnityEngine.Random.Range(1, 50) == 1)
{
Jukebox.PlayOneShotGame("tapTroupe/laughter", -1, 1, 0.4f);
}
@ -492,7 +633,7 @@ namespace HeavenStudio.Games
canSpit = true;
playerTapper.Step(false);
playerCorner.Bop();
Jukebox.PlayOneShotGame($"tapTroupe/step{stepSound}");
Jukebox.PlayOneShotGame("tapTroupe/tink");
if (stepSound == 1)
{
stepSound = 2;
@ -514,10 +655,10 @@ namespace HeavenStudio.Games
}
return;
}
SuccessStep();
SuccessStep(caller);
}
void SuccessStep()
void SuccessStep(PlayerActionEvent caller)
{
canSpit = true;
playerTapper.Step();
@ -536,11 +677,15 @@ namespace HeavenStudio.Games
{
corner.ResetFace();
}
BeatAction.New(instance.gameObject, new List<BeatAction.Action>()
{
new BeatAction.Action(caller.startBeat + caller.timer + 0.1f, delegate { if (playerTapper.transform.localScale.x != npcTappers[0].transform.localScale.x) playerTapper.dontSwitchNextStep = true; })
});
}
void MissStep(PlayerActionEvent caller)
{
if (canSpit && !useTutorialMissFace) Jukebox.PlayOneShotGame("tapTroupe/spit");
if (canSpit && !useTutorialMissFace) Jukebox.PlayOneShotGame("tapTroupe/spit", -1, 1, 0.5f);
foreach (var corner in npcCorners)
{
if (useTutorialMissFace)
@ -569,14 +714,7 @@ namespace HeavenStudio.Games
Jukebox.PlayOneShotGame("tapTroupe/tap3");
break;
default:
if (shouldDoSecondBam)
{
Jukebox.PlayOneShotGame("tapTroupe/bam2");
}
else
{
Jukebox.PlayOneShotGame("tapTroupe/bam1");
}
Jukebox.PlayOneShotGame("tapTroupe/tink");
break;
}
foreach (var corner in npcCorners)
@ -606,14 +744,7 @@ namespace HeavenStudio.Games
Jukebox.PlayOneShotGame("tapTroupe/tap3");
break;
default:
if (shouldDoSecondBam)
{
Jukebox.PlayOneShotGame("tapTroupe/bam2");
}
else
{
Jukebox.PlayOneShotGame("tapTroupe/bam1");
}
Jukebox.PlayOneShotGame("tapTroupe/player3");
break;
}
foreach (var corner in npcCorners)
@ -625,7 +756,7 @@ namespace HeavenStudio.Games
void MissTap(PlayerActionEvent caller)
{
missedTaps = true;
if (canSpit && !useTutorialMissFace) Jukebox.PlayOneShotGame("tapTroupe/spit");
if (canSpit && !useTutorialMissFace) Jukebox.PlayOneShotGame("tapTroupe/spit", -1, 1, 0.5f);
foreach (var corner in npcCorners)
{
if (useTutorialMissFace)

View file

@ -10,8 +10,7 @@ namespace HeavenStudio.Games.Scripts_TapTroupe
public Animator anim;
[SerializeField] GameObject impactStep;
private TapTroupe game;
[SerializeField] bool player;
[SerializeField] int soundIndex;
public bool dontSwitchNextStep = false;
public enum TapAnim
{
Bam,
@ -27,9 +26,15 @@ namespace HeavenStudio.Games.Scripts_TapTroupe
anim = GetComponent<Animator>();
}
public void FadeOut(float pos)
{
anim.DoNormalizedAnimation("FeetFadeOut", pos * 8);
}
public void Step(bool hit = true, bool switchFeet = true)
{
if (switchFeet) transform.localScale = new Vector3(transform.localScale.x * -1, transform.localScale.y, 1);
if (switchFeet && !dontSwitchNextStep) transform.localScale = new Vector3(transform.localScale.x * -1, transform.localScale.y, 1);
if (dontSwitchNextStep) dontSwitchNextStep = false;
if (hit)
{
if (TapTroupe.prepareTap)
@ -56,22 +61,25 @@ namespace HeavenStudio.Games.Scripts_TapTroupe
public void Tap(TapAnim animType, bool hit = true, bool switchFeet = true)
{
if (switchFeet) transform.localScale = new Vector3(transform.localScale.x * -1, transform.localScale.y, 1);
string animName = "";
if (hit) animName = "Hit";
switch (animType)
{
case TapAnim.Bam:
animName += "BamFeet";
if (switchFeet && !dontSwitchNextStep) transform.localScale = new Vector3(transform.localScale.x * -1, transform.localScale.y, 1);
break;
case TapAnim.Tap:
animName += "TapFeet";
if (switchFeet) transform.localScale = new Vector3(transform.localScale.x * -1, transform.localScale.y, 1);
break;
case TapAnim.BamReady:
animName += "BamReadyFeet";
if (switchFeet) transform.localScale = new Vector3(transform.localScale.x * -1, transform.localScale.y, 1);
break;
case TapAnim.BamTapReady:
animName += "BamReadyTap";
if (switchFeet) transform.localScale = new Vector3(transform.localScale.x * -1, transform.localScale.y, 1);
break;
case TapAnim.LastTap:
if (hit)
@ -82,10 +90,10 @@ namespace HeavenStudio.Games.Scripts_TapTroupe
{
animName = "StepFeet";
}
if (switchFeet) transform.localScale = new Vector3(transform.localScale.x * -1, transform.localScale.y, 1);
break;
}
anim.DoScaledAnimationAsync(animName, 0.5f);
if (!player) Jukebox.PlayOneShotGame($"tapTroupe/other{soundIndex}");
}
public void Bop()

View file

@ -0,0 +1,25 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using HeavenStudio.Util;
namespace HeavenStudio.Games.Scripts_TapTroupe
{
public class TapTroupeZoomOut : MonoBehaviour
{
float zoomOffset;
float yOffset;
void Start ()
{
zoomOffset = transform.localPosition.z;
yOffset = transform.localPosition.y;
}
void Update()
{
transform.localPosition = new Vector3(transform.localPosition.x, GameCamera.additionalPosition.y + yOffset, GameCamera.additionalPosition.z + zoomOffset);
}
}
}

View file

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 33771126a9978d141b4433a2b19903ea
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: